diff --git a/README.md b/README.md index e32bf50dc8..15e3931267 100644 --- a/README.md +++ b/README.md @@ -52,8 +52,9 @@ mitigation policy. * [GCAM Documentation](http://jgcri.github.io/gcam-doc/) * [Getting Started with GCAM](http://jgcri.github.io/gcam-doc/user-guide.html) -* [GCAM Community](http://www.globalchange.umd.edu/models/gcam/gcam-community/) +* [GCAM Community](https://gcims.pnnl.gov/community) * [GCAM Videos and Tutorial Slides](https://gcims.pnnl.gov/community) +* [GCAM Citation and Co-authorship Guidelines](http://jgcri.github.io/gcam-doc/community-guide.html) ## Selected Publications diff --git a/cvs/objects/build/linux/config.system b/cvs/objects/build/linux/config.system index dd96cdade3..1c3eeaac4f 100644 --- a/cvs/objects/build/linux/config.system +++ b/cvs/objects/build/linux/config.system @@ -17,6 +17,9 @@ TBB_INCLUDE = $(GCAMLIB_HOME)/include/oneapi TBB_LIB = $(GCAMLIB_HOME)/lib JAVA_INCLUDE = ${JAVA_HOME}/include JAVA_LIB = ${JAVA_HOME}/jre/lib/amd64/server +ifeq (openjdk,$(findstring openjdk,$(JAVA_HOME))) +JAVA_LIB = ${JAVA_HOME}/lib/server +endif JARS_LIB = $(GCAMLIB_HOME)/lib/jars/* ## `module load mkl/15.0.1` will get you the following variables: ifdef MLIB_CFLAGS diff --git a/cvs/objects/build/linux/configure.gcam b/cvs/objects/build/linux/configure.gcam index d10b827489..e526881a18 100644 --- a/cvs/objects/build/linux/configure.gcam +++ b/cvs/objects/build/linux/configure.gcam @@ -12,7 +12,7 @@ ifeq ($(strip $(CC)),) CC = gcc endif CXXOPTIM = -O3 -pthread -CXXDEBUG = -ggdb -DNDEBUG -DFUSION_MAX_VECTOR_SIZE=30 +CXXDEBUG = -ggdb -DNDEBUG CXXBASEOPTS = $(CXXDEBUG) ARCH_FLAGS = @@ -123,7 +123,9 @@ ifeq ($(strip $(JARS_LIB)),) $(error Unable to detect Jar lib path, please set env variable JARS_LIB) endif ## custom values set by environment variables -OSNAME_LOWERCASE := $(shell uname -s | tr '[:upper:]' '[:lower:]') +ifndef OSNAME_LOWERCASE + OSNAME_LOWERCASE := $(shell uname -s | tr '[:upper:]' '[:lower:]') +endif JAVAINC = -I$(JAVA_INCLUDE) -I$(JAVA_INCLUDE)/$(OSNAME_LOWERCASE) JAVALIB = -L$(JAVA_LIB) JAVA_RPATH = -Wl,-rpath,$(JAVA_LIB) @@ -158,7 +160,7 @@ LIBDIR = -L/usr/local/lib -L$(BUILDPATH) $(JAVALIB) $(TBB_LIBRARY) ### The rest should be mostly compiler independent ## Note $(PROF) will be set as needed if we are building the gcam-prof target CPPFLAGS = $(INCLUDE) $(ARCH_FLAGS) $(JARSLIB) -DGCAM_PARALLEL_ENABLED=$(USE_GCAM_PARALLEL) -DUSE_HECTOR=$(USE_HECTOR) $(MKL_CFLAGS) -CXXFLAGS = $(CXXOPTIM) $(CXXBASEOPTS) $(PROF) -MMD -std=$(CXXSTD) -Wno-deprecated +CXXFLAGS = $(CXXOPTIM) $(CXXBASEOPTS) $(PROF) $(CXXEXTRA) -MMD -std=$(CXXSTD) -Wno-deprecated FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(PROF) LD = $(CXX) $(PROF) LDFLAGS = $(CXXFLAGS) $(JAVA_RPATH) $(TBB_RPATH) $(MKL_LDFLAGS) diff --git a/cvs/objects/build/vc10/objects.vcxproj b/cvs/objects/build/vc10/objects.vcxproj index 5d4ffc1cb3..c5ac94a9be 100644 --- a/cvs/objects/build/vc10/objects.vcxproj +++ b/cvs/objects/build/vc10/objects.vcxproj @@ -372,7 +372,7 @@ OnlyExplicitInline true ..\..\..\..\libs\boost-lib;..\..\..\..\libs\java\include;..\..\..\..\libs\java\include\win32;..\..;..\..\climate\source\hector\headers;..\..\..\..\libs\tbb\include;..\..\..\..\libs\Eigen;%(AdditionalIncludeDirectories) - WIN32;BOOST_DATE_TIME_NO_LIB;BOOST_IOSTREAMS_NO_LIB;FUSION_MAX_VECTOR_SIZE=30;BOOST_MATH_TR1_NO_LIB;NDEBUG;EIGEN_MPL2_ONLY;GCAM_PARALLEL_ENABLED;_WINDOWS;_AFXDLL;NOGDI;NOMINMAX;JARS_LIB#"../libs/basex/BaseX.jar\x3B../libs/jars/*";%(PreprocessorDefinitions) + WIN32;BOOST_DATE_TIME_NO_LIB;BOOST_IOSTREAMS_NO_LIB;BOOST_MATH_TR1_NO_LIB;NDEBUG;EIGEN_MPL2_ONLY;GCAM_PARALLEL_ENABLED;_WINDOWS;_AFXDLL;NOGDI;NOMINMAX;JARS_LIB#"../libs/basex/BaseX.jar\x3B../libs/jars/*";%(PreprocessorDefinitions) true MultiThreadedDLL true diff --git a/cvs/objects/build/xcode3/objects.xcodeproj/project.pbxproj b/cvs/objects/build/xcode3/objects.xcodeproj/project.pbxproj index 70553b7636..168570becd 100644 --- a/cvs/objects/build/xcode3/objects.xcodeproj/project.pbxproj +++ b/cvs/objects/build/xcode3/objects.xcodeproj/project.pbxproj @@ -2519,7 +2519,6 @@ GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "JARS_LIB=\"\\\"../libs/basex/BaseX.jar:../libs/jars/*\\\"\"", - "FUSION_MAX_VECTOR_SIZE=30", ); GCC_UNROLL_LOOPS = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; @@ -2562,7 +2561,6 @@ GCC_PREPROCESSOR_DEFINITIONS = ( NDEBUG, "JARS_LIB=\"\\\"../libs/basex/BaseX.jar:../libs/jars/*\\\"\"", - "FUSION_MAX_VECTOR_SIZE=30", EIGEN_MPL2_ONLY, BOOST_IOSTREAMS_NO_LIB, ); diff --git a/cvs/objects/containers/include/national_account.h b/cvs/objects/containers/include/national_account.h index df9dac8560..45c6800146 100755 --- a/cvs/objects/containers/include/national_account.h +++ b/cvs/objects/containers/include/national_account.h @@ -112,6 +112,7 @@ class NationalAccount: public IVisitable, public IYeared, public AParsable INVESTMENT, DEPRECIATION, CAPITAL_STOCK, + CAPITAL_VALUE, CAPITAL_ENERGY_INV, CONSUMER_DURABLE_INV, GDP, diff --git a/cvs/objects/containers/source/national_account.cpp b/cvs/objects/containers/source/national_account.cpp index 673d5726d6..6c2ac8fad4 100755 --- a/cvs/objects/containers/source/national_account.cpp +++ b/cvs/objects/containers/source/national_account.cpp @@ -109,6 +109,9 @@ bool NationalAccount::XMLParse( rapidxml::xml_node* & aNode ) { else if ( nodeName == enumToXMLName( CAPITAL_STOCK ) ) { setAccount( CAPITAL_STOCK, XMLParseHelper::getValue( aNode ) ); } + else if ( nodeName == enumToXMLName( CAPITAL_VALUE ) ) { + setAccount( CAPITAL_VALUE, XMLParseHelper::getValue( aNode ) ); + } else if ( nodeName == enumToXMLName( DEPRECIATION_RATE ) ) { setAccount( DEPRECIATION_RATE, XMLParseHelper::getValue( aNode ) ); } @@ -287,6 +290,7 @@ const string& NationalAccount::enumToXMLName( const AccountType aType ) const { "investment", "depreciation", "capital-stock", + "capital-value", "energy-investment", "consumer-durable", "GDP", diff --git a/cvs/objects/containers/source/single_scenario_runner.cpp b/cvs/objects/containers/source/single_scenario_runner.cpp index de72dcd5e7..b520824bed 100644 --- a/cvs/objects/containers/source/single_scenario_runner.cpp +++ b/cvs/objects/containers/source/single_scenario_runner.cpp @@ -147,7 +147,7 @@ bool SingleScenarioRunner::setupScenarios( Timer& timer, // Add to all loggers that a new scenario is starting so that users may more // easily parse which scenario the messages pertain to. - LoggerFactory::logNewScenarioStarting( overrideName ); + LoggerFactory::getInstance()->logNewScenarioStarting( overrideName ); // Print data read in time. mainLog.setLevel( ILogger::DEBUG ); diff --git a/cvs/objects/emissions/include/aghg.h b/cvs/objects/emissions/include/aghg.h index aa8a9a8084..a18a5f8466 100644 --- a/cvs/objects/emissions/include/aghg.h +++ b/cvs/objects/emissions/include/aghg.h @@ -56,13 +56,13 @@ #include "util/base/include/value.h" #include "util/base/include/time_vector.h" #include "util/base/include/data_definition_util.h" +#include "marketplace/include/cached_market.h" // Forward declarations class IInfo; class IOutput; class ICaptureComponent; class IInput; -class CachedMarket; // Need to forward declare the subclasses as well. class CO2Emissions; @@ -208,7 +208,7 @@ class AGHG: public INamed, public IVisitable, private boost::noncopyable //! Pre-located market which has been cached from the marketplace to get the price //! of this ghg and add demands to the market. - std::unique_ptr mCachedMarket; + CachedMarket mCachedMarket; /*! * \brief XML debug output stream for derived classes diff --git a/cvs/objects/emissions/source/aghg.cpp b/cvs/objects/emissions/source/aghg.cpp index e2125f2c61..7d7529ece2 100644 --- a/cvs/objects/emissions/source/aghg.cpp +++ b/cvs/objects/emissions/source/aghg.cpp @@ -123,7 +123,13 @@ void AGHG::completeInit( const string& aRegionName, const string& aSectorName, * \param aPeriod Model period. */ void AGHG::initCalc( const string& aRegionName, const IInfo* aLocalInfo, const int aPeriod ) { - mCachedMarket = scenario->getMarketplace()->locateMarket( getName(), aRegionName, aPeriod ); + // Ideally we only need to locate the market once, however during completeInit + // all markets may have not yet been set up. So, instead we avoid re-lookups + // if the market has been found. Unfortunately, this means if the market will + // never be found we will continue to try to look it up each model period. + if(!mCachedMarket.hasLocatedMarket()) { + mCachedMarket = scenario->getMarketplace()->locateMarket( getName(), aRegionName ); + } } /*! @@ -133,9 +139,9 @@ void AGHG::initCalc( const string& aRegionName, const IInfo* aLocalInfo, const i */ void AGHG::addEmissionsToMarket( const string& aRegionName, const int aPeriod ){ // set emissions as demand side of gas market - mCachedMarket->addToDemand( getName(), aRegionName, - mEmissions[ aPeriod ], - aPeriod, false ); + mCachedMarket.addToDemand( getName(), aRegionName, + mEmissions[ aPeriod ], + aPeriod, false ); } /*! Second Method: Convert GHG tax and any storage costs into energy units using @@ -157,7 +163,7 @@ double AGHG::getGHGValue( const IInput* aInput, const string& aRegionName, const int aPeriod ) const { // Determine if there is a tax. - double ghgTax = mCachedMarket->getPrice( getName(), aRegionName, aPeriod, false ); + double ghgTax = mCachedMarket.getPrice( getName(), aRegionName, aPeriod, false ); if( ghgTax == Marketplace::NO_MARKET_PRICE ){ ghgTax = 0; } @@ -195,7 +201,7 @@ double AGHG::getGHGValue( const IOutput* aOutput, const string& aRegionName, const int aPeriod ) const { // Determine if there is a tax. - double ghgTax = mCachedMarket->getPrice( getName(), aRegionName, aPeriod, false ); + double ghgTax = mCachedMarket.getPrice( getName(), aRegionName, aPeriod, false ); if( ghgTax == Marketplace::NO_MARKET_PRICE ){ ghgTax = 0; } diff --git a/cvs/objects/emissions/source/co2_emissions.cpp b/cvs/objects/emissions/source/co2_emissions.cpp index fc58f3ce32..1b07aaa551 100644 --- a/cvs/objects/emissions/source/co2_emissions.cpp +++ b/cvs/objects/emissions/source/co2_emissions.cpp @@ -155,7 +155,7 @@ double CO2Emissions::getGHGValue( const std::string& aRegionName, double removeFraction = aSequestrationDevice ? aSequestrationDevice->getRemoveFraction( getName() ) : 0; // Get the greenhouse gas tax from the marketplace. - double GHGTax = mCachedMarket->getPrice( getName(), aRegionName, aPeriod, false ); + double GHGTax = mCachedMarket.getPrice( getName(), aRegionName, aPeriod, false ); if( GHGTax == Marketplace::NO_MARKET_PRICE ){ GHGTax = 0; diff --git a/cvs/objects/emissions/source/nonco2_emissions.cpp b/cvs/objects/emissions/source/nonco2_emissions.cpp index e48e1e75c6..9ce13d4c54 100644 --- a/cvs/objects/emissions/source/nonco2_emissions.cpp +++ b/cvs/objects/emissions/source/nonco2_emissions.cpp @@ -255,7 +255,7 @@ double NonCO2Emissions::getGHGValue( const string& aRegionName, // Conversion from teragrams (Tg=MT) of X per EJ to metric tons of X per GJ const double CVRT_Tg_per_EJ_to_Tonne_per_GJ = 1e-3; - double GHGTax = mCachedMarket->getPrice( getName(), aRegionName, aPeriod, false ); + double GHGTax = mCachedMarket.getPrice( getName(), aRegionName, aPeriod, false ); if( GHGTax == Marketplace::NO_MARKET_PRICE ){ return 0; } diff --git a/cvs/objects/functions/include/energy_input.h b/cvs/objects/functions/include/energy_input.h index e7ad84a265..508efc8cd8 100644 --- a/cvs/objects/functions/include/energy_input.h +++ b/cvs/objects/functions/include/energy_input.h @@ -50,10 +50,10 @@ #include "functions/include/minicam_input.h" #include "util/base/include/value.h" #include "util/base/include/time_vector.h" +#include "marketplace/include/cached_market.h" class Tabs; class ICoefficient; -class CachedMarket; /*! * \ingroup Objects @@ -205,7 +205,7 @@ class EnergyInput: public MiniCAMInput //! A pre-located market which has been cahced from the marketplace to get //! the price and add demands to. - std::unique_ptr mCachedMarket; + CachedMarket mCachedMarket; private: const static std::string XML_REPORTING_NAME; //!< tag name for reporting xml db diff --git a/cvs/objects/functions/source/energy_input.cpp b/cvs/objects/functions/source/energy_input.cpp index 7d19944507..094650a91c 100644 --- a/cvs/objects/functions/source/energy_input.cpp +++ b/cvs/objects/functions/source/energy_input.cpp @@ -244,7 +244,13 @@ void EnergyInput::initCalc( const string& aRegionName, mAdjustedCoefficients[ aPeriod ] = 1; } - mCachedMarket = scenario->getMarketplace()->locateMarket( mName, mMarketName, aPeriod ); + // Ideally we only need to locate the market once, however during completeInit + // all markets may have not yet been set up. So, instead we avoid re-lookups + // if the market has been found. Unfortunately, this means if the market will + // never be found we will continue to try to look it up each model period. + if(!mCachedMarket.hasLocatedMarket()) { + mCachedMarket = scenario->getMarketplace()->locateMarket( mName, mMarketName ); + } } /*! \brief Initialize the type flags. @@ -302,9 +308,9 @@ void EnergyInput::setPhysicalDemand( double aPhysicalDemand, const int aPeriod ) { mPhysicalDemand[ aPeriod ].set( aPhysicalDemand ); - mCachedMarket->addToDemand( mName, mMarketName, - mPhysicalDemand[ aPeriod ], - aPeriod, true ); + mCachedMarket.addToDemand( mName, mMarketName, + mPhysicalDemand[ aPeriod ], + aPeriod, true ); } double EnergyInput::getCoefficient( const int aPeriod ) const { @@ -328,7 +334,7 @@ double EnergyInput::getPrice( const string& aRegionName, const int aPeriod ) const { return mPriceUnitConversionFactor * - mCachedMarket->getPrice( mName, mMarketName, aPeriod ); + mCachedMarket.getPrice( mName, mMarketName, aPeriod ); } void EnergyInput::setPrice( const string& aRegionName, diff --git a/cvs/objects/functions/source/food_demand_function.cpp b/cvs/objects/functions/source/food_demand_function.cpp index ae0c039144..eacee4fd03 100644 --- a/cvs/objects/functions/source/food_demand_function.cpp +++ b/cvs/objects/functions/source/food_demand_function.cpp @@ -139,13 +139,6 @@ double FoodDemandFunction::calcDemand( InputSet& aInput, double income, const st for( size_t j = 0; j < aInput.size(); ++j ) { currDemand *= pow( adjPricesCapped[j], foodInputs[i]->calcPriceExponent( foodInputs[j], adjIncome, aRegionName, aPeriod ) ); } - if( adjPrices[i] < adjPricesCapped[i] ) { - // we have been sent negative prices, since we have capped prices - // in the demand calculations above we need to apply some penalty - // to send a signal to the solver such that the more negative a price - // becomes, the higher the demand - currDemand = SectorUtils::adjustDemandForNegativePrice( currDemand, adjPrices[i] ); - } demands[i] = currDemand; // the demand for materials is just the residual of the food demand: // q_m = x - SUM_i(w_i * q_i) @@ -174,6 +167,13 @@ double FoodDemandFunction::calcDemand( InputSet& aInput, double income, const st // point, the inputs will take care of converting to Pcal / year as // is expected in the supply sectors. for( size_t i = 0; i < aInput.size(); ++i ) { + if( adjPrices[i] < adjPricesCapped[i] ) { + // we have been sent negative prices, since we have capped prices + // in the demand calculations above we need to apply some penalty + // to send a signal to the solver such that the more negative a price + // becomes, the higher the demand + demands[i] = SectorUtils::adjustDemandForNegativePrice( demands[i], adjPrices[i] ); + } foodInputs[i]->setPhysicalDemand( demands[i], aRegionName, aPeriod ); foodInputs[i]->setActualShare( alphaActual[i], aRegionName, aPeriod ); } diff --git a/cvs/objects/functions/source/function_utils.cpp b/cvs/objects/functions/source/function_utils.cpp index 17f5ee608a..a2fb85507e 100644 --- a/cvs/objects/functions/source/function_utils.cpp +++ b/cvs/objects/functions/source/function_utils.cpp @@ -128,7 +128,7 @@ double FunctionUtils::DEFLATOR_1975_PER_DEFLATOR_2005( void ) //! Function to return 1990 to 1975 US $ deflator. double FunctionUtils::DEFLATOR_1990_PER_DEFLATOR_1975( void ) { - return 2.212; // Ratio of 1990/1975 deflators + return 2.129; // Ratio of 1990/1975 deflators } //! Function to return kWh to GJ conversion. diff --git a/cvs/objects/functions/source/nested_ces_production_function_macro.cpp b/cvs/objects/functions/source/nested_ces_production_function_macro.cpp index 91dda08b97..f77b367c4c 100755 --- a/cvs/objects/functions/source/nested_ces_production_function_macro.cpp +++ b/cvs/objects/functions/source/nested_ces_production_function_macro.cpp @@ -318,25 +318,23 @@ double NestedCESProductionFunctionMacro::calcGrossOutput( const string& aRegionN double grossOutput = aNationalAccount->getAccountValue(NationalAccount::GROSS_OUTPUT); // calcualte value shares - // Note: in principle the energy value and quantity could be different but given - // energy the Q is just a service index weighted by prices these are indeed the same - double energyV = energyQ; double laborV = aNationalAccount->getAccountValue(NationalAccount::LABOR_WAGES); + double capitalV = aNationalAccount->getAccountValue(NationalAccount::CAPITAL_VALUE); - double shareE = energyV / grossOutput; + double shareK = capitalV / grossOutput; double shareL = laborV / grossOutput; - double shareK = (1.0 - shareE - shareL); + double shareE = (1.0 - shareK - shareL); // Given the energy value is being pulled out of GCAM without adjustment - // there is a chance for inconsistency and send the remaining value (which is - // all attributed to capital) to <= zero. Instead we will enforce a minimum - // capital share and adjust both labor and energy to make up for the shortfall - const double MIN_CAPITAL_SHARE = 0.05; - if(shareK < MIN_CAPITAL_SHARE) { - double shareAdj = MIN_CAPITAL_SHARE - shareK; + // there is a chance for inconsistency and send the remaining value to <= zero. + // Instead we will enforce a minimum energy share and adjust both labor and capital + // to make up for the shortfall + const double MIN_SLACK_SHARE = 0.05; + if(shareE < MIN_SLACK_SHARE) { + double shareAdj = (1.0 - MIN_SLACK_SHARE) / (shareK + shareL); // adjust labor and energy uniformily to meet the minimum threshold - shareE -= shareAdj / 2.0; - shareL -= shareAdj / 2.0; - shareK = MIN_CAPITAL_SHARE; + shareK *= shareAdj; + shareL *= shareAdj; + shareE = MIN_SLACK_SHARE; } // calibrate and store scalers diff --git a/cvs/objects/java/source/WriteLocalBaseXDB.java b/cvs/objects/java/source/WriteLocalBaseXDB.java index e7a8f3ef0c..493932c7f4 100644 --- a/cvs/objects/java/source/WriteLocalBaseXDB.java +++ b/cvs/objects/java/source/WriteLocalBaseXDB.java @@ -54,34 +54,34 @@ public class WriteLocalBaseXDB implements Runnable { /** * The database context needed to run commands on the DB. */ - private Context mContext = null; + protected Context mContext = null; /** * The thread on which writing to the DB will take place. */ - private final Thread mWorkerThread = new Thread( this ); + protected final Thread mWorkerThread = new Thread( this ); /** * The command which executes adding the XML to the database. * We keep a reference here in case we need to cancel the * command incase something went wrong. */ - private Add mAddCommand = null; + protected Add mAddCommand = null; /** * The stream that will transfer the XML read from GCAM and write it to the DB. */ - private final PipedInputStream mWriteToDBStream = new PipedInputStream( XMLDBDriver.BUFFER_SIZE ); + protected final PipedInputStream mWriteToDBStream = new PipedInputStream( XMLDBDriver.BUFFER_SIZE ); /** * The location of the database to write the XML to. */ - private final String mDBLocation; + protected final String mDBLocation; /** * A unique name to call the document to be added into the DB. */ - private final String mDocName; + protected final String mDocName; /** * Constructor which will open the DB and get ready to receive XML to put @@ -140,7 +140,7 @@ public Context getContext() { * attempting to write to a DB which appears to be open. A * negative value indicates to wait indefinately. */ - private void openDB( final boolean aInMemoryDB, final int aOpenDBWait ) throws Exception { + protected void openDB( final boolean aInMemoryDB, final int aOpenDBWait ) throws Exception { // We need to seperate the path to the DB and the container name (last name in the path) File dbLocationFile = new File( mDBLocation ).getAbsoluteFile(); // The path may be a relative path so we must convert it to absolute here. diff --git a/cvs/objects/java/source/WriteRemoteBaseXDB.java b/cvs/objects/java/source/WriteRemoteBaseXDB.java new file mode 100644 index 0000000000..3b71987d80 --- /dev/null +++ b/cvs/objects/java/source/WriteRemoteBaseXDB.java @@ -0,0 +1,142 @@ +/* +* LEGAL NOTICE +* This computer software was prepared by Battelle Memorial Institute, +* hereinafter the Contractor, under Contract No. DE-AC05-76RL0 1830 +* with the Department of Energy (DOE). NEITHER THE GOVERNMENT NOR THE +* CONTRACTOR MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY +* LIABILITY FOR THE USE OF THIS SOFTWARE. This notice including this +* sentence must appear on any copies of this computer software. +* +* EXPORT CONTROL +* User agrees that the Software will not be shipped, transferred or +* exported into any country or used in any manner prohibited by the +* United States Export Administration Act or any other applicable +* export laws, restrictions or regulations (collectively the "Export Laws"). +* Export of the Software may require some form of license or other +* authority from the U.S. Government, and failure to obtain such +* export control license may result in criminal liability under +* U.S. laws. In addition, if the Software is identified as export controlled +* items under the Export Laws, User represents and warrants that User +* is not a citizen, or otherwise located within, an embargoed nation +* (including without limitation Iran, Syria, Sudan, Cuba, and North Korea) +* and that User is not otherwise prohibited +* under the Export Laws from receiving the Software. +* +* Copyright 2011 Battelle Memorial Institute. All Rights Reserved. +* Distributed as open-source under the terms of the Educational Community +* License version 2.0 (ECL 2.0). http://www.opensource.org/licenses/ecl2.php +* +* For further details, see: http://www.globalchange.umd.edu/models/gcam/ +* +*/ + +import java.io.PipedOutputStream; +import java.io.PipedInputStream; +import java.io.IOException; +import java.io.File; +import java.net.URI; + +import org.basex.core.Context; +import org.basex.core.cmd.Check; +import org.basex.core.cmd.Add; +import org.basex.core.StaticOptions; +import org.basex.api.client.ClientSession; + +/** + * A helper class which gives GCAM a simple interface for adding or appending + * XML to a remote BaseX database. The XMLDBDriver will set up the interactions + * and notify when to close as results may be filtered before reaching the database + * and run queries after GCAM has cleaned up the Scenario. + * @author Pralit Patel + */ +public class WriteRemoteBaseXDB extends WriteLocalBaseXDB { + + /** + * The Session connected to the remote server. + */ + ClientSession mSession; + + /** + * Constructor which will open the DB and get ready to receive XML to put + * into the DB. + * @param aDBLocation The URI location of the database to open of the format + * {@code basex://:@:/} + * @param aDocName A unique document name to use to store the XML in the DB. + * @param aInMemoryDB This option is ignored for remote DB as it will be controlled + * entirely by the server's configuration. + * @param aOpenDBWait This option is ignored for remote DB as it will be controlled + * entirely by the server's configuration. + */ + public WriteRemoteBaseXDB( final String aURIStr, final String aDocName, + final boolean aInMemoryDB, final int aOpenDBWait ) throws Exception + { + super(aURIStr, aDocName, false, 0); + } + + /** + * Opens a Client Session to the remote database. We will "Check" the database which + * will open it if it already exists or create a new one otherwise. + * @param aInMemoryDB This option is ignored for remote DB as it will be controlled + * entirely by the server's configuration. + * @param aOpenDBWait This option is ignored for remote DB as it will be controlled + * entirely by the server's configuration. + */ + protected void openDB( final boolean aInMemoryDB, final int aOpenDBWait ) throws Exception { + // we are expecting the DB location to be a URI of format: + // basex://:@:/ + URI xmldbURI = new URI(getDBLocation()); + + String auth = xmldbURI.getUserInfo(); + String[] authSplit = auth.split(":"); + String mUserName = authSplit[0]; + String mPassword = authSplit[1]; + String mHostName = xmldbURI.getHost(); + int mPortNumber = xmldbURI.getPort(); + String dbLocation = xmldbURI.getPath(); + + // establish the ClientSession + StaticOptions options = new StaticOptions(true); + options.set(StaticOptions.HOST, mHostName); + options.set(StaticOptions.PORT, mPortNumber); + options.set(StaticOptions.USER, mUserName); + options.set(StaticOptions.PASSWORD, mPassword); + mContext = new Context(options); + mSession = new ClientSession(mHostName, mPortNumber, mUserName, mPassword); + + + // "Check" that the DB is open in the remote session + mSession.execute(new Check( dbLocation )); + } + + public void run() { + try { + // start "adding" XML data + mSession.add(mDocName, mWriteToDBStream); + } + catch( Exception error ) { + error.printStackTrace(); + } + finally { + try { + mWriteToDBStream.close(); + } + catch( IOException ioError ) { + // ignore + } + } + } + public void close() { + try { + // close the database + if( mContext != null ) { + mSession.close(); + mSession = null; + mContext = null; + } + } + catch( Exception error ) { + error.printStackTrace(); + } + } +} + diff --git a/cvs/objects/java/source/XMLDBDriver.java b/cvs/objects/java/source/XMLDBDriver.java index 46d74aaf76..20ae9a93a4 100644 --- a/cvs/objects/java/source/XMLDBDriver.java +++ b/cvs/objects/java/source/XMLDBDriver.java @@ -105,7 +105,9 @@ public XMLDBDriver( final String aDBLocation, final String aDocName ) { // always open the database optionally in memory (off by default) boolean inMemDB = Boolean.parseBoolean( config.getProperty( "in-memory", "false" ) ); int openDBWait = Integer.parseInt( config.getProperty( "open-db-wait", "-1" ) ); - mWriteDB = new WriteLocalBaseXDB( aDBLocation, aDocName, inMemDB, openDBWait ); + mWriteDB = aDBLocation.startsWith("basex://") ? + new WriteRemoteBaseXDB( aDBLocation, aDocName, inMemDB, openDBWait ) : + new WriteLocalBaseXDB( aDBLocation, aDocName, inMemDB, openDBWait ); // optionally filter output using an XSLT style script (off by default) String filterScript = config.getProperty( "filter-script", "" ); diff --git a/cvs/objects/marketplace/include/cached_market.h b/cvs/objects/marketplace/include/cached_market.h index d039684d7e..a429b650fa 100644 --- a/cvs/objects/marketplace/include/cached_market.h +++ b/cvs/objects/marketplace/include/cached_market.h @@ -46,7 +46,7 @@ #include -class Market; +class MarketContainer; class IInfo; class Value; @@ -70,8 +70,11 @@ class Value; class CachedMarket { public: - CachedMarket( const std::string& aGoodName, const std::string& aRegionName, const int aPeriod, Market* aLocatedMarket ); + CachedMarket(); + CachedMarket( const std::string& aGoodName, const std::string& aRegionName, MarketContainer* aLocatedMarket ); ~CachedMarket(); + + bool hasLocatedMarket() { return mCachedMarket; } void setPrice( const std::string& aGoodName, const std::string& aRegionName, const double aValue, const int aPeriod, bool aMustExist = true ); @@ -103,12 +106,9 @@ class CachedMarket //! The region name used when this market was located. Used for debugging. const std::string mRegionName; - - //! The period used when this market was located. Used for debugging. - const int mPeriod; #endif //! The actual market which is cached. - Market* mCachedMarket; + MarketContainer* mCachedMarket; }; #endif // _CACHED_MARKET_H_ diff --git a/cvs/objects/marketplace/include/marketplace.h b/cvs/objects/marketplace/include/marketplace.h index 25820e9477..1525de19e7 100644 --- a/cvs/objects/marketplace/include/marketplace.h +++ b/cvs/objects/marketplace/include/marketplace.h @@ -182,8 +182,7 @@ class Marketplace: public IVisitable, private boost::noncopyable IInfo* getMarketInfo( const std::string& aGoodName, const std::string& aRegionName, const int aPeriod, const bool aMustExist ); - std::unique_ptr locateMarket( const std::string& aGoodName, const std::string& aRegionName, - const int aPeriod ) const; + CachedMarket locateMarket( const std::string& aGoodName, const std::string& aRegionName ) const; void accept( IVisitor* aVisitor, const int aPeriod ) const; diff --git a/cvs/objects/marketplace/source/cached_market.cpp b/cvs/objects/marketplace/source/cached_market.cpp index 35aa932e85..8c79f46cb2 100644 --- a/cvs/objects/marketplace/source/cached_market.cpp +++ b/cvs/objects/marketplace/source/cached_market.cpp @@ -42,6 +42,7 @@ #include "marketplace/include/cached_market.h" #include "marketplace/include/market.h" +#include "marketplace/include/market_container.h" #include "util/logger/include/ilogger.h" #include "util/base/include/util.h" #include "marketplace/include/marketplace.h" @@ -51,21 +52,26 @@ using namespace std; extern Scenario* scenario; +/*! + * \brief Default constructor. The cached market will be initialized as not found. + */ +CachedMarket::CachedMarket():mCachedMarket(0) +{ +} + /*! * \brief Constructor which takes the parameters used to locate the given market. * \param aGoodName The good name used to locate aLocatedMarket. Stored for debugging. - * \param aGoodName The region name used to locate aLocatedMarket. Stored for debugging. - * \param aGoodName The period used to locate aLocatedMarket. Stored for debugging. + * \param aRegionName The region name used to locate aLocatedMarket. Stored for debugging. * \param aLocatedMarket A pointer to the actual market which was located. Note that this * parameter can be null which indicates the market was not found. */ -CachedMarket::CachedMarket( const string& aGoodName, const string& aRegionName, const int aPeriod, - Market* aLocatedMarket ) +CachedMarket::CachedMarket( const string& aGoodName, const string& aRegionName, + MarketContainer* aLocatedMarket ) : #ifndef NDEBUG mGoodName( aGoodName ), mRegionName( aRegionName ), -mPeriod( aPeriod ), #endif mCachedMarket( aLocatedMarket ) { @@ -100,11 +106,6 @@ void CachedMarket::setPrice( const string& aGoodName, const string& aRegionName, */ assert( aRegionName == mRegionName ); - /*! - * \invariant The given period matches the one that was used when locating this market. - */ - assert( aPeriod == mPeriod ); - // Print a warning message if the new price is not a finite number. if ( !util::isValidNumber( aValue ) ) { ILogger& mainLog = ILogger::getLogger( "main_log" ); @@ -114,7 +115,7 @@ void CachedMarket::setPrice( const string& aGoodName, const string& aRegionName, } if ( mCachedMarket ) { - mCachedMarket->setPrice( aValue ); + mCachedMarket->getMarket( aPeriod )->setPrice( aValue ); } else if( aMustExist ){ ILogger& mainLog = ILogger::getLogger( "main_log" ); @@ -147,11 +148,6 @@ void CachedMarket::addToSupply( const string& aGoodName, const string& aRegionNa */ assert( aRegionName == mRegionName ); - /*! - * \invariant The given period matches the one that was used when locating this market. - */ - assert( aPeriod == mPeriod ); - // Print a warning message when adding infinity values to the supply. if ( !util::isValidNumber( aValue ) ) { ILogger& mainLog = ILogger::getLogger( "main_log" ); @@ -161,7 +157,7 @@ void CachedMarket::addToSupply( const string& aGoodName, const string& aRegionNa } if ( mCachedMarket ) { - mCachedMarket->addToSupply( scenario->getMarketplace()->mIsDerivativeCalc ? + mCachedMarket->getMarket( aPeriod )->addToSupply( scenario->getMarketplace()->mIsDerivativeCalc ? aValue.getDiff() : aValue.get() ); } else if( aMustExist ){ @@ -209,7 +205,7 @@ void CachedMarket::addToDemand( const string& aGoodName, const string& aRegionNa } if ( mCachedMarket ) { - mCachedMarket->addToDemand( scenario->getMarketplace()->mIsDerivativeCalc ? + mCachedMarket->getMarket( aPeriod )->addToDemand( scenario->getMarketplace()->mIsDerivativeCalc ? aValue.getDiff() : aValue.get() ); } else if( aMustExist ){ @@ -248,7 +244,7 @@ double CachedMarket::getPrice( const string& aGoodName, const string& aRegionNam assert( aPeriod == mPeriod ); if( mCachedMarket ) { - return mCachedMarket->getPrice(); + return mCachedMarket->getMarket( aPeriod )->getPrice(); } if( aMustExist ) { @@ -287,7 +283,7 @@ double CachedMarket::getSupply( const string& aGoodName, const string& aRegionNa assert( aPeriod == mPeriod ); if ( mCachedMarket ) { - return mCachedMarket->getSupply(); + return mCachedMarket->getMarket( aPeriod )->getSupply(); } ILogger& mainLog = ILogger::getLogger( "main_log" ); @@ -323,7 +319,7 @@ double CachedMarket::getDemand( const string& aGoodName, const string& aRegionN assert( aPeriod == mPeriod ); if ( mCachedMarket ) { - return mCachedMarket->getDemand(); + return mCachedMarket->getMarket( aPeriod )->getDemand(); } ILogger& mainLog = ILogger::getLogger( "main_log" ); @@ -367,7 +363,7 @@ const IInfo* CachedMarket::getMarketInfo( const string& aGoodName, const string& const IInfo* info = 0; if ( mCachedMarket ) { - info = mCachedMarket->getMarketInfo(); + info = mCachedMarket->getMarket( aPeriod )->getMarketInfo(); /*! \invariant The market is required to return an information object * that is non-null. */ @@ -419,7 +415,7 @@ IInfo* CachedMarket::getMarketInfo( const string& aGoodName, const string& aRegi IInfo* info = 0; if ( mCachedMarket ) { - info = mCachedMarket->getMarketInfo(); + info = mCachedMarket->getMarket( aPeriod )->getMarketInfo(); /*! \invariant The market is required to return an information object * that is non-null. */ diff --git a/cvs/objects/marketplace/source/marketplace.cpp b/cvs/objects/marketplace/source/marketplace.cpp index 98a98cbc8a..0c13a909da 100644 --- a/cvs/objects/marketplace/source/marketplace.cpp +++ b/cvs/objects/marketplace/source/marketplace.cpp @@ -850,18 +850,16 @@ IInfo* Marketplace::getMarketInfo( const string& aGoodName, const string& aRegio * same behavior as the equivalent method in this class. * \param aGoodName The good of the market to locate. * \param aRegionName The region of the market to locate. - * \param aPeriod The period for which to locate. * \return A CachedMarket object which wraps the requested market. This will always * be a valid object regardless of if the market was not found. * \see CachedMarket */ -unique_ptr Marketplace::locateMarket( const string& aGoodName, const string& aRegionName, - const int aPeriod ) const +CachedMarket Marketplace::locateMarket( const string& aGoodName, const string& aRegionName ) const { const int marketNumber = mMarketLocator->getMarketNumber( aRegionName, aGoodName ); - unique_ptr locatedMarket( new CachedMarket( aGoodName, aRegionName, aPeriod, - marketNumber != MarketLocator::MARKET_NOT_FOUND ? - mMarkets[ marketNumber ]->getMarket( aPeriod ) : 0 ) ); + CachedMarket locatedMarket( aGoodName, aRegionName, + marketNumber != MarketLocator::MARKET_NOT_FOUND ? + mMarkets[ marketNumber ] : 0 ); return locatedMarket; } diff --git a/cvs/objects/reporting/source/xml_db_outputter.cpp b/cvs/objects/reporting/source/xml_db_outputter.cpp index 042f18b65c..9241d52637 100644 --- a/cvs/objects/reporting/source/xml_db_outputter.cpp +++ b/cvs/objects/reporting/source/xml_db_outputter.cpp @@ -1791,14 +1791,6 @@ void XMLDBOutputter::startVisitNationalAccount( const NationalAccount* aNational attrs[ "name" ] = aNationalAccount->enumToXMLName(NationalAccount::CONSUMER_DURABLE_INV); XMLWriteElementWithAttributes( currValue, "account", mBuffer, mTabs.get(), attrs ); - currValue = aNationalAccount->getAccountValue( NationalAccount::GDP_PER_CAPITA ); - attrs[ "name" ] = aNationalAccount->enumToXMLName(NationalAccount::GDP_PER_CAPITA); - XMLWriteElementWithAttributes( currValue, "account", mBuffer, mTabs.get(), attrs ); - - currValue = aNationalAccount->getAccountValue( NationalAccount::GDP_PER_CAPITA_PPP ); - attrs[ "name" ] = aNationalAccount->enumToXMLName(NationalAccount::GDP_PER_CAPITA_PPP); - XMLWriteElementWithAttributes( currValue, "account", mBuffer, mTabs.get(), attrs ); - currValue = aNationalAccount->getAccountValue( NationalAccount::VALUE_ADDED ); attrs[ "name" ] = aNationalAccount->enumToXMLName(NationalAccount::VALUE_ADDED); XMLWriteElementWithAttributes( currValue, "account", mBuffer, mTabs.get(), attrs ); @@ -1844,7 +1836,17 @@ void XMLDBOutputter::startVisitNationalAccount( const NationalAccount* aNational attrs[ "name" ] = aNationalAccount->enumToXMLName(NationalAccount::LABOR_WAGES); XMLWriteElementWithAttributes( currValue, "account", mBuffer, mTabs.get(), attrs ); - attrs[ "unit" ] = "mil pers"; + // per cap values have different units + attrs[ "unit" ] = "thous 1990$ percap"; + currValue = aNationalAccount->getAccountValue( NationalAccount::GDP_PER_CAPITA ); + attrs[ "name" ] = aNationalAccount->enumToXMLName(NationalAccount::GDP_PER_CAPITA); + XMLWriteElementWithAttributes( currValue, "account", mBuffer, mTabs.get(), attrs ); + + currValue = aNationalAccount->getAccountValue( NationalAccount::GDP_PER_CAPITA_PPP ); + attrs[ "name" ] = aNationalAccount->enumToXMLName(NationalAccount::GDP_PER_CAPITA_PPP); + XMLWriteElementWithAttributes( currValue, "account", mBuffer, mTabs.get(), attrs ); + + attrs[ "unit" ] = "thous pers"; // labor force in persons currValue = aNationalAccount->getAccountValue( NationalAccount::LABOR_FORCE ); attrs[ "name" ] = aNationalAccount->enumToXMLName(NationalAccount::LABOR_FORCE); diff --git a/cvs/objects/solution/solvers/source/logbroyden.cpp b/cvs/objects/solution/solvers/source/logbroyden.cpp index 1b82e2d171..bf08ad03f5 100644 --- a/cvs/objects/solution/solvers/source/logbroyden.cpp +++ b/cvs/objects/solution/solvers/source/logbroyden.cpp @@ -682,9 +682,9 @@ int LogBroyden::bsolve(VecFVec &F, UBVECTOR &x, UBVECTOR &fx, // to use fresh partial derivatives for *just* the unsolved markets as we may // be in a situation that those markets are bouncing between vastly different // derivatives - // set the threshold at roughly 3% of the markets are left unsolved + // set the threshold at roughly 20% of the markets are left unsolved // which is just some arbitrary threshold - const int UNSOLVED_FULL_PARTIAL_THRESHOLD = 30; + const int UNSOLVED_FULL_PARTIAL_THRESHOLD = 5; if((unsolved.size()*UNSOLVED_FULL_PARTIAL_THRESHOLD) < ncol) { fdjac(F, xnew, fxnew, B, unsolved, true); } diff --git a/cvs/objects/technologies/include/primary_output.h b/cvs/objects/technologies/include/primary_output.h index bd9de0d41d..26c5896ad6 100644 --- a/cvs/objects/technologies/include/primary_output.h +++ b/cvs/objects/technologies/include/primary_output.h @@ -47,11 +47,11 @@ #include class Tabs; -class CachedMarket; #include "technologies/include/ioutput.h" #include "util/base/include/value.h" #include "util/base/include/time_vector.h" +#include "marketplace/include/cached_market.h" /*! * \ingroup Objects @@ -175,7 +175,7 @@ class PrimaryOutput : public IOutput { ) //! A pre-located market which has been cached from the marketplace to add supply to. - std::unique_ptr mCachedMarket; + CachedMarket mCachedMarket; void copy( const PrimaryOutput& aOther ); }; diff --git a/cvs/objects/technologies/source/ag_storage_technology.cpp b/cvs/objects/technologies/source/ag_storage_technology.cpp index c03d1059b9..f80fb93e6c 100644 --- a/cvs/objects/technologies/source/ag_storage_technology.cpp +++ b/cvs/objects/technologies/source/ag_storage_technology.cpp @@ -103,15 +103,24 @@ void AgStorageTechnology::completeInit(const string& aRegionName, Technology::completeInit(aRegionName, aSectorName, aSubsectorName, aSubsectorInfo, aLandAllocator); - // The AgStorageTechnology should not have any vintaging. All vintaging should be - // in the associated pass-through sector + // AgStorageTechnology should have a lifetime just long enough to last two model periods, double + // check that now const Modeltime* modeltime = scenario->getModeltime(); - if (mYear < modeltime->getEndYear()) { const int period = modeltime->getyr_to_per(mYear); - int minLifetime = modeltime->gettimestep(period + 1); //check this - int maxLifetime = modeltime->gettimestep(period + 1) + modeltime->gettimestep(period + 2); //check this - + const int prevYear = period == 0 ? + (mYear - modeltime->gettimestep(period)) : modeltime->getper_to_yr(period - 1); + const int nextYear = (period+1) == modeltime->getmaxper() ? + (mYear + modeltime->gettimestep(period)) : modeltime->getper_to_yr(period+1); + if(mLifetimeYears != (nextYear - prevYear)) { + ILogger& mainLog = ILogger::getLogger("main_log"); + mainLog.setLevel(ILogger::SEVERE); + mainLog << "Lifetime for " << getXMLNameStatic() + << " must last exatly 2 periods, instead has lifetime: " + << mLifetimeYears << " in " << aRegionName << ", " << aSectorName + << ", " << mName << " year " << mYear << endl; + abort(); + } } } @@ -273,9 +282,12 @@ void AgStorageTechnology::calcCost(const string& aRegionName, const int aPeriod) { // we didn't want the price signal to consumption to change due to storage - // so we need to re-inflate the price here + // so we need to reset it to one here + double origCoef = mInputs[0]->getCoefficient(aPeriod); + mInputs[0]->setCoefficient(1.0, aPeriod); Technology::calcCost(aRegionName, aSectorName, aPeriod); - mCosts[aPeriod] /= mInputs[0]->getCoefficient(aPeriod); + // restore the previous value in case it is needed + mInputs[0]->setCoefficient(origCoef, aPeriod); } //! write object to xml output stream diff --git a/cvs/objects/technologies/source/primary_output.cpp b/cvs/objects/technologies/source/primary_output.cpp index f375ee1afa..51dbf1d980 100644 --- a/cvs/objects/technologies/source/primary_output.cpp +++ b/cvs/objects/technologies/source/primary_output.cpp @@ -138,7 +138,13 @@ void PrimaryOutput::initCalc( const string& aRegionName, // Initialize the cached CO2 coefficient. mCachedCO2Coef.set( FunctionUtils::getCO2Coef( aRegionName, aSectorName, aPeriod ) ); - mCachedMarket = scenario->getMarketplace()->locateMarket( mName, aRegionName, aPeriod ); + // Ideally we only need to locate the market once, however during completeInit + // all markets may have not yet been set up. So, instead we avoid re-lookups + // if the market has been found. Unfortunately, this means if the market will + // never be found we will continue to try to look it up each model period. + if(!mCachedMarket.hasLocatedMarket()) { + mCachedMarket = scenario->getMarketplace()->locateMarket( mName, aRegionName ); + } } void PrimaryOutput::postCalc( const string& aRegionName, @@ -173,7 +179,7 @@ void PrimaryOutput::setPhysicalOutput( const double aPrimaryOutput, mPhysicalOutputs[ aPeriod ] = aPrimaryOutput; // Add the primary output to the marketplace. - mCachedMarket->addToSupply( mName, aRegionName, mPhysicalOutputs[ aPeriod ], aPeriod, false ); + mCachedMarket.addToSupply( mName, aRegionName, mPhysicalOutputs[ aPeriod ], aPeriod, false ); } double PrimaryOutput::getPhysicalOutput( const int aPeriod ) const { @@ -193,7 +199,7 @@ double PrimaryOutput::getValue( const string& aRegionName, } string PrimaryOutput::getOutputUnits( const string& aRegionName ) const { - return scenario->getMarketplace()->getMarketInfo( getName(), aRegionName, 0, true ) + return mCachedMarket.getMarketInfo( getName(), aRegionName, 0, true ) ->getString( "output-unit", false ); } diff --git a/cvs/objects/technologies/source/production_state_factory.cpp b/cvs/objects/technologies/source/production_state_factory.cpp index 3edfd50a3c..4a132b78bf 100644 --- a/cvs/objects/technologies/source/production_state_factory.cpp +++ b/cvs/objects/technologies/source/production_state_factory.cpp @@ -85,7 +85,10 @@ unique_ptr ProductionStateFactory::create( const int aInvestYe { // Initialize the production state. unique_ptr newState; - int currYear = scenario->getModeltime()->getper_to_yr( aPeriod ); + const Modeltime* modeltime = scenario->getModeltime(); + int currYear = modeltime->getper_to_yr( aPeriod ); + int investPer = modeltime->getyr_to_per(aInvestYear); + int investTimeStep = modeltime->gettimestep(investPer); if( aInvestYear == currYear ){ // If the new vintage has fixed output use a fixed output production @@ -102,7 +105,7 @@ unique_ptr ProductionStateFactory::create( const int aInvestYe } // Check if it is a still operating vintage. else if( ( currYear > aInvestYear ) && - ( aInvestYear + aLifetimeYears > currYear ) ){ + ( (aInvestYear + aLifetimeYears - investTimeStep) >= currYear ) ){ assert( aPeriod > 0 ); newState.reset( new VintageProductionState ); // Set the base level of output to the output in the initial investment diff --git a/cvs/objects/technologies/source/technology.cpp b/cvs/objects/technologies/source/technology.cpp index 07a3d639b3..cfb7a90b21 100644 --- a/cvs/objects/technologies/source/technology.cpp +++ b/cvs/objects/technologies/source/technology.cpp @@ -286,35 +286,6 @@ void Technology::completeInit( const string& aRegionName, // need to acccess those TechVintageVector for any reason then they will be able to. initTechVintageVector(); - // Check if both the original MiniCAM non-energy-input and the new input-capital - // are in the vector. If so, eliminate the non-energy-input and use input-capital - // only so that non-energy costs are not double accounted. - // Does not check for fixed and variable O&M, however. - vector::iterator iterNonEnergy = mInputs.end(); - vector::iterator iterCapital = mInputs.end(); - - // First look for input-capital since most technologies will have non-energy-input. - for( vector::iterator iter = mInputs.begin(); iter != mInputs.end(); ++iter ) { - // Cannot use hasTypeFlag() as both have same type. - if( ( *iter )->isSameType( InputCapital::getXMLNameStatic() ) ){ - iterCapital = iter; - } - } - // Only look for non-energy-input iterator if input-capital iterator is found. - if( iterCapital != mInputs.end() ){ - for( vector::iterator iter = mInputs.begin(); iter != mInputs.end(); ++iter ) { - // Cannot use hasTypeFlag() as both have same type. - if( ( *iter )->isSameType( NonEnergyInput::getXMLNameStatic() ) ){ - iterNonEnergy = iter; - } - } - } - // If both are found, then eliminate the orginal non-energy-input since the - // more detailed levelized capital calculation is intended to be used. - //if( iterNonEnergy != mInputs.end() && iterCapital != mInputs.end() ){ - // mInputs.erase( iterNonEnergy ); - //} - // Complete the initialization of the inputs. Pass the inputs and outputs // the most local info object available. const IInfo* localInfo = getTechInfo() != 0 ? getTechInfo() : mTechnologyInfo.get(); diff --git a/cvs/objects/util/base/include/gcam_fusion.hpp b/cvs/objects/util/base/include/gcam_fusion.hpp index b81d089a2a..c27d66e69f 100644 --- a/cvs/objects/util/base/include/gcam_fusion.hpp +++ b/cvs/objects/util/base/include/gcam_fusion.hpp @@ -494,13 +494,13 @@ struct FilterStep { /*! * \brief Constructor which (potentially) sets the data name and data flag filters. */ - FilterStep( const std::string& aDataName, const int aDataFlag = 0 ):mDataName( aDataName ), mDataFlag( aDataFlag ), mNumDescendantSteps( 0 ), mFilterMap(), mNoFilters( true ) {} + FilterStep( const std::string& aDataName, const int aDataFlag = 0 ):mDataName( aDataName ), mDataFlag( aDataFlag ), mNoFilters( true ), mNumDescendantSteps( 0 ), mFilterMap() {} /*! * \brief Constructor which (potentially) sets the data name and an IndexFilter. * \note The memory for aFilter will be managed by this class. */ - FilterStep( const std::string& aDataName, IndexFilter* aFilter ):mDataName( aDataName ), mDataFlag( 0 ), mNumDescendantSteps( 0 ), mFilterMap(), mNoFilters( false ) { + FilterStep( const std::string& aDataName, IndexFilter* aFilter ):mDataName( aDataName ), mDataFlag( 0 ), mNoFilters( false ), mNumDescendantSteps( 0 ), mFilterMap() { boost::fusion::at_key( mFilterMap ) = aFilter; } @@ -508,7 +508,7 @@ struct FilterStep { * \brief Constructor which (potentially) sets the data name and a NamedFilter. * \note The memory for aFilter will be managed by this class. */ - FilterStep( const std::string& aDataName, NamedFilter* aFilter ):mDataName( aDataName ), mDataFlag( 0 ), mNumDescendantSteps( 0 ), mFilterMap(), mNoFilters( false ) { + FilterStep( const std::string& aDataName, NamedFilter* aFilter ):mDataName( aDataName ), mDataFlag( 0 ), mNoFilters( false ), mNumDescendantSteps( 0 ), mFilterMap() { boost::fusion::at_key( mFilterMap ) = aFilter; } @@ -516,7 +516,7 @@ struct FilterStep { * \brief Constructor which (potentially) sets the data name and a YearFilter. * \note The memory for aFilter will be managed by this class. */ - FilterStep( const std::string& aDataName, YearFilter* aFilter ):mDataName( aDataName ), mDataFlag( 0 ), mNumDescendantSteps( 0 ), mFilterMap(), mNoFilters( false ) { + FilterStep( const std::string& aDataName, YearFilter* aFilter ):mDataName( aDataName ), mDataFlag( 0 ), mNoFilters( false ), mNumDescendantSteps( 0 ), mFilterMap() { boost::fusion::at_key( mFilterMap ) = aFilter; } diff --git a/cvs/objects/util/base/include/version.h b/cvs/objects/util/base/include/version.h index 91e61f25d8..77b5b7d17a 100644 --- a/cvs/objects/util/base/include/version.h +++ b/cvs/objects/util/base/include/version.h @@ -41,10 +41,10 @@ * NOTE: ADD 1 TO LATEST SUBVERSION REVISION NUMBER */ //! The latest SVN revision number for identification of the build. -#define __REVISION_NUMBER__ "gcam-v7.0" +#define __REVISION_NUMBER__ "gcam-v7.1" /*****************************************************************************/ //! GCAM model version. -#define __ObjECTS_VER__ "7.0" +#define __ObjECTS_VER__ "7.1" #endif // _VERSION_H_ diff --git a/cvs/objects/util/base/include/xml_parse_helper.h b/cvs/objects/util/base/include/xml_parse_helper.h index 4f19df72bc..6b95e8bea4 100644 --- a/cvs/objects/util/base/include/xml_parse_helper.h +++ b/cvs/objects/util/base/include/xml_parse_helper.h @@ -50,6 +50,7 @@ #include #include #include +#include #ifdef USE_STANDALONE_RAPIDXML #include diff --git a/cvs/objects/util/logger/include/logger.h b/cvs/objects/util/logger/include/logger.h index f38a0a6626..b3497d8d24 100644 --- a/cvs/objects/util/logger/include/logger.h +++ b/cvs/objects/util/logger/include/logger.h @@ -148,7 +148,11 @@ class Logger: public ILogger { DEFINE_VARIABLE( SIMPLE, "printLogWarningLevel", mPrintLogWarningLevel, bool ) ) - Logger( const std::string& aFileName = "" ); + //! Keep an explict reference to the console output, in case it needs to go + //! somewhere other than std::cout + std::ostream* mCout; + + Logger( std::ostream* aCout, const std::string& aFileName = "" ); //! Log a message with the given warning level. virtual void logCompleteMessage( const std::string& aMessage ) = 0; diff --git a/cvs/objects/util/logger/include/logger_factory.h b/cvs/objects/util/logger/include/logger_factory.h index 8b24a9295e..10ed3cdb80 100644 --- a/cvs/objects/util/logger/include/logger_factory.h +++ b/cvs/objects/util/logger/include/logger_factory.h @@ -48,6 +48,7 @@ */ #include +#include #include "util/base/include/aparsable.h" #include "util/base/include/data_definition_util.h" @@ -66,15 +67,17 @@ class Tabs; class LoggerFactory { friend class LoggerFactoryWrapper; public: - static Logger& getLogger( const std::string& aLogName ); - static void toDebugXML( std::ostream& aOut, Tabs* aTabs ); - static void logNewScenarioStarting( const std::string& aScenarioName ); + static LoggerFactory* getInstance(); + Logger& getLogger( const std::string& aLogName ); + void toDebugXML( std::ostream& aOut, Tabs* aTabs ) const; + void logNewScenarioStarting( const std::string& aScenarioName ) const; private: - static std::map mLoggers; //!< Map of logger names to loggers. - static bool XMLParse( rapidxml::xml_node* & aNode ); - static void cleanUp(); - //! Private undefined constructor to prevent creating a LoggerFactory. - LoggerFactory(); + std::map mLoggers; //!< Map of logger names to loggers. + std::ostream* mCout; + bool XMLParse( rapidxml::xml_node* & aNode ); + void cleanUp(); + //! Private constructor to prevent creating a LoggerFactory. + LoggerFactory():mCout(&std::cout) {} //! Private undefined copy constructor to prevent copying a LoggerFactory. LoggerFactory( const LoggerFactory& ); //! Private undefined assignment operator to prevent copying a LoggerFactory. @@ -97,7 +100,7 @@ class LoggerFactory { class LoggerFactoryWrapper: public AParsable { public: ~LoggerFactoryWrapper() { - LoggerFactory::cleanUp(); + LoggerFactory::getInstance()->cleanUp(); } virtual bool XMLParse( rapidxml::xml_node* & aNode ); @@ -105,6 +108,8 @@ class LoggerFactoryWrapper: public AParsable { static const std::string& getXMLNameStatic(); const std::string& getXMLName() const; + + std::ostream* setCout(std::ostream* aNewCout); protected: DEFINE_DATA( diff --git a/cvs/objects/util/logger/include/plain_text_logger.h b/cvs/objects/util/logger/include/plain_text_logger.h index 255e4de116..800420585e 100644 --- a/cvs/objects/util/logger/include/plain_text_logger.h +++ b/cvs/objects/util/logger/include/plain_text_logger.h @@ -69,7 +69,7 @@ class PlainTextLogger: public Logger { void logCompleteMessage( const std::string& aMessage ); private: std::ofstream mLogFile; //!< The filestream to which data is written. - PlainTextLogger( const std::string& aLoggerName ="" ); + PlainTextLogger( std::ostream* aCout, const std::string& aLoggerName ="" ); }; #endif // _PLAIN_TEXT_LOGGER_H_ diff --git a/cvs/objects/util/logger/include/xml_logger.h b/cvs/objects/util/logger/include/xml_logger.h index 35929ac768..b42f78145f 100644 --- a/cvs/objects/util/logger/include/xml_logger.h +++ b/cvs/objects/util/logger/include/xml_logger.h @@ -70,7 +70,7 @@ class XMLLogger: public Logger { private: std::ofstream mLogFile; //!< The filestream to which data is written. - XMLLogger( const std::string& loggerName ="" ); + XMLLogger( std::ostream* aCout, const std::string& loggerName ="" ); }; #endif // _XML_LOGGER_H_ diff --git a/cvs/objects/util/logger/source/logger.cpp b/cvs/objects/util/logger/source/logger.cpp index a7fd1cfcd8..9151c87892 100644 --- a/cvs/objects/util/logger/source/logger.cpp +++ b/cvs/objects/util/logger/source/logger.cpp @@ -78,14 +78,16 @@ void PassToParentStreamBuf::setParent( Logger* aParent ) { } //! Constructor which sets default values. -Logger::Logger( const string& aFileName ): +Logger::Logger( std::ostream* aCout, const string& aFileName ): ILogger( &mUnderStream ), // Initialize all variables which are not set by Configuration values. mCurrentWarningLevel( ILogger::DEBUG ), mFileName( aFileName ), mMinLogWarningLevel( ILogger::DEBUG ), mMinToScreenWarningLevel( ILogger::SEVERE ), -mPrintLogWarningLevel( false ){ +mPrintLogWarningLevel( false ), +mCout(aCout) +{ // Set the understream's parent to this Logger. mUnderStream.setParent( this ); } @@ -145,9 +147,9 @@ void Logger::printToScreenIfConfigured( const string& aMessage ){ if ( mCurrentWarningLevel >= mMinToScreenWarningLevel ) { // Print the warning level if ( mPrintLogWarningLevel || mCurrentWarningLevel >= ILogger::ERROR ) { - cout << convertLevelToString( mCurrentWarningLevel ) << ":"; + (*mCout) << convertLevelToString( mCurrentWarningLevel ) << ":"; } - cout << aMessage << endl; + (*mCout) << aMessage << endl; } } diff --git a/cvs/objects/util/logger/source/logger_factory.cpp b/cvs/objects/util/logger/source/logger_factory.cpp index c5f2239a7a..dd2f133d00 100644 --- a/cvs/objects/util/logger/source/logger_factory.cpp +++ b/cvs/objects/util/logger/source/logger_factory.cpp @@ -55,8 +55,6 @@ using namespace std; -map LoggerFactory::mLoggers; - bool LoggerFactory::XMLParse(rapidxml::xml_node* & aNode) { string nodeName = XMLParseHelper::getNodeName(aNode); @@ -68,10 +66,10 @@ bool LoggerFactory::XMLParse(rapidxml::xml_node* & aNode) { // Add additional types here. Logger* newLogger = 0; if( loggerType == "PlainTextLogger" ){ - newLogger = new PlainTextLogger(); + newLogger = new PlainTextLogger(mCout); } else if( loggerType == "XMLLogger" ){ - newLogger = new XMLLogger(); + newLogger = new XMLLogger(mCout); } else { cerr << "Unknown Logger Type: " << loggerType << endl; @@ -91,9 +89,14 @@ bool LoggerFactory::XMLParse(rapidxml::xml_node* & aNode) { } } +LoggerFactory* LoggerFactory::getInstance() { + static LoggerFactory sLoggerFactory; + return &sLoggerFactory; +} + //! Single static method of ILogger interface. ILogger& ILogger::getLogger( const string& aLoggerName ){ - return LoggerFactory::getLogger( aLoggerName ); + return LoggerFactory::getInstance()->getLogger( aLoggerName ); } //! Returns the instance of the Logger, creating it if necessary. @@ -104,8 +107,8 @@ Logger& LoggerFactory::getLogger( const string& aLoggerName ) { return *logIter->second; } else { - cout << "Creating an uninitialized logger " << aLoggerName << endl; - Logger* newLogger = new PlainTextLogger( aLoggerName ); + (*mCout) << "Creating an uninitialized logger " << aLoggerName << endl; + Logger* newLogger = new PlainTextLogger( mCout, aLoggerName ); newLogger->open(); mLoggers[ aLoggerName ] = newLogger; return *mLoggers[ aLoggerName ]; @@ -127,7 +130,7 @@ void LoggerFactory::cleanUp() { * \param aTabs A tabs object responsible for printing the correct number of tabs. * \warning This method is NOT constant, because static methods are not allowed to be declared const. */ -void LoggerFactory::toDebugXML( ostream& aOut, Tabs* aTabs ) { +void LoggerFactory::toDebugXML( ostream& aOut, Tabs* aTabs ) const { XMLWriteOpeningTag( "LoggerFactory", aOut, aTabs ); for( map::const_iterator logIter = mLoggers.begin(); logIter != mLoggers.end(); ++logIter ){ @@ -140,7 +143,7 @@ void LoggerFactory::toDebugXML( ostream& aOut, Tabs* aTabs ) { * \brief Log to all configured loggers that the scenario identified by the given scenario * name is starting. */ -void LoggerFactory::logNewScenarioStarting( const string& aScenarioName ) { +void LoggerFactory::logNewScenarioStarting( const string& aScenarioName ) const { for( map::const_iterator logIter = mLoggers.begin(); logIter != mLoggers.end(); ++logIter ){ ILogger::WarningLevel oldLevel = logIter->second->setLevel( ILogger::WARNING ); (*logIter->second) << "Starting new scenario: " << aScenarioName << endl; @@ -158,5 +161,13 @@ const string& LoggerFactoryWrapper::getXMLName() const { } bool LoggerFactoryWrapper::XMLParse(rapidxml::xml_node* & aNode) { - return LoggerFactory::XMLParse(aNode); + return LoggerFactory::getInstance()->XMLParse(aNode); } + +std::ostream* LoggerFactoryWrapper::setCout(std::ostream* aNewCout) { + LoggerFactory* loggerFactory = LoggerFactory::getInstance(); + ostream* ret = loggerFactory->mCout; + loggerFactory->mCout = aNewCout; + return ret; +} + diff --git a/cvs/objects/util/logger/source/plain_text_logger.cpp b/cvs/objects/util/logger/source/plain_text_logger.cpp index 06efa9d638..82f31b4763 100644 --- a/cvs/objects/util/logger/source/plain_text_logger.cpp +++ b/cvs/objects/util/logger/source/plain_text_logger.cpp @@ -49,13 +49,13 @@ using namespace std; //! Constructor -PlainTextLogger::PlainTextLogger( const string& aLoggerName ):Logger( aLoggerName ){ +PlainTextLogger::PlainTextLogger( std::ostream* aCout, const string& aLoggerName ):Logger( aCout, aLoggerName ){ } //! Tells the logger to begin logging. void PlainTextLogger::open( const char[] ){ if( mFileName.empty() ) { // set a default value - cout << "Using default log file name." << endl; + (*mCout) << "Using default log file name." << endl; mFileName = "log.txt"; } diff --git a/cvs/objects/util/logger/source/xml_logger.cpp b/cvs/objects/util/logger/source/xml_logger.cpp index 203f30ea3f..cf946e8aa1 100644 --- a/cvs/objects/util/logger/source/xml_logger.cpp +++ b/cvs/objects/util/logger/source/xml_logger.cpp @@ -52,13 +52,13 @@ using namespace std; //! Constructor -XMLLogger::XMLLogger( const string& aLoggerName ):Logger( aLoggerName ){ +XMLLogger::XMLLogger( std::ostream* aCout, const string& aLoggerName ):Logger( aCout, aLoggerName ){ } //! Tells the logger to begin logging. void XMLLogger::open( const char[] ){ if( mFileName == "" ) { // set a default value - cout << "Using default log file name." << endl; + (*mCout) << "Using default log file name." << endl; mFileName = "log.xml"; } diff --git a/exe/XMLDBDriver.jar b/exe/XMLDBDriver.jar index d849161ffb..a9e81f647f 100644 Binary files a/exe/XMLDBDriver.jar and b/exe/XMLDBDriver.jar differ diff --git a/exe/configuration_policy.xml b/exe/configuration_policy.xml index 6b10e6ebc7..8948bb4685 100644 --- a/exe/configuration_policy.xml +++ b/exe/configuration_policy.xml @@ -23,7 +23,6 @@ ../input/gcamdata/xml/resources.xml ../input/gcamdata/xml/en_supply.xml ../input/gcamdata/xml/en_transformation.xml - ../input/gcamdata/xml/electricity_water.xml ../input/gcamdata/xml/heat.xml ../input/gcamdata/xml/hydrogen.xml @@ -93,7 +92,7 @@ ../input/gcamdata/xml/all_aglu_emissions_IRR_MGMT.xml ../input/gcamdata/xml/all_protected_unmgd_emissions.xml ../input/gcamdata/xml/emission_factor_controls.xml - ../input/gcamdata/xml/ssp2_tradBio_emissions_factors.xml + ../input/gcamdata/xml/ssp2_emissions_factors_tradBio.xml ../input/gcamdata/xml/all_energy_emissions_MAC.xml diff --git a/exe/configuration_ref.xml b/exe/configuration_ref.xml index 795079d737..361eaad122 100644 --- a/exe/configuration_ref.xml +++ b/exe/configuration_ref.xml @@ -22,7 +22,6 @@ ../input/gcamdata/xml/resources.xml ../input/gcamdata/xml/en_supply.xml ../input/gcamdata/xml/en_transformation.xml - ../input/gcamdata/xml/electricity_water.xml ../input/gcamdata/xml/heat.xml ../input/gcamdata/xml/hydrogen.xml @@ -93,7 +92,7 @@ ../input/gcamdata/xml/all_aglu_emissions_IRR_MGMT.xml ../input/gcamdata/xml/all_protected_unmgd_emissions.xml ../input/gcamdata/xml/emission_factor_controls.xml - ../input/gcamdata/xml/ssp2_tradBio_emissions_factors.xml + ../input/gcamdata/xml/ssp2_emissions_factors_tradBio.xml ../input/gcamdata/xml/all_energy_emissions_MAC.xml diff --git a/exe/configuration_usa.xml b/exe/configuration_usa.xml index e5e46d2d12..077ce41fea 100644 --- a/exe/configuration_usa.xml +++ b/exe/configuration_usa.xml @@ -23,7 +23,6 @@ ../input/gcamdata/xml/resources.xml ../input/gcamdata/xml/en_supply.xml ../input/gcamdata/xml/en_transformation.xml - ../input/gcamdata/xml/electricity_water.xml ../input/gcamdata/xml/heat.xml ../input/gcamdata/xml/hydrogen.xml @@ -94,7 +93,7 @@ ../input/gcamdata/xml/all_aglu_emissions_IRR_MGMT.xml ../input/gcamdata/xml/all_protected_unmgd_emissions.xml ../input/gcamdata/xml/emission_factor_controls.xml - ../input/gcamdata/xml/ssp2_tradBio_emissions_factors.xml + ../input/gcamdata/xml/ssp2_emissions_factors_tradBio.xml ../input/gcamdata/xml/all_energy_emissions_MAC.xml diff --git a/input/gcamdata/.gitignore b/input/gcamdata/.gitignore index 41819bf205..20422ef3f1 100644 --- a/input/gcamdata/.gitignore +++ b/input/gcamdata/.gitignore @@ -32,3 +32,7 @@ GTAPv10_basedata_VKB_SAVE_VDEP.csv.gz # junk produced when developing the python scripts *pycache* + +# Renv +renv/activate.R +.Rprofile diff --git a/input/gcamdata/DESCRIPTION b/input/gcamdata/DESCRIPTION index a5353ee261..02145d6b5c 100644 --- a/input/gcamdata/DESCRIPTION +++ b/input/gcamdata/DESCRIPTION @@ -47,14 +47,14 @@ Imports: readr (>= 1.3.1), data.table (>= 1.10.4), rlang, - stringr + stringr, + devtools, + drake (>= 6.2.1) Suggests: igraph (>= 1.0.1), mockr (>= 0.1), testthat (>= 1.0.2), R.utils (>= 2.6.0), - usethis (>= 1.4.0), - drake (>= 6.2.1), gcamdata.compdata, knitr, rmarkdown diff --git a/input/gcamdata/R/constants.R b/input/gcamdata/R/constants.R index df8cca4102..ecb0d487cd 100644 --- a/input/gcamdata/R/constants.R +++ b/input/gcamdata/R/constants.R @@ -213,11 +213,12 @@ aglu.NONTRADED_COMM <- c("DDGS and feedcakes", "FodderGrass", "Pasture", aglu.LAND_TOLERANCE <- 0.005 aglu.MIN_PROFIT_MARGIN <- 0.15 # Unitless and is used to ensure that Agricultural Costs (units 1975USD/kg) don't lead to profits below a minimum profit margin. +aglu.BIO_GHOST_CAL_COST_SCALER <- 0.9 # scale down nonLandVariableCost during ghost calibration aglu.MAX_FAO_LDS_SCALER <- 5 # Unitless max multiplier in reconciling LDS harvested area with FAO harvested area by country and crop. Useful for preventing bad allocations of N fert in AFG, TWN, several others aglu.TREECROP_MATURE_AGE <- 10 # Number of years for vegetation carbon to reach peak, for tree crops -aglu.Min_Share_PastureFeed_in_PastureFodderGrass <- 0.1 # minimum share of pasture in Pasture_FodderGrass for feed uses to avoid negative or zero (not including Japan now); USA has ~30% -aglu.Zero_Min_PastureFeed_Share_iso <- c("jpn") # mapped to GCAM_region_ID of Japan; Japan has zero unmanaged and protected pasture +aglu.MIN_SHARE_PASTUREFEED_IN_PASTUREFODDERGRASS <- 0.1 # minimum share of pasture in Pasture_FodderGrass for feed uses to avoid negative or zero (not including Japan now); USA has ~30% +aglu.ZERO_MIN_PASTUREFEED_SHARE_ISO <- c("jpn") # mapped to GCAM_region_ID of Japan; Japan has zero unmanaged and protected pasture # GLU (Geographic Land Unit) settings - see module_aglu_LA100.0_LDS_preprocessing aglu.GLU <- "GLU" @@ -240,8 +241,8 @@ aglu.CCONTENT_CELLULOSE <- 0.45 aglu.CCONV_PEAK_AVG <- 0.5 # Biomass mature_age (zaglu_L2252) -biomassGrass_mature_age = 5 -biomassTree_mature_age = 8 +aglu.BIOMASSGRASS_MATURE_AGE = 5 +aglu.BIOMASSTREE_MATURE_AGE = 8 # Constraints for the minimum and maximum harvested:cropped ratios @@ -344,22 +345,21 @@ aglu.MILL_EROSION_CTRL_KGM2 <- 0 aglu.WOOD_ENERGY_CONTENT_GJKG <- 0.0189 -aglu.FOREST_commodities <- c("sawnwood","woodpulp") -aglu.FOREST_demand_sectors <- c("NonFoodDemand_sawnwood","NonFoodDemand_woodpulp") -aglu.FOREST_supply_sector <- "Forest" +aglu.FOREST_COMMODITIES <- c("sawnwood","woodpulp") +aglu.FOREST_DEMAND_SECTORS <- c("NonFoodDemand_sawnwood","NonFoodDemand_woodpulp") +aglu.FOREST_SUPPLY_SECTOR <- "Forest" #Below is a default amount of roundwood required to produce sawnwood.The model will calculate the IO using data. This will get used if and only if # the IO calculated by the model is an NA. This is taken as an everage across countries from a UNECE report on forest products. Available here- https://unece.org/fileadmin/DAM/timber/publications/DP-49.pdf -aglu.FOREST_sawtimber_conversion <- 2.17 -aglu.PAPER_delete_ag_demand <- "NonFoodDemand_woodpulp" -aglu.PAPER_delete_ag_demand_USA <- c("woodpulp_energy", "regional woodpulp for energy") - +aglu.FOREST_SAWTIMBER_CONVERSION <- 2.17 +aglu.PAPER_DELETE_AG_DEMAND <- "NonFoodDemand_woodpulp" +aglu.PAPER_DELETE_AG_DEMAND_USA <- c("woodpulp_energy", "regional woodpulp for energy") #90% of pulp processing is chemical which has an IO of 5.44 and 10% is mechanical which is 2.55. Taking weighted average of the two, # we get 5.15. These are calculated as averages across countries. #Source- https://unece.org/fileadmin/DAM/timber/publications/DP-49.pdf -aglu.FOREST_pulp_conversion <- 5.15 +aglu.FOREST_PULP_CONVERSION <- 5.15 -aglu.FOREST_max_price <- 165 +aglu.FOREST_MAX_PRICE <- 165 # wood water content # Unitless (mass of water / total wood mass) aglu.WOOD_WATER_CONTENT <- 0.065 @@ -629,6 +629,8 @@ energy.FOOD_PROCESSING.ENERGY_INFILL_MIN_EJ_PCAL_COEF <- 0.000413 # minimum valu # Socioeconomics constants ====================================================================== +socioeconomics.CORE_GCAM_SCENARIO <- "gSSP2" + # Population years - note that these sequences shouldn't have any overlap, # and should contain all historical years used by other modules socioeconomics.MADDISON_HISTORICAL_YEARS <- seq(1700, 1900, 50) # Years for which to use Maddison data @@ -1178,6 +1180,7 @@ gcamusa.DUST <- TRUE # Time shift conditions ====================================================================== # Uncomment these lines to run under 'timeshift' conditions # # HISTORICAL_YEARS <- 1971:2005 # normally 1971:2010 -# MODEL_FUTURE_YEARS <- seq(2010, 2100, 5) # normally seq(2015, 2100, 5) -# MODEL_BASE_YEARS <- c(1975, 1990, 2005) # normally (1975, 1990, 2005, 2010) +# MODEL_FUTURE_YEARS <- seq(2005, 2100, 5) # normally seq(2015, 2100, 5) +# MODEL_BASE_YEARS <- c(1975, 1990) # normally (1975, 1990, 2005, 2010) # MODEL_YEARS <- c(MODEL_BASE_YEARS, MODEL_FUTURE_YEARS) +# MODEL_FINAL_BASE_YEAR <- 1990 diff --git a/input/gcamdata/R/data.R b/input/gcamdata/R/data.R index 55866fc098..e03b40cdfa 100644 --- a/input/gcamdata/R/data.R +++ b/input/gcamdata/R/data.R @@ -17,7 +17,7 @@ #' which is used by \code{dstrace} and various other graphing and diagnostic utilities. #' @author BBL #' @format A tibble with columns: name (chunk that produces the data), output (name of the data object), -#' precursors (colon seperated list of precursors), title, units, comments, flags (typically metadata for processing) +#' precursors (colon separated list of precursors), title, units, comments, flags (typically metadata for processing) "GCAM_DATA_MAP" #' A list of prebuilt data objects. These are used when the proprietary IEA diff --git a/input/gcamdata/R/driver.R b/input/gcamdata/R/driver.R index edd5b11b7d..81ae1d9549 100644 --- a/input/gcamdata/R/driver.R +++ b/input/gcamdata/R/driver.R @@ -194,9 +194,7 @@ driver <- function(all_data = empty_data(), # we need to use package data to set this in effect in such a way that drake does not notice # and think all XML files need to be rebuilt with the suffix - if (!is.null(xml_suffix)){ - xml.XML_SUFFIX <<- xml_suffix - } + options("gcamdata.xml.XML_SUFFIX" = xml_suffix) if(!is.null(user_modifications) && is.null(xml_suffix)) { warning("It is highly reccommended to utilize `xml_suffix` to distinguish XML inputs derived from `user_modifications`") } @@ -513,9 +511,7 @@ driver_drake <- function( # we need to use package data to set this in effect in such a way that drake does not notice # and think all XML files need to be rebuilt with the suffix - if (!is.null(xml_suffix)){ - xml.XML_SUFFIX <<- xml_suffix - } + options("gcamdata.xml.XML_SUFFIX" = xml_suffix) if(!is.null(user_modifications) && is.null(xml_suffix)) { warning("It is highly reccommended to utilize `xml_suffix` to distinguish XML inputs derived from `user_modifications`") } @@ -636,7 +632,7 @@ driver_drake <- function( tibble(name = unfound_inputs$input, output = unfound_inputs$input, to_xml = FALSE)), - chunkinputs, by=c("output" = "input")) %>% + chunkinputs, by=c("output" = "input"), relationship = "many-to-many") %>% select(name.x, name.y) %>% unique() diff --git a/input/gcamdata/R/dstrace.R b/input/gcamdata/R/dstrace.R index 4931cbd7c4..df01b51bee 100644 --- a/input/gcamdata/R/dstrace.R +++ b/input/gcamdata/R/dstrace.R @@ -108,7 +108,7 @@ dstrace <- function(object_name, direction = "upstream", graph = FALSE, #' recursively. #' #' The algorithm is performing a depth first search where chunks are "nodes" -#' and data objects are "verticies" connecting them. +#' and data objects are "vertices" connecting them. #' @param chunk_names A list of chunks to find the precursors for. #' @param gcam_data_map A tibble of metadata information; normally a built-in package dataset. #' @param prev_trace_list The list of chunks already found. diff --git a/input/gcamdata/R/module-helpers.R b/input/gcamdata/R/module-helpers.R index 9c0549cebb..4a7ad1a6f2 100644 --- a/input/gcamdata/R/module-helpers.R +++ b/input/gcamdata/R/module-helpers.R @@ -423,7 +423,7 @@ add_carbon_info <- function( data, carbon_info_table, #' Reduce the carbon density of a managed land type from its unmanaged land #' type's carbon density using constant multipliers #' -#' @param data Unput data tibble to adjust carbon densities for +#' @param data Input data tibble to adjust carbon densities for #' @param LTfor Land_Type name to use for Forest land types #' @param LTpast Land_Type name to use for Pasture land types #' @return The original table with carbon density adjusted for the managed land types @@ -492,7 +492,7 @@ get_ssp_regions <- function(pcGDP, reg_names, income_group, #' Takes a wide format tibble with years as columns, coverts to long format, and #' ensures values are filled in for all \code{out_years} using the following rules: #' - Linearly interpolated for missing values that have end points -#' - Extrapolated using an exponential decay function paramaterized by the columns +#' - Extrapolated using an exponential decay function parameterized by the columns #' \code{improvement.rate} and \code{improvement.max} using the following formulation #' \code{v_0*max+(v_0-v_0*max)*(1-rate)^(y-y_0)} #' - For rows that specify a char value in the column \code{improvement.shadow.technology} @@ -550,7 +550,7 @@ fill_exp_decay_extrapolate <- function(d, out_years) { select(-year, -value) %>% distinct() %>% repeat_add_columns(tibble(year=c(unique(c(d$year, out_years))))) %>% - left_join(d, by=names(.)) %>% + left_join(d, by=names(.), relationship = "many-to-many") %>% # for the purposes of interpolating (and later extrapolating) we would like # to just group by everything except year and value dplyr::group_by_at(dplyr::vars(-year, -value)) %>% @@ -651,7 +651,7 @@ downscale_FAO_country <- function(data, country_name, dissolution_year, years = ctry_years <- years[years < dissolution_year] yrs <- as.character(c(ctry_years, dissolution_year)) data %>% - select(item, element, yrs) %>% + select(item, element, tidyr::all_of(yrs)) %>% group_by(item, element) %>% summarise_all(sum) %>% ungroup -> @@ -959,6 +959,7 @@ smooth_res_curve_approx_error <- function(curve.exponent, mid.price, base.price, } + #' NEI_to_GCAM #' #' Helper function to convert EPA National Emissions Inventory (NEI) emissions to GCAM emissions in GCAM-USA @@ -1012,15 +1013,6 @@ NEI_to_GCAM <- function(NEI_data, CEDS_GCAM_fuel, NEI_pollutant_mapping, names) } -#' compute_BC_OC -#' -#' Helper function to compute BC and OC EFs from PM2.5 and a mapping file with BC OC fraction content by sector/subsector/technology -#' Used for emissions in several sectors. -#' @param df tibble which contains PM2.5 data to be used to get BC and OC data -#' @param BC_OC_assumptions tibble which contains BC and OC fractions -#' @importFrom assertthat assert_that -#' @importFrom dplyr filter left_join rename mutate group_by select summarise_all ungroup -#' @return tibble with BC and OC rows added compute_BC_OC <- function(df, BC_OC_assumptions) { #There is no data for BC/OC in the base year, so use fractions of PM2.5 to calculate BC/OC emission factors. @@ -1362,3 +1354,83 @@ join.gdp.ts <- function(past, future, grouping) { rslt } } + + +#' replace_outlier_EFs +#' +#' Helper function to replace emission factors (EFs) outside a threshold with a median EF +#' Used for emission factors in several sectors +#' @param df Base tibble to start from that contains EFs, and may include NAs +#' @param to_group Character vector indicating the column names to group by. +#' This relates to how specific the median will be, whether it is by sector, sector and subsector, etc. +#' @param names Character vector indicating the column names of the returned tibble +#' @param ef_col_name Name of the column containing emission factors +#' @importFrom assertthat assert_that +#' @importFrom dplyr filter anti_join rename mutate group_by_at select summarize ungroup bind_rows +#' @return tibble with corresponding region, year, Non.CO2, GCAM sector, subsector, stub.technology, and modified EFs + +replace_outlier_EFs <- function(df, to_group, names, ef_col_name) { + + # silence package check notes + region <- Non.CO2 <- year <- supplysector <- subsector0 <- subsector <- stub.technology <- + emiss.coef <- NULL + + assert_that(is_tibble(df)) + assert_that(is.character(to_group)) + assert_that(is.character(names)) + assert_that(is.character(ef_col_name)) + + # Generate median emissions factors + median.true <- df %>% + rename(emiss.coef = .data[[ef_col_name]]) %>% + # Remove NAs so as to not skew the median + filter(!is.na(emiss.coef)) %>% + dplyr::group_by_at(to_group) %>% + summarize(emiss.coef = median(emiss.coef)) %>% + ungroup() %>% + rename(medianEF = emiss.coef) + + # Some year / pollutant / sector / subsector / tech are NA for all entries, and should be set to 0 + median.skewed <- df %>% + rename(emiss.coef = .data[[ef_col_name]]) %>% + replace_na(list(emiss.coef = 0)) %>% + dplyr::group_by_at(to_group) %>% + summarize(emiss.coef = median(emiss.coef)) %>% + ungroup() %>% + rename(medianEF = emiss.coef) + + # We want to join these tables so that only the entries not in median.true are retained from median.skewed + # These all have EFs of 0 + median <- median.skewed %>% + anti_join(median.true, by=(to_group)) %>% + bind_rows(median.true) + + # Find the standard deviation, which will be used to establish our outlier threshold + sd <- df %>% + rename(emiss.coef = .data[[ef_col_name]]) %>% + dplyr::mutate_if(is.numeric, ~ifelse(abs(.) == Inf,NA,.)) %>% + dplyr::group_by_at(to_group) %>% + mutate(sd = sd(emiss.coef, na.rm = TRUE)) %>% + ungroup() %>% + select(to_group, sd) %>% + distinct() + + # Replace all emissions factors outside a threshold (two standard deviations higher than the median, three lower) + # or that are NAs with the median emissions factor for that year, non.CO2, and technology + # The output table in named "noBCOC" because in several cases where this is currently used, BC and OC EFs are added in at the next step. + noBCOC <- df %>% + rename(emiss.coef = .data[[ef_col_name]]) %>% + left_join_error_no_match(median, by=(to_group)) %>% + # we use a left_join here- LJENM results in an errors due to NAs from 1975 + # TODO: alternatively, remove 1975 all together? + left_join(sd, by=(to_group)) %>% + # Replace EFs that are two standard deviation higher or three standard deviations lower than the median or are NA or Inf with the median + mutate(emiss.coef = if_else(emiss.coef > medianEF + (2 * sd) | emiss.coef < medianEF - (3 * sd), + medianEF, emiss.coef), + emiss.coef = if_else(is.infinite(emiss.coef), medianEF, emiss.coef), + emiss.coef = if_else(is.na(emiss.coef), medianEF, emiss.coef)) %>% + rename({{ef_col_name}} := emiss.coef) %>% + select(all_of(names)) + + return (noBCOC) +} diff --git a/input/gcamdata/R/pipeline-helpers.R b/input/gcamdata/R/pipeline-helpers.R index f297808d99..d1f0a28d51 100644 --- a/input/gcamdata/R/pipeline-helpers.R +++ b/input/gcamdata/R/pipeline-helpers.R @@ -223,7 +223,7 @@ repeat_add_columns <- function(x, y) { x %>% mutate(UNIQUE_JOIN_FIELD = 1) %>% - full_join(mutate(y, UNIQUE_JOIN_FIELD = 1), by = "UNIQUE_JOIN_FIELD") %>% + full_join(mutate(y, UNIQUE_JOIN_FIELD = 1), by = "UNIQUE_JOIN_FIELD", relationship = "many-to-many") %>% select(-UNIQUE_JOIN_FIELD) } diff --git a/input/gcamdata/R/sysdata.rda b/input/gcamdata/R/sysdata.rda index 307d75bb50..36baa2447a 100644 Binary files a/input/gcamdata/R/sysdata.rda and b/input/gcamdata/R/sysdata.rda differ diff --git a/input/gcamdata/R/xml.R b/input/gcamdata/R/xml.R index 964b510472..6a9f62d4bd 100644 --- a/input/gcamdata/R/xml.R +++ b/input/gcamdata/R/xml.R @@ -31,11 +31,6 @@ create_xml <- function(xml_file, mi_header = NULL) { invisible() } -#' A suffix to be appended to the XML name in \code{set_xml_file_helper}. Potentially -#' useful when used to generate permutations of inputs. We need to go through a package -#' data so as to do this in a way that is opaque to drake -xml.XML_SUFFIX <- NULL - #' set_xml_file_helper #' #' @param xml The xml pipeline object @@ -44,10 +39,20 @@ xml.XML_SUFFIX <- NULL set_xml_file_helper <- function(xml, fq_name) { xml$xml_file <- fq_name + # A prefix/suffix to be added to the XML name. Potentially useful when used to generate + # permutations of inputs. We need to go through options so as to do this in a way that is + # opaque to drake + xml.XML_PREFIX = getOption("gcamdata.xml.XML_PREFIX") + xml.XML_SUFFIX = getOption("gcamdata.xml.XML_SUFFIX") + # append an XML suffix if so configured if(!is.null(xml.XML_SUFFIX)) { xml$xml_file <- paste0(gsub('\\.xml$', '', xml$xml_file), xml.XML_SUFFIX, '.xml') } + # append an XML prefix if so configured + if(!is.null(xml.XML_PREFIX)) { + xml$xml_file <- paste0(xml.XML_PREFIX, xml$xml_file) + } invisible(xml) } @@ -272,9 +277,9 @@ add_node_equiv_xml <- function(dot, equiv_class) { #' Add a table to convert to XML but generate additional levels of XML nesting #' #' We have the ability to create as many levels of "subsector" nesting as we -#' want but in doing so we want to avoid having to make an explict copy of +#' want but in doing so we want to avoid having to make an explicit copy of #' the headers / LEVEL2_DATA_NAMES. So we provide this method which will instruct -#' the ModelIntercae to generate the addtional levels automatically. It assumes +#' the ModelInterface to generate the additional levels automatically. It assumes #' the data in the base header is provided as is and the additional columns needed #' for nesting will be moved to the end (see detail for the \code{column_name} and #' \code{column_order_lookup} params). @@ -426,7 +431,7 @@ add_logit_tables_xml_generate_levels <- function(dot, data, header, old_tag, new #' @export cmp_xml_files <- function(fleft, fright, raw = FALSE) { - cmd <- system2('which', 'python', stdout=TRUE) + cmd <- system2('which', 'python3', stdout=TRUE) py <- system.file('exec/xml_verify.py', package = 'gcamdata') ## normalizePath prints a warning when one of the files doesn't exist, but we'll ## catch that as an error below. diff --git a/input/gcamdata/R/zaglu_L100.regional_ag_an_for_prices.R b/input/gcamdata/R/zaglu_L100.regional_ag_an_for_prices.R index 0b1d7b2704..cf833b0505 100644 --- a/input/gcamdata/R/zaglu_L100.regional_ag_an_for_prices.R +++ b/input/gcamdata/R/zaglu_L100.regional_ag_an_for_prices.R @@ -358,12 +358,12 @@ module_aglu_L100.regional_ag_an_for_prices <- function(command, ...) { L1321.expP_R_F_75USDm3 <- L100.FAO_for_ExpPrice_R_C_Y L1321.expP_R_F_75USDm3 %>% - filter(GCAM_commodity %in% aglu.FOREST_commodities) %>% - left_join_error_no_match(L1321.expP_R_F_75USDm3 %>% filter(!GCAM_commodity %in% aglu.FOREST_commodities) %>% rename(Price_USDm3 = value) %>% select(-GCAM_commodity), by = c("GCAM_region_ID")) %>% + filter(GCAM_commodity %in% aglu.FOREST_COMMODITIES) %>% + left_join_error_no_match(L1321.expP_R_F_75USDm3 %>% filter(!GCAM_commodity %in% aglu.FOREST_COMMODITIES) %>% rename(Price_USDm3 = value) %>% select(-GCAM_commodity), by = c("GCAM_region_ID")) %>% left_join(L110.IO_Coefs_pulp %>%filter(year %in% c(MODEL_FINAL_BASE_YEAR)) %>% group_by(GCAM_region_ID) %>% summarize(IO= mean(IO)), by = c("GCAM_region_ID")) %>% - mutate(IO= if_else(is.na(IO),aglu.FOREST_sawtimber_conversion,IO)) %>% - mutate(ForCost = if_else(GCAM_commodity== "sawnwood",value-(Price_USDm3*IO), - value-(Price_USDm3*aglu.FOREST_pulp_conversion))) %>% + mutate(IO = if_else(is.na(IO),aglu.FOREST_SAWTIMBER_CONVERSION,IO), + ForCost = if_else(GCAM_commodity== "sawnwood",value-(Price_USDm3*IO), + value-(Price_USDm3*aglu.FOREST_PULP_CONVERSION))) %>% select(-Price_USDm3) %>% filter(ForCost > 0) %>% group_by(GCAM_region_ID, GCAM_commodity) %>% @@ -396,7 +396,8 @@ module_aglu_L100.regional_ag_an_for_prices <- function(command, ...) { "aglu/FAO/FAO_ag_items_PRODSTAT", "aglu/FAO/FAO_an_items_PRODSTAT", "common/FAO_GDP_Deflators", - "aglu/USDA/USDA_Alfalfa_prices_USDt") -> + "aglu/USDA/USDA_Alfalfa_prices_USDt", + "L109.ag_ALL_Mt_R_C_Y") -> L1321.ag_prP_R_C_75USDkg L1321.an_prP_R_C_75USDkg %>% @@ -409,11 +410,12 @@ module_aglu_L100.regional_ag_an_for_prices <- function(command, ...) { "aglu/FAO/GCAMDATA_FAOSTAT_ProducerPrice_170Regs_185PrimaryItems_2010to2020", "aglu/FAO/FAO_ag_items_PRODSTAT", "aglu/FAO/FAO_an_items_PRODSTAT", - "common/FAO_GDP_Deflators") -> + "common/FAO_GDP_Deflators", + "L109.ag_ALL_Mt_R_C_Y") -> L1321.an_prP_R_C_75USDkg L1321.expP_R_F_75USDm3 %>% - filter(GCAM_commodity %in% aglu.FOREST_supply_sector) %>% + filter(GCAM_commodity %in% aglu.FOREST_SUPPLY_SECTOR) %>% add_title("Regional prices for GCAM forest commodities") %>% add_units("1975$/m3") %>% add_comments("Region-specific calibration prices by GCAM commodity and region") %>% diff --git a/input/gcamdata/R/zaglu_L108.ag_Feed_R_C_Y.R b/input/gcamdata/R/zaglu_L108.ag_Feed_R_C_Y.R index e9c7f8b92a..b8f0d32fb3 100644 --- a/input/gcamdata/R/zaglu_L108.ag_Feed_R_C_Y.R +++ b/input/gcamdata/R/zaglu_L108.ag_Feed_R_C_Y.R @@ -215,13 +215,13 @@ module_aglu_L108.ag_Feed_R_C_Y <- function(command, ...) { # Other use of FodderGrass will be reflected in L109 balance # Note that Japan has no pasture land after 2004, the demand should also be removed - iso_GCAM_regID %>% filter(iso %in% aglu.Zero_Min_PastureFeed_Share_iso) %>% + iso_GCAM_regID %>% filter(iso %in% aglu.ZERO_MIN_PASTUREFEED_SHARE_ISO) %>% distinct(GCAM_region_ID) %>% pull -> aglu.Zero_Min_PastureFeed_Share_region_ID assertthat::assert_that( iso_GCAM_regID %>% filter(GCAM_region_ID %in% aglu.Zero_Min_PastureFeed_Share_region_ID) %>% - distinct(iso) %>% pull %in% aglu.Zero_Min_PastureFeed_Share_iso %>% all, - msg = "aglu.Zero_Min_PastureFeed_Share_iso should have unique GCAM_region_ID is this adjustment" + distinct(iso) %>% pull %in% aglu.ZERO_MIN_PASTUREFEED_SHARE_ISO %>% all, + msg = "aglu.ZERO_MIN_PASTUREFEED_SHARE_ISO should have unique GCAM_region_ID is this adjustment" ) an_Feed_Mt_R_C_Y %>% @@ -230,7 +230,7 @@ module_aglu_L108.ag_Feed_R_C_Y <- function(command, ...) { left_join(filter(L101.ag_Prod_Mt_R_C_Y, GCAM_commodity == "FodderGrass"), by = c("GCAM_region_ID", "year")) %>% # Map in FodderGrass production mutate(MinPasture = if_else(GCAM_region_ID %in% aglu.Zero_Min_PastureFeed_Share_region_ID, 0, - PastFodderGrass_Demand * aglu.Min_Share_PastureFeed_in_PastureFodderGrass), + PastFodderGrass_Demand * aglu.MIN_SHARE_PASTUREFEED_IN_PASTUREFODDERGRASS), Pasture = if_else(PastFodderGrass_Demand - value < MinPasture, MinPasture, PastFodderGrass_Demand - value), diff --git a/input/gcamdata/R/zaglu_L110.For_FAO_R_Y.R b/input/gcamdata/R/zaglu_L110.For_FAO_R_Y.R index 021ccc9145..3c4bef6e88 100644 --- a/input/gcamdata/R/zaglu_L110.For_FAO_R_Y.R +++ b/input/gcamdata/R/zaglu_L110.For_FAO_R_Y.R @@ -140,22 +140,22 @@ module_aglu_L110.For_FAO_R_Y <- function(command, ...) { #First separate out roundwood consumption L110.For_ALL_bm3_R_Y %>% - filter(GCAM_commodity==aglu.FOREST_supply_sector) %>% + filter(GCAM_commodity==aglu.FOREST_SUPPLY_SECTOR) %>% select(GCAM_region_ID,year,roundwood_cons=Cons_bm3)->L110.Roundwood_Cons #Join the same with commoditties. L110.For_ALL_bm3_R_Y %>% - filter(GCAM_commodity %in% aglu.FOREST_commodities) %>% + filter(GCAM_commodity %in% aglu.FOREST_COMMODITIES) %>% select(GCAM_region_ID,year,GCAM_commodity,Prod_bm3) %>% spread(GCAM_commodity,Prod_bm3) %>% left_join_error_no_match(L110.Roundwood_Cons, by = c("GCAM_region_ID","year")) %>% #Assume that pulpwood has a coeff of 5.14 sawtimber is the remaining. There are a couple of adjustments that need to be made. mutate(#First adjust sawnwood production here #sawnwood= if_else(sawnwood > 2 *roundwood_cons, roundwood_cons *0.05,sawnwood), - after_pulp = roundwood_cons-(woodpulp*aglu.FOREST_pulp_conversion), + after_pulp = roundwood_cons-(woodpulp*aglu.FOREST_PULP_CONVERSION), #If a country does not have enough roundwood cons to produce saw, increase it. - roundwood_cons=if_else(after_pulp <0, woodpulp*aglu.FOREST_pulp_conversion*1.1,roundwood_cons), - after_pulp = roundwood_cons-(woodpulp*aglu.FOREST_pulp_conversion), + roundwood_cons=if_else(after_pulp <0, woodpulp*aglu.FOREST_PULP_CONVERSION*1.1,roundwood_cons), + after_pulp = roundwood_cons-(woodpulp*aglu.FOREST_PULP_CONVERSION), #Now calculate pulp IO here IO=after_pulp/sawnwood, #We are going to run in a scenario where the coef is less than 1 in some places. @@ -163,11 +163,11 @@ module_aglu_L110.For_FAO_R_Y <- function(command, ...) { #Add a max value on the IO here, IO= if_else(IO > 10,10,IO), IO= if_else(sawnwood==0, 0,IO), - roundwood_cons=(woodpulp*aglu.FOREST_pulp_conversion)+(IO*sawnwood)) ->L110.IO_Coefs_pulp + roundwood_cons=(woodpulp*aglu.FOREST_PULP_CONVERSION)+(IO*sawnwood)) ->L110.IO_Coefs_pulp #Since we increased roundwood cons in some places, increase production proportionately L110.For_ALL_bm3_R_Y %>% - filter(GCAM_commodity==aglu.FOREST_supply_sector) %>% + filter(GCAM_commodity==aglu.FOREST_SUPPLY_SECTOR) %>% left_join_error_no_match(L110.IO_Coefs_pulp %>% select(GCAM_region_ID,year,roundwood_cons), by = c("GCAM_region_ID","year")) %>% mutate(diff=roundwood_cons-Cons_bm3, Prod_bm3= Prod_bm3+diff, @@ -175,7 +175,7 @@ module_aglu_L110.For_FAO_R_Y <- function(command, ...) { select(colnames(L110.For_ALL_bm3_R_Y))->L110.For_ALL_bm3_R_Y_Primary L110.For_ALL_bm3_R_Y %>% - filter(GCAM_commodity!=aglu.FOREST_supply_sector) %>% + filter(GCAM_commodity!=aglu.FOREST_SUPPLY_SECTOR) %>% bind_rows(L110.For_ALL_bm3_R_Y_Primary)->L110.For_ALL_bm3_R_Y diff --git a/input/gcamdata/R/zaglu_L113.ag_storage.R b/input/gcamdata/R/zaglu_L113.ag_storage.R index f4a02ab8ac..db77a3238b 100644 --- a/input/gcamdata/R/zaglu_L113.ag_storage.R +++ b/input/gcamdata/R/zaglu_L113.ag_storage.R @@ -111,13 +111,14 @@ module_aglu_L113_ag_storage <- function(command, ...) { # 3. Prepare a storage tech data table for generating XMLs. ---- - # Calculate lifetime in the carry-over structure - # may need adjustments here when years/steps are changing + # Calculate lifetime in the carry-over structure to be exactly equal + # to two model periods L113.StorageLifeTime <- tibble(year = c(MODEL_BASE_YEARS, MODEL_FUTURE_YEARS)) %>% - mutate(lifetime = lead(year, 2) - year, - lifetime = if_else(year == 1990, 16, lifetime), - lifetime = if_else(year == 2005, 6, lifetime) ) + mutate(timestep = replace_na(year - lag(year), modeltime.PERIOD0_TIMESTEP), + # the lifetime needs to last the current timestep plus the next + lifetime = timestep + lead(timestep)) %>% + tidyr::fill(lifetime, .direction="down") # Construct the key table for storage tech. # ToDo: storage.cost diff --git a/input/gcamdata/R/zaglu_L123.LC_R_MgdPastFor_Yh_GLU.R b/input/gcamdata/R/zaglu_L123.LC_R_MgdPastFor_Yh_GLU.R index 5aa9ff3289..db2b89104e 100644 --- a/input/gcamdata/R/zaglu_L123.LC_R_MgdPastFor_Yh_GLU.R +++ b/input/gcamdata/R/zaglu_L123.LC_R_MgdPastFor_Yh_GLU.R @@ -198,7 +198,7 @@ module_aglu_L123.LC_R_MgdPastFor_Yh_GLU <- function(command, ...) { right_join(L123.For_potentialProd_bm3_R_Y_GLU, by = c("GCAM_region_ID", "year")) %>% # Calculate the GLU to regional fraction of forest biomass production mutate(frac = value / total) %>% - repeat_add_columns(tibble(GCAM_commodity = as.character(aglu.FOREST_supply_sector))) %>% + repeat_add_columns(tibble(GCAM_commodity = as.character(aglu.FOREST_SUPPLY_SECTOR))) %>% # Match in regional wood production left_join_error_no_match(L110.For_ALL_bm3_R_Y, by = c("GCAM_region_ID", "year","GCAM_commodity")) %>% # Calculate logging production as the regional total times the GLU-wise forest biomass production fractions diff --git a/input/gcamdata/R/zaglu_L162.ag_prodchange_R_C_Y_GLU_irr.R b/input/gcamdata/R/zaglu_L162.ag_prodchange_R_C_Y_GLU_irr.R index 78b0842fa5..24a6521eec 100644 --- a/input/gcamdata/R/zaglu_L162.ag_prodchange_R_C_Y_GLU_irr.R +++ b/input/gcamdata/R/zaglu_L162.ag_prodchange_R_C_Y_GLU_irr.R @@ -113,10 +113,10 @@ module_aglu_L162.ag_prodchange_R_C_Y_GLU_irr <- function(command, ...) { rename(yield_kgHa = Yield_kgHa_rainfed) %>% bind_rows(L162.ag_irrYield_kgHa_Rcrs_Ccrs_Y) %>% group_by(CROSIT_ctry, CROSIT_crop, Irr_Rfd) %>% - mutate(tag1 = ifelse(yield_kgHa[year == 2030] < yield_kgHa[year == 2005], 1, 0), # if 2030 < 2005, then AgProdChange1 = 0 - yield_kgHa = ifelse(tag1 == 1 & year == 2030, yield_kgHa[year == 2005], yield_kgHa), - tag2 = ifelse(yield_kgHa[year == 2050] < yield_kgHa[year == 2030], 1, 0), # if 2050 < 2030, then AgProdChange2 = AgProdChange1 - yield_kgHa = ifelse(tag2 == 1 & year == 2050, yield_kgHa[year == 2030] + 4*(yield_kgHa[year == 2030] - yield_kgHa[year == 2005])/5, yield_kgHa)) %>% + mutate(tag1 = if_else(yield_kgHa[year == 2030] < yield_kgHa[year == 2005], 1, 0), # if 2030 < 2005, then AgProdChange1 = 0 + yield_kgHa = if_else(tag1 == 1 & year == 2030, yield_kgHa[year == 2005], yield_kgHa), + tag2 = if_else(yield_kgHa[year == 2050] < yield_kgHa[year == 2030], 1, 0), # if 2050 < 2030, then AgProdChange2 = AgProdChange1 + yield_kgHa = if_else(tag2 == 1 & year == 2050, yield_kgHa[year == 2030] + 4*(yield_kgHa[year == 2030] - yield_kgHa[year == 2005])/5, yield_kgHa)) %>% # add the missing aglu.SPEC_AG_PROD_YEARS and interpolate the yields complete(year = c(year, aglu.SPEC_AG_PROD_YEARS) , CROSIT_ctry, CROSIT_crop, Irr_Rfd) %>% diff --git a/input/gcamdata/R/zaglu_L181.ag_R_C_Y_GLU_irr_mgmt.R b/input/gcamdata/R/zaglu_L181.ag_R_C_Y_GLU_irr_mgmt.R index cda4e19af5..6f58db2411 100644 --- a/input/gcamdata/R/zaglu_L181.ag_R_C_Y_GLU_irr_mgmt.R +++ b/input/gcamdata/R/zaglu_L181.ag_R_C_Y_GLU_irr_mgmt.R @@ -10,10 +10,10 @@ #' a vector of output names, or (if \code{command} is "MAKE") all #' the generated outputs: \code{L181.LC_bm2_R_C_Yh_GLU_irr_level}, \code{L181.ag_EcYield_kgm2_R_C_Y_GLU_irr_level}, \code{L181.ag_Prod_Mt_R_C_Y_GLU_irr_level}, \code{L181.YieldMult_R_bio_GLU_irr}, \code{L181.LandShare_R_bio_GLU_irr}. The corresponding file in the #' original data system was \code{LB181.ag_R_C_Y_GLU_irr_mgmt.R} (aglu level1). -#' @details This chunk calulates the economic yields, cropland cover and production by GCAM region / commodity / year / GLU / irrigation / mgmt level. +#' @details This chunk calculates the economic yields, cropland cover and production by GCAM region / commodity / year / GLU / irrigation / mgmt level. #' Currently the yield multipliers by high and low yield management are set at the same value for all region / commodity / year / GLU / irrigation, #' and the land share by high and low yield management is 50 percent by each. But this chunk is also a placeholder for a generic method of calculating specific -#' yield mutipliers and land shares for each region / commodity / GLU / irrigation level. +#' yield multipliers and land shares for each region / commodity / GLU / irrigation level. #' @importFrom assertthat assert_that #' @importFrom dplyr bind_rows filter left_join mutate select #' @importFrom tidyr gather diff --git a/input/gcamdata/R/zaglu_L2012.ag_For_Past_bio_input_irr_mgmt.R b/input/gcamdata/R/zaglu_L2012.ag_For_Past_bio_input_irr_mgmt.R index 8dbbfac38f..2ba3a2ac26 100644 --- a/input/gcamdata/R/zaglu_L2012.ag_For_Past_bio_input_irr_mgmt.R +++ b/input/gcamdata/R/zaglu_L2012.ag_For_Past_bio_input_irr_mgmt.R @@ -116,7 +116,11 @@ module_aglu_L2012.ag_For_Past_bio_input_irr_mgmt <- function(command, ...) { select(GCAM_region_ID, GCAM_commodity, GCAM_subsector, GLU) %>% unique %>% bind_rows( - bind_rows(L123.For_Prod_bm3_R_Y_GLU %>%mutate(GCAM_subsector=Land_Type), L123.ag_Prod_Mt_R_Past_Y_GLU%>%mutate(GCAM_subsector=GCAM_commodity)) %>% + bind_rows(L123.For_Prod_bm3_R_Y_GLU %>% + mutate(GCAM_subsector=Land_Type) %>% + rename(GCAM_subsector = GCAM_subsector), + L123.ag_Prod_Mt_R_Past_Y_GLU %>% + mutate(GCAM_subsector=GCAM_commodity)) %>% transmute(GCAM_region_ID, GCAM_commodity, GCAM_subsector , GLU) %>% unique, L201.R_C_GLU_biograss, L201.R_C_GLU_biotree @@ -161,7 +165,7 @@ module_aglu_L2012.ag_For_Past_bio_input_irr_mgmt <- function(command, ...) { # L2012.AgProduction_For and L2012.AgProduction_Past: Forest and pasture product calibration (output) L123.For_Prod_bm3_R_Y_GLU %>% - filter(GCAM_commodity== aglu.FOREST_supply_sector) %>% + filter(GCAM_commodity== aglu.FOREST_SUPPLY_SECTOR) %>% # Combine forest and pasture production by region x GLU bind_rows(L123.ag_Prod_Mt_R_Past_Y_GLU) %>% filter(year %in% MODEL_BASE_YEARS) %>% @@ -407,7 +411,7 @@ module_aglu_L2012.ag_For_Past_bio_input_irr_mgmt <- function(command, ...) { L2012.AgProduction_ag_irr_mgmt L2012.AgProduction_For_Past %>% - filter(AgSupplySector %in% aglu.FOREST_supply_sector) %>% + filter(AgSupplySector %in% aglu.FOREST_SUPPLY_SECTOR) %>% add_title("Input table for forest production") %>% add_units("bm3") %>% add_comments("Calibrated ouputs or shareweights are not specify by technology") %>% diff --git a/input/gcamdata/R/zaglu_L202.an_input.R b/input/gcamdata/R/zaglu_L202.an_input.R index bbca37435d..5eae324b66 100644 --- a/input/gcamdata/R/zaglu_L202.an_input.R +++ b/input/gcamdata/R/zaglu_L202.an_input.R @@ -98,7 +98,7 @@ module_aglu_L202.an_input <- function(command, ...) { get_data_list(all_data, MODULE_INPUTS, strip_attributes = TRUE) - L110.For_ALL_bm3_R_Y <- L110.For_ALL_bm3_R_Y %>% filter(GCAM_commodity %in% aglu.FOREST_commodities) %>% group_by(GCAM_commodity, GCAM_region_ID,year) %>% + L110.For_ALL_bm3_R_Y <- L110.For_ALL_bm3_R_Y %>% filter(GCAM_commodity %in% aglu.FOREST_COMMODITIES) %>% group_by(GCAM_commodity, GCAM_region_ID,year) %>% mutate(value=sum(Prod_bm3)) %>% ungroup() %>% select(GCAM_commodity, GCAM_region_ID,year,value) %>% distinct() %>% mutate(GCAM_commodity= paste0(GCAM_commodity,"_processing")) L110.IO_Coefs_pulp <-L110.IO_Coefs_pulp L1321.For_Cost <- L1321.For_Cost %>% mutate(GCAM_commodity = paste0(GCAM_commodity, "_processing")) @@ -309,13 +309,13 @@ module_aglu_L202.an_input <- function(command, ...) { tech.share.weight = if_else(calOutputValue > 0, 1, 0)) %>% select(LEVEL2_DATA_NAMES[["StubTechProd"]]) %>% #Take out forest supply sectors from this - filter(!stub.technology %in% c(aglu.FOREST_commodities, "woodpulp_energy"))-> + filter(!stub.technology %in% c(aglu.FOREST_COMMODITIES, "woodpulp_energy"))-> L202.StubTechProd_in A_an_input_technology %>% write_to_all_regions(c(LEVEL2_DATA_NAMES[["Tech"]]), GCAM_region_names) %>% mutate(stub.technology = technology) %>% - filter(stub.technology %in% aglu.FOREST_commodities) %>% + filter(stub.technology %in% aglu.FOREST_COMMODITIES) %>% repeat_add_columns(tibble(year = MODEL_BASE_YEARS)) %>% # not every region/technology/year has a match, so need to use left_join left_join(L110.For_ALL_bm3_R_Y %>% left_join_error_no_match(GCAM_region_names, by = c("GCAM_region_ID")), by = c("region", "supplysector" = "GCAM_commodity", "year")) %>% @@ -420,13 +420,13 @@ module_aglu_L202.an_input <- function(command, ...) { A_an_input_technology %>% write_to_all_regions(c(LEVEL2_DATA_NAMES[["Tech"]], "minicam.energy.input", "market.name"), GCAM_region_names) %>% rename(stub.technology = technology) %>% - filter(stub.technology %in% aglu.FOREST_commodities) %>% + filter(stub.technology %in% aglu.FOREST_COMMODITIES) %>% repeat_add_columns(tibble(year = c(MODEL_BASE_YEARS, MODEL_FUTURE_YEARS))) %>% left_join(L110.IO_Coefs_pulp%>% left_join_error_no_match(GCAM_region_names, by = c("GCAM_region_ID")), by = c("region","year")) %>% mutate(coefficient = IO, - coefficient=if_else(stub.technology == "woodpulp",aglu.FOREST_pulp_conversion,coefficient)) %>% + coefficient=if_else(stub.technology == "woodpulp",aglu.FOREST_PULP_CONVERSION,coefficient)) %>% group_by(GCAM_region_ID,stub.technology) %>% - mutate(coefficient= ifelse(is.na(coefficient),approx_fun(year, coefficient, rule = 1),coefficient)) %>% + mutate(coefficient= if_else(is.na(coefficient),approx_fun(year, coefficient, rule = 1),coefficient)) %>% ungroup() %>% select(colnames(L202.StubTechCoef_an))->L202.StubTechCoef_an_Forest @@ -439,8 +439,8 @@ module_aglu_L202.an_input <- function(command, ...) { filter(year == MODEL_FINAL_BASE_YEAR) %>% select(GCAM_region_ID, coefficient) %>% # adjusted IO values will be assigned to the year they are fully phased in, and interpolated for years in between. We are basically maintaining calibration values to 2100 - mutate(year = PHASE_IN_YEAR) %>% - mutate(coefficient = coefficient) + mutate(year = PHASE_IN_YEAR, + coefficient = coefficient) A_an_input_technology %>% write_to_all_regions(c(LEVEL2_DATA_NAMES[["Tech"]], "minicam.energy.input", "market.name"), GCAM_region_names) %>% diff --git a/input/gcamdata/R/zaglu_L203.ag_an_demand_input.R b/input/gcamdata/R/zaglu_L203.ag_an_demand_input.R index d2b93663a1..a6aaadff83 100644 --- a/input/gcamdata/R/zaglu_L203.ag_an_demand_input.R +++ b/input/gcamdata/R/zaglu_L203.ag_an_demand_input.R @@ -259,7 +259,7 @@ module_aglu_L203.ag_an_demand_input <- function(command, ...) { L203.For_ALL_bm3_R_Y A_demand_technology_R_Yh %>% - filter(supplysector %in% aglu.FOREST_demand_sectors) %>% + filter(supplysector %in% aglu.FOREST_DEMAND_SECTORS) %>% # Map in forest product demand in bm3 left_join_error_no_match(L203.For_ALL_bm3_R_Y, by = c("region", "year","supplysector"="GCAM_commodity")) %>% mutate(calOutputValue = round(Cons_bm3, aglu.DIGITS_CALOUTPUT), diff --git a/input/gcamdata/R/zaglu_L2042.resbio_input_irr_mgmt.R b/input/gcamdata/R/zaglu_L2042.resbio_input_irr_mgmt.R index 98e7a16e49..46fac69fe7 100644 --- a/input/gcamdata/R/zaglu_L2042.resbio_input_irr_mgmt.R +++ b/input/gcamdata/R/zaglu_L2042.resbio_input_irr_mgmt.R @@ -2,8 +2,8 @@ #' module_aglu_L2042.resbio_input_irr_mgmt #' -#' Produce a table of global Mill Residue Biomass Paramters by year, a table of regional Forest Residue Biomass Paramters by year, and a table of -#' Agricultural Residue Biomass Paramters by irrigation-management level-year. This chunk also produces tables by region and year of residue biomass supply +#' Produce a table of global Mill Residue Biomass Parameters by year, a table of regional Forest Residue Biomass Parameters by year, and a table of +#' Agricultural Residue Biomass Parameters by irrigation-management level-year. This chunk also produces tables by region and year of residue biomass supply #' curves for Mill, Forest, and Agriculture. #' #' @param command API command to execute @@ -18,7 +18,7 @@ #' this table, base supply curves are read in from A_resbio_curves and then, in specified calibration years MODEL_BASE_YEARS, replaced by #' fractions in A_bio_frac_prod_R to form the table of Forest resbio supply curves for each region and year. #' -#' For Mill Residue Biomass, sector, subsector, and technology combinations for NonFoodDeman_Forest are pulled from A_demand_technology, +#' For Mill Residue Biomass, sector, subsector, and technology combinations for NonFoodDemand_Forest are pulled from A_demand_technology, #' and externally set parameters are added to form the table of global Mill residue biomass parameters in each year. Sector, subsector, #' and technology combinations from this table are repeated for each GCAM region and year, base supply curves are read in from #' A_resbio_curves and then, in specified calibration years MODEL_BASE_YEARS, replaced by fractions in A_bio_frac_prod_R to form the table of @@ -108,8 +108,8 @@ module_aglu_L2042.resbio_input_irr_mgmt <- function(command, ...) { left_join(L120.Rotation.Age, by = c("GCAM_region_ID","GLU","LT")) %>% mutate(rotation= if_else(is.na(rotation),35,rotation)) %>% left_join(L110.IO_Coefs_pulp %>% filter(year==MODEL_FINAL_BASE_YEAR) %>% select(-year), by= c("GCAM_region_ID")) %>% - mutate(IO=if_else(is.na(IO),1,IO)) %>% - mutate(eros.ctrl = erosCtrl/rotation, + mutate(IO=if_else(is.na(IO),1,IO), + eros.ctrl = erosCtrl/rotation, harvest.index= harvest.index/IO) %>% group_by(GCAM_region_ID, GCAM_commodity, GLU,LT) %>% mutate(mass.conversion= mean(mass.conversion)) %>% @@ -121,7 +121,7 @@ module_aglu_L2042.resbio_input_irr_mgmt <- function(command, ...) { group_by(GCAM_region_ID) %>% arrange(year) %>% mutate(harvest.index= if_else(year==tail(MODEL_FUTURE_YEARS,n=1),aglu.FOREST_HARVEST_INDEX,harvest.index), - harvest.index= ifelse(is.na(harvest.index), approx_fun(year,harvest.index),harvest.index)) %>% + harvest.index= if_else(is.na(harvest.index), approx_fun(year,harvest.index),harvest.index)) %>% ungroup() } # end add_bio_res_params_For_Mill_Forest @@ -154,9 +154,9 @@ module_aglu_L2042.resbio_input_irr_mgmt <- function(command, ...) { ungroup() %>% distinct() - # 1. Form a table of Forest Residue Biomass Paramters by region-glu-year + # 1. Form a table of Forest Residue Biomass Parameters by region-glu-year L123.For_Prod_bm3_R_Y_GLU %>% - filter(GCAM_commodity== aglu.FOREST_supply_sector) %>% + filter(GCAM_commodity== aglu.FOREST_SUPPLY_SECTOR) %>% mutate(LT= Land_Type ) %>% # Set up identifying information to fill in with parameters, incl 2. @@ -171,10 +171,10 @@ module_aglu_L2042.resbio_input_irr_mgmt <- function(command, ...) { L204.AgResBio_For - # 2. Form a table of global Mill Residue Biomass Paramters by year + # 2. Form a table of global Mill Residue Biomass Parameters by year A_demand_technology %>% #Filter here only for sawmills. Don't calculate this for pulpwood. Now GCAM will calculate black liquor from pulping explicitly. - filter(supplysector %in% aglu.FOREST_demand_sectors[1]) %>% + filter(supplysector %in% aglu.FOREST_DEMAND_SECTORS[1]) %>% select(supplysector, subsector, technology) %>% rename(sector.name = supplysector, subsector.name = subsector) %>% @@ -185,12 +185,12 @@ module_aglu_L2042.resbio_input_irr_mgmt <- function(command, ...) { #Create a separate table for pulping residues A_demand_technology %>% #Filter here only for sawmills. Don't calculate this for pulpwood - filter(supplysector %in% aglu.FOREST_demand_sectors[2]) %>% + filter(supplysector %in% aglu.FOREST_DEMAND_SECTORS[2]) %>% select(supplysector, subsector, technology) %>% rename(sector.name = supplysector, subsector.name = subsector) %>% add_bio_res_params_For_Mill(erosCtrl = aglu.MILL_EROSION_CTRL_KGM2, - massConversion = (mean(c(aglu.AVG_WOOD_DENSITY_KGM3_HARDWOOD,aglu.AVG_WOOD_DENSITY_KGM3_SOFTWOOD)))*aglu.FOREST_pulp_conversion) -> + massConversion = (mean(c(aglu.AVG_WOOD_DENSITY_KGM3_HARDWOOD,aglu.AVG_WOOD_DENSITY_KGM3_SOFTWOOD)))*aglu.FOREST_PULP_CONVERSION) -> L204.GlobalResBio_Mill_pulp L204.GlobalResBio_Mill %>% bind_rows(L204.GlobalResBio_Mill_pulp)->L204.GlobalResBio_Mill @@ -263,7 +263,7 @@ module_aglu_L2042.resbio_input_irr_mgmt <- function(command, ...) { # AGRICULTURE RESIDUE BIO - # 4. Form a table of Agricultural Residue Biomass Paramters by region-glu-year + # 4. Form a table of Agricultural Residue Biomass Parameters by region-glu-year L101.ag_Prod_Mt_R_C_Y_GLU %>% select(GCAM_region_ID, GCAM_commodity, GCAM_subsector, GLU) %>% distinct %>% @@ -311,7 +311,8 @@ module_aglu_L2042.resbio_input_irr_mgmt <- function(command, ...) { add_precursors("common/GCAM_region_names", "water/basin_to_country_mapping", "L123.For_Prod_bm3_R_Y_GLU", - "L120.LC_soil_veg_carbon_GLU") -> + "L120.LC_soil_veg_carbon_GLU", + "L110.IO_Coefs_pulp") -> L2042.AgResBio_For L204.AgResBioCurve_For %>% add_title("Forest residue biomass supply curves") %>% diff --git a/input/gcamdata/R/zaglu_L2052.ag_prodchange_cost_irr_mgmt.R b/input/gcamdata/R/zaglu_L2052.ag_prodchange_cost_irr_mgmt.R index 1deb657bc3..1e6ca11819 100644 --- a/input/gcamdata/R/zaglu_L2052.ag_prodchange_cost_irr_mgmt.R +++ b/input/gcamdata/R/zaglu_L2052.ag_prodchange_cost_irr_mgmt.R @@ -149,7 +149,7 @@ module_aglu_L2052.ag_prodchange_cost_irr_mgmt <- function(command, ...) { unique() %>% # Copy costs to all model years repeat_add_columns(tibble(year = MODEL_YEARS)) %>% - repeat_add_columns(tibble(GCAM_commodity= aglu.FOREST_supply_sector)) %>% + repeat_add_columns(tibble(GCAM_commodity= aglu.FOREST_SUPPLY_SECTOR)) %>% left_join_error_no_match(GCAM_region_names, by = "GCAM_region_ID") %>% left_join_error_no_match(basin_to_country_mapping[c("GLU_code", "GLU_name")], by = c("GLU" = "GLU_code")) %>% # Add sector, subsector, technology names diff --git a/input/gcamdata/R/zaglu_L2062.ag_Fert_irr_mgmt.R b/input/gcamdata/R/zaglu_L2062.ag_Fert_irr_mgmt.R index e7c3a814a3..f4c1505e1f 100644 --- a/input/gcamdata/R/zaglu_L2062.ag_Fert_irr_mgmt.R +++ b/input/gcamdata/R/zaglu_L2062.ag_Fert_irr_mgmt.R @@ -138,7 +138,13 @@ module_aglu_L2062.ag_Fert_irr_mgmt <- function(command, ...) { # If we wanted we could apply regional fertilizer adjustments here. # Since we are handling negative profits with the min cal profit rate there is no pressing need at the moment. mutate(nonLandVariableCost = round(nonLandVariableCost - FertCost, aglu.DIGITS_CALPRICE)) %>% - select(-minicam.energy.input, -coefficient, -FertCost) -> + select(-minicam.energy.input, -coefficient, -FertCost) %>% + # Given the historical price of biomass is solved we could end up with negative profit rates + # when trying to calibrate "ghost" share weights. Which conceptually makes sense but mechanically + # is an issue. Instead we will modify meaning of the ghost share weight by scaling down costs during + # calibration only. Then to actually realize the ghost share the price must go up (or costs go down) + # accordingly in future periods. + mutate(nonLandVariableCost = if_else(year == MODEL_FINAL_BASE_YEAR, nonLandVariableCost * aglu.BIO_GHOST_CAL_COST_SCALER, nonLandVariableCost)) -> L2062.AgCost_bio_irr_mgmt_adj # Produce outputs diff --git a/input/gcamdata/R/zaglu_L221.land_input_1.R b/input/gcamdata/R/zaglu_L221.land_input_1.R index 0e12c8d4a0..12a0ff9d71 100644 --- a/input/gcamdata/R/zaglu_L221.land_input_1.R +++ b/input/gcamdata/R/zaglu_L221.land_input_1.R @@ -21,7 +21,7 @@ #' External soil time scale assumptions for each AGLU region."} #' \item{"L221.LN1_ValueLogit Unmanaged land value by region and GLU, and logit exponent of first nest. #' L131 land value data is joined with LandNode Logit assumptions.A minimum value is set to ensure all -#' regins have a nonzero land value."} +#' regions have a nonzero land value."} #' \item{"L221.LN1_HistUnmgdAllocation Historical land cover fora unmanaged land (LT_GLU) in the first nest by region. #' Historical land cover for unmanaged land in the first nest, from L125 land cover data."} #' \item{"L221.LN1_UnmgdAllocation Land cover in the model base periods for unmanaged land (LT_GLU) in the first nest by region. @@ -356,14 +356,18 @@ module_aglu_L221.land_input_1 <- function(command, ...) { add_title("Unmanaged land value by region and GLU, and logit exponent of first nest") %>% add_units("1975USD/thousand square kilometers") %>% add_comments("L131 land value data is joined with LandNode Logit assumptions.") %>% - add_comments("A minimum value is set to ensure all regins have a nonzero land value.") %>% + add_comments("A minimum value is set to ensure all regions have a nonzero land value.") %>% add_legacy_name("L221.LN1_ValueLogit") %>% add_precursors("common/GCAM_region_names", "water/basin_to_country_mapping", "aglu/A_LandNode_logit", "aglu/A_LT_Mapping", "L125.LC_bm2_R_LT_Yh_GLU", - "L131.LV_USD75_m2_R_GLU") -> + "L131.LV_USD75_m2_R_GLU", + "L2252.LN5_MgdAllocation_crop", + "L2012.AgProduction_ag_irr_mgmt", + "L2012.AgSupplySector", + "L2052.AgCost_ag_irr_mgmt") -> L221.LN1_ValueLogit L221.LN1_HistUnmgdAllocation %>% add_title("Historical land cover fora unmanaged land (LT_GLU) in the first nest by region") %>% diff --git a/input/gcamdata/R/zaglu_L2242.land_input_4_irr_mgmt.R b/input/gcamdata/R/zaglu_L2242.land_input_4_irr_mgmt.R index 1dcad5eece..911a69676c 100644 --- a/input/gcamdata/R/zaglu_L2242.land_input_4_irr_mgmt.R +++ b/input/gcamdata/R/zaglu_L2242.land_input_4_irr_mgmt.R @@ -3,7 +3,7 @@ #' module_aglu_L2242.land_input_4_irr_mgmt #' #' Generate logit exponent of the fourth land node that specifies crop commodity and GLU by region, -#' and generate the ghost node share for the bionenergy node. +#' and generate the ghost node share for the bioenergy node. #' #' @param command API command to execute #' @param ... other optional parameters, depending on command @@ -12,7 +12,7 @@ #' the generated outputs: \code{L2242.LN4_Logit}, \code{L2242.LN4_NodeGhostShare}, \code{L2242.LN4_NodeIsGhostShareRel}. The corresponding file in the #' original data system was \code{L2242.land_input_4_irr_mgmt.R} (aglu level2). #' @details This chunk generates the logit exponent of the fourth land nest that specifies crop commodity and GLU by region, -#' and the ghost node share for the bionenergy node in future years, and specifies whether the bionenergy ghost node share is relative. +#' and the ghost node share for the bioenergy node in future years, and specifies whether the bioenergy ghost node share is relative. #' @importFrom assertthat assert_that #' @importFrom dplyr bind_rows distinct filter if_else left_join mutate select #' @importFrom tidyr separate @@ -140,6 +140,7 @@ module_aglu_L2242.land_input_4_irr_mgmt <- function(command, ...) { add_precursors("L2012.AgYield_bio_ref", "aglu/A_bio_ghost_share", "aglu/A_biomassSupplyShare_R", + "common/GCAM_region_names", "aglu/A_LT_Mapping") -> L2242.LN4_NodeGhostShare diff --git a/input/gcamdata/R/zaglu_L2252.land_input_5_irr_mgmt.R b/input/gcamdata/R/zaglu_L2252.land_input_5_irr_mgmt.R index 689ced6a91..02c3ce60dd 100644 --- a/input/gcamdata/R/zaglu_L2252.land_input_5_irr_mgmt.R +++ b/input/gcamdata/R/zaglu_L2252.land_input_5_irr_mgmt.R @@ -335,8 +335,8 @@ module_aglu_L2252.land_input_5_irr_mgmt <- function(command, ...) { # see biomassGrass_mature_age and biomassTree_mature_age in constants.R L2252.LN5_MgdCarbon_bio %>% - mutate(mature.age = if_else(grepl("biomassGrass", LandNode4), (biomassGrass_mature_age), mature.age), - mature.age = if_else(grepl("biomassTree", LandNode4), (biomassTree_mature_age), mature.age)) -> + mutate(mature.age = if_else(grepl("biomassGrass", LandNode4), (aglu.BIOMASSGRASS_MATURE_AGE), mature.age), + mature.age = if_else(grepl("biomassTree", LandNode4), (aglu.BIOMASSTREE_MATURE_AGE), mature.age)) -> L2252.LN5_MgdCarbon_bio diff --git a/input/gcamdata/R/zaglu_L240.ag_trade.R b/input/gcamdata/R/zaglu_L240.ag_trade.R index 66ede07ef2..d028ae2ac8 100644 --- a/input/gcamdata/R/zaglu_L240.ag_trade.R +++ b/input/gcamdata/R/zaglu_L240.ag_trade.R @@ -123,7 +123,7 @@ module_aglu_L240.ag_trade <- function(command, ...) { # L240.TechCoef_tra: Coefficient and market name of traded technologies L240.TechCoef_tra <- select(A_agTradedTechnology_R_Y, LEVEL2_DATA_NAMES[["TechCoef"]]) %>% - mutate(minicam.energy.input = if_else(minicam.energy.input %in% aglu.FOREST_commodities,paste0(minicam.energy.input, "_processing"),minicam.energy.input)) + mutate(minicam.energy.input = if_else(minicam.energy.input %in% aglu.FOREST_COMMODITIES,paste0(minicam.energy.input, "_processing"),minicam.energy.input)) # L240.Production_tra: Output (gross exports) of traded technologies @@ -139,7 +139,7 @@ module_aglu_L240.ag_trade <- function(command, ...) { mutate(share.weight.year = year, subs.share.weight = if_else(calOutputValue > 0, 1, 0), tech.share.weight = subs.share.weight) %>% - mutate(minicam.energy.input = if_else(minicam.energy.input %in% aglu.FOREST_commodities,paste0(minicam.energy.input, "_processing"),minicam.energy.input)) %>% + mutate(minicam.energy.input = if_else(minicam.energy.input %in% aglu.FOREST_COMMODITIES,paste0(minicam.energy.input, "_processing"),minicam.energy.input)) %>% select(LEVEL2_DATA_NAMES[["Production"]]) # 2: DOMESTIC SUPPLY SECTOR / SUBSECTOR / TECHNOLOGY") ---- @@ -164,7 +164,7 @@ module_aglu_L240.ag_trade <- function(command, ...) { # L240.TechCoef_reg: Coefficient and market name of traded technologies L240.TechCoef_reg <- select(A_agRegionalTechnology_R_Y, LEVEL2_DATA_NAMES[["TechCoef"]]) %>% - mutate(minicam.energy.input= if_else(minicam.energy.input %in% aglu.FOREST_commodities, paste0(minicam.energy.input, "_processing"),minicam.energy.input)) + mutate(minicam.energy.input= if_else(minicam.energy.input %in% aglu.FOREST_COMMODITIES, paste0(minicam.energy.input, "_processing"),minicam.energy.input)) # L240.Production_reg_imp: Output (flow) of gross imports # Imports are equal to the gross imports calculated in L1091 @@ -228,7 +228,7 @@ module_aglu_L240.ag_trade <- function(command, ...) { share.weight.year = year, subs.share.weight = if_else(calOutputValue > 0, 1, 0), tech.share.weight = subs.share.weight) %>% - mutate(minicam.energy.input = if_else(minicam.energy.input %in% aglu.FOREST_commodities,paste0(minicam.energy.input, "_processing"),minicam.energy.input)) %>% + mutate(minicam.energy.input = if_else(minicam.energy.input %in% aglu.FOREST_COMMODITIES,paste0(minicam.energy.input, "_processing"),minicam.energy.input)) %>% select(LEVEL2_DATA_NAMES[["Production"]]) # Produce outputs diff --git a/input/gcamdata/R/zaglu_xml_ag_storage.R b/input/gcamdata/R/zaglu_xml_ag_storage.R index b4b487ca9e..282deb5a08 100644 --- a/input/gcamdata/R/zaglu_xml_ag_storage.R +++ b/input/gcamdata/R/zaglu_xml_ag_storage.R @@ -38,8 +38,8 @@ module_aglu_batch_ag_storage_xml <- function(command, ...) { L113.StorageTechAndPassThrough %>% filter(storage_model == FALSE) %>% rename(technology = food.storage.technology) %>% - mutate(technology = "no-storage-pass-through") %>% - mutate(minicam.non.energy.input = "border-cost", input.cost = 0) -> + mutate(technology = "no-storage-pass-through", + minicam.non.energy.input = "border-cost", input.cost = 0) -> L113.PassThroughTable # 0. Shared tables @@ -125,8 +125,8 @@ module_aglu_batch_ag_storage_xml <- function(command, ...) { fst_RESSecOut <- L113.StorageTechTable %>% - mutate(res.secondary.output = GCAM_commodity) %>% - mutate(output.ratio = 1, pMultiplier = 0) %>% + mutate(res.secondary.output = GCAM_commodity, + output.ratio = 1, pMultiplier = 0) %>% select(LEVEL2_DATA_NAMES[["FoodTechRESSecOut"]]) fst_RESSecOut <- diff --git a/input/gcamdata/R/zemissions_L102.nonco2_ceds_R_S_Y.R b/input/gcamdata/R/zemissions_L102.nonco2_ceds_R_S_Y.R index 6a3a1f4e3f..dc0a63aefe 100644 --- a/input/gcamdata/R/zemissions_L102.nonco2_ceds_R_S_Y.R +++ b/input/gcamdata/R/zemissions_L102.nonco2_ceds_R_S_Y.R @@ -3,7 +3,7 @@ #' module_emissions_L102.nonco2_ceds_R_S_Y #' #' Calculates emissions using CEDS and CMIP emissions data for all sectors and fuels and aggregates to GCAM regions. Note that the outputs of this chunk are a part of the prebuilt data. -#' To change the ouputs of this chunk, add CEDS data to the CEDS folder under emissions and rebuild prebuilt data. +#' To change the outputs of this chunk, add CEDS data to the CEDS folder under emissions and rebuild prebuilt data. #' @param command API command to execute #' @param ... other optional parameters, depending on command #' @return Depends on \code{command}: either a vector of required inputs, diff --git a/input/gcamdata/R/zemissions_L112.ceds_ghg_en_R_S_T_Y.R b/input/gcamdata/R/zemissions_L112.ceds_ghg_en_R_S_T_Y.R index 42a0a852f2..a22a58bf1f 100644 --- a/input/gcamdata/R/zemissions_L112.ceds_ghg_en_R_S_T_Y.R +++ b/input/gcamdata/R/zemissions_L112.ceds_ghg_en_R_S_T_Y.R @@ -924,7 +924,7 @@ module_emissions_L112.ceds_ghg_en_R_S_T_Y <- function(command, ...) { stub.technology, emfact, energy)-> L112.nonco2_tgej_R_en_S_F_Yh_with_oil_adjustment - #Generate threshold for replacing emissions factors that are too high + # Generate threshold for replacing emissions factors that are too high L112.nonco2_tgej_R_en_S_F_Yh_with_oil_adjustment %>% replace_na(list(emfact = 0)) %>% group_by(year, Non.CO2, supplysector, subsector, stub.technology) %>% @@ -951,11 +951,28 @@ module_emissions_L112.ceds_ghg_en_R_S_T_Y <- function(command, ...) { left_join_error_no_match(L112.nonco2_tgej_R_en_S_F_Yh_thresholds, by = c("year", "Non.CO2", "supplysector", "subsector", "stub.technology")) %>% #There are two adjustments here. First, we check if the supply sector is related to fossil fuels (except unconventional oil, since this is done exogenously), in that case, if the emissions factor is above the threshold, we replace with the median of the top producers. #If not, we just compare with our threshold of 1000 tg/ej and make the replacements accordingly. These adjustments are structured given that fossil fuel production may increase rapidly in some regions (even though absolute increase may be low). - mutate(emfact = if_else(supplysector == "out_resources" & stub.technology != "unconventional oil", if_else(emfact >threshold | is.na(emfact) , medTopEF, emfact), + mutate(emfact = if_else(supplysector == "out_resources" & stub.technology != "unconventional oil", if_else(emfact > threshold | is.na(emfact) , medTopEF, emfact), if_else(emfact > emissions.HIGH_EM_FACTOR_THRESHOLD | is.na(emfact) , medGlobal, emfact))) %>% select(GCAM_region_ID, Non.CO2, year, supplysector, subsector, stub.technology, emfact) %>% mutate(emfact = if_else(is.infinite(emfact), 1, emfact)) -> - L112.nonco2_tgej_R_en_S_F_Yh + L112.nonco2_tgej_R_en_S_F_Yh_replace_outliers + + ## Replace outlier EFs with the global median for all sectors except out_resources, which was replaced above based on a different method + L112.nonco2_tgej_R_en_S_F_Yh_remainder <- L112.nonco2_tgej_R_en_S_F_Yh_replace_outliers %>% + filter(supplysector != "out_resources") + + # list columns to group by (emission factor medians will based on this grouping) + to_group <- c( "year", "Non.CO2", "supplysector", "subsector", "stub.technology" ) + # list columns to keep in final table + names <- c( "GCAM_region_ID", "Non.CO2", "year", "supplysector", "subsector", "stub.technology", "emfact") + # Name of column containing emission factors + ef_col_name <- "emfact" + L112.nonco2_tgej_R_en_S_F_Yh_remainder_out <- replace_outlier_EFs(L112.nonco2_tgej_R_en_S_F_Yh_remainder, to_group, names, ef_col_name) + + L112.nonco2_tgej_R_en_S_F_Yh <- L112.nonco2_tgej_R_en_S_F_Yh_remainder_out %>% + bind_rows(L112.nonco2_tgej_R_en_S_F_Yh_replace_outliers %>% + filter(supplysector == "out_resources")) + diff --git a/input/gcamdata/R/zemissions_L142.pfc_R_S_T_Y.R b/input/gcamdata/R/zemissions_L142.pfc_R_S_T_Y.R index 559a908cd4..d7a3922178 100644 --- a/input/gcamdata/R/zemissions_L142.pfc_R_S_T_Y.R +++ b/input/gcamdata/R/zemissions_L142.pfc_R_S_T_Y.R @@ -12,11 +12,11 @@ #' original data system was \code{L142.pfc_R_S_T_Y.R} (emissions level1). #' @details First, a table was created that has all historical HFCs values. #' Then, regional and sector information was added. And finally, HFC emission shares -#' were calculated by suming emissions over region, sector, technology, and gas by year. +#' were calculated by summing emissions over region, sector, technology, and gas by year. #' @importFrom assertthat assert_that #' @importFrom dplyr filter mutate select #' @importFrom tidyr gather spread -#' @author CDL June 2017 and YO Feburary 2020 +#' @author CDL June 2017 and YO February 2020 module_emissions_L142.pfc_R_S_T_Y <- function(command, ...) { if(command == driver.DECLARE_INPUTS) { return(c(FILE = "common/GCAM_region_names", diff --git a/input/gcamdata/R/zemissions_L201.en_nonco2.R b/input/gcamdata/R/zemissions_L201.en_nonco2.R index df446a155a..c2274beb8b 100644 --- a/input/gcamdata/R/zemissions_L201.en_nonco2.R +++ b/input/gcamdata/R/zemissions_L201.en_nonco2.R @@ -8,7 +8,7 @@ #' @param ... other optional parameters, depending on command #' @return Depends on \code{command}: either a vector of required inputs, #' a vector of output names, or (if \code{command} is "MAKE") all -#' the generated outputs: \code{L201.en_pol_emissions}, \code{L201.en_ghg_emissions}, \code{L201.en_bcoc_emissions}, \code{L201.OutputEmissions_elec}, \code{L201.nonghg_max_reduction}, \code{L201.nonghg_steepness}, \code{L201.nonghg_max_reduction_res}, \code{L201.nonghg_steepness_res}, \code{L201.nonghg_res}, \code{L201.ghg_res}, \code{L201.ResReadInControl_nonghg_res}, \code{L201.ResReadInControl_ghg_res}. The corresponding file in the +#' the generated outputs: \code{L201.en_pol_emissions}, \code{L201.en_ghg_emissions}, \code{L201.en_bcoc_emissions}, \code{L201.en_iron_and_steel_ef}, \code{L201.OutputEmissions_elec}, \code{L201.nonghg_max_reduction}, \code{L201.nonghg_steepness}, \code{L201.nonghg_max_reduction_res}, \code{L201.nonghg_steepness_res}, \code{L201.nonghg_res}, \code{L201.ghg_res}, \code{L201.ResReadInControl_nonghg_res}, \code{L201.ResReadInControl_ghg_res}. The corresponding file in the #' original data system was \code{L201.en_nonco2.R} (emissions level2). #' @details Set up all of the inputs needed for the energy system non-CO2 emissions in GCAM. #' This includes historical emissions, drivers (input or output), and pollution controls. @@ -29,6 +29,7 @@ module_emissions_L201.en_nonco2 <- function(command, ...) { "L112.ghg_tgej_R_en_S_F_Yh_infered_combEF_AP", "L114.bcoc_tgej_R_en_S_F_2000", "L151.nonghg_ctrl_R_en_S_T", + "L2323.StubTechProd_iron_steel", FILE = "emissions/A51.steepness", "L244.DeleteThermalService", "L244.DeleteGenericService", @@ -42,6 +43,7 @@ module_emissions_L201.en_nonco2 <- function(command, ...) { return(c("L201.en_pol_emissions", "L201.en_ghg_emissions", "L201.en_bcoc_emissions", + "L201.en_iron_and_steel_ef", "L201.OutputEmissions_elec", "L201.nonghg_max_reduction", "L201.nonghg_steepness", @@ -73,6 +75,7 @@ module_emissions_L201.en_nonco2 <- function(command, ...) { L112.ghg_tgej_R_en_S_F_Yh_infered_combEF_AP <- get_data(all_data, "L112.ghg_tgej_R_en_S_F_Yh_infered_combEF_AP", strip_attributes = TRUE) L114.bcoc_tgej_R_en_S_F_2000 <- get_data(all_data, "L114.bcoc_tgej_R_en_S_F_2000", strip_attributes = TRUE) L151.nonghg_ctrl_R_en_S_T <- get_data(all_data, "L151.nonghg_ctrl_R_en_S_T", strip_attributes = TRUE) + L2323.StubTechProd_iron_steel <- get_data(all_data, "L2323.StubTechProd_iron_steel", strip_attributes = TRUE) A51.steepness <- get_data(all_data, "emissions/A51.steepness", strip_attributes = TRUE) L244.DeleteThermalService <- get_data(all_data, "L244.DeleteThermalService", strip_attributes = TRUE) L244.DeleteGenericService <- get_data(all_data, "L244.DeleteGenericService", strip_attributes = TRUE) @@ -117,35 +120,74 @@ module_emissions_L201.en_nonco2 <- function(command, ...) { mutate(input.emissions = signif(input.emissions, emissions.DIGITS_EMISSIONS)) -> L201.en_pol_emissions - # L201.en_ghg_emissions: GHG emissions for energy technologies in all regions - L112.ghg_tg_R_en_S_F_Yh %>% + # L201.en_pol_emissions: Pollutant emissions for energy technologies in all regions + L111.nonghg_tg_R_en_S_F_Yh %>% filter(supplysector != "out_resources", year %in% emissions.MODEL_BASE_YEARS) %>% # add region name and round output left_join_error_no_match(GCAM_region_names, by = "GCAM_region_ID") %>% left_join_error_no_match(EnTechInputNameMap,by = c("supplysector", "subsector", "stub.technology")) %>% select(region, supplysector, subsector, stub.technology, year, input.emissions = value, Non.CO2, input.name) %>% - mutate(input.emissions = signif(input.emissions, emissions.DIGITS_EMISSIONS)) -> - L201.en_ghg_emissions - - # Add back in correct subsector name for iron and steel sector - L201.en_pol_emissions %>% + mutate(input.emissions = signif(input.emissions, emissions.DIGITS_EMISSIONS)) %>% + # Add back in correct subsector name for iron and steel sector left_join(ind_subsector_revised %>% select(supplysector,subsector.original, technology, minicam.energy.input) %>% rename(stub.technology = technology, input.name = minicam.energy.input), by = c("supplysector", "stub.technology", "input.name")) %>% mutate(subsector = if_else(!is.na(subsector.original),subsector.original,subsector)) %>% select(-subsector.original) -> - L201.en_pol_emissions + L201.en_pol_emissions_remove_IS - L201.en_ghg_emissions %>% + # L201.en_ghg_emissions: GHG emissions for energy technologies in all regions + L112.ghg_tg_R_en_S_F_Yh %>% + filter(supplysector != "out_resources", + year %in% emissions.MODEL_BASE_YEARS) %>% + # add region name and round output + left_join_error_no_match(GCAM_region_names, by = "GCAM_region_ID") %>% + left_join_error_no_match(EnTechInputNameMap,by = c("supplysector", "subsector", "stub.technology")) %>% + select(region, supplysector, subsector, stub.technology, year, input.emissions = value, Non.CO2, input.name) %>% + mutate(input.emissions = signif(input.emissions, emissions.DIGITS_EMISSIONS)) %>% + # Add back in correct subsector name for iron and steel sector left_join(ind_subsector_revised %>% select(supplysector,subsector.original, technology, minicam.energy.input) %>% rename(stub.technology = technology, input.name = minicam.energy.input), by = c("supplysector", "stub.technology", "input.name")) %>% mutate(subsector = if_else(!is.na(subsector.original),subsector.original,subsector)) %>% select(-subsector.original) -> - L201.en_ghg_emissions + L201.en_ghg_emissions_remove_IS + + # Separate processing for iron and steel. Previously, iron and steel was input driven + input emissions assigned to the + # main combustion fuel. This resulted in unexpected behavior, so we are changing them to be output driven EFs, and replacing + # outlier EFs with the global median. + # Iron and Steel will have their own tables, so we can remove it from the previous tables + L201.en_pol_emissions <- L201.en_pol_emissions_remove_IS %>% + filter(supplysector != "iron and steel") + + L201.en_ghg_emissions <- L201.en_ghg_emissions_remove_IS %>% + filter(supplysector != "iron and steel") + + # Compute output emissions factor for iron and steel + L201.en_iron_and_steel_ef_replace_outliers <- L201.en_pol_emissions_remove_IS %>% + filter(supplysector == "iron and steel") %>% + bind_rows(L201.en_ghg_emissions_remove_IS %>% filter(supplysector == "iron and steel")) %>% + # add in the iron and steel output + left_join_error_no_match(L2323.StubTechProd_iron_steel, by = c("region", "supplysector", "subsector", "stub.technology", "year")) %>% + # compute emissions factors + mutate(emiss.coeff = input.emissions/calOutputValue) + + ## Replace outlier EFs with the global median + # list columns to group by (emission factor medians will based on this grouping) + to_group <- c( "year", "Non.CO2", "supplysector", "subsector", "stub.technology" ) + # list columns to keep in final table + names <- c( "region", "Non.CO2", "year", "supplysector", "subsector", "stub.technology", "emiss.coeff") + # Name of column containing emission factors + ef_col_name <- "emiss.coeff" + L201.en_iron_and_steel_ef_fixINF <- replace_outlier_EFs(L201.en_iron_and_steel_ef_replace_outliers, to_group, names, ef_col_name) + + # Some entries still have "Inf" for the EF. In these cases, a global median could not be calculated because there was no output + # in any region within that year. These EFs can be set to 1. + L201.en_iron_and_steel_ef <- L201.en_iron_and_steel_ef_fixINF %>% + mutate(emiss.coeff = if_else(is.infinite(emiss.coeff), 1, emiss.coeff)) EnTechInputNameMap %>% left_join(ind_subsector_revised %>% select(supplysector,subsector.original,fuel,technology, minicam.energy.input) %>% @@ -362,6 +404,7 @@ module_emissions_L201.en_nonco2 <- function(command, ...) { L201.ResReadInControl_nonghg_res <- rename_SO2(L201.ResReadInControl_nonghg_res, A_regions, FALSE) L201.nonghg_steepness_res <- rename_SO2(L201.nonghg_steepness_res, A_regions, FALSE) L201.nonghg_max_reduction_res <- rename_SO2(L201.nonghg_max_reduction_res, A_regions, FALSE) + L201.en_iron_and_steel_ef <- rename_SO2(L201.en_iron_and_steel_ef, A_regions, FALSE) # Remove district heat from regions that do have have it @@ -442,6 +485,21 @@ module_emissions_L201.en_nonco2 <- function(command, ...) { "L244.DeleteThermalService") -> L201.en_bcoc_emissions + L201.en_iron_and_steel_ef %>% + add_title("Pollutant and GHG emission factor for iron and steel technologies in all regions") %>% + add_units("Tg/Mt") %>% + add_comments("Emission factors computed using CEDS emissions and iron and steel output") %>% + add_precursors("common/GCAM_region_names", + "energy/A_regions", + "energy/calibrated_techs", + "energy/calibrated_techs_bld_det", + UCD_tech_map_name, + "L112.ghg_tg_R_en_S_F_Yh", + "L244.DeleteThermalService", + "emissions/mappings/ind_subsector_revised", + "L2323.StubTechProd_iron_steel") -> + L201.en_iron_and_steel_ef + L201.OutputEmissions_elec %>% add_title("GHG and pollutant emissions for the electricity sector") %>% add_units("Tg") %>% @@ -535,7 +593,7 @@ module_emissions_L201.en_nonco2 <- function(command, ...) { same_precursors_as(L201.ghg_res) -> L201.ResReadInControl_ghg_res - return_data(L201.en_pol_emissions, L201.en_ghg_emissions, L201.en_bcoc_emissions, L201.OutputEmissions_elec, L201.nonghg_max_reduction, L201.nonghg_steepness, L201.nonghg_max_reduction_res, L201.nonghg_steepness_res, L201.nonghg_res, L201.ghg_res, L201.ResReadInControl_nonghg_res, L201.ResReadInControl_ghg_res) + return_data(L201.en_pol_emissions, L201.en_ghg_emissions, L201.en_bcoc_emissions, L201.en_iron_and_steel_ef, L201.OutputEmissions_elec, L201.nonghg_max_reduction, L201.nonghg_steepness, L201.nonghg_max_reduction_res, L201.nonghg_steepness_res, L201.nonghg_res, L201.ghg_res, L201.ResReadInControl_nonghg_res, L201.ResReadInControl_ghg_res) } else { stop("Unknown command") } diff --git a/input/gcamdata/R/zemissions_L2112.ag_nonco2_IRR_MGMT.R b/input/gcamdata/R/zemissions_L2112.ag_nonco2_IRR_MGMT.R index 6409f7c8fc..b4f3da11f8 100644 --- a/input/gcamdata/R/zemissions_L2112.ag_nonco2_IRR_MGMT.R +++ b/input/gcamdata/R/zemissions_L2112.ag_nonco2_IRR_MGMT.R @@ -2,7 +2,7 @@ #' module_emissions_L2112.ag_nonco2_IRR_MGMT #' -#' Disaggregate non-CO2 agricultral emissions by production technology +#' Disaggregate non-CO2 agricultural emissions by production technology #' #' @param command API command to execute #' @param ... other optional parameters, depending on command diff --git a/input/gcamdata/R/zemissions_L241.en_newtech_nonco2.R b/input/gcamdata/R/zemissions_L241.en_newtech_nonco2.R index 9673117973..5a58ebda12 100644 --- a/input/gcamdata/R/zemissions_L241.en_newtech_nonco2.R +++ b/input/gcamdata/R/zemissions_L241.en_newtech_nonco2.R @@ -255,8 +255,8 @@ module_emissions_L241.en_newtech_nonco2 <- function(command, ...) { "year")) %>% mutate(emiss.coeff = round(emiss.coeff / efficiency, emissions.DIGITS_EMISS_COEF)) %>% select(LEVEL2_DATA_NAMES[["OutputEmissCoeff"]]) -> - L241.OutputEmissCoeff_elec - L241.nonco2_tech_coeff <- filter(L241.nonco2_tech_coeff, supplysector != "electricity") + L241.OutputEmissCoeff_elec_replace.outliers + L241.nonco2_tech_coeff_replace.outliers <- filter(L241.nonco2_tech_coeff, supplysector != "electricity") L241.nonco2_max_reduction %>% unite(region_bio, region, stub.technology, sep = "~", remove = FALSE) %>% @@ -271,6 +271,28 @@ module_emissions_L241.en_newtech_nonco2 <- function(command, ...) { select(-region_bio) -> L241.nonco2_steepness + ## Replace outlier EFs with the global median + # SO2 is "regional" (SO2_1, SO2_2, etc.). For this pollutant, we find the median by SO2 grouping rather than globally + # In the future, this can be refined to use a global SO2 median. + # list columns to group by (emission factor medians will based on this grouping) + to_group <- c( "year", "Non.CO2", "supplysector", "subsector", "stub.technology" ) + # list columns to keep in final table + names <- c( "region", "Non.CO2", "year", "supplysector", "subsector", "stub.technology", "emiss.coeff") + # Name of column containing emission factors + ef_col_name <- "emiss.coeff" + L241.OutputEmissCoeff_elec <- replace_outlier_EFs(L241.OutputEmissCoeff_elec_replace.outliers, to_group, names, ef_col_name) + + # SO2 is "regional" (SO2_1, SO2_2, etc.). For this pollutant, we find the median by SO2 grouping rather than globally + # In the future, this can be refined to use a global SO2 median. + # list columns to group by (emission factor medians will based on this grouping) + to_group <- c( "year", "Non.CO2", "supplysector", "subsector", "stub.technology" ) + # list columns to keep in final table + names <- c( "region", "Non.CO2", "year", "supplysector", "subsector", "stub.technology", "emiss.coeff", "input.name") + # Name of column containing emission factors + ef_col_name <- "emiss.coeff" + L241.nonco2_tech_coeff <- replace_outlier_EFs(L241.nonco2_tech_coeff_replace.outliers, to_group, names, ef_col_name) + + # =================================================== # Produce outputs diff --git a/input/gcamdata/R/zemissions_L253.emission_controls.R b/input/gcamdata/R/zemissions_L253.emission_controls.R index 2896d5f132..d436e8b2a4 100644 --- a/input/gcamdata/R/zemissions_L253.emission_controls.R +++ b/input/gcamdata/R/zemissions_L253.emission_controls.R @@ -138,8 +138,8 @@ module_emissions_L253.emission_controls <- function(command, ...) { # Get all technologies that have a default generic GDP control, which will be removed if there are new controls in place L201.nonghg_steepness %>% - select(region, supplysector, subsector, stub.technology) %>% - bind_rows(select(L277.nonghg_steepness_USA, region, supplysector, subsector, stub.technology)) -> GDP_controlled_techs + select(region, supplysector, subsector, stub.technology, Non.CO2) %>% + bind_rows(select(L277.nonghg_steepness_USA, region, supplysector, subsector, stub.technology, Non.CO2)) -> GDP_controlled_techs # Define a utility function that returns the next model year. # Because we vectorize the function, the argument can be a vector (or column) of years @@ -260,7 +260,7 @@ module_emissions_L253.emission_controls <- function(command, ...) { # Remove the default generic control since more specific control is in place em_control_data %>% semi_join(GDP_controlled_techs, - by = c("region", "supplysector", "subsector", "stub.technology")) %>% + by = c("region", "supplysector", "subsector", "stub.technology", "Non.CO2")) %>% select(region, supplysector, subsector, stub.technology, linear.control, Non.CO2) %>% mutate(period = head(MODEL_YEARS, n=1), gdp.control = "GDP_control") -> L253.delete_gdp_control diff --git a/input/gcamdata/R/zemissions_xml_all_energy_emissions.R b/input/gcamdata/R/zemissions_xml_all_energy_emissions.R index b3bfc2b7fb..1b407eec7a 100644 --- a/input/gcamdata/R/zemissions_xml_all_energy_emissions.R +++ b/input/gcamdata/R/zemissions_xml_all_energy_emissions.R @@ -13,6 +13,7 @@ module_emissions_all_energy_emissions_xml <- function(command, ...) { input_names <- c("L201.en_pol_emissions", "L201.en_ghg_emissions", + "L201.en_iron_and_steel_ef", "L201.OutputEmissions_elec", "L201.nonghg_max_reduction", "L201.nonghg_steepness", @@ -46,6 +47,7 @@ module_emissions_all_energy_emissions_xml <- function(command, ...) { # Load required inputs L201.en_pol_emissions <- get_data(all_data, "L201.en_pol_emissions") L201.en_ghg_emissions <- get_data(all_data, "L201.en_ghg_emissions") + L201.en_iron_and_steel_ef <- get_data(all_data, "L201.en_iron_and_steel_ef") L201.OutputEmissions_elec <- get_data(all_data, "L201.OutputEmissions_elec") L201.nonghg_max_reduction <- get_data(all_data, "L201.nonghg_max_reduction") L201.nonghg_steepness <- get_data(all_data, "L201.nonghg_steepness") @@ -71,6 +73,7 @@ module_emissions_all_energy_emissions_xml <- function(command, ...) { create_xml("all_energy_emissions.xml") %>% add_xml_data(L201.en_pol_emissions, "InputEmissions") %>% add_xml_data(L201.en_ghg_emissions, "InputEmissions") %>% + add_xml_data(L201.en_iron_and_steel_ef, "OutputEmissCoeff") %>% add_xml_data(L201.OutputEmissions_elec, "OutputEmissions") %>% add_xml_data(L201.nonghg_max_reduction, "GDPCtrlMax") %>% add_xml_data(L201.nonghg_steepness, "GDPCtrlSteep") %>% @@ -91,7 +94,7 @@ module_emissions_all_energy_emissions_xml <- function(command, ...) { add_xml_data(L241.nonco2_max_reduction, "GDPCtrlMax") %>% add_xml_data(L241.nonco2_steepness, "GDPCtrlSteep") %>% add_precursors("L201.en_pol_emissions", "L201.en_ghg_emissions", - "L201.OutputEmissions_elec", + "L201.en_iron_and_steel_ef", "L201.OutputEmissions_elec", "L201.nonghg_max_reduction", "L201.nonghg_steepness", "L201.nonghg_max_reduction_res", "L201.nonghg_steepness_res", "L201.nonghg_res", "L201.ghg_res", "L201.ResReadInControl_nonghg_res", "L201.ResReadInControl_ghg_res", "L232.nonco2_prc", diff --git a/input/gcamdata/R/zemissions_xml_ssp2_emissions_factors.R b/input/gcamdata/R/zemissions_xml_ssp2_emissions_factors.R index b936b22931..d95eb42183 100644 --- a/input/gcamdata/R/zemissions_xml_ssp2_emissions_factors.R +++ b/input/gcamdata/R/zemissions_xml_ssp2_emissions_factors.R @@ -18,7 +18,7 @@ module_emissions_ssp2_emissions_factors_xml <- function(command, ...) { "L251.ssp2_ef_residTradBio")) } else if(command == driver.DECLARE_OUTPUTS) { return(c(XML = "ssp2_emissions_factors.xml", - XML = "ssp2_tradBio_emissions_factors.xml")) + XML = "ssp2_emissions_factors_tradBio.xml")) } else if(command == driver.MAKE) { all_data <- list(...)[[1]] @@ -50,9 +50,9 @@ module_emissions_ssp2_emissions_factors_xml <- function(command, ...) { create_xml("ssp2_emissions_factors_tradBio.xml") %>% add_xml_data(L251.ssp2_ef_residTradBio, "InputEmissCoeff") %>% add_precursors("L251.ssp2_ef_residTradBio") -> - ssp2_tradBio_emissions_factors.xml + ssp2_emissions_factors_tradBio.xml - return_data(ssp2_emissions_factors.xml, ssp2_tradBio_emissions_factors.xml) + return_data(ssp2_emissions_factors.xml, ssp2_emissions_factors_tradBio.xml) } else { stop("Unknown command") } diff --git a/input/gcamdata/R/zenergy_L1092.iron_steel_GrossTrade.R b/input/gcamdata/R/zenergy_L1092.iron_steel_GrossTrade.R index f9579a5675..b228fda21b 100644 --- a/input/gcamdata/R/zenergy_L1092.iron_steel_GrossTrade.R +++ b/input/gcamdata/R/zenergy_L1092.iron_steel_GrossTrade.R @@ -51,7 +51,7 @@ module_energy_L1092.iron_steel_GrossTrade <- function(command, ...){ # Bind iron and steel production, consumption, and trade data # Convert data from wide to long format, and adjust units - WSA_steel_all_1970_2018 <- rbind(WSA_steel_prod_cons_1970_2018,WSA_steel_trade_1970_2018) %>% + WSA_steel_all_1970_2018 <- bind_rows(WSA_steel_prod_cons_1970_2018,WSA_steel_trade_1970_2018) %>% gather(key="year",value="value",'1970':'2021') %>% mutate(year=as.integer(year), value=value/1000, #Unit: to Mt @@ -77,7 +77,7 @@ module_energy_L1092.iron_steel_GrossTrade <- function(command, ...){ #assign imports equal to consumption in countries where the reported consumption is greater than zero, but the reported imports, exports, and production are zero WSA_steel_all_1970_2018 %>% - mutate(imports=ifelse(consumption > 0 & ((imports == 0 & exports == 0) | (imports == 0 & exports == 0 & production == 0)),consumption,imports)) %>% + mutate(imports=if_else(consumption > 0 & ((imports == 0 & exports == 0) | (imports == 0 & exports == 0 & production == 0)),consumption,imports)) %>% select(Country,year,imports,exports,consumption,production)%>% gather(key="metric",value="value",'imports':'production') -> WSA_steel_all_1970_2018 @@ -99,22 +99,22 @@ module_energy_L1092.iron_steel_GrossTrade <- function(command, ...){ filter(GCAM_region!="NA")%>% #if production is equal to zero in the model base-year add a minimum calibration value of 0.01 Mt #This minimum calibration value is 5 times less than the smallest producer of steel in 2015 - mutate(production=ifelse(production==0 & year == MODEL_FINAL_BASE_YEAR,0.01,production), + mutate(production=if_else(production==0 & year == MODEL_FINAL_BASE_YEAR,0.01,production), #estimate the imports and exports scaling factor to match the reported WSA steel consumption data #calculate scaling factor (x) so that consumption = production - x*exports + x*imports scaling_factor=(consumption-production)/(imports-exports), #re-evaluate the exports and imports by multiplying with the scaling factor exports_reval=scaling_factor*exports,imports_reval=scaling_factor*imports, #for regions with negative scaling factors use the WSA imports and exports - exports_reval=ifelse(exports_reval<0,exports,exports_reval),imports_reval=ifelse(imports_reval<0,imports,imports_reval), + exports_reval=if_else(exports_reval<0,exports,exports_reval),imports_reval=if_else(imports_reval<0,imports,imports_reval), #estimate the % increase in imports and exports after scaling - diff_exports=ifelse(exports==0,0,((exports_reval-exports)/exports)*100), - diff_imports=ifelse(imports==0,0,((imports_reval-imports)/imports)*100), + diff_exports=if_else(exports==0,0,((exports_reval-exports)/exports)*100), + diff_imports=if_else(imports==0,0,((imports_reval-imports)/imports)*100), #for regions with % increase in imports and exports greater than 10% (tolerance level) use the reported WSA imports and exports - exports_reval=ifelse(diff_exports>=10 | diff_exports <=-10,exports,exports_reval),imports_reval=ifelse(diff_imports >=10 |diff_imports <=-10,imports,imports_reval), + exports_reval=if_else(diff_exports>=10 | diff_exports <=-10,exports,exports_reval),imports_reval=if_else(diff_imports >=10 |diff_imports <=-10,imports,imports_reval), #estimate the domestic supply of iron and steel (production minus exports) #if this value is negative assume exports and imports for this region are 0 - exports_reval=ifelse(production-exports_reval<0,0,exports_reval),imports_reval=ifelse(production-exports_reval<0,0,imports_reval), + exports_reval=if_else(production-exports_reval<0,0,exports_reval),imports_reval=if_else(production-exports_reval<0,0,imports_reval), domestic_supply=production-exports_reval, #estimate steel consumption using the final scaled imports and exports consumption_reval=production-exports_reval+imports_reval) %>% @@ -194,16 +194,16 @@ module_energy_L1092.iron_steel_GrossTrade <- function(command, ...){ select(GCAM_region,temp_percent_trade),by=c("GCAM_region")) %>% #add intra regional trade for model years where data is available left_join(intra_regional_trade_pct,by=c("year","GCAM_region")) %>% - mutate(percent_trade=ifelse(is.na(percent_trade),temp_percent_trade,percent_trade), + mutate(percent_trade=if_else(is.na(percent_trade),temp_percent_trade,percent_trade), intra_exports=value*percent_trade/100, - intra_exports=ifelse(is.na(intra_exports),0,intra_exports))%>% + intra_exports=if_else(is.na(intra_exports),0,intra_exports))%>% select(GCAM_region,year,intra_exports)-> intra_regional_trade_Mt_R_Y #remove intra region trade from imports and exports and add this amount to domestic supply LB1092.Tradebalance_iron_steel_Mt_R_Y %>% left_join(intra_regional_trade_Mt_R_Y,by=c("GCAM_region","year"))%>% - mutate(value=ifelse(metric %in% c("exports_reval","imports_reval"),value-intra_exports,value), - value=ifelse(metric %in% c("domestic_supply"),value+intra_exports,value))%>% + mutate(value=if_else(metric %in% c("exports_reval","imports_reval"),value-intra_exports,value), + value=if_else(metric %in% c("domestic_supply"),value+intra_exports,value))%>% select(-intra_exports)-> LB1092.Tradebalance_iron_steel_Mt_R_Y diff --git a/input/gcamdata/R/zenergy_L115.roofPV.R b/input/gcamdata/R/zenergy_L115.roofPV.R index a71e0e52b8..87b4a054e1 100644 --- a/input/gcamdata/R/zenergy_L115.roofPV.R +++ b/input/gcamdata/R/zenergy_L115.roofPV.R @@ -10,7 +10,7 @@ #' a vector of output names, or (if \code{command} is "MAKE") all #' the generated outputs: \code{L115.RsrcCurves_EJ_R_roofPV}. The corresponding file in the #' original data system was \code{LA115.roofPV.R} (energy level1). -#' @details Rooftop PV resources are given in the input file according to the 14 GCAM regions, i.e., "region_GCAM3." Because some regions span mutliple GCAM region IDs, population in 2010 was used to allocate proportionally. +#' @details Rooftop PV resources are given in the input file according to the 14 GCAM regions, i.e., "region_GCAM3." Because some regions span multiple GCAM region IDs, population in 2010 was used to allocate proportionally. #' @importFrom assertthat assert_that #' @importFrom dplyr filter group_by mutate select summarise #' @author AJS April 2017 diff --git a/input/gcamdata/R/zenergy_L118.hydro.R b/input/gcamdata/R/zenergy_L118.hydro.R index 8add27c2eb..5c099644ac 100644 --- a/input/gcamdata/R/zenergy_L118.hydro.R +++ b/input/gcamdata/R/zenergy_L118.hydro.R @@ -11,7 +11,7 @@ #' the generated outputs: \code{L118.out_EJ_R_elec_hydro_Yfut}. The corresponding file in the #' original data system was \code{LA118.hydro.R} (energy level1). #' @details Different proxies are used to calculate hydro potential. -#' @details In most cases, a growth potential for each country was calculated, multiplied by its share in the region, and added to the base-year ouput +#' @details In most cases, a growth potential for each country was calculated, multiplied by its share in the region, and added to the base-year output #' @importFrom assertthat assert_that #' @importFrom dplyr arrange bind_rows filter if_else group_by left_join mutate pull select summarise #' @importFrom tidyr fill spread @@ -235,7 +235,7 @@ module_energy_L118.hydro <- function(command, ...) { add_units("EJ") %>% add_comments("Hydro potential was determined using various proxies") %>% add_comments("In most cases, a growth potential for each country was calculated, - multiplied by its share in the region, and added to the base-year ouput") %>% + multiplied by its share in the region, and added to the base-year output") %>% add_legacy_name("L118.out_EJ_R_elec_hydro_Yfut") %>% add_precursors("common/iso_GCAM_regID", "energy/Hydropower_potential", "energy/mappings/IEA_product_fuel", "L100.IEA_en_bal_ctry_hist", "energy/A18.hydro_output") -> diff --git a/input/gcamdata/R/zenergy_L1231.elec_tech.R b/input/gcamdata/R/zenergy_L1231.elec_tech.R index 7f44e51914..e2a1c77bcf 100644 --- a/input/gcamdata/R/zenergy_L1231.elec_tech.R +++ b/input/gcamdata/R/zenergy_L1231.elec_tech.R @@ -11,7 +11,7 @@ #' a vector of output names, or (if \code{command} is "MAKE") all #' the generated outputs: \code{L1231.in_EJ_R_elec_F_tech_Yh}, \code{L1231.out_EJ_R_elec_F_tech_Yh}, \code{L1231.eff_R_elec_F_tech_Yh}. The corresponding file in the #' original data system was \code{LA1231.elec_tech.R} (energy level1). -#' @details This chunk obtaines inputs, outputs and efficiencies in the electricity sector for all technologies by region, sector, and year. +#' @details This chunk obtains inputs, outputs and efficiencies in the electricity sector for all technologies by region, sector, and year. #' @importFrom assertthat assert_that #' @importFrom dplyr anti_join arrange bind_rows distinct filter full_join if_else group_by left_join mutate select semi_join #' @author FF, May 2017 diff --git a/input/gcamdata/R/zenergy_L132.industry.R b/input/gcamdata/R/zenergy_L132.industry.R index f29d1bca04..97282315dd 100644 --- a/input/gcamdata/R/zenergy_L132.industry.R +++ b/input/gcamdata/R/zenergy_L132.industry.R @@ -10,7 +10,7 @@ #' a vector of output names, or (if \code{command} is "MAKE") all #' the generated outputs: \code{L132.in_EJ_R_indenergy_F_Yh}, \code{L132.in_EJ_R_indfeed_F_Yh}. The corresponding file in the #' original data system was \code{LA132.industry.R} (energy level1). -#' @details The chunk calculates industrial feedstock consumption directly separated from enduse energy comsuption and +#' @details The chunk calculates industrial feedstock consumption directly separated from enduse energy consumption and #' industrial energy consumption by deducting net energy use by unconventional oil production, gas processing, refining, and CHP #' @importFrom assertthat assert_that #' @importFrom dplyr anti_join bind_rows filter group_by left_join mutate select summarise diff --git a/input/gcamdata/R/zenergy_L1323.iron_steel.R b/input/gcamdata/R/zenergy_L1323.iron_steel.R index 2e0e4dc895..a0aa1bf9c5 100644 --- a/input/gcamdata/R/zenergy_L1323.iron_steel.R +++ b/input/gcamdata/R/zenergy_L1323.iron_steel.R @@ -67,7 +67,7 @@ module_energy_L1323.iron_steel <- function(command, ...) { replace(is.na(.), 0) %>% mutate(year = as.numeric(year), DRI_consumption=`DRI production`- `DRI exports` + `DRI imports`, - DRI_consumption=ifelse(DRI_consumption<0,0,DRI_consumption))%>% + DRI_consumption=if_else(DRI_consumption<0,0,DRI_consumption))%>% select(country_name,year,DRI_consumption)-> DRI_stats #Calculate EAF-Scrap and EAF-DRI based steel production using DRI consumption data @@ -76,8 +76,8 @@ module_energy_L1323.iron_steel <- function(command, ...) { replace(is.na(.), 0) %>% rename(`EAF with DRI`=DRI_consumption) %>% mutate(`EAF with scrap`=EAF-`EAF with DRI`, - `EAF with DRI`=ifelse(`EAF with scrap`<=0,EAF,`EAF with DRI`), - `EAF with scrap`=ifelse(`EAF with scrap`<0,0,`EAF with scrap`))%>% + `EAF with DRI`=if_else(`EAF with scrap`<=0,EAF,`EAF with DRI`), + `EAF with scrap`=if_else(`EAF with scrap`<0,0,`EAF with scrap`))%>% select(-EAF)%>% left_join(iso_GCAM_regID,by="country_name")%>% select(-GCAM_region_ID,-country_name,-region_GCAM3)-> All_steel @@ -103,9 +103,9 @@ module_energy_L1323.iron_steel <- function(command, ...) { #add a minimal steel production value (0.5% of the total) to technologies in the base-year where they are calibrated to zero All_steel %>% - mutate(BLASTFUR=ifelse(BLASTFUR==0 & year == MODEL_FINAL_BASE_YEAR,(BLASTFUR+`EAF with scrap`+`EAF with DRI`)*0.005,BLASTFUR), - `EAF with scrap`=ifelse(`EAF with scrap`==0 & year == MODEL_FINAL_BASE_YEAR,(BLASTFUR+`EAF with scrap`+`EAF with DRI`)*0.005,`EAF with scrap`), - `EAF with DRI`=ifelse(`EAF with DRI`==0 & year == MODEL_FINAL_BASE_YEAR,(BLASTFUR+`EAF with scrap`+`EAF with DRI`)*0.005,`EAF with DRI`), + mutate(BLASTFUR=if_else(BLASTFUR==0 & year == MODEL_FINAL_BASE_YEAR,(BLASTFUR+`EAF with scrap`+`EAF with DRI`)*0.005,BLASTFUR), + `EAF with scrap`=if_else(`EAF with scrap`==0 & year == MODEL_FINAL_BASE_YEAR,(BLASTFUR+`EAF with scrap`+`EAF with DRI`)*0.005,`EAF with scrap`), + `EAF with DRI`=if_else(`EAF with DRI`==0 & year == MODEL_FINAL_BASE_YEAR,(BLASTFUR+`EAF with scrap`+`EAF with DRI`)*0.005,`EAF with DRI`), #calculate the percentage of BLASTFUR, EAF with scrap, and EAF with DRI across regions and years BLASTFUR_pct=BLASTFUR/(BLASTFUR+`EAF with scrap`+`EAF with DRI`), EAF_scrap_pct=`EAF with scrap`/(BLASTFUR+`EAF with scrap`+`EAF with DRI`), diff --git a/input/gcamdata/R/zenergy_L1327.paper.R b/input/gcamdata/R/zenergy_L1327.paper.R index 75a09ed082..9303cd2ccf 100644 --- a/input/gcamdata/R/zenergy_L1327.paper.R +++ b/input/gcamdata/R/zenergy_L1327.paper.R @@ -200,11 +200,11 @@ module_energy_L1327.paper <- function(command, ...) { ungroup(), by = c("GCAM_region_ID", "year")) %>% left_join(L1327.out_Mt_R_paper_Yh %>% rename(paper_prod=value) %>% select(-sector), by = c("GCAM_region_ID","year")) %>% - mutate(paper_prod=ifelse(is.na(paper_prod),0,paper_prod)) %>% + mutate(paper_prod=if_else(is.na(paper_prod),0,paper_prod), ## Manual adjustment for Africa_Northern - fix extremely high coefficient by setting biomass to zero (will be replaced with default value) - mutate(biomass_EJ = if_else(GCAM_region_ID == 3, 0, biomass_EJ)) %>% + biomass_EJ = if_else(GCAM_region_ID == 3, 0, biomass_EJ), - mutate(coefficient = woodpulp_tons / biomass_EJ) + coefficient = woodpulp_tons / biomass_EJ) # Where reported biomass is 0, replace Inf coefficient with global median, # scaled by share of woodpulp produced domestically (to estimate black liquor availability). diff --git a/input/gcamdata/R/zenergy_L1328.food_processing.R b/input/gcamdata/R/zenergy_L1328.food_processing.R index 6f64522691..2cee552ad8 100644 --- a/input/gcamdata/R/zenergy_L1328.food_processing.R +++ b/input/gcamdata/R/zenergy_L1328.food_processing.R @@ -294,9 +294,10 @@ module_energy_L1328.food_processing <- function(command, ...) { spread(supplysector, value) %>% # add GDP, selecting just historical values left_join_error_no_match(L102.gdp_mil90usd_Scen_R_Y %>% - filter(year %in% HISTORICAL_YEARS) %>% - select(GCAM_region_ID, year, GDP_mil90USD = value) %>% - distinct(), + # NOTE: at present historical GDP is the same in all SSP scenarios + # if that assumption changes we will want to revist this methodology + filter(scenario == socioeconomics.CORE_GCAM_SCENARIO, year %in% HISTORICAL_YEARS) %>% + select(GCAM_region_ID, year, GDP_mil90USD = value), by = c("GCAM_region_ID", "year")) %>% # add the regional intercepts of the model left_join_error_no_match(A328.energy_infill_model_intercepts_R %>% diff --git a/input/gcamdata/R/zenergy_L222.en_transformation.R b/input/gcamdata/R/zenergy_L222.en_transformation.R index ea18622667..942dad2b58 100644 --- a/input/gcamdata/R/zenergy_L222.en_transformation.R +++ b/input/gcamdata/R/zenergy_L222.en_transformation.R @@ -524,7 +524,7 @@ module_energy_L222.en_transformation <- function(command, ...) { add_comments("Conditionally created from the subset of A22.subsector_interp used to define regional shareweights interpolated to a year") %>% add_comments("by default contains all of A22.subsector_interp.") %>% add_legacy_name("L222.SubsectorInterp_en") %>% - add_precursors("energy/A22.subsector_interp", "common/GCAM_region_names") -> + add_precursors("energy/A22.subsector_interp", "common/GCAM_region_names", "energy/A22.SubsectorInterp_en_R") -> L222.SubsectorInterp_en } else { missing_data() %>% diff --git a/input/gcamdata/R/zenergy_L2231.wind_update.R b/input/gcamdata/R/zenergy_L2231.wind_update.R index 378b8d054b..c09d5a2c52 100644 --- a/input/gcamdata/R/zenergy_L2231.wind_update.R +++ b/input/gcamdata/R/zenergy_L2231.wind_update.R @@ -331,7 +331,7 @@ module_energy_L2231.wind_update <- function(command, ...) { add_units("Unitless") %>% add_comments("Resource curve and prices for onshore wind by region") %>% add_legacy_name("L2231.SmthRenewRsrcCurves_onshore_wind") %>% - add_precursors( "common/iso_GCAM_regID", "common/GCAM_region_names", "energy/mappings/fuel_energy_input", "energy/A20.wind_class_CFs", "L113.globaltech_capital_ATB", "L113.globaltech_OMfixed_ATB", "energy/NREL_onshore_energy", "L223.StubTechCapFactor_elec") -> + add_precursors( "common/iso_GCAM_regID", "common/GCAM_region_names", "energy/mappings/fuel_energy_input", "energy/A20.wind_class_CFs", "L113.globaltech_capital_ATB", "L113.globaltech_OMfixed_ATB", "energy/NREL_onshore_energy", "L223.StubTechCapFactor_elec", "energy/mappings/NREL_wind_ctry") -> L2231.SmthRenewRsrcCurves_onshore_wind L2231.StubTechCapFactor_onshore_wind %>% diff --git a/input/gcamdata/R/zenergy_L225.hydrogen.R b/input/gcamdata/R/zenergy_L225.hydrogen.R index 101947da21..b67736f241 100644 --- a/input/gcamdata/R/zenergy_L225.hydrogen.R +++ b/input/gcamdata/R/zenergy_L225.hydrogen.R @@ -14,7 +14,7 @@ #' @importFrom assertthat assert_that #' @importFrom dplyr arrange filter group_by mutate select #' @importFrom tidyr complete nesting -#' @author LF Augest 2017 +#' @author LF August 2017 module_energy_L225.hydrogen <- function(command, ...) { if(command == driver.DECLARE_INPUTS) { return(c(FILE = "common/GCAM_region_names", diff --git a/input/gcamdata/R/zenergy_L2323.iron_steel.R b/input/gcamdata/R/zenergy_L2323.iron_steel.R index ba074a10e4..4438bbae0e 100644 --- a/input/gcamdata/R/zenergy_L2323.iron_steel.R +++ b/input/gcamdata/R/zenergy_L2323.iron_steel.R @@ -138,7 +138,7 @@ module_energy_L2323.iron_steel <- function(command, ...) { # calculate mean costs by country for EAF and BF-BOF group_by({{agg_region}},subsector,year)%>% summarize(value=mean(value)) %>% - mutate(subsector=ifelse(subsector=="EAF","EAF with scrap","BLASTFUR")) -> all_steel_production_costs + mutate(subsector=if_else(subsector=="EAF","EAF with scrap","BLASTFUR")) -> all_steel_production_costs return(all_steel_production_costs) } @@ -149,7 +149,7 @@ module_energy_L2323.iron_steel <- function(command, ...) { # Calculate average steel production costs by sub sector for countries in transition zero database and combine # with OECD average data - all_steel_production_costs <- rbind(aggregate_steel_production_costs(data=TZ_steel_production_costs,agg_region=Country), + all_steel_production_costs <- bind_rows(aggregate_steel_production_costs(data=TZ_steel_production_costs,agg_region=Country), oecd_steel_production_costs) #add capital costs and CCS costs to estimate total production costs diff --git a/input/gcamdata/R/zenergy_L2327.paper.R b/input/gcamdata/R/zenergy_L2327.paper.R index 52ad1b345d..9ac9ed67bd 100644 --- a/input/gcamdata/R/zenergy_L2327.paper.R +++ b/input/gcamdata/R/zenergy_L2327.paper.R @@ -466,12 +466,12 @@ module_energy_L2327.paper <- function(command, ...) { # Delete NonFoodDemand_woodpulp sectors in all regions (energy-final-demands and supplysectors) # This is replaced with woodpulp_energy L203.Supplysector_demand %>% - filter(supplysector == aglu.PAPER_delete_ag_demand) %>% + filter(supplysector == aglu.PAPER_DELETE_AG_DEMAND) %>% select(LEVEL2_DATA_NAMES[["DeleteSupplysector"]]) -> L2327.DeleteSupplysector_PaperAgDemand L203.PerCapitaBased %>% - filter(energy.final.demand == aglu.PAPER_delete_ag_demand) %>% + filter(energy.final.demand == aglu.PAPER_DELETE_AG_DEMAND) %>% select(LEVEL2_DATA_NAMES[["DeleteFinalDemand"]]) -> L2327.DeleteFinalDemand_PaperAgDemand diff --git a/input/gcamdata/R/zenergy_L244.building_det.R b/input/gcamdata/R/zenergy_L244.building_det.R index 45c1c7a9f9..5c89776471 100644 --- a/input/gcamdata/R/zenergy_L244.building_det.R +++ b/input/gcamdata/R/zenergy_L244.building_det.R @@ -232,7 +232,7 @@ module_energy_L244.building_det <- function(command, ...) { select(category))) # Add a deflator for harmonizing GDPpc with prices - def9075<-2.212 + def9075<-gdp_deflator(1990, 1975) # =================================================== # First, clean and prepare data on current and future income distribution projections @@ -285,8 +285,8 @@ module_energy_L244.building_det <- function(command, ...) { GCAM_region_names = GCAM_region_names) %>% filter(gcam.consumer == "comm") %>% repeat_add_columns(tibble(pop.year.fillout=MODEL_YEARS)) %>% - mutate(inc.year.fillout = pop.year.fillout) %>% - mutate(subregional.population.share = 1, + mutate(inc.year.fillout = pop.year.fillout, + subregional.population.share = 1, subregional.income.share = 1)) # Create a similar dataframe with all historical years @@ -310,8 +310,8 @@ module_energy_L244.building_det <- function(command, ...) { GCAM_region_names = GCAM_region_names) %>% filter(gcam.consumer=="comm") %>% repeat_add_columns(tibble(pop.year.fillout=HISTORICAL_YEARS)) %>% - mutate(inc.year.fillout=pop.year.fillout) %>% - mutate(subregional.population.share = 1, + mutate(inc.year.fillout=pop.year.fillout, + subregional.population.share = 1, subregional.income.share = 1)) # Generate subregional shares for diferent SSP scenarios @@ -456,8 +456,8 @@ module_energy_L244.building_det <- function(command, ...) { L244.Floorspace_resid<-L244.Floorspace_resid_est %>% select(region, gcam.consumer, nodeInput, building.node.input, year, flsp_est) %>% left_join_error_no_match(L244.Floorspace_resid_adder, by = c("region", "gcam.consumer","year")) %>% - mutate(base.building.size = flsp_est + bias.adder) %>% - mutate(nodeInput = "resid", + mutate(base.building.size = flsp_est + bias.adder, + nodeInput = "resid", building.node.input = "resid_building") %>% select(region, gcam.consumer, nodeInput, building.node.input, year, base.building.size) @@ -607,8 +607,8 @@ module_energy_L244.building_det <- function(command, ...) { # Change units satiation level mutate(satiation.level = satiation.level * 1E6) %>% # Calculate satiation impedance - mutate(`satiation-impedance` = (-log(2)/log((satiation.level - flsp_pc) / (satiation.level))) * pcGDP_thous90USD) %>% - mutate(`satiation-impedance`= round(`satiation-impedance`,energy.DIGITS_SATIATION_IMPEDANCE)) %>% + mutate(`satiation-impedance` = (-log(2)/log((satiation.level - flsp_pc) / (satiation.level))) * pcGDP_thous90USD, + `satiation-impedance`= round(`satiation-impedance`,energy.DIGITS_SATIATION_IMPEDANCE)) %>% select(region,nodeInput,building.node.input,`satiation-impedance`) @@ -648,10 +648,10 @@ module_energy_L244.building_det <- function(command, ...) { # This generates problems for calibration of the satiation impedance, so it needs to be corrected. filter(flsp_pc > value) %>% mutate(`satiation-impedance`= NaN)) %>% - mutate(`satiation-impedance`=round(`satiation-impedance`,energy.DIGITS_SATIATION_IMPEDANCE)) %>% select(region,nodeInput,building.node.input,`satiation-impedance`,SSP) %>% + mutate(`satiation-impedance`=round(`satiation-impedance`,energy.DIGITS_SATIATION_IMPEDANCE), # substitute NaN: use approx_fun per ssp - mutate(year = as.numeric(gsub("SSP","",SSP))) %>% + year = as.numeric(gsub("SSP","",SSP))) %>% select(-SSP) %>% group_by(region,nodeInput) %>% mutate(`satiation-impedance` = if_else(is.nan(`satiation-impedance`), approx_fun(year, `satiation-impedance`, rule = 2), `satiation-impedance`)) %>% @@ -708,8 +708,8 @@ module_energy_L244.building_det <- function(command, ...) { mutate(observed_pcflsp = observed_flsp_bm2*1E9 / (pop_thous*1E3)) %>% left_join_error_no_match(L102.pcgdp_thous90USD_Scen_R_Y %>% filter(scenario == socioeconomics.BASE_GDP_SCENARIO),by = c("year", "GCAM_region_ID")) %>% rename(pcGDP_thous90USD = value) %>% - mutate(est_pcflsp = satiation.level * (1-exp(-log(2)*pcGDP_thous90USD/`satiation-impedance`))) %>% - mutate(satiation.adder = round(observed_pcflsp-est_pcflsp,2)) + mutate(est_pcflsp = satiation.level * (1-exp(-log(2)*pcGDP_thous90USD/`satiation-impedance`)), + satiation.adder = round(observed_pcflsp-est_pcflsp,2)) # Print an error if any adder is not equal to zero if(any(L244.SatiationAdder_checkReg$satiation.adder>0.05)==T){ @@ -739,11 +739,11 @@ module_energy_L244.building_det <- function(command, ...) { left_join_error_no_match(A_regions %>% select(GCAM_region_ID,region),by="region") %>% left_join_error_no_match(L101.Pop_thous_R_Yh, by = c("year", "GCAM_region_ID")) %>% mutate(est_flsp_bm2 = round(est_flsp_bm2,3), - observed_flsp_bm2 = round(observed_flsp_bm2,3)) %>% - mutate(satiation.adder = ((observed_flsp_bm2-est_flsp_bm2)*1E9) / (pop_thous*1E3)) %>% + observed_flsp_bm2 = round(observed_flsp_bm2,3), + satiation.adder = ((observed_flsp_bm2-est_flsp_bm2)*1E9) / (pop_thous*1E3)) %>% select(region,nodeInput,building.node.input,year,satiation.adder) %>% - mutate(satiation.adder = round(satiation.adder,energy.DIGITS_SATIATION_ADDER)) %>% - mutate(gcam.consumer = nodeInput) %>% + mutate(satiation.adder = round(satiation.adder,energy.DIGITS_SATIATION_ADDER), + gcam.consumer = nodeInput) %>% select(LEVEL2_DATA_NAMES[["SatiationAdder"]]) # Repeat the process for SSPs @@ -753,8 +753,8 @@ module_energy_L244.building_det <- function(command, ...) { left_join_error_no_match(L244.Satiation_impedance_SSPs,by = c("region", "gcam.consumer", "nodeInput", "building.node.input","SSP")) %>% mutate(year = 2015) %>% rename(observed_flsp_bm2 = base.building.size) %>% - mutate(observed_pcflsp = observed_flsp_bm2*1E9 / (pop_thous*1E3)) %>% - mutate(est_pcflsp = satiation.level * (1-exp(-log(2)*pcGDP_thous90USD/`satiation-impedance`)), + mutate(observed_pcflsp = observed_flsp_bm2*1E9 / (pop_thous*1E3), + est_pcflsp = satiation.level * (1-exp(-log(2)*pcGDP_thous90USD/`satiation-impedance`)), est_flsp_bm2 = (est_pcflsp*pop_thous*1E3) / 1E9) %>% group_by(region,nodeInput,building.node.input,year,SSP) %>% summarise(pop_thous = sum(pop_thous), @@ -764,11 +764,11 @@ module_energy_L244.building_det <- function(command, ...) { left_join_error_no_match(A_regions %>% select(GCAM_region_ID,region),by="region") %>% left_join_error_no_match(L101.Pop_thous_R_Yh, by = c("year", "GCAM_region_ID")) %>% mutate(est_flsp_bm2=round(est_flsp_bm2,3), - observed_flsp_bm2=round(observed_flsp_bm2,3)) %>% - mutate(satiation.adder = ((observed_flsp_bm2-est_flsp_bm2)*1E9) / (pop_thous*1E3)) %>% + observed_flsp_bm2=round(observed_flsp_bm2,3), + satiation.adder = ((observed_flsp_bm2-est_flsp_bm2)*1E9) / (pop_thous*1E3)) %>% select(region,nodeInput,building.node.input,year,satiation.adder,SSP) %>% - mutate(gcam.consumer = nodeInput) %>% - mutate(satiation.adder = round(satiation.adder,energy.DIGITS_SATIATION_ADDER)) %>% + mutate(gcam.consumer = nodeInput, + satiation.adder = round(satiation.adder,energy.DIGITS_SATIATION_ADDER)) %>% select(LEVEL2_DATA_NAMES[["SatiationAdder"]], SSP) %>% # Split by SSP, creating a list with a tibble for each SSP, then add attributes split(.$SSP) %>% @@ -1033,8 +1033,8 @@ module_energy_L244.building_det <- function(command, ...) { mutate(satiation.level = pmax(satiation.level, service.per.flsp * 1.0001)) %>% # extend the satiation to non existing sectors: group_by(building.service.input) %>% - mutate(satiation.level.adj = mean(satiation.level,na.rm=T)) %>% - mutate(satiation.level= if_else(is.na(satiation.level),satiation.level.adj,satiation.level)) %>% + mutate(satiation.level.adj = mean(satiation.level,na.rm=T), + satiation.level= if_else(is.na(satiation.level),satiation.level.adj,satiation.level)) %>% select(-service.per.flsp,-satiation.level.adj) # L244.GenericServiceSatiation_SSPs: Satiation levels assumed for non-thermal building services in the SSPs @@ -1207,8 +1207,8 @@ module_energy_L244.building_det <- function(command, ...) { L244.SubsectorInterp_bld<-L244.SubsectorInterp_bld %>% - mutate(to.value = 1) %>% - mutate(interpolation.function = if_else(grepl("resid heating modern", supplysector) & + mutate(to.value = 1, + interpolation.function = if_else(grepl("resid heating modern", supplysector) & region %in% elec_heat_regions & subsector %in% c("electricity"), "linear", interpolation.function), @@ -1335,8 +1335,8 @@ module_energy_L244.building_det <- function(command, ...) { , by = c("gcam.consumer", "nodeInput", "building.node.input", "variable", "InternalGainsScalar_USA", "agg.thermal.building.service.input")) %>% select(-agg.thermal.building.service.input) %>% - mutate(scalar_mult = degree.days / degree.days.usa) %>% - mutate(internal.gains.scalar = round(InternalGainsScalar_USA * scalar_mult, energy.DIGITS_HDDCDD)) %>% + mutate(scalar_mult = degree.days / degree.days.usa, + internal.gains.scalar = round(InternalGainsScalar_USA * scalar_mult, energy.DIGITS_HDDCDD)) %>% select(LEVEL2_DATA_NAMES[["Intgains_scalar"]]) # Need to remove any services (supplysectors and building-service-inputs) and intgains trial markets for services that don't exist in any years @@ -1368,8 +1368,8 @@ module_energy_L244.building_det <- function(command, ...) { unite(gcam.consumer, c(gcam.consumer,group),sep="_") %>% separate(gcam.consumer, c("adj","group"),sep="_",remove = F) %>% # adjust commercial - mutate(gcam.consumer = if_else(grepl("comm",gcam.consumer),"comm",gcam.consumer)) %>% - mutate(thermal.building.service.input = supplysector, + mutate(gcam.consumer = if_else(grepl("comm",gcam.consumer),"comm",gcam.consumer), + thermal.building.service.input = supplysector, supplysector =if_else(grepl("resid",gcam.consumer),paste0(supplysector,"_",group),supplysector), thermal.building.service.input = if_else(grepl("resid",gcam.consumer) ,paste0(thermal.building.service.input,"_",group),thermal.building.service.input)) %>% select(LEVEL2_DATA_NAMES[["DeleteThermalService"]]) @@ -1399,8 +1399,8 @@ module_energy_L244.building_det <- function(command, ...) { unite(gcam.consumer, c(gcam.consumer,group),sep="_") %>% separate(gcam.consumer, c("adj","group"),sep="_",remove = F) %>% # adjust commercial - mutate(gcam.consumer = if_else(grepl("comm",gcam.consumer),"comm",gcam.consumer)) %>% - mutate(building.service.input = supplysector, + mutate(gcam.consumer = if_else(grepl("comm",gcam.consumer),"comm",gcam.consumer), + building.service.input = supplysector, supplysector =if_else(grepl("resid",gcam.consumer),paste0(supplysector,"_",group),supplysector), building.service.input = if_else(grepl("resid",gcam.consumer) ,paste0(building.service.input,"_",group),building.service.input)) %>% select(LEVEL2_DATA_NAMES[["DeleteGenericService"]]) @@ -1488,15 +1488,15 @@ module_energy_L244.building_det <- function(command, ...) { mutate(`satiation-impedance` = (log(2)*((pcGDP_thous90USD*1000/def9075)/price)) / log((satiation.level)/(satiation.level-base_serv_flsp))) %>% # Check with an adder to be 0!!!! rename(observed_base_serv_perflsp = base_serv_flsp) %>% - mutate(thermal_load = 1) %>% - mutate(afford=(pcGDP_thous90USD*1000/def9075) / price) %>% - mutate(serv_density=satiation.level * (1-exp((-log(2)/`satiation-impedance`) * afford))) %>% - mutate(serv_density = if_else(grepl("coal",building.service.input),observed_base_serv_perflsp,serv_density), - serv_density = if_else(grepl("TradBio",building.service.input),observed_base_serv_perflsp,serv_density)) %>% - mutate(serv_density2 = serv_density) %>% - mutate(coef = observed_base_serv_perflsp / serv_density*thermal_load) %>% - mutate(est_base_serv_perflsp = coef * thermal_load * serv_density) %>% - mutate(bias.adder = round(est_base_serv_perflsp-observed_base_serv_perflsp,energy.DIGITS_BIAS_ADDER)) + mutate(thermal_load = 1, + afford=(pcGDP_thous90USD*1000/def9075) / price, + serv_density=satiation.level * (1-exp((-log(2)/`satiation-impedance`) * afford)), + serv_density = if_else(grepl("coal",building.service.input),observed_base_serv_perflsp,serv_density), + serv_density = if_else(grepl("TradBio",building.service.input),observed_base_serv_perflsp,serv_density), + serv_density2 = serv_density, + coef = observed_base_serv_perflsp / serv_density*thermal_load, + est_base_serv_perflsp = coef * thermal_load * serv_density, + bias.adder = round(est_base_serv_perflsp-observed_base_serv_perflsp,energy.DIGITS_BIAS_ADDER)) L244.GenericServiceImpedance<-L244.GenericServiceImpedance_allvars %>% @@ -1560,17 +1560,17 @@ module_energy_L244.building_det <- function(command, ...) { mutate(`satiation-impedance` = (log(2)*((pcGDP_thous90USD*1000/def9075)/price))/log((satiation.level)/(satiation.level-base_serv_flsp))) %>% # Check with an adder to be 0!!!! rename(observed_base_serv_perflsp=base_serv_flsp) %>% - mutate(thermal_load=1) %>% - mutate(afford=(pcGDP_thous90USD*1000/def9075)/price) %>% - mutate(serv_density=satiation.level*(1-exp((-log(2)/`satiation-impedance`)*afford))) %>% - mutate(serv_density = if_else(grepl("coal",building.service.input),observed_base_serv_perflsp,serv_density), - serv_density = if_else(grepl("TradBio",building.service.input),observed_base_serv_perflsp,serv_density)) %>% - mutate(coef=observed_base_serv_perflsp/(serv_density*thermal_load)) %>% - mutate(est_base_serv_perflsp=coef*thermal_load*serv_density) %>% + mutate(thermal_load=1, + afford=(pcGDP_thous90USD*1000/def9075)/price, + serv_density=satiation.level*(1-exp((-log(2)/`satiation-impedance`)*afford)), + serv_density = if_else(grepl("coal",building.service.input),observed_base_serv_perflsp,serv_density), + serv_density = if_else(grepl("TradBio",building.service.input),observed_base_serv_perflsp,serv_density), + coef=observed_base_serv_perflsp/(serv_density*thermal_load), + est_base_serv_perflsp=coef*thermal_load*serv_density) %>% # Adjust coal and TradBio services (no coef): mutate(est_base_serv_perflsp = if_else(grepl("coal",building.service.input),serv_density,est_base_serv_perflsp), - est_base_serv_perflsp = if_else(grepl("TradBio",building.service.input),serv_density,est_base_serv_perflsp)) %>% - mutate(bias.adder=round(est_base_serv_perflsp-observed_base_serv_perflsp,5)) + est_base_serv_perflsp = if_else(grepl("TradBio",building.service.input),serv_density,est_base_serv_perflsp), + bias.adder=round(est_base_serv_perflsp-observed_base_serv_perflsp,5)) L244.GenericServiceImpedance_SSPs<-L244.GenericServiceImpedance_allvars_SSPs %>% select(LEVEL2_DATA_NAMES[["GenericServiceImpedance"]],SSP) %>% @@ -1649,8 +1649,8 @@ module_energy_L244.building_det <- function(command, ...) { by = c("region","supplysector", "subsector" , "stub.technology"="technology", "year")) %>% filter(complete.cases(.)) %>% - mutate(int_gains = base.service*internal.gains.output.ratio) %>% - mutate(gcam.consumer = ifelse(grepl("comm",supplysector),"comm","resid")) %>% + mutate(int_gains = base.service*internal.gains.output.ratio, + gcam.consumer = if_else(grepl("comm",supplysector),"comm","resid")) %>% group_by(region,gcam.consumer,year) %>% summarise(int_gains = sum(int_gains)) %>% ungroup() %>% @@ -1669,9 +1669,9 @@ module_energy_L244.building_det <- function(command, ...) { ungroup() %>% mutate(gcam.consumer = if_else(grepl("resid",nodeInput),"resid","comm")) ,by=c("region","year","gcam.consumer","nodeInput","building.node.input")) %>% - mutate(base_serv_flsp = base_service_EJ / base.building.size) %>% + mutate(base_serv_flsp = base_service_EJ / base.building.size, # Bring the variables to calculate s0 (thermal load) - mutate(dd=if_else(grepl("cooling",thermal.building.service.input),"CDD","HDD")) %>% + dd=if_else(grepl("cooling",thermal.building.service.input),"CDD","HDD")) %>% left_join_error_no_match(L244.HDDCDD_scen_R_Y %>% filter(year == MODEL_FINAL_BASE_YEAR, GCM == "no_GCM") %>% rename(dd = variable) %>% @@ -1683,8 +1683,8 @@ module_energy_L244.building_det <- function(command, ...) { left_join_error_no_match(L244.internal_gains %>% filter(year == MODEL_FINAL_BASE_YEAR), by=c("region","year","gcam.consumer")) %>% left_join_error_no_match(L244.Intgains_scalar,by = c("region","gcam.consumer","nodeInput", "building.node.input","thermal.building.service.input")) %>% - mutate(intGains_EJ_serv = intGains_EJ / base.building.size) %>% - mutate(thermal_load = degree.days * shell.conductance * floor.to.surface.ratio + internal.gains.scalar*intGains_EJ_serv) %>% + mutate(intGains_EJ_serv = intGains_EJ / base.building.size, + thermal_load = degree.days * shell.conductance * floor.to.surface.ratio + internal.gains.scalar*intGains_EJ_serv) %>% select(-base.building.size) %>% left_join_error_no_match(L102.pcgdp_thous90USD_Scen_R_Y %>% filter(scenario == socioeconomics.BASE_GDP_SCENARIO), by = c("year","GCAM_region_ID")) %>% @@ -1699,13 +1699,13 @@ module_energy_L244.building_det <- function(command, ...) { mutate(`satiation-impedance` = (log(2)*((pcGDP_thous90USD*1000/def9075)/price))/log((satiation.level)/(satiation.level-base_serv_flsp))) %>% # Check with an adder to be 0!!!! rename(observed_base_serv_perflsp = base_serv_flsp) %>% - mutate(afford = (pcGDP_thous90USD*1000/def9075) / price) %>% - mutate(serv_density=satiation.level * (1-exp((-log(2)/`satiation-impedance`)*afford))) %>% - mutate(serv_density = if_else(grepl("coal",thermal.building.service.input),observed_base_serv_perflsp,serv_density), - serv_density = if_else(grepl("TradBio",thermal.building.service.input),observed_base_serv_perflsp,serv_density)) %>% - mutate(coef = observed_base_serv_perflsp / (serv_density*thermal_load)) %>% - mutate(est_base_serv_perflsp = coef * thermal_load * serv_density) %>% - mutate(bias.adder = round(est_base_serv_perflsp-observed_base_serv_perflsp,energy.DIGITS_BIAS_ADDER)) + mutate(afford = (pcGDP_thous90USD*1000/def9075) / price, + serv_density=satiation.level * (1-exp((-log(2)/`satiation-impedance`)*afford)), + serv_density = if_else(grepl("coal",thermal.building.service.input),observed_base_serv_perflsp,serv_density), + serv_density = if_else(grepl("TradBio",thermal.building.service.input),observed_base_serv_perflsp,serv_density), + coef = observed_base_serv_perflsp / (serv_density*thermal_load), + est_base_serv_perflsp = coef * thermal_load * serv_density, + bias.adder = round(est_base_serv_perflsp-observed_base_serv_perflsp,energy.DIGITS_BIAS_ADDER)) L244.ThermalServiceImpedance<-L244.ThermalServiceImpedance_allvars %>% select(LEVEL2_DATA_NAMES[["ThermalServiceImpedance"]]) %>% @@ -1729,8 +1729,8 @@ module_energy_L244.building_det <- function(command, ...) { filter(grepl("comm",gcam.consumer))) %>% # adjust coal and tradbio mutate(coef = if_else(grepl("coal",thermal.building.service.input),1,coef), - coef = if_else(grepl("TradBio",thermal.building.service.input),1,coef)) %>% - mutate(coef = round(coef,energy.DIGITS_COEFFICIENT)) + coef = if_else(grepl("TradBio",thermal.building.service.input),1,coef), + coef = round(coef,energy.DIGITS_COEFFICIENT)) #------------------------------------------------------ @@ -1768,16 +1768,16 @@ module_energy_L244.building_det <- function(command, ...) { select(-inc.year.fillout) %>% rename(year = pop.year.fillout) , by=c("region","gcam.consumer","year")) %>% - mutate(pcGDP_thous90USD_gr = (pcGDP_thous90USD * 1E3 * pop_thous * 1E3 * subregional.income.share) / (pop_thous_gr * 1E3 * 1E3)) %>% - mutate(afford = (pcGDP_thous90USD_gr*1000/def9075) / price) %>% - mutate(afford = if_else(is.infinite(afford),0,afford)) %>% + mutate(pcGDP_thous90USD_gr = (pcGDP_thous90USD * 1E3 * pop_thous * 1E3 * subregional.income.share) / (pop_thous_gr * 1E3 * 1E3), + afford = (pcGDP_thous90USD_gr*1000/def9075) / price, + afford = if_else(is.infinite(afford),0,afford)) %>% left_join_error_no_match(bind_rows(L244.Floorspace_resid,L244.Floorspace_comm), by = c("region", "gcam.consumer", "nodeInput", "building.node.input", "year")) %>% - mutate(serv=(satiation.level * (1-exp((-log(2)/`satiation-impedance`)*afford))) * base.building.size) %>% + mutate(serv=(satiation.level * (1-exp((-log(2)/`satiation-impedance`)*afford))) * base.building.size, # Adjust coal and TradBio - mutate(serv = if_else(grepl("coal",building.service.input),coef(fit_coal)[1] / (afford +coef(fit_coal)[2]),serv), - serv = if_else(grepl("TradBio",building.service.input),coef(fit_tradBio)[1] / (afford + coef(fit_tradBio)[2]),serv)) %>% - mutate(serv = if_else(afford == 0, 0, serv)) + serv = if_else(grepl("coal",building.service.input),coef(fit_coal)[1] / (afford +coef(fit_coal)[2]),serv), + serv = if_else(grepl("TradBio",building.service.input),coef(fit_tradBio)[1] / (afford + coef(fit_tradBio)[2]),serv), + serv = if_else(afford == 0, 0, serv)) # Calculate subtotals (for shares) @@ -1849,16 +1849,16 @@ module_energy_L244.building_det <- function(command, ...) { select(-inc.year.fillout) %>% rename(year = pop.year.fillout) , by=c("region","gcam.consumer","year")) %>% - mutate(pcGDP_thous90USD_gr=(pcGDP_thous90USD * 1E3 * pop_thous * 1E3 * subregional.income.share) / (pop_thous_gr * 1E3 * 1E3)) %>% - mutate(afford = (pcGDP_thous90USD_gr * 1000/def9075) / price) %>% - mutate(afford = if_else(is.infinite(afford),0,afford)) %>% + mutate(pcGDP_thous90USD_gr=(pcGDP_thous90USD * 1E3 * pop_thous * 1E3 * subregional.income.share) / (pop_thous_gr * 1E3 * 1E3), + afford = (pcGDP_thous90USD_gr * 1000/def9075) / price, + afford = if_else(is.infinite(afford),0,afford)) %>% left_join_error_no_match(bind_rows(L244.Floorspace_resid,L244.Floorspace_comm), by = c("region", "gcam.consumer", "nodeInput", "building.node.input", "year")) %>% - mutate(serv=(satiation.level * (1-exp((-log(2)/`satiation-impedance`)*afford))) * base.building.size) %>% + mutate(serv=(satiation.level * (1-exp((-log(2)/`satiation-impedance`)*afford))) * base.building.size, # Adjust coal and TradBio - mutate(serv = if_else(grepl("coal",thermal.building.service.input),coef(fit_coal)[1]/(afford +coef(fit_coal)[2]),serv), - serv = if_else(grepl("TradBio",thermal.building.service.input),coef(fit_tradBio)[1]/(afford + coef(fit_tradBio)[2]),serv)) %>% - mutate(serv = if_else(afford == 0, 0, serv)) + serv = if_else(grepl("coal",thermal.building.service.input),coef(fit_coal)[1]/(afford +coef(fit_coal)[2]),serv), + serv = if_else(grepl("TradBio",thermal.building.service.input),coef(fit_tradBio)[1]/(afford + coef(fit_tradBio)[2]),serv), + serv = if_else(afford == 0, 0, serv)) # Calculate subtotals (for shares) L244.ThermalShares_pre_subt<-L244.ThermalShares_pre %>% @@ -1971,8 +1971,8 @@ module_energy_L244.building_det <- function(command, ...) { filter(service %in% generic_services) %>% rename(building.service.input = service) %>% repeat_add_columns(tibble(group=unique(L144.income_shares$group))) %>% - mutate(gcam.consumer = paste0(gcam.consumer,"_",group)) %>% - mutate(year = MODEL_FINAL_BASE_YEAR) %>% + mutate(gcam.consumer = paste0(gcam.consumer,"_",group), + year = MODEL_FINAL_BASE_YEAR) %>% left_join_error_no_match(L244.GenericBaseService, by = c("gcam.consumer", "nodeInput", "building.node.input", "building.service.input", "region","year")) %>% mutate(building.service.input = paste0(building.service.input,"_",group)) %>% rename(base.coal = base.service) %>% @@ -1986,8 +1986,8 @@ module_energy_L244.building_det <- function(command, ...) { filter(service %in% thermal_services) %>% rename(thermal.building.service.input = service) %>% repeat_add_columns(tibble(group=unique(L144.income_shares$group))) %>% - mutate(gcam.consumer = paste0(gcam.consumer,"_",group)) %>% - mutate(year = MODEL_FINAL_BASE_YEAR) %>% + mutate(gcam.consumer = paste0(gcam.consumer,"_",group), + year = MODEL_FINAL_BASE_YEAR) %>% left_join_error_no_match(L244.ThermalBaseService, by = c("gcam.consumer", "nodeInput", "building.node.input", "thermal.building.service.input", "region","year")) %>% mutate(thermal.building.service.input = paste0(thermal.building.service.input,"_",group)) %>% rename(base.coal = base.service) %>% @@ -2049,13 +2049,13 @@ module_energy_L244.building_det <- function(command, ...) { filter(service %in% generic_services) %>% rename(building.service.input = service) %>% repeat_add_columns(tibble(group=unique(L144.income_shares$group))) %>% - mutate(gcam.consumer = paste0(gcam.consumer,"_",group)) %>% - mutate(year =MODEL_FINAL_BASE_YEAR) %>% + mutate(gcam.consumer = paste0(gcam.consumer,"_",group), + year =MODEL_FINAL_BASE_YEAR) %>% left_join_error_no_match(L244.GenericBaseService, by = c("gcam.consumer", "nodeInput", "building.node.input", "building.service.input", "region","year")) %>% mutate(building.service.input = paste0(building.service.input,"_",group)) %>% rename(base.TradBio = base.service) %>% - mutate(x_TradBio = if_else(base.TradBio==0,0,x_TradBio)) %>% - mutate(x_TradBio = round(x_TradBio, energy.DIGITS_COEFFICIENT), + mutate(x_TradBio = if_else(base.TradBio==0,0,x_TradBio), + x_TradBio = round(x_TradBio, energy.DIGITS_COEFFICIENT), y_TradBio = round(y_TradBio, energy.DIGITS_COEFFICIENT), base.TradBio = round(base.TradBio, energy.DIGITS_SERVICE)) %>% select(LEVEL2_DATA_NAMES[["GenericTradBioCoef"]]) @@ -2065,13 +2065,13 @@ module_energy_L244.building_det <- function(command, ...) { filter(service %in% thermal_services) %>% rename(thermal.building.service.input = service) %>% repeat_add_columns(tibble(group=unique(L144.income_shares$group))) %>% - mutate(gcam.consumer = paste0(gcam.consumer,"_",group)) %>% - mutate(year =MODEL_FINAL_BASE_YEAR) %>% + mutate(gcam.consumer = paste0(gcam.consumer,"_",group), + year =MODEL_FINAL_BASE_YEAR) %>% left_join_error_no_match(L244.ThermalBaseService, by = c("gcam.consumer", "nodeInput", "building.node.input", "thermal.building.service.input", "region","year")) %>% mutate(thermal.building.service.input = paste0(thermal.building.service.input,"_",group)) %>% rename(base.TradBio = base.service) %>% - mutate(x_TradBio = if_else(base.TradBio==0,0,x_TradBio)) %>% - mutate(x_TradBio = round(x_TradBio, energy.DIGITS_COEFFICIENT), + mutate(x_TradBio = if_else(base.TradBio==0,0,x_TradBio), + x_TradBio = round(x_TradBio, energy.DIGITS_COEFFICIENT), y_TradBio = round(y_TradBio, energy.DIGITS_COEFFICIENT), base.TradBio = round(base.TradBio, energy.DIGITS_SERVICE)) %>% select(LEVEL2_DATA_NAMES[["ThermalTradBioCoef"]]) @@ -2133,9 +2133,9 @@ module_energy_L244.building_det <- function(command, ...) { filter(year == MODEL_FINAL_BASE_YEAR) %>% left_join(L244.GenericServiceAdder_aggObs, by = c("region", "year", "building.service.input")) %>% filter(complete.cases(.)) %>% - mutate(bias.adder.equal = (obs - est_agg)/n_groups) %>% - mutate(bias.adder = round(bias.adder.equal,9)) %>% - mutate(nodeInput = "resid", + mutate(bias.adder.equal = (obs - est_agg)/n_groups, + bias.adder = round(bias.adder.equal,9), + nodeInput = "resid", building.node.input = "resid_building") %>% ungroup() %>% # adjust zero adder if observed is 0 @@ -2174,8 +2174,8 @@ module_energy_L244.building_det <- function(command, ...) { filter(complete.cases(.)) %>% mutate(adder_bm2 = obs - est_agg) %>% left_join_error_no_match(L144.flsp_bm2_R_res_Yh %>% select(-gcam.consumer), by = c("region", "year")) %>% - mutate(bias.adder = adder_bm2/value) %>% - mutate(nodeInput = "resid", + mutate(bias.adder = adder_bm2/value, + nodeInput = "resid", building.node.input = "resid_building") %>% # adjust zero adder if observed is 0 mutate(bias.adder = if_else(obs==0,0,bias.adder)) %>% @@ -2280,9 +2280,9 @@ module_energy_L244.building_det <- function(command, ...) { filter(year == MODEL_FINAL_BASE_YEAR) %>% left_join_error_no_match(L244.ThermalServiceAdder_aggObs, by = c("region", "year", "thermal.building.service.input")) %>% filter(complete.cases(.)) %>% - mutate(bias.adder.equal = (obs - est_agg)/n_groups) %>% - mutate(bias.adder = round(bias.adder.equal,9)) %>% - mutate(nodeInput = "resid", + mutate(bias.adder.equal = (obs - est_agg)/n_groups, + bias.adder = round(bias.adder.equal,9), + nodeInput = "resid", building.node.input = "resid_building") %>% ungroup() %>% # adjust zero adder if observed is 0 @@ -2321,8 +2321,8 @@ module_energy_L244.building_det <- function(command, ...) { filter(complete.cases(.)) %>% mutate(adder_bm2 = obs - est_agg) %>% left_join_error_no_match(L144.flsp_bm2_R_res_Yh %>% select(-gcam.consumer), by = c("region", "year")) %>% - mutate(bias.adder = adder_bm2/value) %>% - mutate(nodeInput = "resid", + mutate(bias.adder = adder_bm2/value, + nodeInput = "resid", building.node.input = "resid_building") %>% # adjust zero adder if observed is 0 mutate(bias.adder = if_else(obs==0,0,bias.adder)) %>% @@ -2466,8 +2466,8 @@ module_energy_L244.building_det <- function(command, ...) { # we use population in 2015 as we don't have projections left_join_error_no_match(L101.Pop_thous_R_Yh %>% filter(year==MODEL_FINAL_BASE_YEAR), by = c("GCAM_region_ID")) %>% rename(pop_thous=value) %>% - mutate(gdp=pcGDP_thous90USD*1E3*pop_thous*1E3) %>% - mutate(pcGDP_thous90USD_gr=(gdp*subregional.income.share)/(pop_thous*1E3*subregional.population.share*1E3)) %>% + mutate(gdp=pcGDP_thous90USD*1E3*pop_thous*1E3, + pcGDP_thous90USD_gr=(gdp*subregional.income.share)/(pop_thous*1E3*subregional.population.share*1E3)) %>% select(region,gcam.consumer,nodeInput,building.node.input,shell.conductance,shell.year, floor.to.surface.ratio,pcGDP_thous90USD,pcGDP_thous90USD_gr) %>% left_join_error_no_match(L244.PrElast.shell,by=c("region","shell.year")) %>% @@ -2511,8 +2511,8 @@ module_energy_L244.building_det <- function(command, ...) { separate(supplysector,c("adj_sector","group"),sep = "_",remove = F) %>% # use left_join due to lack of heating in Indonesia left_join(shares_resid, by=c("region","year","group","adj_sector")) %>% - mutate(share = if_else(is.na(share),0,share)) %>% - mutate(calibrated.value = calibrated.value * share) %>% + mutate(share = if_else(is.na(share),0,share), + calibrated.value = calibrated.value * share) %>% select(LEVEL2_DATA_NAMES[["StubTechCalInput"]]) L244.StubTechCalInput_bld<-bind_rows(L244.StubTechCalInput_bld_resid,L244.StubTechCalInput_bld_comm) diff --git a/input/gcamdata/R/zgcamusa_L101.EIA_SEDS.R b/input/gcamdata/R/zgcamusa_L101.EIA_SEDS.R index 9ca2575a55..023a9d3913 100644 --- a/input/gcamdata/R/zgcamusa_L101.EIA_SEDS.R +++ b/input/gcamdata/R/zgcamusa_L101.EIA_SEDS.R @@ -2,7 +2,7 @@ #' module_gcamusa_L101.EIA_SEDS #' -#' Produce two ouput tables from the EIA state energy database: +#' Produce two output tables from the EIA state energy database: #' \itemize{ #' \item{L101.inEIA_EJ_state_S_F: Energy data by GCAM sector and fuel, state, and year; energy units in EJ, years from 1971-2010, includes only rows that have a defined sector and fuel} #' \item{L101.EIA_use_all_Bbtu: Energy data by EIA sector and fuel code, GCAM sector and fuel, MSN, state, and year; energy units in Billion BTU, years from 1960-2011, includes all original data} diff --git a/input/gcamdata/R/zgcamusa_L1235.elec_load_segments.R b/input/gcamdata/R/zgcamusa_L1235.elec_load_segments.R index 0a59f8947a..b94734e9b2 100644 --- a/input/gcamdata/R/zgcamusa_L1235.elec_load_segments.R +++ b/input/gcamdata/R/zgcamusa_L1235.elec_load_segments.R @@ -13,7 +13,7 @@ #' \code{L1235.elecS_horizontal_vertical_GCAM_coeff_USA}, \code{L1235.elecS_demand_fraction_USA}. #' #' The corresponding file in the original data system was \code{LB1235.elec_load_segments.R} (gcam-usa level1). -#' @details Compute load curve related parameters and nitial estimate of generation by fuel in the horizontal segments. +#' @details Compute load curve related parameters and initial estimate of generation by fuel in the horizontal segments. #' @importFrom assertthat assert_that #' @importFrom dplyr filter mutate select summarise_at summarise_if #' @importFrom tidyr gather diff --git a/input/gcamdata/R/zgcamusa_L1321.cement.R b/input/gcamdata/R/zgcamusa_L1321.cement.R index 6910c48e8e..a1790ffd9c 100644 --- a/input/gcamdata/R/zgcamusa_L1321.cement.R +++ b/input/gcamdata/R/zgcamusa_L1321.cement.R @@ -12,7 +12,7 @@ #' original data system was \code{LA1321.Cement.R} (gcam-usa level1). #' @details The tables for cement production, i.e., out, and energy inputs, i.e., in, were calculated by applying state shares to national data. #' @details The state shares were determined by the states' relative values of cement shipments. -#' @details The input-out coefficients were downscaled to the states in proportation to the national data. +#' @details The input-out coefficients were downscaled to the states in proportion to the national data. #' @importFrom assertthat assert_that #' @importFrom dplyr filter mutate pull select summarise #' @importFrom tidyr gather diff --git a/input/gcamdata/R/zgcamusa_L154.Transport.R b/input/gcamdata/R/zgcamusa_L154.Transport.R index 126f8d3af3..d5b38d3ed1 100644 --- a/input/gcamdata/R/zgcamusa_L154.Transport.R +++ b/input/gcamdata/R/zgcamusa_L154.Transport.R @@ -2,7 +2,7 @@ #' module_gcamusa_L154.Transport #' -#' Downscale transportation energy consumption and nonmotor data to the state level, generating three ouput tables. +#' Downscale transportation energy consumption and nonmotor data to the state level, generating three output tables. #' #' @param command API command to execute #' @param ... other optional parameters, depending on command diff --git a/input/gcamdata/R/zgcamusa_L223.electricity.R b/input/gcamdata/R/zgcamusa_L223.electricity.R index 339a8e477c..630ceb3615 100644 --- a/input/gcamdata/R/zgcamusa_L223.electricity.R +++ b/input/gcamdata/R/zgcamusa_L223.electricity.R @@ -2,7 +2,7 @@ #' module_gcamusa_L223.electricity #' -#' Generates GCAM-USA model inputs for electrcity sector by grid regions and states. +#' Generates GCAM-USA model inputs for electricity sector by grid regions and states. #' #' @param command API command to execute #' @param ... other optional parameters, depending on command diff --git a/input/gcamdata/R/zgcamusa_L2232.electricity_FERC.R b/input/gcamdata/R/zgcamusa_L2232.electricity_FERC.R index c28a186e7c..d46ebbb650 100644 --- a/input/gcamdata/R/zgcamusa_L2232.electricity_FERC.R +++ b/input/gcamdata/R/zgcamusa_L2232.electricity_FERC.R @@ -2,7 +2,7 @@ #' module_gcamusa_L2232.electricity_FERC #' -#' Generate GCAM-USA model inputs for electrcity trade sectors at the level of grid regions. +#' Generate GCAM-USA model inputs for electricity trade sectors at the level of grid regions. #' #' @param command API command to execute #' @param ... other optional parameters, depending on command diff --git a/input/gcamdata/R/zgcamusa_L2236.elecS_ghg_emissions.R b/input/gcamdata/R/zgcamusa_L2236.elecS_ghg_emissions.R index 14f9496ff0..f640f49ae4 100644 --- a/input/gcamdata/R/zgcamusa_L2236.elecS_ghg_emissions.R +++ b/input/gcamdata/R/zgcamusa_L2236.elecS_ghg_emissions.R @@ -150,33 +150,39 @@ module_gcamusa_L2236.elecS_ghg_emissions <- function(command, ...) { spread(Non.CO2, input.emissions) -> L2236.elec_ghg_emissions_USA + + # Organize the state fuel input data # Electricity segments - L1231.in_EJ_state_elec_F_tech %>% + # The calibrated output data has all technology options we could need, so start with it. + L2233.StubTechProd_elecS_cool_USA %>% mutate(sector = "electricity") %>% - filter(year %in% L2236.elec_ghg_emissions_USA$year & technology %in% L2236.elec_ghg_emissions_USA$stub.technology) %>% - # We do not expect at 1:1 match may use a left_join here. - left_join(A23.elecS_tech_mapping %>% - select(-subsector_1), - by = c("sector" = "supplysector", "technology")) %>% - select(state, supplysector = Electric.sector, subsector, stub.technology = Electric.sector.technology, - year, technology, fuel, tech_fuel_input = value) %>% - # use left_join becuase the number of rows will change (same fuel into multiple cooling techs) - left_join(A23.elecS_tech_mapping_cool, - by=c("stub.technology"="Electric.sector.technology", - "supplysector"="Electric.sector","subsector","technology")) %>% - select(-technology,-subsector_1,-supplysector.y)%>% - rename(technology = to.technology, - subsector0 = subsector, - subsector = stub.technology) %>% - # We do not expect a 1:1 match so we can use a left_join here - left_join(L2233.StubTechProd_elecS_cool_USA %>% rename("stub.technology"="technology") %>% - select(LEVEL2_DATA_NAMES[['StubTechYr']], subsector0, calOutputValue), - by = c("state" = "region", "supplysector","subsector0", "subsector", "technology"="stub.technology", "year")) %>% - group_by(state, technology, year) %>% + filter(year %in% L2236.elec_ghg_emissions_USA$year & subsector0 %in% L2236.elec_ghg_emissions_USA$subsector) %>% + # need to duplicate and separate subsector for fuel table joining purposes. + # all of this being done is specifically to remediate a gas issue, which has two generation technologies + mutate(new_sub = subsector) %>% + separate(new_sub, into = c("gen_fuel", "delete", "fuel_type"), sep = "_", extra = "drop") %>% + select(-delete) %>% + unite(new_sub, gen_fuel, fuel_type, sep = " ") %>% + # now, we do renaming to match the fuel table + # the fuel table has 5 technology options + mutate(new_sub = gsub("gas CC", "gas (CC)", new_sub), + new_sub = gsub("gas steam/CT", "gas (steam/CT)", new_sub), + new_sub = if_else(subsector0 == "coal", "coal (conv pul)", new_sub), + new_sub = if_else(subsector0 == "refined liquids", "refined liquids (steam/CT)", new_sub), + new_sub = if_else(subsector0 == "biomass", "biomass (conv)", new_sub)) %>% + # Join with table that has fuel data. + # If the LJENM fails here, it is likely because the table being joined in was updated to include additional technologies + left_join_error_no_match(L1231.in_EJ_state_elec_F_tech, + by = c("region" = "state", "year", "new_sub" = "technology")) %>% + # remove columns we no longer need + select(-c(share.weight.year, subs.share.weight, tech.share.weight, sector.x, sector.y)) %>% + rename(state = region) %>% + # share out the fuel input based on electricity production + group_by(state, year, new_sub) %>% mutate(tech_calOuput = sum(calOutputValue), segment_share = calOutputValue / tech_calOuput, - fuel_input = round(tech_fuel_input * segment_share, 6), + fuel_input = round(value * segment_share, 6), fuel_input = if_else(is.na(fuel_input), 0, fuel_input)) %>% ungroup() %>% select(state, supplysector,subsector0,subsector, technology, year, technology, fuel, fuel_input) %>% @@ -185,6 +191,7 @@ module_gcamusa_L2236.elecS_ghg_emissions <- function(command, ...) { by = c("supplysector", "technology"="stub.technology", "year", "state" = "region")) -> L2236.elecS_cool_fuel_input_state + # Compute state shares for each category in the fuel input table # Share out CH4 and N2O emissions by state based on the fuel input shares L2236.elecS_cool_fuel_input_state %>% @@ -192,7 +199,8 @@ module_gcamusa_L2236.elecS_ghg_emissions <- function(command, ...) { left_join_error_no_match(A23.elecS_tech_mapping_cool %>% select(stub.technology = technology, technology = to.technology) %>% distinct(), by = "technology") %>% - left_join_error_no_match(L2236.elec_ghg_emissions_USA %>% select(-region, -supplysector, -subsector), + # we do not expect a 1:1 match here due to severl technologies not having emissions included + left_join(L2236.elec_ghg_emissions_USA %>% select(-region, -supplysector, -subsector), by = c("stub.technology", "year")) %>% group_by(stub.technology, year) %>% mutate(fuel_input_USA = sum(fuel_input), diff --git a/input/gcamdata/R/zgcamusa_L231.proc_sector.R b/input/gcamdata/R/zgcamusa_L231.proc_sector.R index ebe6ff3a3e..b6e961b1c9 100644 --- a/input/gcamdata/R/zgcamusa_L231.proc_sector.R +++ b/input/gcamdata/R/zgcamusa_L231.proc_sector.R @@ -39,7 +39,8 @@ module_gcamusa_L231.proc_sector <- function(command, ...) { "L231.Ind_globaltech_eff", "L132.in_EJ_state_indnochp_F", "L132.in_EJ_state_indchp_F", - "L132.in_EJ_state_indfeed_F")) + "L132.in_EJ_state_indfeed_F", + "L201.Pop_GCAMUSA")) } else if(command == driver.DECLARE_OUTPUTS) { return(c("L231.DeleteSupplysector_industry_USA", "L231.DeleteSupplysector_urban_processes_USA", @@ -84,6 +85,7 @@ module_gcamusa_L231.proc_sector <- function(command, ...) { L132.in_EJ_state_indnochp_F <- get_data(all_data, "L132.in_EJ_state_indnochp_F", strip_attributes = TRUE) L132.in_EJ_state_indchp_F <- get_data(all_data, "L132.in_EJ_state_indchp_F", strip_attributes = TRUE) L132.in_EJ_state_indfeed_F <- get_data(all_data, "L132.in_EJ_state_indfeed_F", strip_attributes = TRUE) + L201.Pop_GCAMUSA <- get_data(all_data, "L201.Pop_GCAMUSA", strip_attributes = TRUE) # =================================================== @@ -221,20 +223,48 @@ module_gcamusa_L231.proc_sector <- function(command, ...) { supplysector = "other industry", subsector = "other industry", technology = "other industry", - minicam.energy.input = emissions.IND_PROC_MINICAM_ENERGY_INPUT) - - # Interpolate coefficients to model years - L231.IndCoef_USA <- L231.IndCoef_Yb_USA %>% - select(-year, -coefficient, -ind_output, -ind_proc_input) %>% - distinct %>% - repeat_add_columns(tibble(year = MODEL_YEARS)) %>% - left_join(L231.IndCoef_Yb_USA, by = c("state", "supplysector", "subsector", "technology", "minicam.energy.input", "year")) %>% + minicam.energy.input = emissions.IND_PROC_MINICAM_ENERGY_INPUT) %>% + distinct() %>% rename(region = state) %>% - group_by(region, technology) %>% - mutate(coefficient = approx_fun(year, coefficient, rule = 2)) %>% - ungroup() %>% select(region, supplysector, subsector, technology, year, minicam.energy.input, coefficient) + # Reduce future industrial processes coefficient inverse to population growth to prevent an increase in future years + # Get rate of change by state/year + future_pop_change <- L201.Pop_GCAMUSA %>% + filter(year == max(MODEL_BASE_YEARS) | year %in% MODEL_FUTURE_YEARS) %>% + group_by(region) %>% + # calculate change from period to period + # -1 because we want to apply the inverse to the coefficient + mutate(change = -1*(totalPop - lag(totalPop))/lag(totalPop)) %>% + select(-totalPop) + + # Apply the inverse rate of change by state/year + L231.IndCoef_Yf_USA_unchanged <- L231.IndCoef_Yb_USA %>% + filter(year == max(MODEL_BASE_YEARS)) %>% + # add in future model years + complete(nesting(region, supplysector, subsector, technology, minicam.energy.input, coefficient), year = MODEL_YEARS) %>% + filter(year >= max(MODEL_BASE_YEARS)) %>% + # can't use LJENM because there are NAs in 2015 + left_join(future_pop_change, by = c("region", "year")) + + # Change NAs to 0 (this only applies to the base year) + L231.IndCoef_Yf_USA_unchanged[is.na(L231.IndCoef_Yf_USA_unchanged)] <- 0 + + L231.IndCoef_Yf_USA <- L231.IndCoef_Yf_USA_unchanged %>% + group_by(region) %>% + # calculate new coefficients based on the base year coefficient and inverse rate of change + mutate(new_coef = coefficient*cumprod(1+change)) %>% + distinct() %>% + select(region, supplysector, subsector, technology, year, minicam.energy.input, new_coef) %>% + rename(coefficient = new_coef) %>% + filter(year > max(MODEL_BASE_YEARS)) + + # bind base year with future year coefficients + L231.IndCoef_USA <- L231.IndCoef_Yb_USA %>% + bind_rows(L231.IndCoef_Yf_USA) %>% + # sort by region + arrange(region) + # =================================================== # Produce outputs @@ -385,7 +415,8 @@ module_gcamusa_L231.proc_sector <- function(command, ...) { add_precursors("L231.Ind_globaltech_eff", "L132.in_EJ_state_indchp_F", "L132.in_EJ_state_indnochp_F", - "L132.in_EJ_state_indfeed_F") -> + "L132.in_EJ_state_indfeed_F", + "L201.Pop_GCAMUSA") -> L231.IndCoef_USA return_data(L231.DeleteSupplysector_industry_USA, diff --git a/input/gcamdata/R/zgcamusa_L232.industry.R b/input/gcamdata/R/zgcamusa_L232.industry.R index 5136b08e3e..5d5643e0a2 100644 --- a/input/gcamdata/R/zgcamusa_L232.industry.R +++ b/input/gcamdata/R/zgcamusa_L232.industry.R @@ -165,7 +165,7 @@ module_gcamusa_L232.industry <- function(command, ...) { L202.StubTechProd_in_pulp_energy %>% bind_rows(L221.Supplysector_en) %>% filter(region == gcam.USA_REGION, - supplysector %in% aglu.PAPER_delete_ag_demand_USA) %>% + supplysector %in% aglu.PAPER_DELETE_AG_DEMAND_USA) %>% select(LEVEL2_DATA_NAMES[["DeleteSupplysector"]]) %>% distinct -> L232.DeleteSupplysector_USAwoodpulp diff --git a/input/gcamdata/R/zgcamusa_L244.building.R b/input/gcamdata/R/zgcamusa_L244.building.R index 735837c4d9..3398d612e7 100644 --- a/input/gcamdata/R/zgcamusa_L244.building.R +++ b/input/gcamdata/R/zgcamusa_L244.building.R @@ -173,7 +173,7 @@ module_gcamusa_L244.building <- function(command, ...) { L244.Supplysector_bld<-get_data(all_data, "L244.Supplysector_bld") %>% filter(region == gcam.USA_REGION) # Add a deflator for harmonizing GDPpc with prices - def9075<-2.212 + def9075<-gdp_deflator(1990, 1975) # =================================================== # Data Processing @@ -281,8 +281,8 @@ module_gcamusa_L244.building <- function(command, ...) { # Change units satiation level mutate(satiation.level = satiation.level * 1E6) %>% # Calculate satiation impedance - mutate(`satiation-impedance` = (-log(2)/log((satiation.level - flsp_pc) / (satiation.level))) * pcGDP_thous90USD) %>% - mutate(`satiation-impedance`= round(`satiation-impedance`,energy.DIGITS_SATIATION_IMPEDANCE)) %>% + mutate(`satiation-impedance` = (-log(2)/log((satiation.level - flsp_pc) / (satiation.level))) * pcGDP_thous90USD, + `satiation-impedance`= round(`satiation-impedance`,energy.DIGITS_SATIATION_IMPEDANCE)) %>% select(region,nodeInput,building.node.input,`satiation-impedance`) L244.Satiation_impedance_gcamusa<-L144.Satiation_impedance_gcamusa_pre %>% @@ -318,8 +318,8 @@ module_gcamusa_L244.building <- function(command, ...) { observed_flsp_bm2 = round(observed_flsp_bm2,3)) %>% mutate(satiation.adder = ((observed_flsp_bm2-est_flsp_bm2)*1E9) / (pop_thous*1E3)) %>% select(region,nodeInput,building.node.input,year,satiation.adder) %>% - mutate(satiation.adder = round(satiation.adder,energy.DIGITS_SATIATION_ADDER)) %>% - mutate(gcam.consumer = nodeInput) %>% + mutate(satiation.adder = round(satiation.adder,energy.DIGITS_SATIATION_ADDER), + gcam.consumer = nodeInput) %>% select(LEVEL2_DATA_NAMES[["SatiationAdder"]]) #------------------------------------------------------ @@ -738,12 +738,12 @@ module_gcamusa_L244.building <- function(command, ...) { mutate(`satiation-impedance` = (log(2)*((pcGDP_thous90USD*1000/def9075)/price)) / log((satiation.level)/(satiation.level-base_serv_flsp))) %>% # Check with an adder to be 0!!!! rename(observed_base_serv_perflsp = base_serv_flsp) %>% - mutate(thermal_load = 1) %>% - mutate(afford=(pcGDP_thous90USD*1000/def9075) / price) %>% - mutate(serv_density = satiation.level * (1-exp((-log(2)/`satiation-impedance`) * afford))) %>% - mutate(coef = observed_base_serv_perflsp / serv_density*thermal_load) %>% - mutate(est_base_serv_perflsp = coef * thermal_load * serv_density) %>% - mutate(bias.adder = round(est_base_serv_perflsp-observed_base_serv_perflsp,energy.DIGITS_BIAS_ADDER)) + mutate(thermal_load = 1, + afford=(pcGDP_thous90USD*1000/def9075) / price, + serv_density = satiation.level * (1-exp((-log(2)/`satiation-impedance`) * afford)), + coef = observed_base_serv_perflsp / serv_density*thermal_load, + est_base_serv_perflsp = coef * thermal_load * serv_density, + bias.adder = round(est_base_serv_perflsp-observed_base_serv_perflsp,energy.DIGITS_BIAS_ADDER)) L244.GenericServiceImpedance_gcamusa<-L244.GenericServiceImpedance_allvars_gcamusa %>% select(LEVEL2_DATA_NAMES[["GenericServiceImpedance"]]) %>% @@ -775,8 +775,8 @@ module_gcamusa_L244.building <- function(command, ...) { by = c("supplysector" = "sector.name", "subsector" = "subsector.name" , "stub.technology"="technology", "year")) %>% filter(complete.cases(.)) %>% - mutate(int_gains = base.service*internal.gains.output.ratio) %>% - mutate(gcam.consumer = ifelse(grepl("comm",supplysector),"comm","resid")) %>% + mutate(int_gains = base.service*internal.gains.output.ratio, + gcam.consumer = if_else(grepl("comm",supplysector),"comm","resid")) %>% group_by(region,gcam.consumer,year) %>% summarise(int_gains = sum(int_gains)) %>% ungroup() %>% @@ -801,8 +801,8 @@ module_gcamusa_L244.building <- function(command, ...) { filter(thermal.building.service.input %in% thermal_services, year == MODEL_FINAL_BASE_YEAR), by=c("region","year","thermal.building.service.input")) %>% rename(price = value) %>% - mutate(`satiation-impedance` = (log(2)*((pcGDP_thous90USD*1000/def9075)/price)) / log((satiation.level)/(satiation.level-base_serv_flsp))) %>% - mutate(dd=if_else(grepl("cooling",thermal.building.service.input),"CDD","HDD")) %>% + mutate(`satiation-impedance` = (log(2)*((pcGDP_thous90USD*1000/def9075)/price)) / log((satiation.level)/(satiation.level-base_serv_flsp)), + dd=if_else(grepl("cooling",thermal.building.service.input),"CDD","HDD")) %>% left_join_error_no_match(L244.HDDCDD_scen_state %>% filter(year == MODEL_FINAL_BASE_YEAR, GCM == "hist") %>% rename(dd = variable) %>% @@ -813,15 +813,15 @@ module_gcamusa_L244.building <- function(command, ...) { left_join_error_no_match(L244.internal_gains_gcamusa %>% filter(year == MODEL_FINAL_BASE_YEAR), by=c("region","year","gcam.consumer")) %>% left_join_error_no_match(L244.Intgains_scalar_gcamusa,by = c("region","gcam.consumer","nodeInput", "building.node.input","thermal.building.service.input")) %>% - mutate(intGains_EJ_serv = intGains_EJ / base.building.size) %>% - mutate(thermal_load = degree.days * shell.conductance * floor.to.surface.ratio + internal.gains.scalar*intGains_EJ_serv) %>% + mutate(intGains_EJ_serv = intGains_EJ / base.building.size, + thermal_load = degree.days * shell.conductance * floor.to.surface.ratio + internal.gains.scalar*intGains_EJ_serv) %>% select(-base.building.size) %>% rename(observed_base_serv_perflsp = base_serv_flsp) %>% - mutate(afford = (pcGDP_thous90USD*1000/def9075) / price) %>% - mutate(serv_density=satiation.level * (1-exp((-log(2)/`satiation-impedance`)*afford))) %>% - mutate(coef = observed_base_serv_perflsp / (serv_density*thermal_load)) %>% - mutate(est_base_serv_perflsp = coef * thermal_load * serv_density) %>% - mutate(bias.adder = round(est_base_serv_perflsp-observed_base_serv_perflsp,energy.DIGITS_BIAS_ADDER)) + mutate(afford = (pcGDP_thous90USD*1000/def9075) / price, + serv_density=satiation.level * (1-exp((-log(2)/`satiation-impedance`)*afford)), + coef = observed_base_serv_perflsp / (serv_density*thermal_load), + est_base_serv_perflsp = coef * thermal_load * serv_density, + bias.adder = round(est_base_serv_perflsp-observed_base_serv_perflsp,energy.DIGITS_BIAS_ADDER)) L244.ThermalServiceImpedance_gcamusa<-L244.ThermalServiceImpedance_allvars_gcamusa %>% select(LEVEL2_DATA_NAMES[["ThermalServiceImpedance"]]) %>% diff --git a/input/gcamdata/R/zgcamusa_L245.water_demand_municipal.R b/input/gcamdata/R/zgcamusa_L245.water_demand_municipal.R index 908fcb784f..8b771885c4 100644 --- a/input/gcamdata/R/zgcamusa_L245.water_demand_municipal.R +++ b/input/gcamdata/R/zgcamusa_L245.water_demand_municipal.R @@ -2,7 +2,7 @@ #' module_gcamusa_L245.water_demand_municipal #' -#' Genereate GCAM-USA municipal water sector input files. +#' Generate GCAM-USA municipal water sector input files. #' #' @param command API command to execute #' @param ... other optional parameters, depending on command diff --git a/input/gcamdata/R/zgcamusa_L271.nonghg_trn.R b/input/gcamdata/R/zgcamusa_L271.nonghg_trn.R index e270f23224..eb09c0e3e0 100644 --- a/input/gcamdata/R/zgcamusa_L271.nonghg_trn.R +++ b/input/gcamdata/R/zgcamusa_L271.nonghg_trn.R @@ -451,11 +451,36 @@ module_gcamusa_L271.nonghg_trn <- function(command, ...) { distinct() %>% ungroup() + ## Replace outlier EFs with the national median + + #First for the table that has EFS + # Generate national median emissions factors for base years + #TODO: Also for future years? This only applies to transportation sector + # list columns to group by (emission factor medians will based on this grouping) + to_group <- c( "year", "Non.CO2", "supplysector", "tranSubsector", "stub.technology" ) + # list columns to keep in final table + names <- c( "region", "Non.CO2", "year", "supplysector", "tranSubsector", "stub.technology", "emiss.coef") + # Name of column containing emission factors + ef_col_name <- "emiss.coef" + L271.nonco2_trn_tech_coeff_USA <- replace_outlier_EFs(L271.nonco2_trn_tech_coeff_USA_scaled, to_group, names, ef_col_name) + + #Then for the table that has linear control EFs + #TODO: Also do for linear controls? + # list columns to group by (emission factor medians will based on this grouping) + to_group <- c( "year", "start.year", "end.year", "Non.CO2", "supplysector", "tranSubsector", "stub.technology" ) + # list columns to keep in final table + names <- c( "region", "Non.CO2", "start.year", "end.year", "year", "supplysector", "tranSubsector", "stub.technology", + "linear.control", "allow.ef.increase", "final.emissions.coefficient") + # Name of column containing emission factors + ef_col_name <- "final.emissions.coefficient" + L271.nonco2_trn_emiss_control_USA <- replace_outlier_EFs(L271.nonco2_trn_emiss_control_USA_scaled, to_group, names, ef_col_name) + + # =================================================== # Produce outputs - L271.nonco2_trn_tech_coeff_USA_scaled %>% + L271.nonco2_trn_tech_coeff_USA %>% add_title("Non-CO2 transportation emissions coefficients by state / supplysector / tranSubsector / stub.technology / year / Non.CO2") %>% add_units("Tg/million pass-km or Tg/million ton-km") %>% add_comments("Efs for base and future years from MARKAL, scaled to CEDS") %>% @@ -470,7 +495,7 @@ module_gcamusa_L271.nonghg_trn <- function(command, ...) { "gcam-usa/emissions/NEI_pollutant_mapping") -> L271.nonco2_trn_tech_coeff_USA - L271.nonco2_trn_emiss_control_USA_scaled %>% + L271.nonco2_trn_emiss_control_USA %>% add_title("Non-CO2 new transportation linear control final emissions coefficients by state / supplysector / tranSubsector / stub.technology / year / Non.CO2") %>% add_units("Tg/million pass-km or Tg/million ton-km") %>% add_comments("Efs for base and future years") %>% diff --git a/input/gcamdata/R/zgcamusa_L272.nonghg_elc.R b/input/gcamdata/R/zgcamusa_L272.nonghg_elc.R index 1723204635..aeb6ece4f8 100644 --- a/input/gcamdata/R/zgcamusa_L272.nonghg_elc.R +++ b/input/gcamdata/R/zgcamusa_L272.nonghg_elc.R @@ -101,37 +101,14 @@ rename( stub.technology = technology ) %>% select(region, supplysector, subsector0, subsector, stub.technology, year, Non.CO2, emiss.coef) - # Generate national median emissions factors for base years - # Remove NAs so as to not skew the median - L272.nonghg_elec_tech_coeff_Yb_USA.median.true <- L272.nonghg_elec_tech_coeff_Yb_USA.NAs %>% - filter(!is.na(emiss.coef)) %>% - group_by(year, Non.CO2, supplysector, subsector0, subsector, stub.technology) %>% - summarise(emiss.coef = median(emiss.coef)) %>% - ungroup() %>% - rename(nationalEF = emiss.coef) - - # Some year / pollutant / sector / subsector / tech are NA for all entries, and should be set to 0 - L272.nonghg_elec_tech_coeff_Yb_USA.median.skewed <- L272.nonghg_elec_tech_coeff_Yb_USA.NAs %>% - replace_na(list(emiss.coef = 0)) %>% - group_by(year, Non.CO2, supplysector, subsector0, subsector, stub.technology) %>% - summarise(emiss.coef = median(emiss.coef)) %>% - ungroup() %>% - rename(nationalEF = emiss.coef) - - # We want to join these tables so that only the entries not in median.true are retained from median.skewed - # These all have EFs of 0 - L272.nonghg_elec_tech_coeff_Yb_USA.median <- L272.nonghg_elec_tech_coeff_Yb_USA.median.skewed %>% - anti_join( L272.nonghg_elec_tech_coeff_Yb_USA.median.true, by=c("year", "Non.CO2", "supplysector", "subsector0", "subsector", "stub.technology") ) %>% - # rebind to median.true - bind_rows(L272.nonghg_elec_tech_coeff_Yb_USA.median.true) - - # Replace all emissions factors above a given value (20 * median) or that are NAs with the national median emissions factor for that year, non.CO2, and technology - L272.nonghg_elec_tech_coeff_Yb_USA.noBCOC <- L272.nonghg_elec_tech_coeff_Yb_USA.NAs %>% - left_join_error_no_match(L272.nonghg_elec_tech_coeff_Yb_USA.median, by = c("year", "Non.CO2", "supplysector", "subsector0", "subsector", "stub.technology")) %>% - # create a new column that has the threshold value - mutate( threshold = nationalEF * 20, - emiss.coef = if_else(emiss.coef > threshold | is.na(emiss.coef), nationalEF, emiss.coef)) %>% - select(region, Non.CO2, year, supplysector, subsector0, subsector, stub.technology, emiss.coef) + ## Replace outlier EFs with the national median + # list columns to group by (emission factor medians will based on this grouping) + to_group <- c( "year", "Non.CO2", "supplysector", "subsector0", "subsector", "stub.technology" ) + # list columns to keep in final table + names <- c( "region", "Non.CO2", "year", "supplysector", "subsector0", "subsector", "stub.technology", "emiss.coef") + # Name of column containing emission factors + ef_col_name <- "emiss.coef" + L272.nonghg_elec_tech_coeff_Yb_USA.noBCOC <- replace_outlier_EFs(L272.nonghg_elec_tech_coeff_Yb_USA.NAs, to_group, names, ef_col_name) # Use fractions of PM2.5 to calculate BC/OC emissions. # We need to modify the BC_OC_assumptions table, as the BCOC_PM25_ratios table has updated values that are time dependent @@ -226,38 +203,14 @@ #bind to table that has EFs for NH3 bind_rows(L272.nonghg_elec_tech_coeff_Yf_USA.NH3) - # Generate national median emissions factors for future years - # Remove NAs so as to not skew the median - L272.nonghg_elec_tech_coeff_Yf_USA.median.true <- L272.nonghg_elec_tech_coeff_Yf_USA.NAs %>% - filter(!is.na(emiss.coef)) %>% - group_by(year, Non.CO2, supplysector, subsector0, subsector, stub.technology) %>% - summarise(emiss.coef = median(emiss.coef)) %>% - ungroup() %>% - rename(nationalEF = emiss.coef) - - # Some year / pollutant / sector / subsector / tech are NA for all entries, and should be set to 0 - L272.nonghg_elec_tech_coeff_Yf_USA.median.skewed <- L272.nonghg_elec_tech_coeff_Yf_USA.NAs %>% - replace_na(list(emiss.coef = 0)) %>% - group_by(year, Non.CO2, supplysector, subsector0, subsector, stub.technology) %>% - summarise(emiss.coef = median(emiss.coef)) %>% - ungroup() %>% - rename(nationalEF = emiss.coef) - - # We want to join these tables so that only the entries not in median.true are retained from median.skewed - # These all have EFs of 0 - L272.nonghg_elec_tech_coeff_Yf_USA.median <- L272.nonghg_elec_tech_coeff_Yf_USA.median.skewed %>% - anti_join( L272.nonghg_elec_tech_coeff_Yf_USA.median.true, by=c("year", "Non.CO2", "supplysector", "subsector0", "subsector", "stub.technology") ) %>% - # rebind to median.true - bind_rows( L272.nonghg_elec_tech_coeff_Yf_USA.median.true) - - # Replace all emissions factors above a given value (20 * median) or that are NAs with the national median emissions factor for that year, non.CO2, and technology - L272.nonghg_elec_tech_coeff_Yf_USA.noBCOC <- L272.nonghg_elec_tech_coeff_Yf_USA.NAs %>% - left_join_error_no_match(L272.nonghg_elec_tech_coeff_Yf_USA.median, by = c("year", "Non.CO2", "supplysector", "subsector0", "subsector", "stub.technology")) %>% - # create a new column that has the threshold value - mutate( threshold = nationalEF * 20, - emiss.coef = if_else(emiss.coef > threshold | is.na(emiss.coef), nationalEF, emiss.coef)) %>% - select(region, Non.CO2, year, supplysector, subsector0, subsector, stub.technology, emiss.coef) %>% - mutate(emiss.coef = if_else(is.infinite(emiss.coef), 1, emiss.coef)) + ## Replace outlier EFs with the national median + # list columns to group by (emission factor medians will based on this grouping) + to_group <- c( "year", "Non.CO2", "supplysector", "subsector0", "subsector", "stub.technology" ) + # list columns to keep in final table + names <- c( "region", "Non.CO2", "year", "supplysector", "subsector0", "subsector", "stub.technology", "emiss.coef") + # Name of column containing emission factors + ef_col_name <- "emiss.coef" + L272.nonghg_elec_tech_coeff_Yf_USA.noBCOC <- replace_outlier_EFs(L272.nonghg_elec_tech_coeff_Yf_USA.NAs, to_group, names, ef_col_name) # Use fractions of PM2.5 to calculate BC/OC emissions. L272.nonghg_elec_tech_coeff_Yf_USA <- compute_BC_OC_elc(L272.nonghg_elec_tech_coeff_Yf_USA.noBCOC, BC_OC_assumptions_years) %>% diff --git a/input/gcamdata/R/zgcamusa_L2722.nonghg_elc_linear_control.R b/input/gcamdata/R/zgcamusa_L2722.nonghg_elc_linear_control.R index 400888d293..1e32add62f 100644 --- a/input/gcamdata/R/zgcamusa_L2722.nonghg_elc_linear_control.R +++ b/input/gcamdata/R/zgcamusa_L2722.nonghg_elc_linear_control.R @@ -68,33 +68,26 @@ module_gcamusa_L2722.nonghg_elc_linear_control <- function(command, ...) { filter( year == max( MODEL_BASE_YEARS ) | year == max( year ) ) %>% left_join( NEI_emissions, by = c( "state", "year") ) %>% # calculate the emissions factor by dividing emissions by consumption - mutate( observed.emission.factor = input.emissions / electricity.consumption ) %>% + mutate( emiss.coef = input.emissions / electricity.consumption ) %>% select( -c( input.emissions, electricity.consumption ) ) # this results in some states having NAs or Inf due to having no input emissions (NA), or 0 input emissions (Inf) # In these cases, we apply the average emissions factor for that year and pollutant - # Generate national median emissions factors - # Remove NAs so as to not skew the median - # Some states (VT, DC, RI, and ID), are not assigned median EFs because they have no electricity consumption from coal. - # Some states (ME), are not assigned median EFs because they have no electric generation emissions from coal, + ## Replace outlier EFs with the national median # Previously, we were assigning medians to these states. - elec_emiss_coeffs.median <- elec_emiss_coeffs.NA %>% - filter(!is.na(observed.emission.factor)) %>% - group_by(year, Non.CO2) %>% - summarise(observed.emission.factor = median(observed.emission.factor)) %>% - ungroup() %>% - rename(nationalEF = observed.emission.factor) - - # Replace all emissions factors above a given value (currently 1000) or that are NAs with the national median emissions factor for that year, non.CO2, and technology - elec_emiss_coeffs <- elec_emiss_coeffs.NA %>% - # remove NAs so LJENM works - # These NAs are the states mentioned above - filter(!is.na(observed.emission.factor)) %>% - left_join_error_no_match(elec_emiss_coeffs.median, by = c("year", "Non.CO2")) %>% - mutate(observed.emission.factor = if_else(observed.emission.factor > emissions.HIGH_EM_FACTOR_THRESHOLD | is.na(observed.emission.factor), nationalEF, observed.emission.factor)) %>% - select(state, year, sector, fuel, Non.CO2, observed.emission.factor) %>% - mutate(observed.emission.factor = if_else(is.infinite(observed.emission.factor), 1, observed.emission.factor)) %>% - rename(final.emissions.coefficient = observed.emission.factor) + elec_emiss_coeffs.check_outlier <- elec_emiss_coeffs.NA %>% + # Some states (VT, DC, RI, and ID), are not assigned median EFs because they have no electricity consumption from coal. + # Some states (ME), are not assigned median EFs because they have no electric generation emissions from coal. + # In these cases, the sector will be NA and should be removed + filter(!is.na(sector)) + + # list columns to group by (emission factor medians will based on this grouping) + to_group <- c( "year", "Non.CO2", "sector", "fuel" ) + # list columns to keep in final table + names <- c( "state", "Non.CO2", "year", "sector", "fuel", "emiss.coef") + # Name of column containing emission factors + ef_col_name <- "emiss.coef" + elec_emiss_coeffs <- replace_outlier_EFs(elec_emiss_coeffs.check_outlier, to_group, names, ef_col_name) # Assign emission coefficients to the electricity technologies # The linear control will not apply to IGCC or CCS technologies @@ -118,7 +111,8 @@ module_gcamusa_L2722.nonghg_elc_linear_control <- function(command, ...) { # Can't use left_join_error_no_match because the technology table includes all states left_join(elec_emiss_coeffs, by = c("region" = "state", "subsector0" = "fuel", "Non.CO2")) %>% # Set end year for the linear control - rename( end.year = year.y ) %>% + rename( end.year = year.y, + final.emissions.coefficient = emiss.coef) %>% select(region, supplysector, subsector0, subsector, technology, Non.CO2, end.year, final.emissions.coefficient) %>% # remove NAs (from ME, mentioned above) filter( !is.na( end.year ) ) diff --git a/input/gcamdata/R/zgcamusa_L274.nonghg_bld.R b/input/gcamdata/R/zgcamusa_L274.nonghg_bld.R index 47366ca427..b48dbd27f1 100644 --- a/input/gcamdata/R/zgcamusa_L274.nonghg_bld.R +++ b/input/gcamdata/R/zgcamusa_L274.nonghg_bld.R @@ -106,38 +106,14 @@ if(command == driver.DECLARE_INPUTS) { # Compute tech coefficients. ###MISSING VALUES: corresponding to NAs in the emissions table mutate(emiss.coef = input.emissions / fuel_input) - # Generate national median emissions factors for base years - # Remove NAs so as to not skew the median - L274.nonghg_bld_tech_coeff_Yb_USA.median.true <- L274.nonghg_bld_tech_coeff_Yb_USA.NAs %>% - filter(!is.na(emiss.coef)) %>% - group_by(year, Non.CO2, supplysector, subsector, stub.technology) %>% - summarise(emiss.coef = median(emiss.coef)) %>% - ungroup() %>% - rename(nationalEF = emiss.coef) - - # Some year / pollutant / sector / subsector / tech are NA for all entries, and should be set to 0 - L274.nonghg_bld_tech_coeff_Yb_USA.median.skewed <- L274.nonghg_bld_tech_coeff_Yb_USA.NAs %>% - replace_na(list(emiss.coef = 0)) %>% - group_by(year, Non.CO2, supplysector, subsector, stub.technology) %>% - summarise(emiss.coef = median(emiss.coef)) %>% - ungroup() %>% - rename(nationalEF = emiss.coef) - - # We want to join these tables so that only the entries not in median.true are retained from median.skewed - # These all have EFs of 0 - L274.nonghg_bld_tech_coeff_Yb_USA.median <- L274.nonghg_bld_tech_coeff_Yb_USA.median.skewed %>% - anti_join( L274.nonghg_bld_tech_coeff_Yb_USA.median.true, by=c("year", "Non.CO2", "supplysector", "subsector", "stub.technology") ) %>% - # rebind to median.true - bind_rows(L274.nonghg_bld_tech_coeff_Yb_USA.median.true) - - # Replace all emissions factors above a given value (20 * median) or that are NAs with the national median emissions factor for that year, non.CO2, and technology - L274.nonghg_bld_tech_coeff_Yb_USA.noBCOC <- L274.nonghg_bld_tech_coeff_Yb_USA.NAs %>% - left_join_error_no_match(L274.nonghg_bld_tech_coeff_Yb_USA.median, by = c("year", "Non.CO2", "supplysector","subsector", "stub.technology")) %>% - # create a new column that has the threshold value - mutate( threshold = nationalEF * 20, - emiss.coef = if_else(emiss.coef > threshold | is.na(emiss.coef), nationalEF, emiss.coef)) %>% - select(region, Non.CO2, year, supplysector, subsector, stub.technology, emiss.coef) %>% - mutate(emiss.coef = if_else(is.infinite(emiss.coef), 1, emiss.coef)) + ## Replace outlier EFs with the national median + # list columns to group by (emission factor medians will based on this grouping) + to_group <- c( "year", "Non.CO2", "supplysector", "subsector", "stub.technology" ) + # list columns to keep in final table + names <- c( "region", "Non.CO2", "year", "supplysector", "subsector", "stub.technology", "emiss.coef") + # Name of column containing emission factors + ef_col_name <- "emiss.coef" + L274.nonghg_bld_tech_coeff_Yb_USA.noBCOC <- replace_outlier_EFs(L274.nonghg_bld_tech_coeff_Yb_USA.NAs, to_group, names, ef_col_name) # Use fractions of PM2.5 to calculate BC/OC emissions. # We need to modify the BC_OC_assumptions table, as the BCOC_PM25_ratios table has updated values that are time dependent diff --git a/input/gcamdata/R/zgcamusa_L275.nonghg_indenergy.R b/input/gcamdata/R/zgcamusa_L275.nonghg_indenergy.R index bb0e903951..2632d487af 100644 --- a/input/gcamdata/R/zgcamusa_L275.nonghg_indenergy.R +++ b/input/gcamdata/R/zgcamusa_L275.nonghg_indenergy.R @@ -86,38 +86,14 @@ module_gcamusa_L275.indenergy_nonghg <- function(command, ...) { "Non.CO2", "year")) %>% select(-sector, -input.emissions) - # Generate national median emissions factors for base years - # Remove NAs so as to not skew the median - L275.nonghg_indenergy_tech_coeff_Yb_USA.median.true <- L275.nonghg_indenergy_tech_coeff_Yb_USA_NAs %>% - filter(!is.na(emiss.coef)) %>% - group_by(year, Non.CO2, supplysector, subsector, stub.technology) %>% - summarise(emiss.coef = median(emiss.coef)) %>% - ungroup() %>% - rename(nationalEF = emiss.coef) - - # Some year / pollutant / sector / subsector / tech are NA for all entries, and should be set to 0 - L275.nonghg_indenergy_tech_coeff_Yb_USA.median.skewed <- L275.nonghg_indenergy_tech_coeff_Yb_USA_NAs %>% - replace_na(list(emiss.coef = 0)) %>% - group_by(year, Non.CO2, supplysector, subsector, stub.technology) %>% - summarise(emiss.coef = median(emiss.coef)) %>% - ungroup() %>% - rename(nationalEF = emiss.coef) - - # We want to join these tables so that only the entries not in median.true are retained from median.skewed - # These all have EFs of 0 - L275.nonghg_indenergy_tech_coeff_Yb_USA.median <- L275.nonghg_indenergy_tech_coeff_Yb_USA.median.skewed %>% - anti_join(L275.nonghg_indenergy_tech_coeff_Yb_USA.median.true, by=c("year", "Non.CO2", "supplysector", "subsector", "stub.technology") ) %>% - # rebind to median.true - bind_rows(L275.nonghg_indenergy_tech_coeff_Yb_USA.median.true) - - # Replace all emissions factors above a given value (20 * median) or that are NAs with the national median emissions factor for that year, non.CO2, and technology - L275.nonghg_indenergy_tech_coeff_Yb_USA.noBCOC <- L275.nonghg_indenergy_tech_coeff_Yb_USA_NAs %>% - left_join_error_no_match(L275.nonghg_indenergy_tech_coeff_Yb_USA.median, by = c("year", "Non.CO2", "supplysector", "subsector", "stub.technology")) %>% - # create a new column that has the threshold value - mutate( threshold = nationalEF * 20, - emiss.coef = if_else(emiss.coef > threshold | is.na(emiss.coef), nationalEF, emiss.coef)) %>% - select(region, Non.CO2, year, supplysector, subsector, stub.technology, emiss.coef) %>% - mutate(emiss.coef = if_else(is.infinite(emiss.coef), 1, emiss.coef)) + ## Replace outlier EFs with the national median + # list columns to group by (emission factor medians will based on this grouping) + to_group <- c( "year", "Non.CO2", "supplysector", "subsector", "stub.technology" ) + # list columns to keep in final table + names <- c( "region", "Non.CO2", "year", "supplysector", "subsector", "stub.technology", "emiss.coef") + # Name of column containing emission factors + ef_col_name <- "emiss.coef" + L275.nonghg_indenergy_tech_coeff_Yb_USA.noBCOC <- replace_outlier_EFs(L275.nonghg_indenergy_tech_coeff_Yb_USA_NAs, to_group, names, ef_col_name) # Use fractions of PM2.5 to calculate BC/OC emissions. # We need to modify the BC_OC_assumptions table, as the BCOC_PM25_ratios table has updated values that are time dependent diff --git a/input/gcamdata/R/zgcamusa_L276.nonghg_othertrn.R b/input/gcamdata/R/zgcamusa_L276.nonghg_othertrn.R index 58e7d94392..8c1c6fee67 100644 --- a/input/gcamdata/R/zgcamusa_L276.nonghg_othertrn.R +++ b/input/gcamdata/R/zgcamusa_L276.nonghg_othertrn.R @@ -161,44 +161,10 @@ module_gcamusa_L276.nonghg_othertrn <- function(command, ...) { left_join_error_no_match( L276.int_nonghg_tech_coeff_Yb_USA_fuel, by = c( "supplysector", "tranSubsector", "stub.technology", "year", "input.name" = "minicam.energy.input" ) ) %>% mutate(emiss.coeff = input.emissions / calibrated.value) - # Bind the air, rail, and international shipping and aviation EFs into a single table and remove unnecessary columns L276.nonghg_othertrn_tech_coeff_Yb_USA.NAs <- bind_rows(L276.rail_nonghg_tech_coeff_Yb_USA, L276.air_nonghg_tech_coeff_Yb_USA, L276.int_nonghg_tech_coeff_Yb_USA) %>% select( c( region, supplysector, tranSubsector, stub.technology, year, Non.CO2, emiss.coeff ) ) %>% - ungroup() - - # Generate national median emissions factors for base years - # Remove NAs so as to not skew the median - L276.nonghg_othertrn_tech_coeff_Yb_USA.median.true <- L276.nonghg_othertrn_tech_coeff_Yb_USA.NAs %>% - filter(!is.na(emiss.coeff)) %>% - group_by(year, Non.CO2, supplysector, tranSubsector, stub.technology) %>% - summarise(emiss.coeff = median(emiss.coeff)) %>% ungroup() %>% - rename(nationalEF = emiss.coeff) - - # Some year / pollutant / sector / subsector / tech are NA for all entries, and should be set to 0 - L276.nonghg_othertrn_tech_coeff_Yb_USA.median.skewed <- L276.nonghg_othertrn_tech_coeff_Yb_USA.NAs %>% - replace_na(list(emiss.coeff = 0)) %>% - group_by(year, Non.CO2, supplysector, tranSubsector, stub.technology) %>% - summarise(emiss.coeff = median(emiss.coeff)) %>% - ungroup() %>% - rename(nationalEF = emiss.coeff) - - # We want to join these tables so that only the entries not in median.true are retained from median.skewed - # These all have EFs of 0 - L276.nonghg_othertrn_tech_coeff_Yb_USA.median <- L276.nonghg_othertrn_tech_coeff_Yb_USA.median.skewed %>% - anti_join( L276.nonghg_othertrn_tech_coeff_Yb_USA.median.true, by=c("year", "Non.CO2", "supplysector", "tranSubsector", "stub.technology") ) %>% - # rebind to median.true - bind_rows(L276.nonghg_othertrn_tech_coeff_Yb_USA.median.true) - - # Replace all emissions factors above a given value (20 * median) or that are NAs with the national median emissions factor for that year, non.CO2, and technology - L276.nonghg_othertrn_tech_coeff_Yb_USA.noBCOC <- L276.nonghg_othertrn_tech_coeff_Yb_USA.NAs %>% - left_join_error_no_match(L276.nonghg_othertrn_tech_coeff_Yb_USA.median, by = c("year", "Non.CO2", "supplysector","tranSubsector", "stub.technology")) %>% - # create a new column that has the threshold value - mutate( threshold = nationalEF * 20, - emiss.coeff = if_else(emiss.coeff > threshold | is.na(emiss.coeff), nationalEF, emiss.coeff)) %>% - select(region, Non.CO2, year, supplysector, tranSubsector, stub.technology, emiss.coeff) %>% - mutate(emiss.coeff = if_else(is.infinite(emiss.coeff), 1, emiss.coeff)) %>% rename( emiss.coef = emiss.coeff) # Domestic Shipping @@ -318,7 +284,7 @@ module_gcamusa_L276.nonghg_othertrn <- function(command, ...) { # bind EFs for shipping from all years with the table of other subsector EFs L276.nonghg_all_othertrn_tech_coeff_Yb_USA.noBCOC <- bind_rows(L276.nonghg_othertrn_tech_coeff_USA_marine_Yb, L276.nonghg_othertrn_tech_coeff_USA_marine_new_SO2, - L276.nonghg_othertrn_tech_coeff_Yb_USA.noBCOC) + L276.nonghg_othertrn_tech_coeff_Yb_USA.NAs) # Use fractions of PM2.5 to calculate BC/OC emissions. # We need to modify the BC_OC_assumptions table, as the BCOC_PM25_ratios table has updated values that are time dependent @@ -376,7 +342,7 @@ module_gcamusa_L276.nonghg_othertrn <- function(command, ...) { bind_rows( L276.nonghg_othertrn_tech_coeff_USA_no_driver ) # Add an input name column to drive emissions - L276.nonghg_othertrn_tech_coeff_USA <- L276.nonghg_othertrn_tech_coeff_USA_no_driver_hasPM %>% + L276.nonghg_othertrn_tech_coeff_USA_replace.outliers <- L276.nonghg_othertrn_tech_coeff_USA_no_driver_hasPM %>% # L254.StubTranTechCalInput_USA has the fuel inputs that should be used to drive emissions left_join_error_no_match( L254.StubTranTechCalInput_USA %>% filter( grepl( "Rail|Aviation|Ship", tranSubsector ) ) %>% @@ -393,6 +359,17 @@ module_gcamusa_L276.nonghg_othertrn <- function(command, ...) { # distinct to remove any potential duplicate rows distinct() + ## Replace outlier EFs with the national median + # Generate national median emissions factors for base years + # list columns to group by (emission factor medians will based on this grouping) + to_group <- c( "year", "Non.CO2", "supplysector", "tranSubsector", "stub.technology" ) + # list columns to keep in final table + names <- c( "region", "Non.CO2", "year", "supplysector", "tranSubsector", "stub.technology", "emiss.coef", "input.name") + # Name of column containing emission factors + ef_col_name <- "emiss.coef" + L276.nonghg_othertrn_tech_coeff_USA <- replace_outlier_EFs(L276.nonghg_othertrn_tech_coeff_USA_replace.outliers, to_group, names, ef_col_name) + + # Produce outputs L276.nonghg_othertrn_tech_coeff_USA %>% add_title("Non-GHG input emissions parameters for non-road transportation sector") %>% diff --git a/input/gcamdata/R/zsocio_L101.Population.R b/input/gcamdata/R/zsocio_L101.Population.R index 35418db0a4..e851e5f9e0 100644 --- a/input/gcamdata/R/zsocio_L101.Population.R +++ b/input/gcamdata/R/zsocio_L101.Population.R @@ -11,7 +11,7 @@ #' the generated outputs: \code{L101.Pop_thous_R_Yh}, \code{L101.Pop_thous_Scen_R_Yfut}, \code{L101.Pop_thous_GCAM3_R_Y}, \code{L101.Pop_thous_GCAM3_ctry_Y}. The corresponding file in the #' original data system was \code{L101.Population.R} (socioeconomics level1). #' @details Interpolates GCAM population data to all historical and future years, aggregating by -#' country and/or region and/or SPP as necessary. +#' country and/or region and/or SSP as necessary. #' @importFrom assertthat assert_that #' @importFrom dplyr arrange bind_rows filter group_by mutate select summarise #' @importFrom tidyr complete nesting spread diff --git a/input/gcamdata/R/zsocio_L180.GDP_macro.R b/input/gcamdata/R/zsocio_L180.GDP_macro.R index 76cd4752de..3bbc79afff 100644 --- a/input/gcamdata/R/zsocio_L180.GDP_macro.R +++ b/input/gcamdata/R/zsocio_L180.GDP_macro.R @@ -72,7 +72,7 @@ module_socio_L180.GDP_macro <- function(command, ...) { # PWT91.raw %>% select(countrycode, country, year, pop, emp, avh, rgdpna, rconna, rdana, - rnna, labsh, delta) %>% + rnna, labsh, delta, irr) %>% rename(iso = countrycode, labor.force = emp, hrs.worked.annual = avh, @@ -82,7 +82,8 @@ module_socio_L180.GDP_macro <- function(command, ...) { cons.plus.invest = rdana, capital.stock = rnna, labor.share.gdp = labsh, - depreciation.rate = delta) %>% + depreciation.rate = delta, + interest.rate = irr) %>% mutate(iso = tolower(iso)) %>% gather(var, value, -iso, -country, -year) %>% filter(!is.na(value)) -> pwt @@ -222,6 +223,15 @@ module_socio_L180.GDP_macro <- function(command, ...) { L180.nationalAccounts + # Some ISOs have missing interest rates, attempt to fill them using + # rule=2 and if still missing (i.e. the country has no data for any + # year) just fall back to the global mean + L180.nationalAccounts %>% + group_by(iso) %>% + mutate(interest.rate = approx_fun(year, interest.rate, rule=2)) %>% + ungroup() %>% + mutate(interest.rate = if_else(is.na(interest.rate), mean(interest.rate, na.rm=T), interest.rate)) -> + L180.nationalAccounts #Future labor force share of population from SSP population by cohort @@ -276,7 +286,7 @@ module_socio_L180.GDP_macro <- function(command, ...) { cons.plus.invest, capital.stock, depreciation, savings, wages, hrs.worked.annual, wage.rate, labor.force.share, depreciation.rate, savings.rate, - energy.investment, capital.net.export ) -> L180.nationalAccounts + interest.rate, energy.investment, capital.net.export ) -> L180.nationalAccounts # =================================================== diff --git a/input/gcamdata/R/zsocio_L280.GDP_macro.R b/input/gcamdata/R/zsocio_L280.GDP_macro.R index dc0feb6b4b..52f57f1349 100644 --- a/input/gcamdata/R/zsocio_L280.GDP_macro.R +++ b/input/gcamdata/R/zsocio_L280.GDP_macro.R @@ -59,13 +59,14 @@ module_socio_L280.GDP_macro <- function(command, ...) { rename(labor.force.tot = labor.force) -> labor.force.gcam.reg.tbl L180.nationalAccounts %>% left_join_error_no_match(labor.force.gcam.reg.tbl, by=c("GCAM_region_ID", "year")) %>% - mutate(wage.rate.fraction = labor.force/labor.force.tot * wage.rate) %>% + mutate(wage.rate.fraction = labor.force/labor.force.tot * wage.rate, + capital.value = capital.stock * interest.rate) %>% select(-labor.force.tot) -> L180.nationalAccounts #Aggregate national accounts from country to GCAM region #Remove all shares and rates by country, sum by GCAM region and recalculate L180.nationalAccounts %>% select(-iso, -country_name, -labor.force.share, -wage.rate, - -hrs.worked.annual, -depreciation.rate, -savings.rate) %>% + -hrs.worked.annual, -depreciation.rate, -savings.rate, -interest.rate) %>% group_by(GCAM_region_ID, year) %>% summarise_all(sum, na.rm = TRUE) %>% ungroup() %>% @@ -136,6 +137,7 @@ module_socio_L280.GDP_macro <- function(command, ...) { depreciation = depreciation * gdp.scaler, savings = savings * gdp.scaler, wages = wages * gdp.scaler, + capital.value = replace_na(capital.value * gdp.scaler, 0), energy.investment = replace_na(energy.investment * gdp.scaler, 0), capital.net.export = replace_na(capital.net.export * gdp.scaler, 0)) -> national.accounts.hist @@ -317,11 +319,11 @@ module_socio_L280.GDP_macro <- function(command, ...) { national.accounts.BaseYrs %>% rename(capital = capital.stock) %>% select(GCAM_region_ID, region, year, capital, depreciation.rate, - savings.rate, energy.investment, wages, labor.force.share, capital.net.export) -> national.accounts.BaseYrs + savings.rate, energy.investment, wages, capital.value, labor.force.share, capital.net.export) -> national.accounts.BaseYrs - national.accounts.FutureYrs %>% mutate(capital = 0, wages = 0, energy.investment = 0, capital.net.export = NA_real_) %>% + national.accounts.FutureYrs %>% mutate(capital = 0, wages = 0, capital.value = 0, energy.investment = 0, capital.net.export = NA_real_) %>% select(GCAM_region_ID, region, year, capital, depreciation.rate, - savings.rate, energy.investment, wages, labor.force.share, capital.net.export) -> national.accounts.FutureYrs + savings.rate, energy.investment, wages, capital.value, labor.force.share, capital.net.export) -> national.accounts.FutureYrs #combine historical and future national accounts national.accounts.BaseYrs %>% bind_rows(national.accounts.FutureYrs) %>% @@ -399,10 +401,10 @@ module_socio_L280.GDP_macro <- function(command, ...) { L280.FactorProductivity L280.nationalAccounts %>% select(region, year, capital, depreciation.rate, - savings.rate, energy.investment, wages, labor.force.share, + savings.rate, energy.investment, wages, capital.value, labor.force.share, capital.net.export) -> L280.nationalAccounts # use 3 decimal places - L280.nationalAccounts %>% dplyr::mutate_at(vars(capital, wages, energy.investment), list(~ round(.,3))) %>% + L280.nationalAccounts %>% dplyr::mutate_at(vars(capital, wages, capital.value, energy.investment), list(~ round(.,3))) %>% dplyr::mutate_at(vars(depreciation.rate, savings.rate, labor.force.share), list(~ round(.,6))) -> L280.nationalAccounts diff --git a/input/gcamdata/R/zsocio_L281.macro_account_tracking.R b/input/gcamdata/R/zsocio_L281.macro_account_tracking.R index 1ec20c4cb1..b70684a1c3 100644 --- a/input/gcamdata/R/zsocio_L281.macro_account_tracking.R +++ b/input/gcamdata/R/zsocio_L281.macro_account_tracking.R @@ -252,6 +252,7 @@ module_socio_L281.macro_account_tracking <- function(command, ...) { "L2325.GlobalTechEff_chemical", "L2326.GlobalTechCoef_aluminum", "L2328.GlobalTechCoef_food", + "L2327.GlobalTechCoef_paper", "L244.StubTechEff_bld", "L254.StubTranTechCoef") -> L281.GlobalTechAccountOutputUseBasePrice_fd diff --git a/input/gcamdata/R/zwater_L232.water_demand_manufacturing.R b/input/gcamdata/R/zwater_L232.water_demand_manufacturing.R index d0e589ccc3..b2547f19a8 100644 --- a/input/gcamdata/R/zwater_L232.water_demand_manufacturing.R +++ b/input/gcamdata/R/zwater_L232.water_demand_manufacturing.R @@ -10,7 +10,7 @@ #' a vector of output names, or (if \code{command} is "MAKE") all #' the generated outputs: \code{L232.TechCoef}. The corresponding file in the #' original data system was \code{L232.water_demand_manufacturing.R} (water level2). -#' @details Water widthdrawal and consumption coefficients for manufacturing for GCAM regions. +#' @details Water withdrawal and consumption coefficients for manufacturing for GCAM regions. #' @importFrom assertthat assert_that #' @importFrom dplyr arrange distinct filter if_else group_by left_join mutate select #' @importFrom tidyr complete nesting diff --git a/input/gcamdata/data-raw/generate_package_data.R b/input/gcamdata/data-raw/generate_package_data.R index cef19ca634..777b3c8413 100644 --- a/input/gcamdata/data-raw/generate_package_data.R +++ b/input/gcamdata/data-raw/generate_package_data.R @@ -40,7 +40,7 @@ generate_level2_data_names <- function() { level2_data_names[["PPPConvert"]] <- c("region", "PPP.convert") level2_data_names[["InterestRate"]] <- c("region", "interest.rate") level2_data_names[["NationalAccount"]] <- c("region", "year", "capital", "depreciation.rate", "savings.rate", "energy.investment", - "wages", "labor.force.share", "capital.net.export") + "wages", "capital.value", "labor.force.share", "capital.net.export") level2_data_names[["GDPMacroFunction"]] <- c("region", "fn.name", "rho", "node.name", "gamma", "leaf.name", "is.primary.factor", "is.capital", "is.labor", "is.energy") level2_data_names[["SavingsRateParams"]] <- c("region", "saving.rate.param.base", "saving.rate.param.GR.coef", "saving.rate.param.SR.coef") diff --git a/input/gcamdata/data/GCAM_DATA_MAP.rda b/input/gcamdata/data/GCAM_DATA_MAP.rda index 1f37279669..4d23c6cee7 100644 Binary files a/input/gcamdata/data/GCAM_DATA_MAP.rda and b/input/gcamdata/data/GCAM_DATA_MAP.rda differ diff --git a/input/gcamdata/data/PREBUILT_DATA.rda b/input/gcamdata/data/PREBUILT_DATA.rda index 83f358f840..f142e1ddd2 100644 Binary files a/input/gcamdata/data/PREBUILT_DATA.rda and b/input/gcamdata/data/PREBUILT_DATA.rda differ diff --git a/input/gcamdata/inst/extdata/mi_headers/ModelInterface_headers.txt b/input/gcamdata/inst/extdata/mi_headers/ModelInterface_headers.txt index 03a1a09319..2abbe26a6b 100644 --- a/input/gcamdata/inst/extdata/mi_headers/ModelInterface_headers.txt +++ b/input/gcamdata/inst/extdata/mi_headers/ModelInterface_headers.txt @@ -50,7 +50,7 @@ GDP, world/+{name}region, nationalAccountContainer/+{year}nationalAccount, natio PPPConvert, world/+{name}region, nationalAccountContainer/+gdp-ppp-conversion, scenario, scenario/world, region/nationalAccountContainer -NationalAccount, world/+{name}region, nationalAccountContainer/+{year}nationalAccount, nationalAccount/+capital-stock, nationalAccount/+depreciation-rate, nationalAccount/+savings-rate, nationalAccount/+energy-investment, nationalAccount/+labor-wages, nationalAccount/+labor-force-share, nationalAccount/+capital-net-export, scenario, scenario/world, region/nationalAccountContainer +NationalAccount, world/+{name}region, nationalAccountContainer/+{year}nationalAccount, nationalAccount/+capital-stock, nationalAccount/+depreciation-rate, nationalAccount/+savings-rate, nationalAccount/+energy-investment, nationalAccount/+labor-wages, nationalAccount/+capital-value, nationalAccount/+labor-force-share, nationalAccount/+capital-net-export, scenario, scenario/world, region/nationalAccountContainer GDPMacroFunction, world/+{name}region, nationalAccountContainer/+{name}gdp-macro-function, gdp-macro-function/+rho, gdp-macro-function/+{name}factor-input-node, factor-input-node/+node-gamma, factor-input-node/+{name}factor-input-leaf, factor-input-leaf/+is-primary-factor, factor-input-leaf/+is-capital, factor-input-leaf/+is-labor, factor-input-leaf/+is-energy, scenario, scenario/world, region/nationalAccountContainer diff --git a/input/gcamdata/inst/extdata/socioeconomics/gcam_macro_TFP_open.csv b/input/gcamdata/inst/extdata/socioeconomics/gcam_macro_TFP_open.csv index 2b55fd7edf..731f34f003 100644 --- a/input/gcamdata/inst/extdata/socioeconomics/gcam_macro_TFP_open.csv +++ b/input/gcamdata/inst/extdata/socioeconomics/gcam_macro_TFP_open.csv @@ -5,4227 +5,4227 @@ # Column types: ccinc # ---------- scenario,region,year,productivity,gcam.version -gSSP2,Africa_Eastern,1975,0,gcam-v7.0 -gSSP2,Africa_Eastern,1990,0,gcam-v7.0 -gSSP2,Africa_Eastern,2005,0,gcam-v7.0 -gSSP2,Africa_Eastern,2010,0,gcam-v7.0 -gSSP2,Africa_Eastern,2015,0,gcam-v7.0 -gSSP2,Africa_Eastern,2020,1.06935,gcam-v7.0 -gSSP2,Africa_Eastern,2025,1.20876,gcam-v7.0 -gSSP2,Africa_Eastern,2030,1.40203,gcam-v7.0 -gSSP2,Africa_Eastern,2035,1.59047,gcam-v7.0 -gSSP2,Africa_Eastern,2040,1.76311,gcam-v7.0 -gSSP2,Africa_Eastern,2045,1.91546,gcam-v7.0 -gSSP2,Africa_Eastern,2050,2.06105,gcam-v7.0 -gSSP2,Africa_Eastern,2055,2.22744,gcam-v7.0 -gSSP2,Africa_Eastern,2060,2.41545,gcam-v7.0 -gSSP2,Africa_Eastern,2065,2.63411,gcam-v7.0 -gSSP2,Africa_Eastern,2070,2.88658,gcam-v7.0 -gSSP2,Africa_Eastern,2075,3.16847,gcam-v7.0 -gSSP2,Africa_Eastern,2080,3.48133,gcam-v7.0 -gSSP2,Africa_Eastern,2085,3.82498,gcam-v7.0 -gSSP2,Africa_Eastern,2090,4.19893,gcam-v7.0 -gSSP2,Africa_Eastern,2095,4.60659,gcam-v7.0 -gSSP2,Africa_Eastern,2100,5.05119,gcam-v7.0 -gSSP2,Africa_Northern,1975,0,gcam-v7.0 -gSSP2,Africa_Northern,1990,0,gcam-v7.0 -gSSP2,Africa_Northern,2005,0,gcam-v7.0 -gSSP2,Africa_Northern,2010,0,gcam-v7.0 -gSSP2,Africa_Northern,2015,0,gcam-v7.0 -gSSP2,Africa_Northern,2020,1.08586,gcam-v7.0 -gSSP2,Africa_Northern,2025,1.20175,gcam-v7.0 -gSSP2,Africa_Northern,2030,1.34511,gcam-v7.0 -gSSP2,Africa_Northern,2035,1.47377,gcam-v7.0 -gSSP2,Africa_Northern,2040,1.58766,gcam-v7.0 -gSSP2,Africa_Northern,2045,1.69486,gcam-v7.0 -gSSP2,Africa_Northern,2050,1.81695,gcam-v7.0 -gSSP2,Africa_Northern,2055,1.95842,gcam-v7.0 -gSSP2,Africa_Northern,2060,2.11497,gcam-v7.0 -gSSP2,Africa_Northern,2065,2.27497,gcam-v7.0 -gSSP2,Africa_Northern,2070,2.44272,gcam-v7.0 -gSSP2,Africa_Northern,2075,2.61765,gcam-v7.0 -gSSP2,Africa_Northern,2080,2.79955,gcam-v7.0 -gSSP2,Africa_Northern,2085,2.98307,gcam-v7.0 -gSSP2,Africa_Northern,2090,3.17099,gcam-v7.0 -gSSP2,Africa_Northern,2095,3.36109,gcam-v7.0 -gSSP2,Africa_Northern,2100,3.55902,gcam-v7.0 -gSSP2,Africa_Southern,1975,0,gcam-v7.0 -gSSP2,Africa_Southern,1990,0,gcam-v7.0 -gSSP2,Africa_Southern,2005,0,gcam-v7.0 -gSSP2,Africa_Southern,2010,0,gcam-v7.0 -gSSP2,Africa_Southern,2015,0,gcam-v7.0 -gSSP2,Africa_Southern,2020,0.954118,gcam-v7.0 -gSSP2,Africa_Southern,2025,1.08482,gcam-v7.0 -gSSP2,Africa_Southern,2030,1.24798,gcam-v7.0 -gSSP2,Africa_Southern,2035,1.40127,gcam-v7.0 -gSSP2,Africa_Southern,2040,1.58392,gcam-v7.0 -gSSP2,Africa_Southern,2045,1.78514,gcam-v7.0 -gSSP2,Africa_Southern,2050,2.00401,gcam-v7.0 -gSSP2,Africa_Southern,2055,2.25204,gcam-v7.0 -gSSP2,Africa_Southern,2060,2.51923,gcam-v7.0 -gSSP2,Africa_Southern,2065,2.81268,gcam-v7.0 -gSSP2,Africa_Southern,2070,3.13699,gcam-v7.0 -gSSP2,Africa_Southern,2075,3.48546,gcam-v7.0 -gSSP2,Africa_Southern,2080,3.86001,gcam-v7.0 -gSSP2,Africa_Southern,2085,4.26667,gcam-v7.0 -gSSP2,Africa_Southern,2090,4.71251,gcam-v7.0 -gSSP2,Africa_Southern,2095,5.20384,gcam-v7.0 -gSSP2,Africa_Southern,2100,5.76143,gcam-v7.0 -gSSP2,Africa_Western,1975,0,gcam-v7.0 -gSSP2,Africa_Western,1990,0,gcam-v7.0 -gSSP2,Africa_Western,2005,0,gcam-v7.0 -gSSP2,Africa_Western,2010,0,gcam-v7.0 -gSSP2,Africa_Western,2015,0,gcam-v7.0 -gSSP2,Africa_Western,2020,1.02013,gcam-v7.0 -gSSP2,Africa_Western,2025,1.10849,gcam-v7.0 -gSSP2,Africa_Western,2030,1.3084,gcam-v7.0 -gSSP2,Africa_Western,2035,1.48982,gcam-v7.0 -gSSP2,Africa_Western,2040,1.67252,gcam-v7.0 -gSSP2,Africa_Western,2045,1.84048,gcam-v7.0 -gSSP2,Africa_Western,2050,2.0144,gcam-v7.0 -gSSP2,Africa_Western,2055,2.21438,gcam-v7.0 -gSSP2,Africa_Western,2060,2.43506,gcam-v7.0 -gSSP2,Africa_Western,2065,2.67851,gcam-v7.0 -gSSP2,Africa_Western,2070,2.95166,gcam-v7.0 -gSSP2,Africa_Western,2075,3.25389,gcam-v7.0 -gSSP2,Africa_Western,2080,3.58598,gcam-v7.0 -gSSP2,Africa_Western,2085,3.94962,gcam-v7.0 -gSSP2,Africa_Western,2090,4.34224,gcam-v7.0 -gSSP2,Africa_Western,2095,4.76806,gcam-v7.0 -gSSP2,Africa_Western,2100,5.22914,gcam-v7.0 -gSSP2,Argentina,1975,0,gcam-v7.0 -gSSP2,Argentina,1990,0,gcam-v7.0 -gSSP2,Argentina,2005,0,gcam-v7.0 -gSSP2,Argentina,2010,0,gcam-v7.0 -gSSP2,Argentina,2015,0,gcam-v7.0 -gSSP2,Argentina,2020,0.945994,gcam-v7.0 -gSSP2,Argentina,2025,1.04484,gcam-v7.0 -gSSP2,Argentina,2030,1.14092,gcam-v7.0 -gSSP2,Argentina,2035,1.23597,gcam-v7.0 -gSSP2,Argentina,2040,1.33314,gcam-v7.0 -gSSP2,Argentina,2045,1.43766,gcam-v7.0 -gSSP2,Argentina,2050,1.54113,gcam-v7.0 -gSSP2,Argentina,2055,1.65222,gcam-v7.0 -gSSP2,Argentina,2060,1.7699,gcam-v7.0 -gSSP2,Argentina,2065,1.89045,gcam-v7.0 -gSSP2,Argentina,2070,2.01594,gcam-v7.0 -gSSP2,Argentina,2075,2.14732,gcam-v7.0 -gSSP2,Argentina,2080,2.28516,gcam-v7.0 -gSSP2,Argentina,2085,2.42986,gcam-v7.0 -gSSP2,Argentina,2090,2.58089,gcam-v7.0 -gSSP2,Argentina,2095,2.7407,gcam-v7.0 -gSSP2,Argentina,2100,2.90964,gcam-v7.0 -gSSP2,Australia_NZ,1975,0,gcam-v7.0 -gSSP2,Australia_NZ,1990,0,gcam-v7.0 -gSSP2,Australia_NZ,2005,0,gcam-v7.0 -gSSP2,Australia_NZ,2010,0,gcam-v7.0 -gSSP2,Australia_NZ,2015,0,gcam-v7.0 -gSSP2,Australia_NZ,2020,1.08932,gcam-v7.0 -gSSP2,Australia_NZ,2025,1.16298,gcam-v7.0 -gSSP2,Australia_NZ,2030,1.22939,gcam-v7.0 -gSSP2,Australia_NZ,2035,1.28986,gcam-v7.0 -gSSP2,Australia_NZ,2040,1.35813,gcam-v7.0 -gSSP2,Australia_NZ,2045,1.42523,gcam-v7.0 -gSSP2,Australia_NZ,2050,1.49861,gcam-v7.0 -gSSP2,Australia_NZ,2055,1.58115,gcam-v7.0 -gSSP2,Australia_NZ,2060,1.66771,gcam-v7.0 -gSSP2,Australia_NZ,2065,1.7583,gcam-v7.0 -gSSP2,Australia_NZ,2070,1.85392,gcam-v7.0 -gSSP2,Australia_NZ,2075,1.96031,gcam-v7.0 -gSSP2,Australia_NZ,2080,2.07619,gcam-v7.0 -gSSP2,Australia_NZ,2085,2.20319,gcam-v7.0 -gSSP2,Australia_NZ,2090,2.33975,gcam-v7.0 -gSSP2,Australia_NZ,2095,2.48355,gcam-v7.0 -gSSP2,Australia_NZ,2100,2.6355,gcam-v7.0 -gSSP2,Brazil,1975,0,gcam-v7.0 -gSSP2,Brazil,1990,0,gcam-v7.0 -gSSP2,Brazil,2005,0,gcam-v7.0 -gSSP2,Brazil,2010,0,gcam-v7.0 -gSSP2,Brazil,2015,0,gcam-v7.0 -gSSP2,Brazil,2020,0.998072,gcam-v7.0 -gSSP2,Brazil,2025,1.07809,gcam-v7.0 -gSSP2,Brazil,2030,1.19155,gcam-v7.0 -gSSP2,Brazil,2035,1.29739,gcam-v7.0 -gSSP2,Brazil,2040,1.40794,gcam-v7.0 -gSSP2,Brazil,2045,1.52164,gcam-v7.0 -gSSP2,Brazil,2050,1.6427,gcam-v7.0 -gSSP2,Brazil,2055,1.77032,gcam-v7.0 -gSSP2,Brazil,2060,1.90489,gcam-v7.0 -gSSP2,Brazil,2065,2.05362,gcam-v7.0 -gSSP2,Brazil,2070,2.21584,gcam-v7.0 -gSSP2,Brazil,2075,2.37709,gcam-v7.0 -gSSP2,Brazil,2080,2.54789,gcam-v7.0 -gSSP2,Brazil,2085,2.73162,gcam-v7.0 -gSSP2,Brazil,2090,2.92755,gcam-v7.0 -gSSP2,Brazil,2095,3.13389,gcam-v7.0 -gSSP2,Brazil,2100,3.35199,gcam-v7.0 -gSSP2,Canada,1975,0,gcam-v7.0 -gSSP2,Canada,1990,0,gcam-v7.0 -gSSP2,Canada,2005,0,gcam-v7.0 -gSSP2,Canada,2010,0,gcam-v7.0 -gSSP2,Canada,2015,0,gcam-v7.0 -gSSP2,Canada,2020,1.0445,gcam-v7.0 -gSSP2,Canada,2025,1.10272,gcam-v7.0 -gSSP2,Canada,2030,1.16759,gcam-v7.0 -gSSP2,Canada,2035,1.23113,gcam-v7.0 -gSSP2,Canada,2040,1.28878,gcam-v7.0 -gSSP2,Canada,2045,1.34782,gcam-v7.0 -gSSP2,Canada,2050,1.41874,gcam-v7.0 -gSSP2,Canada,2055,1.51288,gcam-v7.0 -gSSP2,Canada,2060,1.61503,gcam-v7.0 -gSSP2,Canada,2065,1.71694,gcam-v7.0 -gSSP2,Canada,2070,1.81791,gcam-v7.0 -gSSP2,Canada,2075,1.931,gcam-v7.0 -gSSP2,Canada,2080,2.05598,gcam-v7.0 -gSSP2,Canada,2085,2.1941,gcam-v7.0 -gSSP2,Canada,2090,2.34466,gcam-v7.0 -gSSP2,Canada,2095,2.50341,gcam-v7.0 -gSSP2,Canada,2100,2.67073,gcam-v7.0 -gSSP2,Central America and Caribbean,1975,0,gcam-v7.0 -gSSP2,Central America and Caribbean,1990,0,gcam-v7.0 -gSSP2,Central America and Caribbean,2005,0,gcam-v7.0 -gSSP2,Central America and Caribbean,2010,0,gcam-v7.0 -gSSP2,Central America and Caribbean,2015,0,gcam-v7.0 -gSSP2,Central America and Caribbean,2020,1.04248,gcam-v7.0 -gSSP2,Central America and Caribbean,2025,1.11066,gcam-v7.0 -gSSP2,Central America and Caribbean,2030,1.20777,gcam-v7.0 -gSSP2,Central America and Caribbean,2035,1.30566,gcam-v7.0 -gSSP2,Central America and Caribbean,2040,1.401,gcam-v7.0 -gSSP2,Central America and Caribbean,2045,1.48954,gcam-v7.0 -gSSP2,Central America and Caribbean,2050,1.57832,gcam-v7.0 -gSSP2,Central America and Caribbean,2055,1.67583,gcam-v7.0 -gSSP2,Central America and Caribbean,2060,1.78297,gcam-v7.0 -gSSP2,Central America and Caribbean,2065,1.89947,gcam-v7.0 -gSSP2,Central America and Caribbean,2070,2.0274,gcam-v7.0 -gSSP2,Central America and Caribbean,2075,2.16626,gcam-v7.0 -gSSP2,Central America and Caribbean,2080,2.31707,gcam-v7.0 -gSSP2,Central America and Caribbean,2085,2.48072,gcam-v7.0 -gSSP2,Central America and Caribbean,2090,2.65719,gcam-v7.0 -gSSP2,Central America and Caribbean,2095,2.84654,gcam-v7.0 -gSSP2,Central America and Caribbean,2100,3.04996,gcam-v7.0 -gSSP2,Central Asia,1975,0,gcam-v7.0 -gSSP2,Central Asia,1990,0,gcam-v7.0 -gSSP2,Central Asia,2005,0,gcam-v7.0 -gSSP2,Central Asia,2010,0,gcam-v7.0 -gSSP2,Central Asia,2015,0,gcam-v7.0 -gSSP2,Central Asia,2020,1.09693,gcam-v7.0 -gSSP2,Central Asia,2025,1.26451,gcam-v7.0 -gSSP2,Central Asia,2030,1.43748,gcam-v7.0 -gSSP2,Central Asia,2035,1.59446,gcam-v7.0 -gSSP2,Central Asia,2040,1.75032,gcam-v7.0 -gSSP2,Central Asia,2045,1.89267,gcam-v7.0 -gSSP2,Central Asia,2050,2.01587,gcam-v7.0 -gSSP2,Central Asia,2055,2.14315,gcam-v7.0 -gSSP2,Central Asia,2060,2.2798,gcam-v7.0 -gSSP2,Central Asia,2065,2.42837,gcam-v7.0 -gSSP2,Central Asia,2070,2.58608,gcam-v7.0 -gSSP2,Central Asia,2075,2.7512,gcam-v7.0 -gSSP2,Central Asia,2080,2.92818,gcam-v7.0 -gSSP2,Central Asia,2085,3.11548,gcam-v7.0 -gSSP2,Central Asia,2090,3.31116,gcam-v7.0 -gSSP2,Central Asia,2095,3.51242,gcam-v7.0 -gSSP2,Central Asia,2100,3.70535,gcam-v7.0 -gSSP2,China,1975,0,gcam-v7.0 -gSSP2,China,1990,0,gcam-v7.0 -gSSP2,China,2005,0,gcam-v7.0 -gSSP2,China,2010,0,gcam-v7.0 -gSSP2,China,2015,0,gcam-v7.0 -gSSP2,China,2020,1.288,gcam-v7.0 -gSSP2,China,2025,1.57711,gcam-v7.0 -gSSP2,China,2030,1.85862,gcam-v7.0 -gSSP2,China,2035,2.13197,gcam-v7.0 -gSSP2,China,2040,2.40054,gcam-v7.0 -gSSP2,China,2045,2.62543,gcam-v7.0 -gSSP2,China,2050,2.84783,gcam-v7.0 -gSSP2,China,2055,3.10058,gcam-v7.0 -gSSP2,China,2060,3.34556,gcam-v7.0 -gSSP2,China,2065,3.5879,gcam-v7.0 -gSSP2,China,2070,3.81675,gcam-v7.0 -gSSP2,China,2075,4.04743,gcam-v7.0 -gSSP2,China,2080,4.26397,gcam-v7.0 -gSSP2,China,2085,4.48017,gcam-v7.0 -gSSP2,China,2090,4.68992,gcam-v7.0 -gSSP2,China,2095,4.89468,gcam-v7.0 -gSSP2,China,2100,5.09294,gcam-v7.0 -gSSP2,Colombia,1975,0,gcam-v7.0 -gSSP2,Colombia,1990,0,gcam-v7.0 -gSSP2,Colombia,2005,0,gcam-v7.0 -gSSP2,Colombia,2010,0,gcam-v7.0 -gSSP2,Colombia,2015,0,gcam-v7.0 -gSSP2,Colombia,2020,1.06701,gcam-v7.0 -gSSP2,Colombia,2025,1.17302,gcam-v7.0 -gSSP2,Colombia,2030,1.27868,gcam-v7.0 -gSSP2,Colombia,2035,1.39287,gcam-v7.0 -gSSP2,Colombia,2040,1.50408,gcam-v7.0 -gSSP2,Colombia,2045,1.62448,gcam-v7.0 -gSSP2,Colombia,2050,1.75791,gcam-v7.0 -gSSP2,Colombia,2055,1.90234,gcam-v7.0 -gSSP2,Colombia,2060,2.061,gcam-v7.0 -gSSP2,Colombia,2065,2.23148,gcam-v7.0 -gSSP2,Colombia,2070,2.41429,gcam-v7.0 -gSSP2,Colombia,2075,2.61124,gcam-v7.0 -gSSP2,Colombia,2080,2.82031,gcam-v7.0 -gSSP2,Colombia,2085,3.04424,gcam-v7.0 -gSSP2,Colombia,2090,3.28226,gcam-v7.0 -gSSP2,Colombia,2095,3.5335,gcam-v7.0 -gSSP2,Colombia,2100,3.79888,gcam-v7.0 -gSSP2,EU-12,1975,0,gcam-v7.0 -gSSP2,EU-12,1990,0,gcam-v7.0 -gSSP2,EU-12,2005,0,gcam-v7.0 -gSSP2,EU-12,2010,0,gcam-v7.0 -gSSP2,EU-12,2015,0,gcam-v7.0 -gSSP2,EU-12,2020,1.15581,gcam-v7.0 -gSSP2,EU-12,2025,1.29347,gcam-v7.0 -gSSP2,EU-12,2030,1.40921,gcam-v7.0 -gSSP2,EU-12,2035,1.52979,gcam-v7.0 -gSSP2,EU-12,2040,1.65914,gcam-v7.0 -gSSP2,EU-12,2045,1.80006,gcam-v7.0 -gSSP2,EU-12,2050,1.94706,gcam-v7.0 -gSSP2,EU-12,2055,2.10104,gcam-v7.0 -gSSP2,EU-12,2060,2.25229,gcam-v7.0 -gSSP2,EU-12,2065,2.39892,gcam-v7.0 -gSSP2,EU-12,2070,2.54613,gcam-v7.0 -gSSP2,EU-12,2075,2.71001,gcam-v7.0 -gSSP2,EU-12,2080,2.888,gcam-v7.0 -gSSP2,EU-12,2085,3.07563,gcam-v7.0 -gSSP2,EU-12,2090,3.26999,gcam-v7.0 -gSSP2,EU-12,2095,3.46873,gcam-v7.0 -gSSP2,EU-12,2100,3.67098,gcam-v7.0 -gSSP2,EU-15,1975,0,gcam-v7.0 -gSSP2,EU-15,1990,0,gcam-v7.0 -gSSP2,EU-15,2005,0,gcam-v7.0 -gSSP2,EU-15,2010,0,gcam-v7.0 -gSSP2,EU-15,2015,0,gcam-v7.0 -gSSP2,EU-15,2020,1.07474,gcam-v7.0 -gSSP2,EU-15,2025,1.14183,gcam-v7.0 -gSSP2,EU-15,2030,1.22127,gcam-v7.0 -gSSP2,EU-15,2035,1.31004,gcam-v7.0 -gSSP2,EU-15,2040,1.40263,gcam-v7.0 -gSSP2,EU-15,2045,1.49402,gcam-v7.0 -gSSP2,EU-15,2050,1.58521,gcam-v7.0 -gSSP2,EU-15,2055,1.68115,gcam-v7.0 -gSSP2,EU-15,2060,1.77758,gcam-v7.0 -gSSP2,EU-15,2065,1.87565,gcam-v7.0 -gSSP2,EU-15,2070,1.97858,gcam-v7.0 -gSSP2,EU-15,2075,2.09167,gcam-v7.0 -gSSP2,EU-15,2080,2.21101,gcam-v7.0 -gSSP2,EU-15,2085,2.33705,gcam-v7.0 -gSSP2,EU-15,2090,2.46938,gcam-v7.0 -gSSP2,EU-15,2095,2.60865,gcam-v7.0 -gSSP2,EU-15,2100,2.75659,gcam-v7.0 -gSSP2,Europe_Eastern,1975,0,gcam-v7.0 -gSSP2,Europe_Eastern,1990,0,gcam-v7.0 -gSSP2,Europe_Eastern,2005,0,gcam-v7.0 -gSSP2,Europe_Eastern,2010,0,gcam-v7.0 -gSSP2,Europe_Eastern,2015,0,gcam-v7.0 -gSSP2,Europe_Eastern,2020,1.00995,gcam-v7.0 -gSSP2,Europe_Eastern,2025,1.10812,gcam-v7.0 -gSSP2,Europe_Eastern,2030,1.20475,gcam-v7.0 -gSSP2,Europe_Eastern,2035,1.29538,gcam-v7.0 -gSSP2,Europe_Eastern,2040,1.37459,gcam-v7.0 -gSSP2,Europe_Eastern,2045,1.44896,gcam-v7.0 -gSSP2,Europe_Eastern,2050,1.53873,gcam-v7.0 -gSSP2,Europe_Eastern,2055,1.63712,gcam-v7.0 -gSSP2,Europe_Eastern,2060,1.74659,gcam-v7.0 -gSSP2,Europe_Eastern,2065,1.87515,gcam-v7.0 -gSSP2,Europe_Eastern,2070,2.02533,gcam-v7.0 -gSSP2,Europe_Eastern,2075,2.2533,gcam-v7.0 -gSSP2,Europe_Eastern,2080,2.41921,gcam-v7.0 -gSSP2,Europe_Eastern,2085,2.59662,gcam-v7.0 -gSSP2,Europe_Eastern,2090,2.7799,gcam-v7.0 -gSSP2,Europe_Eastern,2095,2.96483,gcam-v7.0 -gSSP2,Europe_Eastern,2100,3.1525,gcam-v7.0 -gSSP2,Europe_Non_EU,1975,0,gcam-v7.0 -gSSP2,Europe_Non_EU,1990,0,gcam-v7.0 -gSSP2,Europe_Non_EU,2005,0,gcam-v7.0 -gSSP2,Europe_Non_EU,2010,0,gcam-v7.0 -gSSP2,Europe_Non_EU,2015,0,gcam-v7.0 -gSSP2,Europe_Non_EU,2020,1.05753,gcam-v7.0 -gSSP2,Europe_Non_EU,2025,1.13864,gcam-v7.0 -gSSP2,Europe_Non_EU,2030,1.22696,gcam-v7.0 -gSSP2,Europe_Non_EU,2035,1.31136,gcam-v7.0 -gSSP2,Europe_Non_EU,2040,1.39991,gcam-v7.0 -gSSP2,Europe_Non_EU,2045,1.48862,gcam-v7.0 -gSSP2,Europe_Non_EU,2050,1.57951,gcam-v7.0 -gSSP2,Europe_Non_EU,2055,1.67282,gcam-v7.0 -gSSP2,Europe_Non_EU,2060,1.77236,gcam-v7.0 -gSSP2,Europe_Non_EU,2065,1.87728,gcam-v7.0 -gSSP2,Europe_Non_EU,2070,1.98358,gcam-v7.0 -gSSP2,Europe_Non_EU,2075,2.09606,gcam-v7.0 -gSSP2,Europe_Non_EU,2080,2.21374,gcam-v7.0 -gSSP2,Europe_Non_EU,2085,2.33762,gcam-v7.0 -gSSP2,Europe_Non_EU,2090,2.46812,gcam-v7.0 -gSSP2,Europe_Non_EU,2095,2.60615,gcam-v7.0 -gSSP2,Europe_Non_EU,2100,2.75103,gcam-v7.0 -gSSP2,European Free Trade Association,1975,0,gcam-v7.0 -gSSP2,European Free Trade Association,1990,0,gcam-v7.0 -gSSP2,European Free Trade Association,2005,0,gcam-v7.0 -gSSP2,European Free Trade Association,2010,0,gcam-v7.0 -gSSP2,European Free Trade Association,2015,0,gcam-v7.0 -gSSP2,European Free Trade Association,2020,1.0608,gcam-v7.0 -gSSP2,European Free Trade Association,2025,1.13534,gcam-v7.0 -gSSP2,European Free Trade Association,2030,1.21651,gcam-v7.0 -gSSP2,European Free Trade Association,2035,1.29971,gcam-v7.0 -gSSP2,European Free Trade Association,2040,1.38606,gcam-v7.0 -gSSP2,European Free Trade Association,2045,1.46542,gcam-v7.0 -gSSP2,European Free Trade Association,2050,1.55552,gcam-v7.0 -gSSP2,European Free Trade Association,2055,1.65693,gcam-v7.0 -gSSP2,European Free Trade Association,2060,1.76624,gcam-v7.0 -gSSP2,European Free Trade Association,2065,1.87805,gcam-v7.0 -gSSP2,European Free Trade Association,2070,1.99232,gcam-v7.0 -gSSP2,European Free Trade Association,2075,2.11554,gcam-v7.0 -gSSP2,European Free Trade Association,2080,2.25001,gcam-v7.0 -gSSP2,European Free Trade Association,2085,2.39711,gcam-v7.0 -gSSP2,European Free Trade Association,2090,2.55532,gcam-v7.0 -gSSP2,European Free Trade Association,2095,2.7219,gcam-v7.0 -gSSP2,European Free Trade Association,2100,2.89521,gcam-v7.0 -gSSP2,India,1975,0,gcam-v7.0 -gSSP2,India,1990,0,gcam-v7.0 -gSSP2,India,2005,0,gcam-v7.0 -gSSP2,India,2010,0,gcam-v7.0 -gSSP2,India,2015,0,gcam-v7.0 -gSSP2,India,2020,1.22682,gcam-v7.0 -gSSP2,India,2025,1.47594,gcam-v7.0 -gSSP2,India,2030,1.64003,gcam-v7.0 -gSSP2,India,2035,1.7882,gcam-v7.0 -gSSP2,India,2040,1.94576,gcam-v7.0 -gSSP2,India,2045,2.11251,gcam-v7.0 -gSSP2,India,2050,2.29498,gcam-v7.0 -gSSP2,India,2055,2.4992,gcam-v7.0 -gSSP2,India,2060,2.72483,gcam-v7.0 -gSSP2,India,2065,2.97014,gcam-v7.0 -gSSP2,India,2070,3.23337,gcam-v7.0 -gSSP2,India,2075,3.51351,gcam-v7.0 -gSSP2,India,2080,3.80809,gcam-v7.0 -gSSP2,India,2085,4.11603,gcam-v7.0 -gSSP2,India,2090,4.43687,gcam-v7.0 -gSSP2,India,2095,4.77078,gcam-v7.0 -gSSP2,India,2100,5.11875,gcam-v7.0 -gSSP2,Indonesia,1975,0,gcam-v7.0 -gSSP2,Indonesia,1990,0,gcam-v7.0 -gSSP2,Indonesia,2005,0,gcam-v7.0 -gSSP2,Indonesia,2010,0,gcam-v7.0 -gSSP2,Indonesia,2015,0,gcam-v7.0 -gSSP2,Indonesia,2020,1.14718,gcam-v7.0 -gSSP2,Indonesia,2025,1.34218,gcam-v7.0 -gSSP2,Indonesia,2030,1.55757,gcam-v7.0 -gSSP2,Indonesia,2035,1.76143,gcam-v7.0 -gSSP2,Indonesia,2040,1.97481,gcam-v7.0 -gSSP2,Indonesia,2045,2.19081,gcam-v7.0 -gSSP2,Indonesia,2050,2.41832,gcam-v7.0 -gSSP2,Indonesia,2055,2.65592,gcam-v7.0 -gSSP2,Indonesia,2060,2.90698,gcam-v7.0 -gSSP2,Indonesia,2065,3.17088,gcam-v7.0 -gSSP2,Indonesia,2070,3.46006,gcam-v7.0 -gSSP2,Indonesia,2075,3.76511,gcam-v7.0 -gSSP2,Indonesia,2080,4.07785,gcam-v7.0 -gSSP2,Indonesia,2085,4.4039,gcam-v7.0 -gSSP2,Indonesia,2090,4.74235,gcam-v7.0 -gSSP2,Indonesia,2095,5.09161,gcam-v7.0 -gSSP2,Indonesia,2100,5.45224,gcam-v7.0 -gSSP2,Japan,1975,0,gcam-v7.0 -gSSP2,Japan,1990,0,gcam-v7.0 -gSSP2,Japan,2005,0,gcam-v7.0 -gSSP2,Japan,2010,0,gcam-v7.0 -gSSP2,Japan,2015,0,gcam-v7.0 -gSSP2,Japan,2020,1.0554,gcam-v7.0 -gSSP2,Japan,2025,1.09482,gcam-v7.0 -gSSP2,Japan,2030,1.15906,gcam-v7.0 -gSSP2,Japan,2035,1.22395,gcam-v7.0 -gSSP2,Japan,2040,1.30795,gcam-v7.0 -gSSP2,Japan,2045,1.38661,gcam-v7.0 -gSSP2,Japan,2050,1.46255,gcam-v7.0 -gSSP2,Japan,2055,1.54053,gcam-v7.0 -gSSP2,Japan,2060,1.61969,gcam-v7.0 -gSSP2,Japan,2065,1.70252,gcam-v7.0 -gSSP2,Japan,2070,1.78961,gcam-v7.0 -gSSP2,Japan,2075,1.88247,gcam-v7.0 -gSSP2,Japan,2080,1.98135,gcam-v7.0 -gSSP2,Japan,2085,2.08067,gcam-v7.0 -gSSP2,Japan,2090,2.18168,gcam-v7.0 -gSSP2,Japan,2095,2.28667,gcam-v7.0 -gSSP2,Japan,2100,2.39783,gcam-v7.0 -gSSP2,Mexico,1975,0,gcam-v7.0 -gSSP2,Mexico,1990,0,gcam-v7.0 -gSSP2,Mexico,2005,0,gcam-v7.0 -gSSP2,Mexico,2010,0,gcam-v7.0 -gSSP2,Mexico,2015,0,gcam-v7.0 -gSSP2,Mexico,2020,1.00955,gcam-v7.0 -gSSP2,Mexico,2025,1.07852,gcam-v7.0 -gSSP2,Mexico,2030,1.17508,gcam-v7.0 -gSSP2,Mexico,2035,1.2821,gcam-v7.0 -gSSP2,Mexico,2040,1.38297,gcam-v7.0 -gSSP2,Mexico,2045,1.4764,gcam-v7.0 -gSSP2,Mexico,2050,1.56296,gcam-v7.0 -gSSP2,Mexico,2055,1.65406,gcam-v7.0 -gSSP2,Mexico,2060,1.75258,gcam-v7.0 -gSSP2,Mexico,2065,1.85374,gcam-v7.0 -gSSP2,Mexico,2070,1.96239,gcam-v7.0 -gSSP2,Mexico,2075,2.07605,gcam-v7.0 -gSSP2,Mexico,2080,2.19785,gcam-v7.0 -gSSP2,Mexico,2085,2.32821,gcam-v7.0 -gSSP2,Mexico,2090,2.46833,gcam-v7.0 -gSSP2,Mexico,2095,2.61686,gcam-v7.0 -gSSP2,Mexico,2100,2.7761,gcam-v7.0 -gSSP2,Middle East,1975,0,gcam-v7.0 -gSSP2,Middle East,1990,0,gcam-v7.0 -gSSP2,Middle East,2005,0,gcam-v7.0 -gSSP2,Middle East,2010,0,gcam-v7.0 -gSSP2,Middle East,2015,0,gcam-v7.0 -gSSP2,Middle East,2020,1.05079,gcam-v7.0 -gSSP2,Middle East,2025,1.10134,gcam-v7.0 -gSSP2,Middle East,2030,1.25056,gcam-v7.0 -gSSP2,Middle East,2035,1.38763,gcam-v7.0 -gSSP2,Middle East,2040,1.52518,gcam-v7.0 -gSSP2,Middle East,2045,1.65557,gcam-v7.0 -gSSP2,Middle East,2050,1.77856,gcam-v7.0 -gSSP2,Middle East,2055,1.88644,gcam-v7.0 -gSSP2,Middle East,2060,1.99132,gcam-v7.0 -gSSP2,Middle East,2065,2.10548,gcam-v7.0 -gSSP2,Middle East,2070,2.23244,gcam-v7.0 -gSSP2,Middle East,2075,2.36923,gcam-v7.0 -gSSP2,Middle East,2080,2.51753,gcam-v7.0 -gSSP2,Middle East,2085,2.676,gcam-v7.0 -gSSP2,Middle East,2090,2.84549,gcam-v7.0 -gSSP2,Middle East,2095,3.03675,gcam-v7.0 -gSSP2,Middle East,2100,3.24828,gcam-v7.0 -gSSP2,Pakistan,1975,0,gcam-v7.0 -gSSP2,Pakistan,1990,0,gcam-v7.0 -gSSP2,Pakistan,2005,0,gcam-v7.0 -gSSP2,Pakistan,2010,0,gcam-v7.0 -gSSP2,Pakistan,2015,0,gcam-v7.0 -gSSP2,Pakistan,2020,1.05648,gcam-v7.0 -gSSP2,Pakistan,2025,1.09237,gcam-v7.0 -gSSP2,Pakistan,2030,1.19913,gcam-v7.0 -gSSP2,Pakistan,2035,1.32045,gcam-v7.0 -gSSP2,Pakistan,2040,1.45443,gcam-v7.0 -gSSP2,Pakistan,2045,1.60165,gcam-v7.0 -gSSP2,Pakistan,2050,1.76695,gcam-v7.0 -gSSP2,Pakistan,2055,1.96568,gcam-v7.0 -gSSP2,Pakistan,2060,2.19093,gcam-v7.0 -gSSP2,Pakistan,2065,2.45142,gcam-v7.0 -gSSP2,Pakistan,2070,2.74455,gcam-v7.0 -gSSP2,Pakistan,2075,3.06739,gcam-v7.0 -gSSP2,Pakistan,2080,3.41746,gcam-v7.0 -gSSP2,Pakistan,2085,3.78862,gcam-v7.0 -gSSP2,Pakistan,2090,4.17918,gcam-v7.0 -gSSP2,Pakistan,2095,4.58622,gcam-v7.0 -gSSP2,Pakistan,2100,5.01106,gcam-v7.0 -gSSP2,Russia,1975,0,gcam-v7.0 -gSSP2,Russia,1990,0,gcam-v7.0 -gSSP2,Russia,2005,0,gcam-v7.0 -gSSP2,Russia,2010,0,gcam-v7.0 -gSSP2,Russia,2015,0,gcam-v7.0 -gSSP2,Russia,2020,1.10012,gcam-v7.0 -gSSP2,Russia,2025,1.20366,gcam-v7.0 -gSSP2,Russia,2030,1.35935,gcam-v7.0 -gSSP2,Russia,2035,1.50974,gcam-v7.0 -gSSP2,Russia,2040,1.65471,gcam-v7.0 -gSSP2,Russia,2045,1.76858,gcam-v7.0 -gSSP2,Russia,2050,1.88002,gcam-v7.0 -gSSP2,Russia,2055,1.99551,gcam-v7.0 -gSSP2,Russia,2060,2.10221,gcam-v7.0 -gSSP2,Russia,2065,2.2071,gcam-v7.0 -gSSP2,Russia,2070,2.324,gcam-v7.0 -gSSP2,Russia,2075,2.45341,gcam-v7.0 -gSSP2,Russia,2080,2.60088,gcam-v7.0 -gSSP2,Russia,2085,2.75467,gcam-v7.0 -gSSP2,Russia,2090,2.91374,gcam-v7.0 -gSSP2,Russia,2095,3.07434,gcam-v7.0 -gSSP2,Russia,2100,3.23569,gcam-v7.0 -gSSP2,South Africa,1975,0,gcam-v7.0 -gSSP2,South Africa,1990,0,gcam-v7.0 -gSSP2,South Africa,2005,0,gcam-v7.0 -gSSP2,South Africa,2010,0,gcam-v7.0 -gSSP2,South Africa,2015,0,gcam-v7.0 -gSSP2,South Africa,2020,0.999268,gcam-v7.0 -gSSP2,South Africa,2025,1.05484,gcam-v7.0 -gSSP2,South Africa,2030,1.17507,gcam-v7.0 -gSSP2,South Africa,2035,1.29168,gcam-v7.0 -gSSP2,South Africa,2040,1.40278,gcam-v7.0 -gSSP2,South Africa,2045,1.50235,gcam-v7.0 -gSSP2,South Africa,2050,1.60218,gcam-v7.0 -gSSP2,South Africa,2055,1.71339,gcam-v7.0 -gSSP2,South Africa,2060,1.83103,gcam-v7.0 -gSSP2,South Africa,2065,1.95427,gcam-v7.0 -gSSP2,South Africa,2070,2.08577,gcam-v7.0 -gSSP2,South Africa,2075,2.22275,gcam-v7.0 -gSSP2,South Africa,2080,2.36643,gcam-v7.0 -gSSP2,South Africa,2085,2.51621,gcam-v7.0 -gSSP2,South Africa,2090,2.67423,gcam-v7.0 -gSSP2,South Africa,2095,2.83952,gcam-v7.0 -gSSP2,South Africa,2100,3.01483,gcam-v7.0 -gSSP2,South America_Northern,1975,0,gcam-v7.0 -gSSP2,South America_Northern,1990,0,gcam-v7.0 -gSSP2,South America_Northern,2005,0,gcam-v7.0 -gSSP2,South America_Northern,2010,0,gcam-v7.0 -gSSP2,South America_Northern,2015,0,gcam-v7.0 -gSSP2,South America_Northern,2020,0.0534873,gcam-v7.0 -gSSP2,South America_Northern,2025,-0.0393436,gcam-v7.0 -gSSP2,South America_Northern,2030,-0.0533743,gcam-v7.0 -gSSP2,South America_Northern,2035,-0.0154336,gcam-v7.0 -gSSP2,South America_Northern,2040,0.0107452,gcam-v7.0 -gSSP2,South America_Northern,2045,0.0989381,gcam-v7.0 -gSSP2,South America_Northern,2050,0.25205,gcam-v7.0 -gSSP2,South America_Northern,2055,0.397462,gcam-v7.0 -gSSP2,South America_Northern,2060,0.516295,gcam-v7.0 -gSSP2,South America_Northern,2065,0.620207,gcam-v7.0 -gSSP2,South America_Northern,2070,0.709604,gcam-v7.0 -gSSP2,South America_Northern,2075,0.791606,gcam-v7.0 -gSSP2,South America_Northern,2080,0.889469,gcam-v7.0 -gSSP2,South America_Northern,2085,0.996632,gcam-v7.0 -gSSP2,South America_Northern,2090,1.11016,gcam-v7.0 -gSSP2,South America_Northern,2095,1.22116,gcam-v7.0 -gSSP2,South America_Northern,2100,1.33333,gcam-v7.0 -gSSP2,South America_Southern,1975,0,gcam-v7.0 -gSSP2,South America_Southern,1990,0,gcam-v7.0 -gSSP2,South America_Southern,2005,0,gcam-v7.0 -gSSP2,South America_Southern,2010,0,gcam-v7.0 -gSSP2,South America_Southern,2015,0,gcam-v7.0 -gSSP2,South America_Southern,2020,1.06703,gcam-v7.0 -gSSP2,South America_Southern,2025,1.16508,gcam-v7.0 -gSSP2,South America_Southern,2030,1.28464,gcam-v7.0 -gSSP2,South America_Southern,2035,1.39545,gcam-v7.0 -gSSP2,South America_Southern,2040,1.5107,gcam-v7.0 -gSSP2,South America_Southern,2045,1.62921,gcam-v7.0 -gSSP2,South America_Southern,2050,1.75451,gcam-v7.0 -gSSP2,South America_Southern,2055,1.89067,gcam-v7.0 -gSSP2,South America_Southern,2060,2.04046,gcam-v7.0 -gSSP2,South America_Southern,2065,2.20191,gcam-v7.0 -gSSP2,South America_Southern,2070,2.37533,gcam-v7.0 -gSSP2,South America_Southern,2075,2.55843,gcam-v7.0 -gSSP2,South America_Southern,2080,2.75102,gcam-v7.0 -gSSP2,South America_Southern,2085,2.95388,gcam-v7.0 -gSSP2,South America_Southern,2090,3.16752,gcam-v7.0 -gSSP2,South America_Southern,2095,3.3917,gcam-v7.0 -gSSP2,South America_Southern,2100,3.62726,gcam-v7.0 -gSSP2,South Asia,1975,0,gcam-v7.0 -gSSP2,South Asia,1990,0,gcam-v7.0 -gSSP2,South Asia,2005,0,gcam-v7.0 -gSSP2,South Asia,2010,0,gcam-v7.0 -gSSP2,South Asia,2015,0,gcam-v7.0 -gSSP2,South Asia,2020,1.12457,gcam-v7.0 -gSSP2,South Asia,2025,1.28975,gcam-v7.0 -gSSP2,South Asia,2030,1.3946,gcam-v7.0 -gSSP2,South Asia,2035,1.43552,gcam-v7.0 -gSSP2,South Asia,2040,1.45536,gcam-v7.0 -gSSP2,South Asia,2045,1.46434,gcam-v7.0 -gSSP2,South Asia,2050,1.46651,gcam-v7.0 -gSSP2,South Asia,2055,1.4723,gcam-v7.0 -gSSP2,South Asia,2060,1.48551,gcam-v7.0 -gSSP2,South Asia,2065,1.50604,gcam-v7.0 -gSSP2,South Asia,2070,1.53384,gcam-v7.0 -gSSP2,South Asia,2075,1.5659,gcam-v7.0 -gSSP2,South Asia,2080,1.60245,gcam-v7.0 -gSSP2,South Asia,2085,1.64438,gcam-v7.0 -gSSP2,South Asia,2090,1.69207,gcam-v7.0 -gSSP2,South Asia,2095,1.74539,gcam-v7.0 -gSSP2,South Asia,2100,1.80337,gcam-v7.0 -gSSP2,South Korea,1975,0,gcam-v7.0 -gSSP2,South Korea,1990,0,gcam-v7.0 -gSSP2,South Korea,2005,0,gcam-v7.0 -gSSP2,South Korea,2010,0,gcam-v7.0 -gSSP2,South Korea,2015,0,gcam-v7.0 -gSSP2,South Korea,2020,1.09168,gcam-v7.0 -gSSP2,South Korea,2025,1.2183,gcam-v7.0 -gSSP2,South Korea,2030,1.35424,gcam-v7.0 -gSSP2,South Korea,2035,1.48062,gcam-v7.0 -gSSP2,South Korea,2040,1.60757,gcam-v7.0 -gSSP2,South Korea,2045,1.719,gcam-v7.0 -gSSP2,South Korea,2050,1.82652,gcam-v7.0 -gSSP2,South Korea,2055,1.92675,gcam-v7.0 -gSSP2,South Korea,2060,2.03738,gcam-v7.0 -gSSP2,South Korea,2065,2.14664,gcam-v7.0 -gSSP2,South Korea,2070,2.23823,gcam-v7.0 -gSSP2,South Korea,2075,2.33229,gcam-v7.0 -gSSP2,South Korea,2080,2.41906,gcam-v7.0 -gSSP2,South Korea,2085,2.50549,gcam-v7.0 -gSSP2,South Korea,2090,2.59517,gcam-v7.0 -gSSP2,South Korea,2095,2.6891,gcam-v7.0 -gSSP2,South Korea,2100,2.78235,gcam-v7.0 -gSSP2,Southeast Asia,1975,0,gcam-v7.0 -gSSP2,Southeast Asia,1990,0,gcam-v7.0 -gSSP2,Southeast Asia,2005,0,gcam-v7.0 -gSSP2,Southeast Asia,2010,0,gcam-v7.0 -gSSP2,Southeast Asia,2015,0,gcam-v7.0 -gSSP2,Southeast Asia,2020,1.13414,gcam-v7.0 -gSSP2,Southeast Asia,2025,1.28912,gcam-v7.0 -gSSP2,Southeast Asia,2030,1.41724,gcam-v7.0 -gSSP2,Southeast Asia,2035,1.51243,gcam-v7.0 -gSSP2,Southeast Asia,2040,1.61287,gcam-v7.0 -gSSP2,Southeast Asia,2045,1.70608,gcam-v7.0 -gSSP2,Southeast Asia,2050,1.79859,gcam-v7.0 -gSSP2,Southeast Asia,2055,1.90277,gcam-v7.0 -gSSP2,Southeast Asia,2060,2.01624,gcam-v7.0 -gSSP2,Southeast Asia,2065,2.13551,gcam-v7.0 -gSSP2,Southeast Asia,2070,2.26471,gcam-v7.0 -gSSP2,Southeast Asia,2075,2.4023,gcam-v7.0 -gSSP2,Southeast Asia,2080,2.54774,gcam-v7.0 -gSSP2,Southeast Asia,2085,2.70053,gcam-v7.0 -gSSP2,Southeast Asia,2090,2.8599,gcam-v7.0 -gSSP2,Southeast Asia,2095,3.02638,gcam-v7.0 -gSSP2,Southeast Asia,2100,3.20055,gcam-v7.0 -gSSP2,Taiwan,1975,0,gcam-v7.0 -gSSP2,Taiwan,1990,0,gcam-v7.0 -gSSP2,Taiwan,2005,0,gcam-v7.0 -gSSP2,Taiwan,2010,0,gcam-v7.0 -gSSP2,Taiwan,2015,0,gcam-v7.0 -gSSP2,Taiwan,2020,1.09306,gcam-v7.0 -gSSP2,Taiwan,2025,1.18133,gcam-v7.0 -gSSP2,Taiwan,2030,1.25058,gcam-v7.0 -gSSP2,Taiwan,2035,1.31132,gcam-v7.0 -gSSP2,Taiwan,2040,1.36799,gcam-v7.0 -gSSP2,Taiwan,2045,1.40824,gcam-v7.0 -gSSP2,Taiwan,2050,1.42992,gcam-v7.0 -gSSP2,Taiwan,2055,1.44082,gcam-v7.0 -gSSP2,Taiwan,2060,1.45494,gcam-v7.0 -gSSP2,Taiwan,2065,1.51609,gcam-v7.0 -gSSP2,Taiwan,2070,1.57728,gcam-v7.0 -gSSP2,Taiwan,2075,1.6306,gcam-v7.0 -gSSP2,Taiwan,2080,1.6748,gcam-v7.0 -gSSP2,Taiwan,2085,1.70688,gcam-v7.0 -gSSP2,Taiwan,2090,1.72969,gcam-v7.0 -gSSP2,Taiwan,2095,1.74499,gcam-v7.0 -gSSP2,Taiwan,2100,1.75482,gcam-v7.0 -gSSP2,USA,1975,0,gcam-v7.0 -gSSP2,USA,1990,0,gcam-v7.0 -gSSP2,USA,2005,0,gcam-v7.0 -gSSP2,USA,2010,0,gcam-v7.0 -gSSP2,USA,2015,0,gcam-v7.0 -gSSP2,USA,2020,1.06836,gcam-v7.0 -gSSP2,USA,2025,1.12444,gcam-v7.0 -gSSP2,USA,2030,1.19406,gcam-v7.0 -gSSP2,USA,2035,1.24777,gcam-v7.0 -gSSP2,USA,2040,1.29387,gcam-v7.0 -gSSP2,USA,2045,1.3311,gcam-v7.0 -gSSP2,USA,2050,1.37034,gcam-v7.0 -gSSP2,USA,2055,1.41403,gcam-v7.0 -gSSP2,USA,2060,1.46032,gcam-v7.0 -gSSP2,USA,2065,1.50349,gcam-v7.0 -gSSP2,USA,2070,1.55063,gcam-v7.0 -gSSP2,USA,2075,1.60228,gcam-v7.0 -gSSP2,USA,2080,1.65299,gcam-v7.0 -gSSP2,USA,2085,1.70707,gcam-v7.0 -gSSP2,USA,2090,1.76365,gcam-v7.0 -gSSP2,USA,2095,1.82245,gcam-v7.0 -gSSP2,USA,2100,1.8845,gcam-v7.0 -SSP1,Africa_Eastern,1975,0,gcam-v7.0 -SSP1,Africa_Eastern,1990,0,gcam-v7.0 -SSP1,Africa_Eastern,2005,0,gcam-v7.0 -SSP1,Africa_Eastern,2010,0,gcam-v7.0 -SSP1,Africa_Eastern,2015,0,gcam-v7.0 -SSP1,Africa_Eastern,2020,1.18227,gcam-v7.0 -SSP1,Africa_Eastern,2025,1.43166,gcam-v7.0 -SSP1,Africa_Eastern,2030,1.72153,gcam-v7.0 -SSP1,Africa_Eastern,2035,2.03657,gcam-v7.0 -SSP1,Africa_Eastern,2040,2.36287,gcam-v7.0 -SSP1,Africa_Eastern,2045,2.70384,gcam-v7.0 -SSP1,Africa_Eastern,2050,3.0819,gcam-v7.0 -SSP1,Africa_Eastern,2055,3.52067,gcam-v7.0 -SSP1,Africa_Eastern,2060,4.01825,gcam-v7.0 -SSP1,Africa_Eastern,2065,4.57436,gcam-v7.0 -SSP1,Africa_Eastern,2070,5.18845,gcam-v7.0 -SSP1,Africa_Eastern,2075,5.8542,gcam-v7.0 -SSP1,Africa_Eastern,2080,6.57222,gcam-v7.0 -SSP1,Africa_Eastern,2085,7.33787,gcam-v7.0 -SSP1,Africa_Eastern,2090,8.14644,gcam-v7.0 -SSP1,Africa_Eastern,2095,8.99759,gcam-v7.0 -SSP1,Africa_Eastern,2100,9.87987,gcam-v7.0 -SSP1,Africa_Northern,1975,0,gcam-v7.0 -SSP1,Africa_Northern,1990,0,gcam-v7.0 -SSP1,Africa_Northern,2005,0,gcam-v7.0 -SSP1,Africa_Northern,2010,0,gcam-v7.0 -SSP1,Africa_Northern,2015,0,gcam-v7.0 -SSP1,Africa_Northern,2020,1.12209,gcam-v7.0 -SSP1,Africa_Northern,2025,1.32975,gcam-v7.0 -SSP1,Africa_Northern,2030,1.5417,gcam-v7.0 -SSP1,Africa_Northern,2035,1.76416,gcam-v7.0 -SSP1,Africa_Northern,2040,1.99764,gcam-v7.0 -SSP1,Africa_Northern,2045,2.24282,gcam-v7.0 -SSP1,Africa_Northern,2050,2.4948,gcam-v7.0 -SSP1,Africa_Northern,2055,2.75603,gcam-v7.0 -SSP1,Africa_Northern,2060,3.03906,gcam-v7.0 -SSP1,Africa_Northern,2065,3.32747,gcam-v7.0 -SSP1,Africa_Northern,2070,3.61943,gcam-v7.0 -SSP1,Africa_Northern,2075,3.91181,gcam-v7.0 -SSP1,Africa_Northern,2080,4.21087,gcam-v7.0 -SSP1,Africa_Northern,2085,4.5122,gcam-v7.0 -SSP1,Africa_Northern,2090,4.80994,gcam-v7.0 -SSP1,Africa_Northern,2095,5.10081,gcam-v7.0 -SSP1,Africa_Northern,2100,5.39862,gcam-v7.0 -SSP1,Africa_Southern,1975,0,gcam-v7.0 -SSP1,Africa_Southern,1990,0,gcam-v7.0 -SSP1,Africa_Southern,2005,0,gcam-v7.0 -SSP1,Africa_Southern,2010,0,gcam-v7.0 -SSP1,Africa_Southern,2015,0,gcam-v7.0 -SSP1,Africa_Southern,2020,1.17332,gcam-v7.0 -SSP1,Africa_Southern,2025,1.42311,gcam-v7.0 -SSP1,Africa_Southern,2030,1.70723,gcam-v7.0 -SSP1,Africa_Southern,2035,2.03913,gcam-v7.0 -SSP1,Africa_Southern,2040,2.44461,gcam-v7.0 -SSP1,Africa_Southern,2045,2.91729,gcam-v7.0 -SSP1,Africa_Southern,2050,3.45008,gcam-v7.0 -SSP1,Africa_Southern,2055,4.05076,gcam-v7.0 -SSP1,Africa_Southern,2060,4.71451,gcam-v7.0 -SSP1,Africa_Southern,2065,5.45254,gcam-v7.0 -SSP1,Africa_Southern,2070,6.27882,gcam-v7.0 -SSP1,Africa_Southern,2075,7.1769,gcam-v7.0 -SSP1,Africa_Southern,2080,8.15167,gcam-v7.0 -SSP1,Africa_Southern,2085,9.19646,gcam-v7.0 -SSP1,Africa_Southern,2090,10.3044,gcam-v7.0 -SSP1,Africa_Southern,2095,11.4734,gcam-v7.0 -SSP1,Africa_Southern,2100,12.7047,gcam-v7.0 -SSP1,Africa_Western,1975,0,gcam-v7.0 -SSP1,Africa_Western,1990,0,gcam-v7.0 -SSP1,Africa_Western,2005,0,gcam-v7.0 -SSP1,Africa_Western,2010,0,gcam-v7.0 -SSP1,Africa_Western,2015,0,gcam-v7.0 -SSP1,Africa_Western,2020,1.20631,gcam-v7.0 -SSP1,Africa_Western,2025,1.48917,gcam-v7.0 -SSP1,Africa_Western,2030,1.78115,gcam-v7.0 -SSP1,Africa_Western,2035,2.11125,gcam-v7.0 -SSP1,Africa_Western,2040,2.47421,gcam-v7.0 -SSP1,Africa_Western,2045,2.87185,gcam-v7.0 -SSP1,Africa_Western,2050,3.31504,gcam-v7.0 -SSP1,Africa_Western,2055,3.80938,gcam-v7.0 -SSP1,Africa_Western,2060,4.3514,gcam-v7.0 -SSP1,Africa_Western,2065,4.94317,gcam-v7.0 -SSP1,Africa_Western,2070,5.58953,gcam-v7.0 -SSP1,Africa_Western,2075,6.28667,gcam-v7.0 -SSP1,Africa_Western,2080,7.04103,gcam-v7.0 -SSP1,Africa_Western,2085,7.84178,gcam-v7.0 -SSP1,Africa_Western,2090,8.68591,gcam-v7.0 -SSP1,Africa_Western,2095,9.57877,gcam-v7.0 -SSP1,Africa_Western,2100,10.5095,gcam-v7.0 -SSP1,Argentina,1975,0,gcam-v7.0 -SSP1,Argentina,1990,0,gcam-v7.0 -SSP1,Argentina,2005,0,gcam-v7.0 -SSP1,Argentina,2010,0,gcam-v7.0 -SSP1,Argentina,2015,0,gcam-v7.0 -SSP1,Argentina,2020,1.0734,gcam-v7.0 -SSP1,Argentina,2025,1.22247,gcam-v7.0 -SSP1,Argentina,2030,1.37609,gcam-v7.0 -SSP1,Argentina,2035,1.5465,gcam-v7.0 -SSP1,Argentina,2040,1.73045,gcam-v7.0 -SSP1,Argentina,2045,1.92336,gcam-v7.0 -SSP1,Argentina,2050,2.10842,gcam-v7.0 -SSP1,Argentina,2055,2.29916,gcam-v7.0 -SSP1,Argentina,2060,2.4959,gcam-v7.0 -SSP1,Argentina,2065,2.69583,gcam-v7.0 -SSP1,Argentina,2070,2.89226,gcam-v7.0 -SSP1,Argentina,2075,3.08912,gcam-v7.0 -SSP1,Argentina,2080,3.29141,gcam-v7.0 -SSP1,Argentina,2085,3.50698,gcam-v7.0 -SSP1,Argentina,2090,3.73475,gcam-v7.0 -SSP1,Argentina,2095,3.97808,gcam-v7.0 -SSP1,Argentina,2100,4.23662,gcam-v7.0 -SSP1,Australia_NZ,1975,0,gcam-v7.0 -SSP1,Australia_NZ,1990,0,gcam-v7.0 -SSP1,Australia_NZ,2005,0,gcam-v7.0 -SSP1,Australia_NZ,2010,0,gcam-v7.0 -SSP1,Australia_NZ,2015,0,gcam-v7.0 -SSP1,Australia_NZ,2020,1.10989,gcam-v7.0 -SSP1,Australia_NZ,2025,1.20803,gcam-v7.0 -SSP1,Australia_NZ,2030,1.30353,gcam-v7.0 -SSP1,Australia_NZ,2035,1.40118,gcam-v7.0 -SSP1,Australia_NZ,2040,1.50754,gcam-v7.0 -SSP1,Australia_NZ,2045,1.61021,gcam-v7.0 -SSP1,Australia_NZ,2050,1.71338,gcam-v7.0 -SSP1,Australia_NZ,2055,1.82714,gcam-v7.0 -SSP1,Australia_NZ,2060,1.94492,gcam-v7.0 -SSP1,Australia_NZ,2065,2.06818,gcam-v7.0 -SSP1,Australia_NZ,2070,2.19925,gcam-v7.0 -SSP1,Australia_NZ,2075,2.34667,gcam-v7.0 -SSP1,Australia_NZ,2080,2.51186,gcam-v7.0 -SSP1,Australia_NZ,2085,2.69149,gcam-v7.0 -SSP1,Australia_NZ,2090,2.88487,gcam-v7.0 -SSP1,Australia_NZ,2095,3.08748,gcam-v7.0 -SSP1,Australia_NZ,2100,3.29906,gcam-v7.0 -SSP1,Brazil,1975,0,gcam-v7.0 -SSP1,Brazil,1990,0,gcam-v7.0 -SSP1,Brazil,2005,0,gcam-v7.0 -SSP1,Brazil,2010,0,gcam-v7.0 -SSP1,Brazil,2015,0,gcam-v7.0 -SSP1,Brazil,2020,1.13445,gcam-v7.0 -SSP1,Brazil,2025,1.30738,gcam-v7.0 -SSP1,Brazil,2030,1.50119,gcam-v7.0 -SSP1,Brazil,2035,1.72156,gcam-v7.0 -SSP1,Brazil,2040,1.9634,gcam-v7.0 -SSP1,Brazil,2045,2.22164,gcam-v7.0 -SSP1,Brazil,2050,2.49403,gcam-v7.0 -SSP1,Brazil,2055,2.77646,gcam-v7.0 -SSP1,Brazil,2060,3.06872,gcam-v7.0 -SSP1,Brazil,2065,3.37906,gcam-v7.0 -SSP1,Brazil,2070,3.70357,gcam-v7.0 -SSP1,Brazil,2075,4.01902,gcam-v7.0 -SSP1,Brazil,2080,4.34794,gcam-v7.0 -SSP1,Brazil,2085,4.69403,gcam-v7.0 -SSP1,Brazil,2090,5.06403,gcam-v7.0 -SSP1,Brazil,2095,5.45371,gcam-v7.0 -SSP1,Brazil,2100,5.86035,gcam-v7.0 -SSP1,Canada,1975,0,gcam-v7.0 -SSP1,Canada,1990,0,gcam-v7.0 -SSP1,Canada,2005,0,gcam-v7.0 -SSP1,Canada,2010,0,gcam-v7.0 -SSP1,Canada,2015,0,gcam-v7.0 -SSP1,Canada,2020,1.04436,gcam-v7.0 -SSP1,Canada,2025,1.1126,gcam-v7.0 -SSP1,Canada,2030,1.17113,gcam-v7.0 -SSP1,Canada,2035,1.23002,gcam-v7.0 -SSP1,Canada,2040,1.29424,gcam-v7.0 -SSP1,Canada,2045,1.3708,gcam-v7.0 -SSP1,Canada,2050,1.4602,gcam-v7.0 -SSP1,Canada,2055,1.57098,gcam-v7.0 -SSP1,Canada,2060,1.69318,gcam-v7.0 -SSP1,Canada,2065,1.82035,gcam-v7.0 -SSP1,Canada,2070,1.95452,gcam-v7.0 -SSP1,Canada,2075,2.09493,gcam-v7.0 -SSP1,Canada,2080,2.24516,gcam-v7.0 -SSP1,Canada,2085,2.41253,gcam-v7.0 -SSP1,Canada,2090,2.5941,gcam-v7.0 -SSP1,Canada,2095,2.78407,gcam-v7.0 -SSP1,Canada,2100,2.98019,gcam-v7.0 -SSP1,Central America and Caribbean,1975,0,gcam-v7.0 -SSP1,Central America and Caribbean,1990,0,gcam-v7.0 -SSP1,Central America and Caribbean,2005,0,gcam-v7.0 -SSP1,Central America and Caribbean,2010,0,gcam-v7.0 -SSP1,Central America and Caribbean,2015,0,gcam-v7.0 -SSP1,Central America and Caribbean,2020,1.08018,gcam-v7.0 -SSP1,Central America and Caribbean,2025,1.20402,gcam-v7.0 -SSP1,Central America and Caribbean,2030,1.35246,gcam-v7.0 -SSP1,Central America and Caribbean,2035,1.51392,gcam-v7.0 -SSP1,Central America and Caribbean,2040,1.67546,gcam-v7.0 -SSP1,Central America and Caribbean,2045,1.82977,gcam-v7.0 -SSP1,Central America and Caribbean,2050,1.98535,gcam-v7.0 -SSP1,Central America and Caribbean,2055,2.15476,gcam-v7.0 -SSP1,Central America and Caribbean,2060,2.33818,gcam-v7.0 -SSP1,Central America and Caribbean,2065,2.53282,gcam-v7.0 -SSP1,Central America and Caribbean,2070,2.73789,gcam-v7.0 -SSP1,Central America and Caribbean,2075,2.95071,gcam-v7.0 -SSP1,Central America and Caribbean,2080,3.17747,gcam-v7.0 -SSP1,Central America and Caribbean,2085,3.41559,gcam-v7.0 -SSP1,Central America and Caribbean,2090,3.66639,gcam-v7.0 -SSP1,Central America and Caribbean,2095,3.93287,gcam-v7.0 -SSP1,Central America and Caribbean,2100,4.21301,gcam-v7.0 -SSP1,Central Asia,1975,0,gcam-v7.0 -SSP1,Central Asia,1990,0,gcam-v7.0 -SSP1,Central Asia,2005,0,gcam-v7.0 -SSP1,Central Asia,2010,0,gcam-v7.0 -SSP1,Central Asia,2015,0,gcam-v7.0 -SSP1,Central Asia,2020,1.13848,gcam-v7.0 -SSP1,Central Asia,2025,1.43041,gcam-v7.0 -SSP1,Central Asia,2030,1.70834,gcam-v7.0 -SSP1,Central Asia,2035,1.99425,gcam-v7.0 -SSP1,Central Asia,2040,2.28881,gcam-v7.0 -SSP1,Central Asia,2045,2.56938,gcam-v7.0 -SSP1,Central Asia,2050,2.82685,gcam-v7.0 -SSP1,Central Asia,2055,3.08259,gcam-v7.0 -SSP1,Central Asia,2060,3.34677,gcam-v7.0 -SSP1,Central Asia,2065,3.62346,gcam-v7.0 -SSP1,Central Asia,2070,3.89399,gcam-v7.0 -SSP1,Central Asia,2075,4.15886,gcam-v7.0 -SSP1,Central Asia,2080,4.43417,gcam-v7.0 -SSP1,Central Asia,2085,4.71356,gcam-v7.0 -SSP1,Central Asia,2090,5.00331,gcam-v7.0 -SSP1,Central Asia,2095,5.30161,gcam-v7.0 -SSP1,Central Asia,2100,5.59636,gcam-v7.0 -SSP1,China,1975,0,gcam-v7.0 -SSP1,China,1990,0,gcam-v7.0 -SSP1,China,2005,0,gcam-v7.0 -SSP1,China,2010,0,gcam-v7.0 -SSP1,China,2015,0,gcam-v7.0 -SSP1,China,2020,1.40417,gcam-v7.0 -SSP1,China,2025,1.84219,gcam-v7.0 -SSP1,China,2030,2.33063,gcam-v7.0 -SSP1,China,2035,2.87206,gcam-v7.0 -SSP1,China,2040,3.40172,gcam-v7.0 -SSP1,China,2045,3.84751,gcam-v7.0 -SSP1,China,2050,4.25511,gcam-v7.0 -SSP1,China,2055,4.67574,gcam-v7.0 -SSP1,China,2060,5.0519,gcam-v7.0 -SSP1,China,2065,5.39963,gcam-v7.0 -SSP1,China,2070,5.70433,gcam-v7.0 -SSP1,China,2075,5.98806,gcam-v7.0 -SSP1,China,2080,6.24393,gcam-v7.0 -SSP1,China,2085,6.48777,gcam-v7.0 -SSP1,China,2090,6.7211,gcam-v7.0 -SSP1,China,2095,6.95593,gcam-v7.0 -SSP1,China,2100,7.19439,gcam-v7.0 -SSP1,Colombia,1975,0,gcam-v7.0 -SSP1,Colombia,1990,0,gcam-v7.0 -SSP1,Colombia,2005,0,gcam-v7.0 -SSP1,Colombia,2010,0,gcam-v7.0 -SSP1,Colombia,2015,0,gcam-v7.0 -SSP1,Colombia,2020,1.13164,gcam-v7.0 -SSP1,Colombia,2025,1.24724,gcam-v7.0 -SSP1,Colombia,2030,1.41617,gcam-v7.0 -SSP1,Colombia,2035,1.61374,gcam-v7.0 -SSP1,Colombia,2040,1.82628,gcam-v7.0 -SSP1,Colombia,2045,2.0497,gcam-v7.0 -SSP1,Colombia,2050,2.27865,gcam-v7.0 -SSP1,Colombia,2055,2.52137,gcam-v7.0 -SSP1,Colombia,2060,2.7785,gcam-v7.0 -SSP1,Colombia,2065,3.04451,gcam-v7.0 -SSP1,Colombia,2070,3.31653,gcam-v7.0 -SSP1,Colombia,2075,3.59655,gcam-v7.0 -SSP1,Colombia,2080,3.88747,gcam-v7.0 -SSP1,Colombia,2085,4.19191,gcam-v7.0 -SSP1,Colombia,2090,4.51606,gcam-v7.0 -SSP1,Colombia,2095,4.85876,gcam-v7.0 -SSP1,Colombia,2100,5.21435,gcam-v7.0 -SSP1,EU-12,1975,0,gcam-v7.0 -SSP1,EU-12,1990,0,gcam-v7.0 -SSP1,EU-12,2005,0,gcam-v7.0 -SSP1,EU-12,2010,0,gcam-v7.0 -SSP1,EU-12,2015,0,gcam-v7.0 -SSP1,EU-12,2020,1.10006,gcam-v7.0 -SSP1,EU-12,2025,1.26591,gcam-v7.0 -SSP1,EU-12,2030,1.42211,gcam-v7.0 -SSP1,EU-12,2035,1.58271,gcam-v7.0 -SSP1,EU-12,2040,1.74431,gcam-v7.0 -SSP1,EU-12,2045,1.90814,gcam-v7.0 -SSP1,EU-12,2050,2.06927,gcam-v7.0 -SSP1,EU-12,2055,2.23601,gcam-v7.0 -SSP1,EU-12,2060,2.39654,gcam-v7.0 -SSP1,EU-12,2065,2.54932,gcam-v7.0 -SSP1,EU-12,2070,2.69781,gcam-v7.0 -SSP1,EU-12,2075,2.85937,gcam-v7.0 -SSP1,EU-12,2080,3.03637,gcam-v7.0 -SSP1,EU-12,2085,3.22544,gcam-v7.0 -SSP1,EU-12,2090,3.42685,gcam-v7.0 -SSP1,EU-12,2095,3.63422,gcam-v7.0 -SSP1,EU-12,2100,3.84536,gcam-v7.0 -SSP1,EU-15,1975,0,gcam-v7.0 -SSP1,EU-15,1990,0,gcam-v7.0 -SSP1,EU-15,2005,0,gcam-v7.0 -SSP1,EU-15,2010,0,gcam-v7.0 -SSP1,EU-15,2015,0,gcam-v7.0 -SSP1,EU-15,2020,1.05426,gcam-v7.0 -SSP1,EU-15,2025,1.13844,gcam-v7.0 -SSP1,EU-15,2030,1.23727,gcam-v7.0 -SSP1,EU-15,2035,1.34933,gcam-v7.0 -SSP1,EU-15,2040,1.4614,gcam-v7.0 -SSP1,EU-15,2045,1.56658,gcam-v7.0 -SSP1,EU-15,2050,1.66575,gcam-v7.0 -SSP1,EU-15,2055,1.76654,gcam-v7.0 -SSP1,EU-15,2060,1.8659,gcam-v7.0 -SSP1,EU-15,2065,1.96753,gcam-v7.0 -SSP1,EU-15,2070,2.07485,gcam-v7.0 -SSP1,EU-15,2075,2.19338,gcam-v7.0 -SSP1,EU-15,2080,2.31875,gcam-v7.0 -SSP1,EU-15,2085,2.4535,gcam-v7.0 -SSP1,EU-15,2090,2.59653,gcam-v7.0 -SSP1,EU-15,2095,2.74734,gcam-v7.0 -SSP1,EU-15,2100,2.90535,gcam-v7.0 -SSP1,Europe_Eastern,1975,0,gcam-v7.0 -SSP1,Europe_Eastern,1990,0,gcam-v7.0 -SSP1,Europe_Eastern,2005,0,gcam-v7.0 -SSP1,Europe_Eastern,2010,0,gcam-v7.0 -SSP1,Europe_Eastern,2015,0,gcam-v7.0 -SSP1,Europe_Eastern,2020,0.973325,gcam-v7.0 -SSP1,Europe_Eastern,2025,1.14166,gcam-v7.0 -SSP1,Europe_Eastern,2030,1.32069,gcam-v7.0 -SSP1,Europe_Eastern,2035,1.51389,gcam-v7.0 -SSP1,Europe_Eastern,2040,1.70727,gcam-v7.0 -SSP1,Europe_Eastern,2045,1.89879,gcam-v7.0 -SSP1,Europe_Eastern,2050,2.09464,gcam-v7.0 -SSP1,Europe_Eastern,2055,2.30338,gcam-v7.0 -SSP1,Europe_Eastern,2060,2.52513,gcam-v7.0 -SSP1,Europe_Eastern,2065,2.76377,gcam-v7.0 -SSP1,Europe_Eastern,2070,3.00936,gcam-v7.0 -SSP1,Europe_Eastern,2075,3.3216,gcam-v7.0 -SSP1,Europe_Eastern,2080,3.56709,gcam-v7.0 -SSP1,Europe_Eastern,2085,3.8239,gcam-v7.0 -SSP1,Europe_Eastern,2090,4.08924,gcam-v7.0 -SSP1,Europe_Eastern,2095,4.36077,gcam-v7.0 -SSP1,Europe_Eastern,2100,4.63719,gcam-v7.0 -SSP1,Europe_Non_EU,1975,0,gcam-v7.0 -SSP1,Europe_Non_EU,1990,0,gcam-v7.0 -SSP1,Europe_Non_EU,2005,0,gcam-v7.0 -SSP1,Europe_Non_EU,2010,0,gcam-v7.0 -SSP1,Europe_Non_EU,2015,0,gcam-v7.0 -SSP1,Europe_Non_EU,2020,1.08934,gcam-v7.0 -SSP1,Europe_Non_EU,2025,1.21247,gcam-v7.0 -SSP1,Europe_Non_EU,2030,1.33775,gcam-v7.0 -SSP1,Europe_Non_EU,2035,1.46666,gcam-v7.0 -SSP1,Europe_Non_EU,2040,1.59874,gcam-v7.0 -SSP1,Europe_Non_EU,2045,1.72702,gcam-v7.0 -SSP1,Europe_Non_EU,2050,1.85208,gcam-v7.0 -SSP1,Europe_Non_EU,2055,1.97677,gcam-v7.0 -SSP1,Europe_Non_EU,2060,2.10462,gcam-v7.0 -SSP1,Europe_Non_EU,2065,2.23653,gcam-v7.0 -SSP1,Europe_Non_EU,2070,2.36346,gcam-v7.0 -SSP1,Europe_Non_EU,2075,2.49074,gcam-v7.0 -SSP1,Europe_Non_EU,2080,2.62417,gcam-v7.0 -SSP1,Europe_Non_EU,2085,2.7652,gcam-v7.0 -SSP1,Europe_Non_EU,2090,2.91505,gcam-v7.0 -SSP1,Europe_Non_EU,2095,3.07454,gcam-v7.0 -SSP1,Europe_Non_EU,2100,3.24527,gcam-v7.0 -SSP1,European Free Trade Association,1975,0,gcam-v7.0 -SSP1,European Free Trade Association,1990,0,gcam-v7.0 -SSP1,European Free Trade Association,2005,0,gcam-v7.0 -SSP1,European Free Trade Association,2010,0,gcam-v7.0 -SSP1,European Free Trade Association,2015,0,gcam-v7.0 -SSP1,European Free Trade Association,2020,1.08208,gcam-v7.0 -SSP1,European Free Trade Association,2025,1.17563,gcam-v7.0 -SSP1,European Free Trade Association,2030,1.28125,gcam-v7.0 -SSP1,European Free Trade Association,2035,1.39085,gcam-v7.0 -SSP1,European Free Trade Association,2040,1.49228,gcam-v7.0 -SSP1,European Free Trade Association,2045,1.58092,gcam-v7.0 -SSP1,European Free Trade Association,2050,1.67547,gcam-v7.0 -SSP1,European Free Trade Association,2055,1.77514,gcam-v7.0 -SSP1,European Free Trade Association,2060,1.87939,gcam-v7.0 -SSP1,European Free Trade Association,2065,1.98688,gcam-v7.0 -SSP1,European Free Trade Association,2070,2.09697,gcam-v7.0 -SSP1,European Free Trade Association,2075,2.21657,gcam-v7.0 -SSP1,European Free Trade Association,2080,2.34883,gcam-v7.0 -SSP1,European Free Trade Association,2085,2.49613,gcam-v7.0 -SSP1,European Free Trade Association,2090,2.65577,gcam-v7.0 -SSP1,European Free Trade Association,2095,2.82574,gcam-v7.0 -SSP1,European Free Trade Association,2100,3.0012,gcam-v7.0 -SSP1,India,1975,0,gcam-v7.0 -SSP1,India,1990,0,gcam-v7.0 -SSP1,India,2005,0,gcam-v7.0 -SSP1,India,2010,0,gcam-v7.0 -SSP1,India,2015,0,gcam-v7.0 -SSP1,India,2020,1.19323,gcam-v7.0 -SSP1,India,2025,1.45565,gcam-v7.0 -SSP1,India,2030,1.73353,gcam-v7.0 -SSP1,India,2035,2.02985,gcam-v7.0 -SSP1,India,2040,2.33943,gcam-v7.0 -SSP1,India,2045,2.66231,gcam-v7.0 -SSP1,India,2050,2.9998,gcam-v7.0 -SSP1,India,2055,3.36554,gcam-v7.0 -SSP1,India,2060,3.7518,gcam-v7.0 -SSP1,India,2065,4.15266,gcam-v7.0 -SSP1,India,2070,4.56226,gcam-v7.0 -SSP1,India,2075,4.9814,gcam-v7.0 -SSP1,India,2080,5.42148,gcam-v7.0 -SSP1,India,2085,5.87321,gcam-v7.0 -SSP1,India,2090,6.32988,gcam-v7.0 -SSP1,India,2095,6.79176,gcam-v7.0 -SSP1,India,2100,7.26439,gcam-v7.0 -SSP1,Indonesia,1975,0,gcam-v7.0 -SSP1,Indonesia,1990,0,gcam-v7.0 -SSP1,Indonesia,2005,0,gcam-v7.0 -SSP1,Indonesia,2010,0,gcam-v7.0 -SSP1,Indonesia,2015,0,gcam-v7.0 -SSP1,Indonesia,2020,1.23649,gcam-v7.0 -SSP1,Indonesia,2025,1.56051,gcam-v7.0 -SSP1,Indonesia,2030,1.92433,gcam-v7.0 -SSP1,Indonesia,2035,2.3397,gcam-v7.0 -SSP1,Indonesia,2040,2.78415,gcam-v7.0 -SSP1,Indonesia,2045,3.23553,gcam-v7.0 -SSP1,Indonesia,2050,3.69792,gcam-v7.0 -SSP1,Indonesia,2055,4.18476,gcam-v7.0 -SSP1,Indonesia,2060,4.69345,gcam-v7.0 -SSP1,Indonesia,2065,5.21694,gcam-v7.0 -SSP1,Indonesia,2070,5.76372,gcam-v7.0 -SSP1,Indonesia,2075,6.31534,gcam-v7.0 -SSP1,Indonesia,2080,6.87615,gcam-v7.0 -SSP1,Indonesia,2085,7.4369,gcam-v7.0 -SSP1,Indonesia,2090,8.00308,gcam-v7.0 -SSP1,Indonesia,2095,8.57238,gcam-v7.0 -SSP1,Indonesia,2100,9.14139,gcam-v7.0 -SSP1,Japan,1975,0,gcam-v7.0 -SSP1,Japan,1990,0,gcam-v7.0 -SSP1,Japan,2005,0,gcam-v7.0 -SSP1,Japan,2010,0,gcam-v7.0 -SSP1,Japan,2015,0,gcam-v7.0 -SSP1,Japan,2020,1.04493,gcam-v7.0 -SSP1,Japan,2025,1.12561,gcam-v7.0 -SSP1,Japan,2030,1.21719,gcam-v7.0 -SSP1,Japan,2035,1.32297,gcam-v7.0 -SSP1,Japan,2040,1.44236,gcam-v7.0 -SSP1,Japan,2045,1.557,gcam-v7.0 -SSP1,Japan,2050,1.66184,gcam-v7.0 -SSP1,Japan,2055,1.76453,gcam-v7.0 -SSP1,Japan,2060,1.86599,gcam-v7.0 -SSP1,Japan,2065,1.97155,gcam-v7.0 -SSP1,Japan,2070,2.07952,gcam-v7.0 -SSP1,Japan,2075,2.19334,gcam-v7.0 -SSP1,Japan,2080,2.31197,gcam-v7.0 -SSP1,Japan,2085,2.43052,gcam-v7.0 -SSP1,Japan,2090,2.55022,gcam-v7.0 -SSP1,Japan,2095,2.67159,gcam-v7.0 -SSP1,Japan,2100,2.79693,gcam-v7.0 -SSP1,Mexico,1975,0,gcam-v7.0 -SSP1,Mexico,1990,0,gcam-v7.0 -SSP1,Mexico,2005,0,gcam-v7.0 -SSP1,Mexico,2010,0,gcam-v7.0 -SSP1,Mexico,2015,0,gcam-v7.0 -SSP1,Mexico,2020,1.04928,gcam-v7.0 -SSP1,Mexico,2025,1.16146,gcam-v7.0 -SSP1,Mexico,2030,1.29782,gcam-v7.0 -SSP1,Mexico,2035,1.46299,gcam-v7.0 -SSP1,Mexico,2040,1.62001,gcam-v7.0 -SSP1,Mexico,2045,1.76902,gcam-v7.0 -SSP1,Mexico,2050,1.90753,gcam-v7.0 -SSP1,Mexico,2055,2.04982,gcam-v7.0 -SSP1,Mexico,2060,2.19909,gcam-v7.0 -SSP1,Mexico,2065,2.34841,gcam-v7.0 -SSP1,Mexico,2070,2.50178,gcam-v7.0 -SSP1,Mexico,2075,2.6552,gcam-v7.0 -SSP1,Mexico,2080,2.81518,gcam-v7.0 -SSP1,Mexico,2085,2.98374,gcam-v7.0 -SSP1,Mexico,2090,3.15945,gcam-v7.0 -SSP1,Mexico,2095,3.34482,gcam-v7.0 -SSP1,Mexico,2100,3.54412,gcam-v7.0 -SSP1,Middle East,1975,0,gcam-v7.0 -SSP1,Middle East,1990,0,gcam-v7.0 -SSP1,Middle East,2005,0,gcam-v7.0 -SSP1,Middle East,2010,0,gcam-v7.0 -SSP1,Middle East,2015,0,gcam-v7.0 -SSP1,Middle East,2020,1.11215,gcam-v7.0 -SSP1,Middle East,2025,1.29428,gcam-v7.0 -SSP1,Middle East,2030,1.51788,gcam-v7.0 -SSP1,Middle East,2035,1.73029,gcam-v7.0 -SSP1,Middle East,2040,1.95608,gcam-v7.0 -SSP1,Middle East,2045,2.17942,gcam-v7.0 -SSP1,Middle East,2050,2.39454,gcam-v7.0 -SSP1,Middle East,2055,2.60785,gcam-v7.0 -SSP1,Middle East,2060,2.8164,gcam-v7.0 -SSP1,Middle East,2065,3.03732,gcam-v7.0 -SSP1,Middle East,2070,3.26717,gcam-v7.0 -SSP1,Middle East,2075,3.50458,gcam-v7.0 -SSP1,Middle East,2080,3.75783,gcam-v7.0 -SSP1,Middle East,2085,4.02561,gcam-v7.0 -SSP1,Middle East,2090,4.30925,gcam-v7.0 -SSP1,Middle East,2095,4.61404,gcam-v7.0 -SSP1,Middle East,2100,4.94366,gcam-v7.0 -SSP1,Pakistan,1975,0,gcam-v7.0 -SSP1,Pakistan,1990,0,gcam-v7.0 -SSP1,Pakistan,2005,0,gcam-v7.0 -SSP1,Pakistan,2010,0,gcam-v7.0 -SSP1,Pakistan,2015,0,gcam-v7.0 -SSP1,Pakistan,2020,1.07128,gcam-v7.0 -SSP1,Pakistan,2025,1.19907,gcam-v7.0 -SSP1,Pakistan,2030,1.38083,gcam-v7.0 -SSP1,Pakistan,2035,1.60743,gcam-v7.0 -SSP1,Pakistan,2040,1.87663,gcam-v7.0 -SSP1,Pakistan,2045,2.19176,gcam-v7.0 -SSP1,Pakistan,2050,2.55251,gcam-v7.0 -SSP1,Pakistan,2055,2.98057,gcam-v7.0 -SSP1,Pakistan,2060,3.45019,gcam-v7.0 -SSP1,Pakistan,2065,3.95893,gcam-v7.0 -SSP1,Pakistan,2070,4.49528,gcam-v7.0 -SSP1,Pakistan,2075,5.05263,gcam-v7.0 -SSP1,Pakistan,2080,5.63595,gcam-v7.0 -SSP1,Pakistan,2085,6.23054,gcam-v7.0 -SSP1,Pakistan,2090,6.83145,gcam-v7.0 -SSP1,Pakistan,2095,7.44113,gcam-v7.0 -SSP1,Pakistan,2100,8.06231,gcam-v7.0 -SSP1,Russia,1975,0,gcam-v7.0 -SSP1,Russia,1990,0,gcam-v7.0 -SSP1,Russia,2005,0,gcam-v7.0 -SSP1,Russia,2010,0,gcam-v7.0 -SSP1,Russia,2015,0,gcam-v7.0 -SSP1,Russia,2020,1.16564,gcam-v7.0 -SSP1,Russia,2025,1.40498,gcam-v7.0 -SSP1,Russia,2030,1.68051,gcam-v7.0 -SSP1,Russia,2035,1.97102,gcam-v7.0 -SSP1,Russia,2040,2.22888,gcam-v7.0 -SSP1,Russia,2045,2.43492,gcam-v7.0 -SSP1,Russia,2050,2.6291,gcam-v7.0 -SSP1,Russia,2055,2.8265,gcam-v7.0 -SSP1,Russia,2060,3.00287,gcam-v7.0 -SSP1,Russia,2065,3.1645,gcam-v7.0 -SSP1,Russia,2070,3.31955,gcam-v7.0 -SSP1,Russia,2075,3.46901,gcam-v7.0 -SSP1,Russia,2080,3.64032,gcam-v7.0 -SSP1,Russia,2085,3.82415,gcam-v7.0 -SSP1,Russia,2090,4.0178,gcam-v7.0 -SSP1,Russia,2095,4.21687,gcam-v7.0 -SSP1,Russia,2100,4.42758,gcam-v7.0 -SSP1,South Africa,1975,0,gcam-v7.0 -SSP1,South Africa,1990,0,gcam-v7.0 -SSP1,South Africa,2005,0,gcam-v7.0 -SSP1,South Africa,2010,0,gcam-v7.0 -SSP1,South Africa,2015,0,gcam-v7.0 -SSP1,South Africa,2020,1.1479,gcam-v7.0 -SSP1,South Africa,2025,1.32831,gcam-v7.0 -SSP1,South Africa,2030,1.52106,gcam-v7.0 -SSP1,South Africa,2035,1.72369,gcam-v7.0 -SSP1,South Africa,2040,1.92564,gcam-v7.0 -SSP1,South Africa,2045,2.11817,gcam-v7.0 -SSP1,South Africa,2050,2.30714,gcam-v7.0 -SSP1,South Africa,2055,2.5077,gcam-v7.0 -SSP1,South Africa,2060,2.71244,gcam-v7.0 -SSP1,South Africa,2065,2.91444,gcam-v7.0 -SSP1,South Africa,2070,3.1138,gcam-v7.0 -SSP1,South Africa,2075,3.31005,gcam-v7.0 -SSP1,South Africa,2080,3.50684,gcam-v7.0 -SSP1,South Africa,2085,3.69753,gcam-v7.0 -SSP1,South Africa,2090,3.89231,gcam-v7.0 -SSP1,South Africa,2095,4.09226,gcam-v7.0 -SSP1,South Africa,2100,4.30102,gcam-v7.0 -SSP1,South America_Northern,1975,0,gcam-v7.0 -SSP1,South America_Northern,1990,0,gcam-v7.0 -SSP1,South America_Northern,2005,0,gcam-v7.0 -SSP1,South America_Northern,2010,0,gcam-v7.0 -SSP1,South America_Northern,2015,0,gcam-v7.0 -SSP1,South America_Northern,2020,0.88262,gcam-v7.0 -SSP1,South America_Northern,2025,0.972908,gcam-v7.0 -SSP1,South America_Northern,2030,1.06425,gcam-v7.0 -SSP1,South America_Northern,2035,1.1803,gcam-v7.0 -SSP1,South America_Northern,2040,1.36646,gcam-v7.0 -SSP1,South America_Northern,2045,1.60696,gcam-v7.0 -SSP1,South America_Northern,2050,1.86713,gcam-v7.0 -SSP1,South America_Northern,2055,2.16908,gcam-v7.0 -SSP1,South America_Northern,2060,2.47945,gcam-v7.0 -SSP1,South America_Northern,2065,2.76781,gcam-v7.0 -SSP1,South America_Northern,2070,3.06124,gcam-v7.0 -SSP1,South America_Northern,2075,3.36334,gcam-v7.0 -SSP1,South America_Northern,2080,3.68438,gcam-v7.0 -SSP1,South America_Northern,2085,4.02034,gcam-v7.0 -SSP1,South America_Northern,2090,4.37297,gcam-v7.0 -SSP1,South America_Northern,2095,4.7449,gcam-v7.0 -SSP1,South America_Northern,2100,5.13828,gcam-v7.0 -SSP1,South America_Southern,1975,0,gcam-v7.0 -SSP1,South America_Southern,1990,0,gcam-v7.0 -SSP1,South America_Southern,2005,0,gcam-v7.0 -SSP1,South America_Southern,2010,0,gcam-v7.0 -SSP1,South America_Southern,2015,0,gcam-v7.0 -SSP1,South America_Southern,2020,1.14998,gcam-v7.0 -SSP1,South America_Southern,2025,1.33179,gcam-v7.0 -SSP1,South America_Southern,2030,1.5214,gcam-v7.0 -SSP1,South America_Southern,2035,1.72694,gcam-v7.0 -SSP1,South America_Southern,2040,1.94847,gcam-v7.0 -SSP1,South America_Southern,2045,2.17613,gcam-v7.0 -SSP1,South America_Southern,2050,2.40785,gcam-v7.0 -SSP1,South America_Southern,2055,2.65395,gcam-v7.0 -SSP1,South America_Southern,2060,2.91521,gcam-v7.0 -SSP1,South America_Southern,2065,3.1866,gcam-v7.0 -SSP1,South America_Southern,2070,3.4663,gcam-v7.0 -SSP1,South America_Southern,2075,3.74919,gcam-v7.0 -SSP1,South America_Southern,2080,4.04084,gcam-v7.0 -SSP1,South America_Southern,2085,4.3407,gcam-v7.0 -SSP1,South America_Southern,2090,4.65162,gcam-v7.0 -SSP1,South America_Southern,2095,4.97812,gcam-v7.0 -SSP1,South America_Southern,2100,5.31999,gcam-v7.0 -SSP1,South Asia,1975,0,gcam-v7.0 -SSP1,South Asia,1990,0,gcam-v7.0 -SSP1,South Asia,2005,0,gcam-v7.0 -SSP1,South Asia,2010,0,gcam-v7.0 -SSP1,South Asia,2015,0,gcam-v7.0 -SSP1,South Asia,2020,1.16612,gcam-v7.0 -SSP1,South Asia,2025,1.36639,gcam-v7.0 -SSP1,South Asia,2030,1.52698,gcam-v7.0 -SSP1,South Asia,2035,1.62122,gcam-v7.0 -SSP1,South Asia,2040,1.66117,gcam-v7.0 -SSP1,South Asia,2045,1.66314,gcam-v7.0 -SSP1,South Asia,2050,1.65132,gcam-v7.0 -SSP1,South Asia,2055,1.64626,gcam-v7.0 -SSP1,South Asia,2060,1.65228,gcam-v7.0 -SSP1,South Asia,2065,1.66751,gcam-v7.0 -SSP1,South Asia,2070,1.69005,gcam-v7.0 -SSP1,South Asia,2075,1.71772,gcam-v7.0 -SSP1,South Asia,2080,1.75262,gcam-v7.0 -SSP1,South Asia,2085,1.7933,gcam-v7.0 -SSP1,South Asia,2090,1.83968,gcam-v7.0 -SSP1,South Asia,2095,1.89137,gcam-v7.0 -SSP1,South Asia,2100,1.94622,gcam-v7.0 -SSP1,South Korea,1975,0,gcam-v7.0 -SSP1,South Korea,1990,0,gcam-v7.0 -SSP1,South Korea,2005,0,gcam-v7.0 -SSP1,South Korea,2010,0,gcam-v7.0 -SSP1,South Korea,2015,0,gcam-v7.0 -SSP1,South Korea,2020,0.98729,gcam-v7.0 -SSP1,South Korea,2025,1.1376,gcam-v7.0 -SSP1,South Korea,2030,1.28885,gcam-v7.0 -SSP1,South Korea,2035,1.42851,gcam-v7.0 -SSP1,South Korea,2040,1.56111,gcam-v7.0 -SSP1,South Korea,2045,1.67536,gcam-v7.0 -SSP1,South Korea,2050,1.78025,gcam-v7.0 -SSP1,South Korea,2055,1.87225,gcam-v7.0 -SSP1,South Korea,2060,1.97124,gcam-v7.0 -SSP1,South Korea,2065,2.06844,gcam-v7.0 -SSP1,South Korea,2070,2.14971,gcam-v7.0 -SSP1,South Korea,2075,2.23197,gcam-v7.0 -SSP1,South Korea,2080,2.30641,gcam-v7.0 -SSP1,South Korea,2085,2.37807,gcam-v7.0 -SSP1,South Korea,2090,2.45116,gcam-v7.0 -SSP1,South Korea,2095,2.52736,gcam-v7.0 -SSP1,South Korea,2100,2.60114,gcam-v7.0 -SSP1,Southeast Asia,1975,0,gcam-v7.0 -SSP1,Southeast Asia,1990,0,gcam-v7.0 -SSP1,Southeast Asia,2005,0,gcam-v7.0 -SSP1,Southeast Asia,2010,0,gcam-v7.0 -SSP1,Southeast Asia,2015,0,gcam-v7.0 -SSP1,Southeast Asia,2020,1.15822,gcam-v7.0 -SSP1,Southeast Asia,2025,1.34937,gcam-v7.0 -SSP1,Southeast Asia,2030,1.53505,gcam-v7.0 -SSP1,Southeast Asia,2035,1.70167,gcam-v7.0 -SSP1,Southeast Asia,2040,1.86546,gcam-v7.0 -SSP1,Southeast Asia,2045,2.01171,gcam-v7.0 -SSP1,Southeast Asia,2050,2.15535,gcam-v7.0 -SSP1,Southeast Asia,2055,2.31239,gcam-v7.0 -SSP1,Southeast Asia,2060,2.47955,gcam-v7.0 -SSP1,Southeast Asia,2065,2.65172,gcam-v7.0 -SSP1,Southeast Asia,2070,2.82899,gcam-v7.0 -SSP1,Southeast Asia,2075,3.00848,gcam-v7.0 -SSP1,Southeast Asia,2080,3.196,gcam-v7.0 -SSP1,Southeast Asia,2085,3.38889,gcam-v7.0 -SSP1,Southeast Asia,2090,3.58762,gcam-v7.0 -SSP1,Southeast Asia,2095,3.79264,gcam-v7.0 -SSP1,Southeast Asia,2100,4.00228,gcam-v7.0 -SSP1,Taiwan,1975,0,gcam-v7.0 -SSP1,Taiwan,1990,0,gcam-v7.0 -SSP1,Taiwan,2005,0,gcam-v7.0 -SSP1,Taiwan,2010,0,gcam-v7.0 -SSP1,Taiwan,2015,0,gcam-v7.0 -SSP1,Taiwan,2020,1.16563,gcam-v7.0 -SSP1,Taiwan,2025,1.26236,gcam-v7.0 -SSP1,Taiwan,2030,1.33544,gcam-v7.0 -SSP1,Taiwan,2035,1.40017,gcam-v7.0 -SSP1,Taiwan,2040,1.45507,gcam-v7.0 -SSP1,Taiwan,2045,1.48507,gcam-v7.0 -SSP1,Taiwan,2050,1.48899,gcam-v7.0 -SSP1,Taiwan,2055,1.47837,gcam-v7.0 -SSP1,Taiwan,2060,1.46766,gcam-v7.0 -SSP1,Taiwan,2065,1.5012,gcam-v7.0 -SSP1,Taiwan,2070,1.52868,gcam-v7.0 -SSP1,Taiwan,2075,1.54112,gcam-v7.0 -SSP1,Taiwan,2080,1.54196,gcam-v7.0 -SSP1,Taiwan,2085,1.52869,gcam-v7.0 -SSP1,Taiwan,2090,1.50709,gcam-v7.0 -SSP1,Taiwan,2095,1.47951,gcam-v7.0 -SSP1,Taiwan,2100,1.44634,gcam-v7.0 -SSP1,USA,1975,0,gcam-v7.0 -SSP1,USA,1990,0,gcam-v7.0 -SSP1,USA,2005,0,gcam-v7.0 -SSP1,USA,2010,0,gcam-v7.0 -SSP1,USA,2015,0,gcam-v7.0 -SSP1,USA,2020,1.1061,gcam-v7.0 -SSP1,USA,2025,1.21373,gcam-v7.0 -SSP1,USA,2030,1.31297,gcam-v7.0 -SSP1,USA,2035,1.39734,gcam-v7.0 -SSP1,USA,2040,1.47088,gcam-v7.0 -SSP1,USA,2045,1.52981,gcam-v7.0 -SSP1,USA,2050,1.58817,gcam-v7.0 -SSP1,USA,2055,1.65064,gcam-v7.0 -SSP1,USA,2060,1.71653,gcam-v7.0 -SSP1,USA,2065,1.78076,gcam-v7.0 -SSP1,USA,2070,1.84963,gcam-v7.0 -SSP1,USA,2075,1.92466,gcam-v7.0 -SSP1,USA,2080,2.0015,gcam-v7.0 -SSP1,USA,2085,2.08698,gcam-v7.0 -SSP1,USA,2090,2.18025,gcam-v7.0 -SSP1,USA,2095,2.28246,gcam-v7.0 -SSP1,USA,2100,2.39386,gcam-v7.0 -SSP2,Africa_Eastern,1975,0,gcam-v7.0 -SSP2,Africa_Eastern,1990,0,gcam-v7.0 -SSP2,Africa_Eastern,2005,0,gcam-v7.0 -SSP2,Africa_Eastern,2010,0,gcam-v7.0 -SSP2,Africa_Eastern,2015,0,gcam-v7.0 -SSP2,Africa_Eastern,2020,1.15697,gcam-v7.0 -SSP2,Africa_Eastern,2025,1.34647,gcam-v7.0 -SSP2,Africa_Eastern,2030,1.5309,gcam-v7.0 -SSP2,Africa_Eastern,2035,1.69835,gcam-v7.0 -SSP2,Africa_Eastern,2040,1.86285,gcam-v7.0 -SSP2,Africa_Eastern,2045,2.02294,gcam-v7.0 -SSP2,Africa_Eastern,2050,2.19182,gcam-v7.0 -SSP2,Africa_Eastern,2055,2.38528,gcam-v7.0 -SSP2,Africa_Eastern,2060,2.60334,gcam-v7.0 -SSP2,Africa_Eastern,2065,2.85429,gcam-v7.0 -SSP2,Africa_Eastern,2070,3.14173,gcam-v7.0 -SSP2,Africa_Eastern,2075,3.46268,gcam-v7.0 -SSP2,Africa_Eastern,2080,3.81826,gcam-v7.0 -SSP2,Africa_Eastern,2085,4.20693,gcam-v7.0 -SSP2,Africa_Eastern,2090,4.63115,gcam-v7.0 -SSP2,Africa_Eastern,2095,5.09491,gcam-v7.0 -SSP2,Africa_Eastern,2100,5.60196,gcam-v7.0 -SSP2,Africa_Northern,1975,0,gcam-v7.0 -SSP2,Africa_Northern,1990,0,gcam-v7.0 -SSP2,Africa_Northern,2005,0,gcam-v7.0 -SSP2,Africa_Northern,2010,0,gcam-v7.0 -SSP2,Africa_Northern,2015,0,gcam-v7.0 -SSP2,Africa_Northern,2020,1.12177,gcam-v7.0 -SSP2,Africa_Northern,2025,1.28619,gcam-v7.0 -SSP2,Africa_Northern,2030,1.43041,gcam-v7.0 -SSP2,Africa_Northern,2035,1.56048,gcam-v7.0 -SSP2,Africa_Northern,2040,1.68095,gcam-v7.0 -SSP2,Africa_Northern,2045,1.80695,gcam-v7.0 -SSP2,Africa_Northern,2050,1.94235,gcam-v7.0 -SSP2,Africa_Northern,2055,2.08809,gcam-v7.0 -SSP2,Africa_Northern,2060,2.24916,gcam-v7.0 -SSP2,Africa_Northern,2065,2.42217,gcam-v7.0 -SSP2,Africa_Northern,2070,2.60279,gcam-v7.0 -SSP2,Africa_Northern,2075,2.7923,gcam-v7.0 -SSP2,Africa_Northern,2080,2.98457,gcam-v7.0 -SSP2,Africa_Northern,2085,3.18102,gcam-v7.0 -SSP2,Africa_Northern,2090,3.38383,gcam-v7.0 -SSP2,Africa_Northern,2095,3.58922,gcam-v7.0 -SSP2,Africa_Northern,2100,3.80329,gcam-v7.0 -SSP2,Africa_Southern,1975,0,gcam-v7.0 -SSP2,Africa_Southern,1990,0,gcam-v7.0 -SSP2,Africa_Southern,2005,0,gcam-v7.0 -SSP2,Africa_Southern,2010,0,gcam-v7.0 -SSP2,Africa_Southern,2015,0,gcam-v7.0 -SSP2,Africa_Southern,2020,1.15314,gcam-v7.0 -SSP2,Africa_Southern,2025,1.33705,gcam-v7.0 -SSP2,Africa_Southern,2030,1.50044,gcam-v7.0 -SSP2,Africa_Southern,2035,1.6531,gcam-v7.0 -SSP2,Africa_Southern,2040,1.83669,gcam-v7.0 -SSP2,Africa_Southern,2045,2.04925,gcam-v7.0 -SSP2,Africa_Southern,2050,2.29023,gcam-v7.0 -SSP2,Africa_Southern,2055,2.56145,gcam-v7.0 -SSP2,Africa_Southern,2060,2.85613,gcam-v7.0 -SSP2,Africa_Southern,2065,3.18412,gcam-v7.0 -SSP2,Africa_Southern,2070,3.5491,gcam-v7.0 -SSP2,Africa_Southern,2075,3.94967,gcam-v7.0 -SSP2,Africa_Southern,2080,4.38897,gcam-v7.0 -SSP2,Africa_Southern,2085,4.87354,gcam-v7.0 -SSP2,Africa_Southern,2090,5.41023,gcam-v7.0 -SSP2,Africa_Southern,2095,6.00505,gcam-v7.0 -SSP2,Africa_Southern,2100,6.67739,gcam-v7.0 -SSP2,Africa_Western,1975,0,gcam-v7.0 -SSP2,Africa_Western,1990,0,gcam-v7.0 -SSP2,Africa_Western,2005,0,gcam-v7.0 -SSP2,Africa_Western,2010,0,gcam-v7.0 -SSP2,Africa_Western,2015,0,gcam-v7.0 -SSP2,Africa_Western,2020,1.19788,gcam-v7.0 -SSP2,Africa_Western,2025,1.41155,gcam-v7.0 -SSP2,Africa_Western,2030,1.59023,gcam-v7.0 -SSP2,Africa_Western,2035,1.74457,gcam-v7.0 -SSP2,Africa_Western,2040,1.93111,gcam-v7.0 -SSP2,Africa_Western,2045,2.12415,gcam-v7.0 -SSP2,Africa_Western,2050,2.34311,gcam-v7.0 -SSP2,Africa_Western,2055,2.59205,gcam-v7.0 -SSP2,Africa_Western,2060,2.86609,gcam-v7.0 -SSP2,Africa_Western,2065,3.17322,gcam-v7.0 -SSP2,Africa_Western,2070,3.5168,gcam-v7.0 -SSP2,Africa_Western,2075,3.90066,gcam-v7.0 -SSP2,Africa_Western,2080,4.3241,gcam-v7.0 -SSP2,Africa_Western,2085,4.78503,gcam-v7.0 -SSP2,Africa_Western,2090,5.28503,gcam-v7.0 -SSP2,Africa_Western,2095,5.83048,gcam-v7.0 -SSP2,Africa_Western,2100,6.42393,gcam-v7.0 -SSP2,Argentina,1975,0,gcam-v7.0 -SSP2,Argentina,1990,0,gcam-v7.0 -SSP2,Argentina,2005,0,gcam-v7.0 -SSP2,Argentina,2010,0,gcam-v7.0 -SSP2,Argentina,2015,0,gcam-v7.0 -SSP2,Argentina,2020,1.07503,gcam-v7.0 -SSP2,Argentina,2025,1.19326,gcam-v7.0 -SSP2,Argentina,2030,1.29766,gcam-v7.0 -SSP2,Argentina,2035,1.40378,gcam-v7.0 -SSP2,Argentina,2040,1.51518,gcam-v7.0 -SSP2,Argentina,2045,1.63515,gcam-v7.0 -SSP2,Argentina,2050,1.7558,gcam-v7.0 -SSP2,Argentina,2055,1.8835,gcam-v7.0 -SSP2,Argentina,2060,2.02065,gcam-v7.0 -SSP2,Argentina,2065,2.1635,gcam-v7.0 -SSP2,Argentina,2070,2.31259,gcam-v7.0 -SSP2,Argentina,2075,2.46939,gcam-v7.0 -SSP2,Argentina,2080,2.63426,gcam-v7.0 -SSP2,Argentina,2085,2.80749,gcam-v7.0 -SSP2,Argentina,2090,2.9883,gcam-v7.0 -SSP2,Argentina,2095,3.17914,gcam-v7.0 -SSP2,Argentina,2100,3.38178,gcam-v7.0 -SSP2,Australia_NZ,1975,0,gcam-v7.0 -SSP2,Australia_NZ,1990,0,gcam-v7.0 -SSP2,Australia_NZ,2005,0,gcam-v7.0 -SSP2,Australia_NZ,2010,0,gcam-v7.0 -SSP2,Australia_NZ,2015,0,gcam-v7.0 -SSP2,Australia_NZ,2020,1.12815,gcam-v7.0 -SSP2,Australia_NZ,2025,1.20796,gcam-v7.0 -SSP2,Australia_NZ,2030,1.27444,gcam-v7.0 -SSP2,Australia_NZ,2035,1.33583,gcam-v7.0 -SSP2,Australia_NZ,2040,1.4058,gcam-v7.0 -SSP2,Australia_NZ,2045,1.47474,gcam-v7.0 -SSP2,Australia_NZ,2050,1.5496,gcam-v7.0 -SSP2,Australia_NZ,2055,1.6348,gcam-v7.0 -SSP2,Australia_NZ,2060,1.72417,gcam-v7.0 -SSP2,Australia_NZ,2065,1.81773,gcam-v7.0 -SSP2,Australia_NZ,2070,1.91654,gcam-v7.0 -SSP2,Australia_NZ,2075,2.02685,gcam-v7.0 -SSP2,Australia_NZ,2080,2.14773,gcam-v7.0 -SSP2,Australia_NZ,2085,2.27962,gcam-v7.0 -SSP2,Australia_NZ,2090,2.42185,gcam-v7.0 -SSP2,Australia_NZ,2095,2.57167,gcam-v7.0 -SSP2,Australia_NZ,2100,2.72967,gcam-v7.0 -SSP2,Brazil,1975,0,gcam-v7.0 -SSP2,Brazil,1990,0,gcam-v7.0 -SSP2,Brazil,2005,0,gcam-v7.0 -SSP2,Brazil,2010,0,gcam-v7.0 -SSP2,Brazil,2015,0,gcam-v7.0 -SSP2,Brazil,2020,1.12952,gcam-v7.0 -SSP2,Brazil,2025,1.26159,gcam-v7.0 -SSP2,Brazil,2030,1.3799,gcam-v7.0 -SSP2,Brazil,2035,1.49033,gcam-v7.0 -SSP2,Brazil,2040,1.60817,gcam-v7.0 -SSP2,Brazil,2045,1.73608,gcam-v7.0 -SSP2,Brazil,2050,1.8753,gcam-v7.0 -SSP2,Brazil,2055,2.02311,gcam-v7.0 -SSP2,Brazil,2060,2.17976,gcam-v7.0 -SSP2,Brazil,2065,2.35405,gcam-v7.0 -SSP2,Brazil,2070,2.54516,gcam-v7.0 -SSP2,Brazil,2075,2.73664,gcam-v7.0 -SSP2,Brazil,2080,2.93979,gcam-v7.0 -SSP2,Brazil,2085,3.15852,gcam-v7.0 -SSP2,Brazil,2090,3.39238,gcam-v7.0 -SSP2,Brazil,2095,3.63869,gcam-v7.0 -SSP2,Brazil,2100,3.89967,gcam-v7.0 -SSP2,Canada,1975,0,gcam-v7.0 -SSP2,Canada,1990,0,gcam-v7.0 -SSP2,Canada,2005,0,gcam-v7.0 -SSP2,Canada,2010,0,gcam-v7.0 -SSP2,Canada,2015,0,gcam-v7.0 -SSP2,Canada,2020,1.07092,gcam-v7.0 -SSP2,Canada,2025,1.14267,gcam-v7.0 -SSP2,Canada,2030,1.20718,gcam-v7.0 -SSP2,Canada,2035,1.27298,gcam-v7.0 -SSP2,Canada,2040,1.33429,gcam-v7.0 -SSP2,Canada,2045,1.40375,gcam-v7.0 -SSP2,Canada,2050,1.48143,gcam-v7.0 -SSP2,Canada,2055,1.57174,gcam-v7.0 -SSP2,Canada,2060,1.67726,gcam-v7.0 -SSP2,Canada,2065,1.78613,gcam-v7.0 -SSP2,Canada,2070,1.89133,gcam-v7.0 -SSP2,Canada,2075,2.00968,gcam-v7.0 -SSP2,Canada,2080,2.1402,gcam-v7.0 -SSP2,Canada,2085,2.28455,gcam-v7.0 -SSP2,Canada,2090,2.44078,gcam-v7.0 -SSP2,Canada,2095,2.60588,gcam-v7.0 -SSP2,Canada,2100,2.77983,gcam-v7.0 -SSP2,Central America and Caribbean,1975,0,gcam-v7.0 -SSP2,Central America and Caribbean,1990,0,gcam-v7.0 -SSP2,Central America and Caribbean,2005,0,gcam-v7.0 -SSP2,Central America and Caribbean,2010,0,gcam-v7.0 -SSP2,Central America and Caribbean,2015,0,gcam-v7.0 -SSP2,Central America and Caribbean,2020,1.08029,gcam-v7.0 -SSP2,Central America and Caribbean,2025,1.16807,gcam-v7.0 -SSP2,Central America and Caribbean,2030,1.26303,gcam-v7.0 -SSP2,Central America and Caribbean,2035,1.35692,gcam-v7.0 -SSP2,Central America and Caribbean,2040,1.45042,gcam-v7.0 -SSP2,Central America and Caribbean,2045,1.53835,gcam-v7.0 -SSP2,Central America and Caribbean,2050,1.63104,gcam-v7.0 -SSP2,Central America and Caribbean,2055,1.7336,gcam-v7.0 -SSP2,Central America and Caribbean,2060,1.84743,gcam-v7.0 -SSP2,Central America and Caribbean,2065,1.97186,gcam-v7.0 -SSP2,Central America and Caribbean,2070,2.10853,gcam-v7.0 -SSP2,Central America and Caribbean,2075,2.25717,gcam-v7.0 -SSP2,Central America and Caribbean,2080,2.41812,gcam-v7.0 -SSP2,Central America and Caribbean,2085,2.59352,gcam-v7.0 -SSP2,Central America and Caribbean,2090,2.78239,gcam-v7.0 -SSP2,Central America and Caribbean,2095,2.98516,gcam-v7.0 -SSP2,Central America and Caribbean,2100,3.20298,gcam-v7.0 -SSP2,Central Asia,1975,0,gcam-v7.0 -SSP2,Central Asia,1990,0,gcam-v7.0 -SSP2,Central Asia,2005,0,gcam-v7.0 -SSP2,Central Asia,2010,0,gcam-v7.0 -SSP2,Central Asia,2015,0,gcam-v7.0 -SSP2,Central Asia,2020,1.16652,gcam-v7.0 -SSP2,Central Asia,2025,1.39367,gcam-v7.0 -SSP2,Central Asia,2030,1.57746,gcam-v7.0 -SSP2,Central Asia,2035,1.74732,gcam-v7.0 -SSP2,Central Asia,2040,1.91418,gcam-v7.0 -SSP2,Central Asia,2045,2.06375,gcam-v7.0 -SSP2,Central Asia,2050,2.20369,gcam-v7.0 -SSP2,Central Asia,2055,2.3449,gcam-v7.0 -SSP2,Central Asia,2060,2.49597,gcam-v7.0 -SSP2,Central Asia,2065,2.66031,gcam-v7.0 -SSP2,Central Asia,2070,2.83292,gcam-v7.0 -SSP2,Central Asia,2075,3.01548,gcam-v7.0 -SSP2,Central Asia,2080,3.21259,gcam-v7.0 -SSP2,Central Asia,2085,3.41986,gcam-v7.0 -SSP2,Central Asia,2090,3.63515,gcam-v7.0 -SSP2,Central Asia,2095,3.85759,gcam-v7.0 -SSP2,Central Asia,2100,4.076,gcam-v7.0 -SSP2,China,1975,0,gcam-v7.0 -SSP2,China,1990,0,gcam-v7.0 -SSP2,China,2005,0,gcam-v7.0 -SSP2,China,2010,0,gcam-v7.0 -SSP2,China,2015,0,gcam-v7.0 -SSP2,China,2020,1.35979,gcam-v7.0 -SSP2,China,2025,1.68579,gcam-v7.0 -SSP2,China,2030,1.98319,gcam-v7.0 -SSP2,China,2035,2.27489,gcam-v7.0 -SSP2,China,2040,2.56216,gcam-v7.0 -SSP2,China,2045,2.80293,gcam-v7.0 -SSP2,China,2050,3.04218,gcam-v7.0 -SSP2,China,2055,3.31364,gcam-v7.0 -SSP2,China,2060,3.57712,gcam-v7.0 -SSP2,China,2065,3.83767,gcam-v7.0 -SSP2,China,2070,4.08268,gcam-v7.0 -SSP2,China,2075,4.33016,gcam-v7.0 -SSP2,China,2080,4.56429,gcam-v7.0 -SSP2,China,2085,4.79876,gcam-v7.0 -SSP2,China,2090,5.02435,gcam-v7.0 -SSP2,China,2095,5.24486,gcam-v7.0 -SSP2,China,2100,5.45903,gcam-v7.0 -SSP2,Colombia,1975,0,gcam-v7.0 -SSP2,Colombia,1990,0,gcam-v7.0 -SSP2,Colombia,2005,0,gcam-v7.0 -SSP2,Colombia,2010,0,gcam-v7.0 -SSP2,Colombia,2015,0,gcam-v7.0 -SSP2,Colombia,2020,1.13604,gcam-v7.0 -SSP2,Colombia,2025,1.21876,gcam-v7.0 -SSP2,Colombia,2030,1.32288,gcam-v7.0 -SSP2,Colombia,2035,1.4315,gcam-v7.0 -SSP2,Colombia,2040,1.5461,gcam-v7.0 -SSP2,Colombia,2045,1.67396,gcam-v7.0 -SSP2,Colombia,2050,1.81307,gcam-v7.0 -SSP2,Colombia,2055,1.96378,gcam-v7.0 -SSP2,Colombia,2060,2.12943,gcam-v7.0 -SSP2,Colombia,2065,2.30749,gcam-v7.0 -SSP2,Colombia,2070,2.49882,gcam-v7.0 -SSP2,Colombia,2075,2.70513,gcam-v7.0 -SSP2,Colombia,2080,2.92447,gcam-v7.0 -SSP2,Colombia,2085,3.15929,gcam-v7.0 -SSP2,Colombia,2090,3.40865,gcam-v7.0 -SSP2,Colombia,2095,3.67191,gcam-v7.0 -SSP2,Colombia,2100,3.9502,gcam-v7.0 -SSP2,EU-12,1975,0,gcam-v7.0 -SSP2,EU-12,1990,0,gcam-v7.0 -SSP2,EU-12,2005,0,gcam-v7.0 -SSP2,EU-12,2010,0,gcam-v7.0 -SSP2,EU-12,2015,0,gcam-v7.0 -SSP2,EU-12,2020,1.12744,gcam-v7.0 -SSP2,EU-12,2025,1.26294,gcam-v7.0 -SSP2,EU-12,2030,1.37821,gcam-v7.0 -SSP2,EU-12,2035,1.49772,gcam-v7.0 -SSP2,EU-12,2040,1.62502,gcam-v7.0 -SSP2,EU-12,2045,1.76288,gcam-v7.0 -SSP2,EU-12,2050,1.90619,gcam-v7.0 -SSP2,EU-12,2055,2.05624,gcam-v7.0 -SSP2,EU-12,2060,2.20351,gcam-v7.0 -SSP2,EU-12,2065,2.34626,gcam-v7.0 -SSP2,EU-12,2070,2.48929,gcam-v7.0 -SSP2,EU-12,2075,2.64864,gcam-v7.0 -SSP2,EU-12,2080,2.82203,gcam-v7.0 -SSP2,EU-12,2085,3.00475,gcam-v7.0 -SSP2,EU-12,2090,3.19364,gcam-v7.0 -SSP2,EU-12,2095,3.38675,gcam-v7.0 -SSP2,EU-12,2100,3.58362,gcam-v7.0 -SSP2,EU-15,1975,0,gcam-v7.0 -SSP2,EU-15,1990,0,gcam-v7.0 -SSP2,EU-15,2005,0,gcam-v7.0 -SSP2,EU-15,2010,0,gcam-v7.0 -SSP2,EU-15,2015,0,gcam-v7.0 -SSP2,EU-15,2020,1.07261,gcam-v7.0 -SSP2,EU-15,2025,1.1437,gcam-v7.0 -SSP2,EU-15,2030,1.22345,gcam-v7.0 -SSP2,EU-15,2035,1.31254,gcam-v7.0 -SSP2,EU-15,2040,1.40528,gcam-v7.0 -SSP2,EU-15,2045,1.49626,gcam-v7.0 -SSP2,EU-15,2050,1.58776,gcam-v7.0 -SSP2,EU-15,2055,1.68393,gcam-v7.0 -SSP2,EU-15,2060,1.78061,gcam-v7.0 -SSP2,EU-15,2065,1.87896,gcam-v7.0 -SSP2,EU-15,2070,1.98222,gcam-v7.0 -SSP2,EU-15,2075,2.09565,gcam-v7.0 -SSP2,EU-15,2080,2.21542,gcam-v7.0 -SSP2,EU-15,2085,2.34194,gcam-v7.0 -SSP2,EU-15,2090,2.47467,gcam-v7.0 -SSP2,EU-15,2095,2.61415,gcam-v7.0 -SSP2,EU-15,2100,2.76199,gcam-v7.0 -SSP2,Europe_Eastern,1975,0,gcam-v7.0 -SSP2,Europe_Eastern,1990,0,gcam-v7.0 -SSP2,Europe_Eastern,2005,0,gcam-v7.0 -SSP2,Europe_Eastern,2010,0,gcam-v7.0 -SSP2,Europe_Eastern,2015,0,gcam-v7.0 -SSP2,Europe_Eastern,2020,1.04234,gcam-v7.0 -SSP2,Europe_Eastern,2025,1.16365,gcam-v7.0 -SSP2,Europe_Eastern,2030,1.26606,gcam-v7.0 -SSP2,Europe_Eastern,2035,1.36336,gcam-v7.0 -SSP2,Europe_Eastern,2040,1.45021,gcam-v7.0 -SSP2,Europe_Eastern,2045,1.53968,gcam-v7.0 -SSP2,Europe_Eastern,2050,1.63887,gcam-v7.0 -SSP2,Europe_Eastern,2055,1.74747,gcam-v7.0 -SSP2,Europe_Eastern,2060,1.8687,gcam-v7.0 -SSP2,Europe_Eastern,2065,2.00573,gcam-v7.0 -SSP2,Europe_Eastern,2070,2.16599,gcam-v7.0 -SSP2,Europe_Eastern,2075,2.40348,gcam-v7.0 -SSP2,Europe_Eastern,2080,2.58567,gcam-v7.0 -SSP2,Europe_Eastern,2085,2.78021,gcam-v7.0 -SSP2,Europe_Eastern,2090,2.98119,gcam-v7.0 -SSP2,Europe_Eastern,2095,3.18417,gcam-v7.0 -SSP2,Europe_Eastern,2100,3.3907,gcam-v7.0 -SSP2,Europe_Non_EU,1975,0,gcam-v7.0 -SSP2,Europe_Non_EU,1990,0,gcam-v7.0 -SSP2,Europe_Non_EU,2005,0,gcam-v7.0 -SSP2,Europe_Non_EU,2010,0,gcam-v7.0 -SSP2,Europe_Non_EU,2015,0,gcam-v7.0 -SSP2,Europe_Non_EU,2020,1.11458,gcam-v7.0 -SSP2,Europe_Non_EU,2025,1.20566,gcam-v7.0 -SSP2,Europe_Non_EU,2030,1.28944,gcam-v7.0 -SSP2,Europe_Non_EU,2035,1.37133,gcam-v7.0 -SSP2,Europe_Non_EU,2040,1.46063,gcam-v7.0 -SSP2,Europe_Non_EU,2045,1.55228,gcam-v7.0 -SSP2,Europe_Non_EU,2050,1.64844,gcam-v7.0 -SSP2,Europe_Non_EU,2055,1.74763,gcam-v7.0 -SSP2,Europe_Non_EU,2060,1.85389,gcam-v7.0 -SSP2,Europe_Non_EU,2065,1.96639,gcam-v7.0 -SSP2,Europe_Non_EU,2070,2.08078,gcam-v7.0 -SSP2,Europe_Non_EU,2075,2.20201,gcam-v7.0 -SSP2,Europe_Non_EU,2080,2.32894,gcam-v7.0 -SSP2,Europe_Non_EU,2085,2.46248,gcam-v7.0 -SSP2,Europe_Non_EU,2090,2.60264,gcam-v7.0 -SSP2,Europe_Non_EU,2095,2.75097,gcam-v7.0 -SSP2,Europe_Non_EU,2100,2.90704,gcam-v7.0 -SSP2,European Free Trade Association,1975,0,gcam-v7.0 -SSP2,European Free Trade Association,1990,0,gcam-v7.0 -SSP2,European Free Trade Association,2005,0,gcam-v7.0 -SSP2,European Free Trade Association,2010,0,gcam-v7.0 -SSP2,European Free Trade Association,2015,0,gcam-v7.0 -SSP2,European Free Trade Association,2020,1.08609,gcam-v7.0 -SSP2,European Free Trade Association,2025,1.16109,gcam-v7.0 -SSP2,European Free Trade Association,2030,1.24147,gcam-v7.0 -SSP2,European Free Trade Association,2035,1.3239,gcam-v7.0 -SSP2,European Free Trade Association,2040,1.41006,gcam-v7.0 -SSP2,European Free Trade Association,2045,1.48882,gcam-v7.0 -SSP2,European Free Trade Association,2050,1.58206,gcam-v7.0 -SSP2,European Free Trade Association,2055,1.68595,gcam-v7.0 -SSP2,European Free Trade Association,2060,1.7975,gcam-v7.0 -SSP2,European Free Trade Association,2065,1.9113,gcam-v7.0 -SSP2,European Free Trade Association,2070,2.028,gcam-v7.0 -SSP2,European Free Trade Association,2075,2.15339,gcam-v7.0 -SSP2,European Free Trade Association,2080,2.29016,gcam-v7.0 -SSP2,European Free Trade Association,2085,2.43991,gcam-v7.0 -SSP2,European Free Trade Association,2090,2.60111,gcam-v7.0 -SSP2,European Free Trade Association,2095,2.77118,gcam-v7.0 -SSP2,European Free Trade Association,2100,2.94769,gcam-v7.0 -SSP2,India,1975,0,gcam-v7.0 -SSP2,India,1990,0,gcam-v7.0 -SSP2,India,2005,0,gcam-v7.0 -SSP2,India,2010,0,gcam-v7.0 -SSP2,India,2015,0,gcam-v7.0 -SSP2,India,2020,1.20212,gcam-v7.0 -SSP2,India,2025,1.39825,gcam-v7.0 -SSP2,India,2030,1.56589,gcam-v7.0 -SSP2,India,2035,1.71657,gcam-v7.0 -SSP2,India,2040,1.871,gcam-v7.0 -SSP2,India,2045,2.02999,gcam-v7.0 -SSP2,India,2050,2.20276,gcam-v7.0 -SSP2,India,2055,2.39597,gcam-v7.0 -SSP2,India,2060,2.60925,gcam-v7.0 -SSP2,India,2065,2.83897,gcam-v7.0 -SSP2,India,2070,3.0866,gcam-v7.0 -SSP2,India,2075,3.35103,gcam-v7.0 -SSP2,India,2080,3.62878,gcam-v7.0 -SSP2,India,2085,3.9183,gcam-v7.0 -SSP2,India,2090,4.21918,gcam-v7.0 -SSP2,India,2095,4.53302,gcam-v7.0 -SSP2,India,2100,4.8601,gcam-v7.0 -SSP2,Indonesia,1975,0,gcam-v7.0 -SSP2,Indonesia,1990,0,gcam-v7.0 -SSP2,Indonesia,2005,0,gcam-v7.0 -SSP2,Indonesia,2010,0,gcam-v7.0 -SSP2,Indonesia,2015,0,gcam-v7.0 -SSP2,Indonesia,2020,1.21956,gcam-v7.0 -SSP2,Indonesia,2025,1.46855,gcam-v7.0 -SSP2,Indonesia,2030,1.68754,gcam-v7.0 -SSP2,Indonesia,2035,1.89894,gcam-v7.0 -SSP2,Indonesia,2040,2.12557,gcam-v7.0 -SSP2,Indonesia,2045,2.3582,gcam-v7.0 -SSP2,Indonesia,2050,2.60358,gcam-v7.0 -SSP2,Indonesia,2055,2.86203,gcam-v7.0 -SSP2,Indonesia,2060,3.13622,gcam-v7.0 -SSP2,Indonesia,2065,3.42586,gcam-v7.0 -SSP2,Indonesia,2070,3.74304,gcam-v7.0 -SSP2,Indonesia,2075,4.07454,gcam-v7.0 -SSP2,Indonesia,2080,4.41813,gcam-v7.0 -SSP2,Indonesia,2085,4.77637,gcam-v7.0 -SSP2,Indonesia,2090,5.14836,gcam-v7.0 -SSP2,Indonesia,2095,5.53254,gcam-v7.0 -SSP2,Indonesia,2100,5.93,gcam-v7.0 -SSP2,Japan,1975,0,gcam-v7.0 -SSP2,Japan,1990,0,gcam-v7.0 -SSP2,Japan,2005,0,gcam-v7.0 -SSP2,Japan,2010,0,gcam-v7.0 -SSP2,Japan,2015,0,gcam-v7.0 -SSP2,Japan,2020,1.05561,gcam-v7.0 -SSP2,Japan,2025,1.11619,gcam-v7.0 -SSP2,Japan,2030,1.17994,gcam-v7.0 -SSP2,Japan,2035,1.24411,gcam-v7.0 -SSP2,Japan,2040,1.32829,gcam-v7.0 -SSP2,Japan,2045,1.40661,gcam-v7.0 -SSP2,Japan,2050,1.48299,gcam-v7.0 -SSP2,Japan,2055,1.56151,gcam-v7.0 -SSP2,Japan,2060,1.64151,gcam-v7.0 -SSP2,Japan,2065,1.72572,gcam-v7.0 -SSP2,Japan,2070,1.81438,gcam-v7.0 -SSP2,Japan,2075,1.90913,gcam-v7.0 -SSP2,Japan,2080,2.01019,gcam-v7.0 -SSP2,Japan,2085,2.11189,gcam-v7.0 -SSP2,Japan,2090,2.21547,gcam-v7.0 -SSP2,Japan,2095,2.32345,gcam-v7.0 -SSP2,Japan,2100,2.43752,gcam-v7.0 -SSP2,Mexico,1975,0,gcam-v7.0 -SSP2,Mexico,1990,0,gcam-v7.0 -SSP2,Mexico,2005,0,gcam-v7.0 -SSP2,Mexico,2010,0,gcam-v7.0 -SSP2,Mexico,2015,0,gcam-v7.0 -SSP2,Mexico,2020,1.0609,gcam-v7.0 -SSP2,Mexico,2025,1.14865,gcam-v7.0 -SSP2,Mexico,2030,1.24251,gcam-v7.0 -SSP2,Mexico,2035,1.34782,gcam-v7.0 -SSP2,Mexico,2040,1.44645,gcam-v7.0 -SSP2,Mexico,2045,1.54025,gcam-v7.0 -SSP2,Mexico,2050,1.62786,gcam-v7.0 -SSP2,Mexico,2055,1.72386,gcam-v7.0 -SSP2,Mexico,2060,1.82839,gcam-v7.0 -SSP2,Mexico,2065,1.93648,gcam-v7.0 -SSP2,Mexico,2070,2.05331,gcam-v7.0 -SSP2,Mexico,2075,2.17578,gcam-v7.0 -SSP2,Mexico,2080,2.30704,gcam-v7.0 -SSP2,Mexico,2085,2.4476,gcam-v7.0 -SSP2,Mexico,2090,2.59751,gcam-v7.0 -SSP2,Mexico,2095,2.75761,gcam-v7.0 -SSP2,Mexico,2100,2.929,gcam-v7.0 -SSP2,Middle East,1975,0,gcam-v7.0 -SSP2,Middle East,1990,0,gcam-v7.0 -SSP2,Middle East,2005,0,gcam-v7.0 -SSP2,Middle East,2010,0,gcam-v7.0 -SSP2,Middle East,2015,0,gcam-v7.0 -SSP2,Middle East,2020,1.16668,gcam-v7.0 -SSP2,Middle East,2025,1.3002,gcam-v7.0 -SSP2,Middle East,2030,1.46916,gcam-v7.0 -SSP2,Middle East,2035,1.61154,gcam-v7.0 -SSP2,Middle East,2040,1.76096,gcam-v7.0 -SSP2,Middle East,2045,1.89826,gcam-v7.0 -SSP2,Middle East,2050,2.03128,gcam-v7.0 -SSP2,Middle East,2055,2.15786,gcam-v7.0 -SSP2,Middle East,2060,2.28009,gcam-v7.0 -SSP2,Middle East,2065,2.41115,gcam-v7.0 -SSP2,Middle East,2070,2.55757,gcam-v7.0 -SSP2,Middle East,2075,2.71525,gcam-v7.0 -SSP2,Middle East,2080,2.88643,gcam-v7.0 -SSP2,Middle East,2085,3.07061,gcam-v7.0 -SSP2,Middle East,2090,3.26626,gcam-v7.0 -SSP2,Middle East,2095,3.48327,gcam-v7.0 -SSP2,Middle East,2100,3.72694,gcam-v7.0 -SSP2,Pakistan,1975,0,gcam-v7.0 -SSP2,Pakistan,1990,0,gcam-v7.0 -SSP2,Pakistan,2005,0,gcam-v7.0 -SSP2,Pakistan,2010,0,gcam-v7.0 -SSP2,Pakistan,2015,0,gcam-v7.0 -SSP2,Pakistan,2020,1.05714,gcam-v7.0 -SSP2,Pakistan,2025,1.15091,gcam-v7.0 -SSP2,Pakistan,2030,1.26277,gcam-v7.0 -SSP2,Pakistan,2035,1.38645,gcam-v7.0 -SSP2,Pakistan,2040,1.52512,gcam-v7.0 -SSP2,Pakistan,2045,1.68143,gcam-v7.0 -SSP2,Pakistan,2050,1.86037,gcam-v7.0 -SSP2,Pakistan,2055,2.07609,gcam-v7.0 -SSP2,Pakistan,2060,2.3207,gcam-v7.0 -SSP2,Pakistan,2065,2.6024,gcam-v7.0 -SSP2,Pakistan,2070,2.91808,gcam-v7.0 -SSP2,Pakistan,2075,3.26508,gcam-v7.0 -SSP2,Pakistan,2080,3.64058,gcam-v7.0 -SSP2,Pakistan,2085,4.0381,gcam-v7.0 -SSP2,Pakistan,2090,4.45467,gcam-v7.0 -SSP2,Pakistan,2095,4.88884,gcam-v7.0 -SSP2,Pakistan,2100,5.34187,gcam-v7.0 -SSP2,Russia,1975,0,gcam-v7.0 -SSP2,Russia,1990,0,gcam-v7.0 -SSP2,Russia,2005,0,gcam-v7.0 -SSP2,Russia,2010,0,gcam-v7.0 -SSP2,Russia,2015,0,gcam-v7.0 -SSP2,Russia,2020,1.20412,gcam-v7.0 -SSP2,Russia,2025,1.38932,gcam-v7.0 -SSP2,Russia,2030,1.56039,gcam-v7.0 -SSP2,Russia,2035,1.72939,gcam-v7.0 -SSP2,Russia,2040,1.8813,gcam-v7.0 -SSP2,Russia,2045,1.99321,gcam-v7.0 -SSP2,Russia,2050,2.11202,gcam-v7.0 -SSP2,Russia,2055,2.24019,gcam-v7.0 -SSP2,Russia,2060,2.36474,gcam-v7.0 -SSP2,Russia,2065,2.48556,gcam-v7.0 -SSP2,Russia,2070,2.62216,gcam-v7.0 -SSP2,Russia,2075,2.77222,gcam-v7.0 -SSP2,Russia,2080,2.9427,gcam-v7.0 -SSP2,Russia,2085,3.11861,gcam-v7.0 -SSP2,Russia,2090,3.29956,gcam-v7.0 -SSP2,Russia,2095,3.48465,gcam-v7.0 -SSP2,Russia,2100,3.66848,gcam-v7.0 -SSP2,South Africa,1975,0,gcam-v7.0 -SSP2,South Africa,1990,0,gcam-v7.0 -SSP2,South Africa,2005,0,gcam-v7.0 -SSP2,South Africa,2010,0,gcam-v7.0 -SSP2,South Africa,2015,0,gcam-v7.0 -SSP2,South Africa,2020,1.13993,gcam-v7.0 -SSP2,South Africa,2025,1.28859,gcam-v7.0 -SSP2,South Africa,2030,1.42529,gcam-v7.0 -SSP2,South Africa,2035,1.55375,gcam-v7.0 -SSP2,South Africa,2040,1.67761,gcam-v7.0 -SSP2,South Africa,2045,1.79336,gcam-v7.0 -SSP2,South Africa,2050,1.91458,gcam-v7.0 -SSP2,South Africa,2055,2.05078,gcam-v7.0 -SSP2,South Africa,2060,2.19558,gcam-v7.0 -SSP2,South Africa,2065,2.34763,gcam-v7.0 -SSP2,South Africa,2070,2.50954,gcam-v7.0 -SSP2,South Africa,2075,2.67839,gcam-v7.0 -SSP2,South Africa,2080,2.85638,gcam-v7.0 -SSP2,South Africa,2085,3.04104,gcam-v7.0 -SSP2,South Africa,2090,3.23509,gcam-v7.0 -SSP2,South Africa,2095,3.43733,gcam-v7.0 -SSP2,South Africa,2100,3.65175,gcam-v7.0 -SSP2,South America_Northern,1975,0,gcam-v7.0 -SSP2,South America_Northern,1990,0,gcam-v7.0 -SSP2,South America_Northern,2005,0,gcam-v7.0 -SSP2,South America_Northern,2010,0,gcam-v7.0 -SSP2,South America_Northern,2015,0,gcam-v7.0 -SSP2,South America_Northern,2020,0.933044,gcam-v7.0 -SSP2,South America_Northern,2025,0.99753,gcam-v7.0 -SSP2,South America_Northern,2030,1.04935,gcam-v7.0 -SSP2,South America_Northern,2035,1.15778,gcam-v7.0 -SSP2,South America_Northern,2040,1.25936,gcam-v7.0 -SSP2,South America_Northern,2045,1.44705,gcam-v7.0 -SSP2,South America_Northern,2050,1.65149,gcam-v7.0 -SSP2,South America_Northern,2055,1.86333,gcam-v7.0 -SSP2,South America_Northern,2060,2.0614,gcam-v7.0 -SSP2,South America_Northern,2065,2.25636,gcam-v7.0 -SSP2,South America_Northern,2070,2.45349,gcam-v7.0 -SSP2,South America_Northern,2075,2.66301,gcam-v7.0 -SSP2,South America_Northern,2080,2.893,gcam-v7.0 -SSP2,South America_Northern,2085,3.14419,gcam-v7.0 -SSP2,South America_Northern,2090,3.41966,gcam-v7.0 -SSP2,South America_Northern,2095,3.70541,gcam-v7.0 -SSP2,South America_Northern,2100,4.00576,gcam-v7.0 -SSP2,South America_Southern,1975,0,gcam-v7.0 -SSP2,South America_Southern,1990,0,gcam-v7.0 -SSP2,South America_Southern,2005,0,gcam-v7.0 -SSP2,South America_Southern,2010,0,gcam-v7.0 -SSP2,South America_Southern,2015,0,gcam-v7.0 -SSP2,South America_Southern,2020,1.1477,gcam-v7.0 -SSP2,South America_Southern,2025,1.28618,gcam-v7.0 -SSP2,South America_Southern,2030,1.40438,gcam-v7.0 -SSP2,South America_Southern,2035,1.51725,gcam-v7.0 -SSP2,South America_Southern,2040,1.63942,gcam-v7.0 -SSP2,South America_Southern,2045,1.76884,gcam-v7.0 -SSP2,South America_Southern,2050,1.90775,gcam-v7.0 -SSP2,South America_Southern,2055,2.05922,gcam-v7.0 -SSP2,South America_Southern,2060,2.22647,gcam-v7.0 -SSP2,South America_Southern,2065,2.40735,gcam-v7.0 -SSP2,South America_Southern,2070,2.60158,gcam-v7.0 -SSP2,South America_Southern,2075,2.80723,gcam-v7.0 -SSP2,South America_Southern,2080,3.02388,gcam-v7.0 -SSP2,South America_Southern,2085,3.25231,gcam-v7.0 -SSP2,South America_Southern,2090,3.49272,gcam-v7.0 -SSP2,South America_Southern,2095,3.74502,gcam-v7.0 -SSP2,South America_Southern,2100,4.01101,gcam-v7.0 -SSP2,South Asia,1975,0,gcam-v7.0 -SSP2,South Asia,1990,0,gcam-v7.0 -SSP2,South Asia,2005,0,gcam-v7.0 -SSP2,South Asia,2010,0,gcam-v7.0 -SSP2,South Asia,2015,0,gcam-v7.0 -SSP2,South Asia,2020,1.15153,gcam-v7.0 -SSP2,South Asia,2025,1.31599,gcam-v7.0 -SSP2,South Asia,2030,1.41108,gcam-v7.0 -SSP2,South Asia,2035,1.44435,gcam-v7.0 -SSP2,South Asia,2040,1.46003,gcam-v7.0 -SSP2,South Asia,2045,1.4671,gcam-v7.0 -SSP2,South Asia,2050,1.46975,gcam-v7.0 -SSP2,South Asia,2055,1.4761,gcam-v7.0 -SSP2,South Asia,2060,1.49106,gcam-v7.0 -SSP2,South Asia,2065,1.51348,gcam-v7.0 -SSP2,South Asia,2070,1.54277,gcam-v7.0 -SSP2,South Asia,2075,1.5768,gcam-v7.0 -SSP2,South Asia,2080,1.61519,gcam-v7.0 -SSP2,South Asia,2085,1.65894,gcam-v7.0 -SSP2,South Asia,2090,1.70845,gcam-v7.0 -SSP2,South Asia,2095,1.76374,gcam-v7.0 -SSP2,South Asia,2100,1.82381,gcam-v7.0 -SSP2,South Korea,1975,0,gcam-v7.0 -SSP2,South Korea,1990,0,gcam-v7.0 -SSP2,South Korea,2005,0,gcam-v7.0 -SSP2,South Korea,2010,0,gcam-v7.0 -SSP2,South Korea,2015,0,gcam-v7.0 -SSP2,South Korea,2020,1.12679,gcam-v7.0 -SSP2,South Korea,2025,1.26977,gcam-v7.0 -SSP2,South Korea,2030,1.41054,gcam-v7.0 -SSP2,South Korea,2035,1.54111,gcam-v7.0 -SSP2,South Korea,2040,1.67216,gcam-v7.0 -SSP2,South Korea,2045,1.78627,gcam-v7.0 -SSP2,South Korea,2050,1.89822,gcam-v7.0 -SSP2,South Korea,2055,2.00245,gcam-v7.0 -SSP2,South Korea,2060,2.11769,gcam-v7.0 -SSP2,South Korea,2065,2.23201,gcam-v7.0 -SSP2,South Korea,2070,2.32782,gcam-v7.0 -SSP2,South Korea,2075,2.42619,gcam-v7.0 -SSP2,South Korea,2080,2.51717,gcam-v7.0 -SSP2,South Korea,2085,2.60788,gcam-v7.0 -SSP2,South Korea,2090,2.70166,gcam-v7.0 -SSP2,South Korea,2095,2.79988,gcam-v7.0 -SSP2,South Korea,2100,2.89787,gcam-v7.0 -SSP2,Southeast Asia,1975,0,gcam-v7.0 -SSP2,Southeast Asia,1990,0,gcam-v7.0 -SSP2,Southeast Asia,2005,0,gcam-v7.0 -SSP2,Southeast Asia,2010,0,gcam-v7.0 -SSP2,Southeast Asia,2015,0,gcam-v7.0 -SSP2,Southeast Asia,2020,1.15099,gcam-v7.0 -SSP2,Southeast Asia,2025,1.30343,gcam-v7.0 -SSP2,Southeast Asia,2030,1.43028,gcam-v7.0 -SSP2,Southeast Asia,2035,1.52539,gcam-v7.0 -SSP2,Southeast Asia,2040,1.62642,gcam-v7.0 -SSP2,Southeast Asia,2045,1.71837,gcam-v7.0 -SSP2,Southeast Asia,2050,1.81364,gcam-v7.0 -SSP2,Southeast Asia,2055,1.91977,gcam-v7.0 -SSP2,Southeast Asia,2060,2.03559,gcam-v7.0 -SSP2,Southeast Asia,2065,2.15774,gcam-v7.0 -SSP2,Southeast Asia,2070,2.2889,gcam-v7.0 -SSP2,Southeast Asia,2075,2.42907,gcam-v7.0 -SSP2,Southeast Asia,2080,2.57754,gcam-v7.0 -SSP2,Southeast Asia,2085,2.73339,gcam-v7.0 -SSP2,Southeast Asia,2090,2.89547,gcam-v7.0 -SSP2,Southeast Asia,2095,3.06458,gcam-v7.0 -SSP2,Southeast Asia,2100,3.24171,gcam-v7.0 -SSP2,Taiwan,1975,0,gcam-v7.0 -SSP2,Taiwan,1990,0,gcam-v7.0 -SSP2,Taiwan,2005,0,gcam-v7.0 -SSP2,Taiwan,2010,0,gcam-v7.0 -SSP2,Taiwan,2015,0,gcam-v7.0 -SSP2,Taiwan,2020,1.15923,gcam-v7.0 -SSP2,Taiwan,2025,1.25151,gcam-v7.0 -SSP2,Taiwan,2030,1.32054,gcam-v7.0 -SSP2,Taiwan,2035,1.38255,gcam-v7.0 -SSP2,Taiwan,2040,1.44085,gcam-v7.0 -SSP2,Taiwan,2045,1.48193,gcam-v7.0 -SSP2,Taiwan,2050,1.5051,gcam-v7.0 -SSP2,Taiwan,2055,1.51703,gcam-v7.0 -SSP2,Taiwan,2060,1.53248,gcam-v7.0 -SSP2,Taiwan,2065,1.59739,gcam-v7.0 -SSP2,Taiwan,2070,1.66265,gcam-v7.0 -SSP2,Taiwan,2075,1.71974,gcam-v7.0 -SSP2,Taiwan,2080,1.76713,gcam-v7.0 -SSP2,Taiwan,2085,1.80193,gcam-v7.0 -SSP2,Taiwan,2090,1.82659,gcam-v7.0 -SSP2,Taiwan,2095,1.84326,gcam-v7.0 -SSP2,Taiwan,2100,1.85421,gcam-v7.0 -SSP2,USA,1975,0,gcam-v7.0 -SSP2,USA,1990,0,gcam-v7.0 -SSP2,USA,2005,0,gcam-v7.0 -SSP2,USA,2010,0,gcam-v7.0 -SSP2,USA,2015,0,gcam-v7.0 -SSP2,USA,2020,1.10457,gcam-v7.0 -SSP2,USA,2025,1.18932,gcam-v7.0 -SSP2,USA,2030,1.25792,gcam-v7.0 -SSP2,USA,2035,1.30993,gcam-v7.0 -SSP2,USA,2040,1.35602,gcam-v7.0 -SSP2,USA,2045,1.39364,gcam-v7.0 -SSP2,USA,2050,1.43449,gcam-v7.0 -SSP2,USA,2055,1.48018,gcam-v7.0 -SSP2,USA,2060,1.52868,gcam-v7.0 -SSP2,USA,2065,1.57426,gcam-v7.0 -SSP2,USA,2070,1.62414,gcam-v7.0 -SSP2,USA,2075,1.67902,gcam-v7.0 -SSP2,USA,2080,1.73289,gcam-v7.0 -SSP2,USA,2085,1.79028,gcam-v7.0 -SSP2,USA,2090,1.85049,gcam-v7.0 -SSP2,USA,2095,1.91309,gcam-v7.0 -SSP2,USA,2100,1.97913,gcam-v7.0 -SSP3,Africa_Eastern,1975,0,gcam-v7.0 -SSP3,Africa_Eastern,1990,0,gcam-v7.0 -SSP3,Africa_Eastern,2005,0,gcam-v7.0 -SSP3,Africa_Eastern,2010,0,gcam-v7.0 -SSP3,Africa_Eastern,2015,0,gcam-v7.0 -SSP3,Africa_Eastern,2020,1.15732,gcam-v7.0 -SSP3,Africa_Eastern,2025,1.3098,gcam-v7.0 -SSP3,Africa_Eastern,2030,1.42594,gcam-v7.0 -SSP3,Africa_Eastern,2035,1.51597,gcam-v7.0 -SSP3,Africa_Eastern,2040,1.60297,gcam-v7.0 -SSP3,Africa_Eastern,2045,1.68661,gcam-v7.0 -SSP3,Africa_Eastern,2050,1.76222,gcam-v7.0 -SSP3,Africa_Eastern,2055,1.84109,gcam-v7.0 -SSP3,Africa_Eastern,2060,1.92021,gcam-v7.0 -SSP3,Africa_Eastern,2065,2.00577,gcam-v7.0 -SSP3,Africa_Eastern,2070,2.09703,gcam-v7.0 -SSP3,Africa_Eastern,2075,2.19266,gcam-v7.0 -SSP3,Africa_Eastern,2080,2.29249,gcam-v7.0 -SSP3,Africa_Eastern,2085,2.39707,gcam-v7.0 -SSP3,Africa_Eastern,2090,2.50578,gcam-v7.0 -SSP3,Africa_Eastern,2095,2.62028,gcam-v7.0 -SSP3,Africa_Eastern,2100,2.74465,gcam-v7.0 -SSP3,Africa_Northern,1975,0,gcam-v7.0 -SSP3,Africa_Northern,1990,0,gcam-v7.0 -SSP3,Africa_Northern,2005,0,gcam-v7.0 -SSP3,Africa_Northern,2010,0,gcam-v7.0 -SSP3,Africa_Northern,2015,0,gcam-v7.0 -SSP3,Africa_Northern,2020,1.09746,gcam-v7.0 -SSP3,Africa_Northern,2025,1.24374,gcam-v7.0 -SSP3,Africa_Northern,2030,1.34843,gcam-v7.0 -SSP3,Africa_Northern,2035,1.42221,gcam-v7.0 -SSP3,Africa_Northern,2040,1.48686,gcam-v7.0 -SSP3,Africa_Northern,2045,1.54531,gcam-v7.0 -SSP3,Africa_Northern,2050,1.60161,gcam-v7.0 -SSP3,Africa_Northern,2055,1.65982,gcam-v7.0 -SSP3,Africa_Northern,2060,1.72027,gcam-v7.0 -SSP3,Africa_Northern,2065,1.80109,gcam-v7.0 -SSP3,Africa_Northern,2070,1.88515,gcam-v7.0 -SSP3,Africa_Northern,2075,1.97309,gcam-v7.0 -SSP3,Africa_Northern,2080,2.05659,gcam-v7.0 -SSP3,Africa_Northern,2085,2.13249,gcam-v7.0 -SSP3,Africa_Northern,2090,2.20777,gcam-v7.0 -SSP3,Africa_Northern,2095,2.28425,gcam-v7.0 -SSP3,Africa_Northern,2100,2.36495,gcam-v7.0 -SSP3,Africa_Southern,1975,0,gcam-v7.0 -SSP3,Africa_Southern,1990,0,gcam-v7.0 -SSP3,Africa_Southern,2005,0,gcam-v7.0 -SSP3,Africa_Southern,2010,0,gcam-v7.0 -SSP3,Africa_Southern,2015,0,gcam-v7.0 -SSP3,Africa_Southern,2020,1.1427,gcam-v7.0 -SSP3,Africa_Southern,2025,1.2927,gcam-v7.0 -SSP3,Africa_Southern,2030,1.39654,gcam-v7.0 -SSP3,Africa_Southern,2035,1.46252,gcam-v7.0 -SSP3,Africa_Southern,2040,1.5401,gcam-v7.0 -SSP3,Africa_Southern,2045,1.62892,gcam-v7.0 -SSP3,Africa_Southern,2050,1.72532,gcam-v7.0 -SSP3,Africa_Southern,2055,1.83201,gcam-v7.0 -SSP3,Africa_Southern,2060,1.94315,gcam-v7.0 -SSP3,Africa_Southern,2065,2.06151,gcam-v7.0 -SSP3,Africa_Southern,2070,2.18827,gcam-v7.0 -SSP3,Africa_Southern,2075,2.31764,gcam-v7.0 -SSP3,Africa_Southern,2080,2.448,gcam-v7.0 -SSP3,Africa_Southern,2085,2.57982,gcam-v7.0 -SSP3,Africa_Southern,2090,2.71345,gcam-v7.0 -SSP3,Africa_Southern,2095,2.84917,gcam-v7.0 -SSP3,Africa_Southern,2100,3.00556,gcam-v7.0 -SSP3,Africa_Western,1975,0,gcam-v7.0 -SSP3,Africa_Western,1990,0,gcam-v7.0 -SSP3,Africa_Western,2005,0,gcam-v7.0 -SSP3,Africa_Western,2010,0,gcam-v7.0 -SSP3,Africa_Western,2015,0,gcam-v7.0 -SSP3,Africa_Western,2020,1.17888,gcam-v7.0 -SSP3,Africa_Western,2025,1.35309,gcam-v7.0 -SSP3,Africa_Western,2030,1.45603,gcam-v7.0 -SSP3,Africa_Western,2035,1.52142,gcam-v7.0 -SSP3,Africa_Western,2040,1.59805,gcam-v7.0 -SSP3,Africa_Western,2045,1.67163,gcam-v7.0 -SSP3,Africa_Western,2050,1.7478,gcam-v7.0 -SSP3,Africa_Western,2055,1.833,gcam-v7.0 -SSP3,Africa_Western,2060,1.92592,gcam-v7.0 -SSP3,Africa_Western,2065,2.0245,gcam-v7.0 -SSP3,Africa_Western,2070,2.13481,gcam-v7.0 -SSP3,Africa_Western,2075,2.25526,gcam-v7.0 -SSP3,Africa_Western,2080,2.38432,gcam-v7.0 -SSP3,Africa_Western,2085,2.51573,gcam-v7.0 -SSP3,Africa_Western,2090,2.65003,gcam-v7.0 -SSP3,Africa_Western,2095,2.79075,gcam-v7.0 -SSP3,Africa_Western,2100,2.94203,gcam-v7.0 -SSP3,Argentina,1975,0,gcam-v7.0 -SSP3,Argentina,1990,0,gcam-v7.0 -SSP3,Argentina,2005,0,gcam-v7.0 -SSP3,Argentina,2010,0,gcam-v7.0 -SSP3,Argentina,2015,0,gcam-v7.0 -SSP3,Argentina,2020,1.06419,gcam-v7.0 -SSP3,Argentina,2025,1.15878,gcam-v7.0 -SSP3,Argentina,2030,1.21815,gcam-v7.0 -SSP3,Argentina,2035,1.26172,gcam-v7.0 -SSP3,Argentina,2040,1.30092,gcam-v7.0 -SSP3,Argentina,2045,1.33914,gcam-v7.0 -SSP3,Argentina,2050,1.37242,gcam-v7.0 -SSP3,Argentina,2055,1.40824,gcam-v7.0 -SSP3,Argentina,2060,1.44879,gcam-v7.0 -SSP3,Argentina,2065,1.49249,gcam-v7.0 -SSP3,Argentina,2070,1.53878,gcam-v7.0 -SSP3,Argentina,2075,1.58793,gcam-v7.0 -SSP3,Argentina,2080,1.63473,gcam-v7.0 -SSP3,Argentina,2085,1.67936,gcam-v7.0 -SSP3,Argentina,2090,1.72149,gcam-v7.0 -SSP3,Argentina,2095,1.76247,gcam-v7.0 -SSP3,Argentina,2100,1.80658,gcam-v7.0 -SSP3,Australia_NZ,1975,0,gcam-v7.0 -SSP3,Australia_NZ,1990,0,gcam-v7.0 -SSP3,Australia_NZ,2005,0,gcam-v7.0 -SSP3,Australia_NZ,2010,0,gcam-v7.0 -SSP3,Australia_NZ,2015,0,gcam-v7.0 -SSP3,Australia_NZ,2020,1.1039,gcam-v7.0 -SSP3,Australia_NZ,2025,1.18931,gcam-v7.0 -SSP3,Australia_NZ,2030,1.25205,gcam-v7.0 -SSP3,Australia_NZ,2035,1.29739,gcam-v7.0 -SSP3,Australia_NZ,2040,1.34585,gcam-v7.0 -SSP3,Australia_NZ,2045,1.3892,gcam-v7.0 -SSP3,Australia_NZ,2050,1.43433,gcam-v7.0 -SSP3,Australia_NZ,2055,1.4846,gcam-v7.0 -SSP3,Australia_NZ,2060,1.53826,gcam-v7.0 -SSP3,Australia_NZ,2065,1.59405,gcam-v7.0 -SSP3,Australia_NZ,2070,1.65033,gcam-v7.0 -SSP3,Australia_NZ,2075,1.71019,gcam-v7.0 -SSP3,Australia_NZ,2080,1.77459,gcam-v7.0 -SSP3,Australia_NZ,2085,1.84509,gcam-v7.0 -SSP3,Australia_NZ,2090,1.9213,gcam-v7.0 -SSP3,Australia_NZ,2095,2.00043,gcam-v7.0 -SSP3,Australia_NZ,2100,2.0795,gcam-v7.0 -SSP3,Brazil,1975,0,gcam-v7.0 -SSP3,Brazil,1990,0,gcam-v7.0 -SSP3,Brazil,2005,0,gcam-v7.0 -SSP3,Brazil,2010,0,gcam-v7.0 -SSP3,Brazil,2015,0,gcam-v7.0 -SSP3,Brazil,2020,1.12141,gcam-v7.0 -SSP3,Brazil,2025,1.23009,gcam-v7.0 -SSP3,Brazil,2030,1.29973,gcam-v7.0 -SSP3,Brazil,2035,1.34169,gcam-v7.0 -SSP3,Brazil,2040,1.37972,gcam-v7.0 -SSP3,Brazil,2045,1.41619,gcam-v7.0 -SSP3,Brazil,2050,1.45096,gcam-v7.0 -SSP3,Brazil,2055,1.48363,gcam-v7.0 -SSP3,Brazil,2060,1.51631,gcam-v7.0 -SSP3,Brazil,2065,1.55396,gcam-v7.0 -SSP3,Brazil,2070,1.59389,gcam-v7.0 -SSP3,Brazil,2075,1.62448,gcam-v7.0 -SSP3,Brazil,2080,1.65063,gcam-v7.0 -SSP3,Brazil,2085,1.67246,gcam-v7.0 -SSP3,Brazil,2090,1.69209,gcam-v7.0 -SSP3,Brazil,2095,1.70782,gcam-v7.0 -SSP3,Brazil,2100,1.72089,gcam-v7.0 -SSP3,Canada,1975,0,gcam-v7.0 -SSP3,Canada,1990,0,gcam-v7.0 -SSP3,Canada,2005,0,gcam-v7.0 -SSP3,Canada,2010,0,gcam-v7.0 -SSP3,Canada,2015,0,gcam-v7.0 -SSP3,Canada,2020,1.03335,gcam-v7.0 -SSP3,Canada,2025,1.10086,gcam-v7.0 -SSP3,Canada,2030,1.17124,gcam-v7.0 -SSP3,Canada,2035,1.25059,gcam-v7.0 -SSP3,Canada,2040,1.34165,gcam-v7.0 -SSP3,Canada,2045,1.44229,gcam-v7.0 -SSP3,Canada,2050,1.5454,gcam-v7.0 -SSP3,Canada,2055,1.65083,gcam-v7.0 -SSP3,Canada,2060,1.75564,gcam-v7.0 -SSP3,Canada,2065,1.86495,gcam-v7.0 -SSP3,Canada,2070,1.97298,gcam-v7.0 -SSP3,Canada,2075,2.07211,gcam-v7.0 -SSP3,Canada,2080,2.17858,gcam-v7.0 -SSP3,Canada,2085,2.29527,gcam-v7.0 -SSP3,Canada,2090,2.42092,gcam-v7.0 -SSP3,Canada,2095,2.55015,gcam-v7.0 -SSP3,Canada,2100,2.67867,gcam-v7.0 -SSP3,Central America and Caribbean,1975,0,gcam-v7.0 -SSP3,Central America and Caribbean,1990,0,gcam-v7.0 -SSP3,Central America and Caribbean,2005,0,gcam-v7.0 -SSP3,Central America and Caribbean,2010,0,gcam-v7.0 -SSP3,Central America and Caribbean,2015,0,gcam-v7.0 -SSP3,Central America and Caribbean,2020,1.06546,gcam-v7.0 -SSP3,Central America and Caribbean,2025,1.13646,gcam-v7.0 -SSP3,Central America and Caribbean,2030,1.19178,gcam-v7.0 -SSP3,Central America and Caribbean,2035,1.23534,gcam-v7.0 -SSP3,Central America and Caribbean,2040,1.27758,gcam-v7.0 -SSP3,Central America and Caribbean,2045,1.31504,gcam-v7.0 -SSP3,Central America and Caribbean,2050,1.35169,gcam-v7.0 -SSP3,Central America and Caribbean,2055,1.39343,gcam-v7.0 -SSP3,Central America and Caribbean,2060,1.43939,gcam-v7.0 -SSP3,Central America and Caribbean,2065,1.48851,gcam-v7.0 -SSP3,Central America and Caribbean,2070,1.54075,gcam-v7.0 -SSP3,Central America and Caribbean,2075,1.59485,gcam-v7.0 -SSP3,Central America and Caribbean,2080,1.64858,gcam-v7.0 -SSP3,Central America and Caribbean,2085,1.70259,gcam-v7.0 -SSP3,Central America and Caribbean,2090,1.75714,gcam-v7.0 -SSP3,Central America and Caribbean,2095,1.81288,gcam-v7.0 -SSP3,Central America and Caribbean,2100,1.87195,gcam-v7.0 -SSP3,Central Asia,1975,0,gcam-v7.0 -SSP3,Central Asia,1990,0,gcam-v7.0 -SSP3,Central Asia,2005,0,gcam-v7.0 -SSP3,Central Asia,2010,0,gcam-v7.0 -SSP3,Central Asia,2015,0,gcam-v7.0 -SSP3,Central Asia,2020,1.11083,gcam-v7.0 -SSP3,Central Asia,2025,1.32636,gcam-v7.0 -SSP3,Central Asia,2030,1.48018,gcam-v7.0 -SSP3,Central Asia,2035,1.60867,gcam-v7.0 -SSP3,Central Asia,2040,1.72906,gcam-v7.0 -SSP3,Central Asia,2045,1.82418,gcam-v7.0 -SSP3,Central Asia,2050,1.88588,gcam-v7.0 -SSP3,Central Asia,2055,1.93522,gcam-v7.0 -SSP3,Central Asia,2060,1.99395,gcam-v7.0 -SSP3,Central Asia,2065,2.06434,gcam-v7.0 -SSP3,Central Asia,2070,2.14086,gcam-v7.0 -SSP3,Central Asia,2075,2.2272,gcam-v7.0 -SSP3,Central Asia,2080,2.32077,gcam-v7.0 -SSP3,Central Asia,2085,2.41451,gcam-v7.0 -SSP3,Central Asia,2090,2.50923,gcam-v7.0 -SSP3,Central Asia,2095,2.60417,gcam-v7.0 -SSP3,Central Asia,2100,2.69893,gcam-v7.0 -SSP3,China,1975,0,gcam-v7.0 -SSP3,China,1990,0,gcam-v7.0 -SSP3,China,2005,0,gcam-v7.0 -SSP3,China,2010,0,gcam-v7.0 -SSP3,China,2015,0,gcam-v7.0 -SSP3,China,2020,1.35441,gcam-v7.0 -SSP3,China,2025,1.63926,gcam-v7.0 -SSP3,China,2030,1.85915,gcam-v7.0 -SSP3,China,2035,2.04183,gcam-v7.0 -SSP3,China,2040,2.20578,gcam-v7.0 -SSP3,China,2045,2.32019,gcam-v7.0 -SSP3,China,2050,2.42368,gcam-v7.0 -SSP3,China,2055,2.54873,gcam-v7.0 -SSP3,China,2060,2.66359,gcam-v7.0 -SSP3,China,2065,2.77319,gcam-v7.0 -SSP3,China,2070,2.86852,gcam-v7.0 -SSP3,China,2075,2.96281,gcam-v7.0 -SSP3,China,2080,3.03714,gcam-v7.0 -SSP3,China,2085,3.10382,gcam-v7.0 -SSP3,China,2090,3.15862,gcam-v7.0 -SSP3,China,2095,3.20546,gcam-v7.0 -SSP3,China,2100,3.25013,gcam-v7.0 -SSP3,Colombia,1975,0,gcam-v7.0 -SSP3,Colombia,1990,0,gcam-v7.0 -SSP3,Colombia,2005,0,gcam-v7.0 -SSP3,Colombia,2010,0,gcam-v7.0 -SSP3,Colombia,2015,0,gcam-v7.0 -SSP3,Colombia,2020,1.12668,gcam-v7.0 -SSP3,Colombia,2025,1.1917,gcam-v7.0 -SSP3,Colombia,2030,1.24325,gcam-v7.0 -SSP3,Colombia,2035,1.28466,gcam-v7.0 -SSP3,Colombia,2040,1.329,gcam-v7.0 -SSP3,Colombia,2045,1.37751,gcam-v7.0 -SSP3,Colombia,2050,1.4271,gcam-v7.0 -SSP3,Colombia,2055,1.48197,gcam-v7.0 -SSP3,Colombia,2060,1.54587,gcam-v7.0 -SSP3,Colombia,2065,1.61484,gcam-v7.0 -SSP3,Colombia,2070,1.688,gcam-v7.0 -SSP3,Colombia,2075,1.76754,gcam-v7.0 -SSP3,Colombia,2080,1.84825,gcam-v7.0 -SSP3,Colombia,2085,1.93123,gcam-v7.0 -SSP3,Colombia,2090,2.0172,gcam-v7.0 -SSP3,Colombia,2095,2.10501,gcam-v7.0 -SSP3,Colombia,2100,2.19609,gcam-v7.0 -SSP3,EU-12,1975,0,gcam-v7.0 -SSP3,EU-12,1990,0,gcam-v7.0 -SSP3,EU-12,2005,0,gcam-v7.0 -SSP3,EU-12,2010,0,gcam-v7.0 -SSP3,EU-12,2015,0,gcam-v7.0 -SSP3,EU-12,2020,1.08339,gcam-v7.0 -SSP3,EU-12,2025,1.20838,gcam-v7.0 -SSP3,EU-12,2030,1.30008,gcam-v7.0 -SSP3,EU-12,2035,1.37895,gcam-v7.0 -SSP3,EU-12,2040,1.45955,gcam-v7.0 -SSP3,EU-12,2045,1.54406,gcam-v7.0 -SSP3,EU-12,2050,1.62664,gcam-v7.0 -SSP3,EU-12,2055,1.71149,gcam-v7.0 -SSP3,EU-12,2060,1.79086,gcam-v7.0 -SSP3,EU-12,2065,1.86431,gcam-v7.0 -SSP3,EU-12,2070,1.93059,gcam-v7.0 -SSP3,EU-12,2075,1.99982,gcam-v7.0 -SSP3,EU-12,2080,2.07001,gcam-v7.0 -SSP3,EU-12,2085,2.13847,gcam-v7.0 -SSP3,EU-12,2090,2.20589,gcam-v7.0 -SSP3,EU-12,2095,2.27158,gcam-v7.0 -SSP3,EU-12,2100,2.33486,gcam-v7.0 -SSP3,EU-15,1975,0,gcam-v7.0 -SSP3,EU-15,1990,0,gcam-v7.0 -SSP3,EU-15,2005,0,gcam-v7.0 -SSP3,EU-15,2010,0,gcam-v7.0 -SSP3,EU-15,2015,0,gcam-v7.0 -SSP3,EU-15,2020,1.04877,gcam-v7.0 -SSP3,EU-15,2025,1.1139,gcam-v7.0 -SSP3,EU-15,2030,1.17851,gcam-v7.0 -SSP3,EU-15,2035,1.2417,gcam-v7.0 -SSP3,EU-15,2040,1.30214,gcam-v7.0 -SSP3,EU-15,2045,1.35706,gcam-v7.0 -SSP3,EU-15,2050,1.4087,gcam-v7.0 -SSP3,EU-15,2055,1.46153,gcam-v7.0 -SSP3,EU-15,2060,1.51382,gcam-v7.0 -SSP3,EU-15,2065,1.56627,gcam-v7.0 -SSP3,EU-15,2070,1.61889,gcam-v7.0 -SSP3,EU-15,2075,1.67467,gcam-v7.0 -SSP3,EU-15,2080,1.73326,gcam-v7.0 -SSP3,EU-15,2085,1.79501,gcam-v7.0 -SSP3,EU-15,2090,1.86033,gcam-v7.0 -SSP3,EU-15,2095,1.92999,gcam-v7.0 -SSP3,EU-15,2100,2.00114,gcam-v7.0 -SSP3,Europe_Eastern,1975,0,gcam-v7.0 -SSP3,Europe_Eastern,1990,0,gcam-v7.0 -SSP3,Europe_Eastern,2005,0,gcam-v7.0 -SSP3,Europe_Eastern,2010,0,gcam-v7.0 -SSP3,Europe_Eastern,2015,0,gcam-v7.0 -SSP3,Europe_Eastern,2020,0.950351,gcam-v7.0 -SSP3,Europe_Eastern,2025,1.05446,gcam-v7.0 -SSP3,Europe_Eastern,2030,1.12429,gcam-v7.0 -SSP3,Europe_Eastern,2035,1.17031,gcam-v7.0 -SSP3,Europe_Eastern,2040,1.20666,gcam-v7.0 -SSP3,Europe_Eastern,2045,1.23508,gcam-v7.0 -SSP3,Europe_Eastern,2050,1.26739,gcam-v7.0 -SSP3,Europe_Eastern,2055,1.30871,gcam-v7.0 -SSP3,Europe_Eastern,2060,1.36003,gcam-v7.0 -SSP3,Europe_Eastern,2065,1.42349,gcam-v7.0 -SSP3,Europe_Eastern,2070,1.50595,gcam-v7.0 -SSP3,Europe_Eastern,2075,1.65677,gcam-v7.0 -SSP3,Europe_Eastern,2080,1.7418,gcam-v7.0 -SSP3,Europe_Eastern,2085,1.82967,gcam-v7.0 -SSP3,Europe_Eastern,2090,1.92335,gcam-v7.0 -SSP3,Europe_Eastern,2095,2.01634,gcam-v7.0 -SSP3,Europe_Eastern,2100,2.10983,gcam-v7.0 -SSP3,Europe_Non_EU,1975,0,gcam-v7.0 -SSP3,Europe_Non_EU,1990,0,gcam-v7.0 -SSP3,Europe_Non_EU,2005,0,gcam-v7.0 -SSP3,Europe_Non_EU,2010,0,gcam-v7.0 -SSP3,Europe_Non_EU,2015,0,gcam-v7.0 -SSP3,Europe_Non_EU,2020,1.07854,gcam-v7.0 -SSP3,Europe_Non_EU,2025,1.15019,gcam-v7.0 -SSP3,Europe_Non_EU,2030,1.19232,gcam-v7.0 -SSP3,Europe_Non_EU,2035,1.22349,gcam-v7.0 -SSP3,Europe_Non_EU,2040,1.25972,gcam-v7.0 -SSP3,Europe_Non_EU,2045,1.29576,gcam-v7.0 -SSP3,Europe_Non_EU,2050,1.33209,gcam-v7.0 -SSP3,Europe_Non_EU,2055,1.36803,gcam-v7.0 -SSP3,Europe_Non_EU,2060,1.40577,gcam-v7.0 -SSP3,Europe_Non_EU,2065,1.44714,gcam-v7.0 -SSP3,Europe_Non_EU,2070,1.48831,gcam-v7.0 -SSP3,Europe_Non_EU,2075,1.5309,gcam-v7.0 -SSP3,Europe_Non_EU,2080,1.57106,gcam-v7.0 -SSP3,Europe_Non_EU,2085,1.60889,gcam-v7.0 -SSP3,Europe_Non_EU,2090,1.64548,gcam-v7.0 -SSP3,Europe_Non_EU,2095,1.68235,gcam-v7.0 -SSP3,Europe_Non_EU,2100,1.72123,gcam-v7.0 -SSP3,European Free Trade Association,1975,0,gcam-v7.0 -SSP3,European Free Trade Association,1990,0,gcam-v7.0 -SSP3,European Free Trade Association,2005,0,gcam-v7.0 -SSP3,European Free Trade Association,2010,0,gcam-v7.0 -SSP3,European Free Trade Association,2015,0,gcam-v7.0 -SSP3,European Free Trade Association,2020,1.07154,gcam-v7.0 -SSP3,European Free Trade Association,2025,1.14143,gcam-v7.0 -SSP3,European Free Trade Association,2030,1.21249,gcam-v7.0 -SSP3,European Free Trade Association,2035,1.27862,gcam-v7.0 -SSP3,European Free Trade Association,2040,1.34016,gcam-v7.0 -SSP3,European Free Trade Association,2045,1.3854,gcam-v7.0 -SSP3,European Free Trade Association,2050,1.43814,gcam-v7.0 -SSP3,European Free Trade Association,2055,1.49816,gcam-v7.0 -SSP3,European Free Trade Association,2060,1.56471,gcam-v7.0 -SSP3,European Free Trade Association,2065,1.63135,gcam-v7.0 -SSP3,European Free Trade Association,2070,1.69459,gcam-v7.0 -SSP3,European Free Trade Association,2075,1.75799,gcam-v7.0 -SSP3,European Free Trade Association,2080,1.82609,gcam-v7.0 -SSP3,European Free Trade Association,2085,1.90106,gcam-v7.0 -SSP3,European Free Trade Association,2090,1.98124,gcam-v7.0 -SSP3,European Free Trade Association,2095,2.06431,gcam-v7.0 -SSP3,European Free Trade Association,2100,2.14217,gcam-v7.0 -SSP3,India,1975,0,gcam-v7.0 -SSP3,India,1990,0,gcam-v7.0 -SSP3,India,2005,0,gcam-v7.0 -SSP3,India,2010,0,gcam-v7.0 -SSP3,India,2015,0,gcam-v7.0 -SSP3,India,2020,1.16691,gcam-v7.0 -SSP3,India,2025,1.33088,gcam-v7.0 -SSP3,India,2030,1.4292,gcam-v7.0 -SSP3,India,2035,1.48784,gcam-v7.0 -SSP3,India,2040,1.53893,gcam-v7.0 -SSP3,India,2045,1.58447,gcam-v7.0 -SSP3,India,2050,1.62918,gcam-v7.0 -SSP3,India,2055,1.67998,gcam-v7.0 -SSP3,India,2060,1.73556,gcam-v7.0 -SSP3,India,2065,1.79355,gcam-v7.0 -SSP3,India,2070,1.85385,gcam-v7.0 -SSP3,India,2075,1.91645,gcam-v7.0 -SSP3,India,2080,1.97973,gcam-v7.0 -SSP3,India,2085,2.04126,gcam-v7.0 -SSP3,India,2090,2.10023,gcam-v7.0 -SSP3,India,2095,2.15638,gcam-v7.0 -SSP3,India,2100,2.21541,gcam-v7.0 -SSP3,Indonesia,1975,0,gcam-v7.0 -SSP3,Indonesia,1990,0,gcam-v7.0 -SSP3,Indonesia,2005,0,gcam-v7.0 -SSP3,Indonesia,2010,0,gcam-v7.0 -SSP3,Indonesia,2015,0,gcam-v7.0 -SSP3,Indonesia,2020,1.21445,gcam-v7.0 -SSP3,Indonesia,2025,1.42598,gcam-v7.0 -SSP3,Indonesia,2030,1.5745,gcam-v7.0 -SSP3,Indonesia,2035,1.68383,gcam-v7.0 -SSP3,Indonesia,2040,1.79408,gcam-v7.0 -SSP3,Indonesia,2045,1.89412,gcam-v7.0 -SSP3,Indonesia,2050,1.98388,gcam-v7.0 -SSP3,Indonesia,2055,2.07142,gcam-v7.0 -SSP3,Indonesia,2060,2.16076,gcam-v7.0 -SSP3,Indonesia,2065,2.25027,gcam-v7.0 -SSP3,Indonesia,2070,2.34733,gcam-v7.0 -SSP3,Indonesia,2075,2.44561,gcam-v7.0 -SSP3,Indonesia,2080,2.53416,gcam-v7.0 -SSP3,Indonesia,2085,2.62095,gcam-v7.0 -SSP3,Indonesia,2090,2.70608,gcam-v7.0 -SSP3,Indonesia,2095,2.78863,gcam-v7.0 -SSP3,Indonesia,2100,2.87121,gcam-v7.0 -SSP3,Japan,1975,0,gcam-v7.0 -SSP3,Japan,1990,0,gcam-v7.0 -SSP3,Japan,2005,0,gcam-v7.0 -SSP3,Japan,2010,0,gcam-v7.0 -SSP3,Japan,2015,0,gcam-v7.0 -SSP3,Japan,2020,1.03681,gcam-v7.0 -SSP3,Japan,2025,1.09401,gcam-v7.0 -SSP3,Japan,2030,1.14282,gcam-v7.0 -SSP3,Japan,2035,1.18397,gcam-v7.0 -SSP3,Japan,2040,1.23373,gcam-v7.0 -SSP3,Japan,2045,1.27693,gcam-v7.0 -SSP3,Japan,2050,1.31225,gcam-v7.0 -SSP3,Japan,2055,1.34709,gcam-v7.0 -SSP3,Japan,2060,1.38247,gcam-v7.0 -SSP3,Japan,2065,1.42171,gcam-v7.0 -SSP3,Japan,2070,1.46185,gcam-v7.0 -SSP3,Japan,2075,1.50365,gcam-v7.0 -SSP3,Japan,2080,1.55092,gcam-v7.0 -SSP3,Japan,2085,1.59828,gcam-v7.0 -SSP3,Japan,2090,1.64881,gcam-v7.0 -SSP3,Japan,2095,1.70409,gcam-v7.0 -SSP3,Japan,2100,1.76301,gcam-v7.0 -SSP3,Mexico,1975,0,gcam-v7.0 -SSP3,Mexico,1990,0,gcam-v7.0 -SSP3,Mexico,2005,0,gcam-v7.0 -SSP3,Mexico,2010,0,gcam-v7.0 -SSP3,Mexico,2015,0,gcam-v7.0 -SSP3,Mexico,2020,1.04776,gcam-v7.0 -SSP3,Mexico,2025,1.13043,gcam-v7.0 -SSP3,Mexico,2030,1.19682,gcam-v7.0 -SSP3,Mexico,2035,1.25988,gcam-v7.0 -SSP3,Mexico,2040,1.30831,gcam-v7.0 -SSP3,Mexico,2045,1.3457,gcam-v7.0 -SSP3,Mexico,2050,1.37458,gcam-v7.0 -SSP3,Mexico,2055,1.40472,gcam-v7.0 -SSP3,Mexico,2060,1.43997,gcam-v7.0 -SSP3,Mexico,2065,1.47481,gcam-v7.0 -SSP3,Mexico,2070,1.51254,gcam-v7.0 -SSP3,Mexico,2075,1.54995,gcam-v7.0 -SSP3,Mexico,2080,1.58622,gcam-v7.0 -SSP3,Mexico,2085,1.621,gcam-v7.0 -SSP3,Mexico,2090,1.65346,gcam-v7.0 -SSP3,Mexico,2095,1.68413,gcam-v7.0 -SSP3,Mexico,2100,1.71612,gcam-v7.0 -SSP3,Middle East,1975,0,gcam-v7.0 -SSP3,Middle East,1990,0,gcam-v7.0 -SSP3,Middle East,2005,0,gcam-v7.0 -SSP3,Middle East,2010,0,gcam-v7.0 -SSP3,Middle East,2015,0,gcam-v7.0 -SSP3,Middle East,2020,1.08758,gcam-v7.0 -SSP3,Middle East,2025,1.24012,gcam-v7.0 -SSP3,Middle East,2030,1.39283,gcam-v7.0 -SSP3,Middle East,2035,1.51598,gcam-v7.0 -SSP3,Middle East,2040,1.63494,gcam-v7.0 -SSP3,Middle East,2045,1.72827,gcam-v7.0 -SSP3,Middle East,2050,1.79099,gcam-v7.0 -SSP3,Middle East,2055,1.82184,gcam-v7.0 -SSP3,Middle East,2060,1.83717,gcam-v7.0 -SSP3,Middle East,2065,1.85044,gcam-v7.0 -SSP3,Middle East,2070,1.86696,gcam-v7.0 -SSP3,Middle East,2075,1.89312,gcam-v7.0 -SSP3,Middle East,2080,1.92605,gcam-v7.0 -SSP3,Middle East,2085,1.96489,gcam-v7.0 -SSP3,Middle East,2090,2.00827,gcam-v7.0 -SSP3,Middle East,2095,2.0638,gcam-v7.0 -SSP3,Middle East,2100,2.13191,gcam-v7.0 -SSP3,Pakistan,1975,0,gcam-v7.0 -SSP3,Pakistan,1990,0,gcam-v7.0 -SSP3,Pakistan,2005,0,gcam-v7.0 -SSP3,Pakistan,2010,0,gcam-v7.0 -SSP3,Pakistan,2015,0,gcam-v7.0 -SSP3,Pakistan,2020,1.05625,gcam-v7.0 -SSP3,Pakistan,2025,1.12747,gcam-v7.0 -SSP3,Pakistan,2030,1.19049,gcam-v7.0 -SSP3,Pakistan,2035,1.24577,gcam-v7.0 -SSP3,Pakistan,2040,1.30381,gcam-v7.0 -SSP3,Pakistan,2045,1.36486,gcam-v7.0 -SSP3,Pakistan,2050,1.42483,gcam-v7.0 -SSP3,Pakistan,2055,1.49041,gcam-v7.0 -SSP3,Pakistan,2060,1.56316,gcam-v7.0 -SSP3,Pakistan,2065,1.64918,gcam-v7.0 -SSP3,Pakistan,2070,1.73919,gcam-v7.0 -SSP3,Pakistan,2075,1.83664,gcam-v7.0 -SSP3,Pakistan,2080,1.93953,gcam-v7.0 -SSP3,Pakistan,2085,2.04611,gcam-v7.0 -SSP3,Pakistan,2090,2.15496,gcam-v7.0 -SSP3,Pakistan,2095,2.26798,gcam-v7.0 -SSP3,Pakistan,2100,2.38904,gcam-v7.0 -SSP3,Russia,1975,0,gcam-v7.0 -SSP3,Russia,1990,0,gcam-v7.0 -SSP3,Russia,2005,0,gcam-v7.0 -SSP3,Russia,2010,0,gcam-v7.0 -SSP3,Russia,2015,0,gcam-v7.0 -SSP3,Russia,2020,1.14115,gcam-v7.0 -SSP3,Russia,2025,1.30393,gcam-v7.0 -SSP3,Russia,2030,1.4549,gcam-v7.0 -SSP3,Russia,2035,1.59605,gcam-v7.0 -SSP3,Russia,2040,1.71092,gcam-v7.0 -SSP3,Russia,2045,1.77924,gcam-v7.0 -SSP3,Russia,2050,1.82904,gcam-v7.0 -SSP3,Russia,2055,1.88178,gcam-v7.0 -SSP3,Russia,2060,1.93203,gcam-v7.0 -SSP3,Russia,2065,1.97297,gcam-v7.0 -SSP3,Russia,2070,2.02857,gcam-v7.0 -SSP3,Russia,2075,2.09789,gcam-v7.0 -SSP3,Russia,2080,2.18083,gcam-v7.0 -SSP3,Russia,2085,2.25143,gcam-v7.0 -SSP3,Russia,2090,2.32368,gcam-v7.0 -SSP3,Russia,2095,2.38748,gcam-v7.0 -SSP3,Russia,2100,2.44525,gcam-v7.0 -SSP3,South Africa,1975,0,gcam-v7.0 -SSP3,South Africa,1990,0,gcam-v7.0 -SSP3,South Africa,2005,0,gcam-v7.0 -SSP3,South Africa,2010,0,gcam-v7.0 -SSP3,South Africa,2015,0,gcam-v7.0 -SSP3,South Africa,2020,1.13118,gcam-v7.0 -SSP3,South Africa,2025,1.25979,gcam-v7.0 -SSP3,South Africa,2030,1.3532,gcam-v7.0 -SSP3,South Africa,2035,1.42246,gcam-v7.0 -SSP3,South Africa,2040,1.48,gcam-v7.0 -SSP3,South Africa,2045,1.52583,gcam-v7.0 -SSP3,South Africa,2050,1.5706,gcam-v7.0 -SSP3,South Africa,2055,1.62416,gcam-v7.0 -SSP3,South Africa,2060,1.68287,gcam-v7.0 -SSP3,South Africa,2065,1.74307,gcam-v7.0 -SSP3,South Africa,2070,1.8064,gcam-v7.0 -SSP3,South Africa,2075,1.86867,gcam-v7.0 -SSP3,South Africa,2080,1.92972,gcam-v7.0 -SSP3,South Africa,2085,1.9908,gcam-v7.0 -SSP3,South Africa,2090,2.05361,gcam-v7.0 -SSP3,South Africa,2095,2.11724,gcam-v7.0 -SSP3,South Africa,2100,2.18556,gcam-v7.0 -SSP3,South America_Northern,1975,0,gcam-v7.0 -SSP3,South America_Northern,1990,0,gcam-v7.0 -SSP3,South America_Northern,2005,0,gcam-v7.0 -SSP3,South America_Northern,2010,0,gcam-v7.0 -SSP3,South America_Northern,2015,0,gcam-v7.0 -SSP3,South America_Northern,2020,0.856807,gcam-v7.0 -SSP3,South America_Northern,2025,0.893222,gcam-v7.0 -SSP3,South America_Northern,2030,0.980771,gcam-v7.0 -SSP3,South America_Northern,2035,1.13253,gcam-v7.0 -SSP3,South America_Northern,2040,1.3261,gcam-v7.0 -SSP3,South America_Northern,2045,1.55904,gcam-v7.0 -SSP3,South America_Northern,2050,1.78336,gcam-v7.0 -SSP3,South America_Northern,2055,1.99824,gcam-v7.0 -SSP3,South America_Northern,2060,2.16276,gcam-v7.0 -SSP3,South America_Northern,2065,2.28879,gcam-v7.0 -SSP3,South America_Northern,2070,2.39082,gcam-v7.0 -SSP3,South America_Northern,2075,2.48585,gcam-v7.0 -SSP3,South America_Northern,2080,2.57722,gcam-v7.0 -SSP3,South America_Northern,2085,2.66678,gcam-v7.0 -SSP3,South America_Northern,2090,2.75799,gcam-v7.0 -SSP3,South America_Northern,2095,2.85003,gcam-v7.0 -SSP3,South America_Northern,2100,2.94088,gcam-v7.0 -SSP3,South America_Southern,1975,0,gcam-v7.0 -SSP3,South America_Southern,1990,0,gcam-v7.0 -SSP3,South America_Southern,2005,0,gcam-v7.0 -SSP3,South America_Southern,2010,0,gcam-v7.0 -SSP3,South America_Southern,2015,0,gcam-v7.0 -SSP3,South America_Southern,2020,1.13313,gcam-v7.0 -SSP3,South America_Southern,2025,1.24866,gcam-v7.0 -SSP3,South America_Southern,2030,1.31561,gcam-v7.0 -SSP3,South America_Southern,2035,1.36239,gcam-v7.0 -SSP3,South America_Southern,2040,1.41192,gcam-v7.0 -SSP3,South America_Southern,2045,1.46155,gcam-v7.0 -SSP3,South America_Southern,2050,1.512,gcam-v7.0 -SSP3,South America_Southern,2055,1.56702,gcam-v7.0 -SSP3,South America_Southern,2060,1.62996,gcam-v7.0 -SSP3,South America_Southern,2065,1.69858,gcam-v7.0 -SSP3,South America_Southern,2070,1.77204,gcam-v7.0 -SSP3,South America_Southern,2075,1.84913,gcam-v7.0 -SSP3,South America_Southern,2080,1.92636,gcam-v7.0 -SSP3,South America_Southern,2085,2.00305,gcam-v7.0 -SSP3,South America_Southern,2090,2.08017,gcam-v7.0 -SSP3,South America_Southern,2095,2.15847,gcam-v7.0 -SSP3,South America_Southern,2100,2.24059,gcam-v7.0 -SSP3,South Asia,1975,0,gcam-v7.0 -SSP3,South Asia,1990,0,gcam-v7.0 -SSP3,South Asia,2005,0,gcam-v7.0 -SSP3,South Asia,2010,0,gcam-v7.0 -SSP3,South Asia,2015,0,gcam-v7.0 -SSP3,South Asia,2020,1.15214,gcam-v7.0 -SSP3,South Asia,2025,1.29408,gcam-v7.0 -SSP3,South Asia,2030,1.34446,gcam-v7.0 -SSP3,South Asia,2035,1.3325,gcam-v7.0 -SSP3,South Asia,2040,1.31932,gcam-v7.0 -SSP3,South Asia,2045,1.31041,gcam-v7.0 -SSP3,South Asia,2050,1.30313,gcam-v7.0 -SSP3,South Asia,2055,1.30403,gcam-v7.0 -SSP3,South Asia,2060,1.31341,gcam-v7.0 -SSP3,South Asia,2065,1.32802,gcam-v7.0 -SSP3,South Asia,2070,1.34726,gcam-v7.0 -SSP3,South Asia,2075,1.3687,gcam-v7.0 -SSP3,South Asia,2080,1.38896,gcam-v7.0 -SSP3,South Asia,2085,1.4096,gcam-v7.0 -SSP3,South Asia,2090,1.43004,gcam-v7.0 -SSP3,South Asia,2095,1.45201,gcam-v7.0 -SSP3,South Asia,2100,1.47671,gcam-v7.0 -SSP3,South Korea,1975,0,gcam-v7.0 -SSP3,South Korea,1990,0,gcam-v7.0 -SSP3,South Korea,2005,0,gcam-v7.0 -SSP3,South Korea,2010,0,gcam-v7.0 -SSP3,South Korea,2015,0,gcam-v7.0 -SSP3,South Korea,2020,0.964201,gcam-v7.0 -SSP3,South Korea,2025,1.07523,gcam-v7.0 -SSP3,South Korea,2030,1.17814,gcam-v7.0 -SSP3,South Korea,2035,1.2613,gcam-v7.0 -SSP3,South Korea,2040,1.33803,gcam-v7.0 -SSP3,South Korea,2045,1.40102,gcam-v7.0 -SSP3,South Korea,2050,1.45668,gcam-v7.0 -SSP3,South Korea,2055,1.50216,gcam-v7.0 -SSP3,South Korea,2060,1.55294,gcam-v7.0 -SSP3,South Korea,2065,1.60197,gcam-v7.0 -SSP3,South Korea,2070,1.63642,gcam-v7.0 -SSP3,South Korea,2075,1.66823,gcam-v7.0 -SSP3,South Korea,2080,1.69345,gcam-v7.0 -SSP3,South Korea,2085,1.71557,gcam-v7.0 -SSP3,South Korea,2090,1.73803,gcam-v7.0 -SSP3,South Korea,2095,1.76164,gcam-v7.0 -SSP3,South Korea,2100,1.78131,gcam-v7.0 -SSP3,Southeast Asia,1975,0,gcam-v7.0 -SSP3,Southeast Asia,1990,0,gcam-v7.0 -SSP3,Southeast Asia,2005,0,gcam-v7.0 -SSP3,Southeast Asia,2010,0,gcam-v7.0 -SSP3,Southeast Asia,2015,0,gcam-v7.0 -SSP3,Southeast Asia,2020,1.14136,gcam-v7.0 -SSP3,Southeast Asia,2025,1.2712,gcam-v7.0 -SSP3,Southeast Asia,2030,1.35184,gcam-v7.0 -SSP3,Southeast Asia,2035,1.39427,gcam-v7.0 -SSP3,Southeast Asia,2040,1.44363,gcam-v7.0 -SSP3,Southeast Asia,2045,1.48719,gcam-v7.0 -SSP3,Southeast Asia,2050,1.53022,gcam-v7.0 -SSP3,Southeast Asia,2055,1.58203,gcam-v7.0 -SSP3,Southeast Asia,2060,1.64001,gcam-v7.0 -SSP3,Southeast Asia,2065,1.70151,gcam-v7.0 -SSP3,Southeast Asia,2070,1.76739,gcam-v7.0 -SSP3,Southeast Asia,2075,1.83613,gcam-v7.0 -SSP3,Southeast Asia,2080,1.9059,gcam-v7.0 -SSP3,Southeast Asia,2085,1.97561,gcam-v7.0 -SSP3,Southeast Asia,2090,2.04352,gcam-v7.0 -SSP3,Southeast Asia,2095,2.11119,gcam-v7.0 -SSP3,Southeast Asia,2100,2.18223,gcam-v7.0 -SSP3,Taiwan,1975,0,gcam-v7.0 -SSP3,Taiwan,1990,0,gcam-v7.0 -SSP3,Taiwan,2005,0,gcam-v7.0 -SSP3,Taiwan,2010,0,gcam-v7.0 -SSP3,Taiwan,2015,0,gcam-v7.0 -SSP3,Taiwan,2020,1.15167,gcam-v7.0 -SSP3,Taiwan,2025,1.21058,gcam-v7.0 -SSP3,Taiwan,2030,1.23176,gcam-v7.0 -SSP3,Taiwan,2035,1.23947,gcam-v7.0 -SSP3,Taiwan,2040,1.2444,gcam-v7.0 -SSP3,Taiwan,2045,1.23754,gcam-v7.0 -SSP3,Taiwan,2050,1.22034,gcam-v7.0 -SSP3,Taiwan,2055,1.199,gcam-v7.0 -SSP3,Taiwan,2060,1.18406,gcam-v7.0 -SSP3,Taiwan,2065,1.21514,gcam-v7.0 -SSP3,Taiwan,2070,1.25704,gcam-v7.0 -SSP3,Taiwan,2075,1.2992,gcam-v7.0 -SSP3,Taiwan,2080,1.3359,gcam-v7.0 -SSP3,Taiwan,2085,1.36484,gcam-v7.0 -SSP3,Taiwan,2090,1.38801,gcam-v7.0 -SSP3,Taiwan,2095,1.40809,gcam-v7.0 -SSP3,Taiwan,2100,1.42934,gcam-v7.0 -SSP3,USA,1975,0,gcam-v7.0 -SSP3,USA,1990,0,gcam-v7.0 -SSP3,USA,2005,0,gcam-v7.0 -SSP3,USA,2010,0,gcam-v7.0 -SSP3,USA,2015,0,gcam-v7.0 -SSP3,USA,2020,1.09112,gcam-v7.0 -SSP3,USA,2025,1.17245,gcam-v7.0 -SSP3,USA,2030,1.23481,gcam-v7.0 -SSP3,USA,2035,1.28064,gcam-v7.0 -SSP3,USA,2040,1.32256,gcam-v7.0 -SSP3,USA,2045,1.35654,gcam-v7.0 -SSP3,USA,2050,1.39322,gcam-v7.0 -SSP3,USA,2055,1.43255,gcam-v7.0 -SSP3,USA,2060,1.47262,gcam-v7.0 -SSP3,USA,2065,1.50826,gcam-v7.0 -SSP3,USA,2070,1.54011,gcam-v7.0 -SSP3,USA,2075,1.57098,gcam-v7.0 -SSP3,USA,2080,1.59867,gcam-v7.0 -SSP3,USA,2085,1.62755,gcam-v7.0 -SSP3,USA,2090,1.65866,gcam-v7.0 -SSP3,USA,2095,1.6925,gcam-v7.0 -SSP3,USA,2100,1.72691,gcam-v7.0 -SSP4,Africa_Eastern,1975,0,gcam-v7.0 -SSP4,Africa_Eastern,1990,0,gcam-v7.0 -SSP4,Africa_Eastern,2005,0,gcam-v7.0 -SSP4,Africa_Eastern,2010,0,gcam-v7.0 -SSP4,Africa_Eastern,2015,0,gcam-v7.0 -SSP4,Africa_Eastern,2020,1.15342,gcam-v7.0 -SSP4,Africa_Eastern,2025,1.29851,gcam-v7.0 -SSP4,Africa_Eastern,2030,1.39723,gcam-v7.0 -SSP4,Africa_Eastern,2035,1.45667,gcam-v7.0 -SSP4,Africa_Eastern,2040,1.51012,gcam-v7.0 -SSP4,Africa_Eastern,2045,1.55765,gcam-v7.0 -SSP4,Africa_Eastern,2050,1.59384,gcam-v7.0 -SSP4,Africa_Eastern,2055,1.6373,gcam-v7.0 -SSP4,Africa_Eastern,2060,1.67966,gcam-v7.0 -SSP4,Africa_Eastern,2065,1.72641,gcam-v7.0 -SSP4,Africa_Eastern,2070,1.77554,gcam-v7.0 -SSP4,Africa_Eastern,2075,1.82799,gcam-v7.0 -SSP4,Africa_Eastern,2080,1.88293,gcam-v7.0 -SSP4,Africa_Eastern,2085,1.94107,gcam-v7.0 -SSP4,Africa_Eastern,2090,2.00285,gcam-v7.0 -SSP4,Africa_Eastern,2095,2.06889,gcam-v7.0 -SSP4,Africa_Eastern,2100,2.14152,gcam-v7.0 -SSP4,Africa_Northern,1975,0,gcam-v7.0 -SSP4,Africa_Northern,1990,0,gcam-v7.0 -SSP4,Africa_Northern,2005,0,gcam-v7.0 -SSP4,Africa_Northern,2010,0,gcam-v7.0 -SSP4,Africa_Northern,2015,0,gcam-v7.0 -SSP4,Africa_Northern,2020,1.09487,gcam-v7.0 -SSP4,Africa_Northern,2025,1.24475,gcam-v7.0 -SSP4,Africa_Northern,2030,1.37807,gcam-v7.0 -SSP4,Africa_Northern,2035,1.49354,gcam-v7.0 -SSP4,Africa_Northern,2040,1.61591,gcam-v7.0 -SSP4,Africa_Northern,2045,1.73222,gcam-v7.0 -SSP4,Africa_Northern,2050,1.86061,gcam-v7.0 -SSP4,Africa_Northern,2055,2.00658,gcam-v7.0 -SSP4,Africa_Northern,2060,2.15817,gcam-v7.0 -SSP4,Africa_Northern,2065,2.31326,gcam-v7.0 -SSP4,Africa_Northern,2070,2.47459,gcam-v7.0 -SSP4,Africa_Northern,2075,2.64476,gcam-v7.0 -SSP4,Africa_Northern,2080,2.82357,gcam-v7.0 -SSP4,Africa_Northern,2085,2.99635,gcam-v7.0 -SSP4,Africa_Northern,2090,3.16909,gcam-v7.0 -SSP4,Africa_Northern,2095,3.34075,gcam-v7.0 -SSP4,Africa_Northern,2100,3.5123,gcam-v7.0 -SSP4,Africa_Southern,1975,0,gcam-v7.0 -SSP4,Africa_Southern,1990,0,gcam-v7.0 -SSP4,Africa_Southern,2005,0,gcam-v7.0 -SSP4,Africa_Southern,2010,0,gcam-v7.0 -SSP4,Africa_Southern,2015,0,gcam-v7.0 -SSP4,Africa_Southern,2020,1.13871,gcam-v7.0 -SSP4,Africa_Southern,2025,1.28298,gcam-v7.0 -SSP4,Africa_Southern,2030,1.38253,gcam-v7.0 -SSP4,Africa_Southern,2035,1.44044,gcam-v7.0 -SSP4,Africa_Southern,2040,1.50506,gcam-v7.0 -SSP4,Africa_Southern,2045,1.5822,gcam-v7.0 -SSP4,Africa_Southern,2050,1.66655,gcam-v7.0 -SSP4,Africa_Southern,2055,1.76485,gcam-v7.0 -SSP4,Africa_Southern,2060,1.86927,gcam-v7.0 -SSP4,Africa_Southern,2065,1.98046,gcam-v7.0 -SSP4,Africa_Southern,2070,2.10273,gcam-v7.0 -SSP4,Africa_Southern,2075,2.2303,gcam-v7.0 -SSP4,Africa_Southern,2080,2.36078,gcam-v7.0 -SSP4,Africa_Southern,2085,2.49407,gcam-v7.0 -SSP4,Africa_Southern,2090,2.62993,gcam-v7.0 -SSP4,Africa_Southern,2095,2.76995,gcam-v7.0 -SSP4,Africa_Southern,2100,2.93009,gcam-v7.0 -SSP4,Africa_Western,1975,0,gcam-v7.0 -SSP4,Africa_Western,1990,0,gcam-v7.0 -SSP4,Africa_Western,2005,0,gcam-v7.0 -SSP4,Africa_Western,2010,0,gcam-v7.0 -SSP4,Africa_Western,2015,0,gcam-v7.0 -SSP4,Africa_Western,2020,1.16893,gcam-v7.0 -SSP4,Africa_Western,2025,1.31767,gcam-v7.0 -SSP4,Africa_Western,2030,1.4075,gcam-v7.0 -SSP4,Africa_Western,2035,1.4625,gcam-v7.0 -SSP4,Africa_Western,2040,1.50832,gcam-v7.0 -SSP4,Africa_Western,2045,1.5552,gcam-v7.0 -SSP4,Africa_Western,2050,1.60148,gcam-v7.0 -SSP4,Africa_Western,2055,1.65604,gcam-v7.0 -SSP4,Africa_Western,2060,1.71596,gcam-v7.0 -SSP4,Africa_Western,2065,1.78149,gcam-v7.0 -SSP4,Africa_Western,2070,1.85392,gcam-v7.0 -SSP4,Africa_Western,2075,1.934,gcam-v7.0 -SSP4,Africa_Western,2080,2.01729,gcam-v7.0 -SSP4,Africa_Western,2085,2.10326,gcam-v7.0 -SSP4,Africa_Western,2090,2.19004,gcam-v7.0 -SSP4,Africa_Western,2095,2.27969,gcam-v7.0 -SSP4,Africa_Western,2100,2.37836,gcam-v7.0 -SSP4,Argentina,1975,0,gcam-v7.0 -SSP4,Argentina,1990,0,gcam-v7.0 -SSP4,Argentina,2005,0,gcam-v7.0 -SSP4,Argentina,2010,0,gcam-v7.0 -SSP4,Argentina,2015,0,gcam-v7.0 -SSP4,Argentina,2020,1.0661,gcam-v7.0 -SSP4,Argentina,2025,1.1823,gcam-v7.0 -SSP4,Argentina,2030,1.28781,gcam-v7.0 -SSP4,Argentina,2035,1.39181,gcam-v7.0 -SSP4,Argentina,2040,1.49566,gcam-v7.0 -SSP4,Argentina,2045,1.60421,gcam-v7.0 -SSP4,Argentina,2050,1.71335,gcam-v7.0 -SSP4,Argentina,2055,1.82892,gcam-v7.0 -SSP4,Argentina,2060,1.95446,gcam-v7.0 -SSP4,Argentina,2065,2.08304,gcam-v7.0 -SSP4,Argentina,2070,2.21105,gcam-v7.0 -SSP4,Argentina,2075,2.34418,gcam-v7.0 -SSP4,Argentina,2080,2.48439,gcam-v7.0 -SSP4,Argentina,2085,2.63345,gcam-v7.0 -SSP4,Argentina,2090,2.79227,gcam-v7.0 -SSP4,Argentina,2095,2.9627,gcam-v7.0 -SSP4,Argentina,2100,3.1436,gcam-v7.0 -SSP4,Australia_NZ,1975,0,gcam-v7.0 -SSP4,Australia_NZ,1990,0,gcam-v7.0 -SSP4,Australia_NZ,2005,0,gcam-v7.0 -SSP4,Australia_NZ,2010,0,gcam-v7.0 -SSP4,Australia_NZ,2015,0,gcam-v7.0 -SSP4,Australia_NZ,2020,1.10865,gcam-v7.0 -SSP4,Australia_NZ,2025,1.20926,gcam-v7.0 -SSP4,Australia_NZ,2030,1.30737,gcam-v7.0 -SSP4,Australia_NZ,2035,1.40847,gcam-v7.0 -SSP4,Australia_NZ,2040,1.51933,gcam-v7.0 -SSP4,Australia_NZ,2045,1.62927,gcam-v7.0 -SSP4,Australia_NZ,2050,1.74709,gcam-v7.0 -SSP4,Australia_NZ,2055,1.87421,gcam-v7.0 -SSP4,Australia_NZ,2060,2.00654,gcam-v7.0 -SSP4,Australia_NZ,2065,2.14361,gcam-v7.0 -SSP4,Australia_NZ,2070,2.28541,gcam-v7.0 -SSP4,Australia_NZ,2075,2.43917,gcam-v7.0 -SSP4,Australia_NZ,2080,2.60658,gcam-v7.0 -SSP4,Australia_NZ,2085,2.78755,gcam-v7.0 -SSP4,Australia_NZ,2090,2.98143,gcam-v7.0 -SSP4,Australia_NZ,2095,3.18627,gcam-v7.0 -SSP4,Australia_NZ,2100,3.40042,gcam-v7.0 -SSP4,Brazil,1975,0,gcam-v7.0 -SSP4,Brazil,1990,0,gcam-v7.0 -SSP4,Brazil,2005,0,gcam-v7.0 -SSP4,Brazil,2010,0,gcam-v7.0 -SSP4,Brazil,2015,0,gcam-v7.0 -SSP4,Brazil,2020,1.12205,gcam-v7.0 -SSP4,Brazil,2025,1.25483,gcam-v7.0 -SSP4,Brazil,2030,1.37785,gcam-v7.0 -SSP4,Brazil,2035,1.49629,gcam-v7.0 -SSP4,Brazil,2040,1.62358,gcam-v7.0 -SSP4,Brazil,2045,1.76017,gcam-v7.0 -SSP4,Brazil,2050,1.90769,gcam-v7.0 -SSP4,Brazil,2055,2.0651,gcam-v7.0 -SSP4,Brazil,2060,2.23574,gcam-v7.0 -SSP4,Brazil,2065,2.42427,gcam-v7.0 -SSP4,Brazil,2070,2.62841,gcam-v7.0 -SSP4,Brazil,2075,2.83398,gcam-v7.0 -SSP4,Brazil,2080,3.05556,gcam-v7.0 -SSP4,Brazil,2085,3.29717,gcam-v7.0 -SSP4,Brazil,2090,3.56076,gcam-v7.0 -SSP4,Brazil,2095,3.84605,gcam-v7.0 -SSP4,Brazil,2100,4.15326,gcam-v7.0 -SSP4,Canada,1975,0,gcam-v7.0 -SSP4,Canada,1990,0,gcam-v7.0 -SSP4,Canada,2005,0,gcam-v7.0 -SSP4,Canada,2010,0,gcam-v7.0 -SSP4,Canada,2015,0,gcam-v7.0 -SSP4,Canada,2020,1.0363,gcam-v7.0 -SSP4,Canada,2025,1.10297,gcam-v7.0 -SSP4,Canada,2030,1.17595,gcam-v7.0 -SSP4,Canada,2035,1.25509,gcam-v7.0 -SSP4,Canada,2040,1.34431,gcam-v7.0 -SSP4,Canada,2045,1.43617,gcam-v7.0 -SSP4,Canada,2050,1.54466,gcam-v7.0 -SSP4,Canada,2055,1.66277,gcam-v7.0 -SSP4,Canada,2060,1.78935,gcam-v7.0 -SSP4,Canada,2065,1.92028,gcam-v7.0 -SSP4,Canada,2070,2.0568,gcam-v7.0 -SSP4,Canada,2075,2.19696,gcam-v7.0 -SSP4,Canada,2080,2.35164,gcam-v7.0 -SSP4,Canada,2085,2.52221,gcam-v7.0 -SSP4,Canada,2090,2.70624,gcam-v7.0 -SSP4,Canada,2095,2.89914,gcam-v7.0 -SSP4,Canada,2100,3.09799,gcam-v7.0 -SSP4,Central America and Caribbean,1975,0,gcam-v7.0 -SSP4,Central America and Caribbean,1990,0,gcam-v7.0 -SSP4,Central America and Caribbean,2005,0,gcam-v7.0 -SSP4,Central America and Caribbean,2010,0,gcam-v7.0 -SSP4,Central America and Caribbean,2015,0,gcam-v7.0 -SSP4,Central America and Caribbean,2020,1.06397,gcam-v7.0 -SSP4,Central America and Caribbean,2025,1.14,gcam-v7.0 -SSP4,Central America and Caribbean,2030,1.21115,gcam-v7.0 -SSP4,Central America and Caribbean,2035,1.27052,gcam-v7.0 -SSP4,Central America and Caribbean,2040,1.32246,gcam-v7.0 -SSP4,Central America and Caribbean,2045,1.36433,gcam-v7.0 -SSP4,Central America and Caribbean,2050,1.40237,gcam-v7.0 -SSP4,Central America and Caribbean,2055,1.44259,gcam-v7.0 -SSP4,Central America and Caribbean,2060,1.48601,gcam-v7.0 -SSP4,Central America and Caribbean,2065,1.52869,gcam-v7.0 -SSP4,Central America and Caribbean,2070,1.57062,gcam-v7.0 -SSP4,Central America and Caribbean,2075,1.61169,gcam-v7.0 -SSP4,Central America and Caribbean,2080,1.65183,gcam-v7.0 -SSP4,Central America and Caribbean,2085,1.69084,gcam-v7.0 -SSP4,Central America and Caribbean,2090,1.73076,gcam-v7.0 -SSP4,Central America and Caribbean,2095,1.77164,gcam-v7.0 -SSP4,Central America and Caribbean,2100,1.81363,gcam-v7.0 -SSP4,Central Asia,1975,0,gcam-v7.0 -SSP4,Central Asia,1990,0,gcam-v7.0 -SSP4,Central Asia,2005,0,gcam-v7.0 -SSP4,Central Asia,2010,0,gcam-v7.0 -SSP4,Central Asia,2015,0,gcam-v7.0 -SSP4,Central Asia,2020,1.11383,gcam-v7.0 -SSP4,Central Asia,2025,1.35595,gcam-v7.0 -SSP4,Central Asia,2030,1.56331,gcam-v7.0 -SSP4,Central Asia,2035,1.75468,gcam-v7.0 -SSP4,Central Asia,2040,1.95305,gcam-v7.0 -SSP4,Central Asia,2045,2.13511,gcam-v7.0 -SSP4,Central Asia,2050,2.2896,gcam-v7.0 -SSP4,Central Asia,2055,2.43391,gcam-v7.0 -SSP4,Central Asia,2060,2.58762,gcam-v7.0 -SSP4,Central Asia,2065,2.74902,gcam-v7.0 -SSP4,Central Asia,2070,2.9076,gcam-v7.0 -SSP4,Central Asia,2075,3.0682,gcam-v7.0 -SSP4,Central Asia,2080,3.24252,gcam-v7.0 -SSP4,Central Asia,2085,3.42047,gcam-v7.0 -SSP4,Central Asia,2090,3.60372,gcam-v7.0 -SSP4,Central Asia,2095,3.78855,gcam-v7.0 -SSP4,Central Asia,2100,3.96612,gcam-v7.0 -SSP4,China,1975,0,gcam-v7.0 -SSP4,China,1990,0,gcam-v7.0 -SSP4,China,2005,0,gcam-v7.0 -SSP4,China,2010,0,gcam-v7.0 -SSP4,China,2015,0,gcam-v7.0 -SSP4,China,2020,1.36822,gcam-v7.0 -SSP4,China,2025,1.70836,gcam-v7.0 -SSP4,China,2030,2.03208,gcam-v7.0 -SSP4,China,2035,2.36021,gcam-v7.0 -SSP4,China,2040,2.68156,gcam-v7.0 -SSP4,China,2045,2.95259,gcam-v7.0 -SSP4,China,2050,3.21765,gcam-v7.0 -SSP4,China,2055,3.51406,gcam-v7.0 -SSP4,China,2060,3.80108,gcam-v7.0 -SSP4,China,2065,4.07832,gcam-v7.0 -SSP4,China,2070,4.33359,gcam-v7.0 -SSP4,China,2075,4.58672,gcam-v7.0 -SSP4,China,2080,4.82808,gcam-v7.0 -SSP4,China,2085,5.07315,gcam-v7.0 -SSP4,China,2090,5.31816,gcam-v7.0 -SSP4,China,2095,5.5621,gcam-v7.0 -SSP4,China,2100,5.79982,gcam-v7.0 -SSP4,Colombia,1975,0,gcam-v7.0 -SSP4,Colombia,1990,0,gcam-v7.0 -SSP4,Colombia,2005,0,gcam-v7.0 -SSP4,Colombia,2010,0,gcam-v7.0 -SSP4,Colombia,2015,0,gcam-v7.0 -SSP4,Colombia,2020,1.12597,gcam-v7.0 -SSP4,Colombia,2025,1.20865,gcam-v7.0 -SSP4,Colombia,2030,1.30261,gcam-v7.0 -SSP4,Colombia,2035,1.40617,gcam-v7.0 -SSP4,Colombia,2040,1.52246,gcam-v7.0 -SSP4,Colombia,2045,1.64533,gcam-v7.0 -SSP4,Colombia,2050,1.77697,gcam-v7.0 -SSP4,Colombia,2055,1.9184,gcam-v7.0 -SSP4,Colombia,2060,2.0753,gcam-v7.0 -SSP4,Colombia,2065,2.23989,gcam-v7.0 -SSP4,Colombia,2070,2.41118,gcam-v7.0 -SSP4,Colombia,2075,2.59271,gcam-v7.0 -SSP4,Colombia,2080,2.78442,gcam-v7.0 -SSP4,Colombia,2085,2.98863,gcam-v7.0 -SSP4,Colombia,2090,3.20818,gcam-v7.0 -SSP4,Colombia,2095,3.44262,gcam-v7.0 -SSP4,Colombia,2100,3.69022,gcam-v7.0 -SSP4,EU-12,1975,0,gcam-v7.0 -SSP4,EU-12,1990,0,gcam-v7.0 -SSP4,EU-12,2005,0,gcam-v7.0 -SSP4,EU-12,2010,0,gcam-v7.0 -SSP4,EU-12,2015,0,gcam-v7.0 -SSP4,EU-12,2020,1.09202,gcam-v7.0 -SSP4,EU-12,2025,1.24468,gcam-v7.0 -SSP4,EU-12,2030,1.38153,gcam-v7.0 -SSP4,EU-12,2035,1.51454,gcam-v7.0 -SSP4,EU-12,2040,1.64986,gcam-v7.0 -SSP4,EU-12,2045,1.793,gcam-v7.0 -SSP4,EU-12,2050,1.94028,gcam-v7.0 -SSP4,EU-12,2055,2.09581,gcam-v7.0 -SSP4,EU-12,2060,2.24972,gcam-v7.0 -SSP4,EU-12,2065,2.39869,gcam-v7.0 -SSP4,EU-12,2070,2.54535,gcam-v7.0 -SSP4,EU-12,2075,2.70573,gcam-v7.0 -SSP4,EU-12,2080,2.8808,gcam-v7.0 -SSP4,EU-12,2085,3.06555,gcam-v7.0 -SSP4,EU-12,2090,3.2592,gcam-v7.0 -SSP4,EU-12,2095,3.45917,gcam-v7.0 -SSP4,EU-12,2100,3.66183,gcam-v7.0 -SSP4,EU-15,1975,0,gcam-v7.0 -SSP4,EU-15,1990,0,gcam-v7.0 -SSP4,EU-15,2005,0,gcam-v7.0 -SSP4,EU-15,2010,0,gcam-v7.0 -SSP4,EU-15,2015,0,gcam-v7.0 -SSP4,EU-15,2020,1.05318,gcam-v7.0 -SSP4,EU-15,2025,1.13641,gcam-v7.0 -SSP4,EU-15,2030,1.23484,gcam-v7.0 -SSP4,EU-15,2035,1.34368,gcam-v7.0 -SSP4,EU-15,2040,1.45085,gcam-v7.0 -SSP4,EU-15,2045,1.55329,gcam-v7.0 -SSP4,EU-15,2050,1.65392,gcam-v7.0 -SSP4,EU-15,2055,1.75733,gcam-v7.0 -SSP4,EU-15,2060,1.86115,gcam-v7.0 -SSP4,EU-15,2065,1.96618,gcam-v7.0 -SSP4,EU-15,2070,2.07424,gcam-v7.0 -SSP4,EU-15,2075,2.19066,gcam-v7.0 -SSP4,EU-15,2080,2.31475,gcam-v7.0 -SSP4,EU-15,2085,2.44696,gcam-v7.0 -SSP4,EU-15,2090,2.58879,gcam-v7.0 -SSP4,EU-15,2095,2.74114,gcam-v7.0 -SSP4,EU-15,2100,2.90205,gcam-v7.0 -SSP4,Europe_Eastern,1975,0,gcam-v7.0 -SSP4,Europe_Eastern,1990,0,gcam-v7.0 -SSP4,Europe_Eastern,2005,0,gcam-v7.0 -SSP4,Europe_Eastern,2010,0,gcam-v7.0 -SSP4,Europe_Eastern,2015,0,gcam-v7.0 -SSP4,Europe_Eastern,2020,0.965439,gcam-v7.0 -SSP4,Europe_Eastern,2025,1.09194,gcam-v7.0 -SSP4,Europe_Eastern,2030,1.20611,gcam-v7.0 -SSP4,Europe_Eastern,2035,1.31496,gcam-v7.0 -SSP4,Europe_Eastern,2040,1.42909,gcam-v7.0 -SSP4,Europe_Eastern,2045,1.54165,gcam-v7.0 -SSP4,Europe_Eastern,2050,1.66466,gcam-v7.0 -SSP4,Europe_Eastern,2055,1.8002,gcam-v7.0 -SSP4,Europe_Eastern,2060,1.94906,gcam-v7.0 -SSP4,Europe_Eastern,2065,2.09289,gcam-v7.0 -SSP4,Europe_Eastern,2070,2.2419,gcam-v7.0 -SSP4,Europe_Eastern,2075,2.46401,gcam-v7.0 -SSP4,Europe_Eastern,2080,2.64117,gcam-v7.0 -SSP4,Europe_Eastern,2085,2.82635,gcam-v7.0 -SSP4,Europe_Eastern,2090,3.02133,gcam-v7.0 -SSP4,Europe_Eastern,2095,3.22459,gcam-v7.0 -SSP4,Europe_Eastern,2100,3.43107,gcam-v7.0 -SSP4,Europe_Non_EU,1975,0,gcam-v7.0 -SSP4,Europe_Non_EU,1990,0,gcam-v7.0 -SSP4,Europe_Non_EU,2005,0,gcam-v7.0 -SSP4,Europe_Non_EU,2010,0,gcam-v7.0 -SSP4,Europe_Non_EU,2015,0,gcam-v7.0 -SSP4,Europe_Non_EU,2020,1.07989,gcam-v7.0 -SSP4,Europe_Non_EU,2025,1.16892,gcam-v7.0 -SSP4,Europe_Non_EU,2030,1.24424,gcam-v7.0 -SSP4,Europe_Non_EU,2035,1.31255,gcam-v7.0 -SSP4,Europe_Non_EU,2040,1.38506,gcam-v7.0 -SSP4,Europe_Non_EU,2045,1.45724,gcam-v7.0 -SSP4,Europe_Non_EU,2050,1.53111,gcam-v7.0 -SSP4,Europe_Non_EU,2055,1.60634,gcam-v7.0 -SSP4,Europe_Non_EU,2060,1.68629,gcam-v7.0 -SSP4,Europe_Non_EU,2065,1.76927,gcam-v7.0 -SSP4,Europe_Non_EU,2070,1.85206,gcam-v7.0 -SSP4,Europe_Non_EU,2075,1.93892,gcam-v7.0 -SSP4,Europe_Non_EU,2080,2.02946,gcam-v7.0 -SSP4,Europe_Non_EU,2085,2.12416,gcam-v7.0 -SSP4,Europe_Non_EU,2090,2.22565,gcam-v7.0 -SSP4,Europe_Non_EU,2095,2.33618,gcam-v7.0 -SSP4,Europe_Non_EU,2100,2.45489,gcam-v7.0 -SSP4,European Free Trade Association,1975,0,gcam-v7.0 -SSP4,European Free Trade Association,1990,0,gcam-v7.0 -SSP4,European Free Trade Association,2005,0,gcam-v7.0 -SSP4,European Free Trade Association,2010,0,gcam-v7.0 -SSP4,European Free Trade Association,2015,0,gcam-v7.0 -SSP4,European Free Trade Association,2020,1.0801,gcam-v7.0 -SSP4,European Free Trade Association,2025,1.17723,gcam-v7.0 -SSP4,European Free Trade Association,2030,1.29256,gcam-v7.0 -SSP4,European Free Trade Association,2035,1.41364,gcam-v7.0 -SSP4,European Free Trade Association,2040,1.52089,gcam-v7.0 -SSP4,European Free Trade Association,2045,1.61461,gcam-v7.0 -SSP4,European Free Trade Association,2050,1.71447,gcam-v7.0 -SSP4,European Free Trade Association,2055,1.82345,gcam-v7.0 -SSP4,European Free Trade Association,2060,1.94279,gcam-v7.0 -SSP4,European Free Trade Association,2065,2.06461,gcam-v7.0 -SSP4,European Free Trade Association,2070,2.18737,gcam-v7.0 -SSP4,European Free Trade Association,2075,2.31723,gcam-v7.0 -SSP4,European Free Trade Association,2080,2.45935,gcam-v7.0 -SSP4,European Free Trade Association,2085,2.61621,gcam-v7.0 -SSP4,European Free Trade Association,2090,2.78965,gcam-v7.0 -SSP4,European Free Trade Association,2095,2.97688,gcam-v7.0 -SSP4,European Free Trade Association,2100,3.17047,gcam-v7.0 -SSP4,India,1975,0,gcam-v7.0 -SSP4,India,1990,0,gcam-v7.0 -SSP4,India,2005,0,gcam-v7.0 -SSP4,India,2010,0,gcam-v7.0 -SSP4,India,2015,0,gcam-v7.0 -SSP4,India,2020,1.17232,gcam-v7.0 -SSP4,India,2025,1.36681,gcam-v7.0 -SSP4,India,2030,1.53013,gcam-v7.0 -SSP4,India,2035,1.67284,gcam-v7.0 -SSP4,India,2040,1.8145,gcam-v7.0 -SSP4,India,2045,1.95572,gcam-v7.0 -SSP4,India,2050,2.10452,gcam-v7.0 -SSP4,India,2055,2.26971,gcam-v7.0 -SSP4,India,2060,2.44947,gcam-v7.0 -SSP4,India,2065,2.63838,gcam-v7.0 -SSP4,India,2070,2.83554,gcam-v7.0 -SSP4,India,2075,3.04562,gcam-v7.0 -SSP4,India,2080,3.26586,gcam-v7.0 -SSP4,India,2085,3.49568,gcam-v7.0 -SSP4,India,2090,3.73475,gcam-v7.0 -SSP4,India,2095,3.98426,gcam-v7.0 -SSP4,India,2100,4.24637,gcam-v7.0 -SSP4,Indonesia,1975,0,gcam-v7.0 -SSP4,Indonesia,1990,0,gcam-v7.0 -SSP4,Indonesia,2005,0,gcam-v7.0 -SSP4,Indonesia,2010,0,gcam-v7.0 -SSP4,Indonesia,2015,0,gcam-v7.0 -SSP4,Indonesia,2020,1.2153,gcam-v7.0 -SSP4,Indonesia,2025,1.45954,gcam-v7.0 -SSP4,Indonesia,2030,1.68969,gcam-v7.0 -SSP4,Indonesia,2035,1.9157,gcam-v7.0 -SSP4,Indonesia,2040,2.16719,gcam-v7.0 -SSP4,Indonesia,2045,2.41962,gcam-v7.0 -SSP4,Indonesia,2050,2.67789,gcam-v7.0 -SSP4,Indonesia,2055,2.94959,gcam-v7.0 -SSP4,Indonesia,2060,3.23975,gcam-v7.0 -SSP4,Indonesia,2065,3.54319,gcam-v7.0 -SSP4,Indonesia,2070,3.86985,gcam-v7.0 -SSP4,Indonesia,2075,4.21134,gcam-v7.0 -SSP4,Indonesia,2080,4.56552,gcam-v7.0 -SSP4,Indonesia,2085,4.93519,gcam-v7.0 -SSP4,Indonesia,2090,5.32483,gcam-v7.0 -SSP4,Indonesia,2095,5.73454,gcam-v7.0 -SSP4,Indonesia,2100,6.16153,gcam-v7.0 -SSP4,Japan,1975,0,gcam-v7.0 -SSP4,Japan,1990,0,gcam-v7.0 -SSP4,Japan,2005,0,gcam-v7.0 -SSP4,Japan,2010,0,gcam-v7.0 -SSP4,Japan,2015,0,gcam-v7.0 -SSP4,Japan,2020,1.04193,gcam-v7.0 -SSP4,Japan,2025,1.12184,gcam-v7.0 -SSP4,Japan,2030,1.21673,gcam-v7.0 -SSP4,Japan,2035,1.32406,gcam-v7.0 -SSP4,Japan,2040,1.4442,gcam-v7.0 -SSP4,Japan,2045,1.55973,gcam-v7.0 -SSP4,Japan,2050,1.66755,gcam-v7.0 -SSP4,Japan,2055,1.77432,gcam-v7.0 -SSP4,Japan,2060,1.87965,gcam-v7.0 -SSP4,Japan,2065,1.98773,gcam-v7.0 -SSP4,Japan,2070,2.09571,gcam-v7.0 -SSP4,Japan,2075,2.20599,gcam-v7.0 -SSP4,Japan,2080,2.32423,gcam-v7.0 -SSP4,Japan,2085,2.44268,gcam-v7.0 -SSP4,Japan,2090,2.56525,gcam-v7.0 -SSP4,Japan,2095,2.69272,gcam-v7.0 -SSP4,Japan,2100,2.82524,gcam-v7.0 -SSP4,Mexico,1975,0,gcam-v7.0 -SSP4,Mexico,1990,0,gcam-v7.0 -SSP4,Mexico,2005,0,gcam-v7.0 -SSP4,Mexico,2010,0,gcam-v7.0 -SSP4,Mexico,2015,0,gcam-v7.0 -SSP4,Mexico,2020,1.04257,gcam-v7.0 -SSP4,Mexico,2025,1.13026,gcam-v7.0 -SSP4,Mexico,2030,1.23657,gcam-v7.0 -SSP4,Mexico,2035,1.34864,gcam-v7.0 -SSP4,Mexico,2040,1.45092,gcam-v7.0 -SSP4,Mexico,2045,1.54447,gcam-v7.0 -SSP4,Mexico,2050,1.63162,gcam-v7.0 -SSP4,Mexico,2055,1.72655,gcam-v7.0 -SSP4,Mexico,2060,1.83228,gcam-v7.0 -SSP4,Mexico,2065,1.94057,gcam-v7.0 -SSP4,Mexico,2070,2.05383,gcam-v7.0 -SSP4,Mexico,2075,2.1711,gcam-v7.0 -SSP4,Mexico,2080,2.29695,gcam-v7.0 -SSP4,Mexico,2085,2.43203,gcam-v7.0 -SSP4,Mexico,2090,2.57571,gcam-v7.0 -SSP4,Mexico,2095,2.72912,gcam-v7.0 -SSP4,Mexico,2100,2.89315,gcam-v7.0 -SSP4,Middle East,1975,0,gcam-v7.0 -SSP4,Middle East,1990,0,gcam-v7.0 -SSP4,Middle East,2005,0,gcam-v7.0 -SSP4,Middle East,2010,0,gcam-v7.0 -SSP4,Middle East,2015,0,gcam-v7.0 -SSP4,Middle East,2020,1.08097,gcam-v7.0 -SSP4,Middle East,2025,1.26652,gcam-v7.0 -SSP4,Middle East,2030,1.45695,gcam-v7.0 -SSP4,Middle East,2035,1.63076,gcam-v7.0 -SSP4,Middle East,2040,1.79113,gcam-v7.0 -SSP4,Middle East,2045,1.93374,gcam-v7.0 -SSP4,Middle East,2050,2.05567,gcam-v7.0 -SSP4,Middle East,2055,2.15043,gcam-v7.0 -SSP4,Middle East,2060,2.23294,gcam-v7.0 -SSP4,Middle East,2065,2.31742,gcam-v7.0 -SSP4,Middle East,2070,2.40611,gcam-v7.0 -SSP4,Middle East,2075,2.50472,gcam-v7.0 -SSP4,Middle East,2080,2.61435,gcam-v7.0 -SSP4,Middle East,2085,2.73407,gcam-v7.0 -SSP4,Middle East,2090,2.86267,gcam-v7.0 -SSP4,Middle East,2095,3.00649,gcam-v7.0 -SSP4,Middle East,2100,3.17131,gcam-v7.0 -SSP4,Pakistan,1975,0,gcam-v7.0 -SSP4,Pakistan,1990,0,gcam-v7.0 -SSP4,Pakistan,2005,0,gcam-v7.0 -SSP4,Pakistan,2010,0,gcam-v7.0 -SSP4,Pakistan,2015,0,gcam-v7.0 -SSP4,Pakistan,2020,1.05732,gcam-v7.0 -SSP4,Pakistan,2025,1.12172,gcam-v7.0 -SSP4,Pakistan,2030,1.177,gcam-v7.0 -SSP4,Pakistan,2035,1.21565,gcam-v7.0 -SSP4,Pakistan,2040,1.25213,gcam-v7.0 -SSP4,Pakistan,2045,1.28821,gcam-v7.0 -SSP4,Pakistan,2050,1.32236,gcam-v7.0 -SSP4,Pakistan,2055,1.36518,gcam-v7.0 -SSP4,Pakistan,2060,1.41162,gcam-v7.0 -SSP4,Pakistan,2065,1.46377,gcam-v7.0 -SSP4,Pakistan,2070,1.51847,gcam-v7.0 -SSP4,Pakistan,2075,1.57846,gcam-v7.0 -SSP4,Pakistan,2080,1.64244,gcam-v7.0 -SSP4,Pakistan,2085,1.70932,gcam-v7.0 -SSP4,Pakistan,2090,1.77778,gcam-v7.0 -SSP4,Pakistan,2095,1.84907,gcam-v7.0 -SSP4,Pakistan,2100,1.92704,gcam-v7.0 -SSP4,Russia,1975,0,gcam-v7.0 -SSP4,Russia,1990,0,gcam-v7.0 -SSP4,Russia,2005,0,gcam-v7.0 -SSP4,Russia,2010,0,gcam-v7.0 -SSP4,Russia,2015,0,gcam-v7.0 -SSP4,Russia,2020,1.14216,gcam-v7.0 -SSP4,Russia,2025,1.32597,gcam-v7.0 -SSP4,Russia,2030,1.55828,gcam-v7.0 -SSP4,Russia,2035,1.78083,gcam-v7.0 -SSP4,Russia,2040,1.97832,gcam-v7.0 -SSP4,Russia,2045,2.15174,gcam-v7.0 -SSP4,Russia,2050,2.31422,gcam-v7.0 -SSP4,Russia,2055,2.48997,gcam-v7.0 -SSP4,Russia,2060,2.65883,gcam-v7.0 -SSP4,Russia,2065,2.81309,gcam-v7.0 -SSP4,Russia,2070,2.97828,gcam-v7.0 -SSP4,Russia,2075,3.1554,gcam-v7.0 -SSP4,Russia,2080,3.35133,gcam-v7.0 -SSP4,Russia,2085,3.54927,gcam-v7.0 -SSP4,Russia,2090,3.74543,gcam-v7.0 -SSP4,Russia,2095,3.93775,gcam-v7.0 -SSP4,Russia,2100,4.12466,gcam-v7.0 -SSP4,South Africa,1975,0,gcam-v7.0 -SSP4,South Africa,1990,0,gcam-v7.0 -SSP4,South Africa,2005,0,gcam-v7.0 -SSP4,South Africa,2010,0,gcam-v7.0 -SSP4,South Africa,2015,0,gcam-v7.0 -SSP4,South Africa,2020,1.13631,gcam-v7.0 -SSP4,South Africa,2025,1.28591,gcam-v7.0 -SSP4,South Africa,2030,1.42687,gcam-v7.0 -SSP4,South Africa,2035,1.5589,gcam-v7.0 -SSP4,South Africa,2040,1.68399,gcam-v7.0 -SSP4,South Africa,2045,1.80168,gcam-v7.0 -SSP4,South Africa,2050,1.92206,gcam-v7.0 -SSP4,South Africa,2055,2.05581,gcam-v7.0 -SSP4,South Africa,2060,2.19816,gcam-v7.0 -SSP4,South Africa,2065,2.34579,gcam-v7.0 -SSP4,South Africa,2070,2.49822,gcam-v7.0 -SSP4,South Africa,2075,2.65729,gcam-v7.0 -SSP4,South Africa,2080,2.82583,gcam-v7.0 -SSP4,South Africa,2085,3.00135,gcam-v7.0 -SSP4,South Africa,2090,3.18743,gcam-v7.0 -SSP4,South Africa,2095,3.38392,gcam-v7.0 -SSP4,South Africa,2100,3.59393,gcam-v7.0 -SSP4,South America_Northern,1975,0,gcam-v7.0 -SSP4,South America_Northern,1990,0,gcam-v7.0 -SSP4,South America_Northern,2005,0,gcam-v7.0 -SSP4,South America_Northern,2010,0,gcam-v7.0 -SSP4,South America_Northern,2015,0,gcam-v7.0 -SSP4,South America_Northern,2020,0.850294,gcam-v7.0 -SSP4,South America_Northern,2025,0.854998,gcam-v7.0 -SSP4,South America_Northern,2030,0.886724,gcam-v7.0 -SSP4,South America_Northern,2035,0.992468,gcam-v7.0 -SSP4,South America_Northern,2040,1.18783,gcam-v7.0 -SSP4,South America_Northern,2045,1.38133,gcam-v7.0 -SSP4,South America_Northern,2050,1.57563,gcam-v7.0 -SSP4,South America_Northern,2055,1.7736,gcam-v7.0 -SSP4,South America_Northern,2060,1.94433,gcam-v7.0 -SSP4,South America_Northern,2065,2.10219,gcam-v7.0 -SSP4,South America_Northern,2070,2.24786,gcam-v7.0 -SSP4,South America_Northern,2075,2.39813,gcam-v7.0 -SSP4,South America_Northern,2080,2.56831,gcam-v7.0 -SSP4,South America_Northern,2085,2.75462,gcam-v7.0 -SSP4,South America_Northern,2090,2.95599,gcam-v7.0 -SSP4,South America_Northern,2095,3.16927,gcam-v7.0 -SSP4,South America_Northern,2100,3.39464,gcam-v7.0 -SSP4,South America_Southern,1975,0,gcam-v7.0 -SSP4,South America_Southern,1990,0,gcam-v7.0 -SSP4,South America_Southern,2005,0,gcam-v7.0 -SSP4,South America_Southern,2010,0,gcam-v7.0 -SSP4,South America_Southern,2015,0,gcam-v7.0 -SSP4,South America_Southern,2020,1.13568,gcam-v7.0 -SSP4,South America_Southern,2025,1.2708,gcam-v7.0 -SSP4,South America_Southern,2030,1.38117,gcam-v7.0 -SSP4,South America_Southern,2035,1.48622,gcam-v7.0 -SSP4,South America_Southern,2040,1.5984,gcam-v7.0 -SSP4,South America_Southern,2045,1.71292,gcam-v7.0 -SSP4,South America_Southern,2050,1.83282,gcam-v7.0 -SSP4,South America_Southern,2055,1.96256,gcam-v7.0 -SSP4,South America_Southern,2060,2.10708,gcam-v7.0 -SSP4,South America_Southern,2065,2.26117,gcam-v7.0 -SSP4,South America_Southern,2070,2.42412,gcam-v7.0 -SSP4,South America_Southern,2075,2.59567,gcam-v7.0 -SSP4,South America_Southern,2080,2.77574,gcam-v7.0 -SSP4,South America_Southern,2085,2.96463,gcam-v7.0 -SSP4,South America_Southern,2090,3.16467,gcam-v7.0 -SSP4,South America_Southern,2095,3.37799,gcam-v7.0 -SSP4,South America_Southern,2100,3.60591,gcam-v7.0 -SSP4,South Asia,1975,0,gcam-v7.0 -SSP4,South Asia,1990,0,gcam-v7.0 -SSP4,South Asia,2005,0,gcam-v7.0 -SSP4,South Asia,2010,0,gcam-v7.0 -SSP4,South Asia,2015,0,gcam-v7.0 -SSP4,South Asia,2020,1.14386,gcam-v7.0 -SSP4,South Asia,2025,1.27803,gcam-v7.0 -SSP4,South Asia,2030,1.32564,gcam-v7.0 -SSP4,South Asia,2035,1.30192,gcam-v7.0 -SSP4,South Asia,2040,1.27236,gcam-v7.0 -SSP4,South Asia,2045,1.24355,gcam-v7.0 -SSP4,South Asia,2050,1.21758,gcam-v7.0 -SSP4,South Asia,2055,1.2003,gcam-v7.0 -SSP4,South Asia,2060,1.19316,gcam-v7.0 -SSP4,South Asia,2065,1.19196,gcam-v7.0 -SSP4,South Asia,2070,1.19373,gcam-v7.0 -SSP4,South Asia,2075,1.1983,gcam-v7.0 -SSP4,South Asia,2080,1.20622,gcam-v7.0 -SSP4,South Asia,2085,1.21825,gcam-v7.0 -SSP4,South Asia,2090,1.23458,gcam-v7.0 -SSP4,South Asia,2095,1.25414,gcam-v7.0 -SSP4,South Asia,2100,1.27558,gcam-v7.0 -SSP4,South Korea,1975,0,gcam-v7.0 -SSP4,South Korea,1990,0,gcam-v7.0 -SSP4,South Korea,2005,0,gcam-v7.0 -SSP4,South Korea,2010,0,gcam-v7.0 -SSP4,South Korea,2015,0,gcam-v7.0 -SSP4,South Korea,2020,0.970017,gcam-v7.0 -SSP4,South Korea,2025,1.10152,gcam-v7.0 -SSP4,South Korea,2030,1.2334,gcam-v7.0 -SSP4,South Korea,2035,1.35149,gcam-v7.0 -SSP4,South Korea,2040,1.46146,gcam-v7.0 -SSP4,South Korea,2045,1.55747,gcam-v7.0 -SSP4,South Korea,2050,1.64774,gcam-v7.0 -SSP4,South Korea,2055,1.72871,gcam-v7.0 -SSP4,South Korea,2060,1.81729,gcam-v7.0 -SSP4,South Korea,2065,1.90384,gcam-v7.0 -SSP4,South Korea,2070,1.97432,gcam-v7.0 -SSP4,South Korea,2075,2.04323,gcam-v7.0 -SSP4,South Korea,2080,2.10569,gcam-v7.0 -SSP4,South Korea,2085,2.16651,gcam-v7.0 -SSP4,South Korea,2090,2.22953,gcam-v7.0 -SSP4,South Korea,2095,2.29581,gcam-v7.0 -SSP4,South Korea,2100,2.36013,gcam-v7.0 -SSP4,Southeast Asia,1975,0,gcam-v7.0 -SSP4,Southeast Asia,1990,0,gcam-v7.0 -SSP4,Southeast Asia,2005,0,gcam-v7.0 -SSP4,Southeast Asia,2010,0,gcam-v7.0 -SSP4,Southeast Asia,2015,0,gcam-v7.0 -SSP4,Southeast Asia,2020,1.14243,gcam-v7.0 -SSP4,Southeast Asia,2025,1.28577,gcam-v7.0 -SSP4,Southeast Asia,2030,1.39275,gcam-v7.0 -SSP4,Southeast Asia,2035,1.46183,gcam-v7.0 -SSP4,Southeast Asia,2040,1.53202,gcam-v7.0 -SSP4,Southeast Asia,2045,1.58967,gcam-v7.0 -SSP4,Southeast Asia,2050,1.64578,gcam-v7.0 -SSP4,Southeast Asia,2055,1.70821,gcam-v7.0 -SSP4,Southeast Asia,2060,1.77614,gcam-v7.0 -SSP4,Southeast Asia,2065,1.84359,gcam-v7.0 -SSP4,Southeast Asia,2070,1.91013,gcam-v7.0 -SSP4,Southeast Asia,2075,1.97456,gcam-v7.0 -SSP4,Southeast Asia,2080,2.03964,gcam-v7.0 -SSP4,Southeast Asia,2085,2.10454,gcam-v7.0 -SSP4,Southeast Asia,2090,2.16843,gcam-v7.0 -SSP4,Southeast Asia,2095,2.23198,gcam-v7.0 -SSP4,Southeast Asia,2100,2.29533,gcam-v7.0 -SSP4,Taiwan,1975,0,gcam-v7.0 -SSP4,Taiwan,1990,0,gcam-v7.0 -SSP4,Taiwan,2005,0,gcam-v7.0 -SSP4,Taiwan,2010,0,gcam-v7.0 -SSP4,Taiwan,2015,0,gcam-v7.0 -SSP4,Taiwan,2020,1.1695,gcam-v7.0 -SSP4,Taiwan,2025,1.27187,gcam-v7.0 -SSP4,Taiwan,2030,1.34635,gcam-v7.0 -SSP4,Taiwan,2035,1.40911,gcam-v7.0 -SSP4,Taiwan,2040,1.46313,gcam-v7.0 -SSP4,Taiwan,2045,1.49863,gcam-v7.0 -SSP4,Taiwan,2050,1.51473,gcam-v7.0 -SSP4,Taiwan,2055,1.52073,gcam-v7.0 -SSP4,Taiwan,2060,1.53137,gcam-v7.0 -SSP4,Taiwan,2065,1.59057,gcam-v7.0 -SSP4,Taiwan,2070,1.64705,gcam-v7.0 -SSP4,Taiwan,2075,1.69245,gcam-v7.0 -SSP4,Taiwan,2080,1.72728,gcam-v7.0 -SSP4,Taiwan,2085,1.74854,gcam-v7.0 -SSP4,Taiwan,2090,1.75907,gcam-v7.0 -SSP4,Taiwan,2095,1.75954,gcam-v7.0 -SSP4,Taiwan,2100,1.751,gcam-v7.0 -SSP4,USA,1975,0,gcam-v7.0 -SSP4,USA,1990,0,gcam-v7.0 -SSP4,USA,2005,0,gcam-v7.0 -SSP4,USA,2010,0,gcam-v7.0 -SSP4,USA,2015,0,gcam-v7.0 -SSP4,USA,2020,1.0987,gcam-v7.0 -SSP4,USA,2025,1.20612,gcam-v7.0 -SSP4,USA,2030,1.30496,gcam-v7.0 -SSP4,USA,2035,1.39018,gcam-v7.0 -SSP4,USA,2040,1.46349,gcam-v7.0 -SSP4,USA,2045,1.52317,gcam-v7.0 -SSP4,USA,2050,1.58517,gcam-v7.0 -SSP4,USA,2055,1.65243,gcam-v7.0 -SSP4,USA,2060,1.72567,gcam-v7.0 -SSP4,USA,2065,1.798,gcam-v7.0 -SSP4,USA,2070,1.87564,gcam-v7.0 -SSP4,USA,2075,1.95988,gcam-v7.0 -SSP4,USA,2080,2.04698,gcam-v7.0 -SSP4,USA,2085,2.14238,gcam-v7.0 -SSP4,USA,2090,2.24675,gcam-v7.0 -SSP4,USA,2095,2.36043,gcam-v7.0 -SSP4,USA,2100,2.48131,gcam-v7.0 -SSP5,Africa_Eastern,1975,0,gcam-v7.0 -SSP5,Africa_Eastern,1990,0,gcam-v7.0 -SSP5,Africa_Eastern,2005,0,gcam-v7.0 -SSP5,Africa_Eastern,2010,0,gcam-v7.0 -SSP5,Africa_Eastern,2015,0,gcam-v7.0 -SSP5,Africa_Eastern,2020,1.16765,gcam-v7.0 -SSP5,Africa_Eastern,2025,1.41879,gcam-v7.0 -SSP5,Africa_Eastern,2030,1.73272,gcam-v7.0 -SSP5,Africa_Eastern,2035,2.09113,gcam-v7.0 -SSP5,Africa_Eastern,2040,2.42412,gcam-v7.0 -SSP5,Africa_Eastern,2045,2.75875,gcam-v7.0 -SSP5,Africa_Eastern,2050,3.13389,gcam-v7.0 -SSP5,Africa_Eastern,2055,3.57159,gcam-v7.0 -SSP5,Africa_Eastern,2060,4.06887,gcam-v7.0 -SSP5,Africa_Eastern,2065,4.6289,gcam-v7.0 -SSP5,Africa_Eastern,2070,5.25245,gcam-v7.0 -SSP5,Africa_Eastern,2075,5.94049,gcam-v7.0 -SSP5,Africa_Eastern,2080,6.69761,gcam-v7.0 -SSP5,Africa_Eastern,2085,7.52289,gcam-v7.0 -SSP5,Africa_Eastern,2090,8.41287,gcam-v7.0 -SSP5,Africa_Eastern,2095,9.36583,gcam-v7.0 -SSP5,Africa_Eastern,2100,10.3764,gcam-v7.0 -SSP5,Africa_Northern,1975,0,gcam-v7.0 -SSP5,Africa_Northern,1990,0,gcam-v7.0 -SSP5,Africa_Northern,2005,0,gcam-v7.0 -SSP5,Africa_Northern,2010,0,gcam-v7.0 -SSP5,Africa_Northern,2015,0,gcam-v7.0 -SSP5,Africa_Northern,2020,1.09538,gcam-v7.0 -SSP5,Africa_Northern,2025,1.27342,gcam-v7.0 -SSP5,Africa_Northern,2030,1.47035,gcam-v7.0 -SSP5,Africa_Northern,2035,1.69629,gcam-v7.0 -SSP5,Africa_Northern,2040,1.93286,gcam-v7.0 -SSP5,Africa_Northern,2045,2.17698,gcam-v7.0 -SSP5,Africa_Northern,2050,2.4209,gcam-v7.0 -SSP5,Africa_Northern,2055,2.67533,gcam-v7.0 -SSP5,Africa_Northern,2060,2.94139,gcam-v7.0 -SSP5,Africa_Northern,2065,3.22304,gcam-v7.0 -SSP5,Africa_Northern,2070,3.51534,gcam-v7.0 -SSP5,Africa_Northern,2075,3.80977,gcam-v7.0 -SSP5,Africa_Northern,2080,4.11747,gcam-v7.0 -SSP5,Africa_Northern,2085,4.43758,gcam-v7.0 -SSP5,Africa_Northern,2090,4.77162,gcam-v7.0 -SSP5,Africa_Northern,2095,5.10962,gcam-v7.0 -SSP5,Africa_Northern,2100,5.46095,gcam-v7.0 -SSP5,Africa_Southern,1975,0,gcam-v7.0 -SSP5,Africa_Southern,1990,0,gcam-v7.0 -SSP5,Africa_Southern,2005,0,gcam-v7.0 -SSP5,Africa_Southern,2010,0,gcam-v7.0 -SSP5,Africa_Southern,2015,0,gcam-v7.0 -SSP5,Africa_Southern,2020,1.17562,gcam-v7.0 -SSP5,Africa_Southern,2025,1.45035,gcam-v7.0 -SSP5,Africa_Southern,2030,1.78686,gcam-v7.0 -SSP5,Africa_Southern,2035,2.17777,gcam-v7.0 -SSP5,Africa_Southern,2040,2.61709,gcam-v7.0 -SSP5,Africa_Southern,2045,3.09547,gcam-v7.0 -SSP5,Africa_Southern,2050,3.62109,gcam-v7.0 -SSP5,Africa_Southern,2055,4.20164,gcam-v7.0 -SSP5,Africa_Southern,2060,4.8534,gcam-v7.0 -SSP5,Africa_Southern,2065,5.59185,gcam-v7.0 -SSP5,Africa_Southern,2070,6.42826,gcam-v7.0 -SSP5,Africa_Southern,2075,7.36339,gcam-v7.0 -SSP5,Africa_Southern,2080,8.40217,gcam-v7.0 -SSP5,Africa_Southern,2085,9.52911,gcam-v7.0 -SSP5,Africa_Southern,2090,10.731,gcam-v7.0 -SSP5,Africa_Southern,2095,12.0022,gcam-v7.0 -SSP5,Africa_Southern,2100,13.3444,gcam-v7.0 -SSP5,Africa_Western,1975,0,gcam-v7.0 -SSP5,Africa_Western,1990,0,gcam-v7.0 -SSP5,Africa_Western,2005,0,gcam-v7.0 -SSP5,Africa_Western,2010,0,gcam-v7.0 -SSP5,Africa_Western,2015,0,gcam-v7.0 -SSP5,Africa_Western,2020,1.18622,gcam-v7.0 -SSP5,Africa_Western,2025,1.46271,gcam-v7.0 -SSP5,Africa_Western,2030,1.84793,gcam-v7.0 -SSP5,Africa_Western,2035,2.22964,gcam-v7.0 -SSP5,Africa_Western,2040,2.60931,gcam-v7.0 -SSP5,Africa_Western,2045,3.01513,gcam-v7.0 -SSP5,Africa_Western,2050,3.4743,gcam-v7.0 -SSP5,Africa_Western,2055,3.98944,gcam-v7.0 -SSP5,Africa_Western,2060,4.56878,gcam-v7.0 -SSP5,Africa_Western,2065,5.22541,gcam-v7.0 -SSP5,Africa_Western,2070,5.96307,gcam-v7.0 -SSP5,Africa_Western,2075,6.7853,gcam-v7.0 -SSP5,Africa_Western,2080,7.70198,gcam-v7.0 -SSP5,Africa_Western,2085,8.70185,gcam-v7.0 -SSP5,Africa_Western,2090,9.77868,gcam-v7.0 -SSP5,Africa_Western,2095,10.9359,gcam-v7.0 -SSP5,Africa_Western,2100,12.159,gcam-v7.0 -SSP5,Argentina,1975,0,gcam-v7.0 -SSP5,Argentina,1990,0,gcam-v7.0 -SSP5,Argentina,2005,0,gcam-v7.0 -SSP5,Argentina,2010,0,gcam-v7.0 -SSP5,Argentina,2015,0,gcam-v7.0 -SSP5,Argentina,2020,1.06403,gcam-v7.0 -SSP5,Argentina,2025,1.22076,gcam-v7.0 -SSP5,Argentina,2030,1.40812,gcam-v7.0 -SSP5,Argentina,2035,1.62207,gcam-v7.0 -SSP5,Argentina,2040,1.84441,gcam-v7.0 -SSP5,Argentina,2045,2.07789,gcam-v7.0 -SSP5,Argentina,2050,2.31412,gcam-v7.0 -SSP5,Argentina,2055,2.56354,gcam-v7.0 -SSP5,Argentina,2060,2.82909,gcam-v7.0 -SSP5,Argentina,2065,3.10757,gcam-v7.0 -SSP5,Argentina,2070,3.39509,gcam-v7.0 -SSP5,Argentina,2075,3.698,gcam-v7.0 -SSP5,Argentina,2080,4.02312,gcam-v7.0 -SSP5,Argentina,2085,4.384,gcam-v7.0 -SSP5,Argentina,2090,4.78252,gcam-v7.0 -SSP5,Argentina,2095,5.22228,gcam-v7.0 -SSP5,Argentina,2100,5.69595,gcam-v7.0 -SSP5,Australia_NZ,1975,0,gcam-v7.0 -SSP5,Australia_NZ,1990,0,gcam-v7.0 -SSP5,Australia_NZ,2005,0,gcam-v7.0 -SSP5,Australia_NZ,2010,0,gcam-v7.0 -SSP5,Australia_NZ,2015,0,gcam-v7.0 -SSP5,Australia_NZ,2020,1.10789,gcam-v7.0 -SSP5,Australia_NZ,2025,1.2111,gcam-v7.0 -SSP5,Australia_NZ,2030,1.32393,gcam-v7.0 -SSP5,Australia_NZ,2035,1.45009,gcam-v7.0 -SSP5,Australia_NZ,2040,1.58665,gcam-v7.0 -SSP5,Australia_NZ,2045,1.72128,gcam-v7.0 -SSP5,Australia_NZ,2050,1.86312,gcam-v7.0 -SSP5,Australia_NZ,2055,2.01967,gcam-v7.0 -SSP5,Australia_NZ,2060,2.18505,gcam-v7.0 -SSP5,Australia_NZ,2065,2.36373,gcam-v7.0 -SSP5,Australia_NZ,2070,2.56109,gcam-v7.0 -SSP5,Australia_NZ,2075,2.78496,gcam-v7.0 -SSP5,Australia_NZ,2080,3.03224,gcam-v7.0 -SSP5,Australia_NZ,2085,3.31016,gcam-v7.0 -SSP5,Australia_NZ,2090,3.6161,gcam-v7.0 -SSP5,Australia_NZ,2095,3.94553,gcam-v7.0 -SSP5,Australia_NZ,2100,4.30227,gcam-v7.0 -SSP5,Brazil,1975,0,gcam-v7.0 -SSP5,Brazil,1990,0,gcam-v7.0 -SSP5,Brazil,2005,0,gcam-v7.0 -SSP5,Brazil,2010,0,gcam-v7.0 -SSP5,Brazil,2015,0,gcam-v7.0 -SSP5,Brazil,2020,1.12789,gcam-v7.0 -SSP5,Brazil,2025,1.31444,gcam-v7.0 -SSP5,Brazil,2030,1.545,gcam-v7.0 -SSP5,Brazil,2035,1.82148,gcam-v7.0 -SSP5,Brazil,2040,2.12004,gcam-v7.0 -SSP5,Brazil,2045,2.4411,gcam-v7.0 -SSP5,Brazil,2050,2.78726,gcam-v7.0 -SSP5,Brazil,2055,3.15382,gcam-v7.0 -SSP5,Brazil,2060,3.54231,gcam-v7.0 -SSP5,Brazil,2065,3.96426,gcam-v7.0 -SSP5,Brazil,2070,4.41491,gcam-v7.0 -SSP5,Brazil,2075,4.87273,gcam-v7.0 -SSP5,Brazil,2080,5.36664,gcam-v7.0 -SSP5,Brazil,2085,5.90445,gcam-v7.0 -SSP5,Brazil,2090,6.49629,gcam-v7.0 -SSP5,Brazil,2095,7.13799,gcam-v7.0 -SSP5,Brazil,2100,7.82563,gcam-v7.0 -SSP5,Canada,1975,0,gcam-v7.0 -SSP5,Canada,1990,0,gcam-v7.0 -SSP5,Canada,2005,0,gcam-v7.0 -SSP5,Canada,2010,0,gcam-v7.0 -SSP5,Canada,2015,0,gcam-v7.0 -SSP5,Canada,2020,1.03426,gcam-v7.0 -SSP5,Canada,2025,1.10253,gcam-v7.0 -SSP5,Canada,2030,1.19647,gcam-v7.0 -SSP5,Canada,2035,1.33604,gcam-v7.0 -SSP5,Canada,2040,1.4879,gcam-v7.0 -SSP5,Canada,2045,1.653,gcam-v7.0 -SSP5,Canada,2050,1.82266,gcam-v7.0 -SSP5,Canada,2055,2.00345,gcam-v7.0 -SSP5,Canada,2060,2.19324,gcam-v7.0 -SSP5,Canada,2065,2.38798,gcam-v7.0 -SSP5,Canada,2070,2.59625,gcam-v7.0 -SSP5,Canada,2075,2.83075,gcam-v7.0 -SSP5,Canada,2080,3.0865,gcam-v7.0 -SSP5,Canada,2085,3.37361,gcam-v7.0 -SSP5,Canada,2090,3.69069,gcam-v7.0 -SSP5,Canada,2095,4.02943,gcam-v7.0 -SSP5,Canada,2100,4.39116,gcam-v7.0 -SSP5,Central America and Caribbean,1975,0,gcam-v7.0 -SSP5,Central America and Caribbean,1990,0,gcam-v7.0 -SSP5,Central America and Caribbean,2005,0,gcam-v7.0 -SSP5,Central America and Caribbean,2010,0,gcam-v7.0 -SSP5,Central America and Caribbean,2015,0,gcam-v7.0 -SSP5,Central America and Caribbean,2020,1.0734,gcam-v7.0 -SSP5,Central America and Caribbean,2025,1.2104,gcam-v7.0 -SSP5,Central America and Caribbean,2030,1.38412,gcam-v7.0 -SSP5,Central America and Caribbean,2035,1.57226,gcam-v7.0 -SSP5,Central America and Caribbean,2040,1.75433,gcam-v7.0 -SSP5,Central America and Caribbean,2045,1.92778,gcam-v7.0 -SSP5,Central America and Caribbean,2050,2.10671,gcam-v7.0 -SSP5,Central America and Caribbean,2055,2.30313,gcam-v7.0 -SSP5,Central America and Caribbean,2060,2.52438,gcam-v7.0 -SSP5,Central America and Caribbean,2065,2.76908,gcam-v7.0 -SSP5,Central America and Caribbean,2070,3.03233,gcam-v7.0 -SSP5,Central America and Caribbean,2075,3.31465,gcam-v7.0 -SSP5,Central America and Caribbean,2080,3.62723,gcam-v7.0 -SSP5,Central America and Caribbean,2085,3.96759,gcam-v7.0 -SSP5,Central America and Caribbean,2090,4.33634,gcam-v7.0 -SSP5,Central America and Caribbean,2095,4.7405,gcam-v7.0 -SSP5,Central America and Caribbean,2100,5.17935,gcam-v7.0 -SSP5,Central Asia,1975,0,gcam-v7.0 -SSP5,Central Asia,1990,0,gcam-v7.0 -SSP5,Central Asia,2005,0,gcam-v7.0 -SSP5,Central Asia,2010,0,gcam-v7.0 -SSP5,Central Asia,2015,0,gcam-v7.0 -SSP5,Central Asia,2020,1.11961,gcam-v7.0 -SSP5,Central Asia,2025,1.40601,gcam-v7.0 -SSP5,Central Asia,2030,1.67524,gcam-v7.0 -SSP5,Central Asia,2035,1.97567,gcam-v7.0 -SSP5,Central Asia,2040,2.29252,gcam-v7.0 -SSP5,Central Asia,2045,2.58678,gcam-v7.0 -SSP5,Central Asia,2050,2.85664,gcam-v7.0 -SSP5,Central Asia,2055,3.12615,gcam-v7.0 -SSP5,Central Asia,2060,3.42355,gcam-v7.0 -SSP5,Central Asia,2065,3.74267,gcam-v7.0 -SSP5,Central Asia,2070,4.06384,gcam-v7.0 -SSP5,Central Asia,2075,4.38925,gcam-v7.0 -SSP5,Central Asia,2080,4.73308,gcam-v7.0 -SSP5,Central Asia,2085,5.08768,gcam-v7.0 -SSP5,Central Asia,2090,5.46265,gcam-v7.0 -SSP5,Central Asia,2095,5.86406,gcam-v7.0 -SSP5,Central Asia,2100,6.28497,gcam-v7.0 -SSP5,China,1975,0,gcam-v7.0 -SSP5,China,1990,0,gcam-v7.0 -SSP5,China,2005,0,gcam-v7.0 -SSP5,China,2010,0,gcam-v7.0 -SSP5,China,2015,0,gcam-v7.0 -SSP5,China,2020,1.38749,gcam-v7.0 -SSP5,China,2025,1.85089,gcam-v7.0 -SSP5,China,2030,2.39037,gcam-v7.0 -SSP5,China,2035,2.9869,gcam-v7.0 -SSP5,China,2040,3.55012,gcam-v7.0 -SSP5,China,2045,4.01836,gcam-v7.0 -SSP5,China,2050,4.45374,gcam-v7.0 -SSP5,China,2055,4.90807,gcam-v7.0 -SSP5,China,2060,5.32936,gcam-v7.0 -SSP5,China,2065,5.73054,gcam-v7.0 -SSP5,China,2070,6.10087,gcam-v7.0 -SSP5,China,2075,6.46239,gcam-v7.0 -SSP5,China,2080,6.80781,gcam-v7.0 -SSP5,China,2085,7.16232,gcam-v7.0 -SSP5,China,2090,7.52033,gcam-v7.0 -SSP5,China,2095,7.89113,gcam-v7.0 -SSP5,China,2100,8.27397,gcam-v7.0 -SSP5,Colombia,1975,0,gcam-v7.0 -SSP5,Colombia,1990,0,gcam-v7.0 -SSP5,Colombia,2005,0,gcam-v7.0 -SSP5,Colombia,2010,0,gcam-v7.0 -SSP5,Colombia,2015,0,gcam-v7.0 -SSP5,Colombia,2020,1.12903,gcam-v7.0 -SSP5,Colombia,2025,1.2656,gcam-v7.0 -SSP5,Colombia,2030,1.45117,gcam-v7.0 -SSP5,Colombia,2035,1.70045,gcam-v7.0 -SSP5,Colombia,2040,1.95735,gcam-v7.0 -SSP5,Colombia,2045,2.22178,gcam-v7.0 -SSP5,Colombia,2050,2.5001,gcam-v7.0 -SSP5,Colombia,2055,2.8004,gcam-v7.0 -SSP5,Colombia,2060,3.13101,gcam-v7.0 -SSP5,Colombia,2065,3.48654,gcam-v7.0 -SSP5,Colombia,2070,3.8661,gcam-v7.0 -SSP5,Colombia,2075,4.27475,gcam-v7.0 -SSP5,Colombia,2080,4.71327,gcam-v7.0 -SSP5,Colombia,2085,5.18861,gcam-v7.0 -SSP5,Colombia,2090,5.71141,gcam-v7.0 -SSP5,Colombia,2095,6.28161,gcam-v7.0 -SSP5,Colombia,2100,6.89506,gcam-v7.0 -SSP5,EU-12,1975,0,gcam-v7.0 -SSP5,EU-12,1990,0,gcam-v7.0 -SSP5,EU-12,2005,0,gcam-v7.0 -SSP5,EU-12,2010,0,gcam-v7.0 -SSP5,EU-12,2015,0,gcam-v7.0 -SSP5,EU-12,2020,1.09248,gcam-v7.0 -SSP5,EU-12,2025,1.26669,gcam-v7.0 -SSP5,EU-12,2030,1.43929,gcam-v7.0 -SSP5,EU-12,2035,1.61737,gcam-v7.0 -SSP5,EU-12,2040,1.79836,gcam-v7.0 -SSP5,EU-12,2045,1.99013,gcam-v7.0 -SSP5,EU-12,2050,2.18764,gcam-v7.0 -SSP5,EU-12,2055,2.3992,gcam-v7.0 -SSP5,EU-12,2060,2.61481,gcam-v7.0 -SSP5,EU-12,2065,2.83212,gcam-v7.0 -SSP5,EU-12,2070,3.0589,gcam-v7.0 -SSP5,EU-12,2075,3.31726,gcam-v7.0 -SSP5,EU-12,2080,3.60445,gcam-v7.0 -SSP5,EU-12,2085,3.91962,gcam-v7.0 -SSP5,EU-12,2090,4.26135,gcam-v7.0 -SSP5,EU-12,2095,4.62644,gcam-v7.0 -SSP5,EU-12,2100,5.01364,gcam-v7.0 -SSP5,EU-15,1975,0,gcam-v7.0 -SSP5,EU-15,1990,0,gcam-v7.0 -SSP5,EU-15,2005,0,gcam-v7.0 -SSP5,EU-15,2010,0,gcam-v7.0 -SSP5,EU-15,2015,0,gcam-v7.0 -SSP5,EU-15,2020,1.05482,gcam-v7.0 -SSP5,EU-15,2025,1.14882,gcam-v7.0 -SSP5,EU-15,2030,1.26916,gcam-v7.0 -SSP5,EU-15,2035,1.40823,gcam-v7.0 -SSP5,EU-15,2040,1.54904,gcam-v7.0 -SSP5,EU-15,2045,1.68825,gcam-v7.0 -SSP5,EU-15,2050,1.82701,gcam-v7.0 -SSP5,EU-15,2055,1.97276,gcam-v7.0 -SSP5,EU-15,2060,2.12297,gcam-v7.0 -SSP5,EU-15,2065,2.28314,gcam-v7.0 -SSP5,EU-15,2070,2.46097,gcam-v7.0 -SSP5,EU-15,2075,2.66479,gcam-v7.0 -SSP5,EU-15,2080,2.88613,gcam-v7.0 -SSP5,EU-15,2085,3.1277,gcam-v7.0 -SSP5,EU-15,2090,3.38878,gcam-v7.0 -SSP5,EU-15,2095,3.67025,gcam-v7.0 -SSP5,EU-15,2100,3.97709,gcam-v7.0 -SSP5,Europe_Eastern,1975,0,gcam-v7.0 -SSP5,Europe_Eastern,1990,0,gcam-v7.0 -SSP5,Europe_Eastern,2005,0,gcam-v7.0 -SSP5,Europe_Eastern,2010,0,gcam-v7.0 -SSP5,Europe_Eastern,2015,0,gcam-v7.0 -SSP5,Europe_Eastern,2020,0.969962,gcam-v7.0 -SSP5,Europe_Eastern,2025,1.13252,gcam-v7.0 -SSP5,Europe_Eastern,2030,1.31938,gcam-v7.0 -SSP5,Europe_Eastern,2035,1.52922,gcam-v7.0 -SSP5,Europe_Eastern,2040,1.73517,gcam-v7.0 -SSP5,Europe_Eastern,2045,1.93847,gcam-v7.0 -SSP5,Europe_Eastern,2050,2.15526,gcam-v7.0 -SSP5,Europe_Eastern,2055,2.39571,gcam-v7.0 -SSP5,Europe_Eastern,2060,2.64635,gcam-v7.0 -SSP5,Europe_Eastern,2065,2.91,gcam-v7.0 -SSP5,Europe_Eastern,2070,3.20624,gcam-v7.0 -SSP5,Europe_Eastern,2075,3.58863,gcam-v7.0 -SSP5,Europe_Eastern,2080,3.9048,gcam-v7.0 -SSP5,Europe_Eastern,2085,4.24012,gcam-v7.0 -SSP5,Europe_Eastern,2090,4.58985,gcam-v7.0 -SSP5,Europe_Eastern,2095,4.95252,gcam-v7.0 -SSP5,Europe_Eastern,2100,5.32799,gcam-v7.0 -SSP5,Europe_Non_EU,1975,0,gcam-v7.0 -SSP5,Europe_Non_EU,1990,0,gcam-v7.0 -SSP5,Europe_Non_EU,2005,0,gcam-v7.0 -SSP5,Europe_Non_EU,2010,0,gcam-v7.0 -SSP5,Europe_Non_EU,2015,0,gcam-v7.0 -SSP5,Europe_Non_EU,2020,1.07899,gcam-v7.0 -SSP5,Europe_Non_EU,2025,1.2093,gcam-v7.0 -SSP5,Europe_Non_EU,2030,1.35184,gcam-v7.0 -SSP5,Europe_Non_EU,2035,1.50084,gcam-v7.0 -SSP5,Europe_Non_EU,2040,1.65177,gcam-v7.0 -SSP5,Europe_Non_EU,2045,1.80187,gcam-v7.0 -SSP5,Europe_Non_EU,2050,1.95452,gcam-v7.0 -SSP5,Europe_Non_EU,2055,2.11249,gcam-v7.0 -SSP5,Europe_Non_EU,2060,2.28053,gcam-v7.0 -SSP5,Europe_Non_EU,2065,2.45867,gcam-v7.0 -SSP5,Europe_Non_EU,2070,2.64002,gcam-v7.0 -SSP5,Europe_Non_EU,2075,2.83143,gcam-v7.0 -SSP5,Europe_Non_EU,2080,3.03897,gcam-v7.0 -SSP5,Europe_Non_EU,2085,3.26555,gcam-v7.0 -SSP5,Europe_Non_EU,2090,3.51217,gcam-v7.0 -SSP5,Europe_Non_EU,2095,3.78148,gcam-v7.0 -SSP5,Europe_Non_EU,2100,4.07689,gcam-v7.0 -SSP5,European Free Trade Association,1975,0,gcam-v7.0 -SSP5,European Free Trade Association,1990,0,gcam-v7.0 -SSP5,European Free Trade Association,2005,0,gcam-v7.0 -SSP5,European Free Trade Association,2010,0,gcam-v7.0 -SSP5,European Free Trade Association,2015,0,gcam-v7.0 -SSP5,European Free Trade Association,2020,1.08989,gcam-v7.0 -SSP5,European Free Trade Association,2025,1.20176,gcam-v7.0 -SSP5,European Free Trade Association,2030,1.34029,gcam-v7.0 -SSP5,European Free Trade Association,2035,1.48306,gcam-v7.0 -SSP5,European Free Trade Association,2040,1.61636,gcam-v7.0 -SSP5,European Free Trade Association,2045,1.73673,gcam-v7.0 -SSP5,European Free Trade Association,2050,1.86599,gcam-v7.0 -SSP5,European Free Trade Association,2055,2.01055,gcam-v7.0 -SSP5,European Free Trade Association,2060,2.1719,gcam-v7.0 -SSP5,European Free Trade Association,2065,2.34779,gcam-v7.0 -SSP5,European Free Trade Association,2070,2.53918,gcam-v7.0 -SSP5,European Free Trade Association,2075,2.75641,gcam-v7.0 -SSP5,European Free Trade Association,2080,2.99501,gcam-v7.0 -SSP5,European Free Trade Association,2085,3.25965,gcam-v7.0 -SSP5,European Free Trade Association,2090,3.55097,gcam-v7.0 -SSP5,European Free Trade Association,2095,3.8686,gcam-v7.0 -SSP5,European Free Trade Association,2100,4.21228,gcam-v7.0 -SSP5,India,1975,0,gcam-v7.0 -SSP5,India,1990,0,gcam-v7.0 -SSP5,India,2005,0,gcam-v7.0 -SSP5,India,2010,0,gcam-v7.0 -SSP5,India,2015,0,gcam-v7.0 -SSP5,India,2020,1.18154,gcam-v7.0 -SSP5,India,2025,1.45399,gcam-v7.0 -SSP5,India,2030,1.75854,gcam-v7.0 -SSP5,India,2035,2.08811,gcam-v7.0 -SSP5,India,2040,2.42143,gcam-v7.0 -SSP5,India,2045,2.77154,gcam-v7.0 -SSP5,India,2050,3.14701,gcam-v7.0 -SSP5,India,2055,3.56346,gcam-v7.0 -SSP5,India,2060,4.01726,gcam-v7.0 -SSP5,India,2065,4.50353,gcam-v7.0 -SSP5,India,2070,5.0168,gcam-v7.0 -SSP5,India,2075,5.55612,gcam-v7.0 -SSP5,India,2080,6.13594,gcam-v7.0 -SSP5,India,2085,6.75589,gcam-v7.0 -SSP5,India,2090,7.40961,gcam-v7.0 -SSP5,India,2095,8.09675,gcam-v7.0 -SSP5,India,2100,8.82188,gcam-v7.0 -SSP5,Indonesia,1975,0,gcam-v7.0 -SSP5,Indonesia,1990,0,gcam-v7.0 -SSP5,Indonesia,2005,0,gcam-v7.0 -SSP5,Indonesia,2010,0,gcam-v7.0 -SSP5,Indonesia,2015,0,gcam-v7.0 -SSP5,Indonesia,2020,1.22756,gcam-v7.0 -SSP5,Indonesia,2025,1.56783,gcam-v7.0 -SSP5,Indonesia,2030,1.98248,gcam-v7.0 -SSP5,Indonesia,2035,2.46831,gcam-v7.0 -SSP5,Indonesia,2040,2.97711,gcam-v7.0 -SSP5,Indonesia,2045,3.49118,gcam-v7.0 -SSP5,Indonesia,2050,4.02691,gcam-v7.0 -SSP5,Indonesia,2055,4.59679,gcam-v7.0 -SSP5,Indonesia,2060,5.20308,gcam-v7.0 -SSP5,Indonesia,2065,5.83847,gcam-v7.0 -SSP5,Indonesia,2070,6.51631,gcam-v7.0 -SSP5,Indonesia,2075,7.22122,gcam-v7.0 -SSP5,Indonesia,2080,7.95935,gcam-v7.0 -SSP5,Indonesia,2085,8.72857,gcam-v7.0 -SSP5,Indonesia,2090,9.5283,gcam-v7.0 -SSP5,Indonesia,2095,10.3556,gcam-v7.0 -SSP5,Indonesia,2100,11.2034,gcam-v7.0 -SSP5,Japan,1975,0,gcam-v7.0 -SSP5,Japan,1990,0,gcam-v7.0 -SSP5,Japan,2005,0,gcam-v7.0 -SSP5,Japan,2010,0,gcam-v7.0 -SSP5,Japan,2015,0,gcam-v7.0 -SSP5,Japan,2020,1.04463,gcam-v7.0 -SSP5,Japan,2025,1.13882,gcam-v7.0 -SSP5,Japan,2030,1.257,gcam-v7.0 -SSP5,Japan,2035,1.39625,gcam-v7.0 -SSP5,Japan,2040,1.5492,gcam-v7.0 -SSP5,Japan,2045,1.69917,gcam-v7.0 -SSP5,Japan,2050,1.84246,gcam-v7.0 -SSP5,Japan,2055,1.98659,gcam-v7.0 -SSP5,Japan,2060,2.13543,gcam-v7.0 -SSP5,Japan,2065,2.29375,gcam-v7.0 -SSP5,Japan,2070,2.4656,gcam-v7.0 -SSP5,Japan,2075,2.65307,gcam-v7.0 -SSP5,Japan,2080,2.85579,gcam-v7.0 -SSP5,Japan,2085,3.06591,gcam-v7.0 -SSP5,Japan,2090,3.28063,gcam-v7.0 -SSP5,Japan,2095,3.50656,gcam-v7.0 -SSP5,Japan,2100,3.74723,gcam-v7.0 -SSP5,Mexico,1975,0,gcam-v7.0 -SSP5,Mexico,1990,0,gcam-v7.0 -SSP5,Mexico,2005,0,gcam-v7.0 -SSP5,Mexico,2010,0,gcam-v7.0 -SSP5,Mexico,2015,0,gcam-v7.0 -SSP5,Mexico,2020,1.04093,gcam-v7.0 -SSP5,Mexico,2025,1.15762,gcam-v7.0 -SSP5,Mexico,2030,1.33527,gcam-v7.0 -SSP5,Mexico,2035,1.53446,gcam-v7.0 -SSP5,Mexico,2040,1.71548,gcam-v7.0 -SSP5,Mexico,2045,1.87824,gcam-v7.0 -SSP5,Mexico,2050,2.03861,gcam-v7.0 -SSP5,Mexico,2055,2.20864,gcam-v7.0 -SSP5,Mexico,2060,2.3933,gcam-v7.0 -SSP5,Mexico,2065,2.58657,gcam-v7.0 -SSP5,Mexico,2070,2.79256,gcam-v7.0 -SSP5,Mexico,2075,3.0099,gcam-v7.0 -SSP5,Mexico,2080,3.24513,gcam-v7.0 -SSP5,Mexico,2085,3.50316,gcam-v7.0 -SSP5,Mexico,2090,3.78304,gcam-v7.0 -SSP5,Mexico,2095,4.08621,gcam-v7.0 -SSP5,Mexico,2100,4.41626,gcam-v7.0 -SSP5,Middle East,1975,0,gcam-v7.0 -SSP5,Middle East,1990,0,gcam-v7.0 -SSP5,Middle East,2005,0,gcam-v7.0 -SSP5,Middle East,2010,0,gcam-v7.0 -SSP5,Middle East,2015,0,gcam-v7.0 -SSP5,Middle East,2020,1.0943,gcam-v7.0 -SSP5,Middle East,2025,1.3426,gcam-v7.0 -SSP5,Middle East,2030,1.60405,gcam-v7.0 -SSP5,Middle East,2035,1.86365,gcam-v7.0 -SSP5,Middle East,2040,2.14479,gcam-v7.0 -SSP5,Middle East,2045,2.41812,gcam-v7.0 -SSP5,Middle East,2050,2.68778,gcam-v7.0 -SSP5,Middle East,2055,2.94998,gcam-v7.0 -SSP5,Middle East,2060,3.21679,gcam-v7.0 -SSP5,Middle East,2065,3.49823,gcam-v7.0 -SSP5,Middle East,2070,3.79135,gcam-v7.0 -SSP5,Middle East,2075,4.11071,gcam-v7.0 -SSP5,Middle East,2080,4.47642,gcam-v7.0 -SSP5,Middle East,2085,4.87978,gcam-v7.0 -SSP5,Middle East,2090,5.31381,gcam-v7.0 -SSP5,Middle East,2095,5.78356,gcam-v7.0 -SSP5,Middle East,2100,6.29292,gcam-v7.0 -SSP5,Pakistan,1975,0,gcam-v7.0 -SSP5,Pakistan,1990,0,gcam-v7.0 -SSP5,Pakistan,2005,0,gcam-v7.0 -SSP5,Pakistan,2010,0,gcam-v7.0 -SSP5,Pakistan,2015,0,gcam-v7.0 -SSP5,Pakistan,2020,1.06179,gcam-v7.0 -SSP5,Pakistan,2025,1.19273,gcam-v7.0 -SSP5,Pakistan,2030,1.38908,gcam-v7.0 -SSP5,Pakistan,2035,1.64403,gcam-v7.0 -SSP5,Pakistan,2040,1.94064,gcam-v7.0 -SSP5,Pakistan,2045,2.2847,gcam-v7.0 -SSP5,Pakistan,2050,2.68427,gcam-v7.0 -SSP5,Pakistan,2055,3.1397,gcam-v7.0 -SSP5,Pakistan,2060,3.63192,gcam-v7.0 -SSP5,Pakistan,2065,4.15836,gcam-v7.0 -SSP5,Pakistan,2070,4.7093,gcam-v7.0 -SSP5,Pakistan,2075,5.28247,gcam-v7.0 -SSP5,Pakistan,2080,5.88622,gcam-v7.0 -SSP5,Pakistan,2085,6.51717,gcam-v7.0 -SSP5,Pakistan,2090,7.16976,gcam-v7.0 -SSP5,Pakistan,2095,7.84587,gcam-v7.0 -SSP5,Pakistan,2100,8.55303,gcam-v7.0 -SSP5,Russia,1975,0,gcam-v7.0 -SSP5,Russia,1990,0,gcam-v7.0 -SSP5,Russia,2005,0,gcam-v7.0 -SSP5,Russia,2010,0,gcam-v7.0 -SSP5,Russia,2015,0,gcam-v7.0 -SSP5,Russia,2020,1.15566,gcam-v7.0 -SSP5,Russia,2025,1.40138,gcam-v7.0 -SSP5,Russia,2030,1.76354,gcam-v7.0 -SSP5,Russia,2035,2.09294,gcam-v7.0 -SSP5,Russia,2040,2.41087,gcam-v7.0 -SSP5,Russia,2045,2.69127,gcam-v7.0 -SSP5,Russia,2050,2.97091,gcam-v7.0 -SSP5,Russia,2055,3.26129,gcam-v7.0 -SSP5,Russia,2060,3.54221,gcam-v7.0 -SSP5,Russia,2065,3.82612,gcam-v7.0 -SSP5,Russia,2070,4.12876,gcam-v7.0 -SSP5,Russia,2075,4.4639,gcam-v7.0 -SSP5,Russia,2080,4.8374,gcam-v7.0 -SSP5,Russia,2085,5.24524,gcam-v7.0 -SSP5,Russia,2090,5.67293,gcam-v7.0 -SSP5,Russia,2095,6.11786,gcam-v7.0 -SSP5,Russia,2100,6.59628,gcam-v7.0 -SSP5,South Africa,1975,0,gcam-v7.0 -SSP5,South Africa,1990,0,gcam-v7.0 -SSP5,South Africa,2005,0,gcam-v7.0 -SSP5,South Africa,2010,0,gcam-v7.0 -SSP5,South Africa,2015,0,gcam-v7.0 -SSP5,South Africa,2020,1.13456,gcam-v7.0 -SSP5,South Africa,2025,1.31778,gcam-v7.0 -SSP5,South Africa,2030,1.52702,gcam-v7.0 -SSP5,South Africa,2035,1.75564,gcam-v7.0 -SSP5,South Africa,2040,1.98799,gcam-v7.0 -SSP5,South Africa,2045,2.21816,gcam-v7.0 -SSP5,South Africa,2050,2.45518,gcam-v7.0 -SSP5,South Africa,2055,2.70715,gcam-v7.0 -SSP5,South Africa,2060,2.97092,gcam-v7.0 -SSP5,South Africa,2065,3.24036,gcam-v7.0 -SSP5,South Africa,2070,3.51398,gcam-v7.0 -SSP5,South Africa,2075,3.79201,gcam-v7.0 -SSP5,South Africa,2080,4.08064,gcam-v7.0 -SSP5,South Africa,2085,4.38256,gcam-v7.0 -SSP5,South Africa,2090,4.70108,gcam-v7.0 -SSP5,South Africa,2095,5.03505,gcam-v7.0 -SSP5,South Africa,2100,5.38707,gcam-v7.0 -SSP5,South America_Northern,1975,0,gcam-v7.0 -SSP5,South America_Northern,1990,0,gcam-v7.0 -SSP5,South America_Northern,2005,0,gcam-v7.0 -SSP5,South America_Northern,2010,0,gcam-v7.0 -SSP5,South America_Northern,2015,0,gcam-v7.0 -SSP5,South America_Northern,2020,0.841911,gcam-v7.0 -SSP5,South America_Northern,2025,0.815402,gcam-v7.0 -SSP5,South America_Northern,2030,0.871009,gcam-v7.0 -SSP5,South America_Northern,2035,1.16385,gcam-v7.0 -SSP5,South America_Northern,2040,1.48317,gcam-v7.0 -SSP5,South America_Northern,2045,1.82017,gcam-v7.0 -SSP5,South America_Northern,2050,2.18485,gcam-v7.0 -SSP5,South America_Northern,2055,2.56303,gcam-v7.0 -SSP5,South America_Northern,2060,2.96145,gcam-v7.0 -SSP5,South America_Northern,2065,3.37602,gcam-v7.0 -SSP5,South America_Northern,2070,3.82569,gcam-v7.0 -SSP5,South America_Northern,2075,4.29266,gcam-v7.0 -SSP5,South America_Northern,2080,4.78693,gcam-v7.0 -SSP5,South America_Northern,2085,5.31187,gcam-v7.0 -SSP5,South America_Northern,2090,5.87993,gcam-v7.0 -SSP5,South America_Northern,2095,6.48937,gcam-v7.0 -SSP5,South America_Northern,2100,7.14054,gcam-v7.0 -SSP5,South America_Southern,1975,0,gcam-v7.0 -SSP5,South America_Southern,1990,0,gcam-v7.0 -SSP5,South America_Southern,2005,0,gcam-v7.0 -SSP5,South America_Southern,2010,0,gcam-v7.0 -SSP5,South America_Southern,2015,0,gcam-v7.0 -SSP5,South America_Southern,2020,1.13898,gcam-v7.0 -SSP5,South America_Southern,2025,1.32786,gcam-v7.0 -SSP5,South America_Southern,2030,1.53865,gcam-v7.0 -SSP5,South America_Southern,2035,1.77629,gcam-v7.0 -SSP5,South America_Southern,2040,2.02186,gcam-v7.0 -SSP5,South America_Southern,2045,2.27357,gcam-v7.0 -SSP5,South America_Southern,2050,2.54037,gcam-v7.0 -SSP5,South America_Southern,2055,2.82787,gcam-v7.0 -SSP5,South America_Southern,2060,3.14282,gcam-v7.0 -SSP5,South America_Southern,2065,3.48006,gcam-v7.0 -SSP5,South America_Southern,2070,3.83448,gcam-v7.0 -SSP5,South America_Southern,2075,4.20623,gcam-v7.0 -SSP5,South America_Southern,2080,4.60411,gcam-v7.0 -SSP5,South America_Southern,2085,5.03175,gcam-v7.0 -SSP5,South America_Southern,2090,5.4932,gcam-v7.0 -SSP5,South America_Southern,2095,5.9931,gcam-v7.0 -SSP5,South America_Southern,2100,6.53108,gcam-v7.0 -SSP5,South Asia,1975,0,gcam-v7.0 -SSP5,South Asia,1990,0,gcam-v7.0 -SSP5,South Asia,2005,0,gcam-v7.0 -SSP5,South Asia,2010,0,gcam-v7.0 -SSP5,South Asia,2015,0,gcam-v7.0 -SSP5,South Asia,2020,1.15372,gcam-v7.0 -SSP5,South Asia,2025,1.3779,gcam-v7.0 -SSP5,South Asia,2030,1.57794,gcam-v7.0 -SSP5,South Asia,2035,1.70751,gcam-v7.0 -SSP5,South Asia,2040,1.73987,gcam-v7.0 -SSP5,South Asia,2045,1.72272,gcam-v7.0 -SSP5,South Asia,2050,1.70117,gcam-v7.0 -SSP5,South Asia,2055,1.69336,gcam-v7.0 -SSP5,South Asia,2060,1.70469,gcam-v7.0 -SSP5,South Asia,2065,1.73012,gcam-v7.0 -SSP5,South Asia,2070,1.76577,gcam-v7.0 -SSP5,South Asia,2075,1.81064,gcam-v7.0 -SSP5,South Asia,2080,1.86697,gcam-v7.0 -SSP5,South Asia,2085,1.93409,gcam-v7.0 -SSP5,South Asia,2090,2.01194,gcam-v7.0 -SSP5,South Asia,2095,2.09896,gcam-v7.0 -SSP5,South Asia,2100,2.19292,gcam-v7.0 -SSP5,South Korea,1975,0,gcam-v7.0 -SSP5,South Korea,1990,0,gcam-v7.0 -SSP5,South Korea,2005,0,gcam-v7.0 -SSP5,South Korea,2010,0,gcam-v7.0 -SSP5,South Korea,2015,0,gcam-v7.0 -SSP5,South Korea,2020,0.967813,gcam-v7.0 -SSP5,South Korea,2025,1.10614,gcam-v7.0 -SSP5,South Korea,2030,1.24726,gcam-v7.0 -SSP5,South Korea,2035,1.37493,gcam-v7.0 -SSP5,South Korea,2040,1.49866,gcam-v7.0 -SSP5,South Korea,2045,1.61239,gcam-v7.0 -SSP5,South Korea,2050,1.72442,gcam-v7.0 -SSP5,South Korea,2055,1.82947,gcam-v7.0 -SSP5,South Korea,2060,1.94645,gcam-v7.0 -SSP5,South Korea,2065,2.06681,gcam-v7.0 -SSP5,South Korea,2070,2.17651,gcam-v7.0 -SSP5,South Korea,2075,2.29432,gcam-v7.0 -SSP5,South Korea,2080,2.40994,gcam-v7.0 -SSP5,South Korea,2085,2.52725,gcam-v7.0 -SSP5,South Korea,2090,2.64929,gcam-v7.0 -SSP5,South Korea,2095,2.77764,gcam-v7.0 -SSP5,South Korea,2100,2.9081,gcam-v7.0 -SSP5,Southeast Asia,1975,0,gcam-v7.0 -SSP5,Southeast Asia,1990,0,gcam-v7.0 -SSP5,Southeast Asia,2005,0,gcam-v7.0 -SSP5,Southeast Asia,2010,0,gcam-v7.0 -SSP5,Southeast Asia,2015,0,gcam-v7.0 -SSP5,Southeast Asia,2020,1.14676,gcam-v7.0 -SSP5,Southeast Asia,2025,1.36041,gcam-v7.0 -SSP5,Southeast Asia,2030,1.57548,gcam-v7.0 -SSP5,Southeast Asia,2035,1.76752,gcam-v7.0 -SSP5,Southeast Asia,2040,1.94312,gcam-v7.0 -SSP5,Southeast Asia,2045,2.10245,gcam-v7.0 -SSP5,Southeast Asia,2050,2.26779,gcam-v7.0 -SSP5,Southeast Asia,2055,2.45399,gcam-v7.0 -SSP5,Southeast Asia,2060,2.65888,gcam-v7.0 -SSP5,Southeast Asia,2065,2.87724,gcam-v7.0 -SSP5,Southeast Asia,2070,3.10873,gcam-v7.0 -SSP5,Southeast Asia,2075,3.35241,gcam-v7.0 -SSP5,Southeast Asia,2080,3.61464,gcam-v7.0 -SSP5,Southeast Asia,2085,3.89533,gcam-v7.0 -SSP5,Southeast Asia,2090,4.19498,gcam-v7.0 -SSP5,Southeast Asia,2095,4.51251,gcam-v7.0 -SSP5,Southeast Asia,2100,4.84449,gcam-v7.0 -SSP5,Taiwan,1975,0,gcam-v7.0 -SSP5,Taiwan,1990,0,gcam-v7.0 -SSP5,Taiwan,2005,0,gcam-v7.0 -SSP5,Taiwan,2010,0,gcam-v7.0 -SSP5,Taiwan,2015,0,gcam-v7.0 -SSP5,Taiwan,2020,1.16525,gcam-v7.0 -SSP5,Taiwan,2025,1.2947,gcam-v7.0 -SSP5,Taiwan,2030,1.41539,gcam-v7.0 -SSP5,Taiwan,2035,1.53147,gcam-v7.0 -SSP5,Taiwan,2040,1.6419,gcam-v7.0 -SSP5,Taiwan,2045,1.73233,gcam-v7.0 -SSP5,Taiwan,2050,1.79734,gcam-v7.0 -SSP5,Taiwan,2055,1.8433,gcam-v7.0 -SSP5,Taiwan,2060,1.88971,gcam-v7.0 -SSP5,Taiwan,2065,1.99019,gcam-v7.0 -SSP5,Taiwan,2070,2.07806,gcam-v7.0 -SSP5,Taiwan,2075,2.14803,gcam-v7.0 -SSP5,Taiwan,2080,2.20994,gcam-v7.0 -SSP5,Taiwan,2085,2.25336,gcam-v7.0 -SSP5,Taiwan,2090,2.28489,gcam-v7.0 -SSP5,Taiwan,2095,2.30488,gcam-v7.0 -SSP5,Taiwan,2100,2.30902,gcam-v7.0 -SSP5,USA,1975,0,gcam-v7.0 -SSP5,USA,1990,0,gcam-v7.0 -SSP5,USA,2005,0,gcam-v7.0 -SSP5,USA,2010,0,gcam-v7.0 -SSP5,USA,2015,0,gcam-v7.0 -SSP5,USA,2020,1.10361,gcam-v7.0 -SSP5,USA,2025,1.22181,gcam-v7.0 -SSP5,USA,2030,1.33703,gcam-v7.0 -SSP5,USA,2035,1.44496,gcam-v7.0 -SSP5,USA,2040,1.54077,gcam-v7.0 -SSP5,USA,2045,1.62599,gcam-v7.0 -SSP5,USA,2050,1.71667,gcam-v7.0 -SSP5,USA,2055,1.81653,gcam-v7.0 -SSP5,USA,2060,1.9255,gcam-v7.0 -SSP5,USA,2065,2.03989,gcam-v7.0 -SSP5,USA,2070,2.17112,gcam-v7.0 -SSP5,USA,2075,2.32086,gcam-v7.0 -SSP5,USA,2080,2.47756,gcam-v7.0 -SSP5,USA,2085,2.6513,gcam-v7.0 -SSP5,USA,2090,2.84253,gcam-v7.0 -SSP5,USA,2095,3.05334,gcam-v7.0 -SSP5,USA,2100,3.28837,gcam-v7.0 +gSSP2,Africa_Eastern,1975,0,gcam-v7.1 +gSSP2,Africa_Eastern,1990,0,gcam-v7.1 +gSSP2,Africa_Eastern,2005,0,gcam-v7.1 +gSSP2,Africa_Eastern,2010,0,gcam-v7.1 +gSSP2,Africa_Eastern,2015,0,gcam-v7.1 +gSSP2,Africa_Eastern,2020,1.09622,gcam-v7.1 +gSSP2,Africa_Eastern,2025,1.27965,gcam-v7.1 +gSSP2,Africa_Eastern,2030,1.52154,gcam-v7.1 +gSSP2,Africa_Eastern,2035,1.74702,gcam-v7.1 +gSSP2,Africa_Eastern,2040,1.92763,gcam-v7.1 +gSSP2,Africa_Eastern,2045,2.05233,gcam-v7.1 +gSSP2,Africa_Eastern,2050,2.14631,gcam-v7.1 +gSSP2,Africa_Eastern,2055,2.2454,gcam-v7.1 +gSSP2,Africa_Eastern,2060,2.36141,gcam-v7.1 +gSSP2,Africa_Eastern,2065,2.50714,gcam-v7.1 +gSSP2,Africa_Eastern,2070,2.6859,gcam-v7.1 +gSSP2,Africa_Eastern,2075,2.89587,gcam-v7.1 +gSSP2,Africa_Eastern,2080,3.14223,gcam-v7.1 +gSSP2,Africa_Eastern,2085,3.42722,gcam-v7.1 +gSSP2,Africa_Eastern,2090,3.75345,gcam-v7.1 +gSSP2,Africa_Eastern,2095,4.12283,gcam-v7.1 +gSSP2,Africa_Eastern,2100,4.53946,gcam-v7.1 +gSSP2,Africa_Northern,1975,0,gcam-v7.1 +gSSP2,Africa_Northern,1990,0,gcam-v7.1 +gSSP2,Africa_Northern,2005,0,gcam-v7.1 +gSSP2,Africa_Northern,2010,0,gcam-v7.1 +gSSP2,Africa_Northern,2015,0,gcam-v7.1 +gSSP2,Africa_Northern,2020,1.10324,gcam-v7.1 +gSSP2,Africa_Northern,2025,1.27991,gcam-v7.1 +gSSP2,Africa_Northern,2030,1.50007,gcam-v7.1 +gSSP2,Africa_Northern,2035,1.65686,gcam-v7.1 +gSSP2,Africa_Northern,2040,1.74784,gcam-v7.1 +gSSP2,Africa_Northern,2045,1.79103,gcam-v7.1 +gSSP2,Africa_Northern,2050,1.83692,gcam-v7.1 +gSSP2,Africa_Northern,2055,1.89181,gcam-v7.1 +gSSP2,Africa_Northern,2060,1.97182,gcam-v7.1 +gSSP2,Africa_Northern,2065,2.04716,gcam-v7.1 +gSSP2,Africa_Northern,2070,2.13225,gcam-v7.1 +gSSP2,Africa_Northern,2075,2.2285,gcam-v7.1 +gSSP2,Africa_Northern,2080,2.33696,gcam-v7.1 +gSSP2,Africa_Northern,2085,2.45543,gcam-v7.1 +gSSP2,Africa_Northern,2090,2.57938,gcam-v7.1 +gSSP2,Africa_Northern,2095,2.70927,gcam-v7.1 +gSSP2,Africa_Northern,2100,2.84853,gcam-v7.1 +gSSP2,Africa_Southern,1975,0,gcam-v7.1 +gSSP2,Africa_Southern,1990,0,gcam-v7.1 +gSSP2,Africa_Southern,2005,0,gcam-v7.1 +gSSP2,Africa_Southern,2010,0,gcam-v7.1 +gSSP2,Africa_Southern,2015,0,gcam-v7.1 +gSSP2,Africa_Southern,2020,0.991344,gcam-v7.1 +gSSP2,Africa_Southern,2025,1.23669,gcam-v7.1 +gSSP2,Africa_Southern,2030,1.53271,gcam-v7.1 +gSSP2,Africa_Southern,2035,1.80761,gcam-v7.1 +gSSP2,Africa_Southern,2040,2.10689,gcam-v7.1 +gSSP2,Africa_Southern,2045,2.38626,gcam-v7.1 +gSSP2,Africa_Southern,2050,2.62954,gcam-v7.1 +gSSP2,Africa_Southern,2055,2.8449,gcam-v7.1 +gSSP2,Africa_Southern,2060,3.03654,gcam-v7.1 +gSSP2,Africa_Southern,2065,3.22313,gcam-v7.1 +gSSP2,Africa_Southern,2070,3.42081,gcam-v7.1 +gSSP2,Africa_Southern,2075,3.63542,gcam-v7.1 +gSSP2,Africa_Southern,2080,3.87626,gcam-v7.1 +gSSP2,Africa_Southern,2085,4.15075,gcam-v7.1 +gSSP2,Africa_Southern,2090,4.46316,gcam-v7.1 +gSSP2,Africa_Southern,2095,4.81659,gcam-v7.1 +gSSP2,Africa_Southern,2100,5.21841,gcam-v7.1 +gSSP2,Africa_Western,1975,0,gcam-v7.1 +gSSP2,Africa_Western,1990,0,gcam-v7.1 +gSSP2,Africa_Western,2005,0,gcam-v7.1 +gSSP2,Africa_Western,2010,0,gcam-v7.1 +gSSP2,Africa_Western,2015,0,gcam-v7.1 +gSSP2,Africa_Western,2020,1.0339,gcam-v7.1 +gSSP2,Africa_Western,2025,1.13681,gcam-v7.1 +gSSP2,Africa_Western,2030,1.36322,gcam-v7.1 +gSSP2,Africa_Western,2035,1.55215,gcam-v7.1 +gSSP2,Africa_Western,2040,1.71055,gcam-v7.1 +gSSP2,Africa_Western,2045,1.83527,gcam-v7.1 +gSSP2,Africa_Western,2050,1.95565,gcam-v7.1 +gSSP2,Africa_Western,2055,2.09791,gcam-v7.1 +gSSP2,Africa_Western,2060,2.25943,gcam-v7.1 +gSSP2,Africa_Western,2065,2.44146,gcam-v7.1 +gSSP2,Africa_Western,2070,2.65151,gcam-v7.1 +gSSP2,Africa_Western,2075,2.89034,gcam-v7.1 +gSSP2,Africa_Western,2080,3.15876,gcam-v7.1 +gSSP2,Africa_Western,2085,3.4592,gcam-v7.1 +gSSP2,Africa_Western,2090,3.79022,gcam-v7.1 +gSSP2,Africa_Western,2095,4.15554,gcam-v7.1 +gSSP2,Africa_Western,2100,4.5584,gcam-v7.1 +gSSP2,Argentina,1975,0,gcam-v7.1 +gSSP2,Argentina,1990,0,gcam-v7.1 +gSSP2,Argentina,2005,0,gcam-v7.1 +gSSP2,Argentina,2010,0,gcam-v7.1 +gSSP2,Argentina,2015,0,gcam-v7.1 +gSSP2,Argentina,2020,0.923939,gcam-v7.1 +gSSP2,Argentina,2025,1.04764,gcam-v7.1 +gSSP2,Argentina,2030,1.17143,gcam-v7.1 +gSSP2,Argentina,2035,1.28035,gcam-v7.1 +gSSP2,Argentina,2040,1.38381,gcam-v7.1 +gSSP2,Argentina,2045,1.47454,gcam-v7.1 +gSSP2,Argentina,2050,1.5389,gcam-v7.1 +gSSP2,Argentina,2055,1.60721,gcam-v7.1 +gSSP2,Argentina,2060,1.68418,gcam-v7.1 +gSSP2,Argentina,2065,1.76145,gcam-v7.1 +gSSP2,Argentina,2070,1.83983,gcam-v7.1 +gSSP2,Argentina,2075,1.92209,gcam-v7.1 +gSSP2,Argentina,2080,2.01137,gcam-v7.1 +gSSP2,Argentina,2085,2.10925,gcam-v7.1 +gSSP2,Argentina,2090,2.21365,gcam-v7.1 +gSSP2,Argentina,2095,2.32568,gcam-v7.1 +gSSP2,Argentina,2100,2.44633,gcam-v7.1 +gSSP2,Australia_NZ,1975,0,gcam-v7.1 +gSSP2,Australia_NZ,1990,0,gcam-v7.1 +gSSP2,Australia_NZ,2005,0,gcam-v7.1 +gSSP2,Australia_NZ,2010,0,gcam-v7.1 +gSSP2,Australia_NZ,2015,0,gcam-v7.1 +gSSP2,Australia_NZ,2020,1.08817,gcam-v7.1 +gSSP2,Australia_NZ,2025,1.16505,gcam-v7.1 +gSSP2,Australia_NZ,2030,1.23349,gcam-v7.1 +gSSP2,Australia_NZ,2035,1.29854,gcam-v7.1 +gSSP2,Australia_NZ,2040,1.3761,gcam-v7.1 +gSSP2,Australia_NZ,2045,1.44843,gcam-v7.1 +gSSP2,Australia_NZ,2050,1.52039,gcam-v7.1 +gSSP2,Australia_NZ,2055,1.60096,gcam-v7.1 +gSSP2,Australia_NZ,2060,1.68698,gcam-v7.1 +gSSP2,Australia_NZ,2065,1.77536,gcam-v7.1 +gSSP2,Australia_NZ,2070,1.86572,gcam-v7.1 +gSSP2,Australia_NZ,2075,1.9645,gcam-v7.1 +gSSP2,Australia_NZ,2080,2.07162,gcam-v7.1 +gSSP2,Australia_NZ,2085,2.18974,gcam-v7.1 +gSSP2,Australia_NZ,2090,2.31647,gcam-v7.1 +gSSP2,Australia_NZ,2095,2.44872,gcam-v7.1 +gSSP2,Australia_NZ,2100,2.58791,gcam-v7.1 +gSSP2,Brazil,1975,0,gcam-v7.1 +gSSP2,Brazil,1990,0,gcam-v7.1 +gSSP2,Brazil,2005,0,gcam-v7.1 +gSSP2,Brazil,2010,0,gcam-v7.1 +gSSP2,Brazil,2015,0,gcam-v7.1 +gSSP2,Brazil,2020,1.00716,gcam-v7.1 +gSSP2,Brazil,2025,1.11162,gcam-v7.1 +gSSP2,Brazil,2030,1.25657,gcam-v7.1 +gSSP2,Brazil,2035,1.38196,gcam-v7.1 +gSSP2,Brazil,2040,1.50664,gcam-v7.1 +gSSP2,Brazil,2045,1.62238,gcam-v7.1 +gSSP2,Brazil,2050,1.73215,gcam-v7.1 +gSSP2,Brazil,2055,1.84214,gcam-v7.1 +gSSP2,Brazil,2060,1.95586,gcam-v7.1 +gSSP2,Brazil,2065,2.07996,gcam-v7.1 +gSSP2,Brazil,2070,2.21408,gcam-v7.1 +gSSP2,Brazil,2075,2.34346,gcam-v7.1 +gSSP2,Brazil,2080,2.47993,gcam-v7.1 +gSSP2,Brazil,2085,2.62828,gcam-v7.1 +gSSP2,Brazil,2090,2.78841,gcam-v7.1 +gSSP2,Brazil,2095,2.95764,gcam-v7.1 +gSSP2,Brazil,2100,3.13633,gcam-v7.1 +gSSP2,Canada,1975,0,gcam-v7.1 +gSSP2,Canada,1990,0,gcam-v7.1 +gSSP2,Canada,2005,0,gcam-v7.1 +gSSP2,Canada,2010,0,gcam-v7.1 +gSSP2,Canada,2015,0,gcam-v7.1 +gSSP2,Canada,2020,1.04851,gcam-v7.1 +gSSP2,Canada,2025,1.11259,gcam-v7.1 +gSSP2,Canada,2030,1.18852,gcam-v7.1 +gSSP2,Canada,2035,1.26216,gcam-v7.1 +gSSP2,Canada,2040,1.32887,gcam-v7.1 +gSSP2,Canada,2045,1.39341,gcam-v7.1 +gSSP2,Canada,2050,1.46802,gcam-v7.1 +gSSP2,Canada,2055,1.56057,gcam-v7.1 +gSSP2,Canada,2060,1.66561,gcam-v7.1 +gSSP2,Canada,2065,1.76934,gcam-v7.1 +gSSP2,Canada,2070,1.86857,gcam-v7.1 +gSSP2,Canada,2075,1.98134,gcam-v7.1 +gSSP2,Canada,2080,2.10541,gcam-v7.1 +gSSP2,Canada,2085,2.24399,gcam-v7.1 +gSSP2,Canada,2090,2.395,gcam-v7.1 +gSSP2,Canada,2095,2.55251,gcam-v7.1 +gSSP2,Canada,2100,2.71667,gcam-v7.1 +gSSP2,Central America and Caribbean,1975,0,gcam-v7.1 +gSSP2,Central America and Caribbean,1990,0,gcam-v7.1 +gSSP2,Central America and Caribbean,2005,0,gcam-v7.1 +gSSP2,Central America and Caribbean,2010,0,gcam-v7.1 +gSSP2,Central America and Caribbean,2015,0,gcam-v7.1 +gSSP2,Central America and Caribbean,2020,1.04029,gcam-v7.1 +gSSP2,Central America and Caribbean,2025,1.12305,gcam-v7.1 +gSSP2,Central America and Caribbean,2030,1.25098,gcam-v7.1 +gSSP2,Central America and Caribbean,2035,1.37455,gcam-v7.1 +gSSP2,Central America and Caribbean,2040,1.48137,gcam-v7.1 +gSSP2,Central America and Caribbean,2045,1.56449,gcam-v7.1 +gSSP2,Central America and Caribbean,2050,1.63367,gcam-v7.1 +gSSP2,Central America and Caribbean,2055,1.70496,gcam-v7.1 +gSSP2,Central America and Caribbean,2060,1.78154,gcam-v7.1 +gSSP2,Central America and Caribbean,2065,1.86227,gcam-v7.1 +gSSP2,Central America and Caribbean,2070,1.95035,gcam-v7.1 +gSSP2,Central America and Caribbean,2075,2.04629,gcam-v7.1 +gSSP2,Central America and Caribbean,2080,2.15168,gcam-v7.1 +gSSP2,Central America and Caribbean,2085,2.26683,gcam-v7.1 +gSSP2,Central America and Caribbean,2090,2.39056,gcam-v7.1 +gSSP2,Central America and Caribbean,2095,2.5232,gcam-v7.1 +gSSP2,Central America and Caribbean,2100,2.66581,gcam-v7.1 +gSSP2,Central Asia,1975,0,gcam-v7.1 +gSSP2,Central Asia,1990,0,gcam-v7.1 +gSSP2,Central Asia,2005,0,gcam-v7.1 +gSSP2,Central Asia,2010,0,gcam-v7.1 +gSSP2,Central Asia,2015,0,gcam-v7.1 +gSSP2,Central Asia,2020,1.04732,gcam-v7.1 +gSSP2,Central Asia,2025,1.19423,gcam-v7.1 +gSSP2,Central Asia,2030,1.34266,gcam-v7.1 +gSSP2,Central Asia,2035,1.46535,gcam-v7.1 +gSSP2,Central Asia,2040,1.58702,gcam-v7.1 +gSSP2,Central Asia,2045,1.70211,gcam-v7.1 +gSSP2,Central Asia,2050,1.79806,gcam-v7.1 +gSSP2,Central Asia,2055,1.90214,gcam-v7.1 +gSSP2,Central Asia,2060,2.02186,gcam-v7.1 +gSSP2,Central Asia,2065,2.14881,gcam-v7.1 +gSSP2,Central Asia,2070,2.28772,gcam-v7.1 +gSSP2,Central Asia,2075,2.43995,gcam-v7.1 +gSSP2,Central Asia,2080,2.60281,gcam-v7.1 +gSSP2,Central Asia,2085,2.77702,gcam-v7.1 +gSSP2,Central Asia,2090,2.95921,gcam-v7.1 +gSSP2,Central Asia,2095,3.14527,gcam-v7.1 +gSSP2,Central Asia,2100,3.33003,gcam-v7.1 +gSSP2,China,1975,0,gcam-v7.1 +gSSP2,China,1990,0,gcam-v7.1 +gSSP2,China,2005,0,gcam-v7.1 +gSSP2,China,2010,0,gcam-v7.1 +gSSP2,China,2015,0,gcam-v7.1 +gSSP2,China,2020,1.2635,gcam-v7.1 +gSSP2,China,2025,1.52772,gcam-v7.1 +gSSP2,China,2030,1.75649,gcam-v7.1 +gSSP2,China,2035,1.96469,gcam-v7.1 +gSSP2,China,2040,2.18153,gcam-v7.1 +gSSP2,China,2045,2.35684,gcam-v7.1 +gSSP2,China,2050,2.53574,gcam-v7.1 +gSSP2,China,2055,2.75918,gcam-v7.1 +gSSP2,China,2060,2.98638,gcam-v7.1 +gSSP2,China,2065,3.21909,gcam-v7.1 +gSSP2,China,2070,3.44328,gcam-v7.1 +gSSP2,China,2075,3.67967,gcam-v7.1 +gSSP2,China,2080,3.90426,gcam-v7.1 +gSSP2,China,2085,4.13996,gcam-v7.1 +gSSP2,China,2090,4.37738,gcam-v7.1 +gSSP2,China,2095,4.61661,gcam-v7.1 +gSSP2,China,2100,4.85806,gcam-v7.1 +gSSP2,Colombia,1975,0,gcam-v7.1 +gSSP2,Colombia,1990,0,gcam-v7.1 +gSSP2,Colombia,2005,0,gcam-v7.1 +gSSP2,Colombia,2010,0,gcam-v7.1 +gSSP2,Colombia,2015,0,gcam-v7.1 +gSSP2,Colombia,2020,1.06317,gcam-v7.1 +gSSP2,Colombia,2025,1.16007,gcam-v7.1 +gSSP2,Colombia,2030,1.25938,gcam-v7.1 +gSSP2,Colombia,2035,1.36776,gcam-v7.1 +gSSP2,Colombia,2040,1.47193,gcam-v7.1 +gSSP2,Colombia,2045,1.58359,gcam-v7.1 +gSSP2,Colombia,2050,1.70585,gcam-v7.1 +gSSP2,Colombia,2055,1.8387,gcam-v7.1 +gSSP2,Colombia,2060,1.98623,gcam-v7.1 +gSSP2,Colombia,2065,2.1446,gcam-v7.1 +gSSP2,Colombia,2070,2.31502,gcam-v7.1 +gSSP2,Colombia,2075,2.49927,gcam-v7.1 +gSSP2,Colombia,2080,2.69442,gcam-v7.1 +gSSP2,Colombia,2085,2.9042,gcam-v7.1 +gSSP2,Colombia,2090,3.12791,gcam-v7.1 +gSSP2,Colombia,2095,3.36443,gcam-v7.1 +gSSP2,Colombia,2100,3.61481,gcam-v7.1 +gSSP2,EU-12,1975,0,gcam-v7.1 +gSSP2,EU-12,1990,0,gcam-v7.1 +gSSP2,EU-12,2005,0,gcam-v7.1 +gSSP2,EU-12,2010,0,gcam-v7.1 +gSSP2,EU-12,2015,0,gcam-v7.1 +gSSP2,EU-12,2020,1.16099,gcam-v7.1 +gSSP2,EU-12,2025,1.28426,gcam-v7.1 +gSSP2,EU-12,2030,1.38228,gcam-v7.1 +gSSP2,EU-12,2035,1.48373,gcam-v7.1 +gSSP2,EU-12,2040,1.59133,gcam-v7.1 +gSSP2,EU-12,2045,1.70863,gcam-v7.1 +gSSP2,EU-12,2050,1.83092,gcam-v7.1 +gSSP2,EU-12,2055,1.96463,gcam-v7.1 +gSSP2,EU-12,2060,2.09558,gcam-v7.1 +gSSP2,EU-12,2065,2.21889,gcam-v7.1 +gSSP2,EU-12,2070,2.33678,gcam-v7.1 +gSSP2,EU-12,2075,2.47062,gcam-v7.1 +gSSP2,EU-12,2080,2.61844,gcam-v7.1 +gSSP2,EU-12,2085,2.77689,gcam-v7.1 +gSSP2,EU-12,2090,2.94231,gcam-v7.1 +gSSP2,EU-12,2095,3.11153,gcam-v7.1 +gSSP2,EU-12,2100,3.2828,gcam-v7.1 +gSSP2,EU-15,1975,0,gcam-v7.1 +gSSP2,EU-15,1990,0,gcam-v7.1 +gSSP2,EU-15,2005,0,gcam-v7.1 +gSSP2,EU-15,2010,0,gcam-v7.1 +gSSP2,EU-15,2015,0,gcam-v7.1 +gSSP2,EU-15,2020,1.07846,gcam-v7.1 +gSSP2,EU-15,2025,1.14578,gcam-v7.1 +gSSP2,EU-15,2030,1.22599,gcam-v7.1 +gSSP2,EU-15,2035,1.31599,gcam-v7.1 +gSSP2,EU-15,2040,1.40907,gcam-v7.1 +gSSP2,EU-15,2045,1.49985,gcam-v7.1 +gSSP2,EU-15,2050,1.58867,gcam-v7.1 +gSSP2,EU-15,2055,1.68089,gcam-v7.1 +gSSP2,EU-15,2060,1.77236,gcam-v7.1 +gSSP2,EU-15,2065,1.86382,gcam-v7.1 +gSSP2,EU-15,2070,1.95859,gcam-v7.1 +gSSP2,EU-15,2075,2.06244,gcam-v7.1 +gSSP2,EU-15,2080,2.1719,gcam-v7.1 +gSSP2,EU-15,2085,2.28733,gcam-v7.1 +gSSP2,EU-15,2090,2.40812,gcam-v7.1 +gSSP2,EU-15,2095,2.53477,gcam-v7.1 +gSSP2,EU-15,2100,2.66835,gcam-v7.1 +gSSP2,Europe_Eastern,1975,0,gcam-v7.1 +gSSP2,Europe_Eastern,1990,0,gcam-v7.1 +gSSP2,Europe_Eastern,2005,0,gcam-v7.1 +gSSP2,Europe_Eastern,2010,0,gcam-v7.1 +gSSP2,Europe_Eastern,2015,0,gcam-v7.1 +gSSP2,Europe_Eastern,2020,1.0323,gcam-v7.1 +gSSP2,Europe_Eastern,2025,1.15853,gcam-v7.1 +gSSP2,Europe_Eastern,2030,1.28631,gcam-v7.1 +gSSP2,Europe_Eastern,2035,1.40377,gcam-v7.1 +gSSP2,Europe_Eastern,2040,1.51077,gcam-v7.1 +gSSP2,Europe_Eastern,2045,1.61445,gcam-v7.1 +gSSP2,Europe_Eastern,2050,1.73839,gcam-v7.1 +gSSP2,Europe_Eastern,2055,1.87213,gcam-v7.1 +gSSP2,Europe_Eastern,2060,2.01559,gcam-v7.1 +gSSP2,Europe_Eastern,2065,2.27776,gcam-v7.1 +gSSP2,Europe_Eastern,2070,2.44336,gcam-v7.1 +gSSP2,Europe_Eastern,2075,2.6337,gcam-v7.1 +gSSP2,Europe_Eastern,2080,2.84872,gcam-v7.1 +gSSP2,Europe_Eastern,2085,3.08155,gcam-v7.1 +gSSP2,Europe_Eastern,2090,3.32232,gcam-v7.1 +gSSP2,Europe_Eastern,2095,3.56644,gcam-v7.1 +gSSP2,Europe_Eastern,2100,3.81702,gcam-v7.1 +gSSP2,Europe_Non_EU,1975,0,gcam-v7.1 +gSSP2,Europe_Non_EU,1990,0,gcam-v7.1 +gSSP2,Europe_Non_EU,2005,0,gcam-v7.1 +gSSP2,Europe_Non_EU,2010,0,gcam-v7.1 +gSSP2,Europe_Non_EU,2015,0,gcam-v7.1 +gSSP2,Europe_Non_EU,2020,1.05587,gcam-v7.1 +gSSP2,Europe_Non_EU,2025,1.12075,gcam-v7.1 +gSSP2,Europe_Non_EU,2030,1.19782,gcam-v7.1 +gSSP2,Europe_Non_EU,2035,1.27054,gcam-v7.1 +gSSP2,Europe_Non_EU,2040,1.34392,gcam-v7.1 +gSSP2,Europe_Non_EU,2045,1.41429,gcam-v7.1 +gSSP2,Europe_Non_EU,2050,1.48417,gcam-v7.1 +gSSP2,Europe_Non_EU,2055,1.55709,gcam-v7.1 +gSSP2,Europe_Non_EU,2060,1.63522,gcam-v7.1 +gSSP2,Europe_Non_EU,2065,1.71654,gcam-v7.1 +gSSP2,Europe_Non_EU,2070,1.79778,gcam-v7.1 +gSSP2,Europe_Non_EU,2075,1.88442,gcam-v7.1 +gSSP2,Europe_Non_EU,2080,1.97586,gcam-v7.1 +gSSP2,Europe_Non_EU,2085,2.07293,gcam-v7.1 +gSSP2,Europe_Non_EU,2090,2.176,gcam-v7.1 +gSSP2,Europe_Non_EU,2095,2.28549,gcam-v7.1 +gSSP2,Europe_Non_EU,2100,2.40108,gcam-v7.1 +gSSP2,European Free Trade Association,1975,0,gcam-v7.1 +gSSP2,European Free Trade Association,1990,0,gcam-v7.1 +gSSP2,European Free Trade Association,2005,0,gcam-v7.1 +gSSP2,European Free Trade Association,2010,0,gcam-v7.1 +gSSP2,European Free Trade Association,2015,0,gcam-v7.1 +gSSP2,European Free Trade Association,2020,1.06277,gcam-v7.1 +gSSP2,European Free Trade Association,2025,1.13442,gcam-v7.1 +gSSP2,European Free Trade Association,2030,1.21439,gcam-v7.1 +gSSP2,European Free Trade Association,2035,1.29558,gcam-v7.1 +gSSP2,European Free Trade Association,2040,1.38022,gcam-v7.1 +gSSP2,European Free Trade Association,2045,1.46071,gcam-v7.1 +gSSP2,European Free Trade Association,2050,1.55002,gcam-v7.1 +gSSP2,European Free Trade Association,2055,1.64986,gcam-v7.1 +gSSP2,European Free Trade Association,2060,1.75872,gcam-v7.1 +gSSP2,European Free Trade Association,2065,1.86964,gcam-v7.1 +gSSP2,European Free Trade Association,2070,1.98398,gcam-v7.1 +gSSP2,European Free Trade Association,2075,2.10829,gcam-v7.1 +gSSP2,European Free Trade Association,2080,2.24276,gcam-v7.1 +gSSP2,European Free Trade Association,2085,2.39005,gcam-v7.1 +gSSP2,European Free Trade Association,2090,2.54877,gcam-v7.1 +gSSP2,European Free Trade Association,2095,2.71608,gcam-v7.1 +gSSP2,European Free Trade Association,2100,2.8905,gcam-v7.1 +gSSP2,India,1975,0,gcam-v7.1 +gSSP2,India,1990,0,gcam-v7.1 +gSSP2,India,2005,0,gcam-v7.1 +gSSP2,India,2010,0,gcam-v7.1 +gSSP2,India,2015,0,gcam-v7.1 +gSSP2,India,2020,1.25733,gcam-v7.1 +gSSP2,India,2025,1.5444,gcam-v7.1 +gSSP2,India,2030,1.71089,gcam-v7.1 +gSSP2,India,2035,1.85135,gcam-v7.1 +gSSP2,India,2040,2.00221,gcam-v7.1 +gSSP2,India,2045,2.16331,gcam-v7.1 +gSSP2,India,2050,2.34126,gcam-v7.1 +gSSP2,India,2055,2.54326,gcam-v7.1 +gSSP2,India,2060,2.76888,gcam-v7.1 +gSSP2,India,2065,3.01415,gcam-v7.1 +gSSP2,India,2070,3.27962,gcam-v7.1 +gSSP2,India,2075,3.56344,gcam-v7.1 +gSSP2,India,2080,3.86574,gcam-v7.1 +gSSP2,India,2085,4.18428,gcam-v7.1 +gSSP2,India,2090,4.51775,gcam-v7.1 +gSSP2,India,2095,4.86686,gcam-v7.1 +gSSP2,India,2100,5.23756,gcam-v7.1 +gSSP2,Indonesia,1975,0,gcam-v7.1 +gSSP2,Indonesia,1990,0,gcam-v7.1 +gSSP2,Indonesia,2005,0,gcam-v7.1 +gSSP2,Indonesia,2010,0,gcam-v7.1 +gSSP2,Indonesia,2015,0,gcam-v7.1 +gSSP2,Indonesia,2020,1.15434,gcam-v7.1 +gSSP2,Indonesia,2025,1.34556,gcam-v7.1 +gSSP2,Indonesia,2030,1.54821,gcam-v7.1 +gSSP2,Indonesia,2035,1.71662,gcam-v7.1 +gSSP2,Indonesia,2040,1.88133,gcam-v7.1 +gSSP2,Indonesia,2045,2.04007,gcam-v7.1 +gSSP2,Indonesia,2050,2.20641,gcam-v7.1 +gSSP2,Indonesia,2055,2.3806,gcam-v7.1 +gSSP2,Indonesia,2060,2.5688,gcam-v7.1 +gSSP2,Indonesia,2065,2.76909,gcam-v7.1 +gSSP2,Indonesia,2070,2.99331,gcam-v7.1 +gSSP2,Indonesia,2075,3.23385,gcam-v7.1 +gSSP2,Indonesia,2080,3.48718,gcam-v7.1 +gSSP2,Indonesia,2085,3.75536,gcam-v7.1 +gSSP2,Indonesia,2090,4.0388,gcam-v7.1 +gSSP2,Indonesia,2095,4.33483,gcam-v7.1 +gSSP2,Indonesia,2100,4.64519,gcam-v7.1 +gSSP2,Japan,1975,0,gcam-v7.1 +gSSP2,Japan,1990,0,gcam-v7.1 +gSSP2,Japan,2005,0,gcam-v7.1 +gSSP2,Japan,2010,0,gcam-v7.1 +gSSP2,Japan,2015,0,gcam-v7.1 +gSSP2,Japan,2020,1.05841,gcam-v7.1 +gSSP2,Japan,2025,1.09643,gcam-v7.1 +gSSP2,Japan,2030,1.15801,gcam-v7.1 +gSSP2,Japan,2035,1.21973,gcam-v7.1 +gSSP2,Japan,2040,1.29954,gcam-v7.1 +gSSP2,Japan,2045,1.37888,gcam-v7.1 +gSSP2,Japan,2050,1.45326,gcam-v7.1 +gSSP2,Japan,2055,1.52986,gcam-v7.1 +gSSP2,Japan,2060,1.60785,gcam-v7.1 +gSSP2,Japan,2065,1.69098,gcam-v7.1 +gSSP2,Japan,2070,1.7782,gcam-v7.1 +gSSP2,Japan,2075,1.87109,gcam-v7.1 +gSSP2,Japan,2080,1.97035,gcam-v7.1 +gSSP2,Japan,2085,2.07051,gcam-v7.1 +gSSP2,Japan,2090,2.17256,gcam-v7.1 +gSSP2,Japan,2095,2.2789,gcam-v7.1 +gSSP2,Japan,2100,2.39174,gcam-v7.1 +gSSP2,Mexico,1975,0,gcam-v7.1 +gSSP2,Mexico,1990,0,gcam-v7.1 +gSSP2,Mexico,2005,0,gcam-v7.1 +gSSP2,Mexico,2010,0,gcam-v7.1 +gSSP2,Mexico,2015,0,gcam-v7.1 +gSSP2,Mexico,2020,1.00912,gcam-v7.1 +gSSP2,Mexico,2025,1.07883,gcam-v7.1 +gSSP2,Mexico,2030,1.18142,gcam-v7.1 +gSSP2,Mexico,2035,1.28982,gcam-v7.1 +gSSP2,Mexico,2040,1.38501,gcam-v7.1 +gSSP2,Mexico,2045,1.46528,gcam-v7.1 +gSSP2,Mexico,2050,1.53642,gcam-v7.1 +gSSP2,Mexico,2055,1.60792,gcam-v7.1 +gSSP2,Mexico,2060,1.68519,gcam-v7.1 +gSSP2,Mexico,2065,1.76251,gcam-v7.1 +gSSP2,Mexico,2070,1.84525,gcam-v7.1 +gSSP2,Mexico,2075,1.932,gcam-v7.1 +gSSP2,Mexico,2080,2.02561,gcam-v7.1 +gSSP2,Mexico,2085,2.12649,gcam-v7.1 +gSSP2,Mexico,2090,2.2351,gcam-v7.1 +gSSP2,Mexico,2095,2.35052,gcam-v7.1 +gSSP2,Mexico,2100,2.47472,gcam-v7.1 +gSSP2,Middle East,1975,0,gcam-v7.1 +gSSP2,Middle East,1990,0,gcam-v7.1 +gSSP2,Middle East,2005,0,gcam-v7.1 +gSSP2,Middle East,2010,0,gcam-v7.1 +gSSP2,Middle East,2015,0,gcam-v7.1 +gSSP2,Middle East,2020,1.07731,gcam-v7.1 +gSSP2,Middle East,2025,1.14188,gcam-v7.1 +gSSP2,Middle East,2030,1.29007,gcam-v7.1 +gSSP2,Middle East,2035,1.39225,gcam-v7.1 +gSSP2,Middle East,2040,1.49189,gcam-v7.1 +gSSP2,Middle East,2045,1.58098,gcam-v7.1 +gSSP2,Middle East,2050,1.65886,gcam-v7.1 +gSSP2,Middle East,2055,1.73703,gcam-v7.1 +gSSP2,Middle East,2060,1.81015,gcam-v7.1 +gSSP2,Middle East,2065,1.88843,gcam-v7.1 +gSSP2,Middle East,2070,1.97948,gcam-v7.1 +gSSP2,Middle East,2075,2.08254,gcam-v7.1 +gSSP2,Middle East,2080,2.19331,gcam-v7.1 +gSSP2,Middle East,2085,2.31346,gcam-v7.1 +gSSP2,Middle East,2090,2.44257,gcam-v7.1 +gSSP2,Middle East,2095,2.5869,gcam-v7.1 +gSSP2,Middle East,2100,2.74572,gcam-v7.1 +gSSP2,Pakistan,1975,0,gcam-v7.1 +gSSP2,Pakistan,1990,0,gcam-v7.1 +gSSP2,Pakistan,2005,0,gcam-v7.1 +gSSP2,Pakistan,2010,0,gcam-v7.1 +gSSP2,Pakistan,2015,0,gcam-v7.1 +gSSP2,Pakistan,2020,1.04268,gcam-v7.1 +gSSP2,Pakistan,2025,1.09227,gcam-v7.1 +gSSP2,Pakistan,2030,1.22441,gcam-v7.1 +gSSP2,Pakistan,2035,1.36652,gcam-v7.1 +gSSP2,Pakistan,2040,1.50524,gcam-v7.1 +gSSP2,Pakistan,2045,1.63775,gcam-v7.1 +gSSP2,Pakistan,2050,1.77475,gcam-v7.1 +gSSP2,Pakistan,2055,1.93248,gcam-v7.1 +gSSP2,Pakistan,2060,2.11143,gcam-v7.1 +gSSP2,Pakistan,2065,2.31814,gcam-v7.1 +gSSP2,Pakistan,2070,2.55092,gcam-v7.1 +gSSP2,Pakistan,2075,2.81482,gcam-v7.1 +gSSP2,Pakistan,2080,3.11182,gcam-v7.1 +gSSP2,Pakistan,2085,3.43878,gcam-v7.1 +gSSP2,Pakistan,2090,3.79427,gcam-v7.1 +gSSP2,Pakistan,2095,4.17498,gcam-v7.1 +gSSP2,Pakistan,2100,4.58607,gcam-v7.1 +gSSP2,Russia,1975,0,gcam-v7.1 +gSSP2,Russia,1990,0,gcam-v7.1 +gSSP2,Russia,2005,0,gcam-v7.1 +gSSP2,Russia,2010,0,gcam-v7.1 +gSSP2,Russia,2015,0,gcam-v7.1 +gSSP2,Russia,2020,1.11754,gcam-v7.1 +gSSP2,Russia,2025,1.24907,gcam-v7.1 +gSSP2,Russia,2030,1.43992,gcam-v7.1 +gSSP2,Russia,2035,1.61071,gcam-v7.1 +gSSP2,Russia,2040,1.78209,gcam-v7.1 +gSSP2,Russia,2045,1.92713,gcam-v7.1 +gSSP2,Russia,2050,2.08003,gcam-v7.1 +gSSP2,Russia,2055,2.24955,gcam-v7.1 +gSSP2,Russia,2060,2.39238,gcam-v7.1 +gSSP2,Russia,2065,2.51406,gcam-v7.1 +gSSP2,Russia,2070,2.6593,gcam-v7.1 +gSSP2,Russia,2075,2.83534,gcam-v7.1 +gSSP2,Russia,2080,3.03612,gcam-v7.1 +gSSP2,Russia,2085,3.24453,gcam-v7.1 +gSSP2,Russia,2090,3.45521,gcam-v7.1 +gSSP2,Russia,2095,3.66158,gcam-v7.1 +gSSP2,Russia,2100,3.87583,gcam-v7.1 +gSSP2,South Africa,1975,0,gcam-v7.1 +gSSP2,South Africa,1990,0,gcam-v7.1 +gSSP2,South Africa,2005,0,gcam-v7.1 +gSSP2,South Africa,2010,0,gcam-v7.1 +gSSP2,South Africa,2015,0,gcam-v7.1 +gSSP2,South Africa,2020,1.01602,gcam-v7.1 +gSSP2,South Africa,2025,1.11733,gcam-v7.1 +gSSP2,South Africa,2030,1.30454,gcam-v7.1 +gSSP2,South Africa,2035,1.47631,gcam-v7.1 +gSSP2,South Africa,2040,1.62203,gcam-v7.1 +gSSP2,South Africa,2045,1.71618,gcam-v7.1 +gSSP2,South Africa,2050,1.78924,gcam-v7.1 +gSSP2,South Africa,2055,1.8675,gcam-v7.1 +gSSP2,South Africa,2060,1.95183,gcam-v7.1 +gSSP2,South Africa,2065,2.03825,gcam-v7.1 +gSSP2,South Africa,2070,2.1286,gcam-v7.1 +gSSP2,South Africa,2075,2.22263,gcam-v7.1 +gSSP2,South Africa,2080,2.32425,gcam-v7.1 +gSSP2,South Africa,2085,2.43303,gcam-v7.1 +gSSP2,South Africa,2090,2.55221,gcam-v7.1 +gSSP2,South Africa,2095,2.68051,gcam-v7.1 +gSSP2,South Africa,2100,2.81929,gcam-v7.1 +gSSP2,South America_Northern,1975,0,gcam-v7.1 +gSSP2,South America_Northern,1990,0,gcam-v7.1 +gSSP2,South America_Northern,2005,0,gcam-v7.1 +gSSP2,South America_Northern,2010,0,gcam-v7.1 +gSSP2,South America_Northern,2015,0,gcam-v7.1 +gSSP2,South America_Northern,2020,0.0756723,gcam-v7.1 +gSSP2,South America_Northern,2025,-0.00579572,gcam-v7.1 +gSSP2,South America_Northern,2030,-0.013408,gcam-v7.1 +gSSP2,South America_Northern,2035,0.0341418,gcam-v7.1 +gSSP2,South America_Northern,2040,0.0721988,gcam-v7.1 +gSSP2,South America_Northern,2045,0.170314,gcam-v7.1 +gSSP2,South America_Northern,2050,0.319591,gcam-v7.1 +gSSP2,South America_Northern,2055,0.461192,gcam-v7.1 +gSSP2,South America_Northern,2060,0.581537,gcam-v7.1 +gSSP2,South America_Northern,2065,0.68658,gcam-v7.1 +gSSP2,South America_Northern,2070,0.787328,gcam-v7.1 +gSSP2,South America_Northern,2075,0.884394,gcam-v7.1 +gSSP2,South America_Northern,2080,0.990992,gcam-v7.1 +gSSP2,South America_Northern,2085,1.11144,gcam-v7.1 +gSSP2,South America_Northern,2090,1.24294,gcam-v7.1 +gSSP2,South America_Northern,2095,1.37422,gcam-v7.1 +gSSP2,South America_Northern,2100,1.50985,gcam-v7.1 +gSSP2,South America_Southern,1975,0,gcam-v7.1 +gSSP2,South America_Southern,1990,0,gcam-v7.1 +gSSP2,South America_Southern,2005,0,gcam-v7.1 +gSSP2,South America_Southern,2010,0,gcam-v7.1 +gSSP2,South America_Southern,2015,0,gcam-v7.1 +gSSP2,South America_Southern,2020,1.06997,gcam-v7.1 +gSSP2,South America_Southern,2025,1.16752,gcam-v7.1 +gSSP2,South America_Southern,2030,1.28846,gcam-v7.1 +gSSP2,South America_Southern,2035,1.39122,gcam-v7.1 +gSSP2,South America_Southern,2040,1.49193,gcam-v7.1 +gSSP2,South America_Southern,2045,1.5911,gcam-v7.1 +gSSP2,South America_Southern,2050,1.69359,gcam-v7.1 +gSSP2,South America_Southern,2055,1.8061,gcam-v7.1 +gSSP2,South America_Southern,2060,1.93239,gcam-v7.1 +gSSP2,South America_Southern,2065,2.06882,gcam-v7.1 +gSSP2,South America_Southern,2070,2.21635,gcam-v7.1 +gSSP2,South America_Southern,2075,2.37339,gcam-v7.1 +gSSP2,South America_Southern,2080,2.53961,gcam-v7.1 +gSSP2,South America_Southern,2085,2.716,gcam-v7.1 +gSSP2,South America_Southern,2090,2.90283,gcam-v7.1 +gSSP2,South America_Southern,2095,3.09957,gcam-v7.1 +gSSP2,South America_Southern,2100,3.30696,gcam-v7.1 +gSSP2,South Asia,1975,0,gcam-v7.1 +gSSP2,South Asia,1990,0,gcam-v7.1 +gSSP2,South Asia,2005,0,gcam-v7.1 +gSSP2,South Asia,2010,0,gcam-v7.1 +gSSP2,South Asia,2015,0,gcam-v7.1 +gSSP2,South Asia,2020,1.10582,gcam-v7.1 +gSSP2,South Asia,2025,1.20991,gcam-v7.1 +gSSP2,South Asia,2030,1.27508,gcam-v7.1 +gSSP2,South Asia,2035,1.30121,gcam-v7.1 +gSSP2,South Asia,2040,1.32087,gcam-v7.1 +gSSP2,South Asia,2045,1.33906,gcam-v7.1 +gSSP2,South Asia,2050,1.35574,gcam-v7.1 +gSSP2,South Asia,2055,1.38056,gcam-v7.1 +gSSP2,South Asia,2060,1.41293,gcam-v7.1 +gSSP2,South Asia,2065,1.45517,gcam-v7.1 +gSSP2,South Asia,2070,1.50724,gcam-v7.1 +gSSP2,South Asia,2075,1.56579,gcam-v7.1 +gSSP2,South Asia,2080,1.63174,gcam-v7.1 +gSSP2,South Asia,2085,1.70609,gcam-v7.1 +gSSP2,South Asia,2090,1.78918,gcam-v7.1 +gSSP2,South Asia,2095,1.88116,gcam-v7.1 +gSSP2,South Asia,2100,1.98175,gcam-v7.1 +gSSP2,South Korea,1975,0,gcam-v7.1 +gSSP2,South Korea,1990,0,gcam-v7.1 +gSSP2,South Korea,2005,0,gcam-v7.1 +gSSP2,South Korea,2010,0,gcam-v7.1 +gSSP2,South Korea,2015,0,gcam-v7.1 +gSSP2,South Korea,2020,1.08215,gcam-v7.1 +gSSP2,South Korea,2025,1.23825,gcam-v7.1 +gSSP2,South Korea,2030,1.40459,gcam-v7.1 +gSSP2,South Korea,2035,1.55445,gcam-v7.1 +gSSP2,South Korea,2040,1.71379,gcam-v7.1 +gSSP2,South Korea,2045,1.83165,gcam-v7.1 +gSSP2,South Korea,2050,1.94259,gcam-v7.1 +gSSP2,South Korea,2055,2.04756,gcam-v7.1 +gSSP2,South Korea,2060,2.16861,gcam-v7.1 +gSSP2,South Korea,2065,2.29035,gcam-v7.1 +gSSP2,South Korea,2070,2.39077,gcam-v7.1 +gSSP2,South Korea,2075,2.49868,gcam-v7.1 +gSSP2,South Korea,2080,2.60213,gcam-v7.1 +gSSP2,South Korea,2085,2.71035,gcam-v7.1 +gSSP2,South Korea,2090,2.82765,gcam-v7.1 +gSSP2,South Korea,2095,2.95527,gcam-v7.1 +gSSP2,South Korea,2100,3.08425,gcam-v7.1 +gSSP2,Southeast Asia,1975,0,gcam-v7.1 +gSSP2,Southeast Asia,1990,0,gcam-v7.1 +gSSP2,Southeast Asia,2005,0,gcam-v7.1 +gSSP2,Southeast Asia,2010,0,gcam-v7.1 +gSSP2,Southeast Asia,2015,0,gcam-v7.1 +gSSP2,Southeast Asia,2020,1.15136,gcam-v7.1 +gSSP2,Southeast Asia,2025,1.3217,gcam-v7.1 +gSSP2,Southeast Asia,2030,1.44659,gcam-v7.1 +gSSP2,Southeast Asia,2035,1.51876,gcam-v7.1 +gSSP2,Southeast Asia,2040,1.59294,gcam-v7.1 +gSSP2,Southeast Asia,2045,1.65538,gcam-v7.1 +gSSP2,Southeast Asia,2050,1.71559,gcam-v7.1 +gSSP2,Southeast Asia,2055,1.78717,gcam-v7.1 +gSSP2,Southeast Asia,2060,1.86765,gcam-v7.1 +gSSP2,Southeast Asia,2065,1.95289,gcam-v7.1 +gSSP2,Southeast Asia,2070,2.04588,gcam-v7.1 +gSSP2,Southeast Asia,2075,2.14563,gcam-v7.1 +gSSP2,Southeast Asia,2080,2.25317,gcam-v7.1 +gSSP2,Southeast Asia,2085,2.36875,gcam-v7.1 +gSSP2,Southeast Asia,2090,2.49066,gcam-v7.1 +gSSP2,Southeast Asia,2095,2.61884,gcam-v7.1 +gSSP2,Southeast Asia,2100,2.75471,gcam-v7.1 +gSSP2,Taiwan,1975,0,gcam-v7.1 +gSSP2,Taiwan,1990,0,gcam-v7.1 +gSSP2,Taiwan,2005,0,gcam-v7.1 +gSSP2,Taiwan,2010,0,gcam-v7.1 +gSSP2,Taiwan,2015,0,gcam-v7.1 +gSSP2,Taiwan,2020,1.08962,gcam-v7.1 +gSSP2,Taiwan,2025,1.17352,gcam-v7.1 +gSSP2,Taiwan,2030,1.23849,gcam-v7.1 +gSSP2,Taiwan,2035,1.29528,gcam-v7.1 +gSSP2,Taiwan,2040,1.35007,gcam-v7.1 +gSSP2,Taiwan,2045,1.38864,gcam-v7.1 +gSSP2,Taiwan,2050,1.40888,gcam-v7.1 +gSSP2,Taiwan,2055,1.41977,gcam-v7.1 +gSSP2,Taiwan,2060,1.43586,gcam-v7.1 +gSSP2,Taiwan,2065,1.50171,gcam-v7.1 +gSSP2,Taiwan,2070,1.56576,gcam-v7.1 +gSSP2,Taiwan,2075,1.62056,gcam-v7.1 +gSSP2,Taiwan,2080,1.66625,gcam-v7.1 +gSSP2,Taiwan,2085,1.69974,gcam-v7.1 +gSSP2,Taiwan,2090,1.72414,gcam-v7.1 +gSSP2,Taiwan,2095,1.74126,gcam-v7.1 +gSSP2,Taiwan,2100,1.75341,gcam-v7.1 +gSSP2,USA,1975,0,gcam-v7.1 +gSSP2,USA,1990,0,gcam-v7.1 +gSSP2,USA,2005,0,gcam-v7.1 +gSSP2,USA,2010,0,gcam-v7.1 +gSSP2,USA,2015,0,gcam-v7.1 +gSSP2,USA,2020,1.06729,gcam-v7.1 +gSSP2,USA,2025,1.11998,gcam-v7.1 +gSSP2,USA,2030,1.18837,gcam-v7.1 +gSSP2,USA,2035,1.24119,gcam-v7.1 +gSSP2,USA,2040,1.28587,gcam-v7.1 +gSSP2,USA,2045,1.32108,gcam-v7.1 +gSSP2,USA,2050,1.35837,gcam-v7.1 +gSSP2,USA,2055,1.40066,gcam-v7.1 +gSSP2,USA,2060,1.44585,gcam-v7.1 +gSSP2,USA,2065,1.48757,gcam-v7.1 +gSSP2,USA,2070,1.53327,gcam-v7.1 +gSSP2,USA,2075,1.58337,gcam-v7.1 +gSSP2,USA,2080,1.63249,gcam-v7.1 +gSSP2,USA,2085,1.68485,gcam-v7.1 +gSSP2,USA,2090,1.73959,gcam-v7.1 +gSSP2,USA,2095,1.79648,gcam-v7.1 +gSSP2,USA,2100,1.85645,gcam-v7.1 +SSP1,Africa_Eastern,1975,0,gcam-v7.1 +SSP1,Africa_Eastern,1990,0,gcam-v7.1 +SSP1,Africa_Eastern,2005,0,gcam-v7.1 +SSP1,Africa_Eastern,2010,0,gcam-v7.1 +SSP1,Africa_Eastern,2015,0,gcam-v7.1 +SSP1,Africa_Eastern,2020,1.19618,gcam-v7.1 +SSP1,Africa_Eastern,2025,1.48874,gcam-v7.1 +SSP1,Africa_Eastern,2030,1.78689,gcam-v7.1 +SSP1,Africa_Eastern,2035,2.06863,gcam-v7.1 +SSP1,Africa_Eastern,2040,2.31244,gcam-v7.1 +SSP1,Africa_Eastern,2045,2.53025,gcam-v7.1 +SSP1,Africa_Eastern,2050,2.76243,gcam-v7.1 +SSP1,Africa_Eastern,2055,3.04797,gcam-v7.1 +SSP1,Africa_Eastern,2060,3.39208,gcam-v7.1 +SSP1,Africa_Eastern,2065,3.79894,gcam-v7.1 +SSP1,Africa_Eastern,2070,4.26847,gcam-v7.1 +SSP1,Africa_Eastern,2075,4.79518,gcam-v7.1 +SSP1,Africa_Eastern,2080,5.37867,gcam-v7.1 +SSP1,Africa_Eastern,2085,6.01385,gcam-v7.1 +SSP1,Africa_Eastern,2090,6.69374,gcam-v7.1 +SSP1,Africa_Eastern,2095,7.41708,gcam-v7.1 +SSP1,Africa_Eastern,2100,8.18102,gcam-v7.1 +SSP1,Africa_Northern,1975,0,gcam-v7.1 +SSP1,Africa_Northern,1990,0,gcam-v7.1 +SSP1,Africa_Northern,2005,0,gcam-v7.1 +SSP1,Africa_Northern,2010,0,gcam-v7.1 +SSP1,Africa_Northern,2015,0,gcam-v7.1 +SSP1,Africa_Northern,2020,1.13832,gcam-v7.1 +SSP1,Africa_Northern,2025,1.40469,gcam-v7.1 +SSP1,Africa_Northern,2030,1.6077,gcam-v7.1 +SSP1,Africa_Northern,2035,1.75118,gcam-v7.1 +SSP1,Africa_Northern,2040,1.8541,gcam-v7.1 +SSP1,Africa_Northern,2045,1.93307,gcam-v7.1 +SSP1,Africa_Northern,2050,2.01632,gcam-v7.1 +SSP1,Africa_Northern,2055,2.10867,gcam-v7.1 +SSP1,Africa_Northern,2060,2.22244,gcam-v7.1 +SSP1,Africa_Northern,2065,2.34222,gcam-v7.1 +SSP1,Africa_Northern,2070,2.46583,gcam-v7.1 +SSP1,Africa_Northern,2075,2.5972,gcam-v7.1 +SSP1,Africa_Northern,2080,2.74226,gcam-v7.1 +SSP1,Africa_Northern,2085,2.89783,gcam-v7.1 +SSP1,Africa_Northern,2090,3.05995,gcam-v7.1 +SSP1,Africa_Northern,2095,3.22272,gcam-v7.1 +SSP1,Africa_Northern,2100,3.39226,gcam-v7.1 +SSP1,Africa_Southern,1975,0,gcam-v7.1 +SSP1,Africa_Southern,1990,0,gcam-v7.1 +SSP1,Africa_Southern,2005,0,gcam-v7.1 +SSP1,Africa_Southern,2010,0,gcam-v7.1 +SSP1,Africa_Southern,2015,0,gcam-v7.1 +SSP1,Africa_Southern,2020,1.27427,gcam-v7.1 +SSP1,Africa_Southern,2025,1.68528,gcam-v7.1 +SSP1,Africa_Southern,2030,2.02174,gcam-v7.1 +SSP1,Africa_Southern,2035,2.36575,gcam-v7.1 +SSP1,Africa_Southern,2040,2.72519,gcam-v7.1 +SSP1,Africa_Southern,2045,3.06176,gcam-v7.1 +SSP1,Africa_Southern,2050,3.37698,gcam-v7.1 +SSP1,Africa_Southern,2055,3.68981,gcam-v7.1 +SSP1,Africa_Southern,2060,4.01977,gcam-v7.1 +SSP1,Africa_Southern,2065,4.37718,gcam-v7.1 +SSP1,Africa_Southern,2070,4.7729,gcam-v7.1 +SSP1,Africa_Southern,2075,5.20269,gcam-v7.1 +SSP1,Africa_Southern,2080,5.67583,gcam-v7.1 +SSP1,Africa_Southern,2085,6.19094,gcam-v7.1 +SSP1,Africa_Southern,2090,6.74203,gcam-v7.1 +SSP1,Africa_Southern,2095,7.32954,gcam-v7.1 +SSP1,Africa_Southern,2100,7.94898,gcam-v7.1 +SSP1,Africa_Western,1975,0,gcam-v7.1 +SSP1,Africa_Western,1990,0,gcam-v7.1 +SSP1,Africa_Western,2005,0,gcam-v7.1 +SSP1,Africa_Western,2010,0,gcam-v7.1 +SSP1,Africa_Western,2015,0,gcam-v7.1 +SSP1,Africa_Western,2020,1.22061,gcam-v7.1 +SSP1,Africa_Western,2025,1.52346,gcam-v7.1 +SSP1,Africa_Western,2030,1.77794,gcam-v7.1 +SSP1,Africa_Western,2035,2.0321,gcam-v7.1 +SSP1,Africa_Western,2040,2.28547,gcam-v7.1 +SSP1,Africa_Western,2045,2.55716,gcam-v7.1 +SSP1,Africa_Western,2050,2.86505,gcam-v7.1 +SSP1,Africa_Western,2055,3.21762,gcam-v7.1 +SSP1,Africa_Western,2060,3.614,gcam-v7.1 +SSP1,Africa_Western,2065,4.05548,gcam-v7.1 +SSP1,Africa_Western,2070,4.5423,gcam-v7.1 +SSP1,Africa_Western,2075,5.07299,gcam-v7.1 +SSP1,Africa_Western,2080,5.65133,gcam-v7.1 +SSP1,Africa_Western,2085,6.26753,gcam-v7.1 +SSP1,Africa_Western,2090,6.91712,gcam-v7.1 +SSP1,Africa_Western,2095,7.6048,gcam-v7.1 +SSP1,Africa_Western,2100,8.32845,gcam-v7.1 +SSP1,Argentina,1975,0,gcam-v7.1 +SSP1,Argentina,1990,0,gcam-v7.1 +SSP1,Argentina,2005,0,gcam-v7.1 +SSP1,Argentina,2010,0,gcam-v7.1 +SSP1,Argentina,2015,0,gcam-v7.1 +SSP1,Argentina,2020,1.10762,gcam-v7.1 +SSP1,Argentina,2025,1.30715,gcam-v7.1 +SSP1,Argentina,2030,1.42816,gcam-v7.1 +SSP1,Argentina,2035,1.55047,gcam-v7.1 +SSP1,Argentina,2040,1.6746,gcam-v7.1 +SSP1,Argentina,2045,1.78996,gcam-v7.1 +SSP1,Argentina,2050,1.8794,gcam-v7.1 +SSP1,Argentina,2055,1.96824,gcam-v7.1 +SSP1,Argentina,2060,2.06639,gcam-v7.1 +SSP1,Argentina,2065,2.1688,gcam-v7.1 +SSP1,Argentina,2070,2.26802,gcam-v7.1 +SSP1,Argentina,2075,2.36855,gcam-v7.1 +SSP1,Argentina,2080,2.47579,gcam-v7.1 +SSP1,Argentina,2085,2.59591,gcam-v7.1 +SSP1,Argentina,2090,2.72509,gcam-v7.1 +SSP1,Argentina,2095,2.86506,gcam-v7.1 +SSP1,Argentina,2100,3.01454,gcam-v7.1 +SSP1,Australia_NZ,1975,0,gcam-v7.1 +SSP1,Australia_NZ,1990,0,gcam-v7.1 +SSP1,Australia_NZ,2005,0,gcam-v7.1 +SSP1,Australia_NZ,2010,0,gcam-v7.1 +SSP1,Australia_NZ,2015,0,gcam-v7.1 +SSP1,Australia_NZ,2020,1.11522,gcam-v7.1 +SSP1,Australia_NZ,2025,1.21627,gcam-v7.1 +SSP1,Australia_NZ,2030,1.30359,gcam-v7.1 +SSP1,Australia_NZ,2035,1.39764,gcam-v7.1 +SSP1,Australia_NZ,2040,1.50417,gcam-v7.1 +SSP1,Australia_NZ,2045,1.60289,gcam-v7.1 +SSP1,Australia_NZ,2050,1.69497,gcam-v7.1 +SSP1,Australia_NZ,2055,1.79687,gcam-v7.1 +SSP1,Australia_NZ,2060,1.90338,gcam-v7.1 +SSP1,Australia_NZ,2065,2.01374,gcam-v7.1 +SSP1,Australia_NZ,2070,2.12827,gcam-v7.1 +SSP1,Australia_NZ,2075,2.25725,gcam-v7.1 +SSP1,Australia_NZ,2080,2.4023,gcam-v7.1 +SSP1,Australia_NZ,2085,2.5612,gcam-v7.1 +SSP1,Australia_NZ,2090,2.73178,gcam-v7.1 +SSP1,Australia_NZ,2095,2.90892,gcam-v7.1 +SSP1,Australia_NZ,2100,3.09237,gcam-v7.1 +SSP1,Brazil,1975,0,gcam-v7.1 +SSP1,Brazil,1990,0,gcam-v7.1 +SSP1,Brazil,2005,0,gcam-v7.1 +SSP1,Brazil,2010,0,gcam-v7.1 +SSP1,Brazil,2015,0,gcam-v7.1 +SSP1,Brazil,2020,1.18278,gcam-v7.1 +SSP1,Brazil,2025,1.38973,gcam-v7.1 +SSP1,Brazil,2030,1.58208,gcam-v7.1 +SSP1,Brazil,2035,1.78032,gcam-v7.1 +SSP1,Brazil,2040,1.97918,gcam-v7.1 +SSP1,Brazil,2045,2.17096,gcam-v7.1 +SSP1,Brazil,2050,2.35589,gcam-v7.1 +SSP1,Brazil,2055,2.53852,gcam-v7.1 +SSP1,Brazil,2060,2.72504,gcam-v7.1 +SSP1,Brazil,2065,2.9256,gcam-v7.1 +SSP1,Brazil,2070,3.13635,gcam-v7.1 +SSP1,Brazil,2075,3.33557,gcam-v7.1 +SSP1,Brazil,2080,3.54596,gcam-v7.1 +SSP1,Brazil,2085,3.77273,gcam-v7.1 +SSP1,Brazil,2090,4.01836,gcam-v7.1 +SSP1,Brazil,2095,4.2774,gcam-v7.1 +SSP1,Brazil,2100,4.54678,gcam-v7.1 +SSP1,Canada,1975,0,gcam-v7.1 +SSP1,Canada,1990,0,gcam-v7.1 +SSP1,Canada,2005,0,gcam-v7.1 +SSP1,Canada,2010,0,gcam-v7.1 +SSP1,Canada,2015,0,gcam-v7.1 +SSP1,Canada,2020,1.06446,gcam-v7.1 +SSP1,Canada,2025,1.13756,gcam-v7.1 +SSP1,Canada,2030,1.197,gcam-v7.1 +SSP1,Canada,2035,1.25881,gcam-v7.1 +SSP1,Canada,2040,1.32543,gcam-v7.1 +SSP1,Canada,2045,1.40249,gcam-v7.1 +SSP1,Canada,2050,1.49216,gcam-v7.1 +SSP1,Canada,2055,1.59869,gcam-v7.1 +SSP1,Canada,2060,1.7176,gcam-v7.1 +SSP1,Canada,2065,1.83634,gcam-v7.1 +SSP1,Canada,2070,1.95951,gcam-v7.1 +SSP1,Canada,2075,2.09113,gcam-v7.1 +SSP1,Canada,2080,2.23,gcam-v7.1 +SSP1,Canada,2085,2.38649,gcam-v7.1 +SSP1,Canada,2090,2.55608,gcam-v7.1 +SSP1,Canada,2095,2.73203,gcam-v7.1 +SSP1,Canada,2100,2.91124,gcam-v7.1 +SSP1,Central America and Caribbean,1975,0,gcam-v7.1 +SSP1,Central America and Caribbean,1990,0,gcam-v7.1 +SSP1,Central America and Caribbean,2005,0,gcam-v7.1 +SSP1,Central America and Caribbean,2010,0,gcam-v7.1 +SSP1,Central America and Caribbean,2015,0,gcam-v7.1 +SSP1,Central America and Caribbean,2020,1.0924,gcam-v7.1 +SSP1,Central America and Caribbean,2025,1.2355,gcam-v7.1 +SSP1,Central America and Caribbean,2030,1.39329,gcam-v7.1 +SSP1,Central America and Caribbean,2035,1.55375,gcam-v7.1 +SSP1,Central America and Caribbean,2040,1.68563,gcam-v7.1 +SSP1,Central America and Caribbean,2045,1.78013,gcam-v7.1 +SSP1,Central America and Caribbean,2050,1.85479,gcam-v7.1 +SSP1,Central America and Caribbean,2055,1.93309,gcam-v7.1 +SSP1,Central America and Caribbean,2060,2.01948,gcam-v7.1 +SSP1,Central America and Caribbean,2065,2.11189,gcam-v7.1 +SSP1,Central America and Caribbean,2070,2.21051,gcam-v7.1 +SSP1,Central America and Caribbean,2075,2.31559,gcam-v7.1 +SSP1,Central America and Caribbean,2080,2.4335,gcam-v7.1 +SSP1,Central America and Caribbean,2085,2.56147,gcam-v7.1 +SSP1,Central America and Caribbean,2090,2.69874,gcam-v7.1 +SSP1,Central America and Caribbean,2095,2.84581,gcam-v7.1 +SSP1,Central America and Caribbean,2100,3.00106,gcam-v7.1 +SSP1,Central Asia,1975,0,gcam-v7.1 +SSP1,Central Asia,1990,0,gcam-v7.1 +SSP1,Central Asia,2005,0,gcam-v7.1 +SSP1,Central Asia,2010,0,gcam-v7.1 +SSP1,Central Asia,2015,0,gcam-v7.1 +SSP1,Central Asia,2020,1.10431,gcam-v7.1 +SSP1,Central Asia,2025,1.37085,gcam-v7.1 +SSP1,Central Asia,2030,1.5747,gcam-v7.1 +SSP1,Central Asia,2035,1.77822,gcam-v7.1 +SSP1,Central Asia,2040,1.99113,gcam-v7.1 +SSP1,Central Asia,2045,2.19196,gcam-v7.1 +SSP1,Central Asia,2050,2.3775,gcam-v7.1 +SSP1,Central Asia,2055,2.57065,gcam-v7.1 +SSP1,Central Asia,2060,2.77469,gcam-v7.1 +SSP1,Central Asia,2065,2.98288,gcam-v7.1 +SSP1,Central Asia,2070,3.1887,gcam-v7.1 +SSP1,Central Asia,2075,3.40309,gcam-v7.1 +SSP1,Central Asia,2080,3.62795,gcam-v7.1 +SSP1,Central Asia,2085,3.86019,gcam-v7.1 +SSP1,Central Asia,2090,4.0999,gcam-v7.1 +SSP1,Central Asia,2095,4.34532,gcam-v7.1 +SSP1,Central Asia,2100,4.59199,gcam-v7.1 +SSP1,China,1975,0,gcam-v7.1 +SSP1,China,1990,0,gcam-v7.1 +SSP1,China,2005,0,gcam-v7.1 +SSP1,China,2010,0,gcam-v7.1 +SSP1,China,2015,0,gcam-v7.1 +SSP1,China,2020,1.37224,gcam-v7.1 +SSP1,China,2025,1.75399,gcam-v7.1 +SSP1,China,2030,2.12478,gcam-v7.1 +SSP1,China,2035,2.51405,gcam-v7.1 +SSP1,China,2040,2.8871,gcam-v7.1 +SSP1,China,2045,3.18001,gcam-v7.1 +SSP1,China,2050,3.45176,gcam-v7.1 +SSP1,China,2055,3.76271,gcam-v7.1 +SSP1,China,2060,4.05341,gcam-v7.1 +SSP1,China,2065,4.33011,gcam-v7.1 +SSP1,China,2070,4.57568,gcam-v7.1 +SSP1,China,2075,4.8196,gcam-v7.1 +SSP1,China,2080,5.04201,gcam-v7.1 +SSP1,China,2085,5.27421,gcam-v7.1 +SSP1,China,2090,5.51084,gcam-v7.1 +SSP1,China,2095,5.76023,gcam-v7.1 +SSP1,China,2100,6.02325,gcam-v7.1 +SSP1,Colombia,1975,0,gcam-v7.1 +SSP1,Colombia,1990,0,gcam-v7.1 +SSP1,Colombia,2005,0,gcam-v7.1 +SSP1,Colombia,2010,0,gcam-v7.1 +SSP1,Colombia,2015,0,gcam-v7.1 +SSP1,Colombia,2020,1.13485,gcam-v7.1 +SSP1,Colombia,2025,1.23411,gcam-v7.1 +SSP1,Colombia,2030,1.3883,gcam-v7.1 +SSP1,Colombia,2035,1.57087,gcam-v7.1 +SSP1,Colombia,2040,1.76083,gcam-v7.1 +SSP1,Colombia,2045,1.95405,gcam-v7.1 +SSP1,Colombia,2050,2.14752,gcam-v7.1 +SSP1,Colombia,2055,2.35255,gcam-v7.1 +SSP1,Colombia,2060,2.56945,gcam-v7.1 +SSP1,Colombia,2065,2.7926,gcam-v7.1 +SSP1,Colombia,2070,3.02069,gcam-v7.1 +SSP1,Colombia,2075,3.25634,gcam-v7.1 +SSP1,Colombia,2080,3.50127,gcam-v7.1 +SSP1,Colombia,2085,3.75959,gcam-v7.1 +SSP1,Colombia,2090,4.03567,gcam-v7.1 +SSP1,Colombia,2095,4.32818,gcam-v7.1 +SSP1,Colombia,2100,4.63251,gcam-v7.1 +SSP1,EU-12,1975,0,gcam-v7.1 +SSP1,EU-12,1990,0,gcam-v7.1 +SSP1,EU-12,2005,0,gcam-v7.1 +SSP1,EU-12,2010,0,gcam-v7.1 +SSP1,EU-12,2015,0,gcam-v7.1 +SSP1,EU-12,2020,1.11935,gcam-v7.1 +SSP1,EU-12,2025,1.27289,gcam-v7.1 +SSP1,EU-12,2030,1.40018,gcam-v7.1 +SSP1,EU-12,2035,1.53129,gcam-v7.1 +SSP1,EU-12,2040,1.65709,gcam-v7.1 +SSP1,EU-12,2045,1.78227,gcam-v7.1 +SSP1,EU-12,2050,1.90384,gcam-v7.1 +SSP1,EU-12,2055,2.03254,gcam-v7.1 +SSP1,EU-12,2060,2.1557,gcam-v7.1 +SSP1,EU-12,2065,2.26903,gcam-v7.1 +SSP1,EU-12,2070,2.37339,gcam-v7.1 +SSP1,EU-12,2075,2.49097,gcam-v7.1 +SSP1,EU-12,2080,2.62371,gcam-v7.1 +SSP1,EU-12,2085,2.76912,gcam-v7.1 +SSP1,EU-12,2090,2.92543,gcam-v7.1 +SSP1,EU-12,2095,3.08665,gcam-v7.1 +SSP1,EU-12,2100,3.24903,gcam-v7.1 +SSP1,EU-15,1975,0,gcam-v7.1 +SSP1,EU-15,1990,0,gcam-v7.1 +SSP1,EU-15,2005,0,gcam-v7.1 +SSP1,EU-15,2010,0,gcam-v7.1 +SSP1,EU-15,2015,0,gcam-v7.1 +SSP1,EU-15,2020,1.06756,gcam-v7.1 +SSP1,EU-15,2025,1.15271,gcam-v7.1 +SSP1,EU-15,2030,1.24965,gcam-v7.1 +SSP1,EU-15,2035,1.3606,gcam-v7.1 +SSP1,EU-15,2040,1.46953,gcam-v7.1 +SSP1,EU-15,2045,1.56977,gcam-v7.1 +SSP1,EU-15,2050,1.6614,gcam-v7.1 +SSP1,EU-15,2055,1.75294,gcam-v7.1 +SSP1,EU-15,2060,1.84169,gcam-v7.1 +SSP1,EU-15,2065,1.93094,gcam-v7.1 +SSP1,EU-15,2070,2.02412,gcam-v7.1 +SSP1,EU-15,2075,2.12729,gcam-v7.1 +SSP1,EU-15,2080,2.23656,gcam-v7.1 +SSP1,EU-15,2085,2.35395,gcam-v7.1 +SSP1,EU-15,2090,2.47814,gcam-v7.1 +SSP1,EU-15,2095,2.60868,gcam-v7.1 +SSP1,EU-15,2100,2.74501,gcam-v7.1 +SSP1,Europe_Eastern,1975,0,gcam-v7.1 +SSP1,Europe_Eastern,1990,0,gcam-v7.1 +SSP1,Europe_Eastern,2005,0,gcam-v7.1 +SSP1,Europe_Eastern,2010,0,gcam-v7.1 +SSP1,Europe_Eastern,2015,0,gcam-v7.1 +SSP1,Europe_Eastern,2020,1.01995,gcam-v7.1 +SSP1,Europe_Eastern,2025,1.22216,gcam-v7.1 +SSP1,Europe_Eastern,2030,1.43568,gcam-v7.1 +SSP1,Europe_Eastern,2035,1.66193,gcam-v7.1 +SSP1,Europe_Eastern,2040,1.88905,gcam-v7.1 +SSP1,Europe_Eastern,2045,2.1172,gcam-v7.1 +SSP1,Europe_Eastern,2050,2.35979,gcam-v7.1 +SSP1,Europe_Eastern,2055,2.61644,gcam-v7.1 +SSP1,Europe_Eastern,2060,2.88104,gcam-v7.1 +SSP1,Europe_Eastern,2065,3.26593,gcam-v7.1 +SSP1,Europe_Eastern,2070,3.52708,gcam-v7.1 +SSP1,Europe_Eastern,2075,3.80846,gcam-v7.1 +SSP1,Europe_Eastern,2080,4.11182,gcam-v7.1 +SSP1,Europe_Eastern,2085,4.4351,gcam-v7.1 +SSP1,Europe_Eastern,2090,4.76969,gcam-v7.1 +SSP1,Europe_Eastern,2095,5.11027,gcam-v7.1 +SSP1,Europe_Eastern,2100,5.46224,gcam-v7.1 +SSP1,Europe_Non_EU,1975,0,gcam-v7.1 +SSP1,Europe_Non_EU,1990,0,gcam-v7.1 +SSP1,Europe_Non_EU,2005,0,gcam-v7.1 +SSP1,Europe_Non_EU,2010,0,gcam-v7.1 +SSP1,Europe_Non_EU,2015,0,gcam-v7.1 +SSP1,Europe_Non_EU,2020,1.11464,gcam-v7.1 +SSP1,Europe_Non_EU,2025,1.21452,gcam-v7.1 +SSP1,Europe_Non_EU,2030,1.30573,gcam-v7.1 +SSP1,Europe_Non_EU,2035,1.40149,gcam-v7.1 +SSP1,Europe_Non_EU,2040,1.49411,gcam-v7.1 +SSP1,Europe_Non_EU,2045,1.57895,gcam-v7.1 +SSP1,Europe_Non_EU,2050,1.65788,gcam-v7.1 +SSP1,Europe_Non_EU,2055,1.73641,gcam-v7.1 +SSP1,Europe_Non_EU,2060,1.81844,gcam-v7.1 +SSP1,Europe_Non_EU,2065,1.90341,gcam-v7.1 +SSP1,Europe_Non_EU,2070,1.98393,gcam-v7.1 +SSP1,Europe_Non_EU,2075,2.06615,gcam-v7.1 +SSP1,Europe_Non_EU,2080,2.15547,gcam-v7.1 +SSP1,Europe_Non_EU,2085,2.25261,gcam-v7.1 +SSP1,Europe_Non_EU,2090,2.35774,gcam-v7.1 +SSP1,Europe_Non_EU,2095,2.47116,gcam-v7.1 +SSP1,Europe_Non_EU,2100,2.59276,gcam-v7.1 +SSP1,European Free Trade Association,1975,0,gcam-v7.1 +SSP1,European Free Trade Association,1990,0,gcam-v7.1 +SSP1,European Free Trade Association,2005,0,gcam-v7.1 +SSP1,European Free Trade Association,2010,0,gcam-v7.1 +SSP1,European Free Trade Association,2015,0,gcam-v7.1 +SSP1,European Free Trade Association,2020,1.08216,gcam-v7.1 +SSP1,European Free Trade Association,2025,1.1723,gcam-v7.1 +SSP1,European Free Trade Association,2030,1.27654,gcam-v7.1 +SSP1,European Free Trade Association,2035,1.38496,gcam-v7.1 +SSP1,European Free Trade Association,2040,1.48554,gcam-v7.1 +SSP1,European Free Trade Association,2045,1.57347,gcam-v7.1 +SSP1,European Free Trade Association,2050,1.66794,gcam-v7.1 +SSP1,European Free Trade Association,2055,1.76685,gcam-v7.1 +SSP1,European Free Trade Association,2060,1.87107,gcam-v7.1 +SSP1,European Free Trade Association,2065,1.97784,gcam-v7.1 +SSP1,European Free Trade Association,2070,2.0885,gcam-v7.1 +SSP1,European Free Trade Association,2075,2.20925,gcam-v7.1 +SSP1,European Free Trade Association,2080,2.34262,gcam-v7.1 +SSP1,European Free Trade Association,2085,2.49097,gcam-v7.1 +SSP1,European Free Trade Association,2090,2.65193,gcam-v7.1 +SSP1,European Free Trade Association,2095,2.8234,gcam-v7.1 +SSP1,European Free Trade Association,2100,3.0008,gcam-v7.1 +SSP1,India,1975,0,gcam-v7.1 +SSP1,India,1990,0,gcam-v7.1 +SSP1,India,2005,0,gcam-v7.1 +SSP1,India,2010,0,gcam-v7.1 +SSP1,India,2015,0,gcam-v7.1 +SSP1,India,2020,1.21508,gcam-v7.1 +SSP1,India,2025,1.4993,gcam-v7.1 +SSP1,India,2030,1.77844,gcam-v7.1 +SSP1,India,2035,2.05835,gcam-v7.1 +SSP1,India,2040,2.33473,gcam-v7.1 +SSP1,India,2045,2.61197,gcam-v7.1 +SSP1,India,2050,2.89793,gcam-v7.1 +SSP1,India,2055,3.21137,gcam-v7.1 +SSP1,India,2060,3.54552,gcam-v7.1 +SSP1,India,2065,3.89424,gcam-v7.1 +SSP1,India,2070,4.25213,gcam-v7.1 +SSP1,India,2075,4.61978,gcam-v7.1 +SSP1,India,2080,5.01085,gcam-v7.1 +SSP1,India,2085,5.41681,gcam-v7.1 +SSP1,India,2090,5.82914,gcam-v7.1 +SSP1,India,2095,6.24701,gcam-v7.1 +SSP1,India,2100,6.68103,gcam-v7.1 +SSP1,Indonesia,1975,0,gcam-v7.1 +SSP1,Indonesia,1990,0,gcam-v7.1 +SSP1,Indonesia,2005,0,gcam-v7.1 +SSP1,Indonesia,2010,0,gcam-v7.1 +SSP1,Indonesia,2015,0,gcam-v7.1 +SSP1,Indonesia,2020,1.24526,gcam-v7.1 +SSP1,Indonesia,2025,1.55105,gcam-v7.1 +SSP1,Indonesia,2030,1.85739,gcam-v7.1 +SSP1,Indonesia,2035,2.16973,gcam-v7.1 +SSP1,Indonesia,2040,2.47036,gcam-v7.1 +SSP1,Indonesia,2045,2.75433,gcam-v7.1 +SSP1,Indonesia,2050,3.03952,gcam-v7.1 +SSP1,Indonesia,2055,3.33818,gcam-v7.1 +SSP1,Indonesia,2060,3.65421,gcam-v7.1 +SSP1,Indonesia,2065,3.98163,gcam-v7.1 +SSP1,Indonesia,2070,4.32986,gcam-v7.1 +SSP1,Indonesia,2075,4.68554,gcam-v7.1 +SSP1,Indonesia,2080,5.05322,gcam-v7.1 +SSP1,Indonesia,2085,5.42665,gcam-v7.1 +SSP1,Indonesia,2090,5.81022,gcam-v7.1 +SSP1,Indonesia,2095,6.20037,gcam-v7.1 +SSP1,Indonesia,2100,6.59565,gcam-v7.1 +SSP1,Japan,1975,0,gcam-v7.1 +SSP1,Japan,1990,0,gcam-v7.1 +SSP1,Japan,2005,0,gcam-v7.1 +SSP1,Japan,2010,0,gcam-v7.1 +SSP1,Japan,2015,0,gcam-v7.1 +SSP1,Japan,2020,1.04006,gcam-v7.1 +SSP1,Japan,2025,1.11803,gcam-v7.1 +SSP1,Japan,2030,1.20792,gcam-v7.1 +SSP1,Japan,2035,1.31214,gcam-v7.1 +SSP1,Japan,2040,1.4308,gcam-v7.1 +SSP1,Japan,2045,1.54561,gcam-v7.1 +SSP1,Japan,2050,1.65189,gcam-v7.1 +SSP1,Japan,2055,1.75741,gcam-v7.1 +SSP1,Japan,2060,1.86254,gcam-v7.1 +SSP1,Japan,2065,1.97345,gcam-v7.1 +SSP1,Japan,2070,2.08676,gcam-v7.1 +SSP1,Japan,2075,2.2065,gcam-v7.1 +SSP1,Japan,2080,2.331,gcam-v7.1 +SSP1,Japan,2085,2.4552,gcam-v7.1 +SSP1,Japan,2090,2.58122,gcam-v7.1 +SSP1,Japan,2095,2.70823,gcam-v7.1 +SSP1,Japan,2100,2.83902,gcam-v7.1 +SSP1,Mexico,1975,0,gcam-v7.1 +SSP1,Mexico,1990,0,gcam-v7.1 +SSP1,Mexico,2005,0,gcam-v7.1 +SSP1,Mexico,2010,0,gcam-v7.1 +SSP1,Mexico,2015,0,gcam-v7.1 +SSP1,Mexico,2020,1.05844,gcam-v7.1 +SSP1,Mexico,2025,1.16854,gcam-v7.1 +SSP1,Mexico,2030,1.2944,gcam-v7.1 +SSP1,Mexico,2035,1.44289,gcam-v7.1 +SSP1,Mexico,2040,1.56899,gcam-v7.1 +SSP1,Mexico,2045,1.67514,gcam-v7.1 +SSP1,Mexico,2050,1.76433,gcam-v7.1 +SSP1,Mexico,2055,1.8521,gcam-v7.1 +SSP1,Mexico,2060,1.94419,gcam-v7.1 +SSP1,Mexico,2065,2.035,gcam-v7.1 +SSP1,Mexico,2070,2.12886,gcam-v7.1 +SSP1,Mexico,2075,2.22321,gcam-v7.1 +SSP1,Mexico,2080,2.32453,gcam-v7.1 +SSP1,Mexico,2085,2.43407,gcam-v7.1 +SSP1,Mexico,2090,2.54936,gcam-v7.1 +SSP1,Mexico,2095,2.67194,gcam-v7.1 +SSP1,Mexico,2100,2.80371,gcam-v7.1 +SSP1,Middle East,1975,0,gcam-v7.1 +SSP1,Middle East,1990,0,gcam-v7.1 +SSP1,Middle East,2005,0,gcam-v7.1 +SSP1,Middle East,2010,0,gcam-v7.1 +SSP1,Middle East,2015,0,gcam-v7.1 +SSP1,Middle East,2020,1.16856,gcam-v7.1 +SSP1,Middle East,2025,1.36918,gcam-v7.1 +SSP1,Middle East,2030,1.50087,gcam-v7.1 +SSP1,Middle East,2035,1.60217,gcam-v7.1 +SSP1,Middle East,2040,1.73009,gcam-v7.1 +SSP1,Middle East,2045,1.85726,gcam-v7.1 +SSP1,Middle East,2050,1.97799,gcam-v7.1 +SSP1,Middle East,2055,2.10321,gcam-v7.1 +SSP1,Middle East,2060,2.22378,gcam-v7.1 +SSP1,Middle East,2065,2.34862,gcam-v7.1 +SSP1,Middle East,2070,2.48354,gcam-v7.1 +SSP1,Middle East,2075,2.62933,gcam-v7.1 +SSP1,Middle East,2080,2.78665,gcam-v7.1 +SSP1,Middle East,2085,2.95839,gcam-v7.1 +SSP1,Middle East,2090,3.14141,gcam-v7.1 +SSP1,Middle East,2095,3.33911,gcam-v7.1 +SSP1,Middle East,2100,3.55278,gcam-v7.1 +SSP1,Pakistan,1975,0,gcam-v7.1 +SSP1,Pakistan,1990,0,gcam-v7.1 +SSP1,Pakistan,2005,0,gcam-v7.1 +SSP1,Pakistan,2010,0,gcam-v7.1 +SSP1,Pakistan,2015,0,gcam-v7.1 +SSP1,Pakistan,2020,1.04465,gcam-v7.1 +SSP1,Pakistan,2025,1.19435,gcam-v7.1 +SSP1,Pakistan,2030,1.38966,gcam-v7.1 +SSP1,Pakistan,2035,1.60299,gcam-v7.1 +SSP1,Pakistan,2040,1.82872,gcam-v7.1 +SSP1,Pakistan,2045,2.06765,gcam-v7.1 +SSP1,Pakistan,2050,2.33269,gcam-v7.1 +SSP1,Pakistan,2055,2.64694,gcam-v7.1 +SSP1,Pakistan,2060,2.99622,gcam-v7.1 +SSP1,Pakistan,2065,3.38051,gcam-v7.1 +SSP1,Pakistan,2070,3.78914,gcam-v7.1 +SSP1,Pakistan,2075,4.22822,gcam-v7.1 +SSP1,Pakistan,2080,4.70617,gcam-v7.1 +SSP1,Pakistan,2085,5.21504,gcam-v7.1 +SSP1,Pakistan,2090,5.74536,gcam-v7.1 +SSP1,Pakistan,2095,6.29502,gcam-v7.1 +SSP1,Pakistan,2100,6.87061,gcam-v7.1 +SSP1,Russia,1975,0,gcam-v7.1 +SSP1,Russia,1990,0,gcam-v7.1 +SSP1,Russia,2005,0,gcam-v7.1 +SSP1,Russia,2010,0,gcam-v7.1 +SSP1,Russia,2015,0,gcam-v7.1 +SSP1,Russia,2020,1.21498,gcam-v7.1 +SSP1,Russia,2025,1.50129,gcam-v7.1 +SSP1,Russia,2030,1.81878,gcam-v7.1 +SSP1,Russia,2035,2.14172,gcam-v7.1 +SSP1,Russia,2040,2.44095,gcam-v7.1 +SSP1,Russia,2045,2.69447,gcam-v7.1 +SSP1,Russia,2050,2.94463,gcam-v7.1 +SSP1,Russia,2055,3.19919,gcam-v7.1 +SSP1,Russia,2060,3.41371,gcam-v7.1 +SSP1,Russia,2065,3.58599,gcam-v7.1 +SSP1,Russia,2070,3.76483,gcam-v7.1 +SSP1,Russia,2075,3.95933,gcam-v7.1 +SSP1,Russia,2080,4.18694,gcam-v7.1 +SSP1,Russia,2085,4.43027,gcam-v7.1 +SSP1,Russia,2090,4.6797,gcam-v7.1 +SSP1,Russia,2095,4.92777,gcam-v7.1 +SSP1,Russia,2100,5.19688,gcam-v7.1 +SSP1,South Africa,1975,0,gcam-v7.1 +SSP1,South Africa,1990,0,gcam-v7.1 +SSP1,South Africa,2005,0,gcam-v7.1 +SSP1,South Africa,2010,0,gcam-v7.1 +SSP1,South Africa,2015,0,gcam-v7.1 +SSP1,South Africa,2020,1.18847,gcam-v7.1 +SSP1,South Africa,2025,1.42358,gcam-v7.1 +SSP1,South Africa,2030,1.62967,gcam-v7.1 +SSP1,South Africa,2035,1.80974,gcam-v7.1 +SSP1,South Africa,2040,1.96189,gcam-v7.1 +SSP1,South Africa,2045,2.07745,gcam-v7.1 +SSP1,South Africa,2050,2.17978,gcam-v7.1 +SSP1,South Africa,2055,2.29076,gcam-v7.1 +SSP1,South Africa,2060,2.40814,gcam-v7.1 +SSP1,South Africa,2065,2.52395,gcam-v7.1 +SSP1,South Africa,2070,2.63673,gcam-v7.1 +SSP1,South Africa,2075,2.75022,gcam-v7.1 +SSP1,South Africa,2080,2.86973,gcam-v7.1 +SSP1,South Africa,2085,2.99204,gcam-v7.1 +SSP1,South Africa,2090,3.12376,gcam-v7.1 +SSP1,South Africa,2095,3.26388,gcam-v7.1 +SSP1,South Africa,2100,3.4132,gcam-v7.1 +SSP1,South America_Northern,1975,0,gcam-v7.1 +SSP1,South America_Northern,1990,0,gcam-v7.1 +SSP1,South America_Northern,2005,0,gcam-v7.1 +SSP1,South America_Northern,2010,0,gcam-v7.1 +SSP1,South America_Northern,2015,0,gcam-v7.1 +SSP1,South America_Northern,2020,0.909298,gcam-v7.1 +SSP1,South America_Northern,2025,1.01215,gcam-v7.1 +SSP1,South America_Northern,2030,1.12005,gcam-v7.1 +SSP1,South America_Northern,2035,1.25385,gcam-v7.1 +SSP1,South America_Northern,2040,1.46041,gcam-v7.1 +SSP1,South America_Northern,2045,1.72346,gcam-v7.1 +SSP1,South America_Northern,2050,2.01435,gcam-v7.1 +SSP1,South America_Northern,2055,2.34613,gcam-v7.1 +SSP1,South America_Northern,2060,2.69275,gcam-v7.1 +SSP1,South America_Northern,2065,3.01956,gcam-v7.1 +SSP1,South America_Northern,2070,3.3561,gcam-v7.1 +SSP1,South America_Northern,2075,3.70679,gcam-v7.1 +SSP1,South America_Northern,2080,4.07601,gcam-v7.1 +SSP1,South America_Northern,2085,4.46571,gcam-v7.1 +SSP1,South America_Northern,2090,4.87901,gcam-v7.1 +SSP1,South America_Northern,2095,5.32029,gcam-v7.1 +SSP1,South America_Northern,2100,5.78968,gcam-v7.1 +SSP1,South America_Southern,1975,0,gcam-v7.1 +SSP1,South America_Southern,1990,0,gcam-v7.1 +SSP1,South America_Southern,2005,0,gcam-v7.1 +SSP1,South America_Southern,2010,0,gcam-v7.1 +SSP1,South America_Southern,2015,0,gcam-v7.1 +SSP1,South America_Southern,2020,1.16426,gcam-v7.1 +SSP1,South America_Southern,2025,1.34321,gcam-v7.1 +SSP1,South America_Southern,2030,1.50702,gcam-v7.1 +SSP1,South America_Southern,2035,1.67449,gcam-v7.1 +SSP1,South America_Southern,2040,1.84443,gcam-v7.1 +SSP1,South America_Southern,2045,2.01013,gcam-v7.1 +SSP1,South America_Southern,2050,2.17416,gcam-v7.1 +SSP1,South America_Southern,2055,2.34976,gcam-v7.1 +SSP1,South America_Southern,2060,2.53951,gcam-v7.1 +SSP1,South America_Southern,2065,2.73779,gcam-v7.1 +SSP1,South America_Southern,2070,2.94275,gcam-v7.1 +SSP1,South America_Southern,2075,3.15131,gcam-v7.1 +SSP1,South America_Southern,2080,3.36865,gcam-v7.1 +SSP1,South America_Southern,2085,3.59508,gcam-v7.1 +SSP1,South America_Southern,2090,3.83192,gcam-v7.1 +SSP1,South America_Southern,2095,4.08185,gcam-v7.1 +SSP1,South America_Southern,2100,4.344,gcam-v7.1 +SSP1,South Asia,1975,0,gcam-v7.1 +SSP1,South Asia,1990,0,gcam-v7.1 +SSP1,South Asia,2005,0,gcam-v7.1 +SSP1,South Asia,2010,0,gcam-v7.1 +SSP1,South Asia,2015,0,gcam-v7.1 +SSP1,South Asia,2020,1.13727,gcam-v7.1 +SSP1,South Asia,2025,1.2843,gcam-v7.1 +SSP1,South Asia,2030,1.40984,gcam-v7.1 +SSP1,South Asia,2035,1.50084,gcam-v7.1 +SSP1,South Asia,2040,1.56714,gcam-v7.1 +SSP1,South Asia,2045,1.61723,gcam-v7.1 +SSP1,South Asia,2050,1.66062,gcam-v7.1 +SSP1,South Asia,2055,1.71495,gcam-v7.1 +SSP1,South Asia,2060,1.77972,gcam-v7.1 +SSP1,South Asia,2065,1.85504,gcam-v7.1 +SSP1,South Asia,2070,1.9396,gcam-v7.1 +SSP1,South Asia,2075,2.02933,gcam-v7.1 +SSP1,South Asia,2080,2.12754,gcam-v7.1 +SSP1,South Asia,2085,2.23195,gcam-v7.1 +SSP1,South Asia,2090,2.34298,gcam-v7.1 +SSP1,South Asia,2095,2.46079,gcam-v7.1 +SSP1,South Asia,2100,2.58509,gcam-v7.1 +SSP1,South Korea,1975,0,gcam-v7.1 +SSP1,South Korea,1990,0,gcam-v7.1 +SSP1,South Korea,2005,0,gcam-v7.1 +SSP1,South Korea,2010,0,gcam-v7.1 +SSP1,South Korea,2015,0,gcam-v7.1 +SSP1,South Korea,2020,1.06539,gcam-v7.1 +SSP1,South Korea,2025,1.25919,gcam-v7.1 +SSP1,South Korea,2030,1.40858,gcam-v7.1 +SSP1,South Korea,2035,1.54285,gcam-v7.1 +SSP1,South Korea,2040,1.67713,gcam-v7.1 +SSP1,South Korea,2045,1.78813,gcam-v7.1 +SSP1,South Korea,2050,1.88481,gcam-v7.1 +SSP1,South Korea,2055,1.96942,gcam-v7.1 +SSP1,South Korea,2060,2.07323,gcam-v7.1 +SSP1,South Korea,2065,2.18166,gcam-v7.1 +SSP1,South Korea,2070,2.268,gcam-v7.1 +SSP1,South Korea,2075,2.36089,gcam-v7.1 +SSP1,South Korea,2080,2.44775,gcam-v7.1 +SSP1,South Korea,2085,2.53685,gcam-v7.1 +SSP1,South Korea,2090,2.63393,gcam-v7.1 +SSP1,South Korea,2095,2.742,gcam-v7.1 +SSP1,South Korea,2100,2.85042,gcam-v7.1 +SSP1,Southeast Asia,1975,0,gcam-v7.1 +SSP1,Southeast Asia,1990,0,gcam-v7.1 +SSP1,Southeast Asia,2005,0,gcam-v7.1 +SSP1,Southeast Asia,2010,0,gcam-v7.1 +SSP1,Southeast Asia,2015,0,gcam-v7.1 +SSP1,Southeast Asia,2020,1.17316,gcam-v7.1 +SSP1,Southeast Asia,2025,1.37149,gcam-v7.1 +SSP1,Southeast Asia,2030,1.5386,gcam-v7.1 +SSP1,Southeast Asia,2035,1.66015,gcam-v7.1 +SSP1,Southeast Asia,2040,1.7647,gcam-v7.1 +SSP1,Southeast Asia,2045,1.84131,gcam-v7.1 +SSP1,Southeast Asia,2050,1.91431,gcam-v7.1 +SSP1,Southeast Asia,2055,2.00034,gcam-v7.1 +SSP1,Southeast Asia,2060,2.09717,gcam-v7.1 +SSP1,Southeast Asia,2065,2.19988,gcam-v7.1 +SSP1,Southeast Asia,2070,2.30769,gcam-v7.1 +SSP1,Southeast Asia,2075,2.41948,gcam-v7.1 +SSP1,Southeast Asia,2080,2.54018,gcam-v7.1 +SSP1,Southeast Asia,2085,2.66924,gcam-v7.1 +SSP1,Southeast Asia,2090,2.80544,gcam-v7.1 +SSP1,Southeast Asia,2095,2.94812,gcam-v7.1 +SSP1,Southeast Asia,2100,3.09581,gcam-v7.1 +SSP1,Taiwan,1975,0,gcam-v7.1 +SSP1,Taiwan,1990,0,gcam-v7.1 +SSP1,Taiwan,2005,0,gcam-v7.1 +SSP1,Taiwan,2010,0,gcam-v7.1 +SSP1,Taiwan,2015,0,gcam-v7.1 +SSP1,Taiwan,2020,1.16258,gcam-v7.1 +SSP1,Taiwan,2025,1.24998,gcam-v7.1 +SSP1,Taiwan,2030,1.31509,gcam-v7.1 +SSP1,Taiwan,2035,1.37328,gcam-v7.1 +SSP1,Taiwan,2040,1.42368,gcam-v7.1 +SSP1,Taiwan,2045,1.45028,gcam-v7.1 +SSP1,Taiwan,2050,1.45215,gcam-v7.1 +SSP1,Taiwan,2055,1.4415,gcam-v7.1 +SSP1,Taiwan,2060,1.4334,gcam-v7.1 +SSP1,Taiwan,2065,1.47167,gcam-v7.1 +SSP1,Taiwan,2070,1.50264,gcam-v7.1 +SSP1,Taiwan,2075,1.51833,gcam-v7.1 +SSP1,Taiwan,2080,1.52381,gcam-v7.1 +SSP1,Taiwan,2085,1.51647,gcam-v7.1 +SSP1,Taiwan,2090,1.50198,gcam-v7.1 +SSP1,Taiwan,2095,1.48201,gcam-v7.1 +SSP1,Taiwan,2100,1.45655,gcam-v7.1 +SSP1,USA,1975,0,gcam-v7.1 +SSP1,USA,1990,0,gcam-v7.1 +SSP1,USA,2005,0,gcam-v7.1 +SSP1,USA,2010,0,gcam-v7.1 +SSP1,USA,2015,0,gcam-v7.1 +SSP1,USA,2020,1.10604,gcam-v7.1 +SSP1,USA,2025,1.20792,gcam-v7.1 +SSP1,USA,2030,1.30133,gcam-v7.1 +SSP1,USA,2035,1.38101,gcam-v7.1 +SSP1,USA,2040,1.44893,gcam-v7.1 +SSP1,USA,2045,1.50187,gcam-v7.1 +SSP1,USA,2050,1.55438,gcam-v7.1 +SSP1,USA,2055,1.61182,gcam-v7.1 +SSP1,USA,2060,1.67261,gcam-v7.1 +SSP1,USA,2065,1.73205,gcam-v7.1 +SSP1,USA,2070,1.79588,gcam-v7.1 +SSP1,USA,2075,1.86588,gcam-v7.1 +SSP1,USA,2080,1.93749,gcam-v7.1 +SSP1,USA,2085,2.0174,gcam-v7.1 +SSP1,USA,2090,2.10443,gcam-v7.1 +SSP1,USA,2095,2.19964,gcam-v7.1 +SSP1,USA,2100,2.30311,gcam-v7.1 +SSP2,Africa_Eastern,1975,0,gcam-v7.1 +SSP2,Africa_Eastern,1990,0,gcam-v7.1 +SSP2,Africa_Eastern,2005,0,gcam-v7.1 +SSP2,Africa_Eastern,2010,0,gcam-v7.1 +SSP2,Africa_Eastern,2015,0,gcam-v7.1 +SSP2,Africa_Eastern,2020,1.19544,gcam-v7.1 +SSP2,Africa_Eastern,2025,1.44057,gcam-v7.1 +SSP2,Africa_Eastern,2030,1.6563,gcam-v7.1 +SSP2,Africa_Eastern,2035,1.83657,gcam-v7.1 +SSP2,Africa_Eastern,2040,1.9892,gcam-v7.1 +SSP2,Africa_Eastern,2045,2.11144,gcam-v7.1 +SSP2,Africa_Eastern,2050,2.21845,gcam-v7.1 +SSP2,Africa_Eastern,2055,2.34488,gcam-v7.1 +SSP2,Africa_Eastern,2060,2.49154,gcam-v7.1 +SSP2,Africa_Eastern,2065,2.67009,gcam-v7.1 +SSP2,Africa_Eastern,2070,2.88488,gcam-v7.1 +SSP2,Africa_Eastern,2075,3.1356,gcam-v7.1 +SSP2,Africa_Eastern,2080,3.42747,gcam-v7.1 +SSP2,Africa_Eastern,2085,3.76349,gcam-v7.1 +SSP2,Africa_Eastern,2090,4.14581,gcam-v7.1 +SSP2,Africa_Eastern,2095,4.5777,gcam-v7.1 +SSP2,Africa_Eastern,2100,5.06296,gcam-v7.1 +SSP2,Africa_Northern,1975,0,gcam-v7.1 +SSP2,Africa_Northern,1990,0,gcam-v7.1 +SSP2,Africa_Northern,2005,0,gcam-v7.1 +SSP2,Africa_Northern,2010,0,gcam-v7.1 +SSP2,Africa_Northern,2015,0,gcam-v7.1 +SSP2,Africa_Northern,2020,1.14906,gcam-v7.1 +SSP2,Africa_Northern,2025,1.3888,gcam-v7.1 +SSP2,Africa_Northern,2030,1.58663,gcam-v7.1 +SSP2,Africa_Northern,2035,1.7046,gcam-v7.1 +SSP2,Africa_Northern,2040,1.7747,gcam-v7.1 +SSP2,Africa_Northern,2045,1.82471,gcam-v7.1 +SSP2,Africa_Northern,2050,1.87982,gcam-v7.1 +SSP2,Africa_Northern,2055,1.94683,gcam-v7.1 +SSP2,Africa_Northern,2060,2.02808,gcam-v7.1 +SSP2,Africa_Northern,2065,2.11936,gcam-v7.1 +SSP2,Africa_Northern,2070,2.21515,gcam-v7.1 +SSP2,Africa_Northern,2075,2.3232,gcam-v7.1 +SSP2,Africa_Northern,2080,2.44197,gcam-v7.1 +SSP2,Africa_Northern,2085,2.57008,gcam-v7.1 +SSP2,Africa_Northern,2090,2.70709,gcam-v7.1 +SSP2,Africa_Northern,2095,2.84976,gcam-v7.1 +SSP2,Africa_Northern,2100,3.00181,gcam-v7.1 +SSP2,Africa_Southern,1975,0,gcam-v7.1 +SSP2,Africa_Southern,1990,0,gcam-v7.1 +SSP2,Africa_Southern,2005,0,gcam-v7.1 +SSP2,Africa_Southern,2010,0,gcam-v7.1 +SSP2,Africa_Southern,2015,0,gcam-v7.1 +SSP2,Africa_Southern,2020,1.26983,gcam-v7.1 +SSP2,Africa_Southern,2025,1.62977,gcam-v7.1 +SSP2,Africa_Southern,2030,1.8756,gcam-v7.1 +SSP2,Africa_Southern,2035,2.07653,gcam-v7.1 +SSP2,Africa_Southern,2040,2.31251,gcam-v7.1 +SSP2,Africa_Southern,2045,2.56257,gcam-v7.1 +SSP2,Africa_Southern,2050,2.80724,gcam-v7.1 +SSP2,Africa_Southern,2055,3.03991,gcam-v7.1 +SSP2,Africa_Southern,2060,3.26312,gcam-v7.1 +SSP2,Africa_Southern,2065,3.49391,gcam-v7.1 +SSP2,Africa_Southern,2070,3.74205,gcam-v7.1 +SSP2,Africa_Southern,2075,4.01526,gcam-v7.1 +SSP2,Africa_Southern,2080,4.32034,gcam-v7.1 +SSP2,Africa_Southern,2085,4.66521,gcam-v7.1 +SSP2,Africa_Southern,2090,5.05449,gcam-v7.1 +SSP2,Africa_Southern,2095,5.49269,gcam-v7.1 +SSP2,Africa_Southern,2100,5.98842,gcam-v7.1 +SSP2,Africa_Western,1975,0,gcam-v7.1 +SSP2,Africa_Western,1990,0,gcam-v7.1 +SSP2,Africa_Western,2005,0,gcam-v7.1 +SSP2,Africa_Western,2010,0,gcam-v7.1 +SSP2,Africa_Western,2015,0,gcam-v7.1 +SSP2,Africa_Western,2020,1.22798,gcam-v7.1 +SSP2,Africa_Western,2025,1.46774,gcam-v7.1 +SSP2,Africa_Western,2030,1.6357,gcam-v7.1 +SSP2,Africa_Western,2035,1.75693,gcam-v7.1 +SSP2,Africa_Western,2040,1.89718,gcam-v7.1 +SSP2,Africa_Western,2045,2.03616,gcam-v7.1 +SSP2,Africa_Western,2050,2.19641,gcam-v7.1 +SSP2,Africa_Western,2055,2.38706,gcam-v7.1 +SSP2,Africa_Western,2060,2.60031,gcam-v7.1 +SSP2,Africa_Western,2065,2.84419,gcam-v7.1 +SSP2,Africa_Western,2070,3.1224,gcam-v7.1 +SSP2,Africa_Western,2075,3.43882,gcam-v7.1 +SSP2,Africa_Western,2080,3.79443,gcam-v7.1 +SSP2,Africa_Western,2085,4.18894,gcam-v7.1 +SSP2,Africa_Western,2090,4.62346,gcam-v7.1 +SSP2,Africa_Western,2095,5.10257,gcam-v7.1 +SSP2,Africa_Western,2100,5.63018,gcam-v7.1 +SSP2,Argentina,1975,0,gcam-v7.1 +SSP2,Argentina,1990,0,gcam-v7.1 +SSP2,Argentina,2005,0,gcam-v7.1 +SSP2,Argentina,2010,0,gcam-v7.1 +SSP2,Argentina,2015,0,gcam-v7.1 +SSP2,Argentina,2020,1.10705,gcam-v7.1 +SSP2,Argentina,2025,1.27472,gcam-v7.1 +SSP2,Argentina,2030,1.36846,gcam-v7.1 +SSP2,Argentina,2035,1.45274,gcam-v7.1 +SSP2,Argentina,2040,1.54201,gcam-v7.1 +SSP2,Argentina,2045,1.63211,gcam-v7.1 +SSP2,Argentina,2050,1.7064,gcam-v7.1 +SSP2,Argentina,2055,1.78327,gcam-v7.1 +SSP2,Argentina,2060,1.87082,gcam-v7.1 +SSP2,Argentina,2065,1.96301,gcam-v7.1 +SSP2,Argentina,2070,2.05848,gcam-v7.1 +SSP2,Argentina,2075,2.15976,gcam-v7.1 +SSP2,Argentina,2080,2.26889,gcam-v7.1 +SSP2,Argentina,2085,2.38777,gcam-v7.1 +SSP2,Argentina,2090,2.51419,gcam-v7.1 +SSP2,Argentina,2095,2.65019,gcam-v7.1 +SSP2,Argentina,2100,2.79632,gcam-v7.1 +SSP2,Australia_NZ,1975,0,gcam-v7.1 +SSP2,Australia_NZ,1990,0,gcam-v7.1 +SSP2,Australia_NZ,2005,0,gcam-v7.1 +SSP2,Australia_NZ,2010,0,gcam-v7.1 +SSP2,Australia_NZ,2015,0,gcam-v7.1 +SSP2,Australia_NZ,2020,1.12496,gcam-v7.1 +SSP2,Australia_NZ,2025,1.20631,gcam-v7.1 +SSP2,Australia_NZ,2030,1.2712,gcam-v7.1 +SSP2,Australia_NZ,2035,1.3342,gcam-v7.1 +SSP2,Australia_NZ,2040,1.4117,gcam-v7.1 +SSP2,Australia_NZ,2045,1.48444,gcam-v7.1 +SSP2,Australia_NZ,2050,1.55704,gcam-v7.1 +SSP2,Australia_NZ,2055,1.63902,gcam-v7.1 +SSP2,Australia_NZ,2060,1.72669,gcam-v7.1 +SSP2,Australia_NZ,2065,1.81708,gcam-v7.1 +SSP2,Australia_NZ,2070,1.90998,gcam-v7.1 +SSP2,Australia_NZ,2075,2.01206,gcam-v7.1 +SSP2,Australia_NZ,2080,2.12361,gcam-v7.1 +SSP2,Australia_NZ,2085,2.24618,gcam-v7.1 +SSP2,Australia_NZ,2090,2.37816,gcam-v7.1 +SSP2,Australia_NZ,2095,2.51603,gcam-v7.1 +SSP2,Australia_NZ,2100,2.66048,gcam-v7.1 +SSP2,Brazil,1975,0,gcam-v7.1 +SSP2,Brazil,1990,0,gcam-v7.1 +SSP2,Brazil,2005,0,gcam-v7.1 +SSP2,Brazil,2010,0,gcam-v7.1 +SSP2,Brazil,2015,0,gcam-v7.1 +SSP2,Brazil,2020,1.18001,gcam-v7.1 +SSP2,Brazil,2025,1.34692,gcam-v7.1 +SSP2,Brazil,2030,1.47343,gcam-v7.1 +SSP2,Brazil,2035,1.57799,gcam-v7.1 +SSP2,Brazil,2040,1.68878,gcam-v7.1 +SSP2,Brazil,2045,1.80445,gcam-v7.1 +SSP2,Brazil,2050,1.92262,gcam-v7.1 +SSP2,Brazil,2055,2.04368,gcam-v7.1 +SSP2,Brazil,2060,2.17093,gcam-v7.1 +SSP2,Brazil,2065,2.31354,gcam-v7.1 +SSP2,Brazil,2070,2.47062,gcam-v7.1 +SSP2,Brazil,2075,2.62389,gcam-v7.1 +SSP2,Brazil,2080,2.78596,gcam-v7.1 +SSP2,Brazil,2085,2.96258,gcam-v7.1 +SSP2,Brazil,2090,3.15349,gcam-v7.1 +SSP2,Brazil,2095,3.35524,gcam-v7.1 +SSP2,Brazil,2100,3.56846,gcam-v7.1 +SSP2,Canada,1975,0,gcam-v7.1 +SSP2,Canada,1990,0,gcam-v7.1 +SSP2,Canada,2005,0,gcam-v7.1 +SSP2,Canada,2010,0,gcam-v7.1 +SSP2,Canada,2015,0,gcam-v7.1 +SSP2,Canada,2020,1.07657,gcam-v7.1 +SSP2,Canada,2025,1.15445,gcam-v7.1 +SSP2,Canada,2030,1.22779,gcam-v7.1 +SSP2,Canada,2035,1.30159,gcam-v7.1 +SSP2,Canada,2040,1.36954,gcam-v7.1 +SSP2,Canada,2045,1.44118,gcam-v7.1 +SSP2,Canada,2050,1.52121,gcam-v7.1 +SSP2,Canada,2055,1.61426,gcam-v7.1 +SSP2,Canada,2060,1.72027,gcam-v7.1 +SSP2,Canada,2065,1.82758,gcam-v7.1 +SSP2,Canada,2070,1.93228,gcam-v7.1 +SSP2,Canada,2075,2.04912,gcam-v7.1 +SSP2,Canada,2080,2.17825,gcam-v7.1 +SSP2,Canada,2085,2.32265,gcam-v7.1 +SSP2,Canada,2090,2.4796,gcam-v7.1 +SSP2,Canada,2095,2.64348,gcam-v7.1 +SSP2,Canada,2100,2.81426,gcam-v7.1 +SSP2,Central America and Caribbean,1975,0,gcam-v7.1 +SSP2,Central America and Caribbean,1990,0,gcam-v7.1 +SSP2,Central America and Caribbean,2005,0,gcam-v7.1 +SSP2,Central America and Caribbean,2010,0,gcam-v7.1 +SSP2,Central America and Caribbean,2015,0,gcam-v7.1 +SSP2,Central America and Caribbean,2020,1.08949,gcam-v7.1 +SSP2,Central America and Caribbean,2025,1.19605,gcam-v7.1 +SSP2,Central America and Caribbean,2030,1.31404,gcam-v7.1 +SSP2,Central America and Caribbean,2035,1.42267,gcam-v7.1 +SSP2,Central America and Caribbean,2040,1.51862,gcam-v7.1 +SSP2,Central America and Caribbean,2045,1.59545,gcam-v7.1 +SSP2,Central America and Caribbean,2050,1.66395,gcam-v7.1 +SSP2,Central America and Caribbean,2055,1.73798,gcam-v7.1 +SSP2,Central America and Caribbean,2060,1.81885,gcam-v7.1 +SSP2,Central America and Caribbean,2065,1.90499,gcam-v7.1 +SSP2,Central America and Caribbean,2070,1.99937,gcam-v7.1 +SSP2,Central America and Caribbean,2075,2.10241,gcam-v7.1 +SSP2,Central America and Caribbean,2080,2.21501,gcam-v7.1 +SSP2,Central America and Caribbean,2085,2.33828,gcam-v7.1 +SSP2,Central America and Caribbean,2090,2.47061,gcam-v7.1 +SSP2,Central America and Caribbean,2095,2.61231,gcam-v7.1 +SSP2,Central America and Caribbean,2100,2.76433,gcam-v7.1 +SSP2,Central Asia,1975,0,gcam-v7.1 +SSP2,Central Asia,1990,0,gcam-v7.1 +SSP2,Central Asia,2005,0,gcam-v7.1 +SSP2,Central Asia,2010,0,gcam-v7.1 +SSP2,Central Asia,2015,0,gcam-v7.1 +SSP2,Central Asia,2020,1.12596,gcam-v7.1 +SSP2,Central Asia,2025,1.33086,gcam-v7.1 +SSP2,Central Asia,2030,1.47402,gcam-v7.1 +SSP2,Central Asia,2035,1.59596,gcam-v7.1 +SSP2,Central Asia,2040,1.7229,gcam-v7.1 +SSP2,Central Asia,2045,1.83563,gcam-v7.1 +SSP2,Central Asia,2050,1.94629,gcam-v7.1 +SSP2,Central Asia,2055,2.06565,gcam-v7.1 +SSP2,Central Asia,2060,2.19968,gcam-v7.1 +SSP2,Central Asia,2065,2.34052,gcam-v7.1 +SSP2,Central Asia,2070,2.49344,gcam-v7.1 +SSP2,Central Asia,2075,2.662,gcam-v7.1 +SSP2,Central Asia,2080,2.84488,gcam-v7.1 +SSP2,Central Asia,2085,3.03967,gcam-v7.1 +SSP2,Central Asia,2090,3.24134,gcam-v7.1 +SSP2,Central Asia,2095,3.44837,gcam-v7.1 +SSP2,Central Asia,2100,3.65569,gcam-v7.1 +SSP2,China,1975,0,gcam-v7.1 +SSP2,China,1990,0,gcam-v7.1 +SSP2,China,2005,0,gcam-v7.1 +SSP2,China,2010,0,gcam-v7.1 +SSP2,China,2015,0,gcam-v7.1 +SSP2,China,2020,1.34706,gcam-v7.1 +SSP2,China,2025,1.63828,gcam-v7.1 +SSP2,China,2030,1.86589,gcam-v7.1 +SSP2,China,2035,2.08028,gcam-v7.1 +SSP2,China,2040,2.30666,gcam-v7.1 +SSP2,China,2045,2.49191,gcam-v7.1 +SSP2,China,2050,2.68317,gcam-v7.1 +SSP2,China,2055,2.92287,gcam-v7.1 +SSP2,China,2060,3.16643,gcam-v7.1 +SSP2,China,2065,3.41585,gcam-v7.1 +SSP2,China,2070,3.65613,gcam-v7.1 +SSP2,China,2075,3.91002,gcam-v7.1 +SSP2,China,2080,4.1512,gcam-v7.1 +SSP2,China,2085,4.4052,gcam-v7.1 +SSP2,China,2090,4.66008,gcam-v7.1 +SSP2,China,2095,4.91709,gcam-v7.1 +SSP2,China,2100,5.17693,gcam-v7.1 +SSP2,Colombia,1975,0,gcam-v7.1 +SSP2,Colombia,1990,0,gcam-v7.1 +SSP2,Colombia,2005,0,gcam-v7.1 +SSP2,Colombia,2010,0,gcam-v7.1 +SSP2,Colombia,2015,0,gcam-v7.1 +SSP2,Colombia,2020,1.1382,gcam-v7.1 +SSP2,Colombia,2025,1.20573,gcam-v7.1 +SSP2,Colombia,2030,1.30071,gcam-v7.1 +SSP2,Colombia,2035,1.40201,gcam-v7.1 +SSP2,Colombia,2040,1.50834,gcam-v7.1 +SSP2,Colombia,2045,1.62571,gcam-v7.1 +SSP2,Colombia,2050,1.75345,gcam-v7.1 +SSP2,Colombia,2055,1.89255,gcam-v7.1 +SSP2,Colombia,2060,2.04698,gcam-v7.1 +SSP2,Colombia,2065,2.21208,gcam-v7.1 +SSP2,Colombia,2070,2.39041,gcam-v7.1 +SSP2,Colombia,2075,2.58325,gcam-v7.1 +SSP2,Colombia,2080,2.78796,gcam-v7.1 +SSP2,Colombia,2085,3.00791,gcam-v7.1 +SSP2,Colombia,2090,3.24215,gcam-v7.1 +SSP2,Colombia,2095,3.48967,gcam-v7.1 +SSP2,Colombia,2100,3.75172,gcam-v7.1 +SSP2,EU-12,1975,0,gcam-v7.1 +SSP2,EU-12,1990,0,gcam-v7.1 +SSP2,EU-12,2005,0,gcam-v7.1 +SSP2,EU-12,2010,0,gcam-v7.1 +SSP2,EU-12,2015,0,gcam-v7.1 +SSP2,EU-12,2020,1.12766,gcam-v7.1 +SSP2,EU-12,2025,1.25105,gcam-v7.1 +SSP2,EU-12,2030,1.35226,gcam-v7.1 +SSP2,EU-12,2035,1.45539,gcam-v7.1 +SSP2,EU-12,2040,1.56297,gcam-v7.1 +SSP2,EU-12,2045,1.67879,gcam-v7.1 +SSP2,EU-12,2050,1.79864,gcam-v7.1 +SSP2,EU-12,2055,1.92925,gcam-v7.1 +SSP2,EU-12,2060,2.05714,gcam-v7.1 +SSP2,EU-12,2065,2.17736,gcam-v7.1 +SSP2,EU-12,2070,2.2922,gcam-v7.1 +SSP2,EU-12,2075,2.42268,gcam-v7.1 +SSP2,EU-12,2080,2.56682,gcam-v7.1 +SSP2,EU-12,2085,2.72129,gcam-v7.1 +SSP2,EU-12,2090,2.88221,gcam-v7.1 +SSP2,EU-12,2095,3.04691,gcam-v7.1 +SSP2,EU-12,2100,3.21385,gcam-v7.1 +SSP2,EU-15,1975,0,gcam-v7.1 +SSP2,EU-15,1990,0,gcam-v7.1 +SSP2,EU-15,2005,0,gcam-v7.1 +SSP2,EU-15,2010,0,gcam-v7.1 +SSP2,EU-15,2015,0,gcam-v7.1 +SSP2,EU-15,2020,1.07605,gcam-v7.1 +SSP2,EU-15,2025,1.14756,gcam-v7.1 +SSP2,EU-15,2030,1.22799,gcam-v7.1 +SSP2,EU-15,2035,1.31818,gcam-v7.1 +SSP2,EU-15,2040,1.41132,gcam-v7.1 +SSP2,EU-15,2045,1.50172,gcam-v7.1 +SSP2,EU-15,2050,1.59062,gcam-v7.1 +SSP2,EU-15,2055,1.6829,gcam-v7.1 +SSP2,EU-15,2060,1.77446,gcam-v7.1 +SSP2,EU-15,2065,1.86605,gcam-v7.1 +SSP2,EU-15,2070,1.96103,gcam-v7.1 +SSP2,EU-15,2075,2.06513,gcam-v7.1 +SSP2,EU-15,2080,2.17488,gcam-v7.1 +SSP2,EU-15,2085,2.29065,gcam-v7.1 +SSP2,EU-15,2090,2.41174,gcam-v7.1 +SSP2,EU-15,2095,2.53847,gcam-v7.1 +SSP2,EU-15,2100,2.67213,gcam-v7.1 +SSP2,Europe_Eastern,1975,0,gcam-v7.1 +SSP2,Europe_Eastern,1990,0,gcam-v7.1 +SSP2,Europe_Eastern,2005,0,gcam-v7.1 +SSP2,Europe_Eastern,2010,0,gcam-v7.1 +SSP2,Europe_Eastern,2015,0,gcam-v7.1 +SSP2,Europe_Eastern,2020,1.07276,gcam-v7.1 +SSP2,Europe_Eastern,2025,1.22648,gcam-v7.1 +SSP2,Europe_Eastern,2030,1.36067,gcam-v7.1 +SSP2,Europe_Eastern,2035,1.48434,gcam-v7.1 +SSP2,Europe_Eastern,2040,1.59805,gcam-v7.1 +SSP2,Europe_Eastern,2045,1.71621,gcam-v7.1 +SSP2,Europe_Eastern,2050,1.85435,gcam-v7.1 +SSP2,Europe_Eastern,2055,2.00302,gcam-v7.1 +SSP2,Europe_Eastern,2060,2.16237,gcam-v7.1 +SSP2,Europe_Eastern,2065,2.43608,gcam-v7.1 +SSP2,Europe_Eastern,2070,2.61299,gcam-v7.1 +SSP2,Europe_Eastern,2075,2.81775,gcam-v7.1 +SSP2,Europe_Eastern,2080,3.05548,gcam-v7.1 +SSP2,Europe_Eastern,2085,3.31241,gcam-v7.1 +SSP2,Europe_Eastern,2090,3.57715,gcam-v7.1 +SSP2,Europe_Eastern,2095,3.84566,gcam-v7.1 +SSP2,Europe_Eastern,2100,4.1222,gcam-v7.1 +SSP2,Europe_Non_EU,1975,0,gcam-v7.1 +SSP2,Europe_Non_EU,1990,0,gcam-v7.1 +SSP2,Europe_Non_EU,2005,0,gcam-v7.1 +SSP2,Europe_Non_EU,2010,0,gcam-v7.1 +SSP2,Europe_Non_EU,2015,0,gcam-v7.1 +SSP2,Europe_Non_EU,2020,1.12269,gcam-v7.1 +SSP2,Europe_Non_EU,2025,1.19236,gcam-v7.1 +SSP2,Europe_Non_EU,2030,1.25655,gcam-v7.1 +SSP2,Europe_Non_EU,2035,1.32056,gcam-v7.1 +SSP2,Europe_Non_EU,2040,1.39035,gcam-v7.1 +SSP2,Europe_Non_EU,2045,1.46085,gcam-v7.1 +SSP2,Europe_Non_EU,2050,1.53366,gcam-v7.1 +SSP2,Europe_Non_EU,2055,1.61032,gcam-v7.1 +SSP2,Europe_Non_EU,2060,1.69306,gcam-v7.1 +SSP2,Europe_Non_EU,2065,1.77978,gcam-v7.1 +SSP2,Europe_Non_EU,2070,1.86703,gcam-v7.1 +SSP2,Europe_Non_EU,2075,1.96018,gcam-v7.1 +SSP2,Europe_Non_EU,2080,2.05843,gcam-v7.1 +SSP2,Europe_Non_EU,2085,2.16275,gcam-v7.1 +SSP2,Europe_Non_EU,2090,2.273,gcam-v7.1 +SSP2,Europe_Non_EU,2095,2.39021,gcam-v7.1 +SSP2,Europe_Non_EU,2100,2.51404,gcam-v7.1 +SSP2,European Free Trade Association,1975,0,gcam-v7.1 +SSP2,European Free Trade Association,1990,0,gcam-v7.1 +SSP2,European Free Trade Association,2005,0,gcam-v7.1 +SSP2,European Free Trade Association,2010,0,gcam-v7.1 +SSP2,European Free Trade Association,2015,0,gcam-v7.1 +SSP2,European Free Trade Association,2020,1.08806,gcam-v7.1 +SSP2,European Free Trade Association,2025,1.15997,gcam-v7.1 +SSP2,European Free Trade Association,2030,1.23914,gcam-v7.1 +SSP2,European Free Trade Association,2035,1.32016,gcam-v7.1 +SSP2,European Free Trade Association,2040,1.40589,gcam-v7.1 +SSP2,European Free Trade Association,2045,1.48343,gcam-v7.1 +SSP2,European Free Trade Association,2050,1.57597,gcam-v7.1 +SSP2,European Free Trade Association,2055,1.67901,gcam-v7.1 +SSP2,European Free Trade Association,2060,1.79059,gcam-v7.1 +SSP2,European Free Trade Association,2065,1.90339,gcam-v7.1 +SSP2,European Free Trade Association,2070,2.02024,gcam-v7.1 +SSP2,European Free Trade Association,2075,2.1467,gcam-v7.1 +SSP2,European Free Trade Association,2080,2.28388,gcam-v7.1 +SSP2,European Free Trade Association,2085,2.43422,gcam-v7.1 +SSP2,European Free Trade Association,2090,2.59607,gcam-v7.1 +SSP2,European Free Trade Association,2095,2.767,gcam-v7.1 +SSP2,European Free Trade Association,2100,2.94481,gcam-v7.1 +SSP2,India,1975,0,gcam-v7.1 +SSP2,India,1990,0,gcam-v7.1 +SSP2,India,2005,0,gcam-v7.1 +SSP2,India,2010,0,gcam-v7.1 +SSP2,India,2015,0,gcam-v7.1 +SSP2,India,2020,1.22725,gcam-v7.1 +SSP2,India,2025,1.4494,gcam-v7.1 +SSP2,India,2030,1.62713,gcam-v7.1 +SSP2,India,2035,1.778,gcam-v7.1 +SSP2,India,2040,1.92933,gcam-v7.1 +SSP2,India,2045,2.08463,gcam-v7.1 +SSP2,India,2050,2.25285,gcam-v7.1 +SSP2,India,2055,2.44329,gcam-v7.1 +SSP2,India,2060,2.65569,gcam-v7.1 +SSP2,India,2065,2.8864,gcam-v7.1 +SSP2,India,2070,3.13387,gcam-v7.1 +SSP2,India,2075,3.40143,gcam-v7.1 +SSP2,India,2080,3.68558,gcam-v7.1 +SSP2,India,2085,3.98487,gcam-v7.1 +SSP2,India,2090,4.29696,gcam-v7.1 +SSP2,India,2095,4.62482,gcam-v7.1 +SSP2,India,2100,4.97282,gcam-v7.1 +SSP2,Indonesia,1975,0,gcam-v7.1 +SSP2,Indonesia,1990,0,gcam-v7.1 +SSP2,Indonesia,2005,0,gcam-v7.1 +SSP2,Indonesia,2010,0,gcam-v7.1 +SSP2,Indonesia,2015,0,gcam-v7.1 +SSP2,Indonesia,2020,1.23946,gcam-v7.1 +SSP2,Indonesia,2025,1.48418,gcam-v7.1 +SSP2,Indonesia,2030,1.67129,gcam-v7.1 +SSP2,Indonesia,2035,1.82926,gcam-v7.1 +SSP2,Indonesia,2040,1.99348,gcam-v7.1 +SSP2,Indonesia,2045,2.1604,gcam-v7.1 +SSP2,Indonesia,2050,2.33618,gcam-v7.1 +SSP2,Indonesia,2055,2.5252,gcam-v7.1 +SSP2,Indonesia,2060,2.73034,gcam-v7.1 +SSP2,Indonesia,2065,2.94965,gcam-v7.1 +SSP2,Indonesia,2070,3.19554,gcam-v7.1 +SSP2,Indonesia,2075,3.45869,gcam-v7.1 +SSP2,Indonesia,2080,3.73496,gcam-v7.1 +SSP2,Indonesia,2085,4.02962,gcam-v7.1 +SSP2,Indonesia,2090,4.34099,gcam-v7.1 +SSP2,Indonesia,2095,4.66603,gcam-v7.1 +SSP2,Indonesia,2100,5.00686,gcam-v7.1 +SSP2,Japan,1975,0,gcam-v7.1 +SSP2,Japan,1990,0,gcam-v7.1 +SSP2,Japan,2005,0,gcam-v7.1 +SSP2,Japan,2010,0,gcam-v7.1 +SSP2,Japan,2015,0,gcam-v7.1 +SSP2,Japan,2020,1.0587,gcam-v7.1 +SSP2,Japan,2025,1.11734,gcam-v7.1 +SSP2,Japan,2030,1.17873,gcam-v7.1 +SSP2,Japan,2035,1.24014,gcam-v7.1 +SSP2,Japan,2040,1.32104,gcam-v7.1 +SSP2,Japan,2045,1.40014,gcam-v7.1 +SSP2,Japan,2050,1.47509,gcam-v7.1 +SSP2,Japan,2055,1.55213,gcam-v7.1 +SSP2,Japan,2060,1.63079,gcam-v7.1 +SSP2,Japan,2065,1.71532,gcam-v7.1 +SSP2,Japan,2070,1.80428,gcam-v7.1 +SSP2,Japan,2075,1.8993,gcam-v7.1 +SSP2,Japan,2080,2.00089,gcam-v7.1 +SSP2,Japan,2085,2.10356,gcam-v7.1 +SSP2,Japan,2090,2.20838,gcam-v7.1 +SSP2,Japan,2095,2.31807,gcam-v7.1 +SSP2,Japan,2100,2.43415,gcam-v7.1 +SSP2,Mexico,1975,0,gcam-v7.1 +SSP2,Mexico,1990,0,gcam-v7.1 +SSP2,Mexico,2005,0,gcam-v7.1 +SSP2,Mexico,2010,0,gcam-v7.1 +SSP2,Mexico,2015,0,gcam-v7.1 +SSP2,Mexico,2020,1.06706,gcam-v7.1 +SSP2,Mexico,2025,1.1544,gcam-v7.1 +SSP2,Mexico,2030,1.24838,gcam-v7.1 +SSP2,Mexico,2035,1.34835,gcam-v7.1 +SSP2,Mexico,2040,1.43524,gcam-v7.1 +SSP2,Mexico,2045,1.51241,gcam-v7.1 +SSP2,Mexico,2050,1.5812,gcam-v7.1 +SSP2,Mexico,2055,1.65582,gcam-v7.1 +SSP2,Mexico,2060,1.73694,gcam-v7.1 +SSP2,Mexico,2065,1.819,gcam-v7.1 +SSP2,Mexico,2070,1.90779,gcam-v7.1 +SSP2,Mexico,2075,2.00121,gcam-v7.1 +SSP2,Mexico,2080,2.10195,gcam-v7.1 +SSP2,Mexico,2085,2.21059,gcam-v7.1 +SSP2,Mexico,2090,2.32703,gcam-v7.1 +SSP2,Mexico,2095,2.45129,gcam-v7.1 +SSP2,Mexico,2100,2.58471,gcam-v7.1 +SSP2,Middle East,1975,0,gcam-v7.1 +SSP2,Middle East,1990,0,gcam-v7.1 +SSP2,Middle East,2005,0,gcam-v7.1 +SSP2,Middle East,2010,0,gcam-v7.1 +SSP2,Middle East,2015,0,gcam-v7.1 +SSP2,Middle East,2020,1.21283,gcam-v7.1 +SSP2,Middle East,2025,1.35877,gcam-v7.1 +SSP2,Middle East,2030,1.48475,gcam-v7.1 +SSP2,Middle East,2035,1.54879,gcam-v7.1 +SSP2,Middle East,2040,1.63843,gcam-v7.1 +SSP2,Middle East,2045,1.72602,gcam-v7.1 +SSP2,Middle East,2050,1.811,gcam-v7.1 +SSP2,Middle East,2055,1.89778,gcam-v7.1 +SSP2,Middle East,2060,1.98649,gcam-v7.1 +SSP2,Middle East,2065,2.07664,gcam-v7.1 +SSP2,Middle East,2070,2.18215,gcam-v7.1 +SSP2,Middle East,2075,2.30082,gcam-v7.1 +SSP2,Middle East,2080,2.42937,gcam-v7.1 +SSP2,Middle East,2085,2.5702,gcam-v7.1 +SSP2,Middle East,2090,2.72166,gcam-v7.1 +SSP2,Middle East,2095,2.88799,gcam-v7.1 +SSP2,Middle East,2100,3.07302,gcam-v7.1 +SSP2,Pakistan,1975,0,gcam-v7.1 +SSP2,Pakistan,1990,0,gcam-v7.1 +SSP2,Pakistan,2005,0,gcam-v7.1 +SSP2,Pakistan,2010,0,gcam-v7.1 +SSP2,Pakistan,2015,0,gcam-v7.1 +SSP2,Pakistan,2020,1.04367,gcam-v7.1 +SSP2,Pakistan,2025,1.16264,gcam-v7.1 +SSP2,Pakistan,2030,1.30016,gcam-v7.1 +SSP2,Pakistan,2035,1.43173,gcam-v7.1 +SSP2,Pakistan,2040,1.56486,gcam-v7.1 +SSP2,Pakistan,2045,1.70078,gcam-v7.1 +SSP2,Pakistan,2050,1.84718,gcam-v7.1 +SSP2,Pakistan,2055,2.01944,gcam-v7.1 +SSP2,Pakistan,2060,2.21567,gcam-v7.1 +SSP2,Pakistan,2065,2.44147,gcam-v7.1 +SSP2,Pakistan,2070,2.69508,gcam-v7.1 +SSP2,Pakistan,2075,2.98231,gcam-v7.1 +SSP2,Pakistan,2080,3.30484,gcam-v7.1 +SSP2,Pakistan,2085,3.65958,gcam-v7.1 +SSP2,Pakistan,2090,4.04405,gcam-v7.1 +SSP2,Pakistan,2095,4.45616,gcam-v7.1 +SSP2,Pakistan,2100,4.90033,gcam-v7.1 +SSP2,Russia,1975,0,gcam-v7.1 +SSP2,Russia,1990,0,gcam-v7.1 +SSP2,Russia,2005,0,gcam-v7.1 +SSP2,Russia,2010,0,gcam-v7.1 +SSP2,Russia,2015,0,gcam-v7.1 +SSP2,Russia,2020,1.23728,gcam-v7.1 +SSP2,Russia,2025,1.47252,gcam-v7.1 +SSP2,Russia,2030,1.686,gcam-v7.1 +SSP2,Russia,2035,1.88108,gcam-v7.1 +SSP2,Russia,2040,2.06724,gcam-v7.1 +SSP2,Russia,2045,2.22398,gcam-v7.1 +SSP2,Russia,2050,2.39254,gcam-v7.1 +SSP2,Russia,2055,2.5761,gcam-v7.1 +SSP2,Russia,2060,2.7399,gcam-v7.1 +SSP2,Russia,2065,2.88059,gcam-v7.1 +SSP2,Russia,2070,3.05042,gcam-v7.1 +SSP2,Russia,2075,3.254,gcam-v7.1 +SSP2,Russia,2080,3.48698,gcam-v7.1 +SSP2,Russia,2085,3.72742,gcam-v7.1 +SSP2,Russia,2090,3.96827,gcam-v7.1 +SSP2,Russia,2095,4.20853,gcam-v7.1 +SSP2,Russia,2100,4.45384,gcam-v7.1 +SSP2,South Africa,1975,0,gcam-v7.1 +SSP2,South Africa,1990,0,gcam-v7.1 +SSP2,South Africa,2005,0,gcam-v7.1 +SSP2,South Africa,2010,0,gcam-v7.1 +SSP2,South Africa,2015,0,gcam-v7.1 +SSP2,South Africa,2020,1.18275,gcam-v7.1 +SSP2,South Africa,2025,1.39246,gcam-v7.1 +SSP2,South Africa,2030,1.56357,gcam-v7.1 +SSP2,South Africa,2035,1.69666,gcam-v7.1 +SSP2,South Africa,2040,1.8115,gcam-v7.1 +SSP2,South Africa,2045,1.89685,gcam-v7.1 +SSP2,South Africa,2050,1.97859,gcam-v7.1 +SSP2,South Africa,2055,2.07373,gcam-v7.1 +SSP2,South Africa,2060,2.17908,gcam-v7.1 +SSP2,South Africa,2065,2.28972,gcam-v7.1 +SSP2,South Africa,2070,2.40681,gcam-v7.1 +SSP2,South Africa,2075,2.52937,gcam-v7.1 +SSP2,South Africa,2080,2.66108,gcam-v7.1 +SSP2,South Africa,2085,2.80149,gcam-v7.1 +SSP2,South Africa,2090,2.95299,gcam-v7.1 +SSP2,South Africa,2095,3.11403,gcam-v7.1 +SSP2,South Africa,2100,3.2873,gcam-v7.1 +SSP2,South America_Northern,1975,0,gcam-v7.1 +SSP2,South America_Northern,1990,0,gcam-v7.1 +SSP2,South America_Northern,2005,0,gcam-v7.1 +SSP2,South America_Northern,2010,0,gcam-v7.1 +SSP2,South America_Northern,2015,0,gcam-v7.1 +SSP2,South America_Northern,2020,0.955984,gcam-v7.1 +SSP2,South America_Northern,2025,1.03326,gcam-v7.1 +SSP2,South America_Northern,2030,1.1023,gcam-v7.1 +SSP2,South America_Northern,2035,1.23365,gcam-v7.1 +SSP2,South America_Northern,2040,1.35791,gcam-v7.1 +SSP2,South America_Northern,2045,1.56624,gcam-v7.1 +SSP2,South America_Northern,2050,1.80005,gcam-v7.1 +SSP2,South America_Northern,2055,2.05277,gcam-v7.1 +SSP2,South America_Northern,2060,2.28922,gcam-v7.1 +SSP2,South America_Northern,2065,2.51824,gcam-v7.1 +SSP2,South America_Northern,2070,2.75945,gcam-v7.1 +SSP2,South America_Northern,2075,3.01938,gcam-v7.1 +SSP2,South America_Northern,2080,3.30074,gcam-v7.1 +SSP2,South America_Northern,2085,3.61205,gcam-v7.1 +SSP2,South America_Northern,2090,3.95414,gcam-v7.1 +SSP2,South America_Northern,2095,4.31358,gcam-v7.1 +SSP2,South America_Northern,2100,4.69614,gcam-v7.1 +SSP2,South America_Southern,1975,0,gcam-v7.1 +SSP2,South America_Southern,1990,0,gcam-v7.1 +SSP2,South America_Southern,2005,0,gcam-v7.1 +SSP2,South America_Southern,2010,0,gcam-v7.1 +SSP2,South America_Southern,2015,0,gcam-v7.1 +SSP2,South America_Southern,2020,1.16184,gcam-v7.1 +SSP2,South America_Southern,2025,1.29929,gcam-v7.1 +SSP2,South America_Southern,2030,1.40654,gcam-v7.1 +SSP2,South America_Southern,2035,1.49968,gcam-v7.1 +SSP2,South America_Southern,2040,1.59896,gcam-v7.1 +SSP2,South America_Southern,2045,1.70334,gcam-v7.1 +SSP2,South America_Southern,2050,1.81539,gcam-v7.1 +SSP2,South America_Southern,2055,1.94036,gcam-v7.1 +SSP2,South America_Southern,2060,2.08122,gcam-v7.1 +SSP2,South America_Southern,2065,2.23422,gcam-v7.1 +SSP2,South America_Southern,2070,2.39964,gcam-v7.1 +SSP2,South America_Southern,2075,2.57615,gcam-v7.1 +SSP2,South America_Southern,2080,2.76316,gcam-v7.1 +SSP2,South America_Southern,2085,2.9617,gcam-v7.1 +SSP2,South America_Southern,2090,3.17179,gcam-v7.1 +SSP2,South America_Southern,2095,3.39303,gcam-v7.1 +SSP2,South America_Southern,2100,3.62661,gcam-v7.1 +SSP2,South Asia,1975,0,gcam-v7.1 +SSP2,South Asia,1990,0,gcam-v7.1 +SSP2,South Asia,2005,0,gcam-v7.1 +SSP2,South Asia,2010,0,gcam-v7.1 +SSP2,South Asia,2015,0,gcam-v7.1 +SSP2,South Asia,2020,1.127,gcam-v7.1 +SSP2,South Asia,2025,1.23043,gcam-v7.1 +SSP2,South Asia,2030,1.28986,gcam-v7.1 +SSP2,South Asia,2035,1.31185,gcam-v7.1 +SSP2,South Asia,2040,1.32976,gcam-v7.1 +SSP2,South Asia,2045,1.34704,gcam-v7.1 +SSP2,South Asia,2050,1.36473,gcam-v7.1 +SSP2,South Asia,2055,1.39097,gcam-v7.1 +SSP2,South Asia,2060,1.42488,gcam-v7.1 +SSP2,South Asia,2065,1.46926,gcam-v7.1 +SSP2,South Asia,2070,1.52347,gcam-v7.1 +SSP2,South Asia,2075,1.58481,gcam-v7.1 +SSP2,South Asia,2080,1.6538,gcam-v7.1 +SSP2,South Asia,2085,1.73116,gcam-v7.1 +SSP2,South Asia,2090,1.81744,gcam-v7.1 +SSP2,South Asia,2095,1.91289,gcam-v7.1 +SSP2,South Asia,2100,2.01725,gcam-v7.1 +SSP2,South Korea,1975,0,gcam-v7.1 +SSP2,South Korea,1990,0,gcam-v7.1 +SSP2,South Korea,2005,0,gcam-v7.1 +SSP2,South Korea,2010,0,gcam-v7.1 +SSP2,South Korea,2015,0,gcam-v7.1 +SSP2,South Korea,2020,1.1249,gcam-v7.1 +SSP2,South Korea,2025,1.29868,gcam-v7.1 +SSP2,South Korea,2030,1.46325,gcam-v7.1 +SSP2,South Korea,2035,1.61007,gcam-v7.1 +SSP2,South Korea,2040,1.76745,gcam-v7.1 +SSP2,South Korea,2045,1.88581,gcam-v7.1 +SSP2,South Korea,2050,1.9987,gcam-v7.1 +SSP2,South Korea,2055,2.10616,gcam-v7.1 +SSP2,South Korea,2060,2.23119,gcam-v7.1 +SSP2,South Korea,2065,2.35826,gcam-v7.1 +SSP2,South Korea,2070,2.46323,gcam-v7.1 +SSP2,South Korea,2075,2.57617,gcam-v7.1 +SSP2,South Korea,2080,2.68441,gcam-v7.1 +SSP2,South Korea,2085,2.79797,gcam-v7.1 +SSP2,South Korea,2090,2.92065,gcam-v7.1 +SSP2,South Korea,2095,3.0542,gcam-v7.1 +SSP2,South Korea,2100,3.1895,gcam-v7.1 +SSP2,Southeast Asia,1975,0,gcam-v7.1 +SSP2,Southeast Asia,1990,0,gcam-v7.1 +SSP2,Southeast Asia,2005,0,gcam-v7.1 +SSP2,Southeast Asia,2010,0,gcam-v7.1 +SSP2,Southeast Asia,2015,0,gcam-v7.1 +SSP2,Southeast Asia,2020,1.17063,gcam-v7.1 +SSP2,Southeast Asia,2025,1.33556,gcam-v7.1 +SSP2,Southeast Asia,2030,1.45644,gcam-v7.1 +SSP2,Southeast Asia,2035,1.52715,gcam-v7.1 +SSP2,Southeast Asia,2040,1.60099,gcam-v7.1 +SSP2,Southeast Asia,2045,1.66196,gcam-v7.1 +SSP2,Southeast Asia,2050,1.72404,gcam-v7.1 +SSP2,Southeast Asia,2055,1.79731,gcam-v7.1 +SSP2,Southeast Asia,2060,1.87923,gcam-v7.1 +SSP2,Southeast Asia,2065,1.96611,gcam-v7.1 +SSP2,Southeast Asia,2070,2.06049,gcam-v7.1 +SSP2,Southeast Asia,2075,2.16224,gcam-v7.1 +SSP2,Southeast Asia,2080,2.27175,gcam-v7.1 +SSP2,Southeast Asia,2085,2.38946,gcam-v7.1 +SSP2,Southeast Asia,2090,2.51317,gcam-v7.1 +SSP2,Southeast Asia,2095,2.64308,gcam-v7.1 +SSP2,Southeast Asia,2100,2.78084,gcam-v7.1 +SSP2,Taiwan,1975,0,gcam-v7.1 +SSP2,Taiwan,1990,0,gcam-v7.1 +SSP2,Taiwan,2005,0,gcam-v7.1 +SSP2,Taiwan,2010,0,gcam-v7.1 +SSP2,Taiwan,2015,0,gcam-v7.1 +SSP2,Taiwan,2020,1.15913,gcam-v7.1 +SSP2,Taiwan,2025,1.24317,gcam-v7.1 +SSP2,Taiwan,2030,1.30483,gcam-v7.1 +SSP2,Taiwan,2035,1.36102,gcam-v7.1 +SSP2,Taiwan,2040,1.41625,gcam-v7.1 +SSP2,Taiwan,2045,1.45507,gcam-v7.1 +SSP2,Taiwan,2050,1.47583,gcam-v7.1 +SSP2,Taiwan,2055,1.48728,gcam-v7.1 +SSP2,Taiwan,2060,1.5044,gcam-v7.1 +SSP2,Taiwan,2065,1.57366,gcam-v7.1 +SSP2,Taiwan,2070,1.64142,gcam-v7.1 +SSP2,Taiwan,2075,1.6997,gcam-v7.1 +SSP2,Taiwan,2080,1.74831,gcam-v7.1 +SSP2,Taiwan,2085,1.78436,gcam-v7.1 +SSP2,Taiwan,2090,1.81055,gcam-v7.1 +SSP2,Taiwan,2095,1.82907,gcam-v7.1 +SSP2,Taiwan,2100,1.84237,gcam-v7.1 +SSP2,USA,1975,0,gcam-v7.1 +SSP2,USA,1990,0,gcam-v7.1 +SSP2,USA,2005,0,gcam-v7.1 +SSP2,USA,2010,0,gcam-v7.1 +SSP2,USA,2015,0,gcam-v7.1 +SSP2,USA,2020,1.10445,gcam-v7.1 +SSP2,USA,2025,1.1851,gcam-v7.1 +SSP2,USA,2030,1.25067,gcam-v7.1 +SSP2,USA,2035,1.30058,gcam-v7.1 +SSP2,USA,2040,1.34421,gcam-v7.1 +SSP2,USA,2045,1.37916,gcam-v7.1 +SSP2,USA,2050,1.41754,gcam-v7.1 +SSP2,USA,2055,1.46142,gcam-v7.1 +SSP2,USA,2060,1.50837,gcam-v7.1 +SSP2,USA,2065,1.55233,gcam-v7.1 +SSP2,USA,2070,1.60051,gcam-v7.1 +SSP2,USA,2075,1.65361,gcam-v7.1 +SSP2,USA,2080,1.70572,gcam-v7.1 +SSP2,USA,2085,1.76133,gcam-v7.1 +SSP2,USA,2090,1.81957,gcam-v7.1 +SSP2,USA,2095,1.88008,gcam-v7.1 +SSP2,USA,2100,1.94383,gcam-v7.1 +SSP3,Africa_Eastern,1975,0,gcam-v7.1 +SSP3,Africa_Eastern,1990,0,gcam-v7.1 +SSP3,Africa_Eastern,2005,0,gcam-v7.1 +SSP3,Africa_Eastern,2010,0,gcam-v7.1 +SSP3,Africa_Eastern,2015,0,gcam-v7.1 +SSP3,Africa_Eastern,2020,1.18658,gcam-v7.1 +SSP3,Africa_Eastern,2025,1.39231,gcam-v7.1 +SSP3,Africa_Eastern,2030,1.5278,gcam-v7.1 +SSP3,Africa_Eastern,2035,1.62744,gcam-v7.1 +SSP3,Africa_Eastern,2040,1.71533,gcam-v7.1 +SSP3,Africa_Eastern,2045,1.78553,gcam-v7.1 +SSP3,Africa_Eastern,2050,1.84429,gcam-v7.1 +SSP3,Africa_Eastern,2055,1.90094,gcam-v7.1 +SSP3,Africa_Eastern,2060,1.95435,gcam-v7.1 +SSP3,Africa_Eastern,2065,2.01295,gcam-v7.1 +SSP3,Africa_Eastern,2070,2.07549,gcam-v7.1 +SSP3,Africa_Eastern,2075,2.14069,gcam-v7.1 +SSP3,Africa_Eastern,2080,2.20875,gcam-v7.1 +SSP3,Africa_Eastern,2085,2.28261,gcam-v7.1 +SSP3,Africa_Eastern,2090,2.3616,gcam-v7.1 +SSP3,Africa_Eastern,2095,2.44736,gcam-v7.1 +SSP3,Africa_Eastern,2100,2.54311,gcam-v7.1 +SSP3,Africa_Northern,1975,0,gcam-v7.1 +SSP3,Africa_Northern,1990,0,gcam-v7.1 +SSP3,Africa_Northern,2005,0,gcam-v7.1 +SSP3,Africa_Northern,2010,0,gcam-v7.1 +SSP3,Africa_Northern,2015,0,gcam-v7.1 +SSP3,Africa_Northern,2020,1.12977,gcam-v7.1 +SSP3,Africa_Northern,2025,1.35588,gcam-v7.1 +SSP3,Africa_Northern,2030,1.48248,gcam-v7.1 +SSP3,Africa_Northern,2035,1.53425,gcam-v7.1 +SSP3,Africa_Northern,2040,1.56959,gcam-v7.1 +SSP3,Africa_Northern,2045,1.59246,gcam-v7.1 +SSP3,Africa_Northern,2050,1.61384,gcam-v7.1 +SSP3,Africa_Northern,2055,1.64578,gcam-v7.1 +SSP3,Africa_Northern,2060,1.69056,gcam-v7.1 +SSP3,Africa_Northern,2065,1.74737,gcam-v7.1 +SSP3,Africa_Northern,2070,1.80615,gcam-v7.1 +SSP3,Africa_Northern,2075,1.86732,gcam-v7.1 +SSP3,Africa_Northern,2080,1.93097,gcam-v7.1 +SSP3,Africa_Northern,2085,1.98916,gcam-v7.1 +SSP3,Africa_Northern,2090,2.04858,gcam-v7.1 +SSP3,Africa_Northern,2095,2.10724,gcam-v7.1 +SSP3,Africa_Northern,2100,2.16903,gcam-v7.1 +SSP3,Africa_Southern,1975,0,gcam-v7.1 +SSP3,Africa_Southern,1990,0,gcam-v7.1 +SSP3,Africa_Southern,2005,0,gcam-v7.1 +SSP3,Africa_Southern,2010,0,gcam-v7.1 +SSP3,Africa_Southern,2015,0,gcam-v7.1 +SSP3,Africa_Southern,2020,1.25876,gcam-v7.1 +SSP3,Africa_Southern,2025,1.57301,gcam-v7.1 +SSP3,Africa_Southern,2030,1.72451,gcam-v7.1 +SSP3,Africa_Southern,2035,1.81021,gcam-v7.1 +SSP3,Africa_Southern,2040,1.92284,gcam-v7.1 +SSP3,Africa_Southern,2045,2.0564,gcam-v7.1 +SSP3,Africa_Southern,2050,2.20032,gcam-v7.1 +SSP3,Africa_Southern,2055,2.34335,gcam-v7.1 +SSP3,Africa_Southern,2060,2.47947,gcam-v7.1 +SSP3,Africa_Southern,2065,2.60221,gcam-v7.1 +SSP3,Africa_Southern,2070,2.71624,gcam-v7.1 +SSP3,Africa_Southern,2075,2.81642,gcam-v7.1 +SSP3,Africa_Southern,2080,2.90776,gcam-v7.1 +SSP3,Africa_Southern,2085,2.99662,gcam-v7.1 +SSP3,Africa_Southern,2090,3.08658,gcam-v7.1 +SSP3,Africa_Southern,2095,3.18226,gcam-v7.1 +SSP3,Africa_Southern,2100,3.29308,gcam-v7.1 +SSP3,Africa_Western,1975,0,gcam-v7.1 +SSP3,Africa_Western,1990,0,gcam-v7.1 +SSP3,Africa_Western,2005,0,gcam-v7.1 +SSP3,Africa_Western,2010,0,gcam-v7.1 +SSP3,Africa_Western,2015,0,gcam-v7.1 +SSP3,Africa_Western,2020,1.20379,gcam-v7.1 +SSP3,Africa_Western,2025,1.40721,gcam-v7.1 +SSP3,Africa_Western,2030,1.49193,gcam-v7.1 +SSP3,Africa_Western,2035,1.52636,gcam-v7.1 +SSP3,Africa_Western,2040,1.57182,gcam-v7.1 +SSP3,Africa_Western,2045,1.61391,gcam-v7.1 +SSP3,Africa_Western,2050,1.66304,gcam-v7.1 +SSP3,Africa_Western,2055,1.72331,gcam-v7.1 +SSP3,Africa_Western,2060,1.7923,gcam-v7.1 +SSP3,Africa_Western,2065,1.86777,gcam-v7.1 +SSP3,Africa_Western,2070,1.95309,gcam-v7.1 +SSP3,Africa_Western,2075,2.0481,gcam-v7.1 +SSP3,Africa_Western,2080,2.15027,gcam-v7.1 +SSP3,Africa_Western,2085,2.25523,gcam-v7.1 +SSP3,Africa_Western,2090,2.36309,gcam-v7.1 +SSP3,Africa_Western,2095,2.4769,gcam-v7.1 +SSP3,Africa_Western,2100,2.60146,gcam-v7.1 +SSP3,Argentina,1975,0,gcam-v7.1 +SSP3,Argentina,1990,0,gcam-v7.1 +SSP3,Argentina,2005,0,gcam-v7.1 +SSP3,Argentina,2010,0,gcam-v7.1 +SSP3,Argentina,2015,0,gcam-v7.1 +SSP3,Argentina,2020,1.10316,gcam-v7.1 +SSP3,Argentina,2025,1.25156,gcam-v7.1 +SSP3,Argentina,2030,1.29434,gcam-v7.1 +SSP3,Argentina,2035,1.3214,gcam-v7.1 +SSP3,Argentina,2040,1.35747,gcam-v7.1 +SSP3,Argentina,2045,1.39701,gcam-v7.1 +SSP3,Argentina,2050,1.42251,gcam-v7.1 +SSP3,Argentina,2055,1.4499,gcam-v7.1 +SSP3,Argentina,2060,1.48935,gcam-v7.1 +SSP3,Argentina,2065,1.53495,gcam-v7.1 +SSP3,Argentina,2070,1.5842,gcam-v7.1 +SSP3,Argentina,2075,1.63393,gcam-v7.1 +SSP3,Argentina,2080,1.6812,gcam-v7.1 +SSP3,Argentina,2085,1.72817,gcam-v7.1 +SSP3,Argentina,2090,1.77277,gcam-v7.1 +SSP3,Argentina,2095,1.81619,gcam-v7.1 +SSP3,Argentina,2100,1.86348,gcam-v7.1 +SSP3,Australia_NZ,1975,0,gcam-v7.1 +SSP3,Australia_NZ,1990,0,gcam-v7.1 +SSP3,Australia_NZ,2005,0,gcam-v7.1 +SSP3,Australia_NZ,2010,0,gcam-v7.1 +SSP3,Australia_NZ,2015,0,gcam-v7.1 +SSP3,Australia_NZ,2020,1.10827,gcam-v7.1 +SSP3,Australia_NZ,2025,1.19459,gcam-v7.1 +SSP3,Australia_NZ,2030,1.24745,gcam-v7.1 +SSP3,Australia_NZ,2035,1.28547,gcam-v7.1 +SSP3,Australia_NZ,2040,1.33536,gcam-v7.1 +SSP3,Australia_NZ,2045,1.37911,gcam-v7.1 +SSP3,Australia_NZ,2050,1.4197,gcam-v7.1 +SSP3,Australia_NZ,2055,1.46474,gcam-v7.1 +SSP3,Australia_NZ,2060,1.5158,gcam-v7.1 +SSP3,Australia_NZ,2065,1.56937,gcam-v7.1 +SSP3,Australia_NZ,2070,1.62191,gcam-v7.1 +SSP3,Australia_NZ,2075,1.67661,gcam-v7.1 +SSP3,Australia_NZ,2080,1.73584,gcam-v7.1 +SSP3,Australia_NZ,2085,1.80219,gcam-v7.1 +SSP3,Australia_NZ,2090,1.87459,gcam-v7.1 +SSP3,Australia_NZ,2095,1.94922,gcam-v7.1 +SSP3,Australia_NZ,2100,2.02315,gcam-v7.1 +SSP3,Brazil,1975,0,gcam-v7.1 +SSP3,Brazil,1990,0,gcam-v7.1 +SSP3,Brazil,2005,0,gcam-v7.1 +SSP3,Brazil,2010,0,gcam-v7.1 +SSP3,Brazil,2015,0,gcam-v7.1 +SSP3,Brazil,2020,1.17741,gcam-v7.1 +SSP3,Brazil,2025,1.32365,gcam-v7.1 +SSP3,Brazil,2030,1.39419,gcam-v7.1 +SSP3,Brazil,2035,1.42816,gcam-v7.1 +SSP3,Brazil,2040,1.46485,gcam-v7.1 +SSP3,Brazil,2045,1.50277,gcam-v7.1 +SSP3,Brazil,2050,1.53684,gcam-v7.1 +SSP3,Brazil,2055,1.57004,gcam-v7.1 +SSP3,Brazil,2060,1.60742,gcam-v7.1 +SSP3,Brazil,2065,1.65276,gcam-v7.1 +SSP3,Brazil,2070,1.70307,gcam-v7.1 +SSP3,Brazil,2075,1.74399,gcam-v7.1 +SSP3,Brazil,2080,1.78116,gcam-v7.1 +SSP3,Brazil,2085,1.81694,gcam-v7.1 +SSP3,Brazil,2090,1.85256,gcam-v7.1 +SSP3,Brazil,2095,1.88449,gcam-v7.1 +SSP3,Brazil,2100,1.91403,gcam-v7.1 +SSP3,Canada,1975,0,gcam-v7.1 +SSP3,Canada,1990,0,gcam-v7.1 +SSP3,Canada,2005,0,gcam-v7.1 +SSP3,Canada,2010,0,gcam-v7.1 +SSP3,Canada,2015,0,gcam-v7.1 +SSP3,Canada,2020,1.05417,gcam-v7.1 +SSP3,Canada,2025,1.12663,gcam-v7.1 +SSP3,Canada,2030,1.19793,gcam-v7.1 +SSP3,Canada,2035,1.27957,gcam-v7.1 +SSP3,Canada,2040,1.37362,gcam-v7.1 +SSP3,Canada,2045,1.47731,gcam-v7.1 +SSP3,Canada,2050,1.58122,gcam-v7.1 +SSP3,Canada,2055,1.68392,gcam-v7.1 +SSP3,Canada,2060,1.78543,gcam-v7.1 +SSP3,Canada,2065,1.88953,gcam-v7.1 +SSP3,Canada,2070,1.99103,gcam-v7.1 +SSP3,Canada,2075,2.09242,gcam-v7.1 +SSP3,Canada,2080,2.19853,gcam-v7.1 +SSP3,Canada,2085,2.31893,gcam-v7.1 +SSP3,Canada,2090,2.45056,gcam-v7.1 +SSP3,Canada,2095,2.58535,gcam-v7.1 +SSP3,Canada,2100,2.71914,gcam-v7.1 +SSP3,Central America and Caribbean,1975,0,gcam-v7.1 +SSP3,Central America and Caribbean,1990,0,gcam-v7.1 +SSP3,Central America and Caribbean,2005,0,gcam-v7.1 +SSP3,Central America and Caribbean,2010,0,gcam-v7.1 +SSP3,Central America and Caribbean,2015,0,gcam-v7.1 +SSP3,Central America and Caribbean,2020,1.08568,gcam-v7.1 +SSP3,Central America and Caribbean,2025,1.17831,gcam-v7.1 +SSP3,Central America and Caribbean,2030,1.24309,gcam-v7.1 +SSP3,Central America and Caribbean,2035,1.29642,gcam-v7.1 +SSP3,Central America and Caribbean,2040,1.34678,gcam-v7.1 +SSP3,Central America and Caribbean,2045,1.38612,gcam-v7.1 +SSP3,Central America and Caribbean,2050,1.41995,gcam-v7.1 +SSP3,Central America and Caribbean,2055,1.45978,gcam-v7.1 +SSP3,Central America and Caribbean,2060,1.50377,gcam-v7.1 +SSP3,Central America and Caribbean,2065,1.54879,gcam-v7.1 +SSP3,Central America and Caribbean,2070,1.59685,gcam-v7.1 +SSP3,Central America and Caribbean,2075,1.64612,gcam-v7.1 +SSP3,Central America and Caribbean,2080,1.69439,gcam-v7.1 +SSP3,Central America and Caribbean,2085,1.74291,gcam-v7.1 +SSP3,Central America and Caribbean,2090,1.79044,gcam-v7.1 +SSP3,Central America and Caribbean,2095,1.83807,gcam-v7.1 +SSP3,Central America and Caribbean,2100,1.88882,gcam-v7.1 +SSP3,Central Asia,1975,0,gcam-v7.1 +SSP3,Central Asia,1990,0,gcam-v7.1 +SSP3,Central Asia,2005,0,gcam-v7.1 +SSP3,Central Asia,2010,0,gcam-v7.1 +SSP3,Central Asia,2015,0,gcam-v7.1 +SSP3,Central Asia,2020,1.08657,gcam-v7.1 +SSP3,Central Asia,2025,1.29711,gcam-v7.1 +SSP3,Central Asia,2030,1.40535,gcam-v7.1 +SSP3,Central Asia,2035,1.49052,gcam-v7.1 +SSP3,Central Asia,2040,1.57694,gcam-v7.1 +SSP3,Central Asia,2045,1.64653,gcam-v7.1 +SSP3,Central Asia,2050,1.68753,gcam-v7.1 +SSP3,Central Asia,2055,1.72172,gcam-v7.1 +SSP3,Central Asia,2060,1.77371,gcam-v7.1 +SSP3,Central Asia,2065,1.83517,gcam-v7.1 +SSP3,Central Asia,2070,1.90727,gcam-v7.1 +SSP3,Central Asia,2075,1.9943,gcam-v7.1 +SSP3,Central Asia,2080,2.0869,gcam-v7.1 +SSP3,Central Asia,2085,2.18043,gcam-v7.1 +SSP3,Central Asia,2090,2.27358,gcam-v7.1 +SSP3,Central Asia,2095,2.3656,gcam-v7.1 +SSP3,Central Asia,2100,2.4589,gcam-v7.1 +SSP3,China,1975,0,gcam-v7.1 +SSP3,China,1990,0,gcam-v7.1 +SSP3,China,2005,0,gcam-v7.1 +SSP3,China,2010,0,gcam-v7.1 +SSP3,China,2015,0,gcam-v7.1 +SSP3,China,2020,1.33995,gcam-v7.1 +SSP3,China,2025,1.59101,gcam-v7.1 +SSP3,China,2030,1.73803,gcam-v7.1 +SSP3,China,2035,1.84892,gcam-v7.1 +SSP3,China,2040,1.9664,gcam-v7.1 +SSP3,China,2045,2.04455,gcam-v7.1 +SSP3,China,2050,2.12001,gcam-v7.1 +SSP3,China,2055,2.23045,gcam-v7.1 +SSP3,China,2060,2.34227,gcam-v7.1 +SSP3,China,2065,2.4565,gcam-v7.1 +SSP3,China,2070,2.56207,gcam-v7.1 +SSP3,China,2075,2.67403,gcam-v7.1 +SSP3,China,2080,2.76939,gcam-v7.1 +SSP3,China,2085,2.86597,gcam-v7.1 +SSP3,China,2090,2.95571,gcam-v7.1 +SSP3,China,2095,3.04099,gcam-v7.1 +SSP3,China,2100,3.12647,gcam-v7.1 +SSP3,Colombia,1975,0,gcam-v7.1 +SSP3,Colombia,1990,0,gcam-v7.1 +SSP3,Colombia,2005,0,gcam-v7.1 +SSP3,Colombia,2010,0,gcam-v7.1 +SSP3,Colombia,2015,0,gcam-v7.1 +SSP3,Colombia,2020,1.13385,gcam-v7.1 +SSP3,Colombia,2025,1.18325,gcam-v7.1 +SSP3,Colombia,2030,1.22195,gcam-v7.1 +SSP3,Colombia,2035,1.25472,gcam-v7.1 +SSP3,Colombia,2040,1.29253,gcam-v7.1 +SSP3,Colombia,2045,1.33589,gcam-v7.1 +SSP3,Colombia,2050,1.38047,gcam-v7.1 +SSP3,Colombia,2055,1.43154,gcam-v7.1 +SSP3,Colombia,2060,1.49299,gcam-v7.1 +SSP3,Colombia,2065,1.55921,gcam-v7.1 +SSP3,Colombia,2070,1.63091,gcam-v7.1 +SSP3,Colombia,2075,1.70907,gcam-v7.1 +SSP3,Colombia,2080,1.78789,gcam-v7.1 +SSP3,Colombia,2085,1.86895,gcam-v7.1 +SSP3,Colombia,2090,1.95307,gcam-v7.1 +SSP3,Colombia,2095,2.03908,gcam-v7.1 +SSP3,Colombia,2100,2.12853,gcam-v7.1 +SSP3,EU-12,1975,0,gcam-v7.1 +SSP3,EU-12,1990,0,gcam-v7.1 +SSP3,EU-12,2005,0,gcam-v7.1 +SSP3,EU-12,2010,0,gcam-v7.1 +SSP3,EU-12,2015,0,gcam-v7.1 +SSP3,EU-12,2020,1.10429,gcam-v7.1 +SSP3,EU-12,2025,1.21991,gcam-v7.1 +SSP3,EU-12,2030,1.28801,gcam-v7.1 +SSP3,EU-12,2035,1.34868,gcam-v7.1 +SSP3,EU-12,2040,1.41352,gcam-v7.1 +SSP3,EU-12,2045,1.48339,gcam-v7.1 +SSP3,EU-12,2050,1.55298,gcam-v7.1 +SSP3,EU-12,2055,1.62805,gcam-v7.1 +SSP3,EU-12,2060,1.69979,gcam-v7.1 +SSP3,EU-12,2065,1.76533,gcam-v7.1 +SSP3,EU-12,2070,1.8207,gcam-v7.1 +SSP3,EU-12,2075,1.88092,gcam-v7.1 +SSP3,EU-12,2080,1.94521,gcam-v7.1 +SSP3,EU-12,2085,2.01107,gcam-v7.1 +SSP3,EU-12,2090,2.07794,gcam-v7.1 +SSP3,EU-12,2095,2.14443,gcam-v7.1 +SSP3,EU-12,2100,2.20827,gcam-v7.1 +SSP3,EU-15,1975,0,gcam-v7.1 +SSP3,EU-15,1990,0,gcam-v7.1 +SSP3,EU-15,2005,0,gcam-v7.1 +SSP3,EU-15,2010,0,gcam-v7.1 +SSP3,EU-15,2015,0,gcam-v7.1 +SSP3,EU-15,2020,1.06066,gcam-v7.1 +SSP3,EU-15,2025,1.12616,gcam-v7.1 +SSP3,EU-15,2030,1.18771,gcam-v7.1 +SSP3,EU-15,2035,1.24947,gcam-v7.1 +SSP3,EU-15,2040,1.30821,gcam-v7.1 +SSP3,EU-15,2045,1.36109,gcam-v7.1 +SSP3,EU-15,2050,1.4101,gcam-v7.1 +SSP3,EU-15,2055,1.46004,gcam-v7.1 +SSP3,EU-15,2060,1.50933,gcam-v7.1 +SSP3,EU-15,2065,1.55839,gcam-v7.1 +SSP3,EU-15,2070,1.60711,gcam-v7.1 +SSP3,EU-15,2075,1.65911,gcam-v7.1 +SSP3,EU-15,2080,1.7145,gcam-v7.1 +SSP3,EU-15,2085,1.77334,gcam-v7.1 +SSP3,EU-15,2090,1.8359,gcam-v7.1 +SSP3,EU-15,2095,1.90268,gcam-v7.1 +SSP3,EU-15,2100,1.97039,gcam-v7.1 +SSP3,Europe_Eastern,1975,0,gcam-v7.1 +SSP3,Europe_Eastern,1990,0,gcam-v7.1 +SSP3,Europe_Eastern,2005,0,gcam-v7.1 +SSP3,Europe_Eastern,2010,0,gcam-v7.1 +SSP3,Europe_Eastern,2015,0,gcam-v7.1 +SSP3,Europe_Eastern,2020,0.998845,gcam-v7.1 +SSP3,Europe_Eastern,2025,1.1299,gcam-v7.1 +SSP3,Europe_Eastern,2030,1.22029,gcam-v7.1 +SSP3,Europe_Eastern,2035,1.28094,gcam-v7.1 +SSP3,Europe_Eastern,2040,1.3323,gcam-v7.1 +SSP3,Europe_Eastern,2045,1.38027,gcam-v7.1 +SSP3,Europe_Eastern,2050,1.43489,gcam-v7.1 +SSP3,Europe_Eastern,2055,1.49604,gcam-v7.1 +SSP3,Europe_Eastern,2060,1.56565,gcam-v7.1 +SSP3,Europe_Eastern,2065,1.74183,gcam-v7.1 +SSP3,Europe_Eastern,2070,1.8224,gcam-v7.1 +SSP3,Europe_Eastern,2075,1.91706,gcam-v7.1 +SSP3,Europe_Eastern,2080,2.02613,gcam-v7.1 +SSP3,Europe_Eastern,2085,2.14168,gcam-v7.1 +SSP3,Europe_Eastern,2090,2.2626,gcam-v7.1 +SSP3,Europe_Eastern,2095,2.38275,gcam-v7.1 +SSP3,Europe_Eastern,2100,2.50503,gcam-v7.1 +SSP3,Europe_Non_EU,1975,0,gcam-v7.1 +SSP3,Europe_Non_EU,1990,0,gcam-v7.1 +SSP3,Europe_Non_EU,2005,0,gcam-v7.1 +SSP3,Europe_Non_EU,2010,0,gcam-v7.1 +SSP3,Europe_Non_EU,2015,0,gcam-v7.1 +SSP3,Europe_Non_EU,2020,1.11031,gcam-v7.1 +SSP3,Europe_Non_EU,2025,1.16482,gcam-v7.1 +SSP3,Europe_Non_EU,2030,1.1817,gcam-v7.1 +SSP3,Europe_Non_EU,2035,1.197,gcam-v7.1 +SSP3,Europe_Non_EU,2040,1.22155,gcam-v7.1 +SSP3,Europe_Non_EU,2045,1.24869,gcam-v7.1 +SSP3,Europe_Non_EU,2050,1.27785,gcam-v7.1 +SSP3,Europe_Non_EU,2055,1.30887,gcam-v7.1 +SSP3,Europe_Non_EU,2060,1.34344,gcam-v7.1 +SSP3,Europe_Non_EU,2065,1.38198,gcam-v7.1 +SSP3,Europe_Non_EU,2070,1.42086,gcam-v7.1 +SSP3,Europe_Non_EU,2075,1.46251,gcam-v7.1 +SSP3,Europe_Non_EU,2080,1.50255,gcam-v7.1 +SSP3,Europe_Non_EU,2085,1.54108,gcam-v7.1 +SSP3,Europe_Non_EU,2090,1.57879,gcam-v7.1 +SSP3,Europe_Non_EU,2095,1.61716,gcam-v7.1 +SSP3,Europe_Non_EU,2100,1.65764,gcam-v7.1 +SSP3,European Free Trade Association,1975,0,gcam-v7.1 +SSP3,European Free Trade Association,1990,0,gcam-v7.1 +SSP3,European Free Trade Association,2005,0,gcam-v7.1 +SSP3,European Free Trade Association,2010,0,gcam-v7.1 +SSP3,European Free Trade Association,2015,0,gcam-v7.1 +SSP3,European Free Trade Association,2020,1.07307,gcam-v7.1 +SSP3,European Free Trade Association,2025,1.14136,gcam-v7.1 +SSP3,European Free Trade Association,2030,1.21184,gcam-v7.1 +SSP3,European Free Trade Association,2035,1.27703,gcam-v7.1 +SSP3,European Free Trade Association,2040,1.33773,gcam-v7.1 +SSP3,European Free Trade Association,2045,1.3835,gcam-v7.1 +SSP3,European Free Trade Association,2050,1.4366,gcam-v7.1 +SSP3,European Free Trade Association,2055,1.49573,gcam-v7.1 +SSP3,European Free Trade Association,2060,1.56303,gcam-v7.1 +SSP3,European Free Trade Association,2065,1.62953,gcam-v7.1 +SSP3,European Free Trade Association,2070,1.69398,gcam-v7.1 +SSP3,European Free Trade Association,2075,1.75957,gcam-v7.1 +SSP3,European Free Trade Association,2080,1.82874,gcam-v7.1 +SSP3,European Free Trade Association,2085,1.90488,gcam-v7.1 +SSP3,European Free Trade Association,2090,1.98645,gcam-v7.1 +SSP3,European Free Trade Association,2095,2.07053,gcam-v7.1 +SSP3,European Free Trade Association,2100,2.14979,gcam-v7.1 +SSP3,India,1975,0,gcam-v7.1 +SSP3,India,1990,0,gcam-v7.1 +SSP3,India,2005,0,gcam-v7.1 +SSP3,India,2010,0,gcam-v7.1 +SSP3,India,2015,0,gcam-v7.1 +SSP3,India,2020,1.19938,gcam-v7.1 +SSP3,India,2025,1.38599,gcam-v7.1 +SSP3,India,2030,1.48199,gcam-v7.1 +SSP3,India,2035,1.52952,gcam-v7.1 +SSP3,India,2040,1.57306,gcam-v7.1 +SSP3,India,2045,1.61292,gcam-v7.1 +SSP3,India,2050,1.65551,gcam-v7.1 +SSP3,India,2055,1.70813,gcam-v7.1 +SSP3,India,2060,1.76807,gcam-v7.1 +SSP3,India,2065,1.83316,gcam-v7.1 +SSP3,India,2070,1.90208,gcam-v7.1 +SSP3,India,2075,1.97431,gcam-v7.1 +SSP3,India,2080,2.04776,gcam-v7.1 +SSP3,India,2085,2.12173,gcam-v7.1 +SSP3,India,2090,2.19334,gcam-v7.1 +SSP3,India,2095,2.2638,gcam-v7.1 +SSP3,India,2100,2.33741,gcam-v7.1 +SSP3,Indonesia,1975,0,gcam-v7.1 +SSP3,Indonesia,1990,0,gcam-v7.1 +SSP3,Indonesia,2005,0,gcam-v7.1 +SSP3,Indonesia,2010,0,gcam-v7.1 +SSP3,Indonesia,2015,0,gcam-v7.1 +SSP3,Indonesia,2020,1.23418,gcam-v7.1 +SSP3,Indonesia,2025,1.43827,gcam-v7.1 +SSP3,Indonesia,2030,1.54956,gcam-v7.1 +SSP3,Indonesia,2035,1.60783,gcam-v7.1 +SSP3,Indonesia,2040,1.66993,gcam-v7.1 +SSP3,Indonesia,2045,1.72766,gcam-v7.1 +SSP3,Indonesia,2050,1.78091,gcam-v7.1 +SSP3,Indonesia,2055,1.83486,gcam-v7.1 +SSP3,Indonesia,2060,1.89729,gcam-v7.1 +SSP3,Indonesia,2065,1.96297,gcam-v7.1 +SSP3,Indonesia,2070,2.04005,gcam-v7.1 +SSP3,Indonesia,2075,2.12285,gcam-v7.1 +SSP3,Indonesia,2080,2.20386,gcam-v7.1 +SSP3,Indonesia,2085,2.28524,gcam-v7.1 +SSP3,Indonesia,2090,2.36901,gcam-v7.1 +SSP3,Indonesia,2095,2.45278,gcam-v7.1 +SSP3,Indonesia,2100,2.5395,gcam-v7.1 +SSP3,Japan,1975,0,gcam-v7.1 +SSP3,Japan,1990,0,gcam-v7.1 +SSP3,Japan,2005,0,gcam-v7.1 +SSP3,Japan,2010,0,gcam-v7.1 +SSP3,Japan,2015,0,gcam-v7.1 +SSP3,Japan,2020,1.0321,gcam-v7.1 +SSP3,Japan,2025,1.08751,gcam-v7.1 +SSP3,Japan,2030,1.13586,gcam-v7.1 +SSP3,Japan,2035,1.17656,gcam-v7.1 +SSP3,Japan,2040,1.22595,gcam-v7.1 +SSP3,Japan,2045,1.26773,gcam-v7.1 +SSP3,Japan,2050,1.30229,gcam-v7.1 +SSP3,Japan,2055,1.33648,gcam-v7.1 +SSP3,Japan,2060,1.37068,gcam-v7.1 +SSP3,Japan,2065,1.40934,gcam-v7.1 +SSP3,Japan,2070,1.44839,gcam-v7.1 +SSP3,Japan,2075,1.48901,gcam-v7.1 +SSP3,Japan,2080,1.53485,gcam-v7.1 +SSP3,Japan,2085,1.57982,gcam-v7.1 +SSP3,Japan,2090,1.62804,gcam-v7.1 +SSP3,Japan,2095,1.68046,gcam-v7.1 +SSP3,Japan,2100,1.73681,gcam-v7.1 +SSP3,Mexico,1975,0,gcam-v7.1 +SSP3,Mexico,1990,0,gcam-v7.1 +SSP3,Mexico,2005,0,gcam-v7.1 +SSP3,Mexico,2010,0,gcam-v7.1 +SSP3,Mexico,2015,0,gcam-v7.1 +SSP3,Mexico,2020,1.06266,gcam-v7.1 +SSP3,Mexico,2025,1.14825,gcam-v7.1 +SSP3,Mexico,2030,1.20925,gcam-v7.1 +SSP3,Mexico,2035,1.26738,gcam-v7.1 +SSP3,Mexico,2040,1.30843,gcam-v7.1 +SSP3,Mexico,2045,1.33715,gcam-v7.1 +SSP3,Mexico,2050,1.35924,gcam-v7.1 +SSP3,Mexico,2055,1.38434,gcam-v7.1 +SSP3,Mexico,2060,1.41602,gcam-v7.1 +SSP3,Mexico,2065,1.44793,gcam-v7.1 +SSP3,Mexico,2070,1.48359,gcam-v7.1 +SSP3,Mexico,2075,1.51947,gcam-v7.1 +SSP3,Mexico,2080,1.55442,gcam-v7.1 +SSP3,Mexico,2085,1.58811,gcam-v7.1 +SSP3,Mexico,2090,1.61951,gcam-v7.1 +SSP3,Mexico,2095,1.64931,gcam-v7.1 +SSP3,Mexico,2100,1.68033,gcam-v7.1 +SSP3,Middle East,1975,0,gcam-v7.1 +SSP3,Middle East,1990,0,gcam-v7.1 +SSP3,Middle East,2005,0,gcam-v7.1 +SSP3,Middle East,2010,0,gcam-v7.1 +SSP3,Middle East,2015,0,gcam-v7.1 +SSP3,Middle East,2020,1.15298,gcam-v7.1 +SSP3,Middle East,2025,1.33982,gcam-v7.1 +SSP3,Middle East,2030,1.4254,gcam-v7.1 +SSP3,Middle East,2035,1.474,gcam-v7.1 +SSP3,Middle East,2040,1.54418,gcam-v7.1 +SSP3,Middle East,2045,1.5948,gcam-v7.1 +SSP3,Middle East,2050,1.62138,gcam-v7.1 +SSP3,Middle East,2055,1.63669,gcam-v7.1 +SSP3,Middle East,2060,1.64194,gcam-v7.1 +SSP3,Middle East,2065,1.64936,gcam-v7.1 +SSP3,Middle East,2070,1.66893,gcam-v7.1 +SSP3,Middle East,2075,1.70352,gcam-v7.1 +SSP3,Middle East,2080,1.74532,gcam-v7.1 +SSP3,Middle East,2085,1.79388,gcam-v7.1 +SSP3,Middle East,2090,1.84478,gcam-v7.1 +SSP3,Middle East,2095,1.90369,gcam-v7.1 +SSP3,Middle East,2100,1.97107,gcam-v7.1 +SSP3,Pakistan,1975,0,gcam-v7.1 +SSP3,Pakistan,1990,0,gcam-v7.1 +SSP3,Pakistan,2005,0,gcam-v7.1 +SSP3,Pakistan,2010,0,gcam-v7.1 +SSP3,Pakistan,2015,0,gcam-v7.1 +SSP3,Pakistan,2020,1.03917,gcam-v7.1 +SSP3,Pakistan,2025,1.13353,gcam-v7.1 +SSP3,Pakistan,2030,1.20962,gcam-v7.1 +SSP3,Pakistan,2035,1.26458,gcam-v7.1 +SSP3,Pakistan,2040,1.32079,gcam-v7.1 +SSP3,Pakistan,2045,1.37472,gcam-v7.1 +SSP3,Pakistan,2050,1.42529,gcam-v7.1 +SSP3,Pakistan,2055,1.47806,gcam-v7.1 +SSP3,Pakistan,2060,1.52951,gcam-v7.1 +SSP3,Pakistan,2065,1.59505,gcam-v7.1 +SSP3,Pakistan,2070,1.66613,gcam-v7.1 +SSP3,Pakistan,2075,1.74592,gcam-v7.1 +SSP3,Pakistan,2080,1.83159,gcam-v7.1 +SSP3,Pakistan,2085,1.92051,gcam-v7.1 +SSP3,Pakistan,2090,2.01002,gcam-v7.1 +SSP3,Pakistan,2095,2.10342,gcam-v7.1 +SSP3,Pakistan,2100,2.20564,gcam-v7.1 +SSP3,Russia,1975,0,gcam-v7.1 +SSP3,Russia,1990,0,gcam-v7.1 +SSP3,Russia,2005,0,gcam-v7.1 +SSP3,Russia,2010,0,gcam-v7.1 +SSP3,Russia,2015,0,gcam-v7.1 +SSP3,Russia,2020,1.19286,gcam-v7.1 +SSP3,Russia,2025,1.40127,gcam-v7.1 +SSP3,Russia,2030,1.58077,gcam-v7.1 +SSP3,Russia,2035,1.73914,gcam-v7.1 +SSP3,Russia,2040,1.87655,gcam-v7.1 +SSP3,Russia,2045,1.96427,gcam-v7.1 +SSP3,Russia,2050,2.04365,gcam-v7.1 +SSP3,Russia,2055,2.12686,gcam-v7.1 +SSP3,Russia,2060,2.19742,gcam-v7.1 +SSP3,Russia,2065,2.24759,gcam-v7.1 +SSP3,Russia,2070,2.31738,gcam-v7.1 +SSP3,Russia,2075,2.41596,gcam-v7.1 +SSP3,Russia,2080,2.53362,gcam-v7.1 +SSP3,Russia,2085,2.63486,gcam-v7.1 +SSP3,Russia,2090,2.73304,gcam-v7.1 +SSP3,Russia,2095,2.81571,gcam-v7.1 +SSP3,Russia,2100,2.89189,gcam-v7.1 +SSP3,South Africa,1975,0,gcam-v7.1 +SSP3,South Africa,1990,0,gcam-v7.1 +SSP3,South Africa,2005,0,gcam-v7.1 +SSP3,South Africa,2010,0,gcam-v7.1 +SSP3,South Africa,2015,0,gcam-v7.1 +SSP3,South Africa,2020,1.17536,gcam-v7.1 +SSP3,South Africa,2025,1.35668,gcam-v7.1 +SSP3,South Africa,2030,1.46344,gcam-v7.1 +SSP3,South Africa,2035,1.52881,gcam-v7.1 +SSP3,South Africa,2040,1.5846,gcam-v7.1 +SSP3,South Africa,2045,1.6194,gcam-v7.1 +SSP3,South Africa,2050,1.65161,gcam-v7.1 +SSP3,South Africa,2055,1.69637,gcam-v7.1 +SSP3,South Africa,2060,1.75009,gcam-v7.1 +SSP3,South Africa,2065,1.80515,gcam-v7.1 +SSP3,South Africa,2070,1.86283,gcam-v7.1 +SSP3,South Africa,2075,1.91898,gcam-v7.1 +SSP3,South Africa,2080,1.97479,gcam-v7.1 +SSP3,South Africa,2085,2.03325,gcam-v7.1 +SSP3,South Africa,2090,2.09386,gcam-v7.1 +SSP3,South Africa,2095,2.15547,gcam-v7.1 +SSP3,South Africa,2100,2.2224,gcam-v7.1 +SSP3,South America_Northern,1975,0,gcam-v7.1 +SSP3,South America_Northern,1990,0,gcam-v7.1 +SSP3,South America_Northern,2005,0,gcam-v7.1 +SSP3,South America_Northern,2010,0,gcam-v7.1 +SSP3,South America_Northern,2015,0,gcam-v7.1 +SSP3,South America_Northern,2020,0.889081,gcam-v7.1 +SSP3,South America_Northern,2025,0.933605,gcam-v7.1 +SSP3,South America_Northern,2030,1.03217,gcam-v7.1 +SSP3,South America_Northern,2035,1.20008,gcam-v7.1 +SSP3,South America_Northern,2040,1.41696,gcam-v7.1 +SSP3,South America_Northern,2045,1.68283,gcam-v7.1 +SSP3,South America_Northern,2050,1.94309,gcam-v7.1 +SSP3,South America_Northern,2055,2.18498,gcam-v7.1 +SSP3,South America_Northern,2060,2.39031,gcam-v7.1 +SSP3,South America_Northern,2065,2.53822,gcam-v7.1 +SSP3,South America_Northern,2070,2.66739,gcam-v7.1 +SSP3,South America_Northern,2075,2.78994,gcam-v7.1 +SSP3,South America_Northern,2080,2.9055,gcam-v7.1 +SSP3,South America_Northern,2085,3.01956,gcam-v7.1 +SSP3,South America_Northern,2090,3.13707,gcam-v7.1 +SSP3,South America_Northern,2095,3.25546,gcam-v7.1 +SSP3,South America_Northern,2100,3.3745,gcam-v7.1 +SSP3,South America_Southern,1975,0,gcam-v7.1 +SSP3,South America_Southern,1990,0,gcam-v7.1 +SSP3,South America_Southern,2005,0,gcam-v7.1 +SSP3,South America_Southern,2010,0,gcam-v7.1 +SSP3,South America_Southern,2015,0,gcam-v7.1 +SSP3,South America_Southern,2020,1.15456,gcam-v7.1 +SSP3,South America_Southern,2025,1.27454,gcam-v7.1 +SSP3,South America_Southern,2030,1.32489,gcam-v7.1 +SSP3,South America_Southern,2035,1.35326,gcam-v7.1 +SSP3,South America_Southern,2040,1.38734,gcam-v7.1 +SSP3,South America_Southern,2045,1.4236,gcam-v7.1 +SSP3,South America_Southern,2050,1.4626,gcam-v7.1 +SSP3,South America_Southern,2055,1.5087,gcam-v7.1 +SSP3,South America_Southern,2060,1.56514,gcam-v7.1 +SSP3,South America_Southern,2065,1.6276,gcam-v7.1 +SSP3,South America_Southern,2070,1.69602,gcam-v7.1 +SSP3,South America_Southern,2075,1.76894,gcam-v7.1 +SSP3,South America_Southern,2080,1.84237,gcam-v7.1 +SSP3,South America_Southern,2085,1.91568,gcam-v7.1 +SSP3,South America_Southern,2090,1.98961,gcam-v7.1 +SSP3,South America_Southern,2095,2.06474,gcam-v7.1 +SSP3,South America_Southern,2100,2.14334,gcam-v7.1 +SSP3,South Asia,1975,0,gcam-v7.1 +SSP3,South Asia,1990,0,gcam-v7.1 +SSP3,South Asia,2005,0,gcam-v7.1 +SSP3,South Asia,2010,0,gcam-v7.1 +SSP3,South Asia,2015,0,gcam-v7.1 +SSP3,South Asia,2020,1.12006,gcam-v7.1 +SSP3,South Asia,2025,1.20835,gcam-v7.1 +SSP3,South Asia,2030,1.23594,gcam-v7.1 +SSP3,South Asia,2035,1.22453,gcam-v7.1 +SSP3,South Asia,2040,1.21596,gcam-v7.1 +SSP3,South Asia,2045,1.21193,gcam-v7.1 +SSP3,South Asia,2050,1.20886,gcam-v7.1 +SSP3,South Asia,2055,1.21333,gcam-v7.1 +SSP3,South Asia,2060,1.22362,gcam-v7.1 +SSP3,South Asia,2065,1.23966,gcam-v7.1 +SSP3,South Asia,2070,1.25941,gcam-v7.1 +SSP3,South Asia,2075,1.28153,gcam-v7.1 +SSP3,South Asia,2080,1.30359,gcam-v7.1 +SSP3,South Asia,2085,1.32585,gcam-v7.1 +SSP3,South Asia,2090,1.349,gcam-v7.1 +SSP3,South Asia,2095,1.37417,gcam-v7.1 +SSP3,South Asia,2100,1.40227,gcam-v7.1 +SSP3,South Korea,1975,0,gcam-v7.1 +SSP3,South Korea,1990,0,gcam-v7.1 +SSP3,South Korea,2005,0,gcam-v7.1 +SSP3,South Korea,2010,0,gcam-v7.1 +SSP3,South Korea,2015,0,gcam-v7.1 +SSP3,South Korea,2020,1.04777,gcam-v7.1 +SSP3,South Korea,2025,1.2093,gcam-v7.1 +SSP3,South Korea,2030,1.31996,gcam-v7.1 +SSP3,South Korea,2035,1.40822,gcam-v7.1 +SSP3,South Korea,2040,1.50101,gcam-v7.1 +SSP3,South Korea,2045,1.57648,gcam-v7.1 +SSP3,South Korea,2050,1.63995,gcam-v7.1 +SSP3,South Korea,2055,1.69384,gcam-v7.1 +SSP3,South Korea,2060,1.76333,gcam-v7.1 +SSP3,South Korea,2065,1.83568,gcam-v7.1 +SSP3,South Korea,2070,1.88689,gcam-v7.1 +SSP3,South Korea,2075,1.93906,gcam-v7.1 +SSP3,South Korea,2080,1.98687,gcam-v7.1 +SSP3,South Korea,2085,2.03592,gcam-v7.1 +SSP3,South Korea,2090,2.08959,gcam-v7.1 +SSP3,South Korea,2095,2.14952,gcam-v7.1 +SSP3,South Korea,2100,2.20539,gcam-v7.1 +SSP3,Southeast Asia,1975,0,gcam-v7.1 +SSP3,Southeast Asia,1990,0,gcam-v7.1 +SSP3,Southeast Asia,2005,0,gcam-v7.1 +SSP3,Southeast Asia,2010,0,gcam-v7.1 +SSP3,Southeast Asia,2015,0,gcam-v7.1 +SSP3,Southeast Asia,2020,1.16252,gcam-v7.1 +SSP3,Southeast Asia,2025,1.30329,gcam-v7.1 +SSP3,Southeast Asia,2030,1.374,gcam-v7.1 +SSP3,Southeast Asia,2035,1.39457,gcam-v7.1 +SSP3,Southeast Asia,2040,1.42796,gcam-v7.1 +SSP3,Southeast Asia,2045,1.45635,gcam-v7.1 +SSP3,Southeast Asia,2050,1.48834,gcam-v7.1 +SSP3,Southeast Asia,2055,1.53124,gcam-v7.1 +SSP3,Southeast Asia,2060,1.58201,gcam-v7.1 +SSP3,Southeast Asia,2065,1.63659,gcam-v7.1 +SSP3,Southeast Asia,2070,1.69614,gcam-v7.1 +SSP3,Southeast Asia,2075,1.75861,gcam-v7.1 +SSP3,Southeast Asia,2080,1.82204,gcam-v7.1 +SSP3,Southeast Asia,2085,1.88638,gcam-v7.1 +SSP3,Southeast Asia,2090,1.94849,gcam-v7.1 +SSP3,Southeast Asia,2095,2.00986,gcam-v7.1 +SSP3,Southeast Asia,2100,2.07478,gcam-v7.1 +SSP3,Taiwan,1975,0,gcam-v7.1 +SSP3,Taiwan,1990,0,gcam-v7.1 +SSP3,Taiwan,2005,0,gcam-v7.1 +SSP3,Taiwan,2010,0,gcam-v7.1 +SSP3,Taiwan,2015,0,gcam-v7.1 +SSP3,Taiwan,2020,1.15018,gcam-v7.1 +SSP3,Taiwan,2025,1.19964,gcam-v7.1 +SSP3,Taiwan,2030,1.2132,gcam-v7.1 +SSP3,Taiwan,2035,1.21647,gcam-v7.1 +SSP3,Taiwan,2040,1.22115,gcam-v7.1 +SSP3,Taiwan,2045,1.21496,gcam-v7.1 +SSP3,Taiwan,2050,1.19949,gcam-v7.1 +SSP3,Taiwan,2055,1.18173,gcam-v7.1 +SSP3,Taiwan,2060,1.1719,gcam-v7.1 +SSP3,Taiwan,2065,1.21144,gcam-v7.1 +SSP3,Taiwan,2070,1.26119,gcam-v7.1 +SSP3,Taiwan,2075,1.31003,gcam-v7.1 +SSP3,Taiwan,2080,1.35267,gcam-v7.1 +SSP3,Taiwan,2085,1.38669,gcam-v7.1 +SSP3,Taiwan,2090,1.41412,gcam-v7.1 +SSP3,Taiwan,2095,1.43783,gcam-v7.1 +SSP3,Taiwan,2100,1.46251,gcam-v7.1 +SSP3,USA,1975,0,gcam-v7.1 +SSP3,USA,1990,0,gcam-v7.1 +SSP3,USA,2005,0,gcam-v7.1 +SSP3,USA,2010,0,gcam-v7.1 +SSP3,USA,2015,0,gcam-v7.1 +SSP3,USA,2020,1.09163,gcam-v7.1 +SSP3,USA,2025,1.16775,gcam-v7.1 +SSP3,USA,2030,1.22566,gcam-v7.1 +SSP3,USA,2035,1.26872,gcam-v7.1 +SSP3,USA,2040,1.30775,gcam-v7.1 +SSP3,USA,2045,1.3387,gcam-v7.1 +SSP3,USA,2050,1.37279,gcam-v7.1 +SSP3,USA,2055,1.41011,gcam-v7.1 +SSP3,USA,2060,1.44835,gcam-v7.1 +SSP3,USA,2065,1.48226,gcam-v7.1 +SSP3,USA,2070,1.51273,gcam-v7.1 +SSP3,USA,2075,1.54239,gcam-v7.1 +SSP3,USA,2080,1.56925,gcam-v7.1 +SSP3,USA,2085,1.5976,gcam-v7.1 +SSP3,USA,2090,1.62836,gcam-v7.1 +SSP3,USA,2095,1.66199,gcam-v7.1 +SSP3,USA,2100,1.69625,gcam-v7.1 +SSP4,Africa_Eastern,1975,0,gcam-v7.1 +SSP4,Africa_Eastern,1990,0,gcam-v7.1 +SSP4,Africa_Eastern,2005,0,gcam-v7.1 +SSP4,Africa_Eastern,2010,0,gcam-v7.1 +SSP4,Africa_Eastern,2015,0,gcam-v7.1 +SSP4,Africa_Eastern,2020,1.18109,gcam-v7.1 +SSP4,Africa_Eastern,2025,1.37571,gcam-v7.1 +SSP4,Africa_Eastern,2030,1.49212,gcam-v7.1 +SSP4,Africa_Eastern,2035,1.55658,gcam-v7.1 +SSP4,Africa_Eastern,2040,1.6115,gcam-v7.1 +SSP4,Africa_Eastern,2045,1.65675,gcam-v7.1 +SSP4,Africa_Eastern,2050,1.68445,gcam-v7.1 +SSP4,Africa_Eastern,2055,1.71512,gcam-v7.1 +SSP4,Africa_Eastern,2060,1.74343,gcam-v7.1 +SSP4,Africa_Eastern,2065,1.7744,gcam-v7.1 +SSP4,Africa_Eastern,2070,1.80594,gcam-v7.1 +SSP4,Africa_Eastern,2075,1.83989,gcam-v7.1 +SSP4,Africa_Eastern,2080,1.87542,gcam-v7.1 +SSP4,Africa_Eastern,2085,1.91397,gcam-v7.1 +SSP4,Africa_Eastern,2090,1.95615,gcam-v7.1 +SSP4,Africa_Eastern,2095,2.00309,gcam-v7.1 +SSP4,Africa_Eastern,2100,2.05647,gcam-v7.1 +SSP4,Africa_Northern,1975,0,gcam-v7.1 +SSP4,Africa_Northern,1990,0,gcam-v7.1 +SSP4,Africa_Northern,2005,0,gcam-v7.1 +SSP4,Africa_Northern,2010,0,gcam-v7.1 +SSP4,Africa_Northern,2015,0,gcam-v7.1 +SSP4,Africa_Northern,2020,1.12133,gcam-v7.1 +SSP4,Africa_Northern,2025,1.34444,gcam-v7.1 +SSP4,Africa_Northern,2030,1.49858,gcam-v7.1 +SSP4,Africa_Northern,2035,1.57985,gcam-v7.1 +SSP4,Africa_Northern,2040,1.6455,gcam-v7.1 +SSP4,Africa_Northern,2045,1.68314,gcam-v7.1 +SSP4,Africa_Northern,2050,1.7302,gcam-v7.1 +SSP4,Africa_Northern,2055,1.80309,gcam-v7.1 +SSP4,Africa_Northern,2060,1.8839,gcam-v7.1 +SSP4,Africa_Northern,2065,1.9677,gcam-v7.1 +SSP4,Africa_Northern,2070,2.05622,gcam-v7.1 +SSP4,Africa_Northern,2075,2.15401,gcam-v7.1 +SSP4,Africa_Northern,2080,2.26465,gcam-v7.1 +SSP4,Africa_Northern,2085,2.38136,gcam-v7.1 +SSP4,Africa_Northern,2090,2.49926,gcam-v7.1 +SSP4,Africa_Northern,2095,2.62378,gcam-v7.1 +SSP4,Africa_Northern,2100,2.75024,gcam-v7.1 +SSP4,Africa_Southern,1975,0,gcam-v7.1 +SSP4,Africa_Southern,1990,0,gcam-v7.1 +SSP4,Africa_Southern,2005,0,gcam-v7.1 +SSP4,Africa_Southern,2010,0,gcam-v7.1 +SSP4,Africa_Southern,2015,0,gcam-v7.1 +SSP4,Africa_Southern,2020,1.25435,gcam-v7.1 +SSP4,Africa_Southern,2025,1.55352,gcam-v7.1 +SSP4,Africa_Southern,2030,1.69556,gcam-v7.1 +SSP4,Africa_Southern,2035,1.76667,gcam-v7.1 +SSP4,Africa_Southern,2040,1.86125,gcam-v7.1 +SSP4,Africa_Southern,2045,1.97943,gcam-v7.1 +SSP4,Africa_Southern,2050,2.10861,gcam-v7.1 +SSP4,Africa_Southern,2055,2.24175,gcam-v7.1 +SSP4,Africa_Southern,2060,2.36818,gcam-v7.1 +SSP4,Africa_Southern,2065,2.48491,gcam-v7.1 +SSP4,Africa_Southern,2070,2.59532,gcam-v7.1 +SSP4,Africa_Southern,2075,2.69635,gcam-v7.1 +SSP4,Africa_Southern,2080,2.78935,gcam-v7.1 +SSP4,Africa_Southern,2085,2.88081,gcam-v7.1 +SSP4,Africa_Southern,2090,2.97248,gcam-v7.1 +SSP4,Africa_Southern,2095,3.07024,gcam-v7.1 +SSP4,Africa_Southern,2100,3.18236,gcam-v7.1 +SSP4,Africa_Western,1975,0,gcam-v7.1 +SSP4,Africa_Western,1990,0,gcam-v7.1 +SSP4,Africa_Western,2005,0,gcam-v7.1 +SSP4,Africa_Western,2010,0,gcam-v7.1 +SSP4,Africa_Western,2015,0,gcam-v7.1 +SSP4,Africa_Western,2020,1.19289,gcam-v7.1 +SSP4,Africa_Western,2025,1.36866,gcam-v7.1 +SSP4,Africa_Western,2030,1.44183,gcam-v7.1 +SSP4,Africa_Western,2035,1.4638,gcam-v7.1 +SSP4,Africa_Western,2040,1.47854,gcam-v7.1 +SSP4,Africa_Western,2045,1.50113,gcam-v7.1 +SSP4,Africa_Western,2050,1.5277,gcam-v7.1 +SSP4,Africa_Western,2055,1.56414,gcam-v7.1 +SSP4,Africa_Western,2060,1.60706,gcam-v7.1 +SSP4,Africa_Western,2065,1.65626,gcam-v7.1 +SSP4,Africa_Western,2070,1.71059,gcam-v7.1 +SSP4,Africa_Western,2075,1.77245,gcam-v7.1 +SSP4,Africa_Western,2080,1.83691,gcam-v7.1 +SSP4,Africa_Western,2085,1.90372,gcam-v7.1 +SSP4,Africa_Western,2090,1.97151,gcam-v7.1 +SSP4,Africa_Western,2095,2.04218,gcam-v7.1 +SSP4,Africa_Western,2100,2.12148,gcam-v7.1 +SSP4,Argentina,1975,0,gcam-v7.1 +SSP4,Argentina,1990,0,gcam-v7.1 +SSP4,Argentina,2005,0,gcam-v7.1 +SSP4,Argentina,2010,0,gcam-v7.1 +SSP4,Argentina,2015,0,gcam-v7.1 +SSP4,Argentina,2020,1.10212,gcam-v7.1 +SSP4,Argentina,2025,1.26772,gcam-v7.1 +SSP4,Argentina,2030,1.3482,gcam-v7.1 +SSP4,Argentina,2035,1.42097,gcam-v7.1 +SSP4,Argentina,2040,1.497,gcam-v7.1 +SSP4,Argentina,2045,1.57117,gcam-v7.1 +SSP4,Argentina,2050,1.63068,gcam-v7.1 +SSP4,Argentina,2055,1.69316,gcam-v7.1 +SSP4,Argentina,2060,1.76731,gcam-v7.1 +SSP4,Argentina,2065,1.84499,gcam-v7.1 +SSP4,Argentina,2070,1.92007,gcam-v7.1 +SSP4,Argentina,2075,1.99793,gcam-v7.1 +SSP4,Argentina,2080,2.08316,gcam-v7.1 +SSP4,Argentina,2085,2.17901,gcam-v7.1 +SSP4,Argentina,2090,2.28492,gcam-v7.1 +SSP4,Argentina,2095,2.40152,gcam-v7.1 +SSP4,Argentina,2100,2.52729,gcam-v7.1 +SSP4,Australia_NZ,1975,0,gcam-v7.1 +SSP4,Australia_NZ,1990,0,gcam-v7.1 +SSP4,Australia_NZ,2005,0,gcam-v7.1 +SSP4,Australia_NZ,2010,0,gcam-v7.1 +SSP4,Australia_NZ,2015,0,gcam-v7.1 +SSP4,Australia_NZ,2020,1.11857,gcam-v7.1 +SSP4,Australia_NZ,2025,1.2268,gcam-v7.1 +SSP4,Australia_NZ,2030,1.32258,gcam-v7.1 +SSP4,Australia_NZ,2035,1.42421,gcam-v7.1 +SSP4,Australia_NZ,2040,1.5391,gcam-v7.1 +SSP4,Australia_NZ,2045,1.64764,gcam-v7.1 +SSP4,Australia_NZ,2050,1.75585,gcam-v7.1 +SSP4,Australia_NZ,2055,1.87381,gcam-v7.1 +SSP4,Australia_NZ,2060,1.99788,gcam-v7.1 +SSP4,Australia_NZ,2065,2.1253,gcam-v7.1 +SSP4,Australia_NZ,2070,2.25464,gcam-v7.1 +SSP4,Australia_NZ,2075,2.39441,gcam-v7.1 +SSP4,Australia_NZ,2080,2.54594,gcam-v7.1 +SSP4,Australia_NZ,2085,2.71277,gcam-v7.1 +SSP4,Australia_NZ,2090,2.8921,gcam-v7.1 +SSP4,Australia_NZ,2095,3.08042,gcam-v7.1 +SSP4,Australia_NZ,2100,3.27616,gcam-v7.1 +SSP4,Brazil,1975,0,gcam-v7.1 +SSP4,Brazil,1990,0,gcam-v7.1 +SSP4,Brazil,2005,0,gcam-v7.1 +SSP4,Brazil,2010,0,gcam-v7.1 +SSP4,Brazil,2015,0,gcam-v7.1 +SSP4,Brazil,2020,1.17597,gcam-v7.1 +SSP4,Brazil,2025,1.34521,gcam-v7.1 +SSP4,Brazil,2030,1.47112,gcam-v7.1 +SSP4,Brazil,2035,1.57954,gcam-v7.1 +SSP4,Brazil,2040,1.69426,gcam-v7.1 +SSP4,Brazil,2045,1.81128,gcam-v7.1 +SSP4,Brazil,2050,1.92895,gcam-v7.1 +SSP4,Brazil,2055,2.05155,gcam-v7.1 +SSP4,Brazil,2060,2.1846,gcam-v7.1 +SSP4,Brazil,2065,2.33203,gcam-v7.1 +SSP4,Brazil,2070,2.49173,gcam-v7.1 +SSP4,Brazil,2075,2.64787,gcam-v7.1 +SSP4,Brazil,2080,2.81657,gcam-v7.1 +SSP4,Brazil,2085,3.00313,gcam-v7.1 +SSP4,Brazil,2090,3.20966,gcam-v7.1 +SSP4,Brazil,2095,3.43498,gcam-v7.1 +SSP4,Brazil,2100,3.6778,gcam-v7.1 +SSP4,Canada,1975,0,gcam-v7.1 +SSP4,Canada,1990,0,gcam-v7.1 +SSP4,Canada,2005,0,gcam-v7.1 +SSP4,Canada,2010,0,gcam-v7.1 +SSP4,Canada,2015,0,gcam-v7.1 +SSP4,Canada,2020,1.05789,gcam-v7.1 +SSP4,Canada,2025,1.13187,gcam-v7.1 +SSP4,Canada,2030,1.20996,gcam-v7.1 +SSP4,Canada,2035,1.29523,gcam-v7.1 +SSP4,Canada,2040,1.38879,gcam-v7.1 +SSP4,Canada,2045,1.48209,gcam-v7.1 +SSP4,Canada,2050,1.58974,gcam-v7.1 +SSP4,Canada,2055,1.70781,gcam-v7.1 +SSP4,Canada,2060,1.83427,gcam-v7.1 +SSP4,Canada,2065,1.96204,gcam-v7.1 +SSP4,Canada,2070,2.09358,gcam-v7.1 +SSP4,Canada,2075,2.23268,gcam-v7.1 +SSP4,Canada,2080,2.38435,gcam-v7.1 +SSP4,Canada,2085,2.55477,gcam-v7.1 +SSP4,Canada,2090,2.74034,gcam-v7.1 +SSP4,Canada,2095,2.93469,gcam-v7.1 +SSP4,Canada,2100,3.1335,gcam-v7.1 +SSP4,Central America and Caribbean,1975,0,gcam-v7.1 +SSP4,Central America and Caribbean,1990,0,gcam-v7.1 +SSP4,Central America and Caribbean,2005,0,gcam-v7.1 +SSP4,Central America and Caribbean,2010,0,gcam-v7.1 +SSP4,Central America and Caribbean,2015,0,gcam-v7.1 +SSP4,Central America and Caribbean,2020,1.08055,gcam-v7.1 +SSP4,Central America and Caribbean,2025,1.1744,gcam-v7.1 +SSP4,Central America and Caribbean,2030,1.2553,gcam-v7.1 +SSP4,Central America and Caribbean,2035,1.32299,gcam-v7.1 +SSP4,Central America and Caribbean,2040,1.37829,gcam-v7.1 +SSP4,Central America and Caribbean,2045,1.41476,gcam-v7.1 +SSP4,Central America and Caribbean,2050,1.44048,gcam-v7.1 +SSP4,Central America and Caribbean,2055,1.46758,gcam-v7.1 +SSP4,Central America and Caribbean,2060,1.49811,gcam-v7.1 +SSP4,Central America and Caribbean,2065,1.5262,gcam-v7.1 +SSP4,Central America and Caribbean,2070,1.55414,gcam-v7.1 +SSP4,Central America and Caribbean,2075,1.58262,gcam-v7.1 +SSP4,Central America and Caribbean,2080,1.61265,gcam-v7.1 +SSP4,Central America and Caribbean,2085,1.64398,gcam-v7.1 +SSP4,Central America and Caribbean,2090,1.67766,gcam-v7.1 +SSP4,Central America and Caribbean,2095,1.71337,gcam-v7.1 +SSP4,Central America and Caribbean,2100,1.75115,gcam-v7.1 +SSP4,Central Asia,1975,0,gcam-v7.1 +SSP4,Central Asia,1990,0,gcam-v7.1 +SSP4,Central Asia,2005,0,gcam-v7.1 +SSP4,Central Asia,2010,0,gcam-v7.1 +SSP4,Central Asia,2015,0,gcam-v7.1 +SSP4,Central Asia,2020,1.0835,gcam-v7.1 +SSP4,Central Asia,2025,1.31164,gcam-v7.1 +SSP4,Central Asia,2030,1.46458,gcam-v7.1 +SSP4,Central Asia,2035,1.60355,gcam-v7.1 +SSP4,Central Asia,2040,1.75348,gcam-v7.1 +SSP4,Central Asia,2045,1.89056,gcam-v7.1 +SSP4,Central Asia,2050,2.00545,gcam-v7.1 +SSP4,Central Asia,2055,2.12056,gcam-v7.1 +SSP4,Central Asia,2060,2.24964,gcam-v7.1 +SSP4,Central Asia,2065,2.38486,gcam-v7.1 +SSP4,Central Asia,2070,2.52216,gcam-v7.1 +SSP4,Central Asia,2075,2.67093,gcam-v7.1 +SSP4,Central Asia,2080,2.83578,gcam-v7.1 +SSP4,Central Asia,2085,3.00489,gcam-v7.1 +SSP4,Central Asia,2090,3.1776,gcam-v7.1 +SSP4,Central Asia,2095,3.35118,gcam-v7.1 +SSP4,Central Asia,2100,3.52268,gcam-v7.1 +SSP4,China,1975,0,gcam-v7.1 +SSP4,China,1990,0,gcam-v7.1 +SSP4,China,2005,0,gcam-v7.1 +SSP4,China,2010,0,gcam-v7.1 +SSP4,China,2015,0,gcam-v7.1 +SSP4,China,2020,1.3512,gcam-v7.1 +SSP4,China,2025,1.6569,gcam-v7.1 +SSP4,China,2030,1.90306,gcam-v7.1 +SSP4,China,2035,2.14167,gcam-v7.1 +SSP4,China,2040,2.3893,gcam-v7.1 +SSP4,China,2045,2.59052,gcam-v7.1 +SSP4,China,2050,2.79237,gcam-v7.1 +SSP4,China,2055,3.04262,gcam-v7.1 +SSP4,China,2060,3.29798,gcam-v7.1 +SSP4,China,2065,3.55448,gcam-v7.1 +SSP4,China,2070,3.79503,gcam-v7.1 +SSP4,China,2075,4.04429,gcam-v7.1 +SSP4,China,2080,4.28422,gcam-v7.1 +SSP4,China,2085,4.54168,gcam-v7.1 +SSP4,China,2090,4.80879,gcam-v7.1 +SSP4,China,2095,5.08566,gcam-v7.1 +SSP4,China,2100,5.36624,gcam-v7.1 +SSP4,Colombia,1975,0,gcam-v7.1 +SSP4,Colombia,1990,0,gcam-v7.1 +SSP4,Colombia,2005,0,gcam-v7.1 +SSP4,Colombia,2010,0,gcam-v7.1 +SSP4,Colombia,2015,0,gcam-v7.1 +SSP4,Colombia,2020,1.1292,gcam-v7.1 +SSP4,Colombia,2025,1.19502,gcam-v7.1 +SSP4,Colombia,2030,1.27687,gcam-v7.1 +SSP4,Colombia,2035,1.37167,gcam-v7.1 +SSP4,Colombia,2040,1.47715,gcam-v7.1 +SSP4,Colombia,2045,1.58742,gcam-v7.1 +SSP4,Colombia,2050,1.70537,gcam-v7.1 +SSP4,Colombia,2055,1.83415,gcam-v7.1 +SSP4,Colombia,2060,1.97832,gcam-v7.1 +SSP4,Colombia,2065,2.12944,gcam-v7.1 +SSP4,Colombia,2070,2.28727,gcam-v7.1 +SSP4,Colombia,2075,2.45529,gcam-v7.1 +SSP4,Colombia,2080,2.63369,gcam-v7.1 +SSP4,Colombia,2085,2.82363,gcam-v7.1 +SSP4,Colombia,2090,3.0286,gcam-v7.1 +SSP4,Colombia,2095,3.24797,gcam-v7.1 +SSP4,Colombia,2100,3.48042,gcam-v7.1 +SSP4,EU-12,1975,0,gcam-v7.1 +SSP4,EU-12,1990,0,gcam-v7.1 +SSP4,EU-12,2005,0,gcam-v7.1 +SSP4,EU-12,2010,0,gcam-v7.1 +SSP4,EU-12,2015,0,gcam-v7.1 +SSP4,EU-12,2020,1.11542,gcam-v7.1 +SSP4,EU-12,2025,1.26193,gcam-v7.1 +SSP4,EU-12,2030,1.37786,gcam-v7.1 +SSP4,EU-12,2035,1.49121,gcam-v7.1 +SSP4,EU-12,2040,1.60423,gcam-v7.1 +SSP4,EU-12,2045,1.72222,gcam-v7.1 +SSP4,EU-12,2050,1.84323,gcam-v7.1 +SSP4,EU-12,2055,1.9749,gcam-v7.1 +SSP4,EU-12,2060,2.10538,gcam-v7.1 +SSP4,EU-12,2065,2.2283,gcam-v7.1 +SSP4,EU-12,2070,2.34305,gcam-v7.1 +SSP4,EU-12,2075,2.47162,gcam-v7.1 +SSP4,EU-12,2080,2.6151,gcam-v7.1 +SSP4,EU-12,2085,2.77027,gcam-v7.1 +SSP4,EU-12,2090,2.9354,gcam-v7.1 +SSP4,EU-12,2095,3.10672,gcam-v7.1 +SSP4,EU-12,2100,3.27927,gcam-v7.1 +SSP4,EU-15,1975,0,gcam-v7.1 +SSP4,EU-15,1990,0,gcam-v7.1 +SSP4,EU-15,2005,0,gcam-v7.1 +SSP4,EU-15,2010,0,gcam-v7.1 +SSP4,EU-15,2015,0,gcam-v7.1 +SSP4,EU-15,2020,1.06639,gcam-v7.1 +SSP4,EU-15,2025,1.15137,gcam-v7.1 +SSP4,EU-15,2030,1.24909,gcam-v7.1 +SSP4,EU-15,2035,1.35822,gcam-v7.1 +SSP4,EU-15,2040,1.46428,gcam-v7.1 +SSP4,EU-15,2045,1.56395,gcam-v7.1 +SSP4,EU-15,2050,1.6592,gcam-v7.1 +SSP4,EU-15,2055,1.75551,gcam-v7.1 +SSP4,EU-15,2060,1.85121,gcam-v7.1 +SSP4,EU-15,2065,1.94652,gcam-v7.1 +SSP4,EU-15,2070,2.0435,gcam-v7.1 +SSP4,EU-15,2075,2.14819,gcam-v7.1 +SSP4,EU-15,2080,2.2602,gcam-v7.1 +SSP4,EU-15,2085,2.38,gcam-v7.1 +SSP4,EU-15,2090,2.50871,gcam-v7.1 +SSP4,EU-15,2095,2.64688,gcam-v7.1 +SSP4,EU-15,2100,2.79211,gcam-v7.1 +SSP4,Europe_Eastern,1975,0,gcam-v7.1 +SSP4,Europe_Eastern,1990,0,gcam-v7.1 +SSP4,Europe_Eastern,2005,0,gcam-v7.1 +SSP4,Europe_Eastern,2010,0,gcam-v7.1 +SSP4,Europe_Eastern,2015,0,gcam-v7.1 +SSP4,Europe_Eastern,2020,1.0125,gcam-v7.1 +SSP4,Europe_Eastern,2025,1.16946,gcam-v7.1 +SSP4,Europe_Eastern,2030,1.31093,gcam-v7.1 +SSP4,Europe_Eastern,2035,1.44339,gcam-v7.1 +SSP4,Europe_Eastern,2040,1.58319,gcam-v7.1 +SSP4,Europe_Eastern,2045,1.72422,gcam-v7.1 +SSP4,Europe_Eastern,2050,1.8829,gcam-v7.1 +SSP4,Europe_Eastern,2055,2.06025,gcam-v7.1 +SSP4,Europe_Eastern,2060,2.24671,gcam-v7.1 +SSP4,Europe_Eastern,2065,2.47114,gcam-v7.1 +SSP4,Europe_Eastern,2070,2.66907,gcam-v7.1 +SSP4,Europe_Eastern,2075,2.88324,gcam-v7.1 +SSP4,Europe_Eastern,2080,3.12122,gcam-v7.1 +SSP4,Europe_Eastern,2085,3.37234,gcam-v7.1 +SSP4,Europe_Eastern,2090,3.63449,gcam-v7.1 +SSP4,Europe_Eastern,2095,3.9075,gcam-v7.1 +SSP4,Europe_Eastern,2100,4.18895,gcam-v7.1 +SSP4,Europe_Non_EU,1975,0,gcam-v7.1 +SSP4,Europe_Non_EU,1990,0,gcam-v7.1 +SSP4,Europe_Non_EU,2005,0,gcam-v7.1 +SSP4,Europe_Non_EU,2010,0,gcam-v7.1 +SSP4,Europe_Non_EU,2015,0,gcam-v7.1 +SSP4,Europe_Non_EU,2020,1.11028,gcam-v7.1 +SSP4,Europe_Non_EU,2025,1.1803,gcam-v7.1 +SSP4,Europe_Non_EU,2030,1.22968,gcam-v7.1 +SSP4,Europe_Non_EU,2035,1.27903,gcam-v7.1 +SSP4,Europe_Non_EU,2040,1.33349,gcam-v7.1 +SSP4,Europe_Non_EU,2045,1.38709,gcam-v7.1 +SSP4,Europe_Non_EU,2050,1.44126,gcam-v7.1 +SSP4,Europe_Non_EU,2055,1.49756,gcam-v7.1 +SSP4,Europe_Non_EU,2060,1.55935,gcam-v7.1 +SSP4,Europe_Non_EU,2065,1.6236,gcam-v7.1 +SSP4,Europe_Non_EU,2070,1.68671,gcam-v7.1 +SSP4,Europe_Non_EU,2075,1.7537,gcam-v7.1 +SSP4,Europe_Non_EU,2080,1.82492,gcam-v7.1 +SSP4,Europe_Non_EU,2085,1.90079,gcam-v7.1 +SSP4,Europe_Non_EU,2090,1.98351,gcam-v7.1 +SSP4,Europe_Non_EU,2095,2.0749,gcam-v7.1 +SSP4,Europe_Non_EU,2100,2.17355,gcam-v7.1 +SSP4,European Free Trade Association,1975,0,gcam-v7.1 +SSP4,European Free Trade Association,1990,0,gcam-v7.1 +SSP4,European Free Trade Association,2005,0,gcam-v7.1 +SSP4,European Free Trade Association,2010,0,gcam-v7.1 +SSP4,European Free Trade Association,2015,0,gcam-v7.1 +SSP4,European Free Trade Association,2020,1.08101,gcam-v7.1 +SSP4,European Free Trade Association,2025,1.1747,gcam-v7.1 +SSP4,European Free Trade Association,2030,1.28807,gcam-v7.1 +SSP4,European Free Trade Association,2035,1.40797,gcam-v7.1 +SSP4,European Free Trade Association,2040,1.51481,gcam-v7.1 +SSP4,European Free Trade Association,2045,1.60825,gcam-v7.1 +SSP4,European Free Trade Association,2050,1.70862,gcam-v7.1 +SSP4,European Free Trade Association,2055,1.81804,gcam-v7.1 +SSP4,European Free Trade Association,2060,1.9377,gcam-v7.1 +SSP4,European Free Trade Association,2065,2.05994,gcam-v7.1 +SSP4,European Free Trade Association,2070,2.1838,gcam-v7.1 +SSP4,European Free Trade Association,2075,2.31544,gcam-v7.1 +SSP4,European Free Trade Association,2080,2.45917,gcam-v7.1 +SSP4,European Free Trade Association,2085,2.61745,gcam-v7.1 +SSP4,European Free Trade Association,2090,2.79248,gcam-v7.1 +SSP4,European Free Trade Association,2095,2.98151,gcam-v7.1 +SSP4,European Free Trade Association,2100,3.17732,gcam-v7.1 +SSP4,India,1975,0,gcam-v7.1 +SSP4,India,1990,0,gcam-v7.1 +SSP4,India,2005,0,gcam-v7.1 +SSP4,India,2010,0,gcam-v7.1 +SSP4,India,2015,0,gcam-v7.1 +SSP4,India,2020,1.20189,gcam-v7.1 +SSP4,India,2025,1.42172,gcam-v7.1 +SSP4,India,2030,1.58928,gcam-v7.1 +SSP4,India,2035,1.72582,gcam-v7.1 +SSP4,India,2040,1.85932,gcam-v7.1 +SSP4,India,2045,1.99161,gcam-v7.1 +SSP4,India,2050,2.13204,gcam-v7.1 +SSP4,India,2055,2.29058,gcam-v7.1 +SSP4,India,2060,2.46566,gcam-v7.1 +SSP4,India,2065,2.65045,gcam-v7.1 +SSP4,India,2070,2.84334,gcam-v7.1 +SSP4,India,2075,3.04871,gcam-v7.1 +SSP4,India,2080,3.26818,gcam-v7.1 +SSP4,India,2085,3.49918,gcam-v7.1 +SSP4,India,2090,3.7411,gcam-v7.1 +SSP4,India,2095,3.99486,gcam-v7.1 +SSP4,India,2100,4.26557,gcam-v7.1 +SSP4,Indonesia,1975,0,gcam-v7.1 +SSP4,Indonesia,1990,0,gcam-v7.1 +SSP4,Indonesia,2005,0,gcam-v7.1 +SSP4,Indonesia,2010,0,gcam-v7.1 +SSP4,Indonesia,2015,0,gcam-v7.1 +SSP4,Indonesia,2020,1.22923,gcam-v7.1 +SSP4,Indonesia,2025,1.46317,gcam-v7.1 +SSP4,Indonesia,2030,1.65681,gcam-v7.1 +SSP4,Indonesia,2035,1.82319,gcam-v7.1 +SSP4,Indonesia,2040,2.00393,gcam-v7.1 +SSP4,Indonesia,2045,2.17943,gcam-v7.1 +SSP4,Indonesia,2050,2.35811,gcam-v7.1 +SSP4,Indonesia,2055,2.54932,gcam-v7.1 +SSP4,Indonesia,2060,2.75843,gcam-v7.1 +SSP4,Indonesia,2065,2.97854,gcam-v7.1 +SSP4,Indonesia,2070,3.2208,gcam-v7.1 +SSP4,Indonesia,2075,3.47876,gcam-v7.1 +SSP4,Indonesia,2080,3.75451,gcam-v7.1 +SSP4,Indonesia,2085,4.04586,gcam-v7.1 +SSP4,Indonesia,2090,4.35954,gcam-v7.1 +SSP4,Indonesia,2095,4.69449,gcam-v7.1 +SSP4,Indonesia,2100,5.04985,gcam-v7.1 +SSP4,Japan,1975,0,gcam-v7.1 +SSP4,Japan,1990,0,gcam-v7.1 +SSP4,Japan,2005,0,gcam-v7.1 +SSP4,Japan,2010,0,gcam-v7.1 +SSP4,Japan,2015,0,gcam-v7.1 +SSP4,Japan,2020,1.03726,gcam-v7.1 +SSP4,Japan,2025,1.11407,gcam-v7.1 +SSP4,Japan,2030,1.20671,gcam-v7.1 +SSP4,Japan,2035,1.31182,gcam-v7.1 +SSP4,Japan,2040,1.43077,gcam-v7.1 +SSP4,Japan,2045,1.54564,gcam-v7.1 +SSP4,Japan,2050,1.65435,gcam-v7.1 +SSP4,Japan,2055,1.76287,gcam-v7.1 +SSP4,Japan,2060,1.87056,gcam-v7.1 +SSP4,Japan,2065,1.98217,gcam-v7.1 +SSP4,Japan,2070,2.09391,gcam-v7.1 +SSP4,Japan,2075,2.20788,gcam-v7.1 +SSP4,Japan,2080,2.3298,gcam-v7.1 +SSP4,Japan,2085,2.45109,gcam-v7.1 +SSP4,Japan,2090,2.57686,gcam-v7.1 +SSP4,Japan,2095,2.7066,gcam-v7.1 +SSP4,Japan,2100,2.84149,gcam-v7.1 +SSP4,Mexico,1975,0,gcam-v7.1 +SSP4,Mexico,1990,0,gcam-v7.1 +SSP4,Mexico,2005,0,gcam-v7.1 +SSP4,Mexico,2010,0,gcam-v7.1 +SSP4,Mexico,2015,0,gcam-v7.1 +SSP4,Mexico,2020,1.05404,gcam-v7.1 +SSP4,Mexico,2025,1.14182,gcam-v7.1 +SSP4,Mexico,2030,1.24154,gcam-v7.1 +SSP4,Mexico,2035,1.34465,gcam-v7.1 +SSP4,Mexico,2040,1.43247,gcam-v7.1 +SSP4,Mexico,2045,1.50616,gcam-v7.1 +SSP4,Mexico,2050,1.57029,gcam-v7.1 +SSP4,Mexico,2055,1.64076,gcam-v7.1 +SSP4,Mexico,2060,1.72003,gcam-v7.1 +SSP4,Mexico,2065,1.79965,gcam-v7.1 +SSP4,Mexico,2070,1.88245,gcam-v7.1 +SSP4,Mexico,2075,1.96788,gcam-v7.1 +SSP4,Mexico,2080,2.061,gcam-v7.1 +SSP4,Mexico,2085,2.1621,gcam-v7.1 +SSP4,Mexico,2090,2.27029,gcam-v7.1 +SSP4,Mexico,2095,2.38648,gcam-v7.1 +SSP4,Mexico,2100,2.51134,gcam-v7.1 +SSP4,Middle East,1975,0,gcam-v7.1 +SSP4,Middle East,1990,0,gcam-v7.1 +SSP4,Middle East,2005,0,gcam-v7.1 +SSP4,Middle East,2010,0,gcam-v7.1 +SSP4,Middle East,2015,0,gcam-v7.1 +SSP4,Middle East,2020,1.14492,gcam-v7.1 +SSP4,Middle East,2025,1.36983,gcam-v7.1 +SSP4,Middle East,2030,1.48305,gcam-v7.1 +SSP4,Middle East,2035,1.57424,gcam-v7.1 +SSP4,Middle East,2040,1.67348,gcam-v7.1 +SSP4,Middle East,2045,1.75632,gcam-v7.1 +SSP4,Middle East,2050,1.82381,gcam-v7.1 +SSP4,Middle East,2055,1.87822,gcam-v7.1 +SSP4,Middle East,2060,1.92854,gcam-v7.1 +SSP4,Middle East,2065,1.98345,gcam-v7.1 +SSP4,Middle East,2070,2.04845,gcam-v7.1 +SSP4,Middle East,2075,2.12832,gcam-v7.1 +SSP4,Middle East,2080,2.21894,gcam-v7.1 +SSP4,Middle East,2085,2.31994,gcam-v7.1 +SSP4,Middle East,2090,2.42945,gcam-v7.1 +SSP4,Middle East,2095,2.54965,gcam-v7.1 +SSP4,Middle East,2100,2.68481,gcam-v7.1 +SSP4,Pakistan,1975,0,gcam-v7.1 +SSP4,Pakistan,1990,0,gcam-v7.1 +SSP4,Pakistan,2005,0,gcam-v7.1 +SSP4,Pakistan,2010,0,gcam-v7.1 +SSP4,Pakistan,2015,0,gcam-v7.1 +SSP4,Pakistan,2020,1.03932,gcam-v7.1 +SSP4,Pakistan,2025,1.12646,gcam-v7.1 +SSP4,Pakistan,2030,1.19217,gcam-v7.1 +SSP4,Pakistan,2035,1.22726,gcam-v7.1 +SSP4,Pakistan,2040,1.26027,gcam-v7.1 +SSP4,Pakistan,2045,1.29088,gcam-v7.1 +SSP4,Pakistan,2050,1.32068,gcam-v7.1 +SSP4,Pakistan,2055,1.35521,gcam-v7.1 +SSP4,Pakistan,2060,1.38975,gcam-v7.1 +SSP4,Pakistan,2065,1.42674,gcam-v7.1 +SSP4,Pakistan,2070,1.46869,gcam-v7.1 +SSP4,Pakistan,2075,1.51652,gcam-v7.1 +SSP4,Pakistan,2080,1.56966,gcam-v7.1 +SSP4,Pakistan,2085,1.62625,gcam-v7.1 +SSP4,Pakistan,2090,1.68371,gcam-v7.1 +SSP4,Pakistan,2095,1.74251,gcam-v7.1 +SSP4,Pakistan,2100,1.80931,gcam-v7.1 +SSP4,Russia,1975,0,gcam-v7.1 +SSP4,Russia,1990,0,gcam-v7.1 +SSP4,Russia,2005,0,gcam-v7.1 +SSP4,Russia,2010,0,gcam-v7.1 +SSP4,Russia,2015,0,gcam-v7.1 +SSP4,Russia,2020,1.18856,gcam-v7.1 +SSP4,Russia,2025,1.41293,gcam-v7.1 +SSP4,Russia,2030,1.67507,gcam-v7.1 +SSP4,Russia,2035,1.92318,gcam-v7.1 +SSP4,Russia,2040,2.15516,gcam-v7.1 +SSP4,Russia,2045,2.36954,gcam-v7.1 +SSP4,Russia,2050,2.58348,gcam-v7.1 +SSP4,Russia,2055,2.81345,gcam-v7.1 +SSP4,Russia,2060,3.02671,gcam-v7.1 +SSP4,Russia,2065,3.20663,gcam-v7.1 +SSP4,Russia,2070,3.41029,gcam-v7.1 +SSP4,Russia,2075,3.64831,gcam-v7.1 +SSP4,Russia,2080,3.92237,gcam-v7.1 +SSP4,Russia,2085,4.19669,gcam-v7.1 +SSP4,Russia,2090,4.46274,gcam-v7.1 +SSP4,Russia,2095,4.71847,gcam-v7.1 +SSP4,Russia,2100,4.97165,gcam-v7.1 +SSP4,South Africa,1975,0,gcam-v7.1 +SSP4,South Africa,1990,0,gcam-v7.1 +SSP4,South Africa,2005,0,gcam-v7.1 +SSP4,South Africa,2010,0,gcam-v7.1 +SSP4,South Africa,2015,0,gcam-v7.1 +SSP4,South Africa,2020,1.17679,gcam-v7.1 +SSP4,South Africa,2025,1.37688,gcam-v7.1 +SSP4,South Africa,2030,1.53135,gcam-v7.1 +SSP4,South Africa,2035,1.65172,gcam-v7.1 +SSP4,South Africa,2040,1.75697,gcam-v7.1 +SSP4,South Africa,2045,1.83609,gcam-v7.1 +SSP4,South Africa,2050,1.90955,gcam-v7.1 +SSP4,South Africa,2055,1.9967,gcam-v7.1 +SSP4,South Africa,2060,2.0964,gcam-v7.1 +SSP4,South Africa,2065,2.20011,gcam-v7.1 +SSP4,South Africa,2070,2.30678,gcam-v7.1 +SSP4,South Africa,2075,2.41977,gcam-v7.1 +SSP4,South Africa,2080,2.5453,gcam-v7.1 +SSP4,South Africa,2085,2.67846,gcam-v7.1 +SSP4,South Africa,2090,2.82376,gcam-v7.1 +SSP4,South Africa,2095,2.98125,gcam-v7.1 +SSP4,South Africa,2100,3.154,gcam-v7.1 +SSP4,South America_Northern,1975,0,gcam-v7.1 +SSP4,South America_Northern,1990,0,gcam-v7.1 +SSP4,South America_Northern,2005,0,gcam-v7.1 +SSP4,South America_Northern,2010,0,gcam-v7.1 +SSP4,South America_Northern,2015,0,gcam-v7.1 +SSP4,South America_Northern,2020,0.877714,gcam-v7.1 +SSP4,South America_Northern,2025,0.895667,gcam-v7.1 +SSP4,South America_Northern,2030,0.944051,gcam-v7.1 +SSP4,South America_Northern,2035,1.06583,gcam-v7.1 +SSP4,South America_Northern,2040,1.27822,gcam-v7.1 +SSP4,South America_Northern,2045,1.49102,gcam-v7.1 +SSP4,South America_Northern,2050,1.71073,gcam-v7.1 +SSP4,South America_Northern,2055,1.93692,gcam-v7.1 +SSP4,South America_Northern,2060,2.14198,gcam-v7.1 +SSP4,South America_Northern,2065,2.32606,gcam-v7.1 +SSP4,South America_Northern,2070,2.50404,gcam-v7.1 +SSP4,South America_Northern,2075,2.69177,gcam-v7.1 +SSP4,South America_Northern,2080,2.89931,gcam-v7.1 +SSP4,South America_Northern,2085,3.12726,gcam-v7.1 +SSP4,South America_Northern,2090,3.37678,gcam-v7.1 +SSP4,South America_Northern,2095,3.64515,gcam-v7.1 +SSP4,South America_Northern,2100,3.93128,gcam-v7.1 +SSP4,South America_Southern,1975,0,gcam-v7.1 +SSP4,South America_Southern,1990,0,gcam-v7.1 +SSP4,South America_Southern,2005,0,gcam-v7.1 +SSP4,South America_Southern,2010,0,gcam-v7.1 +SSP4,South America_Southern,2015,0,gcam-v7.1 +SSP4,South America_Southern,2020,1.15512,gcam-v7.1 +SSP4,South America_Southern,2025,1.29252,gcam-v7.1 +SSP4,South America_Southern,2030,1.38711,gcam-v7.1 +SSP4,South America_Southern,2035,1.47223,gcam-v7.1 +SSP4,South America_Southern,2040,1.56258,gcam-v7.1 +SSP4,South America_Southern,2045,1.65325,gcam-v7.1 +SSP4,South America_Southern,2050,1.74835,gcam-v7.1 +SSP4,South America_Southern,2055,1.85465,gcam-v7.1 +SSP4,South America_Southern,2060,1.97653,gcam-v7.1 +SSP4,South America_Southern,2065,2.10719,gcam-v7.1 +SSP4,South America_Southern,2070,2.24649,gcam-v7.1 +SSP4,South America_Southern,2075,2.39429,gcam-v7.1 +SSP4,South America_Southern,2080,2.55034,gcam-v7.1 +SSP4,South America_Southern,2085,2.71524,gcam-v7.1 +SSP4,South America_Southern,2090,2.89105,gcam-v7.1 +SSP4,South America_Southern,2095,3.07934,gcam-v7.1 +SSP4,South America_Southern,2100,3.28086,gcam-v7.1 +SSP4,South Asia,1975,0,gcam-v7.1 +SSP4,South Asia,1990,0,gcam-v7.1 +SSP4,South Asia,2005,0,gcam-v7.1 +SSP4,South Asia,2010,0,gcam-v7.1 +SSP4,South Asia,2015,0,gcam-v7.1 +SSP4,South Asia,2020,1.11545,gcam-v7.1 +SSP4,South Asia,2025,1.20074,gcam-v7.1 +SSP4,South Asia,2030,1.22802,gcam-v7.1 +SSP4,South Asia,2035,1.20992,gcam-v7.1 +SSP4,South Asia,2040,1.19065,gcam-v7.1 +SSP4,South Asia,2045,1.17319,gcam-v7.1 +SSP4,South Asia,2050,1.15789,gcam-v7.1 +SSP4,South Asia,2055,1.14947,gcam-v7.1 +SSP4,South Asia,2060,1.14725,gcam-v7.1 +SSP4,South Asia,2065,1.14996,gcam-v7.1 +SSP4,South Asia,2070,1.15518,gcam-v7.1 +SSP4,South Asia,2075,1.16168,gcam-v7.1 +SSP4,South Asia,2080,1.17068,gcam-v7.1 +SSP4,South Asia,2085,1.18258,gcam-v7.1 +SSP4,South Asia,2090,1.19757,gcam-v7.1 +SSP4,South Asia,2095,1.21508,gcam-v7.1 +SSP4,South Asia,2100,1.23471,gcam-v7.1 +SSP4,South Korea,1975,0,gcam-v7.1 +SSP4,South Korea,1990,0,gcam-v7.1 +SSP4,South Korea,2005,0,gcam-v7.1 +SSP4,South Korea,2010,0,gcam-v7.1 +SSP4,South Korea,2015,0,gcam-v7.1 +SSP4,South Korea,2020,1.05659,gcam-v7.1 +SSP4,South Korea,2025,1.2459,gcam-v7.1 +SSP4,South Korea,2030,1.39407,gcam-v7.1 +SSP4,South Korea,2035,1.52443,gcam-v7.1 +SSP4,South Korea,2040,1.65374,gcam-v7.1 +SSP4,South Korea,2045,1.76391,gcam-v7.1 +SSP4,South Korea,2050,1.86312,gcam-v7.1 +SSP4,South Korea,2055,1.95306,gcam-v7.1 +SSP4,South Korea,2060,2.06412,gcam-v7.1 +SSP4,South Korea,2065,2.17875,gcam-v7.1 +SSP4,South Korea,2070,2.27005,gcam-v7.1 +SSP4,South Korea,2075,2.365,gcam-v7.1 +SSP4,South Korea,2080,2.4555,gcam-v7.1 +SSP4,South Korea,2085,2.55013,gcam-v7.1 +SSP4,South Korea,2090,2.65452,gcam-v7.1 +SSP4,South Korea,2095,2.77087,gcam-v7.1 +SSP4,South Korea,2100,2.88769,gcam-v7.1 +SSP4,Southeast Asia,1975,0,gcam-v7.1 +SSP4,Southeast Asia,1990,0,gcam-v7.1 +SSP4,Southeast Asia,2005,0,gcam-v7.1 +SSP4,Southeast Asia,2010,0,gcam-v7.1 +SSP4,Southeast Asia,2015,0,gcam-v7.1 +SSP4,Southeast Asia,2020,1.16177,gcam-v7.1 +SSP4,Southeast Asia,2025,1.31532,gcam-v7.1 +SSP4,Southeast Asia,2030,1.41178,gcam-v7.1 +SSP4,Southeast Asia,2035,1.45523,gcam-v7.1 +SSP4,Southeast Asia,2040,1.50163,gcam-v7.1 +SSP4,Southeast Asia,2045,1.53451,gcam-v7.1 +SSP4,Southeast Asia,2050,1.56742,gcam-v7.1 +SSP4,Southeast Asia,2055,1.60977,gcam-v7.1 +SSP4,Southeast Asia,2060,1.65926,gcam-v7.1 +SSP4,Southeast Asia,2065,1.70922,gcam-v7.1 +SSP4,Southeast Asia,2070,1.75965,gcam-v7.1 +SSP4,Southeast Asia,2075,1.80956,gcam-v7.1 +SSP4,Southeast Asia,2080,1.86149,gcam-v7.1 +SSP4,Southeast Asia,2085,1.91588,gcam-v7.1 +SSP4,Southeast Asia,2090,1.97138,gcam-v7.1 +SSP4,Southeast Asia,2095,2.02818,gcam-v7.1 +SSP4,Southeast Asia,2100,2.08611,gcam-v7.1 +SSP4,Taiwan,1975,0,gcam-v7.1 +SSP4,Taiwan,1990,0,gcam-v7.1 +SSP4,Taiwan,2005,0,gcam-v7.1 +SSP4,Taiwan,2010,0,gcam-v7.1 +SSP4,Taiwan,2015,0,gcam-v7.1 +SSP4,Taiwan,2020,1.16802,gcam-v7.1 +SSP4,Taiwan,2025,1.26054,gcam-v7.1 +SSP4,Taiwan,2030,1.32545,gcam-v7.1 +SSP4,Taiwan,2035,1.38004,gcam-v7.1 +SSP4,Taiwan,2040,1.42915,gcam-v7.1 +SSP4,Taiwan,2045,1.4608,gcam-v7.1 +SSP4,Taiwan,2050,1.47401,gcam-v7.1 +SSP4,Taiwan,2055,1.479,gcam-v7.1 +SSP4,Taiwan,2060,1.49119,gcam-v7.1 +SSP4,Taiwan,2065,1.55406,gcam-v7.1 +SSP4,Taiwan,2070,1.61323,gcam-v7.1 +SSP4,Taiwan,2075,1.66038,gcam-v7.1 +SSP4,Taiwan,2080,1.69716,gcam-v7.1 +SSP4,Taiwan,2085,1.72084,gcam-v7.1 +SSP4,Taiwan,2090,1.73427,gcam-v7.1 +SSP4,Taiwan,2095,1.73824,gcam-v7.1 +SSP4,Taiwan,2100,1.7337,gcam-v7.1 +SSP4,USA,1975,0,gcam-v7.1 +SSP4,USA,1990,0,gcam-v7.1 +SSP4,USA,2005,0,gcam-v7.1 +SSP4,USA,2010,0,gcam-v7.1 +SSP4,USA,2015,0,gcam-v7.1 +SSP4,USA,2020,1.10019,gcam-v7.1 +SSP4,USA,2025,1.20372,gcam-v7.1 +SSP4,USA,2030,1.29904,gcam-v7.1 +SSP4,USA,2035,1.38152,gcam-v7.1 +SSP4,USA,2040,1.45091,gcam-v7.1 +SSP4,USA,2045,1.50617,gcam-v7.1 +SSP4,USA,2050,1.56383,gcam-v7.1 +SSP4,USA,2055,1.62743,gcam-v7.1 +SSP4,USA,2060,1.69713,gcam-v7.1 +SSP4,USA,2065,1.76604,gcam-v7.1 +SSP4,USA,2070,1.83999,gcam-v7.1 +SSP4,USA,2075,1.92046,gcam-v7.1 +SSP4,USA,2080,2.00342,gcam-v7.1 +SSP4,USA,2085,2.09464,gcam-v7.1 +SSP4,USA,2090,2.19462,gcam-v7.1 +SSP4,USA,2095,2.30354,gcam-v7.1 +SSP4,USA,2100,2.41918,gcam-v7.1 +SSP5,Africa_Eastern,1975,0,gcam-v7.1 +SSP5,Africa_Eastern,1990,0,gcam-v7.1 +SSP5,Africa_Eastern,2005,0,gcam-v7.1 +SSP5,Africa_Eastern,2010,0,gcam-v7.1 +SSP5,Africa_Eastern,2015,0,gcam-v7.1 +SSP5,Africa_Eastern,2020,1.18797,gcam-v7.1 +SSP5,Africa_Eastern,2025,1.50028,gcam-v7.1 +SSP5,Africa_Eastern,2030,1.85008,gcam-v7.1 +SSP5,Africa_Eastern,2035,2.2068,gcam-v7.1 +SSP5,Africa_Eastern,2040,2.46999,gcam-v7.1 +SSP5,Africa_Eastern,2045,2.69407,gcam-v7.1 +SSP5,Africa_Eastern,2050,2.95258,gcam-v7.1 +SSP5,Africa_Eastern,2055,3.28686,gcam-v7.1 +SSP5,Africa_Eastern,2060,3.70465,gcam-v7.1 +SSP5,Africa_Eastern,2065,4.2092,gcam-v7.1 +SSP5,Africa_Eastern,2070,4.79917,gcam-v7.1 +SSP5,Africa_Eastern,2075,5.47278,gcam-v7.1 +SSP5,Africa_Eastern,2080,6.22973,gcam-v7.1 +SSP5,Africa_Eastern,2085,7.0666,gcam-v7.1 +SSP5,Africa_Eastern,2090,7.97649,gcam-v7.1 +SSP5,Africa_Eastern,2095,8.95763,gcam-v7.1 +SSP5,Africa_Eastern,2100,10.0097,gcam-v7.1 +SSP5,Africa_Northern,1975,0,gcam-v7.1 +SSP5,Africa_Northern,1990,0,gcam-v7.1 +SSP5,Africa_Northern,2005,0,gcam-v7.1 +SSP5,Africa_Northern,2010,0,gcam-v7.1 +SSP5,Africa_Northern,2015,0,gcam-v7.1 +SSP5,Africa_Northern,2020,1.12716,gcam-v7.1 +SSP5,Africa_Northern,2025,1.40233,gcam-v7.1 +SSP5,Africa_Northern,2030,1.6503,gcam-v7.1 +SSP5,Africa_Northern,2035,1.84934,gcam-v7.1 +SSP5,Africa_Northern,2040,1.97551,gcam-v7.1 +SSP5,Africa_Northern,2045,2.07046,gcam-v7.1 +SSP5,Africa_Northern,2050,2.1653,gcam-v7.1 +SSP5,Africa_Northern,2055,2.28807,gcam-v7.1 +SSP5,Africa_Northern,2060,2.43492,gcam-v7.1 +SSP5,Africa_Northern,2065,2.59866,gcam-v7.1 +SSP5,Africa_Northern,2070,2.77548,gcam-v7.1 +SSP5,Africa_Northern,2075,2.96298,gcam-v7.1 +SSP5,Africa_Northern,2080,3.17315,gcam-v7.1 +SSP5,Africa_Northern,2085,3.40444,gcam-v7.1 +SSP5,Africa_Northern,2090,3.65776,gcam-v7.1 +SSP5,Africa_Northern,2095,3.92486,gcam-v7.1 +SSP5,Africa_Northern,2100,4.21052,gcam-v7.1 +SSP5,Africa_Southern,1975,0,gcam-v7.1 +SSP5,Africa_Southern,1990,0,gcam-v7.1 +SSP5,Africa_Southern,2005,0,gcam-v7.1 +SSP5,Africa_Southern,2010,0,gcam-v7.1 +SSP5,Africa_Southern,2015,0,gcam-v7.1 +SSP5,Africa_Southern,2020,1.2971,gcam-v7.1 +SSP5,Africa_Southern,2025,1.7915,gcam-v7.1 +SSP5,Africa_Southern,2030,2.27618,gcam-v7.1 +SSP5,Africa_Southern,2035,2.7845,gcam-v7.1 +SSP5,Africa_Southern,2040,3.24506,gcam-v7.1 +SSP5,Africa_Southern,2045,3.63545,gcam-v7.1 +SSP5,Africa_Southern,2050,4.01454,gcam-v7.1 +SSP5,Africa_Southern,2055,4.4206,gcam-v7.1 +SSP5,Africa_Southern,2060,4.88031,gcam-v7.1 +SSP5,Africa_Southern,2065,5.40234,gcam-v7.1 +SSP5,Africa_Southern,2070,5.99929,gcam-v7.1 +SSP5,Africa_Southern,2075,6.67365,gcam-v7.1 +SSP5,Africa_Southern,2080,7.43852,gcam-v7.1 +SSP5,Africa_Southern,2085,8.29182,gcam-v7.1 +SSP5,Africa_Southern,2090,9.22888,gcam-v7.1 +SSP5,Africa_Southern,2095,10.2559,gcam-v7.1 +SSP5,Africa_Southern,2100,11.372,gcam-v7.1 +SSP5,Africa_Western,1975,0,gcam-v7.1 +SSP5,Africa_Western,1990,0,gcam-v7.1 +SSP5,Africa_Western,2005,0,gcam-v7.1 +SSP5,Africa_Western,2010,0,gcam-v7.1 +SSP5,Africa_Western,2015,0,gcam-v7.1 +SSP5,Africa_Western,2020,1.2082,gcam-v7.1 +SSP5,Africa_Western,2025,1.52628,gcam-v7.1 +SSP5,Africa_Western,2030,1.90323,gcam-v7.1 +SSP5,Africa_Western,2035,2.22689,gcam-v7.1 +SSP5,Africa_Western,2040,2.51658,gcam-v7.1 +SSP5,Africa_Western,2045,2.82404,gcam-v7.1 +SSP5,Africa_Western,2050,3.18767,gcam-v7.1 +SSP5,Africa_Western,2055,3.61631,gcam-v7.1 +SSP5,Africa_Western,2060,4.11887,gcam-v7.1 +SSP5,Africa_Western,2065,4.70172,gcam-v7.1 +SSP5,Africa_Western,2070,5.36447,gcam-v7.1 +SSP5,Africa_Western,2075,6.10861,gcam-v7.1 +SSP5,Africa_Western,2080,6.94149,gcam-v7.1 +SSP5,Africa_Western,2085,7.85311,gcam-v7.1 +SSP5,Africa_Western,2090,8.8381,gcam-v7.1 +SSP5,Africa_Western,2095,9.90309,gcam-v7.1 +SSP5,Africa_Western,2100,11.0482,gcam-v7.1 +SSP5,Argentina,1975,0,gcam-v7.1 +SSP5,Argentina,1990,0,gcam-v7.1 +SSP5,Argentina,2005,0,gcam-v7.1 +SSP5,Argentina,2010,0,gcam-v7.1 +SSP5,Argentina,2015,0,gcam-v7.1 +SSP5,Argentina,2020,1.10619,gcam-v7.1 +SSP5,Argentina,2025,1.33117,gcam-v7.1 +SSP5,Argentina,2030,1.50673,gcam-v7.1 +SSP5,Argentina,2035,1.68619,gcam-v7.1 +SSP5,Argentina,2040,1.85142,gcam-v7.1 +SSP5,Argentina,2045,2.00285,gcam-v7.1 +SSP5,Argentina,2050,2.13412,gcam-v7.1 +SSP5,Argentina,2055,2.27449,gcam-v7.1 +SSP5,Argentina,2060,2.43508,gcam-v7.1 +SSP5,Argentina,2065,2.60931,gcam-v7.1 +SSP5,Argentina,2070,2.7895,gcam-v7.1 +SSP5,Argentina,2075,2.98194,gcam-v7.1 +SSP5,Argentina,2080,3.1948,gcam-v7.1 +SSP5,Argentina,2085,3.43802,gcam-v7.1 +SSP5,Argentina,2090,3.71099,gcam-v7.1 +SSP5,Argentina,2095,4.01729,gcam-v7.1 +SSP5,Argentina,2100,4.35414,gcam-v7.1 +SSP5,Australia_NZ,1975,0,gcam-v7.1 +SSP5,Australia_NZ,1990,0,gcam-v7.1 +SSP5,Australia_NZ,2005,0,gcam-v7.1 +SSP5,Australia_NZ,2010,0,gcam-v7.1 +SSP5,Australia_NZ,2015,0,gcam-v7.1 +SSP5,Australia_NZ,2020,1.11778,gcam-v7.1 +SSP5,Australia_NZ,2025,1.23132,gcam-v7.1 +SSP5,Australia_NZ,2030,1.34528,gcam-v7.1 +SSP5,Australia_NZ,2035,1.47884,gcam-v7.1 +SSP5,Australia_NZ,2040,1.62343,gcam-v7.1 +SSP5,Australia_NZ,2045,1.75852,gcam-v7.1 +SSP5,Australia_NZ,2050,1.89313,gcam-v7.1 +SSP5,Australia_NZ,2055,2.04243,gcam-v7.1 +SSP5,Australia_NZ,2060,2.20125,gcam-v7.1 +SSP5,Australia_NZ,2065,2.37133,gcam-v7.1 +SSP5,Australia_NZ,2070,2.5568,gcam-v7.1 +SSP5,Australia_NZ,2075,2.76771,gcam-v7.1 +SSP5,Australia_NZ,2080,3.00113,gcam-v7.1 +SSP5,Australia_NZ,2085,3.26543,gcam-v7.1 +SSP5,Australia_NZ,2090,3.55692,gcam-v7.1 +SSP5,Australia_NZ,2095,3.86975,gcam-v7.1 +SSP5,Australia_NZ,2100,4.20793,gcam-v7.1 +SSP5,Brazil,1975,0,gcam-v7.1 +SSP5,Brazil,1990,0,gcam-v7.1 +SSP5,Brazil,2005,0,gcam-v7.1 +SSP5,Brazil,2010,0,gcam-v7.1 +SSP5,Brazil,2015,0,gcam-v7.1 +SSP5,Brazil,2020,1.18451,gcam-v7.1 +SSP5,Brazil,2025,1.42157,gcam-v7.1 +SSP5,Brazil,2030,1.67419,gcam-v7.1 +SSP5,Brazil,2035,1.95083,gcam-v7.1 +SSP5,Brazil,2040,2.21745,gcam-v7.1 +SSP5,Brazil,2045,2.47251,gcam-v7.1 +SSP5,Brazil,2050,2.72706,gcam-v7.1 +SSP5,Brazil,2055,2.99026,gcam-v7.1 +SSP5,Brazil,2060,3.27122,gcam-v7.1 +SSP5,Brazil,2065,3.58285,gcam-v7.1 +SSP5,Brazil,2070,3.92143,gcam-v7.1 +SSP5,Brazil,2075,4.26146,gcam-v7.1 +SSP5,Brazil,2080,4.63391,gcam-v7.1 +SSP5,Brazil,2085,5.04841,gcam-v7.1 +SSP5,Brazil,2090,5.51124,gcam-v7.1 +SSP5,Brazil,2095,6.01811,gcam-v7.1 +SSP5,Brazil,2100,6.56748,gcam-v7.1 +SSP5,Canada,1975,0,gcam-v7.1 +SSP5,Canada,1990,0,gcam-v7.1 +SSP5,Canada,2005,0,gcam-v7.1 +SSP5,Canada,2010,0,gcam-v7.1 +SSP5,Canada,2015,0,gcam-v7.1 +SSP5,Canada,2020,1.06035,gcam-v7.1 +SSP5,Canada,2025,1.14264,gcam-v7.1 +SSP5,Canada,2030,1.24856,gcam-v7.1 +SSP5,Canada,2035,1.40418,gcam-v7.1 +SSP5,Canada,2040,1.56796,gcam-v7.1 +SSP5,Canada,2045,1.73768,gcam-v7.1 +SSP5,Canada,2050,1.90725,gcam-v7.1 +SSP5,Canada,2055,2.08814,gcam-v7.1 +SSP5,Canada,2060,2.27642,gcam-v7.1 +SSP5,Canada,2065,2.4658,gcam-v7.1 +SSP5,Canada,2070,2.66724,gcam-v7.1 +SSP5,Canada,2075,2.89716,gcam-v7.1 +SSP5,Canada,2080,3.14971,gcam-v7.1 +SSP5,Canada,2085,3.43741,gcam-v7.1 +SSP5,Canada,2090,3.75801,gcam-v7.1 +SSP5,Canada,2095,4.10101,gcam-v7.1 +SSP5,Canada,2100,4.46659,gcam-v7.1 +SSP5,Central America and Caribbean,1975,0,gcam-v7.1 +SSP5,Central America and Caribbean,1990,0,gcam-v7.1 +SSP5,Central America and Caribbean,2005,0,gcam-v7.1 +SSP5,Central America and Caribbean,2010,0,gcam-v7.1 +SSP5,Central America and Caribbean,2015,0,gcam-v7.1 +SSP5,Central America and Caribbean,2020,1.09365,gcam-v7.1 +SSP5,Central America and Caribbean,2025,1.26717,gcam-v7.1 +SSP5,Central America and Caribbean,2030,1.48109,gcam-v7.1 +SSP5,Central America and Caribbean,2035,1.70328,gcam-v7.1 +SSP5,Central America and Caribbean,2040,1.87726,gcam-v7.1 +SSP5,Central America and Caribbean,2045,1.99727,gcam-v7.1 +SSP5,Central America and Caribbean,2050,2.09519,gcam-v7.1 +SSP5,Central America and Caribbean,2055,2.20204,gcam-v7.1 +SSP5,Central America and Caribbean,2060,2.3285,gcam-v7.1 +SSP5,Central America and Caribbean,2065,2.47303,gcam-v7.1 +SSP5,Central America and Caribbean,2070,2.63248,gcam-v7.1 +SSP5,Central America and Caribbean,2075,2.80862,gcam-v7.1 +SSP5,Central America and Caribbean,2080,3.01222,gcam-v7.1 +SSP5,Central America and Caribbean,2085,3.23924,gcam-v7.1 +SSP5,Central America and Caribbean,2090,3.48957,gcam-v7.1 +SSP5,Central America and Caribbean,2095,3.76733,gcam-v7.1 +SSP5,Central America and Caribbean,2100,4.07169,gcam-v7.1 +SSP5,Central Asia,1975,0,gcam-v7.1 +SSP5,Central Asia,1990,0,gcam-v7.1 +SSP5,Central Asia,2005,0,gcam-v7.1 +SSP5,Central Asia,2010,0,gcam-v7.1 +SSP5,Central Asia,2015,0,gcam-v7.1 +SSP5,Central Asia,2020,1.09891,gcam-v7.1 +SSP5,Central Asia,2025,1.38763,gcam-v7.1 +SSP5,Central Asia,2030,1.61614,gcam-v7.1 +SSP5,Central Asia,2035,1.86654,gcam-v7.1 +SSP5,Central Asia,2040,2.12833,gcam-v7.1 +SSP5,Central Asia,2045,2.36807,gcam-v7.1 +SSP5,Central Asia,2050,2.59007,gcam-v7.1 +SSP5,Central Asia,2055,2.82549,gcam-v7.1 +SSP5,Central Asia,2060,3.09352,gcam-v7.1 +SSP5,Central Asia,2065,3.37702,gcam-v7.1 +SSP5,Central Asia,2070,3.667,gcam-v7.1 +SSP5,Central Asia,2075,3.97624,gcam-v7.1 +SSP5,Central Asia,2080,4.30874,gcam-v7.1 +SSP5,Central Asia,2085,4.65952,gcam-v7.1 +SSP5,Central Asia,2090,5.03082,gcam-v7.1 +SSP5,Central Asia,2095,5.42794,gcam-v7.1 +SSP5,Central Asia,2100,5.84937,gcam-v7.1 +SSP5,China,1975,0,gcam-v7.1 +SSP5,China,1990,0,gcam-v7.1 +SSP5,China,2005,0,gcam-v7.1 +SSP5,China,2010,0,gcam-v7.1 +SSP5,China,2015,0,gcam-v7.1 +SSP5,China,2020,1.37799,gcam-v7.1 +SSP5,China,2025,1.82803,gcam-v7.1 +SSP5,China,2030,2.29718,gcam-v7.1 +SSP5,China,2035,2.78674,gcam-v7.1 +SSP5,China,2040,3.2366,gcam-v7.1 +SSP5,China,2045,3.59541,gcam-v7.1 +SSP5,China,2050,3.94136,gcam-v7.1 +SSP5,China,2055,4.34656,gcam-v7.1 +SSP5,China,2060,4.74633,gcam-v7.1 +SSP5,China,2065,5.14823,gcam-v7.1 +SSP5,China,2070,5.53096,gcam-v7.1 +SSP5,China,2075,5.9303,gcam-v7.1 +SSP5,China,2080,6.32208,gcam-v7.1 +SSP5,China,2085,6.74737,gcam-v7.1 +SSP5,China,2090,7.19764,gcam-v7.1 +SSP5,China,2095,7.6838,gcam-v7.1 +SSP5,China,2100,8.20677,gcam-v7.1 +SSP5,Colombia,1975,0,gcam-v7.1 +SSP5,Colombia,1990,0,gcam-v7.1 +SSP5,Colombia,2005,0,gcam-v7.1 +SSP5,Colombia,2010,0,gcam-v7.1 +SSP5,Colombia,2015,0,gcam-v7.1 +SSP5,Colombia,2020,1.13656,gcam-v7.1 +SSP5,Colombia,2025,1.26391,gcam-v7.1 +SSP5,Colombia,2030,1.4454,gcam-v7.1 +SSP5,Colombia,2035,1.69274,gcam-v7.1 +SSP5,Colombia,2040,1.93782,gcam-v7.1 +SSP5,Colombia,2045,2.1823,gcam-v7.1 +SSP5,Colombia,2050,2.43475,gcam-v7.1 +SSP5,Colombia,2055,2.70896,gcam-v7.1 +SSP5,Colombia,2060,3.01247,gcam-v7.1 +SSP5,Colombia,2065,3.33846,gcam-v7.1 +SSP5,Colombia,2070,3.68673,gcam-v7.1 +SSP5,Colombia,2075,4.0618,gcam-v7.1 +SSP5,Colombia,2080,4.46515,gcam-v7.1 +SSP5,Colombia,2085,4.90415,gcam-v7.1 +SSP5,Colombia,2090,5.38846,gcam-v7.1 +SSP5,Colombia,2095,5.91907,gcam-v7.1 +SSP5,Colombia,2100,6.49335,gcam-v7.1 +SSP5,EU-12,1975,0,gcam-v7.1 +SSP5,EU-12,1990,0,gcam-v7.1 +SSP5,EU-12,2005,0,gcam-v7.1 +SSP5,EU-12,2010,0,gcam-v7.1 +SSP5,EU-12,2015,0,gcam-v7.1 +SSP5,EU-12,2020,1.12119,gcam-v7.1 +SSP5,EU-12,2025,1.29863,gcam-v7.1 +SSP5,EU-12,2030,1.45804,gcam-v7.1 +SSP5,EU-12,2035,1.62097,gcam-v7.1 +SSP5,EU-12,2040,1.77748,gcam-v7.1 +SSP5,EU-12,2045,1.93895,gcam-v7.1 +SSP5,EU-12,2050,2.10425,gcam-v7.1 +SSP5,EU-12,2055,2.28576,gcam-v7.1 +SSP5,EU-12,2060,2.47043,gcam-v7.1 +SSP5,EU-12,2065,2.65101,gcam-v7.1 +SSP5,EU-12,2070,2.83433,gcam-v7.1 +SSP5,EU-12,2075,3.04661,gcam-v7.1 +SSP5,EU-12,2080,3.28633,gcam-v7.1 +SSP5,EU-12,2085,3.55244,gcam-v7.1 +SSP5,EU-12,2090,3.843,gcam-v7.1 +SSP5,EU-12,2095,4.15344,gcam-v7.1 +SSP5,EU-12,2100,4.48117,gcam-v7.1 +SSP5,EU-15,1975,0,gcam-v7.1 +SSP5,EU-15,1990,0,gcam-v7.1 +SSP5,EU-15,2005,0,gcam-v7.1 +SSP5,EU-15,2010,0,gcam-v7.1 +SSP5,EU-15,2015,0,gcam-v7.1 +SSP5,EU-15,2020,1.07063,gcam-v7.1 +SSP5,EU-15,2025,1.16995,gcam-v7.1 +SSP5,EU-15,2030,1.29406,gcam-v7.1 +SSP5,EU-15,2035,1.4383,gcam-v7.1 +SSP5,EU-15,2040,1.58152,gcam-v7.1 +SSP5,EU-15,2045,1.71982,gcam-v7.1 +SSP5,EU-15,2050,1.85387,gcam-v7.1 +SSP5,EU-15,2055,1.99218,gcam-v7.1 +SSP5,EU-15,2060,2.13277,gcam-v7.1 +SSP5,EU-15,2065,2.28054,gcam-v7.1 +SSP5,EU-15,2070,2.44301,gcam-v7.1 +SSP5,EU-15,2075,2.62889,gcam-v7.1 +SSP5,EU-15,2080,2.82964,gcam-v7.1 +SSP5,EU-15,2085,3.04796,gcam-v7.1 +SSP5,EU-15,2090,3.28307,gcam-v7.1 +SSP5,EU-15,2095,3.53579,gcam-v7.1 +SSP5,EU-15,2100,3.8106,gcam-v7.1 +SSP5,Europe_Eastern,1975,0,gcam-v7.1 +SSP5,Europe_Eastern,1990,0,gcam-v7.1 +SSP5,Europe_Eastern,2005,0,gcam-v7.1 +SSP5,Europe_Eastern,2010,0,gcam-v7.1 +SSP5,Europe_Eastern,2015,0,gcam-v7.1 +SSP5,Europe_Eastern,2020,1.02334,gcam-v7.1 +SSP5,Europe_Eastern,2025,1.23252,gcam-v7.1 +SSP5,Europe_Eastern,2030,1.47107,gcam-v7.1 +SSP5,Europe_Eastern,2035,1.73587,gcam-v7.1 +SSP5,Europe_Eastern,2040,1.99839,gcam-v7.1 +SSP5,Europe_Eastern,2045,2.26145,gcam-v7.1 +SSP5,Europe_Eastern,2050,2.54825,gcam-v7.1 +SSP5,Europe_Eastern,2055,2.8703,gcam-v7.1 +SSP5,Europe_Eastern,2060,3.20103,gcam-v7.1 +SSP5,Europe_Eastern,2065,3.63479,gcam-v7.1 +SSP5,Europe_Eastern,2070,4.00869,gcam-v7.1 +SSP5,Europe_Eastern,2075,4.41329,gcam-v7.1 +SSP5,Europe_Eastern,2080,4.84604,gcam-v7.1 +SSP5,Europe_Eastern,2085,5.30906,gcam-v7.1 +SSP5,Europe_Eastern,2090,5.79566,gcam-v7.1 +SSP5,Europe_Eastern,2095,6.30235,gcam-v7.1 +SSP5,Europe_Eastern,2100,6.83259,gcam-v7.1 +SSP5,Europe_Non_EU,1975,0,gcam-v7.1 +SSP5,Europe_Non_EU,1990,0,gcam-v7.1 +SSP5,Europe_Non_EU,2005,0,gcam-v7.1 +SSP5,Europe_Non_EU,2010,0,gcam-v7.1 +SSP5,Europe_Non_EU,2015,0,gcam-v7.1 +SSP5,Europe_Non_EU,2020,1.11235,gcam-v7.1 +SSP5,Europe_Non_EU,2025,1.23241,gcam-v7.1 +SSP5,Europe_Non_EU,2030,1.35472,gcam-v7.1 +SSP5,Europe_Non_EU,2035,1.48368,gcam-v7.1 +SSP5,Europe_Non_EU,2040,1.60415,gcam-v7.1 +SSP5,Europe_Non_EU,2045,1.71567,gcam-v7.1 +SSP5,Europe_Non_EU,2050,1.82437,gcam-v7.1 +SSP5,Europe_Non_EU,2055,1.93697,gcam-v7.1 +SSP5,Europe_Non_EU,2060,2.05914,gcam-v7.1 +SSP5,Europe_Non_EU,2065,2.19016,gcam-v7.1 +SSP5,Europe_Non_EU,2070,2.32248,gcam-v7.1 +SSP5,Europe_Non_EU,2075,2.46399,gcam-v7.1 +SSP5,Europe_Non_EU,2080,2.62097,gcam-v7.1 +SSP5,Europe_Non_EU,2085,2.79559,gcam-v7.1 +SSP5,Europe_Non_EU,2090,2.98861,gcam-v7.1 +SSP5,Europe_Non_EU,2095,3.20173,gcam-v7.1 +SSP5,Europe_Non_EU,2100,3.4362,gcam-v7.1 +SSP5,European Free Trade Association,1975,0,gcam-v7.1 +SSP5,European Free Trade Association,1990,0,gcam-v7.1 +SSP5,European Free Trade Association,2005,0,gcam-v7.1 +SSP5,European Free Trade Association,2010,0,gcam-v7.1 +SSP5,European Free Trade Association,2015,0,gcam-v7.1 +SSP5,European Free Trade Association,2020,1.09118,gcam-v7.1 +SSP5,European Free Trade Association,2025,1.20083,gcam-v7.1 +SSP5,European Free Trade Association,2030,1.33705,gcam-v7.1 +SSP5,European Free Trade Association,2035,1.4789,gcam-v7.1 +SSP5,European Free Trade Association,2040,1.61096,gcam-v7.1 +SSP5,European Free Trade Association,2045,1.73048,gcam-v7.1 +SSP5,European Free Trade Association,2050,1.85906,gcam-v7.1 +SSP5,European Free Trade Association,2055,2.0031,gcam-v7.1 +SSP5,European Free Trade Association,2060,2.16413,gcam-v7.1 +SSP5,European Free Trade Association,2065,2.33931,gcam-v7.1 +SSP5,European Free Trade Association,2070,2.5312,gcam-v7.1 +SSP5,European Free Trade Association,2075,2.74933,gcam-v7.1 +SSP5,European Free Trade Association,2080,2.98907,gcam-v7.1 +SSP5,European Free Trade Association,2085,3.25495,gcam-v7.1 +SSP5,European Free Trade Association,2090,3.54826,gcam-v7.1 +SSP5,European Free Trade Association,2095,3.86812,gcam-v7.1 +SSP5,European Free Trade Association,2100,4.21437,gcam-v7.1 +SSP5,India,1975,0,gcam-v7.1 +SSP5,India,1990,0,gcam-v7.1 +SSP5,India,2005,0,gcam-v7.1 +SSP5,India,2010,0,gcam-v7.1 +SSP5,India,2015,0,gcam-v7.1 +SSP5,India,2020,1.21418,gcam-v7.1 +SSP5,India,2025,1.53319,gcam-v7.1 +SSP5,India,2030,1.87781,gcam-v7.1 +SSP5,India,2035,2.23258,gcam-v7.1 +SSP5,India,2040,2.56667,gcam-v7.1 +SSP5,India,2045,2.90525,gcam-v7.1 +SSP5,India,2050,3.2659,gcam-v7.1 +SSP5,India,2055,3.6717,gcam-v7.1 +SSP5,India,2060,4.12119,gcam-v7.1 +SSP5,India,2065,4.60586,gcam-v7.1 +SSP5,India,2070,5.12053,gcam-v7.1 +SSP5,India,2075,5.66883,gcam-v7.1 +SSP5,India,2080,6.26242,gcam-v7.1 +SSP5,India,2085,6.90165,gcam-v7.1 +SSP5,India,2090,7.57762,gcam-v7.1 +SSP5,India,2095,8.28995,gcam-v7.1 +SSP5,India,2100,9.05359,gcam-v7.1 +SSP5,Indonesia,1975,0,gcam-v7.1 +SSP5,Indonesia,1990,0,gcam-v7.1 +SSP5,Indonesia,2005,0,gcam-v7.1 +SSP5,Indonesia,2010,0,gcam-v7.1 +SSP5,Indonesia,2015,0,gcam-v7.1 +SSP5,Indonesia,2020,1.25174,gcam-v7.1 +SSP5,Indonesia,2025,1.60546,gcam-v7.1 +SSP5,Indonesia,2030,2.00567,gcam-v7.1 +SSP5,Indonesia,2035,2.42901,gcam-v7.1 +SSP5,Indonesia,2040,2.82075,gcam-v7.1 +SSP5,Indonesia,2045,3.19008,gcam-v7.1 +SSP5,Indonesia,2050,3.5703,gcam-v7.1 +SSP5,Indonesia,2055,3.98053,gcam-v7.1 +SSP5,Indonesia,2060,4.42931,gcam-v7.1 +SSP5,Indonesia,2065,4.91091,gcam-v7.1 +SSP5,Indonesia,2070,5.43992,gcam-v7.1 +SSP5,Indonesia,2075,6.00209,gcam-v7.1 +SSP5,Indonesia,2080,6.60419,gcam-v7.1 +SSP5,Indonesia,2085,7.24704,gcam-v7.1 +SSP5,Indonesia,2090,7.93338,gcam-v7.1 +SSP5,Indonesia,2095,8.66234,gcam-v7.1 +SSP5,Indonesia,2100,9.43407,gcam-v7.1 +SSP5,Japan,1975,0,gcam-v7.1 +SSP5,Japan,1990,0,gcam-v7.1 +SSP5,Japan,2005,0,gcam-v7.1 +SSP5,Japan,2010,0,gcam-v7.1 +SSP5,Japan,2015,0,gcam-v7.1 +SSP5,Japan,2020,1.03885,gcam-v7.1 +SSP5,Japan,2025,1.12849,gcam-v7.1 +SSP5,Japan,2030,1.24268,gcam-v7.1 +SSP5,Japan,2035,1.37756,gcam-v7.1 +SSP5,Japan,2040,1.52749,gcam-v7.1 +SSP5,Japan,2045,1.67604,gcam-v7.1 +SSP5,Japan,2050,1.81991,gcam-v7.1 +SSP5,Japan,2055,1.96528,gcam-v7.1 +SSP5,Japan,2060,2.11646,gcam-v7.1 +SSP5,Japan,2065,2.27805,gcam-v7.1 +SSP5,Japan,2070,2.45369,gcam-v7.1 +SSP5,Japan,2075,2.64455,gcam-v7.1 +SSP5,Japan,2080,2.85055,gcam-v7.1 +SSP5,Japan,2085,3.0641,gcam-v7.1 +SSP5,Japan,2090,3.28189,gcam-v7.1 +SSP5,Japan,2095,3.51055,gcam-v7.1 +SSP5,Japan,2100,3.75272,gcam-v7.1 +SSP5,Mexico,1975,0,gcam-v7.1 +SSP5,Mexico,1990,0,gcam-v7.1 +SSP5,Mexico,2005,0,gcam-v7.1 +SSP5,Mexico,2010,0,gcam-v7.1 +SSP5,Mexico,2015,0,gcam-v7.1 +SSP5,Mexico,2020,1.05417,gcam-v7.1 +SSP5,Mexico,2025,1.17663,gcam-v7.1 +SSP5,Mexico,2030,1.35429,gcam-v7.1 +SSP5,Mexico,2035,1.54771,gcam-v7.1 +SSP5,Mexico,2040,1.70767,gcam-v7.1 +SSP5,Mexico,2045,1.83229,gcam-v7.1 +SSP5,Mexico,2050,1.94362,gcam-v7.1 +SSP5,Mexico,2055,2.06035,gcam-v7.1 +SSP5,Mexico,2060,2.18949,gcam-v7.1 +SSP5,Mexico,2065,2.32524,gcam-v7.1 +SSP5,Mexico,2070,2.47218,gcam-v7.1 +SSP5,Mexico,2075,2.62884,gcam-v7.1 +SSP5,Mexico,2080,2.80255,gcam-v7.1 +SSP5,Mexico,2085,2.99654,gcam-v7.1 +SSP5,Mexico,2090,3.20894,gcam-v7.1 +SSP5,Mexico,2095,3.44149,gcam-v7.1 +SSP5,Mexico,2100,3.69672,gcam-v7.1 +SSP5,Middle East,1975,0,gcam-v7.1 +SSP5,Middle East,1990,0,gcam-v7.1 +SSP5,Middle East,2005,0,gcam-v7.1 +SSP5,Middle East,2010,0,gcam-v7.1 +SSP5,Middle East,2015,0,gcam-v7.1 +SSP5,Middle East,2020,1.16612,gcam-v7.1 +SSP5,Middle East,2025,1.46115,gcam-v7.1 +SSP5,Middle East,2030,1.64293,gcam-v7.1 +SSP5,Middle East,2035,1.80734,gcam-v7.1 +SSP5,Middle East,2040,1.997,gcam-v7.1 +SSP5,Middle East,2045,2.16885,gcam-v7.1 +SSP5,Middle East,2050,2.33639,gcam-v7.1 +SSP5,Middle East,2055,2.50726,gcam-v7.1 +SSP5,Middle East,2060,2.68658,gcam-v7.1 +SSP5,Middle East,2065,2.87578,gcam-v7.1 +SSP5,Middle East,2070,3.07997,gcam-v7.1 +SSP5,Middle East,2075,3.31282,gcam-v7.1 +SSP5,Middle East,2080,3.5832,gcam-v7.1 +SSP5,Middle East,2085,3.88901,gcam-v7.1 +SSP5,Middle East,2090,4.22558,gcam-v7.1 +SSP5,Middle East,2095,4.59404,gcam-v7.1 +SSP5,Middle East,2100,4.99887,gcam-v7.1 +SSP5,Pakistan,1975,0,gcam-v7.1 +SSP5,Pakistan,1990,0,gcam-v7.1 +SSP5,Pakistan,2005,0,gcam-v7.1 +SSP5,Pakistan,2010,0,gcam-v7.1 +SSP5,Pakistan,2015,0,gcam-v7.1 +SSP5,Pakistan,2020,1.03734,gcam-v7.1 +SSP5,Pakistan,2025,1.1985,gcam-v7.1 +SSP5,Pakistan,2030,1.42811,gcam-v7.1 +SSP5,Pakistan,2035,1.68909,gcam-v7.1 +SSP5,Pakistan,2040,1.95033,gcam-v7.1 +SSP5,Pakistan,2045,2.2236,gcam-v7.1 +SSP5,Pakistan,2050,2.53875,gcam-v7.1 +SSP5,Pakistan,2055,2.91113,gcam-v7.1 +SSP5,Pakistan,2060,3.33446,gcam-v7.1 +SSP5,Pakistan,2065,3.80877,gcam-v7.1 +SSP5,Pakistan,2070,4.32408,gcam-v7.1 +SSP5,Pakistan,2075,4.88987,gcam-v7.1 +SSP5,Pakistan,2080,5.51952,gcam-v7.1 +SSP5,Pakistan,2085,6.21049,gcam-v7.1 +SSP5,Pakistan,2090,6.95305,gcam-v7.1 +SSP5,Pakistan,2095,7.74537,gcam-v7.1 +SSP5,Pakistan,2100,8.59539,gcam-v7.1 +SSP5,Russia,1975,0,gcam-v7.1 +SSP5,Russia,1990,0,gcam-v7.1 +SSP5,Russia,2005,0,gcam-v7.1 +SSP5,Russia,2010,0,gcam-v7.1 +SSP5,Russia,2015,0,gcam-v7.1 +SSP5,Russia,2020,1.2149,gcam-v7.1 +SSP5,Russia,2025,1.53024,gcam-v7.1 +SSP5,Russia,2030,1.97231,gcam-v7.1 +SSP5,Russia,2035,2.37549,gcam-v7.1 +SSP5,Russia,2040,2.77732,gcam-v7.1 +SSP5,Russia,2045,3.14618,gcam-v7.1 +SSP5,Russia,2050,3.52772,gcam-v7.1 +SSP5,Russia,2055,3.93051,gcam-v7.1 +SSP5,Russia,2060,4.29331,gcam-v7.1 +SSP5,Russia,2065,4.6398,gcam-v7.1 +SSP5,Russia,2070,5.0232,gcam-v7.1 +SSP5,Russia,2075,5.4746,gcam-v7.1 +SSP5,Russia,2080,5.99577,gcam-v7.1 +SSP5,Russia,2085,6.56787,gcam-v7.1 +SSP5,Russia,2090,7.15917,gcam-v7.1 +SSP5,Russia,2095,7.77281,gcam-v7.1 +SSP5,Russia,2100,8.44451,gcam-v7.1 +SSP5,South Africa,1975,0,gcam-v7.1 +SSP5,South Africa,1990,0,gcam-v7.1 +SSP5,South Africa,2005,0,gcam-v7.1 +SSP5,South Africa,2010,0,gcam-v7.1 +SSP5,South Africa,2015,0,gcam-v7.1 +SSP5,South Africa,2020,1.18854,gcam-v7.1 +SSP5,South Africa,2025,1.45084,gcam-v7.1 +SSP5,South Africa,2030,1.70804,gcam-v7.1 +SSP5,South Africa,2035,1.9465,gcam-v7.1 +SSP5,South Africa,2040,2.14839,gcam-v7.1 +SSP5,South Africa,2045,2.3089,gcam-v7.1 +SSP5,South Africa,2050,2.46038,gcam-v7.1 +SSP5,South Africa,2055,2.6254,gcam-v7.1 +SSP5,South Africa,2060,2.80496,gcam-v7.1 +SSP5,South Africa,2065,2.9902,gcam-v7.1 +SSP5,South Africa,2070,3.17911,gcam-v7.1 +SSP5,South Africa,2075,3.37525,gcam-v7.1 +SSP5,South Africa,2080,3.58659,gcam-v7.1 +SSP5,South Africa,2085,3.81719,gcam-v7.1 +SSP5,South Africa,2090,4.07083,gcam-v7.1 +SSP5,South Africa,2095,4.34663,gcam-v7.1 +SSP5,South Africa,2100,4.64621,gcam-v7.1 +SSP5,South America_Northern,1975,0,gcam-v7.1 +SSP5,South America_Northern,1990,0,gcam-v7.1 +SSP5,South America_Northern,2005,0,gcam-v7.1 +SSP5,South America_Northern,2010,0,gcam-v7.1 +SSP5,South America_Northern,2015,0,gcam-v7.1 +SSP5,South America_Northern,2020,0.875548,gcam-v7.1 +SSP5,South America_Northern,2025,0.874219,gcam-v7.1 +SSP5,South America_Northern,2030,0.95277,gcam-v7.1 +SSP5,South America_Northern,2035,1.28546,gcam-v7.1 +SSP5,South America_Northern,2040,1.65847,gcam-v7.1 +SSP5,South America_Northern,2045,2.06004,gcam-v7.1 +SSP5,South America_Northern,2050,2.49948,gcam-v7.1 +SSP5,South America_Northern,2055,2.96479,gcam-v7.1 +SSP5,South America_Northern,2060,3.45621,gcam-v7.1 +SSP5,South America_Northern,2065,3.96365,gcam-v7.1 +SSP5,South America_Northern,2070,4.51613,gcam-v7.1 +SSP5,South America_Northern,2075,5.10572,gcam-v7.1 +SSP5,South America_Northern,2080,5.73047,gcam-v7.1 +SSP5,South America_Northern,2085,6.40076,gcam-v7.1 +SSP5,South America_Northern,2090,7.13232,gcam-v7.1 +SSP5,South America_Northern,2095,7.92485,gcam-v7.1 +SSP5,South America_Northern,2100,8.78224,gcam-v7.1 +SSP5,South America_Southern,1975,0,gcam-v7.1 +SSP5,South America_Southern,1990,0,gcam-v7.1 +SSP5,South America_Southern,2005,0,gcam-v7.1 +SSP5,South America_Southern,2010,0,gcam-v7.1 +SSP5,South America_Southern,2015,0,gcam-v7.1 +SSP5,South America_Southern,2020,1.16009,gcam-v7.1 +SSP5,South America_Southern,2025,1.36007,gcam-v7.1 +SSP5,South America_Southern,2030,1.56381,gcam-v7.1 +SSP5,South America_Southern,2035,1.7819,gcam-v7.1 +SSP5,South America_Southern,2040,1.99053,gcam-v7.1 +SSP5,South America_Southern,2045,2.1925,gcam-v7.1 +SSP5,South America_Southern,2050,2.40177,gcam-v7.1 +SSP5,South America_Southern,2055,2.63214,gcam-v7.1 +SSP5,South America_Southern,2060,2.89145,gcam-v7.1 +SSP5,South America_Southern,2065,3.17351,gcam-v7.1 +SSP5,South America_Southern,2070,3.47401,gcam-v7.1 +SSP5,South America_Southern,2075,3.79238,gcam-v7.1 +SSP5,South America_Southern,2080,4.13714,gcam-v7.1 +SSP5,South America_Southern,2085,4.51093,gcam-v7.1 +SSP5,South America_Southern,2090,4.91824,gcam-v7.1 +SSP5,South America_Southern,2095,5.36336,gcam-v7.1 +SSP5,South America_Southern,2100,5.84658,gcam-v7.1 +SSP5,South Asia,1975,0,gcam-v7.1 +SSP5,South Asia,1990,0,gcam-v7.1 +SSP5,South Asia,2005,0,gcam-v7.1 +SSP5,South Asia,2010,0,gcam-v7.1 +SSP5,South Asia,2015,0,gcam-v7.1 +SSP5,South Asia,2020,1.11333,gcam-v7.1 +SSP5,South Asia,2025,1.25979,gcam-v7.1 +SSP5,South Asia,2030,1.39046,gcam-v7.1 +SSP5,South Asia,2035,1.49008,gcam-v7.1 +SSP5,South Asia,2040,1.55198,gcam-v7.1 +SSP5,South Asia,2045,1.59389,gcam-v7.1 +SSP5,South Asia,2050,1.6411,gcam-v7.1 +SSP5,South Asia,2055,1.70349,gcam-v7.1 +SSP5,South Asia,2060,1.78375,gcam-v7.1 +SSP5,South Asia,2065,1.87945,gcam-v7.1 +SSP5,South Asia,2070,1.98761,gcam-v7.1 +SSP5,South Asia,2075,2.10527,gcam-v7.1 +SSP5,South Asia,2080,2.23606,gcam-v7.1 +SSP5,South Asia,2085,2.38066,gcam-v7.1 +SSP5,South Asia,2090,2.53935,gcam-v7.1 +SSP5,South Asia,2095,2.71025,gcam-v7.1 +SSP5,South Asia,2100,2.89164,gcam-v7.1 +SSP5,South Korea,1975,0,gcam-v7.1 +SSP5,South Korea,1990,0,gcam-v7.1 +SSP5,South Korea,2005,0,gcam-v7.1 +SSP5,South Korea,2010,0,gcam-v7.1 +SSP5,South Korea,2015,0,gcam-v7.1 +SSP5,South Korea,2020,1.05937,gcam-v7.1 +SSP5,South Korea,2025,1.26544,gcam-v7.1 +SSP5,South Korea,2030,1.43111,gcam-v7.1 +SSP5,South Korea,2035,1.5784,gcam-v7.1 +SSP5,South Korea,2040,1.72632,gcam-v7.1 +SSP5,South Korea,2045,1.85787,gcam-v7.1 +SSP5,South Korea,2050,1.98377,gcam-v7.1 +SSP5,South Korea,2055,2.1024,gcam-v7.1 +SSP5,South Korea,2060,2.24724,gcam-v7.1 +SSP5,South Korea,2065,2.40312,gcam-v7.1 +SSP5,South Korea,2070,2.54132,gcam-v7.1 +SSP5,South Korea,2075,2.69593,gcam-v7.1 +SSP5,South Korea,2080,2.84957,gcam-v7.1 +SSP5,South Korea,2085,3.01061,gcam-v7.1 +SSP5,South Korea,2090,3.18551,gcam-v7.1 +SSP5,South Korea,2095,3.3782,gcam-v7.1 +SSP5,South Korea,2100,3.57924,gcam-v7.1 +SSP5,Southeast Asia,1975,0,gcam-v7.1 +SSP5,Southeast Asia,1990,0,gcam-v7.1 +SSP5,Southeast Asia,2005,0,gcam-v7.1 +SSP5,Southeast Asia,2010,0,gcam-v7.1 +SSP5,Southeast Asia,2015,0,gcam-v7.1 +SSP5,Southeast Asia,2020,1.16987,gcam-v7.1 +SSP5,Southeast Asia,2025,1.40572,gcam-v7.1 +SSP5,Southeast Asia,2030,1.61787,gcam-v7.1 +SSP5,Southeast Asia,2035,1.77625,gcam-v7.1 +SSP5,Southeast Asia,2040,1.89446,gcam-v7.1 +SSP5,Southeast Asia,2045,1.98363,gcam-v7.1 +SSP5,Southeast Asia,2050,2.07648,gcam-v7.1 +SSP5,Southeast Asia,2055,2.19,gcam-v7.1 +SSP5,Southeast Asia,2060,2.32461,gcam-v7.1 +SSP5,Southeast Asia,2065,2.47366,gcam-v7.1 +SSP5,Southeast Asia,2070,2.63494,gcam-v7.1 +SSP5,Southeast Asia,2075,2.80804,gcam-v7.1 +SSP5,Southeast Asia,2080,2.99905,gcam-v7.1 +SSP5,Southeast Asia,2085,3.20856,gcam-v7.1 +SSP5,Southeast Asia,2090,3.4359,gcam-v7.1 +SSP5,Southeast Asia,2095,3.68011,gcam-v7.1 +SSP5,Southeast Asia,2100,3.93887,gcam-v7.1 +SSP5,Taiwan,1975,0,gcam-v7.1 +SSP5,Taiwan,1990,0,gcam-v7.1 +SSP5,Taiwan,2005,0,gcam-v7.1 +SSP5,Taiwan,2010,0,gcam-v7.1 +SSP5,Taiwan,2015,0,gcam-v7.1 +SSP5,Taiwan,2020,1.16695,gcam-v7.1 +SSP5,Taiwan,2025,1.29057,gcam-v7.1 +SSP5,Taiwan,2030,1.40461,gcam-v7.1 +SSP5,Taiwan,2035,1.51334,gcam-v7.1 +SSP5,Taiwan,2040,1.6168,gcam-v7.1 +SSP5,Taiwan,2045,1.69934,gcam-v7.1 +SSP5,Taiwan,2050,1.75628,gcam-v7.1 +SSP5,Taiwan,2055,1.79605,gcam-v7.1 +SSP5,Taiwan,2060,1.8392,gcam-v7.1 +SSP5,Taiwan,2065,1.93873,gcam-v7.1 +SSP5,Taiwan,2070,2.02399,gcam-v7.1 +SSP5,Taiwan,2075,2.09096,gcam-v7.1 +SSP5,Taiwan,2080,2.15075,gcam-v7.1 +SSP5,Taiwan,2085,2.19322,gcam-v7.1 +SSP5,Taiwan,2090,2.22516,gcam-v7.1 +SSP5,Taiwan,2095,2.24693,gcam-v7.1 +SSP5,Taiwan,2100,2.25425,gcam-v7.1 +SSP5,USA,1975,0,gcam-v7.1 +SSP5,USA,1990,0,gcam-v7.1 +SSP5,USA,2005,0,gcam-v7.1 +SSP5,USA,2010,0,gcam-v7.1 +SSP5,USA,2015,0,gcam-v7.1 +SSP5,USA,2020,1.10677,gcam-v7.1 +SSP5,USA,2025,1.22266,gcam-v7.1 +SSP5,USA,2030,1.33607,gcam-v7.1 +SSP5,USA,2035,1.44238,gcam-v7.1 +SSP5,USA,2040,1.53447,gcam-v7.1 +SSP5,USA,2045,1.61483,gcam-v7.1 +SSP5,USA,2050,1.70028,gcam-v7.1 +SSP5,USA,2055,1.79521,gcam-v7.1 +SSP5,USA,2060,1.899,gcam-v7.1 +SSP5,USA,2065,2.0077,gcam-v7.1 +SSP5,USA,2070,2.13258,gcam-v7.1 +SSP5,USA,2075,2.27525,gcam-v7.1 +SSP5,USA,2080,2.42397,gcam-v7.1 +SSP5,USA,2085,2.58872,gcam-v7.1 +SSP5,USA,2090,2.76991,gcam-v7.1 +SSP5,USA,2095,2.9696,gcam-v7.1 +SSP5,USA,2100,3.19214,gcam-v7.1 diff --git a/input/gcamdata/renv.lock b/input/gcamdata/renv.lock index 78054c7c9c..b44a659c51 100644 --- a/input/gcamdata/renv.lock +++ b/input/gcamdata/renv.lock @@ -1,96 +1,90 @@ { "R": { - "Version": "4.1.0", + "Version": "4.4.0", "Repositories": [ { "Name": "CRAN", - "URL": "https://cloud.r-project.org" + "URL": "https://mirrors.nics.utk.edu/cran" } ] }, "Packages": { - "BH": { - "Package": "BH", - "Version": "1.72.0-3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "8f9ce74c6417d61f0782cbae5fd2b7b0" - }, - "DT": { - "Package": "DT", - "Version": "0.14", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "a3580ce0309c94d061c23b0afb4accbd" - }, "Matrix": { "Package": "Matrix", - "Version": "1.2-18", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "08588806cba69f04797dab50627428ed" - }, - "R.methodsS3": { - "Package": "R.methodsS3", - "Version": "1.8.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "23822a838096ceb132e5041c9a68c3ef" - }, - "R.oo": { - "Package": "R.oo", - "Version": "1.23.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "6be65e89d25f79fb4d147d65e19601e8" - }, - "R.utils": { - "Package": "R.utils", - "Version": "2.9.2", + "Version": "1.7-0", "Source": "Repository", "Repository": "CRAN", - "Hash": "63cdbbf467a00d0ed2aa3391f4918d6e" + "Requirements": [ + "R", + "grDevices", + "graphics", + "grid", + "lattice", + "methods", + "stats", + "utils" + ], + "Hash": "1920b2f11133b12350024297d8a4ff4a" }, "R6": { "Package": "R6", - "Version": "2.4.1", + "Version": "2.5.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "292b54f8f4b94669b08f94e5acce6be2" + "Requirements": [ + "R" + ], + "Hash": "470851b6d5d0ac559e9d01bb352b4021" }, "Rcpp": { "Package": "Rcpp", - "Version": "1.0.7", + "Version": "1.0.12", "Source": "Repository", "Repository": "CRAN", - "Hash": "dab19adae4440ae55aa8a9d238b246bb" + "Requirements": [ + "methods", + "utils" + ], + "Hash": "5ea2700d21e038ace58269ecdbeb9ec0" }, "askpass": { "Package": "askpass", - "Version": "1.1", + "Version": "1.2.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "e8a22846fff485f0be3770c2da758713" + "Requirements": [ + "sys" + ], + "Hash": "cad6cf7f1d5f6e906700b9d3e718c796" }, "assertthat": { "Package": "assertthat", "Version": "0.2.1", "Source": "Repository", "Repository": "CRAN", + "Requirements": [ + "tools" + ], "Hash": "50c838a310445e954bc13f26f26a6ecf" }, "backports": { "Package": "backports", - "Version": "1.1.9", + "Version": "1.5.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "b29e2d989dfb2e71ca3fd7d5bb1c0d58" + "Requirements": [ + "R" + ], + "Hash": "e1e1b9d75c37401117b636b7ae50827a" }, "base64enc": { "Package": "base64enc", "Version": "0.1-3", "Source": "Repository", "Repository": "CRAN", + "Requirements": [ + "R" + ], "Hash": "543776ae6848fde2f48ff3816d0628bc" }, "base64url": { @@ -98,257 +92,588 @@ "Version": "1.4", "Source": "Repository", "Repository": "CRAN", + "Requirements": [ + "backports" + ], "Hash": "0c54cf3a08cc0e550fbd64ad33166143" }, + "bit": { + "Package": "bit", + "Version": "4.0.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "d242abec29412ce988848d0294b208fd" + }, + "bit64": { + "Package": "bit64", + "Version": "4.0.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "bit", + "methods", + "stats", + "utils" + ], + "Hash": "9fe98599ca456d6552421db0d6772d8f" + }, "brew": { "Package": "brew", - "Version": "1.0-6", + "Version": "1.0-10", "Source": "Repository", "Repository": "CRAN", - "Hash": "92a5f887f9ae3035ac7afde22ba73ee9" + "Hash": "8f4a384e19dccd8c65356dc096847b76" }, "brio": { "Package": "brio", + "Version": "1.1.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "c1ee497a6d999947c2c224ae46799b1a" + }, + "bslib": { + "Package": "bslib", + "Version": "0.7.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "base64enc", + "cachem", + "fastmap", + "grDevices", + "htmltools", + "jquerylib", + "jsonlite", + "lifecycle", + "memoise", + "mime", + "rlang", + "sass" + ], + "Hash": "8644cc53f43828f19133548195d7e59e" + }, + "cachem": { + "Package": "cachem", "Version": "1.1.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "570a24963009b9cce0869a0463c83580" + "Requirements": [ + "fastmap", + "rlang" + ], + "Hash": "cd9a672193789068eb5a2aad65a0dedf" }, "callr": { "Package": "callr", - "Version": "3.5.1", + "Version": "3.7.6", "Source": "Repository", "Repository": "CRAN", - "Hash": "b7d7f1e926dfcd57c74ce93f5c048e80" + "Requirements": [ + "R", + "R6", + "processx", + "utils" + ], + "Hash": "d7e13f49c19103ece9e58ad2d83a7354" }, "cli": { "Package": "cli", - "Version": "2.5.0", + "Version": "3.6.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "a94ba44cee3ea571e813721e64184172" + "Requirements": [ + "R", + "utils" + ], + "Hash": "1216ac65ac55ec0058a6f75d7ca0fd52" }, "clipr": { "Package": "clipr", - "Version": "0.7.0", + "Version": "0.8.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "08cf4045c149a0f0eaf405324c7495bd" + "Requirements": [ + "utils" + ], + "Hash": "3f038e5ac7f41d4ac41ce658c85e3042" }, "commonmark": { "Package": "commonmark", - "Version": "1.7", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "0f22be39ec1d141fd03683c06f3a6e67" - }, - "covr": { - "Package": "covr", - "Version": "3.5.0", + "Version": "1.9.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "cbc6df1ef6ee576f844f973c1fc04ab4" + "Hash": "5d8225445acb167abf7797de48b2ee3c" }, "cpp11": { "Package": "cpp11", - "Version": "0.4.2", + "Version": "0.4.7", "Source": "Repository", "Repository": "CRAN", - "Hash": "fa53ce256cd280f468c080a58ea5ba8c" + "Requirements": [ + "R" + ], + "Hash": "5a295d7d963cc5035284dcdbaf334f4e" }, "crayon": { "Package": "crayon", - "Version": "1.4.1", + "Version": "1.5.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "e75525c55c70e5f4f78c9960a4b402e9" + "Requirements": [ + "grDevices", + "methods", + "utils" + ], + "Hash": "e8a1e41acf02548751f45c718d55aa6a" }, - "crosstalk": { - "Package": "crosstalk", - "Version": "1.1.0.1", + "credentials": { + "Package": "credentials", + "Version": "2.0.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "ae55f5d7c02f0ab43c58dd050694f2b4" + "Requirements": [ + "askpass", + "curl", + "jsonlite", + "openssl", + "sys" + ], + "Hash": "c7844b32098dcbd1c59cbd8dddb4ecc6" }, "curl": { "Package": "curl", - "Version": "4.3", + "Version": "5.2.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "2b7d10581cc730804e9ed178c8374bd6" + "Requirements": [ + "R" + ], + "Hash": "411ca2c03b1ce5f548345d2fc2685f7a" }, "data.table": { "Package": "data.table", - "Version": "1.14.2", + "Version": "1.15.4", "Source": "Repository", "Repository": "CRAN", - "Hash": "36b67b5adf57b292923f5659f5f0c853" + "Requirements": [ + "R", + "methods" + ], + "Hash": "8ee9ac56ef633d0c7cab8b2ca87d683e" }, "desc": { "Package": "desc", - "Version": "1.2.0", + "Version": "1.4.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "6c8fe8fa26a23b79949375d372c7b395" + "Requirements": [ + "R", + "R6", + "cli", + "utils" + ], + "Hash": "99b79fcbd6c4d1ce087f5c5c758b384f" }, "devtools": { "Package": "devtools", - "Version": "2.3.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "271df6a328617c64149283e98b1cd8da" + "Version": "2.4.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "desc", + "ellipsis", + "fs", + "lifecycle", + "memoise", + "miniUI", + "pkgbuild", + "pkgdown", + "pkgload", + "profvis", + "rcmdcheck", + "remotes", + "rlang", + "roxygen2", + "rversions", + "sessioninfo", + "stats", + "testthat", + "tools", + "urlchecker", + "usethis", + "utils", + "withr" + ], + "Hash": "ea5bc8b4a6a01e4f12d98b58329930bb" }, "diffobj": { "Package": "diffobj", - "Version": "0.3.0", + "Version": "0.3.5", "Source": "Repository", "Repository": "CRAN", - "Hash": "cfb12c2c0abfa12b08b4a84d6fde9792" + "Requirements": [ + "R", + "crayon", + "methods", + "stats", + "tools", + "utils" + ], + "Hash": "bcaa8b95f8d7d01a5dedfd959ce88ab8" }, "digest": { "Package": "digest", - "Version": "0.6.27", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "a0cbe758a531d054b537d16dff4d58a1" + "Version": "0.6.35", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "utils" + ], + "Hash": "698ece7ba5a4fa4559e3d537e7ec3d31" + }, + "downlit": { + "Package": "downlit", + "Version": "0.4.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "brio", + "desc", + "digest", + "evaluate", + "fansi", + "memoise", + "rlang", + "vctrs", + "withr", + "yaml" + ], + "Hash": "14fa1f248b60ed67e1f5418391a17b14" }, "dplyr": { "Package": "dplyr", - "Version": "1.0.6", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "19e84500b64bc7e589cb1e2550e25832" + "Version": "1.1.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "cli", + "generics", + "glue", + "lifecycle", + "magrittr", + "methods", + "pillar", + "rlang", + "tibble", + "tidyselect", + "utils", + "vctrs" + ], + "Hash": "fedd9d00c2944ff00a0e2696ccf048ec" }, "drake": { "Package": "drake", - "Version": "7.13.3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "0c7f735ec457ec8d499be5c1ea5a647d" + "Version": "7.13.10", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "base64url", + "digest", + "igraph", + "methods", + "parallel", + "rlang", + "storr", + "tidyselect", + "txtq", + "utils", + "vctrs" + ], + "Hash": "380181fa9b5984303f29c93c9b607fe0" }, "ellipsis": { "Package": "ellipsis", "Version": "0.3.2", "Source": "Repository", "Repository": "CRAN", + "Requirements": [ + "R", + "rlang" + ], "Hash": "bb0eec2fe32e88d9e2836c2f73ea2077" }, "evaluate": { "Package": "evaluate", - "Version": "0.14", + "Version": "0.23", "Source": "Repository", "Repository": "CRAN", - "Hash": "ec8ca05cffcc70569eaaad8469d2a3a7" + "Requirements": [ + "R", + "methods" + ], + "Hash": "daf4a1246be12c1fa8c7705a0935c1a0" }, "fansi": { "Package": "fansi", - "Version": "1.0.2", + "Version": "1.0.6", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "utils" + ], + "Hash": "962174cf2aeb5b9eea581522286a911f" + }, + "fastmap": { + "Package": "fastmap", + "Version": "1.2.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "f28149c2d7a1342a834b314e95e67260" + "Hash": "aa5e1cd11c2d15497494c5292d7ffcc8" }, "filelock": { "Package": "filelock", - "Version": "1.0.2", + "Version": "1.0.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "192053c276525c8495ccfd523aa8f2d1" + }, + "fontawesome": { + "Package": "fontawesome", + "Version": "0.5.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "38ec653c2613bed60052ba3787bd8a2c" + "Requirements": [ + "R", + "htmltools", + "rlang" + ], + "Hash": "c2efdd5f0bcd1ea861c2d4e2a883a67d" }, "fs": { "Package": "fs", - "Version": "1.5.0", + "Version": "1.6.4", "Source": "Repository", "Repository": "CRAN", - "Hash": "44594a07a42e5f91fac9f93fda6d0109" - }, - "gcamdata.compdata": { - "Package": "gcamdata.compdata", - "Version": "1.0", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "gcamdata.compdata", - "RemoteUsername": "JGCRI", - "RemoteRef": "updates-for-readr2.0", - "RemoteSha": "5a9a5dac5de83c4d91031a1c9b75a5c7e2132695", - "Hash": "e39cf4c33b7c233863da04f760bd685a" + "Requirements": [ + "R", + "methods" + ], + "Hash": "15aeb8c27f5ea5161f9f6a641fafd93a" }, "generics": { "Package": "generics", - "Version": "0.0.2", + "Version": "0.1.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "b8cff1d1391fd1ad8b65877f4c7f2e53" + "Requirements": [ + "R", + "methods" + ], + "Hash": "15e9634c0fcd294799e9b2e929ed1b86" }, - "gh": { - "Package": "gh", - "Version": "1.2.0", + "gert": { + "Package": "gert", + "Version": "2.0.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "05129b4387282404780d2f8593636388" + "Requirements": [ + "askpass", + "credentials", + "openssl", + "rstudioapi", + "sys", + "zip" + ], + "Hash": "f70d3fe2d9e7654213a946963d1591eb" }, - "git2r": { - "Package": "git2r", - "Version": "0.29.0", + "gh": { + "Package": "gh", + "Version": "1.4.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "b114135c4749076bd5ef74a5827b6f62" + "Requirements": [ + "R", + "cli", + "gitcreds", + "glue", + "httr2", + "ini", + "jsonlite", + "lifecycle", + "rlang" + ], + "Hash": "fbbbc48eba7a6626a08bb365e44b563b" }, "gitcreds": { "Package": "gitcreds", - "Version": "0.1.1", + "Version": "0.1.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "f3aefccc1cc50de6338146b62f115de8" + "Requirements": [ + "R" + ], + "Hash": "ab08ac61f3e1be454ae21911eb8bc2fe" }, "glue": { "Package": "glue", - "Version": "1.4.2", + "Version": "1.7.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "6efd734b14c6471cfe443345f3e35e29" + "Requirements": [ + "R", + "methods" + ], + "Hash": "e0b3a53876554bd45879e596cdb10a52" }, "highr": { "Package": "highr", - "Version": "0.8", + "Version": "0.11", "Source": "Repository", "Repository": "CRAN", - "Hash": "4dc5bb88961e347a0f4d8aad597cbfac" + "Requirements": [ + "R", + "xfun" + ], + "Hash": "d65ba49117ca223614f71b60d85b8ab7" }, "hms": { "Package": "hms", - "Version": "1.0.0", + "Version": "1.1.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "bf552cdd96f5969873afdac7311c7d0d" + "Requirements": [ + "lifecycle", + "methods", + "pkgconfig", + "rlang", + "vctrs" + ], + "Hash": "b59377caa7ed00fa41808342002138f9" }, "htmltools": { "Package": "htmltools", - "Version": "0.5.0", + "Version": "0.5.8.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "7d651b7131794fe007b1ad6f21aaa401" + "Requirements": [ + "R", + "base64enc", + "digest", + "fastmap", + "grDevices", + "rlang", + "utils" + ], + "Hash": "81d371a9cc60640e74e4ab6ac46dcedc" }, "htmlwidgets": { "Package": "htmlwidgets", - "Version": "1.5.3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "6fdaa86d0700f8b3e92ee3c445a5a10d" + "Version": "1.6.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "grDevices", + "htmltools", + "jsonlite", + "knitr", + "rmarkdown", + "yaml" + ], + "Hash": "04291cc45198225444a397606810ac37" + }, + "httpuv": { + "Package": "httpuv", + "Version": "1.6.15", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "Rcpp", + "later", + "promises", + "utils" + ], + "Hash": "d55aa087c47a63ead0f6fc10f8fa1ee0" }, "httr": { "Package": "httr", - "Version": "1.4.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "a525aba14184fec243f9eaec62fbed43" + "Version": "1.4.7", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "curl", + "jsonlite", + "mime", + "openssl" + ], + "Hash": "ac107251d9d9fd72f0ca8049988f1d7f" + }, + "httr2": { + "Package": "httr2", + "Version": "1.0.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "cli", + "curl", + "glue", + "lifecycle", + "magrittr", + "openssl", + "rappdirs", + "rlang", + "vctrs", + "withr" + ], + "Hash": "03d741c92fda96d98c3a3f22494e3b4a" }, "igraph": { "Package": "igraph", - "Version": "1.2.11", + "Version": "2.0.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "1d10cd31c2979f9c819ffe4d16b9dc2b" + "Requirements": [ + "Matrix", + "R", + "cli", + "cpp11", + "grDevices", + "graphics", + "lifecycle", + "magrittr", + "methods", + "pkgconfig", + "rlang", + "stats", + "utils", + "vctrs" + ], + "Hash": "c3b7d801d722e26e4cd888e042bf9af5" }, "ini": { "Package": "ini", @@ -357,117 +682,226 @@ "Repository": "CRAN", "Hash": "6154ec2223172bce8162d4153cda21f7" }, + "jquerylib": { + "Package": "jquerylib", + "Version": "0.1.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "htmltools" + ], + "Hash": "5aab57a3bd297eee1c1d862735972182" + }, "jsonlite": { "Package": "jsonlite", - "Version": "1.7.2", + "Version": "1.8.8", "Source": "Repository", "Repository": "CRAN", - "Hash": "98138e0994d41508c7a6b84a0600cfcb" + "Requirements": [ + "methods" + ], + "Hash": "e1b9c55281c5adc4dd113652d9e26768" }, "knitr": { "Package": "knitr", - "Version": "1.31", + "Version": "1.46", "Source": "Repository", "Repository": "CRAN", - "Hash": "c3994c036d19fc22c5e2a209c8298bfb" + "Requirements": [ + "R", + "evaluate", + "highr", + "methods", + "tools", + "xfun", + "yaml" + ], + "Hash": "6e008ab1d696a5283c79765fa7b56b47" }, "later": { "Package": "later", - "Version": "1.1.0.1", + "Version": "1.3.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "d0a62b247165aabf397fded504660d8a" + "Requirements": [ + "Rcpp", + "rlang" + ], + "Hash": "a3e051d405326b8b0012377434c62b37" }, "lattice": { "Package": "lattice", - "Version": "0.20-45", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "b64cdbb2b340437c4ee047a1f4c4377b" - }, - "lazyeval": { - "Package": "lazyeval", - "Version": "0.2.2", + "Version": "0.22-6", "Source": "Repository", "Repository": "CRAN", - "Hash": "d908914ae53b04d4c0c0fd72ecc35370" + "Requirements": [ + "R", + "grDevices", + "graphics", + "grid", + "stats", + "utils" + ], + "Hash": "cc5ac1ba4c238c7ca9fa6a87ca11a7e2" }, "lifecycle": { "Package": "lifecycle", - "Version": "1.0.0", + "Version": "1.0.4", "Source": "Repository", "Repository": "CRAN", - "Hash": "3471fb65971f1a7b2d4ae7848cf2db8d" + "Requirements": [ + "R", + "cli", + "glue", + "rlang" + ], + "Hash": "b8552d117e1b808b09a832f589b79035" }, "magrittr": { "Package": "magrittr", - "Version": "2.0.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "41287f1ac7d28a92f0a286ed507928d3" - }, - "markdown": { - "Package": "markdown", - "Version": "1.1", + "Version": "2.0.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "61e4a10781dd00d7d81dd06ca9b94e95" + "Requirements": [ + "R" + ], + "Hash": "7ce2733a9826b3aeb1775d56fd305472" }, "memoise": { "Package": "memoise", - "Version": "1.1.0", + "Version": "2.0.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "58baa74e4603fcfb9a94401c58c8f9b1" + "Requirements": [ + "cachem", + "rlang" + ], + "Hash": "e2817ccf4a065c5d9d7f2cfbe7c1d78c" }, "mime": { "Package": "mime", - "Version": "0.9", + "Version": "0.12", "Source": "Repository", "Repository": "CRAN", - "Hash": "e87a35ec73b157552814869f45a63aa3" + "Requirements": [ + "tools" + ], + "Hash": "18e9c28c1d3ca1560ce30658b22ce104" }, - "mockr": { - "Package": "mockr", - "Version": "0.1", + "miniUI": { + "Package": "miniUI", + "Version": "0.1.1.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "9fdcfc0a7a31707a2b763c69613938b8" + "Requirements": [ + "htmltools", + "shiny", + "utils" + ], + "Hash": "fec5f52652d60615fdb3957b3d74324a" }, "openssl": { "Package": "openssl", - "Version": "1.4.3", + "Version": "2.2.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "a399e4773075fc2375b71f45fca186c4" + "Requirements": [ + "askpass" + ], + "Hash": "2bcca3848e4734eb3b16103bc9aa4b8e" }, "pillar": { "Package": "pillar", - "Version": "1.7.0", + "Version": "1.9.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "51dfc97e1b7069e9f7e6f83f3589c22e" + "Requirements": [ + "cli", + "fansi", + "glue", + "lifecycle", + "rlang", + "utf8", + "utils", + "vctrs" + ], + "Hash": "15da5a8412f317beeee6175fbc76f4bb" }, "pkgbuild": { "Package": "pkgbuild", - "Version": "1.1.0", + "Version": "1.4.4", "Source": "Repository", "Repository": "CRAN", - "Hash": "404684bc4e3685007f9720adf13b06c1" + "Requirements": [ + "R", + "R6", + "callr", + "cli", + "desc", + "processx" + ], + "Hash": "a29e8e134a460a01e0ca67a4763c595b" }, "pkgconfig": { "Package": "pkgconfig", "Version": "2.0.3", "Source": "Repository", "Repository": "CRAN", + "Requirements": [ + "utils" + ], "Hash": "01f28d4278f15c76cddbea05899c5d6f" }, + "pkgdown": { + "Package": "pkgdown", + "Version": "2.0.9", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "bslib", + "callr", + "cli", + "desc", + "digest", + "downlit", + "fs", + "httr", + "jsonlite", + "magrittr", + "memoise", + "purrr", + "ragg", + "rlang", + "rmarkdown", + "tibble", + "whisker", + "withr", + "xml2", + "yaml" + ], + "Hash": "8bf1151ed1a48328d71b937e651117a6" + }, "pkgload": { "Package": "pkgload", - "Version": "1.1.0", + "Version": "1.3.4", "Source": "Repository", "Repository": "CRAN", - "Hash": "b6b150cd4709e0c0c9b5d51ac4376282" + "Requirements": [ + "R", + "cli", + "crayon", + "desc", + "fs", + "glue", + "methods", + "pkgbuild", + "rlang", + "rprojroot", + "utils", + "withr" + ], + "Hash": "876c618df5ae610be84356d5d7a5d124" }, "praise": { "Package": "praise", @@ -478,269 +912,744 @@ }, "prettyunits": { "Package": "prettyunits", - "Version": "1.1.1", + "Version": "1.2.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "95ef9167b75dde9d2ccc3c7528393e7e" + "Requirements": [ + "R" + ], + "Hash": "6b01fc98b1e86c4f705ce9dcfd2f57c7" }, "processx": { "Package": "processx", - "Version": "3.4.4", + "Version": "3.8.4", "Source": "Repository", "Repository": "CRAN", - "Hash": "03446ed0b8129916f73676726cb3c48f" + "Requirements": [ + "R", + "R6", + "ps", + "utils" + ], + "Hash": "0c90a7d71988856bad2a2a45dd871bb9" + }, + "profvis": { + "Package": "profvis", + "Version": "0.3.8", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "htmlwidgets", + "purrr", + "rlang", + "stringr", + "vctrs" + ], + "Hash": "aa5a3864397ce6ae03458f98618395a1" + }, + "progress": { + "Package": "progress", + "Version": "1.2.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "crayon", + "hms", + "prettyunits" + ], + "Hash": "f4625e061cb2865f111b47ff163a5ca6" }, "promises": { "Package": "promises", - "Version": "1.1.1", + "Version": "1.3.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "a8730dcbdd19f9047774909f0ec214a4" + "Requirements": [ + "R6", + "Rcpp", + "fastmap", + "later", + "magrittr", + "rlang", + "stats" + ], + "Hash": "434cd5388a3979e74be5c219bcd6e77d" }, "ps": { "Package": "ps", - "Version": "1.3.4", + "Version": "1.7.6", "Source": "Repository", "Repository": "CRAN", - "Hash": "a54a7dfd68124abb2225dbfa9a85c457" + "Requirements": [ + "R", + "utils" + ], + "Hash": "dd2b9319ee0656c8acf45c7f40c59de7" }, "purrr": { "Package": "purrr", - "Version": "0.3.4", + "Version": "1.0.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "lifecycle", + "magrittr", + "rlang", + "vctrs" + ], + "Hash": "1cba04a4e9414bdefc9dcaa99649a8dc" + }, + "ragg": { + "Package": "ragg", + "Version": "1.3.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "systemfonts", + "textshaping" + ], + "Hash": "e3087db406e079a8a2fd87f413918ed3" + }, + "rappdirs": { + "Package": "rappdirs", + "Version": "0.3.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "97def703420c8ab10d8f0e6c72101e02" + "Requirements": [ + "R" + ], + "Hash": "5e3c5dc0b071b21fa128676560dbe94d" }, "rcmdcheck": { "Package": "rcmdcheck", - "Version": "1.3.3", + "Version": "1.4.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "ed95895886dab6d2a584da45503555da" + "Requirements": [ + "R6", + "callr", + "cli", + "curl", + "desc", + "digest", + "pkgbuild", + "prettyunits", + "rprojroot", + "sessioninfo", + "utils", + "withr", + "xopen" + ], + "Hash": "8f25ebe2ec38b1f2aef3b0d2ef76f6c4" }, "readr": { "Package": "readr", - "Version": "1.4.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "2639976851f71f330264a9c9c3d43a61" + "Version": "2.1.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "cli", + "clipr", + "cpp11", + "crayon", + "hms", + "lifecycle", + "methods", + "rlang", + "tibble", + "tzdb", + "utils", + "vroom" + ], + "Hash": "9de96463d2117f6ac49980577939dfb3" }, "rematch2": { "Package": "rematch2", "Version": "2.1.2", "Source": "Repository", "Repository": "CRAN", + "Requirements": [ + "tibble" + ], "Hash": "76c9e04c712a05848ae7a23d2f170a40" }, "remotes": { "Package": "remotes", - "Version": "2.2.0", + "Version": "2.5.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "430a0908aee75b1fcba0e62857cab0ce" + "Requirements": [ + "R", + "methods", + "stats", + "tools", + "utils" + ], + "Hash": "3ee025083e66f18db6cf27b56e23e141" }, "renv": { "Package": "renv", - "Version": "0.12.5", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "5c0cdb37f063c58cdab3c7e9fbb8bd2c" - }, - "rex": { - "Package": "rex", - "Version": "1.2.0", + "Version": "1.0.7", "Source": "Repository", "Repository": "CRAN", - "Hash": "093584b944440c5cd07a696b3c8e0e4c" + "Requirements": [ + "utils" + ], + "Hash": "397b7b2a265bc5a7a06852524dabae20" }, "rlang": { "Package": "rlang", - "Version": "0.4.11", + "Version": "1.1.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "515f341d3affe0de9e4a7f762efb0456" + "Requirements": [ + "R", + "utils" + ], + "Hash": "42548638fae05fd9a9b5f3f437fbbbe2" }, "rmarkdown": { "Package": "rmarkdown", - "Version": "2.6", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "bc4bac38960b446c183957bfd563e763" + "Version": "2.27", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "bslib", + "evaluate", + "fontawesome", + "htmltools", + "jquerylib", + "jsonlite", + "knitr", + "methods", + "tinytex", + "tools", + "utils", + "xfun", + "yaml" + ], + "Hash": "27f9502e1cdbfa195f94e03b0f517484" }, "roxygen2": { "Package": "roxygen2", - "Version": "7.1.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "fcd94e00cc409b25d07ca50f7bf339f5" + "Version": "7.3.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "brew", + "cli", + "commonmark", + "cpp11", + "desc", + "knitr", + "methods", + "pkgload", + "purrr", + "rlang", + "stringi", + "stringr", + "utils", + "withr", + "xml2" + ], + "Hash": "c25fe7b2d8cba73d1b63c947bf7afdb9" }, "rprojroot": { "Package": "rprojroot", - "Version": "1.3-2", + "Version": "2.0.4", "Source": "Repository", "Repository": "CRAN", - "Hash": "f6a407ae5dd21f6f80a6708bbb6eb3ae" + "Requirements": [ + "R" + ], + "Hash": "4c8415e0ec1e29f3f4f6fc108bef0144" }, "rstudioapi": { "Package": "rstudioapi", - "Version": "0.13", + "Version": "0.16.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "06c85365a03fdaf699966cc1d3cf53ea" + "Hash": "96710351d642b70e8f02ddeb237c46a7" }, "rversions": { "Package": "rversions", - "Version": "2.0.2", + "Version": "2.1.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "curl", + "utils", + "xml2" + ], + "Hash": "a9881dfed103e83f9de151dc17002cd1" + }, + "sass": { + "Package": "sass", + "Version": "0.4.9", "Source": "Repository", "Repository": "CRAN", - "Hash": "0ec41191f744d0f5afad8c6f35cc36e4" + "Requirements": [ + "R6", + "fs", + "htmltools", + "rappdirs", + "rlang" + ], + "Hash": "d53dbfddf695303ea4ad66f86e99b95d" }, "sessioninfo": { "Package": "sessioninfo", - "Version": "1.1.1", + "Version": "1.2.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "308013098befe37484df72c39cf90d6e" + "Requirements": [ + "R", + "cli", + "tools", + "utils" + ], + "Hash": "3f9796a8d0a0e8c6eb49a4b029359d1f" + }, + "shiny": { + "Package": "shiny", + "Version": "1.8.1.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "bslib", + "cachem", + "commonmark", + "crayon", + "fastmap", + "fontawesome", + "glue", + "grDevices", + "htmltools", + "httpuv", + "jsonlite", + "later", + "lifecycle", + "methods", + "mime", + "promises", + "rlang", + "sourcetools", + "tools", + "utils", + "withr", + "xtable" + ], + "Hash": "54b26646816af9960a4c64d8ceec75d6" + }, + "sourcetools": { + "Package": "sourcetools", + "Version": "0.1.7-1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "5f5a7629f956619d519205ec475fe647" }, "storr": { "Package": "storr", - "Version": "1.2.1", + "Version": "1.2.5", "Source": "Repository", "Repository": "CRAN", - "Hash": "0a3635220b58f2c2faccd78e97b0cafd" + "Requirements": [ + "R", + "R6", + "digest" + ], + "Hash": "96034207276a46a44dc81b8d43397602" }, "stringi": { "Package": "stringi", - "Version": "1.7.6", + "Version": "1.8.4", "Source": "Repository", "Repository": "CRAN", - "Hash": "bba431031d30789535745a9627ac9271" + "Requirements": [ + "R", + "stats", + "tools", + "utils" + ], + "Hash": "39e1144fd75428983dc3f63aa53dfa91" }, "stringr": { "Package": "stringr", - "Version": "1.4.0", + "Version": "1.5.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "0759e6b6c0957edb1311028a49a35e76" + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "magrittr", + "rlang", + "stringi", + "vctrs" + ], + "Hash": "960e2ae9e09656611e0b8214ad543207" }, "sys": { "Package": "sys", - "Version": "3.4", + "Version": "3.4.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "b227d13e29222b4574486cfcbde077fa" + "Hash": "3a1be13d68d47a8cd0bfd74739ca1555" }, - "testthat": { - "Package": "testthat", - "Version": "3.0.1", + "systemfonts": { + "Package": "systemfonts", + "Version": "1.1.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "17826764cb92d8b5aae6619896e5a161" + "Requirements": [ + "R", + "cpp11", + "lifecycle" + ], + "Hash": "213b6b8ed5afbf934843e6c3b090d418" + }, + "testthat": { + "Package": "testthat", + "Version": "3.2.1.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "brio", + "callr", + "cli", + "desc", + "digest", + "evaluate", + "jsonlite", + "lifecycle", + "magrittr", + "methods", + "pkgload", + "praise", + "processx", + "ps", + "rlang", + "utils", + "waldo", + "withr" + ], + "Hash": "3f6e7e5e2220856ff865e4834766bf2b" + }, + "textshaping": { + "Package": "textshaping", + "Version": "0.4.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cpp11", + "lifecycle", + "systemfonts" + ], + "Hash": "5142f8bc78ed3d819d26461b641627ce" }, "tibble": { "Package": "tibble", - "Version": "3.1.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "fbbca141541ee9242233ba50b0fcb843" + "Version": "3.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "fansi", + "lifecycle", + "magrittr", + "methods", + "pillar", + "pkgconfig", + "rlang", + "utils", + "vctrs" + ], + "Hash": "a84e2cc86d07289b3b6f5069df7a004c" }, "tidyr": { "Package": "tidyr", - "Version": "1.1.3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "450d7dfaedde58e28586b854eeece4fa" + "Version": "1.3.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "cpp11", + "dplyr", + "glue", + "lifecycle", + "magrittr", + "purrr", + "rlang", + "stringr", + "tibble", + "tidyselect", + "utils", + "vctrs" + ], + "Hash": "915fb7ce036c22a6a33b5a8adb712eb1" }, "tidyselect": { "Package": "tidyselect", - "Version": "1.1.0", + "Version": "1.2.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "6ea435c354e8448819627cf686f66e0a" + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "rlang", + "vctrs", + "withr" + ], + "Hash": "829f27b9c4919c16b593794a6344d6c0" }, "tinytex": { "Package": "tinytex", - "Version": "0.24", + "Version": "0.51", "Source": "Repository", "Repository": "CRAN", - "Hash": "8f24b65b86f4d6d7b1e2d8a4ce2c02fb" + "Requirements": [ + "xfun" + ], + "Hash": "d44e2fcd2e4e076f0aac540208559d1d" }, "txtq": { "Package": "txtq", "Version": "0.2.4", "Source": "Repository", "Repository": "CRAN", + "Requirements": [ + "R6", + "base64url", + "filelock" + ], "Hash": "47bc241ac3efaa6b75109c00ad708448" }, - "usethis": { - "Package": "usethis", - "Version": "1.6.0", + "tzdb": { + "Package": "tzdb", + "Version": "0.4.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cpp11" + ], + "Hash": "f561504ec2897f4d46f0c7657e488ae1" + }, + "urlchecker": { + "Package": "urlchecker", + "Version": "1.0.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "dd54423bf9bef40556a286430591c512" + "Requirements": [ + "R", + "cli", + "curl", + "tools", + "xml2" + ], + "Hash": "409328b8e1253c8d729a7836fe7f7a16" + }, + "usethis": { + "Package": "usethis", + "Version": "2.2.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "clipr", + "crayon", + "curl", + "desc", + "fs", + "gert", + "gh", + "glue", + "jsonlite", + "lifecycle", + "purrr", + "rappdirs", + "rlang", + "rprojroot", + "rstudioapi", + "stats", + "utils", + "whisker", + "withr", + "yaml" + ], + "Hash": "d524fd42c517035027f866064417d7e6" }, "utf8": { "Package": "utf8", - "Version": "1.2.2", + "Version": "1.2.4", "Source": "Repository", "Repository": "CRAN", - "Hash": "c9c462b759a5cc844ae25b5942654d13" + "Requirements": [ + "R" + ], + "Hash": "62b65c52671e6665f803ff02954446e9" }, "vctrs": { "Package": "vctrs", - "Version": "0.3.8", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "ecf749a1b39ea72bd9b51b76292261f1" + "Version": "0.6.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "rlang" + ], + "Hash": "c03fa420630029418f7e6da3667aac4a" + }, + "vroom": { + "Package": "vroom", + "Version": "1.6.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "bit64", + "cli", + "cpp11", + "crayon", + "glue", + "hms", + "lifecycle", + "methods", + "progress", + "rlang", + "stats", + "tibble", + "tidyselect", + "tzdb", + "vctrs", + "withr" + ], + "Hash": "390f9315bc0025be03012054103d227c" }, "waldo": { "Package": "waldo", - "Version": "0.2.3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "181d1a31b1ba2009ef20926f2ee0570c" + "Version": "0.5.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "diffobj", + "fansi", + "glue", + "methods", + "rematch2", + "rlang", + "tibble" + ], + "Hash": "c7d3fd6d29ab077cbac8f0e2751449e6" }, "whisker": { "Package": "whisker", - "Version": "0.4", + "Version": "0.4.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "ca970b96d894e90397ed20637a0c1bbe" + "Hash": "c6abfa47a46d281a7d5159d0a8891e88" }, "withr": { "Package": "withr", - "Version": "2.4.1", + "Version": "3.0.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "caf4781c674ffa549a4676d2d77b13cc" + "Requirements": [ + "R", + "grDevices", + "graphics" + ], + "Hash": "d31b6c62c10dcf11ec530ca6b0dd5d35" }, "xfun": { "Package": "xfun", - "Version": "0.20", + "Version": "0.44", "Source": "Repository", "Repository": "CRAN", - "Hash": "d7222684dc02327871e3b1da0aba7089" + "Requirements": [ + "grDevices", + "stats", + "tools" + ], + "Hash": "317a0538d32f4a009658bcedb7923f4b" }, "xml2": { "Package": "xml2", - "Version": "1.3.2", + "Version": "1.3.6", "Source": "Repository", "Repository": "CRAN", - "Hash": "d4d71a75dd3ea9eb5fa28cc21f9585e2" + "Requirements": [ + "R", + "cli", + "methods", + "rlang" + ], + "Hash": "1d0336142f4cd25d8d23cd3ba7a8fb61" }, "xopen": { "Package": "xopen", - "Version": "1.0.0", + "Version": "1.0.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "6c85f015dee9cc7710ddd20f86881f58" + "Requirements": [ + "R", + "processx" + ], + "Hash": "423df1e86d5533fcb73c6b02b4923b49" + }, + "xtable": { + "Package": "xtable", + "Version": "1.8-4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "stats", + "utils" + ], + "Hash": "b8acdf8af494d9ec19ccb2481a9b11c2" }, "yaml": { "Package": "yaml", - "Version": "2.2.1", + "Version": "2.3.8", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "29240487a071f535f5e5d5a323b7afbd" + }, + "zip": { + "Package": "zip", + "Version": "2.3.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "2826c5d9efb0a88f657c7a679c7106db" + "Hash": "fcc4bd8e6da2d2011eb64a5e5cc685ab" } } } diff --git a/input/gcamdata/renv/.gitignore b/input/gcamdata/renv/.gitignore index 574c256d4f..2e5ed9dbc7 100644 --- a/input/gcamdata/renv/.gitignore +++ b/input/gcamdata/renv/.gitignore @@ -1,3 +1,6 @@ +local/ +cellar/ +sandbox/ lock/ library/ python/ diff --git a/input/gcamdata/renv/activate.R b/input/gcamdata/renv/activate.R deleted file mode 100644 index 5be4bbd659..0000000000 --- a/input/gcamdata/renv/activate.R +++ /dev/null @@ -1,440 +0,0 @@ - -local({ - - # the requested version of renv - version <- "0.12.5" - - # the project directory - project <- getwd() - - # avoid recursion - if (!is.na(Sys.getenv("RENV_R_INITIALIZING", unset = NA))) - return(invisible(TRUE)) - - # signal that we're loading renv during R startup - Sys.setenv("RENV_R_INITIALIZING" = "true") - on.exit(Sys.unsetenv("RENV_R_INITIALIZING"), add = TRUE) - - # signal that we've consented to use renv - options(renv.consent = TRUE) - - # load the 'utils' package eagerly -- this ensures that renv shims, which - # mask 'utils' packages, will come first on the search path - library(utils, lib.loc = .Library) - - # check to see if renv has already been loaded - if ("renv" %in% loadedNamespaces()) { - - # if renv has already been loaded, and it's the requested version of renv, - # nothing to do - spec <- .getNamespaceInfo(.getNamespace("renv"), "spec") - if (identical(spec[["version"]], version)) - return(invisible(TRUE)) - - # otherwise, unload and attempt to load the correct version of renv - unloadNamespace("renv") - - } - - # load bootstrap tools - bootstrap <- function(version, library) { - - # attempt to download renv - tarball <- tryCatch(renv_bootstrap_download(version), error = identity) - if (inherits(tarball, "error")) - stop("failed to download renv ", version) - - # now attempt to install - status <- tryCatch(renv_bootstrap_install(version, tarball, library), error = identity) - if (inherits(status, "error")) - stop("failed to install renv ", version) - - } - - renv_bootstrap_tests_running <- function() { - getOption("renv.tests.running", default = FALSE) - } - - renv_bootstrap_repos <- function() { - - # check for repos override - repos <- Sys.getenv("RENV_CONFIG_REPOS_OVERRIDE", unset = NA) - if (!is.na(repos)) - return(repos) - - # if we're testing, re-use the test repositories - if (renv_bootstrap_tests_running()) - return(getOption("renv.tests.repos")) - - # retrieve current repos - repos <- getOption("repos") - - # ensure @CRAN@ entries are resolved - repos[repos == "@CRAN@"] <- "https://cloud.r-project.org" - - # add in renv.bootstrap.repos if set - default <- c(CRAN = "https://cloud.r-project.org") - extra <- getOption("renv.bootstrap.repos", default = default) - repos <- c(repos, extra) - - # remove duplicates that might've snuck in - dupes <- duplicated(repos) | duplicated(names(repos)) - repos[!dupes] - - } - - renv_bootstrap_download <- function(version) { - - # if the renv version number has 4 components, assume it must - # be retrieved via github - nv <- numeric_version(version) - components <- unclass(nv)[[1]] - - methods <- if (length(components) == 4L) { - list( - renv_bootstrap_download_github - ) - } else { - list( - renv_bootstrap_download_cran_latest, - renv_bootstrap_download_cran_archive - ) - } - - for (method in methods) { - path <- tryCatch(method(version), error = identity) - if (is.character(path) && file.exists(path)) - return(path) - } - - stop("failed to download renv ", version) - - } - - renv_bootstrap_download_impl <- function(url, destfile) { - - mode <- "wb" - - # https://bugs.r-project.org/bugzilla/show_bug.cgi?id=17715 - fixup <- - Sys.info()[["sysname"]] == "Windows" && - substring(url, 1L, 5L) == "file:" - - if (fixup) - mode <- "w+b" - - utils::download.file( - url = url, - destfile = destfile, - mode = mode, - quiet = TRUE - ) - - } - - renv_bootstrap_download_cran_latest <- function(version) { - - repos <- renv_bootstrap_download_cran_latest_find(version) - - message("* Downloading renv ", version, " from CRAN ... ", appendLF = FALSE) - - info <- tryCatch( - utils::download.packages( - pkgs = "renv", - repos = repos, - destdir = tempdir(), - quiet = TRUE - ), - condition = identity - ) - - if (inherits(info, "condition")) { - message("FAILED") - return(FALSE) - } - - message("OK") - info[1, 2] - - } - - renv_bootstrap_download_cran_latest_find <- function(version) { - - all <- renv_bootstrap_repos() - - for (repos in all) { - - db <- tryCatch( - as.data.frame( - x = utils::available.packages(repos = repos), - stringsAsFactors = FALSE - ), - error = identity - ) - - if (inherits(db, "error")) - next - - entry <- db[db$Package %in% "renv" & db$Version %in% version, ] - if (nrow(entry) == 0) - next - - return(repos) - - } - - fmt <- "renv %s is not available from your declared package repositories" - stop(sprintf(fmt, version)) - - } - - renv_bootstrap_download_cran_archive <- function(version) { - - name <- sprintf("renv_%s.tar.gz", version) - repos <- renv_bootstrap_repos() - urls <- file.path(repos, "src/contrib/Archive/renv", name) - destfile <- file.path(tempdir(), name) - - message("* Downloading renv ", version, " from CRAN archive ... ", appendLF = FALSE) - - for (url in urls) { - - status <- tryCatch( - renv_bootstrap_download_impl(url, destfile), - condition = identity - ) - - if (identical(status, 0L)) { - message("OK") - return(destfile) - } - - } - - message("FAILED") - return(FALSE) - - } - - renv_bootstrap_download_github <- function(version) { - - enabled <- Sys.getenv("RENV_BOOTSTRAP_FROM_GITHUB", unset = "TRUE") - if (!identical(enabled, "TRUE")) - return(FALSE) - - # prepare download options - pat <- Sys.getenv("GITHUB_PAT") - if (nzchar(Sys.which("curl")) && nzchar(pat)) { - fmt <- "--location --fail --header \"Authorization: token %s\"" - extra <- sprintf(fmt, pat) - saved <- options("download.file.method", "download.file.extra") - options(download.file.method = "curl", download.file.extra = extra) - on.exit(do.call(base::options, saved), add = TRUE) - } else if (nzchar(Sys.which("wget")) && nzchar(pat)) { - fmt <- "--header=\"Authorization: token %s\"" - extra <- sprintf(fmt, pat) - saved <- options("download.file.method", "download.file.extra") - options(download.file.method = "wget", download.file.extra = extra) - on.exit(do.call(base::options, saved), add = TRUE) - } - - message("* Downloading renv ", version, " from GitHub ... ", appendLF = FALSE) - - url <- file.path("https://api.github.com/repos/rstudio/renv/tarball", version) - name <- sprintf("renv_%s.tar.gz", version) - destfile <- file.path(tempdir(), name) - - status <- tryCatch( - renv_bootstrap_download_impl(url, destfile), - condition = identity - ) - - if (!identical(status, 0L)) { - message("FAILED") - return(FALSE) - } - - message("OK") - return(destfile) - - } - - renv_bootstrap_install <- function(version, tarball, library) { - - # attempt to install it into project library - message("* Installing renv ", version, " ... ", appendLF = FALSE) - dir.create(library, showWarnings = FALSE, recursive = TRUE) - - # invoke using system2 so we can capture and report output - bin <- R.home("bin") - exe <- if (Sys.info()[["sysname"]] == "Windows") "R.exe" else "R" - r <- file.path(bin, exe) - args <- c("--vanilla", "CMD", "INSTALL", "-l", shQuote(library), shQuote(tarball)) - output <- system2(r, args, stdout = TRUE, stderr = TRUE) - message("Done!") - - # check for successful install - status <- attr(output, "status") - if (is.numeric(status) && !identical(status, 0L)) { - header <- "Error installing renv:" - lines <- paste(rep.int("=", nchar(header)), collapse = "") - text <- c(header, lines, output) - writeLines(text, con = stderr()) - } - - status - - } - - renv_bootstrap_prefix <- function() { - - # construct version prefix - version <- paste(R.version$major, R.version$minor, sep = ".") - prefix <- paste("R", numeric_version(version)[1, 1:2], sep = "-") - - # include SVN revision for development versions of R - # (to avoid sharing platform-specific artefacts with released versions of R) - devel <- - identical(R.version[["status"]], "Under development (unstable)") || - identical(R.version[["nickname"]], "Unsuffered Consequences") - - if (devel) - prefix <- paste(prefix, R.version[["svn rev"]], sep = "-r") - - # build list of path components - components <- c(prefix, R.version$platform) - - # include prefix if provided by user - prefix <- Sys.getenv("RENV_PATHS_PREFIX") - if (nzchar(prefix)) - components <- c(prefix, components) - - # build prefix - paste(components, collapse = "/") - - } - - renv_bootstrap_library_root_name <- function(project) { - - # use project name as-is if requested - asis <- Sys.getenv("RENV_PATHS_LIBRARY_ROOT_ASIS", unset = "FALSE") - if (asis) - return(basename(project)) - - # otherwise, disambiguate based on project's path - id <- substring(renv_bootstrap_hash_text(project), 1L, 8L) - paste(basename(project), id, sep = "-") - - } - - renv_bootstrap_library_root <- function(project) { - - path <- Sys.getenv("RENV_PATHS_LIBRARY", unset = NA) - if (!is.na(path)) - return(path) - - path <- Sys.getenv("RENV_PATHS_LIBRARY_ROOT", unset = NA) - if (!is.na(path)) { - name <- renv_bootstrap_library_root_name(project) - return(file.path(path, name)) - } - - file.path(project, "renv/library") - - } - - renv_bootstrap_validate_version <- function(version) { - - loadedversion <- utils::packageDescription("renv", fields = "Version") - if (version == loadedversion) - return(TRUE) - - # assume four-component versions are from GitHub; three-component - # versions are from CRAN - components <- strsplit(loadedversion, "[.-]")[[1]] - remote <- if (length(components) == 4L) - paste("rstudio/renv", loadedversion, sep = "@") - else - paste("renv", loadedversion, sep = "@") - - fmt <- paste( - "renv %1$s was loaded from project library, but this project is configured to use renv %2$s.", - "Use `renv::record(\"%3$s\")` to record renv %1$s in the lockfile.", - "Use `renv::restore(packages = \"renv\")` to install renv %2$s into the project library.", - sep = "\n" - ) - - msg <- sprintf(fmt, loadedversion, version, remote) - warning(msg, call. = FALSE) - - FALSE - - } - - renv_bootstrap_hash_text <- function(text) { - - hashfile <- tempfile("renv-hash-") - on.exit(unlink(hashfile), add = TRUE) - - writeLines(text, con = hashfile) - tools::md5sum(hashfile) - - } - - renv_bootstrap_load <- function(project, libpath, version) { - - # try to load renv from the project library - if (!requireNamespace("renv", lib.loc = libpath, quietly = TRUE)) - return(FALSE) - - # warn if the version of renv loaded does not match - renv_bootstrap_validate_version(version) - - # load the project - renv::load(project) - - TRUE - - } - - # construct path to library root - root <- renv_bootstrap_library_root(project) - - # construct library prefix for platform - prefix <- renv_bootstrap_prefix() - - # construct full libpath - libpath <- file.path(root, prefix) - - # attempt to load - if (renv_bootstrap_load(project, libpath, version)) - return(TRUE) - - # load failed; inform user we're about to bootstrap - prefix <- paste("# Bootstrapping renv", version) - postfix <- paste(rep.int("-", 77L - nchar(prefix)), collapse = "") - header <- paste(prefix, postfix) - message(header) - - # perform bootstrap - bootstrap(version, libpath) - - # exit early if we're just testing bootstrap - if (!is.na(Sys.getenv("RENV_BOOTSTRAP_INSTALL_ONLY", unset = NA))) - return(TRUE) - - # try again to load - if (requireNamespace("renv", lib.loc = libpath, quietly = TRUE)) { - message("* Successfully installed and loaded renv ", version, ".") - return(renv::load()) - } - - # failed to download or load renv; warn the user - msg <- c( - "Failed to find an renv installation: the project will not be loaded.", - "Use `renv::activate()` to re-initialize the project." - ) - - warning(paste(msg, collapse = "\n"), call. = FALSE) - -}) diff --git a/input/gcamdata/renv/settings.json b/input/gcamdata/renv/settings.json new file mode 100644 index 0000000000..2fbd15a418 --- /dev/null +++ b/input/gcamdata/renv/settings.json @@ -0,0 +1,19 @@ +{ + "bioconductor.version": null, + "external.libraries": [], + "ignored.packages": [], + "package.dependency.fields": [ + "Imports", + "Depends", + "LinkingTo" + ], + "ppm.enabled": null, + "ppm.ignored.urls": [], + "r.version": [], + "snapshot.type": "explicit", + "use.cache": true, + "vcs.ignore.cellar": true, + "vcs.ignore.library": true, + "vcs.ignore.local": true, + "vcs.manage.ignores": true +} diff --git a/input/gcamdata/tests/testthat/test_driver.R b/input/gcamdata/tests/testthat/test_driver.R index 93028452f1..cd966cec51 100644 --- a/input/gcamdata/tests/testthat/test_driver.R +++ b/input/gcamdata/tests/testthat/test_driver.R @@ -29,7 +29,9 @@ if(require(mockr, quietly = TRUE, warn.conflicts = FALSE)) { from_file = TRUE), chunk_outputs = function(...) tibble(name = chunknames, output = c("o1", "o1")), - expect_error(driver(quiet = TRUE), regexp = "Outputs appear multiple times") + { + expect_error(driver(quiet = TRUE), regexp = "Outputs appear multiple times") + } ) }) @@ -43,7 +45,9 @@ if(require(mockr, quietly = TRUE, warn.conflicts = FALSE)) { from_file = c(TRUE, FALSE)), chunk_outputs = function(...) tibble(name = chunknames, output = c("o1", "o2")), - expect_error(driver(quiet = TRUE), regexp = "not marked as from file") + { + expect_error(driver(quiet = TRUE), regexp = "not marked as from file") + } ) }) @@ -66,7 +70,9 @@ if(require(mockr, quietly = TRUE, warn.conflicts = FALSE)) { add_precursors("i1") -> o2 return_data(o2) }, - expect_error(driver(quiet = TRUE), regexp = "is not returning what it promised") + { + expect_error(driver(quiet = TRUE), regexp = "is not returning what it promised") + } ) }) @@ -160,14 +166,18 @@ if(require(mockr, quietly = TRUE, warn.conflicts = FALSE)) { optional = FALSE), chunk_outputs = function(...) tibble(name = chunknames, output = c("i1", "i2")), - expect_error(driver(quiet = TRUE), regexp = "we are stuck") + { + expect_error(driver(quiet = TRUE), regexp = "we are stuck") + } ) }) test_that("run_chunk runs chunk", { with_mock( module_sample_sample = function(...) TRUE, - expect_true(run_chunk("module_sample_sample", 1)) + { + expect_true(run_chunk("module_sample_sample", 1)) + } ) }) @@ -179,8 +189,10 @@ if(require(mockr, quietly = TRUE, warn.conflicts = FALSE)) { input = c("Ai", "Ao", "Bo")), chunk_outputs = function(...) tibble(name = c("A", "B", "C"), output = c("Ao", "Bo", "Co")), - expect_silent(warn_data_injects()), - expect_equal(warn_data_injects(), 0) + { + expect_silent(warn_data_injects()) + expect_equal(warn_data_injects(), 0) + } ) # Chunks using temp-data-inject data because 'A' not enabled yet @@ -195,8 +207,10 @@ if(require(mockr, quietly = TRUE, warn.conflicts = FALSE)) { input = c("Ai", paste0(TEMP_DATA_INJECT, "Ao"), "Bo")), chunk_outputs = function(...) tibble(name = c("B", "C"), output = c("Bo", "Co")), - expect_silent(warn_data_injects()), - expect_equal(warn_data_injects(), 0) + { + expect_silent(warn_data_injects()) + expect_equal(warn_data_injects(), 0) + } ) # Chunk using temp-data-inject data but real data is available @@ -206,8 +220,10 @@ if(require(mockr, quietly = TRUE, warn.conflicts = FALSE)) { input = c("Ai", paste0(TEMP_DATA_INJECT, "Ao"), "Bo")), chunk_outputs = function(...) tibble(name = c("A", "B", "C"), output = c("Ao", "Bo", "Co")), - expect_message(warn_data_injects()), - expect_equal(warn_data_injects(), 1) + { + expect_message(warn_data_injects()) + expect_equal(warn_data_injects(), 1) + } ) }) @@ -220,8 +236,10 @@ if(require(mockr, quietly = TRUE, warn.conflicts = FALSE)) { from_file = c(TRUE, FALSE, FALSE)), chunk_outputs = function(...) tibble(name = c("A", "B", "C"), output = c("Ao", "Bo", "Co")), - expect_silent(warn_datachunk_bypass()), - expect_equal(warn_datachunk_bypass(), 0) + { + expect_silent(warn_datachunk_bypass()) + expect_equal(warn_datachunk_bypass(), 0) + } ) # Chunk bypassing a data chunk @@ -232,8 +250,10 @@ if(require(mockr, quietly = TRUE, warn.conflicts = FALSE)) { from_file = c(TRUE, FALSE)), chunk_outputs = function(...) tibble(name = c("dcA", "B", "C"), output = c("Ao", "Bo", "Co")), - expect_message(warn_datachunk_bypass()), - expect_equal(warn_datachunk_bypass(), 1) + { + expect_message(warn_datachunk_bypass()) + expect_equal(warn_datachunk_bypass(), 1) + } ) }) @@ -243,8 +263,10 @@ if(require(mockr, quietly = TRUE, warn.conflicts = FALSE)) { chunk_inputs = function(...) tibble(name = c("A", "B", "C"), input = c("inst/extdata/Ai", "Ao", "Bo"), from_file = c(TRUE, FALSE, FALSE)), - expect_silent(warn_mismarked_fileinputs()), - expect_equal(warn_mismarked_fileinputs(), 0) + { + expect_silent(warn_mismarked_fileinputs()) + expect_equal(warn_mismarked_fileinputs(), 0) + } ) # Chunk mismarking an input as from_file, when it's not @@ -252,8 +274,10 @@ if(require(mockr, quietly = TRUE, warn.conflicts = FALSE)) { chunk_inputs = function(...) tibble(name = c("A", "B", "C"), input = c("inst/extdata/Ai", "Ao", "Bo"), from_file = c(TRUE, FALSE, TRUE)), - expect_message(warn_mismarked_fileinputs()), - expect_equal(warn_mismarked_fileinputs(), 1) + { + expect_message(warn_mismarked_fileinputs()) + expect_equal(warn_mismarked_fileinputs(), 1) + } ) }) diff --git a/input/gcamdata/tests/testthat/test_graph_chunks.R b/input/gcamdata/tests/testthat/test_graph_chunks.R index aceda4a9bd..3bc4e16836 100644 --- a/input/gcamdata/tests/testthat/test_graph_chunks.R +++ b/input/gcamdata/tests/testthat/test_graph_chunks.R @@ -30,16 +30,18 @@ if(require(igraph, quietly = TRUE, warn.conflicts = FALSE) & chunk_outputs = function(...) tibble(name = chunknames, output = c("o1", "o2"), to_xml = FALSE), - # output should be a numeric matrix - expect_is(graph_chunks(), "matrix"), - expect_equal(dim(graph_chunks()), c(2, 2)), - expect_equal(colnames(graph_chunks()), chunknames), - # no dependencies - expect_true(all(graph_chunks() == 0)), - # filter works - expect_equal(dim(graph_chunks(module_filter = "m1")), c(1, 1)), - # filter for nonexistent module - expect_warning(graph_chunks(module_filter = "xxxxx")) + { + # output should be a numeric matrix + expect_is(graph_chunks(), "matrix") + expect_equal(dim(graph_chunks()), c(2, 2)) + expect_equal(colnames(graph_chunks()), chunknames) + # no dependencies + expect_true(all(graph_chunks() == 0)) + # filter works + expect_equal(dim(graph_chunks(module_filter = "m1")), c(1, 1)) + # filter for nonexistent module + expect_warning(graph_chunks(module_filter = "xxxxx")) + } ) }) @@ -58,15 +60,17 @@ if(require(igraph, quietly = TRUE, warn.conflicts = FALSE) & chunk_outputs = function(...) tibble(name = chunknames, output = c("o1", "o2"), to_xml = c(FALSE, TRUE)), - # output should be a numeric matrix - expect_is(graph_chunks(), "matrix"), - expect_equal(dim(graph_chunks(include_disabled = FALSE)), c(1, 1)), - expect_equal(dim(graph_chunks(include_disabled = TRUE)), c(2, 2)), - # adds a node for gcam - expect_equal(dim(graph_chunks(include_disabled = TRUE, - plot_gcam = TRUE)), c(3, 3)), - # dependencies - expect_equal(sum(graph_chunks(include_disabled = TRUE) > 0), 1) + { + # output should be a numeric matrix + expect_is(graph_chunks(), "matrix") + expect_equal(dim(graph_chunks(include_disabled = FALSE)), c(1, 1)) + expect_equal(dim(graph_chunks(include_disabled = TRUE)), c(2, 2)) + # adds a node for gcam + expect_equal(dim(graph_chunks(include_disabled = TRUE, + plot_gcam = TRUE)), c(3, 3)) + # dependencies + expect_equal(sum(graph_chunks(include_disabled = TRUE) > 0), 1) + } ) }) diff --git a/input/gcamdata/tests/testthat/test_pipeline-helpers.R b/input/gcamdata/tests/testthat/test_pipeline-helpers.R index 47197879c8..8cd9406f42 100644 --- a/input/gcamdata/tests/testthat/test_pipeline-helpers.R +++ b/input/gcamdata/tests/testthat/test_pipeline-helpers.R @@ -153,13 +153,13 @@ test_that("fast_left_join produces results equivalent to left_join", { B <- tibble(x = x, y = y, z2 = z2) ## Two join columns, no duplicate unjoined columns - ABdp <- left_join(A, B, by = c('x', 'y')) %>% arrange(x, y) + ABdp <- left_join(A, B, by = c('x', 'y'), relationship = "many-to-many") %>% arrange(x, y) ABdt <- fast_left_join(A, B, by = c('x', 'y')) %>% arrange(x, y) %>% select(x, y, z1, z2) expect_equivalent(ABdp, ABdt) ## One join column, y is a duplicate - ABdp <- left_join(A, B, by = 'x') %>% arrange(x, y.x, y.y) + ABdp <- left_join(A, B, by = 'x', relationship = "many-to-many") %>% arrange(x, y.x, y.y) ABdt <- fast_left_join(A, B, by = 'x') %>% rename(y.x = i.y, y.y = y) %>% arrange(x, y.x, y.y) %>% select(x, y.x, z1, y.y, z2) diff --git a/input/gcamdata/tests/testthat/test_util.R b/input/gcamdata/tests/testthat/test_util.R index 51215cc144..052562e3e1 100644 --- a/input/gcamdata/tests/testthat/test_util.R +++ b/input/gcamdata/tests/testthat/test_util.R @@ -61,8 +61,10 @@ if(require(mockr, quietly = TRUE, warn.conflicts = FALSE)) { from_file = TRUE), name == chunks), chunk_outputs = function(chunks, ...) filter(tibble(name = chunknames, output = c("o1", "o2")), name == chunks), - expect_identical(inputs_of("test1"), "i1"), - expect_identical(outputs_of("test2"), "o2") + { + expect_identical(inputs_of("test1"), "i1") + expect_identical(outputs_of("test2"), "o2") + } ) }) diff --git a/input/gcamdata/tests/testthat/test_xml_diff.R b/input/gcamdata/tests/testthat/test_xml_diff.R index d5ad511fc0..c995362b94 100644 --- a/input/gcamdata/tests/testthat/test_xml_diff.R +++ b/input/gcamdata/tests/testthat/test_xml_diff.R @@ -2,12 +2,14 @@ context("XML diff") +python_exe = 'python3' + basefile <- 'test-data/modeltime.xml' test_that('Python is available', { skip_on_os('windows') skip_if(Sys.getenv("SYSTEM_NAME") == "constance") - cmd <- system2('which', 'python', stdout=TRUE) + cmd <- system2('which', python_exe, stdout=TRUE) expect_true(file.exists(cmd), "Can't find python runtime for XML diff.") }) diff --git a/input/gcamdata/vignettes/driverdrake_vignette.Rmd b/input/gcamdata/vignettes/driverdrake_vignette.Rmd index a3609cb95e..17a68ae96d 100644 --- a/input/gcamdata/vignettes/driverdrake_vignette.Rmd +++ b/input/gcamdata/vignettes/driverdrake_vignette.Rmd @@ -106,7 +106,7 @@ driver_drake() print(Sys.time()-t1) ``` -Now we have our file back without re-running the entire datasystem. +Now we have our file back without re-running the entire data system. ## Arguments to `driver_drake()` @@ -114,7 +114,7 @@ Now we have our file back without re-running the entire datasystem. `driver_drake()` supports the same arguments as `driver()` (see `?driver`), except `write_outputs` (since `drake` must include all outputs in the cache). Thus users can still use `stop_before` or `return_data_map_only` as before except with the benefits of `drake`: if no modifications were made they can just be generated from cache. Users can also pass additional arguments to `driver_drake()` which will be forwarded on to `make()`. You can see `?drake::make` for all available options, but some useful ones include: -* `verbose`: integer, controls printing to the console/terminal (defualt: `1`) +* `verbose`: integer, controls printing to the console/terminal (default: `1`) * 0: print nothing * 1: print target names as they build * 2: show a progress bar to track what percent of targets have been completed. Also shows a spinner bar during preprocessing tasks diff --git a/input/policy/policy_target_2p6_spa1.xml b/input/policy/policy_target_2p6_spa1.xml index 1ad8db9068..8fa8977283 100644 --- a/input/policy/policy_target_2p6_spa1.xml +++ b/input/policy/policy_target_2p6_spa1.xml @@ -6,7 +6,7 @@ 2025 0.03 - 155.0 + 145.0 CO2_LTG 8000 diff --git a/input/policy/policy_target_2p6_spa23.xml b/input/policy/policy_target_2p6_spa23.xml index cb20123992..4cc47c1e04 100644 --- a/input/policy/policy_target_2p6_spa23.xml +++ b/input/policy/policy_target_2p6_spa23.xml @@ -6,7 +6,7 @@ 2040 0.03 - 1000.0 + 1050.0 CO2_LTG 8000 diff --git a/input/policy/policy_target_2p6_spa4.xml b/input/policy/policy_target_2p6_spa4.xml index 096a58bf78..e19bfb54e5 100644 --- a/input/policy/policy_target_2p6_spa4.xml +++ b/input/policy/policy_target_2p6_spa4.xml @@ -6,7 +6,7 @@ 2025 0.03 - 600.0 + 500.0 CO2_LTG 8000 diff --git a/input/policy/policy_target_2p6_spa5.xml b/input/policy/policy_target_2p6_spa5.xml index 0c2f9cc74b..eba793bd03 100644 --- a/input/policy/policy_target_2p6_spa5.xml +++ b/input/policy/policy_target_2p6_spa5.xml @@ -6,7 +6,7 @@ 2040 0.03 - 950.0 + 620.0 CO2_LTG 8000 diff --git a/output/queries/Main_queries.xml b/output/queries/Main_queries.xml index 2f62ac1fa5..4afaf407a8 100644 --- a/output/queries/Main_queries.xml +++ b/output/queries/Main_queries.xml @@ -100,7 +100,7 @@ | (: get renewables from H2ProdDist :) local:get-primary-renewable($currTree/supplysector[@name='H2 forecourt production'](: /*[@type='subsector' (: collapse :) and fn:not(@name='electrolysis')] :)//keyword[fn:exists(@primary-renewable)]/preceding-sibling::output-primary/physical-output, local:get-weighted-eff($currTree/supplysector[@name='H2 forecourt production']//keyword[fn:exists(@average-fossil-efficiency)]/preceding-sibling::output-primary)) | (: get the primaries :) - (: local:check-keyword( :) $currTree//keyword[fn:exists(@primary-consumption)]/preceding-sibling::input-energy[not(contains(@name, 'water'))]/demand-physical/text() (: ) :) + (: local:check-keyword( :) $currTree//keyword[fn:exists(@primary-consumption)]/preceding-sibling::*[@type='input' and not(contains(@name, 'water'))]/demand-physical/text() (: ) :) | (: get traditional biomass :) $currTree//*[@type='input' and @name='traditional biomass']/demand-physical/node() @@ -203,7 +203,7 @@ | (: get renewables from H2ProdDist :) local:get-primary-renewable($currTree/supplysector[@name='H2 forecourt production'](: /*[@type='subsector' (: collapse :) and fn:not(@name='electrolysis')] :)//keyword[fn:exists(@primary-renewable)]/preceding-sibling::output-primary/physical-output) | (: get the primaries :) - $currTree//keyword[fn:exists(@primary-consumption)]/preceding-sibling::input-energy/demand-physical/text() + $currTree//keyword[fn:exists(@primary-consumption)]/preceding-sibling::*[@type='input']/demand-physical/text() | (: get traditional biomass :) $currTree//*[@type='input' and @name='traditional biomass']/demand-physical/node() @@ -503,6 +503,7 @@ local:generate-sector-input-coefs(remove($outputNameQueue, 1), $currTree, $coefs + @@ -1857,7 +1858,7 @@ element input { else let $useOutputs := $currTree//output-primary[@type='output' and @name=$outputName]/physical-output, $sectorSums := for $out in $useOutputs - let $currInputs := $out/../following-sibling::input-energy/demand-physical[@vintage=$out/@vintage] + let $currInputs := $out/../following-sibling::*[@type='input']/demand-physical[@vintage=$out/@vintage] return for $currInput in $currInputs return @@ -1994,7 +1995,7 @@ element input { else let $useOutputs := $currTree//output-primary[@type='output' and @name=$outputName]/physical-output, $sectorSums := for $out in $useOutputs - let $currInputs := $out/../following-sibling::input-energy/demand-physical[@vintage=$out/@vintage] + let $currInputs := $out/../following-sibling::*[@type='input']/demand-physical[@vintage=$out/@vintage] return for $currInput in $currInputs return @@ -2420,7 +2421,7 @@ element input { sector physical-output[@vintage] - *[@type='sector']//output-internal-gains[@type='output']/physical-output/node() + *[@type='sector']//internal-gains[@type='output']/physical-output/node() @@ -6213,5 +6214,21 @@ A user can adjust the query to search for any of: + + + technology + emissions + *[@type = 'sector' ]/*[@type='subsector']//*[@type='technology']// + CO2/emissions/node() + + + + subsector + emissions-sequestered + *[@type = 'sector' ]/*[@type='subsector']//*[@type='technology']// + CO2/emissions-sequestered/node() + + + diff --git a/util/testing-framework b/util/testing-framework index 7653657d9e..7164ec5fe3 160000 --- a/util/testing-framework +++ b/util/testing-framework @@ -1 +1 @@ -Subproject commit 7653657d9eb8fee7f6ba7e3f4eb03241183ac9e9 +Subproject commit 7164ec5fe3fd82283e1e576307ce5313156e86f8