Ecological Site Characterization from Coordinates: Free API Sources for Distributed Observatory Networks
Ecological Site Characterization from Coordinates: Free API Sources for Distributed Observatory Networks
Document ID: CNL-TN-2026-024 Version: 1.0 Date: February 15, 2026 Author: Michael P. Hamilton, Ph.D.
AI Assistance Disclosure: This technical note was developed with assistance from Claude (Anthropic, Claude Opus 4.6). The AI contributed to API endpoint research, comparative analysis, query syntax documentation, and manuscript drafting through extended dialogue. The author takes full responsibility for the content, accuracy, and conclusions.
Abstract
Distributed ecological observatory networks require that every observation location be characterized by its ecological identity — elevation, climate classification, ecoregion, biome, land cover type, and vegetation community — without requiring the observer to know anything about the place beyond its GPS coordinates. We evaluate six freely available coordinate-based data sources for automated ecological site characterization: Open-Meteo Elevation API (Copernicus DEM, 90 m resolution, global), a Köppen climate classification service (0.25° resolution, global), EPA Omernik Ecoregions via ArcGIS REST (Levels I–IV, US coverage), USGS National Land Cover Database via ArcGIS REST (30 m resolution, CONUS), WWF Terrestrial Ecoregions (847 ecoregions in 14 biomes, global via shapefile), and iNaturalist taxon endpoints for establishment means and conservation status. All sources are free, require no API keys (except iNaturalist place-specific queries), and support direct coordinate-based queries or point-in-polygon lookup. We document the query syntax, response structure, resolution, coverage, and limitations of each source. We then describe a Python enrichment pipeline that populates the MacroscopeVR station database (vf_stations) from coordinates alone, and discuss the extension of this approach to the SCOPE (Science Community Observatory for Participatory Ecology) framework, where thousands of citizen science observation points will require automated ecological classification at the time of capture. This capability transforms a GPS coordinate into an ecological address — the static identity layer upon which dynamic environmental data (CNL-TN-2026-023) and biodiversity observations are contextualized.
1. Introduction
1.1 The Problem
A SCOPE observer stands at an arbitrary coordinate with a 360° camera and a smartphone. The camera captures habitat structure. The smartphone captures species observations via iNaturalist. But neither instrument knows where it is ecologically. The observer may know she is standing in a California oak woodland, but the database does not. For the observation to carry ecological meaning beyond its taxonomic content, the location must be classified: What ecoregion? What biome? What climate zone? What elevation? What is the dominant land cover? Is the spotted towhee she just photographed native, introduced, or endemic to this place?
This classification problem has been solved for decades in institutional ecology — field stations know their ecoregion, universities maintain GIS layers, researchers consult published vegetation maps. But citizen science frameworks operate at arbitrary coordinates with no institutional infrastructure. The classification must be automated, derived from the coordinate itself, using freely available data sources that require no specialized software or expertise.
1.2 Context
MacroscopeVR (CNL-DR-2026-001) currently serves 33 ecological research stations with panoramic imagery, 3D terrariums, and iNaturalist species integration. The station database (vf_stations) includes fields for elevation_m, climate_zone, ecoregion, place_description, and ecology_description — all currently empty for the majority of stations. Populating these fields from coordinates is the immediate practical motivation for this work.
The broader motivation is architectural. The SCOPE framework (CNL-WP-2026-022) proposes transforming citizen science observers into mobile ecological sensing platforms. Every SCOPE observation point requires the same ecological characterization that institutional field stations receive through manual curation. The weather API evaluation (CNL-TN-2026-023) established a layered data architecture for dynamic environmental context — what conditions are happening at a location. This technical note addresses the complementary question: what is this location, ecologically? The static identity layer.
1.3 Scope
This evaluation covers coordinate-based sources for six categories of ecological site characterization:
- Elevation — meters above sea level from digital elevation models
- Climate classification — Köppen-Geiger zone from gridded climate data
- Ecoregion — Omernik hierarchical classification (US) and WWF biomes (global)
- Land cover — Anderson classification from satellite-derived products
- Taxonomic context — native/introduced/endemic status and conservation designations from iNaturalist
- Real-time environmental context — wildfire proximity, seismic activity, weather alerts, and air quality from operational monitoring APIs
Categories 1–5 represent the static ecological identity of a location — characteristics that change slowly or not at all on human timescales. Category 6 represents dynamic environmental context that changes hourly to daily but provides situational awareness for ecological observations. Together they constitute the complete ecological address of a GPS coordinate.
2. Methods
2.1 Evaluation Criteria
Each data source was evaluated against five criteria relevant to integration into a PHP/MySQL web application and a Python batch processing pipeline:
- Query method: Can the source be queried by latitude/longitude via a REST API call, or does it require local file processing?
- API key requirement: Does the source require registration, authentication, or subscription?
- Resolution: What is the spatial resolution of the underlying data?
- Coverage: Global, continental, or national?
- Response format: JSON, CSV, or other structured format parseable in PHP or Python?
2.2 Test Sites
API endpoints were tested against three MacroscopeVR stations representing a gradient of geographic and ecological diversity:
- Canemah Nature Lab, Oregon City, OR (45.3573°N, 122.6068°W) — Willamette Valley, low elevation
- James San Jacinto Mountains Reserve, Idyllwild, CA (33.8094°N, 116.7752°W) — Southern California montane, high elevation, complex terrain
- La Selva Research Station, Costa Rica (10.4302°N, 84.0074°W) — Tropical lowland, non-US coverage test
2.3 Procedure
All API calls were executed from the command line using curl on a MacBook Pro (Data). Response structure, field names, and data values were documented. For ArcGIS REST services, the Identify endpoint was tested with esriGeometryPoint geometry type and WGS84 (WKID 4326) spatial reference. Rate limiting was assessed through sequential multi-station queries.
3. Results: Static Ecological Identity
3.1 Elevation — Open-Meteo Elevation API
Source: Open-Meteo Elevation API [1] Data: Copernicus Digital Elevation Model GLO-90 Resolution: 90 meters Coverage: Global API Key: None required Rate Limit: Generous; supports multi-point queries
Endpoint:
https://api.open-meteo.com/v1/elevation?latitude={lat}&longitude={lon}
Multi-point query (batch all 33 stations in one call):
https://api.open-meteo.com/v1/elevation?latitude=45.3573,33.8094,10.4302&longitude=-122.6068,-116.7752,-84.0074
Response:
{
"elevation": [45.0, 1649.0, 67.0]
}
The multi-point capability is significant for batch enrichment: all 33 MacroscopeVR stations can be queried in a single HTTP request. The response returns elevations in meters, directly compatible with the elevation_m integer column in vf_stations.
Assessment: Excellent. Global coverage, no key, batch-capable, 90 m resolution sufficient for station-level characterization. Direct database write with no transformation required.
3.2 Climate Classification — Köppen Climate API
Source: Scott Pinkelman Köppen Climate API [2] Data: Köppen-Geiger climate classification derived from gridded climate data Resolution: 0.25° (~28 km) Coverage: Global API Key: None required
Endpoint:
http://climateapi.scottpinkelman.com/api/v1/location/{lat}/{lon}
Response (Canemah, Oregon):
{
"return_values": [{
"zone": "Csb",
"description": "Mediterranean, warm summer"
}]
}
Response (La Selva, Costa Rica):
{
"return_values": [{
"zone": "Af",
"description": "Tropical, rainforest"
}]
}
The API returns both the standard Köppen-Geiger code and a human-readable description. The code populates climate_zone directly; the description enhances place_description narrative text.
Assessment: Good. Global coverage, no key, simple coordinate query. The 0.25° resolution is adequate for climate classification, which varies at regional rather than local scales. The HTTP (not HTTPS) protocol is a minor concern for production deployment but acceptable for batch enrichment.
3.3 Ecoregion Classification — EPA Omernik Ecoregions (US)
Source: EPA Shared Enterprise Geodata and Services (SEGS) [3] Data: Omernik Ecoregions, Levels I–IV Resolution: 1:250,000 scale (Level IV compilation) Coverage: Continental United States + Alaska API Key: None required
The EPA ArcGIS REST service provides the richest single source of ecological classification for US stations. The Omernik hierarchy spans four levels:
- Level I: Continental-scale biomes (15 regions in North America)
- Level II: Subcontinental ecological patterns (50 regions)
- Level III: Regional ecological units (105 regions in the continental US)
- Level IV: Vegetation community-scale subdivisions (968 regions)
Service URL:
https://geodata.epa.gov/arcgis/rest/services/ORD/USEPA_Ecoregions_Level_III_and_IV/MapServer
Identify query (Level III polygons, Layer 11):
https://geodata.epa.gov/arcgis/rest/services/ORD/USEPA_Ecoregions_Level_III_and_IV/MapServer/identify
?geometry=-122.6068,45.3573
&geometryType=esriGeometryPoint
&sr=4326
&layers=all:11
&tolerance=1
&mapExtent=-180,-90,180,90
&imageDisplay=800,600,96
&returnGeometry=false
&f=json
Key response fields (Level III):
| Field | Description | Example (Canemah) |
|---|---|---|
US_L3CODE |
US Level III code | 3 |
US_L3NAME |
US Level III name | Willamette Valley |
NA_L3CODE |
North America Level III code | 3.2 |
NA_L3NAME |
NA Level III name | Willamette Valley |
NA_L2CODE |
NA Level II code | 7.1 |
NA_L2NAME |
NA Level II name | Marine West Coast Forest |
NA_L1CODE |
NA Level I code | 7 |
NA_L1NAME |
NA Level I name | Marine West Coast Forest |
Level IV query (Layer 6) returns additional fields including US_L4CODE, US_L4NAME, and L4_KEY, providing vegetation community-level classification.
Assessment: Excellent for US stations. The four-level hierarchy provides exactly the ecological resolution needed — from biome context (Level I) through vegetation community (Level IV). The ArcGIS Identify endpoint accepts WGS84 coordinates directly. Covers 30 of 33 active MacroscopeVR stations. Does not cover La Selva (Costa Rica) or FRC Belgium.
3.4 Land Cover — USGS National Land Cover Database
Source: USGS National Map ArcGIS MapServer [4] Data: National Land Cover Database (NLCD), Anderson Level II classification Resolution: 30 meters Coverage: Continental United States
Service URL:
https://smallscale.nationalmap.gov/arcgis/rest/services/LandCover/MapServer
Identify query:
https://smallscale.nationalmap.gov/arcgis/rest/services/LandCover/MapServer/identify
?geometry=-122.6068,45.3573
&geometryType=esriGeometryPoint
&sr=4326
&layers=visible
&tolerance=1
&mapExtent=-180,-90,180,90
&imageDisplay=800,600,96
&returnGeometry=false
&f=json
Response values return Anderson Level II land cover classes directly applicable to ecological characterization:
| NLCD Class | Description | Ecological Relevance |
|---|---|---|
| 41 | Deciduous Forest | Broadleaf canopy communities |
| 42 | Evergreen Forest | Conifer-dominated stands |
| 43 | Mixed Forest | Transitional forest types |
| 52 | Shrub/Scrub | Chaparral, sagebrush communities |
| 71 | Grassland/Herbaceous | Prairie, meadow systems |
| 90 | Woody Wetlands | Riparian, swamp forest |
| 95 | Emergent Herbaceous Wetland | Marsh, bog communities |
Assessment: Good for CONUS stations. The 30 m resolution provides genuinely site-specific land cover classification — the actual vegetation type at the station coordinates, not a regional average. Complements the ecoregion classification by providing observed (satellite-derived) cover rather than theoretical ecological units. Does not cover Alaska, Hawaii, or international stations.
3.5 Global Ecoregion Classification — WWF Terrestrial Ecoregions
Source: WWF Terrestrial Ecoregions of the World [5], updated by Dinerstein et al. [6] Data: 847 terrestrial ecoregions in 14 biomes and 8 biogeographic realms Resolution: Variable (ecoregion polygon boundaries) Coverage: Global API Key: None (downloadable dataset)
Unlike the previous sources, the WWF ecoregion dataset has no REST API for coordinate queries. Data are available as shapefiles or GeoJSON for download. Point-in-polygon lookup requires either local processing with a geospatial library (e.g., Python shapely + geopandas) or a hosted service.
The 14 WWF biomes:
| Code | Biome |
|---|---|
| 1 | Tropical & Subtropical Moist Broadleaf Forests |
| 2 | Tropical & Subtropical Dry Broadleaf Forests |
| 3 | Tropical & Subtropical Coniferous Forests |
| 4 | Temperate Broadleaf & Mixed Forests |
| 5 | Temperate Conifer Forests |
| 6 | Boreal Forests/Taiga |
| 7 | Tropical & Subtropical Grasslands, Savannas & Shrublands |
| 8 | Temperate Grasslands, Savannas & Shrublands |
| 9 | Flooded Grasslands & Savannas |
| 10 | Montane Grasslands & Shrublands |
| 11 | Tundra |
| 12 | Mediterranean Forests, Woodlands & Scrub |
| 13 | Deserts & Xeric Shrublands |
| 14 | Mangroves |
Known classifications for non-US MacroscopeVR stations:
- La Selva, Costa Rica: Isthmian-Atlantic Moist Forests ecoregion, Biome 1 (Tropical & Subtropical Moist Broadleaf Forests), Neotropical realm
- FRC Belgium: Western European Broadleaf Forests ecoregion, Biome 4 (Temperate Broadleaf & Mixed Forests), Palearctic realm
Assessment: Essential for global coverage but requires local processing rather than a REST API call. For the current 33-station MacroscopeVR dataset (2 non-US stations), manual lookup from published maps is practical. For SCOPE’s anticipated thousands of global observation points, a hosted point-in-polygon service or a lightweight local lookup using the GeoJSON dataset would be necessary. The dataset is freely available under Creative Commons Attribution-NonCommercial 3.0 license.
3.6 Taxonomic Context — iNaturalist API
Source: iNaturalist API v1 [7] Data: Species establishment means, conservation status, phenological annotations Coverage: Global (where iNaturalist community data exist) API Key: None required for read operations
The iNaturalist API provides ecological context that no geospatial classification layer captures: the relationship between specific taxa and specific places.
3.6.1 Establishment Means
The /v1/taxa/{id} endpoint, when queried with a preferred_place_id, returns establishment_means indicating whether a species is native, introduced, or endemic at that location.
https://api.inaturalist.org/v1/taxa/{taxon_id}?preferred_place_id={place_id}
This transforms a species list from raw taxonomy into ecological interpretation: the 847 species observed near Blue Oak Ranch Reserve are not just names — they carry native/introduced status specific to that ecoregion.
3.6.2 Conservation Status
The taxon.conservation_statuses array returns place-specific conservation designations. A species may be listed as Endangered in California but Least Concern globally. These place-specific statuses are available when querying with geographic context.
3.6.3 Phenological Annotations
iNaturalist observations carry annotation fields for phenology (flowering, fruiting, budding), life stage, and sex. These are not location-derived but when aggregated by station and date provide phenological calendars tied to place — when species enter specific life stages at specific coordinates across years.
Assessment: Complementary rather than primary. The establishment means and conservation status enrich the existing species cache (vf_species_cache) with ecological significance. The phenological annotations create temporal context. These endpoints require place IDs (not raw coordinates), adding a lookup step: coordinates must first be resolved to an iNaturalist place via the /v1/places/nearby endpoint before taxon-specific queries can include establishment means.
4. Results: Dynamic Environmental Context
The static classification layers described in Section 3 characterize what a location is. A complementary set of operational monitoring APIs characterize what is happening at a location right now — conditions that may directly affect ecological observations.
4.1 Active Wildfire Proximity — NASA FIRMS
Source: NASA Fire Information for Resource Management System [8] Data: MODIS and VIIRS active fire detections Resolution: 375 m (VIIRS) to 1 km (MODIS) Coverage: Global Latency: Near-real-time (hours) API Key: Required (free NASA Earthdata registration)
https://firms.modaps.eosdis.nasa.gov/api/area/csv/{key}/VIIRS_SNPP_NRT/{lat-range},{lon-range}/1
Fire proximity is directly relevant to ecological observations — smoke affects visibility, species behavior changes near active fire, and post-fire landscapes represent distinct ecological states.
4.2 Seismic Activity — USGS Earthquake Hazards
Source: USGS Earthquake Hazards Program API [9] Data: Earthquake events by magnitude, location, and time Coverage: Global API Key: None required
https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&latitude={lat}&longitude={lon}&maxradiuskm=100&minmagnitude=2.0&starttime={date}
Seismic events can trigger ecological responses — landslides, changes in water flow, wildlife displacement — and provide context for anomalous observations.
4.3 Weather Alerts — NOAA National Weather Service
Source: NWS API [10] Data: Active weather alerts by point or zone Coverage: United States and territories API Key: None required
https://api.weather.gov/alerts/active?point={lat},{lon}
Returns active watches, warnings, and advisories for the coordinate. Relevant for contextualizing SCOPE observations made during extreme weather events.
4.4 Air Quality — EPA AirNow
Source: EPA AirNow API [11] Data: Air Quality Index (AQI) by pollutant Coverage: United States, Canada, Mexico API Key: Required (free registration)
https://www.airnowapi.org/aq/observation/latLong/current/?format=application/json&latitude={lat}&longitude={lon}&distance=50&API_KEY={key}
Air quality directly affects biological activity — pollinator behavior, bird vocalization timing, photosynthetic rates — and contextualizes observations made under degraded air quality conditions, particularly during wildfire smoke events.
4.5 Assessment of Dynamic Sources
Table 1. Dynamic environmental context APIs
| Source | Variable | Coverage | Key Required | Latency | Relevance |
|---|---|---|---|---|---|
| NASA FIRMS | Active fire | Global | Yes (free) | Hours | Direct |
| USGS Earthquakes | Seismic events | Global | No | Minutes | Contextual |
| NWS Alerts | Weather alerts | US | No | Minutes | Direct |
| EPA AirNow | Air quality | US/CA/MX | Yes (free) | Hourly | Direct |
These dynamic sources are not candidates for batch enrichment but for live query at the time of observation. A SCOPE observer’s capture is timestamped and geolocated; at ingest time, the pipeline can query these APIs to attach environmental context: “Observation made during Air Quality Alert (AQI 157, PM2.5 from wildfire smoke, 3 active fire detections within 100 km).” This transforms a bare observation into an environmentally situated record.
5. Consolidated Source Inventory
Table 2. Complete API source inventory for ecological site characterization
| Data Layer | Source | Method | Resolution | Coverage | Key | Rate Limit |
|---|---|---|---|---|---|---|
| Elevation | Open-Meteo [1] | REST, multi-point | 90 m | Global | No | Generous |
| Climate zone | Köppen API [2] | REST, per-point | ~28 km | Global | No | Unknown |
| Ecoregion (L I–IV) | EPA ArcGIS [3] | REST Identify | 1:250K | US + AK | No | Standard |
| Land cover | USGS NLCD [4] | REST Identify | 30 m | CONUS | No | Standard |
| Biome (global) | WWF TEOW [5,6] | Local shapefile | Polygon | Global | No | N/A |
| Taxon context | iNaturalist [7] | REST, per-taxon | Point | Global | No | 100/min |
| Fire proximity | NASA FIRMS [8] | REST, area | 375 m | Global | Yes (free) | Per key |
| Seismic events | USGS [9] | REST, radius | Point | Global | No | Standard |
| Weather alerts | NWS [10] | REST, point | Zone | US | No | Standard |
| Air quality | AirNow [11] | REST, radius | Station | US/CA/MX | Yes (free) | Per key |
6. Enrichment Pipeline Design
6.1 Architecture
The enrichment pipeline operates in two modes:
Batch mode (immediate need): A Python script queries vf_stations for all active stations with coordinates, hits each API sequentially with polite rate limiting (1-second delay between calls), and populates the empty database fields. Run once; results reviewed before commit.
Ingest mode (SCOPE future): A PHP function called at observation ingest time queries the static APIs for the observation coordinate and attaches ecological classification to the observation record. Dynamic APIs are queried simultaneously for real-time context.
6.2 Batch Enrichment Script — enrich_stations.py
Input: MySQL query against vf_stations for active stations with coordinates.
Processing per station:
- Elevation — Query Open-Meteo with station coordinates. Write integer meters to
elevation_m. - Köppen zone — Query climate API. Write zone code and description to
climate_zone(e.g., “Csb — Mediterranean, warm summer”). - EPA Ecoregion (US stations) — Query ArcGIS Identify for Level III and Level IV polygons. Write Level III name to
ecoregion. Store full hierarchy (Level I biome through Level IV community) in a structured JSON field or compose intoecology_descriptionnarrative. - NLCD Land Cover (CONUS stations) — Query USGS MapServer Identify. Append dominant cover class to
ecology_description. - WWF Biome (non-US stations) — Manual lookup or local shapefile query. Write biome name to
ecoregion. - Draft narratives — Compose
place_descriptionandecology_descriptionfrom the combined results for human review.
Output: Summary report listing each station with its enrichment results, printed to terminal for review before any database writes. A --dry-run flag (default) prevents database modification until explicitly overridden with --commit.
6.3 Database Schema Implications
The current vf_stations schema accommodates the primary enrichment targets:
| Column | Type | Source | Example |
|---|---|---|---|
elevation_m |
int | Open-Meteo | 575 |
climate_zone |
varchar(100) | Köppen API | Csb — Mediterranean, warm summer |
ecoregion |
varchar(255) | EPA / WWF | Willamette Valley |
place_description |
text | Composed | Regional geography, biome, landscape context |
ecology_description |
text | Composed | Vegetation communities, habitat structure |
For future SCOPE integration, the enrichment data may warrant additional structured columns or a related vf_site_classification table storing the full ecoregion hierarchy, NLCD class codes, and WWF biome identifiers as normalized data rather than composed narrative text. This decision can be deferred until the data model redesign (CNL-DR-2026-001, Task D) shifts from station-centric to place-based architecture.
7. Discussion
7.1 The Ecological Address
The combination of these data sources produces what might be called an ecological address — a structured description of what a GPS coordinate means ecologically:
Blue Oak Ranch Reserve (37.3817°N, 121.7364°W) Elevation: 575 m | Climate: Csb (Mediterranean, warm summer) Ecoregion: Southern and Baja California Pine-Oak Mountains (Level III) / Interior Santa Cruz Range (Level IV) Biome: Mediterranean California (Level I) Land Cover: Evergreen Forest (NLCD 42) 847 species observed within 20 km, 89% native establishment
This ecological address transforms a bare coordinate into a place with ecological meaning — the context within which species observations, habitat structure measurements, and environmental conditions become interpretable.
7.2 Relationship to Weather API Architecture
CNL-TN-2026-023 established a six-layer architecture for dynamic environmental data at observation locations. The ecological site characterization described here constitutes a seventh layer — or more precisely, a foundation layer beneath the six weather layers. Weather data answers “what conditions are happening here?” Ecological classification answers “what is here?” The classification is prerequisite: knowing that a location is at 1,649 m in a Mediterranean montane conifer zone determines how weather data should be interpreted. The 7°F temperature error documented at the James Reserve in CNL-TN-2026-023 is only recognizable as an error because we know the station’s elevation and ecoregion context.
7.3 Relationship to the Large Sensor Model
The Large Sensor Model proposal (CNL-WP-2026-022) describes a geographic graph neural network where monitoring stations become nodes connected by edges weighted by ecological similarity. The ecological characterization documented here provides the metadata that defines those edge weights. Two stations in the same Level III ecoregion and Köppen zone share species pools, seasonal phenology, and weather-biodiversity coupling dynamics; stations in different biomes do not. Without automated ecological classification of each node, the graph structure would be limited to geographic proximity — a far weaker basis for ecological inference.
7.4 Coverage Gaps and Fallback Strategy
The primary coverage gap is at the intersection of “non-US location” and “REST API query.” The EPA ecoregion service covers 30 of 33 current stations but will not scale to SCOPE’s anticipated global reach. The fallback strategy is hierarchical:
- US stations: EPA Ecoregions (Level I–IV) + NLCD land cover. Full automation.
- North American stations outside US: EPA North American Level I–III ecoregions extend to Canada and Mexico via the Commission for Environmental Cooperation framework. Partial automation.
- Global stations: WWF Terrestrial Ecoregions via local shapefile lookup. Requires a
geopandasdependency but is fully automatable. - Manual fallback: For the 2 current non-US stations (Belgium, Costa Rica), manual assignment from published sources is practical and immediate.
8. Limitations
Single-point characterization. Querying a single coordinate returns the classification at that exact point. Ecological research stations may span significant topographic and vegetative gradients — Blue Oak Ranch Reserve covers 1,254 hectares across elevations from 400 to 850 m, encompassing grassland, oak savanna, mixed oak woodland, and riparian forest. The single-point result characterizes the panorama capture location, not the reserve.
Classification currency. The EPA ecoregion polygons are current through December 2011. NLCD is updated on multi-year cycles. Land cover change from fire, development, or succession since the classification date is not reflected. For most research station locations, land cover stability is expected; for SCOPE observations in dynamic landscapes, this lag may matter.
Köppen resolution. The 0.25° (~28 km) grid resolution of the climate classification API cannot resolve orographic climate gradients. The James Reserve and surrounding desert communities at different elevations may share the same grid cell despite having fundamentally different climate regimes. This limitation was documented for weather APIs in CNL-TN-2026-023 and applies equally here.
iNaturalist place dependency. Establishment means and conservation status require resolving coordinates to iNaturalist place IDs, which represent administrative or ecological boundaries defined by the iNaturalist community. Coverage and specificity of these place definitions vary geographically.
API stability. Free APIs can change without notice. The Köppen climate API is a personal project; the EPA ArcGIS service has been stable for over a decade but operates under federal IT governance that periodically restructures web services. The enrichment pipeline should cache results in the database and not depend on real-time API availability for serving previously classified locations.
9. Conclusion
Six freely available data sources, requiring no API keys and no specialized software, can automatically classify any GPS coordinate in the United States by its elevation (90 m resolution), climate zone (Köppen classification), ecoregion (four hierarchical levels from biome to vegetation community), and land cover type (30 m resolution). Global coverage requires adding WWF Terrestrial Ecoregions via local shapefile processing. iNaturalist provides taxonomic context — native/introduced status and conservation designations — specific to both taxon and place.
For the immediate MacroscopeVR application, a Python batch enrichment script can populate the 33 station records in a single run, filling the empty elevation_m, climate_zone, ecoregion, place_description, and ecology_description fields from coordinates alone. For the broader SCOPE framework, the same queries execute at observation ingest time, automatically classifying every citizen science observation point without requiring the observer to know anything about the ecology of the place where they stand.
The resulting ecological address — elevation, climate zone, ecoregion hierarchy, land cover, and species context — transforms a GPS coordinate into an ecologically interpretable location. It is the static foundation upon which dynamic weather data, biodiversity observations, and habitat structure measurements gain meaning.
10. Data Availability
All endpoints documented in this evaluation:
- Open-Meteo Elevation:
https://api.open-meteo.com/v1/elevation?latitude={lat}&longitude={lon}(no key) - Köppen Climate:
http://climateapi.scottpinkelman.com/api/v1/location/{lat}/{lon}(no key) - EPA Ecoregions:
https://geodata.epa.gov/arcgis/rest/services/ORD/USEPA_Ecoregions_Level_III_and_IV/MapServer/identify(no key) - USGS NLCD:
https://smallscale.nationalmap.gov/arcgis/rest/services/LandCover/MapServer/identify(no key) - WWF TEOW: Download from DataBasin.org or RESOLVE (Creative Commons BY-NC 3.0)
- iNaturalist:
https://api.inaturalist.org/v1/(no key for read) - NASA FIRMS:
https://firms.modaps.eosdis.nasa.gov/api/(free Earthdata key) - USGS Earthquakes:
https://earthquake.usgs.gov/fdsnws/event/1/query(no key) - NWS Alerts:
https://api.weather.gov/alerts/active(no key) - AirNow:
https://www.airnowapi.org/aq/(free key)
References
[1] Open-Meteo (2026). “Elevation API.” Open-Meteo.com. https://open-meteo.com/en/docs/elevation-api
[2] Pinkelman, S. (2026). “Köppen Climate Classification API.” https://climateapi.scottpinkelman.com
[3] US EPA Office of Research and Development (2011). “Level III and IV Ecoregions of the Continental United States.” ArcGIS REST Service. https://geodata.epa.gov/arcgis/rest/services/ORD/USEPA_Ecoregions_Level_III_and_IV/MapServer
[4] USGS (2026). “National Map — Land Cover MapServer.” https://smallscale.nationalmap.gov/arcgis/rest/services/LandCover/MapServer
[5] Olson, D. M., et al. (2001). “Terrestrial Ecoregions of the World: A New Map of Life on Earth.” BioScience, 51(11), 933–938. https://doi.org/10.1641/0006-3568(2001)051[0933:TEOTWA]2.0.CO;2
[6] Dinerstein, E., et al. (2017). “An Ecoregion-Based Approach to Protecting Half the Terrestrial Realm.” BioScience, 67(6), 534–545. https://doi.org/10.1093/biosci/bix014
[7] iNaturalist (2026). “iNaturalist API v1 Documentation.” https://api.inaturalist.org/v1/docs/
[8] NASA (2026). “Fire Information for Resource Management System (FIRMS).” https://firms.modaps.eosdis.nasa.gov
[9] USGS (2026). “Earthquake Hazards Program — API Documentation.” https://earthquake.usgs.gov/fdsnws/event/1/
[10] NOAA (2026). “National Weather Service API.” https://www.weather.gov/documentation/services-web-api
[11] EPA (2026). “AirNow API.” https://docs.airnowapi.org
[12] Omernik, J. M. (1995). “Ecoregions: A Spatial Framework for Environmental Management.” In Biological Assessment and Criteria: Tools for Water Resource Planning and Decision Making. Lewis Publishers.
Document History
| Version | Date | Changes |
|---|---|---|
| 1.0 | 2026-02-15 | Initial release: evaluation of six static and four dynamic coordinate-based ecological classification sources; enrichment pipeline design; relationship to CNL-TN-2026-023 weather API architecture and CNL-WP-2026-022 Large Sensor Model |
Cite This Document
BibTeX
Permanent URL: https://canemah.org/archive/document.php?id=CNL-TN-2026-024