Source code for atra.plot.network_water

"""Plot water network
"""
import os

import cartopy.crs as ccrs
import geopandas
import matplotlib.patches as mpatches
import matplotlib.pyplot as plt


from atra.utils import load_config, get_axes, plot_basemap, scale_bar, plot_basemap_labels, save_fig


[docs]def main(config): """Read shapes, plot map """ data_path = config['paths']['data'] # data output_file = os.path.join(config['paths']['figures'], 'network-water-map.png') water_edge_file = os.path.join(data_path, 'network', 'port_edges.shp') water_node_file = os.path.join(data_path, 'network', 'port_nodes.shp') # basemap proj_lat_lon = ccrs.PlateCarree() ax = get_axes() plot_basemap(ax, data_path) scale_bar(ax, location=(0.8, 0.05)) plot_basemap_labels(ax, data_path, include_regions=True) colors = { 'Waterway': '#045a8d', 'Port': '#54278f' } # edges edges = geopandas.read_file(water_edge_file) ax.add_geometries( list(edges.geometry.buffer(0.02)), crs=proj_lat_lon, edgecolor='none', facecolor=colors['Waterway'], zorder=4 ) # nodes nodes = geopandas.read_file(water_node_file) nodes = nodes[nodes['name']!='none'] ax.scatter( list(nodes.geometry.x), list(nodes.geometry.y), transform=proj_lat_lon, facecolor=colors['Port'], s=4, zorder=5 ) # legend legend_handles = [ mpatches.Patch(color=color, label=label) for label, color in colors.items() ] plt.legend(handles=legend_handles, loc='lower left') # save save_fig(output_file)
if __name__ == '__main__': CONFIG = load_config() main(CONFIG)