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: Refactor table readers and 3D array support #594

Open
1 of 15 tasks
kylebarron opened this issue Apr 3, 2024 · 1 comment
Open
1 of 15 tasks

EPIC: Refactor table readers and 3D array support #594

kylebarron opened this issue Apr 3, 2024 · 1 comment

Comments

@kylebarron
Copy link
Member

kylebarron commented Apr 3, 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

The order listed here is not necessarily the best order of work.

  • Set up Rust monorepo with multiple crates
  • Create geoarrow-io crate. Move existing IO functionality into that crate. This should vastly simplify the dependencies in the main geoarrow crate.
  • Refactor type signatures of readers and writers. The goal here is to decouple the readers from the GeoTable concept. It should also improve functionality with streaming operations and support future integration with Datafusion.
  • Extend array builders to support 3d coords
    • 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
    • ...
  • Refactor writers to accept a RecordBatchReader.
  • Refactor GeoTable to Table, remove a hard-coded geometry column index. Note that this is not necessary for the initial parsing as long as you're able to convert the RecordBatchReader into a GeoTable.
@kylebarron
Copy link
Member Author

Python geoarrow-rust-io submodule

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