With QGIS you can use the `Point sampling tool` plugin to retrieve the value of the DEM raster cell on which each GPS point is situated. Alternatively, `v.what.rast` from GRASS GIS and `Add grid values to point` from SAGA GIS should be available in the QGIS processing toolbox. Here is a brief guide for using all three: https://tutorials.ecodiv.earth/toc/sample_raster_in_qgis.html In ArcGIS you have the `Extract values to points` tool. The reference for this is here: http://desktop.arcgis.com/en/arcmap/latest/tools/spatial-analyst-toolbox/extract-values-to-points.htm Lastly, here is a question explicitly concerned with open source approaches to the problem, with a lot of different alternatives in the answers: https://gis.stackexchange.com/questions/3538/extracting-raster-values-at-points-using-open-source-gis Extracting the raster values to the points using one of these tools should then allow you to compare the elevation values to any other attributes you might have stored in the GPS points.