Check satellite imagery availability over any AOI by cloud cover — and find the data gaps
Project description
Clouds-Everywhere
Find out when cloud-free satellite imagery is available over your study area — and where the data gaps are.
You give it an area, a date range, and a cloud limit. It answers in plain language: which days, weeks, or months have usable imagery, and which tiles are missing.
Install
pip install clouds-everywhere
Or from source:
git clone https://github.com/mohammadanwarx/Clouds-Everywhere.git
cd Clouds-Everywhere
pip install -e .
Quick start
from clouds_everywhere import query
report = query(
aoi = "my_area.geojson", # bbox, polygon, GeoJSON, or shapefile
start_date = "2024-01-01",
end_date = "2024-02-29",
max_cloud = 20, # max cloud cover in %
group_by = "week", # "day" | "week" | "month"
satellites = ["sentinel2", "landsat"],
)
print(report)
Sentinel-2 - needs 9 tiles to fully cover your area
[OK] 8-14 Jan 2024 All tiles have usable imagery (15 images across 9 tiles)
[GAP] 15-21 Jan 2024 Data gap - some tiles missing (3/9 tiles; missing: 30SVJ, ...)
[--] 5-11 Feb 2024 No usable imagery
Summary: 3 fully-covered weeks, 5 with gaps, 1 empty (of 9 weeks)
Each period gets one of three statuses:
| Status | Meaning |
|---|---|
| available | every tile has at least one usable image |
| gap | some tiles have imagery, but at least one is missing |
| missing | no usable imagery at all |
Usable means cloud cover is at or below your threshold.
Your area, any format
The AOI can be any of these — the CRS is handled for you (everything is reprojected to WGS84 automatically):
- a bbox:
[minX, minY, maxX, maxY] - polygon coordinates:
[[lon, lat], ...] - a GeoJSON dict (
Feature,FeatureCollection, or geometry) - a file:
.geojson,.json,.shp, or.zip(zipped shapefile)
Tables and plots
report.to_dataframe() # one row per period per satellite
report.tile_dataframe() # one row per tile per period
report.available_periods() # fully covered periods
report.gap_periods() # periods with holes
from clouds_everywhere.viz import plot_availability_calendar
plot_availability_calendar(report) # green / amber / red calendar
Lower-level functions
search_images(...)— flat list of matching scenescheck_coverage(...)— tile coverage per dateviz.plot_coverage_heatmap,plot_cloud_timeline,plot_satellite_comparison
Demos
demo.ipynb— search and coverage basicsdemo2.ipynb— thequery()workflow and all plots
Tests
pytest
Fast and offline — all API calls are mocked.
Data sources
Sentinel-2 and Landsat from the Element84 Earth Search STAC API. MODIS from NASA CMR STAC.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file clouds_everywhere-0.1.0.tar.gz.
File metadata
- Download URL: clouds_everywhere-0.1.0.tar.gz
- Upload date:
- Size: 22.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14e8c8cf33ea947fb70261b8412940af6afc26bffd0ba294c96879f8d8964f89
|
|
| MD5 |
9fe9d95ff4ed81ae69a0c4c66e6fd59c
|
|
| BLAKE2b-256 |
609076bc3d59f578bb9724fd288e4efe1aa9d2b91fcd130efcd6a57e42913f05
|
File details
Details for the file clouds_everywhere-0.1.0-py3-none-any.whl.
File metadata
- Download URL: clouds_everywhere-0.1.0-py3-none-any.whl
- Upload date:
- Size: 21.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62af5806ba61c9f096f099d6b9bef64a7a9dbe0312adfe6f8900ea68126c42a5
|
|
| MD5 |
5aa6c901888d32791a584a7f9d908b83
|
|
| BLAKE2b-256 |
39c464c4f0c88e1b7f73f92c18859a8d3f03fde31a7cf51d7c4ae3e1d8265e5f
|