Coder Social home page Coder Social logo

curioustauseef / softx_2019_325 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from elseviersoftwarex/softx_2019_325

0.0 1.0 0.0 13.32 MB

Laserchicken - A tool for distributed feature calculation from massive LiDAR point cloud datasets. To cite this software publication: https://www.sciencedirect.com/science/article/pii/S2352711020303393

License: Apache License 2.0

Python 92.55% Jupyter Notebook 7.45%

softx_2019_325's Introduction

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

Build Status Codacy Badge Coverage Status DOI Documentation Status

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.5 or higher (3.6 is recommended)
  • pip
pip install laserchicken

Necessary steps for making a new release

  • Check citation.cff using general DOI for all version (option: create file via 'cffinit')
  • Create .zenodo.json file from CITATION.cff (using cffconvert)
    cffconvert --validate
    cffconvert --ignore-suspect-keys --outputformat zenodo --outfile .zenodo.json
  • Set new version number in laserchicken/_version.txt
  • 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
  • Upload to pypi:
    python setup.py sdist bdist_wheel
    python -m twine upload --repository-url https://upload.pypi.org/legacy/ dist/*
    (or python -m twine upload --repository-url https://test.pypi.org/legacy/ dist/* to test first)
  • 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.

softx_2019_325's People

Contributors

bouweandela avatar cwmeijer avatar elboyran avatar fdiblen avatar fnattino avatar goord avatar komazsofi avatar meiertgrootes avatar nicorenaud avatar rogerkuou avatar romulogoncalves avatar yifatdzigan avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.