taylor-geospatial/ftw-planet
Note: Due to licensing restrictions, the imagery has been removed from the dataset. However the original PlanetScope item IDs and timestamps are made available in index.parquet. Please see the source code for how to download the dataset. Fields of the Planet (FTP) Paired PlanetScope SR scenes, two seasonal windows per patch (planting and harvest), co-registered with Fields of The World field-boundary labels, across 24 countries and 25 labeled regions. 66,584 patches across 24… See the full description on the dataset page: https://huggingface.co/datasets/taylor-geospatial/ftw-planet.
Note: Due to licensing restrictions, the imagery has been removed from the dataset. However the original PlanetScope item IDs and timestamps are made available in index.parquet. Please see the source code for how to download the dataset.Fields of the Planet (FTP)
Paired PlanetScope SR scenes, two seasonal windows per patch (planting and harvest), co-registered with Fields of The World field-boundary labels, across 24 countries and 25 labeled regions.
- 66,584 patches across 24 countries and 25 labeled regions, drawn from 70,484 labeled FTW patches
- 52,235 patches with both windows passing UDM2 usability (
usable_pair = True) - Imagery: PlanetScope
ortho_analytic_4b_sr, 4 bands (B/G/R/NIR), 3 m GSD, native UTM,uint16(reflectance = DN / 10000) - Labels: 3 classes — 0 background, 1 field interior, 2 field boundary;
uint8with NBITS=2; boundaries rasterized withall_touched=Trueto match the FTW originals.
Results
Polygon-level results macro-averaged over the ten dense-label held-out countries dominated by smallholder fields (paper Table 1).
Bold marks the best value per column. \* Released models evaluated without training on FTW or FTP, each at its best swept inference resolution and confidence setting. † Pixel IoU is not comparable across sensors due to differences in resolution. ‡ PQ for small (<0.5 ha), medium (0.5-2 ha), and large (>2 ha) ground-truth fields.
Layout
ftw-planet/
├── README.md
├── assets/ # figures used in this card
├── index.parquet # GeoParquet 1.1, one row per patch
└── dataset/
├── austria.tar
├── ...
└── vietnam.tar # 25 region shards, ~96 GiB totalEach tar is a WebDataset shard with five files per patch_id:
<pid>.window_a.tif PlanetScope SR, planting window
<pid>.window_b.tif PlanetScope SR, harvest window
<pid>.label.tif 3-class label
<pid>.polygons.parquet true FTW field polygons, clipped to the patch
<pid>.json metadata (mirrors the index row)<pid>.polygons.parquet holds the original FTW vector field boundaries, reprojected to the patch's UTM grid and clipped to its bounds. This is the same vector source the .label.tif raster is burned from, so you can score polygon-level metrics against true geometry instead of connected components of the mask. Columns: id, geometry, area_ha (true planimetric area in hectares), plus any of crop_id / crop_name / area / perimeter present in the source. Patches with no fields carry an empty (0-row) GeoParquet, so every sample has the file.
Tars are uncompressed; the TIFFs inside are ZSTD-22. They stream as WebDataset shards and also extract cleanly with tar -xf <country>.tar.
Downloading
from huggingface_hub import hf_hub_download, snapshot_download
repo_id = "<this-repo-id>" # e.g. "<org>/ftw-planet"
# one country shard
path = hf_hub_download(repo_id, "dataset/rwanda.tar", repo_type="dataset")
# the whole dataset
snapshot_download(repo_id, repo_type="dataset", local_dir="ftw-planet")Reading the index
import geopandas as gpd
from huggingface_hub import hf_hub_download
repo_id = "<this-repo-id>"
idx = hf_hub_download(repo_id, "index.parquet", repo_type="dataset")
gdf = gpd.read_parquet(idx)
clean = gdf[gdf.usable_pair & (gdf.cloud_cover_a < 0.05) & (gdf.cloud_cover_b < 0.05)]The index is GeoParquet 1.1 with a bbox covering struct and is Hilbert-sorted into 14 row groups, so spatial queries from DuckDB / duckdb-wasm can prune row groups by bbox without parsing WKB:
INSTALL spatial; LOAD spatial; INSTALL httpfs; LOAD httpfs;
SELECT patch_id, country
FROM 'index.parquet'
WHERE bbox.xmin > -10 AND bbox.xmax < 25
AND bbox.ymin > 35 AND bbox.ymax < 60
AND usable_pair;Index columns
Identity / geometry:
Paths (relative to the tar / planet root):
Scene provenance, per window suffix _a / _b:
Per-patch UDM2 statistics (fraction of pixels in the patch), per window:
FTW season metadata:
Quality:
Licensing
Fields of the Planet is made available under CC-BY-NC-4.0 (non-commercial), subject to the licensing terms of the underlying data sources.
PlanetScope imagery is © Planet Labs PBC and was obtained directly from the Planet archive under a research license for academic and nonprofit use. Use and redistribution of Planet imagery remain subject to the applicable Planet license terms. See the Planet Licensing Information Center for additional information.
