Ideas for random variation of a DEM grid with spatial autocorrelation

3719
4
06-05-2015 10:38 AM
RachaelJohnson
Occasional Contributor

I want to run a Monte Carlo uncertainty analysis in a program I am creating.  I've got the framework for my Monte Carlo analysis set up and it runs fine except for one thing: my method of variation.

My method of random variation so far is to create a Normal Raster (sa.CreateNormalRaster) with the cellsize and extent of my existing DEM, adjust the Normal Raster values so they fall within the RMSE of my DEM (+/- 0.5 ft), and then add that adjusted Normal Raster to my existing DEM.  My DEM has a 5.0 ft resolution and adjacent cells vary by less than 0.2 ft, usually; the terrain is very flat.  The potential for adjacent cells to vary by up to 1 ft is unacceptable for my purposes.

I need to somehow spatially correlate these random values so I can apply them to my DEM in a way that makes sense.  I know this is a somewhat tall order given the complexity of the published literature on this topic.  I don't necessarily need to correlate the random values with the spatial covariance of the DEM at this point in time (although that would be preferred).  It's my understanding that I will very likely need to bring in another program (like R) to do the latter.  For now, I would ideally like to do something within Python.

0 Kudos
4 Replies
DarrenWiens2
MVP Honored Contributor

I've read this a few times and am really not sure where the question is. Can you try explaining, concisely, exactly what you need, please?

0 Kudos
RachaelJohnson
Occasional Contributor

I need to create a raster that has values between -0.5 and +0.5 and adjacent cells in that raster are more similar to nearby cells than they are to further cells.  Each time I generate such a grid, the value at a particular grid point will vary randomly.  Thus, I need a random grid that is spatially correlated, something like that described on this page: Generating spatially correlated random fields with R – Santiago Beguería

0 Kudos
DarrenWiens2
MVP Honored Contributor

I didn't read the whole paper, but they do mention Kriging, which makes sense and is possible in ArcGIS. I imagine you would create randomly placed points with random values +/- 0.5 and interpolate values between them using some incarnation of Kriging.

0 Kudos
RachaelJohnson
Occasional Contributor

I was thinking about doing something like that while I was typing up my response to you, actually.  I'll see how well it works soon!

0 Kudos