投影与定义投影与动态投影
The following article is from 数读城事 Author 数读菌
最近群里经常出现问投影的问题。很多错误都是非常基础的,过于基础以至于一时半会不知道怎么回答。比如这个,投影、定义投影和动态投影的区别。
我作为一个非地信专业的小垃圾,本篇文章侧重从操作角度来简明的说一下【投影】和【定义投影】这两个工具,顺便说一下ArcGIS的“动态投影”机制。从一个规划出身的垃圾的角度,来谈我的理解。我也不懂原理,反正就瞎写,你们就瞎看吧,觉得有帮助就点个在看,分享个文章,如果能赞赏就更好不过,如果觉得有问题或者有什么想法可以在留言里说。
01投影工具(投影栅格工具)和定义投影工具
投影工具位于【ArcToolbox】—【数据管理工具】—【投影和变换】—【投影】
投影栅格工具位于【ArcToolbox】—【数据管理工具】—【投影和变换】—【栅格】—【投影栅格】
定义投影工具位于【ArcToolbox】—【数据管理工具】—【投影和变换】—【定义投影】
简单理解下,【投影】是用在矢量文件上的,【投影】栅格是用在栅格数据上的,别的没啥太大区别。所以下文就不说【投影栅格】工具了,直接做【投影】和【定义投影】的比较。
其实在工具帮助里已经说得很明白了。
投影:将空间数据从一种坐标系投影到另一种坐标系。
定义投影:覆盖与数据集一同存储的坐标系信息(地图投影和基准面)。此工具用于坐标系未知或定义错误的数据集。所有地理数据集均具有一个用于显示、测量和转换地理数据的坐标系,此坐标系在 ArcGIS 中使用。如果某一数据集的坐标系未知或不正确,您可以使用此工具来指定正确的坐标系。使用此工具前,您必须已获知该数据集的正确坐标系。
我觉得开发者为了不让大家搞错使用的工具,在【定义投影】的帮助里写的很详细“使用此工具前,您必须已获知该数据集的正确坐标系”。
我举个例子吧,比如数据的坐标系是他(她)的对象,那【投影】就是给对象换个衣服,对象还是那个合适的对象;而【定义投影】就是直接换个对象,适不适合就不知道了。(什么奇怪的比喻)
在操作层面直观理解的话就是,使用【投影】后,你“输入数据”和“输出数据”是能重合的;而使用【定义投影】后,你的数据可能就不知道跑哪里去了。
我说的更绝对一点:
但凡你的数据因为是地理坐标,需要投影成为投影坐标,你就用【投影】工具;
但凡你的数据没有坐标系,而你“恰巧”知道它是什么坐标,你就给他用【定义投影】。
另外,【投影】工具是输出一个新的数据集或要素类,所以对原数据没有影响;【定义投影】是直接在原数据上覆盖,所以用之前一定要做好备份。
没有备份数据前千万不要用【定义投影】!!!
没有备份数据前千万不要用【定义投影】!!!
没有备份数据前千万不要用【定义投影】!!!
上面说的是两个工具,但是这个“动态投影”,他不是个工具,他可以算是ArcGIS自带的一种功能,或者说是一个机制。
再说动态投影前,我们先来明确下,在ArcMAP的窗口下,加载数据后,不只是加载的数据有坐标,你的数据框也会有坐标。哎,说不清,上图吧。
如上图,加载数据“北京1984”后右键打开属性,可以看到他的坐标是“GCS_WGS_1984”。在没加载这个数据的时候,ArcMAP的窗口是空白的没有坐标的,当加载后,整个窗口(数据框)也会有坐标。
如上图,加载“北京1984”后,查看数据框的属性,可以看到他现在的坐标也是“GCS_WGS_1984”。ArcMAP会把加载进来的第一个数据的坐标默认为数据框的坐标。
理解了数据的坐标和数据框的坐标这么个事情后,我们再来理解“动态投影”。我们不说什么高深的原理(主要是我也不懂),我们就来看一下目前这个“北京1984”加载进来后,可以看到整个北京是扁扁的,这就是“GCS_WGS_1984”这个坐标在ArcMAP中显示的样子。我们现在新建一个空白的地图,加载一个投影过的数据进来看看。
如上图,现在的这个“北京UTM50N”就是投影过的,他的坐标是“WGS_1984_UTM_Zone_50N”,他看上去就不是扁扁的,而是我们平常见到的北京地图的那个形状(大概)。
说了那么多也还是没说“动态投影”是什么,接着就要说。
我们把刚刚的“北京1984”加载到目前这个地图里,可以发现数据也变成投影后的这个形状,并且它们能完美贴合。这就是动态投影了。(听君一席话,如听一席话啊)总结一下就是,当加载的数据坐标和数据框的坐标不一致的时候,就会自动投影为数据框的坐标来显示,这种“自动转换”的过程就是“动态投影”。“动态投影”不会对数据本身有任何修改,就是让你视觉上感受到变化。
接下来就是回答初学者的问题。
问:为什么我投影后和原来一样?
答:如果投影没出错,投影后的结果直接加载到了地图中,又由于“动态投影”的关系,显示出来的就是之前没投影的数据的形状。另外,要是“投影”后直接数据和原来不能一模一样的重合,那大概就是出问题了吧==
最后简单的粗暴的总结下(未必准确,但是我觉得初学者知道这些就够了,别想太深,会奔溃):
已经有地理坐标的数据,要进行投影,这里说的操作是使用【投影】工具;
只有在数据没有坐标并且你知道他是什么坐标的情况下才用【定义投影】工具,注意是没有坐标才用,但凡属性里显示有坐标,不管是地理坐标还是投影坐标,都不要用【定义投影】。此外,使用【定义投影】工具前,一定要做好备份,这个工具会直接在原数据上覆盖;
动态投影就是加载进来的数据都会默认的转换为数据框坐标的显示,注意只是显示,不会改数据本身,而数据框坐标就是你加载进来第一个数据的坐标(当然可以改,但是不改的话他就一直是第一个加载进来的数据坐标)。
今天的文章可能过于初级。但是真的很多人问啊!大家不要说我水,我觉得此文真的能帮助一些人的==如果我写错了,请在留言里礼貌的指出。礼貌哦!
作者|数读菌 排版|数读菌 校阅|数读菌