1

I have an image of a large polyconic map projection: Lake Huron (Note that the actual image is much larger, I just made it smaller to upload it.)

I would like to take in a user's GPS coordinates and plot where they are on this map in a Java program.

I attempted to follow the directions in this paper (Map Projections: a Working Manual, page 128):

https://pubs.er.usgs.gov/publication/pp1395

I can not seem to get an accurate location. When using -82.25 as my central meridian, 43 as my origin latitude, I tried to plot -84.5, 43, but received a location too far to the southeast. The marker should (theoretically) be at the intersection of the two lines west and north of it.

Final screenshot

Is this not the correct equation? Is it just human error? At this point, I know that I am not having a problem with the conversion from degrees/minutes/seconds to degrees.decimal, and I also am running the equation with all values converted to radians.

  • The map is not in longlat, it just has those drawn on for reference. You need to transform a couple of positions to this polyconic and use those to georeference. – mdsumner Jun 5 '16 at 19:09
  • What do you mean by it is not in longlat? – FWhitaker Jun 5 '16 at 19:39
  • You said it yourself: "I have an image of a large polyconic map projection". – mdsumner Jun 6 '16 at 11:08
  • I gotcha. Not this: georeference.org/doc/latitude_longitude_projection.htm – FWhitaker Jun 6 '16 at 22:22
  • Can you share the file? It is important to georeference in the native projection, but often warping gets used unnecessarily – mdsumner Jun 7 '16 at 9:57
0

You may be right with the central meridian, but 43°N is not your origin latitude, because the parallel of origin should be a straight line. In most cases, the origin is at the equator.

Since you do not know the exact projection, I suggest to georeference the map to the imprinted degree grid. You can use QGIS for such tasks, grabbing as much grid intersections as you can. Target CRS would be EPSG:4269 NAD83.

Once georeferenced, you can reproject the raster to any CRS you want (even polyconic if you wish), and GPS coordinates will always land on the right spot if you use standard projection software like GDAL ogr2ogr.

  • I don't want to warp the image itself, as I plan to use it (as part of an app). If I had an equation that told me the translation method used, I could apply it to the map. I did put the map into QGIS, and georeferenced it, but this turns the map into a project file with data, which I can not use for a small app on a phone. QGIS did not give me an appropriate translation function, or at least I could not find it. – FWhitaker Jul 8 '16 at 15:08
  • Georeferencing to a vrt file might be what you need. It wraps around the untouched source raster, and you can look into it and modify it with a text editor. – AndreJ Jul 9 '16 at 5:38
  • The vrt file did it. If anyone refers to this, I saved a vrt file from the layer in QGIS, and then this site tells you how to how the program converts your image using the vrt file: gdal.org/gdal_datamodel.html – FWhitaker Aug 4 '16 at 21:02
0

The problem here is that you have THREE coordinate systems....

  1. The lat-long coordinates you get from a GPS, also known as WGS 84 or EPSG:4326

  2. The transformed coordinates of the projection. Often these are in metres or kilometres on the ground in an approximate cartesian (ie right-rectangular) coordinates. What are the units of these? Is the detailed description of the projection given on the map? Please show it.

  3. Finally, the pixel coordinates on the image. This starts at (0,0) in the bottom left of your image file and goes up to (X,Y) at the top right where X and Y are the number of pixels.

You need to transform from 1 to 3 to know which pixel on the image corresponds to any given lat-long.

The transformation from 1 to 2 is done by the formula in the book.

The transformation from 2 to 3 is done by stretching coordinates of 2 in the X and Y direction. This depends on how many pixels your image file is.

The usual way of working out these transforms is to load it into a GIS and then identify a few known lat-long points on the map and then the GIS can work out the correct transformations and coordinate systems. This process is known as "Georeferencing", and can be done in QGIS, the leading open-source GIS.

There should be no need to implement the algorithms in that book since there are libraries for projection systems freely available.

  • Thank you very much! I already downloaded qgis, but it is good to know that I am going in the correct direction. – FWhitaker Jun 6 '16 at 22:21
  • This gives me the problem of warping the existing map into a stretched out shape, and also does not seems to relay a method for calculating x,y coordinates. I can turn it into equirectangular, but it still warps the original image. I can not find a method in the georeferencer to simply give me the equations and enable me to calculate them in an outside program. – FWhitaker Jun 8 '16 at 18:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.