matlab赌徒破产模型转移矩阵,[转载]【转】生成土地利用变化转移矩阵的方法

article/2025/10/13 20:35:34

这里是网上搜到的生成土地利用变化转移矩阵的几种方法,以飨来者:

A 栅格数据做转移矩阵

a4c26d1e5885305701be709a3d33442f.png

“一般习惯列为早期的数据,行为近期的数据,就如你说的早期的在上,晚期的在下。”

B 矢量数据做转移矩阵

根据你的数据类型选用不同的数据生成方法

若你的数据是Raster格式:则有如下方法

1 Erdas Imagine----Interpreter---Gis

Analysis---Matrix,输入两个时相的Raster数据即可

做这一步之前记得先对两时相的数据进行重编码(nterpreter---Gis

Analysis---Recode)

一般运行如果出现错误 肯定是重编码没做好,请继续查证。

2 先在 Erdas中利用 Modeler 计算 如下公式

NC(I,J)=NC(I)*10+NC(J),(J>I)

其中:NC(I,J)表示i,j

两年份的土地利用变化图;NC(i)表示i年份遥感分类影像;NC(j)表示j年份的遥感分类影像。

在此计算的基础上,将以上变化影像图转化为BIL格式,再利用ARC/INFO

GRID模块将影像转为GRID格式,然后利用GRID模块中的属性表(vat)查看命令对影像灰度值进行统计,最后得出土地利用转化举证。(注:此方法本人尚未实现过,不知可行否)。

若数据是Vector格式

1 Erdas Imagine----Interpreter---Gis

Analysis---Matrix,输入两个时相的Vector数据即可

此时注意输出栅格大小不应设的太小要不一运行就会提示你的空间不足

做这一步之前,请做好前期的地理编码。

2 ArcView3.3加载 spatial analysis模块

把两时相的Vector图转成grid格式(当然中间有一些单位的设置根据你做的图的分辨率来设置即可)analysis---mapcaculate

直接计算即可。

3

把两期解译完的Vector文件在arctoolbox——overlay——union中叠加,注意:两个文件不能用同一个字段名,比如一个用93Type,另一个时相则用

00Type

叠加后的文件在Arcmap中打开,选中文件,然后点右键——Property——空间查询,输入条件语句,比如:93Type=‘1’And

00Type=‘2’;查询结果即为第一种类型转化为第二种类型的图形,可以另建一图层比如:12,把查询结果复制到12图层上。统计出面积,依进行,就可以得到土地利用类型转移矩阵。

最后输出土地利用变化图 ,如下图所示:

作者: 许科研

转移矩阵在土地利用变更调查时经常用到。arcgis里没有直接的工具来计算转移矩阵,但我们可以利用已有的工具间接来求。下面介绍一下利用arcgis求转移矩阵的方法。现有2005、2008两期土地利用现状数据(polygon.shp)

分别将两期数据用Data Management toolbox > Generalization

> Dissolve工具,按各自的地类编码合并要素,注意选中最下面的“create

multipat

features”选项处理好数据后,用intersect工具求两期数据的交集交集的结果:将属性表增加面积字段,并计算面积结果:

从上图中已经可以看出土地转移的情况:dlbm2005是2005年时该块地的地类代码,dlbm2008是2008年时该地块的地类代码,最后一列是相应地块的面积。接下来将属性表导出到dbf文件,然后在excel中打开,执行数据菜单中的“数据透视表和数据透视图”命令点完成,然后将""dlbm2005作为行字段,dlbm2008作为列字段"",area作为数据拖到相应的区域生成的数据透视表将数据复制到新的工作表中,适当的修整后即生成了土地利用转移矩阵。

作者:西海

写文章的过程中,同样也用到了土地利用/景观转移矩阵。转移矩阵的制作很多软件可以实现,有Arcview、Arcmap、还有人用matlab。但是网上都写的都不详细,在这里,本文才用arcmap的叠加操作+excel的数据统计功能,可以轻松完成这一过程。相信看完了本文,初学者或者对GIS了解不多的人,也能轻松的制作出转移矩阵。

方法一:

1 数据准备

准备好两期的coverage或shape文件。(注意:拓扑关系要建好,不然无法计算),采用Arcmap打开上述两期文件。

2 叠加操作

选择Arcmap里面的“ArcToolbox”按钮下面的“Analysis

Tools”工具下面的叠加分析模块(Overlay)下面的交叉分析功能(Intersect)。选择已经打开的两期数据进行叠加分析。叠加的结果存在一个可以找到的地方。同时,把叠加后的结果添加在Arcmap里。

3

输出叠加文件的属性数据

A、右键打开intersect产生的矢量文件的数据属性表(open

attribute table)。

B、点击“options”按钮,选择“add

field”,然后给出一个新name“newarea”,数据类型为double

C、右键点击刚刚产生的“newarea”,并选择“calculate

values”

D、然后点击“field

calculator”对话框里面的“Advanced”后选择“help”将

Dim Output as double

Dim pArea as Iarea

Set pArea = [shape]

Output = pArea.area

拷入到“field calculator”对话框下面的空白处

E、在对话框“field

calculator”最下面的空白处填上“output”

F、在属性表点击“options”按钮,→export(导出),属性以.dbf格式结果存储。

4 Excel进行转移矩阵制作

A、刚才存储的.dbf文件可以使用excel打开,打开的结果重新保存为.xls(excel)文件。

(dbf文件不能保存)

B、重新打开刚存储的excel文件。

C、选中所有数据,选择数据数据透视表和数据透视图。将两期数据的id值分别拖入行列字段,然后以‘newarea’字段作为数据项拖入计算区域。得到的便是转移矩阵。如果发现矩阵的形式不美观,可以对单位进行修改。方法二:作某一地物与其他不同年份地类

例如:

1、做水体和其它年份分类地物的交集

A.分别打开刚刚产生的水域多边形和该地区其他年份的分类矢量文件

B.选择gis里面的“AacToolbox”按钮下面的“Analysis

Tools”工具下面的叠加分析模块(Overlay)下面的交叉分析功能(Intersect)

C.分别输入上面抽出的水域多边形和该地区其他年份区的分类后的多边形进行intersect分析

D.右键打开intersect产生的矢量文件的数据属性表(open

attribute table)

E.点击“options”按钮,选择“add

field”,然后给出一个新name“newarea”,数据类型为double

F.右键点击刚刚产生的“newarea”,并选择“calculate

values”

G.然后点击“field

calculator”对话框里面的“Advanced”后选择“help”将Dim

Output as double

Dim pArea as Iarea

Set pArea = [shape]

Output =

pArea.area拷入到“field

calculator”对话框下面的空白处

H.在对话框“field calculator”最下面填上“output”

2、然后分别计算水体在该地区其他年份年转入和转出情况

A.点击“potions”下面的“select by

attribute”按钮,并选择“GRID_COD_1”

B.令GRID_COD_1=1 点击apply,此时会统计出该地区其他年份年仍然为水域的多边形

C.右键点击“newarea”选择统计功能(“statistics”),就会得到从然为水域的面积

D.分别计算出GRID_COD_1=2(林地)、3(草地)、4(城镇点)、5(耕地)、6(滩涂地)的面积就得到从由水域转入的面积。

以此类推网上有人还采用的方法:

1、 Erdas:erdas--main--interpreter--gis

analysis--matrix输入两个年份的分类图,然后进行重编码即可。

2、 Arcview:可以作个运算,其中一期的图*10或者100或者1000(土地利用类型取1位数时候×10,两位100),然后再加上另一期的土地利用图得出一个图的属性,肯定12,15,或者1221,或者1531之类的数据,应该就可以实现了。

3、 Matlab:听说,还没有亲眼见过,据说可以成功

4、ArcGIS:在一期数据的基础上,绘制出其变化的部分(很复杂,工作了量很大)。


http://chatgpt.dhexx.cn/article/L7CEvPXO.shtml

相关文章

植被覆盖度转移矩阵

1.处理图像 2.裁剪出研究区 3.对植被覆盖度进行分级,一般分为5级 。 4.打开属性表,添加相应的年份。 5.将栅格转为矢量 6.融合工具 将相同要素融合 7.相交工具 8.在相交后的图像里增加面积字段,利用计算机和求出。 9.将上述利用表转EXC…

ENVI_计算土地利用变化转移矩阵

利用Arcgis和ENVI都可以计算土地利用转移矩阵,但是感觉Arcgis操作较为繁琐,所以建议用ENVI做土地利用转移矩阵,还是比较简单的。 一、准备两期土地利用数据(如2000,2020) 注意必须把数据保存成ENVI软件的d…

【土地利用变化分析】土地利用转移矩阵

​国土空间规划怎么会这么忙???奉劝看到这里还没进规划院的同志 能腾出点时间去做点自己想做的事的光景一去不返,辞职的念头一天又一天,我说去练画都说了有一年连笔杆子都没摸过。偷得时间写一篇土地利用转移矩阵。 一…

arcgis制作土地利用转移矩阵

1.首先下载土地利用的影像,在这里我用的是资源环境数据云平台的数据,分别为1980年与2015年的土地利用栅格影像,然后打开影像。 2.下载影像后进行重分类影像,因为影像原分类是二级分类,我这里需要的是一级分类就行了&am…

matlab求马尔可夫转移矩阵,求马尔科夫模型的转移矩阵_马尔科夫转移矩阵

求马尔科夫模型的转移矩阵 用Matlab解决如下: clc,clear,format rat a[ 4 3 2 1 4 3 1 1 2 3 2 1 2 3 4 4 3 3 1 1 1 3 3 2 1 2 2 2 4 4 2 3 2 3 1 1 2 4 3 1]; aa’;aa(:)’; %把矩阵a逐行展开成一个行向量 for i1:4 for j1:4 f(i,j)length(findstr([i,j],a)); %…

ArcGIS:计算土地转移矩阵

使用ArcGIS计算土地转移矩阵通常是将栅格数据转为矢量,然后再使用ArcGIS中的叠加分析统计各类面积的转移变化情况。还有一种比较简单的方法,就是使用ArcGIS中的栅格计算器来计算土地转移矩阵,这种方法对于比较大的研究区域来说计算效率会更高…

马尔科夫状态转移矩阵

一、马尔科夫状态转移矩阵性质 1. 每个时间点处在某一个状态,时间是离散的。 2. 每次到下一个时间点时按照图进行随机状态转移。 3. 假如某时的状态是个统计分布(看做向量),那么用状态转移矩阵(权值)乘这个…

马尔科夫链模型状态转移矩阵

关于马尔可夫链模型,详细请参考马尔可夫链模型 这里我使用的马尔科夫链模型的状态转移矩阵是: 股市的概率分布为[0.4, 0.3, 0.3], 即40%概率的牛市,30%概率的熊盘与30%的横盘。 代码实现 import numpy as npP np.matrix([[0.7, 0.2, 0.1],…

土地转移矩阵的计算步骤

土地转移矩阵在遥感研究中非常的实用,可以计算几年内的土地的面积转移变化,废话不多说,看步骤! 1.要找两年的土地利用数据,比如我这里是2013年和2019年MCD12Q1的500m的土地利用数据,然后要知道每个数值代表的是什么类,然后整理成像下面的表格一样。因为这个研究区,只有…

[ENVI] 转移矩阵

附:ERDAS工具:Erdas Imagine—-Interpreter—Gis Analysis—Matrix 工具:Classification–>Post Classification–>Confusion Matrix Using Ground Truth Image 说明:用一个真实的图像(Truth Image)评估分类的结果 将198…

马尔科夫链与转移矩阵

什么是转移概率矩阵(Transition Probability Matrix) 转移概率矩阵:矩阵各元素都是非负的,并且各行元素之和等于1,各元素用概率表示,在一定条件下是互相转移的,故称为转移概率矩阵。如用于市场决策时,矩阵中…

python之马尔科夫链及转移矩阵---详细介绍及代码说明

一、提出问题 马尔科夫链和转移矩阵是什么?马尔科夫链是如何生成的?以及如何使用?下面我来详细介绍! 二、马尔科夫链和转移矩阵的介绍 1、马尔科夫链(Markov chain)概述 机器学习算法中,马尔可夫链在时间序列模型广…

【ArcGIS进阶】制作土地利用转移矩阵

哈喽大家好,今天为大家带来如何利用ArcGIS和EXCEL快速制作土地利用转移矩阵 一、什么是土地利用转移矩阵 土地利用转移矩阵是马尔科夫模型在土地利用变化方面的应用。马尔科夫模型不仅可以定量地表明不同土地利用类型之间的转化情况,还可以揭示不同土地…

C 语言概述

一、C语言的发展历史及特点 1.1C语言的发展历史 1.传统C 20世纪80年代早期公认的C语言被称为传统C,也就是C语言被标准化之前的语言变体。 2.标准C(1989) 1982 年,美国国家标准委员会(ANSI)X3J11 委员会…

C--C语言概述

一、C语言的发展过程 1、C语言的产生 C程序设计语言最早是由Dennis M.Ritchie于1969年到1973年在AT&T贝尔实验室⾥开发出来,主要⽤于重新实现Unix操作系统。此时,C语⾔又被称为K&R C。其中,K表⽰Kernighan的⾸字母,⽽R则…

深入浅出C语言——C语言简介

文章目录 前言:一、C语言二、C语言程序案例三、数据类型四、变量和常量五、字符串六、转义字符七、注释八、选择语句九 、循环语句十、函数十一、 数组十二、操作符十三、常见关键字十四、定义常量和宏十五、指针十六、结构体 前言: 编程语言可以简单的…

C语言的简介

目录 C语言 简介发展历史语言特点 C语言 C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了…

C语言入门介绍

哈喽大家好,我是一个刚刚入门的萌新,刚刚接触C语言,从今天开始,我会不定期更新博客,一方面呢是为了和我一样的初学者提供一个交流(吐槽~)和学习的平台,另一方面呢是为了给自己学习和…

一、C语言简介

学习目标:完成对C语言大致的了解 1、概述 C语言是一种结构化的面向过程的程序设计语言,同时具有高级语言与汇编语言的特点。 2、程序设计语言 程序设计语言即用于书写计算机程序的语言。计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言三个…

(一)C语言概述

本篇介绍C语言起源、编译、存储层次。 诞生特点编译存储层次 诞生 简单介绍 C语言诞生于美国的贝尔实验室,由D.M.Ritchie以B语言为基础发展而来,在它的主体设计完成后,Thompson和Ritchie用它完全重写了UNIX,且随着UNIX的发展&…