C'est la vie

生きてる事が 時には辛くて

0%

将已知四角坐标的图片导入到ArcGIS中的方法

背景

工作中遇到的场景,就是在查看浏览器的开发者工具中的网络请求时,发现有些地图上显示的要素是一个图片文件,请求URL中能看见图片的四个角的坐标。有时候可能会想要把图片下载下来,再根据已知的坐标把图片放到ArcGIS或其他可能查看地图的软件中。下面分别以奥维地图和ArcGIS举例。

导入奥维地图中

具体可以查看奥维地图官方文档:

PC版标签附件的添加及设置说明

大致操作步骤就是先添加一个标签,然后点开标签的设置,把图片作为附件添加到标签中,然后对图片设置一下,填入四个角的经纬度就可以把图片显示在地图上了。

导入到ArcGIS中

首先先参考以下几个文档:

栅格数据集的坐标定位文件

TIF、JPG图片手动添加地理坐标的方法

大致流程就是制作一个和图片同名的文件,用来告诉ArcGIS这个图片应该以什么参数进行坐标变换。

需要提前知道四个角的坐标,以及图片右键属性中的宽度width,高度height
然后分别计算

1
2
X方向上的像素分辨率A=(Xmax-Xmin)/width
Y方向上的像素分辨率E=(Ymin-Ymax)/height (注意这里应该是个负值,和上面的公式不太一致)

然后填写文件内容如下

1
2
3
4
5
6
A=X方向上的象素分辨率
D=旋转系统 (一般是0)
B=旋转系统 (一般是0)
E=Y方向上的象素分辨素
C=栅格地图左上角象素中心X坐标 (一般也是坐标经度的最小值Xmin)
F=栅格地图左上角象素中心Y坐标 (一般也是坐标纬度的最大值Ymax)

文件内容写好保存好之后,要把文件后缀名改为和图片格式对应的,详细可以参考上面参考文档中的示例,额外要说的一点就是表里没有png格式,实测png格式也是可以的,把文本文档的后缀名改为pngw就可以。

之后就可以把图片加载到ArcGIS或者ArcGIS Pro中了,注意坐标系别选错了。

导入到ArcGIS之后图片颜色不对

导入到ArcGIS之后可能发现图片颜色和原来的不一样,这个时候可以

将图像模式为RGB模式的图片导入GIS中,可以打开该图层的属性面板(也可双击图片下的RGB),在符号系统中调整RGB合成,将stretch拉伸下的Type设置为none,同时关掉下面的所有选项,此时导出的图片颜色同原始图像相同

参考文档:图片jpg导入gis中颜色变化

最后

这个月主要就是研究了一下如何从地理服务器上获取数据,在获取数据的时候发现有些数据在请求时返回的是带坐标的图片,所以就找了一下如何把这样的图片放到自己的地图中。

后来发现这些图片也是通过矢量数据经过处理之后显示在前端的,原始数据可以通过构造一些请求直接从后端获取,具体过程就先不赘述了。有些想法是受到
JSON数据转SHP,以​山东黄河三角洲国家级自然保护区数据为例的启发。

最后的最后,这个月也稍微研究了一下如何在VScode中配置arcpy的环境,这样可以就可以用VScode写arcpy相关的代码了。这个是受到
5分钟配置好集成开发环境 PyCharm的启发,不过我没用PyCharm,而是VScode,大致流程就是找到ArcGIS的安装目录中的python文件夹,然后将解释器加入到设置里(就是右下角那个可以显示当前环境python版本的那个),测试了一下可以分别调用ArcGIS10.6的python2解释器、ArcGIS Pro的python3解释器,原理好像都是用conda虚拟了一个python环境,当然也可以在环境里安装自己需要的其他包了。