ArcGIS SpatialReference对象工厂代码是否与EPSG号相对应?


22

我有一个项目,正在从文本文件中读取几何对象以将其放入ArcSDE。这些几何对象有一个关联的EPSG代码,我正在寻找一种方法来确保完成后它们处于正确的投影中。

在查看了我感兴趣的工厂代码(GCS GDA94; EPSG:4283和VicGrid 94; EPSG:3111)之后,看来该EPSG代码直接对应于ESRI空间参考的工厂代码(此处此处)。这很棒,因为这意味着我不必担心导航到投影文件来创建SpatialReference对象,例如在下面的代码中:

import arcpy

# Create a spatial reference object using a factory code
#
sr = arcpy.SpatialReference()
sr.factoryCode = int(epsg_code.lstrip("EPSG:"))
sr.create()

不幸的是,我在ESRI文档中找不到任何参考来说明这是否一直存在-我想是的,但是我宁愿肯定知道。有人知道我可以找到哪里吗?

Answers:


30

如果Esri知名ID低于32767,则它对应于EPSG ID。32767或更高版本的WKID是Esri定义的。该对象可能不在EPSG大地测量参数数据集中,或者可能不会添加。如果以后将一个对象添加到EPSG数据集中,则Esri将更新WKID以与EPSG匹配,但是先前的值仍然有效。

有一些限制。Esri并不遵循EPSG所遵循的轴方向,至少在ArcGIS Desktop中,它始终是经度-纬度或东北(xy),尽管我们现在正在Server中拾取轴的顺序。

我是Esri的产品工程师,因此我对此非常熟悉。


9

这似乎记录在SDK帮助中,例如IGeometryServer.FindSRByWKID

AuthorityName通常是“ EPSG”或“ ESRI”,但也可以是任意字符串。如果要与新空间参考关联的默认权限名称,它也可以是空字符串。客户可以将其自己的权限名称与当前与EPSG或ESRI权限名称相关联的工厂代码相关联,因为仅使用WKID来创建空间参考。以下是将WKID范围映射到默认权限名称的当前规则:

  • WKID在EPSG代码范围(1000 - 32768)将导致“EPSG”的一个AUTHORITY名称,版本将是用于(当前为“6.12”)的当前版本EPSG。
  • WKID在ESRI代码范围(33000 - 199999)将导致“ESRI”的一个AUTHORITY名称,版本将是当前PE库版本(当前为“9.3”)。
  • WKID在用户(objedit)范围(200000 - 209199)将导致“定制”的机构名称,没有与之相关联的版本。该名称由OGC指定。

如果我在空间参考工厂代码中发现一个0值,是否可以告知该空间参考未经授权/无效?
艾米(Emi)

2
@Emi,工厂代码/ wkid的值为0通常表示ArcGIS无法识别空间参考(坐标系)。我仍然称其为有效的空间参考,因为可以使用它,因为它没有ID。
mkennedy

5

我可以找到的有关EPSG的唯一参考是《ArcGIS 10的新增功能》中的内容

地图投影和坐标系

添加了新的坐标系和变换,包括以下内容:•EPSG大地参数数据集版本6.15至7.1的定义,包括181个地理(基准)变换和280多个坐标系...

我不知道这是否是您需要的确认。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.