2016-10-05 6 views
0

かなり大きなCSVファイル(63000行と約40列)を作成しました。これをESRIシェイプファイルと結合したいと思います。 私はArcPyを使用しましたが、全体のプロセスは30回かかります!分。元の(小さな)CSVファイルで結合する場合は、シェイプファイルと結合してからArcPyで計算し、新しいフィールドを継続して追加し、20分かかるものを計算します。私は、より高速なソリューションを探していて、PySHPやDBFPyなどの他のPythonモジュールがあることがわかりましたが、テーブルを結合する方法は見つけられていませんでした。DBFテーブルArcpyを使用せずに参加しますか?

私の目標は、できる限りArcPyから離れ、Pythonだけを使用することが望ましいため、PostgreSQLやalikesも使用しないことです。

誰にも解決策がありますか?どうもありがとう!

+0

arcpyにFeatureClassToNumPyArrayを使用してnumpyの配列にシェープファイルをエクスポートするにとどまっています。あなたのテーブルを数多くの配列に読み込みます(多くのオプション)。numpyの関数が取り込まれます。そこにはテーブルのデータを結合する機能があります。 (numpy.lib.recfunctionsをrfn ....のようにインポートして、関数を見つけるためにdir(rfn)を実行してください) – NaN

+0

@NaN:必要な詳細についてもっと答えてください。 –

+0

参加についての詳細や現在行っている操作はありますか? –

答えて

0

ないまさに私の問題のためprogrammatical解決策が、実用的な1:

私のシェープファイルは、機能の属性のみが変更されます、常に静的です。だから私は元のshapefile(末尾の.shp.shx.prjの基本ファイルのみ)を出力フォルダにコピーし、それを私が望む名前に変更します。 次に、すべての計算でCSVファイルを作成し、DBFに変換して、新しいシェイプファイルの名前を出力フォルダに保存します。 ArcGISはシェープファイルを自分のDBFファイルとともにロードするので、テーブル結合を一切行う必要はありません。

私のプログラムはわずか50秒で実行されます!

私はまだテーブルジョインの問題のためのより多くのソリューションに興味があります。多分、シェイプファイルが常に静的ではないところで、この問題が再び発生するでしょう。私は本当にナンのソリューションを理解していなかった、私はPythonで、「高度な初心者」レベル:)

乾杯

関連する問題