【发布时间】:2019-06-25 21:00:12
【问题描述】:
一个 360 弧度的圆由 30 度扇区分隔。有传感器以有限的角度发送波。样本数据如下。就是说sensor 1发243到319度的波,sensor2可以发243到139和241到305两个角度的波。
sensordata = pd.DataFrame({'sensor':['sensor1','sensor2','sensor2'], 'lower_bound':[243,63,241],'upper_bound':[319,139,305]})
sensor lower_bound upper_bound
0 sensor1 243 319
1 sensor2 63 139
2 sensor2 241 305
.......
我想要的是在每个扇区中检测哪个传感器可以发送波,即传感器的波与该扇区相交。比如0-30、30-60扇区没有sensor,60-90扇区应该sensor2为真,以此类推。
sector 0, none
sector 30, none
sector 60, sensor2
sector 90, sensor2
......
sector 210, none
sector 240, sensor1 and sensor2,
......
我试过下面的代码。它总是错过第一个正确的扇区,例如,在扇区 60-90 中,sensor2 应该为 True,但是下面的代码没有给出该扇区的任何信息。有什么建议可以使它正确吗?谢谢。
for sector in np.arange(0, 360, 30):
affected_sensor = sensordata[sensordata.lower_bound <= sector]
affected_sensor = affected_sensor[affected_sensor.upper_bound >= sector]
print(sector, affected_sensor)
【问题讨论】:
标签: python geometry range overlap