|
@@ -2,6 +2,10 @@ import climate_categories as cc
|
|
|
import primap2 as pm2
|
|
|
import xarray as xr
|
|
|
|
|
|
+from src.faostat_data_primap.helper.category_aggregation import (
|
|
|
+ agg_info_fao,
|
|
|
+ agg_info_ipcc2006_primap,
|
|
|
+)
|
|
|
from src.faostat_data_primap.helper.paths import (
|
|
|
downloaded_data_path,
|
|
|
extracted_data_path,
|
|
@@ -29,304 +33,382 @@ def test_conversion_from_FAO_to_IPCC2006_PRIMAP():
|
|
|
|
|
|
|
|
|
ds = ds.drop_sel(source="UNFCCC")
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- agg_info_fao = {
|
|
|
- "category (FAOSTAT)": {
|
|
|
-
|
|
|
-
|
|
|
- "1.A.1.a": {
|
|
|
- "tolerance": 1,
|
|
|
- "sources": [
|
|
|
- "1.A.1.a.i",
|
|
|
- "1.A.1.a.ii",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
- "1.A.1": {
|
|
|
- "tolerance": 0.01,
|
|
|
- "sources": [
|
|
|
- "1.A.1.a",
|
|
|
- "1.A.1.b",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O", "CH4"]},
|
|
|
- },
|
|
|
-
|
|
|
-
|
|
|
- "1.A.2.a": {
|
|
|
- "tolerance": 1,
|
|
|
- "sources": [
|
|
|
- "1.A.2.a.i",
|
|
|
- "1.A.2.a.ii",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
- "1.A.2": {
|
|
|
- "tolerance": 0.01,
|
|
|
- "sources": [
|
|
|
- "1.A.2.a",
|
|
|
- "1.A.2.b",
|
|
|
- "1.A.2.c",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O", "CH4"]},
|
|
|
- },
|
|
|
-
|
|
|
- "1.A.3.a": {
|
|
|
- "tolerance": 1,
|
|
|
- "sources": [
|
|
|
- "1.A.3.a.i",
|
|
|
- "1.A.3.a.ii",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
- "1.A.3": {
|
|
|
- "tolerance": 0.01,
|
|
|
- "sources": [
|
|
|
- "1.A.3.a",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
-
|
|
|
- "1.A.4.a": {
|
|
|
- "tolerance": 1,
|
|
|
- "sources": [
|
|
|
- "1.A.4.a.i",
|
|
|
- "1.A.4.a.ii",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
- "1.A.4": {
|
|
|
- "tolerance": 0.01,
|
|
|
- "sources": [
|
|
|
- "1.A.4.a",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
-
|
|
|
- "1.A.5.a": {
|
|
|
- "tolerance": 1,
|
|
|
- "sources": [
|
|
|
- "1.A.5.a.i",
|
|
|
- "1.A.5.a.ii",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
- "1.A.5": {
|
|
|
- "tolerance": 0.01,
|
|
|
- "sources": [
|
|
|
- "1.A.5.a",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
-
|
|
|
- "1.A.6.a": {
|
|
|
- "tolerance": 1,
|
|
|
- "sources": [
|
|
|
- "1.A.6.a.i",
|
|
|
- "1.A.6.a.ii",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
- "1.A.6": {
|
|
|
- "tolerance": 0.01,
|
|
|
- "sources": [
|
|
|
- "1.A.6.a",
|
|
|
- "1.A.6.b",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O", "CH4"]},
|
|
|
- },
|
|
|
-
|
|
|
- "1.A.7.a": {
|
|
|
- "tolerance": 1,
|
|
|
- "sources": [
|
|
|
- "1.A.7.a.i",
|
|
|
- "1.A.7.a.ii",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
- "1.A.7": {
|
|
|
- "tolerance": 0.01,
|
|
|
- "sources": [
|
|
|
- "1.A.7.a",
|
|
|
- "1.A.7.b",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O", "CH4"]},
|
|
|
- },
|
|
|
-
|
|
|
- "1.A.8.a": {
|
|
|
- "tolerance": 1,
|
|
|
- "sources": [
|
|
|
- "1.A.8.a.i",
|
|
|
- "1.A.8.a.ii",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
- "1.A.8": {
|
|
|
- "tolerance": 0.01,
|
|
|
- "sources": [
|
|
|
- "1.A.8.a",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
-
|
|
|
- "1.A.9.a": {
|
|
|
- "tolerance": 1,
|
|
|
- "sources": [
|
|
|
- "1.A.9.a.i",
|
|
|
- "1.A.9.a.ii",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
- "1.A.9": {
|
|
|
- "tolerance": 0.01,
|
|
|
- "sources": [
|
|
|
- "1.A.9.a",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
-
|
|
|
- "1.A.10.a": {
|
|
|
- "tolerance": 1,
|
|
|
- "sources": [
|
|
|
- "1.A.10.a.i",
|
|
|
- "1.A.10.a.ii",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
- "1.A.10": {
|
|
|
- "tolerance": 0.01,
|
|
|
- "sources": [
|
|
|
- "1.A.10.a",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
-
|
|
|
- "1.A.11.a": {
|
|
|
- "tolerance": 1,
|
|
|
- "sources": [
|
|
|
- "1.A.11.a.i",
|
|
|
- "1.A.11.a.ii",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
- "1.A.11": {
|
|
|
- "tolerance": 0.01,
|
|
|
- "sources": [
|
|
|
- "1.A.11.a",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
-
|
|
|
- "1.A.12.a": {
|
|
|
- "tolerance": 1,
|
|
|
- "sources": [
|
|
|
- "1.A.12.a.i",
|
|
|
- "1.A.12.a.ii",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
- "1.A.12": {
|
|
|
- "tolerance": 0.01,
|
|
|
- "sources": [
|
|
|
- "1.A.12.a",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
- "1.A": {
|
|
|
-
|
|
|
- "tolerance": 1,
|
|
|
- "sources": [
|
|
|
- "1.A.1",
|
|
|
- "1.A.2",
|
|
|
- "1.A.3",
|
|
|
- "1.A.4",
|
|
|
- "1.A.5",
|
|
|
- "1.A.6",
|
|
|
- "1.A.7",
|
|
|
- "1.A.8",
|
|
|
- "1.A.9",
|
|
|
- "1.A.10",
|
|
|
- "1.A.11",
|
|
|
- "1.A.12",
|
|
|
- ],
|
|
|
- },
|
|
|
- "1.B.2": {
|
|
|
- "tolerance": 0.01,
|
|
|
- "sources": [
|
|
|
- "1.B.2.a",
|
|
|
- "1.B.2.b",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
- "1.B": {
|
|
|
- "tolerance": 1,
|
|
|
- "sources": [
|
|
|
- "1.B.1",
|
|
|
- "1.B.2",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["N2O"]},
|
|
|
- },
|
|
|
-
|
|
|
- "1": {
|
|
|
- "tolerance": 0.01,
|
|
|
- "sources": [
|
|
|
- "1.A",
|
|
|
- "1.B",
|
|
|
- ],
|
|
|
- },
|
|
|
- "3": {
|
|
|
-
|
|
|
-
|
|
|
- "tolerance": 2.01,
|
|
|
- "sources": [
|
|
|
- "3.A",
|
|
|
- "3.B",
|
|
|
- "3.C",
|
|
|
- "3.D",
|
|
|
- "3.E",
|
|
|
- "3.F",
|
|
|
- "3.G",
|
|
|
- "3.H",
|
|
|
- "3.I",
|
|
|
- "3.J",
|
|
|
- "3.K",
|
|
|
- "3.L",
|
|
|
-
|
|
|
- "3.N",
|
|
|
- "3.O",
|
|
|
- "3.P",
|
|
|
- "3.Q",
|
|
|
- "3.R",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["CH4", "N2O"]},
|
|
|
- },
|
|
|
- "4": {
|
|
|
- "tolerance": 0.01,
|
|
|
- "sources": [
|
|
|
- "4.A",
|
|
|
- "4.B",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["CO2"]},
|
|
|
- },
|
|
|
- "6.B": {
|
|
|
-
|
|
|
- "tolerance": 1,
|
|
|
- "sources": [
|
|
|
- "6.B.1",
|
|
|
- "6.B.2",
|
|
|
- "6.B.3",
|
|
|
- "6.B.4",
|
|
|
- "6.B.5",
|
|
|
- ],
|
|
|
- "sel": {"variable": ["CH4", "N2O", "CO2"]},
|
|
|
- },
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
ds_checked = ds.pr.add_aggregates_coordinates(agg_info=agg_info_fao)
|
|
|
|
|
|
|
|
@@ -354,91 +436,93 @@ def test_conversion_from_FAO_to_IPCC2006_PRIMAP():
|
|
|
result_if = result.pr.to_interchange_format()
|
|
|
result = pm2.pm2io.from_interchange_format(result_if)
|
|
|
|
|
|
- agg_info = {
|
|
|
- "category (IPCC2006_PRIMAP)": {
|
|
|
- "3.C.1": {
|
|
|
- "sources": ["3.C.1.a", "3.C.1.b", "3.C.1.c"],
|
|
|
- },
|
|
|
- "M.3.C.AG": {
|
|
|
- "sources": [
|
|
|
- "3.C.1.b",
|
|
|
- "3.C.1.c",
|
|
|
- "3.C.4",
|
|
|
- "3.C.5",
|
|
|
- "3.C.6",
|
|
|
- ],
|
|
|
- },
|
|
|
- "M.AG.ELV": {
|
|
|
- "sources": ["M.3.C.AG"],
|
|
|
- },
|
|
|
- "3.C": {
|
|
|
- "sources": [
|
|
|
- "3.C.1",
|
|
|
- "3.C.2",
|
|
|
- "3.C.3",
|
|
|
- "3.C.4",
|
|
|
- "3.C.5",
|
|
|
- "3.C.6",
|
|
|
- "3.C.7",
|
|
|
- ]
|
|
|
- },
|
|
|
-
|
|
|
- "3.A.1.a": {
|
|
|
- "sources": [
|
|
|
- "3.A.1.a.i",
|
|
|
- "3.A.1.a.ii",
|
|
|
- ]
|
|
|
- },
|
|
|
- "3.A.1": {
|
|
|
- "sources": [
|
|
|
- "3.A.1.a",
|
|
|
- "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.a": {
|
|
|
- "sources": [
|
|
|
- "3.A.2.a.i",
|
|
|
- "3.A.2.a.ii",
|
|
|
- ]
|
|
|
- },
|
|
|
- "3.A.2": {
|
|
|
- "sources": [
|
|
|
- "3.A.2.a",
|
|
|
- "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",
|
|
|
- ]
|
|
|
- },
|
|
|
- "3.A": {"sources": ["3.A.1", "3.A.2"]},
|
|
|
- "M.AG": {"sources": ["3.A", "M.AG.ELV"]},
|
|
|
-
|
|
|
-
|
|
|
- "M.LULUCF": {
|
|
|
- "sources": [
|
|
|
- "3.B.1",
|
|
|
- "3.B.2",
|
|
|
- "3.B.3",
|
|
|
- "3.C.1.a",
|
|
|
- ]
|
|
|
- },
|
|
|
- "3": {"sources": ["M.AG", "M.LULUCF"]},
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- result_proc = result.pr.add_aggregates_coordinates(agg_info=agg_info)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ result_proc = result.pr.add_aggregates_coordinates(
|
|
|
+ agg_info=agg_info_ipcc2006_primap
|
|
|
+ )
|
|
|
|
|
|
result_proc_if = result_proc.pr.to_interchange_format()
|
|
|
|