Круг в 360 радиан разделен секторами на 30 градусов. Есть датчики, посылающие волны с ограниченным углом. Пример данных, как показано ниже. Это означает, что датчик 1 посылает волну между 243 и 319 градусами, а датчик2 может отправлять волну под двумя углами, от 63 до 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, а датчик 2 должен быть истинным в секторе 60-90 и т. Д.
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)