精华内容
下载资源
问答
  • 利用遥感和GIS来土地利用转移矩阵计算,非常方便,找了很久找到
  • (太长不看系列)土地利用转移矩阵,就是根据同一地区不同时相的土地覆盖现状的变化关系,求得一个二维矩阵。通过对得到的转移矩阵进行分析,能够得到2个时相,不同的地类之间相互转化的情况,它描述了不同的土地...

    ​国土空间规划怎么会这么忙???奉劝看到这里还没进规划院的同志

    能腾出点时间去做点自己想做的事的光景一去不返,辞职的念头一天又一天,我说去练画都说了有一年连笔杆子都没摸过。偷得时间写一篇土地利用转移矩阵。

     

    一、土地利用转移矩阵定义:

     

    (太长不看系列)土地利用转移矩阵,就是根据同一地区不同时相的土地覆盖现状的变化关系,求得一个二维矩阵。通过对得到的转移矩阵进行分析,能够得到2个时相,不同的地类之间相互转化的情况,它描述了不同的土地利用的类型在不同年份发生变化的土地类别以及发生变化的位置和变化面积。不仅能够反映上述静态的固定区域固定时间的各个地类面积数据,还能够反映更加丰富的初期各个地类的面积转出以及末期各个地类面积的转入情况。从面积入手,反应区域土地利用变化。面积变化首先反映在不同土地利用类型的总量变化上,通过分析土地利用类型的总量变化,可了解土地利用变化总的变化趋势和土地利用结构的变化。

     

    下面表1便是土地利用转移矩阵,简单讲一句即:行T1表示上一时相,列T2表示下一时相。A1至An表示n种不同的土地覆盖类型。具体的意思解释就不写了,放出来也写的很繁琐看的晕,可查看《基于转移矩阵的土地利用变化信息挖掘方法探讨》这篇论文。                                             

     

    二、开始实验 

     

    数据准备:1、自然资源部global30土地覆盖数据2010/2020。官网可以下载到。2、成都市行政区划(我就是想回成都了,我觉得以后的例子都会是成都)

     

    将土地覆盖数据加载GIS里后,按研究所需区域边界裁剪出来,然后创建为这两个年份的土地栅格数据创建属性表(他们没有属性表,点符号系统里的唯一值就可以创建)。看下图创建后出现了10—100的分类,这些代码代表着不同的土地利用类型。

    下表便是GlobeLand30数据的分类系统,需要将每个代码对应的地类连接起来,这一步就是属性表连接,按照代码连接即可,不再多说。

     

    我这里新建了个字段2010,2020年的就建个2020,连接进来上面的分类后把地类名称计算过来。

     

    2010

    2020

     

    接下来是栅格转面,将两个年份的栅格数据转为矢量数据,记得把简化面前的√去掉。然后上一步不是新建了字段连接了地类名称了吗,字段就不要选value,选2010、2020。

     

     

    全都转为矢量数据后,按照地类名称【融合】一下,不然数据有点大不太好操作,接下来将两个年份的矢量数据进行【相交】操作。

     

     

     

    其实这样子也初步可以看出来不同时间地类之间的转换关系了。在相交后的属性表中添加“面积”字段,计算几何计算出面积,单位用公顷吧。

     

    接下来就要在Excle里操作了,【表转Excle】工具将属性表转出。Excle插入-数据透视表以2010为行,2020为列,面积求和项为值,得到初步的转移矩阵表。出来之后会发现有些是空值,这些空值代表地类没有转化。

     

    修改一下表格,将空值用0代替,标黄的这条对角线意思是没有变化的面积,比如最后一行2010年的【水体】—2020年【水体】没有变化的面积为11985.1公顷,2010年是水体,到2020年还是水体的有11985.1公顷。一般是用百分比来表示,就是占总土地面积的比重,如果有的地类面积很小用面积表示就不怎么明显。

     

    三、怎么理解

     

    再说一下这个表怎么看。

    2010年是列,2020年是行,以【耕地】为例吧。

    横着看耕地一行,表明2010年是耕地,到2020年转化为冰川、草地、灌木、林地..水体的面积为5635、27、10184……1987公顷。

    竖着看耕地一列,表明2020年的耕地由2010年的草地、灌木地、林地…..水体转化来的面积为7982、25.8、9713…..6927公顷。

     

    我们也可以计算一下新增和减少,如下表

     

    还是以【耕地】为例,同上面的解释一样,横看耕地一行,减少了20243公顷,也就是2010年是耕地,到2020年变为其他地类的面积共20243公顷。竖看耕地一列,由2010年的其他地类变为2020年耕地的面积共131533公顷,也就是增加了131533公顷。

     

    四、制图

     

    最后就是制图了,只用文字不显著,图文并茂嘛。我们转到GIS里,回到【表转Excle】之前,打开属性表新建个字段【转换】,用字段计算器写个这样的公式(引号是英文状态下)

    然后这样就出来啦,可以表示出地类之间的转换关系。

     

    之后再符号系统一系列操作调一下,就不多说了。

    2010年-2020年土地覆盖变化

    2010年-2020年土地覆盖变化

     

    每次作图就很卡,从来没好好捯饬过,这次说的比较基础的东西,还可以计算各时段土地利用覆盖比例、土地利用变化幅度、土地利用动态度、净变化等信息,等下次空下来再写。如有错误多多包涵。

     

     

     

    END

    如果在实验过程中有什么地方遇到问题可以加我,竭力解答。需要练习数据也请后台我【一点规划】。

     

     

     

     

     

    展开全文
  • 随着科技社会的不断进步,人类活动对地理环境的影响与塑造日益明显,土地不断的侵蚀与改变也导致一系列的环境问题日益...而在土地利用变化的研究中经常会用到土地利用转移矩阵,用以有效表达俩个不同时相地类之间面积的

    随着科技社会的不断进步,人类活动对地理环境的影响与塑造日益明显,土地不断的侵蚀与改变也导致一系列的环境问题日益突出。土地利用/覆盖(LUCC)作为全球环境变化研究的重点问题为越来越多的国际研究机构所重视,研究它的变化既是对已有的工业化、城市化过程的一个较为直观的反映,也是对于未来土地变化进行预测和模拟的一个不可或缺的基础。对于一个地区土地利用变化的研究,有利于对该地区进行更好的生态环境综合评价及合理的国土空间规划。

    而在土地利用变化的研究中经常会用到土地利用转移矩阵,用以有效表达俩个不同时相地类之间面积的转换情况。那么什么是土地利用转移矩阵,土地利用转移矩阵又如何制作呢?让我们一起看看吧!

    本文主要分为以下几个部分:

    一.概念

    二.含义

    三.数据准备

    四.两期转移矩阵制作

    五.三期转移矩阵制作

    六.参考文献

    概念

    土地利用转移矩阵是马尔科夫模型在土地利用变化方面的应用。马尔科夫模型不仅可以定量地表明不同土地利用类型之间的转化情况,还可以揭示不同土地利用类型间的转移速率。

    土地利用转移矩阵来源于系统分析中对系统状态与状态转移的定量描述。通常的土地利用转移矩阵中,行表示T1时点土地利用类型,列表示T2时点土地利用类型。

    含义

    土地利用转移矩阵以矩阵的形式将俩个不同时期的土地覆盖类型之间互相转换的数量关系展现出来,可以全面的体现出一个区域土地覆盖类型的数值和转移方向。一般形式如下(下方解释说明可忽略):

    图片

    转移矩阵示意图1

    其中,TL表示上一时相,TN表示下一时相。C1Cn表示n种不同的土地覆盖类型。假设Cn=Ci(上一时相土地类型),Cn=Cj(下一时相土地类型)。Sij表示上一时相Ci转变为下一时相Cj的面积量,Si*表示上一时相Ci的土地覆盖类型面积的总和,S*j表示下一时相Cj的土地覆盖类型面积的总和。Si*-Sii为Ci土地类型的流出量,即上一时相Ci类型土地中转移为下一时相其它土地类型的面积总和。S*j-Sjj表示Cj土地类型的流入量,即下一时相Cj类型土地中由上一时相其它类型土地转变而来的面积总和。

    上面的Sij也可以统一替换为Pij,用来展示转移量占整体的比例,能够体现整体与部分的关系,而避免因原某一土地类型总面积较小而得到转移量也较小,从而面积不能很好地表现此土地类型变化程度的情况。

    图片

    转移矩阵示意图2

    数据准备

    自然资源部global30土地覆盖数据2000/2010/2020

    全国基础地理数据库2017版省市行政边界

    数据获取及详情可以参考前文【数据分享】行政边界矢量数据(内容指南)【数据获取】2020版30米全球地表覆盖数据练习数据也在文末提供给了大家。

    两期转移矩阵制作

    我们先用2000年和2020年土地覆盖数据制作土地利用转移矩阵。

    1.先将土地覆盖数据Tiff图幅按研究所需区域边界裁剪出来,此过程较为简单。此过程中,由于行政边界数据为GCS2000的地理坐标系,global30土地覆盖数据为WGS1984的UTM投影坐标系,我们将边界数据也转换为WGS1984的UTM投影

    2.地类代码excel表格保存为97-2003版本。

    图片

    3.栅格数据创建属性表后,在2000年土地覆盖数据属性表中添加文本类型字段“2000”,此处填写为具体年份而不是只写地类,以方便制作转移矩阵时区分时相。

    图片

    4.由于土地覆盖栅格数据已进行了分类分析,将该数据创建属性表后,其中的VALUE字段代表的即是定义土地类型所用的像元值。我们将土地覆盖数据的图层属性表基于value字段和excel表格里的代码列字段接。

    图片

    5.打开字段计算器,将excel表中地类字段值赋予属性表的“2000”字段。

    图片

    6.将excel连接移除,同理将2020年份的数据进行连接赋值。此外,此操作也可直接通过在excel里更改.dbf文件达到更改属性表的目的。

    7.通过工具“栅格转面”将tiff格式数据转为shp矢量。字段选择“2000”,取消简化面勾选,同理处理2020年份数据。

    图片

    8.通过“融合”工具,将每个年份相同地类属性要素融合为一个要素,方便计算。

    图片

    此时,属性表如下。

    图片

    9.将2000年和2020年的融合后数据进行相交处理。

    图片

    10.在相交后的属性表中添加“面积”字段,右键字段名称选择计算几何计算出面积,单位选择平方公顷。

    图片

    11.选择“表转excel”工具,转出属性表。

    图片

    12.打开保存的.xls文件,选择插入-数据透视表,以2000为行,2020为列,面积求和项为值,得到下表,此即为初步的转移矩阵表。

    图片

    13.将空值以0填充,代表没有发生此俩种地类的转移。修改表头,行列和总计项,最终得到转移矩阵如下,单位为平方公顷。

    图片

    2000-2020年上海市土地利用转移矩阵

    三期转移矩阵制作

    现大部分涉及多时相的土地利用变化研究时,制作的转移矩阵一般按照时间节点分开绘制。所以涉及多个时相如三个时相时,我们需要绘制两个分开的转移矩阵和一个总的转移矩阵图。

    如我们在上一部分所做的2000-2020年土地转移矩阵即为总矩阵图,还应增加2000-2010年和2010年-2020年的转移矩阵图,并将三图并列如下。

    图片

    2000-2010年上海市土地利用转移矩阵

    图片

    2010-2020年上海市土地利用转移矩阵

    图片

    2000-2020年上海市土地利用转移矩阵

    除了运用土地利用转移矩阵之外,结合计算各时段土地利用覆盖比例、土地利用变化幅度、土地利用动态度等信息,可以帮助我们分析研究区域时间段内土地利用变化状况,为国土空间规划双评估以及其它相关专题提供更多的土地利用变化决策参考。

    值得一提的是,土地利用转移矩阵只是土地利用变化分析众多方法中的一种,是一种纯数字的表达,不够直观。而且只能展现出时间上转移量变化的数值关系,通常需要结合其它方法和图表用以展现各种不同维度的数量关系,或者来表现空间上的变化。

    参考文献

    [1]王徐凡. 土地覆被时空变化的可视化表达研究与实现[D].中国地质大学(北京),2019.

    [2]鲁亚楠,姚顺波,邓元杰,丁振民,侯孟阳,郑雪,李雅男. 陕北地区土地利用及景观格局变化对生态服务价值的影响——基于退耕还林(草)背景[J]. 中国农业资源与区划,2019,40(11):180-192.

    [3]潘登. 基于复杂网络的苏州市土地利用/覆被变化研究[D].浙江师范大学,2014.

    [4]苗立志. 基于GIS的阿克苏地区土地利用趋势分析与研究[D].山东科技大学,2005.

    [5]冯文靖,韦燕飞,童新华. 基于Landsat影像的贵港市港北区土地利用分类及变化分析[J]. 广东土地科学,2019,18(05):22-28.

    未完待续。。。

    END>

    需要练习数据请在公众号后台回复

    “转移”

    即可直接获取

    之前推文里的小黄鸭二维码重置了

    下面已经更新

    扫描下方二维码

    加小黄鸭为好友拉入微信群

    之后推文里的数据

    会发放在群里哦

    图片

    图片

    展开全文
  • arcgis制作土地利用转移矩阵

    万次阅读 多人点赞 2020-07-05 21:49:09
    1.首先下载土地利用的影像,在这里我用的是资源环境数据云平台的数据,分别为1980年与2015年的土地利用栅格影像,然后打开影像。 2.下载影像后进行重分类影像,因为影像原分类是二级分类,我这里需要的是一级分类...

    1.首先下载土地利用的影像,在这里我用的是资源环境数据云平台的数据,分别为1980年与2015年的土地利用栅格影像,然后打开影像。

    2.下载影像后进行重分类影像,因为影像原分类是二级分类,我这里需要的是一级分类就行了,具体详细的分类可以在下载时察看,在这里就不过多介绍了。分类操作如下:

    3.上一步完成后土地利用分类就完成了,然后裁剪出自己的研究区,如果是对整个中国研究的话就不用裁剪了,裁剪步骤如下:

    4.对上面裁剪出来的研究区进行栅格转面,操作步骤如下:

    5.得到转化后的矢量面状数据后,在其属性表中加上一人字段Type1980,将值设置的与GRIDCODE一样,操作如下:

    6.为了后面处理效率,对矢量属性进行融合,操作步骤如下:

    7.上一步完成后就得到了1980年的融合矢量数据 dissolv1980.shp ,用上面的1-6步骤对2015年的土地利用数据处理,得到矢量数据dissolv2015.shp,然后对这两年的这两个数据进行相交处理,操作步骤如下:

    8.打开相交矢量数据属性表,添加一个字段newArea,用来计算土地类型面积,操作步骤如下:

    9.导出bdf表,并用EXCEL直接打.

    把行列标签分别设置为Type2018与Type2019,newArea设置为统计值,就得到了土地利用转移矩阵表

    展开全文
  • 得到土地利用面积转移矩阵 trans_matr = transition_area[:len(transition_area) - 1, :len(transition_area) - 1] print("transition_matrix:", "\n", trans_matr) return trans_matr def markov(trans_matr, Start...

    助教课遇到这个题目,用python写了一个,放在这里备忘吧。

    # -*- coding: utf-8 -*-
    # ---------------------------------------------------------------------------
    # Markov.py
    # Created on: 2021-04-03 21:32:05
    #   (generated by WCJ)
    # Description: 
    # ---------------------------------------------------------------------------
    
    import os
    import sys
    import numpy as np
    from sklearn.metrics import confusion_matrix
    from PIL import Image
    # sys.path.append(os.pardir)
    
    def transition_matrix(Start_LUCC_image, End_LUCC_image):
        # 读取影像灰度值(包含空值)
        Start_LUCC_image = Image.open(Start_LUCC_image)
        End_LUCC_image = Image.open(End_LUCC_image)
        # 重排列数组。flatten是numpy.ndarray.flatten的一个函数,即返回一个一维数组。
        lucc_start_array = np.asarray(Start_LUCC_image).flatten()
        lucc_end_array = np.asarray(End_LUCC_image).flatten()
        # 构建混淆矩阵
        transition_area = confusion_matrix(lucc_start_array, lucc_end_array)
        # 提取有效区域(去除空值),得到土地利用面积转移矩阵
        trans_matr = transition_area[:len(transition_area) - 1, :len(transition_area) - 1]
        print("transition_matrix:", "\n", trans_matr)
        return trans_matr
    
    
    def markov(trans_matr, Start_year, End_year, Pred_year):
        sum_Start_year = trans_matr.sum(axis=1)  # 按行求各地类和
        sum_End_year = trans_matr.sum(axis=0)  # 按列求各地类和
        whole_area = trans_matr.sum()  # 计算总栅格数
        P_End_year = sum_End_year / trans_matr.sum()  # 计算初始状态矩阵
        # 计算一阶转移概率矩阵
        Ptrans0 = np.empty(trans_matr.shape)
        for i in range(len(sum_Start_year)):
            Ptrans0[i] = trans_matr[i] / sum_Start_year[i]
        # 计算转移概率矩阵
        n = int((Pred_year - End_year) / (End_year - Start_year))
        print(n)
        E = np.identity(len(sum_Start_year))
        for i in range(n):
            E = np.dot(E, Ptrans0)
        Ptrans = E
        # 计算预测年份状态矩阵
        P_Pred_year = np.dot(P_End_year, Ptrans)
        # 计算预测年份各地类面积
        Pred_year_area = np.array(np.around(P_Pred_year * whole_area), dtype=int)
        np.set_printoptions(formatter={'float': '{: 0.6f}'.format})
        print("转移概率矩阵:", "\n", np.around(Ptrans, decimals=6))
        print("预测年份状态矩阵:", "\n", np.around(P_Pred_year, decimals=6))
        print("预测年份各地类面积:", Pred_year, "年\n", Pred_year_area)
        return Ptrans, P_Pred_year, Pred_year_area
    
    
    def Save(Pred_year, Ptrans, P_Pred_year, Pred_year_area):
        outpath = "F:\\test\FilesGenerate\\model_out_" + str(Pred_year) + ".txt"
        with open(outpath, 'w') as f:  # 写入numpy.ndarray数据
            # with open("F:\\test\FilesGenerate\\model_out.txt", 'w') as f:  # 写入numpy.ndarray数据
            f.write('%d' % Pred_year)
            f.write(":\n")
            f.write("转移概率矩阵:\n")
            np.savetxt(f, np.round(Ptrans, 6), delimiter="\t", fmt="%.6f")
            # 使用numpy.savetxt()写入数据,Data为要存的变量,因为numpy.ndarray数据无法用write()写入,数据间用','相隔。
            f.write("预测年份状态矩阵:\n")
            np.savetxt(f, np.round(P_Pred_year, 6), delimiter="\t", fmt="%.6f")
            f.write("预测年份各地类面积:\n")
            np.savetxt(f, Pred_year_area, delimiter="\t", fmt="%s")
        # f.write("\n")  # 换行
        f.close()  # 关闭
    
    
    if __name__ == '__main__':
        # 读取影像灰度值(包含空值)
        lucc_2010_img = r'F:\test\FilesGenerate\Re_guangzhou2010.tif'
        lucc_2015_img = r'F:\test\FilesGenerate\Re_guangzhou2015.tif'
        trans_matr = transition_matrix(lucc_2010_img, lucc_2015_img)
        Ptrans, P_Pred_year, Pred_year_area = markov(trans_matr, Start_year=2010, End_year=2015, Pred_year=2020)
        Save(2020, Ptrans, P_Pred_year, Pred_year_area)
    

    单纯做Markov预测的话,可以利用一个师兄开发的CA软件中的相关模块来做:
    http://www.geosimulation.cn/FLUS.html

    展开全文
  • 土地利用转移矩阵制作

    万次阅读 多人点赞 2019-07-11 18:03:00
    土地利用转移矩阵制作 1 马尔可夫模型(Markov) 1.1马尔可夫模型 马尔科夫模型(Markov)是俄国数学家安德烈·马尔科夫提出来的一种随机过程的研究,随机过程具有无后效性(即在系统状态转移过程中,系统将来的状态...
  • 土地利用转移矩阵步骤

    千次阅读 2020-08-14 13:32:46
    一、2000年-2005年土地利用转移矩阵 1、转换工具-由栅格转出-栅格转面:grid转shp 2、合并之后,属性表添加字段:类型和面积(一定要带年份,方便后续处理) 3、Data Management Tools → Generalization → ...
  • Arcgis土地利用转移矩阵制作

    千次阅读 2021-04-12 20:18:28
    Arcgis土地利用转移矩阵制作 数据准备** 土地利用数据是栅格格式,只有地类代表的数字,我们在栅格数据上添加一个NAME字段,把土地利用类型的名称加上去,比如1代表耕地,我们就在NAME字段中输入“耕地”。 然后...
  • 我们经常想知道土地利用在不同年份的变化过程,然而ArcGIS里面并没有现成的工具可以使用。因此,我制作了2010年到2020年的土地利用变化模式图。虽然只是两年的变化过程,但是我觉得挺有意思。所以记录下来,以便提供...
  • 关于土地分类格式互转、土地利用转移矩阵计算详解 一、ENVI、ArcGIS格式互转 1.1 ENVI分类格式转TIF ENVI分类格式使用File下面的Save as另存为TIF格式: 对于部分5.3版本可能会出现报错: 那我们可以使用Classic...
  • 土地利用转移矩阵的几种实现方法

    万次阅读 多人点赞 2018-05-29 09:11:07
    土地利用转移矩阵生成的几种方法 查阅相关的资料,也没有得到土地利用类型转换矩阵确切的定义,我理解为不同时间段内同一区域内土地利用类型的相互转换关系,一般用二维表来表达,从二维表中可以快速查看各个地类间...
  • 本文档将用图解操作详细说明利用ArcGIS对不同时期土地利用现状地图数据进行叠加统计分析,并利用Excel计算汇总,生成漂亮的转移矩阵
  • arcpy实现LUCC土地利用变化转移矩阵
  • 土地利用转移矩阵即表达不同土地利用在时间和空间上变化情况,作为研究土地利用变化的常用方法之一,亦作为CA-MarKov模型预测分析的前期基础。 本文就以陕西省延安市2000年和2020年监督分类得到的土地利用为基础进行...
  • 方法一:利用相交 方法二:利用栅格计算器
  • 土地转移矩阵在遥感研究中非常的实用,可以计算几年内的土地的面积转移变化,废话不多说,看步骤! 1.要找两年的土地利用数据,比如我这里是2013年和2019年MCD12Q1的500m的土地利用数据,然后要知道每个数值代表的是...
  • arcpy实现LUCC土地利用变化转移矩阵,2期影像或者矢量数据土地利用变化统计,生成统计表。使用“面积制表TabulateArea”轻松实现变化统计。 coding = 'utf-8' #utf8编码 import os #加载os库 import arcpy #加载...
  • 桑基图桑,基能量分流图,也叫桑基能量平衡图。...对于土地利用文献中大多使用转移矩阵的方式。本博客实现2000年,2005年,2010年,2015年,2019年土地利用之间的转移情况使用桑基图可视化。 首选.
  • 假设有两期用地数据2012年和2017年,分成三种用地类型,首先得到这两期数据的栅格图像,每个栅格单元存储的值代表一种用地类型,然后以矩阵的方式读入内存中,再用numpy的flatten的方法将其一维化,最后调用python...
  • 土地利用转移矩阵生成的几种方法

    千次阅读 2014-04-29 08:34:02
    根据你的数据类型选用不同的数据生成方法 若你的数据是 Raster 格式:则有如下方法 ... Imagine----Interpreter---Gis ...统计出面积,依进行,就可以得到土地利用类型转移 矩阵
  • 植被覆盖度(FVC)的转移矩阵制作方法与土地利用转移矩阵相同。 1.对栅格数据进行重分类(为了建立属性表) 2.将栅格数据转为矢量数据 ArcToolbox - Conversion Tools - From Raster - Raster to Polygan 在弹...
  • 介绍如何利用ARCGIS生成土地利用转移矩阵的两种方法
  • ArcGIS中的土地利用变化分析(栅格篇)

    万次阅读 多人点赞 2019-12-18 13:36:57
    土地利用变化栅格篇
  • 针对十堰~卧龙500千伏输电线路工程,基于ArcGIS平台研究了塔基对自然保护区内土地利用类型和功能的影响,构建了土地利用转移矩阵,分析了土地利用转移态势和结构的变化。结果表明:在大西沟、赛武当和丹江口库区3个...
  • 2、计算转换矩阵 打开两个土地利用分类结果 (1) 在主菜单中,选择Basic Tools → Change Detection → Change Detection Statistics (2)分别在Initial State对话框和final state对话框中选择前一时...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 341
精华内容 136
关键字:

土地利用转移矩阵