From d1d986ea1bb9572cf92c5545762648d43ee68e86 Mon Sep 17 00:00:00 2001 From: Peter Alexander <p.m.w.alexander@gmail.com> Date: Thu, 9 Feb 2017 11:12:43 +0000 Subject: [PATCH] Changes for cluster --- scripts/compilePlum.sh | 3 ++- .../convertOldToNewLPJData.sh | 0 scripts/createScenarios.sh | 13 +++++------ src/ac/ed/lurg/ModelConfig.java | 23 ++++++++++++------- src/ac/ed/lurg/ModelMain.java | 8 +++---- .../country/gams/GamsLocationOptimiser.java | 4 ++-- .../lurg/yield/LPJYieldResponseMapReader.java | 4 ++-- 7 files changed, 31 insertions(+), 24 deletions(-) rename convertOldToNewLPJData.sh => scripts/convertOldToNewLPJData.sh (100%) diff --git a/scripts/compilePlum.sh b/scripts/compilePlum.sh index 6832de0d..606f0569 100755 --- a/scripts/compilePlum.sh +++ b/scripts/compilePlum.sh @@ -1,2 +1,3 @@ -javac -J-Xmx1g -cp .:/Applications/GAMS/gams24.3_osx_x64_64_sfx/apifiles/Java/api/GAMSJavaAPI.jar ./src/ac/ed/lurg/*.java ./src/ac/ed/lurg/country/*.java ./src/ac/ed/lurg/country/gams/*.java ./src/ac/ed/lurg/demand/*.java ./src/ac/ed/lurg/landuse/*.java ./src/ac/ed/lurg/output/*.java ./src/ac/ed/lurg/types/*.java ./src/ac/ed/lurg/utils/*.java ./src/ac/ed/lurg/yield/*.java ./src/ac/sac/raster/*.java -d ./classes +cd /exports/csce/eddie/geos/groups/LURG/models/PLUM/plumv2 +javac -J-Xmx1g -cp .:/exports/csce/eddie/geos/groups/LURG/models/gams/gams24.7_linux_x64_64_sfx/apifiles/Java/api/GAMSJavaAPI.jar ./src/ac/ed/lurg/*.java ./src/ac/ed/lurg/country/*.java ./src/ac/ed/lurg/country/gams/*.java ./src/ac/ed/lurg/demand/*.java ./src/ac/ed/lurg/landuse/*.java ./src/ac/ed/lurg/output/*.java ./src/ac/ed/lurg/types/*.java ./src/ac/ed/lurg/utils/*.java ./src/ac/ed/lurg/yield/*.java ./src/ac/sac/raster/*.java -d ../classes diff --git a/convertOldToNewLPJData.sh b/scripts/convertOldToNewLPJData.sh similarity index 100% rename from convertOldToNewLPJData.sh rename to scripts/convertOldToNewLPJData.sh diff --git a/scripts/createScenarios.sh b/scripts/createScenarios.sh index 3abe563f..514b7748 100755 --- a/scripts/createScenarios.sh +++ b/scripts/createScenarios.sh @@ -1,8 +1,8 @@ #!/bin/sh filename="$1" -common_prop_file=./common.properties -output_dir=./scenarios/ +common_prop_file=/exports/csce/eddie/geos/groups/LURG/models/PLUM/output/common_properties +output_dir=/exports/csce/eddie/geos/groups/LURG/models/PLUM/output if [[ $* == *-O* ]]; then overwrite=1 else overwrite=0 @@ -15,7 +15,7 @@ fi echo "Generating scenarios into $output_dir" -while read -r datarow $filename +while read -r datarow do IFS=',' read -r -a array <<< "$datarow" @@ -23,9 +23,8 @@ do header=( "${array[@]}" ) else scenario="${array[0]}" - scenario_dir=$output_dir$scenario - echo $scenario - + scenario_dir=$output_dir/$scenario + echo "$scenario in $scenario_dir" if [ ! -d "$scenario_dir" ]; then mkdir $scenario_dir elif [ $overwrite -ne 1 ]; then @@ -35,7 +34,7 @@ do config_file=$scenario_dir/config.properties cp $common_prop_file $config_file - echo "BASE_DIR=$scenario_dir" >> $config_file + echo "OUTPUT_DIR=$scenario_dir" >> $config_file for index in "${!array[@]}" do diff --git a/src/ac/ed/lurg/ModelConfig.java b/src/ac/ed/lurg/ModelConfig.java index 3e6d352d..ff3aa1c9 100644 --- a/src/ac/ed/lurg/ModelConfig.java +++ b/src/ac/ed/lurg/ModelConfig.java @@ -3,6 +3,7 @@ package ac.ed.lurg; import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.util.Enumeration; import java.util.Properties; public class ModelConfig { @@ -22,6 +23,12 @@ public class ModelConfig { System.err.println("Problems reading config file"); System.err.println(e.getMessage()); } + + Enumeration<?> em = configFile.keys(); + while(em.hasMoreElements()) { + String str = (String) em.nextElement(); + System.out.println(str + ": " + configFile.get(str)); + } } private static ModelConfig getModelConfig() { @@ -82,11 +89,11 @@ public class ModelConfig { // Directory information public static final String BASE_DIR = getProperty("BASE_DIR"); // this must to be set in config file - public static final String TEMP_DIR = getProperty("TEMP_DIR", BASE_DIR + File.separator + "temp"); public static final String OUTPUT_DIR = getProperty("OUTPUT_DIR", BASE_DIR + File.separator + "output"); + public static final String TEMP_DIR = getProperty("TEMP_DIR", OUTPUT_DIR + File.separator + "GamsTmp"); public static final String DATA_DIR = getProperty("DATA_DIR", BASE_DIR + File.separator + "data"); public static final String GAMS_MODEL = getProperty("GAMS_MODEL", BASE_DIR + File.separator + "GAMS/IntExtOpt.gms"); - public static final boolean CLEANUP_GAMS_DIR = getBooleanProperty("CLEANUP_GAMS_DIR", true); + public static final boolean CLEANUP_GAMS_DIR = getBooleanProperty("CLEANUP_GAMS_DIR", false); // Country (non-gridded) data public static final String DEMAND_CURVES_FILE = DATA_DIR + File.separator + "com_curves.csv"; @@ -104,7 +111,7 @@ public class ModelConfig { public static final int LPJG_MONITOR_TIMEOUT_SEC = getIntProperty("LPJG_MONITOR_TIMEOUT", 60*60*2); public static final String ANPP_FILENAME = getProperty("ANPP_FILENAME", "anpp.out"); public static final String YIELD_FILENAME = getProperty("YIELD_FILENAME", "yield.out"); - public static final boolean PASTURE_FERT_RESPONSE_FROM_LPJ = getBooleanProperty("PASTURE_FERT_RESPONSE_FROM_LPJ", true);; + public static final boolean PASTURE_FERT_RESPONSE_FROM_LPJ = getBooleanProperty("PASTURE_FERT_RESPONSE_FROM_LPJ", false);; public static final double CALIB_FACTOR_WHEAT = getDoubleProperty("CALIB_FACTOR_WHEAT", 0.976); public static final double CALIB_FACTOR_MAIZE = getDoubleProperty("CALIB_FACTOR_MAIZE", 0.667); @@ -149,10 +156,10 @@ public class ModelConfig { public static final double MAX_IMPORT_CHANGE = IS_CALIBRATION_RUN ? 0.0 : getDoubleProperty("MAX_IMPORT_CHANGE", ANNUAL_MAX_IMPORT_CHANGE*TIMESTEP_SIZE); // Fertiliser application rates in kg/ha - public static final double MIN_FERT_AMOUNT = getDoubleProperty("MIN_FERT_AMOUNT", 5.0); - public static final double MID_FERT_AMOUNT = getDoubleProperty("MID_FERT_AMOUNT", 20.0); - public static final double MAX_FERT_AMOUNT = getDoubleProperty("MAX_FERT_AMOUNT", 200.0); - public static final int FERT_AMOUNT_PADDING = getIntProperty("FERT_AMOUNT_PADDING", 3);; + public static final double MIN_FERT_AMOUNT = getDoubleProperty("MIN_FERT_AMOUNT", 0.0); + public static final double MID_FERT_AMOUNT = getDoubleProperty("MID_FERT_AMOUNT", 200.0); + public static final double MAX_FERT_AMOUNT = getDoubleProperty("MAX_FERT_AMOUNT", 1000.0); + public static final int FERT_AMOUNT_PADDING = getIntProperty("FERT_AMOUNT_PADDING", 4);; // Other model parameters public static final boolean CHANGE_DEMAND_YEAR = IS_CALIBRATION_RUN ? false : getBooleanProperty("CHANGE_DEMAND_YEAR", true); @@ -199,4 +206,4 @@ public class ModelConfig { public static final String 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 final int LPJG_TIMESTEP_SIZE = 5; -} \ No newline at end of file +} diff --git a/src/ac/ed/lurg/ModelMain.java b/src/ac/ed/lurg/ModelMain.java index 3f92fa07..563f3015 100644 --- a/src/ac/ed/lurg/ModelMain.java +++ b/src/ac/ed/lurg/ModelMain.java @@ -157,7 +157,7 @@ public class ModelMain { } // some hacky code for debug purposes that keeps each gams gdx file - if (ca.getCountry().getName().equals("Spain")) { +/* if (ca.getCountry().getName().equals("Spain")) { try { Files.copy( FileSystems.getDefault().getPath("/Users/peteralexander/Documents/R_Workspace/UNPLUM/temp/GamsTmp/_gams_java_gdb1.gdx"), @@ -165,9 +165,9 @@ public class ModelMain { , StandardCopyOption.REPLACE_EXISTING); } catch (IOException e) { // TODO Auto-generated catch block - e.printStackTrace(); + LogWriter.printException(e); } - } + } */ // update global rasters globalLandUseRaster.putAll(result.getLandUses()); @@ -539,4 +539,4 @@ public class ModelMain { return initialStockLevels; } -} \ No newline at end of file +} diff --git a/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java b/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java index efb19bd7..8e1703ad 100644 --- a/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java +++ b/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java @@ -45,7 +45,7 @@ public class GamsLocationOptimiser { public GamsLocationOutput run() { - File workingDirectory = new File(ModelConfig.TEMP_DIR, "GamsTmp"); + File workingDirectory = new File(ModelConfig.TEMP_DIR); workingDirectory.mkdir(); GAMSWorkspaceInfo wsInfo = new GAMSWorkspaceInfo(); @@ -374,4 +374,4 @@ public class GamsLocationOptimiser { LogWriter.print(e); } } -} \ No newline at end of file +} diff --git a/src/ac/ed/lurg/yield/LPJYieldResponseMapReader.java b/src/ac/ed/lurg/yield/LPJYieldResponseMapReader.java index 771526c0..901ecab4 100644 --- a/src/ac/ed/lurg/yield/LPJYieldResponseMapReader.java +++ b/src/ac/ed/lurg/yield/LPJYieldResponseMapReader.java @@ -53,7 +53,7 @@ public class LPJYieldResponseMapReader { AbstractTabularRasterReader<YieldResponsesItem> nppReader = new AbstractTabularRasterReader<YieldResponsesItem>("\\s+", 10, yieldRaster) { protected void setData(RasterKey key, YieldResponsesItem item, Map<String, Double> rowValues) { - double adjFactor = 10 * ModelConfig.PASTURE_HARVEST_FRACTION / 0.446; // 10 for kg/m2 to t/ha, 0.446 carbon units / dry matter, from Osaki, M., Shinano, T., Tadano, T., 1992. Carbon-nitrogen interaction in field crop production. Soil Science and Plant Nutrition 38, 553–564. + double adjFactor = 10 * ModelConfig.PASTURE_HARVEST_FRACTION / 0.446; // 10 for kg/m2 to t/ha, 0.446 carbon units / dry matter, from Osaki, M., Shinano, T., Tadano, T., 1992. Carbon-nitrogen interaction in field crop production. Soil Science and Plant Nutrition 38, 553-564. for (FertiliserRate fert : FertiliserRate.values()) { double pastureYield; @@ -115,4 +115,4 @@ public class LPJYieldResponseMapReader { item.setYield(yieldType, crop, yieldAdj); // applying the calibration factor can't go in YieldResponsesItem.setYield as this is also called from elsewhere } -} \ No newline at end of file +} -- GitLab