タグ付けされた質問 「rtree」

3
RTreeでの空間インデックスの使用を理解していますか?
RTreeでの空間インデックスの使用を理解できません。 例:300個のバッファーポイントがあり、各バッファーの交差領域とポリゴンシェープファイルを知る必要があります。ポリゴンシェープファイルには、20,000を超えるポリゴンがあります。プロセスを高速化するために空間インデックスを使用することが提案されました。 SO ...ポリゴンシェープファイルの空間インデックスを作成する場合、何らかの方法でファイルに「アタッチ」されますか、それともインデックスはスタンドアロンですか?つまり、作成後、ポリゴンファイルで交差関数を実行するだけで、より高速な結果を得ることができますか?交差点は空間インデックスがあることを「認識」し、何をすべきかを知っていますか?または、インデックスで実行してから、FIDなどを介して元のポリゴンファイルにそれらの結果を関連付ける必要がありますか? RTreeのドキュメントはあまり役に立ちません(おそらくプログラミングを学んでいるだけだからです)。手動で作成されたポイントを読み取り、それから他の手動で作成されたポイントに対してクエリを実行して、ウィンドウ内に含まれるIDを返すことにより、インデックスを作成する方法を示します。理にかなっています。しかし、インデックスの元のファイルにどのように関連するかについては説明していません。 私はそれがこのような何かに行かなければならないと考えています: ポリゴンシェープファイルから各ポリゴンフィーチャのbboxを取得し、空間インデックスに配置して、シェープファイル内のIDと同じIDを与えます。 そのインデックスをクエリして、交差するIDを取得します。 次に、インデックスのクエリによって特定された元のシェープファイル内のフィーチャのみで交差を再実行します(この最後の部分をどのように行うかはわかりません)。 正しいアイデアはありますか?私は何かが欠けていますか? 現在、このコードを、1つのポイントフィーチャのみを含む1つのポイントシェープファイルと、20,000個以上のポリゴンフィーチャを含む1つのポリゴンシェープファイルで動作するようにしています。 Fionaを使用してシェープファイルをインポートし、RTreeを使用して空間インデックスを追加し、Shapelyを使用して交差を試みています。 私のテストコードは次のようになります。 #point shapefile representing location of desired focal statistic traps = fiona.open('single_pt_speed_test.shp', 'r') #polygon shapefile representing land cover of interest gl = MultiPolygon([shape(pol['geometry']) for pol in fiona.open('class3_aa.shp', 'r')]) #search area areaKM2 = 20 #create empty spatial index idx …

3
ジオパンダの空間結合が非常に遅い
以下のコードを使用して、数百万のGPSポイントの国(および場合によっては州)を見つけています。現在、コードは1ポイントあたり約1秒かかりますが、これは非常に遅いです。シェープファイルは6 MBです。 ジオパンダは空間結合にrtreeを使用しており、信じられないほど効率的であると読みましたが、これはここでは機能しないようです。私は何を間違えていますか?私は毎秒1000ポイントかそこらを望んでいました。 シェープファイルとcsvはここからダウンロードできます(5MB):https ://www.dropbox.com/s/gdkxtpqupj0sidm/SpatialJoin.zip ? dl=0 import pandas as pd import geopandas as gpd from geopandas import GeoDataFrame, read_file from geopandas.tools import sjoin from shapely.geometry import Point, mapping,shape import time #parameters shapefile="K:/.../Shapefiles/Used/World.shp" df=pd.read_csv("K:/.../output2.csv",index_col=None,nrows=20)# Limit to 20 rows for testing if __name__=="__main__": start=time.time() df['geometry'] = df.apply(lambda z: Point(z.Longitude, z.Latitude), axis=1) …

2
Windows 64ビットへのrtreeのインストール
私は64ビットのwindows10を使用していますが、os.nameは 'nt'です。pipを使用してインストールしましたが、spatialindex_c.dllに関する問題があります File "C:\Users\Bachir\AppData\Local\Temp\pip-build-td64lrth\rtree\rtree\core.py", line 101, in <module> raise OSError("could not find or load spatialindex_c.dll") OSError: could not find or load spatialindex_c.dll rtree-0.8.2をダウンロードしてからpython setup.py installを実行すると、同じメッセージが表示されます PS C:\Users\Bachir\documents\Python Scripts\Rtree-0.8.2> python setup.py install Traceback (most recent call last): File "setup.py", line 4, in <module> import rtree File "C:\Users\Bachir\documents\Python Scripts\Rtree-0.8.2\rtree\__init__.py", line 1, in …
12 rtree 

3
RTree空間インデックスの結果、交差計算が速くならない
多くのShapely LineStringと交差するShapely Polygon / MultiPolygonを決定するために使用しているコードがあります。この質問への回答を通じて、コードは次のようになっています。 import fiona from shapely.geometry import LineString, Polygon, MultiPolygon, shape # Open each layer poly_layer = fiona.open('polygon_layer.shp') line_layer = fiona.open('line_layer.shp') # Convert to lists of shapely geometries the_lines = [shape(line['geometry']) for line in line_layer] the_polygons = [(poly['properties']['GEOID'], shape(poly['geometry'])) for poly in poly_layer] # Check for Polygons/MultiPolygons …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.