目录

  • 一、工具介绍
  • 1、工具界面
  • 2、计算结果示例
  • 3、计算原理
  • 二、数据准备
  • 三、计算步骤
  • 1、生成渔网
  • 2、工具计算
  • 3、计算结果
  • 4、计算结果(马赛克)


一、工具介绍

利用C#语言,基于ArcGIS二次开发实现了建筑物褶皱度计算工具,计算工具安装和使用简单,作为插件在ArcMap软件里运行,支持ArcGIS10.2及以上版本ArcMap。

1、工具界面

GIS怎么根据DEM数据计算起伏度 arcgis计算地形起伏度_arcgis

2、计算结果示例

GIS怎么根据DEM数据计算起伏度 arcgis计算地形起伏度_数据_02

3、计算原理

首先计算单体建筑占地面积乘以该建筑的高度,并汇总加和,最后除以栅格单元的面积。

GIS怎么根据DEM数据计算起伏度 arcgis计算地形起伏度_个人开发_03

二、数据准备

待计算区域建筑物数据,文件格式为GIS格式(shp或gdb格式),必须使用投影坐标,属性包括建筑物高度。注意数据坐标系一定要采用投影坐标系,否则无法计算。

GIS怎么根据DEM数据计算起伏度 arcgis计算地形起伏度_个人开发_04

三、计算步骤

1、生成渔网

打开ArcMap工具箱选择>“数据管理工具”>“要素类”>“创建渔网”,参数选择及生成渔网如下图所示,模板范围选择与 建筑数据 图层相同,格网大小可以根据情况设置(本文以20*20为例),并且也可以采用非矩形格网。注意几何类型一定要选POLYGON(面状渔网),否则无法计算。本软件同时支持圆形,多边形,等不规则面状网格计算。

GIS怎么根据DEM数据计算起伏度 arcgis计算地形起伏度_个人开发_05


GIS怎么根据DEM数据计算起伏度 arcgis计算地形起伏度_个人开发_06

2、工具计算

打开褶皱度计算工具,选择生成的渔网和建筑数据,建筑高程属性字段,然后开始计算,如下图所示。

GIS怎么根据DEM数据计算起伏度 arcgis计算地形起伏度_arcgis_07

3、计算结果

计算完成后,自动在渔网图层添加FoldDegree(别名:褶皱度)字段,字段值即为计算得到的每个网格的褶皱度指数。计算过程中可以中途停止,添加的flag_FoldDegree字段等于1表示已经计算完成的网格,下次启动会进行续算,自动忽略flag_FoldDegree=1的网格。若需要重新计算,请将flag赋值为0。

GIS怎么根据DEM数据计算起伏度 arcgis计算地形起伏度_字段_08

4、计算结果(马赛克)

利用ArcMap工具,将计算完成的网格转成栅格,如下图所示。使用本文方法生成马赛克的清晰度不受网格大小影响。

(1)渔网面转点

使用【要素转点】工具将渔网转化为点要素。

GIS怎么根据DEM数据计算起伏度 arcgis计算地形起伏度_数据_09


(2)点转马赛克

使用【自然邻域法】将上一步生成的点要素转为栅格,即为最终结果马赛克。注意Z值字段选择褶皱度FoldDegree.

GIS怎么根据DEM数据计算起伏度 arcgis计算地形起伏度_个人开发_10


GIS怎么根据DEM数据计算起伏度 arcgis计算地形起伏度_数据_11