Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Tree-species world data

Plausible settlement tree species come from EU-Trees4F v2, a modeled dataset for 67 European tree species. The importer uses the current-climate ensemble layers as environmental evidence for world generation; it does not treat them as observations from 1544.

The automated identity applies to that exact JRC ENS_CLIM archive. Its byte equivalence to a Figshare-hosted archive has not been established and remains an explicit confirmation blocker; the EU-Trees4F v2 Figshare citation and CC0 notice are retained without making an equivalence claim.

Keep EU-Trees4F_ens-clim.zip at target/world-data-sources/raw/tree-species/. just init-tree-species downloads into a temporary candidate, verifies size and SHA-256, publishes a content-addressed generation and canonical sidecar, then atomically replaces the active archive. --force is required to replace an invalid existing file. Use plan-tree-species or verify-tree-species for non-mutating workflows. Override it with --tree-species-archive.

Source semantics and parsing

For each species, the importer requires one complete current-climate triplet:

  • prob_pot: modeled habitat suitability on a 1/12-degree EPSG:4326 grid, stored as an integer score from 0 through 1000. This is not abundance or a literal occurrence probability.
  • bin_pot: the suitability surface after the source's species-specific threshold, on a 10 km EPSG:3035 grid.
  • bin_nat: the thresholded surface masked by the source's expert native-range evidence, on the same 10 km grid.

The cur2005 filename label is a reference scenario, not a direct 2005 observation. The model combines occurrences centered roughly around 2005 with older climate normals that better represent conditions under which established trees grew. One retained species, Robinia_pseudoacacia, is naturalized rather than historically native to Europe.

The importer reads the DEFLATE-compressed ZIP in memory-bounded chunks without extracting paths. It requires the pinned 67-species current-layer manifest, validates signed Int16, nodata, dimensions, PixelIsArea transforms, CRS keys, units, and layer value domains, and rejects impossible bin_nat=1/bin_pot=0 states. Probability and binary rasters deliberately use different grids and are sampled independently. A binary candidate whose probability cell is nodata is omitted rather than assigned an invented score.

Canonical model and use

Each settlement stores TreeSpeciesProfile, with no unknown state:

  • Modeled contains the twelve highest-suitability candidates at most. Every candidate has a validated scientific-name identifier, a bounded suitability score, and either within-native-range or outside-native-range evidence.
  • Inferred contains a nonempty, duplicate-free list selected from typed potential vegetation when the rasters yield no modeled candidate.

The constructors keep profiles nonempty, unique, bounded, and deterministically ordered. The same constructors are used by JSON parsing and the SpacetimeDB import reducer, so invalid states cannot bypass the source boundary.

The official archive was decoded in full: all 201 current rasters passed their contracts. Sampling all 6,041 active Viabundus settlements produced modeled profiles for 5,986 and deterministic vegetation-based profiles for the remaining 55, retaining 71,053 ranked candidates in total.

Game systems can use these profiles for timber and fruit products, fuel and charcoal availability, forest tactical scenes, shipbuilding or carpentry materials, forage, and visual biome selection. These are plausibility inputs, not claims that a named settlement historically grew every listed species.