OmniCloudMask
State-of-the-art cloud and cloud shadow segmentation for high to moderate resolution satellite imagery.
Works with any imagery containing Red, Green, and NIR bands at 10-50 m resolution (and down to 5 m with recent model versions). Validated on Sentinel-2, Landsat 8, PlanetScope and Maxar imagery. See choosing a resolution for guidance on picking the right resolution for your data.
Documentation | Paper | Training Data Map | Podcast
Installation
pip install omnicloudmask
Or with uv, conda, or from source—see installation docs.
Quick Start
import numpy as np
from omnicloudmask import predict_from_array
# Input: (3, height, width) array with Red, Green, NIR bands
input_array = np.random.rand(3, 1024, 1024).astype(np.float32)
# Output: (1, height, width) mask
# Values: 0=Clear, 1=Thick Cloud, 2=Thin Cloud, 3=Cloud Shadow
mask = predict_from_array(input_array)
For a Sentinel-2 scene:
from pathlib import Path
from omnicloudmask import predict_from_load_func, load_s2
scene_paths = [Path("path/to/scene.SAFE")]
pred_paths = predict_from_load_func(scene_paths, load_s2)
For a dataset of same-sized image chips, run several chips per batch:
from omnicloudmask import predict_from_batch
# chips: (N, 3, 512, 512) array, output: (N, 1, 512, 512) masks
masks = predict_from_batch(chips, batch_size=16)
See the quickstart guide for more examples.
Example Notebooks
- Sentinel-2 from .SAFE
- Sentinel-2 via Planetary Computer
- HLS (Harmonized Landsat Sentinel)
- PlanetScope
- PlanetScope Hyperspectral
- Maxar
- Batch prediction for image datasets
Try in Colab
How it works
License
MIT License
Metadata
Release files for omnicloudmask 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 | Provenance | Actions |
|---|---|---|---|---|
| omnicloudmask-1.8.0.tar.gz | 67.3 kB | With provenance | Details for omnicloudmask-1.8.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| omnicloudmask-1.8.0-py3-none-any.whl | Python 3 | none | any | Details for omnicloudmask-1.8.0-py3-none-any.whl |
Total release size: 101.4 kB
Release files / omnicloudmask-1.8.0.tar.gz
| Download URL | omnicloudmask-1.8.0.tar.gz |
|---|---|
| Size | 67.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9a97256f6b27bff689dba9b5b4e95dc39af3ec1782acfb8a4518020a1da939a2
|
|
BLAKE2b-256 checksum How to use checksums |
7ca145b5d758b0811bee75c236262bc5ff00e5c12d9df4ed361c533aa1b4be97
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logRelease files / omnicloudmask-1.8.0-py3-none-any.whl
| Download URL | omnicloudmask-1.8.0-py3-none-any.whl |
|---|---|
| Size | 34.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e11143146ab57e6b186e07f358695d9c2bba05c06e59d8f1c5d69c875becea99
|
|
BLAKE2b-256 checksum How to use checksums |
3e21142abc94a8d82f5cc75b940acda8c77071e7e42ef305889494458ccd65fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logSecurity for omnicloudmask 1.8.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for omnicloudmask-1.8.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.