I have a bathymetry DEM which I want to display in 3D (ArcScene or Fledermaus). The data set is one single raster but looks like it is a mosaic of several smaller datasets. The problem is the absolute height values between these sub-sets varies and is quite prominent: resulting in the cliff like features in the below picture. 3d image


I want to 'correct' each of the subsets to create a more smooth and realistic scene. I'm not bothered by the accuracy of the depths, this is just a relative correction for visualisation.

My Ideas

Originally I had hoped we had the individual sub-sets as separate raster and I was going to start from the largest sub-set raster, take an adjoining raster and add or takeaway the mean difference in the heights along their adjoining edge. Maybe looking a bit at the difference in error from one side of the edge to the other. For an indication the bin size is 100m and depths only change by 1-3m between cells within a sub-set. Between sub-sets the difference is 30-100m.

Keeping his idea in mind, I then tried to separate the sub-sets back out ('un-mosaic'). Manually digitising will work but it's a lot of manual labour - too much to justify doing. Picking out the edge has to be quite precise because if I am a cell out on either side the cliff edges will still be there.

I have been trying to find more automated ways of doing this and tried a lot of edge finding filters (3x3 and 5x5 using various values) and sharpening techniques although my experience of working with rasters in this way is quite limited. It sort of worked but wasn't too great and the edge it would pick out was 2-3 pixels wide.

I then just tried all of the hydrology tools (ArcMap) and slope as I thought they might help pick out these sharp contacts. That worked like the above filtering but gave better results when I used the 'Drop' raster from the 'Flow Direction' tool. See below:
2D raster 2D edges

This isn't perfect but I thought I could use this, convert to polylines, manually digitise the missed parts, convert to polygons and then clip each sub-set. I'm not even sure that this would work but converting to polylines gives me the below issue. Using the simplify lines check box just made the geoprocessing run for almost 24 hours before I cancelled it. lines

Any ideas where to go from here?


As commented by @whuber:

You might be able to adapt some ideas from the [Q&A] at Matching colours in already mosaiced single image? which deals with matching colors in a mosaiced image. Mathematically the problem of matching colors is essentially the same as matching elevations. You have the additional problem of identifying the edges of the mosaic, but that's relatively straightforward to do via many techniques, such as using line-segment identification, filtering on curvature, looking at focal ranges, etc.


Smooth (low pass) filtering after color-matching (as suggested by @PolyGeo) is the best way to go for a coherent overall DEM mosaic. If, as you say, you just want a solid overall 3D look (without as much care for specific cell accuracy), you might want to use Raster Calculator on your subset DEMs prior to mosaicking. If the subsets are off from the larger DEMs by a near-constant amount (say, 30 m), you could add or subtract that number from every cell in the subset raster. Repeat for every subset raster, using an approximate difference that is unique for each subset in the calculation. Finally, mosaic the outputs of all the Raster Calculator processes.

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.