【景观生态学实验】实验一 ArcGIS地理数据处理及制图基础
实验目的
1.掌握ArcGIS软件基本操作:通过实验操作与学习,熟练掌握ArcGIS软件相关的基本操作,包括界面熟悉、工具栏使用、数据的加载和保存、基本数据处理操作等;
2.掌握如何使用ArcGIS进行影像拼接及裁剪:通过实验操作与学习,学习使用ArcGIS软件中的影像处理工具,掌握遥感影像拼接和裁剪工具的使用方法,能够熟练处理不同区域的遥感影像数据,并确保数据的准确性和连续性;
3.掌握如何使用ArcGIS制作土地利用现状专题地图:通过实验操作与学习,熟练掌握使用ArcGIS制作专题地图的方法,具体包括数据视图的切换、图上信息的添加、数据的符号化等操作,最终制作得到清晰、美观的土地利用现状专题地图;
4.掌握ArcGIS分区统计方法:通过实验操作与学习,熟练掌握使用ArcGIS的相关数据处理工具,进行空间统计分析等,从而能够深入了解不同区域内地理现象的差异性与其基本特征,为决策提供支持。
实验内容
(1)“计算机印刷地图”制图实习
(2)利用ArcMap制作土地利用分类图
(3)单一土地利用类型空间分布图的制作
实验过程
(1)“计算机印刷地图”制图实习
具体步骤:
1. 我们需要制作的地图分为三个部分,乡镇人口密度图、学生分布密度图、实景图片与报表,为得以上结果我们分别进行制作,首先制作乡镇人口密度图:打开Arcgis,在图层中添加【乡镇人口密度】图层,并选择菜单【View】—>【Layout View】,从数据视图进入布局视图:
2.调整地图布局中地图页面尺寸的大小:在布局视图中右键,选择【页面和打印设置】,在弹出的选项框中,大小选择【A4】,方向选择【横向】;

3.设置地图单位与比例尺:在地图目录表中,鼠标右键单击【乡镇人口密度】图层,在快捷菜单中选择【属性】,在出现的对话框中的【常规】下,设定地图单位和显示单位均为千米;在Data Frame下的extent中,确定比例尺为1:500000:

4.地图配色:我们首先打开【乡镇人口密度】图层的属性表,右键字段【POPDEN】,选择【属性】,在弹出的字段属性选项框中,将字段名改为【密度分类】:

随后右键图层【乡镇人口密度】,选择【属性】,在图层属性选项框中选择【符号系统】,在左处的显示中选择【数量】—>【分级色彩】,根据图层美观需要自我调节符号颜色,同时在字段中值选择【密度分类】,并且将标注改为低、较低、中、较高、高:

5.添加地图其它信息:在Arcgis主页面中,选择【插入】,即可看到其中各个选项,我们选择为当前数据添加【图例】、【指北针】与【比例尺】,添加图例,并依次设定图例名、图例外框线、背景色、图例区大小和形状等参数:

与上述步骤相同添加比例尺与指北针,但与图例不同,无需再设置过多参数:

6.添加第二幅地图:如今我们依然停留在布局视图,因此我们在Arcgis主页面中选择【插入】选择【数据框】,即可在页面布局中新增一个数据框,右键我们这个新建的数据框【添加数据】,添加student.shp、sub_con.sh和view.jpg 三个新数据:

7.制作报表:与上述制作第一幅地图的操作相同,我们为第二幅同样添加图例、比例尺与指北针并且根据地图美观需要,利用图层属性中的符号系统更改地图配色,但除此之外,此次我们还需要为地图制作报表,具体操作如下所示:
选中底图【县域乡镇】所在的数据框,随后在Arcgis主页面中选择【视图】—>【报表】—>【创建报表】,在图层/表中选择sub_con,报表字段则根据我们制图需要选择【FID】,【AREA】,【POPDEN】:

分组级别选择默认不变,在字段排序的选择中,依次添加字段如下右图所示,bing且将排序方式都改为升序:

上述操作点击完成后,即会弹出报表查看器让我们预览报表结果,在报表查看器中,我们点击编辑后我们可以修改报表的相关属性,包括将报表头与数据居中展示,修改布局打印宽度等,此类操作可以帮助我们使得报表在地图中的展示效果更为美观:

最终结果展示:
最后将上述复合地图打包输出为“乡镇人口与学生分布” JPG格式的地图如下图所示,作为地信学子,我在老师实验内容要求的基础上做了部分自我的修改、增加与删减,以使地图达到更为美观更符合个人审美的效果:

(2)利用ArcMap制作土地利用分类图
1. 加载原始遥感影像并拼接:首先打开Arcgis软件,将4幅影像数据(.tif)和Hubei_Xian.shp文件添加到图层中加载影像,随后打开工具箱,选择【数据管理工具】—>【栅格】—>【栅格数据集】—>【镶嵌至新栅格】,打开参数框后设置参数如下图所示:

2.裁剪湖北省遥感影像:【系统工具箱】—>【数据管理工具】—>【栅格】—>【栅格处理】—>【裁剪】,但Arcgis中有关裁剪的工具十分之多,涉及裁剪不同属性的图层,不同的工具也有不同的适用范围,在此次实验中我们也可使用【按掩膜提取】工具进行遥感影像的裁剪,设置参数框如下图所示:

3.利用裁剪数据进行制图:与上述实验过程中所描述的相同,为了得到图例较为美观直接明了的地图,我们首先右键图层【Extract】,选择【属性】,在图层属性选项框中选择【符号系统】,在左处的显示中选择【唯一值】,根据图层美观需要自我调节符号颜色,同时在字段中值选择【密度分类】,并且将标注根据值的大小进行更改(依据如下右图所示):

其它在地图中插入图例、比例尺、指北针等操作与上述实验过程所描述的基本相同,仅【图例】的插入我们需要额外注意,在插入后将图例列数设置为2列。
最终结果展示:
最后将上述地图打包输出为“2010年湖北省土地利用现状图” JPG格式的地图如下图所示,作为地信学子,我在老师实验内容要求的基础上做了部分自我的修改、增加与删减,以使地图达到更为美观更符合个人审美的效果:

(3)单一土地利用类型空间分布图的制作
1.以土地利用类型——耕地为例,为将耕地这个土地利用类型与其它土地利用类型区分开来,我们首先点击打开裁剪好的图层的【图层属性】,选择左处的【显示】—>【唯一值】,在符号字段中仅保留值为10,即耕地的数据,通过此种方法我们可以在数据视图与布局视图中仅显示耕地这一土地利用类型的数据:

2.与上述实验过程相同,最终制作得到专题地图如下图所示:

思考题
问题1:地图制图过程中需要注意哪些事项?
- 地图数据符号化显示:在我们Arcgis制图中,地图数据的符号化显示是我们得到地图的第一眼中最为重要与最为关注的信息。首先对于地图数据我们要使用适当的分类方法和分级方案,这一步骤的选择必须符合我们的数据分布特点与地图展示需要,以便在地图中更好的呈现数据空间分布与大小数量;其次,使用适当的符号化颜色,许多符号颜色已经是Arcgis制图中所默认的,例如水体为蓝色,植被为绿色等等,我们不宜进行别具一格的更改;
- 地图设计的基本原则:地图设计的基本原则为地图中必须包含各类必不可少的基本要素,包括添加图例,解释地图中使用的符号和颜色确保图例清晰明了而不引起歧义;添加指北针和比例尺,加入指北针可以帮助用户了解地图的方向,而比例尺则用于显示地图上不同地理距离之间的比例关系;添加标注和注释,添加清晰可读的标注和注释,应该使用适当的字体大小和颜色,以及合适的位置,避免重叠;
- 地图布局设计的恰当:正如上文中所提到的,在布局视图下一幅地图中所包含的要素是十分之多的,因此精心设计地图的具体布局,包括地图的标题、图例、指北针、比例尺等元素的位置和样式,确保这些元素的布局整齐、清晰、美观,使得地图易于我们的阅读和理解,以达到大众美观的效果是非常必要的。
问题2:仿照前述的方法,提取制作其他土地类型空间分布图(不少于4种土地利用类型),形成对应图层文件,展示结果。
| 土地利用 类型 | 图层文件结果 |
| 水体 |
|
| 草地 |
|
| 森林 |
|
| 人造地表 |
|
问题3:如何计算出每个县的单一土地利用类型(如耕地)面积?
以土地利用类型中的耕地为例,我们计算各个县中耕地的面积,具体步骤如下所示:
1.首先我们需要获得裁剪的遥感影像中仅包括耕地这一土地利用类型的图层,与上述实验中把其它土地利用类型在符号系统中删除不同,这仅仅只是把其它土地利用类型不在图层中显示,而我们需要的是删除图层中其它土地利用类型的所有数据,在属性表中进行删除也是行不通的,因此我们需要借助【栅格计算器】这一工具,点击工具箱中【Spatial Analyst】—>【地图代数】—>【栅格计算器】,设置参数如下图所示,其含义为将图层中值不为10的赋值为空,其它保留:

2.选择工具箱中【Spatial Analyst】—>【区域分析】—>【以表格显示分区统计】,输入参数如下图所示,即可得到我们想要的结果!!特别注意!!文件后缀名一定要改为.dbf,即可输出表文件,若未修改文件后缀名,也可通过【表转Excel】工具输出结果:
补充
(1)ArcGIS中分区统计计算面积的方法总结:
- 利用【以表格分区统计】工具:此类方法也是我们此次在实验过程中使用的方法。使用该方法的过程较为曲折,首先想到它是因为在近期的实验中我们经常使用该工具提取某一区域内的光谱反射率,但在此次实验中,我们没有考虑到被提取图层中含有的数据并不单一(即除耕地还存在众多土地利用类型),因此遇到了一些困难,但这并不能否认此工具的强大之处,与【栅格计算器】工具相结合,我们依然得到了我们希望的结果;
- 利用【面积制表】工具:选择【Spatial Analyst】—>【区域分析】—>【面积制表】,此类方法是我通过课堂后的网络搜索与经过课下实验实践后,发现的同样可以实现我们实验目的的一种方法,与第一个实验方法不同,【面积制表】工具可以根据我们需要分区统计的图层的属性表中的各个土地利用类型,自动得到不同县,不同土地利用类型的面积,如下图所示,十分便捷与方便直接,不需要先通过栅格计算器的计算,因此也是我们最为推荐的方法:

(2)ArcGIS中自定义符号:
1.创建新样式库:点击Arcgis主页面中的【自定义】—>【样式管理器】—>【样式】,在打开弹出的数据框中我们即可以引用我们电脑上已下载的其它软件的符号系统,同样也可以点击【创建新样式】,根据我们自己的需要创建我们想要的样式库:

2.直接修改符号:除上述方法外,我们还有另外一种直接改变符号图形的简单方法,双击符号,打开【符号选择器】数据框,选择【编辑符号】—>【图片填充符号】,即可直接在电脑上选择我们希望更改为什么样式的图形:

实验心得
- 作为一名地信学子,对于已经接触Arcgis这个软件两年多的我们来说,此次实验课的相关内容与操作都较为轻松,因此许多较为基本基础的实验过程与实验步骤在实验报告中我都并未赘述但作为追求进步积极上进的大学生来说,我们需要在有限的时间与宝贵的机会中抓住一切提升自我的机会。因此在此次实验中,乘着时间充裕我通过网络搜索与自主学习,尝试了在地图中自定义符号库,在提升自我制图水平的同时,达到了更好的地图效果;
- 除此之外,随着自我学习的不断深入,我发现自我对Arcgis这一软件的理解也在不断进步之中。在大一时我所有实验目的、过程、步骤也都较为直接简单,因此那时的我仅认为Arcgis是一个简单的实现功能的工具。而通过后续的学习对原理有了真正的理解,我逐渐发现在Arcgis中许多的问题并不是只有一个答案,例如:图像的裁剪,我们既可以使用【裁剪】工具,也可以使用【按掩膜提取】工具;分区统计,我们既可以使用【面积制表】工具,也可以使用【以表格分区统计】工具;
- 因此我认为,在我们Arcgis软件接触、学习、使用的过程中,最为忌讳的就是依照前人已有的实验步骤一板一眼步步照搬的简单执行,从不去思考其背后的原因。真正正确的实验思路应该是:首先明确我们需要得到什么样的实验结果;然后了解Arcgis工具箱中的各个工具可以实现什么样的效果,这就需要我们清楚理解各个工具的执行原理,有时许多步骤的反复操作,可能一个工具就能轻松解决;最后确定清晰的操作思路,选择最为恰当的实验工具方法;
- 作为一个已经使用了Arcgis两年的学生,我能熟练利用Arcgis进行基本的数据制图操作,也能利用Arcpy工具进行大量数据的批处理操作。我曾认为自己对于Arcgis的掌握已经是十分足够的了,然而在此次实验中,我依旧是学到了报表的制作、图例列数的选择等等的新知识,这也使我认识到学习是永无止境不进则退的,我也将在平时的学习中从拓宽自我视角的角度进行更为深入的学习。
相关文章:
【景观生态学实验】实验一 ArcGIS地理数据处理及制图基础
实验目的 1.掌握ArcGIS软件基本操作:通过实验操作与学习,熟练掌握ArcGIS软件相关的基本操作,包括界面熟悉、工具栏使用、数据的加载和保存、基本数据处理操作等; 2.掌握如何使用ArcGIS进行影像拼接及裁剪:通过实验操作与学习&am…...
今年双十一最值得入手的好物有哪些?双十一值得选购的好物盘点!
在这个全民狂欢的购物盛宴——双十一,每一个角落都弥漫着诱人的优惠与不可错过的精品。从科技潮品到生活必需品,从时尚尖货到家居好物,无数精选商品在这一季集中绽放,等待着慧眼识珠的你将它们带回家,今年的双十一&…...
【OpenCV】人脸识别方法
代码已上传GitHub:plumqm/OpenCV-Projects at master EigenFace、FisherFace、LBPHFace 这三种方法的代码区别不大所以就一段代码示例。 EigenFace与FisherFace 1. 将人脸图像展开为一维向量,组成训练数据集 2. PCA(EigenFace)或…...
xxl-job定时任务
学习中心 清理Redis中的历史榜单: 持久化榜单数据: 创建历史榜单表: 支付服务 待退款订单检查: 未支付订单检查: 交易服务 退款单处理: 促销中心 优惠券发放状态处理:...
C#从零开始学习(如何构建应用)(1)
开始使用 C# 本章所有的代码都放在 https://github.com/hikinazimi/head-first-Csharp 创建一个控制台应用 打开Visual Studio 2019 创建项目 选择控制台应用程序 创建后点击运行,就可以在控制台打印Hello World 构建一个游戏(创建WPF项目) 构建游戏的步骤 首先创建WPF项…...
OpenCV高级图形用户界面(7)获取指定窗口的属性值函数getWindowProperty()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 提供窗口的参数。 函数 getWindowProperty 返回窗口的属性。 cv::getWindowProperty() 函数用于获取指定窗口的属性值。这个函数允许你查询窗口…...
Java实现文件上传功能
目录 1、准备工作 2、注意事项 3、jsp页面代码 4、Servlet 5、注册Servlet 1、准备工作 导入依赖:commons-fileupload和commons-io 2、注意事项 ①为保证服务器安全,上传文件应该放在外界无法直接访问的目录下,比如WEB-INF目录下 ②为…...
Leetcode|24. 两两交换链表中的节点 ● 19.删除链表的倒数第N个节点 ● 面试题 02.07. 链表相交 ● 142.环形链表II
24. 注意:涉及头节点的修改或者删除时,最好设置一个虚拟的头结点,方便简化代码,不必进行是否为头节点的的判断,简化code class Solution { public:ListNode* swapPairs(ListNode* head) {ListNode* dummyHead new Li…...
OpenCV学习笔记5——图像的数值计算
目录 一、简单数值计算 二、opencv中提供函数进行计算 三、cv2.addWeighted 一、简单数值计算 在opencv中,我们有许多可以获取图像各类数值的办法,许多函数能获得各种方面的数据。但如果我们什么都不用,仅仅对图像上每一个点做加法运算会…...
P3137 [USACO16FEB] Circular Barn S
P3137 [USACO16FEB] Circular Barn S 思路:数据范围为O(n^2)那么因此我们可以暴力,那么如何进行构造呢?首先假设一头奶牛在a,一头在b,如果要使一个到b,另一个到c,(a<b<c)&…...
yocto编辑软件包-devtool的使用方法
之前用了很多次devtool,总是忘记用法,故此记录一下。 假设你有一个软件包名叫foo,并且已经下载编译过,需要修改它的源码并生成patch 生成修改工作区 devtool modify foo modify命令会将foo的源码压缩包解压到build/workspace/so…...
51单片机快速入门之 串行通信 2024/10/21
51单片机快速入门之 串行通信 并行通信: 好处:传输快 适合短距离通信弊端:占用大量io 接线形式为8对8 串行通信 异步通信: 数据一帧一帧传送,传输完一帧之后,可继续或者等待(等待时为高电平) 其帧细分为(图片来源) 起始位:数据帧开始,一定为 0 外部设备只有接受到 0 之后…...
webpack 老项目升级记录:node-sass 规定的 node v8 提升至支持 node v22
老项目简介 技术框架 vue 2.5.17webpack 4.16.5"webpack-cli": "3.1.0""node-sass": "^4.7.2" 几个阶段 第一步:vue2 升级到最新 第一步:升级 vue2 至最新版本,截止到目前(2024-10-…...
【wpf】08 xml文件的存取操作
在使用wpf编程过程中,会用到xml的配置文件,实现对其读取和存储的操作是必须的。 1 xml说明 可扩展标记语言 (Extensible Markup Language, XML) ,标准通用标记语言的子集,可以用来标记数据、定义数据类型,是一种允许…...
即时通讯代码优化
在线用户逻辑修复 在进行测试时,发现当前代码有个问题,如果test1在服务器进行连接,本地的test2给test1发消息,虽然test1能收到服务器上的信息,但是本地服务日志中会报teset1不在线,需要对该种情况进行修复…...
jmeter学习(8)界面的使用
1、新建test plan 3、 打开文件 4、保存 5、剪切 6、复制 7、粘贴 8、所有线程组展开 9、所有线程组收缩 10、置灰,操作后无法使用 11、执行 13、清空当前线程组结果 14、清空所有线程组结果 15、函数助手 搜索,可以用于搜索某个请求&#x…...
记录一次hiveserver2卡死(假死)问题
问题描述 给开发人员开通了个账号,连接hive进行查询,后来发现,hive服务有时候会卡死,查询不了,连不上(所有账号/客户端都连不上hive),但在chd里面看监控,服务器资源状态…...
【ios】在 SwiftUI 中实现可随时调用的加载框
在 SwiftUI 项目中实现一个自定义的加载框(loading)功能,可以在任意位置调用,以便显示加载动画或者进度条。下面的教程将详细讲解如何创建一个可复用的 Loading 组件,并通过通知机制控制其显示和隐藏。 先上效果&…...
字符、解释型语言、编程语言的互操作、输出
字符 同样是1,有人看到的是数字,有人看到的是字符,还有人看到的是一个小目标。 不同语言的字符 正则表达式把字符分成普通字符和元字符,元字符为了搭配匹配。比如.代表任意非换行字符,这对于通配很简便,用\…...
基于Python的自然语言处理系列(39):Huggingface中的解码策略
在自然语言生成任务中,如何选择下一步的单词或者词语对生成的文本质量影响巨大。Huggingface 提供了多种解码策略,可以在不同的场景下平衡流畅度、创造力以及生成效率。在这篇文章中,我们将逐步介绍 Huggingface 中的几种常见解码策略&#x…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...




