GeoReference

GeoReference

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

•   坐标系统(Coordinate system)
所有的空间信息的量算都是基于某个坐标系统来的。坐标系统包含了起算原点、以及计算单位等参数。坐标系统分为两大类:
其一为球面坐标系统,以经度/纬度来量算球体(或近似球体)表面的距离。
另一类为笛卡尔坐标系统,量算的是平面的表面距离。通常纸质地图就使用了笛卡尔坐标系统。

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

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

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

二、空间参考属性的再分析
数据的坐标系统和投影是由坐标值决定的,用于准确的地理定位。在创建数据的时候,就应该为数据准确定义坐标系统和投影这两个属性。这样,数据便可以和其他坐标系统和投影互相转换。在创建数据或之后使用数据的任一时刻,都可以修改坐标系统和投影,这样的操作不影响数据的几何坐标值存储。例如在某些数据格式转换后,转换后的数据经常带有默认的坐标系统和投影信息,并不能反应真实的坐标属性,应该及时将这些属性改正。
精度和空间域只能在Geodatabase创建的时候指定,如果需要修改,必须重新创建要素类,并指定Geodatabase的精度和空间域。
20060718101103470.JPG
上图为坐标系统参数
20060718101109559.JPG
上图为坐标与和精度值参数

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

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

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

 精度值为1:
 X:2322794.15456903 * 1= 2322794
 Y:720434.057424851 * 1 = 720434
 精度值为100:
 X:2322794.15456903 * 100= 232279415
 Y:720434.053424851 * 100 = 72043405
 使用精度值的结果会使图形坐标值变大
 将直接影响要素类的存储空间开销

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

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

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

3、空间域参数x/y和precision的关系
      空间域中的参数minx,miny,maxx,maxy,precision存在这样的计算关系:
(maxx – minx) * Precision 小于或约等于 2的31次方
(maxy – miny) * Precision 小于或约等于 2的31次方
      因此,在设置空间域参数的时候,只需要确定minx、miny、precision,maxx和maxy便会自动算出。

4、Geodatabase内部的坐标存储
X_storage = 四舍五入 [(X – minx) * Precision + 0.5]
Y_storage = 四舍五入 [(Y – miny) * Precision + 0.5]

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

四、空间参考使用不当与导致的情况
1、 坐标系统
A、 错误的坐标系统元数据信息将使数据无法得到准确的显示,不能与其他的数据进行动态投影转换
B、 不推荐使用无坐标系统,会导致数据在显示过程中,显示比例尺失效;或空间查询中,度量值失效等现象

2、 坐标域和精度设置
A、 minx、miny、maxx、maxy不足以容纳要素坐标数值,出现数据越界无法存储的情况
B、 过低的精度值,导致几何信息丢失
C、 过高的精度值,导致存储效率降低
注意:
A、在数据转换为Geodatabase的过程中,默认的参数使用过高的精度。这样的使用会导致ArcSDE中的数据大幅增长。
B、M、Z坐标域的原理同X/Y坐标域。

案例
若知道:地图数据的范围为x1、y1、x2、y2,地图单位为米。数据的准确度到达小数点后3位。
则精度和坐标域的设置为:
精度值 = 1000
minx = x2(x2 < x1)
miny = y2(y2 < y1)
Maxx和maxy自动算出即可。
注:x2越接近x1、y2越接近y1,效率越好。

文章来源:GIS信息网

转载于:https://www.cnblogs.com/HomeWinner/archive/2006/08/14/475963.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111138.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 再见PowerDesigner,这款国人开源的数据库设计工具Chiner真香

    再见PowerDesigner,这款国人开源的数据库设计工具Chiner真香再见PowerDesigner,这款国人开源的数据库设计工具Chiner真香当我们在项目开发初期时,往往需要设计大量的表,此时使用数据库设计工具就会比较高效!今天给大家推荐一款国人开源的数据库设计工具chiner,界面漂亮,功能强大,希望对大家有所帮助!回顾PowerDesigner相信平时工作中,大家或多或少会使用PowerDesigner来设计数据库,感觉这款工具界面有点古老,界面看着就具年代感,有时候用起来也比较重,来看下之前使用它设计数据库的效果。最近体验了一把chiner,设计数据库

    2022年7月27日
  • Java类加载机制与Tomcat类加载器架构

    Java类加载机制与Tomcat类加载器架构Java类加载机制类加载器虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。类加载器可以说是Java语言的一项创新,也是Java语言流行的重要原因之一,它最初是为了满足JavaApplet的需求而开发出来的。虽然目前JavaA

    2022年5月20日
  • 操作系统常见面试题

    操作系统常见面试题引论什么是操作系统?可以这么说,操作系统是一种运行在内核态的软件。它是应用程序和硬件之间的媒介,向应用程序提供硬件的抽象,以及管理硬件资源。操作系统主要有哪些功能?操作系统最主要的功能:处

    2022年7月4日
  • 变长数组VLA_数组的大小长度可以改变吗

    变长数组VLA_数组的大小长度可以改变吗C99标准中,支持变长数组,即方括号[]中可以用为一个变量,但是很多编译器并不能很好地支持。c++11标准中,不支持变长数组,即方括号[]中必须为常量表达式。c++标准支不支持变长数组,并不重要,因为完全可以自己实现。变长数组(VLA):即在运行时候确定数组的长度静态数组:编译时数组长度就定死了,不能对数组进行增、删、改动态数组:运行时才确定数组的长度,可以对数组进行增、删、改…

    2022年10月25日
  • 高速数据采集存储系统分类

    随着计算机技术发展,计算机总线速率、处理能力与存储技术得到了快速发展。就存储技术而言相比于五年前,现在不论是传输速率,存储速度与存储容量均有了不同数量级的变化。如现在的PCIeExpress总线可以实现3GB/s(Gen2.0,X8)以上,或6GB/s(Gen3.0,X8)以上的传输速率;而SATA磁盘容量也可以轻易实现动辄几T,多动几十T的规模

    2022年4月9日
  • 基于51单片机控制步进电机正反转

    基于51单片机控制步进电机正反转基于51单片机控制步进电机正反转此次采用uln2003模块来链接步进电机;##步进电机工作原理步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机。每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速与脉冲频率成正比。步进电动机的结构形式和分类方法较多,一般按励磁方式分为磁阻式、永磁式和混磁式三种;按相数可分为单相、两相、三相和多相等形式。因此我们可以控制单片机I/O口的电平来控制步进电机,此次设计中采用四相单拍工作方式,在这种工作方式下,A、

    2022年5月31日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号