Skip to content

Instantly share code, notes, and snippets.

@simboli
simboli / Query_OverpassToSpreadsheet.c
Created October 14, 2019 19:14
Query for Overpass API to get bars and cafes in a specific area
[out:csv(
::id,"name",::count,"brand","amenity","ref:vatin","opening_hours","operator","addr:postcode","addr:city","addr:street","addr:housenumber","opening_hours","contact:phone","contact:website",::lat,::lon,lastcheck;
true; "|"
)][timeout:20];
area[admin_level=8][boundary=administrative]["ref:ISTAT"="015146"]->.boundaryarea;
( node(area.boundaryarea)[railway=subway_entrance];
way(area.boundaryarea)[railway=subway_entrance];
>;
) ->.sub_entrance;
(
@simboli
simboli / Query_OverpassToSpreadsheet_inline.c
Created October 14, 2019 19:16
Query for Overpass API to get bars and cafes in a specific area, inline and parametrized for Google Spreadsheet
=IMPORTDATA("http://overpass-api.de/api/interpreter?data=[out:csv( ::id,""name"",::count,""brand"",""amenity"",""ref:vatin"",""opening_hours"",""operator"",""addr:postcode"",""addr:city"",""addr:street"",""addr:housenumber"",""opening_hours"",""contact:phone"",""contact:website"",::lat,::lon,lastcheck; true; "","" )][timeout:20]; area[admin_level=8][boundary=administrative][""ref:ISTAT""="&B4&"]->.boundaryarea; ( node(area.boundaryarea)[railway=subway_entrance]; way(area.boundaryarea)[railway=subway_entrance]; >; ) ->.sub_entrance; ( way(around.sub_entrance:"&B5&")[amenity=cafe]; node(around.sub_entrance:"&B5&")[amenity=cafe]; relation(around.sub_entrance:"&B5&")[amenity=cafe]; way(around.sub_entrance:"&B5&")[amenity=bar]; node(around.sub_entrance:50)[amenity=bar]; relation(around.sub_entrance:50)[amenity=bar]; ); out center; out count;")
{
"_id" : "2018-07-02T10:29:17.579515",
"stations" : [
{
"activate" : NumberInt(1),
"name" : "Puerta del Sol A",
"reservations_count" : NumberInt(0),
"light" : NumberInt(0),
"total_bases" : NumberInt(24),
"free_bases" : NumberInt(21),
# Dictionary for features data
neighbours_multply = []
# List for polygon names
neighbours_names = []
def GeoClass_LoadFile(fname):
global GeoData
with open(fname, encoding="utf-8") as geoJsonFile:
GeoData = json.load(geoJsonFile)
def GeoClass_BuildPolygon():
df_stations['neighbours'] = df_stations.apply(lambda row: GeoClass_GetPName(Point(pd.to_numeric(row['longitude']),pd.to_numeric(row['latitude']))), axis=1) df_stations['neighbours'].unique()
df_stations.nlargest(5, 'total_bases')[['name','total_bases']]
df_stations.nsmallest(5, 'total_bases')[['name','total_bases']]
m = folium.Map([40.417000, -3.703000], zoom_start=13,tiles='http://{s}.tiles.wmflabs.org/bw-mapnik/{z}/{x}/{y}.png', attr="<a href=https://www.simboli.eu/>Simboli.EU</a>")
for index, row in df_stations.iterrows():
folium.Marker([float(row['latitude']), float(row['longitude'])],
popup='<h4>Station '+row['name']+'</h4>\
<b>Number: </b>'+row['number']+'<br/>\
<b>Neighbours: </b>'+row['neighbours']+'<br/>\
<b>Total bases: </b>'+str(row['total_bases'])+'<br/>\
<b>Address: </b>'+row['address']+'<br/>\
<b>Latitude: </b>'+str(row['latitude'])[0:8]+'<br/>\
<b>Longitude: </b>'+str(row['longitude'])[0:8]+'<br/><br/>\
df_trip_stations['count'].sum()
df_trip_stations.describe()