| 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 |
Data
Site products, STAC, and downloads
Sources for maps and figures on this site are derived in emma_report from public eco-emma/emma_envdata GitHub Releases and the STAC catalog. This page summarizes available data, where to download it, and how to open Cloud-Optimized GeoTIFFs.
Data shown on this site
| Product | What you see | Typical as-of |
|---|---|---|
| Fused EVI | Latest greenness + monthly / long-term ΔEVI on park maps (EVI layer group) | 2026-09-21 |
| Veld Age (years) | Continuous fire-age raster; true ages (not collapsed to 20) | fireage release snapshot |
| Fire History | Burn outlines (one layer; age-bin stroke colors) | fireage release snapshot |
| Invasives | Recent iNaturalist records in parks + 10 km buffer (10×10 px leaf markers) | inat_data |
| Weather | Nearest GSOD station climate when rows exist (≥2000 when published) | weather_data |
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.
STAC catalog
Browse the public STAC root and VI collection for latest 16-day composites (EVI COGs by sensor):
Latest VI item id: vi_20260921 · datetime 2026-09-21T00:00:00Z.
GitHub data releases
Release tags for common products (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>.
Coverage metrics
Domain and park coverage totals. Denominators use the 500 m domain grid.
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 (is_censored = 1).
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 |
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()])Coverage — domain 225,181 km² · parks-union 16,609 km² · valid latest fused EVI 225,000 km² (EVI as of 2026-09-21) · fire-age known 41,136 km² / censored 184,045 km². Fire-age known/censored exclude cells where all fireage bands (age, last burn, is_censored) are NA; censored = never-burned / right-censored (is_censored = 1). Definitions & downloads.
Data freshness — STAC VI datetime: 2026-09-21 · envdata release updated: 2026-10-17 · page built: 2026-10-20 20:00 UTC · STAC catalog · Data page