在进行野外观察时,我经常要记录动物的坐标(假设为B点),但是动物往往离我很远,并且不可到达,这时没有可能测量动物的坐标。好在我用了一个讨巧的办法,就是测量我自己的坐标(假设为A点),估计动物和我的直线距离(假设为L,越熟练误差越小),测量动物相对于我的方位角(假设为α,正北为0)。利用三角函数,我就可以计算出动物的坐标了。原理如下图
图1. 利用三角函数计算B点坐标
但是问题来了,当我把GPS测得的坐标带入上述公式计算时,得到的B点坐标和实际情况相差很远,像这样:
图2 直接用地理坐标计算,位置发生严重偏移
经网上搜索,发现问题出在坐标系上。GPS(包括手机)测量的坐标是地理坐标系(单位是度分秒),图1所示公式为平面坐标(单位是米或者千米),如果直接把GPS的坐标代入计算,结果肯定出错。
当我们想把地球上的位置展示到平面地图上时,需要将地球展开成一个平面,这时就要用到投影坐标(也是一种平面坐标)。地球坐标和投影坐标之间的转换公式很复杂,我这里就不展示了,免得搞乱你的头绪。我也是看到这些公式头大很,看到大神们用各种语言编写的程序,更是不知如何下手。本想编个excel公式进行批量计算,但是没搞懂公式,也不知道该怎么办?
就在我一筹莫展的时候,想到了gis系统,我用的arcgis就可以进行坐标系转换,何不用它来试一试。如果它能把转换后的坐标输出来,我就可以在excel中用图1的公式进行计算了。于是我用了下面的方法:
首先,新建一个arcgis文档,新建一个shp文件,指定一个投影坐标系,如下图,点击edit,然后依次展开Projected Coordinate Systems-->UTM-->WGS 1984-->Northern Hemisphere,找到你的目标坐标系。怎么找呢?看下图红色圈出来的部分,看看你的坐标与它是否接近,不是的话,就挨个试,总能找到相近的,那个就是你要找的。
图3 arcgis中指定投影坐标系
第二步,确定好了文档的坐标系后,接下来,把GPS坐标点导入arcgis,在File-->add data-->add xy data中导入记录有坐标的excel文件,注意导入时
不要指定投影坐标系,
不要指定投影坐标系,
不要指定投影坐标系,
否则你会发现数据点和底图匹配不上。