geometry / geography: Read improvements

Open
#4,079 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
python
Domain
data

Research direction

Start by tracing geometry/geography type handling, especially pyarrow_to_schema, metric evaluators, and CLI JSON output; the issue does not name specific files or tests. Compare the listed gaps with existing type handling and add fixture-based tests, since Spark types are unavailable. Done means the listed parsing, schema, edge-algorithm, bounds, and JSON cases are covered.

Written by the indexing model from the issue text.

Description

V3
Feature Request / Improvement

We've added rudimentary support for the geometry and geography types, but we've still got some work to do:

  • Parse the unquoted form, case-insensitively and with optional whitespace (this was a recent change to Java)
  • pyarrow_to_schema doesn't recognise geoarrow extension types or Parquet GEOMETRY/GEOGRAPHY, so these columns come back as plain binary
  • Only the spherical edge algorithm is mapped. vincenty/thomas/andoyer/karney fall back to planar:
  • Make sure the metrics evaluators don't read spec-encoded bounds (x, y[, z, m]) as WKB
  • CLI JSON output breaks on geo defaults:
  • Testing with fixtures (since no Spark types)
Dominant language
Python
Stars
1.2k
Forks
664
Avg merge
2d 10h
Merged PRs (30d)
131

Getting set up

  • No Dockerfile or Docker Compose file
  • Has a pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/iceberg-python

All issues in apache/iceberg-python

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.