Zmieniasz typ danych w tabeli atrybutów ArcGIS?


9

Jak mogę zmienić typ danych w tabeli atrybutów w ArcGIS dla wielu pól?

Na przykład, jeśli pola zostały wyeksportowane jako ciąg znaków z programu Excel i chciałbym ich użyć jako wartości liczbowych?


1
Nie można wykonać od tabeli do tabeli, jeśli typy danych nie pasują. Wiem, że próbowałem.
Sam

proszę unikać formatu i wersji źródła danych. (ent baza danych, plik shapefile, filegdb, osobisty gdb?)
Brad Nesom

@Brad pracuje z plikami kształtów w Arcgis 10.2, źródło danych jest lokalnie na moim komputerze
Walka

Odpowiedzi:



3

Nie wspominasz, jakiej wersji ArcGIS na komputer używasz ani gdzie są przechowywane twoje dane, ale istnieje strona Modyfikowanie właściwości pola, która opisuje, w jaki sposób, używając ArcGIS 10.2 (lub nowszy):

Niektóre właściwości pola można zmienić po utworzeniu tabeli lub klasy elementów

... ale dotyczy to tylko pustych pól.

Od 10.3 powyższa funkcjonalność jest również dostępna za pomocą narzędzia Alter Fields :

Zmień nazwy pól i aliasów pól lub zmień właściwości pól.


potrzebuję precyzji. od 10.2.1
GeoStoneMarten

@GeoStoneMarten Alter pola w 10.2.1 wydają się być tylko do zmiany nazw pól, podczas gdy moja odpowiedź dotyczy modyfikacji typów danych i myślę, że pozostaje ważna. Jednak odpowiedź @Paul sugeruje, że Alter Fields rozszerzył swoją funkcjonalność o modyfikację typów danych w 10.3.
PolyGeo

Nie tylko, ale tak, jeśli istnieją dane ... Ok, w przeciwnym razie
GeoStoneMarten

2

Możesz zmienić typ danych pola dla pól, które masz w swojej klasie obiektów. Nie będzie jednak można przekonwertować pól tekstowych na numeryczne. Możesz jednak przekonwertować pola numeryczne na ciągi. Zajrzyj na stronę pomocy Esri . Dotyczy to nie tylko geobazy korporacyjnej, ale działa nawet w przypadku geobaz danych komputerowych, takich jak geobaza plików.

Jeśli tabela lub klasa elementów znajduje się w geobazie przedsiębiorstwa, grupy roboczej lub pulpitu , musisz połączyć się jako właściciel tabeli, aby zmodyfikować właściwości pola.

Ponieważ masz do czynienia z programem Excel, najlepszym sposobem upewnienia się, że typy danych są poprawne, jest zdefiniowanie typów danych komórek bezpośrednio w programie Excel przed zaimportowaniem jakichkolwiek danych. Jeśli jednak masz pole tekstowe z liczbami, możesz oczywiście utworzyć nowe pole typu liczbowego (na przykład liczba całkowita lub podwójna) i obliczyć wartości na podstawie tego pola tekstowego. Działa to dobrze, jeśli twoje liczby są naprawdę liczbami („12” będzie działać, ale „12-1” nie).


2

Według mojej wiedzy nie jest to możliwe. W 10.3 Alter Field został rozszerzony, aby umożliwić zmianę typu pola; jednak nadal działa tylko wtedy, gdy tabela nie ma żadnych rekordów.

Oto jedno podejście do tego:

  1. Dodaj nowe pole z tymczasową nazwą i poprawnym typem danych
  2. Użyj Calculate Fieldlub cursors(z rzutowaniem, jeśli to konieczne)
  3. Usuń stare pole
  4. Alter Field zmienić nazwę pola tymczasowego
  5. (Opcjonalnie) Skopiuj tabelę z niektórymi mapowaniami pól, aby przywrócić pierwotną kolejność

Nigdy go nie badałem, ale mapowanie pól może działać, by rzutować pola na nowe typy danych, co znacznie uprościłoby ten proces. Coś na pewno zajrzeć ....


1
Zwykle najpierw zmieniam nazwę starego pola. w ten sposób mogę -retworzyć nowe pole, obliczyć wartości, a następnie usunąć stare pole. kiedy zaczniesz obliczać wartości, może być konieczne wybranie wszystkich wartości innych niż null. i lub konwertuj /
dziel

1
także et tools ma kilka bezpłatnych funkcji, które byłyby pomocne. ian-ko.com Spójrz na bezpłatne funkcje geo-kreatorów.
Brad Nesom,

@Brad Szukałem bezpłatnych funkcji, xtools były pomocne, ale zawsze jestem otwarty na więcej / lepsze opcje. dziękuję za wkład
Walczę

@BradNesom, dobry punkt! To miałoby sens.
Paweł

1

Alternatywny sposób polega na otwarciu .dbfpliku w OpenOffice Calc (lub równoważnym) i ostrożnym zmodyfikowaniu nagłówków jego kolumn. Np. Zmień typ z C(Znak) na N(Numeryczny). Prosta rada: wykonaj kopię zapasową pliku przed próbą.


1

Chociaż nie można zmienić nazwy pola i typu danych w samym zestawie danych, możliwe jest utworzenie kopii z żądanymi zmianami za pomocą narzędzia ArcGIS „Klasa elementów do klasy elementów”. W ustawieniach możesz zmienić, nazwy, typy danych i inne cechy pól.


1

Przede wszystkim należy spróbować zrozumieć, dlaczego ArcGIS importuje pole jako typ ciągu zamiast numerycznego / podwójnego typu danych. Odkryłem, że nawet jeśli twoja komórka (w programie Excel) jest pusta, jeśli ma w niej „spacje” (na przykład po naciśnięciu spacji), ArcGIS zinterpretuje je jako znaki. Jeśli je usuniesz, zobaczysz, że będą się teraz rejestrować jako pola numeryczne.


0

Spójrz na ten dokument . Zazwyczaj przed importowaniem i po nim należy upewnić się, że dane mają prawidłowy format.

„ArcGIS zazwyczaj konwertuje pola numeryczne arkusza kalkulacyjnego na podwójną precyzję (Double), co może nie spełniać twoich potrzeb. W razie potrzeby utwórz nowe pola żądanego typu i oblicz do nich wartości”


0

Jeśli Twoim celem jest dodanie danych z tabeli X do innej tabeli Y , ale nie możesz tego zrobić, ponieważ typy danych nie są zgodne , możesz również wykonać następujące kroki:

  1. Wyeksportuj obie tabele (.dbf)

  2. Otwórz stół Y w programie Excel.

  3. Otwórz stół X w programie Excel.

  4. Skopiuj i wklej dane z tabeli X do tabeli Y, upewniając się, że kopiujesz tylko wartości, a nie formularz.

  5. Masz teraz nową tabelę zawierającą dane z obu tabel, z odpowiednimi typami danych.

6. Zaimportuj tę tabelę do ArcMap


0

Nikt nie wspomniał o pakiecie narzędzi rentgenowskich dla ArcGIS. Wystarczy wyszukać w Google „X-Ray ArcGIS”. Istnieje kilka wariantów dla każdej wersji ArcGIS i platformy (ArcCatalog, ArcMap). Oto jedna wersja. Oto kolejna. Obsługuje wiele funkcji związanych z polami i domenami, w tym zmianę typu pola, nazwy, aliasu, domen itp. W MS Excel i przesyłanie zmian z powrotem do GDB.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.