来自python的epanet 2.0调用

EPANET2的Python项目详细描述


流行的城市排水模型epanet 2.0引擎的python接口。 EPANET2由美国环境保护局重新分配到公共领域。 此python包受assela pathirana的版权保护,并在gnu通用公共许可版本3下发布。

readme.txt

epanet 2.0 python调用接口

由于版本为0.4.0.1,库与Python3.0兼容

这是什么?

一个python包,允许用户调用python脚本中的所有epanet programmers toolkit函数。

安装

Windows:

Download the MS Windows installer and run to install. Since version 0.4.0.1 “python wheels ” packages are also provided. So, the following command can also be used to install on windows

^{pr 1}$
POSIX (e.g. Linux, OS-X):

Download source archive (zip file), extract and run (as root)

^{pr 2}$

or just type

^{pr 3}$

用法:

>>> from epanet2 import epanet2 as et
    >>> p="epanet2/examples/simple/"
>>> ret=et.ENopen(p+"Net3.inp",p+"Net3.rpt","")
Example 1:Retrieve simulation properties.

网络的基本特性

>>> ret,result=et.ENgetcount(et.EN_LINKCOUNT)
>>> print(ret)
0
    >>> print(result)
    119
>>> ret,result=et.ENgetcount(et.EN_NODECOUNT)
>>> print(ret)
0
>>> print(result)
97
    >>> node='105'
    >>> ret,index=et.ENgetnodeindex(node)
    >>> print(ret)
    0
    >>> print ("Node " + node + " has index : " + str(index))
    Node 105 has index : 12

获取节点列表

>>> ret,nnodes=et.ENgetcount(et.EN_NODECOUNT)
>>> nodes=[]
>>> pres=[]
>>> time=[]
>>> for index in range(1,nnodes):
...     ret,t=et.ENgetnodeid(index)
...     nodes.append(t)
...     t=[]
...     pres.append(t)
>>> print (nodes)       #doctest: +ELLIPSIS
...                     #doctest: +NORMALIZE_WHITESPACE
    ['10', '15', '20', '35', '40', '50', '60', ..., '275', 'River', 'Lake', '1', '2']

水力模拟

>>> et.ENopenH()
0
>>> et.ENinitH(0)
0
>>> while True :
...    ret,t=et.ENrunH()
...    time.append(t)
...    # Retrieve hydraulic results for time t
...    for  i in range(0,len(nodes)):
...        ret,p=et.ENgetnodevalue(i+1, et.EN_PRESSURE )
...        pres[i].append(p)
...    ret,tstep=et.ENnextH()
...    if (tstep<=0):
...        break
>>> ret=et.ENcloseH()
>>> print([round(x,4) for x in pres[0]])   #doctest: +ELLIPSIS
...                                         #doctest: +NORMALIZE_WHITESPACE
    [-0.6398, 40.1651, 40.891, 41.0433, ..., 0.569, -0.8864, 0.2997]

节点“10”处的压力

>>> ret,ind=et.ENgetnodeindex("10")
>>> print (ind)
1
>>> print([round(x,4) for x in pres[ind+1]]) # remember epanet count starts at 1.
...                                          #doctest: +ELLIPSIS
...                                          #doctest: +NORMALIZE_WHITESPACE
    [12.5657, 12.9353, 13.4351, 14.0307, ..., 13.1174, 13.3985, 13.5478]

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

推荐PyPI第三方库


热门话题
多线程线程在java中初始化为null   web应用程序的java功能,用于处理用户从SFTP服务器下载文件的请求   连接如何在Java中连接两个字符串数组   java如何正确使用Actionlistener事件的输入   [JPA][JBoss7.1]Java为两个带有JPA注释的表扩展了class 2 Id   在java中计算十进制值时遇到问题   java自动生成的捆绑包文件不是在使用I18N4Vaadin的Vaadin项目中创建的   java Spring控制器向ajax请求返回视图或空字符串   java扫描器在我的机器上不工作   java如何获取应用程序二进制文件的路径?   javac:输出值行为   如何在没有身份验证的情况下使用Google电子表格API Java库获取公共Google电子表格数据   java管理多个传出TCP连接   java无法为安卓:onClick执行方法。添加到数据库   JAVA文件中的ubuntu JFlex编译错误   java是执行各种字符串操作的有效方法   java发送文件和json Spring引导和角度   REST+DAO对象的java Mockito   java SocketException:两个客户端并行运行时连接重置