From 2370d5e76a4e699e6437a30323cc761e3a1f5efc Mon Sep 17 00:00:00 2001 From: Jared Lewis Date: Sat, 14 May 2022 08:43:01 +1000 Subject: [PATCH 01/19] First cut of backend --- src/scmdata/database/_database.py | 2 +- src/scmdata/database/backends/__init__.py | 3 +- src/scmdata/database/backends/api.py | 68 +++++++++++++++++++++++ src/scmdata/remote.py | 35 ++++++++++++ tests/unit/database/backends/test_api.py | 16 ++++++ tests/unit/test_remote.py | 36 ++++++++++++ 6 files changed, 158 insertions(+), 2 deletions(-) create mode 100644 src/scmdata/database/backends/api.py create mode 100644 src/scmdata/remote.py create mode 100644 tests/unit/database/backends/test_api.py create mode 100644 tests/unit/test_remote.py diff --git a/src/scmdata/database/_database.py b/src/scmdata/database/_database.py index ca9a52d0..5e889a2c 100644 --- a/src/scmdata/database/_database.py +++ b/src/scmdata/database/_database.py @@ -24,7 +24,7 @@ class ScmDatabase: def __init__( self, - root_dir, + root_dir=None, levels=("climate_model", "variable", "region", "scenario"), backend="netcdf", backend_config=None, diff --git a/src/scmdata/database/backends/__init__.py b/src/scmdata/database/backends/__init__.py index 6b5982a3..3ce9a865 100644 --- a/src/scmdata/database/backends/__init__.py +++ b/src/scmdata/database/backends/__init__.py @@ -5,10 +5,11 @@ from .base import BaseDatabaseBackend # noqa: F401, E402 from .netcdf import NetCDFDatabaseBackend +from .api import APIDatabaseBackend """ Loaded backends for ScmDatabase Additional backends should be based upon :class:`BaseDatabaseBackend` """ -backend_classes = {"netcdf": NetCDFDatabaseBackend} +backend_classes = {"netcdf": NetCDFDatabaseBackend, "api": APIDatabaseBackend} diff --git a/src/scmdata/database/backends/api.py b/src/scmdata/database/backends/api.py new file mode 100644 index 00000000..cef94665 --- /dev/null +++ b/src/scmdata/database/backends/api.py @@ -0,0 +1,68 @@ +from scmdata.database.backends import BaseDatabaseBackend + + +class APIDatabaseBackend(BaseDatabaseBackend): + """ + Fetch data from a supported API + + Supported APIs provide two endpoints + """ + + def save(self, sr): + """ + Save data + + This is not possible for an API backend + + Parameters + ---------- + sr: scmdata.ScmRun + + Raises + ------ + NotImplementedError + API backends are read-only + """ + raise NotImplementedError("API backends are read-only") + + def load(self, key): + """ + Load data at a given key + + Parameters + ---------- + key : str + Key to load + + Returns + ------- + scmdata.ScmRun + """ + raise NotImplementedError("API backends are read-only") + + def delete(self, key): + """ + Delete a given key + + Parameters + ---------- + key: str + """ + raise NotImplementedError("API backends are read-only") + + def get(self, filters): + """ + Get all matching keys for a given filter + + Parameters + ---------- + filters: dict of str + String filters + If a level is missing then all values are fetched + + Returns + ------- + list of str or dict + Each item is a key which may contain data which is of interest + """ + pass diff --git a/src/scmdata/remote.py b/src/scmdata/remote.py new file mode 100644 index 00000000..40acf7cb --- /dev/null +++ b/src/scmdata/remote.py @@ -0,0 +1,35 @@ +import pandas as pd +import requests +import urllib.parse +from scmdata import ScmRun +import io + + +def read_api_timeseries(url, **filters): + timeseries_url = urllib.parse.urljoin(url, "timeseries") + filters["format"] = "csv" + try: + resp = requests.get(timeseries_url, params=filters) + resp.raise_for_status() + except Exception as e: + raise ValueError(f"Could not fetch data: {str(e)}") + + df = pd.read_csv(io.StringIO(resp.text)) + return ScmRun(df) + + +def read_api_facets(url, **filters): + timeseries_url = urllib.parse.urljoin(url, "facets") + filters["format"] = "csv" + try: + resp = requests.get(timeseries_url, params=filters) + resp.raise_for_status() + except Exception as e: + raise ValueError(f"Could not fetch data: {str(e)}") + + data = resp.json() + items = [] + for name in data: + for item in data[name]: + items.append({"name": name, **item}) + return pd.DataFrame(items)[["name", "value", "count"]] diff --git a/tests/unit/database/backends/test_api.py b/tests/unit/database/backends/test_api.py new file mode 100644 index 00000000..07868cef --- /dev/null +++ b/tests/unit/database/backends/test_api.py @@ -0,0 +1,16 @@ +from scmdata.database.backends import APIDatabaseBackend +from scmdata.database import ScmDatabase + + +def test_api_backend(): + backend = APIDatabaseBackend() + + pass + + +def test_api_database(): + db = ScmDatabase( + backend="api", + backend_config={"url": "https://api.climateresource.com.au/ndcs/v1/"}, + ) + db.load() diff --git a/tests/unit/test_remote.py b/tests/unit/test_remote.py new file mode 100644 index 00000000..8b197bf4 --- /dev/null +++ b/tests/unit/test_remote.py @@ -0,0 +1,36 @@ +import scmdata +from scmdata.remote import read_api_facets, read_api_timeseries + + +def test_read_ndcs(): + ndcs_url = "https://api.climateresource.com.au/ndcs/v1" + + res = read_api_timeseries( + ndcs_url, + **{ + "version": "14Feb2022b_CR", + "variable": "Emissions|Total *", + "hot_air": "exclude", + "category": "Current", + }, + ) + + assert len(res) + assert isinstance(res, scmdata.ScmRun) + + +def test_read_facets(): + ndcs_url = "https://api.climateresource.com.au/ndcs/v1/" + + res = read_api_facets( + ndcs_url, + **{ + "version": "14Feb2022b_CR", + "variable": "Emissions|Total *", + "hot_air": "exclude", + "category": "Current", + }, + ) + + assert (res.columns == ["name", "value", "count"]).all() + assert len(res) From 3703a95880bed2ebcd5c1f715e06f0041e1755cf Mon Sep 17 00:00:00 2001 From: Jared Lewis Date: Mon, 16 May 2022 21:51:33 +1000 Subject: [PATCH 02/19] Use RemoteQueryError exception --- src/scmdata/errors.py | 12 ++++++++++ src/scmdata/remote.py | 56 ++++++++++++++++++++++++++++++++++--------- 2 files changed, 57 insertions(+), 11 deletions(-) diff --git a/src/scmdata/errors.py b/src/scmdata/errors.py index 78270a45..6b42b58a 100644 --- a/src/scmdata/errors.py +++ b/src/scmdata/errors.py @@ -2,6 +2,7 @@ Custom errors and exceptions used by scmdata """ import pandas as pd +import requests.exceptions class NonUniqueMetadataError(ValueError): @@ -63,3 +64,14 @@ class InsufficientDataError(Exception): """ Insufficient data is available to interpolate/extrapolate """ + + +class RemoteQueryError(Exception): + """ + Something went wrong when fetching data from a remote source + """ + + def __init__(self, msg: str, error: requests.exceptions.RequestException): + msg = f"{msg}: {str(error)}" + super().__init__(msg) + self.error = error diff --git a/src/scmdata/remote.py b/src/scmdata/remote.py index 40acf7cb..131b3442 100644 --- a/src/scmdata/remote.py +++ b/src/scmdata/remote.py @@ -4,15 +4,52 @@ from scmdata import ScmRun import io +from scmdata.errors import RemoteQueryError -def read_api_timeseries(url, **filters): - timeseries_url = urllib.parse.urljoin(url, "timeseries") - filters["format"] = "csv" + +def _make_request(method, url, params) -> requests.Response: try: - resp = requests.get(timeseries_url, params=filters) + resp = requests.request(method, url, params=params) resp.raise_for_status() - except Exception as e: - raise ValueError(f"Could not fetch data: {str(e)}") + + return resp + except requests.exceptions.ConnectionError as err: + # connection failure or DNS error + raise RemoteQueryError("Failed to connect", error=err) + except requests.exceptions.Timeout as err: + # Failed to get a response from the API + raise RemoteQueryError("Connection timeout", error=err) + except requests.exceptions.HTTPError as err: + # Handles non-200 status codes + raise RemoteQueryError("Client error", error=err) + except requests.exceptions.RequestException as err: + raise RemoteQueryError("Unknown error occurred when fetching data", error=err) + + +def read_api_timeseries(url: str, **filters): + """ + Fetch data from a Timeseries API + + Parameters + ---------- + url + + + filters + + Raises + ------ + RemoteQueryError + Any + + Returns + ------- + Data matching query + """ + timeseries_url = urllib.parse.urljoin(url, "timeseries") + filters["format"] = "csv" # CSV format is faster to parse compared to json + + resp = _make_request("get", timeseries_url, filters) df = pd.read_csv(io.StringIO(resp.text)) return ScmRun(df) @@ -21,11 +58,8 @@ def read_api_timeseries(url, **filters): def read_api_facets(url, **filters): timeseries_url = urllib.parse.urljoin(url, "facets") filters["format"] = "csv" - try: - resp = requests.get(timeseries_url, params=filters) - resp.raise_for_status() - except Exception as e: - raise ValueError(f"Could not fetch data: {str(e)}") + + resp = _make_request("get", timeseries_url, filters) data = resp.json() items = [] From eec228321d55fb2bb517378f623433681f0a4968 Mon Sep 17 00:00:00 2001 From: Jared Lewis Date: Tue, 17 May 2022 08:52:45 +1000 Subject: [PATCH 03/19] Add RemoteDataset class --- src/scmdata/database/backends/__init__.py | 3 +- src/scmdata/database/backends/api.py | 68 ------------------ src/scmdata/remote.py | 38 +++++++++- tests/unit/test_remote.py | 88 +++++++++++++++++++++-- 4 files changed, 119 insertions(+), 78 deletions(-) delete mode 100644 src/scmdata/database/backends/api.py diff --git a/src/scmdata/database/backends/__init__.py b/src/scmdata/database/backends/__init__.py index 3ce9a865..6b5982a3 100644 --- a/src/scmdata/database/backends/__init__.py +++ b/src/scmdata/database/backends/__init__.py @@ -5,11 +5,10 @@ from .base import BaseDatabaseBackend # noqa: F401, E402 from .netcdf import NetCDFDatabaseBackend -from .api import APIDatabaseBackend """ Loaded backends for ScmDatabase Additional backends should be based upon :class:`BaseDatabaseBackend` """ -backend_classes = {"netcdf": NetCDFDatabaseBackend, "api": APIDatabaseBackend} +backend_classes = {"netcdf": NetCDFDatabaseBackend} diff --git a/src/scmdata/database/backends/api.py b/src/scmdata/database/backends/api.py deleted file mode 100644 index cef94665..00000000 --- a/src/scmdata/database/backends/api.py +++ /dev/null @@ -1,68 +0,0 @@ -from scmdata.database.backends import BaseDatabaseBackend - - -class APIDatabaseBackend(BaseDatabaseBackend): - """ - Fetch data from a supported API - - Supported APIs provide two endpoints - """ - - def save(self, sr): - """ - Save data - - This is not possible for an API backend - - Parameters - ---------- - sr: scmdata.ScmRun - - Raises - ------ - NotImplementedError - API backends are read-only - """ - raise NotImplementedError("API backends are read-only") - - def load(self, key): - """ - Load data at a given key - - Parameters - ---------- - key : str - Key to load - - Returns - ------- - scmdata.ScmRun - """ - raise NotImplementedError("API backends are read-only") - - def delete(self, key): - """ - Delete a given key - - Parameters - ---------- - key: str - """ - raise NotImplementedError("API backends are read-only") - - def get(self, filters): - """ - Get all matching keys for a given filter - - Parameters - ---------- - filters: dict of str - String filters - If a level is missing then all values are fetched - - Returns - ------- - list of str or dict - Each item is a key which may contain data which is of interest - """ - pass diff --git a/src/scmdata/remote.py b/src/scmdata/remote.py index 131b3442..6e0ea623 100644 --- a/src/scmdata/remote.py +++ b/src/scmdata/remote.py @@ -1,6 +1,9 @@ import pandas as pd import requests import urllib.parse +from typing import List + +import scmdata from scmdata import ScmRun import io @@ -57,7 +60,6 @@ def read_api_timeseries(url: str, **filters): def read_api_facets(url, **filters): timeseries_url = urllib.parse.urljoin(url, "facets") - filters["format"] = "csv" resp = _make_request("get", timeseries_url, filters) @@ -67,3 +69,37 @@ def read_api_facets(url, **filters): for item in data[name]: items.append({"name": name, **item}) return pd.DataFrame(items)[["name", "value", "count"]] + + +def read_api_meta(url, **filters): + timeseries_url = urllib.parse.urljoin(url, "meta") + + resp = _make_request("get", timeseries_url, filters) + + data = resp.json() + return pd.DataFrame(data["meta"]) + + +class RemoteDataset: + def __init__(self, base_url: str, filters=None): + self.base_url = base_url + self.filters = filters or {} + + def meta(self) -> pd.DataFrame: + return read_api_meta(self.base_url, **self.filters) + + def get_unique_meta(self, col: str) -> List: + # TODO: handle single item kwarg + return self.meta()[col].unique() + + def query(self) -> scmdata.ScmRun: + return read_api_timeseries(self.base_url, **self.filters) + + def filter(self, **filters): + new_filters = {**self.filters} + for k in filters: + if k in self.filters: + raise ValueError(f"Already filtering by {k}") + new_filters[k] = filters[k] + + return RemoteDataset(base_url=self.base_url, filters=new_filters) diff --git a/tests/unit/test_remote.py b/tests/unit/test_remote.py index 8b197bf4..da286dfa 100644 --- a/tests/unit/test_remote.py +++ b/tests/unit/test_remote.py @@ -1,12 +1,21 @@ +import os +import pandas as pd + import scmdata -from scmdata.remote import read_api_facets, read_api_timeseries +from scmdata.remote import ( + read_api_facets, + read_api_timeseries, + read_api_meta, + RemoteDataset, +) -def test_read_ndcs(): - ndcs_url = "https://api.climateresource.com.au/ndcs/v1" +NDCS_URL = "https://api.climateresource.com.au/ndcs/v1" + +def test_read_ndcs(): res = read_api_timeseries( - ndcs_url, + NDCS_URL, **{ "version": "14Feb2022b_CR", "variable": "Emissions|Total *", @@ -20,10 +29,8 @@ def test_read_ndcs(): def test_read_facets(): - ndcs_url = "https://api.climateresource.com.au/ndcs/v1/" - res = read_api_facets( - ndcs_url, + NDCS_URL, **{ "version": "14Feb2022b_CR", "variable": "Emissions|Total *", @@ -34,3 +41,70 @@ def test_read_facets(): assert (res.columns == ["name", "value", "count"]).all() assert len(res) + + +def test_read_meta(): + res = read_api_meta( + NDCS_URL, + version="14Feb2022b_CR", + variable="Emissions|Total *", + ) + + assert isinstance(res, pd.DataFrame) + assert "category" in res + assert "Emissions|Total GHG excl. LULUCF" in res["variable"].tolist() + + +class MockRemoteDataset(RemoteDataset): + # replaces remote queries with static dataset + + def __init__(self, *args, **kwargs): + super(MockRemoteDataset, self).__init__(*args, **kwargs) + self._data_queries = [] + self._meta_queries = [] + + def _get_data(self): + from conftest import TEST_DATA + + fname = os.path.join(TEST_DATA, "sr15", "sr15-output.csv") + return scmdata.ScmRun(fname).filter(**self.filters) + + def query(self) -> scmdata.ScmRun: + self._data_queries.append(self.filters) + return self._get_data() + + def meta(self) -> pd.DataFrame: + self._meta_queries.append(self.filters) + return self._get_data().meta + + +def test_remote_dataset_filtering(): + ds = MockRemoteDataset(NDCS_URL) + + filtered_ds = ds.filter(variable="Population") + assert filtered_ds.filters == {"variable": "Population"} + + # returns a new object + assert id(filtered_ds) != id(ds) + + # Can also filter on creation + ds = MockRemoteDataset(NDCS_URL, {"variable": "Population"}) + assert ds.filters == {"variable": "Population"} + + +def test_remote_dataset_real(): + ds = RemoteDataset(NDCS_URL) + + assert "USA" in ds.get_unique_meta("region") + + ds = ds.filter(region="AUS") + assert "USA" not in ds.get_unique_meta("region") + assert "AUS" in ds.get_unique_meta("region") + ds_meta = ds.meta() + + run = ds.query() + assert isinstance(run, scmdata.ScmRun) + pd.testing.assert_frame_equal(run.meta, ds_meta) + + # We should be able to use other ScmRun funcs + # ds.lineplot() From 5fc25a9cf719a1706a881c4270142e975c93d01b Mon Sep 17 00:00:00 2001 From: Jared Lewis Date: Tue, 17 May 2022 08:53:46 +1000 Subject: [PATCH 04/19] Add to public interface --- src/scmdata/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/scmdata/__init__.py b/src/scmdata/__init__.py index 5ab30508..6628d159 100644 --- a/src/scmdata/__init__.py +++ b/src/scmdata/__init__.py @@ -17,3 +17,4 @@ from scmdata.run import ScmRun, run_append # noqa: F401, E402 from scmdata.database import ScmDatabase # noqa: F401, E402 +from scmdata.remote import RemoteDataset # noqa: F401, E402 From 1010b06f7ca8528e3c3564f0e5744a6547e10c07 Mon Sep 17 00:00:00 2001 From: Jared Lewis Date: Thu, 19 May 2022 08:23:39 +1000 Subject: [PATCH 05/19] Add no_duplicates to get_unique_meta --- src/scmdata/remote.py | 101 +++++++++++++++++++++++++++++++++----- tests/unit/test_remote.py | 76 +++++++++++++++++++++------- 2 files changed, 148 insertions(+), 29 deletions(-) diff --git a/src/scmdata/remote.py b/src/scmdata/remote.py index 6e0ea623..b6c6bd45 100644 --- a/src/scmdata/remote.py +++ b/src/scmdata/remote.py @@ -1,7 +1,7 @@ import pandas as pd import requests import urllib.parse -from typing import List +from typing import List, Optional import scmdata from scmdata import ScmRun @@ -9,6 +9,10 @@ from scmdata.errors import RemoteQueryError +import logging + +logger = logging.getLogger(__name__) + def _make_request(method, url, params) -> requests.Response: try: @@ -29,7 +33,7 @@ def _make_request(method, url, params) -> requests.Response: raise RemoteQueryError("Unknown error occurred when fetching data", error=err) -def read_api_timeseries(url: str, **filters): +def _read_api_timeseries(url: str, **filters): """ Fetch data from a Timeseries API @@ -58,7 +62,7 @@ def read_api_timeseries(url: str, **filters): return ScmRun(df) -def read_api_facets(url, **filters): +def _read_api_facets(url, **filters): timeseries_url = urllib.parse.urljoin(url, "facets") resp = _make_request("get", timeseries_url, filters) @@ -71,7 +75,7 @@ def read_api_facets(url, **filters): return pd.DataFrame(items)[["name", "value", "count"]] -def read_api_meta(url, **filters): +def _read_api_meta(url, **filters): timeseries_url = urllib.parse.urljoin(url, "meta") resp = _make_request("get", timeseries_url, filters) @@ -85,15 +89,90 @@ def __init__(self, base_url: str, filters=None): self.base_url = base_url self.filters = filters or {} - def meta(self) -> pd.DataFrame: - return read_api_meta(self.base_url, **self.filters) + def __getattr__(self, item): + # Proxy ScmRun functions + if hasattr(ScmRun, item): + return getattr(self.query(), item) - def get_unique_meta(self, col: str) -> List: - # TODO: handle single item kwarg - return self.meta()[col].unique() + def meta(self) -> pd.DataFrame: + """ + Fetch metadata about the filtered dataset from the API + Returns + ------- + The meta data for each row. This is the equivalent to :func:`scmdata.ScmRun.meta` + """ + logger.info( + f"Fetching remote meta from {self.base_url} matching {self.filters}" + ) + return _read_api_meta(self.base_url, **self.filters) + + def get_unique_meta( + self, + col: str, + no_duplicates: Optional[bool] = False, + ) -> List: + """ + Get unique values in a metadata column. + + This performs a remote query to the API server + + Parameters + ---------- + col + Column to retrieve metadata for + + no_duplicates: + Should I raise an error if there is more than one unique value in the + metadata column? + + Raises + ------ + ValueError + There is more than one unique value in the metadata column and + ``no_duplicates`` is ``True``. + + KeyError + If a ``meta`` column does not exist in the run's metadata + + RemoteQueryError + Something went wrong when querying the API + + Returns + ------- + [List[Any], Any] + List of unique metadata values. If ``no_duplicates`` is ``True`` the + metadata value will be returned (rather than a list). + + """ + vals = self.meta()[col].unique().tolist() + if no_duplicates: + if len(vals) != 1: + raise ValueError( + "`{}` column is not unique (found values: {})".format(col, vals) + ) + + return vals[0] + return vals def query(self) -> scmdata.ScmRun: - return read_api_timeseries(self.base_url, **self.filters) + """ + Fetch timeseries from the API + + The resulting data will follow any applied filters (see :func:`filters`). + + Raises + ------ + RemoteQueryError + Something went wrong when querying the API + + Returns + ------- + :class:`scmdata.ScmRun` + """ + logger.info( + f"Fetching remote timeseries from {self.base_url} matching {self.filters}" + ) + return _read_api_timeseries(self.base_url, **self.filters) def filter(self, **filters): new_filters = {**self.filters} @@ -102,4 +181,4 @@ def filter(self, **filters): raise ValueError(f"Already filtering by {k}") new_filters[k] = filters[k] - return RemoteDataset(base_url=self.base_url, filters=new_filters) + return self.__class__(base_url=self.base_url, filters=new_filters) diff --git a/tests/unit/test_remote.py b/tests/unit/test_remote.py index da286dfa..1e8a4777 100644 --- a/tests/unit/test_remote.py +++ b/tests/unit/test_remote.py @@ -1,20 +1,21 @@ import os import pandas as pd +import pytest import scmdata from scmdata.remote import ( - read_api_facets, - read_api_timeseries, - read_api_meta, + _read_api_facets, + _read_api_timeseries, + _read_api_meta, RemoteDataset, ) - +from scmdata.errors import NonUniqueMetadataError, RemoteQueryError NDCS_URL = "https://api.climateresource.com.au/ndcs/v1" def test_read_ndcs(): - res = read_api_timeseries( + res = _read_api_timeseries( NDCS_URL, **{ "version": "14Feb2022b_CR", @@ -29,7 +30,7 @@ def test_read_ndcs(): def test_read_facets(): - res = read_api_facets( + res = _read_api_facets( NDCS_URL, **{ "version": "14Feb2022b_CR", @@ -44,7 +45,7 @@ def test_read_facets(): def test_read_meta(): - res = read_api_meta( + res = _read_api_meta( NDCS_URL, version="14Feb2022b_CR", variable="Emissions|Total *", @@ -57,25 +58,30 @@ def test_read_meta(): class MockRemoteDataset(RemoteDataset): # replaces remote queries with static dataset + _data_queries = [] + _meta_queries = [] + _side_effect = None - def __init__(self, *args, **kwargs): - super(MockRemoteDataset, self).__init__(*args, **kwargs) - self._data_queries = [] - self._meta_queries = [] + def _clear(self): + MockRemoteDataset._data_queries.clear() + MockRemoteDataset._meta_queries.clear() - def _get_data(self): + def _get_data(self, filters): from conftest import TEST_DATA + if self._side_effect: + raise self._side_effect + fname = os.path.join(TEST_DATA, "sr15", "sr15-output.csv") - return scmdata.ScmRun(fname).filter(**self.filters) + return scmdata.ScmRun(fname).filter(**filters) def query(self) -> scmdata.ScmRun: - self._data_queries.append(self.filters) - return self._get_data() + MockRemoteDataset._data_queries.append(self.filters) + return self._get_data(self.filters) def meta(self) -> pd.DataFrame: - self._meta_queries.append(self.filters) - return self._get_data().meta + MockRemoteDataset._meta_queries.append(self.filters) + return self._get_data(self.filters).meta def test_remote_dataset_filtering(): @@ -92,6 +98,39 @@ def test_remote_dataset_filtering(): assert ds.filters == {"variable": "Population"} +def test_remote_query(): + ds = MockRemoteDataset(NDCS_URL) + ds._clear() + + res = ds.query() + res_filtered = ds.filter(variable="Emissions|CO2").query() + + assert isinstance(res, scmdata.ScmRun) + assert isinstance(res_filtered, scmdata.ScmRun) + assert MockRemoteDataset._data_queries == [{}, {"variable": "Emissions|CO2"}] + + +def test_remote_get_unique_meta(): + ds = MockRemoteDataset(NDCS_URL) + + variables = ds.get_unique_meta("variable") + assert isinstance(variables, list) + assert len(variables) + + with pytest.raises(KeyError): + ds.get_unique_meta("unknown") + + with pytest.raises(ValueError): + ds.get_unique_meta("variable", True) + + single = ds.filter(variable="Temperature|Global Mean").get_unique_meta("unit", True) + assert single == "°C" + + ds._side_effect = RemoteQueryError("Something went wrong", "opps") + with pytest.raises(RemoteQueryError, match="Something went wrong: opps"): + ds.get_unique_meta("variable") + + def test_remote_dataset_real(): ds = RemoteDataset(NDCS_URL) @@ -107,4 +146,5 @@ def test_remote_dataset_real(): pd.testing.assert_frame_equal(run.meta, ds_meta) # We should be able to use other ScmRun funcs - # ds.lineplot() + res = ds.process_over("variable", "mean") + assert isinstance(res, pd.DataFrame) From 3a807b9c5dcd317309fe7e0ff393bc634014218f Mon Sep 17 00:00:00 2001 From: Jared Lewis Date: Thu, 19 May 2022 08:38:03 +1000 Subject: [PATCH 06/19] Get meta_cols from server --- src/scmdata/remote.py | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/src/scmdata/remote.py b/src/scmdata/remote.py index b6c6bd45..6e48b1f8 100644 --- a/src/scmdata/remote.py +++ b/src/scmdata/remote.py @@ -34,25 +34,6 @@ def _make_request(method, url, params) -> requests.Response: def _read_api_timeseries(url: str, **filters): - """ - Fetch data from a Timeseries API - - Parameters - ---------- - url - - - filters - - Raises - ------ - RemoteQueryError - Any - - Returns - ------- - Data matching query - """ timeseries_url = urllib.parse.urljoin(url, "timeseries") filters["format"] = "csv" # CSV format is faster to parse compared to json @@ -89,6 +70,10 @@ def __init__(self, base_url: str, filters=None): self.base_url = base_url self.filters = filters or {} + def _read_api_info(self): + facets = _read_api_facets(self.base_url) + self._meta_cols = list(facets.keys()) + def __getattr__(self, item): # Proxy ScmRun functions if hasattr(ScmRun, item): @@ -172,7 +157,20 @@ def query(self) -> scmdata.ScmRun: logger.info( f"Fetching remote timeseries from {self.base_url} matching {self.filters}" ) - return _read_api_timeseries(self.base_url, **self.filters) + + if self._meta_cols is None: + self._read_api_info() + + valid_filters = { + k: self.filters[k] for k in self.filters if k in self._meta_cols + } + extra_filters = { + k: self.filters[k] for k in self.filters if k not in self._meta_cols + } + + return _read_api_timeseries(self.base_url, **valid_filters).filter( + **extra_filters + ) def filter(self, **filters): new_filters = {**self.filters} From a7b86b197723f4fb5c03eab7d6bb09ceed8777aa Mon Sep 17 00:00:00 2001 From: Jared Lewis Date: Thu, 19 May 2022 09:19:17 +1000 Subject: [PATCH 07/19] Split unit tests from integration --- src/scmdata/remote.py | 49 +++++++++++++++----- tests/integration/test_remote.py | 72 ++++++++++++++++++++++++++++++ tests/unit/test_remote.py | 76 +++++++------------------------- 3 files changed, 124 insertions(+), 73 deletions(-) create mode 100644 tests/integration/test_remote.py diff --git a/src/scmdata/remote.py b/src/scmdata/remote.py index 6e48b1f8..a1d6c989 100644 --- a/src/scmdata/remote.py +++ b/src/scmdata/remote.py @@ -2,6 +2,7 @@ import requests import urllib.parse from typing import List, Optional +from functools import lru_cache import scmdata from scmdata import ScmRun @@ -43,6 +44,7 @@ def _read_api_timeseries(url: str, **filters): return ScmRun(df) +@lru_cache(32) def _read_api_facets(url, **filters): timeseries_url = urllib.parse.urljoin(url, "facets") @@ -69,6 +71,7 @@ class RemoteDataset: def __init__(self, base_url: str, filters=None): self.base_url = base_url self.filters = filters or {} + self._meta_cols = None def _read_api_info(self): facets = _read_api_facets(self.base_url) @@ -79,6 +82,14 @@ def __getattr__(self, item): if hasattr(ScmRun, item): return getattr(self.query(), item) + def url(self) -> str: + opts = self.filter_options() + filters = {k: self.filters[k] for k in self.filters.keys() if k in opts} + + return urllib.parse.urljoin( + self.base_url, "timeseries" + ) + urllib.parse.urlencode(filters) + def meta(self) -> pd.DataFrame: """ Fetch metadata about the filtered dataset from the API @@ -139,7 +150,14 @@ def get_unique_meta( return vals[0] return vals - def query(self) -> scmdata.ScmRun: + def filter_options(self) -> List[str]: + if self._meta_cols is None: + self._read_api_info() + + extra_filters = ["year.min", "year.max"] + return [*self._meta_cols, *extra_filters] + + def query(self, raise_on_error=False) -> scmdata.ScmRun: """ Fetch timeseries from the API @@ -158,21 +176,28 @@ def query(self) -> scmdata.ScmRun: f"Fetching remote timeseries from {self.base_url} matching {self.filters}" ) - if self._meta_cols is None: - self._read_api_info() + opts = self.filter_options() + filter_keys = self.filters.keys() + filters = {k: self.filters[k] for k in filter_keys if k in opts} - valid_filters = { - k: self.filters[k] for k in self.filters if k in self._meta_cols - } - extra_filters = { - k: self.filters[k] for k in self.filters if k not in self._meta_cols - } + extra_filters = [k for k in filter_keys if k not in self._meta_cols] + if len(extra_filters): - return _read_api_timeseries(self.base_url, **valid_filters).filter( - **extra_filters - ) + msg = f"Could not filter dataset by {extra_filters}" + if raise_on_error: + raise ValueError(msg) + logger.warning(msg + ". Ignoring") + run = _read_api_timeseries(self.base_url, **filters) + + run.source = self def filter(self, **filters): + if not filters.get("keep", True): + logger.warning( + "'keep' is not handled by the API. Querying data and performing filtering locally" + ) + return self.query().filter(**filters) + new_filters = {**self.filters} for k in filters: if k in self.filters: diff --git a/tests/integration/test_remote.py b/tests/integration/test_remote.py new file mode 100644 index 00000000..2bef054a --- /dev/null +++ b/tests/integration/test_remote.py @@ -0,0 +1,72 @@ +import pandas as pd + +import scmdata +from scmdata.remote import ( + _read_api_facets, + _read_api_timeseries, + _read_api_meta, + RemoteDataset, +) + +NDCS_URL = "https://api.climateresource.com.au/ndcs/v1" + + +def test_read_ndcs(): + res = _read_api_timeseries( + NDCS_URL, + **{ + "version": "14Feb2022b_CR", + "variable": "Emissions|Total *", + "hot_air": "exclude", + "category": "Current", + }, + ) + + assert len(res) + assert isinstance(res, scmdata.ScmRun) + + +def test_read_facets(): + res = _read_api_facets( + NDCS_URL, + **{ + "version": "14Feb2022b_CR", + "variable": "Emissions|Total *", + "hot_air": "exclude", + "category": "Current", + }, + ) + + assert (res.columns == ["name", "value", "count"]).all() + assert len(res) + + +def test_read_meta(): + res = _read_api_meta( + NDCS_URL, + version="14Feb2022b_CR", + variable="Emissions|Total *", + ) + + assert isinstance(res, pd.DataFrame) + assert "category" in res + assert "Emissions|Total GHG excl. LULUCF" in res["variable"].tolist() + + +def test_remote_dataset_real(): + ds = RemoteDataset(NDCS_URL) + + assert "USA" in ds.get_unique_meta("region") + + ds = ds.filter(region="AUS") + assert "USA" not in ds.get_unique_meta("region") + assert "AUS" in ds.get_unique_meta("region") + ds_meta = ds.meta() + + run = ds.query() + assert isinstance(run, scmdata.ScmRun) + pd.testing.assert_frame_equal(run.meta, ds_meta) + + # We should be able to use other ScmRun funcs + res = ds.process_over("variable", "mean") + assert isinstance(res, pd.DataFrame) diff --git a/tests/unit/test_remote.py b/tests/unit/test_remote.py index 1e8a4777..d1c7f14a 100644 --- a/tests/unit/test_remote.py +++ b/tests/unit/test_remote.py @@ -14,48 +14,6 @@ NDCS_URL = "https://api.climateresource.com.au/ndcs/v1" -def test_read_ndcs(): - res = _read_api_timeseries( - NDCS_URL, - **{ - "version": "14Feb2022b_CR", - "variable": "Emissions|Total *", - "hot_air": "exclude", - "category": "Current", - }, - ) - - assert len(res) - assert isinstance(res, scmdata.ScmRun) - - -def test_read_facets(): - res = _read_api_facets( - NDCS_URL, - **{ - "version": "14Feb2022b_CR", - "variable": "Emissions|Total *", - "hot_air": "exclude", - "category": "Current", - }, - ) - - assert (res.columns == ["name", "value", "count"]).all() - assert len(res) - - -def test_read_meta(): - res = _read_api_meta( - NDCS_URL, - version="14Feb2022b_CR", - variable="Emissions|Total *", - ) - - assert isinstance(res, pd.DataFrame) - assert "category" in res - assert "Emissions|Total GHG excl. LULUCF" in res["variable"].tolist() - - class MockRemoteDataset(RemoteDataset): # replaces remote queries with static dataset _data_queries = [] @@ -83,6 +41,9 @@ def meta(self) -> pd.DataFrame: MockRemoteDataset._meta_queries.append(self.filters) return self._get_data(self.filters).meta + def _read_api_info(self): + self._meta_cols = self.meta().columns.tolist() + def test_remote_dataset_filtering(): ds = MockRemoteDataset(NDCS_URL) @@ -110,6 +71,18 @@ def test_remote_query(): assert MockRemoteDataset._data_queries == [{}, {"variable": "Emissions|CO2"}] +def test_remote_query_with_extras(): + ds = MockRemoteDataset(NDCS_URL) + ds._clear() + + res = ds.query() + res_filtered = ds.filter(variable="Emissions|CO2").query() + + assert isinstance(res, scmdata.ScmRun) + assert isinstance(res_filtered, scmdata.ScmRun) + assert MockRemoteDataset._data_queries == [{}, {"variable": "Emissions|CO2"}] + + def test_remote_get_unique_meta(): ds = MockRemoteDataset(NDCS_URL) @@ -129,22 +102,3 @@ def test_remote_get_unique_meta(): ds._side_effect = RemoteQueryError("Something went wrong", "opps") with pytest.raises(RemoteQueryError, match="Something went wrong: opps"): ds.get_unique_meta("variable") - - -def test_remote_dataset_real(): - ds = RemoteDataset(NDCS_URL) - - assert "USA" in ds.get_unique_meta("region") - - ds = ds.filter(region="AUS") - assert "USA" not in ds.get_unique_meta("region") - assert "AUS" in ds.get_unique_meta("region") - ds_meta = ds.meta() - - run = ds.query() - assert isinstance(run, scmdata.ScmRun) - pd.testing.assert_frame_equal(run.meta, ds_meta) - - # We should be able to use other ScmRun funcs - res = ds.process_over("variable", "mean") - assert isinstance(res, pd.DataFrame) From 6216be8d22b51a58aa8e1195dc1741294fef4010 Mon Sep 17 00:00:00 2001 From: Jared Lewis Date: Thu, 19 May 2022 13:07:29 +1000 Subject: [PATCH 08/19] Ensure base_url is cleaned --- src/scmdata/remote.py | 15 +++-- tests/unit/test_remote.py | 121 ++++++++++++++++++++++++++++++-------- 2 files changed, 106 insertions(+), 30 deletions(-) diff --git a/src/scmdata/remote.py b/src/scmdata/remote.py index a1d6c989..bc971e59 100644 --- a/src/scmdata/remote.py +++ b/src/scmdata/remote.py @@ -69,7 +69,8 @@ def _read_api_meta(url, **filters): class RemoteDataset: def __init__(self, base_url: str, filters=None): - self.base_url = base_url + # Ensure the url is terminated with a '/' + self.base_url = base_url.rstrip("/") + "/" self.filters = filters or {} self._meta_cols = None @@ -85,10 +86,12 @@ def __getattr__(self, item): def url(self) -> str: opts = self.filter_options() filters = {k: self.filters[k] for k in self.filters.keys() if k in opts} + if len(filters): + query_params = "?" + urllib.parse.urlencode(filters) + else: + query_params = "" - return urllib.parse.urljoin( - self.base_url, "timeseries" - ) + urllib.parse.urlencode(filters) + return urllib.parse.urljoin(self.base_url, "timeseries") + query_params def meta(self) -> pd.DataFrame: """ @@ -180,7 +183,7 @@ def query(self, raise_on_error=False) -> scmdata.ScmRun: filter_keys = self.filters.keys() filters = {k: self.filters[k] for k in filter_keys if k in opts} - extra_filters = [k for k in filter_keys if k not in self._meta_cols] + extra_filters = [k for k in filter_keys if k not in opts] if len(extra_filters): msg = f"Could not filter dataset by {extra_filters}" @@ -191,6 +194,8 @@ def query(self, raise_on_error=False) -> scmdata.ScmRun: run.source = self + return run + def filter(self, **filters): if not filters.get("keep", True): logger.warning( diff --git a/tests/unit/test_remote.py b/tests/unit/test_remote.py index d1c7f14a..4100a23d 100644 --- a/tests/unit/test_remote.py +++ b/tests/unit/test_remote.py @@ -1,6 +1,8 @@ +import logging import os import pandas as pd import pytest +import re import scmdata from scmdata.remote import ( @@ -9,9 +11,10 @@ _read_api_meta, RemoteDataset, ) +from unittest.mock import patch, Mock from scmdata.errors import NonUniqueMetadataError, RemoteQueryError -NDCS_URL = "https://api.climateresource.com.au/ndcs/v1" +NDCS_URL = "https://api.climateresource.com.au/ndcs/v1/" class MockRemoteDataset(RemoteDataset): @@ -45,60 +48,128 @@ def _read_api_info(self): self._meta_cols = self.meta().columns.tolist() -def test_remote_dataset_filtering(): +@pytest.fixture() +def remote_ds(): ds = MockRemoteDataset(NDCS_URL) + ds._clear() + + return ds - filtered_ds = ds.filter(variable="Population") + +def test_remote_dataset_filtering(remote_ds): + filtered_ds = remote_ds.filter(variable="Population") assert filtered_ds.filters == {"variable": "Population"} # returns a new object - assert id(filtered_ds) != id(ds) + assert id(filtered_ds) != id(remote_ds) # Can also filter on creation ds = MockRemoteDataset(NDCS_URL, {"variable": "Population"}) assert ds.filters == {"variable": "Population"} -def test_remote_query(): - ds = MockRemoteDataset(NDCS_URL) - ds._clear() - - res = ds.query() - res_filtered = ds.filter(variable="Emissions|CO2").query() +def test_remote_query(remote_ds): + res = remote_ds.query() + res_filtered = remote_ds.filter(variable="Emissions|CO2").query() assert isinstance(res, scmdata.ScmRun) assert isinstance(res_filtered, scmdata.ScmRun) assert MockRemoteDataset._data_queries == [{}, {"variable": "Emissions|CO2"}] -def test_remote_query_with_extras(): - ds = MockRemoteDataset(NDCS_URL) - ds._clear() +@patch("scmdata.remote._read_api_timeseries") +def test_remote_query_mocked(mock_timeseries, caplog): + caplog.set_level(logging.INFO) + ds = RemoteDataset(NDCS_URL).filter(variable="test") + ds.filter_options = Mock(return_value=["variable"]) res = ds.query() - res_filtered = ds.filter(variable="Emissions|CO2").query() - assert isinstance(res, scmdata.ScmRun) - assert isinstance(res_filtered, scmdata.ScmRun) - assert MockRemoteDataset._data_queries == [{}, {"variable": "Emissions|CO2"}] + assert res == mock_timeseries.return_value + assert res.source == ds + assert len(caplog.messages) == 1 + mock_timeseries.assert_called_with(NDCS_URL, **{"variable": "test"}) -def test_remote_get_unique_meta(): - ds = MockRemoteDataset(NDCS_URL) - variables = ds.get_unique_meta("variable") +@patch("scmdata.remote._read_api_timeseries") +@patch("scmdata.remote._read_api_facets") +def test_remote_query_with_extras(mock_facets, mock_timeseries, caplog): + caplog.set_level(logging.WARNING) + ds = RemoteDataset(NDCS_URL, filters=dict(variable="Emissions|CO2", other="test")) + ds.filter_options = Mock(return_value=["variable"]) + + msg = "Could not filter dataset by ['other']" + with pytest.raises(ValueError, match=re.escape(msg)): + ds.query(raise_on_error=True) + + assert len(caplog.messages) == 0 + + ds.query() + + assert len(caplog.messages) == 1 + assert re.search(re.escape(msg + ". Ignoring"), caplog.text) + + +def test_remote_filter_with_keep(caplog, remote_ds): + initial_filters = {"variable": "Temperature|Global Mean"} + ds = remote_ds.filter(**initial_filters) + res = ds.filter(keep=False, scenario="ADVANCE_INDC") + assert len(caplog.messages) == 1 + assert ( + caplog.messages[0] + == "'keep' is not handled by the API. Querying data and performing filtering locally" + ) + + assert "ADVANCE_INDC" in ds.get_unique_meta("scenario") + assert "ADVANCE_INDC" not in res.get_unique_meta("scenario") + assert MockRemoteDataset._data_queries == [ + initial_filters + ] # Query didn't include scenario, but preserves initial query + + +def test_remote_filter_with_duplicate(remote_ds): + remote_ds = remote_ds.filter(variable="a") + + with pytest.raises(ValueError, match="Already filtering by variable"): + remote_ds.filter(variable="test") + + +def test_remote_get_unique_meta(remote_ds): + variables = remote_ds.get_unique_meta("variable") assert isinstance(variables, list) assert len(variables) with pytest.raises(KeyError): - ds.get_unique_meta("unknown") + remote_ds.get_unique_meta("unknown") with pytest.raises(ValueError): - ds.get_unique_meta("variable", True) + remote_ds.get_unique_meta("variable", True) - single = ds.filter(variable="Temperature|Global Mean").get_unique_meta("unit", True) + single = remote_ds.filter(variable="Temperature|Global Mean").get_unique_meta( + "unit", True + ) assert single == "°C" - ds._side_effect = RemoteQueryError("Something went wrong", "opps") + remote_ds._side_effect = RemoteQueryError("Something went wrong", "opps") with pytest.raises(RemoteQueryError, match="Something went wrong: opps"): - ds.get_unique_meta("variable") + remote_ds.get_unique_meta("variable") + + +def test_filter_options(remote_ds): + res = remote_ds.filter_options() + assert res == [*remote_ds.meta().columns.tolist(), "year.min", "year.max"] + + +@pytest.mark.parametrize( + "base_url", ("https://api.example.com/v1", "https://api.example.com/v1/") +) +def test_remote_url(remote_ds, base_url): + remote_ds.base_url = base_url + res = remote_ds.filter( + **{ + "variable": "test", + "scenario": "other", + } + ).url() + assert res == "https://api.example.com/v1/timeseries?variable=test&scenario=other" From f842dda43cac15e908a94447a8feada2ac6c3b4e Mon Sep 17 00:00:00 2001 From: Jared Lewis Date: Thu, 19 May 2022 13:58:41 +1000 Subject: [PATCH 09/19] Add tests for response --- src/scmdata/remote.py | 2 + .../api_responses/response_facets.json | 32 +++++++ .../api_responses/response_meta.json | 1 + .../api_responses/response_timeseries.csv | 40 +++++++++ tests/unit/test_remote.py | 88 +++++++++++++++++++ 5 files changed, 163 insertions(+) create mode 100644 tests/test_data/api_responses/response_facets.json create mode 100644 tests/test_data/api_responses/response_meta.json create mode 100644 tests/test_data/api_responses/response_timeseries.csv diff --git a/src/scmdata/remote.py b/src/scmdata/remote.py index bc971e59..1133aa95 100644 --- a/src/scmdata/remote.py +++ b/src/scmdata/remote.py @@ -55,6 +55,8 @@ def _read_api_facets(url, **filters): for name in data: for item in data[name]: items.append({"name": name, **item}) + if len(items) == 0: + return pd.DataFrame(columns=["name", "value", "count"]) return pd.DataFrame(items)[["name", "value", "count"]] diff --git a/tests/test_data/api_responses/response_facets.json b/tests/test_data/api_responses/response_facets.json new file mode 100644 index 00000000..f7bb89de --- /dev/null +++ b/tests/test_data/api_responses/response_facets.json @@ -0,0 +1,32 @@ +{ + "model": [ + { + "value": "MAGICC", + "count": 1 + } + ], + "region": [ + { + "value": "World", + "count": 1 + } + ], + "scenario": [ + { + "value": "ssp126", + "count": 1 + } + ], + "unit": [ + { + "value": "K", + "count": 1 + } + ], + "variable": [ + { + "value": "Surface Temperature", + "count": 1 + } + ] +} diff --git a/tests/test_data/api_responses/response_meta.json b/tests/test_data/api_responses/response_meta.json new file mode 100644 index 00000000..fd701b8b --- /dev/null +++ b/tests/test_data/api_responses/response_meta.json @@ -0,0 +1 @@ +{"length":0,"meta":[]} diff --git a/tests/test_data/api_responses/response_timeseries.csv b/tests/test_data/api_responses/response_timeseries.csv new file mode 100644 index 00000000..e1183cd6 --- /dev/null +++ b/tests/test_data/api_responses/response_timeseries.csv @@ -0,0 +1,40 @@ +model,scenario,region,variable,unit,climate_model,1765-01-01 00:00:00,1766-01-01 00:00:00,1767-01-01 00:00:00,1768-01-01 00:00:00,1769-01-01 00:00:00,1770-01-01 00:00:00,1771-01-01 00:00:00,1772-01-01 00:00:00,1773-01-01 00:00:00,1774-01-01 00:00:00,1775-01-01 00:00:00,1776-01-01 00:00:00,1777-01-01 00:00:00,1778-01-01 00:00:00,1779-01-01 00:00:00,1780-01-01 00:00:00,1781-01-01 00:00:00,1782-01-01 00:00:00,1783-01-01 00:00:00,1784-01-01 00:00:00,1785-01-01 00:00:00,1786-01-01 00:00:00,1787-01-01 00:00:00,1788-01-01 00:00:00,1789-01-01 00:00:00,1790-01-01 00:00:00,1791-01-01 00:00:00,1792-01-01 00:00:00,1793-01-01 00:00:00,1794-01-01 00:00:00,1795-01-01 00:00:00,1796-01-01 00:00:00,1797-01-01 00:00:00,1798-01-01 00:00:00,1799-01-01 00:00:00,1800-01-01 00:00:00,1801-01-01 00:00:00,1802-01-01 00:00:00,1803-01-01 00:00:00,1804-01-01 00:00:00,1805-01-01 00:00:00,1806-01-01 00:00:00,1807-01-01 00:00:00,1808-01-01 00:00:00,1809-01-01 00:00:00,1810-01-01 00:00:00,1811-01-01 00:00:00,1812-01-01 00:00:00,1813-01-01 00:00:00,1814-01-01 00:00:00,1815-01-01 00:00:00,1816-01-01 00:00:00,1817-01-01 00:00:00,1818-01-01 00:00:00,1819-01-01 00:00:00,1820-01-01 00:00:00,1821-01-01 00:00:00,1822-01-01 00:00:00,1823-01-01 00:00:00,1824-01-01 00:00:00,1825-01-01 00:00:00,1826-01-01 00:00:00,1827-01-01 00:00:00,1828-01-01 00:00:00,1829-01-01 00:00:00,1830-01-01 00:00:00,1831-01-01 00:00:00,1832-01-01 00:00:00,1833-01-01 00:00:00,1834-01-01 00:00:00,1835-01-01 00:00:00,1836-01-01 00:00:00,1837-01-01 00:00:00,1838-01-01 00:00:00,1839-01-01 00:00:00,1840-01-01 00:00:00,1841-01-01 00:00:00,1842-01-01 00:00:00,1843-01-01 00:00:00,1844-01-01 00:00:00,1845-01-01 00:00:00,1846-01-01 00:00:00,1847-01-01 00:00:00,1848-01-01 00:00:00,1849-01-01 00:00:00,1850-01-01 00:00:00,1851-01-01 00:00:00,1852-01-01 00:00:00,1853-01-01 00:00:00,1854-01-01 00:00:00,1855-01-01 00:00:00,1856-01-01 00:00:00,1857-01-01 00:00:00,1858-01-01 00:00:00,1859-01-01 00:00:00,1860-01-01 00:00:00,1861-01-01 00:00:00,1862-01-01 00:00:00,1863-01-01 00:00:00,1864-01-01 00:00:00,1865-01-01 00:00:00,1866-01-01 00:00:00,1867-01-01 00:00:00,1868-01-01 00:00:00,1869-01-01 00:00:00,1870-01-01 00:00:00,1871-01-01 00:00:00,1872-01-01 00:00:00,1873-01-01 00:00:00,1874-01-01 00:00:00,1875-01-01 00:00:00,1876-01-01 00:00:00,1877-01-01 00:00:00,1878-01-01 00:00:00,1879-01-01 00:00:00,1880-01-01 00:00:00,1881-01-01 00:00:00,1882-01-01 00:00:00,1883-01-01 00:00:00,1884-01-01 00:00:00,1885-01-01 00:00:00,1886-01-01 00:00:00,1887-01-01 00:00:00,1888-01-01 00:00:00,1889-01-01 00:00:00,1890-01-01 00:00:00,1891-01-01 00:00:00,1892-01-01 00:00:00,1893-01-01 00:00:00,1894-01-01 00:00:00,1895-01-01 00:00:00,1896-01-01 00:00:00,1897-01-01 00:00:00,1898-01-01 00:00:00,1899-01-01 00:00:00,1900-01-01 00:00:00,1901-01-01 00:00:00,1902-01-01 00:00:00,1903-01-01 00:00:00,1904-01-01 00:00:00,1905-01-01 00:00:00,1906-01-01 00:00:00,1907-01-01 00:00:00,1908-01-01 00:00:00,1909-01-01 00:00:00,1910-01-01 00:00:00,1911-01-01 00:00:00,1912-01-01 00:00:00,1913-01-01 00:00:00,1914-01-01 00:00:00,1915-01-01 00:00:00,1916-01-01 00:00:00,1917-01-01 00:00:00,1918-01-01 00:00:00,1919-01-01 00:00:00,1920-01-01 00:00:00,1921-01-01 00:00:00,1922-01-01 00:00:00,1923-01-01 00:00:00,1924-01-01 00:00:00,1925-01-01 00:00:00,1926-01-01 00:00:00,1927-01-01 00:00:00,1928-01-01 00:00:00,1929-01-01 00:00:00,1930-01-01 00:00:00,1931-01-01 00:00:00,1932-01-01 00:00:00,1933-01-01 00:00:00,1934-01-01 00:00:00,1935-01-01 00:00:00,1936-01-01 00:00:00,1937-01-01 00:00:00,1938-01-01 00:00:00,1939-01-01 00:00:00,1940-01-01 00:00:00,1941-01-01 00:00:00,1942-01-01 00:00:00,1943-01-01 00:00:00,1944-01-01 00:00:00,1945-01-01 00:00:00,1946-01-01 00:00:00,1947-01-01 00:00:00,1948-01-01 00:00:00,1949-01-01 00:00:00,1950-01-01 00:00:00,1951-01-01 00:00:00,1952-01-01 00:00:00,1953-01-01 00:00:00,1954-01-01 00:00:00,1955-01-01 00:00:00,1956-01-01 00:00:00,1957-01-01 00:00:00,1958-01-01 00:00:00,1959-01-01 00:00:00,1960-01-01 00:00:00,1961-01-01 00:00:00,1962-01-01 00:00:00,1963-01-01 00:00:00,1964-01-01 00:00:00,1965-01-01 00:00:00,1966-01-01 00:00:00,1967-01-01 00:00:00,1968-01-01 00:00:00,1969-01-01 00:00:00,1970-01-01 00:00:00,1971-01-01 00:00:00,1972-01-01 00:00:00,1973-01-01 00:00:00,1974-01-01 00:00:00,1975-01-01 00:00:00,1976-01-01 00:00:00,1977-01-01 00:00:00,1978-01-01 00:00:00,1979-01-01 00:00:00,1980-01-01 00:00:00,1981-01-01 00:00:00,1982-01-01 00:00:00,1983-01-01 00:00:00,1984-01-01 00:00:00,1985-01-01 00:00:00,1986-01-01 00:00:00,1987-01-01 00:00:00,1988-01-01 00:00:00,1989-01-01 00:00:00,1990-01-01 00:00:00,1991-01-01 00:00:00,1992-01-01 00:00:00,1993-01-01 00:00:00,1994-01-01 00:00:00,1995-01-01 00:00:00,1996-01-01 00:00:00,1997-01-01 00:00:00,1998-01-01 00:00:00,1999-01-01 00:00:00,2000-01-01 00:00:00,2001-01-01 00:00:00,2002-01-01 00:00:00,2003-01-01 00:00:00,2004-01-01 00:00:00,2005-01-01 00:00:00,2006-01-01 00:00:00,2007-01-01 00:00:00,2008-01-01 00:00:00,2009-01-01 00:00:00,2010-01-01 00:00:00,2011-01-01 00:00:00,2012-01-01 00:00:00,2013-01-01 00:00:00,2014-01-01 00:00:00,2015-01-01 00:00:00,2016-01-01 00:00:00,2017-01-01 00:00:00,2018-01-01 00:00:00,2019-01-01 00:00:00,2020-01-01 00:00:00,2021-01-01 00:00:00,2022-01-01 00:00:00,2023-01-01 00:00:00,2024-01-01 00:00:00,2025-01-01 00:00:00,2026-01-01 00:00:00,2027-01-01 00:00:00,2028-01-01 00:00:00,2029-01-01 00:00:00,2030-01-01 00:00:00,2031-01-01 00:00:00,2032-01-01 00:00:00,2033-01-01 00:00:00,2034-01-01 00:00:00,2035-01-01 00:00:00,2036-01-01 00:00:00,2037-01-01 00:00:00,2038-01-01 00:00:00,2039-01-01 00:00:00,2040-01-01 00:00:00,2041-01-01 00:00:00,2042-01-01 00:00:00,2043-01-01 00:00:00,2044-01-01 00:00:00,2045-01-01 00:00:00,2046-01-01 00:00:00,2047-01-01 00:00:00,2048-01-01 00:00:00,2049-01-01 00:00:00,2050-01-01 00:00:00,2051-01-01 00:00:00,2052-01-01 00:00:00,2053-01-01 00:00:00,2054-01-01 00:00:00,2055-01-01 00:00:00,2056-01-01 00:00:00,2057-01-01 00:00:00,2058-01-01 00:00:00,2059-01-01 00:00:00,2060-01-01 00:00:00,2061-01-01 00:00:00,2062-01-01 00:00:00,2063-01-01 00:00:00,2064-01-01 00:00:00,2065-01-01 00:00:00,2066-01-01 00:00:00,2067-01-01 00:00:00,2068-01-01 00:00:00,2069-01-01 00:00:00,2070-01-01 00:00:00,2071-01-01 00:00:00,2072-01-01 00:00:00,2073-01-01 00:00:00,2074-01-01 00:00:00,2075-01-01 00:00:00,2076-01-01 00:00:00,2077-01-01 00:00:00,2078-01-01 00:00:00,2079-01-01 00:00:00,2080-01-01 00:00:00,2081-01-01 00:00:00,2082-01-01 00:00:00,2083-01-01 00:00:00,2084-01-01 00:00:00,2085-01-01 00:00:00,2086-01-01 00:00:00,2087-01-01 00:00:00,2088-01-01 00:00:00,2089-01-01 00:00:00,2090-01-01 00:00:00,2091-01-01 00:00:00,2092-01-01 00:00:00,2093-01-01 00:00:00,2094-01-01 00:00:00,2095-01-01 00:00:00,2096-01-01 00:00:00,2097-01-01 00:00:00,2098-01-01 00:00:00,2099-01-01 00:00:00,2100-01-01 00:00:00,2101-01-01 00:00:00,2102-01-01 00:00:00,2103-01-01 00:00:00,2104-01-01 00:00:00,2105-01-01 00:00:00,2106-01-01 00:00:00,2107-01-01 00:00:00,2108-01-01 00:00:00,2109-01-01 00:00:00,2110-01-01 00:00:00,2111-01-01 00:00:00,2112-01-01 00:00:00,2113-01-01 00:00:00,2114-01-01 00:00:00,2115-01-01 00:00:00,2116-01-01 00:00:00,2117-01-01 00:00:00,2118-01-01 00:00:00,2119-01-01 00:00:00,2120-01-01 00:00:00,2121-01-01 00:00:00,2122-01-01 00:00:00,2123-01-01 00:00:00,2124-01-01 00:00:00,2125-01-01 00:00:00,2126-01-01 00:00:00,2127-01-01 00:00:00,2128-01-01 00:00:00,2129-01-01 00:00:00,2130-01-01 00:00:00,2131-01-01 00:00:00,2132-01-01 00:00:00,2133-01-01 00:00:00,2134-01-01 00:00:00,2135-01-01 00:00:00,2136-01-01 00:00:00,2137-01-01 00:00:00,2138-01-01 00:00:00,2139-01-01 00:00:00,2140-01-01 00:00:00,2141-01-01 00:00:00,2142-01-01 00:00:00,2143-01-01 00:00:00,2144-01-01 00:00:00,2145-01-01 00:00:00,2146-01-01 00:00:00,2147-01-01 00:00:00,2148-01-01 00:00:00,2149-01-01 00:00:00,2150-01-01 00:00:00,2151-01-01 00:00:00,2152-01-01 00:00:00,2153-01-01 00:00:00,2154-01-01 00:00:00,2155-01-01 00:00:00,2156-01-01 00:00:00,2157-01-01 00:00:00,2158-01-01 00:00:00,2159-01-01 00:00:00,2160-01-01 00:00:00,2161-01-01 00:00:00,2162-01-01 00:00:00,2163-01-01 00:00:00,2164-01-01 00:00:00,2165-01-01 00:00:00,2166-01-01 00:00:00,2167-01-01 00:00:00,2168-01-01 00:00:00,2169-01-01 00:00:00,2170-01-01 00:00:00,2171-01-01 00:00:00,2172-01-01 00:00:00,2173-01-01 00:00:00,2174-01-01 00:00:00,2175-01-01 00:00:00,2176-01-01 00:00:00,2177-01-01 00:00:00,2178-01-01 00:00:00,2179-01-01 00:00:00,2180-01-01 00:00:00,2181-01-01 00:00:00,2182-01-01 00:00:00,2183-01-01 00:00:00,2184-01-01 00:00:00,2185-01-01 00:00:00,2186-01-01 00:00:00,2187-01-01 00:00:00,2188-01-01 00:00:00,2189-01-01 00:00:00,2190-01-01 00:00:00,2191-01-01 00:00:00,2192-01-01 00:00:00,2193-01-01 00:00:00,2194-01-01 00:00:00,2195-01-01 00:00:00,2196-01-01 00:00:00,2197-01-01 00:00:00,2198-01-01 00:00:00,2199-01-01 00:00:00,2200-01-01 00:00:00,2201-01-01 00:00:00,2202-01-01 00:00:00,2203-01-01 00:00:00,2204-01-01 00:00:00,2205-01-01 00:00:00,2206-01-01 00:00:00,2207-01-01 00:00:00,2208-01-01 00:00:00,2209-01-01 00:00:00,2210-01-01 00:00:00,2211-01-01 00:00:00,2212-01-01 00:00:00,2213-01-01 00:00:00,2214-01-01 00:00:00,2215-01-01 00:00:00,2216-01-01 00:00:00,2217-01-01 00:00:00,2218-01-01 00:00:00,2219-01-01 00:00:00,2220-01-01 00:00:00,2221-01-01 00:00:00,2222-01-01 00:00:00,2223-01-01 00:00:00,2224-01-01 00:00:00,2225-01-01 00:00:00,2226-01-01 00:00:00,2227-01-01 00:00:00,2228-01-01 00:00:00,2229-01-01 00:00:00,2230-01-01 00:00:00,2231-01-01 00:00:00,2232-01-01 00:00:00,2233-01-01 00:00:00,2234-01-01 00:00:00,2235-01-01 00:00:00,2236-01-01 00:00:00,2237-01-01 00:00:00,2238-01-01 00:00:00,2239-01-01 00:00:00,2240-01-01 00:00:00,2241-01-01 00:00:00,2242-01-01 00:00:00,2243-01-01 00:00:00,2244-01-01 00:00:00,2245-01-01 00:00:00,2246-01-01 00:00:00,2247-01-01 00:00:00,2248-01-01 00:00:00,2249-01-01 00:00:00,2250-01-01 00:00:00,2251-01-01 00:00:00,2252-01-01 00:00:00,2253-01-01 00:00:00,2254-01-01 00:00:00,2255-01-01 00:00:00,2256-01-01 00:00:00,2257-01-01 00:00:00,2258-01-01 00:00:00,2259-01-01 00:00:00,2260-01-01 00:00:00,2261-01-01 00:00:00,2262-01-01 00:00:00,2263-01-01 00:00:00,2264-01-01 00:00:00,2265-01-01 00:00:00,2266-01-01 00:00:00,2267-01-01 00:00:00,2268-01-01 00:00:00,2269-01-01 00:00:00,2270-01-01 00:00:00,2271-01-01 00:00:00,2272-01-01 00:00:00,2273-01-01 00:00:00,2274-01-01 00:00:00,2275-01-01 00:00:00,2276-01-01 00:00:00,2277-01-01 00:00:00,2278-01-01 00:00:00,2279-01-01 00:00:00,2280-01-01 00:00:00,2281-01-01 00:00:00,2282-01-01 00:00:00,2283-01-01 00:00:00,2284-01-01 00:00:00,2285-01-01 00:00:00,2286-01-01 00:00:00,2287-01-01 00:00:00,2288-01-01 00:00:00,2289-01-01 00:00:00,2290-01-01 00:00:00,2291-01-01 00:00:00,2292-01-01 00:00:00,2293-01-01 00:00:00,2294-01-01 00:00:00,2295-01-01 00:00:00,2296-01-01 00:00:00,2297-01-01 00:00:00,2298-01-01 00:00:00,2299-01-01 00:00:00,2300-01-01 00:00:00,2301-01-01 00:00:00,2302-01-01 00:00:00,2303-01-01 00:00:00,2304-01-01 00:00:00,2305-01-01 00:00:00,2306-01-01 00:00:00,2307-01-01 00:00:00,2308-01-01 00:00:00,2309-01-01 00:00:00,2310-01-01 00:00:00,2311-01-01 00:00:00,2312-01-01 00:00:00,2313-01-01 00:00:00,2314-01-01 00:00:00,2315-01-01 00:00:00,2316-01-01 00:00:00,2317-01-01 00:00:00,2318-01-01 00:00:00,2319-01-01 00:00:00,2320-01-01 00:00:00,2321-01-01 00:00:00,2322-01-01 00:00:00,2323-01-01 00:00:00,2324-01-01 00:00:00,2325-01-01 00:00:00,2326-01-01 00:00:00,2327-01-01 00:00:00,2328-01-01 00:00:00,2329-01-01 00:00:00,2330-01-01 00:00:00,2331-01-01 00:00:00,2332-01-01 00:00:00,2333-01-01 00:00:00,2334-01-01 00:00:00,2335-01-01 00:00:00,2336-01-01 00:00:00,2337-01-01 00:00:00,2338-01-01 00:00:00,2339-01-01 00:00:00,2340-01-01 00:00:00,2341-01-01 00:00:00,2342-01-01 00:00:00,2343-01-01 00:00:00,2344-01-01 00:00:00,2345-01-01 00:00:00,2346-01-01 00:00:00,2347-01-01 00:00:00,2348-01-01 00:00:00,2349-01-01 00:00:00,2350-01-01 00:00:00,2351-01-01 00:00:00,2352-01-01 00:00:00,2353-01-01 00:00:00,2354-01-01 00:00:00,2355-01-01 00:00:00,2356-01-01 00:00:00,2357-01-01 00:00:00,2358-01-01 00:00:00,2359-01-01 00:00:00,2360-01-01 00:00:00,2361-01-01 00:00:00,2362-01-01 00:00:00,2363-01-01 00:00:00,2364-01-01 00:00:00,2365-01-01 00:00:00,2366-01-01 00:00:00,2367-01-01 00:00:00,2368-01-01 00:00:00,2369-01-01 00:00:00,2370-01-01 00:00:00,2371-01-01 00:00:00,2372-01-01 00:00:00,2373-01-01 00:00:00,2374-01-01 00:00:00,2375-01-01 00:00:00,2376-01-01 00:00:00,2377-01-01 00:00:00,2378-01-01 00:00:00,2379-01-01 00:00:00,2380-01-01 00:00:00,2381-01-01 00:00:00,2382-01-01 00:00:00,2383-01-01 00:00:00,2384-01-01 00:00:00,2385-01-01 00:00:00,2386-01-01 00:00:00,2387-01-01 00:00:00,2388-01-01 00:00:00,2389-01-01 00:00:00,2390-01-01 00:00:00,2391-01-01 00:00:00,2392-01-01 00:00:00,2393-01-01 00:00:00,2394-01-01 00:00:00,2395-01-01 00:00:00,2396-01-01 00:00:00,2397-01-01 00:00:00,2398-01-01 00:00:00,2399-01-01 00:00:00,2400-01-01 00:00:00,2401-01-01 00:00:00,2402-01-01 00:00:00,2403-01-01 00:00:00,2404-01-01 00:00:00,2405-01-01 00:00:00,2406-01-01 00:00:00,2407-01-01 00:00:00,2408-01-01 00:00:00,2409-01-01 00:00:00,2410-01-01 00:00:00,2411-01-01 00:00:00,2412-01-01 00:00:00,2413-01-01 00:00:00,2414-01-01 00:00:00,2415-01-01 00:00:00,2416-01-01 00:00:00,2417-01-01 00:00:00,2418-01-01 00:00:00,2419-01-01 00:00:00,2420-01-01 00:00:00,2421-01-01 00:00:00,2422-01-01 00:00:00,2423-01-01 00:00:00,2424-01-01 00:00:00,2425-01-01 00:00:00,2426-01-01 00:00:00,2427-01-01 00:00:00,2428-01-01 00:00:00,2429-01-01 00:00:00,2430-01-01 00:00:00,2431-01-01 00:00:00,2432-01-01 00:00:00,2433-01-01 00:00:00,2434-01-01 00:00:00,2435-01-01 00:00:00,2436-01-01 00:00:00,2437-01-01 00:00:00,2438-01-01 00:00:00,2439-01-01 00:00:00,2440-01-01 00:00:00,2441-01-01 00:00:00,2442-01-01 00:00:00,2443-01-01 00:00:00,2444-01-01 00:00:00,2445-01-01 00:00:00,2446-01-01 00:00:00,2447-01-01 00:00:00,2448-01-01 00:00:00,2449-01-01 00:00:00,2450-01-01 00:00:00,2451-01-01 00:00:00,2452-01-01 00:00:00,2453-01-01 00:00:00,2454-01-01 00:00:00,2455-01-01 00:00:00,2456-01-01 00:00:00,2457-01-01 00:00:00,2458-01-01 00:00:00,2459-01-01 00:00:00,2460-01-01 00:00:00,2461-01-01 00:00:00,2462-01-01 00:00:00,2463-01-01 00:00:00,2464-01-01 00:00:00,2465-01-01 00:00:00,2466-01-01 00:00:00,2467-01-01 00:00:00,2468-01-01 00:00:00,2469-01-01 00:00:00,2470-01-01 00:00:00,2471-01-01 00:00:00,2472-01-01 00:00:00,2473-01-01 00:00:00,2474-01-01 00:00:00,2475-01-01 00:00:00,2476-01-01 00:00:00,2477-01-01 00:00:00,2478-01-01 00:00:00,2479-01-01 00:00:00,2480-01-01 00:00:00,2481-01-01 00:00:00,2482-01-01 00:00:00,2483-01-01 00:00:00,2484-01-01 00:00:00,2485-01-01 00:00:00,2486-01-01 00:00:00,2487-01-01 00:00:00,2488-01-01 00:00:00,2489-01-01 00:00:00,2490-01-01 00:00:00,2491-01-01 00:00:00,2492-01-01 00:00:00,2493-01-01 00:00:00,2494-01-01 00:00:00,2495-01-01 00:00:00,2496-01-01 00:00:00,2497-01-01 00:00:00,2498-01-01 00:00:00,2499-01-01 00:00:00,2500-01-01 00:00:00 +IMAGE,RCP26,World,Emissions|BC,Mt BC / yr,unspecified,0.0,0.106998,0.1333826,0.15984677,0.18639296,0.21302373,0.23974168,0.26654951,0.29345,0.32044601,0.34754051,0.37473653,0.40203721,0.4294458,0.45696563,0.48460014,0.51235288,0.5402275,0.56822778,0.59635759,0.62462095,0.65302198,0.68156496,0.71025425,0.73909439,0.76809005,0.79724604,0.8265673,0.85605896,0.88572629,0.91557471,0.94560984,0.97583743,1.0062635,1.036894,1.0677355,1.0987944,1.1300774,1.1615915,1.1933438,1.2253417,1.2575928,1.2901048000000002,1.322886,1.3559444999999999,1.3892891,1.4229284,1.4568716999999998,1.4911284,1.5257081000000001,1.5606208000000001,1.5958768,1.6314868,1.6674616000000002,1.7038127,1.7405515999999999,1.7776901999999999,1.8152409999999999,1.8532168000000002,1.8916306,1.930496,1.969827,2.0096380000000003,2.0499438000000003,2.0907597,2.1321015,2.1739855,2.2164284,2.2594475,2.3030607000000005,2.3472862,2.3921432,2.437651,2.4838298,2.5307004,2.5782841,2.6266031,2.67568,2.7255382999999997,2.7762021,2.8276963999999998,2.8800468999999995,2.9332801,2.9874231,3.0425042999999996,3.0985525000000003,3.1187417,3.1389308999999996,3.15912,3.1793092,3.1994982999999997,3.2196875,3.2398767000000004,3.2600658,3.2802550000000004,3.3004441,3.3244138,3.3483834999999997,3.3723532,3.3963229,3.4202926,3.4442623,3.4682318999999997,3.4922016000000005,3.5161712999999994,3.540141,3.562453,3.5847651,3.6070771,3.6293891000000005,3.6517012,3.6740132000000005,3.6963253,3.7186373,3.7409492999999996,3.7632614,3.7925706,3.8218797999999996,3.8511889999999998,3.8804982000000003,3.9098074,3.9391165999999997,3.9684258000000003,3.997735,4.0270443,4.0563535,4.0882845,4.1202154,4.1521464,4.1840774,4.216008400000001,4.2479394,4.2798704,4.3118014,4.3437324,4.3756633,4.4173849,4.4591064000000005,4.500828,4.542549500000001,4.5842711,4.6259926,4.6677142,4.7094357,4.7511573,4.7928788,4.794951599999999,4.797024400000001,4.7990972,4.80117,4.8032428,4.805315599999999,4.8073885,4.8094613,4.811534099999999,4.8136069,4.798714299999999,4.7838218,4.7689293,4.7540366999999994,4.7391442,4.7242517,4.7093590999999995,4.6944666,4.679574099999999,4.6646815,4.667096400000001,4.6695113,4.671926200000001,4.674341,4.6767559,4.6791708,4.6815857,4.6840005,4.6864154000000005,4.6888303,4.693243,4.6976558,4.7020686,4.706481299999999,4.7108941,4.715306900000001,4.7197195999999995,4.7241324,4.7285452,4.732957900000001,4.7733276,4.813697299999999,4.854067,4.8944367,4.9348064,4.9751761,5.0155458,5.0559155,5.0962852,5.136654900000001,5.179599700000001,5.2225445,5.2654893,5.3084340999999995,5.3513789,5.3943237,5.4372685,5.4802133,5.5231581,5.566102900000001,5.7038725,5.8416421,5.9794117,6.1171812999999995,6.254950900000001,6.3927205,6.5304901,6.668259700000001,6.8060293000000005,6.9437989,7.021004799999999,7.0982107,7.175416499999999,7.2526224,7.329828200000001,7.4070341,7.48424,7.5614457999999996,7.6386517000000005,7.715857499999999,7.7247518,7.733646,7.742540299999999,7.7514345,7.7603288,7.769222999999999,7.7781173,7.7870115,7.795905800000001,7.8048,7.8945,7.9842,8.0734,8.1623,8.2512,8.3258,8.4003,8.474533300000001,8.548766699999998,8.623,8.5989,8.5748,8.5507,8.5266,8.5025,8.4784,8.4543,8.4302,8.4061,8.382,8.23806,8.09412,7.9501800000000005,7.80624,7.6623,7.51836,7.37442,7.23048,7.086539999999999,6.9426,6.81693,6.691260000000001,6.565589999999999,6.43992,6.31425,6.18858,6.06291,5.93724,5.81157,5.6859,5.6113599999999995,5.53682,5.462280000000001,5.38774,5.3132,5.238659999999999,5.16412,5.089580000000001,5.01504,4.9405,4.88943,4.83836,4.7872900000000005,4.736219999999999,4.68515,4.63408,4.58301,4.5319400000000005,4.4808699999999995,4.4298,4.38112,4.33244,4.28376,4.23508,4.1864,4.13772,4.08904,4.04036,3.99168,3.943,3.9160800000000004,3.88916,3.8622400000000003,3.83532,3.8084,3.78148,3.7545599999999997,3.72764,3.7007199999999996,3.6738,3.66094,3.64808,3.63522,3.62236,3.6095,3.5966400000000003,3.5837800000000004,3.5709199999999996,3.55806,3.5452,3.5264599999999997,3.5077199999999995,3.48898,3.47024,3.4515,3.43276,3.41402,3.39528,3.3765400000000003,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578,3.3578 +IMAGE,RCP26,World,Emissions|C2F6,kt C2F6 / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.95911885,0.050575847,0.053237732,0.056039719,0.058989177000000004,0.062093873,0.065361969,0.068802075,0.072423235,0.07623498599999999,0.08024735200000001,0.084470898,0.08891673300000001,0.09359656300000001,0.09852269699999999,0.1037081,0.10916642,0.11491202,0.12096002,0.12732636,0.13402771,0.14108183,0.14850719,0.15632334,0.16455089,0.17321146,0.18232786,0.19192405,0.20202532,0.21265824,0.22385079,0.23563239,0.24803412,0.26108852,0.27483004,0.28929476,0.30452082,0.32054821,0.33741917,0.35517808,0.37387169,0.39354912,0.41426223,0.39468287,0.37832187,0.3640764,0.35194679,0.34193311,0.33403572,0.32825472,0.32459037,0.32304286,0.32361242,0.32629927,0.3311036,0.33802563,0.34706557,0.35822365,0.37150001,0.38689499,0.40440867,0.42404135,0.4457932,0.46966444,0.49565531,0.52376596,0.55399667,0.58634761,0.62081899,0.65741104,0.69612398,0.73695798,0.7799133,0.82499011,0.87218868,0.9215092,0.97295172,1.0265167,1.0822044,1.1400146,1.1999481,1.2620042999999999,1.3261846000000002,1.392488,1.4609153,1.5314669,1.6041426,1.678943,1.7558675,1.8349176,1.9160924,2.0735678,2.3729101000000004,2.3731468999999996,2.3733837,2.3736205000000004,2.3738572999999996,2.3740941,2.3743309,2.3745677000000005,2.3748044999999998,2.3749,2.4345,2.4915,2.5463,2.599,2.6494,3.1051,3.5603,4.0149667,4.4696333,4.9243,4.9717,5.0191,5.0665,5.1139,5.1613,5.2087,5.2561,5.3035,5.3509,5.3983,5.04704,4.69578,4.344519999999999,3.99326,3.642,3.29074,2.93948,2.58822,2.23696,1.8857,1.8058900000000002,1.7260799999999998,1.6462700000000001,1.56646,1.48665,1.4068399999999999,1.32703,1.24722,1.16741,1.0876,1.02596,0.96432,0.90268,0.84104,0.7794,0.71776,0.65612,0.59448,0.53284,0.4712,0.45634,0.44148,0.42662,0.41176,0.3969,0.38204,0.36718,0.35232,0.33746,0.3226,0.31644,0.31028,0.30412,0.29796,0.2918,0.28564,0.27948,0.27332,0.26716,0.261,0.25002,0.23904,0.22806,0.21708,0.2061,0.19512,0.18414,0.17316,0.16218,0.1512,0.14528,0.13936,0.13344,0.12752,0.1216,0.11568,0.10976,0.10384,0.09792,0.092,0.09137,0.09074,0.09011,0.08948,0.08885,0.08822,0.08759,0.08696,0.08633,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857,0.0857 +IMAGE,RCP26,World,Emissions|C6F14,kt C6F14 / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.4624,0.4651,0.4058,0.3939,0.4062,0.4358,0.4427,0.4492,0.45503333,0.46086667,0.4667,0.43848,0.41026,0.38204,0.35382,0.3256,0.29738,0.26916,0.24094,0.21272,0.1845,0.17723,0.16996,0.16269,0.15542,0.14815,0.14088,0.13361,0.12634,0.11907,0.1118,0.1119,0.112,0.1121,0.1122,0.1123,0.1124,0.1125,0.1126,0.1127,0.1128,0.11238,0.11196,0.11154,0.11112,0.1107,0.11028,0.10986,0.10944,0.10902,0.1086,0.10848,0.10836,0.10824,0.10812,0.108,0.10788,0.10776,0.10764,0.10752,0.1074,0.10732,0.10724,0.10716,0.10708,0.107,0.10692,0.10684,0.10676,0.10668,0.1066,0.10626,0.10592,0.10558,0.10524,0.1049,0.10456,0.10422,0.10388,0.10354,0.1032,0.1026,0.102,0.1014,0.1008,0.1002,0.0996,0.099,0.0984,0.0978,0.0972,0.09635,0.0955,0.09465,0.0938,0.09295,0.0921,0.09125,0.0904,0.08955,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887,0.0887 +IMAGE,RCP26,World,Emissions|CCl4,kt CCl4 / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.395,1.447,1.502,1.554,1.607,1.657,1.712,1.765,1.815,1.87,1.923,1.973,2.028,2.081,2.134,2.184,2.239,2.291,2.341,2.386,2.452,2.505,2.557,2.61,2.663,2.85,2.989,3.13,3.275,3.396,3.573,3.726,3.883,4.043,4.233,4.427,4.625,4.827,5.033,5.27,5.485,5.731,6.01,6.267,6.529,6.824,7.151,7.432,7.798,8.119,8.473,8.592,8.762,8.906,9.102,9.623,12.093,12.363,12.633,12.903,13.146,14.007,19.895,19.025,11.082,11.216,18.614,22.143,22.696,23.196,23.802,24.304,24.563,25.35,25.878,28.827,29.446,30.065,30.685,31.573,31.933,32.553,33.979,41.893,42.817,43.74,44.664,45.588,46.512,47.436,50.781,52.603,53.918,54.705,55.75,56.796,59.187,67.278,68.369,74.34,65.0,65.0,70.0,75.0,80.0,85.0,90.0,95.0,100.0,105.0,110.0,115.0,119.0,123.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,121.849,110.093,123.807,135.729,134.867,109.714,149.931,115.608,135.667,118.146,143.171,70.607,91.022,85.436,77.289,85.021,70.403,74.423,84.361,69.242,74.132,65.195,69.565,69.381,67.383,65.0,58.5,52.0,45.5,39.0,32.5,26.0,19.5,13.0,6.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +IMAGE,RCP26,World,Emissions|CF4,kt CF4 / yr,unspecified,0.010762744,0.010752073000000001,0.010747949,0.01074382,0.010739687,0.010735548000000001,0.010731403,0.010727253999999999,0.010723098,0.010718937,0.010714768999999999,0.010710595,0.010706413,0.010702225,0.01069803,0.010693826000000002,0.010689617,0.010685398,0.010681171000000001,0.010676935,0.010672691000000002,0.010668437,0.010664172,0.010659898999999999,0.010655613999999999,0.010651319,0.010647011999999999,0.010642695,0.010638363999999999,0.010634021,0.010629666000000001,0.010625296999999999,0.010620913999999999,0.010616516999999999,0.010612106000000001,0.010607681,0.010603238000000001,0.01059878,0.010594305,0.010589813,0.010585303,0.010580775,0.010576228,0.010571661000000001,0.010567074,0.010562466999999999,0.010557838,0.010553187,0.010548513,0.010543815,0.010539093999999999,0.010534347,0.010529574,0.010524775,0.010519947,0.010515091,0.010510206000000001,0.010505291000000002,0.010500343,0.010495363999999998,0.010490352,0.010485305,0.010480223,0.010475104,0.010469948,0.010464751,0.010459517,0.010454239,0.01044892,0.010443556,0.010438147,0.010432691,0.010427186,0.010421632,0.010416028,0.010410369000000001,0.010404655,0.010398886,0.010393056999999999,0.01038717,0.01038122,0.010375207,0.010369128,0.010362983000000001,0.010356769,0.010350482,0.010350913,0.010351344,0.010351774000000001,0.010352205,0.010352638,0.01035307,0.0103535,0.010353931,0.010354361999999999,0.010354793000000001,0.01035496,0.010355129,0.010355298,0.010355467,0.010355635,0.010355804,0.010355975,0.010356145,0.010356315999999999,0.010356485,0.010356891,0.010357297,0.010357705,0.010358112,0.010358519,0.010358926999999999,0.010359338000000001,0.010359748,0.01036016,0.010360569,0.010361285999999999,0.010362003,0.01036272,0.010363441,0.010364164,0.010364884,0.010365604,0.010366324,0.010367045,0.010367767,0.010368724000000001,0.01036968,0.010370641,0.010371601999999999,0.01037256,0.010373516,0.010374477,0.010375435,0.010376393000000001,0.010377345,0.010379723,0.0103821,0.010384475,0.01038685,0.010389227,0.010391604,0.010393983,0.010396358,0.010398735,0.010401115,0.010406394,0.010411672,0.010416950999999999,0.010422233000000001,0.010427518,0.010432805,0.010438096,0.010443388,0.010448681999999999,0.010453981999999999,0.0104523,0.98417991,1.1648849,1.2256653,1.2896433999999999,1.3569897,1.4278826999999998,1.5025036,1.5810544,1.6637375,1.7507764,1.8423953000000002,1.9388368999999999,2.0403528000000004,2.1472124,2.2596977000000003,2.3781004,2.5027381,2.6339327999999997,2.7720335,2.9174066,3.0704314,3.2315097,3.4010636,3.5795440000000003,3.7674167,3.9651774,4.1733472,4.392470200000001,4.623130000000001,4.865916,5.121479,5.3904959,5.6736692,5.971749099999999,6.2855162,6.615796899999999,6.9634615,7.329426600000001,7.7146508,8.1201607,8.5470132,14.984956,13.488098999999998,13.488369,13.488639000000001,13.488909,13.48918,13.489448999999999,11.992564,13.489967000000002,13.490244,13.490523000000001,11.993644999999999,13.49105,13.491328,11.994452,13.491857000000001,11.994981,13.492386999999999,11.995499,13.492892999999999,11.996004,11.996242,11.99648,13.493874,11.996986,11.997224000000001,11.997461999999999,11.997683,11.997905000000001,11.998111,11.998353999999999,11.998586999999999,10.501674000000001,11.999071,11.999322,11.999575,10.502692,12.0001,11.925,11.8481,11.7693,11.6885,11.6059,12.2669,12.9284,13.5912,14.254,14.9168,14.6468,14.3768,14.1068,13.8368,13.5668,13.2968,13.0268,12.7568,12.4868,12.2168,11.66461,11.11242,10.56023,10.00804,9.45585,8.90366,8.351469999999999,7.79928,7.247089999999999,6.6949,6.53063,6.36636,6.20209,6.03782,5.87355,5.709280000000001,5.5450099999999996,5.38074,5.216469999999999,5.0522,4.81083,4.569459999999999,4.32809,4.08672,3.84535,3.6039800000000004,3.3626099999999997,3.1212400000000002,2.87987,2.6385,2.59225,2.546,2.49975,2.4535,2.40725,2.361,2.31475,2.2685,2.22225,2.176,2.17216,2.16832,2.1644799999999997,2.1606400000000003,2.1568,2.1529599999999998,2.14912,2.14528,2.1414400000000002,2.1376,2.06823,1.9988599999999999,1.9294900000000001,1.86012,1.79075,1.72138,1.6520099999999998,1.58264,1.5132700000000001,1.4439,1.41908,1.39426,1.36944,1.3446200000000001,1.3198,1.29498,1.27016,1.24534,1.22052,1.1957,1.18533,1.17496,1.16459,1.15422,1.14385,1.1334799999999998,1.12311,1.11274,1.10237,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092,1.092 +IMAGE,RCP26,World,Emissions|CFC11,kt CFC11 / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.161,0.161,0.161,0.161,0.161,0.322,0.322,0.483,0.966,2.093,3.703,6.118,8.855,8.158,11.742,15.985,19.855,24.604,30.685,34.375,32.235,33.015,43.342,55.722,69.881,85.539,101.538,115.75,129.623,147.119,167.586,194.513,221.119,243.137,274.26,314.04,345.881,335.741,343.24,330.711,359.009,274.357,304.998,289.529,252.419,299.092,310.901,315.327,388.346,387.277,303.816,301.477,291.464,190.405,203.23,144.94,127.137,119.235,115.437,95.388,92.401,94.931,99.227,81.839,81.408,90.865,78.182,49.49,48.471,47.083,45.74,44.442,42.976,41.557,40.186,38.86,37.578,36.338,35.138,33.979,32.858,31.773,30.725,29.711,28.73,27.782,26.865,25.979,25.122,24.293,23.491,22.716,21.966,21.241,20.54,19.862,19.207,18.573,17.96,17.368,16.794,16.24,15.704,15.186,14.685,14.2,13.732,13.279,12.84,12.417,12.007,11.611,11.227,10.857,10.499,10.152,9.817,9.493,9.18,8.877,8.584,8.301,8.027,7.762,7.506,7.258,7.019,6.787,6.563,6.346,6.137,5.935,5.739,5.549,5.366,5.189,5.018,4.852,4.692,4.537,4.388,4.243,4.103,3.967,3.836,3.71,3.587,3.469,3.355,3.244,3.137,3.033,2.933,2.836,2.743,2.652,2.565,2.48,2.398,2.319,2.243,2.169,2.097,2.028,1.961,1.896,1.834,1.773,1.715,1.658,1.603,1.55,1.499,1.45,1.402,1.356,1.311,1.268,1.226,1.185,1.146,1.108,1.072,1.036,1.002,0.969,0.937,0.906,0.876,0.847,0.819,0.792,0.766,0.741,0.717,0.693,0.67,0.648,0.627,0.606,0.586,0.567,0.548,0.53,0.512,0.495,0.479,0.463,0.448,0.433,0.419,0.405,0.392,0.379,0.366,0.354,0.342,0.331,0.32,0.31,0.299,0.29,0.28,0.271,0.262,0.253,0.245,0.237,0.229,0.221,0.214,0.207,0.2,0.194,0.187,0.181,0.175,0.169,0.164,0.158,0.153,0.148,0.143,0.138,0.134,0.129,0.125,0.121,0.117,0.113,0.109,0.106,0.102,0.099,0.096,0.093,0.089,0.087,0.084,0.081,0.078,0.076,0.073,0.071,0.068,0.066,0.064,0.062,0.06,0.058,0.056,0.054,0.052,0.051,0.049,0.047,0.046,0.044,0.043,0.041,0.04,0.039,0.037,0.036,0.035,0.034,0.033,0.032,0.031,0.03,0.029,0.028,0.027,0.026,0.025,0.024,0.023,0.023,0.022,0.021,0.02,0.02,0.019,0.018,0.018,0.017,0.017,0.016,0.016,0.015,0.015,0.014,0.014,0.013,0.013,0.012,0.012,0.012,0.011,0.011,0.01,0.01,0.01,0.009,0.009,0.009,0.009,0.008,0.008,0.008,0.007,0.007,0.007,0.007,0.007,0.006,0.006,0.006,0.006,0.006,0.005,0.005,0.005,0.005,0.005,0.005,0.004,0.004,0.004,0.004,0.004,0.004,0.004,0.003,0.003,0.003,0.003,0.003,0.003,0.003,0.003,0.003,0.003,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +IMAGE,RCP26,World,Emissions|CFC113,kt CFC113 / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.868,4.203,5.137,6.071,6.538,7.939,1.889,2.139,2.437,2.785,3.233,3.73,4.227,4.824,5.57,6.366,7.212,8.248,9.476,10.853,12.426,14.246,16.313,18.678,21.388,24.494,28.094,32.236,36.92,42.295,48.505,55.552,63.634,72.896,83.489,95.641,104.421,108.943,120.93,177.397,128.622,169.103,250.222,245.07,204.109,203.131,198.928,121.343,67.857,61.065,22.978,27.962,18.663,14.831,14.362,17.777,12.051,6.019,2.604,5.237,0.854,1.119,0.911,0.806,0.754,0.377,0.189,0.094,0.047,0.024,0.012,0.006,0.003,0.001,0.001,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +IMAGE,RCP26,World,Emissions|CFC114,kt CFC114 / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.117,0.117,0.117,0.234,0.234,0.351,0.468,0.585,0.819,1.17,1.521,3.861,6.318,6.903,7.254,7.722,8.073,7.102,7.288,7.43,7.431,7.388,7.302,7.25,7.221,7.176,6.6,6.88,7.168,7.421,7.692,7.975,8.305,8.623,8.974,9.344,9.687,10.052,10.471,10.883,11.29,11.734,12.2,12.68,13.168,13.661,14.194,14.121,13.905,14.252,14.781,15.705,16.379,16.667,16.593,15.725,14.022,13.243,10.324,8.322,6.105,4.784,2.943,1.886,1.199,0.784,0.567,0.45,0.423,0.37,0.378,0.227,0.136,0.082,0.049,0.029,0.018,0.011,0.006,0.004,0.002,0.001,0.001,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +IMAGE,RCP26,World,Emissions|CFC115,kt CFC115 / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.225,0.444,0.633,0.825,1.043,1.283,1.537,1.803,2.127,2.495,2.921,3.391,3.943,4.582,5.337,6.228,7.006,7.743,8.399,9.207,9.71,9.792,10.152,10.807,11.493,12.26,12.363,12.135,12.018,11.681,11.011,9.083,7.019,5.429,4.223,3.32,2.609,2.069,1.609,1.288,1.046,0.785,0.588,0.441,0.331,0.248,0.186,0.14,0.105,0.079,0.059,0.044,0.033,0.025,0.019,0.014,0.01,0.008,0.006,0.004,0.003,0.002,0.002,0.001,0.001,0.001,0.001,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +IMAGE,RCP26,World,Emissions|CFC12,kt CFC12 / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.097,0.097,0.097,0.194,0.291,0.485,0.776,1.164,1.649,2.231,2.91,3.589,4.365,5.917,7.76,13.483,20.661,24.056,25.802,28.615,33.854,35.2,39.582,44.802,50.343,58.664,66.689,69.93,78.149,93.09,104.6,120.668,141.744,164.921,185.933,208.571,235.269,263.953,294.486,321.743,346.609,378.471,419.239,454.701,442.834,432.28,419.447,424.498,357.266,432.044,386.347,400.317,408.416,432.125,407.669,502.712,453.238,507.99,385.52,405.617,309.884,303.369,228.999,232.722,194.71,178.907,160.981,152.715,145.169,140.712,117.202,100.258,107.745,87.647,51.552,49.808,46.366,43.216,40.334,36.906,33.769,30.898,28.272,25.869,23.67,21.658,19.817,18.133,16.591,15.181,13.891,12.71,11.63,10.641,9.737,8.909,8.152,7.459,6.825,6.245,5.714,5.228,4.784,4.377,4.005,3.665,3.353,3.068,2.807,2.569,2.35,2.151,1.968,1.801,1.648,1.507,1.379,1.262,1.155,1.057,0.967,0.885,0.809,0.741,0.678,0.62,0.567,0.519,0.475,0.435,0.398,0.364,0.333,0.305,0.279,0.255,0.233,0.214,0.195,0.179,0.164,0.15,0.137,0.125,0.115,0.105,0.096,0.088,0.08,0.074,0.067,0.062,0.056,0.052,0.047,0.043,0.039,0.036,0.033,0.03,0.028,0.025,0.023,0.021,0.019,0.018,0.016,0.015,0.014,0.012,0.011,0.01,0.01,0.009,0.008,0.007,0.007,0.006,0.006,0.005,0.005,0.004,0.004,0.004,0.003,0.003,0.003,0.003,0.002,0.002,0.002,0.002,0.002,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +IMAGE,RCP26,World,Emissions|CH3Br,kt CH3Br / yr,unspecified,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.267,157.927,158.604,159.3,160.014,160.748,161.502,162.277,163.073,163.892,164.735,165.601,166.493,167.41,168.355,169.328,170.329,171.36,172.423,173.518,174.646,175.809,177.007,178.243,179.517,180.83,182.185,183.581,185.022,186.506,188.038,189.616,191.243,192.92,194.648,196.427,198.259,200.146,202.087,204.082,206.133,208.24,210.402,212.619,200.199,201.834,207.696,206.946,195.938,186.206,181.525,181.887,177.539,174.26,168.841,167.857,167.857,167.857,167.857,167.857,167.857,167.857,167.857,167.857,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925,155.925 +IMAGE,RCP26,World,Emissions|CH3CCl3,kt CH3CCl3 / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.214,3.512,6.224,9.469,10.772,14.717,18.348,20.077,28.22,31.46,36.197,48.096,69.567,94.137,114.767,134.875,141.326,170.133,214.168,266.209,305.489,308.992,382.3,462.112,587.319,489.712,550.707,505.097,505.343,553.718,569.476,546.714,539.076,647.608,635.816,564.767,694.142,573.576,554.986,372.232,244.236,201.637,89.184,62.53,29.412,24.668,18.584,13.253,13.487,8.444,10.874,10.874,10.874,10.874,10.874,10.874,7.266,7.266,7.266,7.266,7.266,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +IMAGE,RCP26,World,Emissions|CH3Cl,kt CH3Cl / yr,unspecified,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3100.211,3117.785,3137.148,3158.216,3180.749,3204.498,3229.071,3254.039,3278.967,3303.389,3326.864,3349.069,3369.713,3388.628,3405.698,3420.923,3434.335,3446.065,3456.224,3464.95,3472.409,3478.741,3484.114,3488.632,3492.425,3495.619,3498.281,3500.505,3502.36,3503.915,3505.193,3506.255,3507.154,3507.882,3508.496,3508.999,3509.425,3509.774,3510.061,3510.299,3510.501,3510.656,3510.801,3510.907,3511.005,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082,3511.082 +IMAGE,RCP26,World,Emissions|CH4,Mt CH4 / yr,unspecified,0.0,1.9632618999999998,2.4364481,2.911105,3.3872782,3.8650146,4.3443625,4.8253718,5.308093799999999,5.7925816,6.278889599999999,6.7670743,7.2571937,7.7493076,8.2434776,8.7397674,9.2382426,9.738970599999998,10.242021000000001,10.747466000000001,11.25538,11.765839,12.278921,12.794707,13.313282000000001,13.834732,14.359145000000002,14.886613,15.417231,15.951096,16.488308,17.028971,17.573192000000002,18.121081,18.672751,19.228319,19.787906,20.351635,20.919635999999997,21.49204,22.068984,22.650607,23.237054999999998,23.828476000000002,24.425025,25.02686,25.634145,26.247048,26.865743,27.490408000000002,28.121229999999997,28.758398,29.402108000000002,30.052563,30.709971000000003,31.374547999999997,32.046514,32.7261,33.413539,34.109076,34.81296,35.52545,36.246813,36.977321,37.717259000000006,38.466916999999995,39.226597,39.996609,40.777271,41.568914,42.371876,43.186509,44.013172999999995,44.85224,45.704093,46.569129,47.447755,48.34039,49.247469,50.169439000000004,51.106759000000004,52.059903999999996,53.029365000000006,54.015643999999995,55.019264,56.040758999999994,56.46131999999999,56.88188,57.302441,57.723001000000004,58.143562,58.564122,58.984683,59.405243000000006,59.825804000000005,60.246364,59.614468,58.982572999999995,58.350677000000005,57.71878100000001,57.086884999999995,56.45499,55.823094,55.191198,54.559303,53.927406999999995,56.683868999999994,59.44033100000001,62.19679300000001,64.953255,67.709717,70.46618000000001,73.22264200000001,75.979104,78.735566,81.492028,84.359461,87.226893,90.094326,92.96175799999999,95.82919100000001,98.696624,101.56406,104.43149,107.29892,110.16635,111.52362,112.88089,114.23816000000001,115.59543000000001,116.9527,118.30996999999999,119.66723999999999,121.02451,122.38178,123.73905,124.8415,125.94396,127.04642,128.14887,129.25133,130.35378,131.45623999999998,132.5587,133.66115,134.76361,135.96943000000002,137.17525,138.38107,139.5869,140.79272,141.99854,143.20436,144.41019,145.61601000000002,146.82183,147.86155,148.90128,149.941,150.98072,152.02045,153.06017,154.09989,155.13962,156.17934,157.21906,158.34545,159.47183,160.59821000000002,161.7246,162.85098,163.97736,165.10375,166.23013,167.35651000000001,168.4829,170.03046,171.57803,173.12559,174.67315,176.22072,177.76828,179.31583999999998,180.86341000000002,182.41097,183.95853,189.11003,194.26153,199.41303,204.56453,209.71603,214.86753,220.01902,225.17052,230.32202,235.47352,238.52217000000002,241.57082999999997,244.61947999999998,247.66813,250.71679,253.76543999999998,256.81408999999996,259.86274,262.9114,265.96005,270.02505,274.09004,278.15504,282.22003,286.28503,290.35002000000003,294.41502,298.48002,302.54501,306.61001,310.01251,313.415,316.8175,320.22,323.6225,327.025,330.42749,333.82999,337.23249,340.63499,336.59218,332.54937,328.50656000000004,324.46375,320.42094,316.37814,312.33533,308.29252,304.24971,300.2069,303.4092,306.5788,309.7164,312.824,315.9027,320.0614,324.2127,328.34943,332.48617,336.6229,328.6374,320.6519,312.6664,304.6809,296.6954,288.7099,280.7244,272.7389,264.7534,256.7679,254.65433,252.54076,250.42719,248.31362000000001,246.20005,244.08648,241.97291,239.85934,237.74577000000002,235.6322,234.57182999999998,233.51146,232.45109,231.39072000000002,230.33035,229.26997999999998,228.20961,227.14924,226.08887000000001,225.0285,221.45546000000002,217.88242000000002,214.30937999999998,210.73633999999998,207.1633,203.59026,200.01722,196.44418000000002,192.87114,189.2981,187.01509,184.73208,182.44907,180.16606000000002,177.88305,175.60003999999998,173.31703000000002,171.03402,168.75101,166.468,165.95203999999998,165.43608,164.92012,164.40416000000002,163.8882,163.37223999999998,162.85628,162.34032,161.82436,161.3084,160.68516,160.06192,159.43868,158.81544,158.1922,157.56896,156.94572,156.32248,155.69924,155.076,154.41227,153.74854,153.08481,152.42108000000002,151.75735,151.09362,150.42989,149.76616,149.10243,148.4387,147.8001,147.1615,146.5229,145.8843,145.2457,144.6071,143.9685,143.3299,142.6913,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527,142.0527 +IMAGE,RCP26,World,Emissions|CO,Mt CO / yr,unspecified,0.0,9.0502213,12.960844,16.876539,20.797465,24.723782,28.655658000000003,32.593264000000005,36.536778000000005,40.486382,44.442265,48.40462,52.373649,56.349557,60.332558,64.32287,68.32072,72.32634,76.339972,80.361863,84.392268,88.431451,92.479683,96.537244,100.60441999999999,104.68151999999999,108.76883000000001,112.86668,116.9754,121.09532,125.22678,129.37015,133.52578,137.69406999999998,141.8754,146.07018,150.27882,154.50173999999998,158.7394,162.99225,167.26075,171.5454,175.84668,180.16513,184.50125,188.85561,193.22877,197.62131000000002,202.03382,206.46693,210.92127000000002,215.39751,219.8963,224.41836,228.96441000000002,233.53517999999997,238.13144,242.75397999999998,247.40361000000001,252.08117000000001,256.78752000000003,261.52355,266.29019,271.08837,275.91908,280.78331000000003,285.68212,290.61656,295.58772999999997,300.59677999999997,305.64487,310.73322,315.86307,321.03569,326.25242000000003,331.51462000000004,336.82369,342.18109,347.5883,353.04688,358.5584,364.1245,369.74689,375.42728,381.16749,386.96935,387.46072000000004,387.95209,388.44346,388.93483,389.42621,389.91758,390.40895,390.90032,391.39169,391.88307000000003,392.8961,393.90914,394.92217999999997,395.93522,396.94826,397.9613,398.97434,399.98738,401.00042,402.01346,403.03247999999996,404.0515,405.07052000000004,406.08954,407.10856,408.12757999999997,409.1466,410.16562000000005,411.18464,412.20366,413.25581,414.30795,415.3601,416.41225,417.46439,418.51653999999996,419.56869000000006,420.62082999999996,421.67298,422.72513,424.29312000000004,425.86110999999994,427.42911,428.9971,430.56509000000005,432.13309000000004,433.70108,435.26907,436.83707000000004,438.40505999999993,439.89155999999997,441.37805999999995,442.86456,444.35105999999996,445.83755999999994,447.32406,448.81055999999995,450.29706,451.78355999999997,453.27005999999994,451.75965,450.24925,448.73884000000004,447.22844000000003,445.71803,444.20762,442.69722,441.18681,439.67641,438.166,440.99557000000004,443.82514000000003,446.65470999999997,449.48427000000004,452.31384,455.14340999999996,457.97298,460.80254,463.63210999999995,466.46168,468.03074000000004,469.5998,471.16885999999994,472.73790999999994,474.30697000000004,475.87602999999996,477.44509000000005,479.01415,480.58320999999995,482.15227000000004,488.55777,494.96327,501.36877999999996,507.77428,514.17979,520.58529,526.9907900000001,533.3963,539.8018,546.20731,558.44614,570.68497,582.9238,595.16263,607.40145,619.64028,631.87911,644.1179400000001,656.35677,668.5956,682.67558,696.75555,710.83553,724.9155099999999,738.9954799999999,753.0754599999999,767.15544,781.23541,795.3153900000001,809.3953700000001,825.18291,840.97046,856.758,872.54555,888.3331,904.1206400000001,919.90819,935.69573,951.48328,967.27082,980.4447,993.6185800000001,1006.7925,1019.9663,1033.1402,1046.3141,1059.488,1072.6618,1085.8357,1099.0096,1095.9087,1092.8078,1089.707,1086.6061,1083.5052,1080.4043,1077.3034,1074.2026,1071.1017,1068.0008,1066.7448,1065.4691,1064.1741,1062.8596,1061.5255,1055.3681,1049.2141,1043.0664,1036.9188,1030.7711,1025.9587,1021.1462,1016.3338,1011.5213,1006.7089,1001.8965,997.0840199999999,992.2715800000001,987.45914,982.6467,976.9788699999999,971.31104,965.64321,959.9753800000001,954.30755,948.6397199999999,942.97189,937.3040599999999,931.6362300000001,925.9684,921.1656,916.3628,911.56,906.7572,901.9544,897.1516,892.3488,887.546,882.7432,877.9404,872.16763,866.39486,860.6220900000001,854.8493199999999,849.07655,843.3037800000001,837.5310099999999,831.75824,825.98547,820.2127,816.1103099999999,812.00792,807.90553,803.80314,799.70075,795.59836,791.49597,787.3935799999999,783.29119,779.1888,772.51907,765.84934,759.1796099999999,752.50988,745.84015,739.17042,732.5006900000001,725.83096,719.1612299999999,712.4915,707.6157,702.7399,697.8641,692.9883,688.1125,683.2367,678.3609,673.4851,668.6093,663.7335,661.0450400000001,658.35658,655.66812,652.97966,650.2912,647.60274,644.91428,642.22582,639.5373599999999,636.8489,633.94839,631.04788,628.14737,625.24686,622.34635,619.4458400000001,616.54533,613.64482,610.7443099999999,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438,607.8438 +IMAGE,RCP26,World,Emissions|CO2|MAGICC AFOLU,Gt C / yr,unspecified,0.0,0.0053382963,0.010676593,0.016014888999999997,0.021353185,0.026691482000000002,0.032029777999999995,0.037368074,0.04270637099999999,0.048044667,0.053382963,0.058721259000000005,0.06405955599999999,0.069397852,0.074736148,0.080074445,0.085412741,0.09075103699999999,0.096089334,0.10142763,0.10676593,0.11210422,0.11744252,0.12278082,0.12811911,0.13345741,0.1387957,0.144134,0.1494723,0.15481059,0.16014889,0.16548719,0.17082548,0.17616378,0.18150207,0.18684037,0.19217867,0.19751696,0.20285526,0.20819356,0.21353185,0.21887015,0.22420845,0.22954674,0.23488504,0.24022333,0.24556163,0.25089993,0.25623822,0.26157652,0.26691482,0.27225311,0.27759141,0.2829297,0.288268,0.2936063,0.29894459,0.30428289,0.30962119,0.31495948,0.32029778,0.32563608,0.33097437,0.33631267,0.34165096,0.34698926,0.35232756,0.35766585,0.36300415,0.36834245,0.37368074,0.37901904,0.38435733,0.38969563,0.39503393,0.40037222,0.40571052,0.41104882,0.41638711,0.42172541,0.42706371,0.432402,0.4377403,0.44307859,0.44841689,0.45375519,0.44678569,0.49862282,0.49735449,0.49581708,0.49367925,0.49893488,0.504232,0.50923298,0.51425389,0.51896689,0.5282236,0.47371663,0.47374912,0.47413825,0.47479536,0.47491218,0.47338353,0.47198274,0.47048522,0.46933399,0.48732546,0.56696435,0.57690133,0.58328394,0.5899696,0.59639187,0.60262312,0.6090507,0.61534752,0.62124317,0.64887292,0.60466403,0.60851762,0.61212775,0.61523611,0.61714413,0.61616314,0.61473356,0.6132002,0.61175412,0.61024855,0.62319119,0.62440331,0.64036719,0.64441851,0.6462784,0.64956412,0.65100098,0.65220446,0.65320628,0.70294318,0.70297364,0.72667096,0.74829324,0.76981521,0.79653384,0.80376274,0.81141278,0.81737807,0.82198169,0.77889405,0.74784844,0.72297977,0.71479152,0.70574964,0.70811648,0.7111963,0.71430427,0.71965435,0.72128338,0.75741661,0.7479409,0.75328819,0.75686059,0.75808855,0.76148327,0.79718283,0.79967141,0.82422601,0.89587975,0.90334082,0.81222597,0.80858849,0.79686256,0.79471575,0.80129993,0.77969902,0.78188222,0.77944376,0.76683237,0.75036458,0.7690497,0.7637656,0.76839864,0.76914739,0.84214892,0.87017994,0.87513044,0.88212641,0.89233465,1.0885201,1.1096378,1.1045171,1.1521416000000002,1.1911855,1.2446883,1.2718718,1.3195816999999999,1.2035957,1.1922833000000002,1.2443218,1.2355717,1.2442947,1.2515878999999999,1.2642558000000002,1.2936968,1.2976253999999998,1.2352028,1.2383879,1.1971128999999998,1.0708913,1.0470621,1.0330986999999998,1.0387370999999999,1.0315876,1.0906076999999998,1.0939874,1.09037,1.0647127,1.0252096,1.0448621,1.1904055,1.2255201,1.2600833,1.2753449,1.2872023000000001,1.2940086000000002,1.3167248,1.3236436000000003,1.3194833000000001,1.3809798999999998,1.3035303999999999,1.2981006000000002,1.2895956,1.2750104,1.2511025,1.2181396999999998,1.2148431,1.1827892,1.1488,1.132,1.2317,1.2257,1.2429,1.1955,1.1676,1.14,1.1121667,1.0843333,1.0565,1.04813,1.03976,1.03139,1.02302,1.01465,1.0062799999999998,0.99791,0.98954,0.98117,0.9728,0.95441,0.93602,0.91763,0.89924,0.88085,0.86246,0.84407,0.82568,0.80729,0.7889,0.75891,0.72892,0.69893,0.66894,0.63895,0.60896,0.57897,0.54898,0.51899,0.489,0.46022,0.43144,0.40266,0.37388,0.3451,0.31632,0.28754,0.25876,0.22998,0.2012,0.2426,0.284,0.3254,0.3668,0.4082,0.4496,0.491,0.5324,0.5738,0.6152,0.6075,0.5998,0.5921,0.5844,0.5767,0.569,0.5613,0.5536,0.5459,0.5382,0.53938,0.54056,0.54174,0.54292,0.5441,0.54528,0.54646,0.54764,0.54882,0.55,0.55524,0.56048,0.56572,0.57096,0.5762,0.58144,0.58668,0.59192,0.59716,0.6024,0.59329,0.58418,0.57507,0.56596,0.55685,0.54774,0.53863,0.52952,0.52041,0.5113,0.490848,0.470396,0.449944,0.429492,0.40904,0.388588,0.368136,0.347684,0.327232,0.30678,0.286328,0.265876,0.245424,0.224972,0.20452,0.184068,0.163616,0.143164,0.122712,0.10226,0.081808,0.061356,0.040904,0.020452,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +IMAGE,RCP26,World,Emissions|CO2|MAGICC Fossil and Industrial,Gt C / yr,unspecified,0.003,0.003,0.003,0.003,0.003,0.003,0.0039999999,0.0039999999,0.0039999999,0.0039999999,0.0039999999,0.0039999999,0.0039999999,0.0039999999,0.0039999999,0.0039999999,0.0049999999,0.0049999999,0.0049999999,0.0049999999,0.0049999999,0.0049999999,0.0049999999,0.0049999999,0.0049999999,0.0049999999,0.0059999999,0.0059999999,0.0059999999,0.0059999999,0.0059999999,0.0059999999,0.0069999999,0.0069999999,0.0069999999,0.0079999999,0.0079999999,0.0099999999,0.0089999999,0.0089999999,0.0089999999,0.0099999998,0.0099999999,0.0099999999,0.0099999999,0.0099999999,0.011,0.011,0.011,0.011,0.012,0.013,0.014,0.014,0.014,0.014,0.014,0.015,0.016,0.016,0.017,0.017,0.018,0.018,0.018,0.024,0.023,0.023,0.024,0.024,0.025,0.029,0.029,0.03,0.031,0.032999999,0.033999998999999996,0.035999999,0.036999999,0.038999999,0.042999999000000004,0.042999999000000004,0.04599999900000001,0.046999999,0.049999999,0.05399999900000001,0.05399999900000001,0.056999999,0.058999999000000004,0.068999999,0.07099999900000001,0.075999999,0.076999999,0.077999999,0.082999999,0.090999999,0.094999998,0.096999998,0.104,0.112,0.119,0.122,0.13022269,0.13525196,0.14228123,0.14731051,0.15633978,0.17336905,0.18439832,0.1744276,0.18845687,0.19148614,0.19451541,0.196,0.21,0.236,0.243,0.256,0.272,0.275,0.27699999,0.28099999,0.295,0.32699999,0.32699999,0.35599999,0.37199999,0.37399999,0.36999999,0.38299999,0.40599999,0.41899999,0.43999999,0.46499999,0.50699999,0.53399999,0.55199999,0.56599999,0.61699999,0.62399999,0.66299999,0.70699999,0.78399999,0.74999999,0.78499999,0.81899999,0.83599999,0.87899999,0.94299999,0.84999999,0.83799999,0.90099999,0.95499999,0.93599999,0.80599999,0.93199999,0.80299999,0.84499999,0.96999999,0.96299999,0.97499999,0.98299999,1.062,1.065,1.145,1.053,0.93999999,0.84699999,0.89299999,0.97299999,1.027,1.13,1.209,1.142,1.192,1.299,1.334,1.342,1.391,1.383,1.16,1.238,1.392,1.469,1.419,1.63,1.768,1.796,1.841,1.865,2.043,2.178,2.27,2.33,2.462,2.577,2.594,2.7,2.848,3.008,3.145,3.305,3.411,3.588,3.8,4.076,4.231,4.399,4.6349999,4.644,4.615,4.883,5.029,5.105,5.387,5.332,5.168,5.127,5.11,5.29,5.444,5.61,5.753,5.964,6.089,6.144,6.235,6.118,6.124,6.242,6.372,6.51,6.619,6.588,6.569,6.735,6.8959,6.949,7.286,7.6719,7.971,8.1427,8.3136,8.482866699999999,8.652133300000001,8.8214,8.868030000000001,8.914660000000001,8.96129,9.00792,9.05455,9.101180000000001,9.14781,9.19444,9.24107,9.2877,9.07462,8.86154,8.64846,8.43538,8.2223,8.00922,7.796139999999999,7.583060000000001,7.36998,7.1569,6.8947,6.6325,6.3703,6.1081,5.8459,5.5837,5.3215,5.0593,4.7971,4.5349,4.39997,4.26504,4.13011,3.9951800000000004,3.86025,3.7253199999999995,3.59039,3.45546,3.32053,3.1856,3.0089599999999996,2.83232,2.65568,2.4790400000000004,2.3024,2.1257599999999996,1.94912,1.7724799999999998,1.59584,1.4192,1.28885,1.1585,1.02815,0.8978,0.76745,0.6371,0.50675,0.3764,0.24605,0.1157,0.06083,0.00596,-0.04891,-0.10378,-0.15865,-0.21352,-0.26839,-0.32326,-0.37813,-0.433,-0.47674,-0.52048,-0.56422,-0.60796,-0.6517,-0.69544,-0.73918,-0.78292,-0.82666,-0.8704,-0.87644,-0.88248,-0.88852,-0.89456,-0.9006,-0.90664,-0.91268,-0.91872,-0.92476,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308,-0.9308 +IMAGE,RCP26,World,Emissions|HCFC141b,kt HCFC141b / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,23.101,33.844,41.961,51.431,46.639,58.131,55.817,55.602,53.81,52.018,50.225,48.433,46.641,48.231,49.821,51.412,53.002,54.593,54.867,55.141,55.414,55.688,55.962,56.236,56.51,56.784,57.058,57.332,56.425,55.519,54.612,53.705,52.798,51.892,50.985,50.078,49.172,48.265,46.405,44.545,42.685,40.825,38.965,37.105,35.244,33.384,31.524,29.664,28.474,27.284,26.093,24.903,23.713,22.522,21.332,20.142,18.951,17.761,17.048,16.336,15.623,14.91,14.198,13.485,12.772,12.06,11.347,10.634,10.207,9.781,9.354,8.927,8.501,8.074,7.647,7.221,6.794,6.367,6.112,5.856,5.601,5.345,5.09,4.834,4.579,4.323,4.068,3.812,3.659,3.506,3.353,3.2,3.047,2.894,2.741,2.588,2.435,2.283,2.191,2.099,2.008,1.916,1.825,1.733,1.641,1.55,1.458,1.367,1.298,1.233,1.172,1.113,1.057,1.005,0.954,0.907,0.861,0.818,0.777,0.738,0.702,0.666,0.633,0.601,0.571,0.543,0.516,0.49,0.465,0.442,0.42,0.399,0.379,0.36,0.342,0.325,0.309,0.293,0.279,0.265,0.251,0.239,0.227,0.216,0.205,0.195,0.185,0.176,0.167,0.159,0.151,0.143,0.136,0.129,0.123,0.117,0.111,0.105,0.1,0.095,0.09,0.086,0.081,0.077,0.073,0.07,0.066,0.063,0.06,0.057,0.054,0.051,0.049,0.046,0.044,0.042,0.04,0.038,0.036,0.034,0.032,0.031,0.029,0.028,0.026,0.025,0.024,0.023,0.021,0.02,0.019,0.018,0.017,0.017,0.016,0.015,0.014,0.014,0.013,0.012,0.012,0.011,0.01,0.01,0.009,0.009,0.009,0.008,0.008,0.007,0.007,0.007,0.006,0.006,0.006,0.005,0.005,0.005,0.005,0.004,0.004,0.004,0.004,0.004,0.003,0.003,0.003,0.003,0.003,0.003,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +IMAGE,RCP26,World,Emissions|HCFC142b,kt HCFC142b / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.613,0.613,0.613,0.613,0.613,0.613,0.613,0.613,0.613,0.613,1.25,0.961,1.165,1.331,1.011,3.575,3.773,4.458,6.174,11.322,16.556,20.911,22.5,25.599,24.275,26.411,22.493,27.683,28.047,26.296,28.001,22.43,23.232,23.348,26.458,34.767,39.869,39.099,38.069,36.801,35.314,33.625,31.75,29.705,27.502,25.476,23.611,21.896,20.318,18.867,17.531,16.302,15.172,14.132,13.175,12.295,11.485,10.74,10.055,9.424,8.826,8.259,7.72,7.207,6.717,6.249,5.801,5.372,4.96,4.563,4.198,3.862,3.553,3.269,3.007,2.767,2.545,2.342,2.154,1.982,1.824,1.678,1.543,1.42,1.306,1.202,1.106,1.017,0.936,0.861,0.792,0.729,0.67,0.617,0.567,0.522,0.48,0.442,0.407,0.374,0.344,0.317,0.291,0.268,0.247,0.227,0.209,0.192,0.177,0.162,0.149,0.138,0.127,0.116,0.107,0.099,0.091,0.083,0.077,0.071,0.065,0.06,0.055,0.051,0.047,0.043,0.039,0.036,0.033,0.031,0.028,0.026,0.024,0.022,0.02,0.019,0.017,0.016,0.014,0.013,0.012,0.011,0.01,0.01,0.009,0.008,0.007,0.007,0.006,0.006,0.005,0.005,0.005,0.004,0.004,0.004,0.003,0.003,0.003,0.003,0.002,0.002,0.002,0.002,0.002,0.002,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +IMAGE,RCP26,World,Emissions|HCFC22,kt HCFC22 / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.165,0.33,0.496,0.661,0.826,0.991,1.157,1.322,1.487,1.652,1.817,1.983,2.148,2.313,2.478,2.644,2.809,2.974,3.48,4.251,6.008,7.06,7.659,9.426,11.573,14.396,16.782,20.514,24.512,29.817,36.216,39.381,43.652,47.746,54.79,61.912,62.543,70.487,78.51,85.789,92.012,99.321,104.973,106.406,116.821,125.343,130.447,138.367,146.048,162.883,180.113,186.15,195.69,204.801,185.994,188.092,179.101,243.238,211.181,208.614,249.912,230.91,229.638,240.392,251.146,261.9,272.654,283.408,296.002,308.596,321.19,333.784,346.378,344.714,343.051,341.387,339.724,338.06,336.397,334.733,333.07,331.406,329.743,313.814,297.886,281.957,266.029,250.101,234.172,218.244,202.315,186.387,170.458,158.161,145.863,133.566,121.269,108.971,96.674,84.377,72.079,59.782,47.485,43.916,40.347,36.778,33.209,29.64,26.072,22.503,18.934,15.365,11.796,10.91,10.023,9.137,8.25,7.363,6.477,5.59,4.704,3.817,2.93,2.71,2.49,2.27,2.049,1.829,1.609,1.389,1.168,0.948,0.728,0.673,0.619,0.564,0.509,0.454,0.4,0.345,0.29,0.236,0.181,0.167,0.154,0.14,0.126,0.113,0.099,0.086,0.072,0.059,0.045,0.042,0.038,0.035,0.031,0.028,0.025,0.021,0.018,0.015,0.011,0.01,0.008,0.007,0.006,0.006,0.005,0.004,0.004,0.003,0.003,0.002,0.002,0.002,0.002,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +IMAGE,RCP26,World,Emissions|HFC125,kt HFC125 / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05544628,0.057318506,0.059192895,0.061069449000000005,0.062948171,0.064829061,0.066712124,0.068597361,0.070484772,0.072374362,0.018814426999999998,0.066288365,0.07359413299999999,0.073496743,0.018263078000000002,-0.080681159,0.075292049,0.17780496,0.18118326,0.18829422,0.18594167,0.19092079,0.28889991,0.3768163,1.8251047999999999,2.9802177000000003,3.4188812000000004,5.354049,7.2031812,8.1531677,8.5381,9.0301,9.8852,12.0788,12.5073,13.7591,16.2358,18.7259,21.2435,23.7611,26.2787,32.58573,38.892759999999996,45.19979,51.506820000000005,57.81385,64.12088,70.42791,76.73494000000001,83.04196999999999,89.349,91.30400999999999,93.25901999999999,95.21403000000001,97.16904,99.12405,101.07906,103.03407,104.98908,106.94408999999999,108.8991,110.50533,112.11156000000001,113.71779,115.32401999999999,116.93025,118.53648000000001,120.14271000000001,121.74893999999999,123.35517,124.9614,124.37893999999999,123.79648,123.21401999999999,122.63156000000001,122.0491,121.46663999999998,120.88418,120.30171999999999,119.71926,119.1368,121.10282,123.06884,125.03486000000001,127.00088000000001,128.9669,130.93292,132.89893999999998,134.86496,136.83098,138.797,140.83553,142.87406000000001,144.91259,146.95112,148.98965,151.02818,153.06671,155.10523999999998,157.14377,159.1823,159.92094,160.65958,161.39822,162.13686,162.8755,163.61414,164.35278,165.09142,165.83006,166.5687,166.06747,165.56624,165.06501,164.56378,164.06255,163.56132,163.06009,162.55886,162.05763000000002,161.5564,160.22213,158.88786000000002,157.55358999999999,156.21931999999998,154.88505,153.55078,152.21651,150.88224,149.54797,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137,148.2137 +IMAGE,RCP26,World,Emissions|HFC134a,kt HFC134a / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.94505787,1.0101542,2.1776447999999995,4.2079892,8.4161579,21.399077,29.726101,40.584859,50.643567,59.652126,67.04399699999999,75.0393,84.0409,94.7161,101.4157,113.9297,120.9334,121.0746,129.6223,138.76247,147.90263000000002,157.0428,158.72642,160.41003999999998,162.09366,163.77728000000002,165.4609,167.14452,168.82814,170.51176,172.19538,173.879,175.90966,177.94031999999999,179.97098,182.00163999999998,184.0323,186.06296,188.09362,190.12428,192.15493999999998,194.1856,196.04996,197.91432,199.77868,201.64303999999998,203.5074,205.37176000000002,207.23612,209.10048,210.96483999999998,212.8292,211.38137999999998,209.93356,208.48574,207.03791999999999,205.5901,204.14228,202.69446000000002,201.24663999999999,199.79882,198.351,201.15158,203.95216000000002,206.75274,209.55331999999999,212.3539,215.15447999999998,217.95506,220.75564,223.55622000000002,226.3568,229.30577000000002,232.25474,235.20371,238.15267999999998,241.10165,244.05062,246.99958999999998,249.94856000000001,252.89753,255.8465,256.83185,257.8172,258.80255,259.7879,260.77325,261.7586,262.74395,263.7293,264.71465,265.7,264.8148,263.9296,263.0444,262.1592,261.274,260.3888,259.5036,258.6184,257.7332,256.848,254.70245,252.5569,250.41135,248.2658,246.12025,243.9747,241.82915,239.6836,237.53805,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925,235.3925 +IMAGE,RCP26,World,Emissions|HFC143a,kt HFC143a / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.35640391,0.36316592,0.36993573,0.37671337,0.38349883,0.39029213,0.39709328,0.40390227,0.05429956,0.054330947000000004,0.76720931,0.78079292,0.081528294,0.79436576,0.80794309,0.10867413,0.82150728,1.5479208999999998,0.86222749,0.87579234,0.88920979,0.90261206,1.6286536,2.3685965,3.8347584,6.0409628,6.149987599999999,6.2587493,6.3676829,6.477524900000001,6.234,7.4947,8.7389,9.9776,11.2136,12.4483,14.293,16.1321,17.9599,19.7877,21.6155,25.89136,30.16722,34.44308,38.71894,42.9948,47.27066,51.54652,55.82238,60.098240000000004,64.3741,65.49221999999999,66.61034000000001,67.72846,68.84658,69.9647,71.08282,72.20094,73.31906,74.43718,75.5553,76.3722,77.1891,78.006,78.8229,79.6398,80.4567,81.2736,82.0905,82.9074,83.7243,83.06078000000001,82.39726,81.73374,81.07021999999999,80.4067,79.74318000000001,79.07966,78.41614,77.75262,77.0891,78.03953,78.98996,79.94039000000001,80.89081999999999,81.84125,82.79168,83.74211,84.69254000000001,85.64296999999999,86.5934,87.48473,88.37606,89.26739,90.15872,91.05005,91.94138000000001,92.83270999999999,93.72404,94.61537,95.5067,95.53701,95.56732,95.59763000000001,95.62794,95.65825,95.68856,95.71887,95.74918000000001,95.77949,95.8098,95.1051,94.4004,93.6957,92.991,92.2863,91.5816,90.8769,90.1722,89.4675,88.7628,87.63225,86.5017,85.37115,84.2406,83.11005,81.9795,80.84895,79.7184,78.58785,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573,77.4573 +IMAGE,RCP26,World,Emissions|HFC227ea,kt HFC227ea / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0047100239000000006,0.004710028,0.18499007,0.1819901,0.099994794,0.43697783,0.40797848,0.92795208,1.3539299999999999,1.9509,1.6449,2.508,3.341,4.269,4.8901,5.6938,6.5045,7.3294667,8.154433299999999,8.9794,8.242239999999999,7.50508,6.767919999999999,6.03076,5.2936,4.55644,3.8192800000000005,3.08212,2.34496,1.6078,1.5265600000000001,1.4453200000000002,1.36408,1.28284,1.2016,1.12036,1.03912,0.95788,0.87664,0.7954,0.80448,0.81356,0.82264,0.83172,0.8408,0.84988,0.85896,0.86804,0.87712,0.8862,0.82716,0.76812,0.70908,0.65004,0.591,0.53196,0.47292,0.41388,0.35484,0.2958,0.28044,0.26508,0.24972,0.23436,0.219,0.20364,0.18828,0.17292,0.15756,0.1422,0.14112,0.14004,0.13896,0.13788,0.1368,0.13572,0.13464,0.13356,0.13248,0.1314,0.1303,0.1292,0.1281,0.127,0.1259,0.1248,0.1237,0.1226,0.1215,0.1204,0.11903,0.11766,0.11629,0.11492,0.11355,0.11218,0.11081,0.10944,0.10807,0.1067,0.10515,0.1036,0.10205,0.1005,0.09895,0.0974,0.09585,0.0943,0.09275,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912,0.0912 +IMAGE,RCP26,World,Emissions|HFC23,kt HFC23 / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.74681988,0.067690547,0.073576745,0.07997479099999999,0.08692919699999999,0.09448834,0.10270482,0.11163575,0.12134333,0.13189502,0.14336429,0.15583315,0.16938647,0.18411857,0.20013198,0.21753811,0.23645812,0.25702368,0.27937786,0.30367628,0.33008802,0.35878218,0.38997068,0.42387036,0.4607169,0.5007665,0.54429755,0.5916127,0.64304094,0.69893975,0.75969781,0.82576341,0.8975743,0.97563006,1.0604738,1.1526958,1.2529377,1.361897,1.4803316999999998,1.6090657,1.7489948,1.901128,2.066494,2.2462442000000005,2.4416297,2.6540105,2.8848647,3.5660803999999997,3.7964008000000002,4.0275411,4.2595023,4.4921574,4.7256142,4.959872900000001,5.1949332,5.4307947,5.6674573,5.9049208,6.1431847,6.3822491999999995,6.621823299999999,6.8621776,7.102985,7.3453102,7.588207000000001,10.211528,10.248182,10.284399,10.320704,10.357655000000001,10.3949,10.4328,10.4708,10.5083,10.5454,10.8116,10.5529,10.2947,10.037233,9.779766699999998,9.5223,8.685310000000001,7.848319999999999,7.01133,6.17434,5.33735,4.50036,3.6633699999999996,2.82638,1.9893900000000002,1.1524,1.1063,1.0602,1.0141,0.968,0.9219,0.8758,0.8297,0.7836,0.7375,0.6914,0.66362,0.63584,0.60806,0.58028,0.5525,0.52472,0.49694,0.46916,0.44138,0.4136,0.39687,0.38014,0.36341,0.34668,0.32995,0.31322,0.29649,0.27976,0.26303,0.2463,0.23542,0.22454,0.21366,0.20278,0.1919,0.18102,0.17014,0.15926,0.14838,0.1375,0.13105,0.1246,0.11815,0.1117,0.10525,0.0988,0.09235,0.0859,0.07945,0.073,0.06942,0.06584,0.06226,0.05868,0.0551,0.05152,0.04794,0.04436,0.04078,0.0372,0.03348,0.02976,0.02604,0.02232,0.0186,0.01488,0.01116,0.00744,0.00372,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +IMAGE,RCP26,World,Emissions|HFC245fa,kt HFC245fa / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,17.9257,19.7183,21.5109,23.3035,25.096,26.8885,31.7215,36.5545,41.387467,46.220433,51.0534,49.180209999999995,47.30702,45.43383,43.56064,41.68745,39.81426,37.94107,36.06788,34.19469,32.3215,29.406779999999998,26.49206,23.57734,20.66262,17.7479,14.833179999999999,11.918460000000001,9.003739999999999,6.08902,3.1743,2.8568700000000002,2.5394400000000004,2.22201,1.90458,1.58715,1.2697200000000002,0.95229,0.63486,0.31743,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +IMAGE,RCP26,World,Emissions|HFC32,kt HFC32 / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.087305408,0.78573737,4.0,5.3987,6.7975,8.196,9.5947,10.9935,12.3831,13.7731,15.162767,16.552432999999997,17.9421,22.21208,26.482059999999997,30.75204,35.02202,39.292,43.56198,47.831959999999995,52.10194,56.371919999999996,60.6419,61.78125,62.9206,64.05995,65.1993,66.33865,67.478,68.61735,69.7567,70.89605,72.0354,72.90303,73.77065999999999,74.63829,75.50591999999999,76.37355,77.24118,78.10880999999999,78.97644,79.84407,80.7117,80.10127,79.49084,78.88041,78.26998,77.65955,77.04912,76.43869000000001,75.82826,75.21783,74.6074,75.55521999999999,76.50304,77.45085999999999,78.39868,79.3465,80.29432,81.24214,82.18996,83.13778,84.0856,85.06506,86.04451999999999,87.02398000000001,88.00344,88.9829,89.96236,90.94181999999999,91.92128000000001,92.90074,93.8802,94.1193,94.3584,94.5975,94.8366,95.0757,95.3148,95.5539,95.793,96.0321,96.2712,95.76444000000001,95.25768000000001,94.75092,94.24416,93.7374,93.23064000000001,92.72388000000001,92.21712,91.71036,91.2036,90.20593000000001,89.20826,88.21059,87.21292,86.21525,85.21758,84.21991,83.22224,82.22457,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269,81.2269 +IMAGE,RCP26,World,Emissions|HFC4310,kt HFC4310 / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.6471,1.294,1.9411,2.5882,3.2351,3.8803,4.5246,5.1677,5.8108,6.4539,6.53107,6.6082399999999994,6.685410000000001,6.762580000000001,6.83975,6.916919999999999,6.994089999999999,7.0712600000000005,7.14843,7.2256,7.315589999999999,7.4055800000000005,7.49557,7.585560000000001,7.67555,7.76554,7.85553,7.94552,8.03551,8.1255,8.24943,8.37336,8.49729,8.62122,8.74515,8.86908,8.99301,9.11694,9.24087,9.3648,9.53783,9.71086,9.88389,10.05692,10.22995,10.40298,10.57601,10.749039999999999,10.92207,11.0951,11.09689,11.09868,11.10047,11.102260000000001,11.10405,11.105839999999999,11.10763,11.10942,11.11121,11.113,11.10641,11.09982,11.09323,11.08664,11.08005,11.07346,11.06687,11.06028,11.05369,11.0471,11.038089999999999,11.02908,11.02007,11.01106,11.00205,10.993039999999999,10.98403,10.975019999999999,10.96601,10.957,10.93657,10.916139999999999,10.895710000000001,10.87528,10.85485,10.83442,10.813989999999999,10.793560000000001,10.77313,10.7527,10.71798,10.68326,10.648539999999999,10.61382,10.5791,10.54438,10.50966,10.47494,10.44022,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055,10.4055 +IMAGE,RCP26,World,Emissions|Halon1202,kt Halon1202 / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.001,0.002,0.005,0.008,0.013,0.019,0.026,0.035,0.044,0.055,0.067,0.08,0.095,0.11,0.127,0.145,0.161,0.185,0.206,0.229,0.249,0.269,0.289,0.309,0.329,0.349,0.369,0.389,0.409,0.429,0.509,0.589,0.669,0.729,0.789,0.607,0.467,0.328,0.282,0.235,0.189,0.189,0.189,0.049,0.049,0.049,0.049,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +IMAGE,RCP26,World,Emissions|Halon1211,kt Halon1211 / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.005,0.014,0.032,0.058,0.1,0.158,0.229,0.329,0.461,0.63,0.839,1.086,1.365,1.767,2.035,2.454,2.928,3.453,3.946,4.522,5.168,6.032,7.083,8.22,9.656,11.362,11.605,11.702,11.426,9.343,10.23,9.105,10.035,10.743,9.909,9.837,9.806,8.834,8.669,8.524,7.77,7.653,7.518,6.992,6.502,6.047,5.624,5.23,4.864,4.524,4.207,3.913,3.639,3.384,3.147,2.927,2.722,2.531,2.354,2.189,2.036,1.894,1.761,1.638,1.523,1.417,1.317,1.225,1.139,1.06,0.985,0.916,0.852,0.793,0.737,0.686,0.638,0.593,0.551,0.513,0.477,0.444,0.413,0.384,0.357,0.332,0.309,0.287,0.267,0.248,0.231,0.215,0.2,0.186,0.173,0.161,0.149,0.139,0.129,0.12,0.112,0.104,0.097,0.09,0.084,0.078,0.072,0.067,0.063,0.058,0.054,0.05,0.047,0.043,0.04,0.038,0.035,0.033,0.03,0.028,0.026,0.024,0.023,0.021,0.02,0.018,0.017,0.016,0.015,0.014,0.013,0.012,0.011,0.01,0.009,0.009,0.008,0.008,0.007,0.007,0.006,0.006,0.005,0.005,0.005,0.004,0.004,0.004,0.003,0.003,0.003,0.003,0.003,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +IMAGE,RCP26,World,Emissions|Halon1301,kt Halon1301 / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.001,0.003,0.005,0.008,0.013,0.016,0.024,0.043,0.1,0.17,0.277,0.372,0.524,0.783,1.006,1.253,1.548,1.805,2.139,2.645,2.98,3.475,3.997,4.579,5.109,5.696,5.482,5.119,4.094,2.74,3.344,4.75,3.991,2.691,2.594,2.491,2.39,2.295,2.209,2.131,2.057,1.987,1.92,1.834,1.752,1.675,1.601,1.521,1.445,1.373,1.304,1.239,1.177,1.118,1.062,1.009,0.959,0.911,0.865,0.822,0.781,0.742,0.705,0.669,0.636,0.604,0.574,0.545,0.518,0.492,0.467,0.444,0.422,0.401,0.381,0.362,0.344,0.326,0.31,0.295,0.28,0.266,0.253,0.24,0.228,0.217,0.206,0.195,0.186,0.176,0.168,0.159,0.151,0.144,0.136,0.13,0.123,0.117,0.111,0.106,0.1,0.095,0.091,0.086,0.082,0.078,0.074,0.07,0.067,0.063,0.06,0.057,0.054,0.052,0.049,0.046,0.044,0.042,0.04,0.038,0.036,0.034,0.032,0.031,0.029,0.028,0.026,0.025,0.024,0.023,0.022,0.02,0.019,0.018,0.018,0.017,0.016,0.015,0.014,0.014,0.013,0.012,0.012,0.011,0.011,0.01,0.009,0.009,0.009,0.008,0.008,0.007,0.007,0.007,0.006,0.006,0.006,0.005,0.005,0.005,0.005,0.004,0.004,0.004,0.004,0.004,0.003,0.003,0.003,0.003,0.003,0.003,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +IMAGE,RCP26,World,Emissions|Halon2402,kt Halon2402 / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007,0.014,0.028,0.048,0.075,0.109,0.15,0.197,0.252,0.313,0.391,0.468,0.544,0.621,0.697,0.774,0.85,0.927,1.003,1.105,1.183,1.262,1.355,1.434,1.504,1.728,1.73,1.73,1.735,1.715,1.7,1.68,1.3,0.85,0.7,0.71,0.631,0.562,0.5,0.445,0.396,0.353,0.314,0.279,0.249,0.221,0.197,0.175,0.156,0.139,0.124,0.11,0.098,0.087,0.078,0.069,0.061,0.055,0.049,0.043,0.039,0.034,0.031,0.027,0.024,0.022,0.019,0.017,0.015,0.013,0.012,0.011,0.01,0.008,0.008,0.007,0.006,0.005,0.005,0.004,0.004,0.003,0.003,0.003,0.002,0.002,0.002,0.002,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +IMAGE,RCP26,World,Emissions|N2O,Mt N2ON / yr,unspecified,0.0,0.0051910845,0.010116813,0.015042803,0.019969063000000002,0.024895601,0.029822427000000002,0.034749548,0.039676975,0.044604715,0.04953278,0.05446118,0.059389923,0.064319022,0.069248487,0.07417833,0.07910856200000001,0.084039195,0.08897024099999999,0.093901714,0.098833627,0.10376599,0.10869883,0.11363214,0.11856595,0.12350027,0.12843512,0.13337052,0.13830648,0.14324301,0.14818014,0.15311788,0.15805626,0.16299529,0.167935,0.1728754,0.17781651,0.18275836,0.18770098,0.19264437,0.19758858,0.20253362,0.20747952,0.2124263,0.217374,0.22232264,0.22727225,0.23222285,0.2371745,0.2421272,0.247081,0.25203593,0.25699203,0.26194932,0.26690786,0.27186767,0.2768288,0.28179128,0.28675516,0.29172049,0.2966873,0.30165564,0.30662557,0.31159712,0.31657035,0.32154532,0.32652206,0.33150065,0.33648114,0.34146358,0.34644803,0.35143456,0.35642324,0.36141413,0.36640729,0.3714028,0.37640073,0.38140115,0.38640415,0.3914098,0.39641818,0.40142938,0.40644349,0.41146059,0.41648078,0.42150415,0.42740096,0.46466062,0.46477417,0.46443647,0.46327909,0.46729312,0.47126447,0.47503119,0.47876627,0.48257672,0.50499476,0.47111281,0.47444935,0.47785801,0.48144966,0.48420454,0.48472337,0.48595323,0.48686155,0.48774355,0.58501628,0.66673981,0.69637076,0.7087503,0.72034342,0.74524338,0.75633197,0.7660459,0.77491118,0.78412129,0.81157848,0.78526034,0.79255607,0.7987505,0.80453383,0.82619361,0.83219647,0.83705812,0.84143987,0.84552548,0.85098169,0.85741997,0.86475824,0.87294487,0.88188195,0.89141802,0.90140157,0.91168111,0.92210515,0.9325222,0.9446669,0.95993065,0.97764708,0.99722904,1.0181293,1.0397413,1.0614586000000001,1.0826746,1.1027829,1.121177,1.1389722,1.1575596000000001,1.1767464,1.1962611,1.2158443,1.2353216999999999,1.2545190000000002,1.2732618,1.2913758999999998,1.3086868999999999,1.3257923999999999,1.343275,1.3609385,1.3796194,1.3998973999999997,1.4211909,1.4429184,1.4644982,1.4853488000000001,1.5048887,1.5226236000000002,1.5385171999999998,1.5526746,1.5653127,1.5771213,1.5889151000000001,1.6015088,1.615717,1.6323545,1.6522358,1.7002043999999998,1.7938613,1.9231581999999998,2.0866797,2.280402,2.4903635,2.7026031,2.9031595,3.0780722000000003,3.2133814999999997,3.3186021,3.4111061,3.4887221,3.5543489,3.614111,3.6706801,3.7267318,3.7849451000000003,3.8480013,3.9185827000000004,4.0240052,4.1836477,4.3883117,4.6374693,4.8968181,5.195583,5.457478,5.619744,5.784831,5.9368752,5.6049759,5.9181309,6.0449043,5.9406002,6.1409693,6.3042587999999995,6.5344050000000005,6.619372900000001,7.007772999999999,7.0613923,6.841752199999999,7.118985799999999,7.216897099999999,7.0481314,7.0169243,7.0704917,7.4616728000000005,7.202507700000001,7.3310397,7.585681200000001,7.4023631,7.798932300000001,7.3131034,7.5072841,7.6191035000000005,7.652063799999999,7.9097526,7.895726299999999,7.5269849,7.4566,7.503,7.5487,7.5942,7.6394,7.6841,7.715,7.7459,7.7766333,7.8073667,7.8381,7.79063,7.7431600000000005,7.695689999999999,7.648219999999999,7.60075,7.55328,7.50581,7.45834,7.41087,7.3634,7.35756,7.351719999999999,7.34588,7.340039999999999,7.3342,7.328360000000001,7.32252,7.31668,7.31084,7.305,7.292210000000001,7.27942,7.26663,7.253839999999999,7.24105,7.228260000000001,7.21547,7.20268,7.189889999999999,7.1771,7.084039999999999,6.99098,6.89792,6.804860000000001,6.7118,6.61874,6.52568,6.43262,6.33956,6.2465,6.1936599999999995,6.14082,6.08798,6.03514,5.9823,5.92946,5.87662,5.82378,5.77094,5.7181,5.7204,5.7227,5.725,5.7273,5.7296,5.7319,5.7342,5.7365,5.7388,5.7411,5.728330000000001,5.71556,5.70279,5.69002,5.67725,5.66448,5.65171,5.63894,5.62617,5.6134,5.59813,5.58286,5.56759,5.55232,5.53705,5.521780000000001,5.50651,5.49124,5.475969999999999,5.4607,5.44286,5.42502,5.40718,5.38934,5.3715,5.35366,5.33582,5.31798,5.30014,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823,5.2823 +IMAGE,RCP26,World,Emissions|NH3,Mt N / yr,unspecified,0.83383669,0.85423057,0.87416738,0.89365446,0.91269911,0.93130867,0.95253247,0.97029378,0.98764194,1.0045843,1.0211280999999999,1.0372808,1.0530496,1.0684418,1.0834648,1.0981258999999999,1.1154743999999999,1.1294336999999999,1.143053,1.1563396000000001,1.169301,1.1819444,1.194277,1.2063064,1.2180396999999998,1.2294843,1.2436895000000001,1.2545786,1.265201,1.2755638999999999,1.2856747,1.2955406999999999,1.3082113000000002,1.3176096000000002,1.3267852,1.3387871999999998,1.347539,1.362174,1.3674893999999997,1.3756605,1.3836527,1.3945153000000001,1.4021716,1.409671,1.4170207000000001,1.424228,1.4343424,1.4412871,1.4481114,1.4548226999999998,1.4644703000000001,1.4740194,1.4834775,1.4898097,1.4960655,1.5022521999999998,1.5083771000000001,1.5174895,1.5265547,1.532538,1.5415308,1.5474564,1.5564061000000002,1.5623033000000002,1.5681971000000001,1.5923472,1.5952145,1.6011425,1.6101385,1.6161259,1.6251958999999998,1.6434400000000002,1.6495713,1.6588072,1.6681131,1.6805381999999998,1.6900058999999998,1.7026076,1.7122664,1.7250737,1.7440790000000002,1.7510373,1.7672503000000002,1.7775148999999997,1.7940068,1.8136911,1.8469194,1.9946876,2.0008114,2.0303036,2.0325148,2.0617636999999998,2.0784529999999997,2.0943023999999997,2.1229709999999997,2.1619782,2.2735927000000005,2.1558166,2.192329,2.2299438,2.2655309,2.2871957999999997,2.3187563,2.3371841,2.3628056,2.3824052000000004,2.8606677000000005,3.2401697,3.4033641,3.4271557,3.5173084,3.6375502999999996,3.6958464999999996,3.7456525999999997,3.8304098,3.9520182999999998,4.071307,4.0198711000000005,4.0985326,4.1333435,4.1646148,4.2758916,4.353178,4.4748698,4.498422,4.603701099999999,4.6830725,4.755163700000001,4.8217408,4.884570200000001,4.9454180999999995,5.006050900000001,5.0682347000000005,5.1337359000000005,5.2043208,5.2817555,5.3685634,5.4646652,5.5679233,5.6762002,5.7873584000000005,5.8992603,6.0097685,6.1167454,6.2180534000000005,6.3115552,6.3975596,6.4786614,6.556151799999999,6.6313219,6.7054629,6.7798659,6.855822200000001,6.9346228000000005,7.017558900000001,7.1059216,7.20195,7.3058290999999995,7.415769,7.5299799,7.646671899999999,7.7640552,7.8803399,7.993736099999999,8.102454,8.2047038,8.298548,8.3849848,8.466628300000002,8.546092199999999,8.6259906,8.7089373,8.7975462,8.8944313,9.0022064,9.1234856,9.265386099999999,9.432117300000002,9.6219311,9.833079199999998,10.063814,10.312386,10.577048,10.856052,11.14765,11.450092999999999,11.784634,12.1691,12.596604,13.060259,13.553179,14.068475,14.599262,15.138651999999999,15.679757999999998,16.215694,16.759267,17.326045999999998,17.913289000000002,18.518251,19.138189,19.770360999999998,20.412021,21.060427,21.712835000000002,22.366503,23.042459,23.75562,24.494072,25.2459,25.999188,26.742024,27.462491999999997,28.148677000000003,28.788664,29.370540000000002,29.931853000000004,30.508392999999998,31.085608,31.648945,32.183851000000004,32.675774,33.110161,33.472458,33.748114,33.922575,34.026024,34.113528,34.207861,34.331799,34.508115000000004,34.960533,35.833672,37.03165,38.458587,40.0186,40.3916,40.7646,41.1378,41.5107,41.8837,42.2406,42.5977,42.9544,43.3111,43.6678,44.07346,44.47912,44.88478,45.290440000000004,45.6961,46.10176,46.50742,46.91308,47.318740000000005,47.7244,48.0643,48.4042,48.7441,49.084,49.4239,49.7638,50.1037,50.4436,50.7835,51.1234,51.34308,51.56276,51.78244,52.00212,52.2218,52.441480000000006,52.661159999999995,52.88084,53.100519999999996,53.3202,53.54175,53.7633,53.98485,54.2064,54.42795,54.6495,54.87105,55.0926,55.31415,55.5357,55.83387,56.13204,56.430209999999995,56.72838,57.02655,57.32471999999999,57.622890000000005,57.92106,58.21923,58.5174,58.80981,59.102219999999996,59.39463000000001,59.68704,59.97945,60.27186,60.56426999999999,60.856680000000004,61.14909,61.4415,61.63589,61.83028,62.02466999999999,62.21906,62.41345,62.60784,62.80223,62.99661999999999,63.19101,63.3854,63.57873000000001,63.772059999999996,63.96539,64.15872,64.35205,64.54538000000001,64.73871,64.93204,65.12536999999999,65.3187,65.51065,65.7026,65.89455,66.0865,66.27845,66.4704,66.66235,66.8543,67.04625,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382,67.2382 +IMAGE,RCP26,World,Emissions|NMVOC,Mt NMVOC / yr,unspecified,0.0,1.5968746999999999,2.2923164000000003,2.9886478,3.6858966,4.3840909,5.0832602,5.7834346,6.484645099999999,7.1869238,7.8903037,8.5948188,9.300504400000001,10.007397000000001,10.715533,11.424951,12.135692,12.847795,13.561303,14.27626,14.992710999999998,15.710701,16.430278,17.151491,17.874391,18.59903,19.325461999999998,20.053742,20.783927,21.516077,22.250252,22.986514,23.724929,24.465563,25.208484,25.953763000000002,26.701472999999996,27.451690000000003,28.204490999999997,28.959954999999997,29.718165000000003,30.479207000000002,31.243167,32.010135999999996,32.780207,33.553476,34.330042,35.110006,35.893474,36.680555,37.471359,38.266003000000005,39.064605,39.867286,40.674175,41.485399,42.301095000000004,43.121399,43.946455,44.77641,45.611414,46.451625,47.297202,48.148313,49.005128000000006,49.867824,50.736582,51.611591,52.49304300000001,53.381137,54.27608000000001,55.178081999999996,56.087363,57.004146999999996,57.928667000000004,58.861160999999996,59.801876,60.751067000000006,61.708996,62.675931999999996,63.652156000000005,64.637952,65.633619,66.639461,67.655792,68.68293800000001,68.727765,68.772592,68.817418,68.862245,68.907072,68.951899,68.996726,69.04155300000001,69.08638,69.131206,69.269044,69.406881,69.544719,69.682556,69.82039300000001,69.95823100000001,70.096068,70.23390500000001,70.37174300000001,70.50958,70.65333100000001,70.79708199999999,70.940834,71.084585,71.228336,71.372087,71.515838,71.659589,71.80334,71.947091,72.099835,72.252579,72.405323,72.55806700000001,72.71081099999999,72.863555,73.016299,73.169043,73.321787,73.474531,73.700338,73.92614499999999,74.151953,74.37776,74.603567,74.829374,75.055181,75.280989,75.506796,75.732603,75.920477,76.108351,76.296224,76.484098,76.671972,76.85984599999999,77.04772,77.23559300000001,77.423467,77.61134100000001,77.272725,76.93410899999999,76.59549200000001,76.256876,75.91826,75.57964399999999,75.241028,74.902412,74.563795,74.225179,74.68028000000001,75.13538,75.59048,76.045581,76.500681,76.955782,77.410882,77.86598199999999,78.321083,78.77618299999999,78.909446,79.042709,79.175973,79.309236,79.442499,79.575762,79.709025,79.842288,79.97555200000001,80.108815,81.24331,82.37780500000001,83.5123,84.646796,85.78129100000001,86.915786,88.05028100000001,89.184777,90.319272,91.453767,94.848353,98.242938,101.63752,105.03211,108.4267,111.82128,115.21587,118.61045,122.00504,125.39962,129.24133,133.08303,136.92473,140.76643,144.60813000000002,148.44984,152.29154,156.13324,159.97494,163.81663999999998,167.16131000000001,170.50597,173.85064,177.19531,180.53996999999998,183.88464,187.2293,190.57397,193.91863999999998,197.2633,199.79888,202.33446,204.87003,207.40561,209.94118999999998,212.47677000000002,215.01235,217.54792,220.0835,222.61907999999997,221.41947000000002,220.21986,219.02026,217.82065,216.62104,215.42143,214.22182,213.02222000000003,211.82261,210.623,211.5938,212.5632,213.5311,214.4977,215.4628,215.8001,216.1376,216.4749,216.8122,217.1495,216.7636,216.3777,215.9918,215.6059,215.22,214.8341,214.4482,214.0623,213.6764,213.2905,212.02164,210.75277999999997,209.48391999999998,208.21506000000002,206.9462,205.67734,204.40848,203.13962,201.87076000000002,200.6019,199.76692,198.93194,198.09696,197.26198,196.427,195.59202,194.75704,193.92206000000002,193.08708000000001,192.2521,190.878,189.5039,188.1298,186.7557,185.3816,184.0075,182.6334,181.2593,179.8852,178.5111,177.30075,176.0904,174.88005,173.6697,172.45935,171.249,170.03865,168.8283,167.61795,166.4076,164.79686,163.18612,161.57538,159.96464,158.3539,156.74316000000002,155.13242,153.52168,151.91093999999998,150.3002,149.13236,147.96452,146.79668,145.62884,144.461,143.29316,142.12532,140.95748,139.78964,138.6218,137.88381,137.14582,136.40783000000002,135.66984,134.93185,134.19386,133.45587,132.71788,131.97988999999998,131.2419,130.66875,130.0956,129.52245,128.9493,128.37615,127.803,127.22985,126.6567,126.08355,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104,125.5104 +IMAGE,RCP26,World,Emissions|NOx,Mt N / yr,unspecified,0.0,0.10950162,0.16803826,0.2266252,0.28526401,0.34395628,0.40270367,0.46150789,0.52037068,0.57929387,0.63827932,0.69732895,0.75644476,0.81562878,0.87488313,0.93420999,0.99361159,1.0530902,1.1126483,1.1722883,1.2320128000000001,1.2918242,1.3517253999999999,1.4117191,1.4718082000000001,1.5319956000000001,1.5922843,1.6526776,1.7131785,1.7737906000000003,1.8345171000000002,1.8953616999999998,1.9563278999999998,2.0174196,2.0786406000000004,2.1399949,2.2014867000000002,2.2631202,2.3248998,2.38683,2.4489153999999997,2.511161,2.5735715,2.6361521,2.6989081,2.7618449000000003,2.8249681,2.8882835,2.951797,3.0155147,3.0794429,3.1435882,3.2079572999999995,3.272557,3.3373946000000005,3.4024773,3.4678129,3.533409,3.5992737,3.6654154,3.7318426,3.7985641,3.8655891000000002,3.9329269,4.0005873,4.0685801,4.1369156,4.205604599999999,4.2746578,4.3440866,4.4139026,4.4841177000000005,4.5547443,4.6257950999999995,4.6972833,4.7692224,4.8416262,4.9145093,4.9878862999999996,5.0617727,5.1361840999999995,5.2111367,5.2866474000000006,5.362733400000001,5.4394124,5.5167028,5.5423239,5.567945099999999,5.593566200000001,5.6191873,5.6448084000000005,5.6704295,5.696050700000001,5.7216718,5.747292900000001,5.772914,5.8128366,5.8527592,5.892681700000001,5.9326042999999995,5.9725268,6.0124494,6.052372,6.0922945,6.132217099999999,6.172139700000001,6.217166000000001,6.262192400000001,6.307218799999999,6.3522452000000005,6.3972714999999996,6.442297900000001,6.487324299999999,6.5323507,6.577377,6.6224034,6.6759474,6.7294913,6.7830353,6.8365793,6.890123200000001,6.9436672,6.997211200000001,7.050755099999999,7.1042990999999995,7.1578431,7.2358632,7.3138833,7.391903500000001,7.469923599999999,7.5479437,7.625963799999999,7.703983999999999,7.7820041,7.8600242,7.9380443,8.0441379,8.1502315,8.2563251,8.362418700000001,8.4685123,8.574605900000002,8.6806995,8.786793099999999,8.8928867,8.998980300000001,9.0569588,9.114937300000001,9.1729159,9.2308944,9.288872999999999,9.3468515,9.4048301,9.462808599999999,9.5207871,9.5787657,9.645702900000002,9.7126402,9.7795774,9.8465147,9.9134519,9.9803892,10.047326,10.114264,10.181201,10.248138,10.302469,10.356800999999999,10.411132,10.465463,10.519794000000001,10.574125,10.628457000000001,10.682788,10.737119,10.79145,11.123415,11.45538,11.787344000000001,12.119309,12.451274,12.783238,13.115203,13.447168,13.779132,14.111097000000001,14.528488000000001,14.945879000000001,15.363270000000002,15.780660999999998,16.198052,16.615443,17.032834,17.450225,17.867616,18.285007,18.959141,19.633274,20.307407,20.981541,21.655673999999998,22.329807000000002,23.003941,23.678074,24.352207999999997,25.026341,25.809673,26.593006,27.376338,28.159671000000003,28.943004,29.726336,30.509669,31.293001,32.076334,32.859666,33.357242,33.854818,34.352393,34.849969,35.347545000000004,35.845121,36.342696000000004,36.840272,37.337848,37.835423999999996,37.868111,37.900799,37.933487,37.966174,37.998862,38.03155,38.064237,38.096925,38.129612,38.1623,38.2888,38.4153,38.5418,38.6684,38.7948,38.883,38.97,39.054433,39.138867,39.2233,38.96192,38.700540000000004,38.43916,38.17778,37.9164,37.65502,37.393640000000005,37.132259999999995,36.87088,36.6095,36.10504,35.60058,35.09612,34.59166,34.0872,33.58274,33.07828,32.57382,32.069359999999996,31.5649,31.40904,31.25318,31.09732,30.94146,30.7856,30.62974,30.473879999999998,30.31802,30.162159999999997,30.0063,29.89599,29.78568,29.67537,29.56506,29.45475,29.344440000000002,29.23413,29.123820000000002,29.013509999999997,28.9032,28.732509999999998,28.56182,28.39113,28.220440000000004,28.04975,27.87906,27.708370000000002,27.537679999999998,27.36699,27.1963,26.8771,26.5579,26.2387,25.9195,25.6003,25.2811,24.9619,24.6427,24.3235,24.0043,23.66643,23.32856,22.99069,22.652820000000002,22.31495,21.977079999999997,21.639210000000002,21.30134,20.96347,20.6256,20.41927,20.21294,20.006610000000002,19.800279999999997,19.59395,19.387620000000002,19.18129,18.97496,18.768629999999998,18.5623,18.305020000000003,18.04774,17.79046,17.533179999999998,17.2759,17.018620000000002,16.76134,16.50406,16.246779999999998,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895,15.9895 +IMAGE,RCP26,World,Emissions|OC,Mt OC / yr,unspecified,0.0,0.56591996,0.78146771,0.99736131,1.2136114,1.4302291,1.6472256999999997,1.864613,2.082403,2.3006082,2.5192414,2.7383159,2.9578452,3.1778436,3.3983254,3.6193057,3.8407998999999995,4.062823799999999,4.2853938,4.508526799999999,4.7322403,4.956552200000001,5.1814809,5.4070456,5.633266000000001,5.8601623,6.087755400000001,6.3160669,6.5451189,6.7749345000000005,7.0055372,7.236951299999999,7.469202,7.7023151,7.9363173,8.1712361,8.4070999,8.643937800000002,8.881780000000001,9.1206576,9.360602499999999,9.601647900000001,9.8438276,10.087177,10.331732,10.57753,10.824608999999999,11.073008999999999,11.322772,11.573938,11.826552000000001,12.080658,12.336302,12.593532000000002,12.852397,13.112948000000001,13.375236,13.639316,13.905242999999999,14.173074,14.442867000000001,14.714684,14.988586999999999,15.264641000000001,15.542912,15.823469000000001,16.106382,16.391724,16.679571,16.97,17.26309,17.558925,17.857588,18.159167999999998,18.463755,18.771441,19.082323000000002,19.396499,19.714071,20.035144,20.359827,20.688231,21.020471,21.356666,21.696939,22.041414000000003,22.105064000000002,22.168714,22.232363,22.296013000000002,22.359663,22.423312,22.486962,22.550611,22.614261,22.677910999999998,22.734528,22.791144,22.847761,22.904378,22.960995,23.017612,23.074229000000003,23.130846,23.187463,23.244079,23.283844000000002,23.323608,23.363373,23.403138000000002,23.442902,23.482667000000003,23.522431,23.562196,23.601960000000002,23.641725,23.675442,23.709158,23.742875,23.776592,23.810309,23.844026,23.877742,23.911459,23.945176,23.978893,24.011375,24.043857,24.076339,24.108821,24.141303,24.173785000000002,24.206267,24.238749,24.271232,24.303714000000003,24.336515,24.369316,24.402117,24.434918,24.467719,24.50052,24.533321,24.566122,24.598923000000003,24.631724,24.427454,24.223184,24.018914000000002,23.814645000000002,23.610375,23.406105,23.201836,22.997566,22.793295999999998,22.589026999999998,22.605247,22.621467000000003,22.637688,22.653907999999998,22.670128,22.686349,22.702569,22.718789,22.73501,22.75123,22.748587,22.745943,22.7433,22.740656,22.738013,22.735369,22.732726,22.730082,22.727439,22.724795,22.68764,22.650484,22.613328,22.576173,22.539017,22.501860999999998,22.464705,22.42755,22.390394,22.353238,22.541288,22.729338000000002,22.917388,23.105438,23.293487,23.481537,23.669587,23.857637,24.045686,24.233735999999997,24.502237,24.770737,25.039238,25.307738,25.576239,25.844739,26.11324,26.381740999999998,26.650240999999998,26.918741999999998,27.221794,27.524846000000004,27.827897999999998,28.13095,28.434002000000003,28.737054999999998,29.040107,29.343159000000004,29.646210999999997,29.949263000000002,30.456334000000002,30.963403999999997,31.470475,31.977546000000004,32.484615999999995,32.991687,33.498757,34.005828,34.512898,35.019969,35.072322,35.124675,35.177028,35.229381,35.281735,35.334088,35.386441,35.438794,35.491147,35.5435,35.7143,35.8845,36.0543,36.2232,36.3917,36.4361,36.4792,36.520033000000005,36.560867,36.6017,36.61719,36.63268,36.64817,36.66366,36.67915,36.69464,36.71013,36.72562,36.74111,36.7566,36.62955,36.5025,36.37545,36.2484,36.12135,35.9943,35.86725,35.7402,35.61315,35.4861,35.13889,34.79168,34.44447,34.09726,33.75005,33.402840000000005,33.05563,32.708420000000004,32.36121,32.014,31.809890000000003,31.60578,31.401670000000003,31.19756,30.99345,30.789340000000003,30.58523,30.381120000000003,30.17701,29.9729,29.9464,29.9199,29.8934,29.8669,29.8404,29.8139,29.7874,29.7609,29.7344,29.7079,29.54327,29.37864,29.21401,29.04938,28.88475,28.72012,28.555490000000002,28.390859999999996,28.226229999999997,28.0616,27.94251,27.823420000000002,27.70433,27.585240000000002,27.46615,27.34706,27.227970000000003,27.10888,26.989790000000003,26.8707,26.823420000000002,26.77614,26.728859999999997,26.68158,26.6343,26.587020000000003,26.539740000000002,26.492459999999998,26.44518,26.3979,26.291220000000003,26.18454,26.07786,25.97118,25.8645,25.757820000000002,25.651139999999998,25.54446,25.43778,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311,25.3311 +IMAGE,RCP26,World,Emissions|SF6,kt SF6 / yr,unspecified,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.26190788,0.26198971,0.26207156,0.26215339,0.26223522,0.26231705,0.26239889,0.26248072,0.26256255,0.26264438,0.52463411,0.52479777,0.78686933,0.52520694,0.52537061,0.52553427,0.52569795,1.0496773000000001,0.52618894,0.7882605,0.78850599,1.0506594,0.78907883,1.0512322,1.0515595,1.0518869,1.5760299999999998,1.8384289,2.3628175,2.8873697999999997,3.1501778,3.4130677000000005,3.6760394,3.939093,3.9403205000000003,4.7272717,4.9906525,4.730299400000001,4.993680400000001,5.519051,5.5207695,5.7843959,5.7861962,6.3118123,5.0042369,6.0534232,6.0553054,4.4857403,4.7490393,6.3219597,5.5382,5.699,5.8596,6.0201,6.1805,6.3407,6.4709,6.6013,6.6085332999999995,6.6157667,6.623,6.18511,5.7472199999999996,5.30933,4.87144,4.43355,3.99566,3.5577699999999997,3.1198799999999998,2.6819900000000003,2.2441,2.2149099999999997,2.18572,2.15653,2.1273400000000002,2.09815,2.0689599999999997,2.03977,2.01058,1.9813900000000002,1.9522,1.9137400000000002,1.8752799999999998,1.8368200000000001,1.79836,1.7599,1.72144,1.68298,1.64452,1.60606,1.5676,1.47407,1.3805399999999999,1.28701,1.1934799999999999,1.09995,1.00642,0.91289,0.81936,0.72583,0.6323,0.61892,0.60554,0.59216,0.57878,0.5654,0.55202,0.53864,0.52526,0.51188,0.4985,0.49048,0.48246,0.47444,0.46642,0.4584,0.45038,0.44236,0.43434,0.42632,0.4183,0.40805,0.3978,0.38755,0.3773,0.36705,0.3568,0.34655,0.3363,0.32605,0.3158,0.30275,0.2897,0.27665,0.2636,0.25055,0.2375,0.22445,0.2114,0.19835,0.1853,0.17119,0.15708,0.14297,0.12886,0.11475,0.10064,0.08653,0.07242,0.05831,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442,0.0442 +IMAGE,RCP26,World,Emissions|SOx,Mt S / yr,unspecified,0.0,0.09888264699999999,0.1163065,0.13381075,0.15139789,0.16907049,0.18683119,0.20468271,0.22262786,0.24066954,0.25881073,0.27705451,0.29540406,0.31386264,0.33243362,0.35112049,0.36992683,0.38885633,0.4079128,0.42710016,0.44642248,0.46588391,0.48548877,0.50524148,0.52514663,0.54520892,0.56543322,0.58582453,0.60638803,0.62712904,0.64805304,0.66916569,0.69047284,0.7119805,0.73369486,0.75562233,0.77776949,0.80014313,0.82275026,0.84559811,0.86869411,0.89204595,0.91566153,0.93954901,0.9637168,0.98817358,1.0129283000000002,1.0379901,1.0633685,1.0890733999999997,1.1151148000000002,1.1415031,1.1682491000000002,1.1953638,1.2228586000000001,1.2507453000000002,1.279036,1.3077432,1.3368798000000002,1.366459,1.3964945,1.4270005,1.4579916000000002,1.4894826,1.5214891000000001,1.554027,1.5871128,1.6207633,1.6549962,1.6898292000000001,1.7252811999999997,1.7613710999999999,1.7981186999999998,1.8355443,1.8736689999999998,1.9125143,1.9521025,1.9924567,2.0336004,2.0755581000000003,2.1183549999999998,2.1620171000000004,2.206571,2.2520444,2.2984658,2.3458644,2.401282,2.4566996,2.5121172,2.5675348,2.6229524,2.6783701,2.7337877,2.7892053,2.8446229,2.9000405,2.9926781000000005,3.0853157,3.1779532,3.2705908,3.3632284,3.4558660000000003,3.5485035000000003,3.6411411,3.7337787000000002,3.8264163,3.9931681000000006,4.1599199,4.3266717,4.4934235000000005,4.6601753,4.826927099999999,4.993678900000001,5.1604307,5.327182499999999,5.4939343,5.762321400000001,6.0307085,6.2990955,6.5674826,6.8358696,7.1042567,7.3726438,7.6410308,7.9094179,8.1778049,8.567372800000001,8.956940699999999,9.3465086,9.7360765,10.125644,10.515212,10.90478,11.294348,11.683916,12.073483999999999,12.62988,13.186275,13.742671,14.299067,14.855463,15.411857999999999,15.968254,16.52465,17.081045,17.637441,17.821423,18.005405,18.189388,18.37337,18.557351999999998,18.741334,18.925316,19.109298000000003,19.29328,19.477262,19.863884,20.250505,20.637127,21.023748,21.41037,21.796991000000002,22.183613,22.570234,22.956856,23.343477,23.754956,24.166434,24.577913,24.989392000000002,25.40087,25.812348999999998,26.223828,26.635306,27.046784999999996,27.458263,27.840442,28.222620000000003,28.604799,28.986977000000003,29.369156,29.751334000000003,30.133513,30.515690999999997,30.897869,31.280047999999997,32.866948,34.453849,36.040749,37.62765,39.21455,40.801451,42.388351,43.975252000000005,45.562152000000005,47.149053,48.770759999999996,50.392468,52.014176,53.635884,55.257592,56.8793,58.501008,60.122716000000004,61.744424,63.36613199999999,63.545863,63.725593999999994,63.905326,64.08505699999999,64.264788,64.444519,64.624251,64.80398199999999,64.983713,65.163444,65.043883,64.92432099999999,64.80476,64.685199,64.565637,64.446076,64.326514,64.206953,64.087391,63.967830000000006,62.955167,61.94250400000001,60.929841,59.917178,58.904515,57.891852,56.879189000000004,55.866526,54.853863,53.8412,54.4191,54.9961,55.5716,56.1461,56.7195,56.545,56.3678,56.184532999999995,56.001267000000006,55.818,54.65749,53.49698000000001,52.33647,51.175959999999996,50.01545,48.85494,47.69443,46.53392,45.37341,44.2129,42.75221,41.29152,39.83083,38.37014,36.90945,35.44876,33.98807,32.52738,31.06669,29.606,28.634459999999997,27.66292,26.69138,25.719839999999998,24.7483,23.77676,22.805220000000002,21.833679999999998,20.86214,19.8906,19.45899,19.027379999999997,18.59577,18.16416,17.73255,17.30094,16.869329999999998,16.437720000000002,16.00611,15.5745,15.38703,15.19956,15.012089999999999,14.824620000000001,14.63715,14.449679999999999,14.262210000000001,14.07474,13.887270000000001,13.6998,13.51644,13.333079999999999,13.14972,12.96636,12.783,12.599639999999999,12.41628,12.23292,12.049560000000001,11.8662,11.65506,11.44392,11.23278,11.02164,10.8105,10.59936,10.38822,10.17708,9.96594,9.7548,9.56188,9.368960000000001,9.176039999999999,8.98312,8.7902,8.59728,8.40436,8.21144,8.01852,7.8256,7.688560000000001,7.55152,7.41448,7.2774399999999995,7.1404,7.003360000000001,6.86632,6.72928,6.592239999999999,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552,6.4552 diff --git a/tests/unit/test_remote.py b/tests/unit/test_remote.py index 4100a23d..1a3975b5 100644 --- a/tests/unit/test_remote.py +++ b/tests/unit/test_remote.py @@ -1,10 +1,13 @@ +import io import logging import os import pandas as pd import pytest import re +import requests import scmdata +import scmdata.testing from scmdata.remote import ( _read_api_facets, _read_api_timeseries, @@ -17,6 +20,76 @@ NDCS_URL = "https://api.climateresource.com.au/ndcs/v1/" +def build_response( + url, content, status_code=200, content_type="application/json", headers=None +): + response = requests.Response() + + # Fallback to None if there's no status_code, for whatever reason. + response.status_code = status_code + + # Make headers case-insensitive. + response.headers = headers or {} + response.headers["content-type"] = content_type + + # Set encoding. + response.encoding = "utf-8" + response.raw = content + response.url = url + + return response + + +@pytest.fixture() +def timeseries_response(test_data_path): + fname = os.path.join(test_data_path, "api_responses", "response_timeseries.csv") + with open(fname, "rb") as fh: + return build_response( + "/timeseries", io.BytesIO(fh.read()), content_type="text/csv" + ) + + +@pytest.fixture() +def timeseries_meta_response(test_data_path): + fname = os.path.join(test_data_path, "api_responses", "response_meta.json") + with open(fname, "rb") as fh: + return build_response("/timeseries", io.BytesIO(fh.read())) + + +@pytest.fixture() +def timeseries_facets_response(test_data_path): + fname = os.path.join(test_data_path, "api_responses", "response_facets.json") + with open(fname, "rb") as fh: + return build_response("/timeseries", io.BytesIO(fh.read())) + + +@patch("scmdata.remote._make_request") +def test_api_timeseries(mock_request, timeseries_response): + mock_request.return_value = timeseries_response + + resp = _read_api_timeseries(NDCS_URL) + assert isinstance(resp, scmdata.ScmRun) + mock_request.assert_called_with("get", NDCS_URL + "timeseries", {"format": "csv"}) + + +@patch("scmdata.remote._make_request") +def test_api_facets(mock_request, timeseries_facets_response): + mock_request.return_value = timeseries_facets_response + + resp = _read_api_facets(NDCS_URL, scenario="test") + assert isinstance(resp, pd.DataFrame) + mock_request.assert_called_with("get", NDCS_URL + "facets", {"scenario": "test"}) + + +@patch("scmdata.remote._make_request") +def test_api_meta(mock_request, timeseries_meta_response): + mock_request.return_value = timeseries_meta_response + + resp = _read_api_meta(NDCS_URL, scenario="test") + assert isinstance(resp, pd.DataFrame) + mock_request.assert_called_with("get", NDCS_URL + "meta", {"scenario": "test"}) + + class MockRemoteDataset(RemoteDataset): # replaces remote queries with static dataset _data_queries = [] @@ -173,3 +246,18 @@ def test_remote_url(remote_ds, base_url): } ).url() assert res == "https://api.example.com/v1/timeseries?variable=test&scenario=other" + + res = remote_ds.url() + assert res == "https://api.example.com/v1/timeseries" + + +def test_remote_proxy(remote_ds): + filters = {"variable": "Temperature|Global Mean"} + + filtered_ds = remote_ds.filter(**filters) + + exp = remote_ds._get_data(filters).process_over("scenario", "sum") + res = filtered_ds.process_over("scenario", "sum") + assert MockRemoteDataset._data_queries == [filters] + + pd.testing.assert_frame_equal(res, exp) From b0d2ac5e4c783cbdaadf4f7d306d1b35803cbc08 Mon Sep 17 00:00:00 2001 From: Jared Lewis Date: Thu, 19 May 2022 14:04:04 +1000 Subject: [PATCH 10/19] Fix test --- tests/unit/test_remote.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/tests/unit/test_remote.py b/tests/unit/test_remote.py index 1a3975b5..f27f2f6c 100644 --- a/tests/unit/test_remote.py +++ b/tests/unit/test_remote.py @@ -234,11 +234,8 @@ def test_filter_options(remote_ds): assert res == [*remote_ds.meta().columns.tolist(), "year.min", "year.max"] -@pytest.mark.parametrize( - "base_url", ("https://api.example.com/v1", "https://api.example.com/v1/") -) -def test_remote_url(remote_ds, base_url): - remote_ds.base_url = base_url +def test_remote_url(remote_ds): + remote_ds.base_url = "https://api.example.com/v1/" res = remote_ds.filter( **{ "variable": "test", @@ -261,3 +258,9 @@ def test_remote_proxy(remote_ds): assert MockRemoteDataset._data_queries == [filters] pd.testing.assert_frame_equal(res, exp) + + +def test_remote_meta(remote_ds): + res = remote_ds.meta() + + assert isinstance(res, pd.DataFrame) From 5a8b19798dd20e8090ff821881b1b15163d932c3 Mon Sep 17 00:00:00 2001 From: Jared Lewis Date: Fri, 20 May 2022 18:06:28 +1000 Subject: [PATCH 11/19] Add remote datasets notebook --- notebooks/remote-datasets.ipynb | 330 ++++++++++++++++++++++++++++++++ 1 file changed, 330 insertions(+) create mode 100644 notebooks/remote-datasets.ipynb diff --git a/notebooks/remote-datasets.ipynb b/notebooks/remote-datasets.ipynb new file mode 100644 index 00000000..6bf8d19b --- /dev/null +++ b/notebooks/remote-datasets.ipynb @@ -0,0 +1,330 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "4bbdc7f1", + "metadata": {}, + "source": [ + "# Remote Datasets\n", + "\n", + "Data can live in a variety of places. `scmdata` provides some routines to make it easy to fetch data in an automatic method." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "76977a69", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/jared/code/uom/scmdata/src/scmdata/database/_database.py:17: TqdmExperimentalWarning: Using `tqdm.autonotebook.tqdm` in notebook mode. Use `tqdm.tqdm` instead to force console mode (e.g. in jupyter console)\n", + " import tqdm.autonotebook as tqdman\n" + ] + } + ], + "source": [ + "import scmdata" + ] + }, + { + "cell_type": "markdown", + "id": "64bdf523", + "metadata": {}, + "source": [ + "## Remote files" + ] + }, + { + "cell_type": "markdown", + "id": "be4fd457", + "metadata": {}, + "source": [ + "The simplest example would be reading CSV or excel data served via HTTP/HTTPS.\n", + "\n", + "Rather than manually downloading the data and reading the local copy the data can be read directly." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "1668bbb4", + "metadata": {}, + "outputs": [ + { + "ename": "URLError", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mgaierror\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m~/anaconda/lib/python3.7/urllib/request.py\u001b[0m in \u001b[0;36mdo_open\u001b[0;34m(self, http_class, req, **http_conn_args)\u001b[0m\n\u001b[1;32m 1316\u001b[0m h.request(req.get_method(), req.selector, req.data, headers,\n\u001b[0;32m-> 1317\u001b[0;31m encode_chunked=req.has_header('Transfer-encoding'))\n\u001b[0m\u001b[1;32m 1318\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mOSError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;31m# timeout error\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda/lib/python3.7/http/client.py\u001b[0m in \u001b[0;36mrequest\u001b[0;34m(self, method, url, body, headers, encode_chunked)\u001b[0m\n\u001b[1;32m 1243\u001b[0m \u001b[0;34m\"\"\"Send a complete request to the server.\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1244\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_send_request\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbody\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mheaders\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mencode_chunked\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1245\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda/lib/python3.7/http/client.py\u001b[0m in \u001b[0;36m_send_request\u001b[0;34m(self, method, url, body, headers, encode_chunked)\u001b[0m\n\u001b[1;32m 1289\u001b[0m \u001b[0mbody\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_encode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbody\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'body'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1290\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mendheaders\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbody\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mencode_chunked\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mencode_chunked\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1291\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda/lib/python3.7/http/client.py\u001b[0m in \u001b[0;36mendheaders\u001b[0;34m(self, message_body, encode_chunked)\u001b[0m\n\u001b[1;32m 1238\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mCannotSendHeader\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1239\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_send_output\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmessage_body\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mencode_chunked\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mencode_chunked\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1240\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda/lib/python3.7/http/client.py\u001b[0m in \u001b[0;36m_send_output\u001b[0;34m(self, message_body, encode_chunked)\u001b[0m\n\u001b[1;32m 1025\u001b[0m \u001b[0;32mdel\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_buffer\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1026\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1027\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda/lib/python3.7/http/client.py\u001b[0m in \u001b[0;36msend\u001b[0;34m(self, data)\u001b[0m\n\u001b[1;32m 965\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mauto_open\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 966\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconnect\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 967\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda/lib/python3.7/http/client.py\u001b[0m in \u001b[0;36mconnect\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1405\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1406\u001b[0;31m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconnect\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1407\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda/lib/python3.7/http/client.py\u001b[0m in \u001b[0;36mconnect\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 937\u001b[0m self.sock = self._create_connection(\n\u001b[0;32m--> 938\u001b[0;31m (self.host,self.port), self.timeout, self.source_address)\n\u001b[0m\u001b[1;32m 939\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msock\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msetsockopt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msocket\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mIPPROTO_TCP\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msocket\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTCP_NODELAY\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda/lib/python3.7/socket.py\u001b[0m in \u001b[0;36mcreate_connection\u001b[0;34m(address, timeout, source_address)\u001b[0m\n\u001b[1;32m 706\u001b[0m \u001b[0merr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 707\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mres\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mgetaddrinfo\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhost\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mport\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSOCK_STREAM\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 708\u001b[0m \u001b[0maf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msocktype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mproto\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcanonname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msa\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mres\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda/lib/python3.7/socket.py\u001b[0m in \u001b[0;36mgetaddrinfo\u001b[0;34m(host, port, family, type, proto, flags)\u001b[0m\n\u001b[1;32m 747\u001b[0m \u001b[0maddrlist\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 748\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mres\u001b[0m \u001b[0;32min\u001b[0m \u001b[0m_socket\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetaddrinfo\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhost\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mport\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfamily\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mproto\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mflags\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 749\u001b[0m \u001b[0maf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msocktype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mproto\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcanonname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msa\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mres\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mgaierror\u001b[0m: [Errno -3] Temporary failure in name resolution", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[0;31mURLError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/tmp/ipykernel_1259186/1220445521.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mremote_url\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"https://rcmip-protocols-au.s3-ap-southeast-2.amazonaws.com/v5.1.0/rcmip-emissions-annual-means-v5-1-0.csv\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mrun\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mscmdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mScmRun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mremote_url\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlowercase_cols\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/code/uom/scmdata/src/scmdata/run.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, data, index, columns, metadata, copy_data, **kwargs)\u001b[0m\n\u001b[1;32m 456\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcopy_data\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mhasattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"copy\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 457\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 458\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_init_timeseries\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcolumns\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy_data\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy_data\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 459\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 460\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_df\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/code/uom/scmdata/src/scmdata/run.py\u001b[0m in \u001b[0;36m_init_timeseries\u001b[0;34m(self, data, index, columns, copy_data, **kwargs)\u001b[0m\n\u001b[1;32m 503\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merror_msg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 504\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 505\u001b[0;31m \u001b[0;34m(\u001b[0m\u001b[0m_df\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_meta\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_read_file\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrequired_cols\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrequired_cols\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 506\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 507\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0m_df\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mduplicated\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0many\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/code/uom/scmdata/src/scmdata/run.py\u001b[0m in \u001b[0;36m_read_file\u001b[0;34m(fnames, required_cols, *args, **kwargs)\u001b[0m\n\u001b[1;32m 74\u001b[0m \u001b[0m_logger\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minfo\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Reading %s\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfnames\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 75\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 76\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_format_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_read_pandas\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfnames\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrequired_cols\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 77\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 78\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/code/uom/scmdata/src/scmdata/run.py\u001b[0m in \u001b[0;36m_read_pandas\u001b[0;34m(fname, lowercase_cols, *args, **kwargs)\u001b[0m\n\u001b[1;32m 124\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 125\u001b[0m \u001b[0m_logger\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdebug\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Reading with pandas read_csv\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 126\u001b[0;31m \u001b[0mdf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 127\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 128\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_to_lower\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/code/uom/scmdata/venv/lib/python3.7/site-packages/pandas/util/_decorators.py\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 309\u001b[0m \u001b[0mstacklevel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mstacklevel\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 310\u001b[0m )\n\u001b[0;32m--> 311\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 312\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 313\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/code/uom/scmdata/venv/lib/python3.7/site-packages/pandas/io/parsers/readers.py\u001b[0m in \u001b[0;36mread_csv\u001b[0;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, error_bad_lines, warn_bad_lines, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options)\u001b[0m\n\u001b[1;32m 584\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkwds_defaults\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 585\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 586\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_read\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 587\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 588\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/code/uom/scmdata/venv/lib/python3.7/site-packages/pandas/io/parsers/readers.py\u001b[0m in \u001b[0;36m_read\u001b[0;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[1;32m 480\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 481\u001b[0m \u001b[0;31m# Create the parser.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 482\u001b[0;31m \u001b[0mparser\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mTextFileReader\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 483\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 484\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mchunksize\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0miterator\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/code/uom/scmdata/venv/lib/python3.7/site-packages/pandas/io/parsers/readers.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[1;32m 809\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"has_index_names\"\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"has_index_names\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 810\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 811\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_make_engine\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mengine\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 812\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 813\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mclose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/code/uom/scmdata/venv/lib/python3.7/site-packages/pandas/io/parsers/readers.py\u001b[0m in \u001b[0;36m_make_engine\u001b[0;34m(self, engine)\u001b[0m\n\u001b[1;32m 1038\u001b[0m )\n\u001b[1;32m 1039\u001b[0m \u001b[0;31m# error: Too many arguments for \"ParserBase\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1040\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mmapping\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mengine\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# type: ignore[call-arg]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1041\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1042\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_failover_to_python\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/code/uom/scmdata/venv/lib/python3.7/site-packages/pandas/io/parsers/c_parser_wrapper.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, src, **kwds)\u001b[0m\n\u001b[1;32m 49\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 50\u001b[0m \u001b[0;31m# open handles\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 51\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_open_handles\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 52\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhandles\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 53\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/code/uom/scmdata/venv/lib/python3.7/site-packages/pandas/io/parsers/base_parser.py\u001b[0m in \u001b[0;36m_open_handles\u001b[0;34m(self, src, kwds)\u001b[0m\n\u001b[1;32m 227\u001b[0m \u001b[0mmemory_map\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"memory_map\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 228\u001b[0m \u001b[0mstorage_options\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"storage_options\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 229\u001b[0;31m \u001b[0merrors\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"encoding_errors\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"strict\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 230\u001b[0m )\n\u001b[1;32m 231\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/code/uom/scmdata/venv/lib/python3.7/site-packages/pandas/io/common.py\u001b[0m in \u001b[0;36mget_handle\u001b[0;34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[0m\n\u001b[1;32m 612\u001b[0m \u001b[0mcompression\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcompression\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 613\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmode\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 614\u001b[0;31m \u001b[0mstorage_options\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mstorage_options\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 615\u001b[0m )\n\u001b[1;32m 616\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/code/uom/scmdata/venv/lib/python3.7/site-packages/pandas/io/common.py\u001b[0m in \u001b[0;36m_get_filepath_or_buffer\u001b[0;34m(filepath_or_buffer, encoding, compression, mode, storage_options)\u001b[0m\n\u001b[1;32m 310\u001b[0m \u001b[0;31m# assuming storage_options is to be interpreted as headers\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 311\u001b[0m \u001b[0mreq_info\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0murllib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mRequest\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mheaders\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mstorage_options\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 312\u001b[0;31m \u001b[0;32mwith\u001b[0m \u001b[0murlopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mreq_info\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mreq\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 313\u001b[0m \u001b[0mcontent_encoding\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mreq\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mheaders\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Content-Encoding\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 314\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcontent_encoding\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"gzip\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/code/uom/scmdata/venv/lib/python3.7/site-packages/pandas/io/common.py\u001b[0m in \u001b[0;36murlopen\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 210\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0murllib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 211\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 212\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0murllib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0murlopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 213\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 214\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda/lib/python3.7/urllib/request.py\u001b[0m in \u001b[0;36murlopen\u001b[0;34m(url, data, timeout, cafile, capath, cadefault, context)\u001b[0m\n\u001b[1;32m 220\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 221\u001b[0m \u001b[0mopener\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_opener\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 222\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mopener\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 223\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 224\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0minstall_opener\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mopener\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda/lib/python3.7/urllib/request.py\u001b[0m in \u001b[0;36mopen\u001b[0;34m(self, fullurl, data, timeout)\u001b[0m\n\u001b[1;32m 523\u001b[0m \u001b[0mreq\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmeth\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mreq\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 524\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 525\u001b[0;31m \u001b[0mresponse\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_open\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mreq\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 526\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 527\u001b[0m \u001b[0;31m# post-process response\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda/lib/python3.7/urllib/request.py\u001b[0m in \u001b[0;36m_open\u001b[0;34m(self, req, data)\u001b[0m\n\u001b[1;32m 541\u001b[0m \u001b[0mprotocol\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mreq\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtype\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 542\u001b[0m result = self._call_chain(self.handle_open, protocol, protocol +\n\u001b[0;32m--> 543\u001b[0;31m '_open', req)\n\u001b[0m\u001b[1;32m 544\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 545\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda/lib/python3.7/urllib/request.py\u001b[0m in \u001b[0;36m_call_chain\u001b[0;34m(self, chain, kind, meth_name, *args)\u001b[0m\n\u001b[1;32m 501\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mhandler\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mhandlers\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 502\u001b[0m \u001b[0mfunc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhandler\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmeth_name\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 503\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 504\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 505\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda/lib/python3.7/urllib/request.py\u001b[0m in \u001b[0;36mhttps_open\u001b[0;34m(self, req)\u001b[0m\n\u001b[1;32m 1358\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mhttps_open\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreq\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1359\u001b[0m return self.do_open(http.client.HTTPSConnection, req,\n\u001b[0;32m-> 1360\u001b[0;31m context=self._context, check_hostname=self._check_hostname)\n\u001b[0m\u001b[1;32m 1361\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1362\u001b[0m \u001b[0mhttps_request\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mAbstractHTTPHandler\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdo_request_\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda/lib/python3.7/urllib/request.py\u001b[0m in \u001b[0;36mdo_open\u001b[0;34m(self, http_class, req, **http_conn_args)\u001b[0m\n\u001b[1;32m 1317\u001b[0m encode_chunked=req.has_header('Transfer-encoding'))\n\u001b[1;32m 1318\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mOSError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;31m# timeout error\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1319\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mURLError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1320\u001b[0m \u001b[0mr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mh\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetresponse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1321\u001b[0m \u001b[0;32mexcept\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mURLError\u001b[0m: " + ] + } + ], + "source": [ + "remote_url = \"https://rcmip-protocols-au.s3-ap-southeast-2.amazonaws.com/v5.1.0/rcmip-emissions-annual-means-v5-1-0.csv\"\n", + "\n", + "run = scmdata.ScmRun(remote_url, lowercase_cols=True)" + ] + }, + { + "cell_type": "markdown", + "id": "450677e2", + "metadata": {}, + "source": [ + "`scmdata.ScmRun` supports a range of URL schemes include http, ftp, s3, gs, and file. Behind the scenes `pandas` is used to fetch the data. For more information about the remote formats that can be read, see the ``pd.read_csv`` documentation for the version of pandas which is installed." + ] + }, + { + "cell_type": "markdown", + "id": "dcdd82a7", + "metadata": {}, + "source": [ + "## API-based Datasets\n", + "\n", + "Some data sources may be served via an API to make it easy to consume in various ways. Rather than serving a single CSV file, an API allows users to query just the data that is required.\n", + "\n", + "Below we use the NDC dataset developed by [Climate Resource](https://www.climate-resource.com/tools/ndcs). This dataset is in an early release and the API and the underlying data may change without warnings. It should also be noted that this dataset is provided with an [CC Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode) license which requires attribution and limits the data to only being used for non-commerical purposes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0ae57efe", + "metadata": {}, + "outputs": [], + "source": [ + "NDCS_URL = \"https://api.climateresource.com.au/ndcs/v1\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "81dd0a0f", + "metadata": {}, + "outputs": [], + "source": [ + "print(scmdata.RemoteDataset.__init__.__doc__)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "313a8788", + "metadata": {}, + "outputs": [], + "source": [ + "ds = scmdata.RemoteDataset(NDCS_URL)" + ] + }, + { + "cell_type": "markdown", + "id": "6a64901d", + "metadata": {}, + "source": [ + "The `RemoteDataset` can be filtered in a similar way to `scmdata.ScmRun`. This includes the use of \"*\"'s to match multiple items.\n", + "\n", + "Any subsequent operations will include data that matches the filter." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2f722883", + "metadata": {}, + "outputs": [], + "source": [ + "ghg_ds = ds.filter(variable=\"Emissions|Total GHG*\")" + ] + }, + { + "cell_type": "markdown", + "id": "795ff829", + "metadata": {}, + "source": [ + "But how do you find what data are available?\n", + "\n", + "The `meta` function allows users to query what timeseries are available. The dataset is able to be filtered by any of the returned columns along with some additional helper filters ('year.min' and 'year.max')." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e925248e", + "metadata": {}, + "outputs": [], + "source": [ + "ghg_ds.meta()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dae9172c", + "metadata": {}, + "outputs": [], + "source": [ + "# A complete list of filters\n", + "ghg_ds.filter_options()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "39cb67aa", + "metadata": {}, + "outputs": [], + "source": [ + "ghg_ds = ghg_ds.filter(**{\"year.min\": \"2010\", \"year.max\": \"2030\"})" + ] + }, + { + "cell_type": "markdown", + "id": "50fba67b", + "metadata": {}, + "source": [ + "The available timeseries can then be queried. This fetches the timeseries matching the requested filter from the server.\n", + "The resulting `scmdata.ScmRun` object is returned to perform additional operations.\n", + "\n", + "The `scmdata.ScmRun` also includes an additional metadata property `source` that is set to the `RemoteDataset` that was used to fetch the data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "59130ae7", + "metadata": {}, + "outputs": [], + "source": [ + "ghg_data = ghg_ds.query()\n", + "ghg_data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dc58efdf", + "metadata": {}, + "outputs": [], + "source": [ + "ghg_data.metadata[\"source\"]" + ] + }, + { + "cell_type": "markdown", + "id": "e0cc600c", + "metadata": {}, + "source": [ + "Alternatively, `scmdata.ScmRun` functions can be called directly. The underlying timeseries is queried automatically." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6cd248bb", + "metadata": {}, + "outputs": [], + "source": [ + "ghg_ds.process_over(\"region\", \"sum\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b723a6b7", + "metadata": {}, + "outputs": [], + "source": [ + "ghg_ds.lineplot(hue=\"variable\")" + ] + }, + { + "cell_type": "markdown", + "id": "cbefd839", + "metadata": {}, + "source": [ + "For notebooks which are commonly run, it might be useful to cache the timeseries so it doesn't need to be downloaded on each run.\n", + "\n", + "We recommend using `pooch` to cache the results of a query locally." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "507d5efe", + "metadata": {}, + "outputs": [], + "source": [ + "import pooch\n", + "\n", + "pooch.retrieve(scmdata.RemoteDataset(NDC_URL).filter(version=\"14Feb2022b_CR\", variable=\"Emissions|Total GHG*\").url())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8e0ddce7", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 142ea6d231e22740c04cb3715f829a350608bbc1 Mon Sep 17 00:00:00 2001 From: Jared Lewis Date: Fri, 20 May 2022 18:25:52 +1000 Subject: [PATCH 12/19] Add test for cache --- src/scmdata/remote.py | 8 +++++- tests/unit/test_remote.py | 54 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 60 insertions(+), 2 deletions(-) diff --git a/src/scmdata/remote.py b/src/scmdata/remote.py index 1133aa95..522a0721 100644 --- a/src/scmdata/remote.py +++ b/src/scmdata/remote.py @@ -15,6 +15,10 @@ logger = logging.getLogger(__name__) +# How many requests are kept in memory +CACHE_SIZE = 32 + + def _make_request(method, url, params) -> requests.Response: try: resp = requests.request(method, url, params=params) @@ -34,6 +38,7 @@ def _make_request(method, url, params) -> requests.Response: raise RemoteQueryError("Unknown error occurred when fetching data", error=err) +@lru_cache(CACHE_SIZE) def _read_api_timeseries(url: str, **filters): timeseries_url = urllib.parse.urljoin(url, "timeseries") filters["format"] = "csv" # CSV format is faster to parse compared to json @@ -44,7 +49,7 @@ def _read_api_timeseries(url: str, **filters): return ScmRun(df) -@lru_cache(32) +@lru_cache(CACHE_SIZE) def _read_api_facets(url, **filters): timeseries_url = urllib.parse.urljoin(url, "facets") @@ -60,6 +65,7 @@ def _read_api_facets(url, **filters): return pd.DataFrame(items)[["name", "value", "count"]] +@lru_cache(CACHE_SIZE) def _read_api_meta(url, **filters): timeseries_url = urllib.parse.urljoin(url, "meta") diff --git a/tests/unit/test_remote.py b/tests/unit/test_remote.py index f27f2f6c..ac40f859 100644 --- a/tests/unit/test_remote.py +++ b/tests/unit/test_remote.py @@ -13,8 +13,9 @@ _read_api_timeseries, _read_api_meta, RemoteDataset, + CACHE_SIZE, ) -from unittest.mock import patch, Mock +from unittest.mock import patch, Mock, call from scmdata.errors import NonUniqueMetadataError, RemoteQueryError NDCS_URL = "https://api.climateresource.com.au/ndcs/v1/" @@ -90,6 +91,57 @@ def test_api_meta(mock_request, timeseries_meta_response): mock_request.assert_called_with("get", NDCS_URL + "meta", {"scenario": "test"}) +@patch("scmdata.remote._make_request") +@pytest.mark.parametrize("func", ("meta", "facets", "timeseries")) +def test_api_caches( + mock_request, + timeseries_meta_response, + timeseries_response, + timeseries_facets_response, + func, +): + if func == "meta": + mock_request.return_value = timeseries_meta_response + api_func = _read_api_meta + elif func == "facets": + mock_request.return_value = timeseries_facets_response + api_func = _read_api_facets + elif func == "timeseries": + mock_request.return_value = timeseries_response + api_func = _read_api_timeseries + else: + raise ValueError("Unknown option") + + api_func(NDCS_URL, scenario="test") + api_func(NDCS_URL, scenario="test") + api_func(NDCS_URL, scenario="other") + + cache_info = api_func.cache_info() + assert cache_info.hits == 1 + assert cache_info.misses == 2 + assert cache_info.maxsize == CACHE_SIZE + + # Only one of each request should have made it through + assert mock_request.call_count == 2 + + if func != "timeseries": + mock_request.assert_has_calls( + ( + call("get", NDCS_URL + func, {"scenario": "test"}), + call("get", NDCS_URL + func, {"scenario": "other"}), + ), + any_order=False, + ) + else: + mock_request.assert_has_calls( + ( + call("get", NDCS_URL + func, {"scenario": "test", "format": "csv"}), + call("get", NDCS_URL + func, {"scenario": "other", "format": "csv"}), + ), + any_order=False, + ) + + class MockRemoteDataset(RemoteDataset): # replaces remote queries with static dataset _data_queries = [] From 145a69a4180030762e42924744ce24762de45e2e Mon Sep 17 00:00:00 2001 From: Jared Lewis Date: Fri, 20 May 2022 18:27:20 +1000 Subject: [PATCH 13/19] isort --- src/scmdata/remote.py | 13 ++++++------- tests/integration/test_remote.py | 4 ++-- tests/unit/database/backends/test_api.py | 16 ---------------- tests/unit/test_remote.py | 15 ++++++++------- 4 files changed, 16 insertions(+), 32 deletions(-) delete mode 100644 tests/unit/database/backends/test_api.py diff --git a/src/scmdata/remote.py b/src/scmdata/remote.py index 522a0721..e693eece 100644 --- a/src/scmdata/remote.py +++ b/src/scmdata/remote.py @@ -1,17 +1,16 @@ -import pandas as pd -import requests +import io +import logging import urllib.parse -from typing import List, Optional from functools import lru_cache +from typing import List, Optional + +import pandas as pd +import requests import scmdata from scmdata import ScmRun -import io - from scmdata.errors import RemoteQueryError -import logging - logger = logging.getLogger(__name__) diff --git a/tests/integration/test_remote.py b/tests/integration/test_remote.py index 2bef054a..f9c57256 100644 --- a/tests/integration/test_remote.py +++ b/tests/integration/test_remote.py @@ -2,10 +2,10 @@ import scmdata from scmdata.remote import ( + RemoteDataset, _read_api_facets, - _read_api_timeseries, _read_api_meta, - RemoteDataset, + _read_api_timeseries, ) NDCS_URL = "https://api.climateresource.com.au/ndcs/v1" diff --git a/tests/unit/database/backends/test_api.py b/tests/unit/database/backends/test_api.py deleted file mode 100644 index 07868cef..00000000 --- a/tests/unit/database/backends/test_api.py +++ /dev/null @@ -1,16 +0,0 @@ -from scmdata.database.backends import APIDatabaseBackend -from scmdata.database import ScmDatabase - - -def test_api_backend(): - backend = APIDatabaseBackend() - - pass - - -def test_api_database(): - db = ScmDatabase( - backend="api", - backend_config={"url": "https://api.climateresource.com.au/ndcs/v1/"}, - ) - db.load() diff --git a/tests/unit/test_remote.py b/tests/unit/test_remote.py index ac40f859..bb103162 100644 --- a/tests/unit/test_remote.py +++ b/tests/unit/test_remote.py @@ -1,22 +1,23 @@ import io import logging import os -import pandas as pd -import pytest import re +from unittest.mock import Mock, call, patch +import pandas as pd +import pytest import requests + import scmdata import scmdata.testing +from scmdata.errors import NonUniqueMetadataError, RemoteQueryError from scmdata.remote import ( + CACHE_SIZE, + RemoteDataset, _read_api_facets, - _read_api_timeseries, _read_api_meta, - RemoteDataset, - CACHE_SIZE, + _read_api_timeseries, ) -from unittest.mock import patch, Mock, call -from scmdata.errors import NonUniqueMetadataError, RemoteQueryError NDCS_URL = "https://api.climateresource.com.au/ndcs/v1/" From 5f4a1ad561fe3eaa8ea1d22a7f9547d3ffd4c761 Mon Sep 17 00:00:00 2001 From: Jared Lewis Date: Fri, 20 May 2022 18:35:09 +1000 Subject: [PATCH 14/19] Added test for missing attribute --- src/scmdata/remote.py | 20 ++++++++++++++++++-- tests/unit/test_remote.py | 6 ++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/scmdata/remote.py b/src/scmdata/remote.py index e693eece..316732a3 100644 --- a/src/scmdata/remote.py +++ b/src/scmdata/remote.py @@ -76,6 +76,18 @@ def _read_api_meta(url, **filters): class RemoteDataset: def __init__(self, base_url: str, filters=None): + """ + To write once happy with interface + + Parameters + ---------- + base_url + Url of API + filters + Default filters + + Shorthand for calling ``RemoteDataset(url).filter(**filters)`` + """ # Ensure the url is terminated with a '/' self.base_url = base_url.rstrip("/") + "/" self.filters = filters or {} @@ -85,10 +97,13 @@ def _read_api_info(self): facets = _read_api_facets(self.base_url) self._meta_cols = list(facets.keys()) - def __getattr__(self, item): + def __getattr__(self, item: str): # Proxy ScmRun functions if hasattr(ScmRun, item): return getattr(self.query(), item) + raise AttributeError( + f"'{self.__class__.__name__}' object has no attribute '{item}'" + ) def url(self) -> str: opts = self.filter_options() @@ -167,12 +182,13 @@ def filter_options(self) -> List[str]: extra_filters = ["year.min", "year.max"] return [*self._meta_cols, *extra_filters] - def query(self, raise_on_error=False) -> scmdata.ScmRun: + def query(self, raise_on_error: bool = False) -> scmdata.ScmRun: """ Fetch timeseries from the API The resulting data will follow any applied filters (see :func:`filters`). + Raises ------ RemoteQueryError diff --git a/tests/unit/test_remote.py b/tests/unit/test_remote.py index bb103162..fbb4eba4 100644 --- a/tests/unit/test_remote.py +++ b/tests/unit/test_remote.py @@ -313,6 +313,12 @@ def test_remote_proxy(remote_ds): pd.testing.assert_frame_equal(res, exp) +def test_missing_attribute(remote_ds): + match = "'MockRemoteDataset' object has no attribute 'unknown_attr'" + with pytest.raises(AttributeError, match=match): + remote_ds.unknown_attr() + + def test_remote_meta(remote_ds): res = remote_ds.meta() From 0986f759ad6791ab7734e286746a76d393612de6 Mon Sep 17 00:00:00 2001 From: Jared Lewis Date: Fri, 20 May 2022 18:39:46 +1000 Subject: [PATCH 15/19] Add API docs --- docs/source/index.rst | 1 + docs/source/scmdata.remote.rst | 6 ++++++ 2 files changed, 7 insertions(+) create mode 100644 docs/source/scmdata.remote.rst diff --git a/docs/source/index.rst b/docs/source/index.rst index ca5bd179..180fc418 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -35,6 +35,7 @@ SCMData scmdata.ops scmdata.plotting scmdata.processing + scmdata.processing scmdata.run scmdata.testing scmdata.time diff --git a/docs/source/scmdata.remote.rst b/docs/source/scmdata.remote.rst new file mode 100644 index 00000000..e2468beb --- /dev/null +++ b/docs/source/scmdata.remote.rst @@ -0,0 +1,6 @@ +.. _scmdata.remote: + +scmdata.remote +--------------- + +.. automodule:: scmdata.remote From 89f2ae58be4d2d96fe6a3c11ea032e1b78dbc97f Mon Sep 17 00:00:00 2001 From: Jared Lewis Date: Fri, 20 May 2022 18:44:16 +1000 Subject: [PATCH 16/19] Use metadata instead of `source` --- src/scmdata/remote.py | 2 +- tests/unit/test_remote.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/scmdata/remote.py b/src/scmdata/remote.py index 316732a3..d4baff0a 100644 --- a/src/scmdata/remote.py +++ b/src/scmdata/remote.py @@ -215,7 +215,7 @@ def query(self, raise_on_error: bool = False) -> scmdata.ScmRun: logger.warning(msg + ". Ignoring") run = _read_api_timeseries(self.base_url, **filters) - run.source = self + run.metadata["source"] = self return run diff --git a/tests/unit/test_remote.py b/tests/unit/test_remote.py index fbb4eba4..cb382e09 100644 --- a/tests/unit/test_remote.py +++ b/tests/unit/test_remote.py @@ -202,6 +202,9 @@ def test_remote_query(remote_ds): assert isinstance(res_filtered, scmdata.ScmRun) assert MockRemoteDataset._data_queries == [{}, {"variable": "Emissions|CO2"}] + assert res.metadata["source"] == res + assert res_filtered.metadata["source"] == res_filtered + @patch("scmdata.remote._read_api_timeseries") def test_remote_query_mocked(mock_timeseries, caplog): From 302900398ec98e20804e4dbad26f6109f5e6ef9a Mon Sep 17 00:00:00 2001 From: Jared Lewis Date: Fri, 20 May 2022 19:50:38 +1000 Subject: [PATCH 17/19] Added repr --- src/scmdata/remote.py | 19 +++++++++++++++++++ tests/unit/test_remote.py | 22 +++++++++++++++++----- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/src/scmdata/remote.py b/src/scmdata/remote.py index d4baff0a..16db832b 100644 --- a/src/scmdata/remote.py +++ b/src/scmdata/remote.py @@ -105,6 +105,25 @@ def __getattr__(self, item: str): f"'{self.__class__.__name__}' object has no attribute '{item}'" ) + def __len__(self): + return len(self.meta()) + + def __repr__(self) -> str: + def _indent(s): + _lines = ["\t" + line for line in s.split("\n")] + return "\n".join(_lines) + + lines = [ + f"<{self.__class__.__name__}> (timeseries: {len(self)})", + f"URL: {self.url()}", + "Filters", + _indent(str(self.filters)), + "Meta", + _indent(repr(self.meta())), + ] + + return "\n".join(lines) + def url(self) -> str: opts = self.filter_options() filters = {k: self.filters[k] for k in self.filters.keys() if k in opts} diff --git a/tests/unit/test_remote.py b/tests/unit/test_remote.py index cb382e09..7bc02476 100644 --- a/tests/unit/test_remote.py +++ b/tests/unit/test_remote.py @@ -10,7 +10,7 @@ import scmdata import scmdata.testing -from scmdata.errors import NonUniqueMetadataError, RemoteQueryError +from scmdata.errors import RemoteQueryError from scmdata.remote import ( CACHE_SIZE, RemoteDataset, @@ -101,6 +101,7 @@ def test_api_caches( timeseries_facets_response, func, ): + if func == "meta": mock_request.return_value = timeseries_meta_response api_func = _read_api_meta @@ -113,6 +114,8 @@ def test_api_caches( else: raise ValueError("Unknown option") + api_func.cache_clear() + api_func(NDCS_URL, scenario="test") api_func(NDCS_URL, scenario="test") api_func(NDCS_URL, scenario="other") @@ -182,6 +185,17 @@ def remote_ds(): return ds +def test_remote_repr(remote_ds): + res = repr(remote_ds) + + assert re.search(r" \(timeseries:", res) + assert re.search(f"URL: {remote_ds.url()}", res) + + +def test_remote_len(remote_ds): + assert len(remote_ds) == 13568 + + def test_remote_dataset_filtering(remote_ds): filtered_ds = remote_ds.filter(variable="Population") assert filtered_ds.filters == {"variable": "Population"} @@ -202,20 +216,18 @@ def test_remote_query(remote_ds): assert isinstance(res_filtered, scmdata.ScmRun) assert MockRemoteDataset._data_queries == [{}, {"variable": "Emissions|CO2"}] - assert res.metadata["source"] == res - assert res_filtered.metadata["source"] == res_filtered - @patch("scmdata.remote._read_api_timeseries") def test_remote_query_mocked(mock_timeseries, caplog): caplog.set_level(logging.INFO) + mock_timeseries.return_value = scmdata.ScmRun() ds = RemoteDataset(NDCS_URL).filter(variable="test") ds.filter_options = Mock(return_value=["variable"]) res = ds.query() assert res == mock_timeseries.return_value - assert res.source == ds + assert res.metadata["source"] == ds assert len(caplog.messages) == 1 mock_timeseries.assert_called_with(NDCS_URL, **{"variable": "test"}) From 67e01d3d52fa99a2f3d795126e61aeb38a7231d0 Mon Sep 17 00:00:00 2001 From: Jared Lewis Date: Sat, 21 May 2022 14:09:29 +0200 Subject: [PATCH 18/19] Run remote notebook --- notebooks/remote-datasets.ipynb | 1199 +++++++++++++++++++++++++++++-- setup.cfg | 9 +- src/scmdata/remote.py | 8 +- 3 files changed, 1134 insertions(+), 82 deletions(-) diff --git a/notebooks/remote-datasets.ipynb b/notebooks/remote-datasets.ipynb index 6bf8d19b..4f806dd6 100644 --- a/notebooks/remote-datasets.ipynb +++ b/notebooks/remote-datasets.ipynb @@ -26,7 +26,21 @@ } ], "source": [ - "import scmdata" + "import scmdata\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "d70dcb13", + "metadata": {}, + "outputs": [], + "source": [ + "pd.set_option(\"display.width\", 250)\n", + "pd.set_option(\"display.max_columns\", 15)\n", + "pd.set_option(\"display.max_colwidth\", 80)\n", + "pd.set_option(\"display.min_rows\", 20)" ] }, { @@ -49,59 +63,70 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "id": "1668bbb4", "metadata": {}, "outputs": [ { - "ename": "URLError", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mgaierror\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m~/anaconda/lib/python3.7/urllib/request.py\u001b[0m in \u001b[0;36mdo_open\u001b[0;34m(self, http_class, req, **http_conn_args)\u001b[0m\n\u001b[1;32m 1316\u001b[0m h.request(req.get_method(), req.selector, req.data, headers,\n\u001b[0;32m-> 1317\u001b[0;31m encode_chunked=req.has_header('Transfer-encoding'))\n\u001b[0m\u001b[1;32m 1318\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mOSError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;31m# timeout error\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda/lib/python3.7/http/client.py\u001b[0m in \u001b[0;36mrequest\u001b[0;34m(self, method, url, body, headers, encode_chunked)\u001b[0m\n\u001b[1;32m 1243\u001b[0m \u001b[0;34m\"\"\"Send a complete request to the server.\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1244\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_send_request\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbody\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mheaders\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mencode_chunked\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1245\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda/lib/python3.7/http/client.py\u001b[0m in \u001b[0;36m_send_request\u001b[0;34m(self, method, url, body, headers, encode_chunked)\u001b[0m\n\u001b[1;32m 1289\u001b[0m \u001b[0mbody\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_encode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbody\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'body'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1290\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mendheaders\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbody\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mencode_chunked\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mencode_chunked\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1291\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda/lib/python3.7/http/client.py\u001b[0m in \u001b[0;36mendheaders\u001b[0;34m(self, message_body, encode_chunked)\u001b[0m\n\u001b[1;32m 1238\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mCannotSendHeader\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1239\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_send_output\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmessage_body\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mencode_chunked\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mencode_chunked\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1240\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda/lib/python3.7/http/client.py\u001b[0m in \u001b[0;36m_send_output\u001b[0;34m(self, message_body, encode_chunked)\u001b[0m\n\u001b[1;32m 1025\u001b[0m \u001b[0;32mdel\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_buffer\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1026\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1027\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda/lib/python3.7/http/client.py\u001b[0m in \u001b[0;36msend\u001b[0;34m(self, data)\u001b[0m\n\u001b[1;32m 965\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mauto_open\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 966\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconnect\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 967\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda/lib/python3.7/http/client.py\u001b[0m in \u001b[0;36mconnect\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1405\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1406\u001b[0;31m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconnect\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1407\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda/lib/python3.7/http/client.py\u001b[0m in \u001b[0;36mconnect\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 937\u001b[0m self.sock = self._create_connection(\n\u001b[0;32m--> 938\u001b[0;31m (self.host,self.port), self.timeout, self.source_address)\n\u001b[0m\u001b[1;32m 939\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msock\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msetsockopt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msocket\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mIPPROTO_TCP\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msocket\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTCP_NODELAY\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda/lib/python3.7/socket.py\u001b[0m in \u001b[0;36mcreate_connection\u001b[0;34m(address, timeout, source_address)\u001b[0m\n\u001b[1;32m 706\u001b[0m \u001b[0merr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 707\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mres\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mgetaddrinfo\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhost\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mport\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSOCK_STREAM\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 708\u001b[0m \u001b[0maf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msocktype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mproto\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcanonname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msa\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mres\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda/lib/python3.7/socket.py\u001b[0m in \u001b[0;36mgetaddrinfo\u001b[0;34m(host, port, family, type, proto, flags)\u001b[0m\n\u001b[1;32m 747\u001b[0m \u001b[0maddrlist\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 748\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mres\u001b[0m \u001b[0;32min\u001b[0m \u001b[0m_socket\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetaddrinfo\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhost\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mport\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfamily\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mproto\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mflags\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 749\u001b[0m \u001b[0maf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msocktype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mproto\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcanonname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msa\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mres\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mgaierror\u001b[0m: [Errno -3] Temporary failure in name resolution", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[0;31mURLError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m/tmp/ipykernel_1259186/1220445521.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mremote_url\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"https://rcmip-protocols-au.s3-ap-southeast-2.amazonaws.com/v5.1.0/rcmip-emissions-annual-means-v5-1-0.csv\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mrun\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mscmdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mScmRun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mremote_url\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlowercase_cols\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m~/code/uom/scmdata/src/scmdata/run.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, data, index, columns, metadata, copy_data, **kwargs)\u001b[0m\n\u001b[1;32m 456\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcopy_data\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mhasattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"copy\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 457\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 458\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_init_timeseries\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcolumns\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy_data\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy_data\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 459\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 460\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_df\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/code/uom/scmdata/src/scmdata/run.py\u001b[0m in \u001b[0;36m_init_timeseries\u001b[0;34m(self, data, index, columns, copy_data, **kwargs)\u001b[0m\n\u001b[1;32m 503\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merror_msg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 504\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 505\u001b[0;31m \u001b[0;34m(\u001b[0m\u001b[0m_df\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_meta\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_read_file\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrequired_cols\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrequired_cols\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 506\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 507\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0m_df\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mduplicated\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0many\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/code/uom/scmdata/src/scmdata/run.py\u001b[0m in \u001b[0;36m_read_file\u001b[0;34m(fnames, required_cols, *args, **kwargs)\u001b[0m\n\u001b[1;32m 74\u001b[0m \u001b[0m_logger\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minfo\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Reading %s\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfnames\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 75\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 76\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_format_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_read_pandas\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfnames\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrequired_cols\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 77\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 78\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/code/uom/scmdata/src/scmdata/run.py\u001b[0m in \u001b[0;36m_read_pandas\u001b[0;34m(fname, lowercase_cols, *args, **kwargs)\u001b[0m\n\u001b[1;32m 124\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 125\u001b[0m \u001b[0m_logger\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdebug\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Reading with pandas read_csv\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 126\u001b[0;31m \u001b[0mdf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 127\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 128\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_to_lower\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/code/uom/scmdata/venv/lib/python3.7/site-packages/pandas/util/_decorators.py\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 309\u001b[0m \u001b[0mstacklevel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mstacklevel\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 310\u001b[0m )\n\u001b[0;32m--> 311\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 312\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 313\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/code/uom/scmdata/venv/lib/python3.7/site-packages/pandas/io/parsers/readers.py\u001b[0m in \u001b[0;36mread_csv\u001b[0;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, error_bad_lines, warn_bad_lines, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options)\u001b[0m\n\u001b[1;32m 584\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkwds_defaults\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 585\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 586\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_read\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 587\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 588\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/code/uom/scmdata/venv/lib/python3.7/site-packages/pandas/io/parsers/readers.py\u001b[0m in \u001b[0;36m_read\u001b[0;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[1;32m 480\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 481\u001b[0m \u001b[0;31m# Create the parser.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 482\u001b[0;31m \u001b[0mparser\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mTextFileReader\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 483\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 484\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mchunksize\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0miterator\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/code/uom/scmdata/venv/lib/python3.7/site-packages/pandas/io/parsers/readers.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[1;32m 809\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"has_index_names\"\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"has_index_names\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 810\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 811\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_make_engine\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mengine\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 812\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 813\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mclose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/code/uom/scmdata/venv/lib/python3.7/site-packages/pandas/io/parsers/readers.py\u001b[0m in \u001b[0;36m_make_engine\u001b[0;34m(self, engine)\u001b[0m\n\u001b[1;32m 1038\u001b[0m )\n\u001b[1;32m 1039\u001b[0m \u001b[0;31m# error: Too many arguments for \"ParserBase\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1040\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mmapping\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mengine\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# type: ignore[call-arg]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1041\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1042\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_failover_to_python\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/code/uom/scmdata/venv/lib/python3.7/site-packages/pandas/io/parsers/c_parser_wrapper.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, src, **kwds)\u001b[0m\n\u001b[1;32m 49\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 50\u001b[0m \u001b[0;31m# open handles\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 51\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_open_handles\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 52\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhandles\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 53\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/code/uom/scmdata/venv/lib/python3.7/site-packages/pandas/io/parsers/base_parser.py\u001b[0m in \u001b[0;36m_open_handles\u001b[0;34m(self, src, kwds)\u001b[0m\n\u001b[1;32m 227\u001b[0m \u001b[0mmemory_map\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"memory_map\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 228\u001b[0m \u001b[0mstorage_options\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"storage_options\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 229\u001b[0;31m \u001b[0merrors\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"encoding_errors\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"strict\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 230\u001b[0m )\n\u001b[1;32m 231\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/code/uom/scmdata/venv/lib/python3.7/site-packages/pandas/io/common.py\u001b[0m in \u001b[0;36mget_handle\u001b[0;34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[0m\n\u001b[1;32m 612\u001b[0m \u001b[0mcompression\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcompression\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 613\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmode\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 614\u001b[0;31m \u001b[0mstorage_options\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mstorage_options\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 615\u001b[0m )\n\u001b[1;32m 616\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/code/uom/scmdata/venv/lib/python3.7/site-packages/pandas/io/common.py\u001b[0m in \u001b[0;36m_get_filepath_or_buffer\u001b[0;34m(filepath_or_buffer, encoding, compression, mode, storage_options)\u001b[0m\n\u001b[1;32m 310\u001b[0m \u001b[0;31m# assuming storage_options is to be interpreted as headers\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 311\u001b[0m \u001b[0mreq_info\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0murllib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mRequest\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mheaders\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mstorage_options\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 312\u001b[0;31m \u001b[0;32mwith\u001b[0m \u001b[0murlopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mreq_info\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mreq\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 313\u001b[0m \u001b[0mcontent_encoding\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mreq\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mheaders\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Content-Encoding\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 314\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcontent_encoding\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"gzip\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/code/uom/scmdata/venv/lib/python3.7/site-packages/pandas/io/common.py\u001b[0m in \u001b[0;36murlopen\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 210\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0murllib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 211\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 212\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0murllib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0murlopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 213\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 214\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda/lib/python3.7/urllib/request.py\u001b[0m in \u001b[0;36murlopen\u001b[0;34m(url, data, timeout, cafile, capath, cadefault, context)\u001b[0m\n\u001b[1;32m 220\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 221\u001b[0m \u001b[0mopener\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_opener\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 222\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mopener\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 223\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 224\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0minstall_opener\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mopener\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda/lib/python3.7/urllib/request.py\u001b[0m in \u001b[0;36mopen\u001b[0;34m(self, fullurl, data, timeout)\u001b[0m\n\u001b[1;32m 523\u001b[0m \u001b[0mreq\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmeth\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mreq\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 524\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 525\u001b[0;31m \u001b[0mresponse\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_open\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mreq\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 526\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 527\u001b[0m \u001b[0;31m# post-process response\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda/lib/python3.7/urllib/request.py\u001b[0m in \u001b[0;36m_open\u001b[0;34m(self, req, data)\u001b[0m\n\u001b[1;32m 541\u001b[0m \u001b[0mprotocol\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mreq\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtype\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 542\u001b[0m result = self._call_chain(self.handle_open, protocol, protocol +\n\u001b[0;32m--> 543\u001b[0;31m '_open', req)\n\u001b[0m\u001b[1;32m 544\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 545\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda/lib/python3.7/urllib/request.py\u001b[0m in \u001b[0;36m_call_chain\u001b[0;34m(self, chain, kind, meth_name, *args)\u001b[0m\n\u001b[1;32m 501\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mhandler\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mhandlers\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 502\u001b[0m \u001b[0mfunc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhandler\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmeth_name\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 503\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 504\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 505\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda/lib/python3.7/urllib/request.py\u001b[0m in \u001b[0;36mhttps_open\u001b[0;34m(self, req)\u001b[0m\n\u001b[1;32m 1358\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mhttps_open\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreq\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1359\u001b[0m return self.do_open(http.client.HTTPSConnection, req,\n\u001b[0;32m-> 1360\u001b[0;31m context=self._context, check_hostname=self._check_hostname)\n\u001b[0m\u001b[1;32m 1361\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1362\u001b[0m \u001b[0mhttps_request\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mAbstractHTTPHandler\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdo_request_\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda/lib/python3.7/urllib/request.py\u001b[0m in \u001b[0;36mdo_open\u001b[0;34m(self, http_class, req, **http_conn_args)\u001b[0m\n\u001b[1;32m 1317\u001b[0m encode_chunked=req.has_header('Transfer-encoding'))\n\u001b[1;32m 1318\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mOSError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;31m# timeout error\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1319\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mURLError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1320\u001b[0m \u001b[0mr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mh\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetresponse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1321\u001b[0m \u001b[0;32mexcept\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mURLError\u001b[0m: " - ] + "data": { + "text/plain": [ + "\n", + "Time:\n", + "\tStart: 1765-01-01T00:00:00\n", + "\tEnd: 2500-01-01T00:00:00\n", + "Meta:\n", + "\t climate_model model region scenario unit variable\n", + "\t0 unspecified IMAGE World RCP26 Mt BC / yr Emissions|BC\n", + "\t1 unspecified IMAGE World RCP26 kt C2F6 / yr Emissions|C2F6\n", + "\t2 unspecified IMAGE World RCP26 kt C6F14 / yr Emissions|C6F14\n", + "\t3 unspecified IMAGE World RCP26 kt CCl4 / yr Emissions|CCl4\n", + "\t4 unspecified IMAGE World RCP26 kt CF4 / yr Emissions|CF4\n", + "\t5 unspecified IMAGE World RCP26 kt CFC11 / yr Emissions|CFC11\n", + "\t6 unspecified IMAGE World RCP26 kt CFC113 / yr Emissions|CFC113\n", + "\t7 unspecified IMAGE World RCP26 kt CFC114 / yr Emissions|CFC114\n", + "\t8 unspecified IMAGE World RCP26 kt CFC115 / yr Emissions|CFC115\n", + "\t9 unspecified IMAGE World RCP26 kt CFC12 / yr Emissions|CFC12\n", + "\t10 unspecified IMAGE World RCP26 kt CH3Br / yr Emissions|CH3Br\n", + "\t11 unspecified IMAGE World RCP26 kt CH3CCl3 / yr Emissions|CH3CCl3\n", + "\t12 unspecified IMAGE World RCP26 kt CH3Cl / yr Emissions|CH3Cl\n", + "\t13 unspecified IMAGE World RCP26 Mt CH4 / yr Emissions|CH4\n", + "\t14 unspecified IMAGE World RCP26 Mt CO / yr Emissions|CO\n", + "\t15 unspecified IMAGE World RCP26 Gt C / yr Emissions|CO2|MAGICC AFOLU\n", + "\t16 unspecified IMAGE World RCP26 Gt C / yr Emissions|CO2|MAGICC Fossil and Industrial\n", + "\t17 unspecified IMAGE World RCP26 kt HCFC141b / yr Emissions|HCFC141b\n", + "\t18 unspecified IMAGE World RCP26 kt HCFC142b / yr Emissions|HCFC142b\n", + "\t19 unspecified IMAGE World RCP26 kt HCFC22 / yr Emissions|HCFC22\n", + "\t20 unspecified IMAGE World RCP26 kt HFC125 / yr Emissions|HFC125\n", + "\t21 unspecified IMAGE World RCP26 kt HFC134a / yr Emissions|HFC134a\n", + "\t22 unspecified IMAGE World RCP26 kt HFC143a / yr Emissions|HFC143a\n", + "\t23 unspecified IMAGE World RCP26 kt HFC227ea / yr Emissions|HFC227ea\n", + "\t24 unspecified IMAGE World RCP26 kt HFC23 / yr Emissions|HFC23\n", + "\t25 unspecified IMAGE World RCP26 kt HFC245fa / yr Emissions|HFC245fa\n", + "\t26 unspecified IMAGE World RCP26 kt HFC32 / yr Emissions|HFC32\n", + "\t27 unspecified IMAGE World RCP26 kt HFC4310 / yr Emissions|HFC4310\n", + "\t28 unspecified IMAGE World RCP26 kt Halon1202 / yr Emissions|Halon1202\n", + "\t29 unspecified IMAGE World RCP26 kt Halon1211 / yr Emissions|Halon1211\n", + "\t30 unspecified IMAGE World RCP26 kt Halon1301 / yr Emissions|Halon1301\n", + "\t31 unspecified IMAGE World RCP26 kt Halon2402 / yr Emissions|Halon2402\n", + "\t32 unspecified IMAGE World RCP26 Mt N2ON / yr Emissions|N2O\n", + "\t33 unspecified IMAGE World RCP26 Mt N / yr Emissions|NH3\n", + "\t34 unspecified IMAGE World RCP26 Mt NMVOC / yr Emissions|NMVOC\n", + "\t35 unspecified IMAGE World RCP26 Mt N / yr Emissions|NOx\n", + "\t36 unspecified IMAGE World RCP26 Mt OC / yr Emissions|OC\n", + "\t37 unspecified IMAGE World RCP26 kt SF6 / yr Emissions|SF6\n", + "\t38 unspecified IMAGE World RCP26 Mt S / yr Emissions|SOx" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "remote_url = \"https://rcmip-protocols-au.s3-ap-southeast-2.amazonaws.com/v5.1.0/rcmip-emissions-annual-means-v5-1-0.csv\"\n", + "remote_url = \"https://raw.githubusercontent.com/openscm/scmdata/master/tests/test_data/rcp26_emissions.csv\"\n", "\n", - "run = scmdata.ScmRun(remote_url, lowercase_cols=True)" + "run = scmdata.ScmRun(remote_url, lowercase_cols=True)\n", + "run" ] }, { @@ -126,7 +151,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "0ae57efe", "metadata": {}, "outputs": [], @@ -136,22 +161,81 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "81dd0a0f", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " To write once happy with interface\n", + "\n", + " Parameters\n", + " ----------\n", + " base_url\n", + " Url of API\n", + " filters\n", + " Default filters\n", + "\n", + " Shorthand for calling ``RemoteDataset(url).filter(**filters)``\n", + " \n" + ] + } + ], "source": [ "print(scmdata.RemoteDataset.__init__.__doc__)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "313a8788", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + " (timeseries: 25014)\n", + "URL: https://api.climateresource.com.au/ndcs/v1/timeseries?format=csv\n", + "Filters\n", + "\t{}\n", + "Meta\n", + "\t ambition category conditionality hot_air model model_version region scenario unit variable\n", + "\t0 NaN Historical conditional include CR NDC tool 14Feb2022b_CR IRN Reference Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t1 NaN Historical conditional include CR NDC tool 14Feb2022b_CR IRN Reference Mt CO2eq/yr Emissions|Reference LULUCF\n", + "\t2 NaN Historical conditional include CR NDC tool 14Feb2022b_CR IRN NaN Mt CO2eq/yr Emissions|Covered GHG incl. LULUCF\n", + "\t3 low Cancun conditional include CR NDC tool 14Feb2022b_CR IRN NaN Mt CO2eq/yr Cancun Pledge\n", + "\t4 high Cancun conditional include CR NDC tool 14Feb2022b_CR IRN NaN Mt CO2eq/yr Cancun Pledge\n", + "\t5 low Initial NDC conditional include CR NDC tool 14Feb2022b_CR IRN NaN Mt CO2eq/yr Emissions|Covered GHG excl. LULUCF\n", + "\t6 high Initial NDC conditional include CR NDC tool 14Feb2022b_CR IRN NaN Mt CO2eq/yr Emissions|Covered GHG excl. LULUCF\n", + "\t7 low Initial NDC conditional include CR NDC tool 14Feb2022b_CR IRN NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t8 high Initial NDC conditional include CR NDC tool 14Feb2022b_CR IRN NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t9 NaN population conditional include CR NDC tool 14Feb2022b_CR IRN NaN Mio Population\n", + "\t... ... ... ... ... ... ... ... ... ... ...\n", + "\t25004 low Initial NDC range exclude CR NDC tool 14Feb2022b_CR STP NaN Mt CO2eq/yr Emissions|Covered GHG excl. LULUCF\n", + "\t25005 high Initial NDC range exclude CR NDC tool 14Feb2022b_CR STP NaN Mt CO2eq/yr Emissions|Covered GHG excl. LULUCF\n", + "\t25006 low Initial NDC range exclude CR NDC tool 14Feb2022b_CR STP NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t25007 high Initial NDC range exclude CR NDC tool 14Feb2022b_CR STP NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t25008 NaN population range exclude CR NDC tool 14Feb2022b_CR STP NaN Mio Population\n", + "\t25009 NaN gdp range exclude CR NDC tool 14Feb2022b_CR STP NaN 10^12 $/Currency GDP\n", + "\t25010 low Current range exclude CR NDC tool 14Feb2022b_CR STP NaN Mt CO2eq/yr Emissions|Covered GHG excl. LULUCF\n", + "\t25011 low Current range exclude CR NDC tool 14Feb2022b_CR STP NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t25012 high Current range exclude CR NDC tool 14Feb2022b_CR STP NaN Mt CO2eq/yr Emissions|Covered GHG excl. LULUCF\n", + "\t25013 high Current range exclude CR NDC tool 14Feb2022b_CR STP NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t\n", + "\t[25014 rows x 10 columns]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "ds = scmdata.RemoteDataset(NDCS_URL)" + "ds = scmdata.RemoteDataset(NDCS_URL)\n", + "ds" ] }, { @@ -166,12 +250,52 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "2f722883", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + " (timeseries: 2352)\n", + "URL: https://api.climateresource.com.au/ndcs/v1/timeseries?variable=Emissions%7CTotal+GHG%2A&category=Current&format=csv\n", + "Filters\n", + "\t{'variable': 'Emissions|Total GHG*', 'category': 'Current'}\n", + "Meta\n", + "\t ambition category conditionality hot_air model model_version region scenario unit variable\n", + "\t0 low Current conditional include CR NDC tool 14Feb2022b_CR IRN NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t1 high Current conditional include CR NDC tool 14Feb2022b_CR IRN NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2 low Current conditional include CR NDC tool 14Feb2022b_CR ZWE NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t3 high Current conditional include CR NDC tool 14Feb2022b_CR ZWE NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t4 low Current conditional include CR NDC tool 14Feb2022b_CR PER NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t5 high Current conditional include CR NDC tool 14Feb2022b_CR PER NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t6 low Current conditional include CR NDC tool 14Feb2022b_CR GAB NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t7 high Current conditional include CR NDC tool 14Feb2022b_CR GAB NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t8 low Current conditional include CR NDC tool 14Feb2022b_CR PHL NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t9 high Current conditional include CR NDC tool 14Feb2022b_CR PHL NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t... ... ... ... ... ... ... ... ... ... ...\n", + "\t2342 low Current range exclude CR NDC tool 14Feb2022b_CR COG NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2343 high Current range exclude CR NDC tool 14Feb2022b_CR COG NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2344 low Current range exclude CR NDC tool 14Feb2022b_CR TON NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2345 high Current range exclude CR NDC tool 14Feb2022b_CR TON NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2346 low Current range exclude CR NDC tool 14Feb2022b_CR BGD NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2347 high Current range exclude CR NDC tool 14Feb2022b_CR BGD NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2348 low Current range exclude CR NDC tool 14Feb2022b_CR AND NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2349 high Current range exclude CR NDC tool 14Feb2022b_CR AND NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2350 low Current range exclude CR NDC tool 14Feb2022b_CR STP NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2351 high Current range exclude CR NDC tool 14Feb2022b_CR STP NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t\n", + "\t[2352 rows x 10 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "ghg_ds = ds.filter(variable=\"Emissions|Total GHG*\")" + "ghg_ds = ds.filter(variable=\"Emissions|Total GHG*\", category=\"Current\")\n", + "ghg_ds" ] }, { @@ -186,20 +310,386 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "e925248e", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ambitioncategoryconditionalityhot_airmodelmodel_versionregionscenariounitvariable
0lowCurrentconditionalincludeCR NDC tool14Feb2022b_CRIRNNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF
1highCurrentconditionalincludeCR NDC tool14Feb2022b_CRIRNNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF
2lowCurrentconditionalincludeCR NDC tool14Feb2022b_CRZWENaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF
3highCurrentconditionalincludeCR NDC tool14Feb2022b_CRZWENaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF
4lowCurrentconditionalincludeCR NDC tool14Feb2022b_CRPERNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF
5highCurrentconditionalincludeCR NDC tool14Feb2022b_CRPERNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF
6lowCurrentconditionalincludeCR NDC tool14Feb2022b_CRGABNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF
7highCurrentconditionalincludeCR NDC tool14Feb2022b_CRGABNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF
8lowCurrentconditionalincludeCR NDC tool14Feb2022b_CRPHLNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF
9highCurrentconditionalincludeCR NDC tool14Feb2022b_CRPHLNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF
.................................
2342lowCurrentrangeexcludeCR NDC tool14Feb2022b_CRCOGNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF
2343highCurrentrangeexcludeCR NDC tool14Feb2022b_CRCOGNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF
2344lowCurrentrangeexcludeCR NDC tool14Feb2022b_CRTONNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF
2345highCurrentrangeexcludeCR NDC tool14Feb2022b_CRTONNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF
2346lowCurrentrangeexcludeCR NDC tool14Feb2022b_CRBGDNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF
2347highCurrentrangeexcludeCR NDC tool14Feb2022b_CRBGDNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF
2348lowCurrentrangeexcludeCR NDC tool14Feb2022b_CRANDNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF
2349highCurrentrangeexcludeCR NDC tool14Feb2022b_CRANDNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF
2350lowCurrentrangeexcludeCR NDC tool14Feb2022b_CRSTPNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF
2351highCurrentrangeexcludeCR NDC tool14Feb2022b_CRSTPNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF
\n", + "

2352 rows × 10 columns

\n", + "
" + ], + "text/plain": [ + " ambition category conditionality hot_air model model_version region scenario unit variable\n", + "0 low Current conditional include CR NDC tool 14Feb2022b_CR IRN NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "1 high Current conditional include CR NDC tool 14Feb2022b_CR IRN NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "2 low Current conditional include CR NDC tool 14Feb2022b_CR ZWE NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "3 high Current conditional include CR NDC tool 14Feb2022b_CR ZWE NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "4 low Current conditional include CR NDC tool 14Feb2022b_CR PER NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "5 high Current conditional include CR NDC tool 14Feb2022b_CR PER NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "6 low Current conditional include CR NDC tool 14Feb2022b_CR GAB NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "7 high Current conditional include CR NDC tool 14Feb2022b_CR GAB NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "8 low Current conditional include CR NDC tool 14Feb2022b_CR PHL NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "9 high Current conditional include CR NDC tool 14Feb2022b_CR PHL NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "... ... ... ... ... ... ... ... ... ... ...\n", + "2342 low Current range exclude CR NDC tool 14Feb2022b_CR COG NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "2343 high Current range exclude CR NDC tool 14Feb2022b_CR COG NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "2344 low Current range exclude CR NDC tool 14Feb2022b_CR TON NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "2345 high Current range exclude CR NDC tool 14Feb2022b_CR TON NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "2346 low Current range exclude CR NDC tool 14Feb2022b_CR BGD NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "2347 high Current range exclude CR NDC tool 14Feb2022b_CR BGD NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "2348 low Current range exclude CR NDC tool 14Feb2022b_CR AND NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "2349 high Current range exclude CR NDC tool 14Feb2022b_CR AND NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "2350 low Current range exclude CR NDC tool 14Feb2022b_CR STP NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "2351 high Current range exclude CR NDC tool 14Feb2022b_CR STP NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\n", + "[2352 rows x 10 columns]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "ghg_ds.meta()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "dae9172c", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "['ambition',\n", + " 'category',\n", + " 'conditionality',\n", + " 'hot_air',\n", + " 'model',\n", + " 'model_version',\n", + " 'region',\n", + " 'scenario',\n", + " 'unit',\n", + " 'variable',\n", + " 'year.min',\n", + " 'year.max']" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# A complete list of filters\n", "ghg_ds.filter_options()" @@ -207,7 +697,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "39cb67aa", "metadata": {}, "outputs": [], @@ -228,10 +718,49 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "59130ae7", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "Time:\n", + "\tStart: 2010-01-01T00:00:00\n", + "\tEnd: 2030-01-01T00:00:00\n", + "Meta:\n", + "\t ambition category conditionality hot_air model model_version region scenario unit variable\n", + "\t0 low Current conditional include CR NDC tool 14Feb2022b_CR IRN NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t1 high Current conditional include CR NDC tool 14Feb2022b_CR IRN NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2 low Current conditional include CR NDC tool 14Feb2022b_CR ZWE NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t3 high Current conditional include CR NDC tool 14Feb2022b_CR ZWE NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t4 low Current conditional include CR NDC tool 14Feb2022b_CR PER NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t5 high Current conditional include CR NDC tool 14Feb2022b_CR PER NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t6 low Current conditional include CR NDC tool 14Feb2022b_CR GAB NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t7 high Current conditional include CR NDC tool 14Feb2022b_CR GAB NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t8 low Current conditional include CR NDC tool 14Feb2022b_CR PHL NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t9 high Current conditional include CR NDC tool 14Feb2022b_CR PHL NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t... ... ... ... ... ... ... ... ... ... ...\n", + "\t2342 low Current range exclude CR NDC tool 14Feb2022b_CR COG NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2343 high Current range exclude CR NDC tool 14Feb2022b_CR COG NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2344 low Current range exclude CR NDC tool 14Feb2022b_CR TON NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2345 high Current range exclude CR NDC tool 14Feb2022b_CR TON NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2346 low Current range exclude CR NDC tool 14Feb2022b_CR BGD NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2347 high Current range exclude CR NDC tool 14Feb2022b_CR BGD NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2348 low Current range exclude CR NDC tool 14Feb2022b_CR AND NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2349 high Current range exclude CR NDC tool 14Feb2022b_CR AND NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2350 low Current range exclude CR NDC tool 14Feb2022b_CR STP NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2351 high Current range exclude CR NDC tool 14Feb2022b_CR STP NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t\n", + "\t[2352 rows x 10 columns]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "ghg_data = ghg_ds.query()\n", "ghg_data" @@ -239,10 +768,49 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "id": "dc58efdf", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + " (timeseries: 2352)\n", + "URL: https://api.climateresource.com.au/ndcs/v1/timeseries?variable=Emissions%7CTotal+GHG%2A&category=Current&year.min=2010&year.max=2030&format=csv\n", + "Filters\n", + "\t{'variable': 'Emissions|Total GHG*', 'category': 'Current', 'year.min': '2010', 'year.max': '2030'}\n", + "Meta\n", + "\t ambition category conditionality hot_air model model_version region scenario unit variable\n", + "\t0 low Current conditional include CR NDC tool 14Feb2022b_CR IRN NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t1 high Current conditional include CR NDC tool 14Feb2022b_CR IRN NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2 low Current conditional include CR NDC tool 14Feb2022b_CR ZWE NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t3 high Current conditional include CR NDC tool 14Feb2022b_CR ZWE NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t4 low Current conditional include CR NDC tool 14Feb2022b_CR PER NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t5 high Current conditional include CR NDC tool 14Feb2022b_CR PER NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t6 low Current conditional include CR NDC tool 14Feb2022b_CR GAB NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t7 high Current conditional include CR NDC tool 14Feb2022b_CR GAB NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t8 low Current conditional include CR NDC tool 14Feb2022b_CR PHL NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t9 high Current conditional include CR NDC tool 14Feb2022b_CR PHL NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t... ... ... ... ... ... ... ... ... ... ...\n", + "\t2342 low Current range exclude CR NDC tool 14Feb2022b_CR COG NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2343 high Current range exclude CR NDC tool 14Feb2022b_CR COG NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2344 low Current range exclude CR NDC tool 14Feb2022b_CR TON NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2345 high Current range exclude CR NDC tool 14Feb2022b_CR TON NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2346 low Current range exclude CR NDC tool 14Feb2022b_CR BGD NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2347 high Current range exclude CR NDC tool 14Feb2022b_CR BGD NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2348 low Current range exclude CR NDC tool 14Feb2022b_CR AND NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2349 high Current range exclude CR NDC tool 14Feb2022b_CR AND NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2350 low Current range exclude CR NDC tool 14Feb2022b_CR STP NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2351 high Current range exclude CR NDC tool 14Feb2022b_CR STP NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t\n", + "\t[2352 rows x 10 columns]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "ghg_data.metadata[\"source\"]" ] @@ -257,22 +825,458 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "6cd248bb", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
time2010-01-012011-01-012012-01-012013-01-012014-01-012015-01-012016-01-01...2024-01-012025-01-012026-01-012027-01-012028-01-012029-01-012030-01-01
ambitioncategoryconditionalityhot_airmodelmodel_versionscenariounitvariable
highCurrentconditionalexcludeCR NDC tool14Feb2022b_CRNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF44668.15568746160.34525846923.14640347122.39858947741.25272947812.70891847867.697916...49324.04109649260.70836148976.07679148691.44522748406.81367248122.18210047837.550540
rangeexcludeCR NDC tool14Feb2022b_CRNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF44668.15568746160.34525846923.14640347122.39858947741.25272947812.70891847867.697916...49324.04109649260.70836148976.07679148691.44522748406.81367248122.18210047837.550540
unconditionalexcludeCR NDC tool14Feb2022b_CRNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF44668.15568746160.34525846923.14640347122.39858947741.25272947812.70891847867.697916...50297.16091150427.50407550344.25945550261.01484350177.77023450094.52561350011.281001
lowCurrentconditionalexcludeCR NDC tool14Feb2022b_CRNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF44668.15568746160.34525846923.14640347122.39858947741.25272947812.70891847867.697916...50594.59210950784.92146250470.36148250155.80150949841.24154149526.68155849212.121589
rangeexcludeCR NDC tool14Feb2022b_CRNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF44668.15568746160.34525846923.14640347122.39858947741.25272947812.70891847867.697916...51468.07198751832.13881051725.84442851619.55005451513.25568351406.96129851300.666926
unconditionalexcludeCR NDC tool14Feb2022b_CRNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF44668.15568746160.34525846923.14640347122.39858947741.25272947812.70891847867.697916...51468.07198751832.13881051725.84442851619.55005451513.25568351406.96129851300.666926
highCurrentconditionalincludeCR NDC tool14Feb2022b_CRNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF44668.15568746160.34525846923.14640347122.39858947741.25272947812.70891847867.697916...49729.92940349750.63702849547.50579749344.37455949141.24334348938.11210748734.980881
rangeincludeCR NDC tool14Feb2022b_CRNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF44668.15568746160.34525846923.14640347122.39858947741.25272947812.70891847867.697916...49729.92940349750.63702849547.50579749344.37455949141.24334348938.11210748734.980881
unconditionalincludeCR NDC tool14Feb2022b_CRNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF44668.15568746160.34525846923.14640347122.39858947741.25272947812.70891847867.697916...51257.97497651584.29171151681.64043951778.98916851876.33790351973.68662852071.035362
lowCurrentconditionalincludeCR NDC tool14Feb2022b_CRNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF44668.15568746160.34525846923.14640347122.39858947741.25272947812.70891847867.697916...51296.28147251630.25951151577.35351851524.44752151471.54153951418.63554151365.729554
rangeincludeCR NDC tool14Feb2022b_CRNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF44668.15568746160.34525846923.14640347122.39858947741.25272947812.70891847867.697916...52652.47135553257.68736753531.00724953804.32713654077.64702554350.96690854624.286797
unconditionalincludeCR NDC tool14Feb2022b_CRNaNMt CO2eq/yrEmissions|Total GHG excl. LULUCF44668.15568746160.34525846923.14640347122.39858947741.25272947812.70891847867.697916...52652.47135553257.68736753531.00724953804.32713654077.64702554350.96690854624.286797
\n", + "

12 rows × 21 columns

\n", + "
" + ], + "text/plain": [ + "time 2010-01-01 2011-01-01 2012-01-01 2013-01-01 2014-01-01 2015-01-01 2016-01-01 ... 2024-01-01 \\\n", + "ambition category conditionality hot_air model model_version scenario unit variable ... \n", + "high Current conditional exclude CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 44668.155687 46160.345258 46923.146403 47122.398589 47741.252729 47812.708918 47867.697916 ... 49324.041096 \n", + " range exclude CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 44668.155687 46160.345258 46923.146403 47122.398589 47741.252729 47812.708918 47867.697916 ... 49324.041096 \n", + " unconditional exclude CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 44668.155687 46160.345258 46923.146403 47122.398589 47741.252729 47812.708918 47867.697916 ... 50297.160911 \n", + "low Current conditional exclude CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 44668.155687 46160.345258 46923.146403 47122.398589 47741.252729 47812.708918 47867.697916 ... 50594.592109 \n", + " range exclude CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 44668.155687 46160.345258 46923.146403 47122.398589 47741.252729 47812.708918 47867.697916 ... 51468.071987 \n", + " unconditional exclude CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 44668.155687 46160.345258 46923.146403 47122.398589 47741.252729 47812.708918 47867.697916 ... 51468.071987 \n", + "high Current conditional include CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 44668.155687 46160.345258 46923.146403 47122.398589 47741.252729 47812.708918 47867.697916 ... 49729.929403 \n", + " range include CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 44668.155687 46160.345258 46923.146403 47122.398589 47741.252729 47812.708918 47867.697916 ... 49729.929403 \n", + " unconditional include CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 44668.155687 46160.345258 46923.146403 47122.398589 47741.252729 47812.708918 47867.697916 ... 51257.974976 \n", + "low Current conditional include CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 44668.155687 46160.345258 46923.146403 47122.398589 47741.252729 47812.708918 47867.697916 ... 51296.281472 \n", + " range include CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 44668.155687 46160.345258 46923.146403 47122.398589 47741.252729 47812.708918 47867.697916 ... 52652.471355 \n", + " unconditional include CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 44668.155687 46160.345258 46923.146403 47122.398589 47741.252729 47812.708918 47867.697916 ... 52652.471355 \n", + "\n", + "time 2025-01-01 2026-01-01 2027-01-01 2028-01-01 2029-01-01 2030-01-01 \n", + "ambition category conditionality hot_air model model_version scenario unit variable \n", + "high Current conditional exclude CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 49260.708361 48976.076791 48691.445227 48406.813672 48122.182100 47837.550540 \n", + " range exclude CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 49260.708361 48976.076791 48691.445227 48406.813672 48122.182100 47837.550540 \n", + " unconditional exclude CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 50427.504075 50344.259455 50261.014843 50177.770234 50094.525613 50011.281001 \n", + "low Current conditional exclude CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 50784.921462 50470.361482 50155.801509 49841.241541 49526.681558 49212.121589 \n", + " range exclude CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 51832.138810 51725.844428 51619.550054 51513.255683 51406.961298 51300.666926 \n", + " unconditional exclude CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 51832.138810 51725.844428 51619.550054 51513.255683 51406.961298 51300.666926 \n", + "high Current conditional include CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 49750.637028 49547.505797 49344.374559 49141.243343 48938.112107 48734.980881 \n", + " range include CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 49750.637028 49547.505797 49344.374559 49141.243343 48938.112107 48734.980881 \n", + " unconditional include CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 51584.291711 51681.640439 51778.989168 51876.337903 51973.686628 52071.035362 \n", + "low Current conditional include CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 51630.259511 51577.353518 51524.447521 51471.541539 51418.635541 51365.729554 \n", + " range include CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 53257.687367 53531.007249 53804.327136 54077.647025 54350.966908 54624.286797 \n", + " unconditional include CR NDC tool 14Feb2022b_CR NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF 53257.687367 53531.007249 53804.327136 54077.647025 54350.966908 54624.286797 \n", + "\n", + "[12 rows x 21 columns]" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "ghg_ds.process_over(\"region\", \"sum\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "b723a6b7", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ - "ghg_ds.lineplot(hue=\"variable\")" + "ghg_ds.filter(region='AUS').lineplot(hue=\"ambition\", style=\"conditionality\")" ] }, { @@ -287,14 +1291,63 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "id": "507d5efe", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "Time:\n", + "\tStart: 1990-01-01T00:00:00\n", + "\tEnd: 2030-01-01T00:00:00\n", + "Meta:\n", + "\t ambition category conditionality hot_air model model_version region scenario unit variable\n", + "\t0 low Current conditional include CR NDC tool 14Feb2022b_CR IRN NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t1 high Current conditional include CR NDC tool 14Feb2022b_CR IRN NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2 low Current conditional include CR NDC tool 14Feb2022b_CR ZWE NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t3 high Current conditional include CR NDC tool 14Feb2022b_CR ZWE NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t4 low Current conditional include CR NDC tool 14Feb2022b_CR PER NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t5 high Current conditional include CR NDC tool 14Feb2022b_CR PER NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t6 low Current conditional include CR NDC tool 14Feb2022b_CR GAB NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t7 high Current conditional include CR NDC tool 14Feb2022b_CR GAB NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t8 low Current conditional include CR NDC tool 14Feb2022b_CR PHL NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t9 high Current conditional include CR NDC tool 14Feb2022b_CR PHL NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t... ... ... ... ... ... ... ... ... ... ...\n", + "\t2342 low Current range exclude CR NDC tool 14Feb2022b_CR COG NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2343 high Current range exclude CR NDC tool 14Feb2022b_CR COG NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2344 low Current range exclude CR NDC tool 14Feb2022b_CR TON NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2345 high Current range exclude CR NDC tool 14Feb2022b_CR TON NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2346 low Current range exclude CR NDC tool 14Feb2022b_CR BGD NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2347 high Current range exclude CR NDC tool 14Feb2022b_CR BGD NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2348 low Current range exclude CR NDC tool 14Feb2022b_CR AND NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2349 high Current range exclude CR NDC tool 14Feb2022b_CR AND NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2350 low Current range exclude CR NDC tool 14Feb2022b_CR STP NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t2351 high Current range exclude CR NDC tool 14Feb2022b_CR STP NaN Mt CO2eq/yr Emissions|Total GHG excl. LULUCF\n", + "\t\n", + "\t[2352 rows x 10 columns]" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "import pooch\n", "\n", - "pooch.retrieve(scmdata.RemoteDataset(NDC_URL).filter(version=\"14Feb2022b_CR\", variable=\"Emissions|Total GHG*\").url())" + "cached_fname = pooch.retrieve(\n", + " scmdata.RemoteDataset(NDCS_URL).filter(\n", + " version=\"14Feb2022b_CR\",\n", + " variable=\"Emissions|Total GHG*\",\n", + " category=\"Current\"\n", + " ).url(),\n", + " known_hash=\"f28947623e785d3586628c9421b6cb10b8e7f94c103da3fb25369e69dedc3c83\",\n", + " fname=\"ndcs-latest.csv\"\n", + ")\n", + "\n", + "scmdata.ScmRun(cached_fname)" ] }, { @@ -322,7 +1375,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.4" + "version": "3.9.12" } }, "nbformat": 4, diff --git a/setup.cfg b/setup.cfg index a16fe5c9..18bc940d 100644 --- a/setup.cfg +++ b/setup.cfg @@ -63,10 +63,11 @@ plotting = seaborn notebooks = - %(plotting)s - %(optional)s - notebook - ipywidgets + %(plotting)s + %(optional)s + notebook + ipywidgets + pooch tests = codecov diff --git a/src/scmdata/remote.py b/src/scmdata/remote.py index 16db832b..eff80742 100644 --- a/src/scmdata/remote.py +++ b/src/scmdata/remote.py @@ -95,7 +95,7 @@ def __init__(self, base_url: str, filters=None): def _read_api_info(self): facets = _read_api_facets(self.base_url) - self._meta_cols = list(facets.keys()) + self._meta_cols = facets["name"].unique().tolist() def __getattr__(self, item: str): # Proxy ScmRun functions @@ -127,10 +127,8 @@ def _indent(s): def url(self) -> str: opts = self.filter_options() filters = {k: self.filters[k] for k in self.filters.keys() if k in opts} - if len(filters): - query_params = "?" + urllib.parse.urlencode(filters) - else: - query_params = "" + filters["format"] = "csv" + query_params = "?" + urllib.parse.urlencode(filters) return urllib.parse.urljoin(self.base_url, "timeseries") + query_params From af605c8573d27d74dfc032600bf82e125cec6e84 Mon Sep 17 00:00:00 2001 From: Jared Lewis Date: Sat, 21 May 2022 14:30:44 +0200 Subject: [PATCH 19/19] Fix tests --- tests/__init__.py | 0 tests/integration/__init__.py | 0 tests/unit/__init__.py | 0 tests/unit/test_remote.py | 11 +++++++---- 4 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 tests/__init__.py create mode 100644 tests/integration/__init__.py create mode 100644 tests/unit/__init__.py diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/integration/__init__.py b/tests/integration/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/unit/__init__.py b/tests/unit/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/unit/test_remote.py b/tests/unit/test_remote.py index 7bc02476..54aabb96 100644 --- a/tests/unit/test_remote.py +++ b/tests/unit/test_remote.py @@ -157,7 +157,7 @@ def _clear(self): MockRemoteDataset._meta_queries.clear() def _get_data(self, filters): - from conftest import TEST_DATA + from tests.conftest import TEST_DATA if self._side_effect: raise self._side_effect @@ -189,7 +189,7 @@ def test_remote_repr(remote_ds): res = repr(remote_ds) assert re.search(r" \(timeseries:", res) - assert re.search(f"URL: {remote_ds.url()}", res) + assert re.search(f"URL: {re.escape(remote_ds.url())}", res) def test_remote_len(remote_ds): @@ -310,10 +310,13 @@ def test_remote_url(remote_ds): "scenario": "other", } ).url() - assert res == "https://api.example.com/v1/timeseries?variable=test&scenario=other" + assert ( + res + == "https://api.example.com/v1/timeseries?variable=test&scenario=other&format=csv" + ) res = remote_ds.url() - assert res == "https://api.example.com/v1/timeseries" + assert res == "https://api.example.com/v1/timeseries?format=csv" def test_remote_proxy(remote_ds):