零基础小白如何使用QGIS制作研究区地形区位图教程
假设我是一名GIS新生,想要使用QGIS进行空间数据获取、处理与制图,生成一张类似于如下样式的山东省区位图(Mashford Mahute
制作):
我们站在巨人的肩膀上,参考Mashford Mahute提供的部分QGIS制图教程,结合《地理信息系统概论(黄杏元)》、QGIS官方文档、Ujaval Gandhi提供的课程,官方文档与Ujaval Gandhi课程均为开源协议,任何人都可以免费获取学习、转发或修改,参考网站如下:
https://docs.qgis.org/3.40/zh-Hans/docs/index.html #暂时是英文官方手册
https://docs.qgis.org/3.34/zh-Hans/docs/index.html #中文版官方手册
https://www.osgeo.cn/qgis-tutorial/index.html
https://courses.spatialthoughts.com/index.html # Ujaval Gandhi
在起初我曾设想录制相关的视频,但出于两方面考虑:时间和便携性,录制视频和剪辑需要挺多时间,视频教程直观但是跟练回顾比较麻烦,所以还是选择制作笔记分享。
由于是考虑GIS零基础(要有最起码的计算机知识基础),所以笔记内容包括:1、GIS基础;2、QGIS基础;3、QGIS制作区位图。
1、GIS基础:什么是地理信息系统、栅格数据与矢量数据、地理坐标与投影坐标、如何下载行政区划与高程(海拔、DEM)数据等内容;
2、QGIS入门:QGIS 3.40安装、QGIS面板介绍、导入与分析数据、插件安装、如何加载100+个底图、加载天地图等内容;
3、QGIS制作区位图:参考Mashford Mahute分享的内容,模仿制作区位图。
在该过程中下载使用的文件与数据可以通过提及的官方网站下载,也可以通过我的分享:https://pan.baidu.com/s/1XLQoaYmVY7rcolzMxjmF6g 提取码: z65b。
1、GIS基础
(1)什么是地理信息?
地理信息是与地理环境要素有关的物质的数量、质量、分布特征、联系和规律等的数字、文字、图形和图像等的总称,具有(1)空间特征(空间位置分布);(2)属性特征(大小、颜色等属性);(3)时序特征(地物随着时间变化)。
(2)什么是地理信息系统(GIS)?
地理信息系统是由计算机软硬件支持和不同方法组成的系统,该系统被设计用来进行空间数据的采集、管理、处理、分析、建模和显示,以便解决复杂的规划和管理问题。
(3)矢量与栅格数据
空间数据结构可以划分为基于矢量模型和基于栅格模型的数据结构。矢量数据结构是利用欧几里得几何学中的点、线、面及其组合体表示地理实体空间分布的一种数据组织方式。特点:能更好的表现地理实体的空间分布,数据冗余低,精度高,但是多层空间数据的叠合分析比较困难。示例:道路图层、行政区划数据一般都是矢量结构。
栅格数据结构是在一个个栅格单元上给出相应的属性值来表示地理实体的一种数据组织形式。栅格数据结构特点:与矢量数据相比,用栅格数据表示地理要素更加直观,容易实现数据的多层叠合分析,便于与遥感图像等融合使用。但是也具有缺点,栅格数据的冗余量大,所需存储空间大,栅格数据网络分析比较困难。示例:高程数据、密度数据等一般是栅格结构。
作为新手,我们可以直接把行政区划数据、河流水系数据、交通网络数据等理解为矢量数据,在ArcGIS这个软件中一般是Esri Shapefile文件;高程数据、遥感影像等当作栅格数据,在ArcGIS和QGIS中一般是.tif
后缀的文件。但是这里需要注意的是,Esri Shapefile文件不仅仅是指的.shp
文件,还包括.shx
、.dbf
、.sbx
和.sbn
、.prj
、.cpg
等。我们仅仅需要指导在将某一个矢量数据打包发送给别人时,最好所有的文件一起打包即可;各个文件的详细作用如下(ArcGIS 官网:Shapefile 文件扩展名):
此外,这里说到的.shp
、.tif
后缀都是指的将文件存储到文件夹,而不是数据库,新手建议还是先存储文件到文件夹,这样更加简单直观。
在ArcGIS中,.gdb
表示地理数据库,在windows系统的文件资源管理器中显示为文件夹图标,但是打开后却是大量复杂的代码,要通过ArcGIS软件打开才能正常显示,地理数据库在工程项目中使用频率更高;QGIS中的GPKG格式是单个 SQLite 数据库文件,也是支持同时存储栅格和矢量格式。
(4)简单理解坐标系
我们的地球自然表面是一个高低起伏很大的不规则表面,这个表面不能作为测量的依据,所以建立地球的几何模型来进行地理空间定位。大地水准面是假设静止的平均海水面穿过大陆、岛屿形成包围整个地球的一个闭合曲面,相当于一个接近球形的橘子但是不是球形,所以我们人为的用大地水准面把这个橘子近似成球形。
为了在地球上表示我们的位置,我们假设出来了经纬度和经纬网,这个初高中就已经学习了解。而用这个经纬网上的经纬度表示我们的位置,就是使用的地理坐标系,地理坐标系的单位就是度分秒,例如:东经111°22′33″。
假设我们我们像扒橘子皮一样,将地球均分为60瓣,然后把这60瓣橘子皮用书本压平整,可以说扒开压平就是投影;而扒开橘子时的方式就表示不同的投影;投影坐标系的单位是米。
对小白来说,在选择坐标系过程中,设置地理坐标系就是WGS_1984
、GCS_China_Geodetic_Coordinate_System_2000
,设置投影坐标系就是设置成例如:WGS_1984_UTM_Zone_47N
、CGCS2000 / 3-degree Gauss-Kruger CM 102E
这种格式,后面一般会有带号。
此外, 很多时候使用EPSG
代码更加方便,EPSG是某一个组织把坐标系和一些序号对应在一起后形成的表,这个表大多数GIS软件都认可,所以我们通过序号来选择坐标系。
(5)如何下载DEM数据?
DEM是数字高程模型(Digital Elevation Model)的简称,下载DEM数据就是下载高程数据,DEM数据可以表示地表的海拔,DEM数据处理后可以表示地表坡度、起伏等。就和手机有不同的品牌、不同的大小一样,DEM数据也有不同的精度、不同的生产商与加工商。30米的DEM比90米DEM数据精度高,但是数据量也大,下载起来也麻烦。DEM数据有好几个不同的生产商和版本,也有很多国内的网站把这些数据存储起来分享给大家。
我这里选择的是资源环境科学与数据平台下载90米分辨率的DEM数据,网址为:https://www.resdc.cn/Default.aspx。下载数据首先需要注册账号:
如果我没记错的话,账号注册后每天可以下载5个文件左右,我们仅仅需要下载一个文件。账号注册后,点击登录:
选择下载分省90mDEM数据,每一个省为一个压缩包,选择下载山东省,该压缩包大约15mb。
该网站30mDEM收费,如需下载30m DEM数据可以通过地理空间数据云等。
(6)如何下载行政区划数据?
在中科院资源环境科学数据平台有行政区划数据,但是我们这里是选择从天地图下载行政区划数据,网站为:https://cloudcenter.tianditu.gov.cn/administrativeDivision。
使用天地图同样需要先注册账号,填写相关信息注册即可。
注册完成并登录账号后,点击下载数据即可,下载中国省级区划的GeoJSON格式文件(看作一种矢量数据文件格式即可)。
2、QGIS入门
(1)QGIS下载安装
QGIS为开源软件,从QGIS官网下载即可,网站地址为:https://qgis.org/download/。尽管该网站可以从国内访问,但是访问和下载速度较慢,如果有魔法或者科学的话,访问与下载软件将会快很多。
进入网址后,点击跳过捐赠:
建议下载长期稳定版本,点击下载链接:
安装包下载完成后,双击文件:QGIS-OSGeo4W-3.40.8-1.msi,运行安装包。如果不修改安装路径的话,全部点击下一步即可完成安装。
安装完成后,在桌面会有一个QGIS 3.40的文件夹,选择打开文件夹中的QGIS Desktop 3.40
。
(2)QGIS设置中文与界面介绍
软件安装并打开后,默认的语言为英语,设置中文需要通过菜单栏中的Settings进行设置。
选择简体中文后,关闭并重启软件,即可实现设置界面语言为中文。
打开软件后,能够看到菜单栏、工具栏、图层面板、浏览器面板、工具箱、最近的工程目录等。新安装的QGIS界面会与我目前的界面不同,新安装软件界面中,浏览器在A区域,图层在B区域,C区域的工具栏也会少很多。
我是由于习惯了ArcGIS 浏览器也就是文件目录在右侧 ,因此将浏览器从A区域拖动到了右侧。只需要将鼠标光标放在浏览器三个字上,即可拖动,将浏览器拖动到右侧即可实现位置的改变。如果需要打开其他的面板或者工具栏,可以在工具栏右侧空白区域右键,从弹出的界面选择显示出来哪些面板或者工具即可。
(3)QGIS安装插件
QGIS很多高级或者定制的功能需要使用各种各样的插件实现,安装插件有多种方式,可以通过压缩包或者插件市场在线安装。在菜单栏中点击插件–管理并安装插件:
通过插件面板,可以搜索并在线安装插件,对于已经安装的插件可以卸载或者更新;从设置中,可以关闭插件更新提醒;此外,还可以通过压缩包安装插件。
常用的插件有很多,例如底图插件QuickMapServices(能够加载谷歌影像、bing地图影像等)、QuickOSM(下载OSM数据等,OSM数据是国外的一个与行政区划、交通河网、建筑等相关的数据平台);我们可以直接下载QuickMapServices插件来安装底图,但是没记错的话,需要科学上网,否则该插件无法加载所有的底图。
(4)QGIS加载100+款底图
参考吴秋生老师提供的资源:https://github.com/opengeos/qgis-basemaps,首先在该链接下载文件:qgis_basemaps.py
。
打开Python控制台:
在Python控制台中点击:显示编辑器,会弹出右侧的面板,在右侧的面板中点击:打开脚本文件。
加载并打开我们下载的Python文件:
点击运行该脚本:
当运行完成后,会在Python控制台中显示所有的底图都加载完成,重启QGIS软件即可。
在浏览器的XYZ切片中便可以找到各种底图,ESRI系列的底图都可以加载,Google或者OSM系列的底图需要解决国内网络问题。
除了Geode(高德)的两个底图,其他的底图有地名标注的好像都是英文。
(5)QGIS加载天地图
天地图是由国家测绘地理信息局主导建设的地理信息综合服务网站,旨在为公众、企业和政府部门提供权威、标准、统一的在线地理信息服务;在很多场景下使用天地图的数据更加具有信服力。当然,如果是仅仅论文底图制作等,很多时候没人在意底图来源。QGIS加载天地图底图,需要首先注册天地图账号。进入天地图网站:http://lbs.tianditu.gov.cn/。
正如官网所写,需要先注册账号,再申请成为开发者,申请Key后才可以在QGIS中加载天地图。如果没记错的话,现在天地图每次登录都需要手机验证码,并且天地图的资源每天有配额限制。
在注册账户后,点击网站右上角的控制台按钮,进入天地图控制台;点击创建新应用。
设置相关的信息,选择浏览器端:
点击提交后,即可获得Key。
添加天地图可以通过XYZ连接,但是每次仅仅只能添加一个,因此这里选择使用天地图插件:TianDiTu Tools。
在插件中复制我们从天地图官网获得的Key。
复制进去后,点击保存;保存后,便可以选择加载天地图。
3、区位图制作
新建并保存工程,养成随时保存工程的习惯,避免停电或者电脑卡顿丢失工作成果。
(1)数据预处理
① 预处理行政区划数据
我们下载的行政区划数据与DEM数据需要预处理一下。首先处理行政区划数据,添加矢量数据。点击按钮或者使用快捷键Ctrl+L打开数据源管理器,添加矢量文件:
找到该文件后,点击添加,弹出面板:选择要添加的项,点击全选,点击添加图层。
两个图层被添加到了当前图层中:
接下来导出山东省的行政范围,点击地图上的山东省,然后在图层上右键选择导出,将选中的要素另存。
保存的格式可以选择为ESRI 形状文件,也就是保存为shp文件,当然也可以仍旧另存为GeoJSON文件。
② 预处理DEM数据
将下载的DEM数据解压,解压后在浏览器中找到该文件夹。该文件被存储为ArcGIS的adf数据,将该数据直接拖动进入地图界面中:
将DEM图层的图层样式改为:单波段伪彩色;
如果需要修改图层顺序的话,直接拖动文件修改顺序即可,图层中的顺序即地图界面中的现实顺序。
接下来使用山东省的行政区划数据裁剪DEM数据。在栅格菜单栏,选择提取–按照掩膜图层裁剪栅格。
输入图层选择DEM数据,掩膜图层选择山东省,目标CRS表示目标坐标系,可以选择修改为4490,这里的4326指的WGS1984地理坐标系,4490表示大地2000地理坐标系,点击运行。
运行结束后,在图层中会生成一个临时文件:
将该文件另存保存:
设置保存为GeoTiff文件,设置输出文件名等。这里有一个创建VRT,指的是创建虚拟栅格,这是QGIS中一个特定的设置;绝大多数情况下,不创建VRT不耽误输出处理等。
接下来临时修改高程数据的图层样式,最终的样式还需要不断调整完善。
现在看着山东省太扁平了,因此将坐标系修改为4498。这里修改仅仅是修改了显示的坐标系,并没有修改各个数据实际的坐标系。
③ 制作山体阴影数据
使用DEM数据制作山体阴影数据,在栅格菜单栏中,找到分析–山体阴影:
选择使用默认的参数即可:
将生成的结果导出保存:
修改山体阴影数据的图层样式,山体阴影数据位于DEM图层上方,将山体阴影的混合模式改为正片叠底(Multiply)。
如果感觉当前效果过于灰暗,可以修改相关参数,例如提高明度:
④ 制作地形剖面线
新建一个矢量线文件,可以新建为shapefile:
调整新建图层的顺序,将其放在山体阴影图层上方,并开启编辑模式;只有开启编辑模式,才能够画线编辑。可以通过鼠标右键选择开启编辑模式:
推荐直接在工具栏切换编辑模式:
点击添加线要素,在图上画线:
将鼠标光标移动到图上,点击第一下确定起点,点击第二下确定终点,鼠标右键点一下输入id,保存为1,表示第一条剖面线。
同理绘制第二条剖面线,根据个人需求绘制剖面线数量。绘制完成后,点击切换编辑模式,保存。
在图层样式中,将线的颜色改为红色:
将线改为虚线:
还可以修改线的宽度、设置虚线图型:
可以修改线的单位,点击使用自定义虚线图型下方的框,可以设置横线和空格的比例:
目前效果图如下:
(2)打印布局
① 初步了解打印布局
在工程菜单中,选择新建打印布局:
设置打印布局名称:
在打印布局中,通过布局菜单栏,可以查看布局页面属性,默认的页面为横向A4。
在空白处右键,可以修改显示的工具栏或者面板:
在上方菜单栏能够选择保存、导出为图片或者PDF、放大缩小、对齐或者组合项。这里的项包括:地图、指北针、比例尺、文字、图片等要素。
在左侧的工具栏可以选择添加各种项:
如果布局关闭了,还可以再从地图工程中重新打开:
② 添加地图
将地图项添加到打印布局中:点击添加地图项,在地图布局上框选出地图范围
框选结束后,会将地图添加到布局中:
调整地图的项属性,上下左右各留下10m空白用于添加经纬度信息,宽度与高度根据A4纸张设置,将宽度设置为277,高度设置为190。
再调整一下比例尺:
勾选框架,显示出来地图项边框:
使用移动项内容
工具来调整山东省地图的位置:
③ 添加经纬网
添加经纬网仍旧是需要调整地图项的属性,在属性中找到网格,新建网格1,新建后点击修改网格:
修改网格属性,将网格类型改为实线或者十字,经纬网选择使用地理坐标系,也就是选择的使用4490这个坐标系;间隔选择的地图单位,也就是°
;X和Y是网格间距,可以设置为1或者2。
我感觉实线太影响观看图上的要素,因此将网格改成了十字。
接下来添加网格标注,勾选刻度在外,将刻度线显示出来:
勾选绘制坐标,修改成喜欢的显示格式,左右两侧的标注改成 垂直方向。
可以修改标注的字体字号,已经距离框线的距离:
目前效果如下:
④ 添加底图、指北针、比例尺、图例
为了图上美观,显示出省级行政区划,并修改省域数据的样式:
描边颜色可以酌情修改,填充颜色点击下拉菜单,选择透明填充:
临时添加一个喜欢的底图。在工程界面中添加底图后,如果打印布局中没更新,可以手动刷新:
但在添加底图的过程中,出现了两个尴尬的问题:第一个问题是由于地图工程使用的坐标系是4498,所以瓦片不能正确加载,所以修改了地图工程的投影为在线地图默认的3857坐标系;
第二个问题是在打印布局中,瓦片地图不能正确显示,对于这个没用很好的办法,我选择设置比例尺为3600000、降低DPI到260,这时可以正常显示;或者将地形底图改为矢量地图,我感觉地形底图的效果也一般,因此将底图修改为了天地图的矢量地图。
接下来添加指北针,点击:添加指北针
点击后在打印布局合适的位置点一下,就会弹出新建项属性:
如果需要修改指北针的位置或者大小,直接在打印布局调整即可;如果需要修改指北针的样式、颜色等,需要在指北针的属性中修改。
相似的过程添加比例尺,如果需要修改比例尺的样式等,也需要在属性中修改:
相同的过程添加图例,但是直接添加的图例包含了许多无用的内容,我们仅仅保存DEM图例即可。
在图例的属性中,取消图例项自动更新,选中没用的图例项点击红色减号。
调整后的图例如下所示,还需要继续修改图例项的属性;
在主要属性中添加标题:图例;设置隐藏亚组名:
当然样式如下,继续修改。取消勾选背景,去掉白色背景;将波段1(灰度)修改为DEM(m)。
双击:波段1(灰度)
进入图例项属性,修改为:DEM(m),修改完成后点击左侧的三角退出。
接着修改图例条,双击图例条:
修改宽度高度、字体等。
通过调整各项属性,最后效果如下:
但是我忽然发现,我右侧的纬度标注呢!!!QGIS总是会有这种奇怪的小问题,略微调整一下地图项属性的比例,它又回来了!!
⑤ 添加地形剖面
先在地图工程中操作,再从打印布局操作。先在地图工程中,打开视图菜单栏中的高程剖面:
弹出高程剖面面板,在该面板中应该是默认添加了DEM数据:
如果没有默认添加的话, 可以手动添加DEM数据:
勾选DEM数据,点击捕获曲线工具:
在图上将创建的地形剖面线描一遍,然后右键确认,将生成一个剖面曲线:
将距离单位改为KM:
生成这条高程剖面后,进入打印布局视图中,点击添加高程剖面:
在图上用鼠标左键框选出来放置高程剖面的位置:
点击从高程剖面复制:
一个高程剖面就被添加到了布局中:
调整高程剖面的位置,重复前面的操作,添加第二个高程剖面;调整图上内容的位置等:
⑥ 添加鹰眼图
如果还想要添加鹰眼图显示山东在全国的位置,那就先锁定地图1:
锁定后,再在打印布局中新建一个地图2:
在地图视图中,调整仅显示中国的矢量和山东的范围:
当然也可以添加天地图的底图,处理好第二个地图后,建议也将第二个地图锁定图层和锁定图层样式。最终效果如下所示:
最好是再调整一下颜色、图上的字体、各个要素的布局等,经纬网十字改成虚线显示效果也应该会更好点,懒得弄啦!!