Minimal OpenSCM-Runner example with FaIR#
import openscm_runner
openscm_runner.__version__
'0.13.0'
from pathlib import Path
import matplotlib.pyplot as plt
import numpy as np
from scmdata import ScmRun
from openscm_runner.adapters import FAIR
from openscm_runner.run import run
from openscm_runner.utils import calculate_quantiles
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/database/_database.py:9: TqdmExperimentalWarning: Using `tqdm.autonotebook.tqdm` in notebook mode. Use `tqdm.tqdm` instead to force console mode (e.g. in jupyter console)
import tqdm.autonotebook as tqdman
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/pymagicc/io/base.py:224: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
fair = FAIR()
fair.get_version()
'1.6.4'
input_scenarios = ScmRun(
str(
Path("..")
/ ".."
/ ".."
/ ".."
/ "tests"
/ "test-data"
/ "rcmip_scen_ssp_world_emissions.csv"
),
lowercase_cols=True,
)
input_scenarios.head(30)
time | 2015-01-01 | 2020-01-01 | 2030-01-01 | 2040-01-01 | 2050-01-01 | 2060-01-01 | 2070-01-01 | 2080-01-01 | 2090-01-01 | 2100-01-01 | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
model | region | scenario | unit | variable | ||||||||||
AIM/CGE | World | ssp370 | Mt BC/yr | Emissions|BC | 9.727424 | 10.227893 | 10.687554 | 11.006388 | 10.945712 | 10.581617 | 10.203875 | 9.761072 | 9.449638 | 9.105233 |
kt C2F6/yr | Emissions|C2F6 | 1.570000 | 2.018300 | 1.357400 | 0.934400 | 0.663700 | 0.490500 | 0.379600 | 0.308700 | 0.182500 | 0.182500 | |||
kt C6F14/yr | Emissions|C6F14 | 0.350000 | 0.449891 | 0.302626 | 0.208315 | 0.147921 | 0.109300 | 0.084573 | 0.068818 | 0.040700 | 0.040700 | |||
kt CF4/yr | Emissions|CF4 | 10.869900 | 12.751283 | 10.327405 | 8.776119 | 7.783328 | 7.147934 | 6.741338 | 6.481040 | 6.018345 | 6.018345 | |||
Mt CH4/yr | Emissions|CH4 | 388.072796 | 418.454212 | 471.330793 | 515.545705 | 558.974274 | 602.318529 | 647.129406 | 693.382453 | 735.323193 | 777.732192 | |||
Mt CO/yr | Emissions|CO | 934.349885 | 968.199943 | 985.393828 | 1002.733950 | 996.036314 | 969.819813 | 946.592481 | 926.132789 | 919.418030 | 915.425024 | |||
Mt CO2/yr | Emissions|CO2|MAGICC AFOLU | 3517.440000 | 3875.091863 | 3518.037633 | 3161.907297 | 2889.126278 | 3144.546763 | 3048.513956 | 2843.305300 | 2564.936400 | 2656.121100 | |||
Emissions|CO2|MAGICC Fossil and Industrial | 35635.286298 | 40932.946361 | 49329.321684 | 55336.062530 | 60014.932344 | 63423.820853 | 66993.464611 | 70561.920621 | 75234.113021 | 80069.712021 | ||||
kt HFC125/yr | Emissions|HFC125 | 78.790600 | 154.436090 | 212.358860 | 251.941960 | 282.002550 | 299.827430 | 318.903410 | 340.664240 | 358.674180 | 380.636610 | |||
kt HFC134a/yr | Emissions|HFC134a | 201.953400 | 233.567600 | 199.087200 | 192.274300 | 201.090800 | 203.604500 | 213.079700 | 232.340800 | 254.877700 | 280.732500 | |||
kt HFC143a/yr | Emissions|HFC143a | 32.381000 | 56.247300 | 76.104900 | 93.629800 | 106.882500 | 114.293000 | 123.598200 | 133.430100 | 140.363400 | 148.953400 | |||
kt HFC227ea/yr | Emissions|HFC227ea | 3.663300 | 4.960724 | 5.073230 | 5.083905 | 5.233234 | 4.859732 | 4.580264 | 4.467998 | 4.395552 | 4.400470 | |||
kt HFC23/yr | Emissions|HFC23 | 14.485700 | 2.355200 | 0.527400 | 0.318300 | 0.160300 | 0.084500 | 0.043900 | 0.022700 | 0.011600 | 0.000000 | |||
kt HFC245fa/yr | Emissions|HFC245fa | 11.728500 | 18.894736 | 25.231352 | 31.381222 | 36.911089 | 40.877515 | 45.079665 | 49.711190 | 54.019714 | 58.678425 | |||
kt HFC32/yr | Emissions|HFC32 | 38.579200 | 6.272500 | 1.404600 | 0.847700 | 0.426900 | 0.225000 | 0.116900 | 0.060500 | 0.030900 | 0.000000 | |||
kt HFC4310mee/yr | Emissions|HFC4310mee | 1.151600 | 1.143618 | 0.722052 | 0.575677 | 0.530488 | 0.486157 | 0.464422 | 0.465773 | 0.474246 | 0.491929 | |||
kt N2O/yr | Emissions|N2O | 10900.000000 | 11774.929915 | 13291.805177 | 14526.610299 | 15634.911664 | 16637.955454 | 17624.301293 | 18581.107000 | 19626.758700 | 20654.084200 | |||
Mt NH3/yr | Emissions|NH3 | 65.279703 | 68.740214 | 74.356986 | 78.141369 | 80.714002 | 82.573545 | 83.418569 | 83.671519 | 85.953850 | 88.308379 | |||
Mt NOx/yr | Emissions|NOx | 155.520450 | 166.055266 | 169.680102 | 170.896874 | 169.856025 | 163.489875 | 157.435306 | 151.232142 | 148.066756 | 144.449167 | |||
Mt OC/yr | Emissions|OC | 34.746024 | 35.840262 | 37.482750 | 38.294227 | 38.379225 | 37.542331 | 36.560925 | 35.556500 | 34.750084 | 33.748357 | |||
kt SF6/yr | Emissions|SF6 | 8.020000 | 8.408800 | 8.667200 | 8.707500 | 8.514200 | 8.519300 | 8.589500 | 8.730600 | 9.064400 | 9.521300 | |||
Mt SO2/yr | Emissions|Sulfur | 100.771167 | 98.602158 | 99.221557 | 99.570916 | 99.777851 | 95.882896 | 91.855165 | 87.403154 | 83.616229 | 78.147378 | |||
Mt VOC/yr | Emissions|VOC | 227.244819 | 237.021540 | 246.670646 | 250.865856 | 256.014508 | 252.178651 | 247.398146 | 241.421792 | 235.276703 | 227.919036 | |||
ssp370-lowNTCF-aerchemmip | Mt BC/yr | Emissions|BC | 9.727424 | 9.654149 | 8.585723 | 7.397100 | 5.875750 | 5.492153 | 5.092665 | 4.682260 | 4.333613 | 3.967145 | ||
kt C2F6/yr | Emissions|C2F6 | 1.570000 | 2.018300 | 1.357400 | 0.934400 | 0.663700 | 0.490500 | 0.379600 | 0.308700 | 0.182500 | 0.182500 | |||
kt C6F14/yr | Emissions|C6F14 | 0.350000 | 0.449891 | 0.302626 | 0.208315 | 0.147921 | 0.109300 | 0.084573 | 0.068818 | 0.040700 | 0.040700 | |||
kt CF4/yr | Emissions|CF4 | 10.869900 | 12.751283 | 10.327405 | 8.776119 | 7.783328 | 7.147934 | 6.741338 | 6.481040 | 6.018345 | 6.018345 | |||
Mt CH4/yr | Emissions|CH4 | 388.072796 | 418.454212 | 471.330793 | 515.545705 | 558.974274 | 602.318529 | 647.129406 | 693.382453 | 735.323193 | 777.732192 | |||
Mt CO/yr | Emissions|CO | 934.349885 | 925.476786 | 838.223607 | 732.376446 | 602.469951 | 566.425696 | 532.060408 | 498.984701 | 470.975278 | 438.754040 | |||
Mt CO2/yr | Emissions|CO2|MAGICC AFOLU | 3517.440000 | 3875.091863 | 3518.037633 | 3161.907297 | 2889.126278 | 3144.546763 | 3048.513956 | 2843.305300 | 2564.936400 | 2656.121100 |
res_run = run(
climate_models_cfgs={
"FAIR": [
{}, # passing an empty list of an empty dict will run with defaults
{"q": np.array([0.3, 0.45]), "r0": 30.0, "lambda_global": 0.9},
{"q": np.array([0.35, 0.4]), "r0": 25.0, "lambda_global": 1.1},
],
},
scenarios=input_scenarios,
output_variables=(
"Surface Air Temperature Change",
"Atmospheric Concentrations|CO2",
"Effective Radiative Forcing",
"Effective Radiative Forcing|CO2",
"Effective Radiative Forcing|Aerosols",
"Effective Radiative Forcing|Aerosols|Direct Effect|BC",
"Effective Radiative Forcing|Aerosols|Direct Effect|OC",
"Effective Radiative Forcing|Aerosols|Direct Effect|SOx",
"Effective Radiative Forcing|Aerosols|Direct Effect",
"Effective Radiative Forcing|Aerosols|Indirect Effect",
),
)
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:2632: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.
pd.concat([ret._meta.to_frame(), *to_join_metas]).astype("category")
Note in the plots below that ‘model’ is the IAM that produced the scenario. In all cases, the climate model is FaIR.
res_run.get_unique_meta("climate_model", no_duplicates=True)
'FaIRv1.6.4'
plot_kwargs = dict(
quantiles_plumes=[((0.05, 0.95), 0.5), ((0.5,), 1.0)],
quantile_over="run_id",
hue_var="scenario",
style_var="model",
style_label="IAM",
time_axis="year",
)
ax = plt.figure(figsize=(12, 7)).add_subplot(111)
res_run.filter(variable="Surface Air Temperature Change").plumeplot(
ax=ax, **plot_kwargs
)
ax.axhline(1.1)
ax.axvline(2018)
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:197: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
df.reset_index(inplace=True)
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:197: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
df.reset_index(inplace=True)
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:197: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
df.reset_index(inplace=True)
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:197: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
df.reset_index(inplace=True)
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:197: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
df.reset_index(inplace=True)
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:197: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
df.reset_index(inplace=True)
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:197: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
df.reset_index(inplace=True)
<matplotlib.lines.Line2D at 0x7fa16dab3220>
ax = plt.figure(figsize=(12, 7)).add_subplot(111)
res_run.filter(variable="Atmospheric Concentrations|CO2").plumeplot(
ax=ax, **plot_kwargs
)
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:197: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
df.reset_index(inplace=True)
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:197: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
df.reset_index(inplace=True)
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:197: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
df.reset_index(inplace=True)
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:197: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
df.reset_index(inplace=True)
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:197: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
df.reset_index(inplace=True)
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:197: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
df.reset_index(inplace=True)
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:197: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
df.reset_index(inplace=True)
(<Axes: ylabel='ppm'>,
[<matplotlib.patches.Patch at 0x7fa16de7d310>,
<matplotlib.collections.PolyCollection at 0x7fa16c3dbe20>,
<matplotlib.lines.Line2D at 0x7fa16c3dafa0>,
<matplotlib.patches.Patch at 0x7fa16ddbc9d0>,
<matplotlib.lines.Line2D at 0x7fa16dde1940>,
<matplotlib.lines.Line2D at 0x7fa16dde17c0>,
<matplotlib.lines.Line2D at 0x7fa16de86460>,
<matplotlib.lines.Line2D at 0x7fa16de2cb50>,
<matplotlib.lines.Line2D at 0x7fa16de2caf0>,
<matplotlib.lines.Line2D at 0x7fa16de2c370>,
<matplotlib.lines.Line2D at 0x7fa16de2ccd0>,
<matplotlib.lines.Line2D at 0x7fa16de2cbe0>,
<matplotlib.lines.Line2D at 0x7fa16d677e20>,
<matplotlib.lines.Line2D at 0x7fa16df427f0>,
<matplotlib.patches.Patch at 0x7fa16ddbcf70>,
<matplotlib.lines.Line2D at 0x7fa16c385fd0>,
<matplotlib.lines.Line2D at 0x7fa16d4ad8b0>,
<matplotlib.lines.Line2D at 0x7fa16c389070>,
<matplotlib.lines.Line2D at 0x7fa16c389d00>,
<matplotlib.lines.Line2D at 0x7fa16c389640>])
ax = plt.figure(figsize=(12, 7)).add_subplot(111)
ax, legend_items = res_run.filter(
variable="Effective Radiative Forcing*", scenario="ssp245"
).plumeplot(
quantiles_plumes=[((0.05, 0.95), 0.5), ((0.5,), 1.0)],
quantile_over="run_id",
hue_var="variable",
hue_label="Variable",
style_var="scenario",
style_label="Scenario",
ax=ax,
time_axis="year",
)
ax.legend(handles=legend_items, ncol=2, loc="upper left")
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:197: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
df.reset_index(inplace=True)
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:197: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
df.reset_index(inplace=True)
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:197: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
df.reset_index(inplace=True)
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:197: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
df.reset_index(inplace=True)
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:197: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
df.reset_index(inplace=True)
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:197: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
df.reset_index(inplace=True)
/home/docs/checkouts/readthedocs.org/user_builds/openscm-runner/envs/stable/lib/python3.9/site-packages/scmdata/run.py:197: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
df.reset_index(inplace=True)
<matplotlib.legend.Legend at 0x7fa16dddeca0>
res_run.filter(
variable="Surface Air Temperature Change", year=2100, scenario=["ssp126"]
).values.max()
2.0039648925689164
res_run.filter(
variable="Surface Air Temperature Change", year=2100, scenario=["ssp126"]
).values.min()
1.6255017914411736
res_run.filter(
variable="Surface Air Temperature Change", year=2100, scenario=["ssp370"]
).values.max()
4.64593005355395
res_run.filter(
variable="Surface Air Temperature Change", year=2100, scenario=["ssp370"]
).values.min()
3.9270094948581384
quantiles = calculate_quantiles(res_run, [0.05, 0.17, 0.5, 0.83, 0.95])
quantiles.filter(
variable="Surface Air Temperature Change",
year=2100,
scenario=["ssp126"],
quantile=0.05,
).values[0][0]
1.641021680354161
quantiles.filter(
variable="Surface Air Temperature Change",
year=2100,
scenario=["ssp126"],
quantile=0.95,
).values[0][0]
1.9816384713691297
quantiles.filter(
variable="Surface Air Temperature Change",
year=2100,
scenario=["ssp370"],
quantile=0.05,
).values[0][0]
3.9423565896582753
quantiles.filter(
variable="Surface Air Temperature Change",
year=2100,
scenario=["ssp370"],
quantile=0.95,
).values[0][0]
4.589385092484505