Metadata-Version: 2.4
Name: readmet
Version: 1.0.0
Summary: Read and write meteorological data files: Campbell Scientific TOA5, Halo Photonics lidar HPL, Scintec SODAR FORMAT-1, AUSTAL DMNA and DWD AKTerm
Author-email: Clemens Drüe <druee@uni-trier.de>
License: EUPL-1.2
Project-URL: Homepage, https://github.com/cdruee/python-readmet
Project-URL: Source, https://github.com/cdruee/python-readmet
Project-URL: Documentation, https://druee.gitlab-pages.uni-trier.de/python-readmet/
Keywords: meteorology,atmospheric science,file format,pandas,TOA5,Campbell Scientific,datalogger,LoggerNet,Halo Photonics,Doppler lidar,wind lidar,hpl,Scintec,SODAR,scintillometer,AUSTAL,AUSTAL2000,LASAT,DMNA,dispersion model,AKTerm,DWD
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: License :: OSI Approved :: European Union Public Licence 1.2 (EUPL 1.2)
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: numpy
Requires-Dist: pandas
Provides-Extra: docs
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx-sitemap; extra == "docs"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: flake8; extra == "test"
Dynamic: license-file

readmet
=======

[![PyPI](https://img.shields.io/pypi/v/readmet)](https://pypi.org/project/readmet/)
[![Documentation](https://img.shields.io/badge/docs-GitLab%20Pages-blue)](https://druee.gitlab-pages.uni-trier.de/python-readmet/)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.23455355.svg)](https://doi.org/10.5281/zenodo.23455355)
[![License: EUPL-1.2](https://img.shields.io/badge/license-EUPL--1.2-blue)](LICENSE.txt)

**Python readers (and writers) for vendor-specific meteorological data
file formats** – Campbell Scientific TOA5, Halo Photonics Doppler lidar
`.hpl`, Scintec SODAR FORMAT-1, AUSTAL/LASAT DMNA and DWD AKTerm.
Data are returned as [pandas](https://pandas.pydata.org) DataFrames or
numpy arrays.

Supported file formats
----------------------

| Module     | Format                         | Instruments / software                                         | Files                          | Read | Write |
|------------|--------------------------------|----------------------------------------------------------------|--------------------------------|:----:|:-----:|
| `toa5`     | TOA5                           | Campbell Scientific dataloggers (CR1000, CR3000, CR6, …), LoggerNet | `*.dat`                   |  ✔   |   ✔   |
| `hpl`      | HPL                            | Halo Photonics StreamLine Doppler wind lidar (VAD, RHI, Stare, wind profile, processed wind profile) | `*.hpl` | ✔ |  |
| `scintec1` | Scintec FORMAT-1 / FORMAT-1.1  | Scintec SODAR / RASS wind profilers (APRun), scintillometers (SRun) | `*.mnd` and other Scintec output | ✔ |  |
| `dmna`     | DMNA                           | AUSTAL, AUSTAL2000, LASAT dispersion models (Ingenieurbüro Janicke) | `*.dmna`, `*.dmnb`, `*.dmna.gz` | ✔ | ✔ |
| `akterm`   | AKTerm                         | DWD Ausbreitungsklassen-Zeitreihe (dispersion class time series) for AUSTAL | `*.akterm`, `*.akt`   |  ✔   |   ✔   |

Installation
------------

    pip install readmet

or as normal user:

    pip install --user readmet

readmet requires `numpy` and `pandas`. The sources are available from
[GitHub](https://github.com/cdruee/python-readmet).

Examples
--------

### Read a Campbell Scientific TOA5 file

```python
from readmet import toa5

header, df = toa5.read("TOA5_CR3000.data_2015_06_17_0010.dat")
print(header["station_name"])
print(df[["AirTC_Avg", "RH_Avg"]].head())
```

### Read Halo Photonics Doppler lidar `.hpl` files

```python
from readmet import hpl

scan = hpl.DataFile("Wind_Profile_00_20260919_121707.hpl")
print(scan.type, scan.timestamp)
print(scan.rays[0].data.head())     # Doppler velocity, intensity, beta per gate

data = hpl.read("Wind_Profile_*.hpl")   # many scans at once
```

### Read Scintec SODAR / scintillometer FORMAT-1 files

```python
from readmet import scintec1

data = scintec1.read("sodar_202406*.mnd")   # dict of DataFrames per variable
```

### Read an AUSTAL DMNA concentration grid

```python
from readmet import dmna

g = dmna.DataFile("so2-y00a.dmna")
con = g.data["con"]                 # numpy array
x = g.axes("x")                     # grid coordinates
```

### Read a DWD AKTerm file

```python
from readmet import akterm

a = akterm.DataFile("testfile.akterm")
print(a.data[["FF", "DD", "KM"]].head())   # wind speed, direction, stability class
```

Documentation
-------------

Full documentation with one page per format:
<https://druee.gitlab-pages.uni-trier.de/python-readmet/>

Citing
------

If you use readmet in your research, please cite it via its Zenodo DOI
[10.5281/zenodo.23455355](https://doi.org/10.5281/zenodo.23455355)
(all versions; the Zenodo page lists a separate DOI for each release).
Citation metadata are in [CITATION.cff](CITATION.cff); on GitHub, use
*Cite this repository* in the sidebar to get APA or BibTeX.

License
-------

[EUPL-1.2](LICENSE.txt) © Clemens Drüe
