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

Replace geowave subproject with GeoTrellis/GeoWave data adapter #3364

Merged
merged 12 commits into from
Apr 30, 2021

Conversation

echeipesh
Copy link
Contributor

@echeipesh echeipesh commented Mar 17, 2021

Overview

This PR majorly revamps geowave package.

Previous approach was to implement a GeoTrellis layer reader/writer and attribute store interface that is backed by GeoWave tables. This was neat but ultimately the GeoTrellis query interface is limited in types of queries that it can express and results it can generate. When wishing to store records indexed by 3+ dimensions, possibly rasters, the GeoTools DataStore interface and CQL provides better interface.

This PR implements GeoTrellisDataAdapter as GeoWaveDataAdapter, along with field reader/writer for GeoTrellis raster values. To some extent this is Scala friendly extension of normal GeoWave adapter/index type hierarchy. The fields writers provider are suitable for any types already using the AvroCodecs used by GeoTrellis. Note that the field handler mechanics for the GeoTrellisDataAdapter differ from GeoWave's AbstractDataAdapter .. this is intentional and was done with aim of clarity of implementation for the Scala client.

Additionally this PR adds the field definition for "Elevation" dimension and couple of index implementations to address the underlying use-case of querying volumetric data over time. This may eventually migrate to either client code or could be contributed in GeoWave project with a little more discussion.

Because the GeoWave support was considered experimental and lightly (if at all) used, this change can escape major version bump. geowave module should still be considered experimental. Future work may include introduction of type-safe query interface and GeoWave index builder.

Dependencies

(these libraries upgrade happened here #3341)

  • This PR downgrades GeoTools version to match GeoWave GeoTools version 24.2 -> 23.3
  • JTS Downgrade 1.17.1 -> 1.16.1 (to match GeoTools version)

CQs

Checklist

  • ./CHANGELOG.md updated, if necessary. Link to the issue if closed, otherwise the PR.
  • Module Hierarchy updated, if necessary
  • docs guides update, if necessary
  • New user API has useful Scaladoc strings
  • Unit tests added for bug-fix or new feature
  • Update the CI tests

@echeipesh echeipesh force-pushed the geowave-adapter branch 4 times, most recently from 7fc4a7c to d8bbe70 Compare April 8, 2021 14:10
@pomadchin pomadchin force-pushed the geowave-adapter branch 2 times, most recently from 4981b3e to 23e7da6 Compare April 30, 2021 00:25
…tation from benchmarks, generate missing headers
@pomadchin pomadchin merged commit b52f70c into locationtech:master Apr 30, 2021
@pomadchin pomadchin removed the needs cq label May 3, 2021
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

Successfully merging this pull request may close these issues.

2 participants