哈喽,小伙伴们大家好!前几篇博客一直在写爬虫相关知识,为什么这篇文章突然打算想写写ArcGIS的知识点呢?这是有原因的,前段时间研究了下选址问题,其中有一个任务就是对目标选址区域进行网格划分,然后方便后续爬取百度地图不同POI数据,并对不同POI数量(医院、政府、公司、娱乐场所、小区、学校、餐饮店等等)进行统计。当初因为刚开始接触再加上时间有点紧张,所以在网格划分这部分没有去深究,只是采用了以固定经纬度间隔(1°,0.01°等)为标准,对目标选址区域进行网格划分。这两天又查阅了些相关博客和文献,发现可以用ArcGIS创建渔网,并导出每个网格的中心质点经纬度,所以在这里我对这个知识点适当总结下,为了加深记忆的同时,还可以给在这个问题上遇到困难的小伙伴一些建议。
本文使用情景:在利用Python爬取百度地图兴趣点(Point of Interest)数据时,我们需要对网格进行划分。在网上查阅资料时,小伙伴们会发现好多博客基本上都是以固定经纬度间隔来划分,因为百度地图对单次爬取POI的数量有限制,每个网格只能爬取20个,所以我们只能在目标区域划分时尽量缩小网格大小。为了让爬取数据完整,我一般都会将经纬度间隔设置的很小,比如0.01°。通过查阅一些资料,发现除了用经纬度间隔来划分网格以外,还可以采用ArcGIS创建渔网,将经纬度转换为距离单位,然后以每个网格1000m*1000m的大小进行划分,这样或许比0.01°更具有实际意义。可能有些小伙伴对爬取百度地图兴趣点不太了解,不过不要紧,过两天我就会发篇博客总结下,到时候小伙伴可以结合两篇博客去理解,相信会有意外收获!
如果将所有知识点放到一篇博客的话,内容会较长,所以这里将部分知识点单独写了几篇博客,如果用到的小伙伴可以直接点击相关链接跳转过去即可;好了,废话不多说,具体步骤如下,大家耐心阅读,中间我也会给出一些参考博客链接,大家一起食用!
1. 获取目标区域的矢量地图数据(shp格式)
这部分单独写了篇博客,有需要的小伙伴直接点击链接即可;
链接地址:https://blog.csdn.net/qq_38230663/article/details/117339942
2. 导入矢量文件并修改要素图层名称
对该知识点有兴趣的小伙伴可以直接点击链接,链接地址:https://blog.csdn.net/qq_38230663/article/details/117339054
3. 创建渔网
(1)设置投影坐标系
在划分网格时,如果想按照距离也就是1000m×1000m的网格大小进行划分,这里必须换一下坐标系,换成WGS_1984_UTM_Zone_50N(其他的不太清楚),如果只是想按照经纬度间隔划分的话,这里就不需要换投影坐标系;具体步骤如下:右键【图层】--【属性】--【坐标系】-- 在投影坐标系中找到【WGS_1984_UTM_Zone_50N】--【确定】;设置完投影坐标系后,原地图可能会有些变化,这是正常的。
(2)创建渔网
接下来就是创建渔网了,按照下图指示打开ArcToolbox框,打开后具体步骤如下(ArcGIS10.5):在工具框中找到【数据管理工具】--【采样】--【创建渔网】即可以打开创建渔网对话框,关于对话框中具体参数设置,见下图;
点击【确定】后,即可创建渔网了,创建完后显示如下图;
咦,怎么只显示网格呀?我的石家庄市底图跑哪去了?疑问.jpg???继续往下阅读,嘿嘿~
(3)将网格显示在底图上
其实很简单,换一下渔网的背景颜色就可以了;设置成空心后,地图如下图所示,是不是感觉很清晰啊,可以看到具体网格划分情况;
(4)网格裁剪
网格按照1000m×1000m划分完了,但是有好多多余的空白网格,如何去除这些无关的空白网格呢?这就用到了ArcGIS提取分析中的裁剪功能;具体步骤如下:打开ArcToolbox工具框 --【分析工具】--【提取分析】--【裁剪】;关于裁剪功能的具体参数设置,如下图所示;
裁剪后的图层如下图所示:
好了,到这里网格划分就差不多完成了,是不是感觉挺有意思呀,不过还有一个问题就是,既然网格划分完成了,那我们怎么确定这个网格在哪呢?
4. 导出中心质点经纬度
这里我们用每个网格的中心质点经纬度来表示网格的具体位置,那么如何导出中心质点经纬度呢?具体步骤如下:
(1)添加字段
右键渔网裁剪后的图层 --【打开属性表】--【点击表选项(下三角标那里)】--【添加字段】,即可显示添加字段的参数框,具体参数如何设置,如下图所示;
这里,添加的字段命名为经度,字段类型设置为浮点型,同理,在添加一个命名为纬度的字段,字段类型同经度;
(2)将添加的两个字段(经度纬度),显示成中心质点经纬度
上面我们新建了两个空白字段,分别命名为经度和纬度,如何让它们显示成中心质点经纬度呢?很简单,具体步骤:右键【经度】字段 --【计算几何】,即可显示计算几何的参数框,具体设置如下图所示;
上图将经度设置好了,纬度同理,小伙伴们自行尝试即可;设置完成后,经度和纬度字段就显示成了中心质点经纬度的数值,如下图所示:
(3)导出数据
中心质点经纬度都设置完成后,最后就是导出这个数据了,步骤比较简单,具体流程如下图所示:
最后,点击【保存】即可;
好了,到这里为止,本文的所有内容就结束了;本文主要任务就是利用ArcGIS创建渔网并导出中心质点的经纬度,创建渔网之前可能有些小伙伴会用到两个小知识点,分别是Python获取中国各地区矢量地图数据和ArcGIS修改图层要素名称,由于篇幅原因,所以把这两个小知识点拿出来单独又另写了两篇博客,如果有需要的小伙伴可以点击链接去进行阅读;在使用ArcGIS作图的过程中,真正感觉到地图的魅力所在,原来地图如此有趣,都怪本科没好好学呀,现在又开始恶补知识点了,kuxiao.jpg;在学习ArcGIS创建渔网的过程中,也作了些其他的图,所以后续博客计划,打算写一下ArcGIS如何将渔网跟人口分布密度图结合;同时,爬虫部分也正在安排百度地图POI数据以及大众点评店铺数据的爬取;由于最近各方面任务比较多,小伙伴们不要着急,后面都会慢慢安排上,奥里给!
如果哪里有介绍的不是很全面的地方,欢迎小伙伴在评论区留言,我会不断完善的!
来都来了,确定不留下点什么嘛,嘻嘻~