河流植被水文耦合研究

cord的Python项目详细描述


#VW Ripcas Dflow

用于运行我们的河岸群落变化和演替模型,
Ripcas和D-Flow耦合。
这项工作的主要贡献之一是自动将新的Dflow作业提交到便携式批处理系统,然后
在dflow完成该时间步骤后运行ripcas。大致过程如下图所示。


![简化工作流](work_flow_simplified.png)


dflow模型一次运行大约7小时,每个模型使用8个处理器。我们可以使用更多的内核,有一个开放的问题(9)
来解决这个问题。




可以逐年改变洪水,或者改变用于计算边界条件的河流
横截面的几何结构,或者用户可以创建新的植被类型到n和/或植被类型到抗剪映射。这是通过创建与
[数据
目录](https://github.com/virtualwatershed/vw ripcas dflow/tree/master/data)中对应文件的结构匹配的新文件来完成的。
例如,要修改植被转换规则,必须在下面的屏幕截图中创建与此结构匹配的excel电子表格。

![RIPCAS所需数据截图](ripcas required data screenshot.png)



示例:

`````
python ripcas_dflow/modelrun.py~/ripcas dflow runs/100yr-every5\
数据/ripcas_inputs/vegclass_2z.asc数据/ripcas_inputs/zonemap_2z.asc\
data/ripcas_inputs/ripcas-data-requirements.xlsx\
/users/maturner/100yrflood_every5.txt data/dflow_inputs/dbc_geometry.xyz\
0.04 0.001
``````

>有关用法的更多详细信息:

`````
python ripcas dflow/modelrun.py data_dir initial_vegotation_Ripcas_Required_data\
Peak_flows_file geometry_file streambed_roughter streambed_slope


data_dir:保存模型运行的每个时间步骤的目录
初始植被:.asc文件和初始植被图
植被图:.asc文件和植被区信息
RIPCAS_Required_数据:.xlsx文件,具有VEG类型到N和每个VEG类型的抗剪性信息
Peak_Flows_文件:具有以立方米每秒为单位的洪峰流量列的文件
Geometry_文件:XYZ文件,表示边界条件计算modelrun.py)(https://github.com/virtualwatershed/vw-ripcas-dflow/blob/master/ripcas-dflow/modelrun.py-l446)
但很快,随着我们添加新功能,这将被分解到它自己的控制器中。



由于plt

来自ripcas_dflow import modelrun,veg2n


将它们设置为ex
峰值流量=89.55
河床粗糙度=0.04
河段坡度=0.001

河段坡度)

"数据/RIPCAS测试")

如何让社区更好一点
n_out=veg2n(out)

plt.matshow(n_out.as_matrix(replace_nodata_val=0.0))
plt.colorbar()
````

![示例映射](example_n_u map.png)



是我们使用的"data/"目录中的一些数据。

我们必须计算的边界条件实际上是一个反问题。我们给出了给定年份的洪峰流量,但我们不知道所考虑河段底部水面(WS高程)的高程
。dflow
需要将其作为一个边界条件,以及与ws高程或简称ws相关联的流量。我们使用
[scipy.minimize_scalar](http://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize_scalar.html)来完成这个反问题。有关详细信息,请参见
[源代码](https://github.com/virtualwatershed/vw ripcas dflow/blob/master/ripcas-dflow/modelrun.py-l357)
。pol

兴趣
geometry=pol.from_river_geometry_file('data/dbc_geometry.xyz')

bc_solver=boundary conditionsover(target_streamflow,
geometry,
河床粗糙度,
到达坡度


bc_solution=bc_solver.solve()


打印bc_solution
````

将生成"边界条件结果"打印

```
误差=0.00017792639154379231,成功=true)
```

计算得到的
streamflow(89.549822…)与观测到的streamflow之间的绝对误差为0.0002,或者相对误差为
0.0002/89.55=2.23e-6。







使用
`jemez/veg2npol.py`脚本。例如,如果植被esri.asc是
`data/vegclass_2z.asc`并且我们希望将n个值的.pol写入
`initial_2;n.pol`,我们将运行

`````
python jemez/veg2npol.py data/vegclass_2z.asc initial_N.pol
```

n值,使用
jemez/dflow_casimir.py脚本。例如,如果d-flow产生剪切应力的
输出netcdf的路径是"data/jemez_r02_map.nc"
,而我们的植被图的路径是"data/vegclass_2z.asc",我们将通过运行python jemez/dflow廑casimir.py~/local廑u data/dflow廑u outputs/jemez廑u map.nc~/local廑u data/casimir out/veg-out-1.asc
```

installation

1来运行(而不是)casimir。将repo和cd克隆到根目录

``bash
git clone https://github.com/virtualwatershed/vw-ripcas-dflow&;cd vw ripcas dflow
```

2。使用虚拟环境并安装依赖项

下面使用的"virtualenv"命令可以与pip一起安装:`pip install virtualenv`.

然后安装"virtualenv",运行下面的

``bash
virtualenv venv
`````
``bash
``source venv/bin/activate
``````

``bash
`pip install-r requirements.txt
````

尝试运行单元测试:

``bash
noestests-v
````



应该创建正确的标题和格式化数据…正常
测试卡西米尔(测试卡西米尔。测试卡西米尔)。确定
测试植被图到曼宁粗糙度图的转换…确定
正确读取测试vegmap(测试。测试。casimir。测试)。好的

——这里有一个表
说明需要哪些输入文件以及在哪里定义了要求。



|
——|无
基本净NC基本.mdu无
基本外部基本.mdu无
N.pol|base.ext是
boundriverdown.pli base.ext否
boundriver_up.pli base.ext否|
boundriverdown_.cmp????是否自动检测到数据流????|是的
boundriver_up_0001.cmp????是否自动检测到数据流????|是的

请注意,这样总共有六个文件不会从一次运行更改为另一次运行,三个文件不会更改。"boundriver*.cmp"是通过运行"modelrun"的
边界条件计算器生成的。` n.pol"是从
植被中生成的,asc可以作为初始输入,也可以作为ripcas步骤的输出。

条件文件。boundriver*.pli没有变化,但此时我还不确定这些变化的目的是什么。

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

推荐PyPI第三方库


热门话题
javasocket:BufferedOutputStream还是just OutputStream?   java确保BlockedQueue中的容量   java异常多部分/formdata请求失败。读取超时   java奇怪的日期字符串格式   java为什么线程池中的所有线程都不处理我的排队任务?   java如何从字符串列表/Url设置为墙纸   实现内联接口时java ClassNotFoundException   java打开一个socket需要多少cpu   java窗口/linux路径组件   使用十六进制值作为方法参数时的java NullPointerException   java如何使此内容可用于“另存为”?   java Android onTouchListener,更容易实现   ProgressDialog 安卓 studio的java模糊背景   运行TestNG时发生java错误无法通过查找找到应用程序名称   java指定JVM Eclipse Mac OS X   用于TracePoint2D的java jChart2D颜色   使用管理员权限启动独立服务器时,java客户端转换失败   处理Java时出错:不检查方法调用中的不可能状态   java在没有浏览器的服务器上打印html文件