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