Przygotowujesz pliki CSV do użycia w ArcGIS Desktop?

16

Jak przygotować pliki CSV do użycia w ArcGIS Desktop.

Pytam, ponieważ mam pewne problemy z używaniem plików CSV, ponieważ ArcGIS przypisuje niewłaściwe typy pól do moich kolumn, a także błędnie interpretuje znaki specjalne, takie jak á lub ê.

Przeczytałem na forum Esri, że istnieje tak zwany plik schema.ini, który w jakiś sposób definiuje typy pól, np. „Col22 = V002 Text”, patrz tutaj http://forums.esri.com/Thread.asp?c=93&f = 1149 i t = 64464

To trochę zabawne, ponieważ często widziałem te pliki .ini na moim dysku, ale nigdy nie zastanawiałem się, do czego są dobre. To dziwne, że Excel przechowuje takie metadane w dodatkowym pliku, ponieważ inne programy, takie jak R, nie robią tego.

Próbowałem już z powodzeniem manipulować tym plikiem .ini, ponieważ nie dowiedziałem się, jak zastosować na przykład typ „ciąg”. Istnieje kilka informacji na temat witryn MS, patrz tutaj: http://msdn.microsoft.com/en-us/library/windows/desktop/ms709353%28v=vs.85%29.aspx, ale nie mogłem znaleźć rozwiązania .

Poza tym nie spodobał mi się pomysł pracy z tym plikiem .ini, ponieważ zdefiniowanie i wpisanie wszystkich nazw pól jest dość pracochłonne, gdy powiem 50 kolumn. I te pliki .ini mogą się zgubić itp.

Dspanes
źródło

Odpowiedzi:

16

Moją szybką poprawką jest utworzenie pierwszego wiersza ze wszystkimi wartościami pozornymi, a następnie usunięcie tego wiersza / rekordu po wprowadzeniu go do ArcGIS.

Ten pierwszy wiersz zawiera reprezentatywne wartości lub często skrajnie różne wartości (np. Znaki alfabetyczne, nawet jeśli kolumna zawiera liczby, które chcę, aby był typem danych tekstowych) i największą liczbą znaków potrzebną dla tego wiersza (ponieważ pola tekstowe mają tendencję do obcinania) .

Wartości daty / godziny podlegają błędom importu (szczególnie między domyślnymi formatami daty w Kanadzie / USA), więc pracuję nad podzieleniem części daty / godziny na osobne kolumny (np. Rok, miesiąc, dzień, godzina, minuta), a następnie połącz je w nowym obliczeniu pola po udanym wprowadzeniu w ArcGIS.

Konieczne jest także wskazanie współrzędnych geograficznych z Jamie - podaj wartości ujemne dla długości półkuli zachodniej i szerokości półkuli południowej. A Unicode dba o znaki specjalne.

Na koniec, jeśli typ danych pola jest nadal błędnie interpretowany po wprowadzeniu do ArcGIS, dodam nowe pole w poprawnym typie danych i obliczę / przekonwertuję wartości z pierwotnego pola, ale zwykle zastępczy wiersz / rekord zajmuje się większością, jeśli nie wszystkie problemy.

ccn
źródło
8

Nieznaczne odejście od tradycyjnej warstwy CSV-> ArcGIS może być użycie ogr2ogr do utworzenia pliku kształtu z CSV PRZED załadowaniem go do ArcMap.

Podczas używania OGR , możesz ręcznie utworzyć plik CSVT, który opisuje typy kolumn, podobnie jak ArcGIS próbuje zrobić z plikiem schema.ini.

W tym poście @underdark na temat określania typów danych kolumn CSV (do użytku w QGIS) wyjaśniono szczegóły tworzenia CSVT. Możesz zignorować użycie QGIS, ponieważ używa on ogr do importowania danych CSV do jego interfejsu użytkownika.

RyanKDalton
źródło
7

Za pomocą ArcGIS 10 możesz najpierw utworzyć klasę obiektów i ustawić wszystkie typy pól, a następnie załadować plik .csv za pomocą ArcCatalog. Po prostu kliknij prawym przyciskiem myszy klasę obiektów i wybierz polecenie Ładuj> Ładuj dane. Następnie postępuj zgodnie z oknem dialogowym Prostego modułu ładującego dane, aby dopasować pola itp. Jest to prosty moduł ładujący, ponieważ nie ma wielu opcji, ale działa z dobrze sformatowanymi danymi. Nie jestem pewien, czy jest to nowość na 10, ponieważ nie mam pod ręką wcześniejszej wersji do sprawdzenia.

Bogaty Wawrzonek
źródło
3

Prawidłowym sposobem rozwiązania tych problemów jest użycie pliku „schema.ini”, zgodnie z sugestią @Kirk_Kuykendall w komentarzach. Jest to standardowy sposób obsługi danych wejściowych z dowolnego pliku CSV do bazy danych, w której typ kolumny można interpretować niejednoznacznie.

ArcGIS przestrzega tych plików „schema.ini” podczas importowania z CSV.

Zobacz dokumentację Microsoft na: adresem https://docs.microsoft.com/en-us/sql/odbc/microsoft/schema-ini-file-text-file-driver?view=sql-server-2017

Plik „schema.ini” musi znajdować się w tej samej lokalizacji, co plik CSV, w razie potrzeby może zawierać konfiguracje wielu innych plików CSV w tej samej lokalizacji.

Prosty plik „schema.ini” dla pojedynczego pliku CSV, który ma tylko jedną kolumnę, która w przeciwnym razie zostanie odczytana przy użyciu niewłaściwego typu, może wyglądać następująco:

[SomeFileName.csv]
Col2=SomeFieldName Long
Syn plaży
źródło
Potwierdzono, że działa w ArcGIS Pro. Korzystałem z innej pracy, w której dodajesz górny wiersz danych z wartościami, które pasują do pożądanego typu danych, co działa na jeden raz, ale jeśli tabela jest ogromna lub masz automatyzację, to na pewno najlepsze rozwiązanie. Po prostu ustaw i zapomnij!
alexGIS
1

Obejściem, które znalazłem, jest otwarcie pliku CSV w edytorze tekstu (użyłem notatnika ++) i ponowne zapisanie go jako plik CSV. Nie widzę żadnych widocznych zmian w zawartości pliku, w tym specjalnych znaków znaczników, ale problem prawdopodobnie dotyczy sposobu, w jaki Excel formatuje pliki CSV. Zapisałem plik w programie Excel przy użyciu standardowych opcji CSV „CSV (rozdzielany przecinkami) (*. Csv)”. Być może inny format CSV działałby lepiej.

Informacje dodatkowe: Coś fundamentalnego musiało się zmienić w pliku CSV, kiedy zapisywałem go za pomocą notatnika ++, ponieważ teraz mogę go edytować i zapisać w programie Excel, a nadal jest importowany jako numeryczny przez arcmap. Nie mam pojęcia, co się zmieniło.

DrPo
źródło
-2

Nieoczekiwanie otwarcie oryginalnego pliku (dla mnie .txt) w edytorze tekstu (UltraEdit dla mnie) i zapisanie go jako .csv lub .txt zadziałało. Nie ma zauważalnej zmiany w pliku w UltraEdit, pandach ani żadnej innej metodzie badania, jaką widzę.

Żadne z obejść, w tym moje własne, nie wyjaśnia podstawowego powodu, dla którego ArcMap tylko czasami decyduje się czytać kolumny liczb jako tekst.

Więc zadziałało to dwa razy ... wtedy dokładnie ta sama procedura przestała działać.

Muszę usunąć wszystkie sprzężenia, usunąć tabelę, zamknąć ArcMap, otworzyć tabelę w edytorze tekstu, ponownie zapisać tabelę, otworzyć ArcMap, dodać tabelę i ponownie wykonać połączenie ... za każdym razem, gdy zmieniam cokolwiek w stół.

Wesley Kitlasten
źródło