Dataset import: Forest Data Partnership cocoa probability (model_2025b)
Ingest the Forest Data Partnership model_2025b cocoa per-pixel probability layer into cloud-native formats (COG + H3 hex) on NRP.
Source (Earth Engine ImageCollection — NOT a downloadable file)
| Commodity |
EE asset |
| Cocoa |
projects/forestdatapartnership/assets/cocoa/model_2025b |
- Band
probability, values 0–1 = probability the pixel includes cocoa for the given year.
- Native 10 m, pan-tropical (−24° to 24° latitude), one image per year 2020–2024.
- Year to ingest: 2024 only.
- Product form: continuous probability (no thresholding; consumers threshold themselves).
This layer lives only inside Earth Engine — there is no public GeoTIFF/GCS mirror. Our cluster (geo-workflows) has NRP creds only and cannot read EE. So each build begins with an Earth Engine Export.image → GeoTIFF → rclone to nrp:public-commodities/raw/, run from an EE-authenticated account (Kirby). Everything after raw/ is the standard cng-datasets raster-workflow (WGS84 COG → H3 hex).
Reducer / value column
--hex-resampling mean — probability is a per-area intensity (0–1), not an amount. sum would be meaningless. mean = area-weighted mean probability per cell.
--value-column probability.
- Validation has no global invariant: assert every hex cell value ∈ [0, 1], and spot-check hex
mean against the COG over a known producing region.
Target: bucket public-commodities (NEW bucket)
New bucket → run *-setup-bucket before the first stage-raw, and register for MinIO backup + source.coop mirror via PR (Step 7) after publish.
Phase 1 — Peru clip, native 10 m (DO FIRST)
Focus region for the project; also de-risks the EE→COG→hex path on a bounded case before the global run.
- Extent: clip to Peru,
--target-extent "-81.4,-18.4,-68.6,0.1" (EPSG:4326).
- Dataset:
fdap-2025b/cocoa-peru-2024.
- H3: native res 9,
--parent-resolutions "8,0" (columns h9,h8,h0; carries h8, the catalog universal join key). Revised from res 10 → 9 (2026-08-07): res-10 exact_extract over a Peru-sized H3 base cell OOMed at 96Gi (~21M cells/base-cell); res 9 is ~7× lighter and still fully resolves the 10 m source (~300 native px per res-9 cell). Finer than the res-8 global layer, so the Peru focus is preserved.
- COG kept at native 10 m (source resolution unchanged; only the H3 aggregation granularity changed).
- Outside-Peru pixels are stored as
NaN (no nodata tag), so hex runs with --nodata nan to exclude them.
Phase 2 — Pan-tropical, coarsened ~100 m
Global catalog layer. Full −24..24 belt at native 10 m is ~8 TB/commodity-year (infeasible); export coarsened to ~100 m (mean) → ~85 GB uncompressed, tractable.
- Extent: −24..24 lat, full longitude (crosses the antimeridian → ensure
:latest seam fix).
- Dataset:
fdap-2025b/cocoa-2024.
- H3: native res 8,
--parent-resolutions "0" (res-8 is the catalog raster standard and the universal join key).
- Coarsen in the EE export via
reduceResolution(mean); may need per-longitude-band tiled export.
Phases 1 and 2 meet at h8, so Peru (res 10) rolls up to the global (res 8) for direct comparison.
License
Catalog states CC-BY-4.0 with required attribution "Produced by Google for the Forest Data Partnership" (the 2025a layers were CC-BY-NC; confirm the exact 2025b SPDX before mirroring — it drives source.coop eligibility). Either CC-BY-4.0 or CC-BY-NC-4.0 is source.coop mirror-eligible; label correctly in STAC + license-inventory.md.
Acceptance criteria
Requested by @kpdavi. Scope: cocoa only (coffee dropped 2026-08-05).
Dataset import: Forest Data Partnership cocoa probability (model_2025b)
Ingest the Forest Data Partnership
model_2025bcocoa per-pixel probability layer into cloud-native formats (COG + H3 hex) on NRP.Source (Earth Engine ImageCollection — NOT a downloadable file)
projects/forestdatapartnership/assets/cocoa/model_2025bprobability, values 0–1 = probability the pixel includes cocoa for the given year.Reducer / value column
--hex-resampling mean— probability is a per-area intensity (0–1), not an amount.sumwould be meaningless.mean= area-weighted mean probability per cell.--value-column probability.meanagainst the COG over a known producing region.Target: bucket
public-commodities(NEW bucket)New bucket → run
*-setup-bucketbefore the first stage-raw, and register for MinIO backup + source.coop mirror via PR (Step 7) after publish.Phase 1 — Peru clip, native 10 m (DO FIRST)
Focus region for the project; also de-risks the EE→COG→hex path on a bounded case before the global run.
--target-extent "-81.4,-18.4,-68.6,0.1"(EPSG:4326).fdap-2025b/cocoa-peru-2024.--parent-resolutions "8,0"(columnsh9,h8,h0; carriesh8, the catalog universal join key). Revised from res 10 → 9 (2026-08-07): res-10 exact_extract over a Peru-sized H3 base cell OOMed at 96Gi (~21M cells/base-cell); res 9 is ~7× lighter and still fully resolves the 10 m source (~300 native px per res-9 cell). Finer than the res-8 global layer, so the Peru focus is preserved.NaN(no nodata tag), so hex runs with--nodata nanto exclude them.Phase 2 — Pan-tropical, coarsened ~100 m
Global catalog layer. Full −24..24 belt at native 10 m is ~8 TB/commodity-year (infeasible); export coarsened to ~100 m (mean) → ~85 GB uncompressed, tractable.
:latestseam fix).fdap-2025b/cocoa-2024.--parent-resolutions "0"(res-8 is the catalog raster standard and the universal join key).reduceResolution(mean); may need per-longitude-band tiled export.Phases 1 and 2 meet at
h8, so Peru (res 10) rolls up to the global (res 8) for direct comparison.License
Catalog states CC-BY-4.0 with required attribution "Produced by Google for the Forest Data Partnership" (the 2025a layers were CC-BY-NC; confirm the exact 2025b SPDX before mirroring — it drives source.coop eligibility). Either CC-BY-4.0 or CC-BY-NC-4.0 is source.coop mirror-eligible; label correctly in STAC +
license-inventory.md.Acceptance criteria
fdap-2025b/cocoa-peru-2024COG + H3 hex (native res 9;h9,h8,h0) onnrp:public-commodities.fdap-2025b/cocoa-2024COG + H3 hex (native res 8;h0) onnrp:public-commodities.probability∈ [0, 1]; hexmeanspot-checked against COG over a known producing region.scripts/verify-stac.pyexits 0; license verified + labeled.public-commoditiesregistered for MinIO backup + source.coop mirror (Step 7 PR); executed by geo-agent-ops.Requested by @kpdavi. Scope: cocoa only (coffee dropped 2026-08-05).