Skip to main content

utilities for meteorological calculations

Project description

Build Documentation Coverage PyPi

This package provides routines for meteorological calculations.

Principles

Numbers are treated in SI units (except for some documented exceptions).

Routines are tested to work with numpy.ndarray and floats as input but may work with lists or other data types as well.

Everything is tested and supposed to return correct values. Warnings are given if invalid values occur. Unphysical values are masked with NaN.

Capabilities

Currently, meteorology can only do very basic things:

  • converting between degrees Celsius and Kelvin

from meteorology.temperature import cel2kel, kel2cel
cel2kel( np.array( [0,  -20.4,   30.1] ) )
# array([ 273.15,  252.75,  303.25])
kel2cel( np.array( [0, 273.15, 345.54] ) )
# array([-273.15,    0.  ,   72.39])
  • converting between radians to degrees

from meteorology.wind import rad2deg, deg2rad
rad2deg(np.array([np.pi,2*np.pi,np.pi/4]))
# array([ 180.,  360.,   45. ])
deg2rad(np.array([360,45,135]))
# array([ 6.28318531,  0.78539816,  2.35619449 ])
  • calculating the wind direction

from meteorology.wind import wind_vector_angle
# meteorological wind direction angle (0° = North, 90° = East, ...)
rad2deg( wind_vector_angle(u = -1, v = 0) ) # easterly wind
# 90.0
rad2deg( wind_vector_angle(u = 1, v = 1) ) # south-westerly wind
# 225.0
  • calculating the saturation water vapour pressure at a given temperature

from meteorology.humidity import saturation_water_vapour_pressure as e_s
e_s( np.array( [273.15,  250.1, 320 ] ) )
# array([   611.2       ,     76.7876872 ,  10532.91207709])
  • calculating the total blackbody radiation at a given temperature

from meteorology.radiation import blackbody_radiation
blackbody_radiation( np.array( [0, 273.15,  250.1, 1000 ] ) )
# array([     0.  ,    315.6574093 ,    221.85332157,  56703.67 ])
  • adjusting a radiation temperature to another emissivity:

from meteorology.radiation import \
    adjust_radiation_temperature_to_other_emissivity as adjtemp
adjtemp( T=300, emissivity_old=0.9, emissivity_new=0.8, T_ambient=285 )
# 293.92070228214675

But stay tuned! More is about to come!

Install

This package is on PyPi. To install meteorology, run

pip install --user meteorology

Documentation

You can find detailed documentation of this package here on on Gitlab.

Development

The following might only be interesting for developers

Local installation

Install this module from the repository root via pip:

# local user library under ~/.local
pip3 install --user .
# in "editable" mode
pip3 install --user -e .

Testing

# Run all tests
./setup.py test
# install coverage
pip3 install --user coveralls
# Run all tests and determine a test coverage
make coverage

Versioning

  • make increase-patch to increase the patch version number

  • make increase-minor to increase the minor version number

  • make increase-major to increase the major version number

Project details


Download files

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

Source Distribution

meteorology-0.0.10.tar.gz (6.8 kB view details)

Uploaded Source

File details

Details for the file meteorology-0.0.10.tar.gz.

File metadata

  • Download URL: meteorology-0.0.10.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for meteorology-0.0.10.tar.gz
Algorithm Hash digest
SHA256 7358a576a90b5ec5e92843515ab7affea93dea4ac95f6ac630387a67510f00a1
MD5 4ccc985ef305ae07b982bab7d302aee3
BLAKE2b-256 a0261e5febf16f5545157d1c41b8a69d60c4c94cd4241c7196abef72bf848cff

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page