diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d061dab..3410e303 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - ES: Added Spain-wide converter based on FEGA 2025+. - IE: Added `ie_lpis` with DAFM's Anonymous LPIS parcels for 2017-2022 and 2025 - IT-1: Added Tuscany converter based on EuroCrops v2. +- Added `EuroCropsV2Mixin` and the converters `ec_at`, `ec_be_wal`, `ec_de_bb`, `ec_de_nrw` and `ec_es` for the editions of a national dataset that only the JRC's EuroCrops V2 still offers. They take the national converter's crop table and admin codes, so their output fits the national collection. - IT-BZ: Added South Tyrol converter. - LT-KZS: Added Lithuania KŽS reference parcels converter. - PL: @@ -41,6 +42,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - ZA-FUSION: Added South Africa converter based on the ESA Fusion Competition dataset. ### Changed +- EC-FR: Reads 2015, 2016 and 2018 from EuroCrops V2 (CC-BY-4.0) instead of only 2018 from EuroCrops V1. +- EC-EE: Reads 2015 from EuroCrops V2 instead of 2021 from EuroCrops V1, which the national `ee` covers. +- EC-BE-VLG: Reads the Flemish editions 2008-2017 from EuroCrops V2 instead of the 2021 EuroCrops V1 file, which the national `be_vlg` covers; buildings are left out. - `fiboa publish` no longer uploads to S3 or generates README/LICENSE files. It now creates GeoParquet, PMTiles and a STAC Collection with relative links, checksums and web-map-links. - Updated `aiohttp` to support Zenodo responses that include both returned `Content-Type` headers. - Improved geometry axis handling so generated tiles and bounding boxes keep x/y order consistent in output. @@ -116,8 +120,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Excluded NBF ineligible patches with empty crop code. - Fixed source encoding and FLIK handling. - DE-NDS: Added stable collection IDs where missing. +- DE-NRW: The INSPIRE id is now read from the source, as the declared INSPIRE extension requires. - DE-SAX: Updated to current available archive campaign. - DE-SAX: The title says it holds field blocks. +- EE: Parcels that declare no crop are left out. - DE-SL: - Fixed parser issues with scientific notation in area values. - Restored full paging coverage and area derivation for complete output. diff --git a/fiboa_cli/datasets/be_wal.py b/fiboa_cli/datasets/be_wal.py index d45e2b9e..f70a6e09 100644 --- a/fiboa_cli/datasets/be_wal.py +++ b/fiboa_cli/datasets/be_wal.py @@ -37,6 +37,8 @@ class Converter(AdminConverterMixin, AddHCATMixin, FiboaBaseConverter): "determination:datetime": "determination:datetime", } hcat_mapping_csv = "be_wal_all_years.csv" + # codes after 2017, cut from the JRC's EuroCrops V2 table + hcat_mapping_supplements = ["https://fiboa.org/code/be/wal_supplement.csv"] # 208 of that table's 298 rows carry no code, only the crop name, so every # crop whose coded row is missing went unmapped: 23,216 fields over 59 codes. hcat_mapping_name_fallback = True diff --git a/fiboa_cli/datasets/commons/ec.py b/fiboa_cli/datasets/commons/ec.py index c5ac6b70..90dcff28 100644 --- a/fiboa_cli/datasets/commons/ec.py +++ b/fiboa_cli/datasets/commons/ec.py @@ -1,3 +1,5 @@ +from typing import Sequence + from fiboa_cli.datasets.commons.hcat import AddHCATMixin @@ -29,3 +31,76 @@ def __init__(self, *args, **kwargs): provider = "EuroCrops " self.provider = (f"{self.provider}, {provider}") if self.provider else provider self.license = "CC-BY-SA-4.0" + + +JRC_V2_BASE = "https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/DRLL/EuroCropsV2/gpqtv202" + + +class EuroCropsV2Mixin: + """ + Converts the editions of a national dataset that only the JRC's EuroCrops V2 still offers, so + that they fit the national collection: they take its crop table, admin codes and crop columns. + A subclass names the national converter, the NUTS code of the files and the years it supplies. + """ + + national = None + nuts: str = "" + years: Sequence[int] = () + # Codes of rows that are no field, e.g. buildings or landscape elements + drop_codes: set[str] = set() + # The national table is keyed on crop names, which the source codes otherwise (ee) + code_from_name = False + + description = """ +The editions the national source no longer offers, from EuroCrops V2: the Joint Research Centre's +harmonised archive of the Geo-Spatial Aid Application declarations, one GeoParquet per NUTS region +and year in EPSG:3035. The crop codes are the national ones, mapped to HCAT with the national table. + """ + provider = ( + "Joint Research Centre, European Commission " + "" + ) + attribution = "European Commission, Joint Research Centre — EuroCropsV2" + license = "CC-BY-4.0" + + def __init_subclass__(cls, **kwargs): + super().__init_subclass__(**kwargs) + national = cls.national + cls.id = f"ec_{national.id}" + cls.short_name = national.short_name + cls.title = f"{national.title.strip()} — EuroCrops V2" + cls.variants = { + str(y): f"{JRC_V2_BASE}/{cls.nuts}_{y}.parquet" for y in sorted(cls.years, reverse=True) + } + for attr in ( + "hcat_mapping_csv", + "hcat_mapping_supplements", + "hcat_mapping_name_fallback", + "admin_subdivision_code", + ): + if hasattr(national, attr): + setattr(cls, attr, getattr(national, attr)) + # AdminConverterMixin would otherwise read the country from this class's id, "ec_..." + cls.admin_country_code = ( + getattr(national, "admin_country_code", None) or national.id.split("_")[0].upper() + ) + + cls.columns = { + "geometry": "geometry", + "cropfield": "id", + "area_ha": "metrics:area", + "original_code": "crop:code", + } + if "crop:name" in national.columns.values(): + cls.columns["original_name"] = "crop:name" + if cls.drop_codes: + cls.column_filters = {"original_code": lambda col: ~col.isin(cls.drop_codes)} + + def migrate(self, gdf): + # es 2023 stores its codes as floats + codes = gdf["original_code"].astype("string").str.replace(r"\.0$", "", regex=True) + if self.code_from_name: + names = self.hcat_lookup("original_name", "original_code", strip=True) + codes = gdf["original_name"].str.strip().map(names) + gdf["original_code"] = codes + return super().migrate(gdf) diff --git a/fiboa_cli/datasets/de_bb.py b/fiboa_cli/datasets/de_bb.py index a98bfed0..ae404d40 100644 --- a/fiboa_cli/datasets/de_bb.py +++ b/fiboa_cli/datasets/de_bb.py @@ -14,7 +14,11 @@ class Converter(AdminConverterMixin, AddHCATMixin, FiboaBaseConverter): license = "DL-DE-BY-2.0" provider = "Land Brandenburg " hcat_mapping_csv = "de.csv" - hcat_mapping_supplements = ["https://fiboa.org/code/de/de_supplement.csv"] + hcat_mapping_supplements = [ + "https://fiboa.org/code/de/de_supplement.csv", + # Brandenburg's own codes, cut from the JRC's EuroCrops V2 table + "https://fiboa.org/code/de/bb_supplement.csv", + ] # The .cpg claims UTF-8 but the DBF is cp1252 (June 2026 download) open_options = dict(encoding="cp1252") diff --git a/fiboa_cli/datasets/de_nrw.py b/fiboa_cli/datasets/de_nrw.py index 61eecf72..57912a80 100644 --- a/fiboa_cli/datasets/de_nrw.py +++ b/fiboa_cli/datasets/de_nrw.py @@ -18,9 +18,12 @@ class Converter(AdminConverterMixin, AddHCATMixin, FiboaBaseConverter): "https://fiboa.org/flik-extension/v0.2.0/schema.yaml", } hcat_mapping_csv = "de_nrw_2021.csv" + # codes after 2021, cut from the JRC's EuroCrops V2 table + hcat_mapping_supplements = ["https://fiboa.org/code/de/nrw_supplement.csv"] columns = { "geometry": "geometry", "ID": "id", + "INSPIRE_ID": "inspire:id", "FLIK": "flik", "BEGINLIFES": "determination:datetime", "CODE": "crop:code", diff --git a/fiboa_cli/datasets/ec_at.py b/fiboa_cli/datasets/ec_at.py new file mode 100644 index 00000000..c3d2f162 --- /dev/null +++ b/fiboa_cli/datasets/ec_at.py @@ -0,0 +1,12 @@ +from vecorel_cli.conversion.admin import AdminConverterMixin + +from ..conversion.fiboa_converter import FiboaBaseConverter +from .at import Converter as ATConverter +from .commons.ec import EuroCropsV2Mixin +from .commons.hcat import AddHCATMixin + + +class Converter(EuroCropsV2Mixin, AdminConverterMixin, AddHCATMixin, FiboaBaseConverter): + national = ATConverter + nuts = "at" + years = range(2015, 2018) diff --git a/fiboa_cli/datasets/ec_be_vlg.py b/fiboa_cli/datasets/ec_be_vlg.py index 9eb0b6c8..37f0ac4a 100644 --- a/fiboa_cli/datasets/ec_be_vlg.py +++ b/fiboa_cli/datasets/ec_be_vlg.py @@ -1,17 +1,14 @@ -from .be_vlg import Converter as BEVLGBaseConverter -from .commons.ec import EuroCropsConverterMixin +from vecorel_cli.conversion.admin import AdminConverterMixin +from ..conversion.fiboa_converter import FiboaBaseConverter +from .be_vlg import Converter as BEVLGConverter +from .commons.ec import EuroCropsV2Mixin +from .commons.hcat import AddHCATMixin -class ECConverter(EuroCropsConverterMixin, BEVLGBaseConverter): - id = "ec_be_vlg" - sources = { - "https://zenodo.org/records/10118572/files/BE_VLG_2021.zip?download=1": [ - "BE_VLG_2021/BE_VLG_2021_EC21.shp" - ] - } - # the single EuroCrops 2021 release, not the parent's yearly editions - variants = {} - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - del self.columns["BT_OMSCH"] +class Converter(EuroCropsV2Mixin, AdminConverterMixin, AddHCATMixin, FiboaBaseConverter): + national = BEVLGConverter + nuts = "be2" + years = range(2008, 2018) + # buildings: "Hoofdgebouwen", "Andere gebouwen" + drop_codes = {"1", "2"} diff --git a/fiboa_cli/datasets/ec_be_wal.py b/fiboa_cli/datasets/ec_be_wal.py new file mode 100644 index 00000000..305a42f6 --- /dev/null +++ b/fiboa_cli/datasets/ec_be_wal.py @@ -0,0 +1,12 @@ +from vecorel_cli.conversion.admin import AdminConverterMixin + +from ..conversion.fiboa_converter import FiboaBaseConverter +from .be_wal import Converter as BEWALConverter +from .commons.ec import EuroCropsV2Mixin +from .commons.hcat import AddHCATMixin + + +class Converter(EuroCropsV2Mixin, AdminConverterMixin, AddHCATMixin, FiboaBaseConverter): + national = BEWALConverter + nuts = "be3" + years = [*range(2015, 2022), 2023] diff --git a/fiboa_cli/datasets/ec_de_bb.py b/fiboa_cli/datasets/ec_de_bb.py new file mode 100644 index 00000000..7a8dff30 --- /dev/null +++ b/fiboa_cli/datasets/ec_de_bb.py @@ -0,0 +1,15 @@ +from vecorel_cli.conversion.admin import AdminConverterMixin + +from ..conversion.fiboa_converter import FiboaBaseConverter +from .commons.ec import EuroCropsV2Mixin +from .commons.hcat import AddHCATMixin +from .de_bb import Converter as DEBBConverter + + +class Converter(EuroCropsV2Mixin, AdminConverterMixin, AddHCATMixin, FiboaBaseConverter): + national = DEBBConverter + nuts = "de4" + years = range(2010, 2024) + # landscape elements (hedges, tree rows, copses, wetlands, single trees, stone walls, rock + # ridges) mapped as their own polygons from 2018 + drop_codes = {"1", "2", "3", "4", "5", "10011", "10012"} diff --git a/fiboa_cli/datasets/ec_de_nrw.py b/fiboa_cli/datasets/ec_de_nrw.py new file mode 100644 index 00000000..0b29213b --- /dev/null +++ b/fiboa_cli/datasets/ec_de_nrw.py @@ -0,0 +1,12 @@ +from vecorel_cli.conversion.admin import AdminConverterMixin + +from ..conversion.fiboa_converter import FiboaBaseConverter +from .commons.ec import EuroCropsV2Mixin +from .commons.hcat import AddHCATMixin +from .de_nrw import Converter as DENRWConverter + + +class Converter(EuroCropsV2Mixin, AdminConverterMixin, AddHCATMixin, FiboaBaseConverter): + national = DENRWConverter + nuts = "dea" + years = range(2019, 2024) diff --git a/fiboa_cli/datasets/ec_ee.py b/fiboa_cli/datasets/ec_ee.py index 8040e387..02668042 100644 --- a/fiboa_cli/datasets/ec_ee.py +++ b/fiboa_cli/datasets/ec_ee.py @@ -1,61 +1,12 @@ -import pandas as pd - from ..conversion.fiboa_converter import FiboaBaseConverter -from .commons.ec import EuroCropsConverterMixin - -# todo: The dataset doesn't validate due to a self intersecting polygon -# How do we want to handle this? - +from .commons.ec import EuroCropsV2Mixin +from .commons.hcat import AddHCATMixin +from .ee import Convert as EEConverter -class Convert(EuroCropsConverterMixin, FiboaBaseConverter): - hcat_mapping_csv = "ee_2021.csv" - ec_year = 2021 - sources = { - "https://zenodo.org/records/14094196/files/EE_2021.zip?download=1": [ - "EE_2021/EE_2021_EC21.shp" - ] - } - id = "ec_ee" - short_name = "Estonia" - title = "Field boundaries for Estonia" - description = """ -Geospatial Aid Application Estonia Agricultural parcels. -The original dataset is provided by ARIB and obtained from the INSPIRE theme GSAA (specifically Geospaial Aid Application Estonia Agricultural parcels) through which the data layer Fields and Eco Areas (GSAA) is made available. -The data comes from ARIB's database of agricultural parcels. - """ - provider = "Põllumajanduse Registrite ja Informatsiooni Amet " - attribution = "© Põllumajanduse Registrite ja Informatsiooni Amet" - columns = { - "geometry": "geometry", - "pollu_id": "id", - "taotlusaas": "determination:datetime", # year - "pindala_ha": "metrics:area", # area (in ha) - "taotletud_": "crop:code", # requested crop culture - "taotletu_1": "taotletud_maakasutus", # requested land use - "taotletu_2": "taotletud_toetus", # requested support - "niitmise_t": "niitmise_tuvastamise_staatus", # mowing detection status - "niitmise_1": "niitmise_tuvast_ajavahemik", # mowing detection period - "viimase_mu": "viimase_muutmise_aeg", # Last edit time (date-date) - "taotleja_n": "taotleja_nimi", # name of applicant - "taotleja_r": "taotleja_registrikood", # applicant's registration code - } - # The shapefile truncates taotlusaasta ("application year") to ten characters; - # it holds a bare year, which has to become a datetime for the STAC extent. - column_migrations = {"taotlusaas": lambda col: pd.to_datetime(col, format="%Y")} - missing_schemas = { - "required": [ - "taotletud_maakasutus", - "viimase_muutmise_aeg", - "taotleja_nimi", - ], - "properties": { - "taotletud_maakasutus": {"type": "string"}, - "niitmise_tuvastamise_staatus": {"type": "string"}, - "niitmise_tuvast_ajavahemik": {"type": "string"}, - "viimase_muutmise_aeg": {"type": "string"}, - "taotletud_toetus": {"type": "string"}, - "taotleja_nimi": {"type": "string"}, - "taotleja_registrikood": {"type": "string"}, - }, - } +class Converter(EuroCropsV2Mixin, AddHCATMixin, FiboaBaseConverter): + national = EEConverter + nuts = "ee" + # PRIA's WFS layers before 2016 are empty + years = (2015,) + code_from_name = True diff --git a/fiboa_cli/datasets/ec_es.py b/fiboa_cli/datasets/ec_es.py new file mode 100644 index 00000000..d3382ad7 --- /dev/null +++ b/fiboa_cli/datasets/ec_es.py @@ -0,0 +1,12 @@ +from vecorel_cli.conversion.admin import AdminConverterMixin + +from ..conversion.fiboa_converter import FiboaBaseConverter +from .commons.ec import EuroCropsV2Mixin +from .commons.hcat import AddHCATMixin +from .es import Converter as ESConverter + + +class Converter(EuroCropsV2Mixin, AdminConverterMixin, AddHCATMixin, FiboaBaseConverter): + national = ESConverter + nuts = "es" + years = range(2021, 2024) diff --git a/fiboa_cli/datasets/ec_fr.py b/fiboa_cli/datasets/ec_fr.py index 87eced3a..a447c550 100644 --- a/fiboa_cli/datasets/ec_fr.py +++ b/fiboa_cli/datasets/ec_fr.py @@ -1,36 +1,13 @@ -from ..conversion.fiboa_converter import FiboaBaseConverter -from .commons.ec import EuroCropsConverterMixin - +from vecorel_cli.conversion.admin import AdminConverterMixin -class Converter(EuroCropsConverterMixin, FiboaBaseConverter): - hcat_mapping_csv = "fr_2018.csv" - hcat_mapping_supplements = ["https://fiboa.org/code/fr/fr_2018_supplement.csv"] - ec_year = 2018 - sources = { - "https://zenodo.org/records/14094196/files/FR_2018.zip": ["FR_2018/FR_2018_EC21.shp"] - } +from ..conversion.fiboa_converter import FiboaBaseConverter +from .commons.ec import EuroCropsV2Mixin +from .commons.hcat import AddHCATMixin +from .fr import FRConverter - id = "ec_fr" - short_name = "France" - title = "Field boundaries for France" - description = """ -The 2018 campaign of the Registre Parcellaire Graphique, which IGN never released as an -archive of its own: the RPG downloads run 2017 and 2019 onwards. EuroCrops publishes it -with its HCAT columns already resolved. - """ - provider = "Institut National de l'Information Géographique et Forestière " - attribution = "IGN - Original data from https://geoservices.ign.fr/rpg" - columns = { - "geometry": "geometry", - "ID_PARCEL": "id", - "SURF_PARC": "metrics:area", - "CODE_CULTU": "crop:code", - "CODE_GROUP": "group_code", - } - missing_schemas = {"properties": {"group_code": {"type": "string"}}} - column_migrations = { - "CODE_GROUP": lambda col: col.astype("string").str.strip(), - } - # SURF_PARC is rounded to 0.01 ha, so a parcel under 50 m2 reads as zero and is - # measured from the geometry (area_calculate_missing) +class Converter(EuroCropsV2Mixin, AdminConverterMixin, AddHCATMixin, FiboaBaseConverter): + national = FRConverter + nuts = "fr" + # IGN's RPG downloads run 2017 and 2019 onwards + years = (2015, 2016, 2018) diff --git a/fiboa_cli/datasets/ee.py b/fiboa_cli/datasets/ee.py index 3735cf24..a3d052c0 100644 --- a/fiboa_cli/datasets/ee.py +++ b/fiboa_cli/datasets/ee.py @@ -38,6 +38,8 @@ class Convert(AddHCATMixin, FiboaBaseConverter): attribution = "© Põllumajanduse Registrite ja Informatsiooni Amet" license = "CC-BY-SA-3.0" columns = COLUMNS + # a few parcels declare no crop + column_filters = {"taotletud_kultuur": lambda col: col.str.strip().fillna("") != ""} column_migrations = {"taotlusaasta": lambda col: pd.to_datetime(col, format="%Y")} missing_schemas = { "properties": { diff --git a/tests/data-files/convert/be_wal/wal_supplement.csv b/tests/data-files/convert/be_wal/wal_supplement.csv new file mode 100644 index 00000000..75134605 --- /dev/null +++ b/tests/data-files/convert/be_wal/wal_supplement.csv @@ -0,0 +1,18 @@ +original_code,original_name,translated_name,HCAT3_name,HCAT3_code +19,Culture hydroponique ou aquaponique,Hydroponic or aquaponic cultivation,not_known_and_other,3399000000 +48,Cameline,Camelina,camelina,3301061500 +59,Fenugrec,Fenugreek,fenugreek,3301020400 +89,Terre en jachère à activité minimale avec EAG,Fallow land with minimal activity with EAG,fallow_land_not_crop,3301110000 +383,Millet,Millet,millet_sorghum,3301010900 +397,"Mélange froment ou épeautre ( plus de 50%) et de  pois ou féverole (plus de 20%), commercialisé à l'état sec","Mixture of wheat or spelt (more than 50%) and peas or fava beans (more than 20%), marketed in a dry state.",cereal,3301010000 +614,Prairie avec moins de 90 % couvert herbacé (pratiques locales établies),Pasture with less than 90% herbaceous cover (established local practices).,pasture_meadow_grassland_grass,3302000000 +700,Mélange graminées/trèfle,Grass/clover mix,clover,3301090303 +722,Trèfle pérenne,Perennial clover,clover,3301090303 +723,Trèfle violet,Red clover,clover,3301090303 +747,Vesce,Vetch,vetches,3301090305 +812,Jachère non herbacée,non-herbaceous fallow,fallow_land_not_crop,3301110000 +923,Lin d'hiver (fibre),Winter flax (fiber),flax_linseed,3301060700 +933,Pois chiche,Chickpea,chickpeas,3301020200 +934,lentille,lentil,lentils,3301020500 +967,Maraichage diversifié,Diversified vegetables,fresh_vegetables,3301070000 +9732,Cultures fruitières pluriannuelles (prunes) - hautes tiges,multi-annual fruit crops (plums) - tall stalks,plums,3303011300 diff --git a/tests/data-files/convert/de_bb/bb_supplement.csv b/tests/data-files/convert/de_bb/bb_supplement.csv new file mode 100644 index 00000000..01030e92 --- /dev/null +++ b/tests/data-files/convert/de_bb/bb_supplement.csv @@ -0,0 +1,68 @@ +original_code,original_name,translated_name,HCAT3_name,HCAT3_code +6,Festwiese,Permanent meadow,pasture_meadow_grassland_grass,3302000000 +7,Parkplatz,parking space,not_known_and_other,3399000000 +8,Spargel unter Folie,Asparagus under cover,asparagus,3301200000 +9,EUGAL-Bautätigkeiten,EUGAL construction activities,not_known_and_other,3399000000 +10,Einjährige Blühstreifen AUKM,Annual flower strips AUKM,flowers_ornamental_plants,3301080000 +11,Mehrjährige Blühstreifen AUKM,Perennial flower strips AUKM,flowers_ornamental_plants,3301080000 +12,Ackerrandstreifen AUKM,Field margin AUKM (Agrarumwelt- und Klimamaßnahmen),not_known_and_other,3399000000 +13,Feldraine,Field margins,not_known_and_other,3399000000 +14,Gewässerschutz-/Uferrandstreifen AUKM,Water protection/riparian strips AUKM,not_known_and_other,3399000000 +83,Agroforststreifen ohne ÖR,Agroforestry strips without ÖR,tree_wood_forest,3306000000 +88,ÖR 1a ohne Produktion (Selbst-/Begrünung),ÖR 1a without production (self-greening/greening),fallow_land_not_crop,3301110000 +89,ÖR 1b Blühstreifen auf AL,ÖR 1b Flower strips on AL,flowers_ornamental_plants,3301080000 +90,ÖR 1b Blühfläche auf AL,ÖR 1b Flowering area on AL,flowers_ornamental_plants,3301080000 +91,ÖR 1c Blühstreifen auf DK,ÖR 1c Flowering strips on DK,flowers_ornamental_plants,3301080000 +92,ÖR 1c Blühfläche auf DK,ÖR 1c Flowering area on DK,flowers_ornamental_plants,3301080000 +93,ÖR 1d Altgrasstreifen / -flächen,ÖR 1d Old grass strips / areas,pasture_meadow_grassland_grass,3302000000 +94,ÖR 3 Agroforststreifen,ÖR 3 Agroforestry strips,tree_wood_forest,3306000000 +140,,unknown,not_known_and_other,3399000000 +150,Gemenge Getreide/Leguminose (Getreide überwiegt),Mixture cereals/legumes,cereal,3301010000 +155,,unknown,not_known_and_other,3399000000 +174,Zuckermais,Sweet corn,grain_maize_corn_popcorn,3301010600 +175,Mischanbau Mais/Sonnenblumen,Mixed cultivation of corn/sunflowers,grain_maize_corn_popcorn,3301010600 +176,Mais mit Bejagungsschneise in gutem landwirtschaftlichen und ökologischen Zustand**,Corn with hunting strip in good agricultural and ecological condition.,grain_maize_corn_popcorn,3301010600 +177,Mais mit Bejagungsschneise (Kulturpflanze),Corn with hunting strip (cultivated plant),grain_maize_corn_popcorn,3301010600 +291,Wicken (auch Saatwicken),Vetch (also known as seed vetch),vetches,3301090305 +342,Faserflachs,Flax/Flax (flax linseed),flax_linseed,3301060700 +412,"Futterhackfrüchte (ohne Runkelfutterrüben, Kohlsteckrüben und Kartoffeln)","Fodder beet crops (excluding mangels, kohlrabi, and potatoes)",root_vegetables,3301290000 +434,Gras-Leguminosen Gemisch (Leguminosen überwiegt),Grass-legume mixture,temporary_grass,3301090100 +612,"Gemüserübsen (Stoppelrübe, Weiße Rübe, Bayerische Rübe, Mairübe, Chinakohl, Pak-Choi, Teltower Rü","Vegetable turnip (stubble turnip, white turnip, Bavarian turnip, spring turnip, Chinese cabbage, Pak-Choi, Teltow turnip)",fresh_vegetables,3301070000 +711,Frisch-/Speiseerbsen Freiland,Fresh/Edible Peas Outdoor,peas,3301020600 +712,Blumenkohl Freiland,Cauliflower open field,cauliflower,3301210204 +713,Tomaten Freiland,Outdoor tomatoes,tomato,3301280000 +812,"Streuobst (ohne Wiesennutzung),",Orchards (without meadow use),orchards_fruits,3303010000 +814,"Sonst. Obstanlagen in Vollanbau (ohne Äpfel, Birnen, Pfirsiche)",otherwise. Fully cultivated orchards (without apples,orchards_fruits,3303010000 +817,"Beerenobst, z.B. Johannis-, Stachelbeeren","Berries, e.g. raspberries, gooseberries.",berries_berry_species,3303020000 +819,Sonstige Obstanlagen,Other orchards,orchards_fruits,3303010000 +891,Pappeln,Poplars,populus,3306070000 +896,Chinaschilf (Miscanth.),Chinese Silvergrass (Miscanthus),miscanthus_silvergrass,3301083000 +913,Klee- oder Luzernesamenvermehrung,Clover or alfalfa seed multiplication,arable_land_seed_seedlings,3301100000 +917,Mischkulturen,mixed crops,arable_crops,3301000000 +10001,Genehmigungspflichtige Baumaßnahmen,Approval-required construction measures,not_known_and_other,3399000000 +10004,"Nicht genehmigungspflichtiger Lagerplatz (Stroh, Futter, Silage)","Storage area not subject to approval (straw, fodder, silage)",not_known_and_other,3399000000 +10005,Keine Nutzung,not used,not_known_and_other,3399000000 +10006,Pflanzkartoffeln,Seed potatoes,potatoes,3301030000 +10013,Feldvogelinseln AUKM,Field bird islands AUKM,not_known_and_other,3399000000 +10113,Sommerhartweizen/Durum,Summer durum wheat / durum,spring_durum_hard_wheat,3301010202 +10114,Winter-Dinkel,Winter spelt,winter_spelt,3301011001 +10171,Körnermais,GRAIN CORN,grain_maize_corn_popcorn,3301010600 +10172,Mais (Biogas),Corn (biogas),grain_maize_corn_popcorn,3301010600 +10190,"Getreide einer Gattung/Art, die in der aktuellen Liste nicht aufgeführt ist",Cereals of a genus/species not included in the current list,other_cereals,3301019900 +10210,Erbsen zur Körnergewinnung,Peas for grain production,peas,3301020600 +10429,Alle anderen Futterpflanzen,All other fodder plants,other_arable_land_crops,3301990000 +10430,Serradella,serradella,serradella,3301084200 +10492,Beweidung von Dauergrünland unter etablierten lokalen Praktiken (z. B. Trockenrasen),"Grazing of permanent grassland under established local practices (e.g., dry grasslands)",pasture_meadow_grassland_grass,3302000000 +10611,Frühkartoffeln,EARLY POTATOES,potatoes,3301030000 +10612,Sonstige Speisekartoffeln,Other table potatoes,potatoes,3301030000 +10613,Industriekartoffeln (außer Stärke),Industrial potatoes (excluding starch),potatoes,3301030000 +10614,Futterkartoffeln,FEED POTATOES,potatoes,3301030000 +10619,Sonstige Kartoffeln,Other potatoes,potatoes,3301030000 +10710,Gemüse Freiland,Vegetables (Open Field),fresh_vegetables,3301070000 +10827,Äpfel in Vollanbau (Ertragsanlagen),Apples in full cultivation (yield plants),apples,3303010200 +10828,"Sonst. Steinobst (ohne Kirschen, Pflaumen)",otherwise stone fruit (without cherries,orchards_fruits,3303010000 +10837,"sonst. Steinobst (Nektarinen, Aprikosen)","Stone fruit (nectarines, apricots)",orchards_fruits,3303010000 +11171,Körnermais und CCM,Grain corn and CCM (Corn Cob Mix),grain_maize_corn_popcorn,3301010600 +11429,"Futterpflanze einer Gattung/Art, die in der aktuellen Liste nicht aufgeführt ist",Forage plant of a genus/species not listed in the current list.,arable_crops,3301000000 +12170,Unknown,unknown,not_known_and_other,3399000000 +12171,Mais (ohne Silomais NC 411),Corn without silage maize,grain_maize_corn_popcorn,3301010600 diff --git a/tests/data-files/convert/ec_at/at_2016.parquet b/tests/data-files/convert/ec_at/at_2016.parquet new file mode 100644 index 00000000..844fc7a7 Binary files /dev/null and b/tests/data-files/convert/ec_at/at_2016.parquet differ diff --git a/tests/data-files/convert/ec_be_vlg/be2_2010.parquet b/tests/data-files/convert/ec_be_vlg/be2_2010.parquet new file mode 100644 index 00000000..acb88566 Binary files /dev/null and b/tests/data-files/convert/ec_be_vlg/be2_2010.parquet differ diff --git a/tests/data-files/convert/ec_be_vlg/vlg_supplement.csv b/tests/data-files/convert/ec_be_vlg/vlg_supplement.csv new file mode 100644 index 00000000..ec2466fb --- /dev/null +++ b/tests/data-files/convert/ec_be_vlg/vlg_supplement.csv @@ -0,0 +1,86 @@ +original_code,original_name,translated_name,HCAT3_name,HCAT3_code +47,Goudsbloem,Marigold,calendula_marigold,3301061210 +48,Deder/huttentut,Camelina,camelina,3301061500 +391,Mengteelt andere wintergranen en winterteelt vlinderbloemige,Intercropping other winter cereals and winter legume,unspecified_cereals,3301011500 +392,Mengteelt zomergranen en zomerteelt vlinderbloemige,Intercropping spring cereals and spring legume,unspecified_cereals,3301011500 +395,Mengteelt wintertarwe of triticale en winterteelt vlinderbloemige,Intercropping winter wheat or triticale and winter legume,winter_common_soft_wheat,3301010101 +451,Wintervlas (olieproductie),Winter flax (oil production),flax_linseed_oil,3301060702 +511,Voedererwten (winterteelt) - niet menselijke consumptie,Fodder peas (winter) - not for human consumption,peas,3301020600 +512,Voedererwten (zomerteelt) - niet menselijke consumptie,Fodder peas (spring) - not for human consumption,peas,3301020600 +513,Drooggeoogste erwten (voor menselijke consumptie),Dry harvested peas (for human consumption),peas,3301020600 +521,Winterveldbonen - niet menselijke consumptie,Winter field beans - not for human consumption,beans,3301020100 +522,Zomerveldbonen - niet menselijke consumptie,Spring field beans - not for human consumption,beans,3301020100 +523,Drooggeoogste Vicia bonen (voor menselijke consumptie),Dry harvested Vicia beans (for human consumption),beans,3301020100 +524,Drooggeoogste Phaseolus bonen (voor menselijke consumptie),Dry harvested Phaseolus beans (for human consumption),beans,3301020100 +634,Mengsel met overwegend Japanse haver en vlinderbloemigen,Mixture predominantly Japanese oats with legumes,oats,3301010500 +635,Mengsel met overwegend Japanse haver zonder vlinderbloemigen,Mixture predominantly Japanese oats without legumes,oats,3301010500 +655,Sareptamosterd,Brown mustard,mustard,3301210100 +749,Mengsel met 1 of meerdere vlinderbloemigen,Mixture with one or more legumes,legumes_dried_pulses_protein_crops,3301020000 +858,Andere meerjarige kruiden - industrie,Other perennial herbs - industry,unspecified_aromatic_medicinal_culinary_plants_spices_herbs,3301061298 +881,Engelwortel - vers,Angelica - fresh,angelica,3301061204 +899,Rotatieteelt van groentegewassen (vb pluktuin),Rotational cultivation of vegetable crops,fresh_vegetables,3301070000 +907,Aardappelen (gecertificeerd pootgoed),Potatoes (certified seed),potatoes,3301030000 +908,Aardappelen (hoevepootgoed),Potatoes (farm-saved seed),potatoes,3301030000 +923,Wintervlas (vezelproductie en industriële toepassingen),Winter flax (fibre production and industrial use),flax_linen,3301060701 +933,Kikkererwten,Chickpeas,chickpeas,3301020200 +934,Linzen,Lentils,lentils,3301020500 +6041,Zaaizaad wintervlas,Seed of winter flax,flax_linen,3301060701 +8526,Chinese kool - industrie,Chinese cabbage - industry,chinese_cabbage,3301210205 +8531,Radijs - industrie,Radish - industry,radish,3301290600 +8532,Rode biet - industrie,Beetroot - industry,beetroot_beets,3301290200 +8545,Raketsla - Rucola - industrie,Rocket - industry,rocket_arugula,3301310600 +8552,Tomaten - industrie,Tomatoes - industry,tomato,3301280000 +8553,Paprika - industrie,Bell pepper - industry,bell_pepper_paprika,3301300100 +8581,Andere meerjarige kruiden - vers,Other perennial herbs - fresh,aromatic_medicinal_culinary_plants_spices_herbs,3301061200 +9571,Begonia voor de knol,Begonia for the tuber,begonias,3301080400 +5,Tuin met hoogstam,High-stem garden,orchards_fruits,3303010000 +7,Niet-begraasde natuurgrond,Non-grazed natural land,pasture_meadow_grassland_grass,3302000000 +38,"Gierst, sorghum, kanariezaad of harde tarwe","Millet, sorghum, canary seed or durum wheat",cereal,3301010000 +61,Blijvend grasland,Permanent grassland,pasture_meadow_grassland_grass,3302000000 +62,Tijdelijk grasland,Temporary grassland,temporary_grass,3301090100 +88,niet-landbouwkundig gebruik (bv. grondopslag),"non-agricultural use (e.g., ground storage)",not_known_and_other,3399000000 +99,Teelt niet vast te stellen,Not easily determined,not_known_and_other,3399000000 +100,Niet ingezaaid akkerland,Unplanted arable land,fallow_land_not_crop,3301110000 +630,Alexandrijnse klaver,Alexandrian clover,clover,3301090303 +631,Witte of rode klaver,White or red clover,clover,3301090303 +632,Andere klavers,Other clovers,clover,3301090303 +633,Wikken,Vetch,vetches,3301090305 +636,Engels raaigras,perennial ryegrass,lolium_ryegrass,3301090205 +637,Hybride raaigras,Hybrid ryegrass,lolium_ryegrass,3301090205 +642,Bladrammenas,Oil radish,radish,3301290600 +644,Lupinen,Lupins,sweet_lupins,3301020700 +657,Gras in onderzaai,Grass in under-sowing,temporary_grass,3301090100 +658,Mengsel met 1 of meer vlinderbloemige groenbedekkers,Mixture with 1 or more leguminous cover crops.,legumes_harvested_green,3301090300 +659,Mengsel van niet-vlinderbloemige groenbedekkers,Mixture of non-legume cover crops.,other_arable_land_crops,3301990000 +701,Eenjarige grasklaver,Annual clover grass,clover,3301090303 +702,Meerjarige grasklaver,Perennial grass clover,clover,3301090303 +882,"Olifantegras, mariadistel","Miscanthus x giganteus, Milk thistle",miscanthus_silvergrass,3301083000 +891,Bebossing,Afforestation,afforestation_reforestation,3306010000 +892,Bebossing op blijvend grasland in 2003,Afforestation on permanent grassland in 2003,pasture_meadow_grassland_grass,3302000000 +905,"Aardappelen (primeur, rooi voor 20/6)","Potatoes (early, red before 20/6)",potatoes,3301030000 +953,Meerjarige kruiden (meer dan 5 jaar),Perennial herbs (more than 5 years),aromatic_medicinal_culinary_plants_spices_herbs,3301061200 +954,Andere niet-houtachtige sierplanten,Other non-woody ornamental plants,flowers_ornamental_plants,3301080000 +958,Kruiden,Herbs,aromatic_medicinal_culinary_plants_spices_herbs,3301061200 +974,"Meerjarige fruitteelten (andere dan appel, peer)","Perennial fruit crops (other than apple, pear)",orchards_fruits,3303010000 +982,Andere,Other,not_known_and_other,3399000000 +4112,Winterraapzaad,Winter rape seed,winter_rapeseed_rape,3301060401 +6490,"Mengsel groenbedekkers, > 50 % grassen","Mixture of cover crops, > 50% grasses.",temporary_grass,3301090100 +6491,"Mengsel groenbedekkers, > 50 % vlinderbloemigen","Mixture of green manures, > 50% legumes.",legumes_harvested_green,3301090300 +6492,"Mengsel groenbedekkers, > 50 % andere","Mixture of cover crops, > 50% other.",other_arable_land_crops,3301990000 +8554,Komkommers - industrie,Cucumbers - industry,cucumber_pickle,3301140100 +8558,Vroege bladgroenten - industrie,Early leafy vegetables - industry.,salads_lettuce_leaf_vegetables,3301310000 +8561,Witloof (voor de wortel) - industrie,Chicory (for the root) - industry,endive,3301310300 +8913,Bebossing naaldbomen-economisch,Afforestation of conifers - economic,afforestation_reforestation,3306010000 +8914,Bebossing populieren-ecologisch,Afforestation poplar ecological,populus,3306070000 +9520,Boomkweek,arboriculture,nurseries_nursery,3303070000 +9521,Sierplanten in volle grond (containers en potten zijn uitgesloten) (minder dan vijf jaar),Ornamental plants in full ground (containers and pots are excluded) (less than five years),flowers_ornamental_plants,3301080000 +9522,Meerjarige sierplanten,Perennial ornamental plants,flowers_ornamental_plants,3301080000 +9558,Vroege bladgroenten - vers,Early leafy greens - fresh.,salads_lettuce_leaf_vegetables,3301310000 +9559,Groentezaden,Vegetable seeds,arable_land_seed_seedlings,3301100000 +9567,Groentezaden niet-vlinderbloemigen,Vegetable seeds non-leguminous,arable_land_seed_seedlings,3301100000 +9584,Winterharde sierplanten,Winter-hardy ornamental plants,flowers_ornamental_plants,3301080000 +9603,Boomkweek - sierplanten,Tree cultivation - ornamental plants,nurseries_nursery,3303070000 +9604,Boomkweek - andere,arboriculture other,nurseries_nursery,3303070000 +9712,Meerjarige fruitteelten (kers),Multi-year fruit trees (cherries),cherry_cherries,3303010400 +9824,Grassen in natuurbeheer,Grasses in nature management,pasture_meadow_grassland_grass,3302000000 +10001,Unknown,unknown,not_known_and_other,3399000000 diff --git a/tests/data-files/convert/ec_be_wal/be3_2019.parquet b/tests/data-files/convert/ec_be_wal/be3_2019.parquet new file mode 100644 index 00000000..c53910aa Binary files /dev/null and b/tests/data-files/convert/ec_be_wal/be3_2019.parquet differ diff --git a/tests/data-files/convert/ec_be_wal/wal_supplement.csv b/tests/data-files/convert/ec_be_wal/wal_supplement.csv new file mode 100644 index 00000000..75134605 --- /dev/null +++ b/tests/data-files/convert/ec_be_wal/wal_supplement.csv @@ -0,0 +1,18 @@ +original_code,original_name,translated_name,HCAT3_name,HCAT3_code +19,Culture hydroponique ou aquaponique,Hydroponic or aquaponic cultivation,not_known_and_other,3399000000 +48,Cameline,Camelina,camelina,3301061500 +59,Fenugrec,Fenugreek,fenugreek,3301020400 +89,Terre en jachère à activité minimale avec EAG,Fallow land with minimal activity with EAG,fallow_land_not_crop,3301110000 +383,Millet,Millet,millet_sorghum,3301010900 +397,"Mélange froment ou épeautre ( plus de 50%) et de  pois ou féverole (plus de 20%), commercialisé à l'état sec","Mixture of wheat or spelt (more than 50%) and peas or fava beans (more than 20%), marketed in a dry state.",cereal,3301010000 +614,Prairie avec moins de 90 % couvert herbacé (pratiques locales établies),Pasture with less than 90% herbaceous cover (established local practices).,pasture_meadow_grassland_grass,3302000000 +700,Mélange graminées/trèfle,Grass/clover mix,clover,3301090303 +722,Trèfle pérenne,Perennial clover,clover,3301090303 +723,Trèfle violet,Red clover,clover,3301090303 +747,Vesce,Vetch,vetches,3301090305 +812,Jachère non herbacée,non-herbaceous fallow,fallow_land_not_crop,3301110000 +923,Lin d'hiver (fibre),Winter flax (fiber),flax_linseed,3301060700 +933,Pois chiche,Chickpea,chickpeas,3301020200 +934,lentille,lentil,lentils,3301020500 +967,Maraichage diversifié,Diversified vegetables,fresh_vegetables,3301070000 +9732,Cultures fruitières pluriannuelles (prunes) - hautes tiges,multi-annual fruit crops (plums) - tall stalks,plums,3303011300 diff --git a/tests/data-files/convert/ec_de_bb/bb_supplement.csv b/tests/data-files/convert/ec_de_bb/bb_supplement.csv new file mode 100644 index 00000000..01030e92 --- /dev/null +++ b/tests/data-files/convert/ec_de_bb/bb_supplement.csv @@ -0,0 +1,68 @@ +original_code,original_name,translated_name,HCAT3_name,HCAT3_code +6,Festwiese,Permanent meadow,pasture_meadow_grassland_grass,3302000000 +7,Parkplatz,parking space,not_known_and_other,3399000000 +8,Spargel unter Folie,Asparagus under cover,asparagus,3301200000 +9,EUGAL-Bautätigkeiten,EUGAL construction activities,not_known_and_other,3399000000 +10,Einjährige Blühstreifen AUKM,Annual flower strips AUKM,flowers_ornamental_plants,3301080000 +11,Mehrjährige Blühstreifen AUKM,Perennial flower strips AUKM,flowers_ornamental_plants,3301080000 +12,Ackerrandstreifen AUKM,Field margin AUKM (Agrarumwelt- und Klimamaßnahmen),not_known_and_other,3399000000 +13,Feldraine,Field margins,not_known_and_other,3399000000 +14,Gewässerschutz-/Uferrandstreifen AUKM,Water protection/riparian strips AUKM,not_known_and_other,3399000000 +83,Agroforststreifen ohne ÖR,Agroforestry strips without ÖR,tree_wood_forest,3306000000 +88,ÖR 1a ohne Produktion (Selbst-/Begrünung),ÖR 1a without production (self-greening/greening),fallow_land_not_crop,3301110000 +89,ÖR 1b Blühstreifen auf AL,ÖR 1b Flower strips on AL,flowers_ornamental_plants,3301080000 +90,ÖR 1b Blühfläche auf AL,ÖR 1b Flowering area on AL,flowers_ornamental_plants,3301080000 +91,ÖR 1c Blühstreifen auf DK,ÖR 1c Flowering strips on DK,flowers_ornamental_plants,3301080000 +92,ÖR 1c Blühfläche auf DK,ÖR 1c Flowering area on DK,flowers_ornamental_plants,3301080000 +93,ÖR 1d Altgrasstreifen / -flächen,ÖR 1d Old grass strips / areas,pasture_meadow_grassland_grass,3302000000 +94,ÖR 3 Agroforststreifen,ÖR 3 Agroforestry strips,tree_wood_forest,3306000000 +140,,unknown,not_known_and_other,3399000000 +150,Gemenge Getreide/Leguminose (Getreide überwiegt),Mixture cereals/legumes,cereal,3301010000 +155,,unknown,not_known_and_other,3399000000 +174,Zuckermais,Sweet corn,grain_maize_corn_popcorn,3301010600 +175,Mischanbau Mais/Sonnenblumen,Mixed cultivation of corn/sunflowers,grain_maize_corn_popcorn,3301010600 +176,Mais mit Bejagungsschneise in gutem landwirtschaftlichen und ökologischen Zustand**,Corn with hunting strip in good agricultural and ecological condition.,grain_maize_corn_popcorn,3301010600 +177,Mais mit Bejagungsschneise (Kulturpflanze),Corn with hunting strip (cultivated plant),grain_maize_corn_popcorn,3301010600 +291,Wicken (auch Saatwicken),Vetch (also known as seed vetch),vetches,3301090305 +342,Faserflachs,Flax/Flax (flax linseed),flax_linseed,3301060700 +412,"Futterhackfrüchte (ohne Runkelfutterrüben, Kohlsteckrüben und Kartoffeln)","Fodder beet crops (excluding mangels, kohlrabi, and potatoes)",root_vegetables,3301290000 +434,Gras-Leguminosen Gemisch (Leguminosen überwiegt),Grass-legume mixture,temporary_grass,3301090100 +612,"Gemüserübsen (Stoppelrübe, Weiße Rübe, Bayerische Rübe, Mairübe, Chinakohl, Pak-Choi, Teltower Rü","Vegetable turnip (stubble turnip, white turnip, Bavarian turnip, spring turnip, Chinese cabbage, Pak-Choi, Teltow turnip)",fresh_vegetables,3301070000 +711,Frisch-/Speiseerbsen Freiland,Fresh/Edible Peas Outdoor,peas,3301020600 +712,Blumenkohl Freiland,Cauliflower open field,cauliflower,3301210204 +713,Tomaten Freiland,Outdoor tomatoes,tomato,3301280000 +812,"Streuobst (ohne Wiesennutzung),",Orchards (without meadow use),orchards_fruits,3303010000 +814,"Sonst. Obstanlagen in Vollanbau (ohne Äpfel, Birnen, Pfirsiche)",otherwise. Fully cultivated orchards (without apples,orchards_fruits,3303010000 +817,"Beerenobst, z.B. Johannis-, Stachelbeeren","Berries, e.g. raspberries, gooseberries.",berries_berry_species,3303020000 +819,Sonstige Obstanlagen,Other orchards,orchards_fruits,3303010000 +891,Pappeln,Poplars,populus,3306070000 +896,Chinaschilf (Miscanth.),Chinese Silvergrass (Miscanthus),miscanthus_silvergrass,3301083000 +913,Klee- oder Luzernesamenvermehrung,Clover or alfalfa seed multiplication,arable_land_seed_seedlings,3301100000 +917,Mischkulturen,mixed crops,arable_crops,3301000000 +10001,Genehmigungspflichtige Baumaßnahmen,Approval-required construction measures,not_known_and_other,3399000000 +10004,"Nicht genehmigungspflichtiger Lagerplatz (Stroh, Futter, Silage)","Storage area not subject to approval (straw, fodder, silage)",not_known_and_other,3399000000 +10005,Keine Nutzung,not used,not_known_and_other,3399000000 +10006,Pflanzkartoffeln,Seed potatoes,potatoes,3301030000 +10013,Feldvogelinseln AUKM,Field bird islands AUKM,not_known_and_other,3399000000 +10113,Sommerhartweizen/Durum,Summer durum wheat / durum,spring_durum_hard_wheat,3301010202 +10114,Winter-Dinkel,Winter spelt,winter_spelt,3301011001 +10171,Körnermais,GRAIN CORN,grain_maize_corn_popcorn,3301010600 +10172,Mais (Biogas),Corn (biogas),grain_maize_corn_popcorn,3301010600 +10190,"Getreide einer Gattung/Art, die in der aktuellen Liste nicht aufgeführt ist",Cereals of a genus/species not included in the current list,other_cereals,3301019900 +10210,Erbsen zur Körnergewinnung,Peas for grain production,peas,3301020600 +10429,Alle anderen Futterpflanzen,All other fodder plants,other_arable_land_crops,3301990000 +10430,Serradella,serradella,serradella,3301084200 +10492,Beweidung von Dauergrünland unter etablierten lokalen Praktiken (z. B. Trockenrasen),"Grazing of permanent grassland under established local practices (e.g., dry grasslands)",pasture_meadow_grassland_grass,3302000000 +10611,Frühkartoffeln,EARLY POTATOES,potatoes,3301030000 +10612,Sonstige Speisekartoffeln,Other table potatoes,potatoes,3301030000 +10613,Industriekartoffeln (außer Stärke),Industrial potatoes (excluding starch),potatoes,3301030000 +10614,Futterkartoffeln,FEED POTATOES,potatoes,3301030000 +10619,Sonstige Kartoffeln,Other potatoes,potatoes,3301030000 +10710,Gemüse Freiland,Vegetables (Open Field),fresh_vegetables,3301070000 +10827,Äpfel in Vollanbau (Ertragsanlagen),Apples in full cultivation (yield plants),apples,3303010200 +10828,"Sonst. Steinobst (ohne Kirschen, Pflaumen)",otherwise stone fruit (without cherries,orchards_fruits,3303010000 +10837,"sonst. Steinobst (Nektarinen, Aprikosen)","Stone fruit (nectarines, apricots)",orchards_fruits,3303010000 +11171,Körnermais und CCM,Grain corn and CCM (Corn Cob Mix),grain_maize_corn_popcorn,3301010600 +11429,"Futterpflanze einer Gattung/Art, die in der aktuellen Liste nicht aufgeführt ist",Forage plant of a genus/species not listed in the current list.,arable_crops,3301000000 +12170,Unknown,unknown,not_known_and_other,3399000000 +12171,Mais (ohne Silomais NC 411),Corn without silage maize,grain_maize_corn_popcorn,3301010600 diff --git a/tests/data-files/convert/ec_de_bb/de4_2020.parquet b/tests/data-files/convert/ec_de_bb/de4_2020.parquet new file mode 100644 index 00000000..cbbaa442 Binary files /dev/null and b/tests/data-files/convert/ec_de_bb/de4_2020.parquet differ diff --git a/tests/data-files/convert/ec_de_nrw/dea_2021.parquet b/tests/data-files/convert/ec_de_nrw/dea_2021.parquet new file mode 100644 index 00000000..5615b9e8 Binary files /dev/null and b/tests/data-files/convert/ec_de_nrw/dea_2021.parquet differ diff --git a/tests/data-files/convert/ec_de_nrw/nrw_supplement.csv b/tests/data-files/convert/ec_de_nrw/nrw_supplement.csv new file mode 100644 index 00000000..25c922a8 --- /dev/null +++ b/tests/data-files/convert/ec_de_nrw/nrw_supplement.csv @@ -0,0 +1,44 @@ +original_code,original_name,translated_name,HCAT3_name,HCAT3_code +54,Streifen am Waldrand ÖVF,Stripes at the edge of the forest,not_known_and_other,3399000000 +62,Kond.-Brache (Selbstbegrünung,Condensed fallow (self-greening),fallow_land_not_crop,3301110000 +66,Kond.-Brache (aktive Begrünun,Fallow land (active greening),fallow_land_not_crop,3301110000 +81,Agroforstsystem (Streifen),Agroforestry system (strips),not_known_and_other,3399000000 +88,ÖR 1a Freiwillige Stilllegung,ÖR 1a Voluntary set-aside,fallow_land_not_crop,3301110000 +89,ÖR 1b Blühstreifen auf AL,ÖR 1b Flower strips on AL,flowers_ornamental_plants,3301080000 +90,ÖR 1b Blühfläche auf AL,ÖR 1b Flowering area on AL,flowers_ornamental_plants,3301080000 +92,ÖR 1c Blühfläche auf DK,ÖR 1c Flowering area on DK,flowers_ornamental_plants,3301080000 +93,ÖR 1d Altgrasstreifen DGL,ÖR 1d Old grass strips DGL,pasture_meadow_grassland_grass,3302000000 +150,Gemenge Getr./Leg.(mehr Getr.),Mixtures of cereals/legumes (more cereals),cereal,3301010000 +186,"Amarant, (Fuchsschwanz)",amaranth,amaranth,3301150100 +188,Reis im Trockenanbau,Dry-farmed rice,rice,3301010700 +434,Gras-Leguminosen (mehr Leg.),Grass-legumes (more legumes),temporary_grass,3301090100 +511,Streptocarpus/Drehfrucht,Streptocarpus/Twist fruit,other_flowers_ornamental_plants,3301089900 +512,Iberischer Drachenkopf,dragonhead,other_flowers_ornamental_plants,3301089900 +513,Braunellen,prunella vulgaris,other_flowers_ornamental_plants,3301089900 +514,Hauswurz,Houseleek Sempervivum,other_flowers_ornamental_plants,3301089900 +516,Knöterich (Persicaria),Knotweed (Persicaria),other_aromatic_medicinal_culinary_plants_spices_herbs,3301061299 +519,Köcherblümchen,Cuphea,other_flowers_ornamental_plants,3301089900 +560,Brache (im Rahmen VNS),Fallow land (within the scope of SSF),fallow_land_not_crop,3301110000 +610,beetweiser Anbau von Gemüse,Cultivation of vegetables in beds,fresh_vegetables,3301070000 +612,Schwarzer Senf,Black mustard,mustard,3301210100 +650,beetweise Anbau Kräuter/Gewü,Cultivation of herbs/seasoning in beds,aromatic_medicinal_culinary_plants_spices_herbs,3301061200 +679,Baldriane (Echter Baldrian),Valerian (true valerian),valerian,3301061238 +683,Galega (Geißraute),Goat's Rue,galega,3301081900 +684,Löwenzahn,dandelion,dandelions,3301081400 +687,echte Arnika (Arnica montana),real arnica (Arnica montana),other_aromatic_medicinal_culinary_plants_spices_herbs,3301061299 +705,Virginischer Tabak,Virginian tobacco,tobacco,3301060100 +720,beetweise Anbau Zierpflanzen,Cultivation of ornamental plants in beds,flowers_ornamental_plants,3301080000 +740,Wucherblumen (Mutterkraut),tansies,other_flowers_ornamental_plants,3301089900 +741,Strandflieder (Geflügelter S.,Sea lavender (feathered S.) Limonium sinuatum,other_flowers_ornamental_plants,3301089900 +755,Wolfsmilch (Weißrand),Euphorbia marginata,other_flowers_ornamental_plants,3301089900 +759,Gipskräuter (Schleierkraut),Gypsophila (gypsophila),other_flowers_ornamental_plants,3301089900 +760,Amerikanisches Pampasgras,American Pampas Grass,poaceae_grasses,3301090200 +788,Geranien,geraniums,other_flowers_ornamental_plants,3301089900 +792,Kornrade,corncockle,other_flowers_ornamental_plants,3301089900 +806,Rutenhirse/Switchgras,Switchgrass / switchgrass,switchgrass,3301090208 +866,Pflanzenmischung mit Hanf,Plant mixture with hemp,hemp_cannabis,3301061000 +871,Wildpflanzenmischung (AUM),Wild plant mixture (AUM),arable_crops,3301000000 +913,Wildsamenvermehrung,Wild seed propagation,arable_land_seed_seedlings,3301100000 +915,Randstreifen (Acker/DK),Marginal strips (arable land/DK),not_known_and_other,3399000000 +918,Mehrjährige Buntbrachen (AUM),Perennial mixed fallow (AUM),fallow_land_not_crop,3301110000 +10222,Dicke Bohne,Broad bean,beans,3301020100 diff --git a/tests/data-files/convert/ec_ee/ee_2015.parquet b/tests/data-files/convert/ec_ee/ee_2015.parquet new file mode 100644 index 00000000..f75a035c Binary files /dev/null and b/tests/data-files/convert/ec_ee/ee_2015.parquet differ diff --git a/tests/data-files/convert/ec_es/es_2023.parquet b/tests/data-files/convert/ec_es/es_2023.parquet new file mode 100644 index 00000000..f6dbed57 Binary files /dev/null and b/tests/data-files/convert/ec_es/es_2023.parquet differ diff --git a/tests/data-files/convert/ec_fr/FR_2018.zip b/tests/data-files/convert/ec_fr/FR_2018.zip deleted file mode 100644 index 2a9e2f1c..00000000 Binary files a/tests/data-files/convert/ec_fr/FR_2018.zip and /dev/null differ diff --git a/tests/data-files/convert/ec_fr/fr_2016.parquet b/tests/data-files/convert/ec_fr/fr_2016.parquet new file mode 100644 index 00000000..cdbd04ae Binary files /dev/null and b/tests/data-files/convert/ec_fr/fr_2016.parquet differ diff --git a/tests/data-files/convert/ec_fr/fr_2018.csv b/tests/data-files/convert/ec_fr/fr_2018.csv deleted file mode 100644 index 0f5e8a69..00000000 --- a/tests/data-files/convert/ec_fr/fr_2018.csv +++ /dev/null @@ -1,334 +0,0 @@ -original_code,original_name,translated_name,HCAT3_name,HCAT3_code,HCAT2_name,HCAT2_code,source -AAR,Autre plante aromatique herbacée non pérenne (< 5 ans),Other non-perennial herbaceous aromatic plant,unspecified_aromatic_medicinal_culinary_plants_spices_herbs,3301061298,,,fiboa -ACA,Autre culture non précisée dans la liste (admissible),Other,not_known_and_other,3399000000,not_known_and_other,3399000000,EuroCrops fr_other_years.csv -ACP,Autre culture pérenne,Other perennial,unspecified_permanent_crops,3303120000,unspecified_permanent_crops,3303120000,EuroCrops fr_other_years.csv -AGR,Agrume,Citrus,citrus_plantations,3303040000,citrus_plantations,3303040000,EuroCrops fr_2018.csv -AIL,Aïl,Garlic,garlic,3301220200,garlic,3301220200,EuroCrops fr_2018.csv -AME,Plante médicinale et à parfum herbacée,Herbaceous medicinal and perfume plant,unspecified_aromatic_medicinal_culinary_plants_spices_herbs,3301061298,,,fiboa -ANE,Aneth,Dill,anethum_dill,3301061203,anethum_dill,3301061203,EuroCrops fr_2018.csv -ANG,Angélique,Angelic,angelica,3301061204,angelica,3301061204,EuroCrops fr_2018.csv -ANI,Anis,Anise,anise_aniseed,3301061205,anise_aniseed,3301061205,EuroCrops fr_2018.csv -ARA,Arachide ,Peanut,arachis,3301090302,arachis,3301090302,EuroCrops fr_2018.csv -ARP,Plante aromatique arbustive ou arborée,Shrub or tree aromatic plant,unspecified_aromatic_medicinal_culinary_plants_spices_herbs,3301061298,,,fiboa -ART,Artichaut ,Artichoke,artichoke,3301270000,artichoke,3301270000,EuroCrops fr_2018.csv -AUB,Aubergine,Aubergine,aubergine_eggplant,3301260000,aubergine_eggplant,3301260000,EuroCrops fr_2018.csv -AVH,Avoine d’hiver,Winter oats,winter_oats,3301010501,winter_oats,3301010501,EuroCrops fr_2018.csv -AVO,Avocat,Avocado,avocado,3303100000,avocado,3303100000,EuroCrops fr_2018.csv -AVP,Avoine de printemps,Spring oats,spring_oats,3301010502,spring_oats,3301010502,EuroCrops fr_2018.csv -BAR,Bardane,Burdock,arctium_burdock,3301290100,arctium_burdock,3301290100,EuroCrops fr_2018.csv -BAS,Basilic,Basil,basil,3301061207,basil,3301061207,EuroCrops fr_2018.csv -BDH,Blé dur d’hiver,Hard winter wheat,winter_durum_hard_wheat,3301010201,winter_durum_hard_wheat,3301010201,EuroCrops fr_2018.csv -BDP,Blé dur de printemps,Durum spring wheat,spring_durum_hard_wheat,3301010202,spring_durum_hard_wheat,3301010202,EuroCrops fr_2018.csv -BDT,Blé dur de printemps semé tardivement (après le 31/05),Durum spring wheat late sown (after 31/05),spring_durum_hard_wheat,3301010202,spring_durum_hard_wheat,3301010202,EuroCrops fr_other_years.csv -BFP,Bande admissible le long d’une forêt avec production,Permissible strip along a forest with production,not_known_and_other,3399000000,not_known_and_other,3399000000,EuroCrops fr_2018.csv -BFS,Bande admissible le long d’une forêt sans production,Eligible strip along a forest without production,not_known_and_other,3399000000,not_known_and_other,3399000000,EuroCrops fr_2018.csv -BLT,Bleuet,Cornflower,cornflowers,3301081000,cornflowers,3301081000,EuroCrops fr_2018.csv -BOP,Bois pâturé,Grazed wood,other_tree_wood_forest,3306990000,other_tree_wood_forest,3306990000,EuroCrops fr_2018.csv -BOR,Bordure de champ,Field margin,not_known_and_other,3399000000,not_known_and_other,3399000000,EuroCrops fr_2018.csv -BRH,Bourrache de 5 ans ou moins,Borage 5 years or less,borage,3301061209,borage,3301061209,EuroCrops fr_2018.csv -BRO,Brome de 5 ans ou moins,Bromus grass 5 years or less,poaceae_grasses,3301090200,not_known_and_other,3399000000,EuroCrops fr_2018.csv -BTA,Bande tampon,Buffer strip,not_known_and_other,3399000000,not_known_and_other,3399000000,EuroCrops fr_2018.csv -BTH,Blé tendre d’hiver,Soft winter wheat,winter_common_soft_wheat,3301010101,winter_common_soft_wheat,3301010101,EuroCrops fr_2018.csv -BTN,Betterave non fourragère / Bette,Non-forage beet / Swiss chard,sugar_beet,3301290700,sugar_beet,3301290700,EuroCrops fr_2018.csv -BTP,Blé tendre de printemps,Soft spring wheat,spring_common_soft_wheat,3301010102,spring_common_soft_wheat,3301010102,EuroCrops fr_2018.csv -BUR,Bugle rampante,Ajuga reptans,other_plants_harvested_green,3301099900,other_plants_harvested_green,3301099900,EuroCrops fr_other_years.csv -BVF,Betterave fourragère,Fodder beet,fodder_roots,3301050000,fodder_roots,3301050000,EuroCrops fr_2018.csv -CAB,Caroube,Carob,carob,3303110100,carob,3303110100,EuroCrops fr_2018.csv -CAE,Châtaigneraie entretenue par des porcins ou des petits ruminants,Chestnut grove maintained by pigs or small ruminants,sweet_chestnuts,3303030500,sweet_chestnuts,3303030500,EuroCrops fr_2018.csv -CAF,Carotte fourragère,Forage carrot,carrots_daucus,3301290300,carrots_daucus,3301290300,EuroCrops fr_2018.csv -CAG,Autre céréale d’un autre genre,Other cereal of a different type,winter_unspecified_cereals,3301011501,winter_unspecified_cereals,3301011501,EuroCrops fr_2018.csv -CAH,Autre céréale ou pseudo-céréale d'hiver,Other winter cereal or pseudo-cereal,winter_unspecified_cereals,3301011501,,,fiboa -CAR,Carotte,Carrot,carrots_daucus,3301290300,carrots_daucus,3301290300,EuroCrops fr_2018.csv -CAV,Carvi,Caraway,caraway,3301061211,caraway,3301061211,EuroCrops fr_2018.csv -CBT,Cerise bigarreau pour transformation,Bigarreau cherry for processing,cherry_cherries,3303010400,cherry_cherries,3303010400,EuroCrops fr_2018.csv -CCN,Concombre / Cornichon,Cucumber / Pickle,cucumber_pickle,3301140100,cucumber_pickle,3301140100,EuroCrops fr_2018.csv -CCT,Courgette / Citrouille,Zucchini / Pumpkin,zucchini_courgette,3301140600,zucchini_courgette,3301140600,EuroCrops fr_2018.csv -CEE,Chênaie entretenue par des porcins ou des petits ruminants,Oak grove maintained by pigs or small ruminants,oak,3306060000,oak,3306060000,EuroCrops fr_2018.csv -CEL,Céleri,Celery,celery,3301250000,celery,3301250000,EuroCrops fr_2018.csv -CES,Chicorée / Endive / Scarole,Chicory / Endive / Escarole,chicory_chicories,3301310200,chicory_chicories,3301310200,EuroCrops fr_2018.csv -CGF,Autre céréale de genre Fagopyrum,Other cereal of the genus Fagopyrum,buckwheat,3301150200,unspecified_season_unspecified_cereals,3301011599,EuroCrops fr_2018.csv -CGH,Autre céréale de genre Phalaris,Other cereal of the genus Phalaris,canary_seed_canaryseed,3301011400,unspecified_season_unspecified_cereals,3301011599,EuroCrops fr_2018.csv -CGO,Autre céréale de genre Sorghum,Other cereal of the genus Sorghum,millet_sorghum,3301010900,millet_sorghum,3301010900,EuroCrops fr_2018.csv -CGP,Autre céréale de genre Panicum,Other cereal of the genus Panicum (millet),millet_sorghum,3301010900,unspecified_season_unspecified_cereals,3301011599,EuroCrops fr_2018.csv -CGS,Autre cereale de genre Setaria,Other cereal of the genus Panicum,unspecified_season_unspecified_cereals,3301011599,unspecified_season_unspecified_cereals,3301011599,EuroCrops fr_other_years.csv -CHA,Autre céréale d’hiver de genre Avena,Other winter cereal of the genus Avena,winter_unspecified_cereals,3301011501,winter_unspecified_cereals,3301011501,EuroCrops fr_2018.csv -CHF,Chou fourrager,Forage cabbage,brassica_oleracea_cabbage,3301210200,brassica_oleracea_cabbage,3301210200,EuroCrops fr_2018.csv -CHH,Autre céréale d’hiver de genre Hordeum,Other winter cereal of the genus Hordeum,winter_barley,3301010401,winter_unspecified_cereals,3301011501,EuroCrops fr_2018.csv -CHR,Chardon Marie,Milk thistle,marian_thistles,3301061300,marian_thistles,3301061300,EuroCrops fr_2018.csv -CHS,Autre céréale d’hiver de genre Secale,Other Secale winter cereal,winter_rye,3301010301,winter_unspecified_cereals,3301011501,EuroCrops fr_2018.csv -CHT,Autre céréale d’hiver de genre Triticum,Other winter cereal of the genus Triticum,winter_triticale,3301010801,winter_triticale,3301010801,EuroCrops fr_2018.csv -CHU,Chou,Cabbage,brassica_oleracea_cabbage,3301210200,brassica_oleracea_cabbage,3301210200,EuroCrops fr_2018.csv -CHV,Chanvre,Hemp,hemp_cannabis,3301061000,hemp_cannabis,3301061000,EuroCrops fr_2018.csv -CIB,Ciboulette,Chive,chives,3301220100,chives,3301220100,EuroCrops fr_2018.csv -CID,Cultures conduites en interrangs : 2 cultures représentant chacune plus de 25%,Inter-row cultivation: 2 crops each representing more than 25% of the total,arable_crops,3301000000,other_arable_land_crops,3301990000,EuroCrops fr_2018.csv -CIT,Cultures conduites en interrangs : 3 cultures représentant chacune plus de 25%,Crops managed in inter-rows: 3 crops representing each more than 25%,arable_crops,3301000000,other_arable_land_crops,3301990000,EuroCrops fr_2018.csv -CMB,Courge musquée / Butternut,Butternut squash / Butternut,pumpkin_squash_gourd,3301140400,pumpkin_squash_gourd,3301140400,EuroCrops fr_2018.csv -CML,Cameline,Camelina,camelina,3301061500,camelina,3301061500,EuroCrops fr_2018.csv -CMM,Camomille,Chamomile,chamomile,3301061213,chamomile,3301061213,EuroCrops fr_2018.csv -CNE,Autre,Other,not_known_and_other,3399000000,not_known_and_other,3399000000,EuroCrops fr_other_years.csv -CPA,Autre céréale de printemps de genre Avena,Other spring cereal of the genus Avena,spring_oats,3301010502,spring_unspecified_cereals,3301011502,EuroCrops fr_2018.csv -CPH,Autre céréale de printemps de genre Hordeum,Other spring cereal of the genus Hordeum,spring_barley,3301010402,spring_unspecified_cereals,3301011502,EuroCrops fr_2018.csv -CPL,Fourrage composé de céréales et/ou de protéagineux (en proportion < 50%) et/ou de légumineuses fourragères (en proportion < 50%),Fodder composed of cereals and / or protein crops (in proportion <50%) and / or fodder legumes (in proportion <50%),cereal,3301010000,unspecified_season_unspecified_cereals,3301011599,EuroCrops fr_2018.csv -CPS,Autre céréale de printemps de genre Secale,Other spring cereal of the genus Secale,spring_rye,3301010302,spring_unspecified_cereals,3301011502,EuroCrops fr_2018.csv -CPT,Autre céréale de printemps de genre Triticum,Other spring cereal of the genus Triticum,spring_triticale,3301010802,spring_triticale,3301010802,EuroCrops fr_2018.csv -CPZ,Autre céréale de printemps de genre Zea,Other spring cereal of the genus Zea,grain_maize_corn_popcorn,3301010600,spring_unspecified_cereals,3301011502,EuroCrops fr_2018.csv -CRA,Cresson alénois de 5 ans ou moins,Garden cress 5 years old or less,cress,3301210300,cress,3301210300,EuroCrops fr_2018.csv -CRD,Coriandre,Coriander,coriander,3301061215,coriander,3301061215,EuroCrops fr_2018.csv -CRF,Cerfeuil,Chervil,chervil,3301061214,chervil,3301061214,EuroCrops fr_2018.csv -CRN,Cornille,Cowpea,peas,3301020600,peas,3301020600,EuroCrops fr_2018.csv -CRS,Cresson,Cress,cress,3301210300,cress,3301210300,EuroCrops fr_2018.csv -CSE,Chanvre sans étiquette conforme,Hemp without conforming label,hemp_cannabis,3301061000,,,EuroCrops fr_2018.csv -CSS,Culture sous serre hors sol,Off-ground cultivation in greenhouse,greenhouse_foil_film,3305000000,greenhouse_foil_film,3305000000,EuroCrops fr_2018.csv -CTG,Châtaigne,Chestnut,sweet_chestnuts,3303030500,sweet_chestnuts,3303030500,EuroCrops fr_2018.csv -CUM,Cumin,Cumin,black_cumin,3301061208,black_cumin,3301061208,EuroCrops fr_2018.csv -CZH,Colza d’hiver,Winter rapeseed,winter_rapeseed_rape,3301060401,winter_rapeseed_rape,3301060401,EuroCrops fr_2018.csv -CZP,Colza de printemps,Spring rapeseed,spring_rapeseed_rape,3301060402,spring_rapeseed_rape,3301060402,EuroCrops fr_2018.csv -DOL,Dolique,cowpea,other_dry_pulses,3301029900,peas,3301020600,EuroCrops fr_2018.csv -DTY,Dactyle de 5 ans ou moins,Dactylis Orchard grass 5 years or less,cocksfoot_catgrass,3301090203,cocksfoot_catgrass,3301090203,EuroCrops fr_2018.csv -EPE,Épeautre,Spelt,spelt,3301011000,spelt,3301011000,EuroCrops fr_2018.csv -EPI,Épinard,Spinach,spinach,3301310800,spinach,3301310800,EuroCrops fr_2018.csv -EST,Estragon,Tarragon,tarragon,3301061236,tarragon,3301061236,EuroCrops fr_2018.csv -FAG,Autre fourrage annuel d’un autre genre,Other annual fodder of a different type,other_arable_land_crops,3301990000,other_industrial_crops,3301069900,EuroCrops fr_2018.csv -FET,Fétuque de 5 ans ou moins,Fescue 5 years or less,festuca_fescue,3301090202,festuca_fescue,3301090202,EuroCrops fr_2018.csv -FEV,Fève,Faba bean,beans,3301020100,beans,3301020100,EuroCrops fr_2018.csv -FF5,Feverole fourragere implantee pour la recolte 2015,Fodder faba bean implanted for the 2015 harvest,beans,3301020100,beans,3301020100,EuroCrops fr_other_years.csv -FF6,Féverole fourragère implantée pour la récolte 2016,Fodder faba bean implanted for the 2016 harvest,beans,3301020100,beans,3301020100,EuroCrops fr_2018.csv -FF7,Féverole fourragère implantée pour la récolte 2017,Feed faba bean planted for the 2017 harvest,beans,3301020100,beans,3301020100,EuroCrops fr_2018.csv -FF8,Féverole fourragère implantée pour la récolte 2018,Faba bean planted for the 2018 harvest,beans,3301020100,beans,3301020100,EuroCrops fr_2018.csv -FFO,Autre féverole fourragère,Other fodder bean,beans,3301020100,beans,3301020100,EuroCrops fr_2018.csv -FLA,Autre légume ou fruit annuel,Other vegetables or annual fruits,fresh_vegetables,3301070000,fresh_vegetables,3301070000,EuroCrops fr_2018.csv -FLO,Fléole de 5 ans ou moins,Timothy 5 years or less,timothy,3301090209,timothy,3301090209,EuroCrops fr_2018.csv -FLP,Autre légume ou fruit pérenne,Other perennial vegetable or fruit,unspecified_permanent_crops,3303120000,unspecified_permanent_crops,3303120000,EuroCrops fr_2018.csv -FNO,Fenouil,Fennel,fennel,3301170000,fennel,3301170000,EuroCrops fr_2018.csv -FNU,Fenugrec,Fenugreek,fenugreek,3301020400,fenugreek,3301020400,EuroCrops fr_2018.csv -FRA,Fraise,Strawberry,strawberries,3301130000,strawberries,3301130000,EuroCrops fr_2018.csv -FSG,Autre plante fourragère sarclée d’un autre genre,Another root fodder plant of another type,fodder_roots,3301050000,other_industrial_crops,3301069900,EuroCrops fr_2018.csv -FVL,Féverole semée avant le 31/05,Faba bean sown before 31 May,beans,3301020100,beans,3301020100,EuroCrops fr_2018.csv -FVP,Féverole de printemps,Spring faba bean,beans,3301020100,,,fiboa -FVT,Feverole semee tardivement (apres le 31/05),Faba bean sown after 31 May,beans,3301020100,beans,3301020100,EuroCrops fr_other_years.csv -GAI,Gaillet,Galium,galium_bedstraw,3301061217,galium_bedstraw,3301061217,EuroCrops fr_2018.csv -GES,Gesse,Chickling vetch,vetches,3301090305,vetches,3301090305,EuroCrops fr_2018.csv -GFP,Autre graminée fourragère pure de 5 ans ou moins,Other pure forage grass 5 years or less,temporary_grass,3301090100,pasture_meadow_grassland_grass,3302000000,EuroCrops fr_2018.csv -HAR,Haricot / Flageolet,Bean / Flageolet,beans,3301020100,beans,3301020100,EuroCrops fr_2018.csv -HBL,Houblon,Hop,hops,3301060200,hops,3301060200,EuroCrops fr_2018.csv -HPC,Horticulture ornementale de plein champ,Field ornamental horticulture,other_plants_harvested_green,3301099900,other_plants_harvested_green,3301099900,EuroCrops fr_other_years.csv -HSA,Horticulture ornementale sous abris,Ornamental horticulture under cover,greenhouse_foil_film,3305000000,greenhouse_foil_film,3305000000,EuroCrops fr_other_years.csv -J5M,Jachère de 5 ans ou moins,Fallow land 5 years or less,fallow_land_not_crop,3301110000,fallow_land_not_crop,3301110000,EuroCrops fr_2018.csv -J6P,Jachère de 6 ans ou plus,Fallow 6 years or more,unmaintained,3308000000,fallow_land_not_crop,3301110000,EuroCrops fr_2018.csv -J6S,Jachère de 6 ans ou plus déclarée comme Surface d’intérêt écologique,Fallow land 6 years or more declared as Ecological Focus Area (EFA),unmaintained,3308000000,fallow_land_not_crop,3301110000,EuroCrops fr_2018.csv -JAC,Jachère (terre arable),Fallow (arable land),fallow_land_not_crop,3301110000,,,fiboa -JNO,Jachère noire,Black fallow,fallow_land_not_crop,3301110000,fallow_land_not_crop,3301110000,EuroCrops fr_2018.csv -JO5,Jarosse implantee pour la recolte 2015,Jarosse planted for the 2015 harvest,vetches,3301090305,vetches,3301090305,EuroCrops fr_other_years.csv -JO6,Jarosse implantée pour la récolte 2016,vetch/red pea planted for the 2016 harvest,legumes_harvested_green,3301090300,vetches,3301090305,EuroCrops fr_2018.csv -JO7,Jarosse implantée pour la récolte 2017,vetch/red pea planted for the 2017 harvest,legumes_harvested_green,3301090300,not_known_and_other,3399000000,EuroCrops fr_2018.csv -JO8,Jarosse implantée pour la récolte 2018,vetch/red pea vetchplanted for the 2018 harvest,legumes_harvested_green,3301090300,vetches,3301090305,EuroCrops fr_2018.csv -JOD,Jarosse déshydratée,Dryied Jarosse,vetches,3301090305,vetches,3301090305,EuroCrops fr_other_years.csv -JOS,Autre jarosse,Other jarosse,vetches,3301090305,vetches,3301090305,EuroCrops fr_other_years.csv -LAV,Lavande / Lavandin,Lavender / Lavandin,lavender_lavandula,3301061219,lavender_lavandula,3301061219,EuroCrops fr_2018.csv -LBF,Laitue / Batavia / Feuille de chêne,Lettuce / Batavia / Oak leaf,other_salads_lettuce_leaf_vegetables,3301319900,other_salads_lettuce_leaf_vegetables,3301319900,EuroCrops fr_2018.csv -LDH,Lupin doux d’hiver,Sweet winter lupine,sweet_lupins,3301020700,sweet_lupins,3301020700,EuroCrops fr_2018.csv -LDP,Lupin doux de printemps semé avant le 31/05,Sweet spring lupine sown before 31 May,sweet_lupins,3301020700,sweet_lupins,3301020700,EuroCrops fr_2018.csv -LDT,Lupin doux de printemps semé tardivement (après le 31/05),Sweet spring lupine sown after 31 May,sweet_lupins,3301020700,sweet_lupins,3301020700,EuroCrops fr_other_years.csv -LEC,Lentille cultivée (non fourragère),Cultivated lentil (not fodder),lentils,3301020500,lentils,3301020500,EuroCrops fr_2018.csv -LEF,Lentille fourragère,Forage lentil,lentils,3301020500,lentils,3301020500,EuroCrops fr_2018.csv -LFH,Autre lupin fourrager d’hiver,Other winter forage lupine,sweet_lupins,3301020700,sweet_lupins,3301020700,EuroCrops fr_2018.csv -LFP,Autre lupin fourrager de printemps,Other spring forage lupine,sweet_lupins,3301020700,sweet_lupins,3301020700,EuroCrops fr_2018.csv -LH5,Lupin fourrager d'hiver implante pour la recolte 2015,Winter forage lupine planted for the 2016 harvest,sweet_lupins,3301020700,sweet_lupins,3301020700,EuroCrops fr_other_years.csv -LH6,Lupin fourrager d’hiver implanté pour la récolte 2016,Winter forage lupine planted for the 2016 harvest,sweet_lupins,3301020700,sweet_lupins,3301020700,EuroCrops fr_2018.csv -LH7,Lupin fourrager d’hiver implanté pour la récolte 2017,Winter forage lupin planted for the 2017 harvest,sweet_lupins,3301020700,sweet_lupins,3301020700,EuroCrops fr_2018.csv -LH8,Lupin fourrager d’hiver implanté pour la récolte 2018,Winter forage lupin planted for the 2018 harvest,sweet_lupins,3301020700,sweet_lupins,3301020700,EuroCrops fr_2018.csv -LIF,Lin fibres,Linen fibers,flax_linen,3301060701,flax_linen,3301060701,EuroCrops fr_2018.csv -LIH,Lin non textile d’hiver,Winter non-textile linen,flax_linseed,3301060700,flax_linen,3301060701,EuroCrops fr_2018.csv -LIP,Lin non textile de printemps,Spring non-textile linen,flax_linseed,3301060700,flax_linen,3301060701,EuroCrops fr_2018.csv -LO7,Lotier implanté pour la récolte 2017,Trefoil planted for the 2017 harvest,legumes_harvested_green,3301090300,lotus,3301082600,EuroCrops fr_2018.csv -LO8,Lotier implanté pour la récolte 2018,Trefoil planted for the 2018 harvest,legumes_harvested_green,3301090300,lotus,3301082600,EuroCrops fr_2018.csv -LOT,Lotier,Trefoil,legumes_harvested_green,3301090300,lotus,3301082600,EuroCrops fr_2018.csv -LP5,Lupin fourrager de printemps implante pour la recolte 2015,Spring forage lupine planted for the 2015 harvest,sweet_lupins,3301020700,sweet_lupins,3301020700,EuroCrops fr_other_years.csv -LP6,Lupin fourrager de printemps implanté pour la récolte 2016,Spring forage lupine planted for the 2016 harvest,sweet_lupins,3301020700,sweet_lupins,3301020700,EuroCrops fr_2018.csv -LP7,Lupin fourrager de printemps implanté pour la récolte 2017,Spring forage lupin planted for 2017 harvest,sweet_lupins,3301020700,sweet_lupins,3301020700,EuroCrops fr_2018.csv -LP8,Lupin fourrager de printemps implanté pour la récolte 2018,Spring forage lupin planted for 2018 harvest,sweet_lupins,3301020700,sweet_lupins,3301020700,EuroCrops fr_2018.csv -LSA,Légume sous abris,Vegetable under cover,greenhouse_foil_film,3305000000,greenhouse_foil_film,3305000000,EuroCrops fr_other_years.csv -LU5,Luzerne implantee pour la recolte 2015,Alfalfa planted for the 2016 harvest,alfalfa_lucerne,3301090301,alfalfa_lucerne,3301090301,EuroCrops fr_other_years.csv -LU6,Luzerne implantée pour la récolte 2016,Alfalfa planted for the 2016 harvest,alfalfa_lucerne,3301090301,alfalfa_lucerne,3301090301,EuroCrops fr_2018.csv -LU7,Luzerne implantée pour la récolte 2017,Alfalfa planted for the 2017 harvest,alfalfa_lucerne,3301090301,alfalfa_lucerne,3301090301,EuroCrops fr_2018.csv -LU8,Luzerne implantée pour la récolte 2018,Alfalfa planted for the 2018 harvest,alfalfa_lucerne,3301090301,alfalfa_lucerne,3301090301,EuroCrops fr_2018.csv -LUD,Luzerne déshydratée,Dehydrated alfalfa,alfalfa_lucerne,3301090301,alfalfa_lucerne,3301090301,EuroCrops fr_2018.csv -LUZ,Autre luzerne,Other alfalfa,alfalfa_lucerne,3301090301,alfalfa_lucerne,3301090301,EuroCrops fr_2018.csv -MAC,Mâche,Lamb's lettuce,lambs_lettuce_rapunzel,3301310500,lambs_lettuce_rapunzel,3301310500,EuroCrops fr_2018.csv -MAV,Mauve,Mallow,malva,3301082800,malva,3301082800,EuroCrops fr_2018.csv -MC5,Melange de legumineuses fourrageres preponderantes au semis implantees pour la recolte 2015 et de cereales,Mixture of predominantly forage legumes planted for the 2015 harvest and cereals,other_dry_pulses,3301029900,other_dry_pulses,3301029900,EuroCrops fr_other_years.csv -MC6,Mélange de légumineuses fourragères prépondérantes au semis implantées pour la récolte 2016 et de céréales,Mixture of predominantly forage legumes planted for the 2016 harvest and cereals,legumes_harvested_green,3301090300,other_dry_pulses,3301029900,EuroCrops fr_2018.csv -MC7,Mélange de légumineuses fourragères prépondérantes implantées pour la récolte 2017 et de céréales et/ou d’oléagineux,Mixture of predominantly forage legumes planted for the 2017 harvest and cereals and/or oilseeds,legumes_harvested_green,3301090300,other_dry_pulses,3301029900,EuroCrops fr_2018.csv -MC8,Mélange de légumineuses fourragères prépondérantes implantées pour la récolte 2018 et de céréales et/ou d’oléagineux,Mixture of predominantly forage legumes planted for the 2018 harvest and cereals and/or oilseeds,legumes_harvested_green,3301090300,other_dry_pulses,3301029900,EuroCrops fr_2018.csv -MCR,Mélange de céréales,Mix of cereals,cereal,3301010000,unspecified_season_unspecified_cereals,3301011599,EuroCrops fr_2018.csv -MCS,Autre céréale ou pseudo-céréale de printemps,Other spring cereal or pseudo-cereal,spring_unspecified_cereals,3301011502,,,fiboa -MCT,Miscanthus,Miscanthus,miscanthus_silvergrass,3301083000,miscanthus_silvergrass,3301083000,EuroCrops fr_2018.csv -ME5,Melilot implante pour la recolte 2015,Melilot planted for the 2015 harvest,melilot,3301090304,melilot,3301090304,EuroCrops fr_other_years.csv -ME6,Mélilot implanté pour la récolte 2016,Melilot planted for the 2016 harvest,melilot,3301090304,melilot,3301090304,EuroCrops fr_2018.csv -ME7,Mélilot implanté pour la récolte 2017,Melilot planted for the 2017 harvest,melilot,3301090304,melilot,3301090304,EuroCrops fr_2018.csv -ME8,Mélilot implanté pour la récolte 2018,Melilot planted for the 2018 harvest,melilot,3301090304,melilot,3301090304,EuroCrops fr_2018.csv -MED,Mélilot déshydraté,Dehydrated melilot,melilot,3301090304,melilot,3301090304,EuroCrops fr_2018.csv -MEL,Autre mélilot,Other sweet clover,melilot,3301090304,clover,3301090303,EuroCrops fr_2018.csv -MH5,Melange de legumineuses fourrageres preponderantes au semis implantees pour la recolte 2015 et d'herbacees ou de graminees fourrageres,Mixture of forage legumes predominant at seeding planted for the 2015 harvest and herbaceous or forage grasses,other_dry_pulses,3301029900,other_dry_pulses,3301029900,EuroCrops fr_other_years.csv -MH6,Melange de legumineuses fourrageres preponderantes au semis implantees pour la recolte 2016 et d'herbacees ou de graminees fourrageres,Mixture of forage legumes predominant at seeding planted for the 2016 harvest and herbaceous or forage grasses,other_dry_pulses,3301029900,other_dry_pulses,3301029900,EuroCrops fr_other_years.csv -MH7,Melange de legumineuses fourrageres,Mixture of forage legumes,other_dry_pulses,3301029900,other_dry_pulses,3301029900,EuroCrops fr_other_years.csv -MI7,Minette implanté pour la récolte 2017,Hop clover Medicago planted for the 2017 harvest,clover,3301090303,clover,3301090303,EuroCrops fr_2018.csv -MI8,Minette implanté pour la récolte 2018,Hop clover Medicago planted for the 2018 harvest,clover,3301090303,clover,3301090303,EuroCrops fr_2018.csv -MID,Maïs doux,Sweet corn,grain_maize_corn_popcorn,3301010600,grain_maize_corn_popcorn,3301010600,EuroCrops fr_2018.csv -MIE,Maïs ensilage,Silage Maize,green_silo_maize,3301090400,green_silo_maize,3301090400,EuroCrops fr_2018.csv -MIN,Minette,Hop clover Medicago,clover,3301090303,clover,3301090303,EuroCrops fr_2018.csv -MIS,Maïs,Maize,grain_maize_corn_popcorn,3301010600,grain_maize_corn_popcorn,3301010600,EuroCrops fr_2018.csv -ML5,Melange de legumineuses fourrageres implantees pour la recolte 2015 (entre elles),Mixture of forage legumes implanted for the 2015 harvest (among themselves),other_dry_pulses,3301029900,other_dry_pulses,3301029900,EuroCrops fr_other_years.csv -ML6,Mélange de légumineuses fourragères implantées pour la récolte 2016 (entre elles),Mixture of forage legumes implanted for the 2016 harvest (among themselves),legumes_harvested_green,3301090300,other_dry_pulses,3301029900,EuroCrops fr_2018.csv -ML7,Mélange de légumineuses fourragères implantées pour la récolte 2017,Fodder legume mixture planted for the 2017 harvest,legumes_harvested_green,3301090300,other_dry_pulses,3301029900,EuroCrops fr_2018.csv -ML8,Mélange de légumineuses fourragères implantées pour la récolte 2018,Fodder legume mixture planted for the 2018 harvest,legumes_harvested_green,3301090300,other_dry_pulses,3301029900,EuroCrops fr_2018.csv -MLC,Melange de legumineuses fourrageres,Mixture of forage legumes,other_dry_pulses,3301029900,other_dry_pulses,3301029900,EuroCrops fr_other_years.csv -MLD,Mélange de légumineuses déshydratées (entre elles),Mixture of dehydrated legumes (among themselves),legumes_dried_pulses_protein_crops,3301020000,other_dry_pulses,3301029900,EuroCrops fr_2018.csv -MLF,Melange de legumineuses fourrageres,Mixture of forage legumes,other_dry_pulses,3301029900,other_dry_pulses,3301029900,EuroCrops fr_other_years.csv -MLG,Mélange de légumineuses prépondérantes au semis et de graminées fourragères de 5 ans ou moins,Mixture of legumes predominantly at seed and forage grasses 5 years or less,legumes_dried_pulses_protein_crops,3301020000,other_dry_pulses,3301029900,EuroCrops fr_2018.csv -MLI,Mélisse,Lemon balm,lemon_balm_melissa,3301061220,lemon_balm_melissa,3301061220,EuroCrops fr_2018.csv -MLO,Melon,Melon,melon,3301140300,melon,3301140300,EuroCrops fr_2018.csv -MLP,Millepertuis,St. John's Wort,st_johns_wort,3301061234,st_johns_wort,3301061234,EuroCrops fr_2018.csv -MLS,Melange de legumineuses fourrageres,Mixture of forage legumes,other_dry_pulses,3301029900,other_dry_pulses,3301029900,EuroCrops fr_other_years.csv -MLT,Millet,Millet,millet_sorghum,3301010900,millet_sorghum,3301010900,EuroCrops fr_2018.csv -MOH,Moha,Foxtail millet,millet_sorghum,3301010900,millet_sorghum,3301010900,EuroCrops fr_2018.csv -MOL,Mélange d’oléagineux,Oilseed blend,oilseed_crops,3301060800,oilseed_crops,3301060800,EuroCrops fr_2018.csv -MOT,Moutarde,Mustard,mustard,3301210100,mustard,3301210100,EuroCrops fr_2018.csv -MPA,Autre mélange de plantes fixant l’azote,Other mixture of nitrogen fixing plants,other_arable_land_crops,3301990000,other_arable_land_crops,3301990000,EuroCrops fr_2018.csv -MPC,Mélange de protéagineux (pois et/ou lupin et/ou féverole) prépondérants semés avant le 31/05 et de céréales,Mixture of predominantly protein crops (peas and / or lupine and / or faba bean) sown before 31 May and cereals,other_dry_pulses,3301029900,other_dry_pulses,3301029900,EuroCrops fr_2018.csv -MPP,Mélange de protéagineux (pois et/ou lupin et/ou féverole) prépondérants semés avant le 31/05 et de céréales,Protein crop mixture (pea and/or lupin and/or faba bean),other_dry_pulses,3301029900,other_dry_pulses,3301029900,EuroCrops fr_2018.csv -MPT,Mélange de protéagineux semés tardivement (après le 31/05),,other_dry_pulses,3301029900,other_dry_pulses,3301029900,EuroCrops fr_other_years.csv -MRG,Marguerite,Daisy,daisy_daisies,3301081300,daisy_daisies,3301081300,EuroCrops fr_2018.csv -MRJ,Marjolaine / Origan,Marjoram / Oregano,oregano,3301061226,oregano,3301061226,EuroCrops fr_2018.csv -MRS,Marais salant,Salt marsh,not_known_and_other,3399000000,not_known_and_other,3399000000,EuroCrops fr_2018.csv -MTH,Menthe,Mint,mints_peppermint,3301061222,mints_peppermint,3301061222,EuroCrops fr_2018.csv -NOS,Noisette,Hazelnut,hazelnuts_hazel,3303030200,hazelnuts_hazel,3303030200,EuroCrops fr_2018.csv -NOX,Noix,Walnuts,walnuts,3303030600,walnuts,3303030600,EuroCrops fr_2018.csv -NVE,Navette d’été,Summer rape,summer_rapeseed_rape,3301060403,summer_rapeseed_rape,3301060403,EuroCrops fr_2018.csv -NVF,Navet fourrager,Forage turnip,turnips,3301290800,turnips,3301290800,EuroCrops fr_2018.csv -NVH,Navette d’hiver,Winter rape,winter_rapeseed_rape,3301060401,winter_rapeseed_rape,3301060401,EuroCrops fr_2018.csv -NVT,Navet,Turnip,turnips,3301290800,turnips,3301290800,EuroCrops fr_2018.csv -NYG,Nyger,Nyger,guizotia_abyssinica_nyger,3301060900,guizotia_abyssinica_nyger,3301060900,EuroCrops fr_2018.csv -OAG,Autre oléagineux d’un autre genre,Other oilseeds of a different type,oilseed_crops,3301060800,oilseed_crops,3301060800,EuroCrops fr_2018.csv -OEH,Autre oléagineux d’espèce Helianthus,Other oilseeds of the species Helianthus,sunflower,3301060500,oilseed_crops,3301060800,EuroCrops fr_2018.csv -OEI,Œillette,Oilseed poppy,poppy,3301060600,oilseed_crops,3301060800,EuroCrops fr_2018.csv -OHN,Autre oléagineux d’hiver d’espèce Brassica napus,Other winter oilseeds of the species Brassica napus,winter_rapeseed_rape,3301060401,oilseed_crops,3301060800,EuroCrops fr_2018.csv -OHR,Autre oléagineux d’hiver d’espèce Brassica rapa,Other winter oilseeds of the species Brassica rapa,winter_rapeseed_rape,3301060401,oilseed_crops,3301060800,EuroCrops fr_2018.csv -OIG,Oignon / Échalote,Onion / Shallot,onions,3301220400,onions,3301220400,EuroCrops fr_2018.csv -OLI,Oliveraie ,Olive grove,olive_plantations,3303050000,olive_plantations,3303050000,EuroCrops fr_2018.csv -OPN,Autre oléagineux de printemps d’espèce Brassica napus,Other Brassica napus spring oilseeds,spring_unspecified_cereals,3301011502,spring_unspecified_cereals,3301011502,EuroCrops fr_2018.csv -OPR,Autre oléagineux de printemps d’espèce Brassica rapa,Other Brassica rapa spring oilseeds,oilseed_crops,3301060800,oilseed_crops,3301060800,EuroCrops fr_2018.csv -ORH,Orge d'hiver,Winter barley,winter_barley,3301010401,winter_barley,3301010401,EuroCrops fr_2018.csv -ORP,Orge de printemps,Spring barley,spring_barley,3301010402,spring_barley,3301010402,EuroCrops fr_2018.csv -ORT,Ortie,Nettle,nettles,3301061225,nettles,3301061225,EuroCrops fr_2018.csv -OSE,Oseille,Sorrel,sorrel,3301310700,sorrel,3301310700,EuroCrops fr_2018.csv -PAG,Autre protéagineux d’un autre genre,Other protein crop of another type,other_dry_pulses,3301029900,other_dry_pulses,3301029900,EuroCrops fr_2018.csv -PAN,Panais,Parsnip,parsnips,3301290500,parsnips,3301290500,EuroCrops fr_2018.csv -PAQ,Pâquerette,Daisy,daisy_daisies,3301081300,daisy_daisies,3301081300,EuroCrops fr_2018.csv -PAS,Pastèque,Watermelon,watermelon,3301140500,watermelon,3301140500,EuroCrops fr_2018.csv -PAT,Pâturin commun de 5 ans ou moins,Other rough blue-grass 5 years or less,poaceae_grasses,3301090200,pasture_meadow_grassland_grass,3302000000,EuroCrops fr_2018.csv -PCH,Pois chiche,Chickpea,chickpeas,3301020200,chickpeas,3301020200,EuroCrops fr_2018.csv -PCL,Phacélie de 5 ans ou moins,Phacelia 5 years or less,phacelia,3301061400,phacelia,3301061400,EuroCrops fr_2018.csv -PEP,Pépinière,Nursery,nurseries_nursery,3303070000,nurseries_nursery,3303070000,EuroCrops fr_2018.csv -PEV,Pépinière (plants laissés en place),Nursery (plants left in place),nurseries_nursery,3303070000,,,fiboa -PFH,Autre pois fourrager d’hiver,Other winter feed peas,peas,3301020600,peas,3301020600,EuroCrops fr_2018.csv -PFP,Autre pois fourrager de printemps,Other spring feed peas,peas,3301020600,peas,3301020600,EuroCrops fr_2018.csv -PFR,Petit fruit rouge,Berry,berries_berry_species,3303020000,berries_berry_species,3303020000,EuroCrops fr_2018.csv -PH5,Pois fourrager d'hiver implante pour la recolte 2015,Winter fodder peas planted for the 2015 harvest,peas,3301020600,peas,3301020600,EuroCrops fr_other_years.csv -PH6,Pois fourrager d’hiver implanté pour la récolte 2016,Winter fodder peas planted for the 2016 harvest,peas,3301020600,peas,3301020600,EuroCrops fr_2018.csv -PH7,Pois fourrager d’hiver implanté pour la récolte 2017,Winter fodder pea planted for the 2017 harvest,peas,3301020600,peas,3301020600,EuroCrops fr_2018.csv -PH8,Pois fourrager d’hiver implanté pour la récolte 2018,Winter fodder pea planted for the 2018 harvest,peas,3301020600,peas,3301020600,EuroCrops fr_2018.csv -PHI,Pois d’hiver,Winter peas,peas,3301020600,peas,3301020600,EuroCrops fr_2018.csv -PIS,Pistache ,Pistachio,pistachio,3303030400,pistachio,3303030400,EuroCrops fr_2018.csv -PMD,Plante médicinale,,unspecified_aromatic_medicinal_culinary_plants_spices_herbs,3301061298,unspecified_aromatic_medicinal_culinary_plants_spices_herbs,3301061298,EuroCrops fr_other_years.csv -PME,Plante médicinale pérenne,Perennial medicinal plant,unspecified_aromatic_medicinal_culinary_plants_spices_herbs,3301061298,,,fiboa -PMV,Primevère,Primrose,primrose,3301083500,primrose,3301083500,EuroCrops fr_2018.csv -POR,Poireau,Leek,leek,3301220300,leek,3301220300,EuroCrops fr_2018.csv -POT,Potiron / Potimarron,Pumpkin / Red kuri squash,pumpkin_squash_gourd,3301140400,pumpkin_squash_gourd,3301140400,EuroCrops fr_2018.csv -PP5,Pois fourrager de printemps implanté pour la récolte 2015,Chickling vetchplanted for the 2015 harvest,peas,3301020600,peas,3301020600,EuroCrops fr_other_years.csv -PP6,Pois fourrager de printemps implanté pour la récolte 2016,Spring fodder pea planted for the 2016 harvest,peas,3301020600,vetches,3301090305,EuroCrops fr_2018.csv -PP7,Pois fourrager de printemps implanté pour la récolte 2017,Spring fodder pea planted for the 2017 harvest,peas,3301020600,peas,3301020600,EuroCrops fr_2018.csv -PP8,Pois fourrager de printemps implanté pour la récolte 2018,Spring Fodder Pea planted for the 2018 harvest,peas,3301020600,peas,3301020600,EuroCrops fr_2018.csv -PPA,"Autre plante à parfum, aromatique et médicinale annuelle","Other annual perfume, aromatic and medicinal plant",unspecified_aromatic_medicinal_culinary_plants_spices_herbs,3301061298,other_aromatic_medicinal_culinary_plants_spices_herbs,3301061299,EuroCrops fr_2018.csv -PPF,Plante a parfum (autre que geranium et vetiver),"Other annual perfume, aromatic and medicinal plant",unspecified_aromatic_medicinal_culinary_plants_spices_herbs,3301061298,unspecified_aromatic_medicinal_culinary_plants_spices_herbs,3301061298,EuroCrops fr_other_years.csv -PPH,Prairie permanente - herbe prédominante (ressources fourragères ligneuses absentes ou peu présentes),Permanent pasture - predominantly grass (woody fodder resources absent or scarce),pasture_meadow_grassland_grass,3302000000,pasture_meadow_grassland_grass,3302000000,EuroCrops fr_2018.csv -PPO,Petits pois,Green peas,peas,3301020600,peas,3301020600,EuroCrops fr_2018.csv -PPP,"Autre plante à parfum, aromatique et médicinale pérenne","Other perennial perfume, aromatic and medicinal plants",unspecified_aromatic_medicinal_culinary_plants_spices_herbs,3301061298,other_aromatic_medicinal_culinary_plants_spices_herbs,3301061299,EuroCrops fr_2018.csv -PPR,Pois de printemps semé avant le 31/05,Spring peas sown before 31 May,peas,3301020600,peas,3301020600,EuroCrops fr_2018.csv -PPT,Pois de printemps seme tardivement (apres le 31/05),Spring peas sown after 31 May,peas,3301020600,peas,3301020600,EuroCrops fr_other_years.csv -PRF,Plante à parfum pérenne,Perennial perfume plant,unspecified_aromatic_medicinal_culinary_plants_spices_herbs,3301061298,,,fiboa -PRL,Prairie en rotation longue (6 ans ou plus),Long rotation meadow (6 years or more),pasture_meadow_grassland_grass,3302000000,pasture_meadow_grassland_grass,3302000000,EuroCrops fr_2018.csv -PRU,Prune d’Ente pour transformation,Plum for processing,plums,3303011300,plums,3303011300,EuroCrops fr_2018.csv -PSE,Pensée,Viola tricolor,viola,3301085000,viola,3301085000,EuroCrops fr_2018.csv -PSL,Persil,Parsley,parsly,3301061227,parsly,3301061227,EuroCrops fr_2018.csv -PSN,Psyllium noir de Provence,Provence black psyllium,other_aromatic_medicinal_culinary_plants_spices_herbs,3301061299,other_aromatic_medicinal_culinary_plants_spices_herbs,3301061299,EuroCrops fr_2018.csv -PSY,Plantain psyllium,Psyllium plantain,other_aromatic_medicinal_culinary_plants_spices_herbs,3301061299,other_aromatic_medicinal_culinary_plants_spices_herbs,3301061299,EuroCrops fr_2018.csv -PTC,Pomme de terre de consommation,Potato for consumption,potatoes,3301030000,potatoes,3301030000,EuroCrops fr_2018.csv -PTF,Pomme de terre féculière,Starch potato,potatoes,3301030000,potatoes,3301030000,EuroCrops fr_2018.csv -PTR,Autre prairie temporaire de 5 ans ou moins,Other temporary grassland 5 years or less,temporary_grass,3301090100,temporary_grass,3301090100,EuroCrops fr_2018.csv -PVP,Poivron / Piment,Pepper / Chili,chili_pepper,3301300200,chili_pepper,3301300200,EuroCrops fr_2018.csv -PVT,Pêche Pavie pour transformation,Pavia peaches for processing,peach,3303011100,peach,3303011100,EuroCrops fr_2018.csv -PWT,Poire Williams pour transformation,Williams pear for processing,pears,3303011200,pears,3303011200,EuroCrops fr_2018.csv -RDF,Radis fourrager,Forage radish,radish,3301290600,radish,3301290600,EuroCrops fr_2018.csv -RDI,Radis,Radish,radish,3301290600,radish,3301290600,EuroCrops fr_2018.csv -RGA,Ray-grass de 5 ans ou moins,Ryegrass 5 years or less,lolium_ryegrass,3301090205,lolium_ryegrass,3301090205,EuroCrops fr_2018.csv -RIZ,Riz,Rice,rice,3301010700,rice,3301010700,EuroCrops fr_2018.csv -ROM,Romarin,Rosemary,rosemary,3301061230,rosemary,3301061230,EuroCrops fr_2018.csv -ROQ,Roquette,Rocket,rocket_arugula,3301310600,rocket_arugula,3301310600,EuroCrops fr_2018.csv -ROS,Roselière,Reed bed,not_known_and_other,3399000000,not_known_and_other,3399000000,EuroCrops fr_2018.csv -RUT,Rutabaga,Rutabaga,swede_rutabaga,3301210500,swede_rutabaga,3301210500,EuroCrops fr_2018.csv -RVI,Restructuration du vignoble,Restructuring of the vineyard,vineyards_wine_vine_rebland_grapes,3303060000,vineyards_wine_vine_rebland_grapes,3303060000,EuroCrops fr_2018.csv -SA5,Sainfoin implante pour la recolte 2015,Sainfoin planted for the 2015 harvest,onobrychis_sainfoins,3301061600,onobrychis_sainfoins,3301061600,EuroCrops fr_other_years.csv -SA6,Sainfoin implanté pour la récolte 2016,Sainfoin planted for the 2016 harvest,onobrychis_sainfoins,3301061600,onobrychis_sainfoins,3301061600,EuroCrops fr_2018.csv -SA7,Sainfoin implanté pour la récolte 2017,Sainfoin planted for the 2017 harvest,onobrychis_sainfoins,3301061600,onobrychis_sainfoins,3301061600,EuroCrops fr_2018.csv -SA8,Sainfoin implanté pour la récolte 2018,Sainfoin planted for the 2018 harvest,onobrychis_sainfoins,3301061600,onobrychis_sainfoins,3301061600,EuroCrops fr_2018.csv -SAD,Sainfoin déshydraté,Dehydrated Sainfoin,onobrychis_sainfoins,3301061600,onobrychis_sainfoins,3301061600,EuroCrops fr_2018.csv -SAG,Roselière,Reed bed,not_known_and_other,3399000000,,,fiboa -SAI,Autre sainfoin,Other sainfoin,onobrychis_sainfoins,3301061600,onobrychis_sainfoins,3301061600,EuroCrops fr_2018.csv -SBO,Surface boisée sur une ancienne terre agricole,Wooded area on former agricultural land,tree_wood_forest,3306000000,other_tree_wood_forest,3306990000,EuroCrops fr_2018.csv -SE5,Serradelle implantee pour la recolte 2015,Serradella planted for the 2015 harvest,serradella,3301084200,serradella,3301084200,EuroCrops fr_other_years.csv -SE6,Serradelle implantée pour la récolte 2016,Serradella planted for the 2016 harvest,serradella,3301084200,serradella,3301084200,EuroCrops fr_2018.csv -SE7,Serradelle implantée pour la récolte 2017,Serradelle planted for the 2017 harvest,serradella,3301084200,serradella,3301084200,EuroCrops fr_2018.csv -SE8,Serradelle implantée pour la récolte 2018,Serradella planted for the 2018 harvest,serradella,3301084200,serradella,3301084200,EuroCrops fr_2018.csv -SER,Autre serradelle,Other Serradella,serradella,3301084200,serradella,3301084200,EuroCrops fr_other_years.csv -SFI,Salsifis,Salsify,salsify,3301084000,salsify,3301084000,EuroCrops fr_2018.csv -SGE,Sauge,Sage,sage_chia,3301190000,sage_chia,3301190000,EuroCrops fr_2018.csv -SGH,Seigle d’hiver,Winter rye,winter_rye,3301010301,winter_rye,3301010301,EuroCrops fr_2018.csv -SGP,Seigle de printemps,Spring rye,spring_rye,3301010302,spring_rye,3301010302,EuroCrops fr_2018.csv -SNE,Surface agricole temporairement non exploitée,Temporarily unused agricultural area,fallow_land_not_crop,3301110000,unmaintained,3308000000,EuroCrops fr_2018.csv -SOG,Sorgho,Sorghum,millet_sorghum,3301010900,millet_sorghum,3301010900,EuroCrops fr_2018.csv -SOJ,Soja,Soybean,soy_soybeans,3301160000,soy_soybeans,3301160000,EuroCrops fr_2018.csv -SPH,Surface pastorale - herbe prédominante et ressources fourragères ligneuses présentes,Pastoral area - predominantly grass and woody forage resources present,pasture_meadow_grassland_grass,3302000000,pasture_meadow_grassland_grass,3302000000,EuroCrops fr_2018.csv -SPL,Surface pastorale - ressources fourragères ligneuses prédominantes,Pastoral area - predominant woody fodder resources,pasture_meadow_grassland_grass,3302000000,other_tree_wood_forest,3306990000,EuroCrops fr_2018.csv -SRI,Sarriette,Summer savory,other_aromatic_medicinal_culinary_plants_spices_herbs,3301061299,other_aromatic_medicinal_culinary_plants_spices_herbs,3301061299,EuroCrops fr_2018.csv -SRS,Sarrasin,Buckwheat,buckwheat,3301150200,buckwheat,3301150200,EuroCrops fr_2018.csv -TAB,Tabac,Tobacco,tobacco,3301060100,tobacco,3301060100,EuroCrops fr_2018.csv -TCR,Taillis à courte rotation,Short rotation coppice,tree_wood_forest,3306000000,other_tree_wood_forest,3306990000,EuroCrops fr_2018.csv -THY,Thym,Thyme,thyme,3301061237,thyme,3301061237,EuroCrops fr_2018.csv -TOM,Tomate,Tomato,tomato,3301280000,tomato,3301280000,EuroCrops fr_2018.csv -TOP,Topinambour,Jerusalem artichoke,topinambur_jerusalem_artichoke,3301290900,topinambur_jerusalem_artichoke,3301290900,EuroCrops fr_2018.csv -TOT,Tomate pour transformation,Tomato for processing,tomato,3301280000,tomato,3301280000,EuroCrops fr_2018.csv -TR5,Trèfle implante pour la recolte 2015,Clover planted for the 2015 harvest,clover,3301090303,clover,3301090303,EuroCrops fr_other_years.csv -TR6,Trèfle implanté pour la récolte 2016,Clover planted for the 2016 harvest,clover,3301090303,clover,3301090303,EuroCrops fr_2018.csv -TR7,Trèfle implanté pour la récolte 2017,Clover planted for the 2017 harvest,clover,3301090303,clover,3301090303,EuroCrops fr_2018.csv -TR8,Trèfle implanté pour la récolte 2018,Clover planted for the 2018 harvest,clover,3301090303,clover,3301090303,EuroCrops fr_2018.csv -TRD,Trèfle déshydraté,Dehydrated clover,clover,3301090303,clover,3301090303,EuroCrops fr_2018.csv -TRE,Autre trèfle,Other clover,clover,3301090303,clover,3301090303,EuroCrops fr_2018.csv -TRN,Tournesol,Sunflower,sunflower,3301060500,sunflower,3301060500,EuroCrops fr_2018.csv -TRU,Truffière (chênaie de plants mycorhizés),Truffle patch (oak grove of mycorrhizal trees),truffle,3304040000,truffle,3304040000,EuroCrops fr_2018.csv -TTH,Triticale d’hiver,Winter triticale,winter_triticale,3301010801,winter_triticale,3301010801,EuroCrops fr_2018.csv -TTP,Triticale de printemps,Spring triticale,spring_triticale,3301010802,spring_triticale,3301010802,EuroCrops fr_2018.csv -VAL,Valériane,Valerian,valerian,3301061238,valerian,3301061238,EuroCrops fr_2018.csv -VE5,Vesce implantee pour la recolte 2015,Vetch planted for the 2015 harvest,vetches,3301090305,vetches,3301090305,EuroCrops fr_other_years.csv -VE6,Vesce implantée pour la récolte 2016,Vetch planted for the 2016 harvest,vetches,3301090305,vetches,3301090305,EuroCrops fr_2018.csv -VE7,Vesce implantée pour la récolte 2017,Vetch planted for the 2017 harvest,vetches,3301090305,vetches,3301090305,EuroCrops fr_2018.csv -VE8,Vesce implantée pour la récolte 2018,Vetch planted for the 2018 harvest,vetches,3301090305,vetches,3301090305,EuroCrops fr_2018.csv -VED,Vesce déshydratée,Dehydrated vetch,vetches,3301090305,vetches,3301090305,EuroCrops fr_2018.csv -VER,Veronique,Veronique,other_aromatic_medicinal_culinary_plants_spices_herbs,3301061299,other_aromatic_medicinal_culinary_plants_spices_herbs,3301061299,EuroCrops fr_other_years.csv -VES,Autre vesce,Other vetch,vetches,3301090305,vetches,3301090305,EuroCrops fr_2018.csv -VRC,Vigne : raisins de cuve,Vine: wine grapes,vineyards_wine_vine_rebland_grapes,3303060000,vineyards_wine_vine_rebland_grapes,3303060000,EuroCrops fr_2018.csv -VRG,Verger,Orchard,orchards_fruits,3303010000,unspecified_orchards_fruits,3303019800,EuroCrops fr_2018.csv -VRN,Vigne: raisins de cuve non en production,Vine: wine grapes not in production,vineyards_wine_vine_rebland_grapes,3303060000,vineyards_wine_vine_rebland_grapes,3303060000,EuroCrops fr_2018.csv -VRT,Vigne : raisins de table,Vine: table grapes,vineyards_wine_vine_rebland_grapes,3303060000,vineyards_wine_vine_rebland_grapes,3303060000,EuroCrops fr_2018.csv -XFE,X-Felium de 5 ans ou moins,X-Felium 5 years or younger type of forage,other_arable_land_crops,3301990000,not_known_and_other,3399000000,EuroCrops fr_2018.csv -ZZZ,Culture inconnue,Other,not_known_and_other,3399000000,not_known_and_other,3399000000,EuroCrops fr_other_years.csv diff --git a/tests/data-files/convert/ec_fr/fr_2018_supplement.csv b/tests/data-files/convert/ec_fr/fr_2018_supplement.csv deleted file mode 100644 index eaa64945..00000000 --- a/tests/data-files/convert/ec_fr/fr_2018_supplement.csv +++ /dev/null @@ -1,2 +0,0 @@ -original_code,original_name,translated_name,HCAT3_name,HCAT3_code -TOP,Topinambour,Jerusalem artichoke,topinambur_jerusalem_artichoke,3301180000 diff --git a/tests/test_convert.py b/tests/test_convert.py index 14fe66ad..467b97e1 100644 --- a/tests/test_convert.py +++ b/tests/test_convert.py @@ -96,6 +96,13 @@ "ec_ro", "india_10k", "it_1", + "ec_de_bb", + "ec_be_vlg", + "ec_be_wal", + "ec_de_nrw", + "ec_at", + "ec_es", + "ec_ee", "de_bw", "lt_kzs", "de_by_block", @@ -238,6 +245,15 @@ def _input_files(converter, *names): "za_fusion", "za_train_258N.geojson", "za_train_259N.geojson", "za_test_2017.geojson" ), "rw_rwanda_ml": _input_files("rw_rwanda", "rw_rwanda_2021.geojson"), + # EuroCrops V2: the fixture is one year's file, named as the JRC names it + "ec_de_bb": {"variant": "2020"}, + "ec_be_vlg": {"variant": "2010"}, + "ec_be_wal": {"variant": "2019"}, + "ec_de_nrw": {"variant": "2021"}, + "ec_at": {"variant": "2016"}, + "ec_es": {"variant": "2023"}, + "ec_fr": {"variant": "2016"}, + "ec_ee": {"variant": "2015"}, } @@ -262,6 +278,7 @@ def _input_files(converter, *names): "crop:code", "id", ) +EC_V2_COLUMNS = ("determination:datetime", "metrics:area", "crop:code", "hcat:code", "id") expected_columns = { "de_sh": ("determination:datetime", "metrics:area", "flik", "hbn", "id"), # the determination date comes from the year variant @@ -287,6 +304,26 @@ def _input_files(converter, *names): f"pt#{year}": (*PT_COLUMNS, "crop:name") if year <= "2019" else PT_COLUMNS for year in PT_EDITIONS }, + # EuroCrops V2 backfills deliver what the national collection carries + "ec_at": (*EC_V2_COLUMNS, "crop:name", "admin:country_code"), + "ec_be_vlg": (*EC_V2_COLUMNS, "crop:name", "admin:country_code", "admin:subdivision_code"), + "ec_be_wal": (*EC_V2_COLUMNS, "crop:name", "admin:country_code"), + "ec_de_bb": (*EC_V2_COLUMNS, "crop:name", "admin:country_code", "admin:subdivision_code"), + "ec_de_nrw": (*EC_V2_COLUMNS, "crop:name", "admin:country_code", "admin:subdivision_code"), + "ec_ee": (*EC_V2_COLUMNS, "crop:name"), + "ec_es": (*EC_V2_COLUMNS, "admin:country_code"), + "ec_fr": (*EC_V2_COLUMNS, "admin:country_code"), +} + +# Values a converter writes, as a column or as a constant in the collection metadata +expected_values = { + "ec_at": {"admin:country_code": "AT"}, + "ec_be_vlg": {"admin:country_code": "BE", "admin:subdivision_code": "VLG"}, + "ec_be_wal": {"admin:country_code": "BE"}, + "ec_de_bb": {"admin:country_code": "DE", "admin:subdivision_code": "BB"}, + "ec_de_nrw": {"admin:country_code": "DE", "admin:subdivision_code": "NW"}, + "ec_es": {"admin:country_code": "ES"}, + "ec_fr": {"admin:country_code": "FR"}, } # Classes a converter filters out, and that the fixture does contain @@ -294,6 +331,9 @@ def _input_files(converter, *names): # DWR maps the whole state: the urban mask is county-sized polygons, not fields "us_ca_scm#2018": ("U",), "us_ca_scm#2014": ("U",), + # landscape elements and buildings, mapped as polygons of their own + "ec_de_bb": ("1", "2", "3", "10011"), + "ec_be_vlg": ("1", "2"), } # The smallest field (m²) a converter keeps, where the fixture holds a smaller sliver @@ -345,12 +385,15 @@ def load_mapping(csv_file=None, url=None): df = pq.read_table(tmp_parquet_file).to_pandas() + metadata = pq.ParquetFile(tmp_parquet_file).schema_arrow.metadata or {} + constants = json.loads(metadata[b"collection"].decode()) if b"collection" in metadata else {} + + for column, value in expected_values.get(converter, {}).items(): + found = set(df[column]) if column in df.columns else {constants.get(column)} + assert found == {value}, f"{converter}: {column} is {sorted(map(str, found))}, not {value}" + required = expected_columns.get(converter) if required: - metadata = pq.ParquetFile(tmp_parquet_file).schema_arrow.metadata or {} - constants = ( - json.loads(metadata[b"collection"].decode()) if b"collection" in metadata else {} - ) missing = [c for c in required if c not in df.columns and constants.get(c) is None] assert not missing, ( f"{converter} dropped {missing}: absent from the schema and from the " @@ -372,6 +415,6 @@ def load_mapping(csv_file=None, url=None): dropped = [c for c in filtered_codes.get(converter, ()) if c in set(df["crop:code"])] assert not dropped, f"{converter} kept rows it should filter out: crop:code {dropped}" - if "metrics:area" in df.columns and converter not in ("de_bb",): + if "metrics:area" in df.columns and converter not in ("de_bb", "ec_de_bb"): # Check for accidental hectare conversion; fields should be more than 10 square meters assert (df["metrics:area"] > 10).all()