def get_weather_by_day(date, db, collection, ip, port): # подключаемся к БД db = mc.get_mongodb(db=db, collection=collection, ip=ip, port=port) # задаем начальную и конечную дату # а все вместе смещено на @offset дней from_date = date.replace(hour=0, minute=0, second=0) # конечная дата смещена на @step дней to_date = date.replace(hour=0, minute=0, second=59) # ищем станции рядом query = { "date": { "$gte": from_date, "$lte": to_date }, "station.country": "RS" } res = db.find(query) count = 0 weather = [] # проходимся по ответу for doc in res: count += 1 st = Stantion() weather.append(st.fromMongoISDFormat(doc)) print(count) # возвращаем станции return weather
def get_weather_on_station(st, offset=0, step=100): # подключаемся к БД db = mc.get_mongodb( db='srcdata', collection="meteoreport", ip='localhost', port=27017, ) # задаем начальную и конечную дату # а все вместе смещено на @offset дней from_date = dt(1995, 1, 1, 1) + timedelta(days=offset) # конечная дата смещена на @step дней to_date = from_date + timedelta(days=step) # ищем станции рядом query = {"date": {'$gte': from_date, '$lt': to_date}, "stantion_id": st} print query # делаем запрос в базу res = db.find(query) weather = [] count = 0 # проходимся по ответу for doc in res: count += 1 weather.append(doc) print count # возвращаем станции return weather
def get_stations_on_R(lat, lon, R=2, data_type=101): # подключаемся к БД db = mc.get_mongodb( db='srcdata', collection="stations", ip='localhost', port=27017, ) # ищем станции рядом query = { "location.coordinates": { "$within": { "$center": [[lat, lon], R] } }, "data_type": data_type } res = db.find(query) count = 0 stations = [] # проходимся по ответу for doc in res: count += 1 stations.append(doc['station']) # возвращаем станции return stations
def get_weather_by_day( date ): # подключаемся к БД db = mc.get_mongodb(db='meteodb', collection="meteoreport", ip='10.10.11.120', port=27017,) # задаем начальную и конечную дату # а все вместе смещено на @offset дней from_date = date.replace( hour=0,minute=0,second=0 ) # конечная дата смещена на @step дней to_date = date.replace( hour=23,minute=59,second=59 ) # print from_date # print to_date # ищем станции рядом query = { "station_type": 2, "dt": { "$gte":from_date , "$lte":to_date }, "level":0, "level_type":1, "data_type" : 48, # kAerodrome = 48, } print query res = db.find(query) count = 0 weather = [] # проходимся по ответу for doc in res: count+=1 st = Stantion() weather.append( st.fromMongoFormat(doc) ) # возвращаем станции return weather
def get_weather_on_station(st, start_date, end_date): # подключаемся к БД db = mc.get_mongodb( db='srcdata', collection="meteoisd", ip='localhost', port=27017, ) # задаем начальную и конечную дату # а все вместе смещено на @offset дней # print(timedelta( days=offset )) # from_date = dt(1995, 1, 1, 1) + timedelta( days=offset ) # конечная дата смещена на @step дней # to_date = from_date + timedelta( days=step ) # ищем станции рядом query = {"dt": {'$gte': start_date, '$lt': end_date}, "st": st} print(query) # делаем запрос в базу res = db.find(query) weather = [] count = 0 # проходимся по ответу for doc in res: count += 1 item = Stantion() item.fromMongoISDFormat(doc) weather.append(item) # возвращаем станции return weather
def get_query(db, collection, ip, port, query={}): # подключаемся к БД db = mc.get_mongodb(db=db, collection=collection, ip=ip, port=port) print(query) # делаем запрос в базу res = db.find(query) return res