Skip to content
Novus Examples
gpx1.4 KB

GPX 1.0 — Legacy Schema

The same eight trackpoints written to the GPX 1.0 schema. The two versions differ in namespace and in where document metadata lives — 1.1 wraps it in a `metadata` element, 1.0 puts name, desc and time directly under `gpx` — which is exactly what a namespace-hardcoding reader gets wrong.

Preview — first 44 linesgpx
<?xml version="1.0" encoding="UTF-8"?>
<gpx version="1.0" creator="Novus Examples geospatial fixtures" xmlns="http://www.topografix.com/GPX/1/0">
  <name>Kestrel Bay Coast Road</name>
  <desc>Synthetic GPS trace over an invented territory.</desc>
  <time>2026-01-01T09:00:00Z</time>
  <trk>
    <name>Coast Road excerpt</name>
    <trkseg>
      <trkpt lat="47.064024" lon="-12.482008">
        <ele>12.1</ele>
        <time>2026-01-01T09:00:00Z</time>
      </trkpt>
      <trkpt lat="47.066181" lon="-12.478086">
        <ele>18.9</ele>
        <time>2026-01-01T09:00:15Z</time>
      </trkpt>
      <trkpt lat="47.068297" lon="-12.474186">
        <ele>24.8</ele>
        <time>2026-01-01T09:00:30Z</time>
      </trkpt>
      <trkpt lat="47.070538" lon="-12.470269">
        <ele>30.5</ele>
        <time>2026-01-01T09:00:45Z</time>
      </trkpt>
      <trkpt lat="47.072646" lon="-12.466428">
        <ele>36.7</ele>
        <time>2026-01-01T09:01:00Z</time>
      </trkpt>
      <trkpt lat="47.074851" lon="-12.462489">
        <ele>41.5</ele>
        <time>2026-01-01T09:01:15Z</time>
      </trkpt>
      <trkpt lat="47.077037" lon="-12.458586">
        <ele>46.1</ele>
        <time>2026-01-01T09:01:30Z</time>
      </trkpt>
      <trkpt lat="47.079139" lon="-12.45468">
        <ele>49.4</ele>
        <time>2026-01-01T09:01:45Z</time>
      </trkpt>
    </trkseg>
  </trk>
</gpx>

Specifications

Crs
WGS 84 (EPSG:4326)
Encoding
UTF-8
Line Endings
LF
Seed
20260807
Jitter Sigma Degrees
0.000025
Start Time
2026-01-01T09:00:00Z
Sample Interval Seconds
15
Format
GPX 1.0
Tracks
1
Segments
1
Trackpoints
8
Namespace
http://www.topografix.com/GPX/1/0
Metadata Element
false

Testing contract

Expected to pass
Scenario
Open the file with a reader and check that it recognises the GPX 1.0 namespace.
Expected result
Eight identical trackpoints load from both versions; a reader bound to one namespace fails on the other rather than silently returning zero points.

What is a .gpx file?

GPX (GPS Exchange Format) is an XML schema for GPS data, storing waypoints, routes, and tracks with coordinates, elevation, and timestamps. It is the standard interchange format for GPS devices and fitness and navigation apps. Track points capture recorded movement over time.

How to use this file

Use an example GPX file to test GPS track parsing, elevation and timestamp handling, and tools that import routes or visualize recorded activity.

How to use this file for testing

“GPX 1.0 — Legacy Schema” is a deterministic Novus Examples fixture for Geospatial, Conversion testing, Error handling. GeoJSON, GPX, and KML files with points, lines, polygons, and tracks — for testing map tools, route parsers, and geo importers.

Documented properties for this file: seed 20260807 · UTF-8 · LF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Geospatial fixtures publish one invented territory across formats, with the coordinate reference system and feature counts documented in specs. Convert or reproject and diff against the twin in the same group; edge-case geometries state exactly which assumption they are built to break.

Code examples

import gpxpy  # pip install gpxpy

with open("gpx-1-0-schema.gpx") as f:
    gpx = gpxpy.parse(f)
print(sum(len(t.segments) for t in gpx.tracks), "segments")

Generated by generation/geospatial.py. Free for any use, no attribution required — license.