Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement a COPC tiled loader #2911

Open
jo-chemla opened this issue Mar 11, 2024 · 2 comments
Open

Implement a COPC tiled loader #2911

jo-chemla opened this issue Mar 11, 2024 · 2 comments

Comments

@jo-chemla
Copy link

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.

@connormanning
Copy link

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.

@ibgreen
Copy link
Collaborator

ibgreen commented Mar 12, 2024

@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.

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

No branches or pull requests

3 participants