lisflood模型python模块

lisflood-model的Python项目详细描述


lisflood操作系统

此存储库托管lisflood模型的源代码。 有关详细信息,请转到Lisflood OS page

其他有用资源

ProjectDocumentationSource code
LisfloodModel docshttps://github.com/ec-jrc/lisflood-code (this repository)
User guide
LisvapDocshttps://github.com/ec-jrc/lisflood-lisvap
Calibration toolDocshttps://github.com/ec-jrc/lisflood-calibration
Lisflood Utilitieshttps://github.com/ec-jrc/lisflood-utilities
Lisflood Usecaseshttps://github.com/ec-jrc/lisflood-usecases

快速启动

您可以下载用于测试模型的代码和数据集。 请按照本说明进行基本测试(DRINA流域,包含在tests/data/Drina下的存储库中)

  1. 克隆此存储库的主分支(您需要在计算机上安装git)。
git clone --single-branch --branch master https://github.com/ec-jrc/lisflood-code.git
  1. 将需求安装到Python2.7Virtualenv中。 我们建议按照virtualenv docs上的说明操作。假设您激活了虚拟环境:
cd lisflood-code  # move into lisflood-code project directory
pip install -r requirements.txt
  • gdal也应该安装。要在debian/ubuntu系统上安装gdal c库和gdal python库,我们找到了很好的说明here

如果计算机中已经安装了gdal,请确保gdal和python gdal库具有相同的版本。

您需要安装PCRASTER并将其Python接口包含在pythonpath环境变量中。 有关详细信息,请按照official docs上的说明操作。

  1. 编译cython模块运动学波形并行工具

编译此cython模块以启用openmp多线程(并行运动波):

  • 删除水文模块目录中的文件*.so(如果有的话)

  • 在水文模块文件夹中,执行“python2 compile_运动学_wave_parallel_tools.py build_ext--inplace”

重要提示:模块必须在运行模型的机器上编译-生成的二进制文件不可移植。

然后,在设置文件中,选项“numberParallelthreadskineMaticWave”可以采用以下值: -“0”:自动检测机器/节点的CPU数量(所有CPU使用减1)(如果其他模拟在同一机器/节点上运行,则不要设置) -“1”:串行执行(非并行) -“2”,“3”,…:手动设置并行线程数。 (如果超过CPU数量,则选项设置为“0”)-->;

<textvarname="numCPUs_parallelKinematicWave"value="3"/>
  1. 对DRINA测试集水区进行冷运行

现在您的环境应该设置为运行lisflood。尝试使用准备好的drina集水区设置文件:

python src/lisf1.py tests/data/Drina/settings/lisfloodSettings_cold_day_base.xml

如果上述命令成功无误地将dis.nc生成tests/data/drina/outputs文件夹,则lisflood安装是正确的。

Docker图像

您可以使用更新的docker映像来运行lisflood,因此不必在系统上安装依赖项。 首先,从存储库中提取图像。

docker pull efas/lisflood:latest

使用映射目录将drina汇流文件从容器复制到主机。

docker run -v /absolute_path/to/my/local/folder:/usecases efas/lisflood:latest usecases

在这个命令之后,您可以在您映射的目录下找到所有文件来对drina coupside运行测试:/absolute_path/to/my/local/folder/Drina

现在,您可以运行lisflood作为docker容器来测试drina集水区。您只需要使用-v选项将drina文件夹映射到容器文件夹input。 在XML设置文件中,所有路径都被调整为相对于同一个设置文件,因此只要保持相同的文件夹结构,就不需要编辑路径。

执行以下操作以运行模拟:

docker run -v /absolute_path/to/my/local/folder/Drina:/input efas/lisflood /input/settings/lisfloodSettings_cold_day_base.xml

lisflood完成后,您可以在/absolute_path/to/my/local/folder/Drina/outputs/文件夹中找到报告的映射。

PYPI封装Lisflood

lisflood也作为标准python包分发。您可以在python 2.7中安装pip包{a6}virtualenv:

pip install lisflood-model

上面的命令还将在virtualenv中安装可执行文件lisflood,以便您可以使用以下命令运行lisflood:

lisflood /absolute_path/to/my/local/folder/Drina/settings/lisfloodSettings_cold_day_base.xml

1:我们计划几个月后迁移到python 3。

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

推荐PyPI第三方库


热门话题
具有x86javapath的x64机器上x86java上的java JNI未满足链接错误   java将Pixmap的一部分上传到GPU   图像Java位图RLE8格式   java Android studio谷歌广告崩溃应用程序   java如何创建包含未知数量对象的变量?   Java计算给定int数组的所有可能组合   java JDBC classnotfound异常   httpclient中的java将HttpEntity转换为字符串的最优雅/正确的方法是什么?   如何从Java程序运行nano?   java在安卓中调用自定义类/方法   调用方法和JOptionPane后,允许代码继续执行所需的java计时器或其他想法   关于侦听器的向量Java并发问题   线程池执行器Java线程池   java配置DTO上的Swagger javax验证约束   Java中用于按钮功能的swing操作命令   ServletOutputStream中的java设置状态代码   java打印输入数组的平均值