Skip to content

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 16 Aug 21:02
· 438 commits to main since this release

TERRA 0.3.0 — "Ember"

Three new capabilities: arranging and comparing analyses in one place, simulating the classified crop in three dimensions, and answering solar and wind questions for the area.

TERRA Studio

A space where analyses are arranged rather than looked at one at a time.

  • The screen divides into the panels a question needs: viewport, outliner, properties, comparison, domain shift, data table, the run band and the canopy. Any area can be split, joined or retyped to hold any of them.
  • Five ready arrangements, one per kind of work, each restorable to its original.
  • More than one area on the same board, to put two farms or two years side by side.
  • Classification, water and solar run without leaving the board. A composition can be applied there once its scene has been chosen under Compositions on the map.
  • Sets of readings saved under a name and reopened as they were.
  • The arrangement you built survives closing the application.

Crop simulation

The classified area is now grown in three dimensions and lit by the sun of that place.

  • Leaf quantity is estimated from the green the satellite measured across the season.
  • Plant age follows from that leaf quantity, by comparison with the growth of 24 species.
  • Where the optional 3D package is installed, plants are grown organ by organ from the species' own architecture and then voxelised, instead of being approximated as a uniform crown of the same leaf area.
  • Lighting uses the hourly record for the location, with cast shadows and the light colour of that sky.
  • The final reading is the fraction of light the canopy intercepts.

Energy

The same area answering about generation.

  • How much irradiation the place receives.
  • How that irradiation falls across the terrain.
  • Where within the area it is possible to build, accounting for slope and land occupation.
  • How much energy a plant would produce there, with losses declared individually.
  • Wind resource screening.

Where the classification is wrong

  • Agreement with MapBiomas measured cell by cell, with per-class accuracy and a confidence interval. The confusion matrix reads rows as the run and columns as the reference.
  • Separation between quantity error and allocation error.
  • Agreement by block across space, distinguishing localised disagreement from disagreement everywhere.
  • Domain-shift diagnosis between two runs: symmetric KL on NDVI, change-vector magnitude in training standard deviations, RBF MMD and a per-feature shift table, computed on standardised samples.
  • Export of the run's tables, AOI geometry and classification raster as a single ZIP.

Surface water

  • Water mapping from spectral indices, with no trained model and no fixed legend.
  • Persistent and ephemeral water separated by how often each pixel was wet across the dates it was actually observed: above 0.70 persistent, 0.15 to 0.70 ephemeral. The two are reported separately and never summed.

Reading a run before it runs

  • The Method panel in the run band states what the chosen product will do — which bands it reads, at what cadence, and what the model actually is — and afterwards the stages the run went through.
  • Release notes can be set to open at every start rather than once per version, in Settings › Account.

Python environment

  • The application checks whether the interpreter can actually import what it needs, rather than trusting the name.
  • When a dependency is missing it says which one and what it stops working, and offers to build its own environment from a Python you choose, showing pip's output as it runs.
  • That environment is kept outside the application and survives updates.
  • Optional packages can be installed and removed from Settings › System.
  • Backup and restore of local data as a single file.

Fixes

  • Saving any preference reset the chosen model to the default.
  • A reopened analysis could not say which run it belonged to.
  • Leaf area index for bare soil was emitted as negative zero, which serialised as -0.0 in exported canopy series.
  • The right-hand drawers opened from the top of the screen while the buttons that opened them sat at the foot.
  • The centre the map flew to when selecting an area was computed including the vertex that closes the polygon, which displaced it.
  • Starting a new classification did not clear the previous session's composition.

Limitations

  • The models emit five MapBiomas classes (3, 21, 25, 39, 41) and were fitted for western Paraná study areas; the training data are not distributed with this application. An area in another biome can return a confident and semantically wrong result, which is why domain-shift diagnosis exists.
  • The comparison reference is MapBiomas Collection 10, year 2023.
  • Point energy figures come from NASA POWER: radiation on a one-degree cell, wind and the other meteorology on a 0.5 by 0.625 degree MERRA-2 cell. Neither resolves structure inside an area. The terrain and siting maps are the exception, resolving within the area at 30 m from the Copernicus DEM.
  • Areas in hectares are pixel counts uncorrected for classification error.
  • Temporal Transformer, Prithvi and three-dimensional growth depend on optional packages; the application runs without them.
  • The accuracy assessment and the domain-shift report are not in the export package.
  • A board's contents do not survive closing the application unless the board is saved under a name; the arrangement survives either way.

Install

Two install flavors per platform:

Flavor Assets What you need
FULL *-full.zip Unzip and run — embeds Python 3.12 + spectral RF deps
LITE *-lite.zip Smaller; install Python 3.12 + requirements.txt yourself

FULL supports spectral Random Forest (and LULC / phenology) out of the box.
Temporal Transformer and Prithvi still need torch (requirements-prithvi.txt)
via a system/venv install (TERRA_PYTHON).

macOS FULL is arm64 (Apple Silicon). LITE macOS remains universal.

Sentinel-2 imagery is read on demand from the Microsoft Planetary
Computer STAC catalog; no full product download is required.

See docs/INSTALL.md.

What's Changed

  • docs: JOSS-ready guides, CONTRIBUTING, and requirements by @rexionmars in #8
  • feat(release): LITE and FULL installers with bundled Python by @rexionmars in #9
  • docs: add SemVer releasing policy by @rexionmars in #10
  • docs: add public product roadmap by @rexionmars in #11
  • feat(ui): subtle Web Audio tones for success/error toasts by @rexionmars in #14
  • feat: projects hub, analysis workspace, and composition tooling by @rexionmars in #15
  • feat(map): swipe compare and AOI right-click menu by @rexionmars in #13
  • feat(ui): settings workspace, run/AOI naming, and compare chrome by @rexionmars in #16
  • feat(ui): What’s New modal after splash on version bumps by @rexionmars in #17
  • docs: platform update gallery, research notice, and guides by @rexionmars in #18
  • fix(ui): keep overlay visibility controls only in Overlay Tools by @rexionmars in #19
  • docs(readme): research-driven notice and product-only gallery by @rexionmars in #20
  • docs(readme): restore fuller research-methods wording by @rexionmars in #21
  • fix(ui): keep hub project selected when opening the map by @rexionmars in #23
  • feat(ui): Analyses-first project hub and composition modal by @rexionmars in #22
  • fix(aoi): correct fly-to centroid and clear composition on new classification by @rexionmars in #24
  • fix(a11y): meet WCAG contrast on muted text and complete the ARIA tabs pattern by @rexionmars in #25
  • feat(hub): unify the class palette and surface EO metadata on the projects page by @rexionmars in #28
  • feat(analysis): inspect the research pack from the analysis header by @rexionmars in #27
  • feat: surface water mapping, and report the MapBiomas sample size in native cells by @rexionmars in #29
  • fix(map): do not restore the previous AOI and composition at startup by @rexionmars in #32
  • feat(energy): solar resource, photovoltaic siting, and wind screening by @rexionmars in #30
  • feat(design): one palette, one chassis, one button set — and charts that draw the data by @rexionmars in #31
  • Installer, runtime configuration, backup and splash by @rexionmars in #33
  • Accuracy assessment, prose removal, and the solar diffuse terms by @rexionmars in #34
  • A dock layout for the map and energy screens by @rexionmars in #35
  • feat: the studio, its diagnostics, and the data-integrity fixes found in it by @rexionmars in #37
  • fix(studio): a retained run could be drawn but not read by @rexionmars in #38
  • docs: draft JOSS paper and CITATION.cff by @rexionmars in #12
  • perf(ui): load the analysis and energy screens when they are opened by @rexionmars in #39
  • fix(sidecar): explain why a run failed, and install the optional models from Settings by @rexionmars in #40
  • feat(canopy): grow the stand from the area the application already measured by @rexionmars in #41

Full Changelog: v0.2.0...v0.3.0