用于处理adcirc输入和输出文件的python包。
Adcirc的Python项目详细描述
广告
一个python接口,用于处理adcirc流体动力学模型的输入和输出。
基本安装:
您可以通过conda或pip安装此软件。
操作系统必须满足通过pip安装的python包的依赖性(有关详细信息,请参见方法2)。在普通用户的计算机上,推荐的安装方法是通过conda。无论您使用的是pip方法还是conda方法,始终为您的项目使用虚拟环境通常是一种好的做法。如果您是python新手,请确保在深入了解python开发时阅读python环境及其用法。
如果在windows机器上进行开发,强烈建议使用windows linux子系统,并从widows linux shell子系统运行此软件。mingw64、cygwin、用于windows的git shell或windows上任何其他现成的posix层都应该可以工作。
方法1:conda
使用conda的优点是它提供了必要的依赖项作为预编译的二进制文件,因此不需要本地编译,并且大大缩短了安装时间。这是推荐使用的方法。
在系统上安装miniconda3(推荐)或anaconda3。使用Windows时,请记住在POSIX层上进行此安装。
为您的项目创建一个新的conda环境,并在该环境中运行:
conda update -n base -c defaults conda conda install -c conda-forge gdal pip install AdcircPy
方法2:仅PIP(需要编译系统库)。
pip要求在运行pip install命令之前预编译并安装一些系统库。强烈建议您使用system packge管理器来满足这些依赖项,或者可以从源代码编译它们。Dockerfile包含阿尔卑斯分布的完整构建,可供参考。注意,“dev”版本意味着头和编译的库一起是必需的。还要注意,您的系统中可能已经有这些库。
完整的系统依赖项列表:
- G++
- 海合会
- M4
- 制造
- autoconf
- zlib dev
- libc dev
- 旋度dev
- Linux标题
- HDF5开发
- netcdf-c-dev
- Python3 dev
- sqlite开发
- 项目4开发
- gdal dev
- openblas dev(用于scipy)
- freetype dev(用于matplotlib)
- PY3点
一旦满足了这些依赖关系,您只需执行
pip install AdcircPy
半径:
如果您已经安装了adcircpy并希望升级,只需执行以下操作:
pip install AdcircPy -U
您始终可以运行此命令,以确保您拥有最新版本,因为pypi中的最新版本应与此存储库的最新标记版本相对应。
注意:如果您是开发人员并且希望调试该包,则可以在开发人员模式下安装该包,方法是首先克隆该包,然后执行以下操作:
pip install -e .
使用量
cli接口
安装后,命令行界面上有一些新命令可用。
一些可用的命令是:
- 绘图网格
- 生成日期运行
- 生成跟踪文件
- plotmaxele
- 高水位线验证
- plotTidalstationsOutput
由于此包正在开发中,上面的列表可能不是最新的,因此您可以检查setup.py,其中列出了当前版本的入口点。
作为API
这个包是处理ADCIRC流体力学模型的输入和输出文件的api。 您可以加载ADCIRC网格并通过执行以下操作进行绘图:
fromAdcircPyimportread_meshmesh=read_mesh('/path/to/fort.14')# The most basic you can do with this software is create plots:mesh.make_plot(show=True)
15号堡垒发电实例:
仅潮汐流量:
fromAdcircPyimportread_meshfromdatetimeimportdatetime,timedeltamesh=read_mesh('/path/to/fort.14',SpatialReference=4326,vertical_datum='LSML')start_date=datetime.now()end_date=start_date+timedelta(days=5)tidal_run=mesh.TidalRun(start_date,end_date,spinup_days=7)tidal_run.dump()# will write to stdout if no output path is given.
请求全局输出的示例:
fromAdcircPy.ModelimportAdcircMesh# This is a different way of importing your mesh.fromAdcircPy.ModelimportElevationGlobalOutputasEGOfromdatetimeimportdatetime,timedeltamesh=AdcircMesh('/path/to/fort.14',SpatialReference=4326,vertical_datum='LSML')start_date=datetime.now()end_date=start_date+timedelta(days=5)# sampling frequency is a timedelta object, so you can specify days, minutes, hours or secondssampling_frequency=timedelta(minutes=15)tidal_run=mesh.TidalRun(start_date,end_date,ElevationGlobalOutput=EGO(sampling_frequency=sampling_frequency))tidal_run.dump()
示例将随着开发的继续而更新。
请使用问题跟踪程序进行错误报告。