3. 地质GIS数据坐标信息诊断

在CGCS2000转换工作中,真正导致成果偏移的往往不是转换算法本身,而是源数据的坐标信息“说不清”。地质GIS数据来源复杂:有从老图件矢量化得到的Shapefile,有从MapGIS、ArcGIS、Surfer等不同平台导出的栅格,有从钻孔数据库生成的点位图层,还有从外部单位拷贝来的整库数据。这些数据可能带有完整的坐标系定义,也可能只带一个名称、一个WKT字符串,甚至完全缺失空间参考。因此,转换前的第一项工作不是“转”,而是“诊断”——把每个图层的坐标系定义、投影参数、坐标单位查清楚,判断其可信度,识别缺失与错误元数据。

一、诊断的三个层次

坐标信息诊断可以按“定义层—参数层—数值层”三个层次推进。定义层看数据是否声明了坐标系、声明的是哪个坐标系;参数层看投影方式、中央经线、原点纬度、比例因子、假东假北等参数是否与声明一致;数值层看坐标值本身的量级与范围是否与声明匹配。三层中任何一层出问题,都会在转换后表现为位置偏移、比例错误或图形变形。

以常见的CGCS2000高斯-克吕格投影为例,3度带第38带(中央经线114°E)的投影参数应为:投影类型Gauss_Kruger,中央经线114,原点纬度0,比例因子1.0,假东500000,假北0,单位米。若某图层声明为“CGCS2000_3_Degree_GK_Zone_38”,但假东写成0,则所有坐标整体西移500公里;若单位被误设为“度”,则坐标值会呈现110~120这样的量级而非数十万至数百万。这些都可以通过参数层与数值层的交叉核对发现。

二、矢量数据的检查方法

矢量数据(Shapefile、GeoJSON、File GDB要素类、MapGIS区/线/点文件)的检查重点是是否存在.prj或等效的坐标系描述文件。Shapefile的坐标系信息存放在同名.prj中,若缺失,ArcGIS会将其识别为“Unknown”,QGIS则提示“无效的CRS”。此时不能凭经验直接指定,而应先通过坐标数值反推。

实际操作中可按以下顺序检查:第一,查看图层属性中的“空间参考”信息,记录坐标系名称与WKT;第二,打开属性表或使用“计算几何”查看X、Y字段的量级,判断是地理坐标(经度-180~180、纬度-90~90)还是投影坐标(通常为6~7位米值);第三,对投影坐标,用X值除以1000000估算带号,例如X≈38500000说明是3度带第38带、假东含带号前缀,而X≈500000左右则说明假东未加带号;第四,核对中央经线与带号是否对应,3度带带号n对应中央经线3n,6度带带号n对应中央经线6n-3。

需要特别注意的是“带号前缀”问题。CGCS2000的3度带投影中,假东可设为500000(不带带号)或带号×1000000+500000(带带号)。同一批数据中若混用两种约定,转换后会整体错位数百公里。诊断时应统计X坐标的最小值:若最小值大于1000000,基本可判定含带号前缀。

三、栅格数据的检查方法

栅格数据的坐标信息通常记录在文件头或辅助文件中:GeoTIFF写入TIFF标签(ModelTiepoint、ModelPixelScale、GeoKeyDirectory),Erdas Imagine的.img写在.ige/.rrd配套信息中,ASCII Grid写在文件头的xllcorner、yllcorner、cellsize行。检查时重点看三项:一是栅格是否带有投影信息(Projection GeoKey),二是像元大小(cellsize)的单位是度还是米,三是左上角坐标与像元大小能否还原出正确的范围。

一个典型错误是:栅格由经纬度坐标的矢量插值生成,像元大小为0.001度,但被误标为“投影坐标、单位米”。此时栅格范围显示为几十米见方,与地质图实际范围严重不符。诊断方法是计算栅格范围:若宽高只有零点几或几,而研究区实际跨度数十公里,则单位必然有误。另一个常见问题是栅格只有仿射变换参数而无投影定义,此时需要结合像元大小与范围反推坐标系,不能直接套用相邻图层的定义。

坐标信息诊断:定义层 → 参数层 → 数值层 ① 定义层:是否声明坐标系?声明为哪个坐标系? 矢量查 .prj / WKT;栅格查 GeoKey / 文件头投影字段;缺失即 Unknown,不可凭经验直接指定 ② 参数层:投影方式、中央经线、原点纬度、比例因子、假东假北、单位 示例:Gauss_Kruger,中央经线114°,原点纬度0,比例因子1.0,假东500000,假北0,单位米 ③ 数值层:坐标量级与范围是否与声明匹配 地理坐标:经度-180~180、纬度-90~90;投影坐标:6~7位米值;X最小值判断是否含带号前缀 矢量数据检查要点 • .prj 是否存在、WKT 是否完整 • X/Y 量级:度值 or 米值 • X≈38500000 → 3度带38带含带号 • X≈500000 → 假东未加带号前缀 • 中央经线 = 3n(3度带)/ 6n-3(6度带) • 同批数据带号约定是否统一 风险:假东误设0 → 整体西移500 km 栅格数据检查要点 • GeoTIFF 标签 / .img 头 / ASCII Grid 头 • 是否含 Projection GeoKey • cellsize 单位:度 or 米 • 左上角坐标 + 像元大小 → 范围 • 范围与地质图实际跨度是否吻合 • 仅有仿射参数、无投影定义需反推 风险:0.001° 误标为米 → 范围缩至几十米

四、缺失与错误元数据的识别与处置

诊断结论通常落在四种情形:一是定义完整且参数自洽,可直接进入转换;二是定义缺失但数值可反推,应依据坐标量级、带号、范围反推坐标系后显式指定,并在元数据中记录反推依据;三是定义存在但与数值矛盾,例如声明为投影坐标却出现经纬度量级,此时应以数值为准修正定义;四是定义与数值均不可靠,需要回到原始图件、控制点或外业记录重新配准。

为提高效率,可建立一张诊断记录表,逐图层登记关键字段。下表为示例结构,数值为教学假设,实际使用时按真实数据填写。

图层 类型 声明坐标系 X量级/像元 诊断结论 处置
地质界线.shp 矢量 CGCS2000_3_Degree_GK_Zone_38 38 5xx xxx 含带号,参数自洽 直接转换
钻孔点位.shp 矢量 Unknown 114.3 / 30.5 缺失,数值为经纬度 反推指定CGCS2000地理坐标
化探异常.tif 栅格 投影坐标(米) cellsize 0.001 单位矛盾 修正为度并重设投影
构造纲要图.img 栅格 无投影字段 范围约 40 km 仅仿射参数 结合范围反推后补定义
诊断阶段坚持“先看数值、再信声明”。坐标系名称可以被随意填写,但坐标数值的量级、带号与范围是数据自身的“指纹”,两者交叉验证才能判断元数据是否可信。对反推得到的坐标系,务必在成果元数据中注明推断依据,便于后续复核。

完成上述检查后,每个图层都应形成明确的诊断结论:坐标系是什么、依据是什么、是否存在带号前缀、单位是度还是米、是否需要修正定义。只有结论清晰的数据才进入下一步转换,否则转换参数再精确也无法弥补源头的坐标信息错误。