污水管网图形计算工具

sewergraph的Python项目详细描述


下水道图

v0.1.2

Build statusBuild Status

在networkx的基础上,这个包提供了分析和操作的工具 污水管网数据。

目标

提供图形函数以解决下水道中典型的分析问题 收集系统:

  • 向上/向下穿过污水管网
  • 累积计算
  • 下游瓶颈分析
  • 数据缺口处理(在合理范围内,伙计们)
  • 设计能力分析

安装

osmnx启发,Sewergraph依赖于NetworkxPandas。对于大多数用例,安装很容易:

$ pip install sewergraph

提供了使用GeoPandas的附加功能, 苗条又有型。建议先用conda安装geopandas,然后再安装 通过PIP的污水图:

$ conda install geopandas
$ pip install sewergraph

如果安装了arcmap,请确保geopandas安装不与arcpy冲突。为避免风险,请在conda环境中安装SewerGraph:

$ conda create --name myenv
$ activate myenv #enter the new environment
$ conda install geopandas
$ pip install sewergraph

示例

创建具有下水道网络形状文件的NetworkX有向图。

importsewergraphassg#read shapefile into DiGraphshapefile_path=r'path/to/sewers.shp'G=sg.graph_from_shp(shapefile_path)

每个污水管段的属性存储为边缘数据。几何学被解析并存储在^ {CD3}}属性中,以及在SeaFEFLE中存在的任何其他字段。

#sewer connecting node 0 to node 1print(G[0][1])
{'OBJECTID': 115081,
  'STREET': 'ADAINVILLE DR',
  'ShpName': 'sample_sewer_network_1',
  'diameter': 8,
  'facilityid': 'BCE7B25E',
  'geometry': <shapely.geometry.linestring.LineString at 0x12a6caf0>,
  'height': 0,
  'length': 164.758,
  'local_area': 39449.474,
  'material': 'VCP',
  'pipeshape': 'CIR',
  'slope': 0.01,
  'width': 0}

通过从网络的顶部到底部(即污水棚)累积local_area,计算每个下水道的总排水面积。

#accumulate drainage areaG=sg.accumulate_downstream(G,'local_area','total_area')#convert to GeoDataFrame and sort the sewers by total_areasewers=sg.gdf_from_graph(G)sewers=sewers.sort_values(by='total_area',ascending=False)sewers.head()
total_areaOBJECTIDfacilityidpipeshapediameterheightwidthlengthslopematerialSTREETlocal_areageometry
194,233,504112545A58064DFBOX01216327.2793700.0075RCPNone119043.524941LINESTRING (6558821.45028765 2032961.24586616,...
184,114,4611125465890D18FBOX01216318.0814020.0100RCPNone171961.403740LINESTRING (6558826.08945222 2032643.19829701,...
243,942,49911256312FF7372BOX01216131.3525340.0100RCPNone16557.605522LINESTRING (6558821.78250872 2032511.9163921, ...

提供了更多的功能,用于计算基本水力容量、排水口负荷、分流、行程时间,以及从网络的每个点识别下游收缩。

#perform basic sewer capacity calculations (full flow Mannings capacity)G=hhcalcs_on_network(G)#id flow split sewers and calculate split fractionsG=analyze_flow_splits(G)#accumulating travel timesG=accumulate_travel_time(G)

运行测试

测试位于sewergraph>;tests目录中,并使用pytest运行。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何使用Netbeans在Java中创建可执行文件   swing Set不透明(真/假);JAVA   java JPA无法删除具有onotomany关系和cascatype all的实体   java Hibernate自参考映射难题   Java/从字符串到Java代码   java为什么我已经在取整了,却得到了一个无终止小数扩展?   java Wicket onsubmit信息对话框   java如何使用类、类加载器和URL获取资源   java在多模块项目中使用License Maven插件时出错   java HashSet“contains”方法是如何工作的?   图像JavaPNG显示为黑色   java如何在保持内容完整的同时在两个活动之间切换?   JAVA在Tomcat 7.0.27中,WAR无法为Prod正确解包   listview的java onclicklistener   JavaXPages托管Bean可以跨多个数据库工作吗?   java无法停止服务空对象引用错误Android   java将UTF8编码的字符串转换为人类可读的字符串   JavaSpring与JBossSAML的集成   java如何替换AuthorizationCodeInstalledApp类?