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