From 5c1434e16188ee9ff463dd8e4b878039ca80de24 Mon Sep 17 00:00:00 2001 From: Peter Alexander <peter@blackhillock.co.uk> Date: Fri, 11 Nov 2016 11:30:02 +0000 Subject: [PATCH] Switch for protected areas, and some whitespace changes. --- src/ac/ed/lurg/ModelConfig.java | 4 +++- src/ac/ed/lurg/ModelMain.java | 6 +----- src/ac/ed/lurg/country/TradeManager.java | 11 ++++------- src/ac/ed/lurg/country/gams/GamsCountryInput.java | 5 +---- src/ac/ed/lurg/landuse/LandCoverItem.java | 2 +- src/ac/ed/lurg/landuse/LandUseItem.java | 7 ++++--- src/ac/ed/lurg/landuse/ProtectedAreasReader.java | 4 ++-- 7 files changed, 16 insertions(+), 23 deletions(-) diff --git a/src/ac/ed/lurg/ModelConfig.java b/src/ac/ed/lurg/ModelConfig.java index e02d7cf5..d243e081 100644 --- a/src/ac/ed/lurg/ModelConfig.java +++ b/src/ac/ed/lurg/ModelConfig.java @@ -174,11 +174,13 @@ public class ModelConfig { public static final double TRADE_BARRIER_FACTOR_DEFAULT = getDoubleProperty("TRADE_BARRIER_FACTOR", 0.2); // price factor in international trade, transport cost and real trade barriers public static final boolean ACTIVE_TRADE_BARRIERS = getBooleanProperty("ACTIVE_TRADE_BARRIERS", false); // if set to true read in barrier information from file, otherwise use default as above - + public static final boolean PROTECTED_AREAS_ENABLED = getBooleanProperty("PROTECTED_AREAS_ENABLED", true); + public static final int NUM_CEREAL_CATEGORIES = getIntProperty("NUM_CEREAL_CATEGORIES", 5); public static final int NUM_PASTURE_CATEGORIES = getIntProperty("NUM_PASTURE_CATEGORIES", 1); public static final boolean DEBUG_LIMIT_COUNTRIES = getBooleanProperty("DEBUG_LIMIT_COUNTRIES", false); + public static final Object DEBUG_COUNTRY_NAME = getProperty("DEBUG_COUNTRY_NAME", "United States of America"); public static final double PASTURE_MAX_IRRIGATION_RATE = getDoubleProperty("DEFAULT_MAX_IRRIGATION_RATE", 50.0); // shouldn't need this but some areas crops don't have a value, but was causing them to be selected public static int NUM_CALIBRATION_ITERATIONS = getIntProperty("NUM_CALIBRATION_ITERATIONS", 1); diff --git a/src/ac/ed/lurg/ModelMain.java b/src/ac/ed/lurg/ModelMain.java index 4fa81ae5..ff351892 100644 --- a/src/ac/ed/lurg/ModelMain.java +++ b/src/ac/ed/lurg/ModelMain.java @@ -37,7 +37,6 @@ import ac.ed.lurg.types.CropToDoubleMap; import ac.ed.lurg.types.CropType; import ac.ed.lurg.types.LandCoverType; import ac.ed.lurg.types.ModelFitType; -import ac.ed.lurg.utils.LazyHashMap; import ac.ed.lurg.utils.LogWriter; import ac.ed.lurg.yield.LPJYieldResponseMapReader; import ac.ed.lurg.yield.YieldRaster; @@ -347,17 +346,14 @@ public class ModelMain { // DEBUG code if (ModelConfig.DEBUG_LIMIT_COUNTRIES) { - if (!(cc.getName().equals("United States of Americaxxx") || cc.getName().equals("Chinaxx") || cc.getName().equals("Russian Federationxx") || cc.getName().equals("Philippines")) ) { + if (!(cc.getName().equals(ModelConfig.DEBUG_COUNTRY_NAME))) continue; - } } List<RasterKey> keys = countryBoundaryRaster.getKeysFor(cc); RasterSet<LandCoverItem> initCountryLC = initLC.createSubsetForKeys(keys); Map<CropType, CropUsageData> countryCommodityData = cropUsageDataMap.get(cc); Map<CropType, Double> countryTradeBarriers = tradeManager.getTradeBarriers(cc); - - //Map<CropType, Double> countryTradeBarriers = (ModelConfig.ACTIVE_TRADE_BARRIERS) ? tradeBarriersMap.get(cc): getDefaultTradeBarriers(); if (countryCommodityData == null) { LogWriter.printlnError("No commodities data for " + cc + ", so skipping"); diff --git a/src/ac/ed/lurg/country/TradeManager.java b/src/ac/ed/lurg/country/TradeManager.java index ac071eeb..122190b1 100644 --- a/src/ac/ed/lurg/country/TradeManager.java +++ b/src/ac/ed/lurg/country/TradeManager.java @@ -21,25 +21,22 @@ public class TradeManager { private CompositeCountryManager compositeCountryManager; private Map<CompositeCountry, CropToDoubleMap> tradeMap = new HashMap<CompositeCountry, CropToDoubleMap>(); - private boolean activeBarriers = ModelConfig.ACTIVE_TRADE_BARRIERS; - public TradeManager(CompositeCountryManager compositeCountryManager) { this.compositeCountryManager = compositeCountryManager; - if(activeBarriers) + if(ModelConfig.ACTIVE_TRADE_BARRIERS) read(); } - public CropToDoubleMap getTradeBarriers(CompositeCountry cc){ - - if (tradeMap.get(cc) == null){ + public CropToDoubleMap getTradeBarriers(CompositeCountry cc) { + if (tradeMap.get(cc) == null) { CropToDoubleMap tradeBarriers = new CropToDoubleMap(); for (CropType c : CropType.getImportedTypes()) { tradeBarriers.put(c, ModelConfig.TRADE_BARRIER_FACTOR_DEFAULT); } - tradeMap.put(cc, tradeBarriers); + tradeMap.put(cc, tradeBarriers); } return tradeMap.get(cc); diff --git a/src/ac/ed/lurg/country/gams/GamsCountryInput.java b/src/ac/ed/lurg/country/gams/GamsCountryInput.java index d31d9f84..5a94b21c 100644 --- a/src/ac/ed/lurg/country/gams/GamsCountryInput.java +++ b/src/ac/ed/lurg/country/gams/GamsCountryInput.java @@ -9,7 +9,6 @@ import ac.ed.lurg.country.GlobalPrice; import ac.ed.lurg.country.ImportExportConstraint; import ac.ed.lurg.types.CommodityType; import ac.ed.lurg.types.CropType; -import ac.ed.lurg.utils.LogWriter; public class GamsCountryInput { @@ -130,11 +129,9 @@ public class GamsCountryInput { public Map<CropType, Double> getWorldExportPrices() { Map<CropType, Double> prices = new HashMap<CropType, Double>(); + for (Map.Entry<CropType, GlobalPrice> entry : worldPrices.entrySet()) { - - prices.put(entry.getKey(), entry.getValue().getExportPrice()); - } return prices; } diff --git a/src/ac/ed/lurg/landuse/LandCoverItem.java b/src/ac/ed/lurg/landuse/LandCoverItem.java index 4417edbb..882330fc 100644 --- a/src/ac/ed/lurg/landuse/LandCoverItem.java +++ b/src/ac/ed/lurg/landuse/LandCoverItem.java @@ -39,7 +39,7 @@ public class LandCoverItem implements RasterItem { } public void setProtectedArea(double proportionProtectedArea){ - this.proportionProtectedArea=proportionProtectedArea; + this.proportionProtectedArea=proportionProtectedArea; } diff --git a/src/ac/ed/lurg/landuse/LandUseItem.java b/src/ac/ed/lurg/landuse/LandUseItem.java index 14594356..bcf827c2 100644 --- a/src/ac/ed/lurg/landuse/LandUseItem.java +++ b/src/ac/ed/lurg/landuse/LandUseItem.java @@ -5,6 +5,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; +import ac.ed.lurg.ModelConfig; import ac.ed.lurg.types.CropToDouble; import ac.ed.lurg.types.CropType; import ac.ed.lurg.types.LandCoverType; @@ -20,8 +21,8 @@ public class LandUseItem implements InterpolatingRasterItem<LandUseItem> { public void setProtectedArea(LandCoverItem landCover){ if (landCover != null) { - double areaTotal = this.getTotalLandCoverArea(); - this.protectedArea = landCover.getProtectedArea()*areaTotal; + double areaTotal = this.getTotalLandCoverArea(); + this.protectedArea = landCover.getProtectedArea()*areaTotal; } } @@ -201,7 +202,7 @@ public class LandUseItem implements InterpolatingRasterItem<LandUseItem> { public double getSuitableLand() { double d = 0; - double protectedTotal = protectedArea; + double protectedTotal = ModelConfig.PROTECTED_AREAS_ENABLED ? protectedArea : 0; double totalNatural = getLandCoverArea(LandCoverType.OTHER_NATURAL) + getLandCoverArea(LandCoverType.FOREST); if (totalNatural >= protectedTotal) diff --git a/src/ac/ed/lurg/landuse/ProtectedAreasReader.java b/src/ac/ed/lurg/landuse/ProtectedAreasReader.java index 489f984b..6b4aaaa4 100644 --- a/src/ac/ed/lurg/landuse/ProtectedAreasReader.java +++ b/src/ac/ed/lurg/landuse/ProtectedAreasReader.java @@ -12,8 +12,8 @@ public class ProtectedAreasReader extends AbstractRasterReader<LandCoverItem> { @Override public void setData(LandCoverItem lcData, String token) { if (!"nan".equals(token)) { - double protFrac = Double.parseDouble(token); - lcData.setProtectedArea(protFrac); + double protFrac = Double.parseDouble(token); + lcData.setProtectedArea(protFrac); } } -- GitLab