6
我有一些來自gps數據(Lat,Lon)的數據點和我正在考慮的區域的相對shapefile
。所以:Python:指向道路shapefile
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.這兩個點定義邊界框?結果你想得到從每個GPS點映射到相應BBOX的字典(例如)? –
還有更健壯的模塊,比如造型,菲奧娜,ogr來處理幾何! – SIslam
你有任何更新?你可以使熊貓df(邊界)適應我的csv! – SIslam