pointcloud/lib/TODO.md
2013-06-19 15:12:09 -07:00

1.8 KiB

To Do

  • Add in dimensional stats caching to speed up dimensional compression in batch cases

  • (?) convert PCBYTES to use PCDIMENSION* instead of holding all values as dupes

  • (??) convert PCBYTES handling to pass-by-reference instead of pass-by-value

  • implement PC_PatchAvg/PC_PatchMin/PC_PatchMax as C functions against patches with dimensional and uncompressed implementations

  • TESTS for pc_patch_dimensional_from_uncompressed() and pc_patch_dimensional_compress()

  • Update pc_patch_from_patchlist() to merge GHT patches without decompression

  • Update pc_patch_from_patchlist() to merge dimensional patches directly

  • Before doing dimensional compression, sort by geohash (actually by a localized geohash based on the patch bounds). This will (?) enhance the autocorrelation of values and improve run-length encoding in particular

  • Compute PCSTATS in WKB reading code for all patch variants, not just uncompressed

    • compute stats in libght
    • compute stats of dimensional
  • Remove extents in favour of PCSTATS

  • Make PCSTATS a static member of the PCPATCH, not a pointer

  • PC_Filter[GreaterThan|LessThan|Between](patch, dimension, value) should note the relevant stats and short-circuit return either all or none of the patch, as necessary

Use Cases to Support

  • frustrum filtering
  • raster overlaying
  • filtering on attribute values
  • filtering on spatial polygons (in and out)
  • find the k nearest points to point P
  • gridding/binning ("avg intensity per cell", "max z per cell", "agv red per cell", "rgb into grid/picture")
  • reprojection / re-schema

More Functions

  • PC_FilterPolygon(patch, wkb) returns patch

  • PC_Filter(patch, dimension, expression) returns patch

  • PC_Get(pcpatch, dimname) returns Array(numeric)

  • PC_Transform(pcpatch, newpcid)