olmoearth_inferenceX
olmoearth_inferenceX checks an Earth-observation map after inference: where it is likely wrong, how wrong it is, which part you can trust, and which of two maps is more accurate. It was built to check OlmoEarth's inference outputs. It reads only the per-class scores a model writes out, never runs the model and needs no torch, so it works as well on other models' maps and on published products that ship a confidence layer.
Documentation: https://olmoearth-inferencex.readthedocs.io/
Install
pip install "olmoearth-inferencex[geo]" # Python 3.11 to 3.13; without [geo] it reads .npy only
oe-inferencex demo # a real Dynamic World tile; needs no data
Usage
| Question | Commands | Labels |
|---|---|---|
| Where do I look first? | assess scores.tif --out audit |
none |
| How wrong is the map? | sample scores.tif --budget 300 --design random --out to_label.csv, fill in wrong, then estimate to_label.csv |
about 300 random windows |
| Which part can I trust? | certify to_label.csv --alpha 0.05 |
the same windows |
| Which of two maps is more accurate? | sample a.tif --other b.tif --budget 100 --out pairs.csv, fill in reference_class, then estimate pairs.csv |
about 100, where the maps differ |
| Where do two maps differ? | compare a.tif b.tif --out diff |
none |
Every command starts with oe-inferencex. The input is the model's per-class scores before the argmax, as a GeoTIFF
or a .npy array of shape (C, H, W). plan says how many labels a question needs, decide turns a result into
yes, no or undetermined, and --help lists each command's options.
Quick start runs each one on a test map.
Limits: without labels it says where to look, not how wrong the map is. On the one test of a deployed model at a new
year and place, graded at the plots of an independent random sample that had imagery, confidence ranked the errors
with an AUROC of 0.64 under a one-to-one crosswalk, below the preregistered 0.70; that run cannot say whether the year,
the place, the legend or the move from expert-placed points caused it. A model run on inputs unlike its training data can be confident and wrong
(--condition treats each input condition on its own). Every interval and certified zone assumes the labels are
right, and labelling more and rerunning is a second test, except on a sequential sample.
Use from an agent
oe-inferencex mcp is a local MCP server; nothing is hosted. With uv installed:
claude mcp add --scope user oe-inferencex -- uvx --from "olmoearth-inferencex[geo,mcp]" oe-inferencex mcp
Use a strong model: in a pilot, Claude Sonnet kept the tools' limits and Claude Haiku often dropped them. To try it, write the demo tile into an empty folder, start the agent there and ask:
uvx --from olmoearth-inferencex oe-inferencex demo
Where should I look first in oe_inferencex_demo/sample_probabilities.npy? Use windows of 1 pixel, and grade the order against oe_inferencex_demo/sample_truth.npy.
Evidence
Tested on linear probes of sixteen encoders over the tasks of Ai2's embedding suite, and on seven published land-cover products against six reference samples, with the reference points standing in for the map. On a deployed OlmoEarth model, a re-run of Ai2's configuration for its fine-tuned AWF model, the confidence ranked the map's errors with an AUROC of 0.85 at Ai2's expert-placed validation points but 0.64 on 2017 imagery at the plots of an independent random sample that had imagery (one-to-one crosswalk), below the preregistered 0.70; the record's own fine-tune of the task on OlmoEarth v1.2 gave the same verdicts (0.81 and 0.64). On a second task, Ai2's Forest Loss Driver model graded at 2026 MapBiomas Alerta alerts in the Amazon, the confidence ranked the disagreements at 0.77, the preregistered bar on its point value (the interval reaches 0.68), but not the confident confusions between agriculture and mining. The technical report and the documentation give the results and their limits.
Development and license
Clone the repository, then uv sync and uv run pytest; the experiments also need uv sync --extra encoder --extra geo.
Apache License 2.0 (LICENSE);
cite with CITATION.cff;
questions in GitHub issues.
Metadata
Release files for olmoearth-inferencex 1.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| olmoearth_inferencex-1.10.0.tar.gz | 502.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| olmoearth_inferencex-1.10.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.0 MB
Release files / olmoearth_inferencex-1.10.0.tar.gz
| Download URL | olmoearth_inferencex-1.10.0.tar.gz |
|---|---|
| Size | 502.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ba5a041d0be2487d11b1c36037f505d51b0552ec6bf643efa54b29e754fe69c7
|
|
BLAKE2b-256 checksum How to use checksums |
5b65b8345442e089bb67a755fa97322042f36ba234617cfb0c7527502d2115bc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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.10.0-py3-none-any.whl
| Download URL | olmoearth_inferencex-1.10.0-py3-none-any.whl |
|---|---|
| Size | 507.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9ae974f3ecd20daf75913cdb5621c49f0788f3439bf6fd208ded9073f5e0ca67
|
|
BLAKE2b-256 checksum How to use checksums |
333792ae64e0a3064711947c4ba97bed107cccbbf527cc70403c0f44f3b79465
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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}
|