Skip to main content

Standalone atmospheric lidar data processing package

Project description

atmolidarpy

atmolidarpy is the PyPI distribution for the standalone atmospheric lidar processing package imported as lidarpy.

The project was migrated out of the former gfatpy.lidar submodule so that the lidar processing code can be installed, tested, documented and released on its own. It includes RAW Licel conversion, preprocessing, quicklooks, synthetic signal generation, retrieval routines, SCC support modules and package data for known lidar systems.

Current public documentation:

Documentation Map

  • Overview: package scope and repository map.
  • Getting started: install, first import, first validation and expected results.
  • Processing workflow: operational data flow from RAW files to NetCDF, preprocessing, quicklooks and retrieval checks.
  • Examples: runnable snippets for synthetic signals, preprocessing and SCC client contracts.
  • Operational guide: local, CI, release, rollback, troubleshooting and runtime boundaries.
  • References: scientific references and public module index.
  • Contributing: development workflow and documentation maintenance.

Install

For users:

python -m pip install atmolidarpy
python -c "import lidarpy; print(lidarpy.__version__)"

Expected result: Python imports lidarpy without needing the old gfatpy package. The distribution name and import name are intentionally different: install atmolidarpy, import lidarpy.

For local development:

uv sync --group dev
$env:PYTHONPATH = "src"
$env:MPLBACKEND = "Agg"
.\.venv\Scripts\python -m pytest tests -q -m "not slow"

The full suite includes RAW fixture conversion and can create large temporary NetCDF files. On Windows, run large groups in chunks and keep pytest temporary directories inside the repository.

Repository Shape

  • src/lidarpy/nc_convert: RAW/Licel discovery and NetCDF conversion.
  • src/lidarpy/preprocessing: correction pipeline, overlap and gluing support.
  • src/lidarpy/plot: quicklook plotting.
  • src/lidarpy/retrieval: Klett, Raman, overlap, calibration, ABLH detection and synthetic validation helpers.
  • src/lidarpy/atmo: molecular atmosphere and Rayleigh utilities.
  • src/lidarpy/depolarization: calibration and retrieval helpers.
  • src/lidarpy/scc: SCC conversion, client, resources and plotting helpers.
  • tests: focused unit, integration, packaging, SCC, docs and synthetic tests.
  • docs: static GitHub Pages source.
  • scripts: documentation build and figure generation.

Release

Current package version: 0.2.0.

The package is published as atmolidarpy on PyPI through GitHub Actions Trusted Publishing. Releases are tag-driven:

git tag v0.2.0
git push origin v0.2.0

The Publish Package workflow builds sdist and wheel artifacts, checks them with Twine and publishes to PyPI from the GitHub environment named pypi.

Versioning policy while the project remains alpha:

  • Bug fixes that keep the public API compatible use patch releases within the current minor series, for example 0.2.1.
  • Public API additions or behavior changes use 0.2.0, 0.3.0, etc.
  • 1.0.0 is reserved for the first stable API intended for production dependants such as gfat-worker.

What is New in 0.2.0

  • Added lidarpy.retrieval.ablh with ABLH detection on common time, range products from lidarpy datasets and Cloudnet ceilometer backscatter products.
  • Added WCT and temporal-variance ABLH methods with synthetic 2D tests against known simulated layer height.
  • Added a Cloudnet CHM15k Granada workbench that writes ABLH NetCDF products and a quicklook overlaying detected layer heights.

Rollback is normally operational rather than destructive: publish a corrected new version, or pin downstream environments to the last known good version. Do not delete release tags or PyPI files unless there is a severe security or legal reason.

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

atmolidarpy-0.2.0.tar.gz (3.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

atmolidarpy-0.2.0-py3-none-any.whl (2.8 MB view details)

Uploaded Python 3

File details

Details for the file atmolidarpy-0.2.0.tar.gz.

File metadata

  • Download URL: atmolidarpy-0.2.0.tar.gz
  • Upload date:
  • Size: 3.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for atmolidarpy-0.2.0.tar.gz
Algorithm Hash digest
SHA256 5a04113104bfe0c073b34e45a660950507a4c8ea5440d15fb937a1c71615b0a2
MD5 aa73c31382e784bcef21110801d0eb84
BLAKE2b-256 a1cf5af6fac75cb2858a088a156003bbb68adeca27a7eb7176d1d140d8e906be

See more details on using hashes here.

Provenance

The following attestation bundles were made for atmolidarpy-0.2.0.tar.gz:

Publisher: publish-package.yml on jabravoaranda/lidarpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atmolidarpy-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: atmolidarpy-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for atmolidarpy-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e56db62e57463a876f001ba37afc0a3210db0af2ba44decd9dc923c8f6da024b
MD5 fb69dba8f3b6f032673ad70a08d385a2
BLAKE2b-256 36df7267221cbdfce13863418e2c358117ee2c27aadacde2bb69cfa01d4b8db5

See more details on using hashes here.

Provenance

The following attestation bundles were made for atmolidarpy-0.2.0-py3-none-any.whl:

Publisher: publish-package.yml on jabravoaranda/lidarpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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