| Product | What you see | As-of | Last updated | Source |
|---|---|---|---|---|
| Fused EVI | Latest greenness + monthly / long-term ΔEVI on park maps (EVI layer group) | 2026-09-21 | — | NASA MODIS/VIIRS |
| Veld Age (years) | Continuous fire-age raster; true ages | 2026-09-01 | 2026-10-16 | CapeNature / TMNP fire records; MODIS/VIIRS burned area |
| Fire History | Burn outlines | 2026-09-01 | 2026-10-16 | CapeNature / TMNP fire records; MODIS/VIIRS burned area |
| Invasives | Recent iNaturalist records in parks + 10 km buffer | Observations from 2020 onward | 2026-10-15 | iNaturalist |
| Weather | Nearest GSOD station climate | 2025-08-24 | 2026-10-20 | GSOD / NCEI |
Data
Sources, status, STAC, and downloads
Maps and figures on this site are built from original public datasets (NASA MODIS/VIIRS, CapeNature and TMNP fire records, iNaturalist, GSOD/NCEI, and park boundaries). Processed COGs and tables are published for download via GitHub Releases and STAC.
As-of is the date maps and figures represent (composite, fire snapshot, station day). Last updated is when the published artifact was last refreshed (STAC item datetime or release updated_at).
EMMA Data Sources and Status
Multi-sensor EVI fill order: VIIRS NOAA-20 → VIIRS S-NPP → Terra → Aqua (first non-NA wins). NA in EVI layers means all available sensors were missing after QA.
Download via GitHub Releases and the STAC catalog below (delivery packages only).
Coverage metrics
Domain and park coverage totals. Denominators use the 500 m domain grid.
- Domain area — cells in the EMMA domain mask.
- Parks-union area — domain cells intersecting any park polygon.
- Valid latest fused EVI — domain cells with non-NA fused EVI on the composite date.
- Fire-age known / censored — after dropping cells where all fireage bands are NA; censored = never-burned / right-censored.
| Metric | km² |
|---|---|
| Domain area | 225,181 |
| Parks-union area | 16,609 |
| Valid latest fused EVI | 225,000 |
| Fire-age known | 41,136 |
| Fire-age censored | 184,045 |
EVI composite date: 2026-09-21.
Fire-age known/censored exclude cells where all fireage bands (age, last burn, is_censored) are NA; censored = never-burned / right-censored.
See coverage details for each park
Park area (VIIRS cells intersecting the park)
| Park | Park Area (km²) | Valid EVI km² | Fire known km² | Fire censored km² |
|---|---|---|---|---|
| Addo-Elephant National Park | 1,603 | 1,592 | 224 | 1,380 |
| Namaqua National Park | 1,516 | 1,515 | 19 | 1,497 |
| Tankwa-Karoo National Park | 1,503 | 1,502 | 81 | 1,422 |
| Swartberg Nature Reserve Complex | 1,474 | 1,474 | 1,259 | 216 |
| Garden Route National Park | 1,252 | 1,214 | 703 | 549 |
| Knersvlakte Nature Reserve Complex | 987 | 987 | 0 | 987 |
| Cederberg Nature Reserve Complex | 898 | 898 | 767 | 131 |
| Anysberg Nature Reserve | 860 | 860 | 167 | 694 |
| Hottentots Holland Nature Reserve Complex | 579 | 576 | 545 | 35 |
| Limietberg Nature Reserve Complex | 555 | 554 | 553 | 2 |
| Gamkaberg Nature Reserve Complex | 483 | 483 | 339 | 145 |
| Outeniqua Nature Reserve Complex | 473 | 473 | 469 | 5 |
| Grootvadersbos Nature Reserve Complex | 423 | 423 | 350 | 72 |
| West Coast National Park | 394 | 388 | 53 | 341 |
| De Hoop Nature Reserve Complex | 387 | 385 | 279 | 108 |
| Waterval Nature Reserve Complex | 355 | 355 | 343 | 12 |
| Vrolijkheid Nature Reserve Complex | 352 | 352 | 324 | 28 |
| Table Mountain National Park | 324 | 322 | 247 | 77 |
| Richtersveld National Park | 308 | 308 | 0 | 307 |
| Grootwinterhoek Nature Reserve | 307 | 307 | 307 | 0 |
| Kammanassie Nature Reserve | 305 | 305 | 297 | 8 |
| Kogelberg Nature Reserve Complex | 302 | 302 | 295 | 8 |
| Agulhas National Park | 246 | 243 | 185 | 61 |
| Other | 194 | 194 | 181 | 13 |
| Marloth Nature Reserve Complex | 186 | 186 | 184 | 1 |
| Walker Bay Nature Reserve Complex | 97 | 94 | 84 | 13 |
| Bontebok National Park | 44 | 44 | 26 | 19 |
| Goukamma Nature Reserve Complex | 38 | 38 | 28 | 10 |
| De Mond Nature Reserve Complex | 27 | 26 | 9 | 19 |
| Riverlands Nature Reserve Complex | 25 | 25 | 22 | 3 |
| Babilonstoring Nature Reserve Complex | 25 | 25 | 25 | 0 |
| Dassen Coastal Complex | 25 | 25 | 8 | 17 |
| Geelkrans Nature Reserve Complex | 23 | 23 | 6 | 17 |
| Keurbooms River Nature Reserve Complex | 14 | 14 | 4 | 11 |
| Rocherpan Nature Reserve Complex | 14 | 14 | 0 | 14 |
| Salmonsdam Nature Reserve | 13 | 13 | 13 | 0 |
| Driftsands Nature Reserve | 9 | 9 | 2 | 7 |
| Bird Island Nature Reserve Complex | 8 | 8 | 0 | 8 |
| Dassen Island Nature Reserve | 6 | 6 | 0 | 6 |
| Robberg Nature Reserve Complex | 5 | 4 | 1 | 4 |
| Islands and Rocks Complex | 3 | 2 | 0 | 3 |
| Dyer Island Nature Reserve Complex | 2 | 2 | 0 | 2 |
STAC catalog
Browse the public STAC root and VI collection for latest 16-day composites (EVI COGs by sensor):
Latest VI item id: NA · datetime NA.
GitHub data releases
Release tags are delivery packages (not scientific attribution). Open a tag page for its assets:
| Tag | Contents |
|---|---|
static_data |
Domain grid, parks, covariates |
fireage |
fireage_current.tif + dated fire-age parquet |
vi_modis_terra_raster / vi_modis_aqua_raster / vi_viirs_raster |
16-day VI COGs |
vi_modis_parquet / vi_viirs_parquet |
Tabular EVI by pid |
burn_modis_raster / burn_viirs_raster |
Monthly burn COGs |
weather_data |
GSOD parquet + stations |
inat_data |
Invasives GeoPackage |
stac / stac-vi |
STAC JSON |
Download pattern: https://github.com/eco-emma/emma_envdata/releases/download/<tag>/<filename>.
Using COGs & STAC
QGIS (recommended)
- COG over HTTP — Layer → Add Layer → Add Raster Layer → protocol
HTTPS, paste a release download URL (or/vsicurl/+ URL in the path field on some builds). Enable the COG driver if prompted. - STAC — Install the STAC API Browser / STAC plugin (Plugins → Manage). Open the catalog URL, drill into the VI collection, and add a sensor asset (e.g.
viirs_noaa20) as a raster. - Project CRS for overlays with park polygons: domain products are EPSG:9221 (Albers); reproject or on-the-fly as needed.
Other GIS
- ArcGIS Pro: Add Data → cloud / HTTPS path to the
.tifCOG; STAC via community STAC tools if installed. - Global Mapper / others: open the COG URL if HTTP GeoTIFF is supported; otherwise download the asset from the release tag page.
R
library(terra)
library(sf)
# Example: latest fire-age snapshot
r <- rast(paste0(
"https://github.com/eco-emma/emma_envdata/releases/download/",
"fireage/fireage_current.tif"
))
plot(r[["fire_age_days"]])# STAC item → asset href (pystac-like workflow with rstac if installed)
# Or read collection JSON and pick an item link, then rast(asset_href)Python
import rasterio
url = (
"/vsicurl/"
"https://github.com/eco-emma/emma_envdata/releases/download/"
"fireage/fireage_current.tif"
)
with rasterio.open(url) as ds:
print(ds.descriptions, ds.count)# pip install pystac
from pystac import Catalog
cat = Catalog.from_file(
"https://github.com/eco-emma/emma_envdata/releases/download/stac/catalog.json"
)
print([c.id for c in cat.get_children()])Data status
| Product | As-of | Updated | Coverage |
|---|---|---|---|
| Fused EVI | 2026-09-21 | — | 225,000 km² |
| Fire age | 2026-09-01 | 2026-10-16 | known 41,136 / censored 184,045 km² |
| Weather | 2025-08-24 | 2026-10-20 | — |
| Page | — | 2026-11-10 06:12 UTC | domain 225,181 · parks-union 16,609 km² |
Product dates and coverage for maps on this page. Sources and definitions: Data · Coverage metrics.