Preparazione dei file CSV da utilizzare in ArcGIS Desktop?


16

Come preparo i file CSV da utilizzare in ArcGIS Desktop.

Lo chiedo perché ho dei problemi nell'usare i file CSV perché ArcGIS attribuisce tipi di campo errati alle mie colonne e interpreta erroneamente caratteri speciali come á o ê.

Ho letto nel forum Esri che esiste un cosiddetto file schema.ini che definisce in qualche modo i tipi di campo, ad esempio "Col22 = V002 Text", vedi qui http://forums.esri.com/Thread.asp?c=93&f = 1149 & t = 64464

È un po 'divertente perché ho visto spesso questi file .ini sul mio disco ma non mi sono mai chiesto a cosa servissero. È strano che Excel memorizzi tali metadati in un file aggiuntivo poiché altri programmi come R non lo fanno.

Ho già provato a manipolare questo file .ini con scarso successo poiché non ho scoperto come applicare ad esempio il tipo "stringa". Ci sono alcune informazioni sui siti MS, vedere qui: http://msdn.microsoft.com/en-us/library/windows/desktop/ms709353%28v=vs.85%29.aspx ma non sono riuscito a trovare una soluzione .

Inoltre non mi è piaciuta molto l'idea di lavorare con questo file .ini perché è un bel po 'di lavoro definire e digitare tutti i nomi dei campi quando ho diciamo 50 colonne. E questi file .ini potrebbero perdersi, ecc.

Risposte:


16

La mia soluzione rapida è quella di creare la prima riga tutta con valori fittizi, quindi eliminare questa riga / record dopo aver inserito in ArcGIS.

Questa prima riga contiene valori rappresentativi o valori spesso selvaggiamente diversi (ad esempio caratteri alfabetici anche se la colonna contiene numeri che voglio essere un tipo di dati di testo) e con il maggior numero di caratteri necessari per quella riga (poiché i campi di testo tendono a essere troncati) .

I valori di data / ora sono soggetti a errori di importazione (in particolare tra i formati di data predefiniti Canada / USA), quindi il mio lavoro è quello di dividere le parti di data / ora in colonne separate (ad esempio anno, mese, giorno, ora, minuto) e quindi concatenali in un nuovo calcolo sul campo dopo aver inserito con successo in ArcGIS.

È inoltre necessaria la punta delle coordinate geografiche di Jamie : specificare i valori negativi per la longitudine dell'emisfero occidentale e la latitudine dell'emisfero meridionale. E Unicode si occupa di personaggi speciali.

Infine, se un tipo di dati di campo viene ancora interpretato erroneamente dopo aver portato in ArcGIS, aggiungerò un nuovo campo nel tipo di dati corretto e calcolerò / convertiremo i valori dal campo originale, ma di solito la riga / record fittizia si occupa della maggior parte, se no tutti, problemi.


8

Una leggera deviazione dal tradizionale livello CSV-> ArcGIS potrebbe essere l' uso di ogr2ogr per creare il file di forma da CSV PRIMA di caricarlo in ArcMap.

Quando si utilizza OGR , è possibile creare manualmente un file CSVT che descrive i tipi di colonna, in modo simile a ciò che ArcGIS tenta di fare con il file schema.ini.

Questo post di @underdark su Come specificare i tipi di dati delle colonne CSV (per l'uso in QGIS) spiega i dettagli della creazione di un CSVT. Puoi ignorare l'uso di QGIS, in quanto utilizza semplicemente ogr per importare i dati CSV nella sua interfaccia utente.


7

Con ArcGIS 10 è possibile creare la classe di funzionalità e impostare prima tutti i tipi di campo, quindi caricare il file .csv utilizzando ArcCatalog. Basta fare clic con il tasto destro del mouse sulla classe di entità geografiche e selezionare Carica> Carica dati. Quindi segui la finestra di dialogo Caricatore dati semplice per abbinare i campi, ecc. È un caricatore semplice in quanto non ci sono molte opzioni ma funziona per dati ben formattati. Non sono sicuro se questo è nuovo in 10 perché non ho una versione precedente a portata di mano per controllare.


3

Il modo corretto per risolvere questi problemi è utilizzare un file 'schema.ini' come suggerito da @Kirk_Kuykendall nei commenti. Questo è un modo standard di Microsoft per gestire l'input di entrambi CSV in un database in cui il tipo di colonna potrebbe essere interpretato in modo ambiguo.

ArcGIS rispetta questi file 'schema.ini' durante l'importazione da CSV.

Consulta la documentazione di Microsoft all'indirizzo: https://docs.microsoft.com/en-us/sql/odbc/microsoft/schema-ini-file-text-file-driver?view=sql-server-2017

Il file 'schema.ini' deve trovarsi nella stessa posizione del file CSV e, se necessario, può includere configurazioni per più altri file CSV nella stessa posizione.

Un semplice file 'schema.ini' per un singolo file CSV che ha solo una colonna che altrimenti viene letta con il tipo sbagliato potrebbe apparire così:

[SomeFileName.csv]
Col2=SomeFieldName Long

Confermato che funziona in ArcGIS Pro. Stavo usando l'altro lavoro in cui aggiungi una riga di dati in alto con valori che corrispondono al tipo di dati che desideri, che funziona per una volta le cose, ma se la tabella è enorme o hai l'automazione, questa è sicuramente la soluzione migliore. Basta impostarlo e dimenticarlo!
alexGIS,

1

Una soluzione alternativa che ho trovato è aprire il CSV in un editor di testo (ho usato Notepad ++) e salvarlo nuovamente come CSV. Non vedo cambiamenti visibili nel contenuto del file, inclusi caratteri di markup speciali, ma il problema probabilmente è legato al modo in cui Excel formatta i file CSV. Stavo salvando il file in Excel utilizzando le opzioni CSV standard "CSV (delimitato da virgole) (*. Csv)". Forse un diverso formato CSV avrebbe funzionato meglio.

Informazioni aggiuntive: qualcosa di fondamentale deve essere cambiato con il file CSV quando l'ho salvato con notepad ++, perché ora posso modificarlo e salvarlo in Excel ed è ancora importato come numero da arcmap. Non ho idea di cosa sia cambiato però.


-2

Aprire sorprendentemente il file originale (per me .txt) in un editor di testo (UltraEdit per me) e salvarlo come file .csv o .txt ha funzionato. Non ci sono cambiamenti evidenti nel file in UltraEdit, Panda o qualsiasi altro metodo di esame che posso vedere.

Nessuna delle soluzioni alternative, compresa la mia, spiega il motivo fondamentale alla base del perché ArcMap a volte decide di leggere le colonne numeriche come testo.

Quindi, ha funzionato due volte ... quindi la stessa identica procedura ha smesso di funzionare.

Devo rimuovere tutti i join, rimuovere la tabella, chiudere ArcMap, aprire la tabella in un editor di testo, salvare nuovamente la tabella, aprire ArcMap, aggiungere la tabella e ripetere l'unione ... ogni volta che cambio qualcosa nella tavolo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.