Home

Awesome

CI Documentation Status codecov

<img src="docs/assets/images/A-Profiles.png#gh-light-mode-only" width="200" style="margin: 20px 10px"/> <img src="docs/assets/images/A-Profiles-white.png#gh-dark-mode-only" width="200" style="margin: 20px 10px"/>

Python library for reading and processing ALC (Automated Lidars and Ceilometers) measurements. A-Profiles supports E-PROFILE ceilometer data. This library is used by V-Profiles.

📗 Documentation

The official documentation is available here.

✨ Installation

<img src="docs/assets/images/pip.svg" height="15px"/> via pip

aprofiles is directly available on pip. This will install the latest released version of aprofiles and its depencencies.

pip install aprofiles
pipx install aprofiles

<img src="docs/assets/images/github.svg" height="15px"/> from source

  1. clone this repository

    git clone https://github.com/AugustinMortier/A-Profiles.git
    
  2. installation

    • with pip (>21.3)

      pip install .
      
    • with pipx

      pipx install .
      
    • with poetry

      poetry install
      

In order to install directly the package from source with pip, you can also use the combined command

pip install "git+ssh://git@github.com/AugustinMortier/A-Profiles.git"

🚀 Get started

Reading Data

# import library
import aprofiles as apro

# read local NetCDF L2 data
path = "examples/data/E-PROFILE/L2_0-20000-006735_A20210908.nc"
profiles = apro.reader.ReadProfiles(path).read()

Basic corrections and Image plotting

# extrapolate lowest layers for removing outliers
profiles.extrapolate_below(z=150, inplace=True)

# image plotting of backscatter signal in log scale
profiles.plot(zref='agl', vmin=1e-2, vmax=1e1, log=True)
<img src="docs/assets/images/QL-Oslo-20210909.png" title="Attenuated Backscatter Signal" width="800"/>

Profiles Analysis

# fog/condensation detection
profiles.foc(zmin_cloud=200) 

# clouds detection
profiles.clouds(zmin=300, thr_noise=5, thr_clouds=4)

# planetary boundary layer
profiles.pbl(zmin=200, zmax=3000, under_clouds=True)

Visualization

Image

# image plotting with additional retrievals
profiles.plot(show_fog=True, show_clouds=True, show_pbl=True, vmin=1e-2, vmax=1e1, log=True)
<img src="docs/assets/images/QL-Fog&Clouds&PBL-Oslo-20210909.png" title="Fog or Condensation and Clouds Detection" width="800"/>
Single Profile
# plot single profile at 21:20
datetime = np.datetime64('2021-09-09T21:20:00')
profiles.plot(datetime=datetime, vmin=-1, vmax=10, zmax=12000, show_clouds=True, show_pbl=True)
<img src="docs/assets/images/Profile-Oslo-20210909T212005.png" title="Single Profile View" width="400"/>

⚖️ License

GPL-3.0.

🎓 Support

A-Profiles is developed by MET Norway and supported by EUMETNET.