Jak porównać schematy z dwóch geobaz danych plików?

13

Mamy szablon geobazy, który wysyłamy do naszych regionalnych twórców danych. Aktualizują te geobazy i digitalizują wszystkie dane ze swojego regionu w predefiniowanych klasach funkcji.

Teraz, gdy mamy geobazy danych File, okazuje się, że często wiele klas obiektów zostało zmodyfikowanych. Być może pole może zostać dodane lub usunięte. W niektórych przypadkach sama klasa obiektów jest usuwana lub tworzona jest nowa.

Chciałbym otrzymać raport wskazujący, które klasy elementów i tabele zostały zmienione, a także różne pola we wspólnych tabelach i klasach elementów.

Omówiłem już kilka pytań, takich jak:

Ale odpowiedzi podane w tych pytaniach nie były pomocne.

Devdatta Tengshe
źródło
Nie jestem pewien protokołu tutaj na SE z nekrologicznymi tematami, ale miałem podobne pytanie do ciebie, Devdatta: Czy istnieje narzędzie, które bierze twoje rozwiązanie z dodatku rentgenowskiego i rozwiązuje różnice między GeoDBs / XML?
Kyle Shepard
@KyleShepard Zwykle procedura polega na zadaniu nowego pytania dotyczącego nowego problemu. Możesz link do starego pytania, jeśli zawiera powiązane informacje. Aby odpowiedzieć na twoje pytanie, nie znalazłem czegoś takiego. Może mógłbyś zadać nowe pytanie, a ktoś, kto coś znalazł, odpowiedziałby na to.
Devdatta Tengshe,

Odpowiedzi:

9

Jest wspaniały dodatek o nazwie X-ray dla ArcCatalog . Ma wiele funkcji, ale tym, z którego ostatecznie skorzystaliśmy, było narzędzie „Analizuj różnicę” z menu Narzędzia.

Znajduje dla ciebie różnicę między Geobazą danych a Dokumentem obszaru roboczego XML. Właśnie wyeksportowaliśmy schemat naszej Geobazy szablonów do XML i porównaliśmy z nią różne Geobazy.

Wyświetlenie ładnego raportu ze wszystkimi klasami obiektów i polami, których brakuje lub różnią się w dwóch geobazie, zajmuje zaledwie kilka sekund.

Devdatta Tengshe
źródło
To wygląda świetnie. Czy to działa na 10.1?
Fezter
@Fezter: Wygląda na to, że jest to wersja
Devdatta Tengshe 13.03.2013
7

Myślę, że napisanie skryptu python najlepiej pasuje do tego, co próbujesz wymyślić. Poniżej znajduje się ogólny przepływ pracy skryptu:

Najpierw porównaj geobazę 1 (geo1) z geobazą 2 (geo2)

  1. Wyszukaj / zapętl się przez geo1 i uzyskaj nazwę klasy obiektów (fc) 1 i poszukaj tej samej nazwy fc w innym geo2 (jeśli nie można znaleźć nazwy fc1 w geo2, wpisz pierwszą nazwę fc do pliku tekstowego)
  2. Jeśli krok 1 fc1 == nazwa fc2, to wyświetl listę pól w fc1 i wyszukaj pola w fc2, jeśli nazwy fc1 nie można znaleźć w fc2, wpisz nazwę pola fc1 do pliku tekstowego
  3. Następnie wyszukaj lub wyświetl domenę w obszarze geo1, a następnie wyszukaj tę samą nazwę domeny w geo2, jeśli domena geo1 == domena geo2, a następnie uzyskaj pierwszą zakodowaną wartość domeny 1 i sprawdź, czy istnieje ona w domenie 2, jeśli nie, wpisz nazwę domeny geo1 lub wartość zakodowana w domenie do pliku tekstowego.

Drugie na odwrót porównaj geo2 z geo1

Wykonaj kroki 1-3 powyżej, ale w odwrotnej kolejności od geo2 do geo1

Po zakończeniu skryptu sprawdź plik tekstowy wyników pod kątem możliwych rozbieżności.

grafika 21
źródło
3

Wygląda na to, że masz już dobrą odpowiedź. Ale każdemu, kto chce zrozumieć swoje schematy geobazy, mogę również polecić ArcGIS Diagrammer , samodzielny program napisany przez jeden z zespołów Esri.

ArcGIS Diagrammer to narzędzie dla profesjonalistów GIS do tworzenia, edycji lub analizy schematu geobazy. Schemat jest przedstawiany jako edytowalna grafika w środowisku znanym użytkownikom Microsoft Visual Studio. Zasadniczo ArcGIS Diagrammer to edytor wizualny dla dokumentów obszaru roboczego xml ESRI, które można tworzyć w ArcMap lub ArcCatalog.

Stephen Lead
źródło
dla wyjaśnienia, nie wymaga Visio - ale wygląda nieco „znajomo dla użytkowników Visio”, ponieważ używał podobnego układu
Stephen Lead
Tak masz rację. Wygląda na to, że się pomyliłem.
Devdatta Tengshe,