lisflood模型python模块
lisflood-model的Python项目详细描述
lisflood操作系统
此存储库托管lisflood模型的源代码。 有关详细信息,请转到Lisflood OS page。
其他有用资源
Project | Documentation | Source code |
---|---|---|
Lisflood | Model docs | https://github.com/ec-jrc/lisflood-code (this repository) |
User guide | ||
Lisvap | Docs | https://github.com/ec-jrc/lisflood-lisvap |
Calibration tool | Docs | https://github.com/ec-jrc/lisflood-calibration |
Lisflood Utilities | https://github.com/ec-jrc/lisflood-utilities | |
Lisflood Usecases | https://github.com/ec-jrc/lisflood-usecases |
快速启动
您可以下载用于测试模型的代码和数据集。 请按照本说明进行基本测试(DRINA流域,包含在tests/data/Drina下的存储库中)
- 克隆此存储库的主分支(您需要在计算机上安装git)。
git clone --single-branch --branch master https://github.com/ec-jrc/lisflood-code.git
- 将需求安装到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上的说明操作。
- 编译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"/>
- 对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。