From 0f98ed2116887265035a7069ee7b2e24ae7e36a0 Mon Sep 17 00:00:00 2001
From: Peter Alexander <>
Date: Thu, 2 Jun 2022 21:35:15 +0100
Subject: [PATCH] Import consumer price log output

---
 src/ac/ed/lurg/ModelConfig.java                 |  4 +++-
 src/ac/ed/lurg/ModelMain.java                   |  2 +-
 src/ac/ed/lurg/demand/ElasticDemandManager.java |  3 ---
 src/ac/ed/lurg/demand/PriceMarkUps.java         | 12 ++++++++++++
 4 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/src/ac/ed/lurg/ModelConfig.java b/src/ac/ed/lurg/ModelConfig.java
index 7bc29985..accc3f64 100755
--- a/src/ac/ed/lurg/ModelConfig.java
+++ b/src/ac/ed/lurg/ModelConfig.java
@@ -263,8 +263,10 @@ public class ModelConfig {
 	public static final String SERIALIZED_LAND_USE_FILE = CALIB_DIR + File.separator +  SERIALIZED_LAND_USE_FILENAME;
 	public static final String SERIALIZED_CROP_USAGE_FILE = CALIB_DIR + File.separator +  SERIALIZED_CROP_USAGE_FILENAME;
 	public static final String SERIALIZED_INTERNATIONAL_MARKET_FILE = CALIB_DIR + File.separator +  SERIALIZED_INTERNATIONAL_MARKET_FILENAME;
-	public static final String SERIALIZED_PRICE_MARKUP_FILE = CALIB_DIR + File.separator +  "priceMarkups.ser";
+	public static final String SERIALIZED_PRICE_MARKUP_FILENAME = "priceMarkups.ser";
+	public static final String SERIALIZED_PRICE_MARKUP_FILE = CALIB_DIR + File.separator + SERIALIZED_PRICE_MARKUP_FILENAME;
 	public static final String CHECKPOINT_LAND_USE_FILE = getProperty("CHECKPOINT_LAND_USE_FILE", OUTPUT_DIR + File.separator +  SERIALIZED_LAND_USE_FILENAME);
+	public static final String CHECKPOINT_PRICE_MARKUP_FILE = getProperty("CHECKPOINT_PRICE_MARKUP_FILE", OUTPUT_DIR + File.separator +  SERIALIZED_PRICE_MARKUP_FILENAME);
 	public static final String CHECKPOINT_CROP_USAGE_FILE = getProperty("CHECKPOINT_CROP_USAGE_FILE", OUTPUT_DIR + File.separator +  SERIALIZED_CROP_USAGE_FILENAME);
 	public static final String CHECKPOINT_INTERNATIONAL_MARKET_FILE = getProperty("CHECKPOINT_INTERNATIONAL_MARKET_FILE", OUTPUT_DIR + File.separator +  SERIALIZED_INTERNATIONAL_MARKET_FILENAME);
 	
diff --git a/src/ac/ed/lurg/ModelMain.java b/src/ac/ed/lurg/ModelMain.java
index b5299169..653d195d 100644
--- a/src/ac/ed/lurg/ModelMain.java
+++ b/src/ac/ed/lurg/ModelMain.java
@@ -553,7 +553,7 @@ public class ModelMain {
 	private void serializePriceMarkUps() {
 		try {	
 			if(demandManager instanceof ElasticDemandManager) {
-				String fileStr =  ModelConfig.SERIALIZED_PRICE_MARKUP_FILE;
+				String fileStr = ModelConfig.IS_CALIBRATION_RUN ? ModelConfig.SERIALIZED_PRICE_MARKUP_FILE : ModelConfig.CHECKPOINT_PRICE_MARKUP_FILE;
 				LogWriter.println("Starting serializing PriceMarkUps to " + fileStr);
 				FileOutputStream fileOut = new FileOutputStream(fileStr);
 				ObjectOutputStream out = new ObjectOutputStream(fileOut);
diff --git a/src/ac/ed/lurg/demand/ElasticDemandManager.java b/src/ac/ed/lurg/demand/ElasticDemandManager.java
index 61acae2d..f0694b4d 100755
--- a/src/ac/ed/lurg/demand/ElasticDemandManager.java
+++ b/src/ac/ed/lurg/demand/ElasticDemandManager.java
@@ -49,10 +49,7 @@ public class ElasticDemandManager extends AbstractSSPDemandManager {
 			double producerPrice = producerPricePlum * (1000/kcalPerT.get(commodity) * 2000 *365);  //price per person per year commodity x per year assuming 2000 kcal a day
 
 			double consumerPrice = priceMarkups.markedupPrice(c, commodity, producerPrice);
-						
 			consumerPrices.put(commodity, consumerPrice);
-			LogWriter.println("Consumer price for " + commodity.getGamsName() + " is " + consumerPrice);
-
 		}
 		
 		GamsDemandInput inputData = new GamsDemandInput(c, year, gdpPc, consumerPrices,kcalPerT, usaGdpPc, previousGamsDemands.get(c));
diff --git a/src/ac/ed/lurg/demand/PriceMarkUps.java b/src/ac/ed/lurg/demand/PriceMarkUps.java
index 8520139d..c5e33320 100644
--- a/src/ac/ed/lurg/demand/PriceMarkUps.java
+++ b/src/ac/ed/lurg/demand/PriceMarkUps.java
@@ -24,6 +24,11 @@ public class PriceMarkUps implements Serializable {
 		return intialConsumerPrices;
 	}
 	
+	@Override
+	public String toString() {
+		return "PriceMarkUps [" + priceMarkupFactors + "]";
+	}
+
 	public double markedupPrice(SingleCountry c, CommodityType commodity, double producerPrice) {
 		CountryCommodityKey cc = new CountryCommodityKey(c, commodity);
 		Double priceMarkupFactor = priceMarkupFactors.get(cc);
@@ -36,6 +41,8 @@ public class PriceMarkUps implements Serializable {
 		}
 		
 		double adjustedPrice = producerPrice * priceMarkupFactor;
+		LogWriter.println(String.format("PriceMarkUps: %s consumer price after markup of %.4f is %.4f", commodity, priceMarkupFactor, adjustedPrice));
+
 		return adjustedPrice;
 	}
 	
@@ -98,5 +105,10 @@ public class PriceMarkUps implements Serializable {
 		private PriceMarkUps getOuterType() {
 			return PriceMarkUps.this;
 		}
+		
+		@Override
+		public String toString() {
+			return "[" + country + ", " + commodity + "]";
+		}
 	}
 }
-- 
GitLab