Species & Sites
Species and sites
Section titled “Species and sites”Canopi’s Pacific Northwest coverage includes 20 tree species spanning the full ecological range of Oregon and Washington — from dry eastern juniper woodlands to wet coastal rainforests. Each species has a distinct ecological niche, and survival predictions reflect those differences.
Ecological context
Section titled “Ecological context”The Pacific Northwest is one of the most ecologically diverse forest regions in North America. Three major zones define where different species thrive:
Coastal and western lowlands — Wet, mild, maritime climate. Dominant species: Western Hemlock, Sitka Spruce, Western Red Cedar, Red Alder, Bigleaf Maple. High annual precipitation (60-120+ inches). The most productive forest sites in the region.
Cascade Range and mountain forests — Variable precipitation, cold winters, significant snowpack. Dominant species: Douglas Fir, Noble Fir, Pacific Silver Fir, Mountain Hemlock. Species distribution tracks elevation and aspect closely. Western slopes are wet; eastern slopes transition rapidly to dry conditions.
East-side dry forests — Low precipitation (10-30 inches), warm summers, cold winters. Dominant species: Ponderosa Pine, Western Juniper, White Fir, Lodgepole Pine. Fire-adapted ecosystems with open canopy structures. These species tolerate drought but are sensitive to competition and fire exclusion effects.
Species selection matters
Section titled “Species selection matters”Planting the right species at the right site is the single most important reforestation decision. Canopi’s predictions reflect this — the same site may show dramatically different survival probabilities for different species.
Use the /v1/predict/batch endpoint to compare multiple species at the same location:
import httpx
headers = {"X-API-Key": "cnpi_live_your_api_key_here"}site = {"latitude": 44.5, "longitude": -122.0, "planting_method": "manual"}
# Compare three species at the same sitespecies_to_compare = ["PSME", "PIPO", "TSHE"]
response = httpx.post( "https://api.canopitech.ai/v1/predict/batch", headers=headers, json={ "requests": [ {**site, "species_code": sp} for sp in species_to_compare ] }).json()
for result in response["results"]: name = result["species_common_name"] prob = result["predictions"][2]["survival_probability"] print(f"{name}: {prob:.0%} five-year survival")The species with the highest survival probability at that site is the one the model considers best-matched to local conditions — though operational factors (timber value, ecological goals, carbon sequestration rates) should also inform species selection.