Releases: opengeospatial/geoparquet
v1.1.0+p1
The v1.1.0+p1
release corrects an issue in the v1.1.0
release, removing a requirement that conflicts with the new native encoding for geometries. The metadata schema has not been changed with this correction. Data producers and consumers should use the version identifier 1.1.0
to refer to this corrected release.
Although the spec and metadata schema are attached as release artifacts, clients should use the published versions:
What's Changed
Full Changelog: v1.1.0...v1.1.0+p1
v1.1.0
GeoParquet 1.1.0 is our second stable release. There are two major additions to the specification:
- #191 introduces the bbox covering encoding which defines a way to add an extra column that represents the bounding box of each geometry as a 'struct' in Parquet. This can accelerate spatial queries by allowing consumers to inspect row group and page index bounding box summary statistics.
- #189 adds an option for Native encodings (based on GeoArrow), which introduces an alternative to Well Known Binary that enables readers to leverage more features of the Parquet format to accelerate geospatial queries (e.g., row group-level min/max statistics).
Both work to better leverage Parquet's native capabilities to enable GeoParquet readers to query spatial data more efficiently. The first is designed to work with the way geometries are encoded in GeoParquet 1.0, and should be easy for any reader or writer to add, while the second is a new alternative encoding that is more efficient and more compatible with the Parquet way of doing things, but will take more work to implement. They could theoretically be used together, but practically only one is necessary in a GeoParquet file. Both features are completely optional, and follow our version compatibility guidelines to be fully backwards compatible changes.
There were also a number of minor clarifications and improvements since 1.0, including recommendations about media type and .parquet as the file extension, along with new test data. The full list of PR's, new contributors and changes follows below.
What's Changed
- Spec: add a note about mapping of Parquet BYTE_ARRAY type to Arrow types by @rouault in #190
- Add missing link, make sure people find stable by @m-mohr in #194
- fix typo on geoparquet.md by @Jap8nted in #195
- Fixes the link from
compatible-parquet.md
to the schema. by @xaviernogueira in #196 - Introduce bounding box column definition by @jwass in #191
- Add GeoArrow encoding as an option to the specification by @paleolimbot in #189
- Require two elements in covering elements by @m-mohr in #210
- Update README.md by @ghobona in #214
- Added file extension recommendation by @cholmes in #212
- Added Media Type by @cholmes in #213
- Added disclosure that 1.0.0 is not yet OGC approved by @jatorre in #205
- Add test data covering different native (geoarrow-based) encodings by @jorisvandenbossche in #204
- Improves Covering Schema #208 by @m-mohr in #209
- Bounding box column updates by @kylebarron in #202
- Clarify null/missing crs key by @kylebarron in #225
- clarified that the bbox must be in the same crs as the geometry by @cholmes in #226
- Updated projjson schema link to 0.7 (and new link) by @cholmes in #227
- Add version compatibility documentation by @TheNeuralBit in #229
New Contributors
- @Jap8nted made their first contribution in #195
- @xaviernogueira made their first contribution in #196
- @jwass made their first contribution in #191
- @paleolimbot made their first contribution in #189
- @ghobona made their first contribution in #206
- @jatorre made their first contribution in #205
- @TheNeuralBit made their first contribution in #229
Full Changelog: v1.0.0...v1.1.0
v1.0.0
GeoParquet 1.0.0 is our first stable release. As of this release we will be completely following SemVer, so we'll be releasing patch versions for any bug fixes, minor versions for backwards compatible changes, and any backwards incompatible changes will warrant a GeoParquet 2.0.0. Our goal will be to stay at 1.x releases for as long as possible.
There have been no core spec changes since 1.0.0-beta.1, so any implementation updating to 1.0.0 from beta.1 or rc.1 should have a relatively easy time updating to the 1.0.0 spec. The one addition is a set of recommendations on parquet geospatial compatibility, with the aim to help data providers make their Parquet data more compatible with tools that can then easily transform it to GeoParquet.
New Contributors
- @evetion made their first contribution in #109
- @yeelauren made their first contribution in #108
- @tschaub made their first contribution in #121
- @jiayuasu made their first contribution in #150
- @m-mohr made their first contribution in #153
Full Changelog: v0.4.0...v1.0.0
v1.0.0-rc.1
GeoParquet 1.0.0-rc.1 is our first release candidate. If we hear no blocking issues by the end of August (2023), then this version of the spec will be released as 1.0.0. So this is your last chance to try it out before it is finalized, and after this release there will be no breaking changes until GeoParquet 2.0.
There were actually no core spec changes between 1.0.0-beta.1 and 1.0.0-rc.1. The only change was the addition of a set of recommendations on parquet geospatial compatibility, with the aim to help data providers make their Parquet data more compatible with tools that can then easily transform it to GeoParquet.
What's Changed
- Updates for the 1.0.0-beta.1 release by @tschaub in #161
- Remove example link from spec by @tschaub in #162
- Readme updates for 1.0-beta.1 release by @cholmes in #163
- Parquet Geospatial Compatibility Recommendations by @cholmes in #172
- updates for geography column name option by @cholmes in #175
- Release Candidate 1 by @cholmes in #176
- Update scripts dependencies by @kylebarron in #179
- Link to the release procedure by @tschaub in #181
Full Changelog: v1.0.0-beta.1...v1.0.0-rc.1
v1.0.0-beta.1
We're getting close to the first stable GeoParquet release! We may have one or two more beta releases after gathering feedback from implementors, but we don't have any other planned breaking changes before 1.0.0. Please give it a try and create issues with your feedback.
The 1.0.0-beta.1 release includes a number of metadata changes since the previous 0.4.0 release. One breaking change is that the previous geometry_type
metadata property is now named geometry_types
. The value is always an array of string geometry types (instead of sometimes a single string and sometimes an array). In addition, we've clarified a number of things in the specification and tightened up the JSON schema to improve validation. See below for a complete list of changes.
What's Changed
- Add GeoParquet.jl, an implementation in Julia by @evetion in #109
- add R examples and geoarrow by @yeelauren in #108
- fix lint error by @kylebarron in #125
- Include suggestion about feature identifiers by @tschaub in #121
- Consistent spelling of GeoParquet by @tschaub in #142
- Add link to gpq by @tschaub in #139
- Correct the 'bbox' description for 3D geometries by @jorisvandenbossche in #88
- Clarify nesting and repetition of geometry columns by @tschaub in #138
- Clarify that bbox follows column's CRS by @jorisvandenbossche in #143
- Clarify geographic vs non-geographic bbox values by @tschaub in #145
- Array of geometry types by @tschaub in #140
- More consistent spelling and punctuation for JSON types by @tschaub in #149
- Add Apache Sedona to known libraries by @jiayuasu in #150
- schema.json: update reference to projjson schema to v0.5 by @rouault in #151
- Require minimum length of 1 for primary_geometry #129 by @m-mohr in #153
- Clean-up spec and JSON Schema by @m-mohr in #131
- Clean-up README by @m-mohr in #156
- The default value of the crs field is required #152 by @m-mohr in #154
- Require at least one column by @m-mohr in #158
- Add basic valid and invalid tests for the json schema by @jorisvandenbossche in #141
- Refer to RFC 2119 for definition of requirement levels by @tschaub in #160
- Read version number from the schema by @tschaub in #159
New Contributors
- @evetion made their first contribution in #109
- @yeelauren made their first contribution in #108
- @tschaub made their first contribution in #121
- @jiayuasu made their first contribution in #150
- @m-mohr made their first contribution in #153
Full Changelog: v0.4.0...v1.0.0-beta.1
v0.4.0
What's Changed
- Allow the "crs" to be unknown ("crs": null) by @jorisvandenbossche in #94
- Use PROJJSON instead of WKT2:2019 by @brendan-ward in #96
- Move JSON Schema definition to
format-specs/
by @kylebarron in #93 - Bump json schema version to 0.4.0 by @kylebarron in #104
- Updates for 0.4.0 release by @cholmes in #105
- Script to write nz-building-outlines to geoparquet 0.4.0 by @kylebarron in #87
- Example: Use
total_bounds
for finding bounds of GeoDataFrame by @kylebarron in #91 - README.md: mentions GDAL as implementation by @rouault in #100
New Contributors
- @brendan-ward made their first contribution in #96
Full Changelog: v0.3.0...v0.4.0
v0.3.0
What's Changed
- New orientation field to specify winding order for polygons by @felixpalmer @jorisvandenbossche and @cholmes in #74, #80, and #83.
Full Changelog: v0.2.0...v0.3.0
v0.2.0
What's Changed
- Add Apache license by @cholmes in #38
- Expand WKB encoding to ISO WKB to support 3D geometries by @jorisvandenbossche in #45
- CRS field is now optional (with default to OGC:CRS84) by @alasarr in #60
- Add a "geometry_type" field per column by @jorisvandenbossche in #51
- Add "epoch" field to optionally specify the coordinate epoch for a dynamic CRS by @jorisvandenbossche in #49
- Add section on winding order by @felixpalmer in #59
- Add validator script for Python based on JSON Schema by @Jesus89 in #58
- Script to store JSON copy of metadata next to example Parquet files by @kylebarron in #68
- Readme enhancements by @jzb in #53
- geoparquet.md: refer to OGC spec for WKB instead of ISO by @rouault in #54
- Update validator with the latest spec changes by @Jesus89 #70
New Contributors
- @cayetanobv made their first contribution in #57
- @rouault made their first contribution in #54
- @jzb made their first contribution in #53
- @felixpalmer made their first contribution in #59
Full Changelog: v0.1.0...v0.2.0
v0.1.0
Initial Release of GeoParquet
This is our first release of the GeoParquet specification. It should provide a clear target for implementations interested in providing support for geospatial vector data with Parquet, as we iterate to a stable 1.0.0 spec.
Initial work started in the geo-arrow-spec GeoPandas repository, and that will continue on Arrow work in a compatible way, with this specification focused solely on Parquet.
What's Changed
- Update geoparquet spec by @TomAugspurger in #2
- Attempt to align with geoarrow spec by @cholmes in #4
- Align "geo" key in metadata and example by @jorisvandenbossche in #5
- Clarify the Parquet FileMetadata value formatting (UTF8 string, JSON-encoded) by @jorisvandenbossche in #6
- Clarify that WKB means "standard" WKB enconding by @TomAugspurger in #16
- More explicitly mention the metadata is stored in the parquet FileMetaData by @jorisvandenbossche in #20
- Readme enhancements by @cholmes in #19
- Optional column metadata field to store bounding box information by @jorisvandenbossche in #21
- Clarify that additional top-level fields in the JSON metadata are allowed by @jorisvandenbossche in #28
- CRS spec definition for version 0.1 by @alasarr in #25
- Update example parquet file by @TomAugspurger in #24
- Clean up TODOs in geoparquet.md by @TomAugspurger in #31
- "edges" field spec definition for version 0.1 by @Jesus89 in #27
- Add known libraries that support GeoParquet to README by @jorisvandenbossche in #29
- Updated warning in readme by @cholmes in #33
New Contributors
- @TomAugspurger made their first contribution in #2
- @cholmes made their first contribution in #4
- @jorisvandenbossche made their first contribution in #5
- @alasarr made their first contribution in #25
- @Jesus89 made their first contribution in #27
Full Changelog: https://github.com/opengeospatial/geoparquet/commits/v0.1.0