2.1 坐标系、基准与投影:三个必须分开的词


文档摘要

2.1 坐标系、基准与投影:三个必须分开的词 本节摘要:空间参考由三层构成——基准回答"地球当成什么形状、原点钉在哪",地理坐标系回答"如何在球面上用经纬度定位",投影坐标系回答"如何把球面坐标摊平成平面米制坐标"。本节把三个被混用的词各自归位,介绍 WKID 编号体系与常见坐标系,并给出根据坐标数值反推图层状态的经验法则。 为什么同一个地点有三套完全不同的坐标 天安门附近某个点,在不同图层的属性里可能长这样:一套写作 (116.397, 39.909),另一套写作 (438000, 4424000),第三套写作 (116.391, 39.907)。三个坐标指的都是同一个地点,数字却对不上。哪套是"对的"?答案:都对,只是各自遵守不同的解释规则。 第一套是经纬度,单位是度;

2.1 坐标系、基准与投影:三个必须分开的词

本节摘要:空间参考由三层构成——基准回答"地球当成什么形状、原点钉在哪",地理坐标系回答"如何在球面上用经纬度定位",投影坐标系回答"如何把球面坐标摊平成平面米制坐标"。本节把三个被混用的词各自归位,介绍 WKID 编号体系与常见坐标系,并给出根据坐标数值反推图层状态的经验法则。

为什么同一个地点有三套完全不同的坐标

天安门附近某个点,在不同图层的属性里可能长这样:一套写作 (116.397, 39.909),另一套写作 (438000, 4424000),第三套写作 (116.391, 39.907)。三个坐标指的都是同一个地点,数字却对不上。哪套是"对的"?答案:都对,只是各自遵守不同的解释规则。

第一套是经纬度,单位是度;第二套是投影后的平面坐标,单位是米;第三套还是经纬度,但基准不同——差了那零点零零几度,正是两种地球模型对同一地点定位的偏差。坐标数字只是结果,规则才是原因。空间参考(Spatial Reference)就是这整套规则的集合,它包含三个层次:地球的形状模型(椭球)、定位的原点体系(基准)、摊平的方法(投影)。

三层结构:从椭球到平面坐标

第一层:椭球与基准。 地球不是球,是个两极略扁的椭球。要定位先得约定用哪个椭球、椭球与地球实体怎么对齐——这套约定就是基准(Datum)。中国的基准经历三代:1954 北京基准(基于克拉索夫斯基椭球,早期地形图多用它)、1980 西安基准(IAG 椭球,原点在西安泾阳)、2000 国家大地基准 CGCS2000(现行国家标准,与全球通行的 WGS84 在米级精度内一致)。基准不同,同一地点的经纬度就有微小差异——单独看几百米内难以察觉,做精密工程或跨代数据叠加时就是事故。

第二层:地理坐标系。 在基准之上用经纬度定位,得到地理坐标系(GCS)。它忠实于球面,角度准确、无投影变形,适合存储与全球共享。Web 常用的 WGS84(WKID 4326)、中国现行的 CGCS2000(WKID 4490)都是地理坐标系。

第三层:投影坐标系。 球面无法不变形地摊平,于是用数学方法转换到平面,得到投影坐标系(PCS),坐标变成米制,面积、长度可以直接量算。中国标准地形图的高斯克吕格 3 度带(CGCS2000 下 WKID 4521 至 4553 区段)、网络地图的 Web 墨卡托(WKID 3857)都是投影坐标系。

一句话总结三层关系:基准定地球模型,地理坐标系在球面上报经纬度,投影坐标系把球面摊平换算成米。

图:空间参考的三层结构

图:空间参考的三层结构

WKID:空间参考的身份证号

每套空间参考在 Esri 体系里有一个整数编号,称为 WKID。记住几个高频号码,交流与排错效率翻倍:

常见 WKID 速查 4326 WGS84 地理坐标系 GPS 设备原始输出 全球通用 4490 CGCS2000 地理坐标系 中国现行国家标准 3857 WGS84 Web墨卡托 各类网络底图的标准投影 4491 CGCS2000 地理坐标系 另一登记条目 与4490同源 4534 CGCS2000 高斯克吕格 3度带 中央经线117度 适用于江苏安徽一带 4547 CGCS2000 高斯克吕格 3度带 中央经线120度 适用于山东半岛东部

WKID 的价值在于把一长串参数压缩成一个数。同事说"帮我转到 4534",你立刻知道目标坐标系、基准、投影方式、中央经线全部信息。第 3 章地理数据库与第 7 章脚本里,WKID 会反复出现在代码参数中。

动手:查明图层的空间参考

界面路径:内容窗格右键图层、属性、源、空间参考。脚本路径更直接,且能批量。以下代码检查一个文件夹下全部图层的坐标系状态:

import arcpy arcpy.env.workspace = r"K:/gisdata/incoming" for fc in arcpy.ListFeatureClasses(): sr = arcpy.Describe(fc).spatialReference # sr.name 为 Unknown 表示坐标系缺失,数字串为伪投影 print(f"{fc:20s} -> {sr.name} (factoryCode={sr.factoryCode})") # 输出示例: # roads.shp -> Unknown (factoryCode=0) 缺坐标系 需定义 # admin_cgcs2000.shp -> GCS_China_Geodetic_Coordinate_System_2000 (factoryCode=4490) # parcels_gk117.shp -> CGCS2000_3_Degree_GK_Zone_39 (factoryCode=4534)

输出里最危险的是第一种:Unknown。软件不知道规则,只能按数字硬画——如果碰巧是经纬度,图层会出现在极小的一团;如果碰巧是米制坐标,图层可能整层消失或落在赤道附近海域。这一课的判断题很简单:factoryCode 等于 0 的图层,禁止参与任何叠加,先补坐标系。

再演示地理坐标系与投影坐标系的数值差异,加深单位感:

import arcpy # 同一个点在两种坐标系下的表示 pt_geo = arcpy.PointGeometry(arcpy.Point(116.397, 39.909), arcpy.SpatialReference(4490)) # CGCS2000 经纬度 # 转为高斯克吕格 117 度带(WKID 4534) pt_prj = pt_geo.projectAs(arcpy.SpatialReference(4534)) print("经纬度:", pt_geo.centroid.X, pt_geo.centroid.Y) # 输出: 经纬度: 116.397 39.909 print("平面米制:", round(pt_prj.centroid.X, 1), round(pt_prj.centroid.Y, 1)) # 输出: 平面米制: 449532.7 4418156.2

同一地点,数值从两位数变成七位数,单位从度变成米。以后看到"图层缩成一小团"或"图层飞到海上",先想想这个换算关系,故障原因往往就在其中。

易错点

⚠️ 常见坑:把"无投影"当"无问题"。地理坐标系存储的图层看起来一切正常,但直接对它做缓冲区分析,软件会警告"距离单位与坐标单位不匹配"——以度为距离半径的缓冲区是没有意义的。分析前先投影到米制坐标系,是第 5 章所有距离类工具的前置纪律。

⚠️ 常见坑:以为 WGS84 与 CGCS2000 必须转换。两者在当前历元下差异通常小于代表性数据本身的精度,日常叠加可直接互操作;只有厘米级精密应用才需要严格转换。反过来,54 与 2000 基准之间差异达几十米,必须做基准变换。

要点回顾

  • 三层结构:基准定模型,地理坐标系球面定位,投影坐标系平面量算
  • 中国基准三代:54、80、2000,跨代数据叠加必须处理基准差
  • WKID 高频号:4326、4490、3857、高斯带号系列,交流与编码都用它
  • 数值反推:两位数是度、七位数是米、千万级是 Web 墨卡托
  • Unknown 即停:factoryCode 为 0 的图层先补坐标系再谈其他

下一节进入投影内部,看摊平球面时不可避免的变形,以及如何为不同分析目的选择合适的投影。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U