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