用于处理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()

示例将随着开发的继续而更新。

请使用问题跟踪程序进行错误报告。

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

推荐PyPI第三方库


热门话题
java SQLite表错误   java如何从ArrayList获取每个字符串   Java中用于内省的spring库   对对象的java绑定JSON响应返回NullPointerException   java传递对象,包括对象   java如何从IntelliJmaven项目为OSX生成dmg文件?   JTableCell中的java ImageIcon   RSA Python从导入的Java公钥加密消息   没有设置java共享首选项   java在JavaFX中是否有一个完全在悬停时触发的菜单?   用Java解析读取SVG路径   Android Studio中java无法加载数据库数据   字符串列表的java组合   来自jdbc请求的java查询不会传递到DB,而验证查询会传递,该怎么办?