Skip to main content

olmoearth_inferenceX is a tool for auditing Earth-observation prediction maps without labels. It ranks the windows of a map by the model's own confidence, so a reviewer knows where to look first, says why each window is flagged, and measures how two inferences of the same scene differ.

  1. Ranking. Pool the map to windows (4 px). Suspicion s = −(p₍₁₎ − p₍₂₎), the negative top-1-minus-top-2 margin of the model's own scores; boundary windows first, then by s. A ranking is scored by excess AURC, AURC(s) − AURC(oracle), beside two controls that never see the model (class rarity, embedding distance).
  2. Comparing. Two inferences A, B on one window grid: P(A ≠ B), its enrichment among the errors, and P(confidence picks the right side | A ≠ B), each against the reseed floor.
  3. Estimating. Label n windows, stratified by margin with n_h ∝ N_h √(q_h(1−q_h)) from the model's own confidence; θ̂ = Σ W_h p_h, 95% interval from Σ W_h²(1−f_h) p_h(1−p_h)/(n_h−1); cluster-corrected when labels come tile by tile. A review set is refused as a sample: its rate is capture(b)·θ/b, not θ. The same labels give the per-class user's and producer's accuracy and error-adjusted shares, and, from a random sample, the largest most-confident zone whose error rate is at most α with the statement failing on at most δ of draws: exact hypergeometric tests from the smallest zone up, refused when n < ln δ / ln(1−α).
One scene through the audit: Sentinel-2 bands, the frozen OlmoEarth encoder and the task head, the prediction, confidence and boundary layers, the review set at a 5% budget drawn on the scene, and the reasons per flagged window

On the 24 tasks of Ai2's published embedding suite where a confidence margin is defined, the model's own confidence ranks its errors better than any control that sees no model, on every one.

Full documentation is available at https://olmoearth-inferencex.readthedocs.io/: the findings, the usage, the recipe and the evidence experiment by experiment.

Demo

pip install olmoearth-inferencex
oe-inferencex demo

It audits a real map, one tile of Dynamic World land cover, chosen by a rule fixed in advance (the median tile of 18, not the best one), and draws this:

Three panels of a real land-cover map in southern Peru. Left: the 5% of windows to check first, outlined in black along the class boundaries. Middle: the same windows over the map's real errors in red. Right: a random 5% of windows over the same errors

Left: the 5% of windows to check first, found without labels. Middle: the same windows over the real errors, in red: 67% of them are wrong, against 19% of windows picked at random. Right: a random 5%. Most of the red lies outside the flagged windows because the map is 19% wrong and the review is 5%: no 5% could hold more than 26% of the errors, and these hold 17%; a 20% review finds 55%.

Your own map: oe-inferencex assess your_map.tif --out audit.

Setup

pip install olmoearth-inferencex        # add [geo] to read and write GeoTIFFs

To work on the repository, clone it, then uv sync and uv run pytest; the experiments also need uv sync --extra encoder --extra geo.

Apache License 2.0, see LICENSE; to cite, see CITATION.cff. For questions and suggestions, please open an issue on GitHub.

Release files for olmoearth-inferencex 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for olmoearth-inferencex 1.3.0
File Size Uploaded
olmoearth_inferencex-1.3.0.tar.gz 370.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for olmoearth-inferencex 1.3.0
File Interpreter ABI Platform
olmoearth_inferencex-1.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 744.4 kB

Release files / olmoearth_inferencex-1.3.0.tar.gz

Download URL olmoearth_inferencex-1.3.0.tar.gz
Size 370.7 kB
Tags Source
SHA-256 checksum
How to use checksums
505bacd6a357d3cc20947e008f6a542742cd0866b8c53020f38c02b3507c4538
BLAKE2b-256 checksum
How to use checksums
587096d4b0e54087cc24e5904c1d6138a8d88b7667ec912568f10bea5d5451f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / olmoearth_inferencex-1.3.0-py3-none-any.whl

Download URL olmoearth_inferencex-1.3.0-py3-none-any.whl
Size 373.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ab5d61cd2445332ddf879d89ec1aa2de02416004c97e19faebf39a7948059e75
BLAKE2b-256 checksum
How to use checksums
2ee3ce7be7432c3fd10b63596f5dac397877c856583fb993aa6b41df5249e903
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

1.3.1

2 release files

This release

1.3.0 This release

2 release files

1.2.0

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page