GPSのデータ(Lat、Lon)からのデータポイントと、私が検討しているエリアの相対shapefile
があります。Python:道路形状ファイルにポイントを割り当てる
import pandas as pd
import shapefile
sf = shapefile.Reader('roadshape')
df = pd.read_csv('gpsdata.csv')
今df
が、私は分析していたデータが含まれていますが、このようなものです::だから
ID x y
3447 11.400427 48.816806
3448 11.400759 48.816772
3449 11.401424 48.816684
3450 11.401758 48.816631
3451 11.402090 48.816566
3452 11.402422 48.816490
私はそれぞれにそれぞれのshapefile
セグメントを割り当てます。私は次のことをしようとしています。私はバウンディングボックスを検討しており、どのバウンディングボックスでデータがデータバーを指しているのかを見たいと思っています。
dfs = pd.DataFrame()
shapes = sf.shapes()
X =list()
Y=list()
for i in range(0,len(shapes)):
X.append([shapes[i].bbox[0],shapes[i].bbox[2]])
Y.append([shapes[i].bbox[1],shapes[i].bbox[3]])
dfs['X'] = X
dfs['Y'] = Y
ここで、私のポイントがどのbboxであるかをチェックするにはどうすればよいですか? dfs
この
dfs =
X Y
0 [10.9467244189, 10.9704393002] [48.2671975178, 48.2697440003]
1 [11.5138847999, 11.5143541004] [48.6497096997, 48.6515363002]
2 [11.4618209998, 11.4620896004] [48.9305448001, 48.9307776004]
3 [10.6196591004, 10.6207268996] [48.8635958001, 48.8665684003]
4 [10.652098, 10.6559025999] [48.8005320998, 48.8042877999]
5 [11.1863882997, 11.1884544004] [48.3726685999, 48.3738253996]
6 [11.1580075998, 11.1593822] [48.3785226999, 48.3791247996]
7 [11.1077987, 11.1112508996] [48.3829125003, 48.3830440999]
8 [11.0842697004, 11.0886483996] [48.3840543003, 48.3879626001]
9 [11.0910959001, 11.0926532003] [48.3903297003, 48.3916850002]
10 [11.4766434001, 11.4822778002] [49.0389071001, 49.0399456003]
11 [11.7037148998, 11.7073818] [48.6927748996, 48.6961230001]
12 [11.7767894997, 11.7770049998] [48.6279809001, 48.6279908997]
形状[i] .bbox [0]が一番左のX座標、bbox [1] - 上Y座標、bbox [2] - 右X、bbox [3] - 下Yです。これら2つポイントはバウンディングボックスを定義しますか?結果として、各GPSポイントから対応するBBOXにマップする辞書(たとえば)を取得したいのですか? –
幾何学を扱うために、丈夫な、フィオナ、ogrのようなよりロバストなモジュールがあります! – SIslam
更新情報あなたは私のCSVにパンダdf(境界)を適応させることができます! – SIslam