Skip to main content

Height normalization for point clouds using the Re-Height Normalization (ReHN) algorithm.

Project description

ReHN: Point Cloud Re-Height Normalization

<style> .image-container { text-align: center; } .image-container img { margin-bottom: 5px; } .image-container p { margin: 0; } </style>

Point Cloud

Before height normalization

After height normalization

Introduction

This repository contains the python implementation of point cloud Re-Height Normalization (ReHN). The code is based on the paper:

Fu, B., Deng, L., Sun, W., He, H., Li, H., Wang, Y., Wang, Y., 2024. Quantifying vegetation species functional traits along hydrologic gradients in karst wetland based on 3D mapping with UAV hyperspectral point cloud. Remote Sens. Environ. 307, 114160. 10.1016/j.rse.2024.114160. https://www.sciencedirect.com/science/article/pii/S0034425724001718

What it contains?

  • A python package rehn
  • A command line tool rehn

You can simply use the command line tool for point cloud height normalization, or use the python package to integrate the height normalization into your own code.

Installation

Install from PyPI

pip install rehn

Install from source

Windows or Linux

git clone https://github.com/DLW3D/ReHN.git
cd ReHN
pip install -e .
# pip install -e . -i https://pypi.mirrors.ustc.edu.cn/simple

Usage

Use as a command line tool

Make sure you have add the python bin path to the system environment variable PATH. you can find it by Windows:where.exe python, Linux:which python.

The python bin path may look like:

  • Windows: C:\Users\username\AppData\Local\Programs\Python\Python39\Scripts
  • Linux: /etc/miniconda3/envs/env_name/bin

Run the following command to normalize the point cloud:

rehn -i samples/HX_sample_with_ground.ply -o samples/outputs/HXs_ReHN.ply -n samples/outputs/HXs_ReHN.npy

Options

  • -i or --pc_path: Required: Path to the input point cloud (PLY format)
  • -o or --save_path: Required: Path to save the output point cloud (PLY format)
  • -m or --dem_save_path: Path to save the DEM (npy format), default=None
  • -mr or --dem_resolution: Resolution of the DEM, default=0.2 meters
  • -f or --ground_feature_name: Name of the ground point feature in the point cloud, default=scalar_is_ground
  • See more options by rehn -h

Use as a Python package

from rehn import height_norm_f
height_norm_f('samples/HX_sample_with_ground.ply', 
              'samples/outputs/HXs_ReHN.ply', 
              'samples/outputs/HXs_ReHN.npy',)

or

from rehn import height_norm, count_dem
xyz = ...  # Load point cloud data
ground_mask = ...  # Load basic ground mask
norm_z, ground_mask = height_norm(xyz, ground_mask)
dem = count_dem(xyz, ground_mask)

Requirements

  • pykdtree
  • cloth-simulation-filter (CSF) (Optional: you need it if you don't have potential ground labels)
  • numpy < 2 (if you don't need CSF, free to use numpy >= 2)

Citation

If you find this work useful, please consider citing the following paper:

@article{fu2024quantifying,
  title={Quantifying vegetation species functional traits along hydrologic gradients in karst wetland based on 3D mapping with UAV hyperspectral point cloud},
  author={Fu, Bojie and Deng, Liangji and Sun, Weixing and He, Honglin and Li, Hui and Wang, Yifan and Wang, Yifan},
  journal={Remote Sensing of Environment},
  volume={307},
  pages={114160},
  year={2024},
  publisher={Elsevier}
  doi={10.1016/j.rse.2024.114160}
}

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

rehn-1.0.1.tar.gz (22.1 kB view details)

Uploaded Source

Built Distribution

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

ReHN-1.0.1-py3-none-any.whl (21.5 kB view details)

Uploaded Python 3

File details

Details for the file rehn-1.0.1.tar.gz.

File metadata

  • Download URL: rehn-1.0.1.tar.gz
  • Upload date:
  • Size: 22.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.2

File hashes

Hashes for rehn-1.0.1.tar.gz
Algorithm Hash digest
SHA256 4328453098a9c00afd97174f1ff84bf4f007a25f209b1675c92af761180e322f
MD5 e9fca2a2d10532f6e2462d6069ff48b0
BLAKE2b-256 45bf6435db32e6a9cc89207affead714d25eede77950655de0437188be746cf5

See more details on using hashes here.

File details

Details for the file ReHN-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: ReHN-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 21.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.2

File hashes

Hashes for ReHN-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4386df1f8469b5d29c463ff058bfbd57ddee0c1212d45c58dc488e7acd995659
MD5 0b655acdebe51b6d8969fc5c4b85188e
BLAKE2b-256 e4d6f97bf13ec710a6dcc63d0639ff32c30ae30844b0b5f008e6b04a2481d38c

See more details on using hashes here.

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