Browse Source

Worked in CRT1 specification and improved CRF/CRT reader

Johannes Gütschow 3 months ago
parent
commit
149c04272d

+ 450 - 330
src/unfccc_ghg_data/unfccc_crf_reader/crf_specifications/crt1_specification.py

@@ -349,21 +349,21 @@ CRT1 = {
             ["Peat (8)", ["1.A.2.f", "Peat"], 2],
             ["Biomass (3)", ["1.A.2.f", "Biomass"], 2],
             # g. other
-            ["1.A.2.g. Other (11)", ["1.A.2.g", "Total"], 1],
-            ["Liquid fuels", ["1.A.2.g", "Liquid"], 2],
-            ["Solid fuels", ["1.A.2.g", "Solid"], 2],
-            ["Gaseous fuels (6)", ["1.A.2.g", "Gaseous"], 2],
-            ["Other fossil fuels (7)", ["1.A.2.g", "OtherFF"], 2],
-            ["Peat (8)", ["1.A.2.g", "Peat"], 2],
-            ["Biomass (3)", ["1.A.2.g", "Biomass"], 2],
-            ["Drop-down list:", ["\\IGNORE", "\\IGNORE"], 2],
-            # TODO currently different parent category strings need repetition of the
-            #  full tree. Fix or make individual mappings for countries below
-            # # ARG, ECU
-            # ["1.A.2.g. Other (please specify)(11)", ["1.A.2.g", "Total"], 1],
-            # # CHL
-            # ["1.A.2.g. Other (please specify) (11)", ["1.A.2.g", "Total"], 1],
-            # ["Dropdown list", ["\\IGNORE", "\\IGNORE"], 2],
+            ["\\C!-ECU-CHL\\ 1.A.2.g. Other (11)", ["1.A.2.g", "Total"], 1],
+            ["\\C!-ECU-CHL\\ Liquid fuels", ["1.A.2.g", "Liquid"], 2],
+            ["\\C!-ECU-CHL\\ Solid fuels", ["1.A.2.g", "Solid"], 2],
+            ["\\C!-ECU-CHL\\ Gaseous fuels (6)", ["1.A.2.g", "Gaseous"], 2],
+            ["\\C!-ECU-CHL\\ Other fossil fuels (7)", ["1.A.2.g", "OtherFF"], 2],
+            ["\\C!-ECU-CHL\\ Peat (8)", ["1.A.2.g", "Peat"], 2],
+            ["\\C!-ECU-CHL\\ Biomass (3)", ["1.A.2.g", "Biomass"], 2],
+            ["\\C!-ECU-CHL\\ Drop-down list:", ["\\IGNORE", "\\IGNORE"], 2],
+            # ["\\C-ECU\\ 1.A.2.g. Other (please specify)(11)", ["1.A.2.g", "Total"], 1],
+            [
+                "\\C-CHL-ECU\\ 1.A.2.g. Other (please specify) (11)",
+                ["1.A.2.g", "Total"],
+                1,
+            ],
+            ["\\C-CHL-ECU\\ Dropdown list", ["\\IGNORE", "\\IGNORE"], 2],
             # 1.A.2.g.i Manufacturing of machinery
             ["1.A.2.g.i. Manufacturing of machinery", ["1.A.2.g.i", "Total"], 2],
             ["Liquid fuels", ["1.A.2.g.i", "Liquid"], 3],
@@ -430,278 +430,332 @@ CRT1 = {
             ["Diesel oil", ["1.A.2.g.vii", "DieselOil"], 3],
             ["Liquefied petroleum gases (LPG)", ["1.A.2.g.vii", "LPG"], 3],
             ["Other liquid fuels (please specify)", ["1.A.2.g.vii", "OtherLiquid"], 3],
-            ["NA", ["\\IGNORE", "\\IGNORE"], 4],
-            # GUY, MDV
+            ["\\C-AUS-CHL-ECU\\ NA", ["\\IGNORE", "\\IGNORE"], 4],
             [
+                "\\C-GUY-MDV-AZE-BTN-BRN-EGY-GNB-IDN-KEN-LBN-MYS-MUS-"
+                "MAR-NAM-NGA-PAN-PRY-URY\\ "
                 "Other liquid fuels [IPCC Software 1.A.3.e.ii]",
                 ["1.A.2.g.vii", "OLOther"],
                 4,
             ],
-            # SGP
-            ["Residual fuel oil", ["1.A.2.g.vii", "ResFuelOil"], 4],
-            # CAN
+            ["\\C-ISL\\ Other", ["1.A.2.g.vii", "OLOther"], 4],
+            ["\\C-SGP\\ Residual fuel oil", ["1.A.2.g.vii", "ResFuelOil"], 4],
             [
-                "Biodiesel (5 percent fossil portion)",
+                "\\C-CAN\\ Biodiesel (5 percent fossil portion)",
                 ["1.A.2.g.vii", "OLBiodieselFC"],
                 4,
             ],
-            ["Lubricating Oil (Two-Stroke Engines)", ["1.A.2.g.vii", "Lubricants"], 4],
-            # FIN
-            ["Gasoil", ["1.A.2.g.vii", "Gasoil"], 4],
-            # SWE
-            ["All Liquid Fuels", ["1.A.2.g.vii", "OLOther"], 4],
+            [
+                "\\C-CAN\\ Lubricating Oil (Two-Stroke Engines)",
+                ["1.A.2.g.vii", "Lubricants"],
+                4,
+            ],
+            ["\\C-FIN\\ Gasoil", ["1.A.2.g.vii", "Gasoil"], 4],
+            ["\\C-SWE\\ All Liquid Fuels", ["1.A.2.g.vii", "OLOther"], 4],
+            ["\\C-COL\\ Crude Oil", ["1.A.2.g.vii", "CrudeOil"], 4],
             ["Gaseous fuels (6)", ["1.A.2.g.vii", "Gaseous"], 3],
             ["Other fossil fuels (7)", ["1.A.2.g.vii", "OtherFF"], 3],
             ["Biomass (3)", ["1.A.2.g.vii", "Biomass"], 3],
             # 1.A.2.g.viii Other (please specify)
             ["1.A.2.g.viii. Other (please specify)", ["1.A.2.g.viii", "Total"], 2],
-            ["All Other Manufacturing", ["1.A.2.g.viii.3", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.3", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.3", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.3", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.3", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.3", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.3", "Biomass"], 4],
-            # GUY
+            # ["Liquid fuels", ["1.A.2.g.viii.3", "Liquid"], 4],
+            # ["Solid fuels", ["1.A.2.g.viii.3", "Solid"], 4],
+            # ["Gaseous fuels (6)", ["1.A.2.g.viii.3", "Gaseous"], 4],
+            # ["Other fossil fuels (7)", ["1.A.2.g.viii.3", "OtherFF"], 4],
+            # ["Peat (8)", ["1.A.2.g.viii.3", "Peat"], 4],
+            # ["Biomass (3)", ["1.A.2.g.viii.3", "Biomass"], 4],
+            # other / non-specified (1.A.2.g.viii.1)
+            [
+                "\\C-GUY-AZE-BTN-EGY-GNB-IDN-KEN-LBN-MYS-MDV-MUS-MAR-NAM-NGA-PAN-PRY-"
+                "URY-UZB\\ Non-specified Industry [IPCC Software 1.A.2.m]",
+                ["1.A.2.g.viii.1", "Total"],
+                3,
+            ],
             [
-                "Non-specified Industry [IPCC Software 1.A.2.m]",
+                "\\C-SVN\\ Other manufacturing industries and construction",
                 ["1.A.2.g.viii.1", "Total"],
                 3,
             ],
-            ["Liquid fuels", ["1.A.2.g.viii.1", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.1", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.1", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.1", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.1", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.1", "Biomass"], 4],
-            # GUY, MDV
+            ["\\C-MCO\\ industry", ["1.A.2.g.viii.1", "Total"], 3],
+            ["\\C-SVK-GEO\\ Non-specified Industry", ["1.A.2.g.viii.1", "Total"], 3],
+            ["\\C-LTU-SRB\\ Non-specified industry", ["1.A.2.g.viii.1", "Total"], 3],
+            ["\\C-ARG\\ Unspecified industries", ["1.A.2.g.viii.1", "Total"], 3],
+            ["\\C-ISL\\ Other industry", ["1.A.2.g.viii.1", "Total"], 3],
+            ["\\C-UKR\\ Oter Industries", ["1.A.2.g.viii.1", "Total"], 3],
+            ["\\C-NLD\\ Other Industrial Sectors", ["1.A.2.g.viii.1", "Total"], 3],
+            [
+                "\\C-GUY-AZE-BTN-EGY-GNB-IDN-KEN-LBN-MYS-MDV-MUS-MAR-NAM-NGA-PAN-PRY-"
+                "URY-UZB-SVN-MCO-SVK-GEO-LTU-SRB-ARG-ISL-UKR-NLD\\ Liquid fuels",
+                ["1.A.2.g.viii.1", "Liquid"],
+                4,
+            ],
             [
-                "Off-road - Manufacturing industries and construction- "
-                "solid fuels [IPCC Software 1.A.3.e.ii]",
-                ["1.A.2.g.viii.12", "Total"],
+                "\\C-GUY-AZE-BTN-EGY-GNB-IDN-KEN-LBN-MYS-MDV-MUS-MAR-NAM-NGA-PAN-PRY-"
+                "URY-UZB-SVN-MCO-SVK-GEO-LTU-SRB-ARG-ISL-UKR-NLD\\ Solid fuels",
+                ["1.A.2.g.viii.1", "Solid"],
+                4,
+            ],
+            [
+                "\\C-GUY-AZE-BTN-EGY-GNB-IDN-KEN-LBN-MYS-MDV-MUS-MAR-NAM-NGA-PAN-PRY-"
+                "URY-UZB-SVN-MCO-SVK-GEO-LTU-SRB-ARG-ISL-UKR-NLD\\ Gaseous fuels (6)",
+                ["1.A.2.g.viii.1", "Gaseous"],
+                4,
+            ],
+            [
+                "\\C-GUY-AZE-BTN-EGY-GNB-IDN-KEN-LBN-MYS-MDV-MUS-MAR-NAM-NGA-PAN-PRY-"
+                "URY-UZB-SVN-MCO-SVK-GEO-LTU-SRB-ARG-ISL-UKR-NLD\\ Other fossil fuels (7)",
+                ["1.A.2.g.viii.1", "OtherFF"],
+                4,
+            ],
+            [
+                "\\C-GUY-AZE-BTN-EGY-GNB-IDN-KEN-LBN-MYS-MDV-MUS-MAR-NAM-NGA-PAN-PRY-"
+                "URY-UZB-SVN-MCO-SVK-GEO-LTU-SRB-ARG-ISL-UKR-NLD\\ Peat (8)",
+                ["1.A.2.g.viii.1", "Peat"],
+                4,
+            ],
+            [
+                "\\C-GUY-AZE-BTN-EGY-GNB-IDN-KEN-LBN-MYS-MDV-MUS-MAR-NAM-NGA-PAN-PRY-"
+                "URY-UZB-SVN-MCO-SVK-GEO-LTU-SRB-ARG-ISL-UKR-NLD\\ Biomass (3)",
+                ["1.A.2.g.viii.1", "Biomass"],
+                4,
+            ],
+            # all industry (1.A.2.g.viii.2)
+            ["\\C-MLT\\ All Industry", ["1.A.2.g.viii.2", "Total"], 3],
+            ["\\C-MLT\\ Liquid fuels", ["1.A.2.g.viii.2", "Liquid"], 4],
+            ["\\C-MLT\\ Solid fuels", ["1.A.2.g.viii.2", "Solid"], 4],
+            ["\\C-MLT\\ Gaseous fuels (6)", ["1.A.2.g.viii.2", "Gaseous"], 4],
+            ["\\C-MLT\\ Other fossil fuels (7)", ["1.A.2.g.viii.2", "OtherFF"], 4],
+            ["\\C-MLT\\ Peat (8)", ["1.A.2.g.viii.2", "Peat"], 4],
+            ["\\C-MLT\\ Biomass (3)", ["1.A.2.g.viii.2", "Biomass"], 4],
+            # other manufacturing (1.A.2.g.viii.3)
+            [
+                "\\C-AUT-DNK-FIN\\ Other manufacturing industries",
+                ["1.A.2.g.viii.3", "Total"],
                 3,
             ],
-            ["Liquid fuels", ["1.A.2.g.viii.12", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.12", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.12", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.12", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.12", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.12", "Biomass"], 4],
-            # SVN
             [
-                "Other manufacturing industries and construction",
-                ["1.A.2.g.viii.1", "Total"],
+                "\\C-AUS-CHL-ECU\\ All Other Manufacturing",
+                ["1.A.2.g.viii.3", "Total"],
                 3,
             ],
-            ["Liquid fuels", ["1.A.2.g.viii.1", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.1", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.1", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.1", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.1", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.1", "Biomass"], 4],
-            # MCO
-            ["industry", ["1.A.2.g.viii.1", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.1", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.1", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.1", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.1", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.1", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.1", "Biomass"], 4],
-            # SVN
-            ["Non-specified Industry", ["1.A.2.g.viii.1", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.1", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.1", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.1", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.1", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.1", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.1", "Biomass"], 4],
-            # LTU
-            ["Non-specified industry", ["1.A.2.g.viii.1", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.1", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.1", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.1", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.1", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.1", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.1", "Biomass"], 4],
-            # ARG
-            ["Unspecified industries", ["1.A.2.g.viii.1", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.1", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.1", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.1", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.1", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.1", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.1", "Biomass"], 4],
-            # MLT
-            ["All Industry", ["1.A.2.g.viii.2", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.2", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.2", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.2", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.2", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.2", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.2", "Biomass"], 4],
-            # AUT
-            ["Other manufacturing industries", ["1.A.2.g.viii.3", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.3", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.3", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.3", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.3", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.3", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.3", "Biomass"], 4],
-            # NOR
-            ["Other Manufacturing", ["1.A.2.g.viii.3", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.3", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.3", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.3", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.3", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.3", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.3", "Biomass"], 4],
-            # BEL
-            ["Other non-specified", ["1.A.2.g.viii.4", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.4", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.4", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.4", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.4", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.4", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.4", "Biomass"], 4],
-            # CZE
-            ["Other non_specified", ["1.A.2.g.viii.4", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.4", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.4", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.4", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.4", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.4", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.4", "Biomass"], 4],
-            # BRA
-            ["Not specified", ["1.A.2.g.viii.4", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.4", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.4", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.4", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.4", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.4", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.4", "Biomass"], 4],
-            # GHA
-            ["Non-specified sectors", ["1.A.2.g.viii.4", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.4", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.4", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.4", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.4", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.4", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.4", "Biomass"], 4],
-            # NLD
-            ["Other Industrial Sectors", ["1.A.2.g.viii.4", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.4", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.4", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.4", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.4", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.4", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.4", "Biomass"], 4],
-            # CHN
-            [
-                "Manufacturing industries which separate data are not available",
+            ["\\C-NOR-CAN\\ Other Manufacturing", ["1.A.2.g.viii.3", "Total"], 3],
+            [
+                "\\C-AUT-DNK-FIN-AUS-CHL-ECU-NOR-CAN\\ Liquid fuels",
+                ["1.A.2.g.viii.3", "Liquid"],
+                4,
+            ],
+            [
+                "\\C-AUT-DNK-FIN-AUS-CHL-ECU-NOR-CAN\\ Solid fuels",
+                ["1.A.2.g.viii.3", "Solid"],
+                4,
+            ],
+            [
+                "\\C-AUT-DNK-FIN-AUS-CHL-ECU-NOR-CAN\\ Gaseous fuels (6)",
+                ["1.A.2.g.viii.3", "Gaseous"],
+                4,
+            ],
+            [
+                "\\C-AUT-DNK-FIN-AUS-CHL-ECU-NOR-CAN\\ Other fossil fuels (7)",
+                ["1.A.2.g.viii.3", "OtherFF"],
+                4,
+            ],
+            [
+                "\\C-AUT-DNK-FIN-AUS-CHL-ECU-NOR-CAN\\ Peat (8)",
+                ["1.A.2.g.viii.3", "Peat"],
+                4,
+            ],
+            [
+                "\\C-AUT-DNK-FIN-AUS-CHL-ECU-NOR-CAN\\ Biomass (3)",
+                ["1.A.2.g.viii.3", "Biomass"],
+                4,
+            ],
+            # non-specified (1.A.2.g.viii.4)
+            ["\\C-BEL\\ Other non-specified", ["1.A.2.g.viii.4", "Total"], 3],
+            ["\\C-CZE\\ Other non_specified", ["1.A.2.g.viii.4", "Total"], 3],
+            ["\\C-BRA\\ Not specified", ["1.A.2.g.viii.4", "Total"], 3],
+            ["\\C-GHA\\ Non-specified sectors", ["1.A.2.g.viii.4", "Total"], 3],
+            [
+                "\\C-CHN\\ Manufacturing industries which separate data are not available",
                 ["1.A.2.g.viii.4", "Total"],
                 3,
             ],
-            ["Liquid fuels", ["1.A.2.g.viii.4", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.4", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.4", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.4", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.4", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.4", "Biomass"], 4],
-            # RUS
-            ["Other industries", ["1.A.2.g.viii.4", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.4", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.4", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.4", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.4", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.4", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.4", "Biomass"], 4],
-            # RUS
-            ["Non-CO2 emissions from BFG combustion", ["1.A.2.g.viii.5", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.5", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.5", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.5", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.5", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.5", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.5", "Biomass"], 4],
-            # ESP, NZL, POL, TUR
-            ["Other", ["1.A.2.g.viii.10", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.10", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.10", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.10", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.10", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.10", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.10", "Biomass"], 4],
-            # HRV
-            ["other", ["1.A.2.g.viii.10", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.10", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.10", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.10", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.10", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.10", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.10", "Biomass"], 4],
-            # SGP
-            ["Others", ["1.A.2.g.viii.10", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.10", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.10", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.10", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.10", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.10", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.10", "Biomass"], 4],
-            # RUS
-            ["Construction", ["1.A.2.g.viii.11", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.11", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.11", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.11", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.11", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.11", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.11", "Biomass"], 4],
-            # CHE
-            ["Other Boilers and Engines Industry", ["1.A.2.g.viii.9", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.9", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.9", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.9", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.9", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.9", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.9", "Biomass"], 4],
-            # PRT
-            ["Rubber", ["1.A.2.g.viii.6", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.6", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.6", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.6", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.6", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.6", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.6", "Biomass"], 4],
-            ["Other Transformation Industry", ["1.A.2.g.viii.13", "Total"], 3],
-            ["Liquid fuels", ["1.A.2.g.viii.13", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.13", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.13", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.13", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.13", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.13", "Biomass"], 4],
-            # USA
-            [
-                "Construction, agriculture, and other non-transport vehicles",
+            ["\\C-RUS\\ Other industries", ["1.A.2.g.viii.4", "Total"], 3],
+            [
+                "\\C-BEL-CZE-BRA-GHA-CHN-RUS\\ Liquid fuels",
+                ["1.A.2.g.viii.4", "Liquid"],
+                4,
+            ],
+            ["\\C-DZA-COL-LVA\\ Other", ["1.A.2.g.viii.4", "Total"], 3],
+            [
+                "\\C-BEL-CZE-BRA-GHA-CHN-RUS-DZA-COL-LVA\\ Solid fuels",
+                ["1.A.2.g.viii.4", "Solid"],
+                4,
+            ],
+            [
+                "\\C-BEL-CZE-BRA-GHA-CHN-RUS-DZA-COL-LVA\\ Gaseous fuels (6)",
+                ["1.A.2.g.viii.4", "Gaseous"],
+                4,
+            ],
+            [
+                "\\C-BEL-CZE-BRA-GHA-CHN-RUS-DZA-COL-LVA\\ Other fossil fuels (7)",
+                ["1.A.2.g.viii.4", "OtherFF"],
+                4,
+            ],
+            [
+                "\\C-BEL-CZE-BRA-GHA-CHN-RUS-DZA-COL-LVA\\ Peat (8)",
+                ["1.A.2.g.viii.4", "Peat"],
+                4,
+            ],
+            [
+                "\\C-BEL-CZE-BRA-GHA-CHN-RUS-DZA-COL-LVA\\ Biomass (3)",
+                ["1.A.2.g.viii.4", "Biomass"],
+                4,
+            ],
+            # Non-CO2 emissions from BFG combustion (1.A.2.g.viii.5)
+            [
+                "\\C-RUS\\ Non-CO2 emissions from BFG combustion",
+                ["1.A.2.g.viii.5", "Total"],
+                3,
+            ],
+            ["\\C-RUS\\ Liquid fuels", ["1.A.2.g.viii.5", "Liquid"], 4],
+            ["\\C-RUS\\ Solid fuels", ["1.A.2.g.viii.5", "Solid"], 4],
+            ["\\C-RUS\\ Gaseous fuels (6)", ["1.A.2.g.viii.5", "Gaseous"], 4],
+            ["\\C-RUS\\ Other fossil fuels (7)", ["1.A.2.g.viii.5", "OtherFF"], 4],
+            ["\\C-RUS\\ Peat (8)", ["1.A.2.g.viii.5", "Peat"], 4],
+            ["\\C-RUS\\ Biomass (3)", ["1.A.2.g.viii.5", "Biomass"], 4],
+            # Rubber (1.A.2.g.vii.6)
+            ["\\C-PRT\\ Rubber", ["1.A.2.g.viii.6", "Total"], 3],
+            ["\\C-PRT\\ Liquid fuels", ["1.A.2.g.viii.6", "Liquid"], 4],
+            ["\\C-PRT\\ Solid fuels", ["1.A.2.g.viii.6", "Solid"], 4],
+            ["\\C-PRT\\ Gaseous fuels (6)", ["1.A.2.g.viii.6", "Gaseous"], 4],
+            ["\\C-PRT\\ Other fossil fuels (7)", ["1.A.2.g.viii.6", "OtherFF"], 4],
+            ["\\C-PRT\\ Peat (8)", ["1.A.2.g.viii.6", "Peat"], 4],
+            ["\\C-PRT\\ Biomass (3)", ["1.A.2.g.viii.6", "Biomass"], 4],
+            # All stationary combustin within CRF 1.A.2.g (1.A.2.g.viii.7)
+            [
+                "\\C-SWE\\ All stationary combustin within CRF 1.A.2.g",
+                ["1.A.2.g.viii.7", "Total"],
+                3,
+            ],
+            ["\\C-SWE\\ Liquid Fuels", ["1.A.2.g.viii.7", "Liquid"], 4],
+            ["\\C-SWE\\ Solid Fuels", ["1.A.2.g.viii.7", "Solid"], 4],
+            ["\\C-SWE\\ Gaseous Fuels", ["1.A.2.g.viii.7", "Gaseous"], 4],
+            ["\\C-SWE\\ Other Fossil Fuels", ["1.A.2.g.viii.7", "OtherFF"], 4],
+            ["\\C-SWE\\ Peat", ["1.A.2.g.viii.7", "Peat"], 4],
+            ["\\C-SWE\\ Biomass", ["1.A.2.g.viii.7", "Biomass"], 4],
+            # Placeholder (1.A.2.g.viii.8)
+            # Other Boilers and Engines Industry (1.A.2.g.viii.9)
+            [
+                "\\C-CHE\\ Other Boilers and Engines Industry",
+                ["1.A.2.g.viii.9", "Total"],
+                3,
+            ],
+            ["\\C-CHE\\ Liquid fuels", ["1.A.2.g.viii.9", "Liquid"], 4],
+            ["\\C-CHE\\ Solid fuels", ["1.A.2.g.viii.9", "Solid"], 4],
+            ["\\C-CHE\\ Gaseous fuels (6)", ["1.A.2.g.viii.9", "Gaseous"], 4],
+            ["\\C-CHE\\ Other fossil fuels (7)", ["1.A.2.g.viii.9", "OtherFF"], 4],
+            ["\\C-CHE\\ Peat (8)", ["1.A.2.g.viii.9", "Peat"], 4],
+            ["\\C-CHE\\ Biomass (3)", ["1.A.2.g.viii.9", "Biomass"], 4],
+            # Other (1.A.2.g.viii.10)
+            ["\\C-ESP-NZL-POL-TUR\\ Other", ["1.A.2.g.viii.10", "Total"], 3],
+            ["\\C-HRV\\ other", ["1.A.2.g.viii.10", "Total"], 3],
+            ["\\C-SGP\\ Others", ["1.A.2.g.viii.10", "Total"], 3],
+            [
+                "\\C-ESP-NZL-POL-TUR-HRV-SGP\\ Liquid fuels",
+                ["1.A.2.g.viii.10", "Liquid"],
+                4,
+            ],
+            [
+                "\\C-ESP-NZL-POL-TUR-HRV-SGP\\ Solid fuels",
+                ["1.A.2.g.viii.10", "Solid"],
+                4,
+            ],
+            [
+                "\\C-ESP-NZL-POL-TUR-HRV-SGP\\ Gaseous fuels (6)",
+                ["1.A.2.g.viii.10", "Gaseous"],
+                4,
+            ],
+            [
+                "\\C-ESP-NZL-POL-TUR-HRV-SGP\\ Other fossil fuels (7)",
+                ["1.A.2.g.viii.10", "OtherFF"],
+                4,
+            ],
+            ["\\C-ESP-NZL-POL-TUR-HRV-SGP\\ Peat (8)", ["1.A.2.g.viii.10", "Peat"], 4],
+            [
+                "\\C-ESP-NZL-POL-TUR-HRV-SGP\\ Biomass (3)",
+                ["1.A.2.g.viii.10", "Biomass"],
+                4,
+            ],
+            # Construction (1.A.2.g.viii.11)
+            ["\\C-RUS\\ Construction", ["1.A.2.g.viii.11", "Total"], 3],
+            [  # not a perfect fit
+                "\\C-USA\\ Construction, agriculture, and other non-transport vehicles",
                 ["1.A.2.g.viii.11", "Total"],
                 3,
             ],
-            ["Liquid fuels", ["1.A.2.g.viii.11", "Liquid"], 4],
-            ["Solid fuels", ["1.A.2.g.viii.11", "Solid"], 4],
-            ["Gaseous fuels (6)", ["1.A.2.g.viii.11", "Gaseous"], 4],
-            ["Other fossil fuels (7)", ["1.A.2.g.viii.11", "OtherFF"], 4],
-            ["Peat (8)", ["1.A.2.g.viii.11", "Peat"], 4],
-            ["Biomass (3)", ["1.A.2.g.viii.11", "Biomass"], 4],
-            # SWE
+            ["\\C-RUS-USA\\ Liquid fuels", ["1.A.2.g.viii.11", "Liquid"], 4],
+            ["\\C-RUS-USA\\ Solid fuels", ["1.A.2.g.viii.11", "Solid"], 4],
+            ["\\C-RUS-USA\\ Gaseous fuels (6)", ["1.A.2.g.viii.11", "Gaseous"], 4],
+            ["\\C-RUS-USA\\ Other fossil fuels (7)", ["1.A.2.g.viii.11", "OtherFF"], 4],
+            ["\\C-RUS-USA\\ Peat (8)", ["1.A.2.g.viii.11", "Peat"], 4],
+            ["\\C-RUS-USA\\ Biomass (3)", ["1.A.2.g.viii.11", "Biomass"], 4],
+            # Off-road - Manufacturing industries and construction- solid fuels
+            # [IPCC Software 1.A.3.e.ii] (1.A.2.g.viii.12)
+            [
+                "\\C-GUY-MDV-AZE-BTN-EGY-GNB-IDN-KEN-LBN-MYS-MDV-MUS-MAR-NAM-NGA-PAN-"
+                "PRY-URY\\ Off-road - Manufacturing industries and construction- "
+                "solid fuels [IPCC Software 1.A.3.e.ii]",
+                ["1.A.2.g.viii.12", "Total"],
+                3,
+            ],
             [
-                "All stationary combustin within CRF 1.A.2.g",
-                ["1.A.2.g.viii.7", "Total"],
+                "\\C-GUY-MDV-AZE-BTN-EGY-GNB-IDN-KEN-LBN-MYS-MDV-MUS-MAR-NAM-NGA-PAN-"
+                "PRY-URY\\ Liquid fuels",
+                ["1.A.2.g.viii.12", "Liquid"],
+                4,
+            ],
+            [
+                "\\C-GUY-MDV-AZE-BTN-EGY-GNB-IDN-KEN-LBN-MYS-MDV-MUS-MAR-NAM-NGA-PAN-"
+                "PRY-URY\\ Solid fuels",
+                ["1.A.2.g.viii.12", "Solid"],
+                4,
+            ],
+            [
+                "\\C-GUY-MDV-AZE-BTN-EGY-GNB-IDN-KEN-LBN-MYS-MDV-MUS-MAR-NAM-NGA-PAN-"
+                "PRY-URY\\ Gaseous fuels (6)",
+                ["1.A.2.g.viii.12", "Gaseous"],
+                4,
+            ],
+            [
+                "\\C-GUY-MDV-AZE-BTN-EGY-GNB-IDN-KEN-LBN-MYS-MDV-MUS-MAR-NAM-NGA-PAN-"
+                "PRY-URY\\ Other fossil fuels (7)",
+                ["1.A.2.g.viii.12", "OtherFF"],
+                4,
+            ],
+            [
+                "\\C-GUY-MDV-AZE-BTN-EGY-GNB-IDN-KEN-LBN-MYS-MDV-MUS-MAR-NAM-NGA-PAN-"
+                "PRY-URY\\ Peat (8)",
+                ["1.A.2.g.viii.12", "Peat"],
+                4,
+            ],
+            [
+                "\\C-GUY-MDV-AZE-BTN-EGY-GNB-IDN-KEN-LBN-MYS-MDV-MUS-MAR-NAM-NGA-PAN-"
+                "PRY-URY\\ Biomass (3)",
+                ["1.A.2.g.viii.12", "Biomass"],
+                4,
+            ],
+            # Other Transformation Industry (1.A.2.g.viii.13)
+            [
+                "\\C-PRT\\ Other Transformation Industry",
+                ["1.A.2.g.viii.13", "Total"],
                 3,
             ],
-            ["Liquid Fuels", ["1.A.2.g.viii.7", "Liquid"], 4],
-            ["Solid Fuels", ["1.A.2.g.viii.7", "Solid"], 4],
-            ["Gaseous Fuels", ["1.A.2.g.viii.7", "Gaseous"], 4],
-            ["Other Fossil Fuels", ["1.A.2.g.viii.7", "OtherFF"], 4],
-            ["Peat", ["1.A.2.g.viii.7", "Peat"], 4],
-            ["Biomass", ["1.A.2.g.viii.7", "Biomass"], 4],
+            ["\\C-PRT\\ Liquid fuels", ["1.A.2.g.viii.13", "Liquid"], 4],
+            ["\\C-PRT\\ Solid fuels", ["1.A.2.g.viii.13", "Solid"], 4],
+            ["\\C-PRT\\ Gaseous fuels (6)", ["1.A.2.g.viii.13", "Gaseous"], 4],
+            ["\\C-PRT\\ Other fossil fuels (7)", ["1.A.2.g.viii.13", "OtherFF"], 4],
+            ["\\C-PRT\\ Peat (8)", ["1.A.2.g.viii.13", "Peat"], 4],
+            ["\\C-PRT\\ Biomass (3)", ["1.A.2.g.viii.13", "Biomass"], 4],
         ],
         "entity_mapping": {
             "EMISSIONS CH4": "CH4",
@@ -2124,14 +2178,11 @@ CRT1 = {
             ["3.A.1.a.ii. Other mature cattle", ["3.A.1.B.b"], 3],
             ["3.A.1.a.iii. Growing cattle", ["3.A.1.B.c"], 3],
             ["3.A.1.a.iv. Other (please specify)", ["3.A.1.B.d"], 3],
-            # AUS
             ["\\C-AUS\\ Dairy Cattle", ["3.A.1.B.d.AUS-i"], 4],
             ["\\C-AUS\\ Beef Cattle - Pasture", ["3.A.1.B.d.AUS-ii"], 4],
             ["\\C-AUS\\ Beef Cattle - Feedlot", ["3.A.1.C.d.AUS-iii"], 4],
-            # MLT
             ["\\C-MLT\\ Bulls", ["3.A.1.B.d.MLT-i"], 4],
             ["\\C-MLT\\ Calves", ["3.A.1.B.d.MLT-ii"], 4],
-            # POL
             ["\\C-POL\\ Bulls (older than 2 years)", ["3.A.1.B.d.POL-i"], 4],
             [
                 "\\C-POL\\ Non-dairy Heifers (older than 2 years)",
@@ -2146,45 +2197,99 @@ CRT1 = {
             ["\\C-POL\\ Non-dairy Young Cattle (1-2 years)", ["3.A.1.C.d.POL-iv"], 4],
             ["\\C-POL\\ Dairy Cattle", ["3.A.1.C.d.POL-v"], 4],
             ["\\C-POL\\ Non-dairy Cattle", ["3.A.1.C.d.POL-vi"], 4],
-            # SVN
             ["\\C-SVN\\ Non-dairy cattle", ["3.A.1.B.d.SVN-i"], 4],
             ["\\C-SVN\\ Other cows", ["3.A.1.B.d.SVN-ii"], 4],
+            ["\\C-CHL\\ Dairy Cattle", ["3.A.1.B.d.CHL-i"], 4],
+            ["\\C-CHL\\ Beef cattle", ["3.A.1.B.d.CHL-ii"], 4],
+            ["\\C-CHL\\ Heifer", ["3.A.1.B.d.CHL-iii"], 4],
+            ["\\C-CHL\\ Beef cattle (> 2 yr)", ["3.A.1.B.d.CHL-iv"], 4],
+            ["\\C-CHL\\ Beef cattle (1 - 2 yr)", ["3.A.1.B.d.CHL-v"], 4],
+            ["\\C-CHL\\ Calves", ["3.A.1.B.d.CHL-vi"], 4],
+            [
+                "\\C-COL\\ 3.A.1.a.i. High production dairy cattle",
+                ["3.A.1.B.d.COL-i"],
+                4,
+            ],
+            [
+                "\\C-COL\\ 3.A.1.a.ii. Low production dairy cattle.",
+                ["3.A.1.B.d.COL-ii"],
+                4,
+            ],
+            ["\\C-COL\\ 3.A.1.a.iii. Beef cattle", ["3.A.1.B.d.COL-iii"], 4],
+            ["\\C-COL\\ 3.A.1.a.iv. Breeding bulls.", ["3.A.1.B.d.COL-iv"], 4],
+            ["\\C-COL\\ 3.A.1.a.v. Pre-weaning calves", ["3.A.1.B.d.COL-v"], 4],
+            ["\\C-COL\\ 3.A.1.a.vi. Replacement heifers.", ["3.A.1.B.d.COL-vi"], 4],
+            [
+                "\\C-COL\\ 3.A.1.a.vii. Beef cattle o Feedlot cattle",
+                ["3.A.1.B.d.COL-vii"],
+                4,
+            ],
+            ["\\C-PAN\\ Low-yielding dairy cows", ["3.A.1.B.d.PAN-i"], 4],
+            ["\\C-PAN\\ Dairy cattle (doble próposito)", ["3.A.1.B.d.PAN-ii"], 4],
+            ["\\C-PAN\\ Young male bull (Novillos)", ["3.A.1.B.d.PAN-iii"], 4],
+            ["\\C-PAN\\ Young calves (terneros)", ["3.A.1.B.d.PAN-iv"], 4],
+            ["\\C-PAN\\ Bull", ["3.A.1.B.d.PAN-v"], 4],
+            ["\\C-USA\\ Dairy cattle", ["3.A.1.B.d.USA-i"], 4],
+            ["\\C-USA\\ Non-dairy cattle", ["3.A.1.B.d.USA-ii"], 4],
+            ["\\C-USA\\ Dairy cows", ["3.A.1.B.d.USA-iii"], 4],
+            ["\\C-USA\\ Heifer feedlot", ["3.A.1.B.d.USA-iv"], 4],
+            ["\\C-USA\\ Steer feedlot", ["3.A.1.B.d.USA-v"], 4],
+            ["\\C-USA\\ Beef replacements", ["3.A.1.B.d.USA-vi"], 4],
+            ["\\C-USA\\ Dairy replacements", ["3.A.1.B.d.USA-vii"], 4],
+            ["\\C-USA\\ Beef cows", ["3.A.1.B.d.USA-viii"], 4],
+            ["\\C-USA\\ Heifer stocker", ["3.A.1.B.d.USA-ix"], 4],
+            ["\\C-USA\\ Steer stocker", ["3.A.1.B.d.USA-x"], 4],
+            ["\\C-USA\\ Bulls", ["3.A.1.B.d.USA-xi"], 4],
+            ["\\C-USA\\ Dairy calves", ["3.A.1.B.d.USA-xii"], 4],
+            ["\\C-USA\\ Beef calves", ["3.A.1.B.d.USA-xiii"], 4],
             ["3.A.2. Sheep", ["3.A.2"], 0],
             ["3.A.2.a. Other (please specify)", ["3.A.2.a"], 1],
-            # AUS, ITA
-            ["Sheep", ["\\IGNORE"], 2],
-            # ITA, NLD
-            ["Sheep (2)", ["\\IGNORE"], 2],
-            # NLD
-            ["Sheep (8)", ["\\IGNORE"], 2],
-            # GUY, MDV
-            ["All sheep [IPCC Software 3.A.1.c]", ["\\IGNORE"], 2],
-            # SGP
-            ["NA", ["\\IGNORE"], 2],
-            # MLT
+            ["\\C-AUS-ITA\\ Sheep", ["\\IGNORE"], 2],
+            ["\\C-ARG\\ All sheep", ["\\IGNORE"], 2],
+            ["\\C-GHA\\ sheep", ["\\IGNORE"], 2],
+            ["\\C-BEL\\ Sheep unspecified", ["\\IGNORE"], 2],
+            ["\\C-CAN\\ Sheep and Lamb", ["\\IGNORE"], 2],
+            ["\\C-COL\\ 3.A.2.a.i. Sheep", ["\\IGNORE"], 2],
+            ["\\C-ITA-NLD\\ Sheep (2)", ["\\IGNORE"], 2],
+            ["\\C-NLD\\ Sheep (8)", ["\\IGNORE"], 2],
+            ["\\C-GUY-MDV\\ All sheep [IPCC Software 3.A.1.c]", ["\\IGNORE"], 2],
+            ["\\C-SGP\\ NA", ["\\IGNORE"], 2],
             ["\\C-MLT\\ Growing Lambs", ["3.A.2.a.MLT-i"], 2],
             ["\\C-MLT\\ Other Mature Ewes", ["3.A.2.a.MLT-ii"], 2],
             ["\\C-MLT\\ Mature Ewes", ["3.A.2.a.MLT-iii"], 2],
-            # SVK
             ["\\C-SVK\\ Mature ewes", ["3.A.2.a.SVK-i"], 2],
             ["\\C-SVK\\ Growing lambs", ["3.A.2.a.SVK-ii"], 2],
             ["\\C-SVK\\ Other mature sheeps", ["3.A.2.a.SVK-iii"], 2],
-            # TUR
             ["\\C-TUR\\ Domestic sheep", ["3.A.2.a.TUR-i"], 2],
             ["\\C-TUR\\ Merino sheep", ["3.A.2.a.TUR-ii"], 2],
+            ["\\C-DZA\\ dairy Sheep", ["3.A.2.a.DZA-i"], 2],
+            ["\\C-DZA\\ Other Sheep", ["3.A.2.a.DZA-ii"], 2],
+            ["\\C-IRL\\ Ewes Lowland", ["3.A.2.a.IRL-i"], 2],
+            ["\\C-IRL\\ Ewes Upland", ["3.A.2.a.IRL-i"], 2],
+            ["\\C-IRL\\ Lambs Lowland", ["3.A.2.a.IRL-i"], 2],
+            ["\\C-IRL\\ Lambs Upland", ["3.A.2.a.IRL-i"], 2],
+            ["\\C-IRL\\ Other Sheep>1yr Lowland", ["3.A.2.a.IRL-i"], 2],
+            ["\\C-IRL\\ Other Sheep>1yr Upland", ["3.A.2.a.IRL-i"], 2],
+            ["\\C-IRL\\ Rams Lowland", ["3.A.2.a.IRL-i"], 2],
+            ["\\C-IRL\\ Rams Upland", ["3.A.2.a.IRL-i"], 2],
+            ["\\C-ISL\\ Mature Ewes", ["3.A.2.a.ISL-i"], 2],
+            ["\\C-ISL\\ Animal for replacement", ["3.A.2.a.ISL-ii"], 2],
+            ["\\C-ISL\\ Other mature sheep", ["3.A.2.a.ISL-ii"], 2],
+            ["\\C-ISL\\ Lambs", ["3.A.2.a.ISL-iv"], 2],
+            ["\\C-USA\\ Sheep", ["3.A.2.a.USA-i"], 2],
+            ["\\C-USA\\ Sheep on feed", ["3.A.2.a.USA-ii"], 2],
+            ["\\C-USA\\ Sheep not on feed", ["3.A.2.a.USA-iii"], 2],
             ["3.A.3. Swine", ["3.A.3"], 0],
             ["3.A.3.a. Other (please specify)", ["3.A.3.a"], 1],
-            # AUS, ITA
-            ["Swine", ["\\IGNORE"], 2],
-            # ITA, NLD
-            ["Swine (3)", ["\\IGNORE"], 2],
-            # NLD
-            ["Swine (7)", ["\\IGNORE"], 2],
-            # GUY, MDV
-            ["All swine [IPCC Software 3.A.1.h]", ["\\IGNORE"], 2],
-            # SGP
-            ["NA", ["\\IGNORE"], 2],
-            # ESP
+            ["\\C-AUS-ITA-CAN\\ Swine", ["\\IGNORE"], 2],
+            ["\\C-NZL\\ Pigs", ["\\IGNORE"], 2],
+            ["\\C-ARG\\ All swine", ["\\IGNORE"], 2],
+            ["\\C-GHA\\ Swine", ["\\IGNORE"], 2],
+            ["\\C-BEL\\ Swine unspecified", ["\\IGNORE"], 2],
+            ["\\C-ITA-NLD\\ Swine (3)", ["\\IGNORE"], 2],
+            ["\\C-NLD\\ Swine (7)", ["\\IGNORE"], 2],
+            ["\\C-GUY-MDV\\ All swine [IPCC Software 3.A.1.h]", ["\\IGNORE"], 2],
+            ["\\C-SGP\\ NA", ["\\IGNORE"], 2],
             ["\\C-ESP\\ White swine (finishing/fattening pigs)", ["3.A.3.a.ESP-i"], 2],
             ["\\C-ESP\\ White swine (sows)", ["3.A.3.a.ESP-ii"], 2],
             [
@@ -2193,48 +2298,43 @@ CRT1 = {
                 2,
             ],
             ["\\C-ESP\\ Iberian swine (sows)", ["3.A.3.a.ESP-iv"], 2],
-            # MLT
             ["\\C-MLT\\ Breeding boars", ["3.A.3.a.MLT-i"], 2],
             ["\\C-MLT\\ Breeding females - gilts", ["3.A.3.a.MLT-ii"], 2],
             ["\\C-MLT\\ Breeding female - sows", ["3.A.3.a.MLT-iii"], 2],
             ["\\C-MLT\\ Fattening pigs more than 50kg", ["3.A.3.a.MLT-iv"], 2],
             ["\\C-MLT\\ Young pigs 20-50kg", ["3.A.3.a.MLT-v"], 2],
             ["\\C-MLT\\ Piglets less than 20kg", ["3.A.3.a.MLT-vi"], 2],
-            # SVK
-            ["\\C-SVK\\ Breeding swine", ["3.A.3.a.SVK-i"], 2],
-            ["\\C-SVK\\ Market swine", ["3.A.3.a.SVK-ii"], 2],
-            # NZL
-            ["\\C-NZL\\ Pigs", ["\\IGNORE"], 2],
-            # most countries
-            ["3.A.4. Other livestock(4)", ["3.A.4"], 0],
-            ["3.A.4.a. Buffalo", ["3.A.4.a"], 1],
-            ["3.A.4.b. Camels", ["3.A.4.b"], 1],
-            ["3.A.4.c. Deer", ["3.A.4.c"], 1],
-            ["3.A.4.d. Goats", ["3.A.4.d"], 1],
-            ["3.A.4.e. Horses", ["3.A.4.e"], 1],
-            ["3.A.4.f. Mules and asses", ["3.A.4.f"], 1],
-            ["3.A.4.g. Poultry", ["3.A.4.g"], 1],
-            ["3.A.4.h. Other", ["3.A.4.h"], 1],
-            ["3.A.4.h.i. Rabbit", ["3.A.4.h.i"], 2],
-            ["3.A.4.h.ii. Reindeer", ["3.A.4.h.ii"], 2],
-            ["3.A.4.h.iii. Ostrich", ["3.A.4.h.iii"], 2],
-            ["3.A.4.h.iv. Fur-bearing animals (5)", ["3.A.4.h.iv"], 2],
-            ["3.A.4.h.v. Other (please specify)", ["3.A.4.h.v"], 2],
-            # GUY
-            ["Alpacas [IPCC Software 3.A.1.j]", ["3.A.4.h.v.1"], 3],
-            ["Llamas [IPCC Software 3.A.1.j]", ["3.A.4.h.v.2"], 3],
-            ["All other species [IPCC Software 3.A.1.j]", ["3.A.4.h.v.10"], 3],
-            # SGP
-            ["Quail", ["3.A.4.h.v.3"], 3],
-            # ESP
-            ["Ducks and other poultry", ["3.A.4.h.v.4"], 3],
-            ["Turkeys", ["3.A.4.h.v.5"], 3],
-            ["Broilers", ["3.A.4.h.v.6"], 3],
-            # CHE
-            ["Livestock outside agriculture", ["3.A.4.h.v.11"], 3],
-            # AUS
-            ["3.A.4. Other livestock (4)", ["3.A.4"], 0],
-            ["Drop down list:", ["\\IGNORE"], 1],
+            ["\\C-SVK-HRV\\ Breeding swine", ["3.A.3.a.SVK-i"], 2],
+            ["\\C-SVK-HRV\\ Market swine", ["3.A.3.a.SVK-ii"], 2],
+            ["\\C-CHL\\ Pigs", ["3.A.3.a.CHL-i"], 2],
+            ["\\C-CHL\\ Boars", ["3.A.3.a.CHL-ii"], 2],
+            ["\\C-CHL\\ Juvenile Pigs", ["3.A.3.a.CHL-iii"], 2],
+            ["\\C-COL\\ 3.A.3.a.i. swine < 6 months", ["3.A.3.a.COL-i"], 2],
+            ["\\C-COL\\ 3.A.3.a.ii. swine > 6 months", ["3.A.3.a.COL-ii"], 2],
+            ["\\C-COL\\ 3.A.3.a.iii. Low productivity swine", ["3.A.3.a.COL-iii"], 2],
+            ["\\C-DNK\\ Sows", ["3.A.3.a.DNK-i"], 2],
+            ["\\C-DNK\\ Fattening Pigs", ["3.A.3.a.DNK-ii"], 2],
+            ["\\C-DNK\\ Weaners", ["3.A.3.a.DNK-iii"], 2],
+            ["\\C-IRL\\ Boars", ["3.A.3.a.IRL-i"], 2],
+            ["\\C-IRL\\ Sows in Pig", ["3.A.3.a.IRL-ii"], 2],
+            ["\\C-IRL\\ Gilts in Pig", ["3.A.3.a.IRL-iii"], 2],
+            ["\\C-IRL\\ Pigs > 20kg", ["3.A.3.a.IRL-iv"], 2],
+            ["\\C-IRL\\ Pigs < 20kg", ["3.A.3.a.IRL-v"], 2],
+            ["\\C-IRL\\ Other Sows for Breeding", ["3.A.3.a.IRL-vi"], 2],
+            ["\\C-IRL\\ Gilts not yet Served", ["3.A.3.a.IRL-vii"], 2],
+            ["\\C-ISL\\ Piglets", ["3.A.3.a.ISL-i"], 2],
+            ["\\C-ISL\\ Sows", ["3.A.3.a.ISL-ii"], 2],
+            ["\\C-USA\\ Swine", ["3.A.3.a.USA-i"], 2],
+            ["\\C-USA\\ Market swine less than 50 lb", ["3.A.3.a.USA-i"], 2],
+            ["\\C-USA\\ Market swine 50-119 lb", ["3.A.3.a.USA-i"], 2],
+            ["\\C-USA\\ Market swine 120-179 lb", ["3.A.3.a.USA-i"], 2],
+            ["\\C-USA\\ Market swine greater than 180 lb", ["3.A.3.a.USA-i"], 2],
+            ["\\C-USA\\ Breeding swine", ["3.A.3.a.USA-i"], 2],
+            # other livestock
+            ["\\C!-AUS-CHL\\ 3.A.4. Other livestock(4)", ["3.A.4"], 0],
+            ["\\C-AUS\\ 3.A.4. Other livestock (4)", ["3.A.4"], 0],
+            ["\\C-CHL\\ 3.A.4. Other livestock (please specify) (4)", ["3.A.4"], 0],
+            ["\\C-AUS-CHL\\ Drop down list:", ["\\IGNORE"], 1],
             ["3.A.4.a. Buffalo", ["3.A.4.a"], 1],
             ["3.A.4.b. Camels", ["3.A.4.b"], 1],
             ["3.A.4.c. Deer", ["3.A.4.c"], 1],
@@ -2242,14 +2342,33 @@ CRT1 = {
             ["3.A.4.e. Horses", ["3.A.4.e"], 1],
             ["3.A.4.f. Mules and asses", ["3.A.4.f"], 1],
             ["3.A.4.g. Poultry", ["3.A.4.g"], 1],
-            ["3.A.4.h. Other", ["3.A.4.h"], 1],
-            ["Drop-down list:", ["\\IGNORE"], 2],
+            ["\\C!-CHL\\ 3.A.4.h. Other", ["3.A.4.h"], 1],
+            ["\\C-CHL\\ 3.A.4.h. Other (please specify)", ["3.A.4.h"], 1],
+            ["\\C-AUS\\ Drop-down list:", ["\\IGNORE"], 2],
             ["3.A.4.h.i. Rabbit", ["3.A.4.h.i"], 2],
             ["3.A.4.h.ii. Reindeer", ["3.A.4.h.ii"], 2],
             ["3.A.4.h.iii. Ostrich", ["3.A.4.h.iii"], 2],
             ["3.A.4.h.iv. Fur-bearing animals (5)", ["3.A.4.h.iv"], 2],
             ["3.A.4.h.v. Other (please specify)", ["3.A.4.h.v"], 2],
-            ["Alpacas", ["3.A.4.h.v.i"], 3],
+            ["\\C-AUS\\ Alpacas", ["3.A.4.h.v.i"], 3],
+            ["\\C-GUY\\ Alpacas [IPCC Software 3.A.1.j]", ["3.A.4.h.v.1"], 3],
+            ["\\C-GUY\\ Llamas [IPCC Software 3.A.1.j]", ["3.A.4.h.v.2"], 3],
+            [
+                "\\C-GUY\\ All other species [IPCC Software 3.A.1.j]",
+                ["3.A.4.h.v.10"],
+                3,
+            ],
+            ["\\C-SGP\\ Quail", ["3.A.4.h.v.3"], 3],
+            ["\\C-ESP\\ Ducks and other poultry", ["3.A.4.h.v.4"], 3],
+            ["\\C-ESP\\ Turkeys", ["3.A.4.h.v.5"], 3],
+            ["\\C-ESP\\ Broilers", ["3.A.4.h.v.6"], 3],
+            ["\\C-CHE\\ Livestock outside agriculture", ["3.A.4.h.v.11"], 3],
+            ["\\C-COL\\ 3.A.4.g.i. Laying hens", ["3.A.4.h.v.12"], 3],
+            ["\\C-COL\\ 3.A.4.g.ii. broiler chicken", ["3.A.4.h.v.13"], 3],
+            ["\\C-CAN\\ Wild Boar", ["3.A.4.h.v.14"], 3],
+            ["\\C-DNK\\ Pheasants", ["3.A.4.h.v.15"], 3],
+            ["\\C-LTU\\ Nutria", ["3.A.4.h.v.16"], 3],
+            ["\\C-USA\\ Americal bison", ["3.A.4.h.v.17"], 3],
         ],
         "entity_mapping": {"EMISSIONS CH4": "CH4"},
         "coords_defaults": {
@@ -2988,13 +3107,13 @@ CRT1 = {
             ["5.D. Wastewater treatment and discharge", ["5.D"]],
             ["5.E. Other (6)", ["5.E"]],
             ["6. Other (please specify) (7)", ["6"]],
-            # GUY, MDV
-            ["Other sources of emissions/removals [IPCC Software 5.C]", ["6.A"]],
-            # CHE
-            ["Other non-specified", ["6.A"]],
-            # JPN
-            ["Smoking", ["6.B"]],
-            # NZL
+            [
+                "\\C-GUY-MDV-AZE-BTN-EGY-GNB-IDN-KEN-LBN-MYS-MUS-MAR-NAM-NGA-PRY-URY-UZB\\"
+                " Other sources of emissions/removals [IPCC Software 5.C]",
+                ["6.A"],
+            ],
+            ["\\C-CHE\\ Other non-specified", ["6.A"]],
+            ["\\C-JPN\\ Smoking", ["6.B"]],
             ["\\C-NZL\\ 6. Tokelau_1. Energy", ["6.NZL-A"]],
             [
                 "\\C-NZL\\ 6. Tokelau_2. Industrial Processes and Product Use",
@@ -3002,8 +3121,9 @@ CRT1 = {
             ],
             ["\\C-NZL\\ 6. Tokelau_3. Agriculture", ["6.NZL-C"]],
             ["\\C-NZL\\ 6. Tokelau_5. Waste", ["6.NZL-D"]],
-            # AUS
-            ["NA", ["\\IGNORE"]],
+            ["\\C-AUS-BRA-CHL-ECU-SGP\\ NA", ["\\IGNORE"]],
+            ["\\C-COL-LTU\\ Other", ["6.A"]],
+            ["\\C-GHA\\ Aquaculture", ["6.B"]],
             ["", ["\\IGNORE"]],
             ["nan", ["\\IGNORE"]],
             ["Memo items: (8)", ["\\IGNORE"]],

+ 106 - 34
src/unfccc_ghg_data/unfccc_crf_reader/unfccc_crf_reader_core.py

@@ -11,6 +11,7 @@ import os
 import re
 from collections import Counter
 from collections.abc import Generator
+from copy import deepcopy
 from datetime import datetime, timedelta
 from operator import itemgetter
 from pathlib import Path
@@ -404,16 +405,21 @@ def read_crf_table_from_file(  # noqa: PLR0912, PLR0915
     file_info = get_info_from_crf_filename(file.name)
 
     # find non-unique categories in mapping
-    all_cats_mapping = table_spec["sector_mapping"]
-    all_cats = [cat[0] for cat in all_cats_mapping]
+    all_cats_mapping = deepcopy(table_spec["sector_mapping"])
+    # prep specification
+    all_cats_mapping = prep_specification(
+        specification=all_cats_mapping, country=file_info["party"]
+    )
+    all_cats = [cat[0][0] for cat in all_cats_mapping]
 
     unique_cats = [cat for (cat, count) in Counter(all_cats).items() if count == 1]
     unique_cat_tuples = [
-        mapping for mapping in all_cats_mapping if mapping[0] in unique_cats
+        mapping for mapping in all_cats_mapping if mapping[0][0] in unique_cats
     ]
     unique_mapping = dict(
         zip(
-            [tup[0] for tup in unique_cat_tuples], [tup[1] for tup in unique_cat_tuples]
+            [tup[0][0] for tup in unique_cat_tuples],
+            [tup[1] for tup in unique_cat_tuples],
         )
     )
     non_unique_cats = [cat for (cat, count) in Counter(all_cats).items() if count > 1]
@@ -686,7 +692,13 @@ def read_crf_table_from_file(  # noqa: PLR0912, PLR0915
                         f"{file_info['party']}, {file_info['data_year']}."
                     )
                     unknown_categories.append(
-                        [table, file_info["party"], current_cat, file_info["data_year"]]
+                        [
+                            table,
+                            file_info["party"],
+                            current_cat,
+                            file_info["data_year"],
+                            idx,
+                        ]
                     )
 
     for idx, col in enumerate(table_properties["categories"]):
@@ -1123,24 +1135,30 @@ def create_category_tree(
         "id": "root",
     }
 
-    # filter categories in case country is given
-    if country is not None:
-        # remove country tags from categories and mark categories
-        # for other countries for removal
-        specification = [filter_category(mapping, country) for mapping in specification]
-        # remove the categories for other countries
-        specification = [
-            mapping for mapping in specification if mapping[0] != "\\REMOVE"
-        ]
+    # prep mappings
+    specification_list = prep_specification(
+        specification=specification, country=country
+    )
 
     # build a tree from specification
     # when looping over the categories present in the table
     # to read data from we walk along this tree
-    for idx, mapping in enumerate(specification):
+    for idx, mapping in enumerate(specification_list):
         current_cat = mapping[0]
         current_cat_level = mapping[2]
+        if len(current_cat) > 1:
+            message = (
+                "More than one category names in mapping rule. "
+                "This is currently not supported. "
+                "Use country specific mappings to incorporte differences in "
+                f"category names. Rule: {mapping}, Country: {country}"
+            )
+            print(message)
+            raise ValueError(message)
+        current_cat = current_cat[0]
+
         if current_cat_level == last_cat_info["level"]:
-            # cat has the same level as preceeding on, so no change to
+            # cat has the same level as preceeding one, so no change to
             # parent node
             category_tree.create_node(
                 current_cat, idx, parent=parent_info[-1]["id"], data=mapping
@@ -1186,6 +1204,57 @@ def create_category_tree(
     return category_tree
 
 
+def prep_specification(
+    specification: list[list],
+    country: Optional[str] = None,
+) -> list[list]:
+    """
+    Prepare specification to build tree or use directly
+
+    Unifies data format and filter for country
+
+    Parameters
+    ----------
+    specification :
+        The table specification to process
+    country :
+        Country to filter for
+
+    Returns
+    -------
+        list with modified specification
+
+    """
+    # prep mappings (make sure first item is a list)
+    specification_list = [listify(mapping) for mapping in specification]
+
+    # filter categories in case country is given
+    if country is not None:
+        # remove country tags from categories and mark categories
+        # for other countries for removal
+        specification_list = [
+            filter_category(mapping, country) for mapping in specification_list
+        ]
+        # remove the categories for other countries
+        specification_list = [
+            mapping for mapping in specification_list if mapping[0] != ["\\REMOVE"]
+        ]
+    return specification_list
+
+
+def listify(mapping: list) -> list:
+    """Make sure first item of mapping is a list"""
+    if isinstance(mapping[0], str):
+        mapping[0] = [mapping[0]]
+    elif isinstance(mapping[0], list):
+        pass
+    else:
+        raise TypeError(  # noqa: TRY003
+            f"First element of mapping has to be str or list: {mapping}"
+        )
+    return mapping
+
+
 def filter_category(
     mapping: list,
     country: str,
@@ -1217,25 +1286,28 @@ def filter_category(
     regex_include = r"\\C-([A-Z\-]+)\\"
     regex_include_full = r"(\\C-[A-Z\-]+\\)"
     new_mapping = mapping.copy()
-    if mapping[0].startswith(string_exclude):
-        re_result = re.search(regex_exclude, mapping[0])
-        countries_ex = re_result.group(1)
-        countries_ex = countries_ex.split("-")
-        if country in countries_ex:
-            new_mapping[0] = "\\REMOVE"
-        else:
-            re_result = re.search(regex_exclude_full, mapping[0])
-            new_mapping[0] = mapping[0][len(re_result.group(1)) + 1 :]
-    elif mapping[0].startswith(string_include):
-        re_result = re.search(regex_include, mapping[0])
-        countries_in = re_result.group(1)
-        countries_in = countries_in.split("-")
-        if country in countries_in:
-            re_result = re.search(regex_include_full, mapping[0])
-            new_mapping[0] = mapping[0][len(re_result.group(1)) + 1 :]
+    new_items = []
+    for item in mapping[0]:
+        if item.startswith(string_exclude):
+            re_result = re.search(regex_exclude, item)
+            countries_ex = re_result.group(1)
+            countries_ex = countries_ex.split("-")
+            if country not in countries_ex:
+                re_result = re.search(regex_exclude_full, item)
+                new_items.append(item[len(re_result.group(1)) + 1 :])
+        elif item.startswith(string_include):
+            re_result = re.search(regex_include, item)
+            countries_in = re_result.group(1)
+            countries_in = countries_in.split("-")
+            if country in countries_in:
+                re_result = re.search(regex_include_full, item)
+                new_items.append(item[len(re_result.group(1)) + 1 :])
         else:
-            new_mapping[0] = "\\REMOVE"
+            new_items.append(item)
 
+    if not new_items:
+        new_items = ["\\REMOVE"]
+    new_mapping[0] = new_items
     return new_mapping
 
 
@@ -1357,7 +1429,7 @@ def get_latest_version_for_country(
                     downloaded_data_path_UNFCCC / folder / f"BTR{submission_round}"
                 )
                 if folder_submission.exists():
-                    versions = versions + get_submission_dates(
+                    versions = versions + get_submission_versions(
                         folder_submission, file_filter
                     )
             submission_version = find_latest_version(versions)

+ 25 - 9
tests/unit/test_crf_reader.py

@@ -75,19 +75,19 @@ def test_get_info_from_crf_filename():
 
 def test_filter_category():
     # general
-    map_gen = ["Option C (country-specific):", ["\\IGNORE"], 4]
+    map_gen = [["Option C (country-specific):"], ["\\IGNORE"], 4]
     assert filter_category(map_gen, "MOZ") == map_gen
 
     # country specific
     expected = [
-        "Other (as specified in table 3(I).A)",
+        ["Other (as specified in table 3(I).A)"],
         ["3.A.1.C"],
         5,
     ]
-    expected_remove = ["\\REMOVE", ["3.A.1.C"], 5]
+    expected_remove = [["\\REMOVE"], ["3.A.1.C"], 5]
     # exclude multiple
     map_excl_multiple = [
-        "\\C!-AUS-MLT-LUX-POL-SVN-USA\\ Other (as specified in table 3(I).A)",
+        ["\\C!-AUS-MLT-LUX-POL-SVN-USA\\ Other (as specified in table 3(I).A)"],
         ["3.A.1.C"],
         5,
     ]
@@ -96,22 +96,22 @@ def test_filter_category():
 
     # exclude single
     map_excl_single = [
-        "\\C!-AUS\\ Other (as specified in table 3(I).A)",
+        ["\\C!-AUS\\ Other (as specified in table 3(I).A)"],
         ["3.A.1.C"],
         5,
     ]
     expected = [
-        "Other (as specified in table 3(I).A)",
+        ["Other (as specified in table 3(I).A)"],
         ["3.A.1.C"],
         5,
     ]
-    expected_remove = ["\\REMOVE", ["3.A.1.C"], 5]
+    expected_remove = [["\\REMOVE"], ["3.A.1.C"], 5]
     assert filter_category(map_excl_single, "MOZ") == expected
     assert filter_category(map_excl_single, "AUS") == expected_remove
 
     # include multiple
     map_incl_multiple = [
-        "\\C-AUS-NLD\\ Other (as specified in table 3(I).A)",
+        ["\\C-AUS-NLD\\ Other (as specified in table 3(I).A)"],
         ["3.A.1.C"],
         5,
     ]
@@ -120,10 +120,26 @@ def test_filter_category():
     assert filter_category(map_incl_multiple, "NLD") == expected
 
     # include single
-    map_incl_single = ["\\C-AUS\\ Other (as specified in table 3(I).A)", ["3.A.1.C"], 5]
+    map_incl_single = [
+        ["\\C-AUS\\ Other (as specified in table 3(I).A)"],
+        ["3.A.1.C"],
+        5,
+    ]
     assert filter_category(map_incl_single, "MOZ") == expected_remove
     assert filter_category(map_incl_single, "AUS") == expected
 
+    # multiple items
+    map_incl_mult_items = [
+        [
+            "\\C-AUS\\ Other (as specified in table 3(I).A)",
+            "\\C-NLD\\ Other (as specified in table 3(I).A)",
+        ],
+        ["3.A.1.C"],
+        5,
+    ]
+    assert filter_category(map_incl_mult_items, "MOZ") == expected_remove
+    assert filter_category(map_incl_mult_items, "AUS") == expected
+
 
 def test_get_country_folders():
     # BTR1