Mempersiapkan file CSV untuk digunakan di ArcGIS Desktop?

16

Bagaimana cara menyiapkan file CSV untuk digunakan di ArcGIS Desktop.

Saya bertanya karena saya memiliki beberapa masalah dalam menggunakan file CSV karena ArcGIS mengaitkan tipe bidang yang salah dengan kolom saya dan juga salah mengartikan karakter khusus seperti á atau ê.

Saya telah membaca di forum Esri bahwa ada yang disebut file schema.ini yang entah bagaimana mendefinisikan jenis bidang misalnya "Col22 = V002 Teks" lihat di sini http://forums.esri.com/Thread.asp?c=93&f = 1149 & t = 64464

Itu agak lucu karena saya sering melihat file-file .ini pada disk saya tetapi tidak pernah benar-benar bertanya-tanya apa gunanya. Agak aneh bahwa Excel menyimpan metadata tersebut dalam file tambahan karena program lain seperti R tidak melakukannya.

Saya sudah mencoba untuk memanipulasi file .ini ini dengan sedikit keberhasilan karena saya tidak mengetahui bagaimana menerapkan misalnya "string" jenis. Ada beberapa informasi di situs MS, lihat di sini: http://msdn.microsoft.com/en-us/library/windows/desktop/ms709353%28v=vs.85%29.aspx tetapi saya tidak dapat menemukan solusi .

Juga saya tidak terlalu suka ide untuk bekerja dengan file .ini ini karena cukup banyak pekerjaan untuk mendefinisikan dan mengetikkan semua nama field ketika saya katakanlah 50 kolom. Dan file .ini ini mungkin hilang, dll.

Dspanes
sumber

Jawaban:

16

Perbaikan cepat saya adalah membuat baris pertama semua dengan nilai dummy, dan kemudian menghapus baris / catatan ini setelah masuk ke dalam ArcGIS.

Baris pertama ini berisi nilai representatif atau sering kali nilai yang sangat berbeda (mis. Karakter alfabet meskipun kolom berisi angka yang saya inginkan sebagai tipe data teks) dan dengan jumlah karakter terbesar yang diperlukan untuk baris itu (karena bidang teks cenderung terpotong) .

Nilai tanggal / waktu dapat mengalami kesalahan impor (terutama antara format tanggal default Kanada / AS) sehingga pekerjaan saya adalah membagi bagian tanggal / waktu menjadi kolom terpisah (mis. Tahun, bulan, hari, jam, menit), lalu menyatukan ini dalam perhitungan lapangan baru setelah berhasil masuk ke dalam ArcGIS.

Tip koordinat geografis dari Jamie juga diperlukan - tentukan nilai negatif untuk bujur belahan barat dan lintang belahan selatan. Dan unicode menangani karakter khusus.

Terakhir, jika tipe data bidang masih disalahtafsirkan setelah membawa ke ArcGIS, saya akan menambahkan bidang baru dalam tipe data yang benar dan menghitung / mengonversi nilai dari bidang asli, tetapi biasanya baris / catatan dummy menangani sebagian besar, jika tidak semua, masalah.

ccn
sumber
8

Sedikit perubahan dari CSV-> ArcGIS tradisional bisa menggunakan ogr2ogr untuk membuat shapefile Anda dari CSV SEBELUM memuatnya ke dalam ArcMap.

Saat menggunakan OGR , Anda bisa secara manual membuat file CSVT yang menjelaskan tipe kolom Anda, mirip dengan apa yang ArcGIS coba lakukan dengan file schema.ini.

Posting ini oleh @underdark tentang Cara Menentukan Jenis Data dari Kolom CSV (untuk digunakan dalam QGIS) menjelaskan detail pembuatan CSVT. Anda dapat mengabaikan penggunaan QGIS, karena hanya menggunakan ogr untuk mengimpor data CSV ke UI-nya.

RyanKDalton-OffTheGridMaps
sumber
7

Dengan ArcGIS 10 Anda dapat membuat kelas fitur dan mengatur semua jenis bidang terlebih dahulu, lalu memuat file .csv menggunakan ArcCatalog. Cukup klik kanan kelas fitur dan pilih Load> Load Data. Kemudian ikuti dialog Simple Data Loader untuk mencocokkan bidang, dll. Ini adalah loader sederhana karena tidak ada banyak pilihan tetapi berfungsi untuk data yang diformat dengan baik. Saya tidak yakin apakah ini baru ke 10 karena saya tidak memiliki versi yang lebih mudah untuk diperiksa.

Wawrzonek yang kaya
sumber
3

Cara yang benar untuk menyelesaikan masalah ini adalah dengan menggunakan file 'schema.ini' seperti yang disarankan oleh @Kirk_Kuykendall dalam komentar. Ini adalah cara standar Microsoft untuk menangani input dari CSV ke dalam basis data di mana jenis kolom dapat ditafsirkan secara ambigu.

ArcGIS menghargai file 'schema.ini' ini ketika mengimpor dari CSV.

Lihat dokumentasi Microsoft di: https://docs.microsoft.com/en-us/sql/odbc/microsoft/schema-ini-file-text-file-driver?view=sql-server-2017

File 'schema.ini' harus berada di lokasi yang sama dengan file CSV Anda dan dapat menyertakan konfigurasi untuk beberapa file CSV lainnya di lokasi yang sama jika Anda memerlukannya.

File 'schema.ini' sederhana untuk satu file CSV yang hanya memiliki satu kolom yang jika tidak dibaca dengan tipe yang salah dapat terlihat seperti ini:

[SomeFileName.csv]
Col2=SomeFieldName Long
Anak pantai
sumber
Mengonfirmasi ini berfungsi di ArcGIS Pro. Saya menggunakan pekerjaan lain di sekitar di mana Anda menambahkan baris data teratas dengan nilai-nilai yang cocok dengan tipe data yang Anda inginkan, yang berfungsi untuk hal-hal satu kali, tetapi jika tabel sangat besar atau Anda memiliki otomatisasi, ini adalah solusi terbaik pasti. Anda hanya mengaturnya dan lupakan saja!
alexGIS
1

Solusi yang saya temukan adalah membuka CSV di editor teks (saya menggunakan notepad ++) dan menyimpan sebagai CSV lagi. Saya tidak melihat perubahan apa pun yang terlihat dalam konten file, termasuk karakter markup khusus, tetapi masalahnya mungkin terkait dengan bagaimana Excel memformat file CSV. Saya menyimpan file di Excel menggunakan opsi CSV standar 'CSV (comma-delimited) (*. Csv)'. Mungkin format CSV yang berbeda akan bekerja lebih baik.

Info tambahan: Sesuatu yang mendasar pasti telah berubah dengan file CSV ketika saya menyimpannya dengan notepad ++, karena sekarang saya dapat mengedit dan menyimpannya di excel dan masih diimpor sebagai numerik oleh arcmap. Saya tidak tahu apa yang berubah.

DrPo
sumber
-2

Secara mengejutkan membuka file asli (untuk saya .txt) dalam editor teks (UltraEdit untuk saya) dan menyimpannya sebagai .csv atau .txt berfungsi. Tidak ada perubahan nyata pada file di UltraEdit, panda, atau metode pemeriksaan lain yang bisa saya lihat.

Tidak ada satu pun dari penyelesaiannya, termasuk saya sendiri, yang menjelaskan alasan mendasar mengapa ArcMap terkadang memutuskan untuk membaca kolom angka sebagai teks.

Jadi, ini berhasil dua kali ... lalu prosedur yang sama persis berhenti bekerja.

Saya harus menghapus semua gabungan, menghapus tabel, mematikan ArcMap, membuka tabel dalam editor teks, menyimpan kembali tabel, membuka ArcMap, menambahkan tabel, dan mengulangi bergabung ... setiap kali saya mengubah apa pun di meja.

Wesley Kitlasten
sumber