Browse Source

[DATALAD] Recorded changes

Daniel Busch 4 months ago
parent
commit
19d11f9f7e

+ 717 - 0
src/faostat_data_primap/helper/FAO_categorisation_temp.py

@@ -0,0 +1,717 @@
+"""
+Temporary version of FAO categorisation.
+
+Will be imported from climate categories when the FAO categorisation is finished.
+"""
+spec = {
+    "name": "FAO",
+    "title": (
+        "Food and Agriculture Organization of the United "
+        "Nations (FAO) FAOSTAT data set categorisation"
+    ),
+    "comment": "Needed to add FAOSTAT data to PRIMAP-hist",
+    "references": "",
+    "institution": "FAO",
+    "hierarchical": True,
+    "last_update": "2024-12-10",
+    "version": "2024",
+    "total_sum": True,
+    "canonical_top_level_category": "0",
+    "categories": {
+        "0": {
+            "title": "Total",
+            "comment": "All emissions and removals",
+            "children": [["1", "2", "3", "4", "5", "6", "7"]],
+        },
+        "1": {
+            "title": "Crops",
+            "comment": "Crops",
+            "info": {"gases": ["CH4", "N2O"]},
+            "children": [["1.A", "1.B"]],
+        },
+        "2": {
+            "title": "Energy use in agriculture",
+            "comment": "Energy use in agriculture",
+            "info": {"gases": ["CH4", "N2O", "CO2"]},
+            "children": [["2.A", "2.B", "2.C", "2.D", "2.E"]],
+        },
+        "3": {
+            "title": "Livestock",
+            "comment": "Livestock",
+            "info": {"gases": ["CH4", "N2O"]},
+            "children": [
+                [
+                    "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.M",
+                    "3.N",
+                    "3.O",
+                    "3.P",
+                    "3.Q",
+                    "3.R",
+                ]
+            ],
+        },
+        "1.A": {
+            "title": "All crops",
+            "comment": "All crops",
+            "info": {"gases": ["CH4", "N2O"]},
+            "children": [
+                [
+                    "1.A.1",
+                    "1.A.10",
+                    "1.A.11",
+                    "1.A.12",
+                    "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.1": {
+            "title": "Wheat",
+            "comment": "Wheat",
+            "info": {"gases": ["CH4", "N2O"]},
+            "children": [["1.A.1.a", "1.A.1.b"]],
+        },
+        "1.A.1.a.i": {
+            "title": "Wheat crop residues direct emissions",
+            "comment": "Wheat crop residues direct emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.1.a.ii": {
+            "title": "Wheat crop residues indirect emissions",
+            "comment": "Wheat crop residues indirect emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.1.a": {
+            "title": "Wheat crop residues",
+            "comment": "Wheat crop residues",
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.1.a.i", "1.A.1.a.ii"]],
+        },
+        "1.A.1.b": {
+            "title": "Wheat burning crop residues",
+            "comment": "Wheat burning crop residues",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "1.A.2": {
+            "title": "Rice",
+            "comment": "Rice",
+            "info": {"gases": ["CH4", "N2O"]},
+            "children": [["1.A.2.a", "1.A.2.b", "1.A.2.c"]],
+        },
+        "1.A.2.a.i": {
+            "title": "Rice crop residues direct emissions",
+            "comment": "Rice crop residues direct emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.2.a.ii": {
+            "title": "Rice crop residues indirect emissions",
+            "comment": "Rice crop residues indirect emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.2.a": {
+            "title": "Rice crop residues",
+            "comment": "Rice crop residues",
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.2.a.i", "1.A.2.a.ii"]],
+        },
+        "1.A.2.b": {
+            "title": "Rice burning crop residues",
+            "comment": "Rice burning crop residues",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "1.A.2.c": {
+            "title": "Rice cultivation",
+            "comment": "Rice cultivation",
+            "info": {"gases": ["CH4"]},
+        },
+        "1.A.3": {
+            "title": "Potatoes",
+            "comment": "Potatoes",
+            "info": {"gases": "N2O"},
+            "children": [["1.A.3.a"]],
+        },
+        "1.A.3.a.i": {
+            "title": "Potatoes crop residues direct emissions",
+            "comment": "Potatoes crop residues direct emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.3.a.ii": {
+            "title": "Potatoes crop residues indirect emissions",
+            "comment": "Potatoes crop residues indirect emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.3.a": {
+            "title": "Potatoes crop residues",
+            "comment": "Potatoes crop residues",
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.3.a.i", "1.A.3.a.ii"]],
+        },
+        "1.A.4": {
+            "title": "Millet",
+            "comment": "Millet",
+            "info": {"gases": "N2O"},
+            "children": [["1.A.4.a"]],
+        },
+        "1.A.4.a.i": {
+            "title": "Millet crop residues direct emissions",
+            "comment": "Millet crop residues direct emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.4.a.ii": {
+            "title": "Millet crop residues indirect emissions",
+            "comment": "Millet crop residues indirect emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.4.a": {
+            "title": "Millet crop residues",
+            "comment": "Millet crop residues",
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.4.a.i", "1.A.4.a.ii"]],
+        },
+        "1.A.5": {
+            "title": "Barley",
+            "comment": "Barley",
+            "info": {"gases": "N2O"},
+            "children": [["1.A.5.a"]],
+        },
+        "1.A.5.a.i": {
+            "title": "Barley crop residues direct emissions",
+            "comment": "Barley crop residues direct emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.5.a.ii": {
+            "title": "Barley crop residues indirect emissions",
+            "comment": "Barley crop residues indirect emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.5.a": {
+            "title": "Barley crop residues",
+            "comment": "Barley crop residues",
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.5.a.i", "1.A.5.a.ii"]],
+        },
+        "1.A.6": {
+            "title": "Maize (corn)",
+            "comment": "Maize (corn)",
+            "info": {"gases": ["CH4", "N2O"]},
+            "children": [["1.A.6.a", "1.A.6.b"]],
+        },
+        "1.A.6.a.i": {
+            "title": "Maize (corn) crop residues direct emissions",
+            "comment": "Maize (corn) crop residues direct emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.6.a.ii": {
+            "title": "Maize (corn) crop residues indirect emissions",
+            "comment": "Maize (corn) crop residues indirect emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.6.a": {
+            "title": "Maize (corn) crop residues",
+            "comment": "Maize (corn) crop residues",
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.6.a.i", "1.A.6.a.ii"]],
+        },
+        "1.A.6.b": {
+            "title": "Maize (corn) burning crop residues",
+            "comment": "Maize (corn) burning crop residues",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "1.A.7": {
+            "title": "Sugar cane",
+            "comment": "Sugar cane",
+            "info": {"gases": ["CH4", "N2O"]},
+            "children": [["1.A.7.a", "1.A.7.b"]],
+        },
+        "1.A.7.a.i": {
+            "title": "Sugar cane crop residues direct emissions",
+            "comment": "Sugar cane crop residues direct emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.7.a.ii": {
+            "title": "Sugar cane crop residues indirect emissions",
+            "comment": "Sugar cane crop residues indirect emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.7.a": {
+            "title": "Sugar cane crop residues",
+            "comment": "Sugar cane crop residues",
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.7.a.i", "1.A.7.a.ii"]],
+        },
+        "1.A.7.b": {
+            "title": "Sugar cane burning crop residues",
+            "comment": "Sugar cane burning crop residues",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "1.A.8": {
+            "title": "Beans, dry",
+            "comment": "Beans, dry",
+            "info": {"gases": "N2O"},
+            "children": [["1.A.8.a"]],
+        },
+        "1.A.8.a.i": {
+            "title": "Beans, dry crop residues direct emissions",
+            "comment": "Beans, dry crop residues direct emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.8.a.ii": {
+            "title": "Beans, dry crop residues indirect emissions",
+            "comment": "Beans, dry crop residues indirect emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.8.a": {
+            "title": "Beans, dry crop residues",
+            "comment": "Beans, dry crop residues",
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.8.a.i", "1.A.8.a.ii"]],
+        },
+        "1.A.9": {
+            "title": "Oats",
+            "comment": "Oats",
+            "info": {"gases": "N2O"},
+            "children": [["1.A.9.a"]],
+        },
+        "1.A.9.a.i": {
+            "title": "Oats crop residues direct emissions",
+            "comment": "Oats crop residues direct emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.9.a.ii": {
+            "title": "Oats crop residues indirect emissions",
+            "comment": "Oats crop residues indirect emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.9.a": {
+            "title": "Oats crop residues",
+            "comment": "Oats crop residues",
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.9.a.i", "1.A.9.a.ii"]],
+        },
+        "1.A.10": {
+            "title": "Rye",
+            "comment": "Rye",
+            "info": {"gases": "N2O"},
+            "children": [["1.A.10.a"]],
+        },
+        "1.A.10.a.i": {
+            "title": "Rye crop residues direct emissions",
+            "comment": "Rye crop residues direct emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.10.a.ii": {
+            "title": "Rye crop residues indirect emissions",
+            "comment": "Rye crop residues indirect emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.10.a": {
+            "title": "Rye crop residues",
+            "comment": "Rye crop residues",
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.10.a.i", "1.A.10.a.ii"]],
+        },
+        "1.A.11": {
+            "title": "Sorghum",
+            "comment": "Sorghum",
+            "info": {"gases": "N2O"},
+            "children": [["1.A.11.a"]],
+        },
+        "1.A.11.a.i": {
+            "title": "Sorghum crop residues direct emissions",
+            "comment": "Sorghum crop residues direct emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.11.a.ii": {
+            "title": "Sorghum crop residues indirect emissions",
+            "comment": "Sorghum crop residues indirect emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.11.a": {
+            "title": "Sorghum crop residues",
+            "comment": "Sorghum crop residues",
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.11.a.i", "1.A.11.a.ii"]],
+        },
+        "1.A.12": {
+            "title": "Soya beans",
+            "comment": "Soya beans",
+            "info": {"gases": "N2O"},
+            "children": [["1.A.12.a"]],
+        },
+        "1.A.12.a.i": {
+            "title": "Soya beans crop residues direct emissions",
+            "comment": "Soya beans crop residues direct emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.12.a.ii": {
+            "title": "Soya beans crop residues indirect emissions",
+            "comment": "Soya beans crop residues indirect emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.A.12.a": {
+            "title": "Soya beans crop residues",
+            "comment": "Soya beans crop residues",
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.12.a.i", "1.A.12.a.ii"]],
+        },
+        "1.B": {
+            "title": "Synthetic fertilisers",
+            "comment": "Synthetic fertilisers",
+            "info": {"gases": ["N2O"]},
+            "children": [["1.B.1", "1.B.2"]],
+        },
+        "1.B.1": {
+            "title": "Direct emissions",
+            "comment": "Direct emissions",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.B.2": {
+            "title": "Indirect emissions",
+            "comment": "Indirect emissions",
+            "info": {"gases": ["N2O"]},
+            "children": [["1.B.2.a", "1.B.2.b"]],
+        },
+        "1.B.2.a": {
+            "title": "Indirect emissions that volatilise",
+            "comment": "Indirect emissions that volatilise",
+            "info": {"gases": ["N2O"]},
+        },
+        "1.B.2.b": {
+            "title": "Indirect emissions that leach",
+            "comment": "Indirect emissions that leach",
+            "info": {"gases": ["N2O"]},
+        },
+        "2.A": {
+            "title": "Natural gas",
+            "comment": "Natural gas",
+            "info": {"gases": ["CH4", "N2O", "CO2"]},
+        },
+        "2.B": {
+            "title": "Electricity",
+            "comment": "Electricity",
+            "info": {"gases": ["CH4", "N2O", "CO2"]},
+        },
+        "2.C": {
+            "title": "Coal",
+            "comment": "Coal",
+            "info": {"gases": ["CH4", "N2O", "CO2"]},
+        },
+        "2.D": {
+            "title": "Heat",
+            "comment": "Heat",
+            "info": {"gases": ["CH4", "N2O", "CO2"]},
+        },
+        "2.E": {
+            "title": "Petroleum",
+            "comment": "Petroleum",
+            "info": {"gases": ["CH4", "N2O", "CO2"]},
+        },
+        "3.A": {
+            "title": "Asses",
+            "comment": "Asses",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.B": {
+            "title": "Camels",
+            "comment": "Camels",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.C": {
+            "title": "Cattle, dairy",
+            "comment": "Cattle, dairy",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.D": {
+            "title": "Cattle, non-dairy",
+            "comment": "Cattle, non-dairy",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.E": {
+            "title": "Chickens, broilers",
+            "comment": "Chickens, broilers",
+            "info": {"gases": ["N2O"]},
+        },
+        "3.F": {
+            "title": "Chickens, layers",
+            "comment": "Chickens, layers",
+            "info": {"gases": ["N2O"]},
+        },
+        "3.G": {
+            "title": "Goats",
+            "comment": "Goats",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.H": {
+            "title": "Horses",
+            "comment": "Horses",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.I": {
+            "title": "Mules and hinnies",
+            "comment": "Mules and hinnies",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.J": {
+            "title": "Sheep",
+            "comment": "Sheep",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.K": {
+            "title": "Llamas",
+            "comment": "Llamas",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.L": {"title": "Chickens", "comment": "Chickens", "info": {"gases": ["N2O"]}},
+        "3.M": {
+            "title": "Poultry Birds",
+            "comment": "Poultry Birds",
+            "info": {"gases": ["N2O"]},
+        },
+        "3.N": {
+            "title": "Buffalo",
+            "comment": "Buffalo",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.O": {"title": "Ducks", "comment": "Ducks", "info": {"gases": ["N2O"]}},
+        "3.P": {
+            "title": "Swine, breeding",
+            "comment": "Swine, breeding",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.Q": {
+            "title": "Swine, market",
+            "comment": "Swine, market",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.R": {"title": "Turkeys", "comment": "Turkeys", "info": {"gases": ["N2O"]}},
+        "4": {
+            "title": "Carbon stock change in forests",
+            "comment": "Carbon stock change in forests",
+            "info": {"gases": "CO2"},
+            "children": [["4.A", "4.B"]],
+        },
+        "4.A": {
+            "title": "Forest land",
+            "comment": "Forest land",
+            "info": {"gases": "CO2"},
+        },
+        "4.B": {
+            "title": "Net Forest conversion",
+            "comment": "Net Forest conversion",
+            "info": {"gases": "CO2"},
+        },
+        "5": {
+            "title": "Drained organic soils",
+            "comment": "Drained organic soils",
+            "info": {"gases": "CO2"},
+            "children": [["5.A", "5.B"]],
+        },
+        "5.A": {
+            "title": "Drained grassland",
+            "comment": "Drained grassland",
+            "info": {"gases": ["CO2", "N2O"]},
+        },
+        "5.B": {
+            "title": "Drained cropland",
+            "comment": "Drained cropland",
+            "info": {"gases": ["CO2", "N2O"]},
+        },
+        "6.A.1": {
+            "title": "Humid tropical forests",
+            "comment": "Humid tropical forests",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+        },
+        "6.A.2": {
+            "title": "Other forests",
+            "comment": "Other forests",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+        },
+        "6.A": {
+            "title": "Forest fires",
+            "comment": "Forest fires",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+            "children": [["6.A.1", "6.A.2"]],
+        },
+        "6.B.1": {
+            "title": "Closed shrubland",
+            "comment": "Closed shrubland",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+        },
+        "6.B.2": {
+            "title": "Grassland",
+            "comment": "Grassland",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+        },
+        "6.B.3": {
+            "title": "Open shrubland",
+            "comment": "Open shrubland",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+        },
+        "6.B.4": {
+            "title": "Savanna",
+            "comment": "Savanna",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+        },
+        "6.B.5": {
+            "title": "Woody savanna",
+            "comment": "Woody savanna",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+        },
+        "6.B": {
+            "title": "Savanna fires",
+            "comment": "Savanna fires",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+            "children": [["6.B.1", "6.B.2", "6.B.3", "6.B.4", "6.B.5"]],
+        },
+        "6.C": {
+            "title": "Fires in organic soils",
+            "comment": "Fires in organic soils",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+        },
+        "6": {
+            "title": "Fires",
+            "comment": "Fires",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+            "children": [["6.A", "6.B", "6.C"]],
+        },
+        "7.A": {
+            "title": "Fertilizers Manufacturing",
+            "comment": "Fertilizers Manufacturing",
+            "info": {"gases": ["CO2", "N2O", "KYOTOGHG (AR5GWP100)"]},
+        },
+        "7.B": {
+            "title": "Food Transport",
+            "comment": "Food Transport",
+            "info": {
+                "gases": [
+                    "CO2",
+                    "CH4",
+                    "N2O",
+                    "KYOTOGHG (AR5GWP100)",
+                    "FGASES (AR5GWP100)",
+                ]
+            },
+        },
+        "7.C": {
+            "title": "Food Retail",
+            "comment": "Food Retail",
+            "info": {
+                "gases": [
+                    "CO2",
+                    "CH4",
+                    "N2O",
+                    "KYOTOGHG (AR5GWP100)",
+                    "FGASES (AR5GWP100)",
+                ]
+            },
+        },
+        "7.D": {
+            "title": "Food Household Consumption",
+            "comment": "Food Household Consumption",
+            "info": {
+                "gases": [
+                    "CO2",
+                    "CH4",
+                    "N2O",
+                    "KYOTOGHG (AR5GWP100)",
+                    "FGASES (AR5GWP100)",
+                ]
+            },
+        },
+        "7.E": {
+            "title": "Solid Food Waste",
+            "comment": "Solid Food Waste",
+            "info": {"gases": ["KYOTOGHG (AR5GWP100)", "CH4"]},
+        },
+        "7.F": {
+            "title": "Domestic Wastewater",
+            "comment": "Domestic Wastewater",
+            "info": {"gases": ["KYOTOGHG (AR5GWP100)", "CH4", "N2O"]},
+        },
+        "7.G": {
+            "title": "Industrial Wastewater",
+            "comment": "Industrial Wastewater",
+            "info": {"gases": ["KYOTOGHG (AR5GWP100)", "CH4", "N2O"]},
+        },
+        "7.H": {
+            "title": "Incineration",
+            "comment": "Incineration",
+            "info": {"gases": ["CO2", "KYOTOGHG (AR5GWP100)"]},
+        },
+        "7.I": {
+            "title": "Pre- and Post- Production",
+            "comment": "Pre- and Post- Production",
+            "info": {
+                "gases": [
+                    "CO2",
+                    "CH4",
+                    "N2O",
+                    "KYOTOGHG (AR5GWP100)",
+                    "FGASES (AR5GWP100)",
+                ]
+            },
+        },
+        "7.K": {
+            "title": "Energy Use (Pre- and Post-Production)",
+            "comment": "Energy Use (Pre- and Post-Production)",
+            "info": {"gases": ["CO2", "CH4", "N2O", "KYOTOGHG (AR5GWP100)"]},
+        },
+        "7.L": {
+            "title": "Agrifood Systems Waste Disposal",
+            "comment": "Agrifood Systems Waste Disposal",
+            "info": {"gases": ["CO2", "CH4", "N2O", "KYOTOGHG (AR5GWP100)"]},
+        },
+        "7.M": {
+            "title": "Cold Chain F-Gas",
+            "comment": "Cold Chain F-Gas",
+            "info": {"gases": ["FGASES (AR5GWP100)"]},
+        },
+        "7": {
+            "title": "Pre and post agricultural production",
+            "comment": "Pre and post agricultural production",
+            "info": {
+                "gases": [
+                    "CO2",
+                    "CH4",
+                    "N2O",
+                    "KYOTOGHG (AR5GWP100)",
+                    "FGASES (AR5GWP100)",
+                ]
+            },
+            "children": [
+                [
+                    "7.A",
+                    "7.B",
+                    "7.C",
+                    "7.D",
+                    "7.E",
+                    "7.F",
+                    "7.G",
+                    "7.H",
+                    "7.I",
+                    "7.K",
+                    "7.L",
+                    "7.M",
+                ]
+            ],
+        },
+    },
+}

+ 82 - 0
src/faostat_data_primap/helper/definitions.py

@@ -137,6 +137,86 @@ read_config_all: Any = {
                     "(Synthetic fertilizers)"
                 ): "N2O",
             },
+            "category_mapping": {
+                "Barley - Crop residues (Emissions N2O)": "1.A.5.a",
+                "Barley - Crop residues (Direct emissions N2O)": "1.A.5.a.i",
+                "Barley - Crop residues (Indirect emissions N2O)": "1.A.5.a.ii",
+                "Maize (corn) - Crop residues (Emissions N2O)": "1.A.6.a",
+                "Maize (corn) - Crop residues (Direct emissions N2O)": "1.A.6.a.i",
+                "Maize (corn) - Crop residues (Indirect emissions N2O)": "1.A.6.a.ii",
+                "Maize (corn) - Burning crop residues (Emissions N2O)": "1.A.6.b",
+                "Maize (corn) - Burning crop residues (Emissions CH4)": "1.A.6.b",
+                "Sugar cane - Crop residues (Emissions N2O)": "1.A.7.a",
+                "Sugar cane - Burning crop residues (Emissions N2O)": "1.A.7.b",
+                "Sugar cane - Burning crop residues (Emissions CH4)": "1.A.7.b",
+                "Millet - Crop residues (Emissions N2O)": "1.A.4.a",
+                "Millet - Crop residues (Direct emissions N2O)": "1.A.4.a.i",
+                "Millet - Crop residues (Indirect emissions N2O)": "1.A.4.a.ii",
+                "Potatoes - Crop residues (Emissions N2O)": "1.A.3.a",
+                "Potatoes - Crop residues (Direct emissions N2O)": "1.A.3.a.i",
+                "Potatoes - Crop residues (Indirect emissions N2O)": "1.A.3.a.ii",
+                "Rice - Crop residues (Emissions N2O)": "1.A.2.a",
+                "Rice - Crop residues (Direct emissions N2O)": "1.A.2.a.i",
+                "Rice - Crop residues (Indirect emissions N2O)": "1.A.2.a.ii",
+                "Rice - Burning crop residues (Emissions N2O)": "1.A.2.b",
+                "Rice - Burning crop residues (Emissions CH4)": "1.A.2.b",
+                "Rice - Rice cultivation (Emissions CH4)": "1.A.2.c",
+                "Wheat - Crop residues (Emissions N2O)": "1.A.1.a",
+                "Wheat - Crop residues (Direct emissions N2O)": "1.A.1.a.i",
+                "Wheat - Crop residues (Indirect emissions N2O)": "1.A.1.a.ii",
+                "Wheat - Burning crop residues (Emissions N2O)": "1.A.1.b",
+                "Wheat - Burning crop residues (Emissions CH4)": "1.A.1.b",
+                "All Crops - Crops total (Emissions N2O)": "1.A",
+                "All Crops - Crops total (Emissions CH4)": "1.A",
+                (
+                    "Nutrient nitrogen N (total) - Synthetic "
+                    "fertilizers (Emissions N2O)"
+                ): "1.B",
+                (
+                    "Nutrient nitrogen N (total) - "
+                    "Synthetic fertilizers (Direct emissions N2O)"
+                ): "1.B.1",
+                (
+                    "Nutrient nitrogen N (total) - "
+                    "Indirect emissions (N2O that leaches) "
+                    "(Synthetic fertilizers)"
+                ): "1.B.2.b",
+                (
+                    "Nutrient nitrogen N (total) - "
+                    "Indirect emissions (N2O that volatilises) "
+                    "(Synthetic fertilizers)"
+                ): "1.B.2.a",
+                "Beans, dry - Crop residues (Emissions N2O)": "1.A.8.a",
+                "Beans, dry - Crop residues (Direct emissions N2O)": "1.A.8.a.i",
+                "Beans, dry - Crop residues (Indirect emissions N2O)": "1.A.8.a.ii",
+                "Oats - Crop residues (Emissions N2O)": "1.A.9.a",
+                "Oats - Crop residues (Direct emissions N2O)": "1.A.9.a.i",
+                "Oats - Crop residues (Indirect emissions N2O)": "1.A.9.a.ii",
+                "Rye - Crop residues (Emissions N2O)": "1.A.10.a",
+                "Rye - Crop residues (Direct emissions N2O)": "1.A.10.a.i",
+                "Rye - Crop residues (Indirect emissions N2O)": "1.A.10.a.ii",
+                "Sorghum - Crop residues (Emissions N2O)": "1.A.11.a",
+                "Sorghum - Crop residues (Direct emissions N2O)": "1.A.11.a.i",
+                "Sorghum - Crop residues (Indirect emissions N2O)": "1.A.11.a.ii",
+                "Soya beans - Crop residues (Emissions N2O)": "1.A.12.a",
+                "Soya beans - Crop residues (Direct emissions N2O)": "1.A.12.a.i",
+                "Soya beans - Crop residues (Indirect emissions N2O)": "1.A.12.a.ii",
+                "Maize (corn) - Crops total (Emissions N2O)": "1.A.6",
+                "Maize (corn) - Crops total (Emissions CH4)": "1.A.6",
+                "Sugar cane - Crops total (Emissions N2O)": "1.A.7",
+                "Sugar cane - Crops total (Emissions CH4)": "1.A.7",
+                "Rice - Crops total (Emissions N2O)": "1.A.2",
+                "Rice - Crops total (Emissions CH4)": "1.A.2",
+                "Wheat - Crops total (Emissions N2O)": "1.A.1",
+                "Wheat - Crops total (Emissions CH4)": "1.A.1",
+            },
+            "items-elements_to_remove": [
+                "All Crops - Crop residues (Emissions N2O)",
+                "All Crops - Crop residues (Direct emissions N2O)",
+                "All Crops - Crop residues (Indirect emissions N2O)",
+                "All Crops - Burning crop residues (Emissions N2O)",
+                "All Crops - Burning crop residues (Emissions CH4)",
+            ],
             "columns_to_drop": [
                 "Element",
                 "Element Code",
@@ -436,3 +516,5 @@ domains_and_releases_to_read = {
         ("pre_post_agricultural_production", "2024-11-14"),
     ]
 }
+
+FAO_climate_categories = []

+ 27 - 2
src/faostat_data_primap/read.py

@@ -11,6 +11,9 @@ from faostat_data_primap.helper.definitions import (
     config_to_if,
     read_config_all,
 )
+
+# todo replace with FAO climate categories once it's done
+from faostat_data_primap.helper.FAO_categorisation_temp import spec
 from faostat_data_primap.helper.paths import (
     downloaded_data_path,
     extracted_data_path,
@@ -60,7 +63,8 @@ def get_latest_release(domain_path: pathlib.Path) -> str:
     return sorted(all_releases, reverse=True)[0]
 
 
-def read_data(
+# TODO split out functions to avoid PLR0915
+def read_data(  # noqa: PLR0915
     read_path: pathlib.Path,
     domains_and_releases_to_read: list[tuple[str, str]],
     save_path: pathlib.Path,
@@ -117,7 +121,28 @@ def read_data(
             raise ValueError(msg)
 
         # create category column (combination of Item and Element works best)
-        df_domain["category"] = df_domain["Item"] + "-" + df_domain["Element"]
+        df_domain["Item - Element"] = df_domain["Item"] + " - " + df_domain["Element"]
+        df_domain["category"] = df_domain["Item - Element"].map(
+            read_config["category_mapping"]
+        )
+        # some rows can only be removed by Item - Element column
+        if "items-elements_to_remove" in read_config.keys():
+            df_domain = df_domain[
+                ~df_domain["Item - Element"].isin(
+                    read_config["items-elements_to_remove"]
+                )
+            ]
+        # check if all Item-Element combinations are now be converted to category codes
+        fao_categories = list(spec["categories"].keys())
+        unknown_categories = [
+            i for i in df_domain.category.unique() if i not in fao_categories
+        ]
+        if unknown_categories:
+            msg = (
+                f"Not all categories are part of FAO categorisation. "
+                f"Check mapping for {unknown_categories}"
+            )
+            raise ValueError(msg)
 
         # drop columns we don't need
         df_domain = df_domain.drop(

+ 484 - 252
tests/unit/FAO.py

@@ -18,465 +18,697 @@ spec = {
         "0": {
             "title": "Total",
             "comment": "All emissions and removals",
-            "children": [["1", "2", "3"]],
+            "children": [["1", "2", "3", "4", "5", "6", "7"]],
         },
         "1": {
-            "title": "Farm gate",
-            "comment": "Farm gate",
-            "info": {"gases": ["CO2", "CH4", "N2O"]},
-            "children": [["1.A", "1.B", "1.C"]],
-        },
-        "1.A": {
             "title": "Crops",
             "comment": "Crops",
-            "alternative_codes": ["1A"],
             "info": {"gases": ["CH4", "N2O"]},
-            "children": [["1.A.1", "1.A.2"]],
+            "children": [["1.A", "1.B"]],
         },
-        "1.A.1": {
-            "title": "Crops (excluding synthetic fertilisers)",
-            "comment": "Crops (excluding synthetic fertilisers)",
-            "alternative_codes": ["1A1"],
+        "2": {
+            "title": "Energy use in agriculture",
+            "comment": "Energy use in agriculture",
+            "info": {"gases": ["CH4", "N2O", "CO2"]},
+            "children": [["2.A", "2.B", "2.C", "2.D", "2.E"]],
+        },
+        "3": {
+            "title": "Livestock",
+            "comment": "Livestock",
             "info": {"gases": ["CH4", "N2O"]},
             "children": [
                 [
-                    "1.A.1.a",
-                    "1.A.1.b",
-                    "1.A.1.c",
-                    "1.A.1.d",
-                    "1.A.1.e",
-                    "1.A.1.f",
-                    "1.A.1.g",
-                    "1.A.1.h",
-                    "1.A.1.i",
-                    "1.A.1.j",
-                    "1.A.1.k",
-                    "1.A.1.l",
+                    "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.M",
+                    "3.N",
+                    "3.O",
+                    "3.P",
+                    "3.Q",
+                    "3.R",
                 ]
             ],
         },
-        "1.A.1.a": {
+        "1.A": {
+            "title": "All crops",
+            "comment": "All crops",
+            "info": {"gases": ["CH4", "N2O"]},
+            "children": [
+                [
+                    "1.A.1",
+                    "1.A.10",
+                    "1.A.11",
+                    "1.A.12",
+                    "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.1": {
             "title": "Wheat",
             "comment": "Wheat",
-            "alternative_codes": ["1A1a"],
             "info": {"gases": ["CH4", "N2O"]},
-            "children": [["1.A.1.a.i", "1.A.1.a.ii"]],
+            "children": [["1.A.1.a", "1.A.1.b"]],
         },
         "1.A.1.a.i": {
-            "title": "Wheat crop residues",
-            "comment": "Wheat crop residues",
-            "alternative_codes": ["1A1ai"],
-            "info": {"gases": ["CH4", "N2O"]},
-            "children": [["1.A.1.a.i.1", "1.A.1.a.i.2"]],
-        },
-        "1.A.1.a.i.1": {
             "title": "Wheat crop residues direct emissions",
             "comment": "Wheat crop residues direct emissions",
-            "alternative_codes": ["1A1ai"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.a.i.2": {
+        "1.A.1.a.ii": {
             "title": "Wheat crop residues indirect emissions",
             "comment": "Wheat crop residues indirect emissions",
-            "alternative_codes": ["1A1ai"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.a.ii": {
+        "1.A.1.a": {
+            "title": "Wheat crop residues",
+            "comment": "Wheat crop residues",
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.1.a.i", "1.A.1.a.ii"]],
+        },
+        "1.A.1.b": {
             "title": "Wheat burning crop residues",
             "comment": "Wheat burning crop residues",
-            "alternative_codes": ["1A1aii"],
             "info": {"gases": ["CH4", "N2O"]},
         },
-        "1.A.1.b": {
+        "1.A.2": {
             "title": "Rice",
             "comment": "Rice",
-            "alternative_codes": ["1A1b"],
             "info": {"gases": ["CH4", "N2O"]},
+            "children": [["1.A.2.a", "1.A.2.b", "1.A.2.c"]],
         },
-        "1.A.1.b.i": {
-            "title": "Rice crop residues",
-            "comment": "Rice crop residues",
-            "alternative_codes": ["1A1bi"],
-            "info": {"gases": ["CH4", "N2O"]},
-            "children": [["1.A.1.b.i.1", "1.A.1.b.i.2"]],
-        },
-        "1.A.1.b.i.1": {
+        "1.A.2.a.i": {
             "title": "Rice crop residues direct emissions",
             "comment": "Rice crop residues direct emissions",
-            "alternative_codes": ["1A1bi1"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.b.i.2": {
+        "1.A.2.a.ii": {
             "title": "Rice crop residues indirect emissions",
             "comment": "Rice crop residues indirect emissions",
-            "alternative_codes": ["1A1bi2"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.b.ii": {
-            "alternative_codes": ["1A1bii"],
+        "1.A.2.a": {
+            "title": "Rice crop residues",
+            "comment": "Rice crop residues",
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.2.a.i", "1.A.2.a.ii"]],
+        },
+        "1.A.2.b": {
             "title": "Rice burning crop residues",
             "comment": "Rice burning crop residues",
             "info": {"gases": ["CH4", "N2O"]},
         },
-        "1.A.1.b.iii": {
+        "1.A.2.c": {
             "title": "Rice cultivation",
             "comment": "Rice cultivation",
-            "alternative_codes": ["1A1biii"],
             "info": {"gases": ["CH4"]},
         },
-        "1.A.1.c": {
+        "1.A.3": {
             "title": "Potatoes",
             "comment": "Potatoes",
-            "alternative_codes": ["1A1c"],
-            "info": {"gases": ["CH4", "N2O"]},
-        },
-        "1.A.1.c.i": {
-            "title": "Potatoes crop residues",
-            "comment": "Potatoes crop residues",
-            "alternative_codes": ["1A1ci"],
-            "info": {"gases": ["CH4", "N2O"]},
-            "children": [["1.A.1.c.i.1", "1.A.1.c.i.2"]],
+            "info": {"gases": "N2O"},
+            "children": [["1.A.3.a"]],
         },
-        "1.A.1.c.i.1": {
+        "1.A.3.a.i": {
             "title": "Potatoes crop residues direct emissions",
             "comment": "Potatoes crop residues direct emissions",
-            "alternative_codes": ["1A1ci1"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.c.i.2": {
+        "1.A.3.a.ii": {
             "title": "Potatoes crop residues indirect emissions",
             "comment": "Potatoes crop residues indirect emissions",
-            "alternative_codes": ["1A1ci2"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.d": {
+        "1.A.3.a": {
+            "title": "Potatoes crop residues",
+            "comment": "Potatoes crop residues",
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.3.a.i", "1.A.3.a.ii"]],
+        },
+        "1.A.4": {
             "title": "Millet",
             "comment": "Millet",
-            "alternative_codes": "1A1d",
-            "children": [["1.A.1.d.i"]],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": "N2O"},
+            "children": [["1.A.4.a"]],
         },
-        "1.A.1.d.i.1": {
+        "1.A.4.a.i": {
             "title": "Millet crop residues direct emissions",
             "comment": "Millet crop residues direct emissions",
-            "alternative_codes": ["1A1di1"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.d.i.2": {
+        "1.A.4.a.ii": {
             "title": "Millet crop residues indirect emissions",
             "comment": "Millet crop residues indirect emissions",
-            "alternative_codes": ["1A1di1"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.d.i": {
+        "1.A.4.a": {
             "title": "Millet crop residues",
             "comment": "Millet crop residues",
-            "alternative_codes": ["1A1di"],
-            "info": {"gases": ["CH4", "N2O"]},
-            "children": [["1.A.1.d.i.1", "1.A.1.d.i.2"]],
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.4.a.i", "1.A.4.a.ii"]],
         },
-        "1.A.1.e": {
+        "1.A.5": {
             "title": "Barley",
             "comment": "Barley",
-            "alternative_codes": "1A1e",
-            "children": [["1.A.1.e.i"]],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": "N2O"},
+            "children": [["1.A.5.a"]],
         },
-        "1.A.1.e.i.1": {
+        "1.A.5.a.i": {
             "title": "Barley crop residues direct emissions",
             "comment": "Barley crop residues direct emissions",
-            "alternative_codes": ["1A1ei1"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.e.i.2": {
+        "1.A.5.a.ii": {
             "title": "Barley crop residues indirect emissions",
             "comment": "Barley crop residues indirect emissions",
-            "alternative_codes": ["1A1ei1"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.e.i": {
+        "1.A.5.a": {
             "title": "Barley crop residues",
             "comment": "Barley crop residues",
-            "alternative_codes": ["1A1ei"],
-            "info": {"gases": ["CH4", "N2O"]},
-            "children": [["1.A.1.e.i.1", "1.A.1.e.i.2"]],
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.5.a.i", "1.A.5.a.ii"]],
         },
-        "1.A.1.f": {
+        "1.A.6": {
             "title": "Maize (corn)",
             "comment": "Maize (corn)",
-            "alternative_codes": "1A1f",
-            "children": [["1.A.1.f.i"]],
             "info": {"gases": ["CH4", "N2O"]},
+            "children": [["1.A.6.a", "1.A.6.b"]],
         },
-        "1.A.1.f.i.1": {
+        "1.A.6.a.i": {
             "title": "Maize (corn) crop residues direct emissions",
             "comment": "Maize (corn) crop residues direct emissions",
-            "alternative_codes": ["1A1fi1"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.f.i.2": {
+        "1.A.6.a.ii": {
             "title": "Maize (corn) crop residues indirect emissions",
             "comment": "Maize (corn) crop residues indirect emissions",
-            "alternative_codes": ["1A1fi1"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.f.i": {
+        "1.A.6.a": {
             "title": "Maize (corn) crop residues",
             "comment": "Maize (corn) crop residues",
-            "alternative_codes": ["1A1fi"],
-            "info": {"gases": ["CH4", "N2O"]},
-            "children": [["1.A.1.f.i.1", "1.A.1.f.i.2"]],
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.6.a.i", "1.A.6.a.ii"]],
         },
-        "1.A.1.f.ii": {
+        "1.A.6.b": {
             "title": "Maize (corn) burning crop residues",
             "comment": "Maize (corn) burning crop residues",
-            "alternative_codes": ["1A1fii"],
             "info": {"gases": ["CH4", "N2O"]},
         },
-        "1.A.1.g": {
+        "1.A.7": {
             "title": "Sugar cane",
             "comment": "Sugar cane",
-            "alternative_codes": "1A1g",
-            "children": [["1.A.1.g.i"]],
             "info": {"gases": ["CH4", "N2O"]},
+            "children": [["1.A.7.a", "1.A.7.b"]],
         },
-        "1.A.1.g.i.1": {
+        "1.A.7.a.i": {
             "title": "Sugar cane crop residues direct emissions",
             "comment": "Sugar cane crop residues direct emissions",
-            "alternative_codes": ["1A1gi1"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.g.i.2": {
+        "1.A.7.a.ii": {
             "title": "Sugar cane crop residues indirect emissions",
             "comment": "Sugar cane crop residues indirect emissions",
-            "alternative_codes": ["1A1gi1"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.g.i": {
+        "1.A.7.a": {
             "title": "Sugar cane crop residues",
             "comment": "Sugar cane crop residues",
-            "alternative_codes": ["1A1gi"],
-            "info": {"gases": ["CH4", "N2O"]},
-            "children": [["1.A.1.g.i.1", "1.A.1.g.i.2"]],
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.7.a.i", "1.A.7.a.ii"]],
         },
-        "1.A.1.g.ii": {
+        "1.A.7.b": {
             "title": "Sugar cane burning crop residues",
             "comment": "Sugar cane burning crop residues",
-            "alternative_codes": ["1A1gii"],
             "info": {"gases": ["CH4", "N2O"]},
         },
-        "1.A.1.h": {
+        "1.A.8": {
             "title": "Beans, dry",
             "comment": "Beans, dry",
-            "alternative_codes": "1A1h",
-            "children": [["1.A.1.h.i"]],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": "N2O"},
+            "children": [["1.A.8.a"]],
         },
-        "1.A.1.h.i.1": {
+        "1.A.8.a.i": {
             "title": "Beans, dry crop residues direct emissions",
             "comment": "Beans, dry crop residues direct emissions",
-            "alternative_codes": ["1A1hi1"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.h.i.2": {
+        "1.A.8.a.ii": {
             "title": "Beans, dry crop residues indirect emissions",
             "comment": "Beans, dry crop residues indirect emissions",
-            "alternative_codes": ["1A1hi1"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.h.i": {
+        "1.A.8.a": {
             "title": "Beans, dry crop residues",
             "comment": "Beans, dry crop residues",
-            "alternative_codes": ["1A1hi"],
-            "info": {"gases": ["CH4", "N2O"]},
-            "children": [["1.A.1.h.i.1", "1.A.1.h.i.2"]],
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.8.a.i", "1.A.8.a.ii"]],
         },
-        "1.A.1.i": {
+        "1.A.9": {
             "title": "Oats",
             "comment": "Oats",
-            "alternative_codes": "1A1i",
-            "children": [["1.A.1.i.i"]],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": "N2O"},
+            "children": [["1.A.9.a"]],
         },
-        "1.A.1.i.i.1": {
+        "1.A.9.a.i": {
             "title": "Oats crop residues direct emissions",
             "comment": "Oats crop residues direct emissions",
-            "alternative_codes": ["1A1ii1"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.i.i.2": {
+        "1.A.9.a.ii": {
             "title": "Oats crop residues indirect emissions",
             "comment": "Oats crop residues indirect emissions",
-            "alternative_codes": ["1A1ii1"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.i.i": {
+        "1.A.9.a": {
             "title": "Oats crop residues",
             "comment": "Oats crop residues",
-            "alternative_codes": ["1A1ii"],
-            "info": {"gases": ["CH4", "N2O"]},
-            "children": [["1.A.1.i.i.1", "1.A.1.i.i.2"]],
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.9.a.i", "1.A.9.a.ii"]],
         },
-        "1.A.1.j": {
+        "1.A.10": {
             "title": "Rye",
             "comment": "Rye",
-            "alternative_codes": "1A1j",
-            "children": [["1.A.1.j.i"]],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": "N2O"},
+            "children": [["1.A.10.a"]],
         },
-        "1.A.1.j.i.1": {
+        "1.A.10.a.i": {
             "title": "Rye crop residues direct emissions",
             "comment": "Rye crop residues direct emissions",
-            "alternative_codes": ["1A1ji1"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.j.i.2": {
+        "1.A.10.a.ii": {
             "title": "Rye crop residues indirect emissions",
             "comment": "Rye crop residues indirect emissions",
-            "alternative_codes": ["1A1ji1"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.j.i": {
+        "1.A.10.a": {
             "title": "Rye crop residues",
             "comment": "Rye crop residues",
-            "alternative_codes": ["1A1ji"],
-            "info": {"gases": ["CH4", "N2O"]},
-            "children": [["1.A.1.j.i.1", "1.A.1.j.i.2"]],
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.10.a.i", "1.A.10.a.ii"]],
         },
-        "1.A.1.k": {
+        "1.A.11": {
             "title": "Sorghum",
             "comment": "Sorghum",
-            "alternative_codes": "1A1k",
-            "children": [["1.A.1.k.i"]],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": "N2O"},
+            "children": [["1.A.11.a"]],
         },
-        "1.A.1.k.i.1": {
+        "1.A.11.a.i": {
             "title": "Sorghum crop residues direct emissions",
             "comment": "Sorghum crop residues direct emissions",
-            "alternative_codes": ["1A1ki1"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.k.i.2": {
+        "1.A.11.a.ii": {
             "title": "Sorghum crop residues indirect emissions",
             "comment": "Sorghum crop residues indirect emissions",
-            "alternative_codes": ["1A1ki1"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.k.i": {
+        "1.A.11.a": {
             "title": "Sorghum crop residues",
             "comment": "Sorghum crop residues",
-            "alternative_codes": ["1A1ki"],
-            "info": {"gases": ["CH4", "N2O"]},
-            "children": [["1.A.1.k.i.1", "1.A.1.k.i.2"]],
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.11.a.i", "1.A.11.a.ii"]],
         },
-        "1.A.1.l": {
+        "1.A.12": {
             "title": "Soya beans",
             "comment": "Soya beans",
-            "alternative_codes": "1A1l",
-            "children": [["1.A.1.l.i"]],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": "N2O"},
+            "children": [["1.A.12.a"]],
         },
-        "1.A.1.l.i.1": {
+        "1.A.12.a.i": {
             "title": "Soya beans crop residues direct emissions",
             "comment": "Soya beans crop residues direct emissions",
-            "alternative_codes": ["1A1li1"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.l.i.2": {
+        "1.A.12.a.ii": {
             "title": "Soya beans crop residues indirect emissions",
             "comment": "Soya beans crop residues indirect emissions",
-            "alternative_codes": ["1A1li1"],
-            "info": {"gases": ["CH4", "N2O"]},
+            "info": {"gases": ["N2O"]},
         },
-        "1.A.1.l.i": {
+        "1.A.12.a": {
             "title": "Soya beans crop residues",
             "comment": "Soya beans crop residues",
-            "alternative_codes": ["1A1li"],
-            "info": {"gases": ["CH4", "N2O"]},
-            "children": [["1.A.1.l.i.1", "1.A.1.l.i.2"]],
+            "info": {"gases": ["N2O"]},
+            "children": [["1.A.12.a.i", "1.A.12.a.ii"]],
         },
-        "1.A.2": {
+        "1.B": {
             "title": "Synthetic fertilisers",
             "comment": "Synthetic fertilisers",
-            "alternative_codes": ["1A2"],
             "info": {"gases": ["N2O"]},
+            "children": [["1.B.1", "1.B.2"]],
         },
-        "1.A.2.a": {
+        "1.B.1": {
             "title": "Direct emissions",
             "comment": "Direct emissions",
-            "alternative_codes": ["1A2a"],
             "info": {"gases": ["N2O"]},
         },
-        "1.A.2.b": {
+        "1.B.2": {
             "title": "Indirect emissions",
             "comment": "Indirect emissions",
-            "alternative_codes": ["1A2b"],
             "info": {"gases": ["N2O"]},
+            "children": [["1.B.2.a", "1.B.2.b"]],
         },
-        "1.A.2.b.i": {
-            "title": "Indirect emissions volatilising",
-            "comment": "Indirect emissions volatilising",
-            "alternative_codes": ["1A2bi"],
+        "1.B.2.a": {
+            "title": "Indirect emissions that volatilise",
+            "comment": "Indirect emissions that volatilise",
             "info": {"gases": ["N2O"]},
         },
-        "1.A.2.b.ii": {
-            "title": "Indirect emissions leaching",
-            "comment": "Indirect emissions leaching",
-            "alternative_codes": ["1A2bii"],
+        "1.B.2.b": {
+            "title": "Indirect emissions that leach",
+            "comment": "Indirect emissions that leach",
             "info": {"gases": ["N2O"]},
         },
-        "1.B": {
-            "title": "Energy use in agriculture",
-            "comment": "Energy use in agriculture",
-            "alternative_codes": ["1C"],
-            "info": {"gases": ["CO2", "CH4", "N2O"]},
-            "children": [["1.B.1", "1.B.2", "1.B.3", "1.B.4", "1.B.5"]],
-        },
-        "1.B.1": {
+        "2.A": {
             "title": "Natural gas",
             "comment": "Natural gas",
-            "alternative_codes": ["1B1"],
-            "info": {"gases": ["CO2", "CH4", "N2O"]},
+            "info": {"gases": ["CH4", "N2O", "CO2"]},
         },
-        "1.B.2": {
+        "2.B": {
             "title": "Electricity",
             "comment": "Electricity",
-            "alternative_codes": ["1B2"],
-            "info": {"gases": ["CO2", "CH4", "N2O"]},
+            "info": {"gases": ["CH4", "N2O", "CO2"]},
         },
-        "1.B.3": {
+        "2.C": {
             "title": "Coal",
             "comment": "Coal",
-            "alternative_codes": ["1B3"],
-            "info": {"gases": ["CO2", "CH4", "N2O"]},
+            "info": {"gases": ["CH4", "N2O", "CO2"]},
         },
-        "1.B.4": {
+        "2.D": {
             "title": "Heat",
             "comment": "Heat",
-            "alternative_codes": ["1B4"],
-            "info": {"gases": ["CO2", "CH4", "N2O"]},
+            "info": {"gases": ["CH4", "N2O", "CO2"]},
         },
-        "1.B.5": {
+        "2.E": {
             "title": "Petroleum",
             "comment": "Petroleum",
-            "alternative_codes": ["1B5"],
-            "info": {"gases": ["CO2", "CH4", "N2O"]},
+            "info": {"gases": ["CH4", "N2O", "CO2"]},
         },
-        "1.C": {
-            "title": "Livestock",
-            "comment": "Livestock",
-            "alternative_codes": ["1B"],
-            "info": {"gases": ["CO2", "CH4", "N2O"]},
+        "3.A": {
+            "title": "Asses",
+            "comment": "Asses",
+            "info": {"gases": ["CH4", "N2O"]},
         },
-        "2": {
-            "title": "Land use and change",
-            "comment": "Land use and change",
-            "info": {"gases": ["CO2", "CH4", "N2O"]},
+        "3.B": {
+            "title": "Camels",
+            "comment": "Camels",
+            "info": {"gases": ["CH4", "N2O"]},
         },
-        "3": {
+        "3.C": {
+            "title": "Cattle, dairy",
+            "comment": "Cattle, dairy",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.D": {
+            "title": "Cattle, non-dairy",
+            "comment": "Cattle, non-dairy",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.E": {
+            "title": "Chickens, broilers",
+            "comment": "Chickens, broilers",
+            "info": {"gases": ["N2O"]},
+        },
+        "3.F": {
+            "title": "Chickens, layers",
+            "comment": "Chickens, layers",
+            "info": {"gases": ["N2O"]},
+        },
+        "3.G": {
+            "title": "Goats",
+            "comment": "Goats",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.H": {
+            "title": "Horses",
+            "comment": "Horses",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.I": {
+            "title": "Mules and hinnies",
+            "comment": "Mules and hinnies",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.J": {
+            "title": "Sheep",
+            "comment": "Sheep",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.K": {
+            "title": "Llamas",
+            "comment": "Llamas",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.L": {"title": "Chickens", "comment": "Chickens", "info": {"gases": ["N2O"]}},
+        "3.M": {
+            "title": "Poultry Birds",
+            "comment": "Poultry Birds",
+            "info": {"gases": ["N2O"]},
+        },
+        "3.N": {
+            "title": "Buffalo",
+            "comment": "Buffalo",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.O": {"title": "Ducks", "comment": "Ducks", "info": {"gases": ["N2O"]}},
+        "3.P": {
+            "title": "Swine, breeding",
+            "comment": "Swine, breeding",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.Q": {
+            "title": "Swine, market",
+            "comment": "Swine, market",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.R": {"title": "Turkeys", "comment": "Turkeys", "info": {"gases": ["N2O"]}},
+        "4": {
+            "title": "Carbon stock change in forests",
+            "comment": "Carbon stock change in forests",
+            "info": {"gases": "CO2"},
+            "children": [["4.A", "4.B"]],
+        },
+        "4.A": {
+            "title": "Forest land",
+            "comment": "Forest land",
+            "info": {"gases": "CO2"},
+        },
+        "4.B": {
+            "title": "Net Forest conversion",
+            "comment": "Net Forest conversion",
+            "info": {"gases": "CO2"},
+        },
+        "5": {
+            "title": "Drained organic soils",
+            "comment": "Drained organic soils",
+            "info": {"gases": "CO2"},
+            "children": [["5.A", "5.B"]],
+        },
+        "5.A": {
+            "title": "Drained grassland",
+            "comment": "Drained grassland",
+            "info": {"gases": ["CO2", "N2O"]},
+        },
+        "5.B": {
+            "title": "Drained cropland",
+            "comment": "Drained cropland",
+            "info": {"gases": ["CO2", "N2O"]},
+        },
+        "6.A.1": {
+            "title": "Humid tropical forests",
+            "comment": "Humid tropical forests",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+        },
+        "6.A.2": {
+            "title": "Other forests",
+            "comment": "Other forests",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+        },
+        "6.A": {
+            "title": "Forest fires",
+            "comment": "Forest fires",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+            "children": [["6.A.1", "6.A.2"]],
+        },
+        "6.B.1": {
+            "title": "Closed shrubland",
+            "comment": "Closed shrubland",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+        },
+        "6.B.2": {
+            "title": "Grassland",
+            "comment": "Grassland",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+        },
+        "6.B.3": {
+            "title": "Open shrubland",
+            "comment": "Open shrubland",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+        },
+        "6.B.4": {
+            "title": "Savanna",
+            "comment": "Savanna",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+        },
+        "6.B.5": {
+            "title": "Woody savanna",
+            "comment": "Woody savanna",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+        },
+        "6.B": {
+            "title": "Savanna fires",
+            "comment": "Savanna fires",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+            "children": [["6.B.1", "6.B.2", "6.B.3", "6.B.4", "6.B.5"]],
+        },
+        "6.C": {
+            "title": "Fires in organic soils",
+            "comment": "Fires in organic soils",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+        },
+        "6": {
+            "title": "Fires",
+            "comment": "Fires",
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+            "children": [["6.A", "6.B", "6.C"]],
+        },
+        "7.A": {
+            "title": "Fertilizers Manufacturing",
+            "comment": "Fertilizers Manufacturing",
+            "info": {"gases": ["CO2", "N2O", "KYOTOGHG (AR5GWP100)"]},
+        },
+        "7.B": {
+            "title": "Food Transport",
+            "comment": "Food Transport",
+            "info": {
+                "gases": [
+                    "CO2",
+                    "CH4",
+                    "N2O",
+                    "KYOTOGHG (AR5GWP100)",
+                    "FGASES (AR5GWP100)",
+                ]
+            },
+        },
+        "7.C": {
+            "title": "Food Retail",
+            "comment": "Food Retail",
+            "info": {
+                "gases": [
+                    "CO2",
+                    "CH4",
+                    "N2O",
+                    "KYOTOGHG (AR5GWP100)",
+                    "FGASES (AR5GWP100)",
+                ]
+            },
+        },
+        "7.D": {
+            "title": "Food Household Consumption",
+            "comment": "Food Household Consumption",
+            "info": {
+                "gases": [
+                    "CO2",
+                    "CH4",
+                    "N2O",
+                    "KYOTOGHG (AR5GWP100)",
+                    "FGASES (AR5GWP100)",
+                ]
+            },
+        },
+        "7.E": {
+            "title": "Solid Food Waste",
+            "comment": "Solid Food Waste",
+            "info": {"gases": ["KYOTOGHG (AR5GWP100)", "CH4"]},
+        },
+        "7.F": {
+            "title": "Domestic Wastewater",
+            "comment": "Domestic Wastewater",
+            "info": {"gases": ["KYOTOGHG (AR5GWP100)", "CH4", "N2O"]},
+        },
+        "7.G": {
+            "title": "Industrial Wastewater",
+            "comment": "Industrial Wastewater",
+            "info": {"gases": ["KYOTOGHG (AR5GWP100)", "CH4", "N2O"]},
+        },
+        "7.H": {
+            "title": "Incineration",
+            "comment": "Incineration",
+            "info": {"gases": ["CO2", "KYOTOGHG (AR5GWP100)"]},
+        },
+        "7.I": {
+            "title": "Pre- and Post- Production",
+            "comment": "Pre- and Post- Production",
+            "info": {
+                "gases": [
+                    "CO2",
+                    "CH4",
+                    "N2O",
+                    "KYOTOGHG (AR5GWP100)",
+                    "FGASES (AR5GWP100)",
+                ]
+            },
+        },
+        "7.K": {
+            "title": "Energy Use (Pre- and Post-Production)",
+            "comment": "Energy Use (Pre- and Post-Production)",
+            "info": {"gases": ["CO2", "CH4", "N2O", "KYOTOGHG (AR5GWP100)"]},
+        },
+        "7.L": {
+            "title": "Agrifood Systems Waste Disposal",
+            "comment": "Agrifood Systems Waste Disposal",
+            "info": {"gases": ["CO2", "CH4", "N2O", "KYOTOGHG (AR5GWP100)"]},
+        },
+        "7.M": {
+            "title": "Cold Chain F-Gas",
+            "comment": "Cold Chain F-Gas",
+            "info": {"gases": ["FGASES (AR5GWP100)"]},
+        },
+        "7": {
             "title": "Pre and post agricultural production",
             "comment": "Pre and post agricultural production",
-            "info": {"gases": ["CO2", "CH4", "N2O"]},
+            "info": {
+                "gases": [
+                    "CO2",
+                    "CH4",
+                    "N2O",
+                    "KYOTOGHG (AR5GWP100)",
+                    "FGASES (AR5GWP100)",
+                ]
+            },
+            "children": [
+                [
+                    "7.A",
+                    "7.B",
+                    "7.C",
+                    "7.D",
+                    "7.E",
+                    "7.F",
+                    "7.G",
+                    "7.H",
+                    "7.I",
+                    "7.K",
+                    "7.L",
+                    "7.M",
+                ]
+            ],
         },
     },
 }

+ 841 - 161
tests/unit/FAO.yaml

@@ -1,5 +1,6 @@
 name: FAO
-title: Food and Agriculture Organization of the United Nations (FAO) FAOSTAT data set categorisation
+title: Food and Agriculture Organization of the United Nations (FAO) FAOSTAT data
+  set categorisation
 comment: Needed to add FAOSTAT data to PRIMAP-hist
 references: ''
 institution: FAO
@@ -16,243 +17,922 @@ categories:
     - - '1'
       - '2'
       - '3'
+      - '4'
+      - '5'
+      - '6'
+      - '7'
   '1':
-    title: Farm gate
-    comment: Farm gate
+    title: Crops
+    comment: Crops
     info:
       gases:
-        - CO2
-        - CH4
-        - N2O
+      - CH4
+      - N2O
     children:
-      - - 1.A
-        - 1.B
-        - 1.C
-  '1.A':
-    title: Crops
-    comment: Crops
-    alternative_codes:
-      - 1A
-    info:
-      gases:
-        - CH4
-        - N2O
-    children:
-      - - 1.A.1
-        - 1.A.2
-  '1.A.1':
-    title: Crops (excluding synthetic fertilisers)
-    comment: Crops (excluding synthetic fertilisers)
-    alternative_codes:
-      - 1A1
-    info:
-      gases:
-        - CH4
-        - N2O
-    children:
-      - - 1.A.1.a
-        - 1.A.1.b
-        - 1.A.1.c
-        - 1.A.1.d
-        - 1.A.1.e
-        - 1.A.1.f
-        - 1.A.1.g
-        - 1.A.1.h
-        - 1.A.1.i
-        - 1.A.1.j
-        - 1.A.1.k
-        - 1.A.1.l
-  '1.A.1.a':
-    title: Wheat
-    comment: Wheat
-    alternative_codes:
-      - 1A1a
+    - - 1.A
+      - 1.B
+  '2':
+    title: Energy use in agriculture
+    comment: Energy use in agriculture
     info:
       gases:
-        - CH4
-        - N2O
+      - CH4
+      - N2O
+      - CO2
     children:
-      - - 1.A.1.a.i
-        - 1.A.1.a.ii
-  '1.A.1.a.i':
-    title: Wheat crop residues
-    comment: Wheat crop residues
-    alternative_codes:
-      - 1A1ai
+    - - 2.A
+      - 2.B
+      - 2.C
+      - 2.D
+      - 2.E
+  '3':
+    title: Livestock
+    comment: Livestock
     info:
       gases:
-        - CH4
-        - N2O
+      - CH4
+      - N2O
     children:
-      - - 1.A.1.a.i.1
-        - 1.A.1.a.i.2
-  '1.A.1.a.i.1':
+    - - 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.M
+      - 3.N
+      - 3.O
+      - 3.P
+      - 3.Q
+      - 3.R
+  1.A:
+    title: All crops
+    comment: All crops
+    info:
+      gases:
+      - CH4
+      - N2O
+    children:
+    - - 1.A.1
+      - 1.A.10
+      - 1.A.11
+      - 1.A.12
+      - 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.1:
+    title: Wheat
+    comment: Wheat
+    info:
+      gases:
+      - CH4
+      - N2O
+    children:
+    - - 1.A.1.a
+      - 1.A.1.b
+  1.A.1.a.i:
     title: Wheat crop residues direct emissions
     comment: Wheat crop residues direct emissions
-    alternative_codes:
-      - 1A1ai
     info:
       gases:
-        - CH4
-        - N2O
-  '1.A.1.a.i.2':
+      - N2O
+  1.A.1.a.ii:
     title: Wheat crop residues indirect emissions
     comment: Wheat crop residues indirect emissions
-    alternative_codes:
-      - 1A1ai
     info:
       gases:
-        - CH4
-        - N2O
-  '1.A.1.a.ii':
+      - N2O
+  1.A.1.a:
+    title: Wheat crop residues
+    comment: Wheat crop residues
+    info:
+      gases:
+      - N2O
+    children:
+    - - 1.A.1.a.i
+      - 1.A.1.a.ii
+  1.A.1.b:
     title: Wheat burning crop residues
     comment: Wheat burning crop residues
-    alternative_codes:
-      - 1A1aii
     info:
       gases:
-        - CH4
-        - N2O
-  '1.A.1.b':
+      - CH4
+      - N2O
+  1.A.2:
     title: Rice
     comment: Rice
-    alternative_codes:
-      - 1A1b
     info:
       gases:
-        - CH4
-        - N2O
-  '1.A.1.c':
+      - CH4
+      - N2O
+    children:
+    - - 1.A.2.a
+      - 1.A.2.b
+      - 1.A.2.c
+  1.A.2.a.i:
+    title: Rice crop residues direct emissions
+    comment: Rice crop residues direct emissions
+    info:
+      gases:
+      - N2O
+  1.A.2.a.ii:
+    title: Rice crop residues indirect emissions
+    comment: Rice crop residues indirect emissions
+    info:
+      gases:
+      - N2O
+  1.A.2.a:
+    title: Rice crop residues
+    comment: Rice crop residues
+    info:
+      gases:
+      - N2O
+    children:
+    - - 1.A.2.a.i
+      - 1.A.2.a.ii
+  1.A.2.b:
+    title: Rice burning crop residues
+    comment: Rice burning crop residues
+    info:
+      gases:
+      - CH4
+      - N2O
+  1.A.2.c:
+    title: Rice cultivation
+    comment: Rice cultivation
+    info:
+      gases:
+      - CH4
+  1.A.3:
     title: Potatoes
     comment: Potatoes
-    alternative_codes:
-      - 1A1c
+    info:
+      gases: N2O
+    children:
+    - - 1.A.3.a
+  1.A.3.a.i:
+    title: Potatoes crop residues direct emissions
+    comment: Potatoes crop residues direct emissions
     info:
       gases:
-        - CH4
-        - N2O
-  '1.A.1.d':
+      - N2O
+  1.A.3.a.ii:
+    title: Potatoes crop residues indirect emissions
+    comment: Potatoes crop residues indirect emissions
+    info:
+      gases:
+      - N2O
+  1.A.3.a:
+    title: Potatoes crop residues
+    comment: Potatoes crop residues
+    info:
+      gases:
+      - N2O
+    children:
+    - - 1.A.3.a.i
+      - 1.A.3.a.ii
+  1.A.4:
     title: Millet
     comment: Millet
-    alternative_codes:
-      - 1A1d
+    info:
+      gases: N2O
+    children:
+    - - 1.A.4.a
+  1.A.4.a.i:
+    title: Millet crop residues direct emissions
+    comment: Millet crop residues direct emissions
+    info:
+      gases:
+      - N2O
+  1.A.4.a.ii:
+    title: Millet crop residues indirect emissions
+    comment: Millet crop residues indirect emissions
+    info:
+      gases:
+      - N2O
+  1.A.4.a:
+    title: Millet crop residues
+    comment: Millet crop residues
     info:
       gases:
-        - CH4
-        - N2O
-  '1.A.1.e':
+      - N2O
+    children:
+    - - 1.A.4.a.i
+      - 1.A.4.a.ii
+  1.A.5:
     title: Barley
     comment: Barley
-    alternative_codes:
-      - 1A1e
+    info:
+      gases: N2O
+    children:
+    - - 1.A.5.a
+  1.A.5.a.i:
+    title: Barley crop residues direct emissions
+    comment: Barley crop residues direct emissions
+    info:
+      gases:
+      - N2O
+  1.A.5.a.ii:
+    title: Barley crop residues indirect emissions
+    comment: Barley crop residues indirect emissions
+    info:
+      gases:
+      - N2O
+  1.A.5.a:
+    title: Barley crop residues
+    comment: Barley crop residues
     info:
       gases:
-        - CH4
-        - N2O
-  '1.A.1.f':
+      - N2O
+    children:
+    - - 1.A.5.a.i
+      - 1.A.5.a.ii
+  1.A.6:
     title: Maize (corn)
     comment: Maize (corn)
-    alternative_codes:
-      - 1A1f
     info:
       gases:
-        - CH4
-        - N2O
-  '1.A.1.g':
+      - CH4
+      - N2O
+    children:
+    - - 1.A.6.a
+      - 1.A.6.b
+  1.A.6.a.i:
+    title: Maize (corn) crop residues direct emissions
+    comment: Maize (corn) crop residues direct emissions
+    info:
+      gases:
+      - N2O
+  1.A.6.a.ii:
+    title: Maize (corn) crop residues indirect emissions
+    comment: Maize (corn) crop residues indirect emissions
+    info:
+      gases:
+      - N2O
+  1.A.6.a:
+    title: Maize (corn) crop residues
+    comment: Maize (corn) crop residues
+    info:
+      gases:
+      - N2O
+    children:
+    - - 1.A.6.a.i
+      - 1.A.6.a.ii
+  1.A.6.b:
+    title: Maize (corn) burning crop residues
+    comment: Maize (corn) burning crop residues
+    info:
+      gases:
+      - CH4
+      - N2O
+  1.A.7:
     title: Sugar cane
     comment: Sugar cane
-    alternative_codes:
-      - 1A1g
     info:
       gases:
-        - CH4
-        - N2O
-  '1.A.1.h':
+      - CH4
+      - N2O
+    children:
+    - - 1.A.7.a
+      - 1.A.7.b
+  1.A.7.a.i:
+    title: Sugar cane crop residues direct emissions
+    comment: Sugar cane crop residues direct emissions
+    info:
+      gases:
+      - N2O
+  1.A.7.a.ii:
+    title: Sugar cane crop residues indirect emissions
+    comment: Sugar cane crop residues indirect emissions
+    info:
+      gases:
+      - N2O
+  1.A.7.a:
+    title: Sugar cane crop residues
+    comment: Sugar cane crop residues
+    info:
+      gases:
+      - N2O
+    children:
+    - - 1.A.7.a.i
+      - 1.A.7.a.ii
+  1.A.7.b:
+    title: Sugar cane burning crop residues
+    comment: Sugar cane burning crop residues
+    info:
+      gases:
+      - CH4
+      - N2O
+  1.A.8:
     title: Beans, dry
     comment: Beans, dry
-    alternative_codes:
-      - 1A1h
+    info:
+      gases: N2O
+    children:
+    - - 1.A.8.a
+  1.A.8.a.i:
+    title: Beans, dry crop residues direct emissions
+    comment: Beans, dry crop residues direct emissions
+    info:
+      gases:
+      - N2O
+  1.A.8.a.ii:
+    title: Beans, dry crop residues indirect emissions
+    comment: Beans, dry crop residues indirect emissions
     info:
       gases:
-        - CH4
-        - N2O
-  '1.A.1.i':
+      - N2O
+  1.A.8.a:
+    title: Beans, dry crop residues
+    comment: Beans, dry crop residues
+    info:
+      gases:
+      - N2O
+    children:
+    - - 1.A.8.a.i
+      - 1.A.8.a.ii
+  1.A.9:
     title: Oats
     comment: Oats
-    alternative_codes:
-      - 1A1i
+    info:
+      gases: N2O
+    children:
+    - - 1.A.9.a
+  1.A.9.a.i:
+    title: Oats crop residues direct emissions
+    comment: Oats crop residues direct emissions
+    info:
+      gases:
+      - N2O
+  1.A.9.a.ii:
+    title: Oats crop residues indirect emissions
+    comment: Oats crop residues indirect emissions
     info:
       gases:
-        - CH4
-        - N2O
-  '1.A.1.j':
+      - N2O
+  1.A.9.a:
+    title: Oats crop residues
+    comment: Oats crop residues
+    info:
+      gases:
+      - N2O
+    children:
+    - - 1.A.9.a.i
+      - 1.A.9.a.ii
+  1.A.10:
     title: Rye
     comment: Rye
-    alternative_codes:
-      - 1A1j
+    info:
+      gases: N2O
+    children:
+    - - 1.A.10.a
+  1.A.10.a.i:
+    title: Rye crop residues direct emissions
+    comment: Rye crop residues direct emissions
+    info:
+      gases:
+      - N2O
+  1.A.10.a.ii:
+    title: Rye crop residues indirect emissions
+    comment: Rye crop residues indirect emissions
     info:
       gases:
-        - CH4
-        - N2O
-  '1.A.1.k':
+      - N2O
+  1.A.10.a:
+    title: Rye crop residues
+    comment: Rye crop residues
+    info:
+      gases:
+      - N2O
+    children:
+    - - 1.A.10.a.i
+      - 1.A.10.a.ii
+  1.A.11:
     title: Sorghum
     comment: Sorghum
-    alternative_codes:
-      - 1A1k
+    info:
+      gases: N2O
+    children:
+    - - 1.A.11.a
+  1.A.11.a.i:
+    title: Sorghum crop residues direct emissions
+    comment: Sorghum crop residues direct emissions
+    info:
+      gases:
+      - N2O
+  1.A.11.a.ii:
+    title: Sorghum crop residues indirect emissions
+    comment: Sorghum crop residues indirect emissions
     info:
       gases:
-        - CH4
-        - N2O
-  '1.A.1.l':
+      - N2O
+  1.A.11.a:
+    title: Sorghum crop residues
+    comment: Sorghum crop residues
+    info:
+      gases:
+      - N2O
+    children:
+    - - 1.A.11.a.i
+      - 1.A.11.a.ii
+  1.A.12:
     title: Soya beans
     comment: Soya beans
-    alternative_codes:
-      - 1A1l
+    info:
+      gases: N2O
+    children:
+    - - 1.A.12.a
+  1.A.12.a.i:
+    title: Soya beans crop residues direct emissions
+    comment: Soya beans crop residues direct emissions
+    info:
+      gases:
+      - N2O
+  1.A.12.a.ii:
+    title: Soya beans crop residues indirect emissions
+    comment: Soya beans crop residues indirect emissions
     info:
       gases:
-        - CH4
-        - N2O
-  '1.A.2':
+      - N2O
+  1.A.12.a:
+    title: Soya beans crop residues
+    comment: Soya beans crop residues
+    info:
+      gases:
+      - N2O
+    children:
+    - - 1.A.12.a.i
+      - 1.A.12.a.ii
+  1.B:
     title: Synthetic fertilisers
     comment: Synthetic fertilisers
-    alternative_codes:
-      - 1A2
     info:
       gases:
-        - N2O
-  '1.B':
-    title: Livestock
-    comment: Livestock
-    alternative_codes:
-      - 1B
+      - N2O
+    children:
+    - - 1.B.1
+      - 1.B.2
+  1.B.1:
+    title: Direct emissions
+    comment: Direct emissions
     info:
       gases:
-        - CO2
-        - CH4
-        - N2O
-  '1.C':
-    title: Energy use in agriculture
-    comment: Energy use in agriculture
-    alternative_codes:
-      - 1C
+      - N2O
+  1.B.2:
+    title: Indirect emissions
+    comment: Indirect emissions
     info:
       gases:
-        - CO2
-        - CH4
-        - N2O
-  '2':
-    title: Land use and change
-    comment: Land use and change
+      - N2O
+    children:
+    - - 1.B.2.a
+      - 1.B.2.b
+  1.B.2.a:
+    title: Indirect emissions that volatilise
+    comment: Indirect emissions that volatilise
     info:
       gases:
-        - CO2
-        - CH4
-        - N2O
-  '3':
+      - N2O
+  1.B.2.b:
+    title: Indirect emissions that leach
+    comment: Indirect emissions that leach
+    info:
+      gases:
+      - N2O
+  2.A:
+    title: Natural gas
+    comment: Natural gas
+    info:
+      gases:
+      - CH4
+      - N2O
+      - CO2
+  2.B:
+    title: Electricity
+    comment: Electricity
+    info:
+      gases:
+      - CH4
+      - N2O
+      - CO2
+  2.C:
+    title: Coal
+    comment: Coal
+    info:
+      gases:
+      - CH4
+      - N2O
+      - CO2
+  2.D:
+    title: Heat
+    comment: Heat
+    info:
+      gases:
+      - CH4
+      - N2O
+      - CO2
+  2.E:
+    title: Petroleum
+    comment: Petroleum
+    info:
+      gases:
+      - CH4
+      - N2O
+      - CO2
+  3.A:
+    title: Asses
+    comment: Asses
+    info:
+      gases:
+      - CH4
+      - N2O
+  3.B:
+    title: Camels
+    comment: Camels
+    info:
+      gases:
+      - CH4
+      - N2O
+  3.C:
+    title: Cattle, dairy
+    comment: Cattle, dairy
+    info:
+      gases:
+      - CH4
+      - N2O
+  3.D:
+    title: Cattle, non-dairy
+    comment: Cattle, non-dairy
+    info:
+      gases:
+      - CH4
+      - N2O
+  3.E:
+    title: Chickens, broilers
+    comment: Chickens, broilers
+    info:
+      gases:
+      - N2O
+  3.F:
+    title: Chickens, layers
+    comment: Chickens, layers
+    info:
+      gases:
+      - N2O
+  3.G:
+    title: Goats
+    comment: Goats
+    info:
+      gases:
+      - CH4
+      - N2O
+  3.H:
+    title: Horses
+    comment: Horses
+    info:
+      gases:
+      - CH4
+      - N2O
+  3.I:
+    title: Mules and hinnies
+    comment: Mules and hinnies
+    info:
+      gases:
+      - CH4
+      - N2O
+  3.J:
+    title: Sheep
+    comment: Sheep
+    info:
+      gases:
+      - CH4
+      - N2O
+  3.K:
+    title: Llamas
+    comment: Llamas
+    info:
+      gases:
+      - CH4
+      - N2O
+  3.L:
+    title: Chickens
+    comment: Chickens
+    info:
+      gases:
+      - N2O
+  3.M:
+    title: Poultry Birds
+    comment: Poultry Birds
+    info:
+      gases:
+      - N2O
+  3.N:
+    title: Buffalo
+    comment: Buffalo
+    info:
+      gases:
+      - CH4
+      - N2O
+  3.O:
+    title: Ducks
+    comment: Ducks
+    info:
+      gases:
+      - N2O
+  3.P:
+    title: Swine, breeding
+    comment: Swine, breeding
+    info:
+      gases:
+      - CH4
+      - N2O
+  3.Q:
+    title: Swine, market
+    comment: Swine, market
+    info:
+      gases:
+      - CH4
+      - N2O
+  3.R:
+    title: Turkeys
+    comment: Turkeys
+    info:
+      gases:
+      - N2O
+  '4':
+    title: Carbon stock change in forests
+    comment: Carbon stock change in forests
+    info:
+      gases: CO2
+    children:
+    - - 4.A
+      - 4.B
+  4.A:
+    title: Forest land
+    comment: Forest land
+    info:
+      gases: CO2
+  4.B:
+    title: Net Forest conversion
+    comment: Net Forest conversion
+    info:
+      gases: CO2
+  '5':
+    title: Drained organic soils
+    comment: Drained organic soils
+    info:
+      gases: CO2
+    children:
+    - - 5.A
+      - 5.B
+  5.A:
+    title: Drained grassland
+    comment: Drained grassland
+    info:
+      gases:
+      - CO2
+      - N2O
+  5.B:
+    title: Drained cropland
+    comment: Drained cropland
+    info:
+      gases:
+      - CO2
+      - N2O
+  6.A.1:
+    title: Humid tropical forests
+    comment: Humid tropical forests
+    info:
+      gases:
+      - CO2
+      - N2O
+      - CH4
+  6.A.2:
+    title: Other forests
+    comment: Other forests
+    info:
+      gases:
+      - CO2
+      - N2O
+      - CH4
+  6.A:
+    title: Forest fires
+    comment: Forest fires
+    info:
+      gases:
+      - CO2
+      - N2O
+      - CH4
+    children:
+    - - 6.A.1
+      - 6.A.2
+  6.B.1:
+    title: Closed shrubland
+    comment: Closed shrubland
+    info:
+      gases:
+      - CO2
+      - N2O
+      - CH4
+  6.B.2:
+    title: Grassland
+    comment: Grassland
+    info:
+      gases:
+      - CO2
+      - N2O
+      - CH4
+  6.B.3:
+    title: Open shrubland
+    comment: Open shrubland
+    info:
+      gases:
+      - CO2
+      - N2O
+      - CH4
+  6.B.4:
+    title: Savanna
+    comment: Savanna
+    info:
+      gases:
+      - CO2
+      - N2O
+      - CH4
+  6.B.5:
+    title: Woody savanna
+    comment: Woody savanna
+    info:
+      gases:
+      - CO2
+      - N2O
+      - CH4
+  6.B:
+    title: Savanna fires
+    comment: Savanna fires
+    info:
+      gases:
+      - CO2
+      - N2O
+      - CH4
+    children:
+    - - 6.B.1
+      - 6.B.2
+      - 6.B.3
+      - 6.B.4
+      - 6.B.5
+  6.C:
+    title: Fires in organic soils
+    comment: Fires in organic soils
+    info:
+      gases:
+      - CO2
+      - N2O
+      - CH4
+  '6':
+    title: Fires
+    comment: Fires
+    info:
+      gases:
+      - CO2
+      - N2O
+      - CH4
+    children:
+    - - 6.A
+      - 6.B
+      - 6.C
+  7.A:
+    title: Fertilizers Manufacturing
+    comment: Fertilizers Manufacturing
+    info:
+      gases:
+      - CO2
+      - N2O
+      - KYOTOGHG (AR5GWP100)
+  7.B:
+    title: Food Transport
+    comment: Food Transport
+    info:
+      gases:
+      - CO2
+      - CH4
+      - N2O
+      - KYOTOGHG (AR5GWP100)
+      - FGASES (AR5GWP100)
+  7.C:
+    title: Food Retail
+    comment: Food Retail
+    info:
+      gases:
+      - CO2
+      - CH4
+      - N2O
+      - KYOTOGHG (AR5GWP100)
+      - FGASES (AR5GWP100)
+  7.D:
+    title: Food Household Consumption
+    comment: Food Household Consumption
+    info:
+      gases:
+      - CO2
+      - CH4
+      - N2O
+      - KYOTOGHG (AR5GWP100)
+      - FGASES (AR5GWP100)
+  7.E:
+    title: Solid Food Waste
+    comment: Solid Food Waste
+    info:
+      gases:
+      - KYOTOGHG (AR5GWP100)
+      - CH4
+  7.F:
+    title: Domestic Wastewater
+    comment: Domestic Wastewater
+    info:
+      gases:
+      - KYOTOGHG (AR5GWP100)
+      - CH4
+      - N2O
+  7.G:
+    title: Industrial Wastewater
+    comment: Industrial Wastewater
+    info:
+      gases:
+      - KYOTOGHG (AR5GWP100)
+      - CH4
+      - N2O
+  7.H:
+    title: Incineration
+    comment: Incineration
+    info:
+      gases:
+      - CO2
+      - KYOTOGHG (AR5GWP100)
+  7.I:
+    title: Pre- and Post- Production
+    comment: Pre- and Post- Production
+    info:
+      gases:
+      - CO2
+      - CH4
+      - N2O
+      - KYOTOGHG (AR5GWP100)
+      - FGASES (AR5GWP100)
+  7.K:
+    title: Energy Use (Pre- and Post-Production)
+    comment: Energy Use (Pre- and Post-Production)
+    info:
+      gases:
+      - CO2
+      - CH4
+      - N2O
+      - KYOTOGHG (AR5GWP100)
+  7.L:
+    title: Agrifood Systems Waste Disposal
+    comment: Agrifood Systems Waste Disposal
+    info:
+      gases:
+      - CO2
+      - CH4
+      - N2O
+      - KYOTOGHG (AR5GWP100)
+  7.M:
+    title: Cold Chain F-Gas
+    comment: Cold Chain F-Gas
+    info:
+      gases:
+      - FGASES (AR5GWP100)
+  '7':
     title: Pre and post agricultural production
     comment: Pre and post agricultural production
     info:
       gases:
-        - CO2
-        - CH4
-        - N2O
+      - CO2
+      - CH4
+      - N2O
+      - KYOTOGHG (AR5GWP100)
+      - FGASES (AR5GWP100)
+    children:
+    - - 7.A
+      - 7.B
+      - 7.C
+      - 7.D
+      - 7.E
+      - 7.F
+      - 7.G
+      - 7.H
+      - 7.I
+      - 7.K
+      - 7.L
+      - 7.M

+ 207 - 2
tests/unit/FAO_1.py

@@ -1,6 +1,9 @@
 spec = {
     "name": "FAO",
-    "title": "Food and Agriculture Organization of the United Nations (FAO) FAOSTAT data set categorisation",
+    "title": (
+        "Food and Agriculture Organization of the United Nations (FAO) "
+        "FAOSTAT data set categorisation"
+    ),
     "comment": "Needed to add FAOSTAT data to PRIMAP-hist",
     "references": "",
     "institution": "FAO",
@@ -13,23 +16,54 @@ spec = {
         "0": {
             "title": "Total",
             "comment": "All emissions and removals",
-            "children": [["1", "2"]],
+            "children": [["1", "2", "3"]],
         },
         "1": {
             "title": "Crops",
             "comment": "Crops",
+            "alternative_codes": "1",
             "children": [["1.A", "1.B"]],
             "info": {"gases": ["CH4", "N2O"]},
         },
         "2": {
             "title": "Energy use in agriculture",
             "comment": "Energy use in agriculture",
+            "alternative_codes": "2",
             "children": [["2.A", "2.B", "2.C", "2.D", "2.E"]],
             "info": {"gases": ["CH4", "N2O", "CO2"]},
         },
+        "3": {
+            "title": "Livestock",
+            "comment": "Livestock",
+            "alternative_codes": "3",
+            "children": [
+                [
+                    "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.M",
+                    "3.N",
+                    "3.O",
+                    "3.P",
+                    "3.Q",
+                    "3.R",
+                ]
+            ],
+            "info": {"gases": ["CH4", "N2O"]},
+        },
         "1.A": {
             "title": "All crops",
             "comment": "All crops",
+            "alternative_codes": "1A",
             "children": [
                 [
                     "1.A.1",
@@ -51,343 +85,514 @@ spec = {
         "1.A.1": {
             "title": "Wheat",
             "comment": "Wheat",
+            "alternative_codes": ["1A1"],
             "info": {"gases": ["CH4", "N2O"]},
             "children": [["1.A.1.a", "1.A.1.b"]],
         },
         "1.A.1.a.i": {
             "title": "Wheat crop residues direct emissions",
             "comment": "Wheat crop residues direct emissions",
+            "alternative_codes": ["1A1a"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.1.a.ii": {
             "title": "Wheat crop residues indirect emissions",
             "comment": "Wheat crop residues indirect emissions",
+            "alternative_codes": ["1A1ai"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.1.a": {
             "title": "Wheat crop residues",
             "comment": "Wheat crop residues",
+            "alternative_codes": ["1A1a"],
             "info": {"gases": ["N2O"]},
             "children": [["1.A.1.a.ii", "1.A.1.a.i"]],
         },
         "1.A.1.b": {
             "title": "Wheat burning crop residues",
             "comment": "Wheat burning crop residues",
+            "alternative_codes": ["1A1b"],
             "info": {"gases": ["CH4", "N2O"]},
         },
         "1.A.2": {
             "title": "Rice",
             "comment": "Rice",
+            "alternative_codes": ["1A2"],
             "info": {"gases": ["CH4", "N2O"]},
             "children": [["1.A.2.a", "1.A.2.b", "1.A.2.c"]],
         },
         "1.A.2.a.i": {
             "title": "Rice crop residues direct emissions",
             "comment": "Rice crop residues direct emissions",
+            "alternative_codes": ["1A2a"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.2.a.ii": {
             "title": "Rice crop residues indirect emissions",
             "comment": "Rice crop residues indirect emissions",
+            "alternative_codes": ["1A2ai"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.2.a": {
             "title": "Rice crop residues",
             "comment": "Rice crop residues",
+            "alternative_codes": ["1A2a"],
             "info": {"gases": ["N2O"]},
             "children": [["1.A.2.a.ii", "1.A.2.a.i"]],
         },
         "1.A.2.b": {
             "title": "Rice burning crop residues",
             "comment": "Rice burning crop residues",
+            "alternative_codes": ["1A2b"],
             "info": {"gases": ["CH4", "N2O"]},
         },
         "1.A.2.c": {
             "title": "Rice cultivation",
             "comment": "Rice cultivation",
+            "alternative_codes": ["1A2c"],
             "info": {"gases": ["CH4"]},
         },
         "1.A.3": {
             "title": "Potatoes",
             "comment": "Potatoes",
+            "alternative_codes": ["1A3"],
             "info": {"gases": "N2O"},
             "children": [["1.A.3.a"]],
         },
         "1.A.3.a.i": {
             "title": "Potatoes crop residues direct emissions",
             "comment": "Potatoes crop residues direct emissions",
+            "alternative_codes": ["1A3a"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.3.a.ii": {
             "title": "Potatoes crop residues indirect emissions",
             "comment": "Potatoes crop residues indirect emissions",
+            "alternative_codes": ["1A3ai"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.3.a": {
             "title": "Potatoes crop residues",
             "comment": "Potatoes crop residues",
+            "alternative_codes": ["1A3a"],
             "info": {"gases": ["N2O"]},
             "children": [["1.A.3.a.ii", "1.A.3.a.i"]],
         },
         "1.A.4": {
             "title": "Millet",
             "comment": "Millet",
+            "alternative_codes": ["1A4"],
             "info": {"gases": "N2O"},
             "children": [["1.A.4.a"]],
         },
         "1.A.4.a.i": {
             "title": "Millet crop residues direct emissions",
             "comment": "Millet crop residues direct emissions",
+            "alternative_codes": ["1A4a"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.4.a.ii": {
             "title": "Millet crop residues indirect emissions",
             "comment": "Millet crop residues indirect emissions",
+            "alternative_codes": ["1A4ai"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.4.a": {
             "title": "Millet crop residues",
             "comment": "Millet crop residues",
+            "alternative_codes": ["1A4a"],
             "info": {"gases": ["N2O"]},
             "children": [["1.A.4.a.ii", "1.A.4.a.i"]],
         },
         "1.A.5": {
             "title": "Barley",
             "comment": "Barley",
+            "alternative_codes": ["1A5"],
             "info": {"gases": "N2O"},
             "children": [["1.A.5.a"]],
         },
         "1.A.5.a.i": {
             "title": "Barley crop residues direct emissions",
             "comment": "Barley crop residues direct emissions",
+            "alternative_codes": ["1A5a"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.5.a.ii": {
             "title": "Barley crop residues indirect emissions",
             "comment": "Barley crop residues indirect emissions",
+            "alternative_codes": ["1A5ai"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.5.a": {
             "title": "Barley crop residues",
             "comment": "Barley crop residues",
+            "alternative_codes": ["1A5a"],
             "info": {"gases": ["N2O"]},
             "children": [["1.A.5.a.ii", "1.A.5.a.i"]],
         },
         "1.A.6": {
             "title": "Maize (corn)",
             "comment": "Maize (corn)",
+            "alternative_codes": ["1A6"],
             "info": {"gases": ["CH4", "N2O"]},
             "children": [["1.A.6.a", "1.A.6.b"]],
         },
         "1.A.6.a.i": {
             "title": "Maize (corn) crop residues direct emissions",
             "comment": "Maize (corn) crop residues direct emissions",
+            "alternative_codes": ["1A6a"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.6.a.ii": {
             "title": "Maize (corn) crop residues indirect emissions",
             "comment": "Maize (corn) crop residues indirect emissions",
+            "alternative_codes": ["1A6ai"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.6.a": {
             "title": "Maize (corn) crop residues",
             "comment": "Maize (corn) crop residues",
+            "alternative_codes": ["1A6a"],
             "info": {"gases": ["N2O"]},
             "children": [["1.A.6.a.ii", "1.A.6.a.i"]],
         },
         "1.A.6.b": {
             "title": "Maize (corn) burning crop residues",
             "comment": "Maize (corn) burning crop residues",
+            "alternative_codes": ["1A6b"],
             "info": {"gases": ["CH4", "N2O"]},
         },
         "1.A.7": {
             "title": "Sugar cane",
             "comment": "Sugar cane",
+            "alternative_codes": ["1A7"],
             "info": {"gases": ["CH4", "N2O"]},
             "children": [["1.A.7.a", "1.A.7.b"]],
         },
         "1.A.7.a.i": {
             "title": "Sugar cane crop residues direct emissions",
             "comment": "Sugar cane crop residues direct emissions",
+            "alternative_codes": ["1A7a"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.7.a.ii": {
             "title": "Sugar cane crop residues indirect emissions",
             "comment": "Sugar cane crop residues indirect emissions",
+            "alternative_codes": ["1A7ai"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.7.a": {
             "title": "Sugar cane crop residues",
             "comment": "Sugar cane crop residues",
+            "alternative_codes": ["1A7a"],
             "info": {"gases": ["N2O"]},
             "children": [["1.A.7.a.ii", "1.A.7.a.i"]],
         },
         "1.A.7.b": {
             "title": "Sugar cane burning crop residues",
             "comment": "Sugar cane burning crop residues",
+            "alternative_codes": ["1A7b"],
             "info": {"gases": ["CH4", "N2O"]},
         },
         "1.A.8": {
             "title": "Beans, dry",
             "comment": "Beans, dry",
+            "alternative_codes": ["1A8"],
             "info": {"gases": "N2O"},
             "children": [["1.A.8.a"]],
         },
         "1.A.8.a.i": {
             "title": "Beans, dry crop residues direct emissions",
             "comment": "Beans, dry crop residues direct emissions",
+            "alternative_codes": ["1A8a"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.8.a.ii": {
             "title": "Beans, dry crop residues indirect emissions",
             "comment": "Beans, dry crop residues indirect emissions",
+            "alternative_codes": ["1A8ai"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.8.a": {
             "title": "Beans, dry crop residues",
             "comment": "Beans, dry crop residues",
+            "alternative_codes": ["1A8a"],
             "info": {"gases": ["N2O"]},
             "children": [["1.A.8.a.ii", "1.A.8.a.i"]],
         },
         "1.A.9": {
             "title": "Oats",
             "comment": "Oats",
+            "alternative_codes": ["1A9"],
             "info": {"gases": "N2O"},
             "children": [["1.A.9.a"]],
         },
         "1.A.9.a.i": {
             "title": "Oats crop residues direct emissions",
             "comment": "Oats crop residues direct emissions",
+            "alternative_codes": ["1A9a"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.9.a.ii": {
             "title": "Oats crop residues indirect emissions",
             "comment": "Oats crop residues indirect emissions",
+            "alternative_codes": ["1A9ai"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.9.a": {
             "title": "Oats crop residues",
             "comment": "Oats crop residues",
+            "alternative_codes": ["1A9a"],
             "info": {"gases": ["N2O"]},
             "children": [["1.A.9.a.ii", "1.A.9.a.i"]],
         },
         "1.A.10": {
             "title": "Rye",
             "comment": "Rye",
+            "alternative_codes": ["1A10"],
             "info": {"gases": "N2O"},
             "children": [["1.A.10.a"]],
         },
         "1.A.10.a.i": {
             "title": "Rye crop residues direct emissions",
             "comment": "Rye crop residues direct emissions",
+            "alternative_codes": ["1A10a"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.10.a.ii": {
             "title": "Rye crop residues indirect emissions",
             "comment": "Rye crop residues indirect emissions",
+            "alternative_codes": ["1A10ai"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.10.a": {
             "title": "Rye crop residues",
             "comment": "Rye crop residues",
+            "alternative_codes": ["1A10a"],
             "info": {"gases": ["N2O"]},
             "children": [["1.A.10.a.ii", "1.A.10.a.i"]],
         },
         "1.A.11": {
             "title": "Sorghum",
             "comment": "Sorghum",
+            "alternative_codes": ["1A11"],
             "info": {"gases": "N2O"},
             "children": [["1.A.11.a"]],
         },
         "1.A.11.a.i": {
             "title": "Sorghum crop residues direct emissions",
             "comment": "Sorghum crop residues direct emissions",
+            "alternative_codes": ["1A11a"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.11.a.ii": {
             "title": "Sorghum crop residues indirect emissions",
             "comment": "Sorghum crop residues indirect emissions",
+            "alternative_codes": ["1A11ai"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.11.a": {
             "title": "Sorghum crop residues",
             "comment": "Sorghum crop residues",
+            "alternative_codes": ["1A11a"],
             "info": {"gases": ["N2O"]},
             "children": [["1.A.11.a.ii", "1.A.11.a.i"]],
         },
         "1.A.12": {
             "title": "Soya beans",
             "comment": "Soya beans",
+            "alternative_codes": ["1A12"],
             "info": {"gases": "N2O"},
             "children": [["1.A.12.a"]],
         },
         "1.A.12.a.i": {
             "title": "Soya beans crop residues direct emissions",
             "comment": "Soya beans crop residues direct emissions",
+            "alternative_codes": ["1A12a"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.12.a.ii": {
             "title": "Soya beans crop residues indirect emissions",
             "comment": "Soya beans crop residues indirect emissions",
+            "alternative_codes": ["1A12ai"],
             "info": {"gases": ["N2O"]},
         },
         "1.A.12.a": {
             "title": "Soya beans crop residues",
             "comment": "Soya beans crop residues",
+            "alternative_codes": ["1A12a"],
             "info": {"gases": ["N2O"]},
             "children": [["1.A.12.a.ii", "1.A.12.a.i"]],
         },
         "1.B": {
             "title": "Synthetic fertilisers",
             "comment": "Synthetic fertilisers",
+            "alternative_codes": ["1B"],
             "info": {"gases": ["N2O"]},
             "children": [["1.B.1", "1.B.2"]],
         },
         "1.B.1": {
             "title": "Direct emissions",
             "comment": "Direct emissions",
+            "alternative_codes": ["1B1"],
             "info": {"gases": ["N2O"]},
         },
         "1.B.2": {
             "title": "Indirect emissions",
             "comment": "Indirect emissions",
+            "alternative_codes": ["1B2"],
             "info": {"gases": ["N2O"]},
             "children": [["1.B.2.a", "1.B.2.b"]],
         },
         "1.B.2.a": {
             "title": "Indirect emissions that volatilise",
             "comment": "Indirect emissions that volatilise",
+            "alternative_codes": ["1B2a"],
             "info": {"gases": ["N2O"]},
         },
         "1.B.2.b": {
             "title": "Indirect emissions that leach",
             "comment": "Indirect emissions that leach",
+            "alternative_codes": ["1B2b"],
             "info": {"gases": ["N2O"]},
         },
         "2.A": {
             "title": "Natural gas",
             "comment": "Natural gas",
+            "alternative_codes": "2A",
             "info": {"gases": ["CH4", "N2O", "CO2"]},
         },
         "2.B": {
             "title": "Electricity",
             "comment": "Electricity",
+            "alternative_codes": "2B",
             "info": {"gases": ["CH4", "N2O", "CO2"]},
         },
         "2.C": {
             "title": "Coal",
             "comment": "Coal",
+            "alternative_codes": "2C",
             "info": {"gases": ["CH4", "N2O", "CO2"]},
         },
         "2.D": {
             "title": "Heat",
             "comment": "Heat",
+            "alternative_codes": "2D",
             "info": {"gases": ["CH4", "N2O", "CO2"]},
         },
         "2.E": {
             "title": "Petroleum",
             "comment": "Petroleum",
+            "alternative_codes": "2E",
             "info": {"gases": ["CH4", "N2O", "CO2"]},
         },
+        "3.A": {
+            "title": "Asses",
+            "comment": "Asses",
+            "alternative_codes": "3A",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.B": {
+            "title": "Camels",
+            "comment": "Camels",
+            "alternative_codes": "3B",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.C": {
+            "title": "Cattle, dairy",
+            "comment": "Cattle, dairy",
+            "alternative_codes": "3C",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.D": {
+            "title": "Cattle, non-dairy",
+            "comment": "Cattle, non-dairy",
+            "alternative_codes": "3D",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.E": {
+            "title": "Chickens, broilers",
+            "comment": "Chickens, broilers",
+            "alternative_codes": "3E",
+            "info": {"gases": ["N2O"]},
+        },
+        "3.F": {
+            "title": "Chickens, layers",
+            "comment": "Chickens, layers",
+            "alternative_codes": "3F",
+            "info": {"gases": ["N2O"]},
+        },
+        "3.G": {
+            "title": "Goats",
+            "comment": "Goats",
+            "alternative_codes": "3G",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.H": {
+            "title": "Horses",
+            "comment": "Horses",
+            "alternative_codes": "3H",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.I": {
+            "title": "Mules and hinnies",
+            "comment": "Mules and hinnies",
+            "alternative_codes": "3I",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.J": {
+            "title": "Sheep",
+            "comment": "Sheep",
+            "alternative_codes": "3J",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.K": {
+            "title": "Llamas",
+            "comment": "Llamas",
+            "alternative_codes": "3K",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.L": {
+            "title": "Chickens",
+            "comment": "Chickens",
+            "alternative_codes": "3L",
+            "info": {"gases": ["N2O"]},
+        },
+        "3.M": {
+            "title": "Poultry Birds",
+            "comment": "Poultry Birds",
+            "alternative_codes": "3M",
+            "info": {"gases": ["N2O"]},
+        },
+        "3.N": {
+            "title": "Buffalo",
+            "comment": "Buffalo",
+            "alternative_codes": "3N",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.O": {
+            "title": "Ducks",
+            "comment": "Ducks",
+            "alternative_codes": "3O",
+            "info": {"gases": ["N2O"]},
+        },
+        "3.P": {
+            "title": "Swine, breeding",
+            "comment": "Swine, breeding",
+            "alternative_codes": "3P",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.Q": {
+            "title": "Swine, market",
+            "comment": "Swine, market",
+            "alternative_codes": "3Q",
+            "info": {"gases": ["CH4", "N2O"]},
+        },
+        "3.R": {
+            "title": "Turkeys",
+            "comment": "Turkeys",
+            "alternative_codes": "3R",
+            "info": {"gases": ["N2O"]},
+        },
     },
 }

+ 230 - 20
tests/unit/test_conversion.py

@@ -9,8 +9,8 @@ from src.faostat_data_primap.read import read_data
 def test_read(tmp_path):
     domains_and_releases_to_read = [
         # ("farm_gate_agriculture_energy", "2024-11-14"),
-        # ("farm_gate_emissions_crops", "2024-11-14"),
-        ("farm_gate_livestock", "2024-11-14"),
+        ("farm_gate_emissions_crops", "2024-11-14"),
+        # ("farm_gate_livestock", "2024-11-14"),
         # ("land_use_drained_organic_soils", "2024-11-14"),
         # ("land_use_fires", "2024-11-14"),
         # ("land_use_forests", "2024-11-14"),
@@ -36,7 +36,7 @@ def test_python_to_yaml():
     assert cat
 
 
-def test_make_dict_comprehension_for_faster_typing():
+def test_make_dict_comprehension_for_faster_typing():  # noqa: PLR0912 PLR0915
     spec = {
         "name": "FAO",
         "title": (
@@ -58,15 +58,15 @@ def test_make_dict_comprehension_for_faster_typing():
     categories["0"] = {
         "title": "Total",
         "comment": "All emissions and removals",
-        "children": [["1", "2"]],  #  , "3", "4", "5", "6", "7"]],
+        "children": [["1", "2", "3", "4", "5", "6", "7"]],
     }
     children_1 = ["1.A", "1.B"]
     children_2 = ["2.A", "2.B", "2.C", "2.D", "2.E"]
     children_3 = [f"3.{i}" for i in "ABCDEFGHIJKLMNOPQR"]
-    children_4 = ["4.A"]
-    children_5 = ["5.A", "5.B"]
-    children_6 = ["6.A", "6.B", "6.C"]
-    children_7 = [f"3.{i}" for i in "ABCDEFGHIJKLM"]
+    # children_4 = ["4.A"]
+    # children_5 = ["5.A", "5.B"]
+    # children_6 = ["6.A", "6.B", "6.C"]
+    # children_7 = [f"3.{i}" for i in "ABCDEFGHIJKLM"]
     main_categories = (
         # category code, name and comment, gases, children
         ("1", "Crops", ["CH4", "N2O"], children_1),
@@ -76,7 +76,7 @@ def test_make_dict_comprehension_for_faster_typing():
             ["CH4", "N2O", "CO2"],
             children_2,
         ),
-        # ("3", "Livestock", ["CH4", "N2O"], children_3),
+        ("3", "Livestock", ["CH4", "N2O"], children_3),
         # ("4", "Forest", ["CO2"], children_4),
         # (
         #     "5",
@@ -96,7 +96,7 @@ def test_make_dict_comprehension_for_faster_typing():
         categories[code] = {
             "title": name,
             "comment": name,
-            "alternative_codes": code.replace(".", ""),
+            # "alternative_codes": code.replace(".", ""),
             "children": [children],
             "info": {"gases": gases},
         }
@@ -108,7 +108,7 @@ def test_make_dict_comprehension_for_faster_typing():
     categories[code_all_crops] = {
         "title": "All crops",
         "comment": "All crops",
-        "alternative_codes": code_all_crops.replace(".", ""),
+        # "alternative_codes": code_all_crops.replace(".", ""),
         "children": [codes_crops],
         "info": {"gases": ["CH4", "N2O"]},
     }
@@ -178,7 +178,7 @@ def test_make_dict_comprehension_for_faster_typing():
         categories[f"{code}"] = {
             "title": f"{crop}",
             "comment": f"{crop}",
-            "alternative_codes": [f"{code}".replace(".", "")],
+            # "alternative_codes": [f"{code}".replace(".", "")],
             "info": {"gases": gases_main},
             "children": [children_main],
         }
@@ -187,21 +187,21 @@ def test_make_dict_comprehension_for_faster_typing():
         categories[f"{code}.a.i"] = {
             "title": f"{crop} crop residues direct emissions",
             "comment": f"{crop} crop residues direct emissions",
-            "alternative_codes": [f"{code}.a".replace(".", "")],
+            # "alternative_codes": [f"{code}.a".replace(".", "")],
             "info": {"gases": ["N2O"]},
         }
 
         categories[f"{code}.a.ii"] = {
             "title": f"{crop} crop residues indirect emissions",
             "comment": f"{crop} crop residues indirect emissions",
-            "alternative_codes": [f"{code}.a.i".replace(".", "")],
+            # "alternative_codes": [f"{code}.a.i".replace(".", "")],
             "info": {"gases": ["N2O"]},
         }
 
         categories[f"{code}.a"] = {
             "title": f"{crop} crop residues",
             "comment": f"{crop} crop residues",
-            "alternative_codes": [f"{code}.a".replace(".", "")],
+            # "alternative_codes": [f"{code}.a".replace(".", "")],
             "info": {"gases": ["N2O"]},
             "children": [[f"{code}.a.ii", f"{code}.a.i"]],
         }
@@ -210,14 +210,14 @@ def test_make_dict_comprehension_for_faster_typing():
             categories[f"{code}.b"] = {
                 "title": f"{crop} burning crop residues",
                 "comment": f"{crop} burning crop residues",
-                "alternative_codes": [f"{code}.b".replace(".", "")],
+                # "alternative_codes": [f"{code}.b".replace(".", "")],
                 "info": {"gases": ["CH4", "N2O"]},
             }
         if rice_cultivation:
             categories[f"{code}.c"] = {
                 "title": "Rice cultivation",
                 "comment": "Rice cultivation",
-                "alternative_codes": [f"{code}.c".replace(".", "")],
+                # "alternative_codes": [f"{code}.c".replace(".", "")],
                 "info": {"gases": ["CH4"]},
             }
 
@@ -236,7 +236,7 @@ def test_make_dict_comprehension_for_faster_typing():
         categories[code] = {
             "title": name,
             "comment": name,
-            "alternative_codes": [code.replace(".", "")],
+            # "alternative_codes": [code.replace(".", "")],
             "info": {"gases": ["N2O"]},
         }
         if child_cat:
@@ -255,12 +255,222 @@ def test_make_dict_comprehension_for_faster_typing():
         categories[code] = {
             "title": name,
             "comment": name,
-            "alternative_codes": code.replace(".", ""),
+            # "alternative_codes": code.replace(".", ""),
             "info": {"gases": ["CH4", "N2O", "CO2"]},
         }
 
+    # livestock
+    animals = [
+        "Asses",
+        "Camels",
+        "Cattle, dairy",
+        "Cattle, non-dairy",
+        "Chickens, broilers",
+        "Chickens, layers",
+        "Goats",
+        "Horses",
+        "Mules and hinnies",
+        "Sheep",
+        "Llamas",
+        "Chickens",
+        "Poultry Birds",
+        "Buffalo",
+        "Ducks",
+        "Swine, breeding",
+        "Swine, market",
+        "Turkeys",
+    ]
+
+    codes_animals = [f"3.{i}" for i in "ABCDEFGHIJKLMNOPQR"]
+
+    enteric_fermentation = [
+        "Asses",
+        "Camels",
+        "Cattle, dairy",
+        "Cattle, non-dairy",
+        "Goats",
+        "Horses",
+        "Sheep",
+        "Mules and hinnies",
+        "Buffalo",
+        "Swine, breeding",
+        "Swine, market",
+        "Llamas",
+    ]
+
+    for animal, code in zip(animals, codes_animals):
+        if animal in enteric_fermentation:
+            gases = ["CH4", "N2O"]
+        else:
+            gases = ["N2O"]
+        categories[code] = {
+            "title": animal,
+            "comment": animal,
+            # "alternative_codes" : code.replace(".", ""),
+            "info": {"gases": gases},
+        }
+
+    # forests
+    categories["4"] = {
+        "title": "Carbon stock change in forests",
+        "comment": "Carbon stock change in forests",
+        "info": {"gases": "CO2"},
+        "children": [["4.A", "4.B"]],
+    }
+
+    categories["4.A"] = {
+        "title": "Forest land",
+        "comment": "Forest land",
+        "info": {"gases": "CO2"},
+    }
+
+    categories["4.B"] = {
+        "title": "Net Forest conversion",
+        "comment": "Net Forest conversion",
+        "info": {"gases": "CO2"},
+    }
+
+    # drained organic soils
+    categories["5"] = {
+        "title": "Drained organic soils",
+        "comment": "Drained organic soils",
+        "info": {"gases": "CO2"},
+        "children": [["5.A", "5.B"]],
+    }
+
+    categories["5.A"] = {
+        "title": "Drained grassland",
+        "comment": "Drained grassland",
+        "info": {"gases": ["CO2", "N2O"]},
+    }
+
+    categories["5.B"] = {
+        "title": "Drained cropland",
+        "comment": "Drained cropland",
+        "info": {"gases": ["CO2", "N2O"]},
+    }
+
+    # Fires
+
+    # Forest fires
+    forest_fires_children = ["Humid tropical forests", "Other forests"]
+    forest_fires_children_codes = ["6.A.1", "6.A.2"]
+    for cat_name, code in zip(forest_fires_children, forest_fires_children_codes):
+        categories[code] = {
+            "title": cat_name,
+            "comment": cat_name,
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+        }
+    categories["6.A"] = {
+        "title": "Forest fires",
+        "comment": "Forest fires",
+        "info": {"gases": ["CO2", "N2O", "CH4"]},
+        "children": [forest_fires_children_codes],
+    }
+
+    # Savanna fires
+    savanna_fires_children = [
+        "Closed shrubland",
+        "Grassland",
+        "Open shrubland",
+        "Savanna",
+        "Woody savanna",
+    ]
+    savanna_fires_children_codes = ["6.B.1", "6.B.2", "6.B.3", "6.B.4", "6.B.5"]
+    for cat_name, code in zip(savanna_fires_children, savanna_fires_children_codes):
+        categories[code] = {
+            "title": cat_name,
+            "comment": cat_name,
+            "info": {"gases": ["CO2", "N2O", "CH4"]},
+        }
+    categories["6.B"] = {
+        "title": "Savanna fires",
+        "comment": "Savanna fires",
+        "info": {"gases": ["CO2", "N2O", "CH4"]},
+        "children": [savanna_fires_children_codes],
+    }
+
+    # fires in organic soils
+    categories["6.C"] = {
+        "title": "Fires in organic soils",
+        "comment": "Fires in organic soils",
+        "info": {"gases": ["CO2", "N2O", "CH4"]},
+    }
+
+    # 6 fires
+    categories["6"] = {
+        "title": "Fires",
+        "comment": "Fires",
+        "info": {"gases": ["CO2", "N2O", "CH4"]},
+        "children": [["6.A", "6.B", "6.C"]],
+    }
+
+    # 7 pre and post production
+    pre_post_production_categories = [
+        "Fertilizers Manufacturing",
+        "Food Transport",
+        "Food Retail",
+        "Food Household Consumption",
+        "Solid Food Waste",
+        "Domestic Wastewater",
+        "Industrial Wastewater",
+        "Incineration",
+        "Pre- and Post- Production",
+        "Energy Use (Pre- and Post-Production)",
+        "Agrifood Systems Waste Disposal",
+        "Cold Chain F-Gas",
+        "Pesticides Manufacturing",
+        "Food Processing",
+        "Food Packaging",
+    ]
+    pre_post_production_categories_codes = ["7." + i for i in "ABCDEFGHIKLM"]
+    pre_post_production_categories_gases = [
+        ["CO2", "N2O", "KYOTOGHG (AR5GWP100)"],
+        ["CO2", "CH4", "N2O", "KYOTOGHG (AR5GWP100)", "FGASES (AR5GWP100)"],
+        ["CO2", "CH4", "N2O", "KYOTOGHG (AR5GWP100)", "FGASES (AR5GWP100)"],
+        ["CO2", "CH4", "N2O", "KYOTOGHG (AR5GWP100)", "FGASES (AR5GWP100)"],
+        ["KYOTOGHG (AR5GWP100)", "CH4"],
+        ["KYOTOGHG (AR5GWP100)", "CH4", "N2O"],
+        ["KYOTOGHG (AR5GWP100)", "CH4", "N2O"],
+        ["CO2", "KYOTOGHG (AR5GWP100)"],  #  incineration
+        ["CO2", "CH4", "N2O", "KYOTOGHG (AR5GWP100)", "FGASES (AR5GWP100)"],
+        ["CO2", "CH4", "N2O", "KYOTOGHG (AR5GWP100)"],
+        ["CO2", "CH4", "N2O", "KYOTOGHG (AR5GWP100)"],
+        ["FGASES (AR5GWP100)"],
+        ["CO2", "CH4", "N2O", "KYOTOGHG (AR5GWP100)"],
+        ["CO2", "CH4", "N2O", "KYOTOGHG (AR5GWP100)", "FGASES (AR5GWP100)"],
+        ["CO2", "CH4", "N2O", "KYOTOGHG (AR5GWP100)"],
+    ]
+    for cat_name, code, gases in zip(
+        pre_post_production_categories,
+        pre_post_production_categories_codes,
+        pre_post_production_categories_gases,
+    ):
+        categories[code] = {
+            "title": cat_name,
+            "comment": cat_name,
+            "info": {"gases": gases},
+        }
+    categories["7"] = {
+        "title": "Pre and post agricultural production",
+        "comment": "Pre and post agricultural production",
+        "info": {
+            "gases": [
+                "CO2",
+                "CH4",
+                "N2O",
+                "KYOTOGHG (AR5GWP100)",
+                "FGASES (AR5GWP100)",
+            ],
+        },
+        "children": [pre_post_production_categories_codes],
+    }
+
     spec["categories"] = categories
     cat = cc.HierarchicalCategorization.from_spec(spec.copy())
+    # run print(cat.show_as_tree())
+    cat.to_python("FAO.py")
+    cat.to_yaml("FAO.yaml")
     pass
 
 
@@ -272,7 +482,7 @@ def test_conversion_from_FAO_to_IPCC2006_PRIMAP():
     # make categorisation B from yaml
     categorisation_b = cc.IPCC2006_PRIMAP
 
-    # categories not part of climate categories so we need to add them manually
+    # category a not part of climate categories, so we need to add them manually
     cats = {
         "A": categorisation_a,
         "B": categorisation_b,