2016-10-05 68 views
0

我已經創建了一個相當大的CSV文件(63000行,大約40列),我想用ESRI Shapefile來加入它。 我已經使用ArcPy,但整個過程需要30!分鐘。如果我使用原始(小)CSV文件進行連接,請將其與Shapefile結合起來,然後使用ArcPy進行計算,並不斷添加新字段並計算20分鐘內所需的內容。我正在尋找更快的解決方案,並發現還有其他Python模塊,如PySHP或DBFPy,但我還沒有找到任何方法來連接表,希望可以更快。DBF表加入不使用Arcpy?

我的目標是儘可能遠離ArcPy,最好只使用Python,所以最好不要使用PostgreSQL。

有沒有人有解決方案?非常感謝!

+0

shape文件導出到ArcPy中使用FeatureClassToNumPyArray一個numpy的陣列。將你的表讀入一個numpy數組(很多選項)Import numpy的recfunctions ...有能力加入列表數據。 (導入numpy.lib.recfunctions爲rfn ....然後做一個目錄(rfn)來查找函數) – NaN

+0

@NaN:請讓這個答案更多的細節需要。 –

+0

你能否介紹一下加入的細節以及你正在做什麼樣的操作? –

回答

0

不完全是我的問題的程序化解決方案,但實際的一個:

我shape文件始終是靜態的,僅特徵的屬性會發生變化。所以我複製我的原始形狀文件(只有結尾.shp,.shx,.prj)的基本文件到我的輸出文件夾,並將其重命名爲我想要的名稱。 然後我創建我的CSV文件並進行所有計算並將其轉換爲DBF並將其與我的新shapefile的名稱一起保存到輸出文件夾中。 ArcGIS現在將加載shapefile以及我自己的DBF文件,而且我根本不需要做任何表格加入!

現在我的程序只用了50秒!

我仍然對錶連接問題更多的解決方案感興趣,也許我會在將來再次遇到這個問題,shapefile不總是靜態的。我真的不明白楠的解決方案,我仍然在Python的「高級初學者」水平:)

乾杯