utilities for meteorological calculations

## Project description

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
# array([ 180.,  360.,   45. ])
# 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 ])
```
```from meteorology.radiation import \
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
```

Note

You might need to use pip3 or skip the --user for your setup.

## 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

This version 0.0.10 0.0.9 0.0.8 0.0.7 0.0.6 0.0.5 0.0.4 0.0.3 0.0.2 0.0.1