Skip to content

Commit 31f29a3

Browse files
committed
Clarify the special values
1 parent 21d3d49 commit 31f29a3

File tree

1 file changed

+21
-21
lines changed

1 file changed

+21
-21
lines changed

Geospatial.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -99,27 +99,27 @@ the presence of edge cases.
9999

100100
* `null` instance: Skip it and continue processing the remaining
101101
geospatial instances. Do not produce a bounding box if all instances are null.
102-
* Non-`null` instance with [invalid geospatial values](#invalid-geospatial-values):
103-
* X and Y: Skip any invalid X or Y value and continue processing the
102+
* Non-`null` instance with [special geospatial values](#special-geospatial-values):
103+
* X and Y: Skip any special X or Y value and continue processing the
104104
remaining X or Y values. Do not produce a bounding box if all X or all Y
105-
values are invalid.
105+
values are special values.
106106

107-
* Z: Skip any invalid Z value and continue processing the remaining Z values.
108-
Omit Z from the bounding box if all Z values are invalid.
107+
* Z: Skip any special Z value and continue processing the remaining Z values.
108+
Omit Z from the bounding box if all Z values are special values.
109109

110-
* M: Skip any invalid M value and continue processing the remaining M values.
111-
Omit M from the bounding box if all M values are invalid.
110+
* M: Skip any special M value and continue processing the remaining M values.
111+
Omit M from the bounding box if all M values are special values.
112112

113-
Readers should follow the guidelines below when examining bounding boxes.
114-
Parquet does not permit `null` or `NaN` values in bounding boxes, whether at
115-
the overall bounding box level or within individual coordinate fields.
113+
Readers should follow the guidelines below when examining bounding boxes.
116114

117115
* No bounding box: No assumptions can be made about the presence or validity
118116
of coordinate values. Readers may need to load all individual coordinate
119117
values for validation.
120118

121119
* A bounding box is present:
122-
* X and Y: Both X and Y of the bounding box must be present.
120+
* X and Y: Both X and Y of the bounding box must be present. If any of
121+
`xmin`, `ymin`, `xmax`, or `ymax` is `NaN`, the bounding box is not
122+
reliable and should not be used.
123123
* Z: If Z of the bounding box is missing, readers should not assume
124124
anything about the presence or validity of Z values and may need to
125125
load individual coordinates for validation.
@@ -196,22 +196,22 @@ follows the de facto standard for axis order in WKB and is therefore always
196196
(x, y) where x is easting or longitude and y is northing or latitude. This
197197
ordering explicitly overrides the axis order as specified in the CRS.
198198

199-
# Invalid geospatial values
199+
# Special geospatial values
200200

201-
An invalid geospatial value refers to the coordinate values of a non-`null`
202-
geospatial instance that are encoded in a valid WKB format, but are not
203-
considered valid values under this specification. While different WKB
204-
readers may interpret such values differently, the resulting output should
205-
be treated as invalid.
201+
A special geospatial value refers to the coordinate values of a
202+
non-`null` geospatial instance that should be excluded from bounding box
203+
calculations.
206204

207-
* `NaN`: Not a Number. For example, a `Point` with no X and Y values in WKB is
205+
* `NaN`: Not a Number. A `Point` with no X and Y values in WKB is
208206
represented by a `Point` with each ordinate value set to an IEEE-754
209207
NaN value (e.g., hex: `01 01 00 00 00 00 00 00 00 00 00 00 f8 7f 00 00 00 00 00 00 f8 7f`).
210-
NaN values in other geometry types are typically considered invalid geometries by other
211-
libraries.
208+
NaN values in other geometry types are typically considered invalid
209+
geometries by other libraries.
212210
* `Empty geometries`: Geometries explicitly marked as empty in WKB using
213211
indicators such as `numPoints`, `numRings`, or `numGeometries`. Examples
214212
include `LineString` with no coordinates (hex: `01 02 00 00 00 00 00 00
215213
00`) or `Polygon` with no coordinates (hex: `01 03 00 00 00 00 00 00 00`).
216214
* `Out-of-bounds coordinates`: Values that fall outside the valid range
217-
for `GEOGRAPHY` types. For example, `x < -180` or `x > 180`.
215+
for `GEOGRAPHY` types. For example, `x < -180` or `x > 180`.
216+
* Any invalid WKB representation of a geospatial instance, such as an empty
217+
string.

0 commit comments

Comments
 (0)