diff --git a/GAMS/IntExtOpt.gms b/GAMS/IntExtOpt.gms index 94ba5b3cd5c56383b0aeacbe4be094ea20b5682c..eef44d50a59999fe31b4a9dfd250485f91ecaba8 100644 --- a/GAMS/IntExtOpt.gms +++ b/GAMS/IntExtOpt.gms @@ -63,7 +63,7 @@ $gdxin pasture 1 / ; PARAMETER baseCost(crop) cost per ha before intensity values not including fertiliser or irrigation i.e. seed spray and other. In 1000 $ per ha - / wheat 0.31 + / wheat 0.32 maize 0.26 rice 0.4 oilcrops 0.24 @@ -184,7 +184,7 @@ $gdxin ( SUM((crop, location), area(crop, location) * unitCost(crop, location)) + SUM(location, - 1.5 * agriLandExpansion(location) + + 1.0 * agriLandExpansion(location) + 0.5 * cropIncrease(location) + 0.5 * cropDecrease(location) + 0.5 * pastureIncrease(location) + diff --git a/compilePlum.sh b/compilePlum.sh deleted file mode 100755 index 6832de0d646d2742487537ee5e858b478e5cd9a5..0000000000000000000000000000000000000000 --- a/compilePlum.sh +++ /dev/null @@ -1,2 +0,0 @@ -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 - diff --git a/data/tradeBarriers.csv b/data/tradeBarriers.csv new file mode 100644 index 0000000000000000000000000000000000000000..8f237087a493ce42ad38d3212a48181911fcf80f --- /dev/null +++ b/data/tradeBarriers.csv @@ -0,0 +1,1329 @@ +Country,crop,Tariff +Austria,Ruminants,7.4 +Belgium,Ruminants,7.4 +Bulgaria,Ruminants,7.4 +Croatia,Ruminants,7.4 +Cyprus,Ruminants,7.4 +Czech Republic,Ruminants,7.4 +Denmark,Ruminants,7.4 +Estonia,Ruminants,7.4 +Finland,Ruminants,7.4 +France,Ruminants,7.4 +Germany,Ruminants,7.4 +Greece,Ruminants,7.4 +Hungary,Ruminants,7.4 +Ireland,Ruminants,7.4 +Italy,Ruminants,7.4 +Latvia,Ruminants,7.4 +Lithuania,Ruminants,7.4 +Luxembourg,Ruminants,7.4 +Malta,Ruminants,7.4 +Netherlands,Ruminants,7.4 +Poland,Ruminants,7.4 +Portugal,Ruminants,7.4 +Romania,Ruminants,7.4 +Slovakia,Ruminants,7.4 +Slovenia,Ruminants,7.4 +Spain,Ruminants,7.4 +Sweden,Ruminants,7.4 +United Kingdom,Ruminants,7.4 +Afghanistan,Ruminants,10.8 +Albania,Ruminants,10.8 +Algeria,Ruminants,10.4 +Angola,Ruminants,10.4 +Argentina,Ruminants,4.7 +Armenia,Ruminants,10.8 +Australia,Ruminants,1 +Azerbaijan,Ruminants,10.8 +Bahamas,Ruminants,8.6 +Bangladesh,Ruminants,6.3 +Barbados,Ruminants,8.6 +Belarus,Ruminants,10.8 +Belize,Ruminants,10.4 +Benin,Ruminants,10.4 +Bolivia (Plurinational State of),Ruminants,8.6 +Bosnia and Herzegovina,Ruminants,6.2 +Botswana,Ruminants,10.4 +Brazil,Ruminants,8.6 +Brunei Darussalam,Ruminants,10.8 +Burkina Faso,Ruminants,10.4 +Cabo Verde,Ruminants,10.4 +Cambodia,Ruminants,10.4 +Cameroon,Ruminants,10.4 +Canada,Ruminants,1.3 +Chad,Ruminants,10.4 +Chile,Ruminants,8.6 +China,Ruminants,50.8 +Colombia,Ruminants,8.6 +Congo,Ruminants,10.4 +Costa Rica,Ruminants,8.6 +Cote d'Ivoire,Ruminants,10.4 +Cuba,Ruminants,8.6 +Democratic Republic of the Congo,Ruminants,10.4 +Djibouti,Ruminants,10.4 +Dominican Republic,Ruminants,8.6 +Ecuador,Ruminants,8.6 +Egypt,Ruminants,10.4 +El Salvador,Ruminants,8.6 +Ethiopia,Ruminants,10.4 +Fiji,Ruminants,32.9 +French Polynesia,Ruminants,32.9 +Gabon,Ruminants,10.4 +Gambia,Ruminants,10.4 +Georgia,Ruminants,6.2 +Ghana,Ruminants,10.4 +Guatemala,Ruminants,8.6 +Guinea,Ruminants,32.9 +Guinea-Bissau,Ruminants,10.4 +Guyana,Ruminants,10.4 +Haiti,Ruminants,8.6 +Honduras,Ruminants,8.6 +Iceland,Ruminants,29.5 +India,Ruminants,25.5 +Indonesia,Ruminants,1.8 +Iran (Islamic Republic of),Ruminants,10.8 +Iraq,Ruminants,10.8 +Israel,Ruminants,10.8 +Jamaica,Ruminants,8.6 +Japan,Ruminants,27.8 +Jordan,Ruminants,10.4 +Kazakhstan,Ruminants,10.8 +Kenya,Ruminants,10.4 +Kuwait,Ruminants,10.8 +Kyrgyzstan,Ruminants,10.8 +Lao People's Democratic Republic,Ruminants,17.8 +Lebanon,Ruminants,10.8 +Lesotho,Ruminants,10.4 +Liberia,Ruminants,10.4 +Libya,Ruminants,10.4 +Madagascar,Ruminants,10.4 +Malawi,Ruminants,10.4 +Malaysia,Ruminants,17.8 +Maldives,Ruminants,10.4 +Mali,Ruminants,10.4 +Mauritania,Ruminants,10.4 +Mauritius,Ruminants,32.9 +Mexico,Ruminants,10.7 +Mongolia,Ruminants,10.8 +Montenegro,Ruminants,6.2 +Morocco,Ruminants,10.4 +Mozambique,Ruminants,10.4 +Myanmar,Ruminants,17.8 +Namibia,Ruminants,10.4 +Nepal,Ruminants,16.8 +New Caledonia,Ruminants,32.9 +New Zealand,Ruminants,0.4 +Nicaragua,Ruminants,8.6 +Niger,Ruminants,10.4 +Nigeria,Ruminants,10.4 +Norway,Ruminants,29.5 +Oman,Ruminants,10.8 +Pakistan,Ruminants,10.8 +Panama,Ruminants,8.6 +Paraguay,Ruminants,8.6 +Peru,Ruminants,8.6 +Philippines,Ruminants,32.9 +Republic of Korea,Ruminants,16.8 +Republic of Moldova,Ruminants,6.2 +Rwanda,Ruminants,10.4 +Saint Lucia,Ruminants,8.6 +Saint Vincent and the Grenadines,Ruminants,8.6 +Samoa,Ruminants,17.8 +Sao Tome and Principe,Ruminants,10.4 +Saudi Arabia,Ruminants,10.8 +Senegal,Ruminants,10.4 +Serbia,Ruminants,10.8 +Sierra Leone,Ruminants,10.4 +Solomon Islands,Ruminants,32.9 +Somalia,Ruminants,10.4 +South Africa,Ruminants,10.4 +South Sudan,Ruminants,10.4 +Sri Lanka,Ruminants,13.4 +Sudan,Ruminants,10.4 +Suriname,Ruminants,10.4 +Swaziland,Ruminants,10.4 +Switzerland,Ruminants,29.5 +Tajikistan,Ruminants,10.8 +Thailand,Ruminants,17.8 +The former Yugoslav Republic of Macedonia,Ruminants,10.8 +Timor-Leste,Ruminants,10.4 +Togo,Ruminants,10.4 +Trinidad and Tobago,Ruminants,8.6 +Tunisia,Ruminants,10.4 +Turkey,Ruminants,15.9 +Turkmenistan,Ruminants,10.8 +Uganda,Ruminants,10.4 +Ukraine,Ruminants,6.2 +United Arab Emirates,Ruminants,10.8 +United Republic of Tanzania,Ruminants,10.4 +United States of America,Ruminants,1.1 +Uruguay,Ruminants,10.4 +Uzbekistan,Ruminants,10.8 +Vanuatu,Ruminants,32.9 +Venezuela (Bolivarian Republic of),Ruminants,8.6 +Viet Nam,Ruminants,32.9 +Yemen,Ruminants,10.4 +Zambia,Ruminants,10.4 +Zimbabwe,Ruminants,10.4 +Austria,WheatBarleyOats,7.4 +Belgium,WheatBarleyOats,7.4 +Bulgaria,WheatBarleyOats,7.4 +Croatia,WheatBarleyOats,7.4 +Cyprus,WheatBarleyOats,7.4 +Czech Republic,WheatBarleyOats,7.4 +Denmark,WheatBarleyOats,7.4 +Estonia,WheatBarleyOats,7.4 +Finland,WheatBarleyOats,7.4 +France,WheatBarleyOats,7.4 +Germany,WheatBarleyOats,7.4 +Greece,WheatBarleyOats,7.4 +Hungary,WheatBarleyOats,7.4 +Ireland,WheatBarleyOats,7.4 +Italy,WheatBarleyOats,7.4 +Latvia,WheatBarleyOats,7.4 +Lithuania,WheatBarleyOats,7.4 +Luxembourg,WheatBarleyOats,7.4 +Malta,WheatBarleyOats,7.4 +Netherlands,WheatBarleyOats,7.4 +Poland,WheatBarleyOats,7.4 +Portugal,WheatBarleyOats,7.4 +Romania,WheatBarleyOats,7.4 +Slovakia,WheatBarleyOats,7.4 +Slovenia,WheatBarleyOats,7.4 +Spain,WheatBarleyOats,7.4 +Sweden,WheatBarleyOats,7.4 +United Kingdom,WheatBarleyOats,7.4 +Afghanistan,WheatBarleyOats,10.8 +Albania,WheatBarleyOats,10.8 +Algeria,WheatBarleyOats,10.4 +Angola,WheatBarleyOats,10.4 +Argentina,WheatBarleyOats,4.7 +Armenia,WheatBarleyOats,10.8 +Australia,WheatBarleyOats,1 +Azerbaijan,WheatBarleyOats,10.8 +Bahamas,WheatBarleyOats,8.6 +Bangladesh,WheatBarleyOats,6.3 +Barbados,WheatBarleyOats,8.6 +Belarus,WheatBarleyOats,10.8 +Belize,WheatBarleyOats,10.4 +Benin,WheatBarleyOats,10.4 +Bolivia (Plurinational State of),WheatBarleyOats,8.6 +Bosnia and Herzegovina,WheatBarleyOats,6.2 +Botswana,WheatBarleyOats,10.4 +Brazil,WheatBarleyOats,8.6 +Brunei Darussalam,WheatBarleyOats,10.8 +Burkina Faso,WheatBarleyOats,10.4 +Cabo Verde,WheatBarleyOats,10.4 +Cambodia,WheatBarleyOats,10.4 +Cameroon,WheatBarleyOats,10.4 +Canada,WheatBarleyOats,1.3 +Chad,WheatBarleyOats,10.4 +Chile,WheatBarleyOats,8.6 +China,WheatBarleyOats,50.8 +Colombia,WheatBarleyOats,8.6 +Congo,WheatBarleyOats,10.4 +Costa Rica,WheatBarleyOats,8.6 +Cote d'Ivoire,WheatBarleyOats,10.4 +Cuba,WheatBarleyOats,8.6 +Democratic Republic of the Congo,WheatBarleyOats,10.4 +Djibouti,WheatBarleyOats,10.4 +Dominican Republic,WheatBarleyOats,8.6 +Ecuador,WheatBarleyOats,8.6 +Egypt,WheatBarleyOats,10.4 +El Salvador,WheatBarleyOats,8.6 +Ethiopia,WheatBarleyOats,10.4 +Fiji,WheatBarleyOats,32.9 +French Polynesia,WheatBarleyOats,32.9 +Gabon,WheatBarleyOats,10.4 +Gambia,WheatBarleyOats,10.4 +Georgia,WheatBarleyOats,6.2 +Ghana,WheatBarleyOats,10.4 +Guatemala,WheatBarleyOats,8.6 +Guinea,WheatBarleyOats,32.9 +Guinea-Bissau,WheatBarleyOats,10.4 +Guyana,WheatBarleyOats,10.4 +Haiti,WheatBarleyOats,8.6 +Honduras,WheatBarleyOats,8.6 +Iceland,WheatBarleyOats,29.5 +India,WheatBarleyOats,25.5 +Indonesia,WheatBarleyOats,1.8 +Iran (Islamic Republic of),WheatBarleyOats,10.8 +Iraq,WheatBarleyOats,10.8 +Israel,WheatBarleyOats,10.8 +Jamaica,WheatBarleyOats,8.6 +Japan,WheatBarleyOats,27.8 +Jordan,WheatBarleyOats,10.4 +Kazakhstan,WheatBarleyOats,10.8 +Kenya,WheatBarleyOats,10.4 +Kuwait,WheatBarleyOats,10.8 +Kyrgyzstan,WheatBarleyOats,10.8 +Lao People's Democratic Republic,WheatBarleyOats,17.8 +Lebanon,WheatBarleyOats,10.8 +Lesotho,WheatBarleyOats,10.4 +Liberia,WheatBarleyOats,10.4 +Libya,WheatBarleyOats,10.4 +Madagascar,WheatBarleyOats,10.4 +Malawi,WheatBarleyOats,10.4 +Malaysia,WheatBarleyOats,17.8 +Maldives,WheatBarleyOats,10.4 +Mali,WheatBarleyOats,10.4 +Mauritania,WheatBarleyOats,10.4 +Mauritius,WheatBarleyOats,32.9 +Mexico,WheatBarleyOats,10.7 +Mongolia,WheatBarleyOats,10.8 +Montenegro,WheatBarleyOats,6.2 +Morocco,WheatBarleyOats,10.4 +Mozambique,WheatBarleyOats,10.4 +Myanmar,WheatBarleyOats,17.8 +Namibia,WheatBarleyOats,10.4 +Nepal,WheatBarleyOats,16.8 +New Caledonia,WheatBarleyOats,32.9 +New Zealand,WheatBarleyOats,0.4 +Nicaragua,WheatBarleyOats,8.6 +Niger,WheatBarleyOats,10.4 +Nigeria,WheatBarleyOats,10.4 +Norway,WheatBarleyOats,29.5 +Oman,WheatBarleyOats,10.8 +Pakistan,WheatBarleyOats,10.8 +Panama,WheatBarleyOats,8.6 +Paraguay,WheatBarleyOats,8.6 +Peru,WheatBarleyOats,8.6 +Philippines,WheatBarleyOats,32.9 +Republic of Korea,WheatBarleyOats,16.8 +Republic of Moldova,WheatBarleyOats,6.2 +Rwanda,WheatBarleyOats,10.4 +Saint Lucia,WheatBarleyOats,8.6 +Saint Vincent and the Grenadines,WheatBarleyOats,8.6 +Samoa,WheatBarleyOats,17.8 +Sao Tome and Principe,WheatBarleyOats,10.4 +Saudi Arabia,WheatBarleyOats,10.8 +Senegal,WheatBarleyOats,10.4 +Serbia,WheatBarleyOats,10.8 +Sierra Leone,WheatBarleyOats,10.4 +Solomon Islands,WheatBarleyOats,32.9 +Somalia,WheatBarleyOats,10.4 +South Africa,WheatBarleyOats,10.4 +South Sudan,WheatBarleyOats,10.4 +Sri Lanka,WheatBarleyOats,13.4 +Sudan,WheatBarleyOats,10.4 +Suriname,WheatBarleyOats,10.4 +Swaziland,WheatBarleyOats,10.4 +Switzerland,WheatBarleyOats,29.5 +Tajikistan,WheatBarleyOats,10.8 +Thailand,WheatBarleyOats,17.8 +The former Yugoslav Republic of Macedonia,WheatBarleyOats,10.8 +Timor-Leste,WheatBarleyOats,10.4 +Togo,WheatBarleyOats,10.4 +Trinidad and Tobago,WheatBarleyOats,8.6 +Tunisia,WheatBarleyOats,10.4 +Turkey,WheatBarleyOats,15.9 +Turkmenistan,WheatBarleyOats,10.8 +Uganda,WheatBarleyOats,10.4 +Ukraine,WheatBarleyOats,6.2 +United Arab Emirates,WheatBarleyOats,10.8 +United Republic of Tanzania,WheatBarleyOats,10.4 +United States of America,WheatBarleyOats,1.1 +Uruguay,WheatBarleyOats,10.4 +Uzbekistan,WheatBarleyOats,10.8 +Vanuatu,WheatBarleyOats,32.9 +Venezuela (Bolivarian Republic of),WheatBarleyOats,8.6 +Viet Nam,WheatBarleyOats,32.9 +Yemen,WheatBarleyOats,10.4 +Zambia,WheatBarleyOats,10.4 +Zimbabwe,WheatBarleyOats,10.4 +Austria,Monogastrics,7.4 +Belgium,Monogastrics,7.4 +Bulgaria,Monogastrics,7.4 +Croatia,Monogastrics,7.4 +Cyprus,Monogastrics,7.4 +Czech Republic,Monogastrics,7.4 +Denmark,Monogastrics,7.4 +Estonia,Monogastrics,7.4 +Finland,Monogastrics,7.4 +France,Monogastrics,7.4 +Germany,Monogastrics,7.4 +Greece,Monogastrics,7.4 +Hungary,Monogastrics,7.4 +Ireland,Monogastrics,7.4 +Italy,Monogastrics,7.4 +Latvia,Monogastrics,7.4 +Lithuania,Monogastrics,7.4 +Luxembourg,Monogastrics,7.4 +Malta,Monogastrics,7.4 +Netherlands,Monogastrics,7.4 +Poland,Monogastrics,7.4 +Portugal,Monogastrics,7.4 +Romania,Monogastrics,7.4 +Slovakia,Monogastrics,7.4 +Slovenia,Monogastrics,7.4 +Spain,Monogastrics,7.4 +Sweden,Monogastrics,7.4 +United Kingdom,Monogastrics,7.4 +Afghanistan,Monogastrics,10.8 +Albania,Monogastrics,10.8 +Algeria,Monogastrics,10.4 +Angola,Monogastrics,10.4 +Argentina,Monogastrics,4.7 +Armenia,Monogastrics,10.8 +Australia,Monogastrics,1 +Azerbaijan,Monogastrics,10.8 +Bahamas,Monogastrics,8.6 +Bangladesh,Monogastrics,6.3 +Barbados,Monogastrics,8.6 +Belarus,Monogastrics,10.8 +Belize,Monogastrics,10.4 +Benin,Monogastrics,10.4 +Bolivia (Plurinational State of),Monogastrics,8.6 +Bosnia and Herzegovina,Monogastrics,6.2 +Botswana,Monogastrics,10.4 +Brazil,Monogastrics,8.6 +Brunei Darussalam,Monogastrics,10.8 +Burkina Faso,Monogastrics,10.4 +Cabo Verde,Monogastrics,10.4 +Cambodia,Monogastrics,10.4 +Cameroon,Monogastrics,10.4 +Canada,Monogastrics,1.3 +Chad,Monogastrics,10.4 +Chile,Monogastrics,8.6 +China,Monogastrics,50.8 +Colombia,Monogastrics,8.6 +Congo,Monogastrics,10.4 +Costa Rica,Monogastrics,8.6 +Cote d'Ivoire,Monogastrics,10.4 +Cuba,Monogastrics,8.6 +Democratic Republic of the Congo,Monogastrics,10.4 +Djibouti,Monogastrics,10.4 +Dominican Republic,Monogastrics,8.6 +Ecuador,Monogastrics,8.6 +Egypt,Monogastrics,10.4 +El Salvador,Monogastrics,8.6 +Ethiopia,Monogastrics,10.4 +Fiji,Monogastrics,32.9 +French Polynesia,Monogastrics,32.9 +Gabon,Monogastrics,10.4 +Gambia,Monogastrics,10.4 +Georgia,Monogastrics,6.2 +Ghana,Monogastrics,10.4 +Guatemala,Monogastrics,8.6 +Guinea,Monogastrics,32.9 +Guinea-Bissau,Monogastrics,10.4 +Guyana,Monogastrics,10.4 +Haiti,Monogastrics,8.6 +Honduras,Monogastrics,8.6 +Iceland,Monogastrics,29.5 +India,Monogastrics,25.5 +Indonesia,Monogastrics,1.8 +Iran (Islamic Republic of),Monogastrics,10.8 +Iraq,Monogastrics,10.8 +Israel,Monogastrics,10.8 +Jamaica,Monogastrics,8.6 +Japan,Monogastrics,27.8 +Jordan,Monogastrics,10.4 +Kazakhstan,Monogastrics,10.8 +Kenya,Monogastrics,10.4 +Kuwait,Monogastrics,10.8 +Kyrgyzstan,Monogastrics,10.8 +Lao People's Democratic Republic,Monogastrics,17.8 +Lebanon,Monogastrics,10.8 +Lesotho,Monogastrics,10.4 +Liberia,Monogastrics,10.4 +Libya,Monogastrics,10.4 +Madagascar,Monogastrics,10.4 +Malawi,Monogastrics,10.4 +Malaysia,Monogastrics,17.8 +Maldives,Monogastrics,10.4 +Mali,Monogastrics,10.4 +Mauritania,Monogastrics,10.4 +Mauritius,Monogastrics,32.9 +Mexico,Monogastrics,10.7 +Mongolia,Monogastrics,10.8 +Montenegro,Monogastrics,6.2 +Morocco,Monogastrics,10.4 +Mozambique,Monogastrics,10.4 +Myanmar,Monogastrics,17.8 +Namibia,Monogastrics,10.4 +Nepal,Monogastrics,16.8 +New Caledonia,Monogastrics,32.9 +New Zealand,Monogastrics,0.4 +Nicaragua,Monogastrics,8.6 +Niger,Monogastrics,10.4 +Nigeria,Monogastrics,10.4 +Norway,Monogastrics,29.5 +Oman,Monogastrics,10.8 +Pakistan,Monogastrics,10.8 +Panama,Monogastrics,8.6 +Paraguay,Monogastrics,8.6 +Peru,Monogastrics,8.6 +Philippines,Monogastrics,32.9 +Republic of Korea,Monogastrics,16.8 +Republic of Moldova,Monogastrics,6.2 +Rwanda,Monogastrics,10.4 +Saint Lucia,Monogastrics,8.6 +Saint Vincent and the Grenadines,Monogastrics,8.6 +Samoa,Monogastrics,17.8 +Sao Tome and Principe,Monogastrics,10.4 +Saudi Arabia,Monogastrics,10.8 +Senegal,Monogastrics,10.4 +Serbia,Monogastrics,10.8 +Sierra Leone,Monogastrics,10.4 +Solomon Islands,Monogastrics,32.9 +Somalia,Monogastrics,10.4 +South Africa,Monogastrics,10.4 +South Sudan,Monogastrics,10.4 +Sri Lanka,Monogastrics,13.4 +Sudan,Monogastrics,10.4 +Suriname,Monogastrics,10.4 +Swaziland,Monogastrics,10.4 +Switzerland,Monogastrics,29.5 +Tajikistan,Monogastrics,10.8 +Thailand,Monogastrics,17.8 +The former Yugoslav Republic of Macedonia,Monogastrics,10.8 +Timor-Leste,Monogastrics,10.4 +Togo,Monogastrics,10.4 +Trinidad and Tobago,Monogastrics,8.6 +Tunisia,Monogastrics,10.4 +Turkey,Monogastrics,15.9 +Turkmenistan,Monogastrics,10.8 +Uganda,Monogastrics,10.4 +Ukraine,Monogastrics,6.2 +United Arab Emirates,Monogastrics,10.8 +United Republic of Tanzania,Monogastrics,10.4 +United States of America,Monogastrics,1.1 +Uruguay,Monogastrics,10.4 +Uzbekistan,Monogastrics,10.8 +Vanuatu,Monogastrics,32.9 +Venezuela (Bolivarian Republic of),Monogastrics,8.6 +Viet Nam,Monogastrics,32.9 +Yemen,Monogastrics,10.4 +Zambia,Monogastrics,10.4 +Zimbabwe,Monogastrics,10.4 +Austria,MaizeMilletSorghum,7.4 +Belgium,MaizeMilletSorghum,7.4 +Bulgaria,MaizeMilletSorghum,7.4 +Croatia,MaizeMilletSorghum,7.4 +Cyprus,MaizeMilletSorghum,7.4 +Czech Republic,MaizeMilletSorghum,7.4 +Denmark,MaizeMilletSorghum,7.4 +Estonia,MaizeMilletSorghum,7.4 +Finland,MaizeMilletSorghum,7.4 +France,MaizeMilletSorghum,7.4 +Germany,MaizeMilletSorghum,7.4 +Greece,MaizeMilletSorghum,7.4 +Hungary,MaizeMilletSorghum,7.4 +Ireland,MaizeMilletSorghum,7.4 +Italy,MaizeMilletSorghum,7.4 +Latvia,MaizeMilletSorghum,7.4 +Lithuania,MaizeMilletSorghum,7.4 +Luxembourg,MaizeMilletSorghum,7.4 +Malta,MaizeMilletSorghum,7.4 +Netherlands,MaizeMilletSorghum,7.4 +Poland,MaizeMilletSorghum,7.4 +Portugal,MaizeMilletSorghum,7.4 +Romania,MaizeMilletSorghum,7.4 +Slovakia,MaizeMilletSorghum,7.4 +Slovenia,MaizeMilletSorghum,7.4 +Spain,MaizeMilletSorghum,7.4 +Sweden,MaizeMilletSorghum,7.4 +United Kingdom,MaizeMilletSorghum,7.4 +Afghanistan,MaizeMilletSorghum,10.8 +Albania,MaizeMilletSorghum,10.8 +Algeria,MaizeMilletSorghum,10.4 +Angola,MaizeMilletSorghum,10.4 +Argentina,MaizeMilletSorghum,4.7 +Armenia,MaizeMilletSorghum,10.8 +Australia,MaizeMilletSorghum,1 +Azerbaijan,MaizeMilletSorghum,10.8 +Bahamas,MaizeMilletSorghum,8.6 +Bangladesh,MaizeMilletSorghum,6.3 +Barbados,MaizeMilletSorghum,8.6 +Belarus,MaizeMilletSorghum,10.8 +Belize,MaizeMilletSorghum,10.4 +Benin,MaizeMilletSorghum,10.4 +Bolivia (Plurinational State of),MaizeMilletSorghum,8.6 +Bosnia and Herzegovina,MaizeMilletSorghum,6.2 +Botswana,MaizeMilletSorghum,10.4 +Brazil,MaizeMilletSorghum,8.6 +Brunei Darussalam,MaizeMilletSorghum,10.8 +Burkina Faso,MaizeMilletSorghum,10.4 +Cabo Verde,MaizeMilletSorghum,10.4 +Cambodia,MaizeMilletSorghum,10.4 +Cameroon,MaizeMilletSorghum,10.4 +Canada,MaizeMilletSorghum,1.3 +Chad,MaizeMilletSorghum,10.4 +Chile,MaizeMilletSorghum,8.6 +China,MaizeMilletSorghum,50.8 +Colombia,MaizeMilletSorghum,8.6 +Congo,MaizeMilletSorghum,10.4 +Costa Rica,MaizeMilletSorghum,8.6 +Cote d'Ivoire,MaizeMilletSorghum,10.4 +Cuba,MaizeMilletSorghum,8.6 +Democratic Republic of the Congo,MaizeMilletSorghum,10.4 +Djibouti,MaizeMilletSorghum,10.4 +Dominican Republic,MaizeMilletSorghum,8.6 +Ecuador,MaizeMilletSorghum,8.6 +Egypt,MaizeMilletSorghum,10.4 +El Salvador,MaizeMilletSorghum,8.6 +Ethiopia,MaizeMilletSorghum,10.4 +Fiji,MaizeMilletSorghum,32.9 +French Polynesia,MaizeMilletSorghum,32.9 +Gabon,MaizeMilletSorghum,10.4 +Gambia,MaizeMilletSorghum,10.4 +Georgia,MaizeMilletSorghum,6.2 +Ghana,MaizeMilletSorghum,10.4 +Guatemala,MaizeMilletSorghum,8.6 +Guinea,MaizeMilletSorghum,32.9 +Guinea-Bissau,MaizeMilletSorghum,10.4 +Guyana,MaizeMilletSorghum,10.4 +Haiti,MaizeMilletSorghum,8.6 +Honduras,MaizeMilletSorghum,8.6 +Iceland,MaizeMilletSorghum,29.5 +India,MaizeMilletSorghum,25.5 +Indonesia,MaizeMilletSorghum,1.8 +Iran (Islamic Republic of),MaizeMilletSorghum,10.8 +Iraq,MaizeMilletSorghum,10.8 +Israel,MaizeMilletSorghum,10.8 +Jamaica,MaizeMilletSorghum,8.6 +Japan,MaizeMilletSorghum,27.8 +Jordan,MaizeMilletSorghum,10.4 +Kazakhstan,MaizeMilletSorghum,10.8 +Kenya,MaizeMilletSorghum,10.4 +Kuwait,MaizeMilletSorghum,10.8 +Kyrgyzstan,MaizeMilletSorghum,10.8 +Lao People's Democratic Republic,MaizeMilletSorghum,17.8 +Lebanon,MaizeMilletSorghum,10.8 +Lesotho,MaizeMilletSorghum,10.4 +Liberia,MaizeMilletSorghum,10.4 +Libya,MaizeMilletSorghum,10.4 +Madagascar,MaizeMilletSorghum,10.4 +Malawi,MaizeMilletSorghum,10.4 +Malaysia,MaizeMilletSorghum,17.8 +Maldives,MaizeMilletSorghum,10.4 +Mali,MaizeMilletSorghum,10.4 +Mauritania,MaizeMilletSorghum,10.4 +Mauritius,MaizeMilletSorghum,32.9 +Mexico,MaizeMilletSorghum,10.7 +Mongolia,MaizeMilletSorghum,10.8 +Montenegro,MaizeMilletSorghum,6.2 +Morocco,MaizeMilletSorghum,10.4 +Mozambique,MaizeMilletSorghum,10.4 +Myanmar,MaizeMilletSorghum,17.8 +Namibia,MaizeMilletSorghum,10.4 +Nepal,MaizeMilletSorghum,16.8 +New Caledonia,MaizeMilletSorghum,32.9 +New Zealand,MaizeMilletSorghum,0.4 +Nicaragua,MaizeMilletSorghum,8.6 +Niger,MaizeMilletSorghum,10.4 +Nigeria,MaizeMilletSorghum,10.4 +Norway,MaizeMilletSorghum,29.5 +Oman,MaizeMilletSorghum,10.8 +Pakistan,MaizeMilletSorghum,10.8 +Panama,MaizeMilletSorghum,8.6 +Paraguay,MaizeMilletSorghum,8.6 +Peru,MaizeMilletSorghum,8.6 +Philippines,MaizeMilletSorghum,32.9 +Republic of Korea,MaizeMilletSorghum,16.8 +Republic of Moldova,MaizeMilletSorghum,6.2 +Rwanda,MaizeMilletSorghum,10.4 +Saint Lucia,MaizeMilletSorghum,8.6 +Saint Vincent and the Grenadines,MaizeMilletSorghum,8.6 +Samoa,MaizeMilletSorghum,17.8 +Sao Tome and Principe,MaizeMilletSorghum,10.4 +Saudi Arabia,MaizeMilletSorghum,10.8 +Senegal,MaizeMilletSorghum,10.4 +Serbia,MaizeMilletSorghum,10.8 +Sierra Leone,MaizeMilletSorghum,10.4 +Solomon Islands,MaizeMilletSorghum,32.9 +Somalia,MaizeMilletSorghum,10.4 +South Africa,MaizeMilletSorghum,10.4 +South Sudan,MaizeMilletSorghum,10.4 +Sri Lanka,MaizeMilletSorghum,13.4 +Sudan,MaizeMilletSorghum,10.4 +Suriname,MaizeMilletSorghum,10.4 +Swaziland,MaizeMilletSorghum,10.4 +Switzerland,MaizeMilletSorghum,29.5 +Tajikistan,MaizeMilletSorghum,10.8 +Thailand,MaizeMilletSorghum,17.8 +The former Yugoslav Republic of Macedonia,MaizeMilletSorghum,10.8 +Timor-Leste,MaizeMilletSorghum,10.4 +Togo,MaizeMilletSorghum,10.4 +Trinidad and Tobago,MaizeMilletSorghum,8.6 +Tunisia,MaizeMilletSorghum,10.4 +Turkey,MaizeMilletSorghum,15.9 +Turkmenistan,MaizeMilletSorghum,10.8 +Uganda,MaizeMilletSorghum,10.4 +Ukraine,MaizeMilletSorghum,6.2 +United Arab Emirates,MaizeMilletSorghum,10.8 +United Republic of Tanzania,MaizeMilletSorghum,10.4 +United States of America,MaizeMilletSorghum,1.1 +Uruguay,MaizeMilletSorghum,10.4 +Uzbekistan,MaizeMilletSorghum,10.8 +Vanuatu,MaizeMilletSorghum,32.9 +Venezuela (Bolivarian Republic of),MaizeMilletSorghum,8.6 +Viet Nam,MaizeMilletSorghum,32.9 +Yemen,MaizeMilletSorghum,10.4 +Zambia,MaizeMilletSorghum,10.4 +Zimbabwe,MaizeMilletSorghum,10.4 +Austria,Oilcrops,7.4 +Belgium,Oilcrops,7.4 +Bulgaria,Oilcrops,7.4 +Croatia,Oilcrops,7.4 +Cyprus,Oilcrops,7.4 +Czech Republic,Oilcrops,7.4 +Denmark,Oilcrops,7.4 +Estonia,Oilcrops,7.4 +Finland,Oilcrops,7.4 +France,Oilcrops,7.4 +Germany,Oilcrops,7.4 +Greece,Oilcrops,7.4 +Hungary,Oilcrops,7.4 +Ireland,Oilcrops,7.4 +Italy,Oilcrops,7.4 +Latvia,Oilcrops,7.4 +Lithuania,Oilcrops,7.4 +Luxembourg,Oilcrops,7.4 +Malta,Oilcrops,7.4 +Netherlands,Oilcrops,7.4 +Poland,Oilcrops,7.4 +Portugal,Oilcrops,7.4 +Romania,Oilcrops,7.4 +Slovakia,Oilcrops,7.4 +Slovenia,Oilcrops,7.4 +Spain,Oilcrops,7.4 +Sweden,Oilcrops,7.4 +United Kingdom,Oilcrops,7.4 +Afghanistan,Oilcrops,10.8 +Albania,Oilcrops,10.8 +Algeria,Oilcrops,10.4 +Angola,Oilcrops,10.4 +Argentina,Oilcrops,4.7 +Armenia,Oilcrops,10.8 +Australia,Oilcrops,1 +Azerbaijan,Oilcrops,10.8 +Bahamas,Oilcrops,8.6 +Bangladesh,Oilcrops,6.3 +Barbados,Oilcrops,8.6 +Belarus,Oilcrops,10.8 +Belize,Oilcrops,10.4 +Benin,Oilcrops,10.4 +Bolivia (Plurinational State of),Oilcrops,8.6 +Bosnia and Herzegovina,Oilcrops,6.2 +Botswana,Oilcrops,10.4 +Brazil,Oilcrops,8.6 +Brunei Darussalam,Oilcrops,10.8 +Burkina Faso,Oilcrops,10.4 +Cabo Verde,Oilcrops,10.4 +Cambodia,Oilcrops,10.4 +Cameroon,Oilcrops,10.4 +Canada,Oilcrops,1.3 +Chad,Oilcrops,10.4 +Chile,Oilcrops,8.6 +China,Oilcrops,50.8 +Colombia,Oilcrops,8.6 +Congo,Oilcrops,10.4 +Costa Rica,Oilcrops,8.6 +Cote d'Ivoire,Oilcrops,10.4 +Cuba,Oilcrops,8.6 +Democratic Republic of the Congo,Oilcrops,10.4 +Djibouti,Oilcrops,10.4 +Dominican Republic,Oilcrops,8.6 +Ecuador,Oilcrops,8.6 +Egypt,Oilcrops,10.4 +El Salvador,Oilcrops,8.6 +Ethiopia,Oilcrops,10.4 +Fiji,Oilcrops,32.9 +French Polynesia,Oilcrops,32.9 +Gabon,Oilcrops,10.4 +Gambia,Oilcrops,10.4 +Georgia,Oilcrops,6.2 +Ghana,Oilcrops,10.4 +Guatemala,Oilcrops,8.6 +Guinea,Oilcrops,32.9 +Guinea-Bissau,Oilcrops,10.4 +Guyana,Oilcrops,10.4 +Haiti,Oilcrops,8.6 +Honduras,Oilcrops,8.6 +Iceland,Oilcrops,29.5 +India,Oilcrops,25.5 +Indonesia,Oilcrops,1.8 +Iran (Islamic Republic of),Oilcrops,10.8 +Iraq,Oilcrops,10.8 +Israel,Oilcrops,10.8 +Jamaica,Oilcrops,8.6 +Japan,Oilcrops,27.8 +Jordan,Oilcrops,10.4 +Kazakhstan,Oilcrops,10.8 +Kenya,Oilcrops,10.4 +Kuwait,Oilcrops,10.8 +Kyrgyzstan,Oilcrops,10.8 +Lao People's Democratic Republic,Oilcrops,17.8 +Lebanon,Oilcrops,10.8 +Lesotho,Oilcrops,10.4 +Liberia,Oilcrops,10.4 +Libya,Oilcrops,10.4 +Madagascar,Oilcrops,10.4 +Malawi,Oilcrops,10.4 +Malaysia,Oilcrops,17.8 +Maldives,Oilcrops,10.4 +Mali,Oilcrops,10.4 +Mauritania,Oilcrops,10.4 +Mauritius,Oilcrops,32.9 +Mexico,Oilcrops,10.7 +Mongolia,Oilcrops,10.8 +Montenegro,Oilcrops,6.2 +Morocco,Oilcrops,10.4 +Mozambique,Oilcrops,10.4 +Myanmar,Oilcrops,17.8 +Namibia,Oilcrops,10.4 +Nepal,Oilcrops,16.8 +New Caledonia,Oilcrops,32.9 +New Zealand,Oilcrops,0.4 +Nicaragua,Oilcrops,8.6 +Niger,Oilcrops,10.4 +Nigeria,Oilcrops,10.4 +Norway,Oilcrops,29.5 +Oman,Oilcrops,10.8 +Pakistan,Oilcrops,10.8 +Panama,Oilcrops,8.6 +Paraguay,Oilcrops,8.6 +Peru,Oilcrops,8.6 +Philippines,Oilcrops,32.9 +Republic of Korea,Oilcrops,16.8 +Republic of Moldova,Oilcrops,6.2 +Rwanda,Oilcrops,10.4 +Saint Lucia,Oilcrops,8.6 +Saint Vincent and the Grenadines,Oilcrops,8.6 +Samoa,Oilcrops,17.8 +Sao Tome and Principe,Oilcrops,10.4 +Saudi Arabia,Oilcrops,10.8 +Senegal,Oilcrops,10.4 +Serbia,Oilcrops,10.8 +Sierra Leone,Oilcrops,10.4 +Solomon Islands,Oilcrops,32.9 +Somalia,Oilcrops,10.4 +South Africa,Oilcrops,10.4 +South Sudan,Oilcrops,10.4 +Sri Lanka,Oilcrops,13.4 +Sudan,Oilcrops,10.4 +Suriname,Oilcrops,10.4 +Swaziland,Oilcrops,10.4 +Switzerland,Oilcrops,29.5 +Tajikistan,Oilcrops,10.8 +Thailand,Oilcrops,17.8 +The former Yugoslav Republic of Macedonia,Oilcrops,10.8 +Timor-Leste,Oilcrops,10.4 +Togo,Oilcrops,10.4 +Trinidad and Tobago,Oilcrops,8.6 +Tunisia,Oilcrops,10.4 +Turkey,Oilcrops,15.9 +Turkmenistan,Oilcrops,10.8 +Uganda,Oilcrops,10.4 +Ukraine,Oilcrops,6.2 +United Arab Emirates,Oilcrops,10.8 +United Republic of Tanzania,Oilcrops,10.4 +United States of America,Oilcrops,1.1 +Uruguay,Oilcrops,10.4 +Uzbekistan,Oilcrops,10.8 +Vanuatu,Oilcrops,32.9 +Venezuela (Bolivarian Republic of),Oilcrops,8.6 +Viet Nam,Oilcrops,32.9 +Yemen,Oilcrops,10.4 +Zambia,Oilcrops,10.4 +Zimbabwe,Oilcrops,10.4 +Austria,Pulses,7.4 +Belgium,Pulses,7.4 +Bulgaria,Pulses,7.4 +Croatia,Pulses,7.4 +Cyprus,Pulses,7.4 +Czech Republic,Pulses,7.4 +Denmark,Pulses,7.4 +Estonia,Pulses,7.4 +Finland,Pulses,7.4 +France,Pulses,7.4 +Germany,Pulses,7.4 +Greece,Pulses,7.4 +Hungary,Pulses,7.4 +Ireland,Pulses,7.4 +Italy,Pulses,7.4 +Latvia,Pulses,7.4 +Lithuania,Pulses,7.4 +Luxembourg,Pulses,7.4 +Malta,Pulses,7.4 +Netherlands,Pulses,7.4 +Poland,Pulses,7.4 +Portugal,Pulses,7.4 +Romania,Pulses,7.4 +Slovakia,Pulses,7.4 +Slovenia,Pulses,7.4 +Spain,Pulses,7.4 +Sweden,Pulses,7.4 +United Kingdom,Pulses,7.4 +Afghanistan,Pulses,10.8 +Albania,Pulses,10.8 +Algeria,Pulses,10.4 +Angola,Pulses,10.4 +Argentina,Pulses,4.7 +Armenia,Pulses,10.8 +Australia,Pulses,1 +Azerbaijan,Pulses,10.8 +Bahamas,Pulses,8.6 +Bangladesh,Pulses,6.3 +Barbados,Pulses,8.6 +Belarus,Pulses,10.8 +Belize,Pulses,10.4 +Benin,Pulses,10.4 +Bolivia (Plurinational State of),Pulses,8.6 +Bosnia and Herzegovina,Pulses,6.2 +Botswana,Pulses,10.4 +Brazil,Pulses,8.6 +Brunei Darussalam,Pulses,10.8 +Burkina Faso,Pulses,10.4 +Cabo Verde,Pulses,10.4 +Cambodia,Pulses,10.4 +Cameroon,Pulses,10.4 +Canada,Pulses,1.3 +Chad,Pulses,10.4 +Chile,Pulses,8.6 +China,Pulses,50.8 +Colombia,Pulses,8.6 +Congo,Pulses,10.4 +Costa Rica,Pulses,8.6 +Cote d'Ivoire,Pulses,10.4 +Cuba,Pulses,8.6 +Democratic Republic of the Congo,Pulses,10.4 +Djibouti,Pulses,10.4 +Dominican Republic,Pulses,8.6 +Ecuador,Pulses,8.6 +Egypt,Pulses,10.4 +El Salvador,Pulses,8.6 +Ethiopia,Pulses,10.4 +Fiji,Pulses,32.9 +French Polynesia,Pulses,32.9 +Gabon,Pulses,10.4 +Gambia,Pulses,10.4 +Georgia,Pulses,6.2 +Ghana,Pulses,10.4 +Guatemala,Pulses,8.6 +Guinea,Pulses,32.9 +Guinea-Bissau,Pulses,10.4 +Guyana,Pulses,10.4 +Haiti,Pulses,8.6 +Honduras,Pulses,8.6 +Iceland,Pulses,29.5 +India,Pulses,25.5 +Indonesia,Pulses,1.8 +Iran (Islamic Republic of),Pulses,10.8 +Iraq,Pulses,10.8 +Israel,Pulses,10.8 +Jamaica,Pulses,8.6 +Japan,Pulses,27.8 +Jordan,Pulses,10.4 +Kazakhstan,Pulses,10.8 +Kenya,Pulses,10.4 +Kuwait,Pulses,10.8 +Kyrgyzstan,Pulses,10.8 +Lao People's Democratic Republic,Pulses,17.8 +Lebanon,Pulses,10.8 +Lesotho,Pulses,10.4 +Liberia,Pulses,10.4 +Libya,Pulses,10.4 +Madagascar,Pulses,10.4 +Malawi,Pulses,10.4 +Malaysia,Pulses,17.8 +Maldives,Pulses,10.4 +Mali,Pulses,10.4 +Mauritania,Pulses,10.4 +Mauritius,Pulses,32.9 +Mexico,Pulses,10.7 +Mongolia,Pulses,10.8 +Montenegro,Pulses,6.2 +Morocco,Pulses,10.4 +Mozambique,Pulses,10.4 +Myanmar,Pulses,17.8 +Namibia,Pulses,10.4 +Nepal,Pulses,16.8 +New Caledonia,Pulses,32.9 +New Zealand,Pulses,0.4 +Nicaragua,Pulses,8.6 +Niger,Pulses,10.4 +Nigeria,Pulses,10.4 +Norway,Pulses,29.5 +Oman,Pulses,10.8 +Pakistan,Pulses,10.8 +Panama,Pulses,8.6 +Paraguay,Pulses,8.6 +Peru,Pulses,8.6 +Philippines,Pulses,32.9 +Republic of Korea,Pulses,16.8 +Republic of Moldova,Pulses,6.2 +Rwanda,Pulses,10.4 +Saint Lucia,Pulses,8.6 +Saint Vincent and the Grenadines,Pulses,8.6 +Samoa,Pulses,17.8 +Sao Tome and Principe,Pulses,10.4 +Saudi Arabia,Pulses,10.8 +Senegal,Pulses,10.4 +Serbia,Pulses,10.8 +Sierra Leone,Pulses,10.4 +Solomon Islands,Pulses,32.9 +Somalia,Pulses,10.4 +South Africa,Pulses,10.4 +South Sudan,Pulses,10.4 +Sri Lanka,Pulses,13.4 +Sudan,Pulses,10.4 +Suriname,Pulses,10.4 +Swaziland,Pulses,10.4 +Switzerland,Pulses,29.5 +Tajikistan,Pulses,10.8 +Thailand,Pulses,17.8 +The former Yugoslav Republic of Macedonia,Pulses,10.8 +Timor-Leste,Pulses,10.4 +Togo,Pulses,10.4 +Trinidad and Tobago,Pulses,8.6 +Tunisia,Pulses,10.4 +Turkey,Pulses,15.9 +Turkmenistan,Pulses,10.8 +Uganda,Pulses,10.4 +Ukraine,Pulses,6.2 +United Arab Emirates,Pulses,10.8 +United Republic of Tanzania,Pulses,10.4 +United States of America,Pulses,1.1 +Uruguay,Pulses,10.4 +Uzbekistan,Pulses,10.8 +Vanuatu,Pulses,32.9 +Venezuela (Bolivarian Republic of),Pulses,8.6 +Viet Nam,Pulses,32.9 +Yemen,Pulses,10.4 +Zambia,Pulses,10.4 +Zimbabwe,Pulses,10.4 +Austria,Rice (Paddy Equivalent),7.4 +Belgium,Rice (Paddy Equivalent),7.4 +Bulgaria,Rice (Paddy Equivalent),7.4 +Croatia,Rice (Paddy Equivalent),7.4 +Cyprus,Rice (Paddy Equivalent),7.4 +Czech Republic,Rice (Paddy Equivalent),7.4 +Denmark,Rice (Paddy Equivalent),7.4 +Estonia,Rice (Paddy Equivalent),7.4 +Finland,Rice (Paddy Equivalent),7.4 +France,Rice (Paddy Equivalent),7.4 +Germany,Rice (Paddy Equivalent),7.4 +Greece,Rice (Paddy Equivalent),7.4 +Hungary,Rice (Paddy Equivalent),7.4 +Ireland,Rice (Paddy Equivalent),7.4 +Italy,Rice (Paddy Equivalent),7.4 +Latvia,Rice (Paddy Equivalent),7.4 +Lithuania,Rice (Paddy Equivalent),7.4 +Luxembourg,Rice (Paddy Equivalent),7.4 +Malta,Rice (Paddy Equivalent),7.4 +Netherlands,Rice (Paddy Equivalent),7.4 +Poland,Rice (Paddy Equivalent),7.4 +Portugal,Rice (Paddy Equivalent),7.4 +Romania,Rice (Paddy Equivalent),7.4 +Slovakia,Rice (Paddy Equivalent),7.4 +Slovenia,Rice (Paddy Equivalent),7.4 +Spain,Rice (Paddy Equivalent),7.4 +Sweden,Rice (Paddy Equivalent),7.4 +United Kingdom,Rice (Paddy Equivalent),7.4 +Afghanistan,Rice (Paddy Equivalent),10.8 +Albania,Rice (Paddy Equivalent),10.8 +Algeria,Rice (Paddy Equivalent),10.4 +Angola,Rice (Paddy Equivalent),10.4 +Argentina,Rice (Paddy Equivalent),4.7 +Armenia,Rice (Paddy Equivalent),10.8 +Australia,Rice (Paddy Equivalent),1 +Azerbaijan,Rice (Paddy Equivalent),10.8 +Bahamas,Rice (Paddy Equivalent),8.6 +Bangladesh,Rice (Paddy Equivalent),6.3 +Barbados,Rice (Paddy Equivalent),8.6 +Belarus,Rice (Paddy Equivalent),10.8 +Belize,Rice (Paddy Equivalent),10.4 +Benin,Rice (Paddy Equivalent),10.4 +Bolivia (Plurinational State of),Rice (Paddy Equivalent),8.6 +Bosnia and Herzegovina,Rice (Paddy Equivalent),6.2 +Botswana,Rice (Paddy Equivalent),10.4 +Brazil,Rice (Paddy Equivalent),8.6 +Brunei Darussalam,Rice (Paddy Equivalent),10.8 +Burkina Faso,Rice (Paddy Equivalent),10.4 +Cabo Verde,Rice (Paddy Equivalent),10.4 +Cambodia,Rice (Paddy Equivalent),10.4 +Cameroon,Rice (Paddy Equivalent),10.4 +Canada,Rice (Paddy Equivalent),1.3 +Chad,Rice (Paddy Equivalent),10.4 +Chile,Rice (Paddy Equivalent),8.6 +China,Rice (Paddy Equivalent),50.8 +Colombia,Rice (Paddy Equivalent),8.6 +Congo,Rice (Paddy Equivalent),10.4 +Costa Rica,Rice (Paddy Equivalent),8.6 +Cote d'Ivoire,Rice (Paddy Equivalent),10.4 +Cuba,Rice (Paddy Equivalent),8.6 +Democratic Republic of the Congo,Rice (Paddy Equivalent),10.4 +Djibouti,Rice (Paddy Equivalent),10.4 +Dominican Republic,Rice (Paddy Equivalent),8.6 +Ecuador,Rice (Paddy Equivalent),8.6 +Egypt,Rice (Paddy Equivalent),10.4 +El Salvador,Rice (Paddy Equivalent),8.6 +Ethiopia,Rice (Paddy Equivalent),10.4 +Fiji,Rice (Paddy Equivalent),32.9 +French Polynesia,Rice (Paddy Equivalent),32.9 +Gabon,Rice (Paddy Equivalent),10.4 +Gambia,Rice (Paddy Equivalent),10.4 +Georgia,Rice (Paddy Equivalent),6.2 +Ghana,Rice (Paddy Equivalent),10.4 +Guatemala,Rice (Paddy Equivalent),8.6 +Guinea,Rice (Paddy Equivalent),32.9 +Guinea-Bissau,Rice (Paddy Equivalent),10.4 +Guyana,Rice (Paddy Equivalent),10.4 +Haiti,Rice (Paddy Equivalent),8.6 +Honduras,Rice (Paddy Equivalent),8.6 +Iceland,Rice (Paddy Equivalent),29.5 +India,Rice (Paddy Equivalent),25.5 +Indonesia,Rice (Paddy Equivalent),1.8 +Iran (Islamic Republic of),Rice (Paddy Equivalent),10.8 +Iraq,Rice (Paddy Equivalent),10.8 +Israel,Rice (Paddy Equivalent),10.8 +Jamaica,Rice (Paddy Equivalent),8.6 +Japan,Rice (Paddy Equivalent),27.8 +Jordan,Rice (Paddy Equivalent),10.4 +Kazakhstan,Rice (Paddy Equivalent),10.8 +Kenya,Rice (Paddy Equivalent),10.4 +Kuwait,Rice (Paddy Equivalent),10.8 +Kyrgyzstan,Rice (Paddy Equivalent),10.8 +Lao People's Democratic Republic,Rice (Paddy Equivalent),17.8 +Lebanon,Rice (Paddy Equivalent),10.8 +Lesotho,Rice (Paddy Equivalent),10.4 +Liberia,Rice (Paddy Equivalent),10.4 +Libya,Rice (Paddy Equivalent),10.4 +Madagascar,Rice (Paddy Equivalent),10.4 +Malawi,Rice (Paddy Equivalent),10.4 +Malaysia,Rice (Paddy Equivalent),17.8 +Maldives,Rice (Paddy Equivalent),10.4 +Mali,Rice (Paddy Equivalent),10.4 +Mauritania,Rice (Paddy Equivalent),10.4 +Mauritius,Rice (Paddy Equivalent),32.9 +Mexico,Rice (Paddy Equivalent),10.7 +Mongolia,Rice (Paddy Equivalent),10.8 +Montenegro,Rice (Paddy Equivalent),6.2 +Morocco,Rice (Paddy Equivalent),10.4 +Mozambique,Rice (Paddy Equivalent),10.4 +Myanmar,Rice (Paddy Equivalent),17.8 +Namibia,Rice (Paddy Equivalent),10.4 +Nepal,Rice (Paddy Equivalent),16.8 +New Caledonia,Rice (Paddy Equivalent),32.9 +New Zealand,Rice (Paddy Equivalent),0.4 +Nicaragua,Rice (Paddy Equivalent),8.6 +Niger,Rice (Paddy Equivalent),10.4 +Nigeria,Rice (Paddy Equivalent),10.4 +Norway,Rice (Paddy Equivalent),29.5 +Oman,Rice (Paddy Equivalent),10.8 +Pakistan,Rice (Paddy Equivalent),10.8 +Panama,Rice (Paddy Equivalent),8.6 +Paraguay,Rice (Paddy Equivalent),8.6 +Peru,Rice (Paddy Equivalent),8.6 +Philippines,Rice (Paddy Equivalent),32.9 +Republic of Korea,Rice (Paddy Equivalent),16.8 +Republic of Moldova,Rice (Paddy Equivalent),6.2 +Rwanda,Rice (Paddy Equivalent),10.4 +Saint Lucia,Rice (Paddy Equivalent),8.6 +Saint Vincent and the Grenadines,Rice (Paddy Equivalent),8.6 +Samoa,Rice (Paddy Equivalent),17.8 +Sao Tome and Principe,Rice (Paddy Equivalent),10.4 +Saudi Arabia,Rice (Paddy Equivalent),10.8 +Senegal,Rice (Paddy Equivalent),10.4 +Serbia,Rice (Paddy Equivalent),10.8 +Sierra Leone,Rice (Paddy Equivalent),10.4 +Solomon Islands,Rice (Paddy Equivalent),32.9 +Somalia,Rice (Paddy Equivalent),10.4 +South Africa,Rice (Paddy Equivalent),10.4 +South Sudan,Rice (Paddy Equivalent),10.4 +Sri Lanka,Rice (Paddy Equivalent),13.4 +Sudan,Rice (Paddy Equivalent),10.4 +Suriname,Rice (Paddy Equivalent),10.4 +Swaziland,Rice (Paddy Equivalent),10.4 +Switzerland,Rice (Paddy Equivalent),29.5 +Tajikistan,Rice (Paddy Equivalent),10.8 +Thailand,Rice (Paddy Equivalent),17.8 +The former Yugoslav Republic of Macedonia,Rice (Paddy Equivalent),10.8 +Timor-Leste,Rice (Paddy Equivalent),10.4 +Togo,Rice (Paddy Equivalent),10.4 +Trinidad and Tobago,Rice (Paddy Equivalent),8.6 +Tunisia,Rice (Paddy Equivalent),10.4 +Turkey,Rice (Paddy Equivalent),15.9 +Turkmenistan,Rice (Paddy Equivalent),10.8 +Uganda,Rice (Paddy Equivalent),10.4 +Ukraine,Rice (Paddy Equivalent),6.2 +United Arab Emirates,Rice (Paddy Equivalent),10.8 +United Republic of Tanzania,Rice (Paddy Equivalent),10.4 +United States of America,Rice (Paddy Equivalent),1.1 +Uruguay,Rice (Paddy Equivalent),10.4 +Uzbekistan,Rice (Paddy Equivalent),10.8 +Vanuatu,Rice (Paddy Equivalent),32.9 +Venezuela (Bolivarian Republic of),Rice (Paddy Equivalent),8.6 +Viet Nam,Rice (Paddy Equivalent),32.9 +Yemen,Rice (Paddy Equivalent),10.4 +Zambia,Rice (Paddy Equivalent),10.4 +Zimbabwe,Rice (Paddy Equivalent),10.4 +Austria,Starchy Roots,7.4 +Belgium,Starchy Roots,7.4 +Bulgaria,Starchy Roots,7.4 +Croatia,Starchy Roots,7.4 +Cyprus,Starchy Roots,7.4 +Czech Republic,Starchy Roots,7.4 +Denmark,Starchy Roots,7.4 +Estonia,Starchy Roots,7.4 +Finland,Starchy Roots,7.4 +France,Starchy Roots,7.4 +Germany,Starchy Roots,7.4 +Greece,Starchy Roots,7.4 +Hungary,Starchy Roots,7.4 +Ireland,Starchy Roots,7.4 +Italy,Starchy Roots,7.4 +Latvia,Starchy Roots,7.4 +Lithuania,Starchy Roots,7.4 +Luxembourg,Starchy Roots,7.4 +Malta,Starchy Roots,7.4 +Netherlands,Starchy Roots,7.4 +Poland,Starchy Roots,7.4 +Portugal,Starchy Roots,7.4 +Romania,Starchy Roots,7.4 +Slovakia,Starchy Roots,7.4 +Slovenia,Starchy Roots,7.4 +Spain,Starchy Roots,7.4 +Sweden,Starchy Roots,7.4 +United Kingdom,Starchy Roots,7.4 +Afghanistan,Starchy Roots,10.8 +Albania,Starchy Roots,10.8 +Algeria,Starchy Roots,10.4 +Angola,Starchy Roots,10.4 +Argentina,Starchy Roots,4.7 +Armenia,Starchy Roots,10.8 +Australia,Starchy Roots,1 +Azerbaijan,Starchy Roots,10.8 +Bahamas,Starchy Roots,8.6 +Bangladesh,Starchy Roots,6.3 +Barbados,Starchy Roots,8.6 +Belarus,Starchy Roots,10.8 +Belize,Starchy Roots,10.4 +Benin,Starchy Roots,10.4 +Bolivia (Plurinational State of),Starchy Roots,8.6 +Bosnia and Herzegovina,Starchy Roots,6.2 +Botswana,Starchy Roots,10.4 +Brazil,Starchy Roots,8.6 +Brunei Darussalam,Starchy Roots,10.8 +Burkina Faso,Starchy Roots,10.4 +Cabo Verde,Starchy Roots,10.4 +Cambodia,Starchy Roots,10.4 +Cameroon,Starchy Roots,10.4 +Canada,Starchy Roots,1.3 +Chad,Starchy Roots,10.4 +Chile,Starchy Roots,8.6 +China,Starchy Roots,50.8 +Colombia,Starchy Roots,8.6 +Congo,Starchy Roots,10.4 +Costa Rica,Starchy Roots,8.6 +Cote d'Ivoire,Starchy Roots,10.4 +Cuba,Starchy Roots,8.6 +Democratic Republic of the Congo,Starchy Roots,10.4 +Djibouti,Starchy Roots,10.4 +Dominican Republic,Starchy Roots,8.6 +Ecuador,Starchy Roots,8.6 +Egypt,Starchy Roots,10.4 +El Salvador,Starchy Roots,8.6 +Ethiopia,Starchy Roots,10.4 +Fiji,Starchy Roots,32.9 +French Polynesia,Starchy Roots,32.9 +Gabon,Starchy Roots,10.4 +Gambia,Starchy Roots,10.4 +Georgia,Starchy Roots,6.2 +Ghana,Starchy Roots,10.4 +Guatemala,Starchy Roots,8.6 +Guinea,Starchy Roots,32.9 +Guinea-Bissau,Starchy Roots,10.4 +Guyana,Starchy Roots,10.4 +Haiti,Starchy Roots,8.6 +Honduras,Starchy Roots,8.6 +Iceland,Starchy Roots,29.5 +India,Starchy Roots,25.5 +Indonesia,Starchy Roots,1.8 +Iran (Islamic Republic of),Starchy Roots,10.8 +Iraq,Starchy Roots,10.8 +Israel,Starchy Roots,10.8 +Jamaica,Starchy Roots,8.6 +Japan,Starchy Roots,27.8 +Jordan,Starchy Roots,10.4 +Kazakhstan,Starchy Roots,10.8 +Kenya,Starchy Roots,10.4 +Kuwait,Starchy Roots,10.8 +Kyrgyzstan,Starchy Roots,10.8 +Lao People's Democratic Republic,Starchy Roots,17.8 +Lebanon,Starchy Roots,10.8 +Lesotho,Starchy Roots,10.4 +Liberia,Starchy Roots,10.4 +Libya,Starchy Roots,10.4 +Madagascar,Starchy Roots,10.4 +Malawi,Starchy Roots,10.4 +Malaysia,Starchy Roots,17.8 +Maldives,Starchy Roots,10.4 +Mali,Starchy Roots,10.4 +Mauritania,Starchy Roots,10.4 +Mauritius,Starchy Roots,32.9 +Mexico,Starchy Roots,10.7 +Mongolia,Starchy Roots,10.8 +Montenegro,Starchy Roots,6.2 +Morocco,Starchy Roots,10.4 +Mozambique,Starchy Roots,10.4 +Myanmar,Starchy Roots,17.8 +Namibia,Starchy Roots,10.4 +Nepal,Starchy Roots,16.8 +New Caledonia,Starchy Roots,32.9 +New Zealand,Starchy Roots,0.4 +Nicaragua,Starchy Roots,8.6 +Niger,Starchy Roots,10.4 +Nigeria,Starchy Roots,10.4 +Norway,Starchy Roots,29.5 +Oman,Starchy Roots,10.8 +Pakistan,Starchy Roots,10.8 +Panama,Starchy Roots,8.6 +Paraguay,Starchy Roots,8.6 +Peru,Starchy Roots,8.6 +Philippines,Starchy Roots,32.9 +Republic of Korea,Starchy Roots,16.8 +Republic of Moldova,Starchy Roots,6.2 +Rwanda,Starchy Roots,10.4 +Saint Lucia,Starchy Roots,8.6 +Saint Vincent and the Grenadines,Starchy Roots,8.6 +Samoa,Starchy Roots,17.8 +Sao Tome and Principe,Starchy Roots,10.4 +Saudi Arabia,Starchy Roots,10.8 +Senegal,Starchy Roots,10.4 +Serbia,Starchy Roots,10.8 +Sierra Leone,Starchy Roots,10.4 +Solomon Islands,Starchy Roots,32.9 +Somalia,Starchy Roots,10.4 +South Africa,Starchy Roots,10.4 +South Sudan,Starchy Roots,10.4 +Sri Lanka,Starchy Roots,13.4 +Sudan,Starchy Roots,10.4 +Suriname,Starchy Roots,10.4 +Swaziland,Starchy Roots,10.4 +Switzerland,Starchy Roots,29.5 +Tajikistan,Starchy Roots,10.8 +Thailand,Starchy Roots,17.8 +The former Yugoslav Republic of Macedonia,Starchy Roots,10.8 +Timor-Leste,Starchy Roots,10.4 +Togo,Starchy Roots,10.4 +Trinidad and Tobago,Starchy Roots,8.6 +Tunisia,Starchy Roots,10.4 +Turkey,Starchy Roots,15.9 +Turkmenistan,Starchy Roots,10.8 +Uganda,Starchy Roots,10.4 +Ukraine,Starchy Roots,6.2 +United Arab Emirates,Starchy Roots,10.8 +United Republic of Tanzania,Starchy Roots,10.4 +United States of America,Starchy Roots,1.1 +Uruguay,Starchy Roots,10.4 +Uzbekistan,Starchy Roots,10.8 +Vanuatu,Starchy Roots,32.9 +Venezuela (Bolivarian Republic of),Starchy Roots,8.6 +Viet Nam,Starchy Roots,32.9 +Yemen,Starchy Roots,10.4 +Zambia,Starchy Roots,10.4 +Zimbabwe,Starchy Roots,10.4 diff --git a/scripts/compilePlum.sh b/scripts/compilePlum.sh new file mode 100755 index 0000000000000000000000000000000000000000..606f05696a3b2e414196664c423dae0362ca1a67 --- /dev/null +++ b/scripts/compilePlum.sh @@ -0,0 +1,3 @@ +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 new file mode 100755 index 0000000000000000000000000000000000000000..514b77483336103494e6401d7951ecaba512b335 --- /dev/null +++ b/scripts/createScenarios.sh @@ -0,0 +1,47 @@ +#!/bin/sh + +filename="$1" +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 +fi + +if [ "$#" -lt 1 ]; then + echo "Need to specify scenario table file" + exit +fi + +echo "Generating scenarios into $output_dir" + +while read -r datarow +do + IFS=',' read -r -a array <<< "$datarow" + + if [ -z "$header" ]; then + header=( "${array[@]}" ) + else + scenario="${array[0]}" + scenario_dir=$output_dir/$scenario + echo "$scenario in $scenario_dir" + if [ ! -d "$scenario_dir" ]; then + mkdir $scenario_dir + elif [ $overwrite -ne 1 ]; then + echo "Already have scenario $scenario, set -O to overwrite existing scenarios" + continue; + fi + + config_file=$scenario_dir/config.properties + cp $common_prop_file $config_file + echo "OUTPUT_DIR=$scenario_dir" >> $config_file + + for index in "${!array[@]}" + do + echo "${header[index]}"="${array[index]}" >> $config_file + done + + echo "$scenario generated" + fi +done < $filename + diff --git a/runPlum.sh b/scripts/runPlum.sh similarity index 100% rename from runPlum.sh rename to scripts/runPlum.sh diff --git a/scripts/scheduleScenarios.sh b/scripts/scheduleScenarios.sh new file mode 100755 index 0000000000000000000000000000000000000000..77aa5c435a3b51d3a6acfdef6b7581af612ba6e9 --- /dev/null +++ b/scripts/scheduleScenarios.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +if [ "$#" -lt 1 ]; then + echo "Need to specify scenario table file" + exit +fi + + +filename="$1" +output_dir=/exports/csce/eddie/geos/groups/LURG/models/PLUM/output +echo "Starting scenarios in $output_dir" + +while read -r datarow +do + IFS=',' read -r -a array <<< "$datarow" + + if [ -z "$header" ]; then + header=( "${array[@]}" ) + else + scenario="${array[0]}" + scenario_dir=$output_dir/$scenario + echo $scenario + + if [ ! -d "$scenario_dir" ]; then + echo "Scenario $scenario dir is missing, so skipping" + continue; + fi + + echo "qsub /exports/csce/eddie/geos/groups/LURG/models/PLUM/plumv2/scripts/runPlum.sh $scenario" + qsub /exports/csce/eddie/geos/groups/LURG/models/PLUM/plumv2/scripts/runPlum.sh $scenario + fi +done < $filename + diff --git a/scripts/stopRange.sh b/scripts/stopRange.sh new file mode 100755 index 0000000000000000000000000000000000000000..3b343904a9cd49dee7d07d81833900c2a980ada4 --- /dev/null +++ b/scripts/stopRange.sh @@ -0,0 +1,11 @@ +#!/bin/sh +if [ $# -ne 2 ]; then + echo need 2 argument to specify parameters + exit 0 +fi + +for ((i=$1; i<=$2; i++ )) +do + #echo "qdel $i" + qdel $i +done diff --git a/src/ac/ed/lurg/ModelConfig.java b/src/ac/ed/lurg/ModelConfig.java index 53c8063a05e2b31da1d8850870d70af1ebc9e8d2..f03a36ddade0d33f8ae49704a434030024ca0de6 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"; @@ -96,7 +103,7 @@ public class ModelConfig { public static final String COUNTRY_DATA_FILE = DATA_DIR + File.separator + "country_data.csv"; public static final String NET_IMPORTS_FILE = DATA_DIR + File.separator + "net_imports.csv"; public static final String BIOENERGY_DEMAND_FILE = DATA_DIR + File.separator + "bio_demand.csv"; - public static final String TRADE_BARRIERS_FILE = DATA_DIR + File.separator + "tradeBarriers.csv"; + public static final String TRADE_BARRIERS_FILE = DATA_DIR + File.separator + "trade_barriers_dummy.csv"; public static final String STOCKS_FILE = DATA_DIR + File.separator + "global_stocks.csv"; // yield data @@ -104,14 +111,14 @@ 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.966); - public static final double CALIB_FACTOR_MAIZE = getDoubleProperty("CALIB_FACTOR_MAIZE", 0.631); - public static final double CALIB_FACTOR_RICE = getDoubleProperty("CALIB_FACTOR_RICE", 1.232); + 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); + public static final double CALIB_FACTOR_RICE = getDoubleProperty("CALIB_FACTOR_RICE", 1.247); public static final double CALIB_FACTOR_OILCROPS = getDoubleProperty("CALIB_FACTOR_OILCROPS", 0.192); public static final double CALIB_FACTOR_PULSES = getDoubleProperty("CALIB_FACTOR_PULSES", 0.583); - public static final double CALIB_FACTOR_STARCHY_ROOTS = getDoubleProperty("CALIB_FACTOR_STARCHY_ROOTS", 6.027); + public static final double CALIB_FACTOR_STARCHY_ROOTS = getDoubleProperty("CALIB_FACTOR_STARCHY_ROOTS", 6.067); // Spatial (gridded) data public static final double CELL_SIZE_X = getDoubleProperty("CELL_SIZE_X", 0.5); @@ -149,56 +156,55 @@ 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); public static final String SSP_SCENARIO = getProperty("SSP_SCENARIO", "SSP1_v9_130325"); - public static final double PASTURE_HARVEST_FRACTION = getDoubleProperty("PASTURE_HARVEST_FRACTION", 0.25); + public static final double PASTURE_HARVEST_FRACTION = getDoubleProperty("PASTURE_HARVEST_FRACTION", 0.5); public static final double MEAT_EFFICIENCY = getDoubleProperty("MEAT_EFFICIENCY", 1.0); // 'meat' is includes feed conversion ratio already, this is tech. change or similar public static final double IRRIGIATION_EFFICIENCY = getDoubleProperty("IRRIGIATION_EFFICIENCY", 0.5); - public static final double LAND_CHANGE_COST = getDoubleProperty("LAND_CHANGE_COST", 0.6); + public static final double LAND_CHANGE_COST = getDoubleProperty("LAND_CHANGE_COST", 1.0); public static final double SEED_AND_WASTE_FRACTION = getDoubleProperty("SEED_AND_WASTE_FRACTION", 0.15); public static final double TECHNOLOGY_CHANGE_ANNUAL_RATE = IS_CALIBRATION_RUN ? 0.0 : getDoubleProperty("TECHNOLOGY_CHANGE_ANNUAL_RATE", 0.0); public static final int TECHNOLOGY_CHANGE_START_STEP = getIntProperty("TECHNOLOGY_CHANGE_START_STEP", 0); - public static final double BIOENERGY_CHANGE_ANNUAL_RATE = IS_CALIBRATION_RUN ? 0.0 : getDoubleProperty("BIOENERGY_CHANGE_ANNUAL_RATE", 0.0); + public static final double BIOENERGY_CHANGE_ANNUAL_RATE = IS_CALIBRATION_RUN ? 0.0 : getDoubleProperty("BIOENERGY_CHANGE_ANNUAL_RATE", 0.0); // 6.2/2.31/20 public static final int BIOENERGY_CHANGE_START_YEAR = getIntProperty("BIOENERGY_CHANGE_START_YEAR", 2010); + public static final int BIOENERGY_CHANGE_END_YEAR = getIntProperty("BIOENERGY_CHANGE_END_YEAR", 2030); - public static final double MARKET_LAMBA = getDoubleProperty("MARKET_LAMBA", 0.5); // controls international market price adjustment rate + public static final double MARKET_LAMBA = getDoubleProperty("MARKET_LAMBA", 0.3); // controls international market price adjustment rate - public static final double POPULATION_AGGREG_LIMIT = getDoubleProperty("POPULATION_AGGREG_LIMIT", 30.0); // in millions, smaller countries are aggregated on a regional basis + public static final double POPULATION_AGGREG_LIMIT = getDoubleProperty("POPULATION_AGGREG_LIMIT", 40.0); // in millions, smaller countries are aggregated on a regional basis public static final double UNHANDLED_CROP_AREA = getDoubleProperty("UNHANDLED_CROP_AREA", 0.3); // includes fruit veg forage crops set aside and failed crop public static final double OTHER_INTENSITY_COST = getDoubleProperty("OTHER_INTENSITY_COST", 0.4); public static final double OTHER_INTENSITY_PARAM = getDoubleProperty("OTHER_INTENSITY_PARAM", 3.22); - public static final double IRRIG_COST_SCALE_FACTOR = getDoubleProperty("IRRIG_COST_SCALE_FACTOR", 0.02); - public static final double FERTILISER_COST_PER_T = getDoubleProperty("FERTILISER_COST_PER_T", 0.5007 / 0.18); + public static final double IRRIG_COST_SCALE_FACTOR = getDoubleProperty("IRRIG_COST_SCALE_FACTOR", 0.03); + public static final double FERTILISER_COST_PER_T = getDoubleProperty("FERTILISER_COST_PER_T", 0.3/0.34 * 1.1); // $300/t, 34% N/t plus 10% cost for application public static final double FERTILISER_MAX_COST = FERTILISER_COST_PER_T * MAX_FERT_AMOUNT/1000; - public static final double DOMESTIC_PRICE_MARKUP = getDoubleProperty("DOMESTIC_PRICE_MARKUP", 1.2); + public static final double DOMESTIC_PRICE_MARKUP = getDoubleProperty("DOMESTIC_PRICE_MARKUP", 2.0); public static final double TRANSPORT_LOSSES = getDoubleProperty("TRANSPORT_LOSSES", 0.05); // in international trade - public static final double TRADE_BARRIER_FACTOR_DEFAULT = getDoubleProperty("TRADE_BARRIER_FACTOR_DEFAULT", 0.2); // price factor in international trade, transport cost and real trade barriers - public static final double TRADE_BARRIER_ADJ = getDoubleProperty("TRADE_BARRIER_ADJ", 1.0); //to scale barriers according to SSP's + public static final double TRANSPORT_COST = getDoubleProperty("TRANSPORT_COST", 0.1); // 100 $/t see Wheat Transportation Profile - USDA + public static final double TRADE_BARRIER_FACTOR_DEFAULT = getDoubleProperty("TRADE_BARRIER_FACTOR_DEFAULT", 0.4); // price factor in international trade, transport cost and real trade barriers + public static final double TRADE_BARRIER_ADJ = getDoubleProperty("TRADE_BARRIER_ADJ", 1.0); public static final boolean ACTIVE_TRADE_BARRIERS = getBooleanProperty("ACTIVE_TRADE_BARRIERS", false); // if set to true read in barrier information from file, otherwise use default as above public static final boolean PROTECTED_AREAS_ENABLED = getBooleanProperty("PROTECTED_AREAS_ENABLED", true); - public static final int NUM_CEREAL_CATEGORIES = getIntProperty("NUM_CEREAL_CATEGORIES", 12); - public static final int NUM_PASTURE_CATEGORIES = getIntProperty("NUM_PASTURE_CATEGORIES", 3); + public static final int NUM_CEREAL_CATEGORIES = getIntProperty("NUM_CEREAL_CATEGORIES", 15); + public static final int NUM_PASTURE_CATEGORIES = getIntProperty("NUM_PASTURE_CATEGORIES", 4); public static final boolean DEBUG_LIMIT_COUNTRIES = getBooleanProperty("DEBUG_LIMIT_COUNTRIES", false); - public static final Object DEBUG_COUNTRY_NAME = getProperty("DEBUG_COUNTRY_NAME", "United States of America"); + 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/ModelConfig.java.orig b/src/ac/ed/lurg/ModelConfig.java.orig new file mode 100644 index 0000000000000000000000000000000000000000..4b33bc0015929c6d714c54cd8f69d8b9e82ac9c8 --- /dev/null +++ b/src/ac/ed/lurg/ModelConfig.java.orig @@ -0,0 +1,214 @@ +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 { + + private Properties configFile; + private static ModelConfig modelConfig; + public static final String CONFIG_FILE = System.getProperty("CONFIG_FILE"); + + private ModelConfig() { + configFile = new Properties(); + try { + System.out.println("Config. file is " + CONFIG_FILE); + if (CONFIG_FILE != null) + configFile.load(new FileInputStream(CONFIG_FILE)); + } + catch (IOException e) { + 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() { + if (modelConfig == null) + modelConfig = new ModelConfig(); + + return modelConfig; + } + + private static String getProperty(String prop) { + return getModelConfig().getProp(prop); + } + private static String getProperty(String prop, String defaultString) { + String propValue = getProperty(prop); + return propValue == null ? defaultString : propValue; + } + private String getProp(String prop) { + return configFile.getProperty(prop); + } + + private static Integer getIntProperty(String prop, Integer defaultInt) { + Integer propValue = getModelConfig().getIntProp(prop); + return propValue == null ? defaultInt : propValue; + } + private Integer getIntProp(String prop) { + String v = configFile.getProperty(prop); + return v==null ? null : Integer.valueOf(v); + } + + @SuppressWarnings("unused") + private static Long getLongProperty(String prop, Long defaultLong) { + Long propValue = getModelConfig().getLongProp(prop); + return propValue == null ? defaultLong : propValue; + } + private Long getLongProp(String prop) { + String v = configFile.getProperty(prop); + return v==null ? null : Long.valueOf(v); + } + + private static Double getDoubleProperty(String prop, Double defaultDouble) { + Double propValue = getModelConfig().getDoubleProp(prop); + return propValue == null ? defaultDouble : propValue; + } + private Double getDoubleProp(String prop) { + String v = configFile.getProperty(prop); + return v==null ? null : Double.valueOf(v); + } + + private static Boolean getBooleanProperty(String prop, Boolean defaultBoolean) { + return getModelConfig().getBooleanProp(prop, defaultBoolean); + } + private boolean getBooleanProp(String prop, Boolean defaultBoolean) { + String v = configFile.getProperty(prop); + return v==null ? defaultBoolean : Boolean.valueOf(v); + } + + public static final boolean SUPPRESS_STD_OUTPUT = getBooleanProperty("SUPPRESS_STD_OUTPUT", Boolean.FALSE); + + // Directory information + public static final String BASE_DIR = getProperty("BASE_DIR"); // this must to be set in config file + 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", false); + + // Country (non-gridded) data + public static final String DEMAND_CURVES_FILE = DATA_DIR + File.separator + "com_curves.csv"; + public static final String SSP_FILE = DATA_DIR + File.separator + "ssp.csv"; + public static final String BASELINE_CONSUMP_FILE = DATA_DIR + File.separator + "base_consump.csv"; + public static final String COUNTRY_CODES_FILE = DATA_DIR + File.separator + "country_codes4.csv"; + public static final String COUNTRY_DATA_FILE = DATA_DIR + File.separator + "country_data.csv"; + public static final String NET_IMPORTS_FILE = DATA_DIR + File.separator + "net_imports.csv"; + public static final String BIOENERGY_DEMAND_FILE = DATA_DIR + File.separator + "bio_demand.csv"; + public static final String TRADE_BARRIERS_FILE = DATA_DIR + File.separator + "tradeBarriers.csv"; + public static final String STOCKS_FILE = DATA_DIR + File.separator + "global_stocks.csv"; + + // yield data + public static final String YIELD_DIR = getProperty("YIELD_DIR"); + 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", 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); + public static final double CALIB_FACTOR_RICE = getDoubleProperty("CALIB_FACTOR_RICE", 1.247); + public static final double CALIB_FACTOR_OILCROPS = getDoubleProperty("CALIB_FACTOR_OILCROPS", 0.192); + public static final double CALIB_FACTOR_PULSES = getDoubleProperty("CALIB_FACTOR_PULSES", 0.583); + public static final double CALIB_FACTOR_STARCHY_ROOTS = getDoubleProperty("CALIB_FACTOR_STARCHY_ROOTS", 6.067); + + // Spatial (gridded) data + public static final double CELL_SIZE_X = getDoubleProperty("CELL_SIZE_X", 0.5); + public static final double CELL_SIZE_Y = getDoubleProperty("CELL_SIZE_Y", CELL_SIZE_X); + public static final String SPATIAL_DIR_NAME = getProperty("SPATIAL_DIR_NAME", "halfdeg"); + public static final String SPATIAL_DATA_DIR = getProperty("SPATIAL_DATA_DIR", DATA_DIR + File.separator + SPATIAL_DIR_NAME); + public static final String INITAL_LAND_COVER_FILE = SPATIAL_DATA_DIR + File.separator + "netfract_hurtt_2000.txt"; + public static final String COUNTRY_BOUNDARY_FILE = SPATIAL_DATA_DIR + File.separator + "country_boundaries.asc"; + public static final String IRRIGATION_COST_FILE = SPATIAL_DATA_DIR + File.separator + "irrigation_cost.asc"; + public static final String IRRIGATION_CONSTRAINT_FILE = SPATIAL_DATA_DIR + File.separator + "blue_water_available_pseudoCRU_rcp8p5_2004_2013_grid_allhdyro_mm.txt"; + public static final String IRRIG_MAX_WATER_FILENAME = getProperty("IRRIG_MAX_WATER_FILENAME", "gsirrigation.out"); + public static final String PROTECTED_AREAS_FILE = SPATIAL_DATA_DIR + File.separator + "protected_areas.txt"; + + // Output + public static final String LAND_COVER_OUTPUT_FILE = OUTPUT_DIR + File.separator + "lc.txt"; + public static final String PRICES_OUTPUT_FILE = OUTPUT_DIR + File.separator + "prices.txt"; + public static final String DEMAND_OUTPUT_FILE = OUTPUT_DIR + File.separator + "demand.txt"; + public static final boolean OUTPUT_FOR_LPJG = getBooleanProperty("OUTPUT_FOR_LPJG", true); + public static final boolean INTERPOLATE_OUTPUT_YEARS = getBooleanProperty("INTERPOLATE_OUTPUT_YEARS", true); + + // Calibration related stuff + public static final boolean IS_CALIBRATION_RUN = getBooleanProperty("IS_CALIBRATION_RUN", false); + public static final String SERIALIZED_LAND_USE_FILE = getProperty("SERIALIZED_LAND_USE_FILE", OUTPUT_DIR + File.separator + "landUseRaster.ser"); + public static final boolean MARKET_ADJ_PRICE = IS_CALIBRATION_RUN ? false : getBooleanProperty("MARKET_ADJ_PRICE", true); + public static final boolean CHANGE_YIELD_DATA_YEAR = IS_CALIBRATION_RUN ? false : getBooleanProperty("CHANGE_YIELD_DATA_YEAR", true); + + // Temporal configuration + public static final int START_TIMESTEP = getIntProperty("START_TIMESTEP", 0); + public static final int END_TIMESTEP = getIntProperty("END_TIMESTEP", 18); + public static final int TIMESTEP_SIZE = getIntProperty("TIMESTEP_SIZE", 5); + public static final int BASE_YEAR = getIntProperty("BASE_YEAR", 2010); + + // Import export limits + public static final double ANNUAL_MAX_IMPORT_CHANGE = IS_CALIBRATION_RUN ? 0.0 : getDoubleProperty("ANNUAL_MAX_IMPORT_CHANGE", 0.02); + 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", 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); + public static final String SSP_SCENARIO = getProperty("SSP_SCENARIO", "SSP1_v9_130325"); + + public static final double PASTURE_HARVEST_FRACTION = getDoubleProperty("PASTURE_HARVEST_FRACTION", 0.5); + public static final double MEAT_EFFICIENCY = getDoubleProperty("MEAT_EFFICIENCY", 1.0); // 'meat' is includes feed conversion ratio already, this is tech. change or similar + public static final double IRRIGIATION_EFFICIENCY = getDoubleProperty("IRRIGIATION_EFFICIENCY", 0.5); + public static final double LAND_CHANGE_COST = getDoubleProperty("LAND_CHANGE_COST", 1.0); + public static final double SEED_AND_WASTE_FRACTION = getDoubleProperty("SEED_AND_WASTE_FRACTION", 0.15); + + public static final double TECHNOLOGY_CHANGE_ANNUAL_RATE = IS_CALIBRATION_RUN ? 0.0 : getDoubleProperty("TECHNOLOGY_CHANGE_ANNUAL_RATE", 0.0); + public static final int TECHNOLOGY_CHANGE_START_STEP = getIntProperty("TECHNOLOGY_CHANGE_START_STEP", 0); + + public static final double BIOENERGY_CHANGE_ANNUAL_RATE = IS_CALIBRATION_RUN ? 0.0 : getDoubleProperty("BIOENERGY_CHANGE_ANNUAL_RATE", 0.0); // 6.2/2.31/20 + public static final int BIOENERGY_CHANGE_START_YEAR = getIntProperty("BIOENERGY_CHANGE_START_YEAR", 2010); + public static final int BIOENERGY_CHANGE_END_YEAR = getIntProperty("BIOENERGY_CHANGE_END_YEAR", 2030); + + public static final double MARKET_LAMBA = getDoubleProperty("MARKET_LAMBA", 0.3); // controls international market price adjustment rate + + public static final double POPULATION_AGGREG_LIMIT = getDoubleProperty("POPULATION_AGGREG_LIMIT", 40.0); // in millions, smaller countries are aggregated on a regional basis + + public static final double UNHANDLED_CROP_AREA = getDoubleProperty("UNHANDLED_CROP_AREA", 0.3); // includes fruit veg forage crops set aside and failed crop + + public static final double OTHER_INTENSITY_COST = getDoubleProperty("OTHER_INTENSITY_COST", 0.4); + public static final double OTHER_INTENSITY_PARAM = getDoubleProperty("OTHER_INTENSITY_PARAM", 3.22); + + public static final double IRRIG_COST_SCALE_FACTOR = getDoubleProperty("IRRIG_COST_SCALE_FACTOR", 0.03); + public static final double FERTILISER_COST_PER_T = getDoubleProperty("FERTILISER_COST_PER_T", 0.3/0.34 * 1.1); // $300/t, 34% N/t plus 10% cost for application + public static final double FERTILISER_MAX_COST = FERTILISER_COST_PER_T * MAX_FERT_AMOUNT/1000; + + public static final double DOMESTIC_PRICE_MARKUP = getDoubleProperty("DOMESTIC_PRICE_MARKUP", 2.0); + public static final double TRANSPORT_LOSSES = getDoubleProperty("TRANSPORT_LOSSES", 0.05); // in international trade +<<<<<<< local + public static final double TRADE_BARRIER_FACTOR_DEFAULT = getDoubleProperty("TRADE_BARRIER_FACTOR_DEFAULT", 0.2); // price factor in international trade, transport cost and real trade barriers + public static final double TRADE_BARRIER_ADJ = getDoubleProperty("TRADE_BARRIER_ADJ", 1.0); //to scale barriers according to SSP's +======= + public static final double TRANSPORT_COST = getDoubleProperty("TRANSPORT_COST", 0.1); // 100 $/t see Wheat Transportation Profile - USDA + public static final double TRADE_BARRIER_FACTOR_DEFAULT = getDoubleProperty("TRADE_BARRIER_FACTOR_DEFAULT", 0.4); // price factor in international trade, transport cost and real trade barriers +>>>>>>> other + public static final boolean ACTIVE_TRADE_BARRIERS = getBooleanProperty("ACTIVE_TRADE_BARRIERS", false); // if set to true read in barrier information from file, otherwise use default as above + + public static final boolean PROTECTED_AREAS_ENABLED = getBooleanProperty("PROTECTED_AREAS_ENABLED", true); + + public static final int NUM_CEREAL_CATEGORIES = getIntProperty("NUM_CEREAL_CATEGORIES", 15); + public static final int NUM_PASTURE_CATEGORIES = getIntProperty("NUM_PASTURE_CATEGORIES", 4); + + public static final boolean DEBUG_LIMIT_COUNTRIES = getBooleanProperty("DEBUG_LIMIT_COUNTRIES", false); + 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; +} diff --git a/src/ac/ed/lurg/ModelMain.java b/src/ac/ed/lurg/ModelMain.java index 942f1d1ea487b875489ad34ab8a816996920bb33..563f3015a580b130df392c3d03c2a033d096212d 100644 --- a/src/ac/ed/lurg/ModelMain.java +++ b/src/ac/ed/lurg/ModelMain.java @@ -90,17 +90,17 @@ public class ModelMain { countryBoundaryRaster = getCountryBoundaryRaster(); countryAgents = createCountryAgents(compositeCountryManager.getAll()); - // in first timestep we don't have this info, but ok as constrained to import/export specified amount, values based on http://www.indexmundi.com/commodities/ + // in first timestep we don't have this info, but ok as constrained to import/export specified amount, values based on http://www.indexmundi.com/commodities/ for Jun 2010 prevWorldPrices = new HashMap<CropType, GlobalPrice>(); - prevWorldPrices.put(CropType.WHEAT, GlobalPrice.createInitial(0.274)); - prevWorldPrices.put(CropType.MAIZE, GlobalPrice.createInitial(0.251)); - prevWorldPrices.put(CropType.RICE, GlobalPrice.createInitial(0.282)); // 9.8/0.0508023 * 537/368 adjust from hunderdweight of rough rice to k$/t in 2010 - prevWorldPrices.put(CropType.OILCROPS, GlobalPrice.createInitial((1.21 * .4 + 0.387 * .6))); + prevWorldPrices.put(CropType.WHEAT, GlobalPrice.createInitial(0.157)); + prevWorldPrices.put(CropType.MAIZE, GlobalPrice.createInitial(0.152)); + prevWorldPrices.put(CropType.RICE, GlobalPrice.createInitial(0.282)); + prevWorldPrices.put(CropType.OILCROPS, GlobalPrice.createInitial((0.820 * .4 + 0.314 * .6))); prevWorldPrices.put(CropType.PULSES, GlobalPrice.createInitial(0.4)); prevWorldPrices.put(CropType.STARCHY_ROOTS, GlobalPrice.createInitial(0.1)); - prevWorldPrices.put(CropType.MONOGASTRICS, GlobalPrice.createInitial(0.4 * 0.7)); // quantities is in feed equivalent term (0.4 is weighted average price per feed, and 0.7 accounts for mark-up for additional processing) - prevWorldPrices.put(CropType.RUMINANTS, GlobalPrice.createInitial(0.2 * 0.6)); // quantities is in feed equivalent term + prevWorldPrices.put(CropType.MONOGASTRICS, GlobalPrice.createInitial(0.4 * 0.5)); // quantities is in feed equivalent term (0.4 is weighted average price per feed, and 0.5 accounts for mark-up for additional processing) + prevWorldPrices.put(CropType.RUMINANTS, GlobalPrice.createInitial(0.2 * 0.2)); // quantities is in feed equivalent term prevStockLevel = getInitialStockLevels(); } @@ -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()); @@ -233,20 +233,21 @@ public class ModelMain { private void writeLandCoverFile(Timestep timestep, RasterSet<LandUseItem> landUseRaster) { try { - StringBuffer sbHeadings = new StringBuffer("Year, Cropland (Mha), Pasture (Mha), Natural (Mha), Fert crop (Mt), Fert pasture (Mt), Irrig crop (km3), Irrig pasture (km3)"); + StringBuffer sbHeadings = new StringBuffer("Year,Cropland (Mha),Pasture (Mha),Forest (Mha),Natural (Mha),Fert crop (Mt),Fert pasture (Mt),Irrig crop (km3),Irrig pasture (km3)"); BufferedWriter outputFile = getFileWriter(timestep, ModelConfig.LAND_COVER_OUTPUT_FILE, sbHeadings.toString()); StringBuffer sbData = new StringBuffer(); - sbData.append(String.format("%d, %.1f, %.1f, %.1f", + sbData.append(String.format("%d,%.1f,%.1f,%.1f,%.1f", timestep.getYear(), LandUseItem.getTotalLandCover(landUseRaster.values(), LandCoverType.CROPLAND), LandUseItem.getTotalLandCover(landUseRaster.values(), LandCoverType.PASTURE), + LandUseItem.getTotalLandCover(landUseRaster.values(), LandCoverType.FOREST), LandUseItem.getTotalLandCover(landUseRaster.values(), LandCoverType.OTHER_NATURAL))); - sbData.append(String.format(", %.1f", LandUseItem.getFertiliserTotal(landUseRaster.values(), CropType.getCropsLessPasture())/1000)); - sbData.append(String.format(", %.1f", LandUseItem.getFertiliserTotal(landUseRaster.values(), CropType.PASTURE)/1000)); - sbData.append(String.format(", %.1f", LandUseItem.getIrrigationTotal(landUseRaster.values(), CropType.getCropsLessPasture()))); - sbData.append(String.format(", %.1f", LandUseItem.getIrrigationTotal(landUseRaster.values(), CropType.PASTURE))); + sbData.append(String.format(",%.1f", LandUseItem.getFertiliserTotal(landUseRaster.values(), CropType.getCropsLessPasture())/1000)); + sbData.append(String.format(",%.1f", LandUseItem.getFertiliserTotal(landUseRaster.values(), CropType.PASTURE)/1000)); + sbData.append(String.format(",%.1f", LandUseItem.getIrrigationTotal(landUseRaster.values(), CropType.getCropsLessPasture()))); + sbData.append(String.format(",%.1f", LandUseItem.getIrrigationTotal(landUseRaster.values(), CropType.PASTURE))); outputFile.write(sbData.toString()); outputFile.newLine(); @@ -349,8 +350,9 @@ public class ModelMain { LandUseOutputer landuseOutputer = new LandUseOutputer(timestep.getYear(), landUseRaster); landuseOutputer.writeOutput(); - outputLandCover(timestep.getYear(), landUseRaster, LandCoverType.CROPLAND); - outputLandCover(timestep.getYear(), landUseRaster, LandCoverType.PASTURE); + // don't really need this a LPJ outputs have same data, although in a slightly different format +// outputLandCover(timestep.getYear(), landUseRaster, LandCoverType.CROPLAND); +// outputLandCover(timestep.getYear(), landUseRaster, LandCoverType.PASTURE); } @@ -537,4 +539,4 @@ public class ModelMain { return initialStockLevels; } -} \ No newline at end of file +} diff --git a/src/ac/ed/lurg/Timestep.java b/src/ac/ed/lurg/Timestep.java index e5127fe5eaee1efa7bc353ef98904cd62a41ba01..c03a1b3fb478733b5f41631ab7891a9093bb31a6 100644 --- a/src/ac/ed/lurg/Timestep.java +++ b/src/ac/ed/lurg/Timestep.java @@ -85,9 +85,15 @@ public class Timestep { } public String getYearSubDir(String rootDir) { - if (ModelConfig.CHANGE_YIELD_DATA_YEAR) - return rootDir + File.separator + (getYieldYear()-ModelConfig.LPJG_TIMESTEP_SIZE+1) + "-" + getYieldYear(); - else - return rootDir + File.separator + (ModelConfig.BASE_YEAR-ModelConfig.LPJG_TIMESTEP_SIZE+1) + "-" + ModelConfig.BASE_YEAR; + int endYear; + + if (ModelConfig.CHANGE_YIELD_DATA_YEAR) { + endYear = (getYieldYear()/ModelConfig.LPJG_TIMESTEP_SIZE) * ModelConfig.LPJG_TIMESTEP_SIZE; // truncation in division as int + } + else { + endYear = ModelConfig.BASE_YEAR; + } + + return rootDir + File.separator + (endYear-ModelConfig.LPJG_TIMESTEP_SIZE+1) + "-" + endYear; } } diff --git a/src/ac/ed/lurg/country/CompositeCountryManager.java b/src/ac/ed/lurg/country/CompositeCountryManager.java index d202092b9b5912ce8600fe006cf202bb53305179..454b8c4b0d88ee2c4e5e2f58b69f7b161c02fed7 100644 --- a/src/ac/ed/lurg/country/CompositeCountryManager.java +++ b/src/ac/ed/lurg/country/CompositeCountryManager.java @@ -1,5 +1,6 @@ package ac.ed.lurg.country; +import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; @@ -24,7 +25,7 @@ public class CompositeCountryManager { private void populate(BaseConsumpManager baseConsumpManager) { mapFromSingleCountry = new HashMap<SingleCountry, CompositeCountry>(); - HashSet<String> countryExclusionList = new HashSet<String>();//Arrays.asList("Bangladesh", "Democratic Republic of the Congo")); + HashSet<String> countryExclusionList = new HashSet<String>(Arrays.asList("Philippines")); for (SingleCountry c : baseConsumpManager.getAllCountries()) { CompositeCountry cc; diff --git a/src/ac/ed/lurg/country/GlobalPrice.java.orig b/src/ac/ed/lurg/country/GlobalPrice.java.orig new file mode 100644 index 0000000000000000000000000000000000000000..3a8658376d00efc04363c6f2e5a05ff8f67557da --- /dev/null +++ b/src/ac/ed/lurg/country/GlobalPrice.java.orig @@ -0,0 +1,58 @@ +package ac.ed.lurg.country; + +import ac.ed.lurg.ModelConfig; + +public class GlobalPrice { + double exportPrice; + double importAmount; + double exportAmount; + + public GlobalPrice(double exportPrice, double importAmount, double exportAmount) { + this.exportPrice = exportPrice; + this.importAmount = importAmount; + this.exportAmount = exportAmount; + } + + public static GlobalPrice createInitial(double exportPrice) { + return new GlobalPrice(exportPrice, Double.NaN, Double.NaN); + } + + public double getExportPrice() { + return exportPrice; + } + + public double getCountryImportPrice(double countryTradeBarrier) { + double importPrice = exportPrice * (1.0 + countryTradeBarrier*ModelConfig.TRADE_BARRIER_ADJ) / (1.0 - ModelConfig.TRANSPORT_LOSSES); + return importPrice; + } + + public double getImportAmount() { + return importAmount; + } + + public double getExportAmount() { + return exportAmount; + } + + public GlobalPrice createWithUpdatedMarketPrices(double imports, double exports, boolean adjustPrice) { + if (imports > 0 || exports > 0) { + double ratio; + + if (imports > exports) + ratio = (imports-exports)/imports; + else + ratio = (imports-exports)/exports; + + double adjustment = adjustPrice ? Math.exp(ratio * ModelConfig.MARKET_LAMBA) : 1.0; + return new GlobalPrice(exportPrice * adjustment, imports, exports); + } + else { + return this; + } + } + + @Override + public String toString() { + return String.format("export=%.3f", exportPrice); + } +} diff --git a/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java b/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java index efb19bd7ec16de8306b4a2a048d076b8a4ceb5b0..8e1703ad6cda12d3d4756af3c2cdfe04eaa88083 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/demand/DemandManager.java b/src/ac/ed/lurg/demand/DemandManager.java index d3c15d30377c40e4853187fecf69fe4f327906ca..88a52b82f64310d0a4a58f06759e627c96622276 100644 --- a/src/ac/ed/lurg/demand/DemandManager.java +++ b/src/ac/ed/lurg/demand/DemandManager.java @@ -76,7 +76,7 @@ public class DemandManager { if (bioenergyBaseDemand != null && bioenergyBaseDemand.containsKey(country)) { Double d = bioenergyBaseDemand.get(country).get(commodity); - int yearsOfChange = year - ModelConfig.BIOENERGY_CHANGE_START_YEAR; + int yearsOfChange = Math.min(ModelConfig.BIOENERGY_CHANGE_END_YEAR - ModelConfig.BIOENERGY_CHANGE_START_YEAR, year - ModelConfig.BIOENERGY_CHANGE_START_YEAR); double bioenergyDemandAdj = yearsOfChange > 0 ? (1.0 + yearsOfChange * ModelConfig.BIOENERGY_CHANGE_ANNUAL_RATE) : 1.0 ; return d == null ? 0 : d.doubleValue() * bioenergyDemandAdj; diff --git a/src/ac/ed/lurg/yield/LPJYieldResponseMapReader.java b/src/ac/ed/lurg/yield/LPJYieldResponseMapReader.java index 771526c073e2cf2fcf16f495ffff96745d99fe5c..901ecab40f7fd6bce3c69f57df0bffcf7f1f8c05 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 +}