Height normalization for point clouds using the Re-Height Normalization (ReHN) algorithm.
Project description
ReHN: Point Cloud Re-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 . # -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
-ior--pc_path: Required: Path to the input point cloud (PLY format)-oor--save_path: Required: Path to save the output point cloud (PLY format)-mor--dem_save_path: Path to save the DEM (npy format), default=None-mror--dem_resolution: Resolution of the DEM, default=0.2meters-for--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 your point cloud data
ground_mask = ... # Load your basic ground mask
norm_z, ground_mask = height_norm(xyz, ground_mask)
count_dem(xyz, ground_mask, '/path/to/save/dem.npy')
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rehn-1.0.0.tar.gz.
File metadata
- Download URL: rehn-1.0.0.tar.gz
- Upload date:
- Size: 17.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27ceb725593de33b7d9db35c64660a918e4f82c58a8141ed9f79fb3826253702
|
|
| MD5 |
e2e5dfef81695e4b0a6e0cdcd2eb6d93
|
|
| BLAKE2b-256 |
eee4915f02d80e832dd4240fe16fd41a57fafd921684e6be772e01ac64c6b2ec
|
File details
Details for the file ReHN-1.0.0-py3-none-any.whl.
File metadata
- Download URL: ReHN-1.0.0-py3-none-any.whl
- Upload date:
- Size: 21.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c94dc9344ba62785c47d3b67103f90970b568b2e74a0a0a43b755fc15bd3f56
|
|
| MD5 |
279d7cf6cabaeb39399f0a841ce69fd0
|
|
| BLAKE2b-256 |
769ce2a4c47e6044cd6736d6d4bcc7849189eba1b250c61473f5eb151590a120
|