2

Is it possible to start from a USGS historical topographic map and get to a Unity terrain heightmap? To see an example of the kind of historical topo map I am talking about:

  1. Go to: https://ngmdb.usgs.gov/topoview/viewer/#9/35.8690/-109.0269
  2. Enter "Fort Defiance, AZ" in the upper right search box (with Location tab selected)
  3. Slide the right date slider down to "1886"
  4. Zoom out in the main map to see the selected area

If you then click on the image of the map in the right panel, a preview will come up showing the 1886 topographic map. The map can be downloaded as a GeoTIFF, which I did.

I have next to no experience with GIS, but I've tried a number of things with gdal, QGIS, Mapbox Studio, among others, based upon steps others have taken, but to no avail. I started with attempting to follow this:

Importing DEM Terrain Heightmaps for Unity using GDAL

then this:

Cropping GeoTIFF to square at specific lat/long for use as Unity 3d terrain heightmap?

I cannot get anything to work. I'm thinking that, while the GeoTIFFs of these historical topo maps may contain some lat/long information, there is no elevation data and, in that respect, it is simply an image. Am I correct in this?

Here is the gdalinfo output for the example map above:

~/workspace/unity/terrainmaps/ -> gdalinfo az_fd_geo.tif
Driver: GTiff/GeoTIFF
Files: az_fd_geo.tif
Size is 4958, 5954
Coordinate System is:
PROJCS["unnamed",
    GEOGCS["NAD27",
        DATUM["North_American_Datum_1927",
            SPHEROID["Clarke 1866",6378206.4,294.9786982138982,
                AUTHORITY["EPSG","7008"]],
            AUTHORITY["EPSG","6267"]],
        PRIMEM["Greenwich",0],
        UNIT["degree",0.0174532925199433],
        AUTHORITY["EPSG","4267"]],
    PROJECTION["Polyconic"],
    PARAMETER["latitude_of_origin",0],
    PARAMETER["central_meridian",-109.5],
    PARAMETER["false_easting",0],
    PARAMETER["false_northing",0],
    UNIT["metre",1,
        AUTHORITY["EPSG","9001"]]]
Origin = (-52090.740425979456631,3992327.326727173291147)
Pixel Size = (21.166666666666664,-21.166666666666615)
Metadata:
  AREA_OR_POINT=Area
  TIFFTAG_RESOLUTIONUNIT=2 (pixels/inch)
  TIFFTAG_XRESOLUTION=300
  TIFFTAG_YRESOLUTION=300
Image Structure Metadata:
  COMPRESSION=YCbCr JPEG
  INTERLEAVE=PIXEL
  SOURCE_COLOR_SPACE=YCbCr
Corner Coordinates:
Upper Left  (  -52090.740, 3992327.327) (110d 4'41.43"W, 36d 3'41.62"N)
Lower Left  (  -52090.740, 3866300.993) (110d 4'12.34"W, 34d55'32.52"N)
Upper Right (   52853.593, 3992327.327) (108d54'48.09"W, 36d 3'41.47"N)
Lower Right (   52853.593, 3866300.993) (108d55'17.61"W, 34d55'32.38"N)
Center      (     381.426, 3929314.160) (109d29'44.87"W, 35d29'42.08"N)
Band 1 Block=512x512 Type=Byte, ColorInterp=Red
  Overviews: 2479x2977, 1240x1489, 620x745, 310x373, 155x187, 78x94, 39x47
Band 2 Block=512x512 Type=Byte, ColorInterp=Green
  Overviews: 2479x2977, 1240x1489, 620x745, 310x373, 155x187, 78x94, 39x47
Band 3 Block=512x512 Type=Byte, ColorInterp=Blue
  Overviews: 2479x2977, 1240x1489, 620x745, 310x373, 155x187, 78x94, 39x47
~/workspace/unity/terrainmaps/ ->

So, is there a way to do what I'm trying to do, perhaps a different approached based on whatever the file has to offer?

1 Answer 1

1

Your TIFF contains three channels for RGB (type byte is 0-255) and no elevation. A TIFF can contain DEM as a single channel with float values. Here is the gdalinfo output for a TIFF with DEM data:

Files: matra.tif
Size is 3990, 3990
Coordinate System is:
PROJCS["HD72 / EOV",
    GEOGCS["HD72",
        DATUM["Hungarian_Datum_1972",
            SPHEROID["GRS 1967",6378160,298.247167427,
                AUTHORITY["EPSG","7036"]],
            TOWGS84[52.17,-71.82,-14.9,0,0,0,0],
            AUTHORITY["EPSG","6237"]],
        PRIMEM["Greenwich",0,
            AUTHORITY["EPSG","8901"]],
        UNIT["degree",0.0174532925199433,
            AUTHORITY["EPSG","9122"]],
        AUTHORITY["EPSG","4237"]],
    PROJECTION["Hotine_Oblique_Mercator_Azimuth_Center"],
    PARAMETER["latitude_of_center",47.14439372222222],
    PARAMETER["longitude_of_center",19.04857177777778],
    PARAMETER["azimuth",90],
    PARAMETER["rectified_grid_angle",90],
    PARAMETER["scale_factor",0.99993],
    PARAMETER["false_easting",650000],
    PARAMETER["false_northing",200000],
    UNIT["metre",1,
        AUTHORITY["EPSG","9001"]],
    AXIS["Y",EAST],
    AXIS["X",NORTH],
    AUTHORITY["EPSG","23700"]]
Origin = (699996.568399999989197,336014.475900000019465)
Pixel Size = (25.064314561403521,-25.064314561403513)
Metadata:
  AREA_OR_POINT=Area
Image Structure Metadata:
  INTERLEAVE=BAND
Corner Coordinates:
Upper Left  (  699996.568,  336014.476) ( 19d43'23.60"E, 48d21'56.71"N)
Lower Left  (  699996.568,  236007.861) ( 19d42'42.38"E, 47d27'58.99"N)
Upper Right (  800003.184,  336014.476) ( 21d 4'20.28"E, 48d21' 0.82"N)
Lower Right (  800003.184,  236007.861) ( 21d 2'16.68"E, 47d27' 4.03"N)
Center      (  749999.876,  286011.168) ( 20d23'10.73"E, 47d54'37.21"N)
Band 1 Block=3990x1 Type=Float32, ColorInterp=Gray

The last line contains the important information. You can download SRTM DEM, and for example in QGIS you can use the topographic map and DEM together and even can view it in 3D. There is a tutorial on https://www.lutraconsulting.co.uk/blog/2018/03/01/working-with-qgis-3d-part-1/ page how to use 3D view in QGIS. You may find several youtube videos, too.

2
  • Thanks for the response. So that I'm clear, when you say "You can download SRTM DEM, and for example in QGIS you can use the topographic map and DEM together and even can view it in 3D", you're saying that I could do this if my GeoTIFF had elevation data, but since it does not, I can't. Correct?
    – eggroll
    Commented Apr 4, 2020 at 16:29
  • Your GeoTIFF does not contain elevation data from the point of view of a software. None of the GIS programs can directly use contour lines from a scanned topographic map, those prefer DEM. You can use a DEM for example from an ESRI ASCII GRID file or a single band tif where the pixel values are the elevations.
    – Zoltan
    Commented Apr 4, 2020 at 18:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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