Czy za pomocą ArcGIS 10.0 można zmienić kolejność pól w geobazie pliku i zlecenie utrwalone w bazie danych?
Rozważaliśmy eksport do XML i napisanie parsera, aby zmienić kolejność pól, a następnie odtworzenie nowej bazy danych z XML. To wydaje się żmudnym procesem.
Innym pomysłem jest zaimportowanie istniejących definicji pól do Excela, zmiana ich kolejności, eksportowanie do CSV, a następnie napisanie skryptu Python, aby utworzyć te pola w nowej Geodatabase. Czy taki skrypt istnieje przed napisaniem go od zera?
Niestety ArcGIS Diagrammer nie obsługuje ponownego zamawiania w terenie.
Czy są jakieś skrypty lub hacki, których moglibyśmy użyć, aby uprościć ten proces?
Odpowiedzi:
Jak wspomniano w komentarzach, można zmieniać kolejność pól za pomocą ArcGIS Diagrammer. W tej odpowiedzi zamieściłem bardziej ogólny krok: Jak zaktualizować właściwość length pola klasy obiektów?
źródło
W odpowiedzi na inne pytanie powiedziałem, że można użyć statystyk podsumowujących, aby wykonać odpowiednik PULLITEMS (stary mówi o polach zmiany kolejności). Ta technika działa dobrze tylko na tabelach, ale dostępny jest teraz inny skrypt, który mówi, że działa zarówno na klasach elementów, jak i na tabelach.
Poleciłbym również odpowiedź na pytania dotyczące ponownego zamawiania pól na stałe za pomocą narzędzia ArcGIS Make Query Table? który został zainspirowany odpowiedzią @klewis na ten temat.
źródło
To zrobi bezpłatna wersja ET Geowizards. Podstawowe -> Sortuj kształty. Właśnie przetestowałem go na Geobazie Pliku v10 i działa. Musi jednak stworzyć nową klasę funkcji.
źródło
Jeśli nie masz programu Visio dla programu Diagramer - wszystkie pozostałe odpowiedzi tutaj przerywają wszelkie połączenia. Uważam, że to działa dobrze w moim przypadku:
źródło
Aby zmienić kolejność pól, musisz uruchomić MakeTableQuery z zestawu narzędzi Warstwy i Widoki tabel. Z dokumentacji kolejność pól na liście pól wskazuje kolejność pól w widoku warstwy wyjściowej lub widoku tabeli. Ponadto, jeśli kolumna Kształt zostanie dodana do listy pól, wynikiem jest warstwa; w przeciwnym razie jest to widok tabeli. Jest to dostępne na każdym poziomie licencji.
źródło
Dzięki narzędziu Scalanie możesz z łatwością na stałe porządkować pola na stałe. Działa z tabelami i klasami funkcji. Zmiana kolejności może odbywać się za pomocą skryptu Python, a nawet za pomocą okna dialogowego Narzędzia (poprzez usunięcie pola i ponowne dodanie go w oknie dialogowym). Chociaż ponowne zamówienie za pośrednictwem okna dialogowego nie jest idealnym podejściem.
Zaleca się jednorazowe użycie narzędzia Scal, a następnie użycie opcji Kopiuj jako fragment kodu w Pythonie, a następnie ręczną zmianę kolejności pól, a następnie wklejenie kodu Pythona w oknach Pythona.
Oto skrypt w języku Python, który używa narzędzia korespondencji seryjnej do zmiany kolejności pól (skopiowane stąd )
STOSOWANIE:
źródło
Istnieje bezpłatne rozszerzenie Esri o nazwie X-Ray, które zawiera narzędzie wykonane w polach Reorder. Sprawdził się doskonale dla nas i jest łatwy w użyciu.
źródło
Jak dotąd najskuteczniejszą metodą, jaką znalazłem, jest zmiana nazwy pól, zmiana ich domyślnej kolejności, a szereg innych rzeczy to użycie Microsoft Access:
GDB_
, otwórz tabele w trybie projektowania tabelUwagi:
Zawsze miej kopię zapasową prądu. Bałaganisz bezpośrednio wewnętrzną strukturą GDB i możesz z łatwością wyrzucić swoje dane, zmieniając bazę danych do tego stopnia, że ArcGIS nie wie już, jak ją odczytać.
Istnieją pewne zastrzeżone słowa kluczowe po stronie ArcGIS, których nie można używać w nazwach pól. Access z przyjemnością utworzy lub zmieni nazwy pól za pomocą tych słów kluczowych, ale kiedy je przywrócisz, automatycznie dodają podkreślenie. Tak się
Current
stajeCurrent_
. Należy również zauważyć częściowo pokrywające się słowa kluczowe zastrzeżone dla programu Access .Osobisty GDB ma limit wielkości 2 GB, więc całkowity rozmiar wszystkich tabel i klas funkcji w GDB nie może go przekroczyć.
Może być kuszące, aby zawsze używać osobistych GDB do małych projektów (<2 GB). Nie rób Wydajność jest fatalna i istnieją subtelne różnice w składni SQL programu Access, które powodują, że wyrażenia etykiet, zapytania definicji itp. Są nieprzenośne.
źródło
Istnieje instrukcja Esri : Zmiana kolejności nazw pól w rozwiązaniu tabeli atrybutów .
Wymaga edycji pliku XML, ale gdy już poprawnie uzyskasz schemat, jesteś dobry.
źródło
Ten skrypt w Pythonie jest swego rodzaju metodą „taśmy izolacyjnej”. Jest ograniczony do 20 pól, ale można go łatwo dodać, aby umożliwić działanie dla dowolnej liczby pól w danych.
Skrypt został zaprojektowany do uruchamiania jako narzędzie skryptowe, dlatego należy ustawić parametry w ArcCatalog.
Parametry powinny być następujące:
Kod:
Zdaję sobie sprawę, że nie jest to najładniejszy ani najwydajniejszy sposób na zrobienie tego, ale tak naprawdę działa całkiem nieźle i napisanie go zajęło około pół godziny. Używam tego cały czas, gdy muszę zmienić kolejność pól i nie wymaga to programu Diagrammer ani Microsoft Access. Oczywiście maksymalna liczba pól może być problemem, ale znowu można ją dostosować w skrypcie.
źródło