利用CNBH-10m数据赋值建筑高度

Posted by WT on August 28, 2023

思路

复旦大学生命科学学院GC3S团队生产发布了中国首套首套10米分辨率的建筑高度栅格数据(CNBH-10m),前一篇文章介绍了利用QGIS、ArcGIS与ENVI提取建筑数据,也介绍了建筑白膜数据赋高程值,二者结合,就可以实现建筑白膜赋高度数据。

问题

与DEM不同,建筑高度数据只有在建筑存在的地方有值,其他位置是NoData,如下图所示:绿色的框中的建筑多边形的中心点处建筑高度数据为空值。
run1
即使不转换为点,通过获得多边形区域内值赋给建筑白膜得做法仍然有空值的情况(蓝色方框)。这会导致很多数据没有值。

解决方案

ArcGIS对于NoData的区域可以通过设置滑动窗口统计计算空置区域周边的值(最大值、最小值或者均值)等填补缺失值。
run2
Con(IsNull("Raster.tif"), FocalStatistics("Raster.tif", NbrRectangle(10,10, "CELL"), "MAXIMUM"), "Raster.tif")
run3
con函数有三个参数,1是判断条件,如果为真,则值用2计算(统计周边像素的值),如果为为假,则用3的值(原值不动)
FocalStatistics函数为焦点统计工具的函数形式
FocalStatistics(in_raster, {neighborhood}, {statistics_type}, {ignore_nodata}, {percentile_value})
run4
run5
下图可以对比插值前后空值区域明显减小
run6
注意白膜数据合并后记得进行拓扑检查,把重复的数据去掉。
run7

引用文献:
【数据分享】中国首套10米分辨率的建筑高度数据(tif格式)
Remove and replace no data values within a raster using statistical information from the surrounding data values.
ArcGIS中con函数的应用实例
Arcgis填补栅格空缺值Nodata
焦点统计
NbrRectangle