If you'd like to see a package added to this list, check whether it's within scope and then submit an issue or pull request at the GitHub repository.
As discussed in the overview of the PyAOS stack, most Python users in the atmosphere and ocean sciences base their data analysis around one of the following all-purpose packages (listed in order of popularity/usage):
- xarray (supported by the PyData community)
- iris (supported by the SciTools project)
- cf-python (supported by the NCAS-CMS)
- PyGeode
There are then a myriad of packages available for general geospatial and specific AOS analysis tasks, many of which extend the functionality of the all-purpose PyAOS packages and/or the more generic data science packages such as NumPy and matplotlib.
The package listing below captures Python packages that are unique to the atmosphere and ocean sciences. The focus is on packages that are under active development and/or maintenance, have a non-trivial user-base (i.e. more users than just the author/s) and offer unique functionality. Check out the awesome-spatial, awesome-open-geoscience and awesome-earth-artificial-intelligence lists for more general (i.e. not specific to AOS) packages that might be of use. There is some overlap between the scope of the list below and the awesome-coastal, awesome-open-climate-science and xarray related projects lists.
General utilities
GeoCAT-comp (GeoCAT project)
Computational routines from the NCAR Command Language (NCL).
PyFerret (PMEL)
Quick exploration of oceanographic data.
xCDAT (Lawrence Livermore National Laboratory)
An extension of xarray for climate data analysis on structured grids.
Serves as a spiritual successor to the Community Data Analysis Tools (CDAT) library.
Data access
acccmip6 (Taufiq Hassan Mozumder)
Access and search the CMIP6 database in real time.
CliMetLab (ECMWF)
Simplified access to climate and meteorological datasets.
Siphon (UniData)
Utilities for downloading data from remote data services.
Visualisation
Cartopy (SciTools project)
Geographic map projections for plotting.
cf-plot
cf-python related functions for common contour, vector and line plots used in climate research.
cmocean (Kristen Thyng)
Beautiful colormaps for oceanography. See xcmocean for xarray integration.
GeoCAT-viz (GeoCAT project)
Visualization routines from the NCAR Command Language (NCL).
Examples at GeoCAT-examples.
geoviews (HoloViz project)
Interactive exploration and visualisation of geographical, meteorological, and oceanographic datasets.
xmovie (Julius Busecke)
Movies from xarray objects.
Meteorology
ACT (ARM User Facility)
Toolkit for working with atmospheric time-series datasets of varying dimensions.
MetPy (UniData)
Tools for reading, visualising and performing calculations with weather data.
Py-ART (ARM User Facility)
Weather radar algorithms and utilities.
PyDDA
Direct data assimilation framework for wind retrievals.
PyDSD (Joseph Hardin and Nick Guy)
Utilities for working with disdrometer data.
pyPI (Daniel Gilford)
Tropical cyclone potential intensity calculations.
Satpy (PyTroll community)
Reading, manipulating, and writing data from remote-sensing earth-observing meteorological satellite instruments.
thermofeel (ECMWF)
A library to calculate human thermal comfort indexes.
tobac
Tracking and object-based analysis of clouds.
windspharm (Andrew Dawson)
Computations on global wind fields in spherical geometry.
xcape
Fast convective parameters for numpy, dask, and xarray.
pyet (Matevz Vremec & Raoul Collenteur)
Estimation of potential evapotranspiration.
Oceanography
argopy (Guillaume Maze)
Argo data access, visualisation and manipulation.
CloudDrift (University of Miami)
A platform for accelerating research with Lagrangian climate data.
glidertools
Toolbox for processing underwater glider data.
GSW-Python
Python implementation of the Thermodynamic Equation of Seawater 2010 (TEOS-10).
See gsw-xarray for a wrapper that adds CF attributes to xarray outputs.
mixsea (Jesse Cusack & Gunnar Voet)
Turbulence parameter estimation from fine scale oceanographic data.
neutralocean (Geoff Stanley)
Calculate oceanic neutral surfaces and related things.
OceanParcels
Customisable particle tracking simulations using output from Ocean Circulation models.
ocetrac (Hillary Scannell)
Label and track the evolution of unique geospatial features in gridded datasets.
PyCO2SYS (Matthew Humphreys et al.)
Marine carbonate system solver.
Climate
climate-indices (James Adams)
Various climate index algorithms relating to precipitation and temperature.
climpred (Riley Brady and Aaron Spring)
Verification of weather and climate forecasts.
icclim (CERFACS GLOBC)
Index Calculation for CLIMate.
xclim (Ouranos)
Functions to compute climate indices from observations or model simulations.
xmip (Julius Busecke)
Tools for cleaning/standardization of the metadata associated with CMIP6 data files.
Data reduction (temporal or spatial)
climtas (Scott Wales)
Climtas is a package for working with large climate analyses.
Focuses on the time domain with custom functions for Xarray and Dask data.
clisops (ROOCS)
Climate simulation operations (temporal and spatial subsetting and averaging of xarray data sets).
Related to daops.
xeofs (Niclas Rieger)
EOF analysis in Python with xarray.
eofs (Andrew Dawson)
EOF analysis of spatial-temporal data.
regionmask (Mathias Hauser)
Masking of of geographic regions.
Spatial grids
ESMPy
Interface to the Earth System Modeling Framework (ESMF) regridding utility.
GCM-Filters (Ocean Transport and Eddy Energy Climate Process Team)
Diffusion-based spatial filtering of gridded data.
gridded (NOAA-ORR-ERD)
A single way to work with results from any hydrodynamic/oceanographic model regardless of what type of grid it was computed on.
pyproj
Interface to PROJ (cartographic projections and coordinate transformations library).
pyResample (PyTroll community)
Resampling geospatial image data.
Uxarray (Project Raijin)
Reading and recognizing unstructured grid models.
xarray-regrid
Extends xarray with regridding methods, making it possible to easily and effiently regrid between two rectilinear grids.
xESMF (Jiawei Zhuang)
Universal regridder for geospatial data.
Modeling
climlab (Brian Rose)
Process-oriented climate modeling.
climt (Joy Monteiro et al)
Climate modelling and diagnostics toolkit.
PyCLES (Kyle Pressel and Colleen Kaul)
Atmospheric large eddy simulation infrastructure designed to simulate boundary layer clouds and deep convection.
pyrcel (Daniel Rothenberg)
Adiabatic cloud parcel model for studying aerosol activation.
scores (Australian Bureau of Meteorology)
Verification and evaluation for forecasts and models.
wrf-python (GeoCAT project)
A collection of diagnostic and interpolation routines for use with output from the Weather Research and Forecasting (WRF-ARW) Model.
xgcm
General circulation model post-processing with xarray.
xskillscore
Metrics for verifying model forecasts.
xWRF
Interface for working with the Weather Research and Forecasting (WRF) model output in Xarray.
Climate and Forecast (CF) metadata conventions
cf-checker (CEDA)
Check compliance of netCDF files against the CF Convention.
cfdm (NCAS-CMS)
Implements the data model of the CF metadata conventions.
cf-xarray (Deepak Cherian)
Lightweight accessor for xarray objects that interprets CF attributes.
compliance-checker (IOOS)
Check compliance of netCDF files against CF, ACDD, and IOOS Metadata Profile file standards.
Workflow management
aospy (Spencer Hill)
Automated climate data analysis and management.
cmdline-provenance (Damien Irving)
For keeping track of your data processing steps.