diff --git a/GAMS/IntExtOpt.gms b/GAMS/IntExtOpt.gms index 56649c67a346073052de1d2f62ab1d3b7960ba2f..22e60adf8c2cf2aaa629acc23c26103d951e357b 100644 --- a/GAMS/IntExtOpt.gms +++ b/GAMS/IntExtOpt.gms @@ -45,10 +45,8 @@ PARAMETER subsidyRate(crop) rates of subsidy compared to costs; PARAMETER previousLandCoverArea(land_cover, location) land cover area in Mha; - PARAMETER carbonFluxRateLUC(land_cover_before, land_cover_after, location) carbon flux from land use change - MtC-eq per Mha; - PARAMETER carbonFluxRateNEE(land_cover, location) current net ecosystem exchange carbon flux; - PARAMETER carbonFluxRateHorizonNew(land_cover, location) annualied carbon flux over given carbon horizon for new land cover; - PARAMETER carbonFluxRateHorizonEstablished(land_cover, location) annualied carbon flux over given carbon horizon for established land cover; + PARAMETER carbonFluxRate(land_cover_before, land_cover_after, location) carbon flux from land use change - MtC-eq per Mha; + PARAMETER carbonCreditRate(land_cover_before, land_cover_after, location) carbon flux from land use change - MtC-eq per Mha; PARAMETER woodYieldRota(location) wood yield from forest rotation - MtC per Mha; PARAMETER woodYieldLUC(land_cover_before, land_cover_after, location) wood yield from land cover change; PARAMETER forestRotationPeriod(location) timber forest rotation period - years; @@ -84,7 +82,7 @@ $load previousCropArea, previousFertIntensity, previousIrrigIntensity, previousO $load yieldNone, yieldFertOnly, yieldIrrigOnly, yieldBoth, yieldShock $load fertParam, irrigParam, otherIParam, exportPrices, importPrices, maxNetImport, minNetImport, unhandledCropRate, setAsideRate, maxLandExpansionRate, subsidyRate $load meatEfficency, otherICost, irrigCost, irrigMaxRate, irrigConstraint, fertiliserUnitCost, domesticPriceMarkup, minDemandPerCereal, minDemandPerOilcrop, seedAndWasteRate -$load previousLandCoverArea, carbonFluxRateLUC, carbonFluxRateNEE, carbonFluxRateHorizonNew, carbonFluxRateHorizonEstablished, woodYieldRota, woodYieldLUC, forestRotationPeriod, conversionCost +$load previousLandCoverArea, carbonFluxRate, carbonCreditRate, woodYieldRota, woodYieldLUC, forestRotationPeriod, conversionCost $load woodDemand, woodExportPrice, woodImportPrice, woodMaxNetImport, woodMinNetImport, forestEstablishmentCost, vegClearingCostRate $load carbonPrice, carbonDemand, carbonMaxNetImport, carbonMinNetImport, carbonHorizon $gdxin @@ -152,6 +150,7 @@ $gdxin forestManagementCost vegClearningCost carbonFlux(location) total carbon flux - Mt C + carbonCredits(location) carbonImported carbonExported * A "artificial variable for debugging https://www.gams.com/blog/2017/07/misbehaving-model-infeasible/" @@ -204,6 +203,7 @@ $gdxin VEG_CLEARING_COST_CALC CARBON_FLUX_CALC(location) calc carbon flux + CARBON_CREDIT_CALC(location) CARBON_DEMAND_CONSTRAINT CARBON_MIN_TRADE_CONSTRAINT CARBON_MAX_TRADE_CONSTRAINT @@ -295,12 +295,11 @@ $gdxin *********** Carbon fluxes *********************************** - CARBON_FLUX_CALC(location) .. carbonFlux(location) =E= sum((land_cover_before)$[not sameAs(land_cover_before, 'carbonForest')], landCoverChange(land_cover_before, 'carbonForest', location)) * carbonFluxRateHorizonNew('carbonForest', location) + - landCoverArea('carbonForest', location) * carbonFluxRateHorizonEstablished('carbonForest', location) + - sum(land_cover_before, landCoverChange(land_cover_before, 'carbonForest', location) * carbonFluxRateLUC(land_cover_before, 'carbonForest', location)) + - sum(land_cover_after, landCoverChange('carbonForest', land_cover_after, location) * carbonFluxRateLUC('carbonForest', land_cover_after, location)); + CARBON_FLUX_CALC(location) .. carbonFlux(location) =E= sum((land_cover_before, land_cover_after), landCoverChange(land_cover_before, land_cover_after, location) * carbonFluxRate(land_cover_before, land_cover_after, location)); - CARBON_DEMAND_CONSTRAINT .. -sum(location, carbonFlux(location)) =G= carbonDemand + carbonExported - carbonImported; + CARBON_CREDIT_CALC(location) .. carbonCredits(location) =E= sum((land_cover_before, land_cover_after), landCoverChange(land_cover_before, land_cover_after, location) * carbonCreditRate(land_cover_before, land_cover_after, location)); + + CARBON_DEMAND_CONSTRAINT .. -sum(location, carbonCredits(location)) =G= carbonDemand + carbonExported - carbonImported; CARBON_MIN_TRADE_CONSTRAINT .. carbonImported - carbonExported =L= carbonMaxNetImport; @@ -350,6 +349,7 @@ $gdxin parameter feedCostRate(feed_crop); parameter productionShock(all_types); scalar netCarbonFlux; + scalar netCarbonCredits; scalar netCarbonImport; scalar netWoodImport; scalar totalWoodHarvest; @@ -372,9 +372,8 @@ $gdxin netImportAmount(import_crop) = importAmount.l(import_crop) - exportAmount.l(import_crop); netImportCost(import_crop) = importAmount.l(import_crop) * importPrices(import_crop) - exportAmount.l(import_crop) * exportPrices(import_crop); - - netCarbonFlux = SUM(location, carbonFlux.L(location)); + netCarbonCredits = SUM(location, carbonCredits.L(location)); netCarbonImport = carbonImported.L - carbonExported.L; * including wood from LUC as export netWoodImport = woodImported.L - woodExported.L; diff --git a/data/carbon_options.csv b/data/carbon_options.csv new file mode 100644 index 0000000000000000000000000000000000000000..b000b5b784c8cc5dcd1460349a260912ee1d2309 --- /dev/null +++ b/data/carbon_options.csv @@ -0,0 +1,26 @@ +From,To,Enabled +carbonForest,carbonForest,true +carbonForest,cropland,true +carbonForest,natural,true +carbonForest,pasture,true +carbonForest,timberForest,true +cropland,carbonForest,true +cropland,cropland,false +cropland,natural,false +cropland,pasture,false +cropland,timberForest,false +natural,carbonForest,true +natural,cropland,false +natural,natural,false +natural,pasture,false +natural,timberForest,false +pasture,carbonForest,true +pasture,cropland,false +pasture,natural,false +pasture,pasture,false +pasture,timberForest,false +timberForest,carbonForest,true +timberForest,cropland,false +timberForest,natural,false +timberForest,pasture,false +timberForest,timberForest,false diff --git a/data/subsidyrates.csv b/data/subsidyrates.csv index ab781db9ff062efd0dcb8ea5e85dda8f74a5810f..c22334d0b4ee1b4b32d9dee02466802ff0a46560 100644 --- a/data/subsidyrates.csv +++ b/data/subsidyrates.csv @@ -1,1074 +1,1567 @@ country,crop,rate -Afghanistan,Monogastrics,0.215689659476983 -Afghanistan,Oilcrops,0.215689659476983 -Afghanistan,Pulses,0.215689659476983 -Afghanistan,Ruminants,0.215689659476983 -Afghanistan,Starchy Roots,0.215689659476983 -Afghanistan,WheatBarleyOats,0.215689659476983 -Albania,Monogastrics,0.215689659476983 -Albania,Oilcrops,0.215689659476983 -Albania,Pulses,0.215689659476983 -Albania,Ruminants,0.215689659476983 -Albania,Starchy Roots,0.215689659476983 -Albania,WheatBarleyOats,0.215689659476983 -Algeria,Monogastrics,0.215689659476983 -Algeria,Oilcrops,0.215689659476983 -Algeria,Pulses,0.215689659476983 -Algeria,Ruminants,0.215689659476983 -Algeria,Starchy Roots,0.215689659476983 -Algeria,WheatBarleyOats,0.215689659476983 -Angola,Monogastrics,0.215689659476983 -Angola,Oilcrops,0.215689659476983 -Angola,Pulses,0.215689659476983 -Angola,Ruminants,0.215689659476983 -Angola,Starchy Roots,0.215689659476983 -Angola,WheatBarleyOats,0.215689659476983 -Antigua and Barbuda,Monogastrics,0.215689659476983 -Antigua and Barbuda,Oilcrops,0.215689659476983 -Antigua and Barbuda,Pulses,0.215689659476983 -Antigua and Barbuda,Ruminants,0.215689659476983 -Antigua and Barbuda,Starchy Roots,0.215689659476983 -Antigua and Barbuda,WheatBarleyOats,0.215689659476983 -Argentina,Monogastrics,0.215689659476983 -Argentina,Oilcrops,0.215689659476983 -Argentina,Pulses,0.215689659476983 -Argentina,Ruminants,0.215689659476983 -Argentina,Starchy Roots,0.215689659476983 -Argentina,WheatBarleyOats,0.215689659476983 -Armenia,Monogastrics,0.215689659476983 -Armenia,Oilcrops,0.215689659476983 -Armenia,Pulses,0.215689659476983 -Armenia,Ruminants,0.215689659476983 -Armenia,Starchy Roots,0.215689659476983 -Armenia,WheatBarleyOats,0.215689659476983 -Australia,Monogastrics,0.0224797645881815 -Australia,Oilcrops,0.0224797645881815 -Australia,Pulses,0.0224797645881815 -Australia,Ruminants,0.0224797645881815 -Australia,Starchy Roots,0.0224797645881815 -Australia,WheatBarleyOats,0.0224797645881815 -Austria,Monogastrics,0.08852891322094 -Austria,Oilcrops,0.08852891322094 -Austria,Pulses,0.08852891322094 -Austria,Ruminants,0.08852891322094 -Austria,Starchy Roots,0.08852891322094 -Austria,WheatBarleyOats,0.08852891322094 -Azerbaijan,Monogastrics,0.215689659476983 -Azerbaijan,Oilcrops,0.215689659476983 -Azerbaijan,Pulses,0.215689659476983 -Azerbaijan,Ruminants,0.215689659476983 -Azerbaijan,Starchy Roots,0.215689659476983 -Azerbaijan,WheatBarleyOats,0.215689659476983 -Bahamas,Monogastrics,0.215689659476983 -Bahamas,Oilcrops,0.215689659476983 -Bahamas,Pulses,0.215689659476983 -Bahamas,Ruminants,0.215689659476983 -Bahamas,Starchy Roots,0.215689659476983 -Bahamas,WheatBarleyOats,0.215689659476983 -Bangladesh,Monogastrics,0.215689659476983 -Bangladesh,Oilcrops,0.215689659476983 -Bangladesh,Pulses,0.215689659476983 -Bangladesh,Ruminants,0.215689659476983 -Bangladesh,Starchy Roots,0.215689659476983 -Bangladesh,WheatBarleyOats,0.215689659476983 -Barbados,Monogastrics,0.215689659476983 -Barbados,Oilcrops,0.215689659476983 -Barbados,Pulses,0.215689659476983 -Barbados,Ruminants,0.215689659476983 -Barbados,Starchy Roots,0.215689659476983 -Barbados,WheatBarleyOats,0.215689659476983 -Belarus,Monogastrics,0.215689659476983 -Belarus,Oilcrops,0.215689659476983 -Belarus,Pulses,0.215689659476983 -Belarus,Ruminants,0.215689659476983 -Belarus,Starchy Roots,0.215689659476983 -Belarus,WheatBarleyOats,0.215689659476983 -Belgium,Monogastrics,0.08852891322094 -Belgium,Oilcrops,0.08852891322094 -Belgium,Pulses,0.08852891322094 -Belgium,Ruminants,0.08852891322094 -Belgium,Starchy Roots,0.08852891322094 -Belgium,WheatBarleyOats,0.08852891322094 -Belize,Monogastrics,0.215689659476983 -Belize,Oilcrops,0.215689659476983 -Belize,Pulses,0.215689659476983 -Belize,Ruminants,0.215689659476983 -Belize,Starchy Roots,0.215689659476983 -Belize,WheatBarleyOats,0.215689659476983 -Benin,Monogastrics,0.215689659476983 -Benin,Oilcrops,0.215689659476983 -Benin,Pulses,0.215689659476983 -Benin,Ruminants,0.215689659476983 -Benin,Starchy Roots,0.215689659476983 -Benin,WheatBarleyOats,0.215689659476983 -Bermuda,Monogastrics,0.215689659476983 -Bermuda,Oilcrops,0.215689659476983 -Bermuda,Pulses,0.215689659476983 -Bermuda,Ruminants,0.215689659476983 -Bermuda,Starchy Roots,0.215689659476983 -Bermuda,WheatBarleyOats,0.215689659476983 -Bolivia (Plurinational State of),Monogastrics,0.215689659476983 -Bolivia (Plurinational State of),Oilcrops,0.215689659476983 -Bolivia (Plurinational State of),Pulses,0.215689659476983 -Bolivia (Plurinational State of),Ruminants,0.215689659476983 -Bolivia (Plurinational State of),Starchy Roots,0.215689659476983 -Bolivia (Plurinational State of),WheatBarleyOats,0.215689659476983 -Bosnia and Herzegovina,Monogastrics,0.215689659476983 -Bosnia and Herzegovina,Oilcrops,0.215689659476983 -Bosnia and Herzegovina,Pulses,0.215689659476983 -Bosnia and Herzegovina,Ruminants,0.215689659476983 -Bosnia and Herzegovina,Starchy Roots,0.215689659476983 -Bosnia and Herzegovina,WheatBarleyOats,0.215689659476983 -Botswana,Monogastrics,0.215689659476983 -Botswana,Oilcrops,0.215689659476983 -Botswana,Pulses,0.215689659476983 -Botswana,Ruminants,0.215689659476983 -Botswana,Starchy Roots,0.215689659476983 -Botswana,WheatBarleyOats,0.215689659476983 -Brazil,Monogastrics,0.0991357318597574 -Brazil,Oilcrops,0.0991357318597574 -Brazil,Pulses,0.0991357318597574 -Brazil,Ruminants,0.0991357318597574 -Brazil,Starchy Roots,0.0991357318597574 -Brazil,WheatBarleyOats,0.0991357318597574 -Brunei Darussalam,Monogastrics,0.215689659476983 -Brunei Darussalam,Oilcrops,0.215689659476983 -Brunei Darussalam,Pulses,0.215689659476983 -Brunei Darussalam,Ruminants,0.215689659476983 -Brunei Darussalam,Starchy Roots,0.215689659476983 -Brunei Darussalam,WheatBarleyOats,0.215689659476983 -Bulgaria,Monogastrics,0.08852891322094 -Bulgaria,Oilcrops,0.08852891322094 -Bulgaria,Pulses,0.08852891322094 -Bulgaria,Ruminants,0.08852891322094 -Bulgaria,Starchy Roots,0.08852891322094 -Bulgaria,WheatBarleyOats,0.08852891322094 -Burkina Faso,Monogastrics,0.215689659476983 -Burkina Faso,Oilcrops,0.215689659476983 -Burkina Faso,Pulses,0.215689659476983 -Burkina Faso,Ruminants,0.215689659476983 -Burkina Faso,Starchy Roots,0.215689659476983 -Burkina Faso,WheatBarleyOats,0.215689659476983 -Cabo Verde,Monogastrics,0.215689659476983 -Cabo Verde,Oilcrops,0.215689659476983 -Cabo Verde,Pulses,0.215689659476983 -Cabo Verde,Ruminants,0.215689659476983 -Cabo Verde,Starchy Roots,0.215689659476983 -Cabo Verde,WheatBarleyOats,0.215689659476983 -Cambodia,Monogastrics,0.215689659476983 -Cambodia,Oilcrops,0.215689659476983 -Cambodia,Pulses,0.215689659476983 -Cambodia,Ruminants,0.215689659476983 -Cambodia,Starchy Roots,0.215689659476983 -Cambodia,WheatBarleyOats,0.215689659476983 -Cameroon,Monogastrics,0.215689659476983 -Cameroon,Oilcrops,0.215689659476983 -Cameroon,Pulses,0.215689659476983 -Cameroon,Ruminants,0.215689659476983 -Cameroon,Starchy Roots,0.215689659476983 -Cameroon,WheatBarleyOats,0.215689659476983 -Canada,Monogastrics,0.236078878594752 -Canada,Oilcrops,0.236078878594752 -Canada,Pulses,0.236078878594752 -Canada,Ruminants,0.236078878594752 -Canada,Starchy Roots,0.236078878594752 -Canada,WheatBarleyOats,0.236078878594752 -Central African Republic,Monogastrics,0.215689659476983 -Central African Republic,Oilcrops,0.215689659476983 -Central African Republic,Pulses,0.215689659476983 -Central African Republic,Ruminants,0.215689659476983 -Central African Republic,Starchy Roots,0.215689659476983 -Central African Republic,WheatBarleyOats,0.215689659476983 -Chad,Monogastrics,0.215689659476983 -Chad,Oilcrops,0.215689659476983 -Chad,Pulses,0.215689659476983 -Chad,Ruminants,0.215689659476983 -Chad,Starchy Roots,0.215689659476983 -Chad,WheatBarleyOats,0.215689659476983 -Chile,Monogastrics,0.215689659476983 -Chile,Oilcrops,0.215689659476983 -Chile,Pulses,0.215689659476983 -Chile,Ruminants,0.215689659476983 -Chile,Starchy Roots,0.215689659476983 -Chile,WheatBarleyOats,0.215689659476983 -China,Monogastrics,0.47579334913104 -China,Oilcrops,0.47579334913104 -China,Pulses,0.47579334913104 -China,Ruminants,0.47579334913104 -China,Starchy Roots,0.47579334913104 -China,WheatBarleyOats,0.47579334913104 -Colombia,Monogastrics,0.596026015377356 -Colombia,Oilcrops,0.596026015377356 -Colombia,Pulses,0.596026015377356 -Colombia,Ruminants,0.596026015377356 -Colombia,Starchy Roots,0.596026015377356 -Colombia,WheatBarleyOats,0.596026015377356 -Congo,Monogastrics,0.215689659476983 -Congo,Oilcrops,0.215689659476983 -Congo,Pulses,0.215689659476983 -Congo,Ruminants,0.215689659476983 -Congo,Starchy Roots,0.215689659476983 -Congo,WheatBarleyOats,0.215689659476983 -Costa Rica,Monogastrics,0.215689659476983 -Costa Rica,Oilcrops,0.215689659476983 -Costa Rica,Pulses,0.215689659476983 -Costa Rica,Ruminants,0.215689659476983 -Costa Rica,Starchy Roots,0.215689659476983 -Costa Rica,WheatBarleyOats,0.215689659476983 -Cote d'Ivoire,Monogastrics,0.215689659476983 -Cote d'Ivoire,Oilcrops,0.215689659476983 -Cote d'Ivoire,Pulses,0.215689659476983 -Cote d'Ivoire,Ruminants,0.215689659476983 -Cote d'Ivoire,Starchy Roots,0.215689659476983 -Cote d'Ivoire,WheatBarleyOats,0.215689659476983 -Croatia,Monogastrics,0.08852891322094 -Croatia,Oilcrops,0.08852891322094 -Croatia,Pulses,0.08852891322094 -Croatia,Ruminants,0.08852891322094 -Croatia,Starchy Roots,0.08852891322094 -Croatia,WheatBarleyOats,0.08852891322094 -Cuba,Monogastrics,0.215689659476983 -Cuba,Oilcrops,0.215689659476983 -Cuba,Pulses,0.215689659476983 -Cuba,Ruminants,0.215689659476983 -Cuba,Starchy Roots,0.215689659476983 -Cuba,WheatBarleyOats,0.215689659476983 -Cyprus,Monogastrics,0.08852891322094 -Cyprus,Oilcrops,0.08852891322094 -Cyprus,Pulses,0.08852891322094 -Cyprus,Ruminants,0.08852891322094 -Cyprus,Starchy Roots,0.08852891322094 -Cyprus,WheatBarleyOats,0.08852891322094 -Democratic People's Republic of Korea,Monogastrics,0.215689659476983 -Democratic People's Republic of Korea,Oilcrops,0.215689659476983 -Democratic People's Republic of Korea,Pulses,0.215689659476983 -Democratic People's Republic of Korea,Ruminants,0.215689659476983 -Democratic People's Republic of Korea,Starchy Roots,0.215689659476983 -Democratic People's Republic of Korea,WheatBarleyOats,0.215689659476983 -Democratic Republic of the Congo,Monogastrics,0.215689659476983 -Democratic Republic of the Congo,Oilcrops,0.215689659476983 -Democratic Republic of the Congo,Pulses,0.215689659476983 -Democratic Republic of the Congo,Ruminants,0.215689659476983 -Democratic Republic of the Congo,Starchy Roots,0.215689659476983 -Democratic Republic of the Congo,WheatBarleyOats,0.215689659476983 -Denmark,Monogastrics,0.08852891322094 -Denmark,Oilcrops,0.08852891322094 -Denmark,Pulses,0.08852891322094 -Denmark,Ruminants,0.08852891322094 -Denmark,Starchy Roots,0.08852891322094 -Denmark,WheatBarleyOats,0.08852891322094 -Djibouti,Monogastrics,0.215689659476983 -Djibouti,Oilcrops,0.215689659476983 -Djibouti,Pulses,0.215689659476983 -Djibouti,Ruminants,0.215689659476983 -Djibouti,Starchy Roots,0.215689659476983 -Djibouti,WheatBarleyOats,0.215689659476983 -Dominica,Monogastrics,0.215689659476983 -Dominica,Oilcrops,0.215689659476983 -Dominica,Pulses,0.215689659476983 -Dominica,Ruminants,0.215689659476983 -Dominica,Starchy Roots,0.215689659476983 -Dominica,WheatBarleyOats,0.215689659476983 -Dominican Republic,Monogastrics,0.215689659476983 -Dominican Republic,Oilcrops,0.215689659476983 -Dominican Republic,Pulses,0.215689659476983 -Dominican Republic,Ruminants,0.215689659476983 -Dominican Republic,Starchy Roots,0.215689659476983 -Dominican Republic,WheatBarleyOats,0.215689659476983 -Ecuador,Monogastrics,0.215689659476983 -Ecuador,Oilcrops,0.215689659476983 -Ecuador,Pulses,0.215689659476983 -Ecuador,Ruminants,0.215689659476983 -Ecuador,Starchy Roots,0.215689659476983 -Ecuador,WheatBarleyOats,0.215689659476983 -Egypt,Monogastrics,0.215689659476983 -Egypt,Oilcrops,0.215689659476983 -Egypt,Pulses,0.215689659476983 -Egypt,Ruminants,0.215689659476983 -Egypt,Starchy Roots,0.215689659476983 -Egypt,WheatBarleyOats,0.215689659476983 -El Salvador,Monogastrics,0.215689659476983 -El Salvador,Oilcrops,0.215689659476983 -El Salvador,Pulses,0.215689659476983 -El Salvador,Ruminants,0.215689659476983 -El Salvador,Starchy Roots,0.215689659476983 -El Salvador,WheatBarleyOats,0.215689659476983 -Estonia,Monogastrics,0.08852891322094 -Estonia,Oilcrops,0.08852891322094 -Estonia,Pulses,0.08852891322094 -Estonia,Ruminants,0.08852891322094 -Estonia,Starchy Roots,0.08852891322094 -Estonia,WheatBarleyOats,0.08852891322094 -Ethiopia,Monogastrics,0.215689659476983 -Ethiopia,Oilcrops,0.215689659476983 -Ethiopia,Pulses,0.215689659476983 -Ethiopia,Ruminants,0.215689659476983 -Ethiopia,Starchy Roots,0.215689659476983 -Ethiopia,WheatBarleyOats,0.215689659476983 -Fiji,Monogastrics,0.215689659476983 -Fiji,Oilcrops,0.215689659476983 -Fiji,Pulses,0.215689659476983 -Fiji,Ruminants,0.215689659476983 -Fiji,Starchy Roots,0.215689659476983 -Fiji,WheatBarleyOats,0.215689659476983 -Finland,Monogastrics,0.08852891322094 -Finland,Oilcrops,0.08852891322094 -Finland,Pulses,0.08852891322094 -Finland,Ruminants,0.08852891322094 -Finland,Starchy Roots,0.08852891322094 -Finland,WheatBarleyOats,0.08852891322094 -France,Monogastrics,0.08852891322094 -France,Oilcrops,0.08852891322094 -France,Pulses,0.08852891322094 -France,Ruminants,0.08852891322094 -France,Starchy Roots,0.08852891322094 -France,WheatBarleyOats,0.08852891322094 -French Polynesia,Monogastrics,0.215689659476983 -French Polynesia,Oilcrops,0.215689659476983 -French Polynesia,Pulses,0.215689659476983 -French Polynesia,Ruminants,0.215689659476983 -French Polynesia,Starchy Roots,0.215689659476983 -French Polynesia,WheatBarleyOats,0.215689659476983 -Gabon,Monogastrics,0.215689659476983 -Gabon,Oilcrops,0.215689659476983 -Gabon,Pulses,0.215689659476983 -Gabon,Ruminants,0.215689659476983 -Gabon,Starchy Roots,0.215689659476983 -Gabon,WheatBarleyOats,0.215689659476983 -Gambia,Monogastrics,0.215689659476983 -Gambia,Oilcrops,0.215689659476983 -Gambia,Pulses,0.215689659476983 -Gambia,Ruminants,0.215689659476983 -Gambia,Starchy Roots,0.215689659476983 -Gambia,WheatBarleyOats,0.215689659476983 -Georgia,Monogastrics,0.215689659476983 -Georgia,Oilcrops,0.215689659476983 -Georgia,Pulses,0.215689659476983 -Georgia,Ruminants,0.215689659476983 -Georgia,Starchy Roots,0.215689659476983 -Georgia,WheatBarleyOats,0.215689659476983 -Germany,Monogastrics,0.08852891322094 -Germany,Oilcrops,0.08852891322094 -Germany,Pulses,0.08852891322094 -Germany,Ruminants,0.08852891322094 -Germany,Starchy Roots,0.08852891322094 -Germany,WheatBarleyOats,0.08852891322094 -Ghana,Monogastrics,0.215689659476983 -Ghana,Oilcrops,0.215689659476983 -Ghana,Pulses,0.215689659476983 -Ghana,Ruminants,0.215689659476983 -Ghana,Starchy Roots,0.215689659476983 -Ghana,WheatBarleyOats,0.215689659476983 -Greece,Monogastrics,0.08852891322094 -Greece,Oilcrops,0.08852891322094 -Greece,Pulses,0.08852891322094 -Greece,Ruminants,0.08852891322094 -Greece,Starchy Roots,0.08852891322094 -Greece,WheatBarleyOats,0.08852891322094 -Grenada,Monogastrics,0.215689659476983 -Grenada,Oilcrops,0.215689659476983 -Grenada,Pulses,0.215689659476983 -Grenada,Ruminants,0.215689659476983 -Grenada,Starchy Roots,0.215689659476983 -Grenada,WheatBarleyOats,0.215689659476983 -Guatemala,Monogastrics,0.215689659476983 -Guatemala,Oilcrops,0.215689659476983 -Guatemala,Pulses,0.215689659476983 -Guatemala,Ruminants,0.215689659476983 -Guatemala,Starchy Roots,0.215689659476983 -Guatemala,WheatBarleyOats,0.215689659476983 -Guinea,Monogastrics,0.215689659476983 -Guinea,Oilcrops,0.215689659476983 -Guinea,Pulses,0.215689659476983 -Guinea,Ruminants,0.215689659476983 -Guinea,Starchy Roots,0.215689659476983 -Guinea,WheatBarleyOats,0.215689659476983 -Guinea-Bissau,Monogastrics,0.215689659476983 -Guinea-Bissau,Oilcrops,0.215689659476983 -Guinea-Bissau,Pulses,0.215689659476983 -Guinea-Bissau,Ruminants,0.215689659476983 -Guinea-Bissau,Starchy Roots,0.215689659476983 -Guinea-Bissau,WheatBarleyOats,0.215689659476983 -Guyana,Monogastrics,0.215689659476983 -Guyana,Oilcrops,0.215689659476983 -Guyana,Pulses,0.215689659476983 -Guyana,Ruminants,0.215689659476983 -Guyana,Starchy Roots,0.215689659476983 -Guyana,WheatBarleyOats,0.215689659476983 -Haiti,Monogastrics,0.215689659476983 -Haiti,Oilcrops,0.215689659476983 -Haiti,Pulses,0.215689659476983 -Haiti,Ruminants,0.215689659476983 -Haiti,Starchy Roots,0.215689659476983 -Haiti,WheatBarleyOats,0.215689659476983 -Honduras,Monogastrics,0.215689659476983 -Honduras,Oilcrops,0.215689659476983 -Honduras,Pulses,0.215689659476983 -Honduras,Ruminants,0.215689659476983 -Honduras,Starchy Roots,0.215689659476983 -Honduras,WheatBarleyOats,0.215689659476983 -Hungary,Monogastrics,0.08852891322094 -Hungary,Oilcrops,0.08852891322094 -Hungary,Pulses,0.08852891322094 -Hungary,Ruminants,0.08852891322094 -Hungary,Starchy Roots,0.08852891322094 -Hungary,WheatBarleyOats,0.08852891322094 -Iceland,Monogastrics,0.215689659476983 -Iceland,Oilcrops,0.215689659476983 -Iceland,Pulses,0.215689659476983 -Iceland,Ruminants,0.215689659476983 -Iceland,Starchy Roots,0.215689659476983 -Iceland,WheatBarleyOats,0.215689659476983 -India,Monogastrics,0.0268152885231163 -India,Oilcrops,0.0268152885231163 -India,Pulses,0.0268152885231163 -India,Ruminants,0.0268152885231163 -India,Starchy Roots,0.0268152885231163 -India,WheatBarleyOats,0.0268152885231163 -Indonesia,Monogastrics,0.00497781768087531 -Indonesia,Oilcrops,0.00497781768087531 -Indonesia,Pulses,0.00497781768087531 -Indonesia,Ruminants,0.00497781768087531 -Indonesia,Starchy Roots,0.00497781768087531 -Indonesia,WheatBarleyOats,0.00497781768087531 -Iran (Islamic Republic of),Monogastrics,0.215689659476983 -Iran (Islamic Republic of),Oilcrops,0.215689659476983 -Iran (Islamic Republic of),Pulses,0.215689659476983 -Iran (Islamic Republic of),Ruminants,0.215689659476983 -Iran (Islamic Republic of),Starchy Roots,0.215689659476983 -Iran (Islamic Republic of),WheatBarleyOats,0.215689659476983 -Iraq,Monogastrics,0.215689659476983 -Iraq,Oilcrops,0.215689659476983 -Iraq,Pulses,0.215689659476983 -Iraq,Ruminants,0.215689659476983 -Iraq,Starchy Roots,0.215689659476983 -Iraq,WheatBarleyOats,0.215689659476983 -Ireland,Monogastrics,0.08852891322094 -Ireland,Oilcrops,0.08852891322094 -Ireland,Pulses,0.08852891322094 -Ireland,Ruminants,0.08852891322094 -Ireland,Starchy Roots,0.08852891322094 -Ireland,WheatBarleyOats,0.08852891322094 -Israel,Monogastrics,0.215689659476983 -Israel,Oilcrops,0.215689659476983 -Israel,Pulses,0.215689659476983 -Israel,Ruminants,0.215689659476983 -Israel,Starchy Roots,0.215689659476983 -Israel,WheatBarleyOats,0.215689659476983 -Italy,Monogastrics,0.08852891322094 -Italy,Oilcrops,0.08852891322094 -Italy,Pulses,0.08852891322094 -Italy,Ruminants,0.08852891322094 -Italy,Starchy Roots,0.08852891322094 -Italy,WheatBarleyOats,0.08852891322094 -Jamaica,Monogastrics,0.215689659476983 -Jamaica,Oilcrops,0.215689659476983 -Jamaica,Pulses,0.215689659476983 -Jamaica,Ruminants,0.215689659476983 -Jamaica,Starchy Roots,0.215689659476983 -Jamaica,WheatBarleyOats,0.215689659476983 -Japan,Monogastrics,0.244717652733665 -Japan,Oilcrops,0.244717652733665 -Japan,Pulses,0.244717652733665 -Japan,Ruminants,0.244717652733665 -Japan,Starchy Roots,0.244717652733665 -Japan,WheatBarleyOats,0.244717652733665 -Jordan,Monogastrics,0.215689659476983 -Jordan,Oilcrops,0.215689659476983 -Jordan,Pulses,0.215689659476983 -Jordan,Ruminants,0.215689659476983 -Jordan,Starchy Roots,0.215689659476983 -Jordan,WheatBarleyOats,0.215689659476983 -Kazakhstan,Monogastrics,0.215689659476983 -Kazakhstan,Oilcrops,0.215689659476983 -Kazakhstan,Pulses,0.215689659476983 -Kazakhstan,Ruminants,0.215689659476983 -Kazakhstan,Starchy Roots,0.215689659476983 -Kazakhstan,WheatBarleyOats,0.215689659476983 -Kenya,Monogastrics,0.215689659476983 -Kenya,Oilcrops,0.215689659476983 -Kenya,Pulses,0.215689659476983 -Kenya,Ruminants,0.215689659476983 -Kenya,Starchy Roots,0.215689659476983 -Kenya,WheatBarleyOats,0.215689659476983 -Kiribati,Monogastrics,0.215689659476983 -Kiribati,Oilcrops,0.215689659476983 -Kiribati,Pulses,0.215689659476983 -Kiribati,Ruminants,0.215689659476983 -Kiribati,Starchy Roots,0.215689659476983 -Kiribati,WheatBarleyOats,0.215689659476983 -Kuwait,Monogastrics,0.215689659476983 -Kuwait,Oilcrops,0.215689659476983 -Kuwait,Pulses,0.215689659476983 -Kuwait,Ruminants,0.215689659476983 -Kuwait,Starchy Roots,0.215689659476983 -Kuwait,WheatBarleyOats,0.215689659476983 -Kyrgyzstan,Monogastrics,0.215689659476983 -Kyrgyzstan,Oilcrops,0.215689659476983 -Kyrgyzstan,Pulses,0.215689659476983 -Kyrgyzstan,Ruminants,0.215689659476983 -Kyrgyzstan,Starchy Roots,0.215689659476983 -Kyrgyzstan,WheatBarleyOats,0.215689659476983 -Lao People's Democratic Republic,Monogastrics,0.215689659476983 -Lao People's Democratic Republic,Oilcrops,0.215689659476983 -Lao People's Democratic Republic,Pulses,0.215689659476983 -Lao People's Democratic Republic,Ruminants,0.215689659476983 -Lao People's Democratic Republic,Starchy Roots,0.215689659476983 -Lao People's Democratic Republic,WheatBarleyOats,0.215689659476983 -Latvia,Monogastrics,0.08852891322094 -Latvia,Oilcrops,0.08852891322094 -Latvia,Pulses,0.08852891322094 -Latvia,Ruminants,0.08852891322094 -Latvia,Starchy Roots,0.08852891322094 -Latvia,WheatBarleyOats,0.08852891322094 -Lebanon,Monogastrics,0.215689659476983 -Lebanon,Oilcrops,0.215689659476983 -Lebanon,Pulses,0.215689659476983 -Lebanon,Ruminants,0.215689659476983 -Lebanon,Starchy Roots,0.215689659476983 -Lebanon,WheatBarleyOats,0.215689659476983 -Lesotho,Monogastrics,0.215689659476983 -Lesotho,Oilcrops,0.215689659476983 -Lesotho,Pulses,0.215689659476983 -Lesotho,Ruminants,0.215689659476983 -Lesotho,Starchy Roots,0.215689659476983 -Lesotho,WheatBarleyOats,0.215689659476983 -Liberia,Monogastrics,0.215689659476983 -Liberia,Oilcrops,0.215689659476983 -Liberia,Pulses,0.215689659476983 -Liberia,Ruminants,0.215689659476983 -Liberia,Starchy Roots,0.215689659476983 -Liberia,WheatBarleyOats,0.215689659476983 -Libya,Monogastrics,0.215689659476983 -Libya,Oilcrops,0.215689659476983 -Libya,Pulses,0.215689659476983 -Libya,Ruminants,0.215689659476983 -Libya,Starchy Roots,0.215689659476983 -Libya,WheatBarleyOats,0.215689659476983 -Lithuania,Monogastrics,0.08852891322094 -Lithuania,Oilcrops,0.08852891322094 -Lithuania,Pulses,0.08852891322094 -Lithuania,Ruminants,0.08852891322094 -Lithuania,Starchy Roots,0.08852891322094 -Lithuania,WheatBarleyOats,0.08852891322094 -Luxembourg,Monogastrics,0.08852891322094 -Luxembourg,Oilcrops,0.08852891322094 -Luxembourg,Pulses,0.08852891322094 -Luxembourg,Ruminants,0.08852891322094 -Luxembourg,Starchy Roots,0.08852891322094 -Luxembourg,WheatBarleyOats,0.08852891322094 -Madagascar,Monogastrics,0.215689659476983 -Madagascar,Oilcrops,0.215689659476983 -Madagascar,Pulses,0.215689659476983 -Madagascar,Ruminants,0.215689659476983 -Madagascar,Starchy Roots,0.215689659476983 -Madagascar,WheatBarleyOats,0.215689659476983 -Malawi,Monogastrics,0.215689659476983 -Malawi,Oilcrops,0.215689659476983 -Malawi,Pulses,0.215689659476983 -Malawi,Ruminants,0.215689659476983 -Malawi,Starchy Roots,0.215689659476983 -Malawi,WheatBarleyOats,0.215689659476983 -Malaysia,Monogastrics,0.215689659476983 -Malaysia,Oilcrops,0.215689659476983 -Malaysia,Pulses,0.215689659476983 -Malaysia,Ruminants,0.215689659476983 -Malaysia,Starchy Roots,0.215689659476983 -Malaysia,WheatBarleyOats,0.215689659476983 -Maldives,Monogastrics,0.215689659476983 -Maldives,Oilcrops,0.215689659476983 -Maldives,Pulses,0.215689659476983 -Maldives,Ruminants,0.215689659476983 -Maldives,Starchy Roots,0.215689659476983 -Maldives,WheatBarleyOats,0.215689659476983 -Mali,Monogastrics,0.215689659476983 -Mali,Oilcrops,0.215689659476983 -Mali,Pulses,0.215689659476983 -Mali,Ruminants,0.215689659476983 -Mali,Starchy Roots,0.215689659476983 -Mali,WheatBarleyOats,0.215689659476983 -Malta,Monogastrics,0.08852891322094 -Malta,Oilcrops,0.08852891322094 -Malta,Pulses,0.08852891322094 -Malta,Ruminants,0.08852891322094 -Malta,Starchy Roots,0.08852891322094 -Malta,WheatBarleyOats,0.08852891322094 -Mauritania,Monogastrics,0.215689659476983 -Mauritania,Oilcrops,0.215689659476983 -Mauritania,Pulses,0.215689659476983 -Mauritania,Ruminants,0.215689659476983 -Mauritania,Starchy Roots,0.215689659476983 -Mauritania,WheatBarleyOats,0.215689659476983 -Mauritius,Monogastrics,0.215689659476983 -Mauritius,Oilcrops,0.215689659476983 -Mauritius,Pulses,0.215689659476983 -Mauritius,Ruminants,0.215689659476983 -Mauritius,Starchy Roots,0.215689659476983 -Mauritius,WheatBarleyOats,0.215689659476983 -Mexico,Monogastrics,0.244717652733665 -Mexico,Oilcrops,0.244717652733665 -Mexico,Pulses,0.244717652733665 -Mexico,Ruminants,0.244717652733665 -Mexico,Starchy Roots,0.244717652733665 -Mexico,WheatBarleyOats,0.244717652733665 -Mongolia,Monogastrics,0.215689659476983 -Mongolia,Oilcrops,0.215689659476983 -Mongolia,Pulses,0.215689659476983 -Mongolia,Ruminants,0.215689659476983 -Mongolia,Starchy Roots,0.215689659476983 -Mongolia,WheatBarleyOats,0.215689659476983 -Montenegro,Monogastrics,0.215689659476983 -Montenegro,Oilcrops,0.215689659476983 -Montenegro,Pulses,0.215689659476983 -Montenegro,Ruminants,0.215689659476983 -Montenegro,Starchy Roots,0.215689659476983 -Montenegro,WheatBarleyOats,0.215689659476983 -Morocco,Monogastrics,0.215689659476983 -Morocco,Oilcrops,0.215689659476983 -Morocco,Pulses,0.215689659476983 -Morocco,Ruminants,0.215689659476983 -Morocco,Starchy Roots,0.215689659476983 -Morocco,WheatBarleyOats,0.215689659476983 -Mozambique,Monogastrics,0.215689659476983 -Mozambique,Oilcrops,0.215689659476983 -Mozambique,Pulses,0.215689659476983 -Mozambique,Ruminants,0.215689659476983 -Mozambique,Starchy Roots,0.215689659476983 -Mozambique,WheatBarleyOats,0.215689659476983 -Myanmar,Monogastrics,0.215689659476983 -Myanmar,Monogastrics,0.215689659476983 -Myanmar,Monogastrics,0.215689659476983 -Myanmar,Monogastrics,0.215689659476983 -Myanmar,Oilcrops,0.215689659476983 -Myanmar,Oilcrops,0.215689659476983 -Myanmar,Oilcrops,0.215689659476983 -Myanmar,Oilcrops,0.215689659476983 -Myanmar,Pulses,0.215689659476983 -Myanmar,Pulses,0.215689659476983 -Myanmar,Pulses,0.215689659476983 -Myanmar,Pulses,0.215689659476983 -Myanmar,Ruminants,0.215689659476983 -Myanmar,Ruminants,0.215689659476983 -Myanmar,Ruminants,0.215689659476983 -Myanmar,Ruminants,0.215689659476983 -Myanmar,Starchy Roots,0.215689659476983 -Myanmar,Starchy Roots,0.215689659476983 -Myanmar,Starchy Roots,0.215689659476983 -Myanmar,Starchy Roots,0.215689659476983 -Myanmar,WheatBarleyOats,0.215689659476983 -Myanmar,WheatBarleyOats,0.215689659476983 -Myanmar,WheatBarleyOats,0.215689659476983 -Myanmar,WheatBarleyOats,0.215689659476983 -Namibia,Monogastrics,0.215689659476983 -Namibia,Oilcrops,0.215689659476983 -Namibia,Pulses,0.215689659476983 -Namibia,Ruminants,0.215689659476983 -Namibia,Starchy Roots,0.215689659476983 -Namibia,WheatBarleyOats,0.215689659476983 -Nepal,Monogastrics,0.215689659476983 -Nepal,Oilcrops,0.215689659476983 -Nepal,Pulses,0.215689659476983 -Nepal,Ruminants,0.215689659476983 -Nepal,Starchy Roots,0.215689659476983 -Nepal,WheatBarleyOats,0.215689659476983 -Netherlands,Monogastrics,0.08852891322094 -Netherlands,Oilcrops,0.08852891322094 -Netherlands,Pulses,0.08852891322094 -Netherlands,Ruminants,0.08852891322094 -Netherlands,Starchy Roots,0.08852891322094 -Netherlands,WheatBarleyOats,0.08852891322094 -New Caledonia,Monogastrics,0.215689659476983 -New Caledonia,Oilcrops,0.215689659476983 -New Caledonia,Pulses,0.215689659476983 -New Caledonia,Ruminants,0.215689659476983 -New Caledonia,Starchy Roots,0.215689659476983 -New Caledonia,WheatBarleyOats,0.215689659476983 -New Zealand,Monogastrics,0.072407015722511 -New Zealand,Oilcrops,0.072407015722511 -New Zealand,Pulses,0.072407015722511 -New Zealand,Ruminants,0.072407015722511 -New Zealand,Starchy Roots,0.072407015722511 -New Zealand,WheatBarleyOats,0.072407015722511 -Nicaragua,Monogastrics,0.215689659476983 -Nicaragua,Oilcrops,0.215689659476983 -Nicaragua,Pulses,0.215689659476983 -Nicaragua,Ruminants,0.215689659476983 -Nicaragua,Starchy Roots,0.215689659476983 -Nicaragua,WheatBarleyOats,0.215689659476983 -Niger,Monogastrics,0.215689659476983 -Niger,Oilcrops,0.215689659476983 -Niger,Pulses,0.215689659476983 -Niger,Ruminants,0.215689659476983 -Niger,Starchy Roots,0.215689659476983 -Niger,WheatBarleyOats,0.215689659476983 -Nigeria,Monogastrics,0.215689659476983 -Nigeria,Oilcrops,0.215689659476983 -Nigeria,Pulses,0.215689659476983 -Nigeria,Ruminants,0.215689659476983 -Nigeria,Starchy Roots,0.215689659476983 -Nigeria,WheatBarleyOats,0.215689659476983 -Norway,Monogastrics,0.244717652733665 -Norway,Oilcrops,0.244717652733665 -Norway,Pulses,0.244717652733665 -Norway,Ruminants,0.244717652733665 -Norway,Starchy Roots,0.244717652733665 -Norway,WheatBarleyOats,0.244717652733665 -Oman,Monogastrics,0.215689659476983 -Oman,Oilcrops,0.215689659476983 -Oman,Pulses,0.215689659476983 -Oman,Ruminants,0.215689659476983 -Oman,Starchy Roots,0.215689659476983 -Oman,WheatBarleyOats,0.215689659476983 -Pakistan,Monogastrics,0.215689659476983 -Pakistan,Oilcrops,0.215689659476983 -Pakistan,Pulses,0.215689659476983 -Pakistan,Ruminants,0.215689659476983 -Pakistan,Starchy Roots,0.215689659476983 -Pakistan,WheatBarleyOats,0.215689659476983 -Panama,Monogastrics,0.215689659476983 -Panama,Oilcrops,0.215689659476983 -Panama,Pulses,0.215689659476983 -Panama,Ruminants,0.215689659476983 -Panama,Starchy Roots,0.215689659476983 -Panama,WheatBarleyOats,0.215689659476983 -Paraguay,Monogastrics,0.215689659476983 -Paraguay,Oilcrops,0.215689659476983 -Paraguay,Pulses,0.215689659476983 -Paraguay,Ruminants,0.215689659476983 -Paraguay,Starchy Roots,0.215689659476983 -Paraguay,WheatBarleyOats,0.215689659476983 -Peru,Monogastrics,0.215689659476983 -Peru,Oilcrops,0.215689659476983 -Peru,Pulses,0.215689659476983 -Peru,Ruminants,0.215689659476983 -Peru,Starchy Roots,0.215689659476983 -Peru,WheatBarleyOats,0.215689659476983 -Philippines,Monogastrics,0.215689659476983 -Philippines,Oilcrops,0.215689659476983 -Philippines,Pulses,0.215689659476983 -Philippines,Ruminants,0.215689659476983 -Philippines,Starchy Roots,0.215689659476983 -Philippines,WheatBarleyOats,0.215689659476983 -Poland,Monogastrics,0.08852891322094 -Poland,Oilcrops,0.08852891322094 -Poland,Pulses,0.08852891322094 -Poland,Ruminants,0.08852891322094 -Poland,Starchy Roots,0.08852891322094 -Poland,WheatBarleyOats,0.08852891322094 -Portugal,Monogastrics,0.08852891322094 -Portugal,Oilcrops,0.08852891322094 -Portugal,Pulses,0.08852891322094 -Portugal,Ruminants,0.08852891322094 -Portugal,Starchy Roots,0.08852891322094 -Portugal,WheatBarleyOats,0.08852891322094 -Republic of Korea,Monogastrics,0.244717652733665 -Republic of Korea,Oilcrops,0.244717652733665 -Republic of Korea,Pulses,0.244717652733665 -Republic of Korea,Ruminants,0.244717652733665 -Republic of Korea,Starchy Roots,0.244717652733665 -Republic of Korea,WheatBarleyOats,0.244717652733665 -Republic of Moldova,Monogastrics,0.215689659476983 -Republic of Moldova,Oilcrops,0.215689659476983 -Republic of Moldova,Pulses,0.215689659476983 -Republic of Moldova,Ruminants,0.215689659476983 -Republic of Moldova,Starchy Roots,0.215689659476983 -Republic of Moldova,WheatBarleyOats,0.215689659476983 -Romania,Monogastrics,0.08852891322094 -Romania,Oilcrops,0.08852891322094 -Romania,Pulses,0.08852891322094 -Romania,Ruminants,0.08852891322094 -Romania,Starchy Roots,0.08852891322094 -Romania,WheatBarleyOats,0.08852891322094 -Russian Federation,Monogastrics,0.282665325688606 -Russian Federation,Oilcrops,0.282665325688606 -Russian Federation,Pulses,0.282665325688606 -Russian Federation,Ruminants,0.282665325688606 -Russian Federation,Starchy Roots,0.282665325688606 -Russian Federation,WheatBarleyOats,0.282665325688606 -Rwanda,Monogastrics,0.215689659476983 -Rwanda,Oilcrops,0.215689659476983 -Rwanda,Pulses,0.215689659476983 -Rwanda,Ruminants,0.215689659476983 -Rwanda,Starchy Roots,0.215689659476983 -Rwanda,WheatBarleyOats,0.215689659476983 -Saint Kitts and Nevis,Monogastrics,0.215689659476983 -Saint Kitts and Nevis,Oilcrops,0.215689659476983 -Saint Kitts and Nevis,Pulses,0.215689659476983 -Saint Kitts and Nevis,Ruminants,0.215689659476983 -Saint Kitts and Nevis,Starchy Roots,0.215689659476983 -Saint Kitts and Nevis,WheatBarleyOats,0.215689659476983 -Saint Lucia,Monogastrics,0.215689659476983 -Saint Lucia,Oilcrops,0.215689659476983 -Saint Lucia,Pulses,0.215689659476983 -Saint Lucia,Ruminants,0.215689659476983 -Saint Lucia,Starchy Roots,0.215689659476983 -Saint Lucia,WheatBarleyOats,0.215689659476983 -Saint Vincent and the Grenadines,Monogastrics,0.215689659476983 -Saint Vincent and the Grenadines,Oilcrops,0.215689659476983 -Saint Vincent and the Grenadines,Pulses,0.215689659476983 -Saint Vincent and the Grenadines,Ruminants,0.215689659476983 -Saint Vincent and the Grenadines,Starchy Roots,0.215689659476983 -Saint Vincent and the Grenadines,WheatBarleyOats,0.215689659476983 -Samoa,Monogastrics,0.215689659476983 -Samoa,Oilcrops,0.215689659476983 -Samoa,Ruminants,0.215689659476983 -Samoa,Starchy Roots,0.215689659476983 -Samoa,WheatBarleyOats,0.215689659476983 -Sao Tome and Principe,Monogastrics,0.215689659476983 -Sao Tome and Principe,Oilcrops,0.215689659476983 -Sao Tome and Principe,Pulses,0.215689659476983 -Sao Tome and Principe,Ruminants,0.215689659476983 -Sao Tome and Principe,Starchy Roots,0.215689659476983 -Sao Tome and Principe,WheatBarleyOats,0.215689659476983 -Saudi Arabia,Monogastrics,0.215689659476983 -Saudi Arabia,Oilcrops,0.215689659476983 -Saudi Arabia,Pulses,0.215689659476983 -Saudi Arabia,Ruminants,0.215689659476983 -Saudi Arabia,Starchy Roots,0.215689659476983 -Saudi Arabia,WheatBarleyOats,0.215689659476983 -Senegal,Monogastrics,0.215689659476983 -Senegal,Oilcrops,0.215689659476983 -Senegal,Pulses,0.215689659476983 -Senegal,Ruminants,0.215689659476983 -Senegal,Starchy Roots,0.215689659476983 -Senegal,WheatBarleyOats,0.215689659476983 -Serbia,Monogastrics,0.215689659476983 -Serbia,Oilcrops,0.215689659476983 -Serbia,Pulses,0.215689659476983 -Serbia,Ruminants,0.215689659476983 -Serbia,Starchy Roots,0.215689659476983 -Serbia,WheatBarleyOats,0.215689659476983 -Sierra Leone,Monogastrics,0.215689659476983 -Sierra Leone,Oilcrops,0.215689659476983 -Sierra Leone,Pulses,0.215689659476983 -Sierra Leone,Ruminants,0.215689659476983 -Sierra Leone,Starchy Roots,0.215689659476983 -Sierra Leone,WheatBarleyOats,0.215689659476983 -Slovakia,Monogastrics,0.08852891322094 -Slovakia,Oilcrops,0.08852891322094 -Slovakia,Pulses,0.08852891322094 -Slovakia,Ruminants,0.08852891322094 -Slovakia,Starchy Roots,0.08852891322094 -Slovakia,WheatBarleyOats,0.08852891322094 -Slovenia,Monogastrics,0.08852891322094 -Slovenia,Oilcrops,0.08852891322094 -Slovenia,Pulses,0.08852891322094 -Slovenia,Ruminants,0.08852891322094 -Slovenia,Starchy Roots,0.08852891322094 -Slovenia,WheatBarleyOats,0.08852891322094 -Solomon Islands,Monogastrics,0.215689659476983 -Solomon Islands,Oilcrops,0.215689659476983 -Solomon Islands,Pulses,0.215689659476983 -Solomon Islands,Ruminants,0.215689659476983 -Solomon Islands,Starchy Roots,0.215689659476983 -Solomon Islands,WheatBarleyOats,0.215689659476983 -Somalia,Monogastrics,0.215689659476983 -Somalia,Oilcrops,0.215689659476983 -Somalia,Pulses,0.215689659476983 -Somalia,Ruminants,0.215689659476983 -Somalia,Starchy Roots,0.215689659476983 -Somalia,WheatBarleyOats,0.215689659476983 -South Africa,Monogastrics,0.0460651453727173 -South Africa,Oilcrops,0.0460651453727173 -South Africa,Pulses,0.0460651453727173 -South Africa,Ruminants,0.0460651453727173 -South Africa,Starchy Roots,0.0460651453727173 -South Africa,WheatBarleyOats,0.0460651453727173 -South Sudan,Monogastrics,0.215689659476983 -South Sudan,Oilcrops,0.215689659476983 -South Sudan,Pulses,0.215689659476983 -South Sudan,Ruminants,0.215689659476983 -South Sudan,Starchy Roots,0.215689659476983 -South Sudan,WheatBarleyOats,0.215689659476983 -Spain,Monogastrics,0.08852891322094 -Spain,Oilcrops,0.08852891322094 -Spain,Pulses,0.08852891322094 -Spain,Ruminants,0.08852891322094 -Spain,Starchy Roots,0.08852891322094 -Spain,WheatBarleyOats,0.08852891322094 -Sri Lanka,Monogastrics,0.215689659476983 -Sri Lanka,Oilcrops,0.215689659476983 -Sri Lanka,Pulses,0.215689659476983 -Sri Lanka,Ruminants,0.215689659476983 -Sri Lanka,Starchy Roots,0.215689659476983 -Sri Lanka,WheatBarleyOats,0.215689659476983 -Sudan,Monogastrics,0.215689659476983 -Sudan,Monogastrics,0.215689659476983 -Sudan,Monogastrics,0.215689659476983 -Sudan,Monogastrics,0.215689659476983 -Sudan,Oilcrops,0.215689659476983 -Sudan,Oilcrops,0.215689659476983 -Sudan,Oilcrops,0.215689659476983 -Sudan,Oilcrops,0.215689659476983 -Sudan,Pulses,0.215689659476983 -Sudan,Pulses,0.215689659476983 -Sudan,Pulses,0.215689659476983 -Sudan,Pulses,0.215689659476983 -Sudan,Ruminants,0.215689659476983 -Sudan,Ruminants,0.215689659476983 -Sudan,Ruminants,0.215689659476983 -Sudan,Ruminants,0.215689659476983 -Sudan,Starchy Roots,0.215689659476983 -Sudan,Starchy Roots,0.215689659476983 -Sudan,Starchy Roots,0.215689659476983 -Sudan,Starchy Roots,0.215689659476983 -Sudan,WheatBarleyOats,0.215689659476983 -Sudan,WheatBarleyOats,0.215689659476983 -Sudan,WheatBarleyOats,0.215689659476983 -Sudan,WheatBarleyOats,0.215689659476983 -Suriname,Monogastrics,0.215689659476983 -Suriname,Oilcrops,0.215689659476983 -Suriname,Pulses,0.215689659476983 -Suriname,Ruminants,0.215689659476983 -Suriname,Starchy Roots,0.215689659476983 -Suriname,WheatBarleyOats,0.215689659476983 -Swaziland,Monogastrics,0.215689659476983 -Swaziland,Oilcrops,0.215689659476983 -Swaziland,Pulses,0.215689659476983 -Swaziland,Ruminants,0.215689659476983 -Swaziland,Starchy Roots,0.215689659476983 -Swaziland,WheatBarleyOats,0.215689659476983 -Sweden,Monogastrics,0.08852891322094 -Sweden,Oilcrops,0.08852891322094 -Sweden,Pulses,0.08852891322094 -Sweden,Ruminants,0.08852891322094 -Sweden,Starchy Roots,0.08852891322094 -Sweden,WheatBarleyOats,0.08852891322094 -Switzerland,Monogastrics,0.244717652733665 -Switzerland,Oilcrops,0.244717652733665 -Switzerland,Pulses,0.244717652733665 -Switzerland,Ruminants,0.244717652733665 -Switzerland,Starchy Roots,0.244717652733665 -Switzerland,WheatBarleyOats,0.244717652733665 -Tajikistan,Monogastrics,0.215689659476983 -Tajikistan,Oilcrops,0.215689659476983 -Tajikistan,Pulses,0.215689659476983 -Tajikistan,Ruminants,0.215689659476983 -Tajikistan,Starchy Roots,0.215689659476983 -Tajikistan,WheatBarleyOats,0.215689659476983 -Thailand,Monogastrics,0.215689659476983 -Thailand,Oilcrops,0.215689659476983 -Thailand,Pulses,0.215689659476983 -Thailand,Ruminants,0.215689659476983 -Thailand,Starchy Roots,0.215689659476983 -Thailand,WheatBarleyOats,0.215689659476983 -The former Yugoslav Republic of Macedonia,Monogastrics,0.215689659476983 -The former Yugoslav Republic of Macedonia,Oilcrops,0.215689659476983 -The former Yugoslav Republic of Macedonia,Pulses,0.215689659476983 -The former Yugoslav Republic of Macedonia,Ruminants,0.215689659476983 -The former Yugoslav Republic of Macedonia,Starchy Roots,0.215689659476983 -The former Yugoslav Republic of Macedonia,WheatBarleyOats,0.215689659476983 -Togo,Monogastrics,0.215689659476983 -Togo,Oilcrops,0.215689659476983 -Togo,Pulses,0.215689659476983 -Togo,Ruminants,0.215689659476983 -Togo,Starchy Roots,0.215689659476983 -Togo,WheatBarleyOats,0.215689659476983 -Trinidad and Tobago,Monogastrics,0.215689659476983 -Trinidad and Tobago,Oilcrops,0.215689659476983 -Trinidad and Tobago,Pulses,0.215689659476983 -Trinidad and Tobago,Ruminants,0.215689659476983 -Trinidad and Tobago,Starchy Roots,0.215689659476983 -Trinidad and Tobago,WheatBarleyOats,0.215689659476983 -Tunisia,Monogastrics,0.215689659476983 -Tunisia,Oilcrops,0.215689659476983 -Tunisia,Pulses,0.215689659476983 -Tunisia,Ruminants,0.215689659476983 -Tunisia,Starchy Roots,0.215689659476983 -Tunisia,WheatBarleyOats,0.215689659476983 -Turkey,Monogastrics,0.858679202014701 -Turkey,Oilcrops,0.858679202014701 -Turkey,Pulses,0.858679202014701 -Turkey,Ruminants,0.858679202014701 -Turkey,Starchy Roots,0.858679202014701 -Turkey,WheatBarleyOats,0.858679202014701 -Turkmenistan,Monogastrics,0.215689659476983 -Turkmenistan,Oilcrops,0.215689659476983 -Turkmenistan,Pulses,0.215689659476983 -Turkmenistan,Ruminants,0.215689659476983 -Turkmenistan,Starchy Roots,0.215689659476983 -Turkmenistan,WheatBarleyOats,0.215689659476983 -Uganda,Monogastrics,0.215689659476983 -Uganda,Oilcrops,0.215689659476983 -Uganda,Pulses,0.215689659476983 -Uganda,Ruminants,0.215689659476983 -Uganda,Starchy Roots,0.215689659476983 -Uganda,WheatBarleyOats,0.215689659476983 -Ukraine,Monogastrics,0.215689659476983 -Ukraine,Oilcrops,0.215689659476983 -Ukraine,Pulses,0.215689659476983 -Ukraine,Ruminants,0.215689659476983 -Ukraine,Starchy Roots,0.215689659476983 -Ukraine,WheatBarleyOats,0.215689659476983 -United Arab Emirates,Monogastrics,0.215689659476983 -United Arab Emirates,Oilcrops,0.215689659476983 -United Arab Emirates,Pulses,0.215689659476983 -United Arab Emirates,Ruminants,0.215689659476983 -United Arab Emirates,Starchy Roots,0.215689659476983 -United Arab Emirates,WheatBarleyOats,0.215689659476983 -United Kingdom,Monogastrics,0.08852891322094 -United Kingdom,Oilcrops,0.08852891322094 -United Kingdom,Pulses,0.08852891322094 -United Kingdom,Ruminants,0.08852891322094 -United Kingdom,Starchy Roots,0.08852891322094 -United Kingdom,WheatBarleyOats,0.08852891322094 -United Republic of Tanzania,Monogastrics,0.215689659476983 -United Republic of Tanzania,Oilcrops,0.215689659476983 -United Republic of Tanzania,Pulses,0.215689659476983 -United Republic of Tanzania,Ruminants,0.215689659476983 -United Republic of Tanzania,Starchy Roots,0.215689659476983 -United Republic of Tanzania,WheatBarleyOats,0.215689659476983 -United States of America,Monogastrics,0.186387311254949 -United States of America,Oilcrops,0.186387311254949 -United States of America,Pulses,0.186387311254949 -United States of America,Ruminants,0.186387311254949 -United States of America,Starchy Roots,0.186387311254949 -United States of America,WheatBarleyOats,0.186387311254949 -Uruguay,Monogastrics,0.215689659476983 -Uruguay,Oilcrops,0.215689659476983 -Uruguay,Pulses,0.215689659476983 -Uruguay,Ruminants,0.215689659476983 -Uruguay,Starchy Roots,0.215689659476983 -Uruguay,WheatBarleyOats,0.215689659476983 -Uzbekistan,Monogastrics,0.215689659476983 -Uzbekistan,Oilcrops,0.215689659476983 -Uzbekistan,Pulses,0.215689659476983 -Uzbekistan,Ruminants,0.215689659476983 -Uzbekistan,Starchy Roots,0.215689659476983 -Uzbekistan,WheatBarleyOats,0.215689659476983 -Vanuatu,Monogastrics,0.215689659476983 -Vanuatu,Oilcrops,0.215689659476983 -Vanuatu,Pulses,0.215689659476983 -Vanuatu,Ruminants,0.215689659476983 -Vanuatu,Starchy Roots,0.215689659476983 -Vanuatu,WheatBarleyOats,0.215689659476983 -Venezuela (Bolivarian Republic of),Monogastrics,0.215689659476983 -Venezuela (Bolivarian Republic of),Oilcrops,0.215689659476983 -Venezuela (Bolivarian Republic of),Pulses,0.215689659476983 -Venezuela (Bolivarian Republic of),Ruminants,0.215689659476983 -Venezuela (Bolivarian Republic of),Starchy Roots,0.215689659476983 -Venezuela (Bolivarian Republic of),WheatBarleyOats,0.215689659476983 -Viet Nam,Monogastrics,0.215689659476983 -Viet Nam,Oilcrops,0.215689659476983 -Viet Nam,Pulses,0.215689659476983 -Viet Nam,Ruminants,0.215689659476983 -Viet Nam,Starchy Roots,0.215689659476983 -Viet Nam,WheatBarleyOats,0.215689659476983 -Yemen,Monogastrics,0.215689659476983 -Yemen,Oilcrops,0.215689659476983 -Yemen,Pulses,0.215689659476983 -Yemen,Ruminants,0.215689659476983 -Yemen,Starchy Roots,0.215689659476983 -Yemen,WheatBarleyOats,0.215689659476983 -Zambia,Monogastrics,0.215689659476983 -Zambia,Oilcrops,0.215689659476983 -Zambia,Pulses,0.215689659476983 -Zambia,Ruminants,0.215689659476983 -Zambia,Starchy Roots,0.215689659476983 -Zambia,WheatBarleyOats,0.215689659476983 -Zimbabwe,Monogastrics,0.215689659476983 -Zimbabwe,Oilcrops,0.215689659476983 -Zimbabwe,Pulses,0.215689659476983 -Zimbabwe,Ruminants,0.215689659476983 -Zimbabwe,Starchy Roots,0.215689659476983 -Zimbabwe,WheatBarleyOats,0.215689659476983 +Afghanistan,wheat,0.0299386150398663 +Albania,wheat,0.0299386150398663 +Algeria,wheat,0.0299386150398663 +Angola,wheat,0.0299386150398663 +Antigua and Barbuda,wheat,0.0299386150398663 +Argentina,wheat,0.0299386150398663 +Armenia,wheat,0.0299386150398663 +Australia,wheat,0.0226361482678745 +Austria,wheat,0.0603582114038878 +Azerbaijan,wheat,0.0299386150398663 +Bahamas,wheat,0.0299386150398663 +Bangladesh,wheat,0.0299386150398663 +Barbados,wheat,0.0299386150398663 +Belarus,wheat,0.0299386150398663 +Belgium,wheat,0.0603582114038878 +Belize,wheat,0.0299386150398663 +Benin,wheat,0.0299386150398663 +Bermuda,wheat,0.0299386150398663 +Bolivia (Plurinational State of),wheat,0.0299386150398663 +Bosnia and Herzegovina,wheat,0.0299386150398663 +Botswana,wheat,0.0299386150398663 +Brazil,wheat,0.0346707358598232 +Brunei Darussalam,wheat,0.0299386150398663 +Bulgaria,wheat,0.0603582114038878 +Burkina Faso,wheat,0.0299386150398663 +Cabo Verde,wheat,0.0299386150398663 +Cambodia,wheat,0.0299386150398663 +Cameroon,wheat,0.0299386150398663 +Canada,wheat,0.0762136518389579 +Central African Republic,wheat,0.0299386150398663 +Chad,wheat,0.0299386150398663 +Chile,wheat,0.0299386150398663 +China,wheat,0.156633798883686 +Colombia,wheat,0.0686528452644761 +Congo,wheat,0.0299386150398663 +Costa Rica,wheat,0.0299386150398663 +Cote d'Ivoire,wheat,0.0299386150398663 +Croatia,wheat,0.0603582114038878 +Cuba,wheat,0.0299386150398663 +Cyprus,wheat,0.0603582114038878 +Czechia,wheat,0.0603582114038878 +Democratic People's Republic of Korea,wheat,0.0299386150398663 +Democratic Republic of the Congo,wheat,0.0299386150398663 +Denmark,wheat,0.0603582114038878 +Djibouti,wheat,0.0299386150398663 +Dominica,wheat,0.0299386150398663 +Dominican Republic,wheat,0.0299386150398663 +Ecuador,wheat,0.0299386150398663 +Egypt,wheat,0.0299386150398663 +El Salvador,wheat,0.0299386150398663 +Estonia,wheat,0.0603582114038878 +Ethiopia,wheat,0.0299386150398663 +Fiji,wheat,0.0299386150398663 +Finland,wheat,0.0603582114038878 +France,wheat,0.0603582114038878 +French Polynesia,wheat,0.0299386150398663 +Gabon,wheat,0.0299386150398663 +Gambia,wheat,0.0299386150398663 +Georgia,wheat,0.0299386150398663 +Germany,wheat,0.0603582114038878 +Ghana,wheat,0.0299386150398663 +Greece,wheat,0.0603582114038878 +Grenada,wheat,0.0299386150398663 +Guatemala,wheat,0.0299386150398663 +Guinea,wheat,0.0299386150398663 +Guinea-Bissau,wheat,0.0299386150398663 +Guyana,wheat,0.0299386150398663 +Haiti,wheat,0.0299386150398663 +Honduras,wheat,0.0299386150398663 +Hungary,wheat,0.0603582114038878 +Iceland,wheat,0.0299386150398663 +India,wheat,0.0268978443311666 +Indonesia,wheat,0.00498052969384483 +Iran (Islamic Republic of),wheat,0.0299386150398663 +Iraq,wheat,0.0299386150398663 +Ireland,wheat,0.0603582114038878 +Israel,wheat,0.0299386150398663 +Italy,wheat,0.0603582114038878 +Jamaica,wheat,0.0299386150398663 +Japan,wheat,0.0822050709280908 +Jordan,wheat,0.0299386150398663 +Kazakhstan,wheat,0.0299386150398663 +Kenya,wheat,0.0299386150398663 +Kiribati,wheat,0.0299386150398663 +Kuwait,wheat,0.0299386150398663 +Kyrgyzstan,wheat,0.0299386150398663 +Lao People's Democratic Republic,wheat,0.0299386150398663 +Latvia,wheat,0.0603582114038878 +Lebanon,wheat,0.0299386150398663 +Lesotho,wheat,0.0299386150398663 +Liberia,wheat,0.0299386150398663 +Libya,wheat,0.0299386150398663 +Lithuania,wheat,0.0603582114038878 +Luxembourg,wheat,0.0603582114038878 +Madagascar,wheat,0.0299386150398663 +Malawi,wheat,0.0299386150398663 +Malaysia,wheat,0.0299386150398663 +Maldives,wheat,0.0299386150398663 +Mali,wheat,0.0299386150398663 +Malta,wheat,0.0603582114038878 +Mauritania,wheat,0.0299386150398663 +Mauritius,wheat,0.0299386150398663 +Mexico,wheat,0.0822050709280908 +Mongolia,wheat,0.0299386150398663 +Montenegro,wheat,0.0299386150398663 +Morocco,wheat,0.0299386150398663 +Mozambique,wheat,0.0299386150398663 +Myanmar,wheat,0.0299386150398663 +Namibia,wheat,0.0299386150398663 +Nepal,wheat,0.0299386150398663 +Netherlands,wheat,0.0603582114038878 +New Caledonia,wheat,0.0299386150398663 +New Zealand,wheat,0.0173195123664494 +Nicaragua,wheat,0.0299386150398663 +Niger,wheat,0.0299386150398663 +Nigeria,wheat,0.0299386150398663 +Norway,wheat,0.0822050709280908 +Oman,wheat,0.0299386150398663 +Pakistan,wheat,0.0299386150398663 +Panama,wheat,0.0299386150398663 +Paraguay,wheat,0.0299386150398663 +Peru,wheat,0.0299386150398663 +Philippines,wheat,0.0299386150398663 +Poland,wheat,0.0603582114038878 +Portugal,wheat,0.0603582114038878 +Republic of Korea,wheat,0.0822050709280908 +Republic of Moldova,wheat,0.0299386150398663 +Romania,wheat,0.0603582114038878 +Russian Federation,wheat,0.0883633555720103 +Rwanda,wheat,0.0299386150398663 +Saint Kitts and Nevis,wheat,0.0299386150398663 +Saint Lucia,wheat,0.0299386150398663 +Saint Vincent and the Grenadines,wheat,0.0299386150398663 +Samoa,wheat,0.0299386150398663 +Sao Tome and Principe,wheat,0.0299386150398663 +Saudi Arabia,wheat,0.0299386150398663 +Senegal,wheat,0.0299386150398663 +Serbia,wheat,0.0299386150398663 +Sierra Leone,wheat,0.0299386150398663 +Slovakia,wheat,0.0603582114038878 +Slovenia,wheat,0.0603582114038878 +Solomon Islands,wheat,0.0299386150398663 +Somalia,wheat,0.0299386150398663 +South Africa,wheat,0.0161824701612779 +South Sudan,wheat,0.0299386150398663 +Spain,wheat,0.0603582114038878 +Sri Lanka,wheat,0.0299386150398663 +Sudan,wheat,0.0299386150398663 +Suriname,wheat,0.0299386150398663 +Swaziland,wheat,0.0299386150398663 +Sweden,wheat,0.0603582114038878 +Switzerland,wheat,0.0822050709280908 +Tajikistan,wheat,0.0299386150398663 +Thailand,wheat,0.0299386150398663 +The former Yugoslav Republic of Macedonia,wheat,0.0299386150398663 +Togo,wheat,0.0299386150398663 +Trinidad and Tobago,wheat,0.0299386150398663 +Tunisia,wheat,0.0299386150398663 +Turkey,wheat,0.105663766639557 +Turkmenistan,wheat,0.0299386150398663 +Uganda,wheat,0.0299386150398663 +Ukraine,wheat,0.0299386150398663 +United Arab Emirates,wheat,0.0299386150398663 +United Kingdom,wheat,0.0603582114038878 +United Republic of Tanzania,wheat,0.0299386150398663 +United States of America,wheat,0.116357971434502 +Uruguay,wheat,0.0299386150398663 +Uzbekistan,wheat,0.0299386150398663 +Vanuatu,wheat,0.0299386150398663 +Venezuela (Bolivarian Republic of),wheat,0.0299386150398663 +Viet Nam,wheat,0.0299386150398663 +Yemen,wheat,0.0299386150398663 +Zambia,wheat,0.0299386150398663 +Zimbabwe,wheat,0.0299386150398663 +Afghanistan,maize,0.0299386150398663 +Albania,maize,0.0299386150398663 +Algeria,maize,0.0299386150398663 +Angola,maize,0.0299386150398663 +Antigua and Barbuda,maize,0.0299386150398663 +Argentina,maize,0.0299386150398663 +Armenia,maize,0.0299386150398663 +Australia,maize,0.0226361482678745 +Austria,maize,0.0603582114038878 +Azerbaijan,maize,0.0299386150398663 +Bahamas,maize,0.0299386150398663 +Bangladesh,maize,0.0299386150398663 +Barbados,maize,0.0299386150398663 +Belarus,maize,0.0299386150398663 +Belgium,maize,0.0603582114038878 +Belize,maize,0.0299386150398663 +Benin,maize,0.0299386150398663 +Bermuda,maize,0.0299386150398663 +Bolivia (Plurinational State of),maize,0.0299386150398663 +Bosnia and Herzegovina,maize,0.0299386150398663 +Botswana,maize,0.0299386150398663 +Brazil,maize,0.0346707358598232 +Brunei Darussalam,maize,0.0299386150398663 +Bulgaria,maize,0.0603582114038878 +Burkina Faso,maize,0.0299386150398663 +Cabo Verde,maize,0.0299386150398663 +Cambodia,maize,0.0299386150398663 +Cameroon,maize,0.0299386150398663 +Canada,maize,0.0762136518389579 +Central African Republic,maize,0.0299386150398663 +Chad,maize,0.0299386150398663 +Chile,maize,0.0299386150398663 +China,maize,0.156633798883686 +Colombia,maize,0.0686528452644761 +Congo,maize,0.0299386150398663 +Costa Rica,maize,0.0299386150398663 +Cote d'Ivoire,maize,0.0299386150398663 +Croatia,maize,0.0603582114038878 +Cuba,maize,0.0299386150398663 +Cyprus,maize,0.0603582114038878 +Czechia,maize,0.0603582114038878 +Democratic People's Republic of Korea,maize,0.0299386150398663 +Democratic Republic of the Congo,maize,0.0299386150398663 +Denmark,maize,0.0603582114038878 +Djibouti,maize,0.0299386150398663 +Dominica,maize,0.0299386150398663 +Dominican Republic,maize,0.0299386150398663 +Ecuador,maize,0.0299386150398663 +Egypt,maize,0.0299386150398663 +El Salvador,maize,0.0299386150398663 +Estonia,maize,0.0603582114038878 +Ethiopia,maize,0.0299386150398663 +Fiji,maize,0.0299386150398663 +Finland,maize,0.0603582114038878 +France,maize,0.0603582114038878 +French Polynesia,maize,0.0299386150398663 +Gabon,maize,0.0299386150398663 +Gambia,maize,0.0299386150398663 +Georgia,maize,0.0299386150398663 +Germany,maize,0.0603582114038878 +Ghana,maize,0.0299386150398663 +Greece,maize,0.0603582114038878 +Grenada,maize,0.0299386150398663 +Guatemala,maize,0.0299386150398663 +Guinea,maize,0.0299386150398663 +Guinea-Bissau,maize,0.0299386150398663 +Guyana,maize,0.0299386150398663 +Haiti,maize,0.0299386150398663 +Honduras,maize,0.0299386150398663 +Hungary,maize,0.0603582114038878 +Iceland,maize,0.0299386150398663 +India,maize,0.0268978443311666 +Indonesia,maize,0.00498052969384483 +Iran (Islamic Republic of),maize,0.0299386150398663 +Iraq,maize,0.0299386150398663 +Ireland,maize,0.0603582114038878 +Israel,maize,0.0299386150398663 +Italy,maize,0.0603582114038878 +Jamaica,maize,0.0299386150398663 +Japan,maize,0.0822050709280908 +Jordan,maize,0.0299386150398663 +Kazakhstan,maize,0.0299386150398663 +Kenya,maize,0.0299386150398663 +Kiribati,maize,0.0299386150398663 +Kuwait,maize,0.0299386150398663 +Kyrgyzstan,maize,0.0299386150398663 +Lao People's Democratic Republic,maize,0.0299386150398663 +Latvia,maize,0.0603582114038878 +Lebanon,maize,0.0299386150398663 +Lesotho,maize,0.0299386150398663 +Liberia,maize,0.0299386150398663 +Libya,maize,0.0299386150398663 +Lithuania,maize,0.0603582114038878 +Luxembourg,maize,0.0603582114038878 +Madagascar,maize,0.0299386150398663 +Malawi,maize,0.0299386150398663 +Malaysia,maize,0.0299386150398663 +Maldives,maize,0.0299386150398663 +Mali,maize,0.0299386150398663 +Malta,maize,0.0603582114038878 +Mauritania,maize,0.0299386150398663 +Mauritius,maize,0.0299386150398663 +Mexico,maize,0.0822050709280908 +Mongolia,maize,0.0299386150398663 +Montenegro,maize,0.0299386150398663 +Morocco,maize,0.0299386150398663 +Mozambique,maize,0.0299386150398663 +Myanmar,maize,0.0299386150398663 +Namibia,maize,0.0299386150398663 +Nepal,maize,0.0299386150398663 +Netherlands,maize,0.0603582114038878 +New Caledonia,maize,0.0299386150398663 +New Zealand,maize,0.0173195123664494 +Nicaragua,maize,0.0299386150398663 +Niger,maize,0.0299386150398663 +Nigeria,maize,0.0299386150398663 +Norway,maize,0.0822050709280908 +Oman,maize,0.0299386150398663 +Pakistan,maize,0.0299386150398663 +Panama,maize,0.0299386150398663 +Paraguay,maize,0.0299386150398663 +Peru,maize,0.0299386150398663 +Philippines,maize,0.0299386150398663 +Poland,maize,0.0603582114038878 +Portugal,maize,0.0603582114038878 +Republic of Korea,maize,0.0822050709280908 +Republic of Moldova,maize,0.0299386150398663 +Romania,maize,0.0603582114038878 +Russian Federation,maize,0.0883633555720103 +Rwanda,maize,0.0299386150398663 +Saint Kitts and Nevis,maize,0.0299386150398663 +Saint Lucia,maize,0.0299386150398663 +Saint Vincent and the Grenadines,maize,0.0299386150398663 +Samoa,maize,0.0299386150398663 +Sao Tome and Principe,maize,0.0299386150398663 +Saudi Arabia,maize,0.0299386150398663 +Senegal,maize,0.0299386150398663 +Serbia,maize,0.0299386150398663 +Sierra Leone,maize,0.0299386150398663 +Slovakia,maize,0.0603582114038878 +Slovenia,maize,0.0603582114038878 +Solomon Islands,maize,0.0299386150398663 +Somalia,maize,0.0299386150398663 +South Africa,maize,0.0161824701612779 +South Sudan,maize,0.0299386150398663 +Spain,maize,0.0603582114038878 +Sri Lanka,maize,0.0299386150398663 +Sudan,maize,0.0299386150398663 +Suriname,maize,0.0299386150398663 +Swaziland,maize,0.0299386150398663 +Sweden,maize,0.0603582114038878 +Switzerland,maize,0.0822050709280908 +Tajikistan,maize,0.0299386150398663 +Thailand,maize,0.0299386150398663 +The former Yugoslav Republic of Macedonia,maize,0.0299386150398663 +Togo,maize,0.0299386150398663 +Trinidad and Tobago,maize,0.0299386150398663 +Tunisia,maize,0.0299386150398663 +Turkey,maize,0.105663766639557 +Turkmenistan,maize,0.0299386150398663 +Uganda,maize,0.0299386150398663 +Ukraine,maize,0.0299386150398663 +United Arab Emirates,maize,0.0299386150398663 +United Kingdom,maize,0.0603582114038878 +United Republic of Tanzania,maize,0.0299386150398663 +United States of America,maize,0.116357971434502 +Uruguay,maize,0.0299386150398663 +Uzbekistan,maize,0.0299386150398663 +Vanuatu,maize,0.0299386150398663 +Venezuela (Bolivarian Republic of),maize,0.0299386150398663 +Viet Nam,maize,0.0299386150398663 +Yemen,maize,0.0299386150398663 +Zambia,maize,0.0299386150398663 +Zimbabwe,maize,0.0299386150398663 +Afghanistan,rice,0.0299386150398663 +Albania,rice,0.0299386150398663 +Algeria,rice,0.0299386150398663 +Angola,rice,0.0299386150398663 +Antigua and Barbuda,rice,0.0299386150398663 +Argentina,rice,0.0299386150398663 +Armenia,rice,0.0299386150398663 +Australia,rice,0.0226361482678745 +Austria,rice,0.0603582114038878 +Azerbaijan,rice,0.0299386150398663 +Bahamas,rice,0.0299386150398663 +Bangladesh,rice,0.0299386150398663 +Barbados,rice,0.0299386150398663 +Belarus,rice,0.0299386150398663 +Belgium,rice,0.0603582114038878 +Belize,rice,0.0299386150398663 +Benin,rice,0.0299386150398663 +Bermuda,rice,0.0299386150398663 +Bolivia (Plurinational State of),rice,0.0299386150398663 +Bosnia and Herzegovina,rice,0.0299386150398663 +Botswana,rice,0.0299386150398663 +Brazil,rice,0.0346707358598232 +Brunei Darussalam,rice,0.0299386150398663 +Bulgaria,rice,0.0603582114038878 +Burkina Faso,rice,0.0299386150398663 +Cabo Verde,rice,0.0299386150398663 +Cambodia,rice,0.0299386150398663 +Cameroon,rice,0.0299386150398663 +Canada,rice,0.0762136518389579 +Central African Republic,rice,0.0299386150398663 +Chad,rice,0.0299386150398663 +Chile,rice,0.0299386150398663 +China,rice,0.156633798883686 +Colombia,rice,0.0686528452644761 +Congo,rice,0.0299386150398663 +Costa Rica,rice,0.0299386150398663 +Cote d'Ivoire,rice,0.0299386150398663 +Croatia,rice,0.0603582114038878 +Cuba,rice,0.0299386150398663 +Cyprus,rice,0.0603582114038878 +Czechia,rice,0.0603582114038878 +Democratic People's Republic of Korea,rice,0.0299386150398663 +Democratic Republic of the Congo,rice,0.0299386150398663 +Denmark,rice,0.0603582114038878 +Djibouti,rice,0.0299386150398663 +Dominica,rice,0.0299386150398663 +Dominican Republic,rice,0.0299386150398663 +Ecuador,rice,0.0299386150398663 +Egypt,rice,0.0299386150398663 +El Salvador,rice,0.0299386150398663 +Estonia,rice,0.0603582114038878 +Ethiopia,rice,0.0299386150398663 +Fiji,rice,0.0299386150398663 +Finland,rice,0.0603582114038878 +France,rice,0.0603582114038878 +French Polynesia,rice,0.0299386150398663 +Gabon,rice,0.0299386150398663 +Gambia,rice,0.0299386150398663 +Georgia,rice,0.0299386150398663 +Germany,rice,0.0603582114038878 +Ghana,rice,0.0299386150398663 +Greece,rice,0.0603582114038878 +Grenada,rice,0.0299386150398663 +Guatemala,rice,0.0299386150398663 +Guinea,rice,0.0299386150398663 +Guinea-Bissau,rice,0.0299386150398663 +Guyana,rice,0.0299386150398663 +Haiti,rice,0.0299386150398663 +Honduras,rice,0.0299386150398663 +Hungary,rice,0.0603582114038878 +Iceland,rice,0.0299386150398663 +India,rice,0.0268978443311666 +Indonesia,rice,0.00498052969384483 +Iran (Islamic Republic of),rice,0.0299386150398663 +Iraq,rice,0.0299386150398663 +Ireland,rice,0.0603582114038878 +Israel,rice,0.0299386150398663 +Italy,rice,0.0603582114038878 +Jamaica,rice,0.0299386150398663 +Japan,rice,0.0822050709280908 +Jordan,rice,0.0299386150398663 +Kazakhstan,rice,0.0299386150398663 +Kenya,rice,0.0299386150398663 +Kiribati,rice,0.0299386150398663 +Kuwait,rice,0.0299386150398663 +Kyrgyzstan,rice,0.0299386150398663 +Lao People's Democratic Republic,rice,0.0299386150398663 +Latvia,rice,0.0603582114038878 +Lebanon,rice,0.0299386150398663 +Lesotho,rice,0.0299386150398663 +Liberia,rice,0.0299386150398663 +Libya,rice,0.0299386150398663 +Lithuania,rice,0.0603582114038878 +Luxembourg,rice,0.0603582114038878 +Madagascar,rice,0.0299386150398663 +Malawi,rice,0.0299386150398663 +Malaysia,rice,0.0299386150398663 +Maldives,rice,0.0299386150398663 +Mali,rice,0.0299386150398663 +Malta,rice,0.0603582114038878 +Mauritania,rice,0.0299386150398663 +Mauritius,rice,0.0299386150398663 +Mexico,rice,0.0822050709280908 +Mongolia,rice,0.0299386150398663 +Montenegro,rice,0.0299386150398663 +Morocco,rice,0.0299386150398663 +Mozambique,rice,0.0299386150398663 +Myanmar,rice,0.0299386150398663 +Namibia,rice,0.0299386150398663 +Nepal,rice,0.0299386150398663 +Netherlands,rice,0.0603582114038878 +New Caledonia,rice,0.0299386150398663 +New Zealand,rice,0.0173195123664494 +Nicaragua,rice,0.0299386150398663 +Niger,rice,0.0299386150398663 +Nigeria,rice,0.0299386150398663 +Norway,rice,0.0822050709280908 +Oman,rice,0.0299386150398663 +Pakistan,rice,0.0299386150398663 +Panama,rice,0.0299386150398663 +Paraguay,rice,0.0299386150398663 +Peru,rice,0.0299386150398663 +Philippines,rice,0.0299386150398663 +Poland,rice,0.0603582114038878 +Portugal,rice,0.0603582114038878 +Republic of Korea,rice,0.0822050709280908 +Republic of Moldova,rice,0.0299386150398663 +Romania,rice,0.0603582114038878 +Russian Federation,rice,0.0883633555720103 +Rwanda,rice,0.0299386150398663 +Saint Kitts and Nevis,rice,0.0299386150398663 +Saint Lucia,rice,0.0299386150398663 +Saint Vincent and the Grenadines,rice,0.0299386150398663 +Samoa,rice,0.0299386150398663 +Sao Tome and Principe,rice,0.0299386150398663 +Saudi Arabia,rice,0.0299386150398663 +Senegal,rice,0.0299386150398663 +Serbia,rice,0.0299386150398663 +Sierra Leone,rice,0.0299386150398663 +Slovakia,rice,0.0603582114038878 +Slovenia,rice,0.0603582114038878 +Solomon Islands,rice,0.0299386150398663 +Somalia,rice,0.0299386150398663 +South Africa,rice,0.0161824701612779 +South Sudan,rice,0.0299386150398663 +Spain,rice,0.0603582114038878 +Sri Lanka,rice,0.0299386150398663 +Sudan,rice,0.0299386150398663 +Suriname,rice,0.0299386150398663 +Swaziland,rice,0.0299386150398663 +Sweden,rice,0.0603582114038878 +Switzerland,rice,0.0822050709280908 +Tajikistan,rice,0.0299386150398663 +Thailand,rice,0.0299386150398663 +The former Yugoslav Republic of Macedonia,rice,0.0299386150398663 +Togo,rice,0.0299386150398663 +Trinidad and Tobago,rice,0.0299386150398663 +Tunisia,rice,0.0299386150398663 +Turkey,rice,0.105663766639557 +Turkmenistan,rice,0.0299386150398663 +Uganda,rice,0.0299386150398663 +Ukraine,rice,0.0299386150398663 +United Arab Emirates,rice,0.0299386150398663 +United Kingdom,rice,0.0603582114038878 +United Republic of Tanzania,rice,0.0299386150398663 +United States of America,rice,0.116357971434502 +Uruguay,rice,0.0299386150398663 +Uzbekistan,rice,0.0299386150398663 +Vanuatu,rice,0.0299386150398663 +Venezuela (Bolivarian Republic of),rice,0.0299386150398663 +Viet Nam,rice,0.0299386150398663 +Yemen,rice,0.0299386150398663 +Zambia,rice,0.0299386150398663 +Zimbabwe,rice,0.0299386150398663 +Afghanistan,oilcrops,0.0299386150398663 +Albania,oilcrops,0.0299386150398663 +Algeria,oilcrops,0.0299386150398663 +Angola,oilcrops,0.0299386150398663 +Antigua and Barbuda,oilcrops,0.0299386150398663 +Argentina,oilcrops,0.0299386150398663 +Armenia,oilcrops,0.0299386150398663 +Australia,oilcrops,0.0226361482678745 +Austria,oilcrops,0.0603582114038878 +Azerbaijan,oilcrops,0.0299386150398663 +Bahamas,oilcrops,0.0299386150398663 +Bangladesh,oilcrops,0.0299386150398663 +Barbados,oilcrops,0.0299386150398663 +Belarus,oilcrops,0.0299386150398663 +Belgium,oilcrops,0.0603582114038878 +Belize,oilcrops,0.0299386150398663 +Benin,oilcrops,0.0299386150398663 +Bermuda,oilcrops,0.0299386150398663 +Bolivia (Plurinational State of),oilcrops,0.0299386150398663 +Bosnia and Herzegovina,oilcrops,0.0299386150398663 +Botswana,oilcrops,0.0299386150398663 +Brazil,oilcrops,0.0346707358598232 +Brunei Darussalam,oilcrops,0.0299386150398663 +Bulgaria,oilcrops,0.0603582114038878 +Burkina Faso,oilcrops,0.0299386150398663 +Cabo Verde,oilcrops,0.0299386150398663 +Cambodia,oilcrops,0.0299386150398663 +Cameroon,oilcrops,0.0299386150398663 +Canada,oilcrops,0.0762136518389579 +Central African Republic,oilcrops,0.0299386150398663 +Chad,oilcrops,0.0299386150398663 +Chile,oilcrops,0.0299386150398663 +China,oilcrops,0.156633798883686 +Colombia,oilcrops,0.0686528452644761 +Congo,oilcrops,0.0299386150398663 +Costa Rica,oilcrops,0.0299386150398663 +Cote d'Ivoire,oilcrops,0.0299386150398663 +Croatia,oilcrops,0.0603582114038878 +Cuba,oilcrops,0.0299386150398663 +Cyprus,oilcrops,0.0603582114038878 +Czechia,oilcrops,0.0603582114038878 +Democratic People's Republic of Korea,oilcrops,0.0299386150398663 +Democratic Republic of the Congo,oilcrops,0.0299386150398663 +Denmark,oilcrops,0.0603582114038878 +Djibouti,oilcrops,0.0299386150398663 +Dominica,oilcrops,0.0299386150398663 +Dominican Republic,oilcrops,0.0299386150398663 +Ecuador,oilcrops,0.0299386150398663 +Egypt,oilcrops,0.0299386150398663 +El Salvador,oilcrops,0.0299386150398663 +Estonia,oilcrops,0.0603582114038878 +Ethiopia,oilcrops,0.0299386150398663 +Fiji,oilcrops,0.0299386150398663 +Finland,oilcrops,0.0603582114038878 +France,oilcrops,0.0603582114038878 +French Polynesia,oilcrops,0.0299386150398663 +Gabon,oilcrops,0.0299386150398663 +Gambia,oilcrops,0.0299386150398663 +Georgia,oilcrops,0.0299386150398663 +Germany,oilcrops,0.0603582114038878 +Ghana,oilcrops,0.0299386150398663 +Greece,oilcrops,0.0603582114038878 +Grenada,oilcrops,0.0299386150398663 +Guatemala,oilcrops,0.0299386150398663 +Guinea,oilcrops,0.0299386150398663 +Guinea-Bissau,oilcrops,0.0299386150398663 +Guyana,oilcrops,0.0299386150398663 +Haiti,oilcrops,0.0299386150398663 +Honduras,oilcrops,0.0299386150398663 +Hungary,oilcrops,0.0603582114038878 +Iceland,oilcrops,0.0299386150398663 +India,oilcrops,0.0268978443311666 +Indonesia,oilcrops,0.00498052969384483 +Iran (Islamic Republic of),oilcrops,0.0299386150398663 +Iraq,oilcrops,0.0299386150398663 +Ireland,oilcrops,0.0603582114038878 +Israel,oilcrops,0.0299386150398663 +Italy,oilcrops,0.0603582114038878 +Jamaica,oilcrops,0.0299386150398663 +Japan,oilcrops,0.0822050709280908 +Jordan,oilcrops,0.0299386150398663 +Kazakhstan,oilcrops,0.0299386150398663 +Kenya,oilcrops,0.0299386150398663 +Kiribati,oilcrops,0.0299386150398663 +Kuwait,oilcrops,0.0299386150398663 +Kyrgyzstan,oilcrops,0.0299386150398663 +Lao People's Democratic Republic,oilcrops,0.0299386150398663 +Latvia,oilcrops,0.0603582114038878 +Lebanon,oilcrops,0.0299386150398663 +Lesotho,oilcrops,0.0299386150398663 +Liberia,oilcrops,0.0299386150398663 +Libya,oilcrops,0.0299386150398663 +Lithuania,oilcrops,0.0603582114038878 +Luxembourg,oilcrops,0.0603582114038878 +Madagascar,oilcrops,0.0299386150398663 +Malawi,oilcrops,0.0299386150398663 +Malaysia,oilcrops,0.0299386150398663 +Maldives,oilcrops,0.0299386150398663 +Mali,oilcrops,0.0299386150398663 +Malta,oilcrops,0.0603582114038878 +Mauritania,oilcrops,0.0299386150398663 +Mauritius,oilcrops,0.0299386150398663 +Mexico,oilcrops,0.0822050709280908 +Mongolia,oilcrops,0.0299386150398663 +Montenegro,oilcrops,0.0299386150398663 +Morocco,oilcrops,0.0299386150398663 +Mozambique,oilcrops,0.0299386150398663 +Myanmar,oilcrops,0.0299386150398663 +Namibia,oilcrops,0.0299386150398663 +Nepal,oilcrops,0.0299386150398663 +Netherlands,oilcrops,0.0603582114038878 +New Caledonia,oilcrops,0.0299386150398663 +New Zealand,oilcrops,0.0173195123664494 +Nicaragua,oilcrops,0.0299386150398663 +Niger,oilcrops,0.0299386150398663 +Nigeria,oilcrops,0.0299386150398663 +Norway,oilcrops,0.0822050709280908 +Oman,oilcrops,0.0299386150398663 +Pakistan,oilcrops,0.0299386150398663 +Panama,oilcrops,0.0299386150398663 +Paraguay,oilcrops,0.0299386150398663 +Peru,oilcrops,0.0299386150398663 +Philippines,oilcrops,0.0299386150398663 +Poland,oilcrops,0.0603582114038878 +Portugal,oilcrops,0.0603582114038878 +Republic of Korea,oilcrops,0.0822050709280908 +Republic of Moldova,oilcrops,0.0299386150398663 +Romania,oilcrops,0.0603582114038878 +Russian Federation,oilcrops,0.0883633555720103 +Rwanda,oilcrops,0.0299386150398663 +Saint Kitts and Nevis,oilcrops,0.0299386150398663 +Saint Lucia,oilcrops,0.0299386150398663 +Saint Vincent and the Grenadines,oilcrops,0.0299386150398663 +Samoa,oilcrops,0.0299386150398663 +Sao Tome and Principe,oilcrops,0.0299386150398663 +Saudi Arabia,oilcrops,0.0299386150398663 +Senegal,oilcrops,0.0299386150398663 +Serbia,oilcrops,0.0299386150398663 +Sierra Leone,oilcrops,0.0299386150398663 +Slovakia,oilcrops,0.0603582114038878 +Slovenia,oilcrops,0.0603582114038878 +Solomon Islands,oilcrops,0.0299386150398663 +Somalia,oilcrops,0.0299386150398663 +South Africa,oilcrops,0.0161824701612779 +South Sudan,oilcrops,0.0299386150398663 +Spain,oilcrops,0.0603582114038878 +Sri Lanka,oilcrops,0.0299386150398663 +Sudan,oilcrops,0.0299386150398663 +Suriname,oilcrops,0.0299386150398663 +Swaziland,oilcrops,0.0299386150398663 +Sweden,oilcrops,0.0603582114038878 +Switzerland,oilcrops,0.0822050709280908 +Tajikistan,oilcrops,0.0299386150398663 +Thailand,oilcrops,0.0299386150398663 +The former Yugoslav Republic of Macedonia,oilcrops,0.0299386150398663 +Togo,oilcrops,0.0299386150398663 +Trinidad and Tobago,oilcrops,0.0299386150398663 +Tunisia,oilcrops,0.0299386150398663 +Turkey,oilcrops,0.105663766639557 +Turkmenistan,oilcrops,0.0299386150398663 +Uganda,oilcrops,0.0299386150398663 +Ukraine,oilcrops,0.0299386150398663 +United Arab Emirates,oilcrops,0.0299386150398663 +United Kingdom,oilcrops,0.0603582114038878 +United Republic of Tanzania,oilcrops,0.0299386150398663 +United States of America,oilcrops,0.116357971434502 +Uruguay,oilcrops,0.0299386150398663 +Uzbekistan,oilcrops,0.0299386150398663 +Vanuatu,oilcrops,0.0299386150398663 +Venezuela (Bolivarian Republic of),oilcrops,0.0299386150398663 +Viet Nam,oilcrops,0.0299386150398663 +Yemen,oilcrops,0.0299386150398663 +Zambia,oilcrops,0.0299386150398663 +Zimbabwe,oilcrops,0.0299386150398663 +Afghanistan,starchyRoots,0.0299386150398663 +Albania,starchyRoots,0.0299386150398663 +Algeria,starchyRoots,0.0299386150398663 +Angola,starchyRoots,0.0299386150398663 +Antigua and Barbuda,starchyRoots,0.0299386150398663 +Argentina,starchyRoots,0.0299386150398663 +Armenia,starchyRoots,0.0299386150398663 +Australia,starchyRoots,0.0226361482678745 +Austria,starchyRoots,0.0603582114038878 +Azerbaijan,starchyRoots,0.0299386150398663 +Bahamas,starchyRoots,0.0299386150398663 +Bangladesh,starchyRoots,0.0299386150398663 +Barbados,starchyRoots,0.0299386150398663 +Belarus,starchyRoots,0.0299386150398663 +Belgium,starchyRoots,0.0603582114038878 +Belize,starchyRoots,0.0299386150398663 +Benin,starchyRoots,0.0299386150398663 +Bermuda,starchyRoots,0.0299386150398663 +Bolivia (Plurinational State of),starchyRoots,0.0299386150398663 +Bosnia and Herzegovina,starchyRoots,0.0299386150398663 +Botswana,starchyRoots,0.0299386150398663 +Brazil,starchyRoots,0.0346707358598232 +Brunei Darussalam,starchyRoots,0.0299386150398663 +Bulgaria,starchyRoots,0.0603582114038878 +Burkina Faso,starchyRoots,0.0299386150398663 +Cabo Verde,starchyRoots,0.0299386150398663 +Cambodia,starchyRoots,0.0299386150398663 +Cameroon,starchyRoots,0.0299386150398663 +Canada,starchyRoots,0.0762136518389579 +Central African Republic,starchyRoots,0.0299386150398663 +Chad,starchyRoots,0.0299386150398663 +Chile,starchyRoots,0.0299386150398663 +China,starchyRoots,0.156633798883686 +Colombia,starchyRoots,0.0686528452644761 +Congo,starchyRoots,0.0299386150398663 +Costa Rica,starchyRoots,0.0299386150398663 +Cote d'Ivoire,starchyRoots,0.0299386150398663 +Croatia,starchyRoots,0.0603582114038878 +Cuba,starchyRoots,0.0299386150398663 +Cyprus,starchyRoots,0.0603582114038878 +Czechia,starchyRoots,0.0603582114038878 +Democratic People's Republic of Korea,starchyRoots,0.0299386150398663 +Democratic Republic of the Congo,starchyRoots,0.0299386150398663 +Denmark,starchyRoots,0.0603582114038878 +Djibouti,starchyRoots,0.0299386150398663 +Dominica,starchyRoots,0.0299386150398663 +Dominican Republic,starchyRoots,0.0299386150398663 +Ecuador,starchyRoots,0.0299386150398663 +Egypt,starchyRoots,0.0299386150398663 +El Salvador,starchyRoots,0.0299386150398663 +Estonia,starchyRoots,0.0603582114038878 +Ethiopia,starchyRoots,0.0299386150398663 +Fiji,starchyRoots,0.0299386150398663 +Finland,starchyRoots,0.0603582114038878 +France,starchyRoots,0.0603582114038878 +French Polynesia,starchyRoots,0.0299386150398663 +Gabon,starchyRoots,0.0299386150398663 +Gambia,starchyRoots,0.0299386150398663 +Georgia,starchyRoots,0.0299386150398663 +Germany,starchyRoots,0.0603582114038878 +Ghana,starchyRoots,0.0299386150398663 +Greece,starchyRoots,0.0603582114038878 +Grenada,starchyRoots,0.0299386150398663 +Guatemala,starchyRoots,0.0299386150398663 +Guinea,starchyRoots,0.0299386150398663 +Guinea-Bissau,starchyRoots,0.0299386150398663 +Guyana,starchyRoots,0.0299386150398663 +Haiti,starchyRoots,0.0299386150398663 +Honduras,starchyRoots,0.0299386150398663 +Hungary,starchyRoots,0.0603582114038878 +Iceland,starchyRoots,0.0299386150398663 +India,starchyRoots,0.0268978443311666 +Indonesia,starchyRoots,0.00498052969384483 +Iran (Islamic Republic of),starchyRoots,0.0299386150398663 +Iraq,starchyRoots,0.0299386150398663 +Ireland,starchyRoots,0.0603582114038878 +Israel,starchyRoots,0.0299386150398663 +Italy,starchyRoots,0.0603582114038878 +Jamaica,starchyRoots,0.0299386150398663 +Japan,starchyRoots,0.0822050709280908 +Jordan,starchyRoots,0.0299386150398663 +Kazakhstan,starchyRoots,0.0299386150398663 +Kenya,starchyRoots,0.0299386150398663 +Kiribati,starchyRoots,0.0299386150398663 +Kuwait,starchyRoots,0.0299386150398663 +Kyrgyzstan,starchyRoots,0.0299386150398663 +Lao People's Democratic Republic,starchyRoots,0.0299386150398663 +Latvia,starchyRoots,0.0603582114038878 +Lebanon,starchyRoots,0.0299386150398663 +Lesotho,starchyRoots,0.0299386150398663 +Liberia,starchyRoots,0.0299386150398663 +Libya,starchyRoots,0.0299386150398663 +Lithuania,starchyRoots,0.0603582114038878 +Luxembourg,starchyRoots,0.0603582114038878 +Madagascar,starchyRoots,0.0299386150398663 +Malawi,starchyRoots,0.0299386150398663 +Malaysia,starchyRoots,0.0299386150398663 +Maldives,starchyRoots,0.0299386150398663 +Mali,starchyRoots,0.0299386150398663 +Malta,starchyRoots,0.0603582114038878 +Mauritania,starchyRoots,0.0299386150398663 +Mauritius,starchyRoots,0.0299386150398663 +Mexico,starchyRoots,0.0822050709280908 +Mongolia,starchyRoots,0.0299386150398663 +Montenegro,starchyRoots,0.0299386150398663 +Morocco,starchyRoots,0.0299386150398663 +Mozambique,starchyRoots,0.0299386150398663 +Myanmar,starchyRoots,0.0299386150398663 +Namibia,starchyRoots,0.0299386150398663 +Nepal,starchyRoots,0.0299386150398663 +Netherlands,starchyRoots,0.0603582114038878 +New Caledonia,starchyRoots,0.0299386150398663 +New Zealand,starchyRoots,0.0173195123664494 +Nicaragua,starchyRoots,0.0299386150398663 +Niger,starchyRoots,0.0299386150398663 +Nigeria,starchyRoots,0.0299386150398663 +Norway,starchyRoots,0.0822050709280908 +Oman,starchyRoots,0.0299386150398663 +Pakistan,starchyRoots,0.0299386150398663 +Panama,starchyRoots,0.0299386150398663 +Paraguay,starchyRoots,0.0299386150398663 +Peru,starchyRoots,0.0299386150398663 +Philippines,starchyRoots,0.0299386150398663 +Poland,starchyRoots,0.0603582114038878 +Portugal,starchyRoots,0.0603582114038878 +Republic of Korea,starchyRoots,0.0822050709280908 +Republic of Moldova,starchyRoots,0.0299386150398663 +Romania,starchyRoots,0.0603582114038878 +Russian Federation,starchyRoots,0.0883633555720103 +Rwanda,starchyRoots,0.0299386150398663 +Saint Kitts and Nevis,starchyRoots,0.0299386150398663 +Saint Lucia,starchyRoots,0.0299386150398663 +Saint Vincent and the Grenadines,starchyRoots,0.0299386150398663 +Samoa,starchyRoots,0.0299386150398663 +Sao Tome and Principe,starchyRoots,0.0299386150398663 +Saudi Arabia,starchyRoots,0.0299386150398663 +Senegal,starchyRoots,0.0299386150398663 +Serbia,starchyRoots,0.0299386150398663 +Sierra Leone,starchyRoots,0.0299386150398663 +Slovakia,starchyRoots,0.0603582114038878 +Slovenia,starchyRoots,0.0603582114038878 +Solomon Islands,starchyRoots,0.0299386150398663 +Somalia,starchyRoots,0.0299386150398663 +South Africa,starchyRoots,0.0161824701612779 +South Sudan,starchyRoots,0.0299386150398663 +Spain,starchyRoots,0.0603582114038878 +Sri Lanka,starchyRoots,0.0299386150398663 +Sudan,starchyRoots,0.0299386150398663 +Suriname,starchyRoots,0.0299386150398663 +Swaziland,starchyRoots,0.0299386150398663 +Sweden,starchyRoots,0.0603582114038878 +Switzerland,starchyRoots,0.0822050709280908 +Tajikistan,starchyRoots,0.0299386150398663 +Thailand,starchyRoots,0.0299386150398663 +The former Yugoslav Republic of Macedonia,starchyRoots,0.0299386150398663 +Togo,starchyRoots,0.0299386150398663 +Trinidad and Tobago,starchyRoots,0.0299386150398663 +Tunisia,starchyRoots,0.0299386150398663 +Turkey,starchyRoots,0.105663766639557 +Turkmenistan,starchyRoots,0.0299386150398663 +Uganda,starchyRoots,0.0299386150398663 +Ukraine,starchyRoots,0.0299386150398663 +United Arab Emirates,starchyRoots,0.0299386150398663 +United Kingdom,starchyRoots,0.0603582114038878 +United Republic of Tanzania,starchyRoots,0.0299386150398663 +United States of America,starchyRoots,0.116357971434502 +Uruguay,starchyRoots,0.0299386150398663 +Uzbekistan,starchyRoots,0.0299386150398663 +Vanuatu,starchyRoots,0.0299386150398663 +Venezuela (Bolivarian Republic of),starchyRoots,0.0299386150398663 +Viet Nam,starchyRoots,0.0299386150398663 +Yemen,starchyRoots,0.0299386150398663 +Zambia,starchyRoots,0.0299386150398663 +Zimbabwe,starchyRoots,0.0299386150398663 +Afghanistan,pulses,0.0299386150398663 +Albania,pulses,0.0299386150398663 +Algeria,pulses,0.0299386150398663 +Angola,pulses,0.0299386150398663 +Antigua and Barbuda,pulses,0.0299386150398663 +Argentina,pulses,0.0299386150398663 +Armenia,pulses,0.0299386150398663 +Australia,pulses,0.0226361482678745 +Austria,pulses,0.0603582114038878 +Azerbaijan,pulses,0.0299386150398663 +Bahamas,pulses,0.0299386150398663 +Bangladesh,pulses,0.0299386150398663 +Barbados,pulses,0.0299386150398663 +Belarus,pulses,0.0299386150398663 +Belgium,pulses,0.0603582114038878 +Belize,pulses,0.0299386150398663 +Benin,pulses,0.0299386150398663 +Bermuda,pulses,0.0299386150398663 +Bolivia (Plurinational State of),pulses,0.0299386150398663 +Bosnia and Herzegovina,pulses,0.0299386150398663 +Botswana,pulses,0.0299386150398663 +Brazil,pulses,0.0346707358598232 +Brunei Darussalam,pulses,0.0299386150398663 +Bulgaria,pulses,0.0603582114038878 +Burkina Faso,pulses,0.0299386150398663 +Cabo Verde,pulses,0.0299386150398663 +Cambodia,pulses,0.0299386150398663 +Cameroon,pulses,0.0299386150398663 +Canada,pulses,0.0762136518389579 +Central African Republic,pulses,0.0299386150398663 +Chad,pulses,0.0299386150398663 +Chile,pulses,0.0299386150398663 +China,pulses,0.156633798883686 +Colombia,pulses,0.0686528452644761 +Congo,pulses,0.0299386150398663 +Costa Rica,pulses,0.0299386150398663 +Cote d'Ivoire,pulses,0.0299386150398663 +Croatia,pulses,0.0603582114038878 +Cuba,pulses,0.0299386150398663 +Cyprus,pulses,0.0603582114038878 +Czechia,pulses,0.0603582114038878 +Democratic People's Republic of Korea,pulses,0.0299386150398663 +Democratic Republic of the Congo,pulses,0.0299386150398663 +Denmark,pulses,0.0603582114038878 +Djibouti,pulses,0.0299386150398663 +Dominica,pulses,0.0299386150398663 +Dominican Republic,pulses,0.0299386150398663 +Ecuador,pulses,0.0299386150398663 +Egypt,pulses,0.0299386150398663 +El Salvador,pulses,0.0299386150398663 +Estonia,pulses,0.0603582114038878 +Ethiopia,pulses,0.0299386150398663 +Fiji,pulses,0.0299386150398663 +Finland,pulses,0.0603582114038878 +France,pulses,0.0603582114038878 +French Polynesia,pulses,0.0299386150398663 +Gabon,pulses,0.0299386150398663 +Gambia,pulses,0.0299386150398663 +Georgia,pulses,0.0299386150398663 +Germany,pulses,0.0603582114038878 +Ghana,pulses,0.0299386150398663 +Greece,pulses,0.0603582114038878 +Grenada,pulses,0.0299386150398663 +Guatemala,pulses,0.0299386150398663 +Guinea,pulses,0.0299386150398663 +Guinea-Bissau,pulses,0.0299386150398663 +Guyana,pulses,0.0299386150398663 +Haiti,pulses,0.0299386150398663 +Honduras,pulses,0.0299386150398663 +Hungary,pulses,0.0603582114038878 +Iceland,pulses,0.0299386150398663 +India,pulses,0.0268978443311666 +Indonesia,pulses,0.00498052969384483 +Iran (Islamic Republic of),pulses,0.0299386150398663 +Iraq,pulses,0.0299386150398663 +Ireland,pulses,0.0603582114038878 +Israel,pulses,0.0299386150398663 +Italy,pulses,0.0603582114038878 +Jamaica,pulses,0.0299386150398663 +Japan,pulses,0.0822050709280908 +Jordan,pulses,0.0299386150398663 +Kazakhstan,pulses,0.0299386150398663 +Kenya,pulses,0.0299386150398663 +Kiribati,pulses,0.0299386150398663 +Kuwait,pulses,0.0299386150398663 +Kyrgyzstan,pulses,0.0299386150398663 +Lao People's Democratic Republic,pulses,0.0299386150398663 +Latvia,pulses,0.0603582114038878 +Lebanon,pulses,0.0299386150398663 +Lesotho,pulses,0.0299386150398663 +Liberia,pulses,0.0299386150398663 +Libya,pulses,0.0299386150398663 +Lithuania,pulses,0.0603582114038878 +Luxembourg,pulses,0.0603582114038878 +Madagascar,pulses,0.0299386150398663 +Malawi,pulses,0.0299386150398663 +Malaysia,pulses,0.0299386150398663 +Maldives,pulses,0.0299386150398663 +Mali,pulses,0.0299386150398663 +Malta,pulses,0.0603582114038878 +Mauritania,pulses,0.0299386150398663 +Mauritius,pulses,0.0299386150398663 +Mexico,pulses,0.0822050709280908 +Mongolia,pulses,0.0299386150398663 +Montenegro,pulses,0.0299386150398663 +Morocco,pulses,0.0299386150398663 +Mozambique,pulses,0.0299386150398663 +Myanmar,pulses,0.0299386150398663 +Namibia,pulses,0.0299386150398663 +Nepal,pulses,0.0299386150398663 +Netherlands,pulses,0.0603582114038878 +New Caledonia,pulses,0.0299386150398663 +New Zealand,pulses,0.0173195123664494 +Nicaragua,pulses,0.0299386150398663 +Niger,pulses,0.0299386150398663 +Nigeria,pulses,0.0299386150398663 +Norway,pulses,0.0822050709280908 +Oman,pulses,0.0299386150398663 +Pakistan,pulses,0.0299386150398663 +Panama,pulses,0.0299386150398663 +Paraguay,pulses,0.0299386150398663 +Peru,pulses,0.0299386150398663 +Philippines,pulses,0.0299386150398663 +Poland,pulses,0.0603582114038878 +Portugal,pulses,0.0603582114038878 +Republic of Korea,pulses,0.0822050709280908 +Republic of Moldova,pulses,0.0299386150398663 +Romania,pulses,0.0603582114038878 +Russian Federation,pulses,0.0883633555720103 +Rwanda,pulses,0.0299386150398663 +Saint Kitts and Nevis,pulses,0.0299386150398663 +Saint Lucia,pulses,0.0299386150398663 +Saint Vincent and the Grenadines,pulses,0.0299386150398663 +Samoa,pulses,0.0299386150398663 +Sao Tome and Principe,pulses,0.0299386150398663 +Saudi Arabia,pulses,0.0299386150398663 +Senegal,pulses,0.0299386150398663 +Serbia,pulses,0.0299386150398663 +Sierra Leone,pulses,0.0299386150398663 +Slovakia,pulses,0.0603582114038878 +Slovenia,pulses,0.0603582114038878 +Solomon Islands,pulses,0.0299386150398663 +Somalia,pulses,0.0299386150398663 +South Africa,pulses,0.0161824701612779 +South Sudan,pulses,0.0299386150398663 +Spain,pulses,0.0603582114038878 +Sri Lanka,pulses,0.0299386150398663 +Sudan,pulses,0.0299386150398663 +Suriname,pulses,0.0299386150398663 +Swaziland,pulses,0.0299386150398663 +Sweden,pulses,0.0603582114038878 +Switzerland,pulses,0.0822050709280908 +Tajikistan,pulses,0.0299386150398663 +Thailand,pulses,0.0299386150398663 +The former Yugoslav Republic of Macedonia,pulses,0.0299386150398663 +Togo,pulses,0.0299386150398663 +Trinidad and Tobago,pulses,0.0299386150398663 +Tunisia,pulses,0.0299386150398663 +Turkey,pulses,0.105663766639557 +Turkmenistan,pulses,0.0299386150398663 +Uganda,pulses,0.0299386150398663 +Ukraine,pulses,0.0299386150398663 +United Arab Emirates,pulses,0.0299386150398663 +United Kingdom,pulses,0.0603582114038878 +United Republic of Tanzania,pulses,0.0299386150398663 +United States of America,pulses,0.116357971434502 +Uruguay,pulses,0.0299386150398663 +Uzbekistan,pulses,0.0299386150398663 +Vanuatu,pulses,0.0299386150398663 +Venezuela (Bolivarian Republic of),pulses,0.0299386150398663 +Viet Nam,pulses,0.0299386150398663 +Yemen,pulses,0.0299386150398663 +Zambia,pulses,0.0299386150398663 +Zimbabwe,pulses,0.0299386150398663 +Afghanistan,pasture,0.0299386150398663 +Albania,pasture,0.0299386150398663 +Algeria,pasture,0.0299386150398663 +Angola,pasture,0.0299386150398663 +Antigua and Barbuda,pasture,0.0299386150398663 +Argentina,pasture,0.0299386150398663 +Armenia,pasture,0.0299386150398663 +Australia,pasture,0.0226361482678745 +Austria,pasture,0.0603582114038878 +Azerbaijan,pasture,0.0299386150398663 +Bahamas,pasture,0.0299386150398663 +Bangladesh,pasture,0.0299386150398663 +Barbados,pasture,0.0299386150398663 +Belarus,pasture,0.0299386150398663 +Belgium,pasture,0.0603582114038878 +Belize,pasture,0.0299386150398663 +Benin,pasture,0.0299386150398663 +Bermuda,pasture,0.0299386150398663 +Bolivia (Plurinational State of),pasture,0.0299386150398663 +Bosnia and Herzegovina,pasture,0.0299386150398663 +Botswana,pasture,0.0299386150398663 +Brazil,pasture,0.0346707358598232 +Brunei Darussalam,pasture,0.0299386150398663 +Bulgaria,pasture,0.0603582114038878 +Burkina Faso,pasture,0.0299386150398663 +Cabo Verde,pasture,0.0299386150398663 +Cambodia,pasture,0.0299386150398663 +Cameroon,pasture,0.0299386150398663 +Canada,pasture,0.0762136518389579 +Central African Republic,pasture,0.0299386150398663 +Chad,pasture,0.0299386150398663 +Chile,pasture,0.0299386150398663 +China,pasture,0.156633798883686 +Colombia,pasture,0.0686528452644761 +Congo,pasture,0.0299386150398663 +Costa Rica,pasture,0.0299386150398663 +Cote d'Ivoire,pasture,0.0299386150398663 +Croatia,pasture,0.0603582114038878 +Cuba,pasture,0.0299386150398663 +Cyprus,pasture,0.0603582114038878 +Czechia,pasture,0.0603582114038878 +Democratic People's Republic of Korea,pasture,0.0299386150398663 +Democratic Republic of the Congo,pasture,0.0299386150398663 +Denmark,pasture,0.0603582114038878 +Djibouti,pasture,0.0299386150398663 +Dominica,pasture,0.0299386150398663 +Dominican Republic,pasture,0.0299386150398663 +Ecuador,pasture,0.0299386150398663 +Egypt,pasture,0.0299386150398663 +El Salvador,pasture,0.0299386150398663 +Estonia,pasture,0.0603582114038878 +Ethiopia,pasture,0.0299386150398663 +Fiji,pasture,0.0299386150398663 +Finland,pasture,0.0603582114038878 +France,pasture,0.0603582114038878 +French Polynesia,pasture,0.0299386150398663 +Gabon,pasture,0.0299386150398663 +Gambia,pasture,0.0299386150398663 +Georgia,pasture,0.0299386150398663 +Germany,pasture,0.0603582114038878 +Ghana,pasture,0.0299386150398663 +Greece,pasture,0.0603582114038878 +Grenada,pasture,0.0299386150398663 +Guatemala,pasture,0.0299386150398663 +Guinea,pasture,0.0299386150398663 +Guinea-Bissau,pasture,0.0299386150398663 +Guyana,pasture,0.0299386150398663 +Haiti,pasture,0.0299386150398663 +Honduras,pasture,0.0299386150398663 +Hungary,pasture,0.0603582114038878 +Iceland,pasture,0.0299386150398663 +India,pasture,0.0268978443311666 +Indonesia,pasture,0.00498052969384483 +Iran (Islamic Republic of),pasture,0.0299386150398663 +Iraq,pasture,0.0299386150398663 +Ireland,pasture,0.0603582114038878 +Israel,pasture,0.0299386150398663 +Italy,pasture,0.0603582114038878 +Jamaica,pasture,0.0299386150398663 +Japan,pasture,0.0822050709280908 +Jordan,pasture,0.0299386150398663 +Kazakhstan,pasture,0.0299386150398663 +Kenya,pasture,0.0299386150398663 +Kiribati,pasture,0.0299386150398663 +Kuwait,pasture,0.0299386150398663 +Kyrgyzstan,pasture,0.0299386150398663 +Lao People's Democratic Republic,pasture,0.0299386150398663 +Latvia,pasture,0.0603582114038878 +Lebanon,pasture,0.0299386150398663 +Lesotho,pasture,0.0299386150398663 +Liberia,pasture,0.0299386150398663 +Libya,pasture,0.0299386150398663 +Lithuania,pasture,0.0603582114038878 +Luxembourg,pasture,0.0603582114038878 +Madagascar,pasture,0.0299386150398663 +Malawi,pasture,0.0299386150398663 +Malaysia,pasture,0.0299386150398663 +Maldives,pasture,0.0299386150398663 +Mali,pasture,0.0299386150398663 +Malta,pasture,0.0603582114038878 +Mauritania,pasture,0.0299386150398663 +Mauritius,pasture,0.0299386150398663 +Mexico,pasture,0.0822050709280908 +Mongolia,pasture,0.0299386150398663 +Montenegro,pasture,0.0299386150398663 +Morocco,pasture,0.0299386150398663 +Mozambique,pasture,0.0299386150398663 +Myanmar,pasture,0.0299386150398663 +Namibia,pasture,0.0299386150398663 +Nepal,pasture,0.0299386150398663 +Netherlands,pasture,0.0603582114038878 +New Caledonia,pasture,0.0299386150398663 +New Zealand,pasture,0.0173195123664494 +Nicaragua,pasture,0.0299386150398663 +Niger,pasture,0.0299386150398663 +Nigeria,pasture,0.0299386150398663 +Norway,pasture,0.0822050709280908 +Oman,pasture,0.0299386150398663 +Pakistan,pasture,0.0299386150398663 +Panama,pasture,0.0299386150398663 +Paraguay,pasture,0.0299386150398663 +Peru,pasture,0.0299386150398663 +Philippines,pasture,0.0299386150398663 +Poland,pasture,0.0603582114038878 +Portugal,pasture,0.0603582114038878 +Republic of Korea,pasture,0.0822050709280908 +Republic of Moldova,pasture,0.0299386150398663 +Romania,pasture,0.0603582114038878 +Russian Federation,pasture,0.0883633555720103 +Rwanda,pasture,0.0299386150398663 +Saint Kitts and Nevis,pasture,0.0299386150398663 +Saint Lucia,pasture,0.0299386150398663 +Saint Vincent and the Grenadines,pasture,0.0299386150398663 +Samoa,pasture,0.0299386150398663 +Sao Tome and Principe,pasture,0.0299386150398663 +Saudi Arabia,pasture,0.0299386150398663 +Senegal,pasture,0.0299386150398663 +Serbia,pasture,0.0299386150398663 +Sierra Leone,pasture,0.0299386150398663 +Slovakia,pasture,0.0603582114038878 +Slovenia,pasture,0.0603582114038878 +Solomon Islands,pasture,0.0299386150398663 +Somalia,pasture,0.0299386150398663 +South Africa,pasture,0.0161824701612779 +South Sudan,pasture,0.0299386150398663 +Spain,pasture,0.0603582114038878 +Sri Lanka,pasture,0.0299386150398663 +Sudan,pasture,0.0299386150398663 +Suriname,pasture,0.0299386150398663 +Swaziland,pasture,0.0299386150398663 +Sweden,pasture,0.0603582114038878 +Switzerland,pasture,0.0822050709280908 +Tajikistan,pasture,0.0299386150398663 +Thailand,pasture,0.0299386150398663 +The former Yugoslav Republic of Macedonia,pasture,0.0299386150398663 +Togo,pasture,0.0299386150398663 +Trinidad and Tobago,pasture,0.0299386150398663 +Tunisia,pasture,0.0299386150398663 +Turkey,pasture,0.105663766639557 +Turkmenistan,pasture,0.0299386150398663 +Uganda,pasture,0.0299386150398663 +Ukraine,pasture,0.0299386150398663 +United Arab Emirates,pasture,0.0299386150398663 +United Kingdom,pasture,0.0603582114038878 +United Republic of Tanzania,pasture,0.0299386150398663 +United States of America,pasture,0.116357971434502 +Uruguay,pasture,0.0299386150398663 +Uzbekistan,pasture,0.0299386150398663 +Vanuatu,pasture,0.0299386150398663 +Venezuela (Bolivarian Republic of),pasture,0.0299386150398663 +Viet Nam,pasture,0.0299386150398663 +Yemen,pasture,0.0299386150398663 +Zambia,pasture,0.0299386150398663 +Zimbabwe,pasture,0.0299386150398663 +Afghanistan,fruitveg,0.0299386150398663 +Albania,fruitveg,0.0299386150398663 +Algeria,fruitveg,0.0299386150398663 +Angola,fruitveg,0.0299386150398663 +Antigua and Barbuda,fruitveg,0.0299386150398663 +Argentina,fruitveg,0.0299386150398663 +Armenia,fruitveg,0.0299386150398663 +Australia,fruitveg,0.0226361482678745 +Austria,fruitveg,0.0603582114038878 +Azerbaijan,fruitveg,0.0299386150398663 +Bahamas,fruitveg,0.0299386150398663 +Bangladesh,fruitveg,0.0299386150398663 +Barbados,fruitveg,0.0299386150398663 +Belarus,fruitveg,0.0299386150398663 +Belgium,fruitveg,0.0603582114038878 +Belize,fruitveg,0.0299386150398663 +Benin,fruitveg,0.0299386150398663 +Bermuda,fruitveg,0.0299386150398663 +Bolivia (Plurinational State of),fruitveg,0.0299386150398663 +Bosnia and Herzegovina,fruitveg,0.0299386150398663 +Botswana,fruitveg,0.0299386150398663 +Brazil,fruitveg,0.0346707358598232 +Brunei Darussalam,fruitveg,0.0299386150398663 +Bulgaria,fruitveg,0.0603582114038878 +Burkina Faso,fruitveg,0.0299386150398663 +Cabo Verde,fruitveg,0.0299386150398663 +Cambodia,fruitveg,0.0299386150398663 +Cameroon,fruitveg,0.0299386150398663 +Canada,fruitveg,0.0762136518389579 +Central African Republic,fruitveg,0.0299386150398663 +Chad,fruitveg,0.0299386150398663 +Chile,fruitveg,0.0299386150398663 +China,fruitveg,0.156633798883686 +Colombia,fruitveg,0.0686528452644761 +Congo,fruitveg,0.0299386150398663 +Costa Rica,fruitveg,0.0299386150398663 +Cote d'Ivoire,fruitveg,0.0299386150398663 +Croatia,fruitveg,0.0603582114038878 +Cuba,fruitveg,0.0299386150398663 +Cyprus,fruitveg,0.0603582114038878 +Czechia,fruitveg,0.0603582114038878 +Democratic People's Republic of Korea,fruitveg,0.0299386150398663 +Democratic Republic of the Congo,fruitveg,0.0299386150398663 +Denmark,fruitveg,0.0603582114038878 +Djibouti,fruitveg,0.0299386150398663 +Dominica,fruitveg,0.0299386150398663 +Dominican Republic,fruitveg,0.0299386150398663 +Ecuador,fruitveg,0.0299386150398663 +Egypt,fruitveg,0.0299386150398663 +El Salvador,fruitveg,0.0299386150398663 +Estonia,fruitveg,0.0603582114038878 +Ethiopia,fruitveg,0.0299386150398663 +Fiji,fruitveg,0.0299386150398663 +Finland,fruitveg,0.0603582114038878 +France,fruitveg,0.0603582114038878 +French Polynesia,fruitveg,0.0299386150398663 +Gabon,fruitveg,0.0299386150398663 +Gambia,fruitveg,0.0299386150398663 +Georgia,fruitveg,0.0299386150398663 +Germany,fruitveg,0.0603582114038878 +Ghana,fruitveg,0.0299386150398663 +Greece,fruitveg,0.0603582114038878 +Grenada,fruitveg,0.0299386150398663 +Guatemala,fruitveg,0.0299386150398663 +Guinea,fruitveg,0.0299386150398663 +Guinea-Bissau,fruitveg,0.0299386150398663 +Guyana,fruitveg,0.0299386150398663 +Haiti,fruitveg,0.0299386150398663 +Honduras,fruitveg,0.0299386150398663 +Hungary,fruitveg,0.0603582114038878 +Iceland,fruitveg,0.0299386150398663 +India,fruitveg,0.0268978443311666 +Indonesia,fruitveg,0.00498052969384483 +Iran (Islamic Republic of),fruitveg,0.0299386150398663 +Iraq,fruitveg,0.0299386150398663 +Ireland,fruitveg,0.0603582114038878 +Israel,fruitveg,0.0299386150398663 +Italy,fruitveg,0.0603582114038878 +Jamaica,fruitveg,0.0299386150398663 +Japan,fruitveg,0.0822050709280908 +Jordan,fruitveg,0.0299386150398663 +Kazakhstan,fruitveg,0.0299386150398663 +Kenya,fruitveg,0.0299386150398663 +Kiribati,fruitveg,0.0299386150398663 +Kuwait,fruitveg,0.0299386150398663 +Kyrgyzstan,fruitveg,0.0299386150398663 +Lao People's Democratic Republic,fruitveg,0.0299386150398663 +Latvia,fruitveg,0.0603582114038878 +Lebanon,fruitveg,0.0299386150398663 +Lesotho,fruitveg,0.0299386150398663 +Liberia,fruitveg,0.0299386150398663 +Libya,fruitveg,0.0299386150398663 +Lithuania,fruitveg,0.0603582114038878 +Luxembourg,fruitveg,0.0603582114038878 +Madagascar,fruitveg,0.0299386150398663 +Malawi,fruitveg,0.0299386150398663 +Malaysia,fruitveg,0.0299386150398663 +Maldives,fruitveg,0.0299386150398663 +Mali,fruitveg,0.0299386150398663 +Malta,fruitveg,0.0603582114038878 +Mauritania,fruitveg,0.0299386150398663 +Mauritius,fruitveg,0.0299386150398663 +Mexico,fruitveg,0.0822050709280908 +Mongolia,fruitveg,0.0299386150398663 +Montenegro,fruitveg,0.0299386150398663 +Morocco,fruitveg,0.0299386150398663 +Mozambique,fruitveg,0.0299386150398663 +Myanmar,fruitveg,0.0299386150398663 +Namibia,fruitveg,0.0299386150398663 +Nepal,fruitveg,0.0299386150398663 +Netherlands,fruitveg,0.0603582114038878 +New Caledonia,fruitveg,0.0299386150398663 +New Zealand,fruitveg,0.0173195123664494 +Nicaragua,fruitveg,0.0299386150398663 +Niger,fruitveg,0.0299386150398663 +Nigeria,fruitveg,0.0299386150398663 +Norway,fruitveg,0.0822050709280908 +Oman,fruitveg,0.0299386150398663 +Pakistan,fruitveg,0.0299386150398663 +Panama,fruitveg,0.0299386150398663 +Paraguay,fruitveg,0.0299386150398663 +Peru,fruitveg,0.0299386150398663 +Philippines,fruitveg,0.0299386150398663 +Poland,fruitveg,0.0603582114038878 +Portugal,fruitveg,0.0603582114038878 +Republic of Korea,fruitveg,0.0822050709280908 +Republic of Moldova,fruitveg,0.0299386150398663 +Romania,fruitveg,0.0603582114038878 +Russian Federation,fruitveg,0.0883633555720103 +Rwanda,fruitveg,0.0299386150398663 +Saint Kitts and Nevis,fruitveg,0.0299386150398663 +Saint Lucia,fruitveg,0.0299386150398663 +Saint Vincent and the Grenadines,fruitveg,0.0299386150398663 +Samoa,fruitveg,0.0299386150398663 +Sao Tome and Principe,fruitveg,0.0299386150398663 +Saudi Arabia,fruitveg,0.0299386150398663 +Senegal,fruitveg,0.0299386150398663 +Serbia,fruitveg,0.0299386150398663 +Sierra Leone,fruitveg,0.0299386150398663 +Slovakia,fruitveg,0.0603582114038878 +Slovenia,fruitveg,0.0603582114038878 +Solomon Islands,fruitveg,0.0299386150398663 +Somalia,fruitveg,0.0299386150398663 +South Africa,fruitveg,0.0161824701612779 +South Sudan,fruitveg,0.0299386150398663 +Spain,fruitveg,0.0603582114038878 +Sri Lanka,fruitveg,0.0299386150398663 +Sudan,fruitveg,0.0299386150398663 +Suriname,fruitveg,0.0299386150398663 +Swaziland,fruitveg,0.0299386150398663 +Sweden,fruitveg,0.0603582114038878 +Switzerland,fruitveg,0.0822050709280908 +Tajikistan,fruitveg,0.0299386150398663 +Thailand,fruitveg,0.0299386150398663 +The former Yugoslav Republic of Macedonia,fruitveg,0.0299386150398663 +Togo,fruitveg,0.0299386150398663 +Trinidad and Tobago,fruitveg,0.0299386150398663 +Tunisia,fruitveg,0.0299386150398663 +Turkey,fruitveg,0.105663766639557 +Turkmenistan,fruitveg,0.0299386150398663 +Uganda,fruitveg,0.0299386150398663 +Ukraine,fruitveg,0.0299386150398663 +United Arab Emirates,fruitveg,0.0299386150398663 +United Kingdom,fruitveg,0.0603582114038878 +United Republic of Tanzania,fruitveg,0.0299386150398663 +United States of America,fruitveg,0.116357971434502 +Uruguay,fruitveg,0.0299386150398663 +Uzbekistan,fruitveg,0.0299386150398663 +Vanuatu,fruitveg,0.0299386150398663 +Venezuela (Bolivarian Republic of),fruitveg,0.0299386150398663 +Viet Nam,fruitveg,0.0299386150398663 +Yemen,fruitveg,0.0299386150398663 +Zambia,fruitveg,0.0299386150398663 +Zimbabwe,fruitveg,0.0299386150398663 +Afghanistan,sugar,0.0299386150398663 +Albania,sugar,0.0299386150398663 +Algeria,sugar,0.0299386150398663 +Angola,sugar,0.0299386150398663 +Antigua and Barbuda,sugar,0.0299386150398663 +Argentina,sugar,0.0299386150398663 +Armenia,sugar,0.0299386150398663 +Australia,sugar,0.0226361482678745 +Austria,sugar,0.0603582114038878 +Azerbaijan,sugar,0.0299386150398663 +Bahamas,sugar,0.0299386150398663 +Bangladesh,sugar,0.0299386150398663 +Barbados,sugar,0.0299386150398663 +Belarus,sugar,0.0299386150398663 +Belgium,sugar,0.0603582114038878 +Belize,sugar,0.0299386150398663 +Benin,sugar,0.0299386150398663 +Bermuda,sugar,0.0299386150398663 +Bolivia (Plurinational State of),sugar,0.0299386150398663 +Bosnia and Herzegovina,sugar,0.0299386150398663 +Botswana,sugar,0.0299386150398663 +Brazil,sugar,0.0346707358598232 +Brunei Darussalam,sugar,0.0299386150398663 +Bulgaria,sugar,0.0603582114038878 +Burkina Faso,sugar,0.0299386150398663 +Cabo Verde,sugar,0.0299386150398663 +Cambodia,sugar,0.0299386150398663 +Cameroon,sugar,0.0299386150398663 +Canada,sugar,0.0762136518389579 +Central African Republic,sugar,0.0299386150398663 +Chad,sugar,0.0299386150398663 +Chile,sugar,0.0299386150398663 +China,sugar,0.156633798883686 +Colombia,sugar,0.0686528452644761 +Congo,sugar,0.0299386150398663 +Costa Rica,sugar,0.0299386150398663 +Cote d'Ivoire,sugar,0.0299386150398663 +Croatia,sugar,0.0603582114038878 +Cuba,sugar,0.0299386150398663 +Cyprus,sugar,0.0603582114038878 +Czechia,sugar,0.0603582114038878 +Democratic People's Republic of Korea,sugar,0.0299386150398663 +Democratic Republic of the Congo,sugar,0.0299386150398663 +Denmark,sugar,0.0603582114038878 +Djibouti,sugar,0.0299386150398663 +Dominica,sugar,0.0299386150398663 +Dominican Republic,sugar,0.0299386150398663 +Ecuador,sugar,0.0299386150398663 +Egypt,sugar,0.0299386150398663 +El Salvador,sugar,0.0299386150398663 +Estonia,sugar,0.0603582114038878 +Ethiopia,sugar,0.0299386150398663 +Fiji,sugar,0.0299386150398663 +Finland,sugar,0.0603582114038878 +France,sugar,0.0603582114038878 +French Polynesia,sugar,0.0299386150398663 +Gabon,sugar,0.0299386150398663 +Gambia,sugar,0.0299386150398663 +Georgia,sugar,0.0299386150398663 +Germany,sugar,0.0603582114038878 +Ghana,sugar,0.0299386150398663 +Greece,sugar,0.0603582114038878 +Grenada,sugar,0.0299386150398663 +Guatemala,sugar,0.0299386150398663 +Guinea,sugar,0.0299386150398663 +Guinea-Bissau,sugar,0.0299386150398663 +Guyana,sugar,0.0299386150398663 +Haiti,sugar,0.0299386150398663 +Honduras,sugar,0.0299386150398663 +Hungary,sugar,0.0603582114038878 +Iceland,sugar,0.0299386150398663 +India,sugar,0.0268978443311666 +Indonesia,sugar,0.00498052969384483 +Iran (Islamic Republic of),sugar,0.0299386150398663 +Iraq,sugar,0.0299386150398663 +Ireland,sugar,0.0603582114038878 +Israel,sugar,0.0299386150398663 +Italy,sugar,0.0603582114038878 +Jamaica,sugar,0.0299386150398663 +Japan,sugar,0.0822050709280908 +Jordan,sugar,0.0299386150398663 +Kazakhstan,sugar,0.0299386150398663 +Kenya,sugar,0.0299386150398663 +Kiribati,sugar,0.0299386150398663 +Kuwait,sugar,0.0299386150398663 +Kyrgyzstan,sugar,0.0299386150398663 +Lao People's Democratic Republic,sugar,0.0299386150398663 +Latvia,sugar,0.0603582114038878 +Lebanon,sugar,0.0299386150398663 +Lesotho,sugar,0.0299386150398663 +Liberia,sugar,0.0299386150398663 +Libya,sugar,0.0299386150398663 +Lithuania,sugar,0.0603582114038878 +Luxembourg,sugar,0.0603582114038878 +Madagascar,sugar,0.0299386150398663 +Malawi,sugar,0.0299386150398663 +Malaysia,sugar,0.0299386150398663 +Maldives,sugar,0.0299386150398663 +Mali,sugar,0.0299386150398663 +Malta,sugar,0.0603582114038878 +Mauritania,sugar,0.0299386150398663 +Mauritius,sugar,0.0299386150398663 +Mexico,sugar,0.0822050709280908 +Mongolia,sugar,0.0299386150398663 +Montenegro,sugar,0.0299386150398663 +Morocco,sugar,0.0299386150398663 +Mozambique,sugar,0.0299386150398663 +Myanmar,sugar,0.0299386150398663 +Namibia,sugar,0.0299386150398663 +Nepal,sugar,0.0299386150398663 +Netherlands,sugar,0.0603582114038878 +New Caledonia,sugar,0.0299386150398663 +New Zealand,sugar,0.0173195123664494 +Nicaragua,sugar,0.0299386150398663 +Niger,sugar,0.0299386150398663 +Nigeria,sugar,0.0299386150398663 +Norway,sugar,0.0822050709280908 +Oman,sugar,0.0299386150398663 +Pakistan,sugar,0.0299386150398663 +Panama,sugar,0.0299386150398663 +Paraguay,sugar,0.0299386150398663 +Peru,sugar,0.0299386150398663 +Philippines,sugar,0.0299386150398663 +Poland,sugar,0.0603582114038878 +Portugal,sugar,0.0603582114038878 +Republic of Korea,sugar,0.0822050709280908 +Republic of Moldova,sugar,0.0299386150398663 +Romania,sugar,0.0603582114038878 +Russian Federation,sugar,0.0883633555720103 +Rwanda,sugar,0.0299386150398663 +Saint Kitts and Nevis,sugar,0.0299386150398663 +Saint Lucia,sugar,0.0299386150398663 +Saint Vincent and the Grenadines,sugar,0.0299386150398663 +Samoa,sugar,0.0299386150398663 +Sao Tome and Principe,sugar,0.0299386150398663 +Saudi Arabia,sugar,0.0299386150398663 +Senegal,sugar,0.0299386150398663 +Serbia,sugar,0.0299386150398663 +Sierra Leone,sugar,0.0299386150398663 +Slovakia,sugar,0.0603582114038878 +Slovenia,sugar,0.0603582114038878 +Solomon Islands,sugar,0.0299386150398663 +Somalia,sugar,0.0299386150398663 +South Africa,sugar,0.0161824701612779 +South Sudan,sugar,0.0299386150398663 +Spain,sugar,0.0603582114038878 +Sri Lanka,sugar,0.0299386150398663 +Sudan,sugar,0.0299386150398663 +Suriname,sugar,0.0299386150398663 +Swaziland,sugar,0.0299386150398663 +Sweden,sugar,0.0603582114038878 +Switzerland,sugar,0.0822050709280908 +Tajikistan,sugar,0.0299386150398663 +Thailand,sugar,0.0299386150398663 +The former Yugoslav Republic of Macedonia,sugar,0.0299386150398663 +Togo,sugar,0.0299386150398663 +Trinidad and Tobago,sugar,0.0299386150398663 +Tunisia,sugar,0.0299386150398663 +Turkey,sugar,0.105663766639557 +Turkmenistan,sugar,0.0299386150398663 +Uganda,sugar,0.0299386150398663 +Ukraine,sugar,0.0299386150398663 +United Arab Emirates,sugar,0.0299386150398663 +United Kingdom,sugar,0.0603582114038878 +United Republic of Tanzania,sugar,0.0299386150398663 +United States of America,sugar,0.116357971434502 +Uruguay,sugar,0.0299386150398663 +Uzbekistan,sugar,0.0299386150398663 +Vanuatu,sugar,0.0299386150398663 +Venezuela (Bolivarian Republic of),sugar,0.0299386150398663 +Viet Nam,sugar,0.0299386150398663 +Yemen,sugar,0.0299386150398663 +Zambia,sugar,0.0299386150398663 +Zimbabwe,sugar,0.0299386150398663 diff --git a/src/ac/ed/lurg/InternationalMarket.java b/src/ac/ed/lurg/InternationalMarket.java index 8d172a35465d21a042a5c83ea3dbd3d223b7554f..62a23ca5afdcf4bc2a77ff87714054bef5570ac6 100644 --- a/src/ac/ed/lurg/InternationalMarket.java +++ b/src/ac/ed/lurg/InternationalMarket.java @@ -148,7 +148,7 @@ public class InternationalMarket { for (AbstractCountryAgent ca : countryAgents) { CarbonUsageData carbonUsage = ca.getCarbonUsageData(); - totalCarbonSequestered += carbonUsage.getCarbonSequestered(); + totalCarbonSequestered += carbonUsage.getCarbonCredits(); double netCarbonFlux = carbonUsage.getNetCarbonImport(); if (netCarbonFlux >= 0) totalCarbonImport += netCarbonFlux; diff --git a/src/ac/ed/lurg/ModelConfig.java b/src/ac/ed/lurg/ModelConfig.java index d744ed08efc4f133e3ce17b39f84ba88a5acb8db..a2196063db88c3520b85299dcfca153ae707b589 100755 --- a/src/ac/ed/lurg/ModelConfig.java +++ b/src/ac/ed/lurg/ModelConfig.java @@ -7,7 +7,9 @@ import java.util.Enumeration; import java.util.Properties; import java.lang.Long; +import ac.ed.lurg.carbon.CarbonOptionsManager; import ac.ed.lurg.shock.parameterShocksReader; +import ac.ed.lurg.types.LandCoverType; import ac.ed.lurg.types.ModelFitType; import ac.ed.lurg.types.PriceType; import ac.ed.lurg.utils.LogWriter; @@ -19,6 +21,7 @@ public class ModelConfig { public static final String CONFIG_FILE = System.getProperty("CONFIG_FILE"); private static parameterShocksReader shocksReader; + private static CarbonOptionsManager carbonOptionsManager; private ModelConfig() { configFile = new Properties(); @@ -126,6 +129,17 @@ public class ModelConfig { } return value; } + + public static boolean getCarbonOption(LandCoverType fromLc, LandCoverType toLc) { + if (IS_CARBON_ON) { + if (carbonOptionsManager == null) { + carbonOptionsManager = new CarbonOptionsManager(); + } + return carbonOptionsManager.isCarbonFluxEnabled(fromLc, toLc); + } else { + return false; + } + } public static final boolean SUPPRESS_STD_OUTPUT = getBooleanProperty("SUPPRESS_STD_OUTPUT", Boolean.FALSE); @@ -143,8 +157,9 @@ public class ModelConfig { public static final String DEMAND_GAMS_MODEL = getProperty("DEMAND_GAMS_MODEL", GAMS_DIR + File.separator + "elasticDemand.gms"); public static final String DEMAND_PARAM_FILE = getProperty("DEMAND_PARAM_FILE", DATA_DIR + File.separator + "DemandParamConv.gdx"); - // Runtime options + // Multithreading options public static final int MULTITHREAD_NUM = getIntProperty("MULTITHREAD_NUM", 4); // number of parallel threads + public static final int THREAD_TIMEOUT = getIntProperty("THREAD_TIMEOUT", 120); // timeout limit for threads, minutes // Country (non-gridded) data public static final boolean DEMAND_FROM_FILE = getBooleanProperty("DEMAND_FROM_FILE", false); // used in hindcasting @@ -267,7 +282,8 @@ public class ModelConfig { public static final String DEMAND_OPTIMISATION_OUTPUT_FILE = OUTPUT_DIR + File.separator + "countryDemandOpt.txt"; public static final String FOOD_BALANCE_SHEET_FILE = OUTPUT_DIR + File.separator + "fbs.txt"; public static final String ANIMAL_NUMBERS_OUTPUT_FILE = OUTPUT_DIR + File.separator + "animals.txt"; - public static final String WOOD_CARBON_OUTPUT_FILE = OUTPUT_DIR + File.separator + "woodCarbon.txt"; + public static final String WOOD_OUTPUT_FILE = OUTPUT_DIR + File.separator + "wood.txt"; + public static final String CARBON_OUTPUT_FILE = OUTPUT_DIR + File.separator + "carbon.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); @@ -311,6 +327,10 @@ public class ModelConfig { // Import export limits public static final double ANNUAL_MAX_IMPORT_CHANGE = getDoubleProperty("ANNUAL_MAX_IMPORT_CHANGE", 0.05); public static final double MAX_IMPORT_CHANGE = getDoubleProperty("MAX_IMPORT_CHANGE", ANNUAL_MAX_IMPORT_CHANGE*TIMESTEP_SIZE); + public static final double IMPORT_CHANGE_MIN_PARAM = getDoubleProperty("IMPORT_CHANGE_MIN_PARAM", 1.0); // import/export ratio below which import change is capped at MAX_IMPORT_CHANGE + public static final double IMPORT_CHANGE_MAX_PARAM = getDoubleProperty("IMPORT_CHANGE_MAX_PARAM", 1.5); // import/export ratio above which import change is 0 + public static final double IMPORT_CHANGE_GRAD_PARAM = getDoubleProperty("IMPORT_CHANGE_GRAD_PARAM", -MAX_IMPORT_CHANGE/(IMPORT_CHANGE_MAX_PARAM-IMPORT_CHANGE_MIN_PARAM)); + public static final double IMPORT_CHANGE_INTCP_PARAM = getDoubleProperty("IMPORT_CHANGE_INTCP_PARAM", -IMPORT_CHANGE_GRAD_PARAM*IMPORT_CHANGE_MAX_PARAM); // Price caps public static final String PRICE_CAP_FILE = DATA_DIR + File.separator + "price_caps.csv"; @@ -456,7 +476,7 @@ public class ModelConfig { public static final boolean IS_FORESTRY_ON = getBooleanProperty("IS_FORESTRY_ON", true); public static final String WOOD_DEMAND_FILENAME = getProperty("WOOD_DEMAND_FILENAME", "wood_demand.csv"); public static final String WOOD_DEMAND_FILE = getProperty("WOOD_DEMAND_FILE", DATA_DIR + File.separator + WOOD_DEMAND_FILENAME); - public static final double INIT_WOOD_STOCK = getDoubleProperty("INIT_WOOD_STOCK", 500.0); // MtC-eq + public static final double INIT_WOOD_STOCK = getDoubleProperty("INIT_WOOD_STOCK", 1500.0); // MtC-eq public static final double IND_ROUNDWOOD_DEMAND_ELASTICITY = getDoubleProperty("IND_ROUNDWOOD_DEMAND_ELASTICITY", 0.3123881); public static final double FUELWOOD_DEMAND_ELASTICITY = getDoubleProperty("FUELDWOOD_DEMAND_ELASTICITY", -0.3598551); public static final double WOOD_BIOMASS_CONVERSION_FACTOR = getDoubleProperty("WOOD_BIOMASS_CONVERSION_FACTOR", 3e-7); // m3 to MtC-eq p.16 [https://doi.org/10.5194/gmd-13-5425-2020] @@ -470,11 +490,13 @@ public class ModelConfig { public static final double MANAGED_FOREST_DECREASE_COST = IS_FORESTRY_ON || ENABLE_VEGETATION_CLEARANCE_COST ? getDoubleProperty("MANAGED_FOREST_DECREASE_COST", 0.1 * LAND_CHANGE_COST) : getDoubleProperty("MANAGED_FOREST_DECREASE_COST", 0.5 * LAND_CHANGE_COST); // $1000/ha // Carbon - public static final boolean IS_CARBON_ON = getBooleanProperty("IS_CARBON_ON", true); + public static final boolean IS_CARBON_ON = getBooleanProperty("IS_CARBON_ON", false); public static final String CARBON_DEMAND_FILENAME = getProperty("CARBON_DEMAND_FILENAME", "carbon_demand.csv"); public static final String CARBON_DEMAND_FILE = getProperty("CARBON_DEMAND_FILE", DATA_DIR + File.separator + CARBON_DEMAND_FILENAME); public static final int CARBON_HORIZON = getIntProperty("CARBON_HORIZON", 30); public static final double INIT_CARBON_PRICE = IS_CARBON_ON ? getDoubleProperty("INIT_CARBON_PRICE", 0.02) : 0.0; // $1000/tC-eq public static final double INIT_CARBON_STOCK = getDoubleProperty("INIT_WOOD_STOCK", 100.0); // MtC-eq + public static final String CARBON_OPTIONS_FILENAME = getProperty("CARBON_OPTIONS_FILENAME", "carbon_options.csv"); + public static final String CARBON_OPTIONS_FILE = getProperty("CARBON_OPTIONS_FILE", DATA_DIR + File.separator + CARBON_OPTIONS_FILENAME); } diff --git a/src/ac/ed/lurg/ModelMain.java b/src/ac/ed/lurg/ModelMain.java index 2f0b091b3775b67c93020873f4d8b72797de1820..02706f8ea53ce9ec8af12d3da77271271df881c9 100644 --- a/src/ac/ed/lurg/ModelMain.java +++ b/src/ac/ed/lurg/ModelMain.java @@ -390,10 +390,10 @@ public class ModelMain { } } - private void writeWoodAndCarbonProdFile(Timestep timestep) { + private void writeWoodProdFile(Timestep timestep) { try { StringBuffer sbHeadings = new StringBuffer("Year, Country, Item, Production, Import_price, Export_price, Net_imports"); - BufferedWriter outputFile = FileWriterHelper.getFileWriter(timestep, ModelConfig.WOOD_CARBON_OUTPUT_FILE, sbHeadings.toString()); + BufferedWriter outputFile = FileWriterHelper.getFileWriter(timestep, ModelConfig.WOOD_OUTPUT_FILE, sbHeadings.toString()); for (AbstractCountryAgent country : countryAgents.getAll()) { @@ -426,6 +426,41 @@ public class ModelMain { LogWriter.print(e); } } + + private void writeCarbonFluxesFile(Timestep timestep) { + try { + StringBuffer sbHeadings = new StringBuffer("Year, Country, Credits, Import_price, Export_price, Net_imports, Net_flux"); + BufferedWriter outputFile = FileWriterHelper.getFileWriter(timestep, ModelConfig.CARBON_OUTPUT_FILE, sbHeadings.toString()); + + for (AbstractCountryAgent country : countryAgents.getAll()) { + + CarbonUsageData carbonUsage = country.getCarbonUsageData(); + + if (carbonUsage == null) + continue; + + double credits = carbonUsage.getCarbonCredits(); + double netFlux = carbonUsage.getNetCarbonFlux(); + double netImports = carbonUsage.getNetCarbonImport(); + + CountryPrice px = country.getCurrentCountryCarbonPrice(); + double importPrice = px.getImportPrice(); + double exportPrice = px.getExportPrice(); + + StringBuffer sbData = new StringBuffer(); + sbData.append(String.format("%d,%s", timestep.getYear(), country.getCountry())); + sbData.append(String.format(",%.4f,%.4f,%.4f,%.4f,%.4f", credits, importPrice, exportPrice, netImports, netFlux)); + + outputFile.write(sbData.toString()); + outputFile.newLine(); + + } + outputFile.close(); + + } catch (IOException e) { + LogWriter.print(e); + } + } private void writeCountryDemandFile(Timestep timestep){ @@ -490,7 +525,8 @@ public class ModelMain { writeGlobalMarketFile(timestep); writeDemandFile(timestep); writeDomesticProductionFile(timestep); - writeWoodAndCarbonProdFile(timestep); + writeWoodProdFile(timestep); + writeCarbonFluxesFile(timestep); writeCountryDemandFile(timestep); writeGlobalFoodBalanceSheet(timestep, globalLandUseRaster); writeAnimalNumber(timestep); @@ -634,7 +670,7 @@ public class ModelMain { if (ModelConfig.IS_CALIBRATION_RUN) { carbonUsageDataMap = new HashMap<CompositeCountry, CarbonUsageData>(); for (CompositeCountry cc : compositeCountryManager.getAll()) { - CarbonUsageData cuData = new CarbonUsageData(0, 0); + CarbonUsageData cuData = new CarbonUsageData(0, 0, 0); carbonUsageDataMap.put(cc, cuData); } } else { diff --git a/src/ac/ed/lurg/carbon/CarbonFluxItem.java b/src/ac/ed/lurg/carbon/CarbonFluxItem.java index a86620f371ac2b7f1347fbfef4eb361ae26c9450..deab4f7f5e935ae7f8179ec22dd3fbcc2bfd5575 100644 --- a/src/ac/ed/lurg/carbon/CarbonFluxItem.java +++ b/src/ac/ed/lurg/carbon/CarbonFluxItem.java @@ -16,119 +16,117 @@ import ac.ed.lurg.types.LandProtectionType; public class CarbonFluxItem implements RasterItem, Serializable { private static final long serialVersionUID = 440720456140537815L; - Map<LccKey, Double> conversionCarbonFlux = new HashMap<LccKey, Double>(); - Map<LandCoverType, Double> ecosystemCarbonFlux = new HashMap<LandCoverType, Double>(); - Map<LandCoverType, Double> carbonHorizonFluxEstablished = new HashMap<LandCoverType, Double>(); - Map<LandCoverType, Double> carbonHorizonFluxNew = new HashMap<LandCoverType, Double>(); + Map<LccKey, Double> carbonFluxRate = new HashMap<LccKey, Double>(); + Map<LccKey, Double> carbonCreditRate = new HashMap<LccKey, Double>(); - public void calcConversionCarbonFlux(LccKey key, Double[] cFluxes, Map<LandCoverType, LandCoverTile> landUseTiles, Timestep timestep) { + public void calcConversionCarbonFlux(LccKey key, Double[] cFluxes, Map<LandCoverType, LandCoverTile> landUseTiles) { LandCoverTile tiles = landUseTiles.get(key.getFromLc()); - double totalArea = tiles.getTotalArea(LandProtectionType.CONVERTIBLE); + if (totalArea == 0) { - this.conversionCarbonFlux.put(key, 0.0); - } else { + carbonFluxRate.put(key, 0.0); + carbonCreditRate.put(key, 0.0); + } else { double totalFlux = 0; for (int age : tiles.getAgeKeys()) { int ageCapped = Math.min(age, ModelConfig.CARBON_WOOD_MAX_TIME - 1); totalFlux += cFluxes[ageCapped] * tiles.getArea(LandProtectionType.CONVERTIBLE, age); } double meanFlux = totalFlux / totalArea; - this.conversionCarbonFlux.put(key, meanFlux); + carbonFluxRate.put(key, meanFlux); + carbonCreditRate.put(key, meanFlux); } } - public void calcEcosystemCarbonFlux(LandCoverType lcType, Double[] cFluxes, Map<LandCoverType, LandCoverTile> landUseTiles, Timestep timestep) { + public void calcEcosystemCarbonFlux(LandCoverType lcType, Double[] cFluxes, Map<LandCoverType, LandCoverTile> landUseTiles) { LandCoverTile tiles = landUseTiles.get(lcType); + LccKey key = new LccKey(lcType, lcType); double totalArea = tiles.getTotalArea(LandProtectionType.CONVERTIBLE); + if (totalArea == 0) { - this.ecosystemCarbonFlux.put(lcType, 0.0); - } else { + carbonFluxRate.put(key, 0.0); + } else { + // Flux rate double totalFlux = 0; for (int age : tiles.getAgeKeys()) { int ageCapped = Math.min(age, ModelConfig.CARBON_WOOD_MAX_TIME - 1); totalFlux += cFluxes[ageCapped] * tiles.getArea(LandProtectionType.CONVERTIBLE, age); } double meanFlux = totalFlux / totalArea; - this.ecosystemCarbonFlux.put(lcType, meanFlux); - } - } - - public void calcCarbonHorizonFlux(LandCoverType lcType, Double[] cFluxes, Map<LandCoverType, LandCoverTile> landUseTiles) { - // New - double totalFlux = 0; - for (int i = 0; i < ModelConfig.CARBON_HORIZON; i++) { - totalFlux += cFluxes[i]; - } - double annualisedFlux = totalFlux / ModelConfig.CARBON_HORIZON; - carbonHorizonFluxNew.put(lcType, annualisedFlux); - - // Established - LandCoverTile tiles = landUseTiles.get(lcType); - double totalArea = tiles.getTotalArea(LandProtectionType.CONVERTIBLE); - if (totalArea == 0) { - carbonHorizonFluxEstablished.put(lcType, 0.0); - } else { - double totalFluxEst = 0; + carbonFluxRate.put(key, meanFlux); + + // Carbon credit rate for (int age : tiles.getAgeKeys()) { for (int i = age; i < ModelConfig.CARBON_HORIZON + age; i++) { int ageCapped = Math.min(i, ModelConfig.CARBON_WOOD_MAX_TIME - 1); - totalFluxEst += cFluxes[ageCapped] * tiles.getArea(LandProtectionType.CONVERTIBLE, age); + totalFlux += cFluxes[ageCapped] * tiles.getArea(LandProtectionType.CONVERTIBLE, age); } } - carbonHorizonFluxEstablished.put(lcType, totalFluxEst / totalArea / ModelConfig.CARBON_HORIZON); + double annualisedFlux = (totalFlux / totalArea) / ModelConfig.CARBON_HORIZON; + carbonCreditRate.put(key, annualisedFlux); + } + + // Credit rate + { + double totalFlux = 0; + for (int i = 0; i < ModelConfig.CARBON_HORIZON; i++) { + totalFlux += cFluxes[i]; + } + double annualisedFlux = totalFlux / ModelConfig.CARBON_HORIZON; + for (LandCoverType fromLc : LandCoverType.getConvertibleTypes()) { + if (!fromLc.equals(lcType)) { + LccKey lccKey = new LccKey(fromLc, lcType); + double fluxSoFar = carbonCreditRate.get(lccKey); + double updatedFlux = fluxSoFar + annualisedFlux; + carbonCreditRate.put(lccKey, updatedFlux); + } + } } } + - public void setConversionCarbonFlux(LccKey key, double cFlux) { - conversionCarbonFlux.put(key, cFlux); - } - - public void setEcosystemCarbonFlux(LandCoverType lcType, double cFlux) { - ecosystemCarbonFlux.put(lcType, cFlux); + public void setCarbonFluxRate(LccKey key, double cFlux) { + carbonFluxRate.put(key, cFlux); } - public void setCarbonHorizonFluxEstablished(LandCoverType lcType, Double cFlux) { - carbonHorizonFluxEstablished.put(lcType, cFlux); + public void setCarbonFluxRate(LandCoverType fromLc, LandCoverType toLc, double cFlux) { + carbonFluxRate.put(LccKey.createKey(fromLc, toLc), cFlux); } - public void setCarbonHorizonFluxNew(LandCoverType lcType, Double cFlux) { - carbonHorizonFluxNew.put(lcType, cFlux); - } - - public double getConversionCarbonFlux(LccKey key) { - return conversionCarbonFlux.getOrDefault(key, Double.NaN); + public void setCarbonCreditRate(LccKey lcType, double cFlux) { + carbonCreditRate.put(lcType, cFlux); } - public double getEcosystemCarbonFlux(LandCoverType lcType) { - return ecosystemCarbonFlux.getOrDefault(lcType, Double.NaN); + public void setCarbonCreditRate(LandCoverType fromLc, LandCoverType toLc, double cFlux) { + carbonCreditRate.put(LccKey.createKey(fromLc, toLc), cFlux); } - public double getCarbonHorizonFluxEstablished(LandCoverType lcType) { - return carbonHorizonFluxEstablished.getOrDefault(lcType, Double.NaN); + public double getCarbonFluxRate(LccKey key) { + return carbonFluxRate.getOrDefault(key, Double.NaN); } - public double getCarbonHorizonFluxNew(LandCoverType lcType) { - return carbonHorizonFluxNew.getOrDefault(lcType, Double.NaN); + public double getCarbonFluxRate(LandCoverType fromLc, LandCoverType toLc) { + return carbonFluxRate.getOrDefault(LccKey.createKey(fromLc, toLc), Double.NaN); } - public Map<LccKey, Double> getConversionCarbonFluxMap() { - return conversionCarbonFlux; + public double getCarbonCreditRate(LandCoverType lcType) { + return carbonCreditRate.getOrDefault(lcType, Double.NaN); } - public Map<LandCoverType, Double> getEcosystemCarbonFluxMap() { - return ecosystemCarbonFlux; + public double getCarbonCreditRate(LandCoverType fromLc, LandCoverType toLc) { + return carbonCreditRate.getOrDefault(LccKey.createKey(fromLc, toLc), Double.NaN); } - - public Map<LandCoverType, Double> getCarbonHorizonFluxEstablishedMap() { - return carbonHorizonFluxEstablished; + + public Map<LccKey, Double> getCarbonFluxRateMap() { + return carbonFluxRate; } - public Map<LandCoverType, Double> getCarbonHorizonFluxNewMap() { - return carbonHorizonFluxNew; + public Map<LccKey, Double> getCarbonCreditRateMap() { + return carbonCreditRate; } + } diff --git a/src/ac/ed/lurg/carbon/CarbonFluxReader.java b/src/ac/ed/lurg/carbon/CarbonFluxReader.java index eb319664cc7c88abe17f84a8d16946a453bc99cd..8913655e594c3d3b0597ea95c957d42709dfb6e6 100644 --- a/src/ac/ed/lurg/carbon/CarbonFluxReader.java +++ b/src/ac/ed/lurg/carbon/CarbonFluxReader.java @@ -72,7 +72,7 @@ public class CarbonFluxReader { protected void setData(RasterKey key, CarbonFluxItem item, Map<String, Double> rowValues) { Double[] fluxes = getArrayFromRowValues(rowValues); - item.calcConversionCarbonFlux(lccKey, fluxes, landUseRaster.get(key).getLandCoverTiles(), timestep); + item.calcConversionCarbonFlux(lccKey, fluxes, landUseRaster.get(key).getLandCoverTiles()); } }; @@ -89,8 +89,7 @@ public class CarbonFluxReader { if (!landUseRaster.containsKey(key)) return; - item.calcEcosystemCarbonFlux(lcType, fluxes, landUseRaster.get(key).getLandCoverTiles(), timestep); - item.calcCarbonHorizonFlux(lcType, fluxes, landUseRaster.get(key).getLandCoverTiles()); + item.calcEcosystemCarbonFlux(lcType, fluxes, landUseRaster.get(key).getLandCoverTiles()); } }; diff --git a/src/ac/ed/lurg/carbon/CarbonOptionsManager.java b/src/ac/ed/lurg/carbon/CarbonOptionsManager.java new file mode 100644 index 0000000000000000000000000000000000000000..fd3105f16f56b5432e1a95753ca31585e87789ad --- /dev/null +++ b/src/ac/ed/lurg/carbon/CarbonOptionsManager.java @@ -0,0 +1,34 @@ +package ac.ed.lurg.carbon; + +import java.io.File; +import java.util.HashMap; +import java.util.Map; + +import ac.ed.lurg.ModelConfig; +import ac.ed.lurg.types.LandCoverType; +import ac.ed.lurg.utils.LogWriter; +import ac.ed.lurg.utils.StringTabularReader; + +public class CarbonOptionsManager { + private StringTabularReader carbonOptionsReader; + + public CarbonOptionsManager() { + String fileName = ModelConfig.CARBON_OPTIONS_FILE; + carbonOptionsReader = new StringTabularReader(",", new String[]{"From", "To", "Enabled"}); + + if (new File(fileName).isFile()) + carbonOptionsReader.read(fileName); + else + LogWriter.printlnError("Can't find a carbon options file (" + fileName + ")."); + } + + public boolean isCarbonFluxEnabled(LandCoverType fromLc, LandCoverType toLc) { + Map<String, String> query = new HashMap<String, String>(); + query.put("From", fromLc.getName()); + query.put("To", toLc.getName()); + + Map<String, String> row = carbonOptionsReader.querySingle(query); + boolean isEnabled = Boolean.parseBoolean(row.get("Enabled")); + return isEnabled; + } +} diff --git a/src/ac/ed/lurg/country/AbstractCountryAgent.java b/src/ac/ed/lurg/country/AbstractCountryAgent.java index 188e841a72e4d28a2c098b08246a04c21c705ac0..390134dd2bfc6ba6a7fe9a01ba2efab365b90c7d 100644 --- a/src/ac/ed/lurg/country/AbstractCountryAgent.java +++ b/src/ac/ed/lurg/country/AbstractCountryAgent.java @@ -20,10 +20,12 @@ public abstract class AbstractCountryAgent { protected CompositeCountry country; protected Map<CropType, Double> tradeBarriers; protected Map<CommodityType, Double> currentProjectedDemand; - private Map<CropType, GlobalPrice> currentWorldPrices; + protected Map<CropType, GlobalPrice> currentWorldPrices; protected Map<CropType, CountryPrice> currentCountryPrices; private Map<CropType, CountryPrice> previousCountryPrices; private Map<CommodityType, Double> currentConsumerCommodityPrices; + protected GlobalPrice globalWoodPrice; + protected GlobalPrice globalCarbonPrice; protected CountryPrice currentCarbonPrice; protected CountryPrice currentTimberPrice; protected Timestep currentTimestep; @@ -48,7 +50,7 @@ public abstract class AbstractCountryAgent { currentTimestep = timestep; } - private void calculateCountryPrices(GlobalPrice carbonPrice, GlobalPrice timberPrice){ + private void calculateCountryPrices(){ Map<CropType, CountryPrice> countryPrices = new HashMap <CropType, CountryPrice>(); for (CropType c : CropType.getImportedTypes()) { @@ -58,8 +60,8 @@ public abstract class AbstractCountryAgent { } currentCountryPrices = countryPrices; - currentCarbonPrice = new CountryPrice(carbonPrice, 0); // no trade barriers - currentTimberPrice = new CountryPrice(timberPrice, ModelConfig.WOOD_TRADE_BARRIER); + currentCarbonPrice = new CountryPrice(globalCarbonPrice, 0); // no trade barriers + currentTimberPrice = new CountryPrice(globalWoodPrice, ModelConfig.WOOD_TRADE_BARRIER); } protected void savePreviousProducerCropPrices() { @@ -92,8 +94,10 @@ public abstract class AbstractCountryAgent { protected void calculateCountryPricesAndDemand(Map<CropType, GlobalPrice> worldPrices, GlobalPrice carbonPrice, GlobalPrice timberPrice, boolean outputGamsDemand) { LogWriter.println("\ncalculateCountryPricesAndDemand for " + country + " "+ currentTimestep.getTimestep()); currentWorldPrices = worldPrices; + globalWoodPrice = timberPrice; + globalCarbonPrice = carbonPrice; currentDemandFract = getDemandFraction(); - calculateCountryPrices(carbonPrice, timberPrice); + calculateCountryPrices(); Map<CommodityType, Double> producerPrices = getProducerCommodityPrices(); currentProjectedDemand = demandManager.getDemand(country, currentTimestep.getYear(), producerPrices, outputGamsDemand); diff --git a/src/ac/ed/lurg/country/CountryAgent.java b/src/ac/ed/lurg/country/CountryAgent.java index a89b12d41533b4bbe5f3bfbd85ef9c357c9179ff..af88f8561ca9deb3840c17a298f929c7ce6237b9 100644 --- a/src/ac/ed/lurg/country/CountryAgent.java +++ b/src/ac/ed/lurg/country/CountryAgent.java @@ -161,17 +161,7 @@ public class CountryAgent extends AbstractCountryAgent { private GamsRasterInput getGamsRasterInput(RasterSet<IrrigationItem> irrigData, YieldRaster countryYieldSurfaces, RasterSet<WoodYieldItem> woodYieldData, RasterSet<CarbonFluxItem> carbonFluxData, Map<LccKey, Double> conversionCosts) { - double allowedImportChange; - - if (ModelConfig.IS_CALIBRATION_RUN && currentTimestep.getTimestep() <= ModelConfig.END_FIRST_STAGE_CALIBRATION) { // initialisation time-step - allowedImportChange = 0.0; - } else if (ModelConfig.IS_CALIBRATION_RUN && currentTimestep.getTimestep() > ModelConfig.END_FIRST_STAGE_CALIBRATION) { - double cooldownFactor = 4 / (1 + Math.exp((currentTimestep.getTimestep() - 20) * 0.5)) + 1; - allowedImportChange = ModelConfig.MAX_IMPORT_CHANGE * cooldownFactor; // gradually decrease allowed import change - } else { // normal (not the initial) time-step - allowedImportChange = ModelConfig.MAX_IMPORT_CHANGE; // when running is calibration model calibrate (ModelConfig.IS_CALIBRATION_RUN==true) MAX_IMPORT_CHANGE is already 0. - } - + Map<CropType, TradeConstraint> importConstraints = new HashMap<CropType, TradeConstraint>(); Map<CropType, Double> currentExportRestictions = (exportRestrictions == null) ? null : exportRestrictions.get(currentTimestep.getYear()); @@ -179,20 +169,23 @@ public class CountryAgent extends AbstractCountryAgent { CropUsageData cropUsage = entry.getValue(); CropType crop = entry.getKey(); double baseTrade = cropUsage.getNetImportsExpected(); - double changeUp = 0.0; - double changeDown = 0.0; - - if (allowedImportChange > 0.0) { - double maxOfProdOrSupply = cropUsage.getProductionExpected() + Math.max(baseTrade, 0); //max of supply for food - - // max of supply overall, needed for when imports are supplying feed and change is zero to allow for production to replace imports - // CONFUSING NOT SURE IF NEEDED if (maxOfProdOrSupply == 0) maxOfProdOrSupply = Math.max(cropUsage.getNetImports() + cropUsage.getProduction() , cropUsage.getProduction()); - - changeDown = changeUp = allowedImportChange * maxOfProdOrSupply; + double changeUp = 0; + double changeDown = 0; + + // max of supply overall, needed for when imports are supplying feed and change is zero to allow for production to replace imports + double maxOfProdOrSupply = cropUsage.getProductionExpected() + Math.max(baseTrade, 0); //max of supply for food + + if (ModelConfig.IS_CALIBRATION_RUN && currentTimestep.getTimestep() <= ModelConfig.END_FIRST_STAGE_CALIBRATION) { + changeUp = changeDown = 0; + } else { + if (crop.isImportedCrop()) { + changeUp = maxOfProdOrSupply * currentWorldPrices.get(crop).getMaxImportChange(); + changeDown = maxOfProdOrSupply * currentWorldPrices.get(crop).getMaxExportChange(); + } } if (CropType.ENERGY_CROPS.equals(crop) && baseTrade == 0) { // could apply this logic for all crops? - changeDown = changeUp = allowedImportChange * currentGen2EcDemand; + changeDown = changeUp = ModelConfig.MAX_IMPORT_CHANGE * currentGen2EcDemand; } double restiction = 0; @@ -219,11 +212,12 @@ public class CountryAgent extends AbstractCountryAgent { double baseTrade = carbonUsageData.getNetCarbonImport(); double changeUp = 0.0; double changeDown = 0.0; - if (Math.abs(baseTrade) < 1e-3) { + if (Math.abs(baseTrade) < 1e-3) { // to set initial trade when starting from zero changeUp = changeDown = getCurrentCarbonDemand(); } else { - double maxOfProdOrSupply = carbonUsageData.getCarbonSequestered() + Math.max(baseTrade, 0); - changeUp = changeDown = maxOfProdOrSupply * allowedImportChange; + double maxOfProdOrSupply = carbonUsageData.getCarbonCredits() + Math.max(baseTrade, 0); + changeUp = maxOfProdOrSupply * globalCarbonPrice.getMaxImportChange(); + changeDown = maxOfProdOrSupply * globalCarbonPrice.getMaxExportChange(); } carbonTradeConstraint = new TradeConstraint(baseTrade - changeDown, baseTrade + changeUp); @@ -259,11 +253,16 @@ public class CountryAgent extends AbstractCountryAgent { baseTrade = importsNeeded > 0 ? importsNeeded : importsNeeded; } - double changeUp = 0.0; - double changeDown = 0.0; - if (allowedImportChange > 0.0) { - double maxOfProdOrSupply = woodUsage.getHarvest() + Math.max(baseTrade, 0); - changeUp = changeDown = allowedImportChange * maxOfProdOrSupply; + double changeUp; + double changeDown; + + double maxOfProdOrSupply = woodUsage.getHarvest() + Math.max(baseTrade, 0); + + if (ModelConfig.IS_CALIBRATION_RUN && currentTimestep.getTimestep() <= ModelConfig.END_FIRST_STAGE_CALIBRATION) { + changeUp = changeDown = 0; + } else { + changeUp = maxOfProdOrSupply * globalWoodPrice.getMaxImportChange(); + changeDown = maxOfProdOrSupply * globalWoodPrice.getMaxExportChange(); } woodTradeConstraints.put(woodType, new TradeConstraint(baseTrade - changeDown, baseTrade + changeUp)); diff --git a/src/ac/ed/lurg/country/CountryAgentManager.java b/src/ac/ed/lurg/country/CountryAgentManager.java index 5ee229978d8aa478d2a5f3712dd87b8b4de77802..1a4ffb3d56c4d60cc9c52a43e058746bf9be3467 100644 --- a/src/ac/ed/lurg/country/CountryAgentManager.java +++ b/src/ac/ed/lurg/country/CountryAgentManager.java @@ -155,6 +155,7 @@ public class CountryAgentManager { clusterIdRaster.putAll(ca.getYieldClusters()); } catch (Exception e) { LogWriter.printlnError("Exception processing " + ca.getCountry() + " will continue with other countries"); + LogWriter.print(e); } } @@ -163,7 +164,7 @@ public class CountryAgentManager { try { execService.shutdown(); - execService.awaitTermination(30, TimeUnit.MINUTES); + execService.awaitTermination(ModelConfig.THREAD_TIMEOUT, TimeUnit.MINUTES); } catch (InterruptedException e) { LogWriter.printlnError(e.toString()); } diff --git a/src/ac/ed/lurg/country/GlobalPrice.java b/src/ac/ed/lurg/country/GlobalPrice.java index 552ba9df53bd246e2c20fe91db650ca2a567aabb..5f031992e70debec8eb6af8c586d3b20f2294329 100644 --- a/src/ac/ed/lurg/country/GlobalPrice.java +++ b/src/ac/ed/lurg/country/GlobalPrice.java @@ -146,4 +146,24 @@ public class GlobalPrice implements Serializable { public void resetStock(Double stock) { this.stockLevel = stock; } + + public double calcTradeMaxChange(double ratio) { + if (Double.isNaN(ratio)) { + return ModelConfig.MAX_IMPORT_CHANGE; + } else { + return Math.max(Math.min(ratio * ModelConfig.IMPORT_CHANGE_GRAD_PARAM + ModelConfig.IMPORT_CHANGE_INTCP_PARAM, ModelConfig.MAX_IMPORT_CHANGE), 0); + } + } + + public double getMaxImportChange() { + if (stockLevel <= 0) { + return 0; + } else { + return calcTradeMaxChange(importAmount / exportAmountBeforeLoss); + } + } + + public double getMaxExportChange() { + return calcTradeMaxChange(exportAmountBeforeLoss/ importAmount); + } } \ No newline at end of file diff --git a/src/ac/ed/lurg/country/SubsidyRateManager.java b/src/ac/ed/lurg/country/SubsidyRateManager.java index 2b30a346e26c8c4f3e9e886b481ca059bba18675..a08428caf0e826adc9c6177f07c929fa9c8d4ec2 100644 --- a/src/ac/ed/lurg/country/SubsidyRateManager.java +++ b/src/ac/ed/lurg/country/SubsidyRateManager.java @@ -58,7 +58,7 @@ public class SubsidyRateManager { rates.put(crop, subsidy); } catch (Exception e) { - LogWriter.println("Problem finding cereal demand: " + crop.getFaoName() + ", " + c.getCountryName()); + LogWriter.println("Problem finding subsidy rates: " + crop.getFaoName() + ", " + c.getCountryName()); } } return rates; diff --git a/src/ac/ed/lurg/country/gams/GamsDemandOptimiser.java b/src/ac/ed/lurg/country/gams/GamsDemandOptimiser.java index 823bcc2153ad6c71e1262231e56777ac4ef2a15e..287a605450f876918b082459e1c55b7c854bc07a 100755 --- a/src/ac/ed/lurg/country/gams/GamsDemandOptimiser.java +++ b/src/ac/ed/lurg/country/gams/GamsDemandOptimiser.java @@ -29,6 +29,7 @@ import ac.ed.lurg.utils.LogWriter; public class GamsDemandOptimiser { private GamsDemandInput inputData; + private static final boolean DEBUG = false; public GamsDemandOptimiser(GamsDemandInput inputData) { this.inputData = inputData; diff --git a/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java b/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java index 5dc6b858601f982b081cb4b3893d1662eacf0cd2..0ad9572b1729dce38e47b6668051f4404625e3b1 100644 --- a/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java +++ b/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java @@ -52,7 +52,7 @@ import ac.ed.lurg.yield.YieldResponsesItem; public class GamsLocationOptimiser { - private static final boolean DEBUG = true; + private static final boolean DEBUG = false; private boolean saveGamsGdxFiles; private GamsLocationInput inputData; @@ -385,44 +385,27 @@ public class GamsLocationOptimiser { addScalar(inDB, "carbonHorizon", ModelConfig.CARBON_HORIZON, 5); // Carbon fluxes - GAMSParameter cFluxRateP = inDB.addParameter("carbonFluxRateLUC", 3); - GAMSParameter cFluxRateNeeP = inDB.addParameter("carbonFluxRateNEE", 2); - GAMSParameter cFluxRateHorizonNewP = inDB.addParameter("carbonFluxRateHorizonNew", 2); - GAMSParameter cFluxRateHorizonEstP = inDB.addParameter("carbonFluxRateHorizonEstablished", 2); + GAMSParameter cFluxRateP = inDB.addParameter("carbonFluxRate", 3); + GAMSParameter cFluxCreditRateP = inDB.addParameter("carbonCreditRate", 3); + for (Entry<Integer, ? extends CarbonFluxItem> entry : inputData.getCarbonFluxes().entrySet()) { Integer locationId = entry.getKey(); String locString = Integer.toString(locationId); CarbonFluxItem cFlux = entry.getValue(); - for (Map.Entry<LccKey, Double> cfEntry : cFlux.getConversionCarbonFluxMap().entrySet()) { - LccKey key = cfEntry.getKey(); - Vector<String> v = new Vector<String>(); - v.add(key.getFromLc().getName()); - v.add(key.getToLc().getName()); - v.add(locString); - setGamsParamValue(cFluxRateP.addRecord(v), cfEntry.getValue(), 2); - } - - for (Map.Entry<LandCoverType, Double> cfEntry : cFlux.getEcosystemCarbonFluxMap().entrySet()) { - Vector<String> v = new Vector<String>(); - v.add(cfEntry.getKey().getName()); - v.add(locString); - setGamsParamValue(cFluxRateNeeP.addRecord(v), cfEntry.getValue(), 3); - } - - for (Map.Entry<LandCoverType, Double> cfEntry : cFlux.getCarbonHorizonFluxNewMap().entrySet()) { - Vector<String> v = new Vector<String>(); - v.add(cfEntry.getKey().getName()); - v.add(locString); - setGamsParamValue(cFluxRateHorizonNewP.addRecord(v), cfEntry.getValue(), 3); - } - - for (Map.Entry<LandCoverType, Double> cfEntry : cFlux.getCarbonHorizonFluxEstablishedMap().entrySet()) { - Vector<String> v = new Vector<String>(); - v.add(cfEntry.getKey().getName()); - v.add(locString); - setGamsParamValue(cFluxRateHorizonEstP.addRecord(v), cfEntry.getValue(), 3); + for (LandCoverType fromLc : LandCoverType.getConvertibleTypes()) { + for (LandCoverType toLc : LandCoverType.getConvertibleTypes()) { + Vector<String> v = new Vector<String>(); + v.add(fromLc.getName()); + v.add(toLc.getName()); + v.add(locString); + setGamsParamValue(cFluxRateP.addRecord(v), cFlux.getCarbonFluxRate(fromLc, toLc), 5); + + if (ModelConfig.getCarbonOption(fromLc, toLc)) { + setGamsParamValue(cFluxCreditRateP.addRecord(v), cFlux.getCarbonCreditRate(fromLc, toLc), 5); + } + } } } @@ -644,9 +627,10 @@ public class GamsLocationOptimiser { } // Carbon - double carbonSequestered = -outDB.getParameter("netCarbonFlux").getFirstRecord().getValue(); + double carbonSequestered = -outDB.getParameter("netCarbonCredits").getFirstRecord().getValue(); double netCarbonImport = outDB.getParameter("netCarbonImport").getFirstRecord().getValue(); - CarbonUsageData carbonUsageData = new CarbonUsageData(carbonSequestered, netCarbonImport); + double netCarbonFlux = outDB.getParameter("netCarbonFlux").getFirstRecord().getValue(); + CarbonUsageData carbonUsageData = new CarbonUsageData(carbonSequestered, netCarbonImport, netCarbonFlux); GamsLocationOutput results = new GamsLocationOutput(modelStatus, landUses, cropUsageData, landCoverChanges, carbonUsageData, newWoodUsageMap); return results; diff --git a/src/ac/ed/lurg/country/gams/GamsRasterOptimiser.java b/src/ac/ed/lurg/country/gams/GamsRasterOptimiser.java index 016524d6acf004ea264b2e921f19e4b86c07ecb0..06735b8bc6d7e4268bb40945c89ce8e46c236def 100644 --- a/src/ac/ed/lurg/country/gams/GamsRasterOptimiser.java +++ b/src/ac/ed/lurg/country/gams/GamsRasterOptimiser.java @@ -292,45 +292,24 @@ public class GamsRasterOptimiser { // Aggregate carbon fluxes and wood yields if (carbonFluxItem != null) { - for (Map.Entry<LccKey, Double> cfEntry : carbonFluxItem.getConversionCarbonFluxMap().entrySet()) { - LccKey lccKey = cfEntry.getKey(); - double cFluxThisTime = cfEntry.getValue(); - double cFluxSoFar = aggCFlux.getConversionCarbonFlux(lccKey); - double areaThisTime = landUseItem.getLandCoverArea(lccKey.getFromLc()); - double areaSoFar = aggLandUse.getLandCoverArea(lccKey.getFromLc()); - double cFluxAgg = aggregateMean(cFluxSoFar, areaSoFar, cFluxThisTime, areaThisTime); - aggCFlux.setConversionCarbonFlux(lccKey, cFluxAgg); - } - - for (Map.Entry<LandCoverType, Double> cfEntry : carbonFluxItem.getEcosystemCarbonFluxMap().entrySet()) { - LandCoverType lcType = cfEntry.getKey(); - double cFluxThisTime = cfEntry.getValue(); - double cFluxSoFar = aggCFlux.getEcosystemCarbonFlux(lcType); - double areaThisTime = landUseItem.getLandCoverArea(lcType); - double areaSoFar = aggLandUse.getLandCoverArea(lcType); - double cFluxAgg = aggregateMean(cFluxSoFar, areaSoFar, cFluxThisTime, areaThisTime); - aggCFlux.setEcosystemCarbonFlux(lcType, cFluxAgg); - } - for (Map.Entry<LandCoverType, Double> cfEntry : carbonFluxItem.getCarbonHorizonFluxNewMap().entrySet()) { - LandCoverType lcType = cfEntry.getKey(); - double cFluxThisTime = cfEntry.getValue(); - double cFluxSoFar = aggCFlux.getCarbonHorizonFluxNew(lcType); - double areaThisTime = landUseItem.getLandCoverArea(lcType); - double areaSoFar = aggLandUse.getLandCoverArea(lcType); - double cFluxAgg = aggregateMean(cFluxSoFar, areaSoFar, cFluxThisTime, areaThisTime); - aggCFlux.setCarbonHorizonFluxNew(lcType, cFluxAgg); + for (LandCoverType fromLc : LandCoverType.getConvertibleTypes()) { + for (LandCoverType toLc : LandCoverType.getConvertibleTypes()) { + double areaThisTime = landUseItem.getLandCoverArea(fromLc); + double areaSoFar = aggLandUse.getLandCoverArea(toLc); + + double cFluxThisTime = carbonFluxItem.getCarbonFluxRate(fromLc, toLc); + double cFluxSoFar = aggCFlux.getCarbonFluxRate(fromLc, toLc); + double cFluxAgg = aggregateMean(cFluxSoFar, areaSoFar, cFluxThisTime, areaThisTime); + aggCFlux.setCarbonFluxRate(fromLc, toLc, cFluxAgg); + + double cCreditThisTime = carbonFluxItem.getCarbonCreditRate(fromLc, toLc); + double cCreditSoFar = aggCFlux.getCarbonCreditRate(fromLc, toLc); + double cCreditAgg = aggregateMean(cCreditSoFar, areaSoFar, cCreditThisTime, areaThisTime); + aggCFlux.setCarbonCreditRate(fromLc, toLc, cCreditAgg); + } } - for (Map.Entry<LandCoverType, Double> cfEntry : carbonFluxItem.getCarbonHorizonFluxEstablishedMap().entrySet()) { - LandCoverType lcType = cfEntry.getKey(); - double cFluxThisTime = cfEntry.getValue(); - double cFluxSoFar = aggCFlux.getCarbonHorizonFluxEstablished(lcType); - double areaThisTime = landUseItem.getLandCoverArea(lcType); - double areaSoFar = aggLandUse.getLandCoverArea(lcType); - double cFluxAgg = aggregateMean(cFluxSoFar, areaSoFar, cFluxThisTime, areaThisTime); - aggCFlux.setCarbonHorizonFluxEstablished(lcType, cFluxAgg); - } } diff --git a/src/ac/ed/lurg/forestry/WoodYieldItem.java b/src/ac/ed/lurg/forestry/WoodYieldItem.java index d4082432ae968069b4e5a2bba98683ff13a72deb..d28d30e916bf4456ecd7350b12bf1bb176e08c60 100644 --- a/src/ac/ed/lurg/forestry/WoodYieldItem.java +++ b/src/ac/ed/lurg/forestry/WoodYieldItem.java @@ -16,7 +16,8 @@ import ac.sac.raster.RasterItem; public class WoodYieldItem implements RasterItem { private Map<LccKey, Double> yield = new HashMap<LccKey, Double>(); private int optimalRotation; // Only applies to TIMBER_FOREST - private double yieldAtRotation; // Only applies to TIMBER_FOREST + private double yieldAtRotation; // Only applies to TIMBER_FOREST + private double maxYield = 0; // Yield at maximum age. Used for clustering public WoodYieldItem() {} @@ -41,6 +42,9 @@ public class WoodYieldItem implements RasterItem { this.yield.put(key, meanYield); } + + if (key.getFromLc().equals(LandCoverType.NATURAL) && key.getToLc().equals(LandCoverType.PASTURE)) + maxYield = yields[ModelConfig.CARBON_WOOD_MAX_TIME - 1]; } } @@ -97,4 +101,9 @@ public class WoodYieldItem implements RasterItem { public double getYieldAtRotation() { return yieldAtRotation; } + + public double getMaxYield() { + return maxYield; + } + } diff --git a/src/ac/ed/lurg/landuse/CarbonUsageData.java b/src/ac/ed/lurg/landuse/CarbonUsageData.java index afba11ae2569cca461c5f3c7602a02a9dc10c31e..00f052704664c385adaee0ec3a3806cdbde3932c 100644 --- a/src/ac/ed/lurg/landuse/CarbonUsageData.java +++ b/src/ac/ed/lurg/landuse/CarbonUsageData.java @@ -5,21 +5,25 @@ import java.io.Serializable; public class CarbonUsageData implements Serializable { private static final long serialVersionUID = -7324234146849230386L; - private double carbonSequestered; + private double carbonCredits; private double netCarbonImport; + private double netCarbonFlux; - public CarbonUsageData(double carbonSequestered, double netCarbonImport) { + public CarbonUsageData(double carbonCredits, double netCarbonImport, double netCarbonFlux) { super(); - this.carbonSequestered = carbonSequestered; + this.carbonCredits = carbonCredits; this.netCarbonImport = netCarbonImport; } - public double getCarbonSequestered() { - return carbonSequestered; + public double getCarbonCredits() { + return carbonCredits; } public double getNetCarbonImport() { return netCarbonImport; } - + + public double getNetCarbonFlux() { + return netCarbonFlux; + } } diff --git a/src/ac/ed/lurg/landuse/LccKey.java b/src/ac/ed/lurg/landuse/LccKey.java index 5afbadb9443a1986261ea25a65f130950a2d39cf..2253c8477eb46b39741213ee5078ba4f1ff25c3e 100644 --- a/src/ac/ed/lurg/landuse/LccKey.java +++ b/src/ac/ed/lurg/landuse/LccKey.java @@ -11,6 +11,10 @@ public class LccKey { this.fromLc = fromLc; this.toLc = toLc; } + + public static LccKey createKey(LandCoverType fromLc, LandCoverType toLc) { + return new LccKey(fromLc, toLc); + } public LandCoverType getFromLc() { return fromLc; diff --git a/src/ac/ed/lurg/yield/YieldClusterPoint.java b/src/ac/ed/lurg/yield/YieldClusterPoint.java index 159faf71abfe8f0d6718e0bd17af41b8ad401252..34814f4463f6402eaadbda6088914ba2efc4a318 100644 --- a/src/ac/ed/lurg/yield/YieldClusterPoint.java +++ b/src/ac/ed/lurg/yield/YieldClusterPoint.java @@ -47,7 +47,7 @@ public class YieldClusterPoint implements ClusteringPoint<String> { this.maizeMax = yields.getYield(YieldType.FERT_MAX_IRRIG_MAX, CropType.MAIZE); this.irrigWaterAval = (irrigItem==null) ? 0.0 :irrigItem.getIrrigConstraint(); this.protectedArea = protectedArea; - this.forestYield = (woodYields==null) ? 0.0 : woodYields.getYieldAtRotation(); + this.forestYield = (woodYields==null) ? 0.0 : woodYields.getMaxYield(); } public RasterKey getRasterKey() {