Source code for vtra.plot.water_network_map
"""Water network map
"""
import os
import sys
from collections import OrderedDict
import cartopy.crs as ccrs
import cartopy.io.shapereader as shpreader
import matplotlib.pyplot as plt
from vtra.utils import *
[docs]def main():
config = load_config()
output_file = os.path.join(config['paths']['figures'], 'water-map.png')
water_edge_file = os.path.join(
config['paths']['data'], 'Waterways', 'waterways', 'wateredges.shp')
water_node_file = os.path.join(
config['paths']['data'], 'Waterways', 'inlandandseaports', 'vietnam_seaport_nodes.shp')
color_by_type = {'Waterway route': '#045a8d', 'Major port': '#54278f'}
ax = get_axes()
plot_basemap(ax, config['paths']['data'])
scale_bar(ax, location=(0.8, 0.05))
plot_basemap_labels(ax, config['paths']['data'])
proj_lat_lon = ccrs.PlateCarree()
for record in shpreader.Reader(water_edge_file).records():
geom = record.geometry
ax.add_geometries(
geom,
crs=proj_lat_lon,
linewidth=1.5,
edgecolor='#045a8d',
facecolor='none',
zorder=3
)
# Stations
xs = []
ys = []
for record in shpreader.Reader(water_node_file).records():
geom = record.geometry
x = geom.x
y = geom.y
xs.append(x)
ys.append(y)
ax.scatter(xs, ys, transform=proj_lat_lon, facecolor='#54278f', s=12, zorder=5)
# Legend
legend_handles = [
mpatches.Patch(color=color, label=line)
for line, color in color_by_type.items()
]
plt.legend(handles=legend_handles, loc='lower left')
save_fig(output_file)
if __name__ == '__main__':
main()