def plot_streets_and_buildings(streets, buildings=None, show=True, dpi=300, path=None, overwrite=False, ruler=True, axes=False): """ Plots streets and buildings""" fig, axi = ox.plot_graph(streets, show=False, close=False, node_size=0, dpi=dpi, edge_color='#333333', fig_height=6) # TODO: bug when plotting buildings, inner area not empty! (e.g. Stiftskaserne Wien Neubau) if buildings is not None: ox.plot_buildings(buildings, fig=fig, ax=axi, set_bounds=False, show=False, close=False, dpi=dpi, color='#999999') # Reset axes parameters to default if axes: axes_color = '#999999' axi.axis('on') axi.margins(0.05) axi.tick_params(which='both', direction='out', colors=axes_color) axi.set_xlabel('X coordinate [m]', color=axes_color) axi.set_ylabel('Y coordinate [m]', color=axes_color) axi.spines['right'].set_color('none') axi.spines['top'].set_color('none') axi.spines['left'].set_color(axes_color) axi.spines['bottom'].set_color(axes_color) fig.canvas.draw() if ruler: plot_ruler(axi) if path is not None: if overwrite or not os.path.isfile(path): fig.savefig(path) if show: fig.show() return fig, axi
def make_plot(place, point, network_type='drive', bldg_color='orange', dpi=40, dist=805, default_width=4, street_widths=None): gdf = ox.buildings_from_point(point=point, distance=dist) gdf_proj = ox.project_gdf(gdf) fig, ax = ox.plot_figure_ground(point=point, dist=dist, network_type=network_type, default_width=default_width, street_widths=street_widths, save=False, show=False, close=True) fig, ax = ox.plot_buildings(gdf_proj, fig=fig, ax=ax, color=bldg_color, set_bounds=False, save=True, show=False, close=True, filename=place, dpi=dpi)
def make_plot(place, point, network_type="drive", edge_color="#FFD500", bldg_color="#3B14AF", bg_colour="#082368", dpi=40, dist=805, default_width=4, street_widths=None): gdf = ox.buildings_from_point(point=point, distance=dist) gdf_proj = ox.project_gdf(gdf) fig, ax = ox.plot_figure_ground(point=point, dist=dist, network_type=network_type, default_width=default_width, street_widths=street_widths, edge_color=edge_color, bgcolor=bg_colour, save=False, show=False, close=True) fig, ax = ox.plot_buildings(gdf_proj, fig=fig, ax=ax, color=bldg_color, set_bounds=False, save=True, show=False, close=True, filename=place, dpi=dpi)
def test_buildings(): gdf = ox.buildings_from_place(place='Piedmont, California, USA') gdf = ox.buildings_from_address(address='San Francisco, California, USA', distance=300) fig, ax = ox.plot_buildings(gdf)
def test_buildings(): # download building footprints and plot them gdf = ox.buildings_from_place(place='Emeryville, California, USA') gdf = ox.buildings_from_address( address='600 Montgomery St, San Francisco, California, USA', distance=300) fig, ax = ox.plot_buildings(gdf)
def test_buildings(): with httmock.HTTMock(get_mock_response_content('overpass-response-1.json.gz')): gdf = ox.buildings_from_place(place='Piedmont, California, USA') with httmock.HTTMock(get_mock_response_content('overpass-response-2.json.gz')): gdf = ox.buildings_from_address(address='260 Stockton Street, San Francisco, California, USA', distance=300) fig, ax = ox.plot_buildings(gdf)
G2 = ox.graph_from_point(location_point, distance=5000, distance_type='bbox', network_type='drive') G2 = ox.project_graph(G2) fig, ax = ox.plot_graph(G2, node_size=30, node_color='#66cc66') import osmnx as ox, geopandas as gpd ox.config(log_file=True, log_console=True, use_cache=True) location_point = (-17.1010286, 145.7753749) gdf = ox.buildings_from_point(point=location_point, distance=5000) gdf_proj = ox.project_gdf(gdf) bbox = ox.bbox_from_point(point=location_point, distance=5000, project_utm=True) fig, ax = ox.plot_buildings(gdf_proj) import osmnx as ox, geopandas as gpd ox.config(log_file=True, log_console=True, use_cache=True) place_names = ['Gordonvale, Queensland, Australia'] east_bay = ox.gdf_from_places(place_names) ox.save_gdf_shapefile(east_bay) east_bay = ox.project_gdf(east_bay) fig, ax = ox.plot_shape(east_bay) import osmnx as ox ox.config(log_file=True, log_console=True, use_cache=True) city = ox.gdf_from_place('Sydney, New South Wales, Australia') city ox.save_gdf_shapefile(city)
# Sean Wu # July 19, 2017 # #============================================================================== import osmnx as ox from IPython.display import Image %matplotlib inline # import all movement paths biokoGraph = ox.graph_from_place('Bioko', network_type='all') ox.plot_graph(biokoGraph,fig_height=20) # import buildings & save to .shp biokoBldg = ox.buildings_from_place('Bioko') biokoBldgProj = ox.project_gdf(biokoBldg) ox.plot_buildings(gdf=biokoBldgProj,bgcolor='#333333',color='w',save=True, show=False, close=True, filename='biokoBldg', dpi=90) Image('{}/{}.{}'.format('images', 'biokoBldg', 'png'), height=800, width=800) biokoBldgShp = biokoBldg.drop(labels='nodes',axis=1) biokoBldgShp.to_file('Desktop/BiokoBldg') biokoAreas = biokoBldgProj.area # basic analysis of road network biokoGraphLength = ox.get_edge_colors_by_attr(biokoGraph, attr='length') ox.plot_graph(biokoGraph, edge_color=biokoGraphLength,fig_height=30) # helper funcion to get one-square-mile street networks, building footprints, and plot them def make_plot(place, point, network_type='drive', bldg_color='orange', dpi=90, dist=805, default_width=4, street_widths=None):
Created on Thu Jul 27 15:32:11 2017 @author: yangjinyue """ import osmnx as ox from IPython.display import Image ox.config(log_file=True, log_console=True, use_cache=True) img_folder = 'images' extension = 'png' size = 600 point = (35.691502, 139.703481) dist = 2000 gdf = ox.buildings_from_point(point=point, distance=dist, retain_invalid=True) gdf_proj = ox.project_gdf(gdf) bbox = ox.bbox_from_point(point=point, distance=dist, project_utm=True) fig, ax = ox.plot_buildings(gdf_proj, bgcolor='#333333', color='w', figsize=(8, 8), bbox=bbox, save=True, show=False, close=True, filename='paris_bldgs', dpi=150) Image('{}/{}.{}'.format(img_folder, 'paris_bldgs', extension), height=size, width=size)
# configure the image display size = 256 # load buildings from about 1.5km² around UCL point = (51.524498, -0.133874) dist = 612 gdf = osmnx.buildings_from_point(point=point, distance=dist) # preview image gdf_proj = osmnx.project_gdf(gdf, to_crs={'init': 'epsg:3857'}) fig, ax = osmnx.plot_buildings(gdf_proj, bgcolor='#333333', color='w', figsize=(4, 4), save=True, show=False, close=True, filename='test_buildings_preview', dpi=600) # save test_dir = os.path.dirname(__file__) test_data_geojson = str(os.path.join(test_dir, 'test_buildings.geojson')) subprocess.run(["rm", test_data_geojson]) gdf_to_save = gdf_proj.reset_index()[['index', 'geometry']] gdf_to_save.rename(columns={ 'index': 'fid' }).to_file(test_data_geojson, driver='GeoJSON')
################################################################################ # OSMnx tests # Playing around with OSMnx # HMSC ################################################################################ #Load package ################# import osmnx as ox, geopandas as gpd ox.config(log_file=True, log_console=True, use_cache=True) # Parameters ################## location_point = (-17.1010286, 145.7753749) # Gordonvale location_point = (-16, 8122246, 145.7183589) # Yorkey's Knob location_point = (-11.71654, 43.42988) # Comoros distance = 5000 # Roads ####################### G2 = ox.graph_from_point(location_point, distance=5000, distance_type='bbox', network_type='drive') G2 = ox.project_graph(G2) #fig, ax = ox.plot_graph(G2, node_size=30, node_color='#66cc66') # Buildings ################### gdf = ox.buildings_from_point(point=location_point, distance=distance) gdf_proj = ox.project_gdf(gdf) bbox = ox.bbox_from_point(point=location_point, distance=distance, project_utm=True) fig, ax = ox.plot_buildings(gdf_proj, show=True)
def plot(self, x=None, size=9, name='temp_image', network_type='walk', dpi=90, default_width=5, street_widths=None): """ plot the map Parameters - x(model.x): default None, variables x after optimization size(int) : default 9 name(string) : default 'temp_image', the saved image name network_type(string) : default walk dpi(int) : default 90 default_width(int) : default 5 street_widths(int) : default None """ # default color set - before optimization ec = [] for i in self.gdf.index: # white color for vacant houses if self.gdf['housetype'][i] == 2: ec.append('w') # yellow color for police station elif self.gdf['amenity'][i] == 'police': ec.append('yellow') # light green for curch elif self.gdf['amenity'][i] == 'place_of_worship': ec.append('#d7ff6e') # red color for non structure elif self.gdf['building'][i] != 'yes': ec.append('r') # #ff6060 for area > 398 elif (pd.isnull(self.gdf['addr:street'][i]) and self.gdf_proj.area[i] > 398) or self.gdf_proj.area[i] > 398: ec.append('#ff6060') # #8e8e8e for no address elif pd.isnull(self.gdf['addr:street'][i]): ec.append('#8e8e8e') # #ffcf77 for renter houses elif self.gdf['housetype'][i] == 0: ec.append('#ffcf77') # #ffcf77 for owner houses elif self.gdf['housetype'][i] == 1: ec.append('orange') # blue coloe fo o.w., which means the model is not correct else: ec.append('blue') # plot the original map before optimization if x == None: #ox.plot_buildings(self.gdf, figsize = (size,size) ,color = ec, bgcolor = "aliceblue") # get gdf_proj gdf_proj = ox.project_gdf(self.gdf) # initial figure ground fig, ax = ox.plot_figure_ground(address=self.address, dist=self.radius, network_type=network_type, default_width=default_width, bgcolor='#333333', edge_color='w', street_widths=street_widths, save=False, show=False, close=True, fig_length=size) # plot the building fig, ax = ox.plot_buildings(gdf_proj, fig=fig, ax=ax, color=ec, set_bounds=True, save=True, show=False, close=True, filename=name, dpi=dpi) # save image Image('{}/{}.{}'.format(img_folder, name, extension), height=image_size, width=image_size) return fig, ax # after optimization else: # update color set # if x == 1 or very close to 1 (tolerance) ec_after = [ 'mediumseagreen' if x[self.Houses[i]].X == 1.0 or abs(x[self.Houses[i]].X - 1.0) < 0.000001 else ec[i] for i in xrange(len(self.Houses)) ] # get gdf_proj gdf_proj = ox.project_gdf(self.gdf) # initial figure ground fig, ax = ox.plot_figure_ground(address=self.address, dist=self.radius, network_type=network_type, default_width=default_width, bgcolor='#333333', edge_color='w', street_widths=street_widths, save=False, show=False, close=True, fig_length=size) # plot the building fig, ax = ox.plot_buildings(gdf_proj, fig=fig, ax=ax, color=ec_after, set_bounds=True, save=True, show=False, close=True, filename=name, dpi=dpi) # save image Image('{}/{}.{}'.format(img_folder, name, extension), height=image_size, width=image_size) return fig, ax