Cloud-Native Geospatial for Country-Scale Ecosystem Risk Assessment

CNG Forum 2026 · Cloud-Native Geo in Practice

Tyler Erickson

Tyler Erickson

Tyler Erickson

VorGeo · Founder

Radiant Earth · CTO

Ecosystems

How do we measure Ecosystems ?

Map of Colombia's ecosystems, each in a distinct color

How at risk

are a country’s

ecosystems?

IUCN Red List of Ecosystems

The global standard for ecosystem risk

Cover of the IUCN Red List of Ecosystems guidelines

The six levels of the IUCN Global Ecosystem Typology, from realms down to subglobal types

Cover of the 2017 Colombia Red List of Ecosystems report

Cover of the 2020 Threatened ecosystems of Myanmar report

A patchwork of tools and ad hoc scripts

hard to share · reproduce · maintain

Extent Rate of decline Area of occupancy WHAT AN ASSESSMENT COMPUTES

Map of Colombia's ecosystems, each in a distinct color

460,350ecosystem polygons

87ecosystem types

1.7 GBas GeoParquet

IDEAM · 1:100,000 · 2024

An open-source,

cloud-native

assessment workflow

No geospatial server required

IUCN STANDARDS GITHUB REPOSITORIES iucn-get-data rle-python-gee TEMPLATE- rle-assessment Ecosystem map data RLE criteria calculations Scientific & technical publishing

GeoParquet · COG object storage Earth Engine read & write Lonboard in the browser Static hosting · GitHub Pages

Document as code

This page is a notebook

code · narrative · maps

one repo, version-controlled, reproducible

Rendered notebook output: convex hull of an ecosystem's distribution used to compute extent of occurrence

Backup

Home page of the Threatened ecosystems of Colombia assessment site

Backup

Assessment table with Criterion B1 and B2 marked Least Concern

Extent of occurrence convex hull for Agroecosistema Cafetero

Backup

[Screenshot: interactive Lonboard map from the site]

The hard part wasn’t the geospatial computation.

It was setup.

Assessors are ecologists, not software engineers

Python environment GitHub account Google Cloud project gcloud auth login application-default login MFA IAM roles service account Earth Engine registration billing bucket CORS GitHub secrets Pages settings

Setup friction as a first-class problem

One command

uv run …/init_repo.py \
  --country-name Colombia
pixi shell

Fork a template

Config, not code

ecosystem_source:
  data: …/colombia.parquet
  ecosystem_name_column:
    ecos_general

github.com/rle-assessment

Where the tooling still falls short

  • Source data behind logins and manual downloads
  • Cloud auth and permissions are still the wall
  • Format details matter: GeoParquet row groups
  • CI builds that need retries

Cloud-native formats make country-scale maps static

Document-as-code keeps the science reproducible

For non-engineers, setup is the product