dfichuk/tree-species-high-accuracy-psp
High-Accuracy LiDAR-backed PSP Dataset High-accuracy PSP subset with LiDAR-backed patches. Size 5,737 LiDAR-backed high-coordinate-accuracy PSP tree samples Species counts BA: 36 CW: 1,362 DR: 557 FD: 651 HW: 2,776 MB: 52 SS: 303 Coordinate reliability filtering Coordinate tiers follow the source PSP coordinate provenance: High: DGPS, PPP Medium: RGPS, VGPS Low: MAP, GIS, GE, PREVIOUS, INTENDED, UNKNOWN, missing, or unrecognized… See the full description on the dataset page: https://huggingface.co/datasets/dfichuk/tree-species-high-accuracy-psp.
High-Accuracy LiDAR-backed PSP Dataset
High-accuracy PSP subset with LiDAR-backed patches.
Size
- 5,737 LiDAR-backed high-coordinate-accuracy PSP tree samples
Species counts
BA: 36CW: 1,362DR: 557FD: 651HW: 2,776MB: 52SS: 303
Coordinate reliability filtering
Coordinate tiers follow the source PSP coordinate provenance:
- High: DGPS, PPP
- Medium: RGPS, VGPS
- Low: MAP, GIS, GE, PREVIOUS, INTENDED, UNKNOWN, missing, or unrecognized
This subset keeps only rows with high-coordinate-accuracy labels.
Label provenance and reliability
- Species labels: professional PSP field labels
- DBH: field measured
- Height: mostly estimated from DBH equations unless
height_sourcesaysField measured - LiDAR patches: quality-filtered 5m-radius point clouds
Split counts
train: 3,938validation: 900test: 899
Patch format
Each patch is stored as a .npy array with per-point fields:
xyzintensityreturn_numbernumber_of_returnsclassification
Loading example
import pandas as pd
import numpy as np
from pathlib import Path
root = Path("./huggingface_high_accuracy_lidar")
df = pd.read_csv(root / "high_accuracy_lidar_set.csv")
row = df.iloc[0]
patch = np.load(root / row.patch_file, allow_pickle=False)
print(row.species, patch.dtype)Caveats
- Plot coordinates still reflect PSP plot/tree matching limitations.
- Only DGPS/PPP is included in this release.
- Patches are 5m radius.
- No interrupted download/extraction continuation is included.
