keplergl / kepler.gl

Kepler.gl is a powerful open source geospatial analysis tool for large-scale data sets.
http://kepler.gl
MIT License
10.29k stars 1.73k forks source link

Support GPX and NMEA files #1099

Open isaacbrodsky opened 4 years ago

isaacbrodsky commented 4 years ago

Is your feature request related to a problem? Please describe. I'd like to be able to load GPS trace files into kepler.gl.

Describe the solution you'd like Would be nice to be able to directly load GPX and NMEA log files in Kepler.

Describe alternatives you've considered It's very possible to use other OSS tools to process these files into other formats (like lat/lng CSV), but this requires going through some other tools and knowing how to transform these files.

Additional context I should be able to provide some sample GPX or NMEA files if needed and you can't find any online. I noticed GeoDataViewer for VS Code which uses kepler.gl supports GPX but not NMEA.

isaacbrodsky commented 4 years ago

One source of test data is OSM: https://www.openstreetmap.org/traces Their wiki has some more information on the formats: https://wiki.openstreetmap.org/wiki/GPX https://wiki.openstreetmap.org/wiki/NMEA

ibgreen commented 4 years ago

See discussion in loaders.gl ticket https://github.com/visgl/loaders.gl/issues/701.

Suggest creating dedicated loaders.gl ticket.

kylebarron commented 4 years ago

I think GPX is much more widely used than NMEA, so I would suggest putting effort in GPX first. To be discussed further in loaders.gl, but GPX is a broad specification (closer to KML in my opinion), so loading it to GeoJSON might lose some information, and a GPX -> GeoJSON -> GPX roundtrip might in general be hard to create the same GPX file.

isaacbrodsky commented 4 years ago

See also visgl/loaders.gl#737

kylebarron commented 4 years ago

I made a separate issue in loaders.gl just for GPX: https://github.com/visgl/loaders.gl/issues/738

isaacbrodsky commented 4 years ago

I think GPX is much more widely used than NMEA, so I would suggest putting effort in GPX first. To be discussed further in loaders.gl, but GPX is a broad specification (closer to KML in my opinion), so loading it to GeoJSON might lose some information, and a GPX -> GeoJSON -> GPX roundtrip might in general be hard to create the same GPX file.

I agree, GPX is probably much more widely used for interchange. Converting out of GPX might lose the concept of tracks/routes/waypoints that GPX has. It also has data specific to the GPS use case like dilution of precision, number of satellites visible, graphical symbol, and so on.

ibgreen commented 4 years ago

In general I would personally prefer to offer such loaders with two modes / output format - a mode that is not lossy, and a mode that converts to geojson (options.gpx.geojson: true).

What the non-geojson output format should be is up for discussion. It could be custom for each loader (whatever the underlying loaders return), lightly normalized, or geojson with extensions, etc.