04GeoData Lab

GeoData Lab / FIELD NOTES

Geometry with its assumptions attached.

Know the coordinate, topology and measurement boundaries before reusing a result.

WGS84, longitude first

Inputs follow the longitude/latitude convention of RFC 7946. This edition accepts 2D Point, Polygon, MultiPolygon and LineString features in a FeatureCollection. Convert other coordinate systems before importing; a legacy crs member is rejected. Altitude, antimeridian geometry and global extents are outside this edition.

The plot auto-fits the input with a local equirectangular view and a latitude-based horizontal scale. It is a coordinate plot without basemap tiles. Point-in-polygon uses planar segments in degrees, so inputs are restricted to a regional extent of at most 30° per axis. This is not an area, navigation or cadastral measurement tool.

A crs member is rejected at collection, feature and geometry level, even if null or labeled WGS84. Convert coordinates first; this engine does not infer or transform CRS. Plausible axis swaps and mislabeled coordinates cannot be reliably detected by a numeric range check.

Boundary and topology

Point location uses ray crossing plus a point-to-segment tolerance of approximately 10⁻¹⁰ degrees. Exterior and hole edges are boundaries. A toggle determines whether boundaries count as membership. Overlapping polygons may produce multiple matches.

Validation rejects unclosed or zero-area rings, self intersections, repeated adjacent vertices, holes crossing the exterior, overlapping or nested holes, duplicate feature IDs and invalid coordinates. Validating the permitted subset is not a full implementation of every GeoJSON or OGC geometry rule.

MultiPolygon components must be strictly disjoint, including their boundaries; point-touching is intentionally unsupported even when valid in GEOS. An island strictly inside a component’s hole is supported. Each point is matched once per region feature ID. Overlap between separate features is allowed. See the independent oracle and near-edge counterexamples.

Trajectory review, not ground truth

Distance is spherical haversine distance using radius 6,371,008.8 meters. Speed divides distance by the timestamp interval. The Earth is approximated by a sphere; no road network or ellipsoidal inverse solution is used.

An isolated spike candidate has two adjacent segments above the threshold and a bridge below it. Adjacent candidate spikes are not automatically removed. Endpoints are retained. A preview is a proposed review artifact; it does not overwrite the input or establish a correct trajectory.

Input and output limits

Browser inputs are limited to 2 MB, 10,000 features, 20,000 total positions, 200 polygon components, 20 components per MultiPolygon, 20 rings per component and 600 positions per ring. A join is limited to 1,000,000 point/component pairs and 100,000 output pairs. Split larger inputs into smaller regions. The visible result table is limited to 500 rows.

All computation runs in this tab. The site loads its static assets but has no data upload endpoint, map-service calls, analytics SDK or persistent file storage. Download the result to keep it. Geometry and synthetic inputs are checked against the fixed test suite before publication.

Exact-test counts in the workbench are point/region predicate calls, not ring-edge operations or a complexity bound. MultiPolygon region envelopes can admit gaps. All exercise data is synthetic; imported coordinates stay in this tab. The homepage and GeoData authoring source remain private; browser-delivered JavaScript is readable.

Further reading

University course catalog and six mapped units

Back to the workbench →