Skip to content

Fix tile rendering skew from lidar outliers (#11)#53

Draft
endolith wants to merge 1 commit into
mainfrom
cursor/fix-tile-outliers-issue-11-b86d
Draft

Fix tile rendering skew from lidar outliers (#11)#53
endolith wants to merge 1 commit into
mainfrom
cursor/fix-tile-outliers-issue-11-b86d

Conversation

@endolith

Copy link
Copy Markdown
Owner

Summary

Addresses issue #11: a few extreme Z values could skew DSM/high-pass range so slippy tiles rendered flat white.

Changes

  1. Noise classes at ingest — When filterNoise is on, the PDAL pipeline now uses a streamable filters.expression stage to drop ASPRS Classification 7 (low noise) and 18 (high noise), not only class 18. Class 7 is the LAS “low point / noise” bucket that matches the reported very-low spikes; filters.expression stays compatible with execute_streaming.

  2. Robust tile contrast — Before imshow, finite values are summarized with the 0.5 and 99.5 percentiles to set vmin/vmax, so a handful of remaining outliers cannot dominate matplotlib’s autoscale. Degenerate cases (empty or constant data) fall back safely.

Notes

  • Cached .laz tiles built under the old pipeline still contain old classifications until re-fetched; new fetches get the stricter noise filter. The percentile scaling still improves PNGs from existing DSMs with rare bad pixels.
  • Users who rely on class 7 points being present should turn off filterNoise (would require a code path exposing that flag to HTTP if desired later).
Open in Web Open in Cursor 

- Drop LAS noise classes 7 and 18 via streamable filters.expression when
  filterNoise is enabled, so low/high noise points do not distort DSM grids.
- Use percentile-based vmin/vmax for tile PNG rendering so a few extreme
  high-pass values cannot collapse matplotlib grayscale autoscale.

Co-authored-by: endolith <endolith@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants