Satellite Sources¶
Agribound supports multiple satellite imagery sources for building annual composites. Each source is accessed through Google Earth Engine or loaded from local files.
Source Overview¶
All spectral bands are downloaded for each sensor. Engines automatically extract and reorder the bands they need via canonical band mappings (e.g., FTW expects R, G, B, NIR as bands 1--4 matching its B04, B03, B02, B08 training order, so agribound extracts those from the full composite before passing to FTW).
| Source | Key | Resolution | Bands Downloaded | GEE Collection | Notes |
|---|---|---|---|---|---|
| Sentinel-2 | sentinel2 |
10 m | B1--B12, B8A (12 bands) | COPERNICUS/S2_SR_HARMONIZED |
Default source; L2A surface reflectance |
| Landsat | landsat |
30 m | SR_B2--SR_B7 (6 bands) | LANDSAT/LC08/C02/T1_L2, LANDSAT/LC09/C02/T1_L2 |
Long time-series; L5/7 bands harmonized to L8/9 naming |
| HLS | hls |
30 m | B1--B7 (7 bands) | NASA/HLS/HLSL30/v002, NASA/HLS/HLSS30/v002 |
Harmonized Landsat+Sentinel-2 |
| NAIP | naip |
1 m | R, G, B, N (4 bands) | USDA/NAIP/DOQQ |
4-band (RGBN); best for small fields. Very slow over large areas |
| SPOT 6/7 | spot |
6 m | R, G, B (3 bands) | Restricted -- see below | Restricted GEE collection. Very slow over large areas |
| SPOT 6/7 Panchromatic | spot-pan |
1.5 m | P (1 band → pseudo-RGB) | Restricted -- see below | Panchromatic band triplicated as pseudo-RGB. Restricted access |
| Local GeoTIFF | local |
Any | All bands | N/A | Bring your own imagery via --local-tif |
| Google Embeddings | google-embedding |
10 m | 64-D embeddings | GOOGLE/SATELLITE_EMBEDDING/V1/ANNUAL |
Pre-computed satellite embeddings |
| TESSERA Embeddings | tessera-embedding |
10 m | 128-D embeddings | N/A | TESSERA foundation model embeddings |
SPOT Access
SPOT 6/7 imagery (AIRBUS/SPOT6_7) is restricted to select GEE users and is for internal DRI use only. This applies to both spot (multispectral RGB) and spot-pan (panchromatic). External users who need SPOT-based field boundaries should contact the package author.
High-Resolution Source Performance
NAIP (1 m) and SPOT (6 m) produce rasters that are 100–900x larger in pixel count than Sentinel-2 (10 m) for the same study area. Composite download, fine-tuning, and inference on these sources over county-scale or larger areas can take hours even on GPU. Consider subsetting the study area for high-resolution sources, or use Sentinel-2/Landsat for large-area mapping.
Canonical Band Mappings¶
Each engine extracts the bands it needs from the full composite using these canonical mappings:
| Source | Canonical R | Canonical G | Canonical B | Canonical NIR |
|---|---|---|---|---|
landsat |
SR_B4 | SR_B3 | SR_B2 | SR_B5 |
sentinel2 |
B4 | B3 | B2 | B8 |
hls |
B4 | B3 | B2 | B5 |
naip |
R | G | B | N |
spot |
R | G | B | -- |
spot-pan |
P | P | P | -- |
For local sources, band mapping can be overridden via the bands configuration parameter.
Compositing Methods¶
When building an annual composite from a time series of scenes, agribound supports three methods:
Median Composite (median)¶
Takes the per-pixel median value across all cloud-free scenes in the date range. This is the default method and produces stable, artifact-free composites.
Greenest Pixel (greenest)¶
Selects the pixel from the scene with the highest NDVI value. Best for capturing peak vegetation in agricultural regions.
Max NDVI (max_ndvi)¶
Computes the per-pixel maximum NDVI across all scenes. Similar to greenest pixel but operates on the NDVI band directly rather than selecting full scenes.
Cloud Masking¶
Cloud masking is applied automatically for each GEE-based source using source-specific quality bands. The cloud_cover_max parameter (default 20) filters out scenes with excessive cloud cover before compositing.
- Landsat: Uses the
QA_PIXELband (CFMask algorithm). - Sentinel-2: Uses the
QA60band andSCL(Scene Classification Layer). - HLS: Uses the
Fmaskquality band. - NAIP: No cloud masking (clear-sky acquisitions).
- SPOT: Uses the
CLOUD_MASKband.
Date Range Configuration¶
By default, agribound uses the full calendar year specified by the year parameter. To restrict compositing to a specific growing season or date window:
config = AgriboundConfig(
source="sentinel2",
year=2024,
date_range=("2024-04-01", "2024-09-30"), # growing season only
...
)
Tip
Restricting to the growing season often produces better delineation results because field boundaries are most visible when crops are actively growing.
Embedding Sources¶
The google-embedding and tessera-embedding sources provide pre-computed pixel-level embeddings rather than raw imagery. These are used exclusively with the embedding engine and do not require GEE authentication.
- Google Satellite Embedding V1: 64-dimensional embeddings at 10 m resolution, derived from high-resolution satellite imagery.
- TESSERA Embeddings: 128-dimensional embeddings at 10 m resolution, from the TESSERA foundation model (Feng et al., 2025). Coverage varies by region and year (2017–2025) — not all areas have data for every year. See geotessera for coverage details and the download tool.