CSV dosyalarını ArcGIS Desktop'ta kullanıma mı hazırlıyorsunuz?


16

CSV dosyalarını ArcGIS Desktop'ta kullanmak için nasıl hazırlarım.

Soruyorum çünkü CSG dosyalarını kullanırken bazı sorunlarım var çünkü ArcGIS yanlış alan türlerini sütunlarıma atfediyor ve ayrıca á veya ê gibi özel karakterleri yanlış yorumluyor.

Esri forumunda "Col22 = V002 Metin" alan türlerini bir şekilde tanımlayan sözde schema.ini dosyası olduğunu okudum buraya bakın http://forums.esri.com/Thread.asp?c=93&f = 1149 & t = 64.464

Bu biraz komik çünkü sık sık bu .ini dosyalarını diskimde gördüm ama aslında ne için iyi olduklarını merak etmedim. R gibi diğer programlar bunu yapmadığından, Excel'in bu tür meta verileri ekstra bir dosyada saklaması tuhaftır.

Ben zaten "dize" türü uygulamak nasıl bulamadık beri zaten bu .ini dosyasını az bir başarıyla manipüle etmeye çalıştım. MS siteleri hakkında bazı bilgiler var, buraya bakın: http://msdn.microsoft.com/en-us/library/windows/desktop/ms709353%28v=vs.85%29.aspx ama bir çözüm bulamadım .

Ayrıca, bu .ini dosyasıyla çalışma fikrini gerçekten sevmedim çünkü 50 sütun diyelim. Ve bu .ini dosyaları kaybolabilir, vb.

Yanıtlar:


16

Hızlı düzeltmem, kukla değerlerle ilk satırı oluşturmak ve ardından ArcGIS'e getirdikten sonra bu satırı / kaydı silmek.

Bu ilk satır, temsili değerler veya genellikle çılgınca farklı değerler içerir (örneğin, sütun metin veri türü olmasını istediğim sayılar içeriyor olsa bile alfabetik karakterler) ve bu satır için gereken en fazla sayıda karakterle (çünkü metin alanları kesilme eğilimi gösterir) .

Tarih / saat değerleri içe aktarma hatalarına (özellikle Kanada / ABD varsayılan tarih biçimleri arasında) tabidir, bu nedenle geçici çözümüm tarih / saat bölümlerini ayrı sütunlara (örn. Yıl, ay, gün, saat, dakika) ve sonra ArcGIS'e başarıyla dahil ettikten sonra bunları yeni bir alan hesaplamasında birleştirin.

Jamie'nin coğrafi koordinatları da gereklidir - batı yarımküre boylamı ve güney yarımküre enlemi için negatif değerler belirtin. Ve unicode özel karakterlerle ilgilenir.

Son olarak, bir alan veri türü ArcGIS'e getirildikten sonra hala yanlış yorumlanırsa, doğru veri türüne yeni bir alan ekleyeceğim ve orijinal alandaki değerleri hesaplayacağım / dönüştüreceğim, ancak genellikle kukla satır / kayıt en fazla ilgilenir, değilse tüm sorunlar.


8

Geleneksel CSV-> ArcGIS katmanından hafif bir kalkış, ArcMap'e yüklemeden ÖNCE şekil dosyanızı CSV'den oluşturmak için ogr2ogr kullanmak olabilir .

OGR kullanırken , ArcGIS'in schema.ini dosyasıyla yapmaya çalıştığı gibi, sütun türlerinizi açıklayan bir CSVT dosyasını el ile oluşturabilirsiniz.

@Underdark tarafından CSV Sütunlarının Veri Türlerinin Belirtilmesi (QGIS'te kullanım için) hakkındaki bu yazı, bir CSVT oluşturma ayrıntılarını açıklar. CSV verilerini kullanıcı arayüzüne aktarmak için yalnızca ogr kullandığından QGIS kullanımını göz ardı edebilirsiniz.


7

ArcGIS 10 ile özellik sınıfını oluşturabilir ve önce tüm alan türlerini ayarlayabilir, ardından ArcCatalog'u kullanarak .csv dosyasını yükleyebilirsiniz. Özellik sınıfına sağ tıklayın ve Yükle> Veri Yükle'yi seçin. Daha sonra alanları, vb. Eşleştirmek için Basit Veri Yükleyici iletişim kutusunu takip edin. Çok fazla seçenek olmadığı için basit bir yükleyicidir, ancak iyi biçimlendirilmiş veriler için çalışır. Kontrol etmek için kullanışlı bir önceki sürümüm olmadığından bunun 10 için yeni olup olmadığından emin değilim.


3

Bu sorunları çözmenin doğru yolu, yorumlarda @Kirk_Kuykendall tarafından önerildiği gibi bir 'schema.ini' dosyası kullanmaktır. Bu, CSV'nin girişini, sütun türünün belirsiz bir şekilde yorumlanabileceği bir veritabanına aktarmanın Microsoft standart bir yoludur.

ArcGIS, CSV'den içe aktarırken bu 'schema.ini' dosyalarına saygı duyar.

Microsoft'un belgelerine bakın: https://docs.microsoft.com/en-us/sql/odbc/microsoft/schema-ini-file-text-file-driver?view=sql-server-2017

'Schema.ini' dosyasının CSV dosyanızla aynı konumda olması gerekir ve gerekiyorsa aynı konumda birden çok CSV dosyası için yapılandırmalar içerebilir.

Yalnızca yanlış türde okunan tek bir sütunu olan tek bir CSV dosyası için basit bir 'schema.ini' dosyası şöyle görünebilir:

[SomeFileName.csv]
Col2=SomeFieldName Long

Bunun ArcGIS Pro'da çalıştığını doğruladı. İstediğiniz veri tipiyle eşleşen değerlere sahip bir top veri satırı eklediğiniz diğer işleri kullanıyordum, bu da bir kerelik işler için çalışıyor, ancak tablo çok büyükse veya otomasyona sahipseniz, bu en iyi çözümdür. Siz sadece ayarlayın ve unutun!
alexGIS

1

Bulduğum bir çözüm, CSV'yi bir metin düzenleyicisinde (notepad ++ kullandım) açmak ve tekrar CSV olarak kaydetmek. Özel biçimlendirme karakterleri de dahil olmak üzere dosya içeriğinde görünür bir değişiklik görmüyorum, ancak sorun büyük olasılıkla Excel'in CSV dosyalarını nasıl biçimlendirdiği ile ilgili. Dosyayı standart CSV seçeneklerini 'CSV (virgülle ayrılmış) (*. Csv)' kullanarak Excel'e kaydediyordum. Belki de farklı bir CSV biçimi daha iyi çalışır.

Ek bilgi: Notepad ++ ile kaydettiğimde CSV dosyası ile temel bir şey değişmiş olmalı, çünkü şimdi excel'de düzenleyebilir ve kaydedebilirim ve hala arcmap tarafından sayısal olarak içe aktarılır. Değişen hakkında hiçbir fikrim yok.


-2

Şaşırtıcı bir şekilde orijinal dosyayı (benim için .txt) bir metin düzenleyicide (benim için UltraEdit) açma ve .csv veya .txt olarak kaydetme çalıştı. UltraEdit, pandalar veya görebildiğim herhangi bir inceleme yönteminde dosyada belirgin bir değişiklik yok.

Benimkini de içeren geçici çözümlerin hiçbiri ArcMap'in bazen sayı sütunlarını metin olarak okumaya karar vermesinin altında yatan temel nedeni açıklamıyor.

Yani, bu iki kez çalıştı ... sonra aynı prosedürün çalışması durdu.

Tüm birleştirmeleri kaldırmam, tabloyu kaldırmam, ArcMap'i kapatmam, tabloyu bir metin düzenleyicide açmam, tabloyu yeniden kaydetmem, ArcMap'i açmam, tabloyu eklemem ve birleştirmeyi yeniden yapmam gerekiyor ... tablo.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.