You are on the right track as far as trying to match up the coordinate systems of all of your datasets. The problem you are encountering is not so much a problem of the software projecting the data incorrectly, but of using the wrong operation to define the projection of your data.
This answer directly discusses the difference between the Define and Project commands in ArcGIS. It also has links to the relevant ESRI help files discussing the different commands.
Let's start with what factors you are able to control.
- You have a
shapefile
that defines your roads around Lake Tahoe, in UTM Zone 10 NAD 27
, from the USGS. Generally, spatial data from there is going to have the projection already defined, meaning that when you look at the properties in ArcMap, it will list the Coordinate System. You can use ArcGIS to Reproject
this layer as necessary, in this case, to the UTM Zone 10 NAD 83 Meters
, projection.
- You have a
.gpx
file of GPS
coordinates that defines a bike trip. You have the ability to convert this to a file of coordinates in either Lat/Lon
or UTM
. This file could then be brought into ArcGIS and reprojected as necessary.
- You know the projection of the
Lidar
data from opentopography.org. It is UTM Zone 10N NAD 83 Meters
.
The one thing you are unable to change, because of the format, is the Lidar data, which you are going to read using the LidarViewer software. You thus, must ensure that the coordinate systems
of all the other data layers, matche the Lidar, since you will be importing the other data into the Lidarviewer as well, to overlay.
Here is the process.
- Look at the Roads
shapefile
. In ArcMap, if you look at the properties, and shows that it has a coordinate system defined, you will need to use the Project command to Reproject the data from UTM 10 NAD 27
, to UTM 10 NAD 83
.
- a. Convert the
.gpx
data using the website, and save as Lat/Lon
. This should give you a text file of coordinates in degrees
.
b. Add this using the Add X/Y Data command in ArcGIS, specifying the coordinate system as: Geographic: NAD 83
.
c. Use the Project tool on this new layer, and choose the UTM Zone 10, NAD 83 Meters
coordinate system as your output.
What you should end up with is all 3 input layers being in the same coordinate system. You can now import them into the LidarViewer and they should overlay properly.
A note about the LidarViewer software: Even though it does not support coordinate systems directly, it will still overlay layers properly if they are all in the same coordinate system to begin with. This simply means that all of the projection
has to be performed prior to the data import.
Using pure GDAL, you can preserve the waypoint symbol and type of an original GPX file with
ogr2ogr -f GPX -dsco GPX_USE_EXTENSIONS=YES out.gpx in.gpx waypoints
<wpt lat="51.295094" lon="6.790674">
<ele>39.0</ele>
<time>2014-10-14T13:56:58Z</time>
<name>Push Log Point #1</name>
<desc>Lat.=51.295094, Long.=6.790674, Alt.=39.000000m, Speed=3Km/h, Course=45deg.</desc>
<sym>Waypoint</sym>
<type>Other</type>
<extensions>
<label><label_text>Push Log Point #1</label_text></label>
</extensions>
</wpt>
So if you have a shapefile in QGIS, create columns with names sym
and type
and export it to GPX format with GPX_USE_EXTENSIONS=YES
(which is default for GPX since QGIS 2.4).
Remember to save into EPSG:4326, as GPX only allows that.
Other features (like label
) will be exported in the <extensions>
element, and probably ignored by a GPS unit. My output reads as follows:
<wpt lat="51.295094" lon="6.790674">
<name>Push Log Point #1</name>
<sym>Waypoint</sym>
<type>Other</type>
<extensions>
<ogr:elevation>39.0</ogr:elevation>
<ogr:label>1</ogr:label>
</extensions>
</wpt>
<wpt lat="51.295091" lon="6.790663">
<name>Push Log Point #2</name>
<sym>church</sym>
<type>tower</type>
<extensions>
<ogr:elevation>38.0</ogr:elevation>
<ogr:label>2</ogr:label>
</extensions>
</wpt>
The available symbols depend on the GPS units, so you might create a sample GPX file with the unit and test all available symbols. These will not be imported into QGIS, but you can read the file with a text editor.
As an example, symbols of the Garmin Oregon 6xx are listed at this site. You can even create your own symbols and upload them.
Best Answer
On the ArcGIS stack, there is the Match Photos To Rows By Time which you can use after you've imported your GPX files as point feature classes. From there if you need the GPS fix back in the EXIF tags, you could use pexif on the original files.