ArcGIS Desktopで使用するCSVファイルを準備していますか?


16

ArcGIS Desktopで使用するCSVファイルを準備するにはどうすればよいですか。

ArcGISは間違ったフィールドタイプを列に割り当て、áやêなどの特殊文字を誤って解釈するため、CSVファイルの使用に問題があるため、お願いします。

Esriフォーラムで、「Col22 = V002 Text」などのフィールドタイプを何らかの形で定義するいわゆるschema.iniファイルがあることを読みました。http://forums.esri.com/Thread.asp?c = 93&fを参照してください= 1149&t = 64464

ディスク上でこれらの.iniファイルを頻繁に見たことがありますが、実際には何が良いのか疑問に思ったことがないので、それはちょっとおかしいです。Rのような他のプログラムはそうしないので、Excelがそのようなメタデータを追加のファイルに保存するのはちょっと変です。

「文字列」型などの適用方法がわからなかったため、すでにこの.iniファイルを操作しようとしてほとんど成功しませんでした。MSサイトにはいくつかの情報があります。http//msdn.microsoft.com/en-us/library/windows/desktop/ms709353%28v=vs.85%29.aspxを参照してください。しかし、解決策が見つかりませんでした。 。

また、この.iniファイルで作業するというアイデアはあまり好きではありませんでした。50列とすると、すべてのフィールド名を定義して入力するのはかなりの作業です。そして、これらの.iniファイルは失われる可能性があります。

回答:


16

私の簡単な修正方法は、すべてダミー値で最初の行を作成し、ArcGISに読み込んだ後にこの行/レコードを削除することです。

この最初の行には、代表的な値またはしばしば大きく異なる値(たとえば、列にテキストデータ型にしたい数字が含まれていてもアルファベット文字)とその行に必要な最大数の文字が含まれます(テキストフィールドが切り捨てられる傾向があるため) 。

日付/時刻の値はインポートエラーの影響を受けやすいため(特にカナダ/米国のデフォルトの日付形式間)、私の回避策は日付/時刻の部分を別々の列(年、月、日、時間、分など)に分割することです。 ArcGISに正常に取り込まれた後、これらを新しいフィールド計算で連結します。

Jamieからの地理座標チップも必要です。西半球の経度と南半球の緯度に負の値を指定してください。また、Unicodeは特殊文字を処理します。

最後に、ArcGISに持ち込んだ後でもフィールドデータタイプが誤って解釈される場合、正しいデータタイプで新しいフィールドを追加し、元のフィールドから値を計算/変換しますが、通常はダミーの行/レコードがほとんどを処理しますすべて、問題。


8

伝統的なCSV-からのわずかな逸脱が> ArcGISの層は、することができCSVからあなたのシェープファイルを作成するためにogr2ogr使用 のArcMapにロードします。

OGRを使用する場合、ArcGISがschema.iniファイルで実行しようとしているものと同様に、列タイプを記述するCSVTファイルを手動で作成できます。

CSVカラムのデータ型を指定する方法(QGISで使用)に関する@underdarkによるこの投稿では、CSVTの作成の詳細について説明しています。QGISはogrを使用してCSVデータをUIにインポートするだけなので、無視できます。


7

ArcGIS 10では、フィーチャクラスを作成し、すべてのフィールドタイプを最初に設定してから、ArcCatalogを使用して.csvファイルをロードできます。フィーチャクラスを右クリックし、[ロード]> [データのロード]を選択するだけです。次に、Simple Data Loaderダイアログに従ってフィールドなどを照合します。これは、多くのオプションはありませんが、適切にフォーマットされたデータに対して機能するという点でシンプルなローダーです。確認するのに便利な以前のバージョンがないため、これが10の新機能かどうかはわかりません。


3

これらの問題を解決する正しい方法は、コメントで@Kirk_Kuykendallによって提案された「schema.ini」ファイルを使用することです。これは、CSVからデータベースへの入力を処理するマイクロソフトの標準的な方法であり、列タイプがあいまいに解釈される可能性があります。

ArcGISは、CSVからインポートするときにこれらの「schema.ini」ファイルを尊重します。

Microsoftのドキュメントを参照してください:https : //docs.microsoft.com/en-us/sql/odbc/microsoft/schema-ini-file-text-file-driver?view=sql-server-2017

「schema.ini」ファイルはCSVファイルと同じ場所にある必要があり、必要に応じて同じ場所にある他の複数のCSVファイルの構成を含めることができます。

間違ったタイプで読み取られる列が1つしかない単一のCSVファイルの単純な「schema.ini」ファイルは、次のようになります。

[SomeFileName.csv]
Col2=SomeFieldName Long

これがArcGIS Proで機能することを確認しました。私はあなたが望むデータ型に一致する値を持つトップデータ行を追加するという別の作業を使用していましたが、これは一時的に動作しますが、テーブルが巨大であるか自動化されている場合、これは確かに最適なソリューションです。設定するだけで忘れてしまいます!
alexGIS

1

私が見つけた回避策は、CSVをテキストエディタで開き(notepad ++を使用)、もう一度CSVとして保存することです。特別なマークアップ文字を含む、ファイルの内容に目に見える変化は見られませんが、問題はおそらくExcelがCSVファイルをフォーマットする方法に関連しています。標準のCSVオプション「CSV(カンマ区切り)(*。csv)」を使用して、Excelでファイルを保存していました。おそらく、別のCSV形式の方が適切です。

追加情報:CSVファイルをnotepad ++で保存したときに、CSVファイルの基本的な部分が変更されている必要があります。これは、Excelで編集および保存でき、arcmapによって数値としてインポートされるためです。しかし、何が変わったのか見当もつかない。


-2

驚いたことに、テキストエディター(UltraEdit for me)で元のファイル(for me .txt)を開き、.csvまたは.txtとして保存するとうまくいきました。UltraEdit、pandas、または私が見ることができるその他の検査方法では、ファイルに目立った変更はありません。

私自身を含む回避策はどれも、ArcMapが数値列をテキストとして読み取ることを時々決定する根本的な根本的な理由を説明していません。

だから、これは2回働いた...そしてまったく同じ手順が機能しなくなった

すべての結合を削除し、テーブルを削除し、ArcMapをシャットダウンし、テキストエディターでテーブルを開き、テーブルを再保存し、ArcMapを開いて、テーブルを追加し、結合をやり直すたびに...テーブル。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.