visgl / loaders.gl

Loaders for big data visualization. Website:

Home Page:https://loaders.gl

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tracker: COPC tiled loader

jo-chemla opened this issue · comments

Following comment by @hobu here, it would be nice if loaders.gl could implement a COPC tiled loader. Quick note, COPC stands for Cloud Optimized PointCloud and is basically the las/laz equivalent to COG for pointclouds instead of geotiffs.

Might be useful to have a look at the COPC.js repo from @connormanning and hobu team. Probably very close to how the OGC 3D Tiles loader works, with points coordinates being expressed in an arbitrary CRS (Coordinate Reference System) usually described by a proj4 string.

We would be happy to support someone doing a loaders.gl COPC implementation. It should be straightforward for someone who knows loaders.gl. Please contact me if you're interested.

For some additional info, copc.js provides what I'd call "primitives" for dealing with LAS/LAZ/COPC data: header/VLR parsing, hierarchy reading, fetching a COPC node slice (with API for fetching the laszip-compressed block, or decompressed to LAS, or providing a view with getters for each attribute including extra-bytes). Determining what to fetch, caching, running decompression in a web worker, etc, are left up to you.

See the PRs for COPC support in potree and itowns for examples of copc.js usage in the context of adding a COPC loader to a downstream rendering project.

@connormanning I made a fleeting attempt at integrating your COPC code maybe 6 months ago but it had bundling issues as it was doing dynamic imports of node specific libraries (fs?) or some such.

Also loaders.gl has its own LASLoader module which is older and I would prefer to update that to align with the COPC LASLoader implementation but didn't immediately see how to separate the code in COPC.

By your description, sounds like your primitive system might be just what is needed to make your code fit into the loaders.gl model.

If we were able to pair up for an hour or so, perhaps we could make short work of it? email me if interested.