Skip to content

MBlaschek/rasotools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub version

Radiosonde Tools (RASOTOOLS)

Author: M. Blaschek Last Update: Dec 2019 Status: Development

Version: 19.12

Read and bias adjust radiosonde data using background departure statistics from a reanalysis. The development and research has been conducted during ERACLIM (EU 2011-2013) , ERACLIM2 (EU 2014-2017) and Copernicus Climate Change Service (C3S) (EU 2018-*). In close collaboration with the ECMWF. Employing multiple reanalysis for bias adjustment such as ERA5, ERA-Interim, CERA-20C, ERA-20C as well as JRA-55

eraclim eraclim2 copernicusecmwf

This project has received funding from the European Union’s Sixth/Seventh Framework Programme for research, technological development and demonstration under grant agreement no 265229, no 607029.

[TOC]

Install

The code uses Python3 as a standard.

Dependencies:

  • Bottleneck
  • scipy
  • Cartopy
  • tqdm
  • numba
  • pandas
  • matplotlib
  • numpy
  • netCDF4

Optional:

  • cfgrib
  • eccodes

Download the Source code from GitHub

git clone https://github.com/MBlaschek/rasotools

or use the package on PyPI rasotools

pip install rasotools

How to Use?

The module can be imported like this

>>> import rasotools as rt
>>> isonde = rt.open_radiosonde('example')   # Station in Vienna
Warning different idents:  AUM00011035 > 011035

The Radiosonde class provides routines to load and save data and attach data to an object. Most Routines in rasotools use xarray Datasets or DataArrays to work.

>>> isonde
Radiosonde (AUM00011035)
Data: 
IGRAv2     : <Dataset (9 vars [date(738), pres(32)])>
Global Attributes: 
ident      : <str (011035)>
source     : <str (NOAA NCDC)>
dataset    : <str (IGRAv2)>
levels     : <str (ERA-I 32 lower)>
processed  : <str (UNIVIE, IMG)>
libs       : <str (RT(0.2) NP(1.15.4) PD(0.23.4) XR(0.11.0))>

This shows a record from IGRAv2 (NOAA) of the Vienna radiosonde. The original data (ASCII, table format, checkout my igra python3 module to read these tables) has been read and interpolated to standard pressure levels where necessary.

>>> isonde.data.IGRAv2                                                      
<xarray.Dataset>
Dimensions:  (date: 738, pres: 32)
Coordinates:
  * date     (date) datetime64[ns] 2016-01-01 ... 2016-12-31T12:00:00
  * pres     (pres) float64 1e+03 2e+03 3e+03 5e+03 ... 9.5e+04 9.75e+04 1e+05
Data variables:
    gph      (date, pres) float64 ...
    temp     (date, pres) float64 ...
    rhumi    (date, pres) float64 ...
    dpd      (date, pres) float64 ...
    windd    (date, pres) float64 ...
    winds    (date, pres) float64 ...
    numlev   (date) int64 ...
    lat      (date) float64 ...
    lon      (date) float64 ...
Attributes:
    ident:      011035
    source:     NOAA NCDC
    dataset:    IGRAv2
    levels:     ERA-I 32 lower
    processed:  UNIVIE, IMG
    libs:       RT(0.2) NP(1.15.4) PD(0.23.4) XR(0.11.0)

Documentation

In doc a Jupyter Notebook describes some functionality and shows how to use some functions.

History

rasotools is a continuous development at the University of Vienna for research purposes. It is based on the need to handle radiosonde data on timeseries basis and bias adjust these timeseries. Similar projects are metpy, skewt, PyIGRA or Siphon

There is also an IGRAv2 and UADB python module igra by the same author. At a later stage it might be useful to include some of these features for plotting an calculation of profiling indices.

License

MIT License

Copyright (c) 2019 Michael Blaschek