ArcCatalog说,具有相同坐标系的要素数据集和要素类之间的空间参考不匹配?


31

我有一个使用GCS_WGS_1984作为地理坐标系的要素数据集。它包括一些要素类。

该要素数据集本身位于文件地理数据库中,该文件地理数据库在gdb的根目录中包含更多要素类。其中之一是称为“点”的要素类,该要素类也使用GCS_WGS_1984作为其坐标系。

我认为使用ArcCatalog将要素类从gdb的根拖动到要素数据集将是微不足道的,因为它们具有相同的坐标系。不幸的是,ArcGIS提供了一个错误对话框,内容为:

Failed to paste points
The spatial references do not match

为什么失败了?如果要素类的GCS和要素数据集相同,那么它不行吗?我已经通过对话框以及导出数据集和类的prj文件并使用diff工具进行比较来验证了这种情况。它们是相同的。

要素类的空间参考与坐标系/投影是否不同?

尝试通过按住ctrl并将要素类拖动到要素数据集中来拖动结果,导致ArcCatalog每次都崩溃(ESRI感到羞耻)。

我想我可以尝试移动要素类的替代方法。使用CopyFeatures进入数据集。从要素类投影到要素数据集中的新要素类?


您可以将文件gdb发布到哪里吗?如果很大,也许会删除全部或某些要素,听起来好像即使要素类为空也可以重现。
Kirk Kuykendall

4
我希望我有时间记下遇到ArcGIS的每一个小怪癖,通常我只需要忍受它并找到下一个最不愉快的解决方法。我使用数据管理->复制要素将其复制到新要素类(临时命名)中,删除了旧要素类,重命名了新要素类以匹配旧要素类。使用ArcGIS不需要软件测试学位。=(
mindless.panda

2
“不需要软件测试学位”chat.stackexchange.com
transcript/message/

它只是名称,它们可以匹配,但是如果它们具有不同的名称,则会删除此消息,请忽略它。
如果您不知道-GIS

Answers:


21

相同坐标系并不总是相同的坐标系统。我遇到了一些操作和地理处理工具会认为要素类不共享公共坐标系的情况,因为尽管参数相同,但是投影的描述性名称有所不同(“ Yukon Albers”与“ Albers-custom”),或者不同小数位的值(错误北向500000.00与500000.0000)。

我通常要做的是确保使用标准的.prj文件创建要素数据集(和F.class)坐标系,该标准文件放在顶部C:\path\to\ArcGIS\Desktop10.0\Coordinate Systems(使CS可用更少的点击)和/或从主要素类模板复制CS存放在随时随地的地方。

部分地针对此问题,我还具有一个空的要素数据集(D:\s.gdb\_template),在对它们进行任何其他操作之前,我将所有数据作为第一步过滤器进行了汇总。在通用坐标系中,这也确保精度和空间域等相同。

更新:请参见Andy关于使用python(仅2行)从模板要素类复制Feature Dataset空间参考系统的答案。这在ArcCatalog 10.3中对我有用,当时通过选择要素类来导入一个来定义SR的交互式方法不起作用。


您提到的漂亮打印名称或小数位数中的这些细微变化是否不会出现在使用“另存为”选项导出的.prj文件中?如果是这样,为什么差异prj文件什么也不显示?我想知道x,y分辨率的微小差异是否也可能导致冲突。
mindless.panda

1
可能是使用“另存为”创建的.prj文件与内部存储的文件不完全相同。我使用的是要素数据集的“过滤器”,以确保公共空间分辨率等
马特·威尔基

3
我将为此添加一个额外的方面:有时,当其他来源的数据集实际上没有M或Z时,它们会生成为包含M和Z值。我发现某些ESRI工具将空Z坐标系检测为不存在匹配,尽管事实上X / Y坐标系确实完全匹配。
DPierce 2013年

16

这是一个解释而不是答案。

我们(Esri)对坐标参考系统的名称和值进行了非常严格的测试。比较500000.00和500000.000000时,“等于”测试不会返回失败,但是如果其中一个确实是500000.0,而另一个确实是500000.00000005,则该测试可能会失败。我们正在努力为名称添加别名,以便“相等”会通过更多。

正如mindless.panda和matt wilkie所提到的,差异可能在于空间参考的其他值。空间参考包括坐标参考系统和存储/处理值。用于存储:xy,z,并测量分辨率和范围。对于处理:xy,z和测量公差值。这些中的任何差异都可能导致不相等的错误。


6
非常感谢您的回复。我真的很想看到错误处理,特别是在报告给用户的错误处理方面,在ArcGIS中有所改进。需要更多信息错误,如果需要,可以选择获取更详细的信息。再次感谢ESRI花时间做出回应。
mindless.panda

2
我赞成该提议,以提供有关错误的更多信息。在过去的两周中,Error code: 999999: Error executing function. Description: This is a generic error for which the cause of the error does not have an appropriate error ID. 由于一系列问题,我遇到了相同的错误()。这是一条令人震惊的消息,因为除了尝试运行第二次执行的操作以查看错误是否再次出现,或者放弃并使用其他方法(或软件,情况越来越多)之外,我什么也做不了。
djq 2011年

9

这是解决此问题的方法(在ArcGIS 10.0中使用arcpy)-

这假定以下条件:

  • FGDB-C:\ gisdata \ Test.gdb
  • 要素类-C:\ gisdata \ Test.gdb \ bldg

您可以在代码中修改路径和对象名称,然后将其粘贴到ArcCatalog中的python窗口中。

sr = arcpy.Describe(r'C:\gisdata\Test.gdb\bldg').spatialReference
arcpy.CreateFeatureDataset_management(r'C:\gisdata\Test.gdb', 'MyFeatureDataset', sr)

创建要素数据集后,可以将要素类拖放到其中。


1
谢谢!今天,这在我无法使用交互式工具通过选择现有要素类来定义新要素数据集坐标系的情况下有效(v10.3)。
马特·威尔基

7

这个问题使我丧命!从CAD文件中保存了一堆要素类后,我尝试了很多次来定义它们的坐标系,然后将它们组织到要素数据集中。我尝试从ESRI的官方WGS_1984_UTM_42N投影中定义所有必需的f.class和f.dataset,以及设置数据集的投影,然后使用“定义投影”工具为f.class导入该投影。不会粘贴任何f.class,或者不会粘贴1,而其他则不会。

在Much的感谢@马特·威尔基这篇文章中,要素类至要素类工具似乎已经解决了这个问题。即使我尚未为所讨论的f.class定义坐标系,它也会成功将f.classs导入所需的数据集。

此外,我发现要素类到地理数据库(多个)脚本非常适合将f.class批量移动到f.dataset中,除了必须从Geodatabase到另一个(不在同一地理数据库中的f.dataset中) 。这似乎是因为脚本在复制f.class时不会自动重命名它们(或要求操作员输入新名称,例如Feature Class to Feature Class)。但是,正如其他人指出的(与上面链接的线程相同),给出的错误是一般的999999。


4

仅在将要素类移动到GeoDatabase中的要素数据集中时遇到了这个问题。我制作了要素数据集,并确保它具有相同的坐标系。我一遍又一遍地收到“无法粘贴xyz 空间参考不匹配”的发现,我发现最快的解决方法是从我想导入的要素类中,在新创建的数据集中导入相同的空间参考。在“创建新要素数据集”向导的第二步。

我不知道为什么空间参考不同。


嗨,@ Alan!感谢您分享您的经验并欢迎访问我们的网站。
ub

1
嗨,艾伦,使用“导入坐标系”时,创建新要素数据集/类向导并不总是提取所有存储/处理值。我们正在努力修复它。我认为这就是您遇到的问题。
mkennedy 2011年

1
我看到了这个问题-即使创建要素数据集并使用导入机制并选择了要素类,如果没有上述错误,我仍然无法将要素类拖动/复制到新创建的要素数据集中。
mindless.panda 2012年

3

我认为发给ESRI的消息之一是在发生此错误时提供更具体的参数差异调试信息。正如我认为大多数GIS用户所做的那样,即使在仔细控制了空间参考系统和投影之后,我也遇到了此错误。

我发现了使用ArcToolbox复制功能来纠正使用导入或复制机制时出现的错误消息的过程。在此,我们将复制要素工具箱中的步骤正确地解决了参考差异或投影差异,然后才将要素类引入要素数据集中。

我什至尝试使用在数据集创建时定义的投影系统创建要素数据集,然后使用具有相同投影的ArcToolbox投影工具将要素类投影到要素数据集中,当我尝试导入时仍然收到此处描述的错误。或将要素类复制到数据集中。

在ArcMap中使用数据时,这些坐标系问题会被掩盖。由于ArcMap可以即时进行投影,因此可以将多个具有不同投影的要素类添加到ArcMap地图中,而用户不会意识到。ArcMap将警告不同的坐标参考系统。



0

尝试使用“数据管理工具/功能”下的“复制功能”工具。否则,无论我做什么,我都会不断出错。


-1

您是否尝试过将其引入ArcMap并将图层设置为GCS_WGS_1984,然后将所有图层导出到文件地理数据库?

如果您有一个或多个投影不同的图层,则可以导出它们,但将数据框更改为GCS_WGS_1984?

我不确定在ArcGIS 10中是否有此功能。我还没有它们,但是正在使用9.3.1。


1
您能否阐明第1点和第2点?这些似乎不准确。
亚伦
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.