Awesome
Awesome Open Atmospheric, Ocean, and Climate Science
Atmospheric, ocean, and climate science are awesome.
This is a curated list of open source software packages that make our lives as scientists, hackers and data wranglers easier or just more awesome.
This list is intended to be the fluid-earth counterpart of
awesome open geoscience,
although there is inevitably some overlap.
It is not just climate science! We use the word "climate" in the repo name just as shorthand for the fluid part of the earth.
Packages from atmospheric science, oceanography, climate science, and hydrology are all welcome.
In accordance with the awesome manifesto,
we add awesome repositories. We are wide open to contributions of course!
Don't hesitate to add your favorite packages by making a [pull request]
Contents
Software
Awesome software projects sub-categorized by focus.
General Purpose
While packages are not technically specific to AOCH science, they are so essential for scientific workflows that we can't not include them
- Pandas - Data structures and computational tools for working with tabular datasets
- Xarray - Data structures and computational tools for multidimensional arrays, inspired by netCDF data model
- Numpy - NumPy is a library for the Python programming language, adding support for large, multi-dimensional arrays and matrices, along with a large collection of high-level mathematical functions to operate on these arrays.
- Matplotlib - Matplotlib is a comprehensive library for creating static, animated, and interactive visualizations in Python. Several other libraries, including many mentioned in the lists below, use Matplotlib by default under the hood for creating data visualizations.
Frameworks
- Iris - Expressive analysis and visualization of multi-dimensional datasets based on the CF conventions
- CDMS - Object-oriented data management system for multidimensional, gridded data used in climate analysis and simulation
Meteorology
- MetPy - Collection of tools for reading, visualizing, and performing calculations with weather data
- windspharm - Spherical harmonic wind analysis
- wrf-python - A collection of diagnostic and interpolation routines for use with output of the Weather Research and Forecasting (WRF-ARW) Model
Oceanography
- GSW-Python - Thermodynamic equation of state for seawater
- WAVEWATCH III - NOAA's Ocean wave model
- UMWM - University of Miami's wave model
- rnoaa - An R interface to many NOAA data sources
- pyoos - A Python library for collecting Met/Ocean observations
- PyCO2SYS - A Python toolbox for solving the marine carbonate system and calculating related seawater properties
Climate
- climlab - Process-oriented climate modeling
- aospy - Automated analysis and management of gridded climate data
- Oocgcm - Analysis of large gridded geophysical datasets
- Pangaea - xarray extension for gridded land surface & weather model output
- xgcm - Extends the xarray data model to understand finite volume grid cells (common in General Circulation Models) and provides interpolation and difference operations for such grids
- OpenClimateGIS - Geospatial manipulation, subsetting, computation, and translation of spatiotemporal climate data
- climpred – xarray wrapper for analysis of ensemble forecast models for climate prediction
- pyOWM - PyOWM is a client Python wrapper library for OpenWeatherMap (OWM) web APIs
Remote Sensing
- SatPy - Read and manipulate meteorological remote sensing data and write it to various image and data file formats
- Open Data Cube - Analysis toolkit for continental scale Earth Observation data from satellites
- Earthdata Search - User interface for searching against the CMR (Common Metadata Repository). Supports data download, visualization, and subsetting in some cases.
- Sentinelsat - Search and download data from the European Copernicus Sentinel satellites
Glaciology
- OGGM - Open Global Glacier Model
Spatiotemporal Statistics
- EOFs - EOF analysis
- rasterstats - summarizing geospatial raster datasets based on vector geometries
Regridding
- xESMF - Regridding for numpy and Xarray datasets based on the Earth Systems Modeling Framework (ESMF) library
- Pyresample - Resample/reproject earth observing satellite data
GIS
- geopandas - Spatial GIS operations on geometric types.
- salem - Adds geolocalised subsetting, masking, and plotting operations to xarray's data structures via accessors
- Regionmask - plotting and creation of masks of spatial regions
- xshape - Tools for working with shapefiles, topographies, and polygons in xarray
- Collocate - Collocate xarray trajectories in arbitrary physical dimensions
- QGIS - GIS platform to visualize, manage, edit, analyse data, and compose printable maps
- GeoPHP - The world's most popular geospatial library for PHP that works with WKT (including EWKT), WKB (including EWKB), GeoJSON, KML, GPX, GeoRSS and more
Data Storage
- netCDF - NetCDF (Network Common Data Form) is a set of interfaces for array-oriented data access and a freely distributed collection of data access libraries for C, Fortran, C++, Java, Python, and other languages
- HDF5 - HDF5 is a high-performance data management data storage format. HDF interfaces are available in C, Fortran, C++, Java, Python, and other languages
- Zarr - chunked, compressed, N-dimensional arrays.
- xmitgcm - Read MITgcm binary MDS files into xarray data structures.
- xbpch - Xarray interface for bpch files
- PyGDX - Access data stored in GAMS Data eXchange (GDX) files
- rasterio - Reads and writes GeoTIFF and provides a Python API based on Numpy N-dimensional arrays and GeoJSON
- netcdf4-python - Python/numpy interface to the netCDF C library
Simulation
- Do we list all the open source climate model codes? Are they awesome enough?
- xarray-simlab - xarray extension for computer model simulations
Visualization
-
PyViz - A coordinated effort to make data visualization in Python easier to use, easier to learn, and more powerful. Sub-components include:
- HoloViews - Library designed to make data analysis and visualization seamless and simple
- GeoViews - Library that makes it easy to explore and visualize geographical, meteorological, and oceanographic datasets, such as those used in weather, climate, and remote sensing research
- Datashader - graphics pipeline system for creating meaningful representations of large datasets quickly and flexibly
- Panel - Create custom interactive web apps and dashboards by connecting user-defined widgets to plots, images, tables, or text
- hvPlot - A high-level plotting API for the PyData ecosystem built on HoloViews
-
EarthSim - Tools for working with and visualizing environmental simulations
-
Cartopy - Easy cartographic (maps) data visualization.
-
Geoviews - Explore and visualize geographic data using HoloViews.
Data Repositories
- Quantarctica - user-configurable QGIS basemap for Antarctica with high-quality, peer-reviewed, free and open Antarctic scientific data
- Common Metadata Repository - Search API for NASA's remote-sensed earth science metadata
- UCI Machine Learning Repository – Popular hub for machine learning datasets, featuring "physical sciences" data on air quality, ozone level detection, greenhouse gas concentrations, aquatic toxicity, and more
- National Data Buoy Center - The premier source of meteorological and oceanographic measurements for the marine environment.
Tutorials
Cheat Sheets
Miscellaneous
How to Contribute
Contributions welcome! Read the contribution guidelines first
License
To the extent possible under law, all contributors have waived all copyright and
related or neighboring rights to this work