From d1f0564f2eee61478996550a18f6b54c5dd456eb Mon Sep 17 00:00:00 2001 From: Jared Lewis Date: Thu, 21 Sep 2023 14:50:15 +1000 Subject: [PATCH] chore: Type adjustments --- LICENSE | 2 +- docs/source/_static/tables.css | 2 +- docs/source/notebooks/README.md | 4 +-- src/scmdata/groupby.py | 9 +++--- src/scmdata/pyam_compat.py | 2 +- src/scmdata/run.py | 29 +++++++++++-------- .../test_data/rcp26_emissions_capitalised.csv | 2 +- 7 files changed, 27 insertions(+), 23 deletions(-) diff --git a/LICENSE b/LICENSE index c6cef4ad..0ade6405 100644 --- a/LICENSE +++ b/LICENSE @@ -11,4 +11,4 @@ Redistribution and use in source and binary forms, with or without modification, 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/docs/source/_static/tables.css b/docs/source/_static/tables.css index bc0ba087..a2951408 100644 --- a/docs/source/_static/tables.css +++ b/docs/source/_static/tables.css @@ -1,4 +1,4 @@ /* Force wide pandas tables to scroll */ .output.text_html { overflow: scroll; -} \ No newline at end of file +} diff --git a/docs/source/notebooks/README.md b/docs/source/notebooks/README.md index 21027df9..d9497c01 100644 --- a/docs/source/notebooks/README.md +++ b/docs/source/notebooks/README.md @@ -6,6 +6,6 @@ This directory contains notebooks of examples for how to use `scmdata`. We use [Jupytext](https://github.com/mwouts/jupytext) to encode the notebooks as standard .py files. This makes it easier to version control notebooks as you get a clear, meaningful diffs. Jupytext also enables these notebooks -to be edited via Jupyter Lab or Jupyter Notebook. +to be edited via Jupyter Lab or Jupyter Notebook. -As part of the CI, these notebooks are run and checked for any errors. \ No newline at end of file +As part of the CI, these notebooks are run and checked for any errors. diff --git a/src/scmdata/groupby.py b/src/scmdata/groupby.py index a0756d02..9d8fdf1a 100644 --- a/src/scmdata/groupby.py +++ b/src/scmdata/groupby.py @@ -3,7 +3,7 @@ """ import warnings from collections.abc import Iterable -from typing import TYPE_CHECKING, Callable, Iterator, Optional, Sequence, Union +from typing import TYPE_CHECKING, Callable, Generic, Iterator, Optional, Sequence, Union import numpy as np import pandas as pd @@ -12,13 +12,12 @@ from xarray.core.common import ImplementsArrayReduce from scmdata._typing import MetadataValue +from scmdata.run import GenericRun if TYPE_CHECKING: from pandas.core.groupby.generic import DataFrameGroupBy from typing_extensions import Concatenate, ParamSpec - from scmdata.run import GenericRun - P = ParamSpec("P") @@ -36,7 +35,7 @@ def _maybe_wrap_array(original, new_array): return new_array -class RunGroupBy(ImplementsArrayReduce, "Generic[GenericRun]"): +class RunGroupBy(ImplementsArrayReduce, Generic[GenericRun]): """ GroupBy object specialized to grouping ScmRun objects """ @@ -89,7 +88,7 @@ def _try_fill_value(v: MetadataValue) -> MetadataValue: ) yield res - def __iter__(self) -> "Iterator[GenericRun]": + def __iter__(self) -> Iterator[GenericRun]: """ Iterate over the groups """ diff --git a/src/scmdata/pyam_compat.py b/src/scmdata/pyam_compat.py index 33cb3c72..e41a3578 100644 --- a/src/scmdata/pyam_compat.py +++ b/src/scmdata/pyam_compat.py @@ -6,7 +6,7 @@ from dateutil import parser try: - from pyam import IamDataFrame + from pyam import IamDataFrame # type: ignore # mypy can't work out try-except block forces IamDataFrame to be here class LongDatetimeIamDataFrame(IamDataFrame): # type: ignore diff --git a/src/scmdata/run.py b/src/scmdata/run.py index 85f0808c..81abf401 100644 --- a/src/scmdata/run.py +++ b/src/scmdata/run.py @@ -55,7 +55,6 @@ pattern_match, years_match, ) -from .groupby import RunGroupBy from .netcdf import inject_nc_methods from .offsets import generate_range, to_offset from .ops import inject_ops_methods @@ -74,6 +73,8 @@ from numpy.typing import NDArray from typing_extensions import Concatenate, ParamSpec + from scmdata.groupby import RunGroupBy + P = ParamSpec("P") @@ -690,11 +691,11 @@ def _indent(s): def _binary_op( self, - other: Self, + other: Self | pint.Quantity | float | int, f: Callable[[pd.DataFrame, pd.DataFrame], pd.DataFrame], reflexive: bool = False, **kwargs: Any, - ) -> pd.DataFrame: + ) -> Self: if isinstance(other, ScmRun): return NotImplemented @@ -713,10 +714,10 @@ def _binary_op( f"operations with {other_ndim}d data are not supported" ) - def _perform_op(df): + def _perform_op(run: Self) -> Self: if isinstance(other, pint.Quantity): try: - data = df.values * ur(df.get_unique_meta("unit", True)) + data = run.values * ur(run.get_unique_meta("unit", True)) use_pint = True except KeyError: # pragma: no cover # emergency valve raise KeyError( # noqa: TRY200 @@ -724,7 +725,7 @@ def _perform_op(df): "with pint quantities" ) else: - data = df.values + data = run.values use_pint = False res = [] @@ -736,11 +737,11 @@ def _perform_op(df): res_stacked = np.vstack(res) if use_pint: - df._df.values[:] = res_stacked.magnitude.T - df["unit"] = str(res_stacked.units) + run._df.values[:] = res_stacked.magnitude.T + run["unit"] = str(res_stacked.units) else: - df._df.values[:] = res_stacked.T - return df + run._df.values[:] = res_stacked.T + return run return self.copy().groupby("unit").apply(_perform_op) @@ -1299,7 +1300,7 @@ def _day_match(self, values): return day_match(days, values) - def head(self, *args: Any, **kwargs: Any) -> pd.DataFrame[float]: + def head(self, *args: Any, **kwargs: Any) -> pd.DataFrame: """ Return head of :func:`self.timeseries()`. @@ -1318,7 +1319,7 @@ def head(self, *args: Any, **kwargs: Any) -> pd.DataFrame[float]: """ return self.timeseries().head(*args, **kwargs) # type: ignore - def tail(self, *args: Any, **kwargs: Any) -> pd.DataFrame[float]: + def tail(self, *args: Any, **kwargs: Any) -> pd.DataFrame: """ Return tail of :func:`self.timeseries()`. @@ -1941,6 +1942,8 @@ def groupby(self, *group: str | Iterable[str]) -> RunGroupBy[Self]: :class:`RunGroupBy` See the documentation for :class:`RunGroupBy` for more information """ + from .groupby import RunGroupBy + group = self._check_groupby_input(group) return RunGroupBy(self, group) @@ -2028,6 +2031,8 @@ def groupby_all_except(self, *not_group: str) -> RunGroupBy[Self]: :class:`RunGroupBy` See the documentation for :class:`RunGroupBy` for more information """ + from .groupby import RunGroupBy + group = self.get_meta_columns_except(not_group) return RunGroupBy(self, group) diff --git a/tests/test_data/rcp26_emissions_capitalised.csv b/tests/test_data/rcp26_emissions_capitalised.csv index 302105cb..48b547a4 100644 --- a/tests/test_data/rcp26_emissions_capitalised.csv +++ b/tests/test_data/rcp26_emissions_capitalised.csv @@ -3,4 +3,4 @@ IMAGE,RCP26,World,Emissions|Halon1211,kt Halon1211 / yr,unspecified,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 \ No newline at end of file +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