diff --git a/GAMS/IntExtOpt.gms b/GAMS/IntExtOpt.gms index 8d85f6630fe55ca63ace30fd587cc7e6f3e709c0..1383000ce9ec6f08641500706afc387615704ca8 100644 --- a/GAMS/IntExtOpt.gms +++ b/GAMS/IntExtOpt.gms @@ -52,9 +52,9 @@ $load fertParam, irrigParam, otherIParam, exportPrices, importPrices, maxNetImpo $load meatEfficency, otherICost, irrigCost, irrigMaxRate, irrigConstraint, fertiliserUnitCost, domesticPriceMarkup $gdxin - SCALAR delta use to smooth power function see 7.5 www.gams.com dd docs solversconopt.pdf / 0.00000000001 / + SCALAR delta use to smooth power function see 7.5 www.gams.com dd docs solversconopt.pdf / 0.00000000001 /; - SCALAR minDemandPerCereal / 0.1 /; + SCALAR minDemandPerCereal / 0.0 /; previousArea(crop_less_pasture, location) = previousArea(crop_less_pasture, location) * (1.0 - unhandledCropArea); diff --git a/hind1970/data/bioenergy_data_from_IMAGE_melt.csv b/hind1970/data/bioenergy_data_from_IMAGE_melt.csv new file mode 100644 index 0000000000000000000000000000000000000000..80bfafbf8a85d53f75d4aa7f2308edc07a3e56ab --- /dev/null +++ b/hind1970/data/bioenergy_data_from_IMAGE_melt.csv @@ -0,0 +1 @@ +MODEL,SCENARIO,REGION,Variable,Unit,Year,value diff --git a/hindcast/hind_config.properties b/hindcast/hind_config.properties index 8e38296faee2038a0d371fffe53f8e605d075d50..eb085a44d99239cc0870144408cc09b217e1210e 100644 --- a/hindcast/hind_config.properties +++ b/hindcast/hind_config.properties @@ -2,30 +2,40 @@ BASE_DIR=/Users/peteralexander/Documents/R_Workspace/UNPLUM/hind1970 INITAL_LAND_COVER_FILENAME=hurtt_1970.txt BASE_YEAR=1970 SSP_SCENARIO=HINDCAST -YIELD_DIR=/Users/peteralexander/Documents/LURG/LPJ/19Jan2017/LPJG_PLUM_expt1.1_1971-2005_forED +YIELD_DIR=/Users/peteralexander/Documents/LURG/LPJ/29May2017/LPJG_PLUM_expt1.1_1961-2015_ipsl_LUfixes_10patchesFrom5patches_forED_20170528170903 +#YIELD_DIR=/Users/peteralexander/Documents/LURG/LPJ/19Jan2017/LPJG_PLUM_expt1.1_1971-2005_forED #YIELD_DIR=/Users/peteralexander/Documents/LURG/LPJ/IPSL/LPJG_PLUM_expt1.1_1966-2005_ipsl_lessIO_forED # irritatingly the gams file is also found under the BASE_DIR, and don't want to duplicate so need to specify exactly GAMS_MODEL=/Users/peteralexander/Documents/R_Workspace/UNPLUM/GAMS/IntExtOpt.gms -DEBUG_LIMIT_COUNTRIES=false -DEBUG_COUNTRY_NAME=China +DEBUG_LIMIT_COUNTRIES=true +DEBUG_COUNTRY_NAME=Germany #Europe & Central Asia_other #Russian Federation #Europe & Central Asia_other -IS_CALIBRATION_RUN = false +IS_CALIBRATION_RUN = true -END_TIMESTEP=20 +END_TIMESTEP=0 TIMESTEP_SIZE=2 INTERPOLATE_OUTPUT_YEARS = false BIOENERGY_CHANGE_START_YEAR=1970 BIOENERGY_CHANGE_END_YEAR=2010 -BIOENERGY_CHANGE_ANNUAL_RATE=0.35 +BIOENERGY_CHANGE_ANNUAL_RATE=0.35 PASTURE_INCREASE_COST=0.01 AGRI_EXPANSION_COST_BASE=0.01 AGRI_EXPANSION_COST_BASE_MANAGED_FOREST=0.1 +#Yields too high by factor of 10 +#CALIB_FACTOR_WHEAT = 0.0986 +#CALIB_FACTOR_MAIZE = 0.0625 +#CALIB_FACTOR_RICE = 0.1105 +#CALIB_FACTOR_OILCROPS = 0.0554 +#CALIB_FACTOR_PULSES = 0.0615 +#CALIB_FACTOR_STARCHY_ROOTS = 0.6211 + +NUM_YIELD_CLUSTERS=500 diff --git a/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java b/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java index a86196c23e18e95374ce28176467ac30f2b8cefd..fcb27e8a6f68d7365f09e7f340789cbeff28f4be 100644 --- a/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java +++ b/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java @@ -91,11 +91,6 @@ public class GamsLocationOptimiser { GAMSParameter landP = inDB.addParameter("suitableLandArea", 1); GAMSParameter agriExpansionCostP = inDB.addParameter("agriExpansionCost", 1); - addScalar(inDB, "cropIncCost", ModelConfig.CROP_INCREASE_COST, 3); - addScalar(inDB, "cropDecCost", ModelConfig.CROP_DECREASE_COST, 3); - addScalar(inDB, "pastureDecCost", ModelConfig.PASTURE_DECREASE_COST, 3); - addScalar(inDB, "pastureIncCost", ModelConfig.PASTURE_INCREASE_COST, 3); - double totalAgriLand = 0; for (Map.Entry<Integer, ? extends LandUseItem> entry : inputData.getPreviousLandUse().entrySet()) { @@ -225,6 +220,10 @@ public class GamsLocationOptimiser { } LogWriter.print("\n"); + addScalar(inDB, "cropIncCost", ModelConfig.CROP_INCREASE_COST, 3); + addScalar(inDB, "cropDecCost", ModelConfig.CROP_DECREASE_COST, 3); + addScalar(inDB, "pastureDecCost", ModelConfig.PASTURE_DECREASE_COST, 3); + addScalar(inDB, "pastureIncCost", ModelConfig.PASTURE_INCREASE_COST, 3); addScalar(inDB, "meatEfficency", countryInput.getMeatEfficiency(), 3); addScalar(inDB, "fertiliserUnitCost", ModelConfig.FERTILISER_MAX_COST, 3); addScalar(inDB, "otherICost",ModelConfig.OTHER_INTENSITY_COST, 3); diff --git a/src/ac/ed/lurg/demand/DemandManager.java b/src/ac/ed/lurg/demand/DemandManager.java index cd5925894a512007fb820bc29ed16fe8c66cfed7..b21ef8d2b8df426db14208e358bc517a126fb616 100644 --- a/src/ac/ed/lurg/demand/DemandManager.java +++ b/src/ac/ed/lurg/demand/DemandManager.java @@ -40,16 +40,15 @@ public class DemandManager { for (SingleCountry c : compositeCountryManager.getAllForCompositeCountry(cc)) { SspData baseSspData = sspManager.get(ssp_scenario, ModelConfig.BASE_YEAR, c); - SspData sd = sspManager.get(ssp_scenario, year, c); - - LogWriter.println("Got ssp data for " + c.getCountryName() + " of " + sd); - - if (sd == null) { - LogWriter.printlnError("No ssp data for " + ssp_scenario + ", " + year + ", " + c.getCountryName()); + + if (baseSspData == null || sd == null) { + LogWriter.printlnError(String.format("No baseSspData or ssp for %s, baseYr:%d, year:%d, %s, base:%s, sd:%s. Skipping", ssp_scenario, ModelConfig.BASE_YEAR, year, c.getCountryName(), baseSspData, sd)); continue; } + LogWriter.println("Got ssp data for " + c.getCountryName() + " of " + sd); + for (CommodityType commodity : CommodityType.getAllItems()) { ModelFitType fitType = commodity.isAnimalProduct() ? ModelFitType.LOGISTIC : ModelFitType.LOGLINEAR; diff --git a/src/ac/sac/raster/AbstractTabularRasterReader.java b/src/ac/sac/raster/AbstractTabularRasterReader.java index 67c0440d1795c154c028a3e78785de03c466318f..998f5373f5d5cea266c875e80dd6d71a0b0e36c4 100644 --- a/src/ac/sac/raster/AbstractTabularRasterReader.java +++ b/src/ac/sac/raster/AbstractTabularRasterReader.java @@ -81,7 +81,7 @@ public abstract class AbstractTabularRasterReader<D extends RasterItem> { rowValues.put(dataColNames[i], d); } catch (Exception e) { - LogWriter.print("Problem getting col: " + i + " for x: " + x + ", y: " + y + " - " + e.getMessage()); + LogWriter.println("Problem getting col: " + i + " for x: " + x + ", y: " + y + " - " + e.getMessage()); } }