This repository is deprecated in favor of https://github.com/TEOS-10/GSW-Python, both packages will install a gsw module that should be virtually identical to use. However, python-gsw is a pure python of the 48-terms equation, while GSW-Python is a c-wrapped alternative for the latest 72-term equation.
June 24, 2017 · View on GitHub
python gsw
This python module is being replaced by a new implementation:
GSW-Python <https://github.com/TEOS-10/GSW-Python>__, introduced
on April 22, 2017.
.. image:: http://img.shields.io/pypi/v/gsw.svg?style=flat :target: https://pypi.python.org/pypi/gsw :alt: Version_status .. image:: http://img.shields.io/travis/TEOS-10/python-gsw/master.svg?style=flat :target: https://travis-ci.org/TEOS-10/python-gsw :alt: Build_status .. image:: http://img.shields.io/badge/license-MIT-blue.svg?style=flat :target: https://github.com/TEOS-10/python-gsw/blob/master/LICENSE.txt :alt: license
Python implementation of the Thermodynamic Equation Of Seawater - 2010 (TEOS-10 <http://www.teos-10.org/>__)
This module is a Python alternative to the GSW-Matlab 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 GSW-Matlab code.
Caveats
~~~~~~~
- This python module is incomplete and should be used with caution.
- The database used in ``_delta_SA`` comes from the GSW-Matlab
version.