From e3d3897dbe947db6966ad6b2f5f7ac771c05481c Mon Sep 17 00:00:00 2001
From: Peter Alexander <>
Date: Wed, 19 Jan 2022 10:54:12 +0000
Subject: [PATCH] Allow checkpoint file name to be changed

---
 src/ac/ed/lurg/InternationalMarket.java         |  5 +++--
 src/ac/ed/lurg/ModelConfig.java                 | 13 ++++++++++---
 src/ac/ed/lurg/ModelMain.java                   |  5 +++--
 src/ac/ed/lurg/country/CountryAgentManager.java |  5 +++--
 4 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/src/ac/ed/lurg/InternationalMarket.java b/src/ac/ed/lurg/InternationalMarket.java
index ac25b1f2..f9a4e928 100644
--- a/src/ac/ed/lurg/InternationalMarket.java
+++ b/src/ac/ed/lurg/InternationalMarket.java
@@ -105,8 +105,9 @@ public class InternationalMarket {
 
 	public void serializeGlobalPrices() {
 		try {
-			LogWriter.println("Starting serializing GlobalPrice to " + ModelConfig.SERIALIZED_INTERNATIONAL_MARKET_FILE);
-			FileOutputStream fileOut = new FileOutputStream(ModelConfig.SERIALIZED_INTERNATIONAL_MARKET_FILE);
+			String fileStr = ModelConfig.IS_CALIBRATION_RUN ? ModelConfig.SERIALIZED_INTERNATIONAL_MARKET_FILE : ModelConfig.CHECKPOINT_INTERNATIONAL_MARKET_FILE;
+			LogWriter.println("Starting serializing GlobalPrice to " + fileStr);
+			FileOutputStream fileOut = new FileOutputStream(fileStr);
 			ObjectOutputStream out = new ObjectOutputStream(fileOut);
 			out.writeObject(worldPrices);
 			out.close();
diff --git a/src/ac/ed/lurg/ModelConfig.java b/src/ac/ed/lurg/ModelConfig.java
index aba2b20c..1fb85b6a 100755
--- a/src/ac/ed/lurg/ModelConfig.java
+++ b/src/ac/ed/lurg/ModelConfig.java
@@ -257,9 +257,16 @@ public class ModelConfig {
 	public static final boolean IS_CALIBRATION_RUN = getBooleanProperty("IS_CALIBRATION_RUN", false);
 	public static final String CALIB_DIR = IS_CALIBRATION_RUN ? OUTPUT_DIR : getProperty("CALIB_DIR", OUTPUT_DIR);
 	public static final int END_FIRST_STAGE_CALIBRATION = getIntProperty("END_FIRST_STAGE_CALIBRATION", 10);
-	public static final String SERIALIZED_LAND_USE_FILE = CALIB_DIR + File.separator +  "landUseRaster.ser";
-	public static final String SERIALIZED_CROP_USAGE_FILE = CALIB_DIR + File.separator +  "countryCropUsages.ser";
-	public static final String SERIALIZED_INTERNATIONAL_MARKET_FILE = CALIB_DIR + File.separator +  "internationalMarket.ser";
+	public static final String SERIALIZED_LAND_USE_FILENAME = "landUseRaster.ser";
+	public static final String SERIALIZED_CROP_USAGE_FILENAME = "countryCropUsages.ser";
+	public static final String SERIALIZED_INTERNATIONAL_MARKET_FILENAME = "internationalMarket.ser";
+	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 CHECKPOINT_LAND_USE_FILE = getProperty("CHECKPOINT_LAND_USE_FILE", OUTPUT_DIR + File.separator +  SERIALIZED_LAND_USE_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);
+	
 	public static final boolean MARKET_ADJ_PRICE = getBooleanProperty("MARKET_ADJ_PRICE", true);
 	public static final boolean CHANGE_YIELD_DATA_YEAR = IS_CALIBRATION_RUN ? false : getBooleanProperty("CHANGE_YIELD_DATA_YEAR", true);
 	public static final String CLUSTERED_YIELD_FILE = getProperty("CLUSTERED_YIELD_FILE", CALIB_DIR + File.separator + "cluster.asc");
diff --git a/src/ac/ed/lurg/ModelMain.java b/src/ac/ed/lurg/ModelMain.java
index 108914d2..5a3096e0 100644
--- a/src/ac/ed/lurg/ModelMain.java
+++ b/src/ac/ed/lurg/ModelMain.java
@@ -541,8 +541,9 @@ public class ModelMain {
 
 	private void serializeLandUse(RasterSet<LandUseItem> landUseRaster) {
 		try {
-			LogWriter.println("Starting serializing LandUse to " + ModelConfig.SERIALIZED_LAND_USE_FILE);
-			FileOutputStream fileOut = new FileOutputStream(ModelConfig.SERIALIZED_LAND_USE_FILE);
+			String fileStr = ModelConfig.IS_CALIBRATION_RUN ? ModelConfig.SERIALIZED_LAND_USE_FILE : ModelConfig.CHECKPOINT_LAND_USE_FILE;
+			LogWriter.println("Starting serializing LandUse to " + fileStr);
+			FileOutputStream fileOut = new FileOutputStream(fileStr);
 			ObjectOutputStream out = new ObjectOutputStream(fileOut);
 			out.writeObject(landUseRaster);
 			out.close();
diff --git a/src/ac/ed/lurg/country/CountryAgentManager.java b/src/ac/ed/lurg/country/CountryAgentManager.java
index 7a9abf49..3d413b3c 100644
--- a/src/ac/ed/lurg/country/CountryAgentManager.java
+++ b/src/ac/ed/lurg/country/CountryAgentManager.java
@@ -152,8 +152,9 @@ public class CountryAgentManager {
 		}
 		
 		try {
-			LogWriter.println("Starting serializing CropUsages to " + ModelConfig.SERIALIZED_CROP_USAGE_FILE);
-			FileOutputStream fileOut = new FileOutputStream(ModelConfig.SERIALIZED_CROP_USAGE_FILE);
+			String fileStr = ModelConfig.IS_CALIBRATION_RUN ? ModelConfig.SERIALIZED_CROP_USAGE_FILE : ModelConfig.CHECKPOINT_CROP_USAGE_FILE;
+			LogWriter.println("Starting serializing CropUsages to " + fileStr);
+			FileOutputStream fileOut = new FileOutputStream(fileStr);
 			ObjectOutputStream out = new ObjectOutputStream(fileOut);
 			out.writeObject(cropUsageDataMap);
 			out.close();
-- 
GitLab