diff --git a/CHANGELOG.md b/CHANGELOG.md
index 98daecc..ec2b7d5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [Unreleased]
+- Update fr-converter to support 2021/2022 files
+
## [v0.21.0] - 2026-02-16
- Update vecorel-cli
diff --git a/fiboa_cli/datasets/fr.py b/fiboa_cli/datasets/fr.py
index 823cbdc..1425a51 100644
--- a/fiboa_cli/datasets/fr.py
+++ b/fiboa_cli/datasets/fr.py
@@ -1,3 +1,4 @@
+from geopandas import GeoDataFrame
from vecorel_cli.conversion.admin import AdminConverterMixin
from ..conversion.fiboa_converter import FiboaBaseConverter
@@ -9,17 +10,24 @@ class FRConverter(AdminConverterMixin, AddHCATMixin, FiboaBaseConverter):
variants = {
"2022": {
"https://data.geopf.fr/telechargement/download/RPG/RPG_2-0__GPKG_LAMB93_FXX_2022-01-01/RPG_2-0__GPKG_LAMB93_FXX_2022-01-01.7z.001": [
- "RPG_2-0__GPKG_LAMB93_FXX_2022-01-01/RPG/1_DONNEES_LIVRAISON_2023-08-01/RPG_2-0_GPKG_LAMB93_FXX-2022/PARCELLES_GRAPHIQUES.gpkg"
+ "**/*.gpkg"
]
},
+ "2024": {
+ "https://data.geopf.fr/telechargement/download/RPG/RPG_3-0__GPKG_LAMB93_FXX_2024-01-01/RPG_3-0__GPKG_LAMB93_FXX_2024-01-01.7z.001": [],
+ "https://data.geopf.fr/telechargement/download/RPG/RPG_3-0__GPKG_LAMB93_FXX_2024-01-01/RPG_3-0__GPKG_LAMB93_FXX_2024-01-01.7z.002": [],
+ "https://data.geopf.fr/telechargement/download/RPG/RPG_3-0__GPKG_LAMB93_FXX_2024-01-01/RPG_3-0__GPKG_LAMB93_FXX_2024-01-01.7z.003": [],
+ "https://data.geopf.fr/telechargement/download/RPG/RPG_3-0__GPKG_LAMB93_FXX_2024-01-01/RPG_3-0__GPKG_LAMB93_FXX_2024-01-01.7z.004": [],
+ "https://data.geopf.fr/telechargement/download/RPG/RPG_3-0__GPKG_LAMB93_FXX_2024-01-01/RPG_3-0__GPKG_LAMB93_FXX_2024-01-01.7z.005": [],
+ },
"2023": {
"https://data.geopf.fr/telechargement/download/RPG/RPG_2-2__GPKG_LAMB93_FXX_2023-01-01/RPG_2-2__GPKG_LAMB93_FXX_2023-01-01.7z": [
- "RPG_2-2__GPKG_LAMB93_FXX_2023-01-01/RPG_2-2__GPKG_LAMB93_FXX_2023-01-01.gpkg"
+ "**/*.gpkg"
]
},
"2021": {
"https://data.geopf.fr/telechargement/download/RPG/RPG_2-0__GPKG_LAMB93_FXX_2021-01-01/RPG_2-0__GPKG_LAMB93_FXX_2021-01-01.7z": [
- "RPG_2-0__GPKG_LAMB93_FXX_2022-01-01/RPG/1_DONNEES_LIVRAISON_2021-08-01/RPG_2-0_GPKG_LAMB93_FXX-2021/PARCELLES_GRAPHIQUES.gpkg"
+ "**/PARCELLES_GRAPHIQUES.gpkg"
]
},
"2020": {
@@ -44,7 +52,7 @@ class FRConverter(AdminConverterMixin, AddHCATMixin, FiboaBaseConverter):
provider = "Anstitut National de l'Information Géographique et Forestière "
# Attribution example as described in the open license
- attribution = "IGN — Original data from https://geoservices.ign.fr/rpg"
+ attribution = "IGN - Original data from https://geoservices.ign.fr/rpg"
license = "Licence Ouverte / Open Licence "
ec_mapping_csv = "fr_2018.csv"
@@ -56,6 +64,12 @@ class FRConverter(AdminConverterMixin, AddHCATMixin, FiboaBaseConverter):
"code_group": "group_code",
}
+ def migrate(self, gdf) -> GeoDataFrame:
+ if "ID_PARCEL" in gdf.columns:
+ # Make column names lowercase, harmonize for different years
+ gdf = gdf.rename(columns={k: k.lower() for k in gdf.columns}, inplace=True)
+ return super().migrate(gdf)
+
column_filters = {
"surf_parc": lambda col: col > 0.0 # fiboa validator requires area > 0.0
}