🛰️ VisuSat project :
VisuSat is a Python toolkit for visualising, handling and processing satellite and oceanographic data, with dedicated pipelines for :
- EUMETSAT Data Store & Data Tailor
- Copernicus Marine Service (CMEMS)
It provides high-level wrappers around eumdac, copernicusmarine, xarray,
and advanced visualisation utilities using cartopy and matplotlib.
📘 Full documentation: https://visusat.readthedocs.io/en/latest/
🌍 Examples of Visualisations :
🌦️ EUMETSAT Data Store - AMVs (Atmospheric Motion Vectors)
Derived from MTG-FCI Level 2 wind products :
📽️ Animation from MTG-FCI L1c products
Effective radiance from Visible 0.6µm channel, over Western Europe, between 12UTC and 16UTC the 22/10/2025. Product : FCI L1c High Resolution Image Data - MTG
The 0.6 µm visible channel of MTG FCI is a solar-reflectance channel that is sensitive to surface albedo, clouds (primarily their upper layers), and aerosols. Oceanic and continental surfaces tend to absorb most of the incoming solar radiation, leading to low radiances (dark tones), whereas clouds and aerosols reflect sunlight efficiently, resulting in high radiances (bright tones). In this image, the Benjamin depression is visible over the Atlantic Ocean and is characterized by a vortex-shaped pattern of enhanced radiances associated with thick cloud structures.
🌊 Copernicus Marine Service
Allows to download and visualize available datasets from Copernicus Marine datastore (https://data.marine.copernicus.eu/products).
Example of the the Sea Level Anomaly (in meter) from an aggregate of all available satellites data into Global Ocean Gridded Level4 product (link) :
🌐 Global Ocean Gridded Sea Level Anomaly (L4)
Product: SEALEVEL_GLO_PHY_L4_NRT_008_046
🌀 Global Ocean Physics (Mercator Ocean)
Hourly Sea Water Potential Temperature —
Product: GLOBAL_ANALYSISFORECAST_PHY_001_024
🚀 Installation :
VisuSat is available on PyPI:
pip install visusat
For devellopment :
git clone https://github.com/nsasso56-cell/VisuSat
cd VisuSat
pip install -e .
🔧 Upgrade VisuSat
pip install --upgrade visusat
💡 Quick Start Examples
Here is a minimal example showing how to download and plot a Copernicus Marine dataset:
from visusat import copernicus
request = copernicus.CopernicusRequest(
dataset_id="cmems_obs-sl_glo_phy-ssh_nrt_allsat-l4-duacs-0.125deg_P1D",
variables=["sla", "err_sla"],
minimum_longitude=1,
maximum_longitude=359,
minimum_latitude=-70,
maximum_latitude=80,
start_datetime="2025-10-22T00:00:00",
end_datetime="2025-10-22T00:00:00",
output_filename="duacs_sla.nc",
)
ds = copernicus.load_dataset(request, force=False)
# Plot all fields
copernicus.plot_fields(request, ds)
# Plot surface currents
copernicus.plot_currents(request, ds, vectors = False)
More examples are available in the examples/ folder.
🛠️ Features
- High-level wrappers for Copernicus Marine API
- Automation of EUMETSAT Data Tailor workflows
- Built-in plotting functions (AMVs, radiances, currents…)
- Utilities for generating animated visualizations of satellite data.
- Dataset registry and metadata helpers
- Strong logging system
- Full Sphinx documentation (ReadTheDocs)
📁 Project Structure
VisuSat/
├── pyproject.toml
├── README.md
├── src/
│ └── visusat/
│ ├── copernicus.py
│ ├── eumetsat.py
│ ├── utils.py
│ ├── plotting.py
│ └── eumetsat_products_registry.py
├── docs/
│ └── source/
├── examples/
│ ├── demo_copernicus_globmodel.py
│ ├── demo_eumetsat_datatailor.py
│ ├── demo_eumetsat_animation.py
│ └── images/
└── data/
├── copernicus/
└── eumetsat/
📬 Contact
Author : Nicolas SASSO.
- e-mail : n.sasso56@gmail.com
- LinkedIn : linkedin.com/in/nicolas-sasso-6356ab172
📄 License
Distributed under the MIT License.
Metadata
Release files for visusat 0.4.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| visusat-0.4.2.tar.gz | 1.5 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| visusat-0.4.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.5 MB
Release files / visusat-0.4.2.tar.gz
| Download URL | visusat-0.4.2.tar.gz |
|---|---|
| Size | 1.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
06f4a3b4f6203e9c36c1030d9ab15f158275df4510220bf7d41a5ecc9e5782b7
|
|
BLAKE2b-256 checksum How to use checksums |
0d191fa7228ea2c7528663845efb0c6501d139311ebfad8ebdadf6fb934ada06
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.24
|
Release files / visusat-0.4.2-py3-none-any.whl
| Download URL | visusat-0.4.2-py3-none-any.whl |
|---|---|
| Size | 27.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
39bf995e5782079ca6ab9636672da0a42cfe62394324819e99ae8db9ecd9ae6e
|
|
BLAKE2b-256 checksum How to use checksums |
b175b4d8205dd0846b860fd130ed4b35280fd2c25565b040addd9cbfbdb0da13
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.24
|