| Name | Last modified | Size | Description | |
|---|---|---|---|---|
| Parent Directory | - | |||
| README.html | 2026-06-24 07:27 | 12K | ||
| all_gpqt_files.csv | 2025-11-14 10:26 | 4.6K | ||
| copyright.txt | 2026-03-05 12:26 | 540 | ||
| gpqt/ | 2026-02-10 13:24 | - | ||
| gpqtv2/ | 2026-04-11 02:52 | - | ||
| gpqtv201/ | 2026-04-11 02:52 | - | ||
| gpqtv202/ | 2026-07-02 09:19 | - | ||
| readme.md | 2026-06-24 07:28 | 5.4K | ||
| sankey_classifs_hcat4_agriprod.html | 2025-10-15 15:43 | 3.4M | ||
| sankey_classifs_hcat4_agriprod_usage_0.html | 2025-10-15 16:12 | 3.4M | ||
This repository provides access to harmonized GeoSpatial Application (GSA) datasets across multiple European regions (NUTS levels), distributed in Apache Parquet format.
The data originates from national or regional GSAs and has been standardized to enable cross-country and temporal analysis of agricultural crop fields.
Files are hosted via FTP:
https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/DRLL/EuroCropsV2/gpqt/
The dataset includes the following NUTS regions:
be2, be3, bg, cz, de4, dea, dk, ee, es, fi, fr, ie, iti1, nl, si, sk
Each file represents one NUTS region and one year.
Naming convention:
<nuts>_<year>.parquet
Example:
fr_2018.parquet
de4_2020.parquet
Each stack file aggregates crop field information across multiple years for a given NUTS region.
Naming convention:
<nuts>_stack.parquet
Example:
fr_stack.parquet
de4_stack.parquet
<nuts>_<year>.parquet)| Column | Type | Description |
|---|---|---|
cropfield |
int4 | Unique identifier of the crop field within the table |
original_code |
varchar | Crop code as defined in the original GSA source |
area_ha |
float | Area of the polygon in hectares |
geom |
geometry | Polygon geometry (CRS: EPSG:3035) |
If the original dataset does not include crop codes:
To retrieve semantic meaning of crop codes, use:
EuroCrops mapping table: https://github.com/Martincccc/EuroCropsV2/blob/main/data/cropcodemapping/eurocrops.csv
Join keys:
original_codenuts<nuts>_stack.parquet)These tables track crop field evolution over time.
| Column | Type | Description |
|---|---|---|
cropfield |
int4 | Unique identifier of the stacked crop field |
cf<YEAR> |
int4 | Crop field ID in <nuts>_<YEAR> table |
c<YEAR> |
varchar | Crop code (original_code) in <nuts>_<YEAR> table |
area_ha |
float | Area of the polygon in hectares |
geom |
geometry | Polygon geometry (CRS: EPSG:3035) |
cf2018, c2018, cf2019, c2019, ...
Data can be accessed directly via FTP or programmatically.
import pandas as pd
url = "https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/DRLL/EuroCropsV2/gpqt/fr_2018.parquet"
df = pd.read_parquet(url)
print(df.head())The EuroCrops ecosystem uses an HCAT-based harmonization of crop classes, including machine-readable crop names and codes. ([GitHub][1])
The example below reads one yearly Parquet layer as a GeoDataFrame, links it to the EuroCrops crop-code mapping, and adds hcat4_name to the output.
import pandas as pd
import geopandas as gpd
# Example input
nuts = "fr"
year = 2018
# Yearly GSA parquet
gsa_url = f"https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/DRLL/EuroCropsV2/gpqt/{nuts}_{year}.parquet"
# EuroCrops mapping table (raw GitHub URL)
mapping_url = (
"https://github.com/Martincccc/EuroCropsV2/main/"
"data/cropcodemapping/eurocrops.csv"
)
# Read geospatial parquet as GeoDataFrame
gdf = gpd.read_parquet(gsa_url)
# Read crop-code mapping table
mapping = pd.read_csv(mapping_url, dtype={"original_code": str, "nuts": str})
# Ensure join keys use the same type/casing
gdf["original_code"] = gdf["original_code"].astype(str)
gdf["nuts"] = nuts
mapping["original_code"] = mapping["original_code"].astype(str)
mapping["nuts"] = mapping["nuts"].astype(str).str.lower()
# Keep only the fields needed for the join
mapping_sel = mapping[["nuts", "original_code", "hcat4_name"]].drop_duplicates()
# Join mapping information to the yearly geodata
gdf_ec = gdf.merge(
mapping_sel,
on=["nuts", "original_code"],
how="left"
)
# Example result
print(gdf_ec[["cropfield", "original_code", "hcat4_name", "area_ha", "geom"]].head())All geometries are provided in:
EPSG:3035 (ETRS89 / LAEA Europe)
This dataset is part of the EuroCropsV2 initiative under JRC open data.
Please cite appropriately when using the data. https://doi.org/10.2905/JRC.FX0BVKR https://essd.copernicus.org/preprints/essd-2025-752/