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; 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. 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.8.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.8.0.tar.gz | 479.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| olmoearth_inferencex-1.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 964.3 kB
Release files / olmoearth_inferencex-1.8.0.tar.gz
| Download URL | olmoearth_inferencex-1.8.0.tar.gz |
|---|---|
| Size | 479.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e68135a1e3672d8bc90669266623dfacc053409edced261d38f9bf377f21ce31
|
|
BLAKE2b-256 checksum How to use checksums |
cfb51ee68fad7abc98199af1b206b6c9fed9fc72530e2e5ae55c2c2d054c0a25
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","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.8.0-py3-none-any.whl
| Download URL | olmoearth_inferencex-1.8.0-py3-none-any.whl |
|---|---|
| Size | 485.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
12d8ea3414569bb2ae81f81896bb13780a4334bcc2083d026f2e71aa52ba8989
|
|
BLAKE2b-256 checksum How to use checksums |
bbd63ccab15f3891e6076e5fbdd7e03ca18fc9673a7dd6ac73c85285a19ec512
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","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}
|