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
		
	
			
		
		
	
	
			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])
 |