Merging drone/photogrammetry-derived DEM and satellite-derived DEM using ArcGIS Pro

arcgis-prodemmergeunmanned aerial vehicle

I have a DEM that was produced from drone images at a site of interest, processed through Agisoft Metashape. Because I used a drone, the site-level DEM boundaries/edges are irregular rather than rectangular, such as the DEM tiles derived from satellites.

I also have several DEMs of the area around the site produced from various satellite images/sources, such as ASTER and SRTM.

I would like to merge my drone-derived site DEM with one of the satellite-derived regional DEM tiles in order to do a visibility/viewshed analysis. I'm using ArcGIS Pro.

It is important to use the fine-grained, drone-derived surface data from the site, which takes into account walls and small variations in topography. But I also need the surrounding regional terrain, which is mountainous and one can see the other side of the valley from many given observer points. I don't need fine-grained resolution for those areas, but I still need them to be part of the terrain used for visibility analysis.

I haven't found a tool (or tool setting) in ArcGIS Pro that will successfully merge my drone(site) and satellite(regional) DEMs and my best guess as to why is that one of my DEMs is irregular in shape. I'd like to give my site-level DEM priority where they overlap.

Do my two DEMs have to have the same cell size to merge?

I do not know ArcPy.

Best Answer

Assuming:

  • both are in the same projection / coordinate reference system,
  • you have a Image/Spatial Analyst license, and
  • NoData has been set correctly on the High res DEM.

You could use a Raster Calculator expression:

Con(IsNull("High res"),  "Low res",  "High res")

You will need to set the following Environments:

  • Processing Extent: Same as layer "Low res"
  • Cell Size: Same as layer "High res"
  • Snap Raster: "High res"

enter image description here

enter image description here

enter image description here

If your High res DEM doesn't have it's NoData value set, but you know what it is, you can use the following expression (in my data 0 is NoData, but it could be anything that's not a valid elevation):

Con("High res" == 0,  "Low res",  "High res")

enter image description here

Related Question