草庐IT

ArcGis实战:土地利用变化矩阵与土地利用变化图制作

Desmond196070 2023-08-11 原文

目录

一、数据下载

(1)下载网站

(2)账号注册

(3)数据下载

二、图像预处理

(1)准备研究区矢量图层

(2)图像镶嵌

1.添加数据

2.去除黑边(复制栅格)

 3.图像拼接(图像镶嵌)

 (3)图像裁剪

1.提取掩膜

 三、制作土地利用转移矩阵表

(1)获取土地分类系统

(2)连接属性表(为代码赋上地物名称)

(3)栅格转面(将栅格转为矢量数据以便计算)

(4)融合(将相同的地类进行整合以减少计算的数据量)

(5)相交(图像进行相交找出地类的变化)

(6)整理属性表(删除一些不需要的字段)

(7)计算面积

(8)制作转移矩阵(具体查看地类如何变化)

四、制作土地利用转移图

(1)添加数据框

(2)添加县区边界与县区标注

(3)其他

五、最终结果 


一、数据下载

(1)下载网站

globeland30

(2)账号注册

(3)数据下载

提交申请经过审核就能下载数据

二、图像预处理

(1)准备研究区矢量图层

准备全国矢量图层->打开属性表->选取研究的省市->(图层右击)市->数据->导出数据->导出:所选要素,输出要素类型shapefile (.shp)

如需要矢量数据:arcgis实战:土地利用转移实验材料-行业报告文档类资源-CSDN下载

 

(2)图像镶嵌

1.添加数据

新建地图->添加下载的数据

2.去除黑边(复制栅格)

工具箱(arctoolbox)->数据管理工具->栅格->栅格数据集->复制栅格,设置忽略背景值为0,擦除黑边

 

 3.图像拼接(图像镶嵌)

①工具箱(arctoolbox)->数据管理工具->栅格->栅格数据集->镶嵌->输入栅格(之前复制去除黑边的影像)->输出栅格->选择一张现有栅格影像->完成

 

对三个不同年份的数据全部采取添加数据->复制栅格->镶嵌后就能得到可以进行裁剪的栅格数据

结果如图:

 

 (3)图像裁剪

1.提取掩膜

工具箱(arctoolbox)->spatial analyst->提取分析->按掩膜提取->输入栅格->输入掩膜数据(矢量图层)->输出栅格

 结果如图:

注意:如果地类中发现0或者255,可以用栅格计算器进行去除,具体方法:

搜索栅格处理器->输入setnull("需要处理的栅格图像"==0(或者255,具体看要去除什么),"需要处理的栅格图像"),我这里没有进行去除。

 三、制作土地利用转移矩阵表

(1)获取土地分类系统

globeland30官网->关于->复制到excel表格中->将excel表格添加到地图中->手动将地类改成英文名(尽量手动改成英文,以免后面进行连接时出现乱码)

如图所示:

(2)连接属性表(为代码赋上地物名称)

①(右击)landuse2000图层->打开属性表->(左上角)添加字段->(名称)2000、(类型)文本型、(长度)10->退出属性表

 

①(右击)landuse2000图层->连接和关联->连接->选择基于的字段(要找属性表与excel表格匹配的字段名,这里为value)->选择作为连接基础的字段(代码)->确定

 

 如图所示

①(右击)landuse2000.vat:LANDUSE2000->字段计算->选择类型(大类)->确定

②(右击)landuse2000图层->连接和关联->移除连接->移除所有连接

对另外两个年份相同操作后如图所示

(3)栅格转面(将栅格转为矢量数据以便计算)

①工具箱(arctoolbox)->转换工具->由栅格转出->栅格转面

②输入栅格(landuse2000)->字段(选择刚刚赋上地物名称的字段,不要选value)->取消勾选简化面(保证图像精度)

 

对其他年份进行相同操作后如图所示

(4)融合(将相同的地类进行整合以减少计算的数据量)

① 工具箱->数据管理工具->制图综合->融合

②输入要素(shp2000.shp)->输出要素(shp2000_dissolves.shp)->融合字段(type)->创建多部件要素(勾选)->确定

①对其他年份进行相同操作如图所示

 

(5)相交(图像进行相交找出地类的变化)

①工具箱->分析工具->叠加分析->相交

②输入要素(选择上一步中融合好的三个年份要素)->输出要素(默认)->xy容差(改为十进制)->确定

 

如图所示:

(6)整理属性表(删除一些不需要的字段)

 如果有无法删除的,导出数据后在新的属性表删除

(7)计算面积

①属性表新建面积字段,类型选择双精度

②面积(右击)->计算几何->属性(面积)->单位(平方千米)->确定

③如果此时你的属性显示禁用即不可计算的话,需要自行改变投影坐标系,具体步骤:

图层(右击)->属性->坐标系->修改为与数据框相匹配的投影坐标系

 

 

(8)制作转移矩阵(具体查看地类如何变化)

①工具箱->转换工具-> excel->表转excel

②输入表shp2000_dissolves_Intersect1->输出自定义

 

 ①删除不需要的字段,仅保留三个年份变化字段

②excel中:插入->数据透视表->确定->勾选type,type1,type12,面积->将较早年份拖进行,较晚年份拖进列(我们这有三个年份,所以要制作两张)

 

 

四、制作土地利用转移图

(1)添加数据框

插入->数据框(另外插入两个数据框,分别放入2000、2010、2020年的土地利用类型)

 

(2)添加县区边界与县区标注

①按照之前准备矢量图层的方式将具体市内的全部县区数据导出

②选中内容列表中的按绘制顺序列出->然后将刚刚导出的县区图层分别拖拽到三个数据框的最上面

 

但此时的县区图层是有颜色的,并且会覆盖在土地利用图层上,此时需要将县区图层设置为透明:

①点击县区的符号选择器->填充颜色->更多颜色->属性->勾选颜色为空

 

轮廓同样需要规范,县区边界一般为点划线:

①县区的符号选择器->编辑符号->轮廓->选择点划线,效果如图:

添加标注时需要注意一些规范:

①(右击)县区->属性->标注->标注样式

②字体选择times new roman ->点击编辑符号->掩膜->选择晕圈,大小自己控制

 

(3)其他

至于制图标准里的指北针、经纬度、比例尺、标题等的添加可以自行百度,里不详细说明。另外注意,本文给出的是三个年份的土地利用变化,所以需要三张不同年份的土地利用图进行横向对比。

五、最终结果 

有关ArcGis实战:土地利用变化矩阵与土地利用变化图制作的更多相关文章

  1. ruby-on-rails - 启用 Rack::Deflater 时 ETag 发生变化 - 2

    在启用Rack::Deflater来gzip我的响应主体时偶然发现了一些奇怪的东西。也许我遗漏了一些东西,但启用此功能后,响应被压缩,但是资源的ETag在每个请求上都会发生变化。这会强制应用程序每次都响应,而不是发送304。这在没有启用Rack::Deflater的情况下有效,我已经验证页面源没有改变。我正在运行一个使用thin作为Web服务器的Rails应用程序。Gemfile.lockhttps://gist.github.com/2510816有没有什么方法可以让我从Rack中间件获得更多的输出,这样我就可以看到发生了什么?提前致谢。 最佳答案

  2. 旋转矩阵的几何意义 - 2

    点向量坐标矩阵的几何意义介绍旋转矩阵的几何含义之前,先介绍一下点向量坐标矩阵的几何含义点:在一维空间下就是一个标量,如同一条直线上,以任意某一个位置为0点,以一定的尺度间隔为1,2,3...,相反方向为-1,-2,-3...;如此就形成了一维坐标系,这时候任何一个点都可以用一个数值表示,如点p1=5,即即从原点出发沿着x轴正方向移动5个尺度;点p2=-3,负方向移动3个尺度;     在一维坐标系上过原点做垂直于一维坐标系的直线,则形成了二维坐标系,此时描述一个点需要两个数值来表示点p3=(3,2),即从原点出发沿着x轴正方向移动3个尺度,在此基础上沿着y轴正方向移动两个尺度的位置就是点p3。

  3. Unity 3D 制作开关门动画,旋转门制作,推拉门制作,门把手动画制作 - 2

    Unity自动旋转动画1.开门需要门把手先动,门再动2.关门需要门先动,门把手再动3.中途播放过程中不可以再次进行操作觉得太复杂?查看我的文章开关门简易进阶版效果:如果这个门可以直接打开的话,就不需要放置"门把手"如果门把手还有钥匙需要旋转,那就可以把钥匙放在门把手的"门把手",理论上是可以无限套娃的可调整参数有:角度,反向,轴向,速度运行时点击Test进行测试自己写的代码比较垃圾,命名与结构比较拉,高手轻点喷,新手有类似的需求可以拿去做参考上代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;u

  4. 微信小程序开发入门与实战(Behaviors使用) - 2

    @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

  5. 动漫制作技巧如何制作动漫视频 - 2

    动漫制作技巧是很多新人想了解的问题,今天小编就来解答与大家分享一下动漫制作流程,为了帮助有兴趣的同学理解,大多数人会选择动漫培训机构,那么今天小编就带大家来看看动漫制作要掌握哪些技巧?一、动漫作品首先完成草图设计和原型制作。设计草图要有目的、有对象、有步骤、要形象、要简单、符合实际。设计图要一致性,以保证制作的顺利进行。二、原型制作是根据设计图纸和制作材料,可以是手绘也可以是3d软件创建。在此步骤中,要注意的问题是色彩和平面布局。三、动漫制作制作完成后,加工成型。完成不同的表现形式后,就要对设计稿进行加工处理,使加工的难易度降低,并得到一些基本准确的概念,以便于后续的大样、准确的尺寸制定。四、

  6. ruby-on-rails - ruby 中两个哈希之间的变化 - 2

    我有两个具有以下格式的哈希mydetails[x['Id']]=x['Amount']这将包含如下数据hash1={"A"=>"0","B"=>"1","C"=>"0","F"=>"1"}hash2={"A"=>"0","B"=>"3","C"=>"0","E"=>"1"}我期待这样的输出:Differencesinhash:"B,F,E"非常感谢任何帮助。 最佳答案 这个解决方案可能更容易理解:(hash1.keys|hash2.keys).select{|key|hash1[key]!=hash2[key]}Array#|返回2

  7. 华为OD机试真题 C++ 实现【带传送阵的矩阵游离】【2023 Q2 | 200分】 - 2

            所有题目均有五种语言实现。C实现目录、C++实现目录、Python实现目录、Java实现目录、JavaScript实现目录题目n行m列的矩阵,每个位置上有一个元素你可以上下左右行走,代价是前后两个位置元素值差的绝对值.另外,你最多可以使用一次传送阵(只能从一个数跳到另外一个相同的数)求从走上角走到右下角最少需要多少时间。输入描述:第一行两个整数n,m,分别代表矩阵的行和列。后面n行,每行m个整数,分别代表矩阵中的元素。输出描述:一个整数,表示最少需要多少时间。

  8. ruby - 如何在ruby中制作动态多维数组? - 2

    我有一个关于多维数组的初学者ruby​​问题。我想按年份和月份对条目进行排序。所以我想创建一个包含年->月->月条目的多维数组所以数组应该是这样的:2009->08->Entry1->Entry209->Entry32007->10->Entry5现在我有:@years=[]@entries.eachdo|entry|timeobj=Time.parse(entry.created_at.to_s)year=timeobj.strftime("%Y").to_imonth=timeobj.strftime("%m").to_itmparr=[]tmparrentry}@years.pu

  9. ruby - 如何在不使用 HERE-DOCUMENT 语法的情况下在 Ruby 中制作多行字符串文字? - 2

    问题总结我想尝试使用Ruby来完成我在Python中所做的事情。在Python中它有r"""syntaxtosupportrawstrings,这很好,因为它允许将原始字符串与代码内联,并以更自然的方式连接它们,而无需特殊缩进。在Ruby中,当使用原始字符串时,必须使用其次是EOT在单独的行中,这会破坏代码布局。你可能会问,为什么不使用Ruby的%q{}?嗯,因为%q{}与Python的r"""相比有局限性因为它不会转义多个\\\并且只处理单个\.我正在动态生成Latex代码并写入一个文件,该文件稍后用pdflatex编译。Latex代码包含类似\\\的内容在许多地方。如果我使用Rub

  10. ruby - 如何制作 Ruby 1.8 小写非拉丁字符? - 2

    我正在使用Ruby1.8。似乎downcase不会改变非拉丁字符。例如:"Δ".downcase返回“Δ”我知道在Ruby1.9.1及更高版本中,我可以使用UnicodeUtils(fromhere)。我试过了,它工作正常。返回上一个示例的"δ"。是否有适用于1.8Ruby的等效(或任何)解决方案? 最佳答案 nash@nash:~$ruby-vruby1.8.7(2011-02-18patchlevel334)[i686-linux]gem安装unicode(https://rubygems.org/gems/unicode)re

随机推荐