I am analyzing multiple LiDAR datasets looking at the changes between pre-wildfire and post-wildfire topography. The datatsets are of the same general location. I did not acquire the datasets on my own, so I am not the one who originally reduced the raw data from the instrument, which is part of my issue as I was not the individual to verify horizontal control.
The problem that I am having is that the datasets are, in general, slightly offset from one another. This poses a major problem for generating a comparison (raster subtraction) looking at elevation change. When I process such a comparison, the offset is more apparent on south facing slopes because they are steeper. I have included an illustration of my issue below. As is evident, the south facing slopes show a characteristic false positive change in elevation and the north facing slopes show a characteristic false negative change in elevation, though it is less drastic because the north facing slopes are not as steep.
I am hopeful that someone with experience can shed some light on a possible solution to this issue. Of course, the datasets can be shifted using the georeferencing toolbar, but I would just be guessing at the correct shift. I am looking for a systematic way of handling the shift. Possibly finding the corner of some landmark and using that point to align the datasets.
This raises a few questions - I will try to advise but can you clarify this:
You say "lidar" but it's apparent you're talking about elevation files, presumably raster format (not TINs) - is that correct? Do you have the lidar data, or were you given the raster elevation files?
Also, what is the resolution of the elevation rasters, and is their misalignment more than one pixel, or a fraction of a pixel?
I'd be cautious about moving either dataset unless the precise positioning of your output results is not critical. Ideally you should have accuracy information for both datasets - a specification and an accuracy report - then presuming you have lidar in LAS (point cloud) format, I'd extract your own elevation surfaces from the lidar and ensure those are pixel aligned before doing the before/after comparison ("pixel aligned" refers to both the raster resolution and also the precise placement of the pixels. This can be done in ArcGIS, but if you were given raster files,
Note that once you have the data as a raster you could determine the sift by splitting the problem into two: X and Y direction. For X direction you create a raster that define the slope (Rise/Run) in X direction. Set to NoData all values where abs(value) is below a threshold (eg 1 for 45deg). ShiftX = HeightDifference / X direction slope. Repeat similar for Y direction. I don't know of a function pre-written that does this. Once created you could just select any area and the average of the resulting pixels should be the shift to be applied.