123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- # ---
- # jupyter:
- # jupytext:
- # formats: ipynb,py:percent
- # text_representation:
- # extension: .py
- # format_name: percent
- # format_version: '1.3'
- # jupytext_version: 1.16.5
- # kernelspec:
- # display_name: Python 3 (ipykernel)
- # language: python
- # name: python3
- # ---
- # %%
- import climate_categories as cc
- import plotly.express as px # type: ignore
- import plotly.graph_objects as go # type: ignore
- import primap2 as pm2
- from faostat_data_primap.helper.paths import (
- extracted_data_path,
- )
- # import plotly.graph_objects as go # type: ignore
- # %%
- ds_path = (
- extracted_data_path / "v2024-11-14/FAOSTAT_Agrifood_system_emissions_v2024-11-14.nc"
- )
- ds = pm2.open_dataset(ds_path)
- # %%
- ds
- # %%
- entity = "CO2"
- filtered = (
- ds[entity]
- .pr.loc[
- {
- "area (ISO3)": ["DEU"],
- }
- ]
- .squeeze()
- )
- # %%
- filtered_pandas = filtered.to_dataframe().reset_index()
- # %%
- filtered_pandas
- # %%
- fig = px.area(
- filtered_pandas,
- x="time",
- y="CO2",
- color="category (IPCC2006_PRIMAP)",
- # title="category split"
- )
- fig.update_layout(
- xaxis=dict(rangeslider=dict(visible=True), type="date"),
- legend=dict(orientation="h", yanchor="bottom", y=1.02, xanchor="left", x=0),
- margin=dict(l=0, r=0, t=0, b=0), # distance to next element
- )
- fig.show()
- # %%
- filtered_pandas["category (IPCC2006_PRIMAP)"].unique()
- # %%
- # %%
- categories_cc = cc.IPCC2006_PRIMAP
- # %%
- fig = go.Figure()
- three_a_cats = [
- "3.A",
- "3.A.1",
- "3.A.1.a",
- "3.A.1.a.i",
- "3.A.1.a.ii",
- "3.A.1.b",
- "3.A.1.c",
- "3.A.1.d",
- "3.A.1.e",
- "3.A.1.f",
- "3.A.1.g",
- "3.A.1.h",
- "3.A.1.j",
- "3.A.2",
- "3.A.2.a",
- "3.A.2.a.i",
- "3.A.2.a.ii",
- "3.A.2.b",
- "3.A.2.c",
- "3.A.2.d",
- "3.A.2.e",
- "3.A.2.f",
- "3.A.2.g",
- "3.A.2.h",
- "3.A.2.i",
- "3.A.2.j",
- ]
- three_b_cats = ["3.B.1", "3.B.2", "3.B.3"]
- three_c_cats = [
- "3.C",
- "3.C.1",
- "3.C.1.a",
- "3.C.1.b",
- "3.C.1.c",
- "3.C.4",
- "3.C.5",
- "3.C.6",
- "3.C.7",
- ]
- for cat in three_c_cats:
- filtered_pandas_cat = filtered_pandas.loc[
- filtered_pandas["category (IPCC2006_PRIMAP)"] == cat
- ]
- fig.add_trace(
- go.Scatter(
- x=list(filtered_pandas_cat["time"]),
- y=list(filtered_pandas_cat[entity]),
- # mode=mode,
- marker_symbol="cross",
- marker_size=10,
- name=f"{cat} {categories_cc["3.C.1.b"].title}",
- # line=line_layout,
- # visible=self.source_scenario_visible[source_scenario],
- hovertemplate="%{y:.2e} ",
- )
- )
- fig.update_layout(
- xaxis=dict(
- rangeslider=dict(visible=True, thickness=0.05),
- type="date",
- ),
- yaxis=dict(
- autorange=True,
- ),
- legend=dict(orientation="h", yanchor="bottom", y=1.02, xanchor="left", x=0),
- margin=dict(l=0, r=0, t=0, b=20), # distance to next element
- autosize=True,
- hovermode="x",
- yaxis_title=str(ds[entity].data.units),
- )
- fig.show()
- # %%
- # %%
|