You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.4 KiB
Python

import json
import os.path
# Medialab Prado
medialab_prado = [ -3.69380, 40.41041 ]
# X 441133.28
# Y 4473541.39
# Plaza del Sol
# Top left corner of the search field
plaza_del_sol = [ -3.7035, 40.41684 ]
# X 440315.95
# Y 4474261.62
# Atocha Renfe
# Bottom right corner of the search field
atocha_renfe = [ -3.6886, 40.40697 ]
# X 441571.52
# Y 4473156.10
# Return true if the tree lives within the given bounding box
# and it has a street address in the database
def within (bbox):
def eligible (tree):
coords = tree['geometry']['coordinates']
if bbox[0][0] <= coords[0] <= bbox[1][0] \
and bbox[0][1] <= coords[1] <= bbox[1][1] \
and tree['properties']['MINTDIRECCIONAUX'] is not None:
return True
return False
return eligible
# Load trees from the selected_ordered_trees
# who live within barrio de las letras
# and have a postal address recorded in the database
def load_trees_from_json():
basepath = os.path.dirname(__file__)
datafile = os.path.join(basepath, '../data/selected_trees_ordered.geojson')
barrio_de_las_letras = [
[-3.7025, 40.4134],
[-3.6945, 40.4169]
]
with open(datafile, 'r') as fp:
data = json.load(fp)
trees = data['features']
return list(filter(within(barrio_de_las_letras), trees))
if __name__ == '__main__':
from random import shuffle
eligible_trees = load_trees_from_json()
print(len(eligible_trees))
shuffle(eligible_trees)
print(eligible_trees[:1])