# SEA-PY: Python Tools for Oceanographic Analysis

## A collaborative effort to organize and distribute |

A collaborative effort to organize Python tools for the Oceanographic Community

## The bare minimum

- Python: Needs no introduction.
- IPython: An enhanced interactive Python shell.
- NumPy: Support for large, multi-dimensional arrays and matrices, along with a large library of high-level mathematical functions to operate on these arrays.
- SciPy: Library of algorithms and mathematical tools for the Python programming language.
- matplotlib: 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments.

## Data Acquisition

- Podaacpy: A python utility library for interacting with NASA JPL’s PO.DAAC and NASA’s OceanColor Web

## Time Series Tools

- UTide: UTide - A project (in its early development phase) to create a Python implementation of the Matlab-based UTide tidal analysis tools.
- ttide: A direct conversion of T_Tide to Python.
- pytides: Pytides is small Python package for the analysis and prediction of tides.
- tappy: Tidal analysis package.
- dateutil: Provides powerful extensions to the standard datetime module.
- PyWavelets: Wavelet transform module.
- wafo: Routines for statistical analysis and simulation of random waves and random loads.
- pandas: Cross-section and time series data analysis toolkit
- Currents: CODAS, Lowered ADCP

## Numerical Modeling Tools

- octant: Ocean C-grid model seTup and Analysis Toolkit. The toolkit contains general modeling tools for dealing with arrays, diagnosing standard properties, curvilinear grid generation, and interpolation. Specific tools are also included for ROMS and GETM.
- pyroms: Collection of tools to help with input and output files from the Regional Ocean Modeling System (ROMS).
- PySeidon: Suite of tools for the tidal energy community and FVCOM users
- PyFVCOM: PyFVCOM is a collection of various tools and utilities which can be used to extract, analyse and plot input and output files from FVCOM.
- TracPy: Fortran core of Tracmass + Python wrapping around the outside. TracPy is a toolbox for Lagrangian tracking on top of staggered C grid model output, and is currently set up to use directly with ROMS.
- pygridgen: A Python interface to Pavel Sakov’s C-based Gridgen Orthogonal Grid Generation Package.
- okean: Ocean modelling and analysis tools.

## Mapping Tools

- basemap: Matplotlib Basemap Toolkit.
- cartopy: A library providing cartographic tools for python.
- folium: Python Data. Leaflet.js Maps.
- PySAL: Python Spatial Analysis Library.
- sci-wms: A Python WMS service for geospatial gridded data.

## Hydrographic Tools

- python-ctd: Tools to load hydrographic data as pandas DataFrame with some handy methods for data pre-processing and analysis.
- python-seawater: Python version of the CSIRO seawater toolbox (SEAWATER-3.3).
- python-gsw: A oceanographic toolbox of the International Thermodynamic Equation Of Seawater - 2010, (TEOS-10).
- pygsw: C-wrapped alternative to python-gsw.
- cbsyst: Python module for calculating carbon and boron solution chem.
- narwhal: Experimental tools to organize, analyze, and plot CTD data, including GSW wrappers.

## Data Interface Tools

- netcdf4-python: Python/numpy interface to netCDF
- python-blosc: Wrapper for the Blosc compressor.
- PyTables: Package for managing hierarchical datasets and designed to efficiently and easily cope with extremely large amounts of data.
- h5py: Interface to the HDF5 library.
- python-hdf4: Python-HDF4: Python interface to the NCSA HDF4 library.
- PyNIO/PyNGL: File input/output
- Pydap: Library implementing the Data Access Protocol.
- pygrib: python GRIB (editions 1 and 2) reader.

## Plotting (beyond matplotlib)

- mayavi: Scripting for 3D plotting.
- gnuplot-py: Package that interfaces to gnuplot, the popular open-source plotting program.
- PyNGL: Scientific visualization.
- ggplot: ggplot is a plotting system for Python based on R’s ggplot2 and the Grammar of Graphics. It is built for making professional looking, plots quickly with minimal code.
- bokeh: Bokeh is a Python interactive visualization library that targets modern web browsers for presentation.
- mpld3: The mpld3 project brings together Matplotlib, the popular Python-based graphing library, and D3js, the popular Javascript library for creating interactive data visualizations for the web.

## CDMs

- paegan: Processing and Analysis for Numerical Data.
- Iris: A Python library for Meteorology and Climatology

## Atmosphere

- atmqty: Methods to calculate atmospheric quantities (on the Earth) that are directly derivative (i.e. not requiring time integration or modeling) from standard state variables.
- airsea: Translation of the original AIR_SEA toolbox for Matlab.

## Climate

- PyClimate: Designed to accomplish some usual tasks needed during the analysis of climate variability. It provides functions to handle simple I/O operations, handling of COARDS-compliante netCDF files, EOF analysis, SVD and CCA analysis of coupled data sets, some linear digital filters, kernel based probability density function estimation and access to DCDFLIB.C library
- climpy: climpy module.
- CDAT: Climate Data Analysis Tools.
- ccc-gistemp: Reimplementation of GISTEMP in Python for clarity.

## Statistics

- statsmodels: Statistical computations and models for use with SciPy.
- scikit.learn: Module integrating classic machine learning algorithms in the tightly-knit world of scientific Python packages.
- RPy: Interface to the R Programming Language.
- pymc: Markov chain Monte Carlo for Python

## Miscellaneous Other Tools

- oceans: Misc functions for oceanographic data analysis.
- OWSLib: OWSLib is a Python package for client programming with Open Geospatial Consortium (OGC) web service (hence OWS) interface standards, and their related content models.
- pyoos: A Python library for collecting Met/Ocean observations.
- scitools: Contains many useful tools for scientific computing in Python. The package is built on top of other widely used packages such as NumPy, SciPy, ScientificPython, Matplotlib, Gnuplot, etc.
- uncertainties: Transparent calculations with uncertainties on the quantities involved (aka “error propagation”) ; fast calculation of derivatives.
- numexpr: Fast numerical array expression evaluator for Python and NumPy.
- Bottleneck: Fast NumPy array functions written in Cython.
- spyderlib: Spyder is the Scientific PYthon Development EnviRonment.
- SciPy scikits: Scipy Toolkits are independent and separately installable projects hosted under a common namespace. Packages that are distributed in this way are here (instead of in monolithic scipy) for at least one of three general reasons. Each of these reasons use the same high-level namespace (scikits).
- fwrap: Wraps FORTRAN code.
- gmpy: A C-coded Python extension module that wraps the GMP library to provide to Python code fast multiprecision arithmetic (integer, rational, and float), random number generation, advanced number-theoretical functions, and more.
- SymPy: Library for symbolic mathematics.
- PyEphem: Scientific-grade astronomical computations.
- Astropysics: Astrophysics utilities.
- biopython: Tools for biological computation written in Python.
- pytroll: Python modules for the reading, interpretation, and writing of weather satellite data.
- Topical Software: SciPy Topical Software.
- pyferret: Ferret is an interactive computer visualization and analysis environment designed to meet the needs of oceanographers and meteorologists.
- openptv: OpenPTV is an open source particle tracking velocimetry consortium providing software and assistance with the 3D-PTV experiments, including the field deployments for oceanographers, limnologists and meteorologits.

## Fun

- slocum: A tool for ocean passage planning.
- OceanSound: Get the music from oceancolor images, through MODIS satellite.