这里的教程是对每个新增城市用地斑块都计算LEI值,再将他们分类。其中a是内填型,b是边缘性,C是蛙跃型。
图片来自:LIU X P, LI X, CHEN Y M. A new landscape index for quantifying urban expansion using multi-temporal remotely sensed data. Landscape Ecology, 2010, 25: 671-682.
公式来自:宋世雄,张金茜,刘志锋,何春阳.旱区城市扩展过程区位因素研究——以中国呼包鄂榆城市群为例.自然资源学报,2021,36(4): 102l—1035.
我们目的是得到每个斑块的LEI值,以此来进行判定,想计算LEI就得知道A0和AV。
要先把栅格转换为面,先得到新增城市用地,旧城区,非城市用地三个面要素。然后对新增城市用地设置1m的缓冲区。新增城市用地缓冲区和旧城区,非城市用地分别相交,相交部分就是A0和AV。
然后利用空间连接把A0和A1的值赋给新增城市用地的面要素。新增城市用地的面要素由许多单独的小面要素组成,每个小面要素就是一个斑块。有了斑块,以及每个斑块对应的AO和AV的值,就能进行分类。
第一步:我们首先要有这个栅格图。
下面是延吉市1988年到2016年的变化图,可以通过栅格计算器将1988年的城市非城市分类栅格图和2016年的城市非城市分类栅格图相加得到。
其中2代表老城区,4代表非城市用地,3代表新增城市用地。
第二步,提取栅格
我们要提取非城市用地,新增城市用地,旧城区的栅格,这一步用到了按属性提取。其中8816非城市为非城市用地,8816oldcity为老城区,Extract_8816newcity为新增城市用地。
8816非城市
8816oldcity为老城区
Extract_8816newcity为新增城市用地
第三步,栅格转要素
把栅格转换为面要素,用到了栅格转面,千万注意别点简化面。转换后Raster8816ocity代表老城区,RasterT8816ncity为非城市用地,Raster8816newcity为新增城市用地。
RasterT8816ncity为非城市用地
Raster8816ocity代表老城区
Raster8816newcity为新增城市用地
第四步,缓冲区
对新增城市用地进行缓冲区分析。
得到了一米的缓冲区RasterT8816newcity_Buffer。
第五步,相交
将得到的一米缓冲区RasterT8816newcity_Buffer和旧城区相交,得到RasterT8816A0,将得到的一米缓冲区RasterT8816newcity_Buffer和非城市用地相交得到RasterT8816AV。这一步用相交工具。
得到RasterT8816A0
得到RasterT8816AV
其中,RasterT8816AV和RasterT8816A0的图形放大来看,都是1m的多边形。
第六步,空间连接
打开新增城市用地Raster8816newcity的属性表,可以看到以下的界面。其中每一个闭合的多边形都代表一个新增城市用地的斑块。
下一步我们要把RasterT8816AV字段表和RasterT8816A0字段表里面的Shape_Area(面积值)输出到Raster8816newcity的字段表里面。
使用空间连接,将RasterT8816AV和RasterT8816A0与Raster8816newcity(新增城市用地)进行空间连接。
第七步,字段计算
新建字段名称:bianfenbi。这里面的bianfenbi等价于LEI。用下面的表达式计算,表达式如下:
baifenbi=(!A0! / (!A0! + !AV! ))*100
得到以下结果:
要新建一个字段储存分类结果。在上一步中,可能有的A0或者AV值为空值。下面的表达式意思为:如果A0的值为空,则归类为1型(蛙跃型)。如果AV为空置,则为3(内填型)型。baifenbi=0则归类为1型(蛙跃型),baifenbi值在0~50之间则归类为2型(边缘型),baifenbi在50~100之间归为3型(内填型)。
表达式如下:
(
1 if !A0! == '' or !A0! is None else
3 if !AV! == '' or !AV! is None else
1 if !baifenbi! == 0 else
2 if 0 < !baifenbi! <= 50 else
3 if 50 < !baifenbi! <= 100 else None
)
最终结果如下,其中红色是老城区,黄色是非城市,绿色是新增城市用地。可以看到,它现在多了一个字段,名为分类结果。
将最后得到的面要素按照分类结果字段转换成栅格后的结果如下:其中,1型(蛙跃型),2型(边缘型),3型(内填型)。