ArcCatalog twierdzi, że odniesienia przestrzenne nie pasują między zestawem danych elementu a klasą elementu z tym samym układem współrzędnych?

31

Mam zestaw danych funkcji, który używa GCS_WGS_1984 jako geograficznego układu współrzędnych. Zawiera kilka klas funkcji.

Ten zestaw danych funkcji jest sam w geobazie pliku, która zawiera jeszcze kilka klas funkcji w katalogu głównym gdb. Jedną z nich jest klasa obiektów zwana „punktami”, która również wykorzystuje GCS_WGS_1984 jako swój układ współrzędnych.

Pomyślałem, że trywialne byłoby użycie ArcCatalog do przeciągnięcia klasy elementów z katalogu głównego gdb do zestawu danych elementów, ponieważ mają one ten sam układ współrzędnych. Niestety ArcGIS wyświetla okno dialogowe z błędem:

Failed to paste points
The spatial references do not match

Dlaczego to się nie udaje? Jeśli GCS klasy obiektów i zestaw danych funkcji są takie same, czy nie powinno to po prostu działać? Sprawdziłem, że tak jest w oknach dialogowych, a także eksportuję plik prj zarówno dla zestawu danych, jak i klasy, i używam narzędzia różnicowego do porównania tych dwóch. Są identyczne.

Czy odniesienie przestrzenne klasy obiektów jest inne niż układ współrzędnych / rzut?

Próba skopiowania klasy elementów do zestawu danych elementów przez przytrzymanie klawisza Ctrl podczas przeciągania powoduje awarię ArcCatalog za każdym razem (wstyd na ESRI).

Chyba mógłbym spróbować alternatywnych sposobów przenoszenia klas obiektów. Użyj CopyFeatures do zestawu danych. Czy projektować z klasy elementów na nową klasę elementów w zestawie danych elementów?

bezmyślna panda
źródło
Czy możesz gdzieś opublikować plik gdb? Może usuń wszystkie lub niektóre funkcje, jeśli są duże, wygląda na to, że można je odtworzyć nawet przy pustych klasach funkcji.
Kirk Kuykendall
4
Żałuję, że nie zdążyłem wyczerpać każdego dziwactwa, na jakie wpadam w / ArcGIS, często po prostu muszę z tym żyć i znaleźć kolejne najmniej przyjemne obejście. Użyłem zarządzania danymi -> Kopiuj funkcję, aby skopiować do nowej klasy funkcji (o nazwie tymczasowej), usunąłem starą klasę funkcji, przemianowałem nową klasę funkcji na starą. Korzystanie z ArcGIS nie powinno wymagać stopnia testowania oprogramowania. = (
mindless.panda
2
„nie powinno wymagać dyplomu z testowania oprogramowania” , chat.stackexchange.com/transcript/message/1116371
matt wilkie
to tylko nazwa, mogą się zgadzać, ale jeśli mają inną nazwę, wyrzuca tę wiadomość, zignoruj ​​ją.
Jeśli nie wiesz - po prostu GIS

Odpowiedzi:

21

Ten sam układ współrzędnych nie zawsze jest identycznym układem współrzędnych. Zetknąłem się z sytuacjami, w których niektóre operacje i narzędzia geoprzetwarzania uznają, że klasy obiektów nie mają wspólnego układu współrzędnych, ponieważ nazwa opisowa projekcji jest różna („Yukon Albers” vs. „Albers - niestandardowy”), chociaż parametry są identyczne lub ponieważ o różnych pozycjach dziesiętnych (fałszywe północy 500000.00 vs 500000.0000).

Zazwyczaj dbam o to, aby układy współrzędnych zestawu danych obiektu (i F.class) były tworzone przy użyciu naszego standardowego pliku .prj umieszczonego na górze C:\path\to\ArcGIS\Desktop10.0\Coordinate Systems(udostępnia CS za pomocą mniejszej liczby kliknięć) i / lub kopiując CS z szablonu głównej klasy obiektów przechowywane gdzieś zawsze pod ręką.

Częściowo w odpowiedzi na ten problem mam również pusty zestaw danych funkcji ( D:\s.gdb\_template), przez który przechodzę wszystkie nasze dane jako filtr pierwszego kroku, zanim cokolwiek z nimi zrobię. Wśród wspólnego układu współrzędnych zapewnia to również precyzję i dziedzinę przestrzenną itp. Są identyczne.

Aktualizacja: Zobacz odpowiedź Andy'ego na temat używania Pythona (tylko 2 wiersze) do skopiowania systemu odniesień przestrzennych zestawu danych z szablonu klasy obiektów. To działało dla mnie w ArcCatalog 10.3, gdy interaktywna metoda definiowania SR poprzez wybranie klasy obiektów do zaimportowania nie działała.

matowe wilkie
źródło
Czy te niewielkie zmiany w ładnej drukowanej nazwie lub dziesiętnych pozycjach dziesiętnych nie pojawią się w pliku .prj, który jest eksportowany z opcją Zapisz jako? Jeśli tak, dlaczego w różnych plikach prj nic nie widać? Zastanawiałem się, czy niewielkie różnice w rozdzielczości x, y również mogą powodować konflikt.
mindless.panda
1
Może to być plik .prj utworzony za pomocą opcji „Zapisz jako” nie jest dokładnie taki sam jak plik przechowywany wewnętrznie. Używam „filtra” zestawu danych funkcji, aby zapewnić wspólną rozdzielczość przestrzenną itp.
Matt Wilkie
3
Dodam do tego jeszcze jeden aspekt: ​​czasami zestawy danych z innych źródeł będą generowane jako zawierające wartości M i Z, gdy tak naprawdę nie mają M lub Z. Odkryłem, że niektóre narzędzia ESRI wykrywają pusty układ współrzędnych Z jako nie dopasowanie, mimo że układy współrzędnych X / Y faktycznie dokładnie pasują.
DPierce
16

To jest raczej wyjaśnienie niż odpowiedź.

My (Esri) przeprowadzamy dość surowe testy nazw i wartości systemów odniesienia za pomocą współrzędnych. Test „jest równy” nie zwróci błędu przy porównywaniu 500000.00 i 500000.000000, ale może się nie powieść, jeśli jeden jest naprawdę 500000.0, a drugi 500000.00000005. Pracujemy nad dodaniem aliasów dla nazw, aby „równy” minął więcej.

Jak wspomniano bezmyślna panda i Matt Wilkie, różnice mogą dotyczyć innych wartości odniesienia przestrzennego. Odniesienie przestrzenne obejmuje układ odniesienia współrzędnych oraz wartości przechowywania / przetwarzania. Do przechowywania: xy, z oraz zmierzyć rozdzielczość i zakresy. Do przetwarzania: xy, z i zmierzyć wartości tolerancji. Każda różnica może powodować nierównomierny błąd.

Mkennedy
źródło
6
twoja odpowiedź jest bardzo mile widziana. Naprawdę chciałbym, aby obsługa błędów, szczególnie w tym, co jest zgłaszane użytkownikowi, poprawiła się w ArcGIS. Potrzebne są bardziej pouczające błędy, z opcją uzyskania w razie potrzeby jeszcze bardziej szczegółowych informacji. Jeszcze raz dziękuję ESRI za poświęcenie czasu na udzielenie odpowiedzi.
mindless.panda
2
Popieram propozycję dostarczenia więcej informacji na temat błędów. W ciągu ostatnich dwóch tygodni wystąpił ten sam błąd ( 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. ) z powodu szeregu problemów. To irytujący komunikat, który otrzymuję, ponieważ nie mogę nic zrobić, prócz uruchomienia tego, co zrobiłem drugi raz, aby sprawdzić, czy błąd się powtarza, lub zrezygnuj i użyj innej metody (lub oprogramowania, co jest coraz częstsze).
djq
9

Oto, co zrobiłem, aby rozwiązać problem (używając Arcpy w ArcGIS 10.0) -

Zakłada się, że:

  • FGDB - C: \ gisdata \ Test.gdb
  • Klasa elementów - C: \ gisdata \ Test.gdb \ bldg

Możesz zmodyfikować ścieżki i nazwy obiektów w kodzie i wkleić je w oknie python w ArcCatalog.

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

Po utworzeniu zestawu danych elementów można przeciągać i upuszczać klasy elementów.

Andy Arismendi
źródło
1
Dziękuję Ci! Działa to dla mnie dzisiaj w sytuacji, w której użycie interaktywnego narzędzia do zdefiniowania nowego układu współrzędnych zestawu danych elementu przez wybranie istniejącej klasy elementów nie działało (v10.3).
matt wilkie
7

Ten problem mnie zabijał! Po zapisaniu kilku klas obiektów z pliku CAD kilkakrotnie próbowałem zdefiniować ich układy współrzędnych, a następnie uporządkować je w zestawy danych cech. Próbowałem zarówno zdefiniować wszystkie niezbędne klasy f, jak i f. Bazy danych z oficjalnej projekcji WGS_1984_UTM_42N z ESRI, a także ustawić projekcję dla zestawu danych, a następnie zaimportować tę projekcję dla klas f. Za pomocą narzędzia Define Projection. Albo nie wkleiłyby się żadne klasy, ani 1, a pozostałe nie.

Wiele dzięki @Matt Wilkie powyżej w tym poście The Feature klasy do klasy Feature narzędzie wydaje się rozwiązać ten problem. Z powodzeniem importuje klasy F. do żądanego zestawu danych, nawet jeśli nie zdefiniowałem jeszcze układu współrzędnych dla danej klasy F.

Ponadto odkryłem, że skrypt klasy funkcji do geobazy (wielokrotnej) świetnie nadaje się do przenoszenia f.classes do f.dataset luzem, z tym wyjątkiem, że należy to zrobić z Geodatabase do innego (nie do f.dataset w tej samej geobazie) . Wydaje się, że dzieje się tak, ponieważ skrypt nie zmienia automatycznie nazw klas f. Podczas kopiowania (lub pyta operatora o nową nazwę, jak w przypadku klasy elementów na klasę elementów). Jednak, jak wskazali inni (ten sam wątek połączony powyżej), podany błąd to ogólny 999999.

Matt Cohen-Price
źródło
4

Miałem ten problem, gdy po prostu chciałem przenieść klasę elementów do zestawu danych elementów w GeoDatabase. Zrobiłem mój zestaw danych funkcji i upewniłem się, że ma ten sam układ współrzędnych. W kółko otrzymywałem „Nie udało się wkleić xyz Odwołania przestrzenne nie pasują” Najszybszym rozwiązaniem, jakie znalazłem, było zaimportowanie identycznego odwołania przestrzennego do mojego nowo utworzonego zestawu danych z klasy obiektów, którą chciałem zaimportować. W drugim kroku kreatora „Utwórz nowy zestaw danych funkcji”.

Nie wiem, dlaczego odniesienia przestrzenne się różnią.

Alan Boatman
źródło
Cześć, @Alan! Dziękujemy za podzielenie się doświadczeniami i witamy na naszej stronie.
whuber
1
Cześć Alan, kreator tworzenia nowych funkcji zestawu danych / klas nie zawsze pobiera wszystkie wartości przechowywania / przetwarzania, gdy używany jest „importuj układ współrzędnych”. Pracujemy nad naprawą. Myślę, że na to wpadasz.
mkennedy
1
Widzę ten problem - nawet jeśli utworzę zestaw danych elementów i użyję mechanizmu importu i wybiorę klasę elementów, nadal nie mogę przeciągnąć / skopiować klasy elementów do nowo utworzonego zestawu danych elementu bez wspomnianego błędu.
mindless.panda
3

Myślę, że jednym z komunikatów dla ESRI jest dostarczenie bardziej szczegółowych informacji debugowania różnic parametrów, gdy wystąpi ten błąd. Ja również napotkałem ten błąd, nawet po dokładnym kontrolowaniu przestrzennych systemów odniesienia i rzutów, jak myślę, że robi to większość użytkowników GIS.

Znalazłem procedurę używania funkcji kopiowania ArcToolbox w celu naprawy komunikatów o błędach, które pojawiają się, gdy używane są mechanizmy importu lub kopiowania. W tym przypadku jesteśmy zależni od procedury przybornika Funkcje kopiowania, aby poprawnie rozwiązać różnice odniesienia lub projekcji przed wprowadzeniem klasy elementów do zestawu danych elementów.

Próbowałem nawet utworzyć zestaw danych elementów za pomocą systemu projekcji zdefiniowanego w czasie tworzenia zestawu danych, a następnie rzutować klasy elementów na zestaw danych elementów za pomocą narzędzia do projekcji ArcToolbox z tą samą projekcją i nadal otrzymywałem opisany tutaj błąd podczas próby importowania lub skopiuj klasę obiektów do zestawu danych.

Te problemy z układem współrzędnych zostają zamaskowane, gdy używasz danych w ArcMap. Ponieważ ArcMap wykonuje projekcję w locie, do mapy ArcMap można dodać wiele klas obiektów o różnych projekcjach bez uświadomienia użytkownika. ArcMap ostrzega o różnych układach odniesienia za pomocą współrzędnych.

Derek S. Wilson
źródło
1

DOBRZE. Znalazłem rozwiązanie! Kliknij prawym przyciskiem myszy na zestawie danych funkcji w GDB i kliknij Importuj. Wybierz potrzebne funkcje, a następnie OK.

Siergiej Waletow
źródło
0

Spróbuj użyć narzędzia Kopiuj funkcje w obszarze Narzędzia / funkcje zarządzania danymi. W przeciwnym razie ciągle pojawiał się błąd bez względu na to, co zrobiłem.

Rayner
źródło
-1

Czy próbowałeś wprowadzić go do ArcMap i ustawić warstwy jako GCS_WGS_1984, a następnie wyeksportować wszystkie swoje warstwy do geobazy danych pliku?

Jeśli masz jedną lub kilka warstw, które są w różnych projekcjach, możesz je wyeksportować, ale zmienić ramkę danych na GCS_WGS_1984?

Nie jestem tego pewien w ArcGIS 10. Nie mam ich jeszcze, ale używam 9.3.1.

PROBERT
źródło
1
Czy mógłbyś wyjaśnić punkty 1 i 2? Nie wydają się być dokładne.
Aaron