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

EPIC: 3D geometry support #662

Closed
6 of 11 tasks
kylebarron opened this issue Jul 18, 2024 · 1 comment
Closed
6 of 11 tasks

EPIC: 3D geometry support #662

kylebarron opened this issue Jul 18, 2024 · 1 comment

Comments

@kylebarron
Copy link
Member

kylebarron commented Jul 18, 2024

I would like to use (or at least have the option to use) geoarrow-rs in contexts like Lonboard. But 3d data is common enough that I need to be able to handle it. I think the best way to start 3D support is potentially to support them

  • Support generic buffers. This can be done while keeping the high-level arrays parametrized to only use 2D buffers. Done in Support const generic buffers #661
  • Extend array builders to support 3d coords 3d builders #725
    • Most array builders work in terms of geo traits, so we'll need to first support additional dimensions in the traits.
    • Extend array types to have a const generic parameter
    • ...
  • implement 3d support in io readers
    • implement 3d export in geozero
    • implement 3d import in geozero
    • implement in geoparquet
    • implement 3d wkb parsing 3d wkb #726
    • implement 3d wkb writing 3d wkb #726
kylebarron added a commit that referenced this issue Jul 18, 2024
This is initial work to support 3d/4d geometries in geoarrow-rs! 

### Change list

- Add const generic dimension parameter to coordinate buffers and
scalars.
- For now, high-level geometry arrays are still 2D, but this opens up
opportunities to parametrize the buffer dimension


For #662
kylebarron added a commit that referenced this issue Jul 19, 2024
…M data (#663)

This is a massive refactor for
#662

### Change list

- Add const generic `const D: usize` on all geometry arrays. This allows
to _represent_ higher-dimension geodata in geoarrow-rs
- Essentially all algorithms are still only implemented on the 2D
representation
- geo traits are still 2d only

Future work: test Arrow interop to ensure that xyz/xym/xyzm metadata is
preserved. Ensure that on export we're setting the field correctly for
3d data.
kylebarron added a commit that referenced this issue Jul 21, 2024
kylebarron added a commit that referenced this issue Jul 21, 2024
kylebarron added a commit that referenced this issue Jul 21, 2024
kylebarron added a commit that referenced this issue Jul 22, 2024
@kylebarron kylebarron mentioned this issue Aug 27, 2024
kylebarron added a commit that referenced this issue Aug 27, 2024
@kylebarron
Copy link
Member Author

I think this is fully done! Any follow ups can be their own issues.

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

1 participant