Skip to main content
Help us improve Python packaging – donate today!

Gibbs SeaWater Oceanographic Package of TEOS-10

Project Description

python gsw
==========

(This python module is incomplete and should be used with caution!)

.. image:: https://badge.fury.io/py/gsw.png
:target: http://badge.fury.io/py/gsw
.. image:: https://api.travis-ci.org/ocefpaf/python-gsw.png?branch=master
:target: https://travis-ci.org/ocefpaf/python-gsw
.. image:: http://bottlepy.org/docs/dev/_static/Gittip.png
:target: https://www.gittip.com/ocefpaf/

Python implementation of the Thermodynamic Equation Of Seawater - 2010 (`TEOS-10 <http://www.teos-10.org/>`__)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This module is an python alternative to the gsw MatlabTM toolbox. The
table below shows some function names in the gibbs library and the
corresponding function names in the seawater library.

TEOS-10 vs. EOS-80
~~~~~~~~~~~~~~~~~~

+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| **Variable** | **SeaWater (EOS 80)** | **Gibbs SeaWater (GSW TEOS 10)** |
+===================================================================+==================================================================+==============================================================+
| Absolute Salinity | NA | gsw.SA\_from\_SP(SP,p,long,lat) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| Conservative Temperature | NA | gsw.CT\_from\_t(SA,t,p) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| density (i.e. in situ density) | sw.dens(SP,t,p) | gsw.rho\_CT(SA,CT,p), or gsw.rho(SA,t,p) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| potential density | sw.pden(SP,t,p,pr) | gsw.rho\_CT(SA,CT,pr) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| potential temperature | sw.ptmp(SP,t,p,pr) | gsw.pt\_from\_t(SA,t,p,pr) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| :math:`\sigma_0`, using :math:`\theta_o` = sw.ptmp(SP,t,p,0) | sw.dens(SP, :math:`\theta_o`, 0) -1000 kg m\ :math:`^{-3}` | gsw.sigma0\_CT(SA,CT) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| :math:`\sigma_2`, using :math:`\theta_2` = sw.ptmp(SP,t,p,2000) | sw.dens(SP,\ :math:`\theta_2`, 2000) -1000 kg m\ :math:`^{-3}` | gsw.sigma2\_CT(SA,CT) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| :math:`\sigma_4`, using :math:`\theta_4` = sw.ptmp(SP,t,p,2000) | sw.dens(SP,\ :math:`\theta_4`, 4000) -1000 kg m\ :math:`^{-3}` | gsw.sigma2\_CT(SA,CT) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| specific volume anomaly | sw.svan(SP,t,p) | gsw.specvol\_anom\_CT(SA,CT,p) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| dynamic height anomaly | -sw.gpan(SP,t,p) | gsw.geo\_strf\_dyn\_height(SA,CT,p,delta\_p,interp\_style) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| geostrophic velocity | sw.gvel(ga,lat,long) | gsw.geostrophic\_velocity(geo\_str,long,lat,p) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| N\ :math:`^2` | sw.bfrq(SP,t,p,lat) | gsw.Nsquared(SA,CT,p,lat) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| pressure from height (SW uses depth, not height) | sw.pres(-z,lat) | gsw.p\_from\_z(z,lat) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| height from pressure (SW outputs depth, not height) | z = -sw.dpth(p,lat) | gsw.z\_from\_p(p,lat) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| in situ temperature from pt | sw.temp(SP,pt,p,pr) | gsw.pt\_from\_t(SA,pt,pr,p) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| sound speed | sw.svel(SP,t,p) | gsw.sound\_speed(SA,t,p) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| isobaric heat capacity | sw.cp(SP,t,p) | gsw.cp(SA,t,p) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| adiabatic lapse rate\* | sw.adtg(SP,t,p) | gsw.adiabatic\_lapse\_rate(SA,t,p) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| SP from cndr, (PSS 78) | sw.salt(cndr,t,p) | gsw.SP\_from\_cndr(cndr,t,p) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| cndr from SP, (PSS 78) | sw.cndr(SP,t,p) | gsw.cndr\_from\_SP(SP,t,p) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| distance | sw.dist(lat,long,units) | gsw.distance(long,lat,p) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| gravitational acceleration | sw.g(lat,z) | gsw.grav(lat,p) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+
| Coriolis parameter | sw.f(lat) | gsw.f(lat) |
+-------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+

Note that the SW and GSW functions output the adiabatic lapse rate in
different units, being K (dbar):math:`^{-1}` and K Pa\ :math:`^{-1}`
respectively.

Authors
~~~~~~~

- Bjørn Ådlandsvik
- Eric Firing
- Filipe Fernandes

Thanks
~~~~~~

- Bjørn Ådlandsvik - Testing unit and several bug fixes.
- Eric Firing - Support for masked arrays, re-write of *delta*\ SA.
- Trevor J. McDougall (and all of SCOR/IAPSO WG127) for making
available the Matlab version of this software.

Acknowledgments
~~~~~~~~~~~~~~~

- SCOR/IAPSO WG127 for the original MatlabTM code.

Caveats
~~~~~~~

- This python module is incomplete and should be used with caution.
- The database used in ``_delta_SA`` comes from the MatlabTM gsw
version.

Changelog
---------

Version 3.0.3

* Fixed NumPy 1.8.1 indexing bug.

Version 3.0

* New repository with TEOS-10 code (version 3 only).

Release history Release notifications

History Node

3.2.0

History Node

3.1.1

History Node

3.1.0

History Node

3.0.6

This version
History Node

3.0.3

History Node

3.0.2

History Node

3.0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
gsw-3.0.3.tar.gz (2.8 MB) Copy SHA256 hash SHA256 Source None Apr 8, 2014

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page