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

Cloud Optimised Point Cloud (COPC) support #2110

Merged
merged 4 commits into from
Apr 30, 2024

Conversation

Desplandis
Copy link
Contributor

@Desplandis Desplandis commented Jun 8, 2023

Description

This PR adds support of COPC format:

  • Add copc.js dependency for COPC parsing using laz-perf under the hood.
  • Expose the following module to users of itowns: CopcSource and CopcLayer which extends existing PointCloudLayer.
  • Add an example to load remote COPC file (with some examples from copc.io).
  • Load the laz-perf.wasm by default through a CDN but this could be override by the user.

Note that this PR does not:

Screenshots

Autzen Stadium

image

SoFI Stadium

image
image

@Desplandis Desplandis force-pushed the qb/copc branch 2 times, most recently from 987b281 to ef04ac4 Compare July 26, 2023 09:05
@Desplandis Desplandis changed the title WIP: Cloud Optimised Point Cloud (COPC) support Cloud Optimised Point Cloud (COPC) support Jul 26, 2023
@Desplandis Desplandis marked this pull request as ready for review July 26, 2023 09:50
@Desplandis
Copy link
Contributor Author

Desplandis commented Jul 26, 2023

This PR is still missing some unit tests but is ready for review.

@jailln jailln requested a review from jogarnier July 26, 2023 10:22
@Desplandis Desplandis force-pushed the qb/copc branch 2 times, most recently from 3e15e58 to 4792205 Compare August 1, 2023 20:17
@Desplandis Desplandis requested a review from mgermerie August 2, 2023 07:42
examples/copc_simple_loader.html Outdated Show resolved Hide resolved
src/Source/CopcSource.js Show resolved Hide resolved
examples/copc_simple_loader.html Show resolved Hide resolved
src/Parser/LAZParser.js Outdated Show resolved Hide resolved
src/Parser/LAZParser.js Outdated Show resolved Hide resolved
src/Layer/CopcLayer.js Outdated Show resolved Hide resolved
src/Core/CopcNode.js Show resolved Hide resolved
Copy link
Contributor

@mgermerie mgermerie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this PR !
I only have a few comments and two general remarks :

  • Could you add yourself to CONTRIBUTORS.md ?
  • I looked at coverage reports, and strangely some parts are not covered even if you call them in your new unit tests (the constructor of CopcLayer for instance). Could you take a look at it ? and add tests if needed ?

Other than that it should be good for me !

src/Core/CopcNode.js Show resolved Hide resolved
src/Core/CopcNode.js Show resolved Hide resolved
src/Provider/PointCloudProvider.js Outdated Show resolved Hide resolved
src/Layer/CopcLayer.js Outdated Show resolved Hide resolved
examples/copc_simple_loader.html Outdated Show resolved Hide resolved
@Desplandis Desplandis force-pushed the qb/copc branch 5 times, most recently from 8f78f6d to c275bcd Compare September 15, 2023 14:16
@Desplandis Desplandis added this to the 2.42.0 milestone Sep 15, 2023
@jailln jailln requested a review from jogarnier September 19, 2023 13:29
@Desplandis Desplandis force-pushed the qb/copc branch 4 times, most recently from cf6c537 to 1cf17b1 Compare October 4, 2023 12:23
@jailln jailln requested review from jailln and removed request for jogarnier November 28, 2023 11:27
@Desplandis Desplandis force-pushed the qb/copc branch 2 times, most recently from c0a2cde to 64a3f01 Compare January 15, 2024 14:54
@Desplandis Desplandis force-pushed the qb/copc branch 2 times, most recently from 46b0727 to 05a94db Compare January 24, 2024 18:20
Desplandis added a commit to Desplandis/demo-lidar that referenced this pull request Feb 13, 2024
This demonstrator is based on iTowns 2.42 with some preview functionnalities:
- support of COPC datasets (iTowns/itowns#2110)
- support of more LAS attributes (iTowns/itowns#2262)
- support of workers for LAS-based format (i.e. EPT, COPC)
Desplandis added a commit to Desplandis/itowns-starter-webpack that referenced this pull request Feb 13, 2024
This demonstrator is based on iTowns 2.42 with some preview functionnalities:
- support of COPC datasets (iTowns/itowns#2110)
- support of more LAS attributes (iTowns/itowns#2262)
- support of workers for LAS-based format (i.e. EPT, COPC)
Desplandis added a commit to Desplandis/demo-lidar that referenced this pull request Feb 13, 2024
This demonstrator is based on iTowns 2.42 with some preview functionnalities:
- support of COPC datasets (iTowns/itowns#2110)
- support of more LAS attributes (iTowns/itowns#2262)
- support of workers for LAS-based format (i.e. EPT, COPC)
Desplandis added a commit to Desplandis/demo-lidar that referenced this pull request Feb 26, 2024
This demonstrator is based on iTowns 2.42 with some preview functionnalities:
- support of COPC datasets (iTowns/itowns#2110)
- support of more LAS attributes (iTowns/itowns#2262)
- support of workers for LAS-based format (i.e. EPT, COPC)
@jailln jailln removed their request for review February 28, 2024 13:26
@jailln jailln assigned AnthonyGlt and unassigned jailln Feb 28, 2024
@jailln jailln requested a review from AnthonyGlt February 28, 2024 13:26
examples/copc_simple_loader.html Outdated Show resolved Hide resolved
examples/copc_simple_loader.html Outdated Show resolved Hide resolved
src/Core/CopcNode.js Outdated Show resolved Hide resolved
src/Parser/LASParser.js Outdated Show resolved Hide resolved
src/Provider/PointCloudProvider.js Outdated Show resolved Hide resolved
src/Source/CopcSource.js Outdated Show resolved Hide resolved
src/Source/CopcSource.js Outdated Show resolved Hide resolved
src/Source/CopcSource.js Outdated Show resolved Hide resolved
this.header = metadata.header;
this.info = metadata.info;
this.eb = metadata.eb;
// TODO: use wkt definition in `metadata.wkt` to infer/define crs
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it planned (issue/proposal/PR link) ?

Copy link
Contributor Author

@Desplandis Desplandis Apr 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not for now, we let the user set the crs manually. We would need to have proj4 expose its wkt-parsing ability.

@LoicUTC
Copy link

LoicUTC commented Mar 5, 2024

That would be a great feature :)

Copy link
Contributor

@mgermerie mgermerie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎉

@Desplandis Desplandis merged commit 48fb9df into iTowns:master Apr 30, 2024
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

Successfully merging this pull request may close these issues.

7 participants