WNTR使用小结(一)
本人最近主要在做设施网络的内容,主要聚焦供水管网(water distribution network,WDN),在做实验中主要用的包为WNTR,下载连接:
链接: WNTR.最好安装最新版本
如果有做这方面研究的小伙伴们需要测试数据可以直接从WNTR实例数据中下载,其中提供了四种规模大小的管网,格式为.inp,可以搭配Epanet使用。如果需要更多示例数据可私信我!
以下内容全部为本人自己探索的小心得,希望能给你带来一点点帮助,如果不够详尽可以自行参阅官方文档:链接: 官方文档.
本节主要讲一下WNTR的水力模型和概况读取。
WNTR-Water network model
import wntr as wr
wdn = wr.network.WaterNetworkModel("管网.inp")
读取inp格式的管网,这里的wdn为WNTR中的水力模型,可以根据wdn访问该模型的具体内容:
- junction(管网当中的节点)
wdn_junction = wdn.junction_name_list
- pipe(管段)
wdn_pipe = wdn.pipe_name_list
- 全部点(包括junction,tank,reservoir)
wdn_node = wdn.node_name_list
- 全部边(包括pipe,pump,valve)
wdn_edge = wdn.link_name_list
WNTR-elements
1.访问节点属性
wdn.get_node('节点名称').todict()
2.访问边属性
wdn.get_link('边名称').todict()
3.添加节点属性
wdn.nodes['节点名称'].属性名称 = 属性值
4.添加边属性
wdn.links['边名称'].属性名称 = 属性值
这里使用pandas的dataframe,将wdn的属性表进行整合:
wdn_info = pd.DataFrame(wdn.nodes.tolist())
wdn_info.set_index('索引名称', inplace=True)
关于成图可视化
wr.graphics.plot_network(wdn, node_attribute='可视化字段名称', node_cmap=可默认或者自己定义(plt.get_cmap或list[颜色列表]), node_colorbar_label='图例名称', title=标题, node_range=[可视化属性值范围])
这里还可以制作交互式成图哦!
wr.graphics.plot_interactive_network(wdn, node_attribute='可视化字段名称e', filename="网页文件保存地址", auto_open=True(是否直接打卡文件))
本小结就到这里了,如有问题欢迎私信,我尽量快速回复!
内心OS:要完成的实验任务好多,感觉还没好好记录下来就得继续学习新的东西了,大家加油啊!论做好笔记的重要性~~~