在实际工作中遇到一个问题,某城市的遥感影像使用的是CGCS2000坐标系下6度带的投影,但是给的项目图纸上的拐点坐标均为在3度带上的投影坐标(由于城建项目范围小,一般采用三度分带),并且这个城市横跨相邻的两个三度带,因此想要将整个城市中所有的项目都合并在一个图层中,并能叠加在遥感影像上,需要考虑到投影变换的问题。
3度带和6度带之间的关联这里不多说了。不太明白的可以看一下我另一篇文章。https://blog.csdn.net/weixin_42724716/article/details/81204626
一开始我以为3度带和6度带的转换需要自己通过坐标转换工具进行坐标转换后再定义投影,结果发现ArcGIS自带转换的功能,也就是投影变换功能。(因此不需要自己再进行坐标转换)
针对上述提到的问题,采用的方法是先将项目边界在该三度带的投影坐标系下上图(包括配准、矢量化),之后再将这个坐标系转换为所属六度带的投影坐标系。
下面是利用ArcGIS实施的具体步骤。
1、找到城市所属的三度带及六度带,并上图。
1)在网上查到该地区经度范围,通过查询三度带、六度带对照表(网上有),可以确定该地区所属的六度带,以及横跨的三度带。比如这个城市跨了两个三度带,分别是41带、42带,对应的六度带是21带。(确认这些,是为了准确地选择应该采用的投影坐标系)
2)在网上找到项目所在的经度范围,再确定其所在的三度带,或是直接通过其坐标信息解读出其所在的三度带(横坐标的前两位是带号)。若坐标信息没有包含带号,则采用前种方法。之后在这个三度带的投影下上图。
2、得到矢量数据后,打开ArcToolbox,找到Data Management Tools下的Projections and Transformations。
矢量数据选择图中的Project即可。若是栅格数据进行投影变换,则在图中Raster目录下再找到Project。
3、在Project对话框中设置需要进行投影变换的坐标系。
例如,项目图采用的是3°分带的41带投影,该城市处于6°分带的21带投影上,现需要将三度带投影转换为六度带。要注意的是,选择输出的投影坐标系时,带号的有无,要和输入的坐标系对应。
如果有一个三度带的*经线和六度带的*经线重合,那么这两个投影变换之后,矢量数据的横坐标除了前两位的带号变了,其他数字是不会发生变化的(单位是米)。这个很好理解,投影六度范围比三度大,因为是同一条*经线(两坐标系原点一致),三度的坐标叠在六度范围上,横坐标不会发生改变(除去带号),纵坐标可能有一定变化。
可是变换之后,我们往往发现,视图右下角显示的坐标并没有发生改变。
这是因为当前数据框(data frame)的坐标系可能仍然是原来三度带的那个投影坐标系。由于ArcGIS有动态投影的效果,即将数据框下的数据的坐标系,在视图中暂时转换为数据框的坐标系,所以我们看到的右下角坐标还是原来那个坐标,但该数据的真实坐标系其实已经发生了变换(可以右键查看数据属性)。比如原来数据是3度分带下的41带投影,数据框的坐标系也是41带投影(在属性中可查看),将该数据转换为6度分带下的21带投影后,可以在数据属性中查看到坐标系已发生变化。在将数据框的坐标系修改为21带投影(在数据框属性中修改),就可以看到数据在21带投影下的坐标了。
既然如此,为什么不能直接通过修改数据框的坐标系,来达成投影转换的目的呢?
刚刚已经提到,这只是一种动态投影的效果,是临时、暂时的,并没有真正改变数据的坐标系。不过我们可以利用这种动态投影来暂时看一下投影转换之后的效果。真正要改变坐标系,还是要用到工具箱里的投影变换工具。
以上的投影变换是在同一基准面下(同样都是CGCS2000)进行的,是严格的投影变换。因此在ArcGIS进行投影转换时,不需要填Geographic Transformation(地理变换方式)。如果是两个不同基准面之间(比如CGCS2000和西安80)的投影变换,则还需要建立一个地理变换方式(通过相关参数)来实现。
另外,对于跨带投影问题,有大神是通过用户自定义投影来实现的,有兴趣的朋友也可以在网上搜来看看。比如我看到的这篇https://blog.csdn.net/dsac1/article/details/41212935
欢迎留言与我交流,大家共同进步!~