『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

解析Geodatabase空间参考的工作原理

解析Geodatabase空间参考的工作原理

空间参考,即Spatial Reference,在ArcGIS软件的使用中特别重要。正确理解空间参考对ArcGIS Geodatabase使用会有长足的帮助。本文将从ArcGISGeodatabase数据格式的空间参考概念说起,探讨空间参考的使用方法,通过案例介绍一些使用Geodatabase空间参考的使用心得。

       一、空间参考的概念

       空间参考是要素类(Feature class)或者要素集(Feature dataset)的属性,对于独立的要素类(stand-alone feature class)和要素集(feature dataset)都是必需的。空间参考的概念包含以下三个属性:

 

       •   坐标系统(Coordinate system

       所有的空间信息的量算都是基于某个坐标系统来的。坐标系统包含了起算原点、以及计算单位等参数。坐标系统分为两大类:

       其一为球面坐标系统,以经度/纬度来量算球体(或近似球体)表面的距离。

       另一类为笛卡尔坐标系统,量算的是平面的表面距离。通常纸质地图就使用了笛卡尔坐标系统。

 

       •   投影(Projection

       投影是用于将球面坐标系统转换到笛卡尔坐标系统的数学方法。投影可以将经度/纬度量算单位转换为米这样的制图人员更容易接受的数值单位。由于经纬度数值在不同纬度(从赤道到南北极点)下代表了不同的距离,并不能够准确量算距离或面积,因此投影在很多应用中是极其需要的。

 

       •   精度(Precision)和空间域(spatial domain

       精度,是Geodatabase中表现数据存储的一个无量纲的单位。精度决定了两个坐标之间最小的距离(注意:精度本身不是计量单位。两个坐标的最小距离,是由精度的数值和地图单位综合得到的)。此时,小于这个最小距离的坐标值将会捕捉到一起。这个距离越小,对于几何存储空间的需求越大。

 

       空间域是Geodatabase数据存储的坐标空间域,当指定一个要素类(集)的坐标空间域以后,不在此空间域内的几何数据将无法存储到这一要素类中。

 

       二、空间参考属性的再分析

       数据的坐标系统和投影是由坐标值决定的,用于准确的地理定位。在创建数据的时候,就应该为数据准确定义坐标系统和投影这两个属性。这样,数据便可以和其他坐标系统和投影互相转换。在创建数据或之后使用数据的任一时刻,都可以修改坐标系统和投影,这样的操作不影响数据的几何坐标值存储。例如在某些数据格式转换后,转换后的数据经常带有默认的坐标系统和投影信息,并不能反应真实的坐标属性,应该及时将这些属性改正。

       精度和空间域只能在Geodatabase创建的时候指定,如果需要修改,必须重新创建要素类,并指定Geodatabase的精度和空间域。


 

上图为坐标系统参数

 

上图为坐标与和精度值参数

       三、空间域和精度值的确定

       1、整型存储

      Geodatabase的内部坐标存储中,使用整数来存储坐标值。使用整数存储坐标值有以下优点:加快处理速度;数据高效压缩;高效支持Geodatabase拓扑(Geodatabase拓扑使用几何重合的机制来维护拓扑关系)。

 

      在内部的坐标存储中,Geodatabase将坐标数值四舍五入转换为整型;在客户端显示中,Geodatabase将其转换为原浮点型数据。Geodatabase使用精度(Precision)参数来放大原始坐标值,这样在四舍五入转换时保证数据原有坐标值的精确度(accuracy),不会丢失几何数据信息。精度值的选择需要恰当。

 

      精度值是在创建数据的时候指定的,选择小的精度值会导致几何信息损失,选择大的精度值则会使原始坐标值放大过多(即保留了不需要存储的数值),浪费了存储空间,而使得数据库存储效率下降,性能降低。

 

        精度值为1

        X2322794.15456903 * 1 2322794

        Y720434.057424851 * 1 720434

        精度值为100

        X2322794.15456903 * 100 232279415

        Y720434.053424851 * 100 72043405

        使用精度值的结果会使图形坐标值变大

        将直接影响要素类的存储空间开销

 

       如上例中,若知道数据的小数点后两位为有效数值,则Precision应该选择100;选择1会导致有效数值丢失,选择10000(大于100)则保留多余的数据。

 

       2、空间域

      一般情况下,Geodatabase使用最大32bit来存储正型数值。其中一个bit位用于存储符号,另外31bit用于存储数值。也就是说,如果Geodatabase的最小值为0,那么最大值为231次方。

 

      Geodatabase中所有的要素类(要素集)都存在坐标空间域,由minxminymaxxmaxy四个参数确定,这四个参数制定的是Geodatabase的空间域范围,而不是地图的数据范围!地图数据必须落入这个范围内,才能够存储于该空间域中。

 

       3、空间域参数x/yprecision的关系

      空间域中的参数minxminymaxxmaxyprecision存在这样的计算关系:

       (maxx minx) * Precision 小于或约等于 231次方

       (maxy miny) * Precision 小于或约等于 231次方

      因此,在设置空间域参数的时候,只需要确定minxminyprecisionmaxxmaxy便会自动算出。

 

       4Geodatabase内部的坐标存储

       X_storage = 四舍五入 [(X minx) * Precision + 0.5]

       Y_storage = 四舍五入 [(Y miny) * Precision + 0.5]

 

      其中,X_storageY_storage表示xy的内部存储数值;XY表示原始坐标数值;minxminy表示Geodatabase空间域的最小值;Precision为精度值。为了避免临界值出现,在四舍五入之前,系统自动添加0.5,保证四舍五入后为至少是1的正整数。

 

       四、空间参考使用不当与导致的情况

       1 坐标系统

       A 错误的坐标系统元数据信息将使数据无法得到准确的显示,不能与其他的数据进行动态投影转换

       B 不推荐使用无坐标系统,会导致数据在显示过程中,显示比例尺失效;或空间查询中,度量值失效等现象

 

       2 坐标域和精度设置

       A minxminymaxxmaxy不足以容纳要素坐标数值,出现数据越界无法存储的情况

       B 过低的精度值,导致几何信息丢失

       C 过高的精度值,导致存储效率降低

       注意:

       A、在数据转换为Geodatabase的过程中,默认的参数使用过高的精度。这样的使用会导致ArcSDE中的数据大幅增长。

       BMZ坐标域的原理同X/Y坐标域。

 

       案例

       若知道:地图数据的范围为x1y1x2y2,地图单位为米。数据的准确度到达小数点后3位。

       则精度和坐标域的设置为:

       精度值 = 1000

       minx = x2x2 < x1

       miny = y2y2 < y1

       Maxxmaxy自动算出即可。

       注:x2越接近x1y2越接近y1,效率越好。

      京ICP备2025132830号-1 京公网安备 号