def update_db(collection): """ :return: length of DB entries after execution """ app = init_flask(__name__) db = SQLAlchemy(app) united = Marker.query.filter(Marker.provider_code == 2) for accident in united: if not accident.weather: accident.weather = process_weather_data(collection, accident.latitude, accident.longitude) db.session.commit()
def update_db(collection): """ :return: length of DB entries after execution """ app = init_flask(__name__) db = SQLAlchemy(app) united = Marker.query.filter(Marker.provider_code == 2) for accident in united: if not accident.weather: accident.weather = process_weather_data(collection, accident.latitude, accident.longitude) db.session.commit() logging.info("\tFinished commiting the changes")
def import_to_db(collection, path): """ :param path: Local files directory ('united_path' on main() below) :return: length of DB entries after execution """ app = init_flask(__name__) db = SQLAlchemy(app) accidents = list(create_accidents(collection, path)) if not accidents: return 0 new_ids = [m["id"] for m in accidents if 0 == Marker.query.filter(and_(Marker.id == m["id"], Marker.provider_code == m["provider_code"])).count()] if not new_ids: logging.info("\t\tNothing loaded, all accidents already in DB") return 0 db.session.execute(Marker.__table__.insert(), [m for m in accidents if m["id"] in new_ids]) db.session.commit() return len(new_ids)
import jinja2 from flask import make_response, jsonify, render_template import flask.ext.assets from webassets.ext.jinja2 import AssetsExtension from webassets import Environment as AssetsEnvironment from database import db_session from models import * from base import * import utilities app = utilities.init_flask(__name__) assets = flask.ext.assets.Environment() assets.init_app(app) assets_env = AssetsEnvironment('./static/', '/static') jinja_environment = jinja2.Environment( autoescape=True, loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), "templates")), extensions=[AssetsExtension]) jinja_environment.assets_environment = assets_env @app.teardown_appcontext def shutdown_session(exception=None):
SUBTYPE_ACCIDENT_WITH_PEDESTRIAN = 1 LOCATION_ACCURACY_PRECISE = True LOCATION_ACCURACY_PRECISE_INT = 1 INJURED_TYPE_PEDESTRIAN = 1 YISHUV_SYMBOL_NOT_EXIST = -1 CONTENT_ENCODING = 'utf-8' HEBREW_ENCODING = 'cp1255' ANYWAY_UI_FORMAT_MAP_ONLY = "https://www.anyway.co.il/?zoom=17&start_date={start_date}&end_date={end_date}&lat={latitude}&lon={longitude}&show_fatal=1&show_severe=1&show_light=1&approx={location_approx}&accurate={location_accurate}&show_markers=1&show_discussions=0&show_urban=3&show_intersection=3&show_lane=3&show_day=7&show_holiday=0&show_time=24&start_time=25&end_time=25&weather=0&road=0&separation=0&surface=0&acctype={acc_type}&controlmeasure=0&district=0&case_type=0&show_rsa=0&age_groups=1,2,3,4&map_only=true" ANYWAY_UI_FORMAT_WITH_FILTERS = "https://www.anyway.co.il/?zoom=17&start_date={start_date}&end_date={end_date}&lat={latitude}&lon={longitude}&show_fatal=1&show_severe=1&show_light=1&approx={location_approx}&accurate={location_accurate}&show_markers=1&show_discussions=0&show_urban=3&show_intersection=3&show_lane=3&show_day=7&show_holiday=0&show_time=24&start_time=25&end_time=25&weather=0&road=0&separation=0&surface=0&acctype={acc_type}&controlmeasure=0&district=0&case_type=0&show_rsa=0&age_groups=1,2,3,4" DATE_INPUT_FORMAT = '%d-%m-%Y' DATE_URL_FORMAT = '%Y-%m-%d' app = init_flask() db = SQLAlchemy(app) def get_bounding_box(latitude, longitude, distance_in_km): latitude = math.radians(latitude) longitude = math.radians(longitude) radius = 6371 # Radius of the parallel at given latitude parallel_radius = radius*math.cos(latitude) lat_min = latitude - distance_in_km/radius lat_max = latitude + distance_in_km/radius lon_min = longitude - distance_in_km/parallel_radius lon_max = longitude + distance_in_km/parallel_radius
from StringIO import StringIO import datetime import time import jinja2 from flask import make_response, jsonify, render_template, Response import flask.ext.assets from webassets.ext.jinja2 import AssetsExtension from webassets import Environment as AssetsEnvironment from database import db_session from models import * from base import * import utilities app = utilities.init_flask(__name__) assets = flask.ext.assets.Environment() assets.init_app(app) assets_env = AssetsEnvironment('./static/', '/static') jinja_environment = jinja2.Environment(autoescape=True, loader=jinja2.FileSystemLoader( os.path.join( os.path.dirname(__file__), "templates")), extensions=[AssetsExtension]) jinja_environment.assets_environment = assets_env MINIMAL_ZOOM = 16
STREETS = 'streets' ROADS = "roads" URBAN_INTERSECTION = 'urban_intersection' NON_URBAN_INTERSECTION = 'non_urban_intersection' DICTIONARY = "dictionary" lms_files = { ACCIDENTS: "AccData.csv", URBAN_INTERSECTION: "IntersectUrban.csv", NON_URBAN_INTERSECTION: "IntersectNonUrban.csv", STREETS: "DicStreets.csv", DICTIONARY: "Dictionary.csv", } coordinates_converter = ItmToWGS84() app = init_flask(__name__) db = SQLAlchemy(app) def get_street(settlement_sign, street_sign, streets): """ extracts the street name using the settlement id and street id """ if settlement_sign not in streets: return None street_name = [ x[field_names.street_name].decode(content_encoding) for x in streets[settlement_sign] if x[field_names.street_sign] == street_sign ] # there should be only one street name, or none if it wasn't found.
CITIES = 'cities' STREETS = 'streets' ROADS = "roads" URBAN_INTERSECTION = 'urban_intersection' NON_URBAN_INTERSECTION = 'non_urban_intersection' DICTIONARY = "dictionary" lms_files = {ACCIDENTS: "AccData.csv", URBAN_INTERSECTION: "IntersectUrban.csv", NON_URBAN_INTERSECTION: "IntersectNonUrban.csv", STREETS: "DicStreets.csv", DICTIONARY: "Dictionary.csv", } coordinates_converter = ItmToWGS84() app = init_flask(__name__) db = SQLAlchemy(app) def get_street(settlement_sign, street_sign, streets): """ extracts the street name using the settlement id and street id """ if settlement_sign not in streets: # Changed to return blank string instead of None for correct presentation (Omer) return u"" street_name = [x[field_names.street_name].decode(content_encoding) for x in streets[settlement_sign] if x[field_names.street_sign] == street_sign] # there should be only one street name, or none if it wasn't found. return street_name[0] if len(street_name) == 1 else u""