Raster-based analysis of changes in structures (homes and other buildings)
E. Hardin, M.O. Kurum, H. Mitasova
Identification of changes in buildings
# Results of raster time series analysis
# can be used to identify locations where the change in elevation indicates
# change in a building
# identify elevations above a user chosen threshold (9m) in maximum elevation map
d.rast JR_maximum_05mrst
r.mapcalc 'JR_houses_rast=if((JR_maximum_05mrst-9),1,null(),null())'
# convert the remaining raster area to a vector area
# and remove small areas (tool=rmarea) that may be tops of tall trees or data anomalies
r.to.vect input=JR_houses_rast output=JR_houses_vect feature=area
v.clean input=JR_houses_vect output=JR_houses_vect_clean tool=rmarea thresh=6
# convert the vector area to a vector point representing the house location
v.type input=JR_houses_vect_clean output=JR_houses_point type=centroid,point
# houses that were either constructed or had fallen during the study period
# can be identified using the following condition:
r.mapcalc 'JR_houses_updown=if((9-JR_maximum_05mrst),null(),null(),\
if((JR_19971002_05mrst-9)*(JR_20080327_05mrst-9),null(),null(),\
if((JR_20080327_05mrst-9),1,1,0)))'
JR_19971002_05mrst
JR_20080327_05mrst
MyHouses overlaid on MyMaximumMap
# This condition reads:
# if the maximum map is less than 9m, then it wasn't a house, set cell to null
# if the elevation was greater than zero in both the earliest map and the latest map,
# then the house was likely stable though the entire study period, set cell to null
# if the previous condition was not met and the house is standing in the latest map,
# then it was likely built, set cell to 1 = constructed
# otherwise, the house was destroyed at some point set cell to 0 = destroyed
# Now, this map can be overlaid on top of any other map to highlight structural activity.