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/1116371
matt wilkie

이름 만 있고 일치 할 수 있지만 이름이 다른 경우이 메시지를 표시하지 않고 무시하십시오.
모르는 경우

답변:


21

같은 좌표계는 항상 아닌 동일한 좌표계. 매개 변수가 동일하더라도 투영의 설명 이름이 다르기 때문에 ( "Yukon Albers"대 "Albers-사용자 정의") 일부 작업 및 지오 프로세싱 도구에서 피쳐 클래스가 공통 좌표계를 공유하지 않는다고 생각하는 상황이 발생했습니다. 소수 자릿수가 서로 다른 경우 (500000.00과 500000.0000 사이의 잘못된 북쪽).

내가 일반적으로하는 일은 Feature Dataset (및 F.class) 좌표계가 맨 위에 배치 된 표준 .prj 파일로 작성되고 C:\path\to\ArcGIS\Desktop10.0\Coordinate Systems(클릭 수가 적 으면 CS를 사용 가능하게 함) 마스터 피쳐 클래스 템플릿에서 CS를 복사하는 것입니다 항상 가까이에 보관되어 있습니다.

이 문제에 부분적으로 응답하여 빈 기능 데이터 세트 ( D:\s.gdb\_template)가있어 모든 데이터를 첫 단계 필터로 사용하여 다른 작업을 수행하기 전에 모든 단계를 통과시킵니다. 공통 좌표계 중에서도 정밀도 및 공간 영역 등이 동일하게된다.

업데이트 : 템플릿 기능 클래스에서 Feature Dataset 공간 참조 시스템을 복사하기 위해 단 2 줄의 Python 사용에 대한 Andy의 답변을 참조하십시오 . ArcCatalog 10.3에서 가져 오기 위해 피쳐 클래스를 선택하여 SR을 정의하는 대화식 방법이 작동하지 않을 때 나에게 도움이되었습니다.


다른 이름으로 저장 옵션으로 내 보낸 .prj 파일에 예쁘게 인쇄 된 이름이나 언급 한 소수 자릿수가 약간 변경되지 않습니까? 그렇다면 왜 diffing prj 파일에 아무것도 표시되지 않습니까? x, y 해상도의 약간의 차이가 충돌을 일으킬 수 있는지 궁금했습니다.
mindless.panda

1
"다른 이름으로 저장"으로 만든 .prj 파일은 내부에 저장된 파일과 정확히 동일하지 않을 수 있습니다. 내가 공통의 공간 해상도를 보장하는 기능 세트 "필터"를 사용하는 등
매트 윌키

3
여기에 하나의 추가 패싯을 추가하겠습니다. 때로는 다른 소스의 데이터 세트에 실제로 M 또는 Z가없는 경우 M 및 Z 값을 포함하는 것으로 생성 될 수 있습니다. 일부 ESRI 도구는 빈 Z 좌표계를 감지하지 못하는 것으로 발견했습니다. X / Y 좌표계가 실제로 정확히 일치한다는 사실에도 불구하고 일치.
DPierce

16

이것은 답변이 아니라 설명입니다.

우리 (Esri)는 좌표 참조 시스템 이름과 값을 매우 엄격하게 테스트합니다. 500000.00과 500000.000000을 비교할 때 'is equal'테스트는 실패를 반환하지 않지만 실제로는 500000.0이고 다른 하나는 500000.00000005 인 경우 실패 할 수 있습니다. 우리는 '동일'이 더 많이 전달되도록 이름에 대한 별칭을 추가하기 위해 노력하고 있습니다.

mindless.panda와 matt wilkie가 언급했듯이, 차이는 공간 참조의 다른 값에있을 수 있습니다. 공간 참조는 좌표 참조 시스템 및 저장 / 처리 값을 포함합니다. 저장 : xy, z 및 해상도와 범위를 측정합니다. 처리 : xy, z 및 공차 값을 측정합니다. 이들의 차이로 인해 같지 않은 오류가 발생할 수 있습니다.


6
귀하의 답변에 감사드립니다. 특히 사용자에게보고 된 내용에서 ArcGIS에서 오류 처리를보고 싶습니다. 원하는 경우 더 자세한 정보를 얻을 수있는 옵션과 함께보다 유익한 오류가 필요합니다. 다시 한 번 답변 해 주셔서 감사합니다. ESRI에게 감사합니다.
mindless.panda

2
오류에 대한 자세한 정보를 제공하기 위해 제안을 두 번째로합니다. 지난 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

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).
matt wilkie

7

이 문제는 나를 죽이고 있었다! CAD 파일에서 여러 피쳐 클래스를 저장 한 후 좌표계를 정의한 다음 피쳐 데이터 세트로 구성하기 위해 여러 번 시도했습니다. ESRI의 공식 WGS_1984_UTM_42N 프로젝션에서 필요한 모든 f.classes 및 f.datasets를 정의하고 데이터 세트 프로젝션을 설정 한 다음 Define Projection 도구를 사용하여 f.classes의 프로젝션을 가져 왔습니다. 어떤 f.class도 붙여 넣지 않았거나 1 개는 붙여 넣지 않았고 다른 클래스는 붙이지 않았습니다.

에 이상 @ 매트 윌키에 많은 덕분에 이 게시물은기능 클래스에 기능 클래스 도구는 문제를 해결 한 것으로 보인다. 문제의 f.class에 대한 좌표계를 아직 정의하지 않은 경우에도 f.classes를 원하는 데이터 세트로 가져옵니다.

또한 Feature Class to Geodatabase (다중) 스크립트는 f.classes를 f.dataset으로 대량으로 이동하는 데 효과적입니다. 단, Geodatabase에서 다른 지리 데이터베이스로 (동일한 지오 데이터베이스 내의 f.dataset이 아닌) 수행해야합니다. . 스크립트가 f.class를 복사 할 때 f.class의 이름을 자동으로 바꾸지 않기 때문입니다 (또는 기능 클래스에서 기능 클래스로 새 운영자 이름을 요청하십시오). 그러나 다른 사람들이 지적했듯이 (위의 동일한 스레드) 주어진 오류는 일반적인 999999입니다.


4

지형지 물 클래스를 GeoDatabase의 지형지 물 데이터 세트로 옮기고 싶을 때이 문제가 발생했습니다. Feature Dataset을 만들고 동일한 좌표계를 가지고 있는지 확인했습니다. " xyz 를 붙여 넣지 못했습니다 . 공간 참조가 일치하지 않습니다 "라는 메시지를 계속해서 다시 받았습니다 . 가장 빠른 해결 방법은 가져 오려는 피쳐 클래스에서 새로 작성된 데이터 세트의 동일한 공간 참조를 가져 오는 것입니다. "새 기능 데이터 세트 작성"마법사의 두 번째 단계에서.

공간 참조가 왜 다른지 모르겠습니다.


안녕하세요, @Alan! 귀하의 경험을 공유해 주셔서 감사하며 당사 사이트에 오신 것을 환영합니다.
whuber

1
안녕 새 기능 데이터 세트 / 클래스 생성 마법사가 "좌표계 가져 오기"를 사용할 때 항상 모든 스토리지 / 프로세싱 값을 가져 오지는 않습니다. 우리는 그것을 고치기 위해 노력하고 있습니다. 나는 이것이 당신이 겪고있는 것이라고 생각 합니다.
mkennedy

1
이 문제가 발생합니다. 피쳐 데이터 세트를 생성하고 가져 오기 메커니즘을 사용하고 피쳐 클래스를 선택한 경우에도 위에서 언급 한 오류없이 피쳐 클래스를 새로 작성된 피쳐 데이터 세트로 드래그 / 복사 할 수 없습니다.
mindless.panda

3

ESRI에 대한 메시지 중 하나는이 오류가 발생할 때 더 구체적인 매개 변수 차이 디버그 정보를 제공하는 것입니다. 대부분의 GIS 사용자가 생각하는 것처럼 공간 참조 시스템 및 투영을 신중하게 제어 한 후에도이 오류가 발생했습니다.

가져 오기 또는 복사 메커니즘을 사용할 때 발생하는 오류 메시지를 해결하기 위해 ArcToolbox 복사 기능을 사용하는 절차를 찾았습니다. 여기서는 피쳐 클래스를 피쳐 데이터 세트에 도입하기 전에 피쳐 복사 도구 상자 프로 시저에 따라 참조 또는 투영 차이를 올바르게 해결합니다.

데이터 셋 생성 시간에 정의 된 프로젝션 시스템으로 피처 데이터 셋을 생성 한 다음 동일한 투영으로 ArcToolbox 프로젝션 도구를 사용하여 피처 데이터 셋으로 피처 클래스를 프로젝션하려고 시도했지만 가져 오기를 시도 할 때 여기에 설명 된 오류가 계속 표시됩니다. 또는 피쳐 클래스를 데이터 세트에 복사하십시오.

이러한 좌표계 문제는 ArcMap에서 데이터를 사용할 때 가려집니다. ArcMap은 즉석 투영을 수행하므로 사용자가 인식하지 않고도 각각 다른 투영을 가진 여러 피쳐 클래스를 ArcMap 맵에 추가 할 수 있습니다. ArcMap은 다른 좌표 기준 시스템에 대해 경고합니다.


1

승인. 해결책을 찾았습니다! GDB의 기능 데이터 세트에서 마우스 오른쪽 버튼을 클릭하고 가져 오기를 클릭하십시오. 필요한 기능을 선택한 다음 확인을 선택하십시오.


0

데이터 관리 도구 / 기능에서 복사 기능 도구를 사용해보십시오. 그렇지 않으면 내가 한 일에 관계없이 계속 오류가 발생합니다.


-1

ArcMap으로 가져 와서 레이어를 GCS_WGS_1984로 설정 한 다음 모든 레이어를 파일 지오 데이터베이스로 내보내려고 했습니까?

다른 투영에있는 하나 이상의 레이어가있는 경우 레이어를 내보낼 수 있지만 데이터 프레임을 GCS_WGS_1984?

ArcGIS 10에서는 잘 모르겠습니다. 아직 가지고 있지 않지만 9.3.1을 사용하고 있습니다.


1
포인트 1과 2를 명확히 해 주시겠습니까? 이들은 정확하지 않은 것 같습니다.
Aaron
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.