From c8a46095898b7a459441789099ae25d3b7718df4 Mon Sep 17 00:00:00 2001
From: Peter Alexander <peter@blackhillock.co.uk>
Date: Thu, 27 Aug 2015 09:47:49 +0100
Subject: [PATCH] little tidying up

---
 src/ac/ed/lurg/ModelMain.java                        | 6 +++---
 src/ac/ed/lurg/country/gams/GamsRasterOptimiser.java | 4 ++--
 src/ac/ed/lurg/yield/YieldRaster.java                | 5 +++--
 src/ac/sac/raster/RasterSet.java                     | 6 +++++-
 4 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/src/ac/ed/lurg/ModelMain.java b/src/ac/ed/lurg/ModelMain.java
index 9fd88445..60c8e5b0 100644
--- a/src/ac/ed/lurg/ModelMain.java
+++ b/src/ac/ed/lurg/ModelMain.java
@@ -110,7 +110,7 @@ public class ModelMain {
 
 			LogWriter.println("Country " + ca.getCountry());
 			Collection<RasterKey> countryKeys = countryBoundaryRaster.getKeysFor(ca.getCountry());
-			YieldRaster countryYieldSurfaces = yieldSurfaces.getSubsetRasterForKeys(countryKeys);
+			YieldRaster countryYieldSurfaces = yieldSurfaces.createSubsetForKeys(countryKeys);
 
 			GamsRasterOutput result = null;
 
@@ -305,8 +305,8 @@ public class ModelMain {
 			}
 
 			List<RasterKey> keys = countryBoundaryRaster.getKeysFor(cc);
-			RasterSet<LandCoverItem> initCountryLC = initLC.popSubsetForKeys(new RasterSet<LandCoverItem>(initLC.getHeaderDetails()), keys);
-			RasterSet<IrrigationItem> irrigationCosts = allIrrigationCosts.popSubsetForKeys(new RasterSet<IrrigationItem>(allIrrigationCosts.getHeaderDetails()), keys);
+			RasterSet<LandCoverItem> initCountryLC = initLC.createSubsetForKeys(keys);
+			RasterSet<IrrigationItem> irrigationCosts = allIrrigationCosts.createSubsetForKeys(keys);
 			Map<CropType, CropUsageData> countryCommodityData = cropUsageDataMap.get(cc);
 
 			if (countryCommodityData == null) {
diff --git a/src/ac/ed/lurg/country/gams/GamsRasterOptimiser.java b/src/ac/ed/lurg/country/gams/GamsRasterOptimiser.java
index 7c3bacec..5494bd8e 100644
--- a/src/ac/ed/lurg/country/gams/GamsRasterOptimiser.java
+++ b/src/ac/ed/lurg/country/gams/GamsRasterOptimiser.java
@@ -145,7 +145,7 @@ public class GamsRasterOptimiser {
 			Set<RasterKey> keys = mapping.get(locId);
 
 			if (DEBUG) 
-				checkedTotalAreas(newLandUseRaster.popSubsetForKeys(new RasterSet<LandUseItem>(newLandUseRaster.getHeaderDetails()), keys), locId + " before");
+				checkedTotalAreas(newLandUseRaster.createSubsetForKeys(keys), locId + " before");
 
 			double pastureChange = newLandUseAggItem.getLandCoverArea(LandCoverType.PASTURE) - prevLandUseAggItem.getLandCoverArea(LandCoverType.PASTURE);
 			double croplandChange = newLandUseAggItem.getLandCoverArea(LandCoverType.CROPLAND) - prevLandUseAggItem.getLandCoverArea(LandCoverType.CROPLAND);
@@ -187,7 +187,7 @@ public class GamsRasterOptimiser {
 				LogWriter.printlnError("This should never happen, due to GAMS constraint. Not able to incorporate all changes, as not enough forest or natural areas left: " + locId + ": " + shortfall);
 
 			if (DEBUG) 
-				checkedTotalAreas(newLandUseRaster.popSubsetForKeys(new RasterSet<LandUseItem>(newLandUseRaster.getHeaderDetails()), keys), locId + " after");
+				checkedTotalAreas(newLandUseRaster.createSubsetForKeys(keys), locId + " after");
 
 			for (RasterKey key : keys) {
 				LandUseItem newLandUseItem = newLandUseRaster.get(key);
diff --git a/src/ac/ed/lurg/yield/YieldRaster.java b/src/ac/ed/lurg/yield/YieldRaster.java
index a3eba786..2e0c80cb 100644
--- a/src/ac/ed/lurg/yield/YieldRaster.java
+++ b/src/ac/ed/lurg/yield/YieldRaster.java
@@ -19,8 +19,9 @@ public class YieldRaster extends RasterSet<YieldResponsesItem> {
 	}
 	
 	// not very efficient, we could keep the mapping of country to area somewhere.
-	public YieldRaster getSubsetRasterForKeys(Collection<RasterKey> keys) {
-		YieldRaster subsetYieldRaster = new YieldRaster(this.getHeaderDetails());
+	@Override
+	public YieldRaster createSubsetForKeys(Collection<RasterKey> keys) {
+		YieldRaster subsetYieldRaster = new YieldRaster(getHeaderDetails());
 		popSubsetForKeys(subsetYieldRaster, keys);		
 		return subsetYieldRaster;
 	}
diff --git a/src/ac/sac/raster/RasterSet.java b/src/ac/sac/raster/RasterSet.java
index 5eb3820d..7bc26df3 100755
--- a/src/ac/sac/raster/RasterSet.java
+++ b/src/ac/sac/raster/RasterSet.java
@@ -151,7 +151,11 @@ public class RasterSet<D extends RasterItem> extends HashMap<RasterKey, D> {
 		return h.getXCellSize() == header.getXCellSize() && h.getYCellSize() == header.getYCellSize();
 	}
 	
-	public RasterSet<D> popSubsetForKeys(RasterSet<D> subset, Collection<RasterKey> keys) {
+	public RasterSet<D> createSubsetForKeys(Collection<RasterKey> keys) {
+		return popSubsetForKeys (new RasterSet<D>(getHeaderDetails()), keys);
+	}
+
+	protected RasterSet<D> popSubsetForKeys(RasterSet<D> subset, Collection<RasterKey> keys) {		
 		for (RasterKey key : keys) {
 			//LogWriter.println("popSubsetForKeys: " + key.getCol() + ", "  + key.getRow() + ": " + getXCoordin(key) + ", " + getYCoordin(key));
 			subset.put(key, get(key));
-- 
GitLab