In [3]:
from pymongo import Connection
import xml.etree.ElementTree as etree
In [4]:
# read the data (osm/xml)
with open("/home/banteng/ganapatih/kelud.osm") as f:
data = etree.parse(f)
In [186]:
# mongo start
c = Connection()
db = c["locs"]
#> db.loc.ensureIndex({"pos": "2d"})
#> db.loc.ensureIndex({timestamp: 1})
In [196]:
# try query the data
db.loc.find_one()
Out[196]:
In [259]:
# I. Mencari pengguna terdekat dengan pelapor
from bson.son import SON
[i for i in db.loc.find({"pos": SON([("$near", [-7.946449, 112.2567981]), ("$maxDistance", 10/111.12)])}).limit(2)][1]
Out[259]:
In [233]:
Image(filename="/home/banteng/Desktop/nearest.png")
Out[233]:
In [266]:
db.loc.find({"pos": {"$within": {"$center": [[-7.946449, 112.2567981], 10/111.12]}}}).count()
Out[266]:
Terlihat ada 10696 pengguna dalam radius 10km dari si pelapor tadi. Masing-masing selanjutnya akan dikirim alert...
Gambar berikut map plot dari 100 pengguna dalam radius 10km dari si pelapor ...
In [289]:
Image(filename="/home/banteng/Desktop/all_near.png")
Out[289]:
In [ ]: