Skip to main content

Please cite the software if you are using it in your scientific publication.

Build Status Coverage Status DOI Documentation Status CII Best Practices

Toolkit for handling point clouds created using airborne laser scanning (ALS). Find neighboring points in your point cloud and describe them as feature values. Read our user manual and our (very modest) tutorial.

Installation

Prerequisites:

  • Python 3.10 or higher
  • pip
pip install laserchicken

Necessary steps for making a new release

  • Set new version number in the following files:
    • laserchicken/__version__.py
    • pyproject.toml
    • CITATION.cff
  • Create .zenodo.json file from CITATION.cff (using cffconvert) cffconvert --validate cffconvert --format zenodo --outfile .zenodo.json
  • Check that documentation uses the correct version
  • Edit Changelog (based on commits in https://github.com/eecolidar/laserchicken/compare/v0.3.2...master)
  • Test if package can be installed with pip (pip install .)
  • Create Github release (release to PyPI is implemented via GitHub Actions)
  • Check doi on zenodo

Feature testing

All features were tested for the following general conditions:

  • Output consistent point clouds and don't crash with artificial data, real data, all zero data (x, y or z), data without points, data with very low number of neighbors (0, 1, 2)
  • Input should not be changed by the feature extractor

The specific features were tested as follows.

Echo ratio

A test was written with artificial data to check the correctness of the calculation with manually calculated ratio. Also tested on real data to make sure it doesn't crash, without checking for correctness. We could add a test for correctness with real data but we would need both that data and a verified ground truth.

Eigenvalues

Only sanity tests (l1>l2>l3) on real data and corner cases but no actual test for correctness. The code is very simple though and mainly calls numpy.linalg.eig.

Height statistics (max_z','min_z','mean_z','median_z','std_z','var_z','coeff_var_z','skew_z','kurto_z)

Tested on real data for correctness. It is however unclear where the ground truths come from. Code is mainly calling numpy methods that do all the work already. Only calculations in our code are:

range_z = max_z - min_z
coeff_var_z = np.std(z) / np.mean(z)

I don't know about any packages that could provide an out of the box coefficient of variance. This is probably because the calculation is so simple.

Pulse penetration ratio

Tested for correctness using artificial data against manually calculated values. No comparison was made with other implementations.

Sigma_z

Tested for correctness using artificial data against manually calculated values. No comparison was made with other implementations.

Percentiles

Tested for correctness using a simple case with artificial data against manually calculated values.

point_density

Tested for correctness on artificial data.

Metadata

Release files for laserchicken 0.8.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for laserchicken 0.8.1
File Size Uploaded
laserchicken-0.8.1.tar.gz 62.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for laserchicken 0.8.1
File Interpreter ABI Platform
laserchicken-0.8.1-py3-none-any.whl Python 3 none any Details

Total release size: 156.6 kB

Release files / laserchicken-0.8.1.tar.gz

Download URL laserchicken-0.8.1.tar.gz
Size 62.5 kB
Tags Source
SHA-256 checksum
How to use checksums
df5651052bc396f46e2efc3e1068fded655d263c605be2fa5c8b8b9e93b4d410
BLAKE2b-256 checksum
How to use checksums
e15395080e1de3408812f92c33daa90b83cde2f332809b1b01dda5b9c9918776
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / laserchicken-0.8.1-py3-none-any.whl

Download URL laserchicken-0.8.1-py3-none-any.whl
Size 94.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
08542ed33d84fd7aeea416c237dd093842b04e4b84374a09fd3600f4f8927a69
BLAKE2b-256 checksum
How to use checksums
fb9e1afe18c1ad1a014fd852ef0cebd93b04df76fa55404b56cf5f93ad42a31e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.8.1 This release

2 release files

0.8.0

2 release files

0.7.0

1 release file

0.6.1

1 release file

0.6.0

1 release file

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page