2
OGRとShapelyをより効率的に使用していますか?[閉まっている]
私は私のPythonコードをより効率的にする方法についていくつかの提案を探しています。通常、効率は重要ではありませんが、現在、150万ポイント以上の米国の場所のテキストファイルを使用しています。指定されたセットアップでは、1つのポイントで操作を実行するのに約5秒かかります。私はこの数字を下げなければなりません。 3つの異なるPython GISパッケージを使用して、ポイントに対していくつかの異なる操作を実行し、新しい区切りテキストファイルを出力しています。 OGRを使用して、郡の境界シェープファイルを読み取り、境界ジオメトリにアクセスします。 Shapelyは、ポイントがこれらの郡のいずれかにあるかどうかを確認します。 1つ以内の場合、Pythonシェープファイルライブラリを使用して、境界.dbfから属性情報を取得します。 次に、両方のソースからの情報をテキストファイルに書き込みます。 私は、非効率性が2〜3層のループを持っていることにあるのではないかと疑っています。これら3つのパッケージのいずれかを使用するのは初めてなので、これら3つのパッケージのいずれかを使用した経験のある人の助けを特に探しています。 import os, csv from shapely.geometry import Point from shapely.geometry import Polygon from shapely.wkb import loads from osgeo import ogr import shapefile pointFile = "C:\\NSF_Stuff\\NLTK_Scripts\\Gazetteer_New\\NationalFile_20110404.txt" shapeFolder = "C:\NSF_Stuff\NLTK_Scripts\Gazetteer_New" #historicBounds = "C:\\NSF_Stuff\\NLTK_Scripts\\Gazetteer_New\\US_Counties_1860s_NAD" historicBounds = "US_Counties_1860s_NAD" writeFile = "C:\\NSF_Stuff\\NLTK_Scripts\\Gazetteer_New\\NewNational_Gazet.txt" #opens the point file, reads it …