2024年8月26日发(作者:布乐容)
2007版MIKE BASIN水资源软件完整实例培训教程
2007
版
MIKE BASIN
水资源软件完整实例
培训教程
2007版MIKE BASIN水资源软件完整实例培训教程
目 录
1 MIKE BASIN模型基本搭建............................................1
1.1 DEM 建立模型..............................................................1
1.2运用Shapefile图层生成流域.................................................6
1.3添加用水户................................................................9
1.4用水户分配规则...........................................................11
1.5分流节点设置.............................................................12
2 模型高级设置.....................................................14
2.1添加水库.................................................................14
2.2水力发电模拟.............................................................16
2.3河流设置及演算...........................................................17
2.4地下水的应用.............................................................19
3 其他模型功能介绍.................................................21
3.1 NAM降雨-径流模拟........................................................21
3.2 如何使用25
3.2.1 Gapfilling(数据插补)...............................................28
3.2.2 Double Mass Analysis(双累积曲线分析)...............................29
3.2.3 Combine(合并)......................................................30
3.2.4 Evaluate .32
3.2.5 Gap Fill(插补).....................................................35
3.3 宏语言编程...............................................................36
3.3.37
2007版MIKE BASIN水资源软件完整实例培训教程
3.3.2 41
3.4 优化.....................................................................45
4 补充部分.........................................................48
4.1伪48
4.2 创建水质模型.............................................................50
4.2.1创建水动力模型........................................................50
4.2.2 在模型中添加一个用水户...............................................55
4.2.3在模型中加入水质模型..................................................57
4.3使用Load Calculator估算污染物负荷........................................60
4.3.1根据城市污染源计算污染物负荷..........................................60
4.3.2 根据工业污染源计算污染物负荷.........................................63
4.3.3根据农业污染源计算污染物负荷..........................................65
4.3.4包含 “Distance Specific Decay”......................................68
4.3.5其它设置..............................................................75
2007版MIKE BASIN水资源软件完整实例培训教程
-
1-
1 MIKE BASIN模型基本搭建
1.1 DEM 建立模型
1. 从windows程序管理器中运行MIKE BASIN
开始–>程序->DHI 软件->MIKE BASIN
在ArcGIS 的开始窗口中可能会提示你指定一个
新地图。点击OK 然后找到MIKE BASIN 工具
栏。在MIKE BASIN 菜单中点击开始一个新项目
这一栏。
将出现一个新的对话框,查看选项并选择Start
a new project with a new database.即可开始
一个拥有新数据库的新项目。
点击OK。
2.创建一个新的地理数据库
进入(或浏览)您先前创建的目录。
输入数据库名称,或者保留预设的
“”。
点击保存。
在MIKE BASIN Options 对话框中点击OK。
3. 加入一个DEM层作为背景图像
在背景中加入一个图像,能容易地让您对研究区
Press the
toolbar.
域内的河流进行数字化。
浏览您下载的练习数据并将以下DEM文件添加到
你的地图:Capefeardem
新的地图层会出现在ArcGIS浏览器中。确认它
显示出来(选择该图层左边的框)。
在当前区域范围内图像可能无法看到。可直接点
击capefeardem层,然后选择“Zoom To
Layer”(缩放至该层)。
在图层显示之后,您可用缩放按钮
推近观
button on the ArcMap standard
察。或者使用放大工具。(如果这些工具没
出现,请从主菜单中选择View->Toolbars-
>Tools)。
2007版MIKE BASIN水资源软件完整实例培训教程
-
2-
4. 在工具栏中的MIKE BASIN 菜单中选择
“Process DEM…”
出现一个流域描述菜单。
注意DEM文件已自动加载,可直接用于处理。
接着必需先计算水流向。点击“计算水流向”
(“Calculate Flow Direction”)按钮。依
据计算机的运行速度,计算一般需要耗费几秒
种。运行结束后ArcGIS浏览器中将添加一个新
的(流向)图层。
您不需要查看该层。
2007版MIKE BASIN水资源软件完整实例培训教程
-
3-
5. 描述河流
此时在工具栏中有两个工具被激活了。接着在
DEM中探查您感兴趣的河流水流路线。点击“追
工具。然踪河流”(“Trace River”)
后点击模型中所含的河流上游端点。
此DEM提供的地貌信息非常详细,所以整个河网
在DEM中清晰可见。利用先前计算的流向网格,
电脑从您点击的地方开始自动追踪河流下游的流
径。
如果您认为追踪结果不合理,可按键盘上的“删
除”“delete”键,删除上一次追踪的河流。
请记住您此时处于编辑模式。
结果需如向右图所示:
6. 在河网中加入流域节点(流域出口节点)
请注意:河流节点在每个河段上下游会自动添
,以此描述流域加。在河流上指定流域节点
情况。节点代表流域的入流点或出口。在描述流
域时,计算机从节点的各个方向追踪上游河流,
运用流向网格来确定流向这个点的区域。
注意:通过点击河流节点上的流域节点,您也可
以替换河流节点。
每次流域节点被加入模型后,会暂时出现形似
“香肠”的流域。
2007版MIKE BASIN水资源软件完整实例培训教程
-
4-
7. 创建流域
运用工具栏上的“描述流域”(“Delineate
catchments”)
创建真正的子流域。
结果需如右图示:
8. 添加其它要素,运行模型
添加各流域的径流时间序列,运行此模型。
右击集水区或选择MB属性工具(见图)并点击
集水区,将出现一个属性对话框。
(注:如果出现了一个不同的属性对话框,这是
因为你选择了临近的一个要素。可以放大局部区
域以便选择你所需要的)
你可为集水区命名。集水区类型是可选的(例如
用于区分不同用户定义的要素类型)。在指定面
积项中为每个集水区设定面积为2000 km2(两
条支流输入1000 km2)。(输入的集水区面积
并不需要与集水区大小成比例)。
当为第一个集水区输入径流数据时,点击
“new”按钮。当提示输入文件名时输入
“runoff”。系统将自动生成和保存格式正确的
时间序列文件,比如“0”(该时间
序列将在下一步被系统检查)。
当我们为下一个集水区输入径流数据时,只需要
从下拉菜单中选择“0”时间序列。
注意此时的时间序列为径流模数数据,因此对于
不同的集水区并不需要我们修改时间序列(假定
它们的水文特性相同)。
9. 查看和编辑时间序列
输入和输出的时间序列可以被查看和编辑。将在
以下的练习中介绍。
为了查看径流时间序列,在集水区属性对话框中
点击“Plot/Edit…”按钮,时间序列曲线将出
现在屏幕的底部。
注意时间序列包含81年1月1日到82年1月1
日的数据,单位为1 l/s/km^2。
2007版MIKE BASIN水资源软件完整实例培训教程
-
5-
保持默认值不做改动,关闭窗口。
现在,我们在径流模数对话框中点击“OK”,完
成集水区的属性输入。
10.模拟运行
完成了所有输入之后,现在你能模拟河网水流
了。从Mike Basin菜单中选择“Run Mike
Basin Simulation…”。
Simulation对话框将弹出:
将开始和结束时间设定为1980-01-01和1981-
01-01。确保已选中“Associate with features
in map”,输入“sim1”作为模拟描述名。
其它选项保持不变。
点击“Run”开始模拟,这时将出现一个进度
条,显示模拟进行到哪个阶段,当模拟完成时,
进度条关闭。
11.在时间序列管理器中分析结果
当模拟完成时,在ArcGIS浏览器中选择
“TimeSeires”标签。
数据库中所有的时间序列会显示在这个标签中。
时间序列可能被储存在数据库或外部文件中。
Mike Basin 时间序列一般被储存在外部*.dfs0
文件中,因为这是一个有效的储存方式。
打开“ProjectData”项,然后“MIKE BASIN
Simulation sim1”时间序列组(如果看不到,
右击“ProjectData”,选择“Refresh”)
注意,当你点击任意结果时间序列,相应的要素
将在地图上闪烁。你也能通过右击所要查看的图
形要素,从关联菜单中选择“Time Series…”
来访问这些结果时间序列。此时将打开一个对话
框,该对话框列出了所有与此要素相关的时间序
列。
点击结果时间序列,选择“Plot/Edit”。一旦
你绘制了一个时间序列你便能增加另一个时间序
列,点击“Add To Plot”。
2007版MIKE BASIN水资源软件完整实例培训教程
-
6-
试着检查河段的“Flow”时间序列。你能注意到
交汇点以下的流量是两个支流流量的和(在同一
图中绘制,进行比较)。你也能注意到模拟过程
中流量并没有改变,这是因为输入的径流时间序
列是一个常量
在文件菜单中,选择“Save”
1.2运用Shapefile图层生成流域
1. 点击工具条中的添加按钮,弹出添加数据框。
分别选中“Shapefile生成流域”文件夹中的
两个图层,并分别添加到MIKE BASIN中。
2. 在右上角出现图层。使用放大按钮,将此区
域放大。
点MIKE BASIN菜单中的Copy Branch
Shapes….弹出的对话框中,选择All
Shapes。按Copy。生成了河流。
2007版MIKE BASIN水资源软件完整实例培训教程
-
7-
不过我们注意到此河流流向与下游子流域的
流向相反。则我们将在Editor工具条的下拉
菜单中选择Stop Editing.在弹出的对话框
中选择不保存所做的修改。
并重新再此选择MIKE BASIN菜单中的Copy
Branch Shapes….弹出的对话框中,选择
All Shapes。这次选择了Flip Direction
(反向流向),按Copy。生成了河流。此时
的河流流向与下游一致。选择Stop
Editing。保存所做的修改。
2007版MIKE BASIN水资源软件完整实例培训教程
-
8-
显示Polygon_exercise图层。在Editor菜
单中选择Start Editing。选择数据库
Personal Geodatabase。
选择添加流域节点
。在
Polygon_exercise图层和新添加河道的下游
相交交点出点击。此时将会出现一个子流
域,默认的细长型。
选择MIKE BASIN菜单中的Copy Catchment
Shapes…并选择Polygon_exercise图层中
的多边形。在点击Select branch to
assign shape to:右边的箭头后,选择在流
域节点以上并且在多边形范围内的那一段新
添加河道。
2007版MIKE BASIN水资源软件完整实例培训教程
-
9-
则我们可以看到新添加的子流域与现有的
shapefile图层一致。在Editor菜单中选择
Stop Editing。并保存所做修改。
将新建的子流域的面积设为10000KM2.使用
0。选择Start Editing,并在
MIKE BASIN工具条上选择添加河道按钮,将
新添加的河道下游与子流域上游节点想连
接。Stop Editing。点运行按钮运行模型。
1.3添加用水户
1.选择Start Editing,选择数据库Personal
Geodatabase。添加一个用水户节点。(不要在
河流上)
然后单击“Add Channel”将用水户连接到河流
上。由河流节点画一个明渠连接到用水户。再画
另一个明渠连接用水户和下游河流上的一个节
点。
你们所画的网络看起来应该象这样:
停止编辑并保存。Stop Editing
2007版MIKE BASIN水资源软件完整实例培训教程
-
10-
2.设定用水户属性
右键单击你刚才添加的用水户,然后在下拉菜单
中选择“Properties…”。
当添加一个用水户(需水量)时间序列时,优先
权规则将自动地包括进去。因为只有一个上游节
点,你不需要更改默认设置。
回水规则设置是可选项可以不用包括进去。
一个用水户节点可以有多个水源和多个回流点。
这将在其它练习中讨论到。
对于时间序列数据,按下New按钮并命名文件为
“0”。然后按下EDIT按钮,
0时间序列就显示出来。
3.在时间序列显示中,将81年1月1日00:00:00
到81年5月1日00:00:00的时间段中的数据修
改为3 m3/s。
在序列图的File菜单中选择“Save Data”然后
关闭序列图。
回到Water User Properties(用水户属性)对
话框,按下“OK”。
4. 在Return flow rule(s)中,点按钮,弹出数据
输入框,新建一个dfs0文件。命名为Return
flow。使用默认值。点OK。
5.保存设置
2007版MIKE BASIN水资源软件完整实例培训教程
-
11-
6. 运行模型
将模拟命名为“sim3”
7. 分析用水户的结果文件
右键点击用水户节点,选择“Time Series…”
("时间序列 …")。
你将看见与这个节点相关联的全部时间序列。
选择“Water Demand Deficit” ("需水量不足
")时间序列并且点击“Plot”。然后选择
“Extraction from River Node”时间序列并且
点击“Add To Plot”。
在结果时间序列中,你会发现用水需求并不是都
能得到满足。结果中的周期性变化是MIKE BASIN
数据循环产生的结果。
数据循环的意思是,如果模拟的时间段超出输入数据的
时间段,那么模型会使用已有的最近一年中相同时间段
的数据。在本例中,
0时间序列只有
1981的数据(见练习1中第11步)。因此,模拟中
1982和1983部分数据使用的是1981的数据。所有
的时间序列的处理方法都采用这种方法。
1.4用水户分配规则
1.
模型添加新的用水户,并添加2个新的供水渠
道。
2. 设置用水户属性及取水优先级
设定此用水户的时间序列为Water User2,需水
量为常数3 m3/s。
3. 设定分配优先权
a)设定优先权规则,水首先取自左边流域,而后
再取自右边流域。运行模型。
b)设定需求比例规则,每个水源有相等的优先
权,每个水源的取水量为总需水量的0.5。起
一个新的模拟名称来运行模型。
2007版MIKE BASIN水资源软件完整实例培训教程
-
12-
4. 分析结果并讨论结果
1)查看每个水源的水是如何分配,以及水量的
不足。
2)绘制从每个水源抽取的水量(extraction)
和缺水量(water deficit)。
1.5分流节点设置
1.Start Editing,使用add river branch按钮数
字化一个(假设的)分流渠,双击鼠标结束分流渠。
结果看起来应该像右图:停止编辑并保存。Stop
Editing。
2007版MIKE BASIN水资源软件完整实例培训教程
-
13-
2.点击工具条上的要素属性按钮,然后点击新添
加河道的上游节点,设置分流节点属性。点击编辑
规则按钮,弹出输入数据框。
3. 这里有两种方式进行设置。我们在这里使用时间序
列Timeseries…,按新建按钮,命名为
Bifurcation,使用默认值,所有时刻的流量为2
m3/s 。点OK。保存。并运行模拟。
注意:分流节点只可以设置一个规则。若添加第二
个规则时,则会出现右侧的错误提示。
您可以尝试使用另一个选项来设置分流点规则。
2007版MIKE BASIN水资源软件完整实例培训教程
-
14-
2 模型高级设置
2.1添加水库
1.把一个水库添加到河道上,并且新建一个用水
户,然后从水库到用水户节点添加一条取水渠。
以及回水渠。
停止编辑并且保存编辑。
用水户的需水量时间序列使用
0,回水时间序列使用Return
0。
2. 设定水库的general(通用)属性
选择要素属性按钮,然后点击水库。或者
右键点击水库节点,然后选择" Mike Basin
Properties”
将reservoir type(水库类型)保留为“rule
curve reservoir”。
你也可以给水库取一个名称。
将initial water level(初始水位)设为540
[m].
添加level volume area table(水位-库容-
面积表)和losses and gains(损失和增益)
时间序列。水位-容积-面积表设定了水库的形
状,并用来确定库容和蒸发面积,而损失/增益
时间序列则设定了蒸发速度、降雨引起的水量
增加和河床渗漏损失。
创建一个characteristic levels(特征水
位)时间序列和一个losses and gains(损失
/增益)时间序列。你可以通过绘制这些时间
序列来看它们包含哪些数据,但是保留默认
值,不要做任何修改。注意,表中第一列是
“height”(而不是“time”)。
对话框如右图示(现在可以不按“OK”,而按
Apply。)
2007版MIKE BASIN水资源软件完整实例培训教程
-
15-
3. 设定水库操作属性
水库有很多属性,在属性对话框中分成了几个
标签项。现在点击"operation"标签项(本练习
不包括water quality) 。
在operation rules表内,为每种操作规则类
型增加一个合适的新规则:minimum release
(最小下泄量),maximum limit of release
(最大极限下泄量),minimum operation
level(最低运行水位),flood control
level(防洪限制水位)。记住为每一个操作
规则创建一个时间序列。
最后,为下游用水户添加优先权规则
(Priority of downstream users)。选择用
水户为第一优先权。可以注意到,下游用户已
经自动包括在菜单内。只需要设定优先权顺序
和规则(reduction levels 消落水位和
reduction ratios消减率)。Rule
0。
运行模型。确认正确。
将水库initial water level 改为 544m.
在右上角在练习2中添加的子流域属性框中,将
流域面积改为3200 KM2。将与水库连接的用水
户的时间序列改为Water 0。即为常
数0.5 m3/s。
在Remote flow control对话框中,按添加按
钮
,注意选择的Rule Type: Remote min
flow requirement rule.选择新添用水户下游
的子流域出口节点作为远程控制点。时间序列
命名为Remote 0。将所有数值改
为4.5 m3/s。
最终,对话框应该看起来如右图这样:
现在可以点击OK。
在这个练习中我们不进入第3 个标签项来设定
溢洪道属性。
4. 运行模拟,分析结果
分别查看用水库和水户节点的时间序列。
如果用水户调用的水量超出水库入流水量时,在一
年中的部分时段水库的库容可能会变为零的。在有
余水的时候,水库则能充满。
2007版MIKE BASIN水资源软件完整实例培训教程
-
16-
2.2水力发电模拟
1.Start Editing,在水库旁添加一个水电
站,并从水库到水电站添加一个取水连
接渠道及回到河道的回水渠道。Stop
Editing。
此时,在水库属性对话框中的操作规则
标签里的为下游用水户添加优先权规则
(Priority of downstream users)
中,需要编辑新添加的水电站属性。选
择的时间序列也可以是Rule
0。
2.定义下列水力发电方案中的参数:
目标电量Target power = 2MW
机装容量Installed capacity = 6 MW
激活“use surplus capacity”选
项。use surplus capacity=1
尾水位Tail water level = 2 m(即
默认值)
机组效率Machine efficiency = 80 %
(恒定值)
2007版MIKE BASIN水资源软件完整实例培训教程
-
17-
3.运行模型
使用日时间步长
查看模型计算的发电量以及水位结果。
2.3河流设置及演算
1. 选择一条河道,并且打开此河道的属性对话
框。如右图所示。
在通用标签中,河道损失时间序列,命名为
Reaches_0,将其中的
seepage losses factor的1~3月,7~9月
设为0.5。
在河道演算标签中,选择选择马斯京根演算
参数K= 60 天,x= 0.2。
2007版MIKE BASIN水资源软件完整实例培训教程
-
18-
2. 运行模型
并分析结果
用洪水波传递方法wave translation计
算,使用槽蓄系数,K= 124天(4个月)。
没有波变形参数X。
注意:河道演算时必须遵循一定的标准。见
右图,否则模型在默认情况下不会计算不符
合标准的演算。
注意:在马斯京根演算时,可能出现的关于
参数设置的警告信息。
2007版MIKE BASIN水资源软件完整实例培训教程
-
19-
2.4地下水的应用
1. 在MIKE BASIN菜单中,选择OPTION。勾选
Groundwater选项。选择OK。
在右侧所示子流域的属性对话框中的通用标签
里,选择地下水为一层(single layer)。
2007版MIKE BASIN水资源软件完整实例培训教程
-
20-
2.在地下水标签中,填入适当的参数。新建一个地
下水补给时间序列,命名为groundwater
0。使用默认值。
3. 选择有两个基本点引水渠道的用水户节点,打开它
的属性框。修改它所使用的water 0。
将Groundwater use fraction改为0.2。
在地下水标签中,选择Fraction of total
demand。Supplying catchment中选择所选择的子
流域Catchment 4。
4. 运行模型。分析结果。
注意:用水户取水可以不通过所在子流域,也可
以从外流域取地下水。但是必须要在用水户地下
水标签中设定。
2007版MIKE BASIN水资源软件完整实例培训教程
-
21-
3 其他模型功能介绍
3.1 NAM降雨-径流模拟
1.选择TimeSeries时间序列标签。
右击projectData这一行。弹出快捷菜
单。选择Import Time Series…/Quick
Import dfs0 files…。
2.在弹出的对话框中,找到NAM降雨径流文
件夹,分别选择0,
0。导入到时间序列标签
中。
2007版MIKE BASIN水资源软件完整实例培训教程
-
22-
3. 定义参数
在MIKE BASIN菜单中进入Rainfall-
Runoff,并打开Surface-Rootzone菜单
以设置参数
点选择图形要素工具
辑按钮
。
,选中上图的子流域。然后在界面下侧的NAM属性框的右上角,选择开始编
输入下面的参数:
地表水参数,命名为test_surf
接下来是地下水参数:命名为test_GW
初始条件:命名为test_Initial
最后是参数总览:
2007版MIKE BASIN水资源软件完整实例培训教程
-
23-
在RainfallTS列下,单击单元格,然后在左上角选择按钮Select TS….,在弹出的对话框中,先选择
所需要的时间序列TS的组,然后选择第一个时间序列.点击Open TimeSeries。类似地,选择
PotentialEvaporationTS.保存所做的修改并停止编辑。
先运行NAM模拟。
点击运行模拟,定义模拟时间段:
1/1/1996 – 12/31/1996
当NAM运行后,可以察看到,在流域属性对
话框中,径流时间序列区项中,径流时间序
列已经自动添加进来了。打开一个流域的时
间序列,可以看到包括了.Baseflow,
Interflow, Overlandflow以及Runoff.
将上述四个时间序列PLOT在一张图上,查看
结果.经过NAM的计算:
Runoff 近似地等于Overlandflow ,
Interflow , Baseflow三者的和。
2007版MIKE BASIN水资源软件完整实例培训教程
-
24-
此时,打开流域属性对话框,我们可以看
到,已经有一个时间序列填入到了Runoff
中.再运行MIKE BASIN,模拟节点流量。
注:如果在MIKE BASIN工具栏/
, 勾选Groundwater。并且在
NAM的参数总览中的Model Type中选择
ICM-1 layer GW,则可以在流域属性框中,
Groundwater标签里的Groundwater
recharge time series中选择已经NAM计
算出的地下水时间序列。
例如右图所示
test,Baseflow_Total,Catchment10
2007版MIKE BASIN水资源软件完整实例培训教程
-
25-
运行MIKE BASIN,将时间步长设为1天。
3.2 如何使用Temporal Analyst
本练习介绍如何使用Temporal Analyst(时间序列分析器)。在本练习中将会学到如何
建立一个新工程,并导入要素和数据文件,以及进行一系列的数据分析。
1.由程序管理器中启动MIKE
Start ->Programs ->DHI Software ->MIKE BASIN ->MIKE BASIN
2.
ArcMap的开始窗口将会提示设定一个新图层。点
击OK。
而后从ArcMap界面中启动ArcCatalog,由File
菜单中创建一个新数据库。选择New->Personal
Geodatabase。放入所选定的文件夹中。
将shape文件导出到geodatabase
想把哪个shape文件导入到geodatabase中就在
哪个文件上右击,而后选择Export-> To
geodatabase (single)。
Output Location中填所需要添加到的数据库,
并制定路径。Output Feature Class Name中填
在数据库中新添加要素的名称,可以和原有图层
名一致。点击OK。
2007版MIKE BASIN水资源软件完整实例培训教程
-
26-
把所有shape图层(catchment_,
,,
)放入数据库之后,退出
ArcCatalog。
3.
添加新图层到MIKE BASIN中
选择MIKE BASIN菜单下的New/Open
Project…,选择Start a new project with an
existing daabase。之后,在弹出的对话框中选
中刚新建的Personal Geodatabase。系统会自动
生成一个默认的MIKE BASIN Project。
将shape 文件添加到Project中。由
Geodatabase中选择刚刚新添加的四个Feature
图层文件。
在ArcMap标准工具条上按
添加按钮。
最后添加1文件作为背景图
所有添加的shape文件应该显示在Table of
Contents中。
可以根据情况修改每个图层的显示,包括图示、
颜色等,最后得到整个图形显示看起来象右图所
示。
4.
使用data loader导入时间序列
在Table of content上点击Time series标签。
右击数据库层,在下拉菜单中选择Time Series
Data Loader.
2007版MIKE BASIN水资源软件完整实例培训教程
-
27-
会出现一个对话框,名为Time Series Data
Loader-Batch File。在该对话框中设定一个文本
文件名,该文件与所要导入的时间序列数据之间
有着一定的链接,其中包括将时间序列与ArcMap
图层中的要素相关联的ID信息。
首先选择文本文件,然后点
击next。
在阅读手册中有关调用数据的相关章节前,先看
一下文本文件的内容。根据右图所示设定相关参
数,而后点击Next。
给要调用数据创建一个新的数据组,名为
Precipitation(如右图),然后点击Finish.
在数据库下的刚才命名的组中显示了调用的数
据。
现在可以用同样的方法将其它数据导入进来,如
地下水数据()、流量数据
()。现在已经把所有数据导入进来
了,可以点击每个时间序列,检查它们是否正确
地与图层要素相关联上。
Sensor name field:选择No field.
2007版MIKE BASIN水资源软件完整实例培训教程
-
28-
3.2.1 Gapfilling(数据插补)
1.使用上述的步骤将0导入到工程
中。使用批处理文件,并建立一
个新组,名为Rainfall。
注意:在Feature class 中选择DHI_Nodes,并且
在左上角的How to map files and features选
择Attribute in batch file.在Sensor name
field中,选择No field.
使用Plot绘制precipitation station 1的时间
序列图,而后用zoom in放大1968年前6个月的
时间序列,可以注意到二月和四月中有数据中
断。
现在,右击rainfall组,选择Add to Time
Series Analysis。在屏幕的下方TSAnalysis
中显示了刚刚添加的时间序列。
将前三个时间序列选上,点击菜单上的Process-
>Gap Fill。
会出现一个对话框,如右图所示。
点击Execute按钮,在TSAnalysis Output中会
显示出三个时间序列。绘制precipitation
station 1时间序列图,可以注意到二月和四月
份的数据中断已经得到插补,如下图所示。
红色线是差补之后,蓝色线是插补之前.
2.
保存已处理好的时间序列
在TSAnalysis Output中点击刚才经过插补的第
一个时间序列precipitaion station 1,然后在
Time series菜单中选择save。
创建一个新组,名为Rainfall Processed,而后
通过dfs Timeseries Bridge,将其保存到指定
的文件夹下,命名为
rainfall_0。
现在右击rainfall_0,将其添加
到时间序列分析器中。
可以注意到该时间序列是来自于插补分析的,属
2007版MIKE BASIN水资源软件完整实例培训教程
-
29-
于rainfall_processed组。
3.
使用TS的calculator(计算器)计算平均降雨
量
首先计算四个时间序列的平均值(precipitation
station 2 3 5和经过插补的时间序列)。
在TSAnalysis Iutput中将这四个时间序列选择
上,然后点击Process->Calculator。
在计算器中已经包括进了这四个时间序列,写一
个计算公式来计算平均降雨量。有关如何写公式
可以查看手册。(‹TSID 54›+‹TSID 55›+‹TSID
56›+‹TSID 57›)/4
然后在Time series菜单中选择save。将计算的
时间序列保存到rainfall_processed组中,起一
个其它名称的dfs0文件,如Average
0。
右击该时间序列,将其添加到时间序列分析器
中。
3.2.2Double Mass Analysis(双累积曲线分析)
1.
选择插补后的时间序列和平均降雨时间序列,然
后在Plot下选择Double Mass Curves。
2007版MIKE BASIN水资源软件完整实例培训教程
-
30-
将插补后的时间序列作为检验时间序列。这样在
接下的工作中,会调整所选择的这个时间序
列.另一个平均值的时间序列则会作为参考
值.出现一个对话框和曲线图,如下图所示:
2.
插入断点
在要插入断点的地方双击,然后点击estimate按
钮。
可以看到估算出的斜率值。如果感觉结果还可
以,则可以点击correct按钮。
在TSAnalysis Output中会得到一个该测站的校
正过的时间序列,可以将它保存到
rainfall_processed 组中。
要查看该时间序列,可以绘制时间序列图并与原
序列进行对比。
红色是调整前经过插补后的曲线,蓝色是经过与
4个站的平均值进行双累积曲线分析,调整后的曲
线.显然,蓝色线雨量比红色线小.
3.2.3Combine(合并)
这个练习介绍如何使用Combine工具合并或延长时间序列。该练习需要选择两个时间序
列,如果不是两个,这个功能将不可用。两个时间序列的单位必须是等量单位,可以直
接转换(如,mm/day转换成m/s)。有两种方法来合并两个时间序列,Merging(合并)
和Extending(延长)。合并过程中,以master time series(主时间序列)作为合并时
间序列的基础。
1.
2.
3.
继续使用上一次的练习
Merging(合并)
通过右击DataBase Level(TS l View by:
Group),在弹出菜单中选择New Group创建一新
组,名为Combine TS(如右图)。
右击Combine TS,选择Import Time Series ->
Quick Import dft0 file,浏览目录:
Data_Combine,将Rainfall1_0,
Rainfall2_0,
Rainfall3_0三个文件导入进来。
然后,通过右击时间序列组或者时间序列本身,
从弹出菜单中选择“Add to Time Series
2007版MIKE BASIN水资源软件完整实例培训教程
-
31-
Analysis”将需要Combine的两个时间序列
(Precipitation station1和3)添加到时间序
列分析器中。
在屏幕的下方的TSAnalysis Input 中显示了刚
才添加的时间序列。同时将两个时间序列选择
上,而后在TSAnalysis Input 菜单中选择
Process->Combine,将显示出Combine Two
Time Series对话框。
在Master TimeSeries中选择主时间序列名(本
列中选择Precipitation station3),而后选择
Merge with TimeSeries,最后“Execute”。
在TSAnalysis Output中,显示了合并后的结
果。可用Plot或Data Coverage显示该时间序
列。右图分别为合并前和合并后的时间序列Data
coverage.
ing(延长)
可通过右击时间序列组或者时间序列本身,从弹
出菜单中选择“Add to Time Series Analysis”
将需要Combine的两个时间序列(Precipitation
station1和2)添加到时间序列分析器中。
在屏幕的下方的TSAnalysis Input 中显示了刚
才添加的时间序列。同时将两个时间序列选择
上,而后在TSAnalysis Input 菜单中选择
Process->Combine,将显示出Combine Two
Time Series对话框。
在Master TimeSeries中选择需要延长的时间序
列名(本列中选择Precipitation station1),
而后选择Extend with other time series。根
2007版MIKE BASIN水资源软件完整实例培训教程
-
32-
据需要选择Before start of master time
series(延长主时间序列前部),或者After end
of master time series(延长主时间序列的后
部),或者全选。而后点击“Execute”。
在TSAnalysis Output中,显示了延长后的结
果。可用Plot或Data Coverage显示该时间序
列。
右图分别为合并前和合并后的时间序列Data
coverage.
3.2.4 Evaluate to Scalar
Evaluate to scalar工具用于计算时间序列的一些统计值。统计可以基于绝对时间段
(如1/1/2000 - 31/12/2004),也可以基于一个相对时间段(如每年的七月份,每周的
星期三,或者每天的8:00至16:00之间等等)。该工具的输出结果是一个GIS点要
素,其属性与所选择的统计量有关系。另外,点要素可以内插为一个连续的表面图,如
等雨量图或等地下水位图等等。
1.
2.
继续使用上一个练习
在Precipitation组上右击,在弹出菜单上选择
“ Add To Time Series Analysis”。
这将把该组内的所有时间序列添加到时间序列编
辑器中。现在,所选的时间序列显示在屏幕下方
的时间序列编辑器中。
2007版MIKE BASIN水资源软件完整实例培训教程
-
33-
3.
然后,选择所有已添加的时间序列,从菜单中
选择Process->Evaluate to Scalar。将会弹出
一个对话框:
Compute Scalar(s) From Time Series。
在 Operations中选择
New type: Descriptive and test statistics
Value: Time-weighted average,
然后点击Add to list,将会添加到列表框中。
在Output Options中选择Map。
最后,点击“Execute”
4.
在GIS显示界面上会自动添加刚才计算的结果
(如右图)
5.
在屏幕上部的GIS工具条上选择
Spatial Analyst->Options…, 会出现一个
Options对话框。
在对话框可以设置Working directory(工作目
录)(保持默认值),而后在Analysis mask项
中选择catchment_meter作为分析的背景基
图。其它值都保持不变。
Working directory必须与数据库文件路径一
致.
(如果没有显示Spatial Analyst按钮,可从
GIS菜单Tools->Extensions选择Spatial
Analyst,将它添加到GIS界面上)。
2007版MIKE BASIN水资源软件完整实例培训教程
-
34-
在EXTENT标签下的Analysis extent 里选择
Same As Display。
点击OK。
6.
在屏幕上部的GIS工具条上选择Spatial
Analyst->Interpolate to Raster->Inverse
Distance Weighted…
将显示出一个对话框:Inverse Distance
Weighted。在对话框中,Input points一栏显
示的是刚才计算得到的雨量点图,不要修改。
保持其它设置不变。在Output raster中找到
保存的文件夹路径,并命名输出结果文件名:
Raster1
然后,点击OK。
在屏幕的下方会显示一个进度条,可能需要一
点时间将点图内插为一个Raster。
7.
内插后的Raster会自动添加到GIS Table of
Content上,并显示出来。如未显示,请在
Raster图左侧的复选框中打勾。结果应该看起
来如右图。
2007版MIKE BASIN水资源软件完整实例培训教程
-
35-
8.
可以在上图的基础上得到降雨等值线图。
在屏幕上部的GIS工具条上选择Spatial
Analyst->Surface Analysis->Contour。
会出现一个如右图的对话框,在Input surface
项中选择刚才生成的Raster图层
(Raster1),可以根据需要修改Contour
interval(如,0.001),在Output features
中输入输出结果文件名,如ctour1,默认的文
件后缀是.shp。
点击OK。
9.
可以看到,在GIS Table of Content上自动添
加了等雨量线图层。如右图。
3.2.5 Gap Fill(插补)
Gap Fill(插补)工具用于对时间序列中数据缺失部分进行插补,通常使用附近测站的数
据对缺失数据进行插补。
1.
2.
继续上一个练习
将练习所需要的时间序列导入进来。
可以建立一个新组名为Gap Fill,然后通过右击
该组在弹出菜单中选择Import Time Series ->
Quick Import dft0 file。
浏览目录: Data_GapFill,将Rainfall7,8_gap
二个文件导入进来。
3.
通过点击precipitaiton7和precipitation8
时间序列,在弹出菜单中选择“ Add To Time
Series Analysis”,将数据添加到时间序列编
辑器中。
用Data Coverage将显示两个序列,可以看出
precipitation7的数据中有数据缺失:1968年
2007版MIKE BASIN水资源软件完整实例培训教程
-
36-
1月1日至1968年4月30日,1972年,1978
年。现用离其最近的测站8的数据
(precipitation8)来插补。
4.
将两个时间序列都选中,然后选择菜单上
Process->Gap Fill…,
5.
将出现一个对话框,名为Gap Filling by
Cross-Referenceing。
其中,显示了两个时间序列之相关性,左侧显
示的是它们之间的相关系数为0.855,右侧显示
的是回归计算的优先顺序。左下部显示的是相
关关系式及关系式中各个变量所代表的时间序
列信息。
在本例中需要做插补是precipitation7,因此
Y应该是precipitation7。需要在
precipitation7和precipitation8相交的单
元格单击.确认Y是precipitation7.
按Execute按钮,现在开始执行插补过程。
6.现在时间序列编辑器的TSAnalysis Output上输出了插补的结果,可以用Data Coverage或Plot显示
插补后的precipitation7。如右图。
3.3 宏语言编程
通过编程可以访问MIKE BASIN的计算核心("引擎"),让你有最大的灵活度来改变计算或
实现计算自动化。
可以用Excel中的宏命令编程或者ArcGIS、或其它任何支持Microsoft技术的编程语言
(如Visual C++、Delphi等)、或者任何一种.Net语言(C#, Visual Basic .Net, 等等)
来实现访问。
通过COM/.Net接口,你可以访问和操纵任何包含在时间序列中的模型输入、输出文件,
并且你可以改变任何输入参数、对话框中的察看表格。但是,你不可以修改模型结构(比
2007版MIKE BASIN水资源软件完整实例培训教程
-
37-
如, 增加或删除节点,重新定义优先级,等等),这意味着从宏命令或其它程序使用MIKE
BASIN之前,你必须在ArcGIS标准用户界面预先建立了模型。
对MIKE BASIN引擎的直接访问是非常有用的,比如当你想做以下这些工作时:
通过蒙特-卡罗模拟方法,快速地做灵敏度分析;
对多个方案进行快速运行和分析;
使用Excel 的统计功能做结果的后处理,ArcGIS图表制作,或其它第三方程序;
除了MIKE BASIN 的标准分配算法,执行任何运行机制 (比如,具体的水库操作规
则);
动态控制模拟(逐步模拟,从上次时间步长中获得热启动,或是在一个时间步长内
迭代):
对ArcGIS 或 Excel 用户,很容易创建简单的MIKE BASIN 模型的接口 (非GIS用户
也可以执行);
对Excel工具做优化 ('Data' 菜单).
这个练习的目的是向用户介绍COM/.NET用户接口,以下两个练习将演示一些基本界面的
使用。
3.3.1Macro
1.该练习是基于如图所示的简单模型,启动时需
要打开名为'Macro '的MIKE
BASIN工程,它包含了完整的模型设置。
问题描述
(虚拟的)问题如下:在河边有一个用水户,
3
全年恒定取水0.1 m/s。由于流域上游来水变
化非常大,故必须建立一个水库来保证这种供
给。
子流域径流选择时间序列:
DHI_Catchment_0
2.管理部门要求任何时刻水库下泄至该河流的最小下泄流量为0.1 m/s,并且该取水点下游河道的最小流
量至少为0.15 m
3
/s。用水户的回流率为0.8,这意味着在正常的供水条件下,用水户将回流0.08 m
3
/s
的流量入河道,这足以满足需求。
出于不同的原因,从用水户的回流流量必须被分配到两条支流中(左支和右支) , 0.05 m
3
/s的流量被回
流入左支(对于完成需求是够了),其它的水量被回流到右支。左支和右支的分配比例为0.63 和 0.37。
在干旱年,水库回落到很低的水位,供水量被减少到需水量的80%。在这种情况下,为保证左支回流量
3
仍然维持在0.05 m
/s,回流的流量比例必须被修改。考虑到水库的水位、因而实际的供水是动态的,
不可能给MIKE BASIN提供预定义的回流比例的时间序列,于是宏功能就有了用途。
运行模型
运行MIKE BASIN模型。在固定回流比例的情况下计算,图形结果可以显示出,在水库水位偏低而使水
库供水能力较低时将导致左支回流流量偏低。
3
3.
4.
2007版MIKE BASIN水资源软件完整实例培训教程
-
38-
为了解决这个问题,MIKE BASIN宏功能可以在
计算过程中提取实际入流和用水户回流信息,
并用此信息来更新回流比例。MIKE BASIN宏助
手可以用来产生一个宏,用于解决此特殊问
题。
5.
创建宏
从MIKE BASIN下拉菜单中,选择宏助手。
6.命名宏:ReturnFlow(或者是任何你能识别的字
符串)
宏名字中不要带有空格.
7.在'Inputs to be set'标签页,选择在模拟期
需要被调整的所有变量。对于这个特别的问
题,我们可以更新这两条支流的回流流量。回
流流量定义在Rules(规则)内(Return flow
4 和Return flow 17)。双击选择。
8.在'Results to be retrieved'标签页下,我
们需要选择用水户节点下的三个项目/W4: Net
flow to node, Return flow to: River node
2 and Return flow to: River node 9(流向
节点的净流量, 回流流量到: 河道节点2和回
流流量到: 河道节点9)。确认选择了
'Current Time' (最后一列)。双击选择。
当按下'Generate'键后,宏助手就会产生一个
宏,可以用做一个解决特殊问题的开发模板。
在我们的例子里,我们需要使用检索信息,来
计算新的回流量。
9.
2007版MIKE BASIN水资源软件完整实例培训教程
-
39-
10.选择Tools/Macros/Visual Basic编辑器,打
开生成的宏代码。以下是代码的打印输出,并
有各部分代码的注释。请确认加入了一个'DHI
MIKE BASIN .Net/COM Engine Interface'引
用(Tools/References)。
11.基于生成的代码写一个宏,保证将河道节点2的回流控制在0.05 m/s,并且将回流的其它部分都送入
节点9(下面给出了一个方法)。
3
12.宏助手生成的代码
' MIKE BASIN macro generated 04/08/2005 12:56:33
' Under the Tools menu, , make sure to add 'DHI MIKE BASIN .Net/COM Engine Interface'
Public Sub ReturnFlows()
' any error will halt execution and be handled
On Error GoTo ErrorHandler
' declare variables
Dim engine As DHI_MikeBasin_
Dim feature As DHI_MikeBasin_bject
Dim iItemIndex, result, currDate
' initialize calculations
Set engine = New DHI_MikeBasin_
= True ' no progress info, no separate dialogs
tionDescription = "Macro Exercise WITH ReturnFlows" ' make sure macro does not overwrite normal simulation
lize "C:JovProjectsMikeBasin ExamplesTestDirMacro exercise", ""
' set inputs
Set feature = elObject("Return flow 4") ' Return Flow (N2)
iItemIndex = putIndex("TimeSeries", "Return flow fraction")
ut iItemIndex, #1/1/1981#, #1/1/1982#, 1
Set feature = elObject("Return flow 17") ' Return Flow (N9)
iItemIndex = putIndex("TimeSeries", "Return flow fraction")
ut iItemIndex, #1/1/1981#, #1/1/1982#, 1
' run the simulation time loop
currDate = tionStart
While currDate <> 0
teTimeStep currDate
所有错误由默认错误处理器处理。不要修改它,除非你打算用自己的错
误处理器替代。
此三行代码显示如何访问和设置回流量 (N2)
此三行代码显示如何访问和设置回流量 (N9)
运行单一时间步长。
显示如何检索 'Return flow
to: RiverNode 2'
和 'Net
Flow tonode'信息。
' get current (this time step's) results (if any)
Set feature = elObject("W4")
result = rentResult("Return flow to: River Node 2")
Set feature = elObject("W4")
result = rentResult("Net flow to node")
currDate = eTimeStep(True)
Wend
' get results for any time period (if any)
Exit Sub
End Sub
此循环在每一
时间步长内进
行,直至模拟
结束
因为SimulateTimeStep的时间步长设定可以包含同一时间步长内
的重复循环, 此方法是必须的,用于保证模型一旦在用户定义的标准
得到满足后计算能进入下一时间步长。
2007版MIKE BASIN水资源软件完整实例培训教程
-
40-
13.解决此问题的一个方案(需要将路径更改,其他部分可以直接复制粘贴)
' MIKE BASIN macro generated 2007-8-6 0:32:42
' Under the Tools menu, , make sure to add 'DHI MIKE BASIN .Net/COM Engine
Interface'
Public Sub ReturnFlows()
' any error will halt execution and be handled
On Error GoTo ErrorHandler
' declare variables
Dim engine As DHI_MikeBasin_
Dim WaterUser, E4, ReturnFlowFracToN2, ReturnFlowFracToN9 As
DHI_MikeBasin_bject
Dim iItemIndexN2, iItemIndexN9, result, currDate
Dim MinFlow, ReturnFlowToN2, Inflow As Double
' Minimum required return flow to N2
MinFlow = 0.05
' initialize calculations
Set engine = New DHI_MikeBasin_
= True ' no progress info, no separate dialogs
tionDescription = "Macro Exercise WITH ReturnFlows" ' make sure macro does
not overwrite normal simulation
lize "D:TempMacro", ""
' set inputs
Set ReturnFlowFracToN2 = elObject("Return flow 4") ' Return Flow (N2)
iItemIndexN2 = putIndex("TimeSeries", "Return flow fraction")
Set ReturnFlowFracToN9 = elObject("Return flow 17") ' Return Flow (N9)
iItemIndexN9 = putIndex("TimeSeries", "Return flow fraction")
Set WaterUser = elObject("W4")
' run the simulation time loop
currDate = tionStart
While currDate <> 0
teTimeStep currDate
' get current time step results results (if any)
ReturnFlowToN2 = rentResult("Return flow to: River Node 2")
Inflow = rentResult("Net flow to node")
If (Abs(ReturnFlowToN2 - MinFlow)) > 0.0001 Then
'Calculate new return fractions
NewReturnFractionN2 = MinFlow / Inflow
2007版MIKE BASIN水资源软件完整实例培训教程
-
41-
NewReturnFractionN9 = 0.8 - NewReturnFractionN2
' Set the newly calculated return flow fractions
ut iItemIndexN2, #1/1/1981#, #1/1/1982#,
NewReturnFractionN2
ut iItemIndexN9, #1/1/1981#, #1/1/1982#,
NewReturnFractionN9
' Restart simulation time step using the new return flow fractions
teTimeStep currDate
End If
' Advance date
currDate = eTimeStep(True)
Wend
Exit Sub
ErrorHandler:
Dim Msg, Button, Style, Title, Response
Msg = ption
Msg = Msg + Chr(13) + Chr(13) + "Continue?" + Chr(13) ' error message
Button = vbDefaultButton2 ' should not continue this macro by default
Style = vbYesNo + vbCritical + Button ' Define buttons and icon
Title = "MIKE BASIN Macro Error" ' Define title
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then ' User chose Yes
Resume ' continue this macro right after where the error occured
Else
Set engine = Nothing ' free memory
Exit Sub
End If
End Sub
3.3.2 excel_macro1
在Excel中进一步处理和分析MIKE BASIN模拟结果在实际应用中将是非常有用的。例
如,使用模拟结果来总结重要信息、进行一些经济分析或使用Excel中的图形功能。
本练习的目的是在Excel中写一个简单的宏,通过宏来读取MIKE BASIN的结果并将结果
写到Excel表中。
2007版MIKE BASIN水资源软件完整实例培训教程
-
42-
1.该练习的模型设置非常简单,如右图。首先,建
立一个新的MIKE BASIN工程,命名为
“Macro_excel”
2.运行模拟
创建一个时间序列0,然后运行
MIKE BASIN,模拟时间为2年,1980-01-01-
1982-01-01。然后绘制流域出口处的流量,如
“Water leaving the model area”。
3.创建宏模板
从MIKE BASIN下拉菜单中选择Macro Assistant。
命名宏的名字为“exceloutput”(或任何你能辨
别的名字)。
在'Results to be retrieved'栏中选择下列项:
“River node 2 Water leaving the model
area”。可以通过双击或使用蓝色箭头来选择。确
认选择了'Current Time' (最后一列)。
4.按下'Generate'按钮后,Macro Assistant将会生
成一个宏,该宏可作为模板用于某一特殊问题的进
一步开发。不要运行宏。
可以用Tools/Macros/Visual Basic Editor来打
开宏代码。下面给出了生成的代码。
表
在本例中,选择在Excel中运行宏。因此,需要在
Excel中建立一个新的宏,将刚才生成的宏代码拷
贝到Excel中的Visual Basic Editor。
6.打开一个新的Excel 表,试着将表中布局做得像右
图。
在以下表格中写:
1)表格B5中 “Path” ,在C5中输入数据
库所在的路径
2)表格B6 中“dbname”,在C6中输入数据
库名字
3)表格B9中 “Time”, 以及
4)表格C9 中“Flow”
先不要试着做图。
2007版MIKE BASIN水资源软件完整实例培训教程
-
43-
7.在Excel中打开Visual Basic Editor
下面给出了用于在Excel中显示MIKE BASIN结果的宏代码。
打开Visual basic Editor,将在MIKE BASIN中生成的宏代码拷贝进来。注意,下面代码中用黑体标注
的是在macro assistant自动生成的代码基础上需要添加或更改的内容。花点时间理解插入的或修改的
部分。
确保在引用中(在Tools/References下)添加'DHI MIKE BASIN .Net/COM Engine Interface'
------------------------------------------------------------------------
Public Sub exceloutput(path, dbname)
' any error will halt execution and be handled
On Error GoTo ErrorHandler
' declare variables
Dim engine As DHI_MikeBasin_
Dim feature As DHI_MikeBasin_bject
Dim iItemIndex, result, currDate
Dim iTS As Integer
' initialize calculations
Set engine = New DHI_MikeBasin_
= True ' no progress info, no separate dialogs
tionDescription = "run1" ' make sure macro does not overwrite normal
simulation
lize path, dbname
' set inputs
' run the simulation time loop
currDate = tionStart
iTS = 0
While currDate <> 0
teTimeStep currDate
' get current (this time step's) results (if any)
Set feature = elObject("N2")
result = rentResult("Water leaving model area")
' Write data and result to spreadsheet
2007版MIKE BASIN水资源软件完整实例培训教程
-
44-
(10 + iTS, 2) = currDate
(10 + iTS, 3) = result
currDate = eTimeStep(True)
iTS = iTS + 1
Wend
' get results for any time period (if any)
Exit Sub
ErrorHandler:
Dim Msg, Button, Style, Title, Response
Msg = ption
If <> 100 And <> 101 Then ' 100/101 is MIKE BASIN error, which has
separate ID
Msg = Msg + Chr(13) + Str()
End If
Msg = Msg + Chr(13) + Chr(13) + "Continue?" + Chr(13) ' error message.
If = 101 Then
Button = vbDefaultButton1 ' MIKE BASIN error 101: may continue this macro by default
Else
Button = vbDefaultButton2 ' All other errors: should NOT continue this macro by
default
End If
Style = vbYesNo + vbCritical + Button ' Define buttons and icon
Title = "MIKE BASIN Macro Error" ' Define title
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then ' User chose Yes
Resume ' continue this macro right after where the error occured
Else
Set Engine = Nothing ' free memory
Exit Sub
End If
End Sub
8.如何制作运行MB的按钮
在菜单中插入Control Toolbox工具条(可以从View-> Toolbars中找到)。点击Command Button工
具,并在表区中拖拽出一个矩形。然后在按钮上右击,选择CommandButton object->Edit,将文字改为
“run MB”。
注意,Private Sub CommandButton1_Click()这一部分的程序是用于运行按钮的执行。
9.在Visual Basic Editor中编辑代码
按照下列显示的编写代码:
Private Sub CommandButton1_Click()
Dim path, dbname
path = Worksheets("Sheet1").Range("C5").Value
dbname = Worksheets("Sheet1").Range("C6").Value
2007版MIKE BASIN水资源软件完整实例培训教程
-
45-
Call exceloutput(path, dbname)
End Sub
10.在运行宏之前,首先要编译宏,然后保存excel表,退出后再打开该表。
11.点击运行按钮,MIKE BASIN模拟结果应该出现在表中。现在可以做相应的图了。
3.4 优化
该练习的目的在于演示MIKE BASIN中内置的优化功能。练习中使用的例子包含一个简单
的水库和一个从水库中取水的用水户。
1.
该模型设置的示意图如右所示:
问题描述
水库从上游流域来水,流量日变化很大。当前,用
水户终年不断地从水库中取水,其流量为恒定
3
0.5 m
/s。这个数值远低于水库泄流能力,水库
每年的泄流量很大(可以通过运行模型来验证这一
点)。
数据输入:
流域面积:500 km
2
流域径流:如右表中所示。
水库
在Operation标签上添加洪水控制规则,新建一
时间序列,使用默认值。
在Priority Downstream Users下新建时间序
列,使用默认值。
用水户需水量:0.5 m
/s(恒定值),其余值为
0。
3
2.该练习的目的是使用MIKE BASIN的优化功能来找出从水库中抽取的最大水量,假设需水是恒定的,同时
能够把需水量的缺口降到最低。优化结果为一年中恒定的抽水量。
如果取水量设得过大,水库的入流就会立即被取走。这样做将会使用水最大化,但是在旱季将会导致很
大的用水缺口。另一方面,如果取水量设得过小,在雨季水库就会溢流,对于用水户来说,这部分水会
白白流失。但是,对于低用水量来说,在一年中用水需求都可以得到满足,也就意味着用水缺口保持在
低水平。基于以上考虑,可以很清楚地看出,“优化”容量取决于我们能够接受的用水缺口。
在优化开始之前,我们需要考虑哪些参数应该被优化,哪些参数可以用来评估模拟的效果(即用于评估
目标函数的变量).
因此优化变量设定为用水量,优化的目标函数项应该包括实际的用水量和用水缺口。优化的任务在于找
出在最大程度上满足实际用水需求,并且能够使用水缺口保持在最小的用水量。以下为必要的操作步
骤。
2007版MIKE BASIN水资源软件完整实例培训教程
-
46-
1.在MIKE BASIN的下拉列表中选择
'Optimization Problem…'.
2.在'Variables to be optimized'下,选
择’Water demand' for Water user node
W9 (模型中唯一的用水户)。双击选择。
3.根据模拟时段(1/1/1981 - 1/1/1982)来
设置'Period start' 和'Period end'。把
上下边界分别设置为 0和100 m
3
/s。设
置'First guess'为10 m
3
/s。
4.在'Objective function terms'选项卡
下,选择'Water demand deficit' 和
'Used Water'。并再次确认模拟时段是否正
确。
5.由于我们要使’用水量used water’最
大化,该参数需要被赋予一个负的权值
(Weight和Weight Beyon)。对于初次优
化,设置权值为-1,其余区域保持不变。
6.‘用水缺口量water demand deficit’
是需要最小化的变量,所以设置权值为正数
(Weight和Weight Beyon),在此设置为
1,保持其他区域不变,点击OK。
7.从MIKE BASIN下拉菜单中选择
'Run
MIKE BASIN simulation'。在点击'Run'之
前,确认'Optimization'被选中(在对话框
的顶部)。运行优化并查看结果。
在MIKE BASIN运行框中,时间步长请选择
1 Day.注意:如果是选择1Month,会影响
优化的精度.
此外,在Result Group Definition中,需
要选择<none> (full results).否则优化
结果会不正确.
8.优化结束之后,将会弹出一个对话框,
显示优化后的抽水量为1.971 m
3
/s。检查结
果。水库是否依旧溢水?在所有时段用水缺
口是否为零?水库水位变化情况与用水户取
水情况是否相关?
右图为时间步长为1 Day的优化结果,红线
是优化后从水库的取水量。Extraction
2007版MIKE BASIN水资源软件完整实例培训教程
-
47-
from Reservoir Node.
比较,右图为时间步长为1Month的优化结
果.
BASIN的最优解反映了我们赋给两
个不同要求下(高用水量、低缺口量)的权
值。结果显示,在这样的两个权值下(1和-
1),在一个月中用水缺口量为50%。如果我
们不愿接受这样大的缺口,必须增大目标函
数中'用水缺口项'的权值。
右击用水户,选择时间序列Time
Series…,选择Relative deficit,然后
点击Plot绘出图形.
10. 再次打开'Optimization problem…'对
话框,在'Objective function terms'选项
卡下,增加用水户的’Relative deficit '
项,且它的权值weight (以及
weight
beyond),设为5。运行优化,查看在大权
值下,用水缺口在所有时段是如何保持为零
的。这样做的'代价'为抽水量降为
1.78
3
m/s.
2007版MIKE BASIN水资源软件完整实例培训教程
-
48-
4 补充部分
4.1伪DEM
您的区域如果没有DEM,通过等分已知河流间距,还可运用‘伪DEM’来完成描述流域的
任务。如果您有一个相当详细的河网图,这种方法将行之有效。这里以巴西的库里提巴
河的数据为例。在没有真正DEM的情况下,使用这种方法,仍然可获得完备的流域描
述。
新的视窗打开,选择“View”菜单中的“Add
Theme”,并在练习数据子目录下添加
“” 和 “”文件。
显示这些专题,观察他们的形状。
注意河流与流域边界图在出口重合。这一点很重
要,计算机计算流向时,追溯河流系统直至流域边
界(见图)。
创建流域
创建一个伪DEM
在MIKE BASIN菜单中点击“Process DEM…“(处
理DEM)。点击创建 Pseudo-DEM并确定河流图层与
流域边界图层在对话框中被正确地指明。
设定单元大小为50。单元的大小应不超过河流与河
流、河流与流域边界之间最小距离的三分之一,汇
流处除外。否则的话,一些河流会被合并,导致流
向无法被正确地确定。
所得到的结果是一个平坦的“DEM”, 除了在河流流
经处。此结果可作为一个正规的DEM使用。计算出
在地表平面上的流向之后,水流流向最近的(河
流)低点,然后流出直至流域的出口。
2007版MIKE BASIN水资源软件完整实例培训教程
-
49-
创建流向,为了不再显示可点击关闭伪DEM。
可使用拟似DEM系统,如同练习5所示,追踪河
流,描述流域。最终模型将如右图所示。
2007版MIKE BASIN水资源软件完整实例培训教程
-
50-
4.2创建水质模型
4.2.1创建水动力模型
1.
打开电脑中保存练习文件的工作目录
2.
从windows program启动 MIKE BASIN
Start ->
Programs ->
DHI Software ->
MIKE BASIN ->
MIKE BASIN
3.从有练习数据的工作目录中选择:
Start a new application with a new database
创建一个 Geodatabase
进入 (或浏览 ) 工作目录
在文件列表中创建一个文件名为
“” 的新数据库文件。
4.
5.加载数字高程模型
加载一个背景图,如地形基图,这样可以容易地
对研究区域的河流进行数字化。或者使用DEM
(数字高程模型)根据地形信息自动生成水系。
浏览练习数据,加载如下DEM:“Filldem1”
在ArcMap 标准工具栏中按键。
在
Table of Contents中就包含了一个新图层
“Filldem1”, 确保它是可见的(在图形要素的
左边框中打勾)
在目前的显示范围内,栅格图可能看不见,因此
右击该图层(层名为“Filldem1”),选择
“Zoom To Layer”
点击zoom to layer后, 可以选择
放大图
像,或者使用放大工具。 (若这些工具未显
示,可以通过选择View->Toolbars->Tools from
the main menu来实现)
2007版MIKE BASIN水资源软件完整实例培训教程
-
51-
6.保存工程文件.
现在可以保存所创建的图形文件。该文件记录了
添加到工程内的图层和图例,包括添加的
。
选择File->Save,在工作目录中保存该文件为
“” 。
以后会重新打开并使用该文件。
7.准备DEM用于绘制河网
开始绘制河网之前,先要计算流向栅格图。
选择MIKE BASIN ->
该对话框提供了处理和调整DEM的选项。从下拉
菜单中选择DEM (filldem1),点击“Calculate
Flow Direction”。
水流向栅格图看起来应该像:
8.使用DEM数字化一个简单的河网
找到Mike Basin工具栏(如右图所示)。
若该工具栏未显示,从主菜单中选择View-
>Toolbars->Mike Basin。
选择Trace River Tool (红色圆圈标识).
现在可以自动地数字化河网。作为一个例子,先
数字化一个有2条河流的河网。用鼠标点击1号
点和2号点的位置(如图所示)。
2
1
2007版MIKE BASIN水资源软件完整实例培训教程
-
52-
结果如右图所示:
此时,在河流支流的结束点和汇合点会自动生成
计算节点。
保存并停止编辑.
9.通过在河网中添加流域节点来描绘流域
选择 “Add Catchment Node” 按钮。
点击箭头所标识的位置,在数字化好的河流内插
入节点。对于左边标识的位置,将流域节点放在
河流节点上。
结果如右图所示:
注意: 如果有任何操作错误,可以在编辑Edit菜
单中选择 “Undo”。
添加流域节点后会出现如右图所示的绿色区域,
代表集水区或产流区,径流通过这些流域节点流
入到河流中。
根据DEM来描绘流域的边界,可以点击
Delineate Catchment tool (红圈所示)。
结果如右图所示:
该简单设置中包括2条支流,5个节点和2个子
流域。
2007版MIKE BASIN水资源软件完整实例培训教程
-
53-
10.保存编辑
当结束对河网的编辑后,点击“Stop Editing”
键保存当前编辑。在弹出的保存当前编辑的对话
框中,选择“Yes”。一旦选择保存,编辑内容会
提交给数据库,此时不能再撤销当前编辑内容。
11.设定输入信息属性
河流中的水流是由流域中的地表径流产生的,必须给每个流域输入一个时间序列的地表径流量。
右键点击子流域,在弹出的菜单中选择MIKEBASIN properties ,出现一个属性对话框。(注意:如果
弹出的是不同的属性对话框,可以选择上了另一个较近的要素。取消该对话框再试一次。可以通过放大
工具来帮助避开一些要素,而只选中所需的要素。)或者使用MIKE BASIN 工具栏中的
子流域多边形。
,左键点击
给子流域命名,category是可选项,用于区分用户定义的要素分类。可以采用自动给流域面积赋值或者
2
不选择“Use shape area for assigned area”,而输入每个子流域的面积为1000 km
。
对第一个子流域输入径流数据时,需点击“New” 键(如红圈所示)。当提示输入文件名时,输入
“runoff”。此时会自动生成一个正确格式的缺省时间序列,并以“0” 文件名保存。(该
时间序列将会在下一步中调用)。
对另一个流域输入径流数据时,只需从弹出菜单中选择“0”时间序列文件即可。注意:时
间序列文件中是的径流模数(单位面积的径流量),因此对于不同大小的子流域无需修改时间序列(假
定它们的水文条件相似)。
12.查看时间序列文件
使用Temporal Analyst时间分析模块对时间序列
(输入和输出时间序列)进行查看和编辑。
Temporal Analyst的使用功能已经整合在Mike
Basin对话框中,将在本练习的后面在查看练习
的结果文件时详细地了解这些功能。
查看径流时间序列,点击子流域属性对话框的
“Plot/Edit…” 键(红圈标识),时间序列将
会出现在屏幕底部的绘图区。
注意:时间序列的时间段从1981年1月1日
00:00:00 到1982年1月1日(该数据行为空
白),时间序列数据值为1 l/s/km^2。
保持缺省值并关闭绘图窗口。
现在,在Specific Runoff对话框中点击
“OK” ,完成对子流域的属性设定。
13.运行模型
完成所有输入后,可以进行河网水流的模拟。从
Mike Basin工具栏中选择 “Run Mike Basin
Simulation…” 。
2007版MIKE BASIN水资源软件完整实例培训教程
-
54-
模拟对话框会出现:
将起止日期改为1999年1月1日和2001年1月
1日。确保在“Associate with features in
map”检查框处打勾,并在Description处输入文
件名,如Sim1。
保持其他选项不变。
点击“Run” 键开始模拟。此时会出现一个进程
对话框,显示模拟的进程。当模拟结束时该对话
框会关闭。
14.使用Temporal Analyst时间分析模块分析结果.
当模拟结束后,在table of contents中选择
“Time Series”一栏。
所有与数据库连接的时间序列将会显示在列表
中。时间序列可以保存在数据库中,也可以保存
为外部文件中。Mike Basin 的时间序列通常保存
为外部的*.dfs0 文件中,这是一种有效的存储时
间序列的方式。
打开“ProjectData” 项和“MIKE BASIN
Simulation sim1” 时间序列组(若未看见该
项,右键点击“ProjectData”节点并选择
“Refresh”)。
注意:当点击任何结果时间序列时,与之相应的
要素在图上会闪动。也可以右键点击要素,在弹
出菜单中选择 “Time Series…”来访问结果时
间序列。在这种情况下,对话框中仅列出与该要
素相关的时间序列。
右键点击一个结果时间序列并选择
“Plot/edit”。绘制好一个时间序列后,可以通
过点击右键选择 “Add To Plot”再次添加其他
时间序列在该时间序列上。
尝试查看不同支流的“Flow”时间序列文件。
可以看到:最下游节点处的流量是2个子流域的
径流总和(为了便于比较,将这三个结果时间序
列绘制在同一图中)。
还可以看到:在整个模拟期间流量保持不变。这
是因为输入的径流时间序列在全年中为一常数。
2007版MIKE BASIN水资源软件完整实例培训教程
-
55-
15.保存项目文件并退出.
在File菜单中选择 “Save”,再选择“Exit” 。如果想继续做练习2,可以保持项目文件打开的状
态。
4.2.2 在模型中添加一个用水户
1.
2.
从windows program 启动MIKE BASIN,重新打
开练习1中的
插入用水户节点:点击“Add Water user”,
将光标放置在下游子流域中间的某个地方并点
击鼠标。
点击“Add Channel” ,将用水户与河流连在
一起。
从河流节点上画一条河道连接至用水户,再从
用水户画一条河道连接至河流的出口处。
河网如右图所示:
停止编辑并保存编辑。
3.
设定用水户属性.
选择工具,点击刚才插入的用水户,打开
用水户Mike basin属性对话框
点击“”键,添加一个新的缺省用水户
时间序列。给新时间序列命名(如
0)点击OK。可以点击
“edit” ,在Water demand项中添加新数值
或保持缺省值。在本练习保持数值不变。
“Priority of upstream supply node” 中
的内容已经设定好了,无需进行任何改变。
该用户的回流规则已经被创建了,但没有设定
回流时间序列。该时间序列表明在供水过程中
有多少水回流至河流中。
在“Return flow rule(s)” 部分点击“Edit
rule” (
)
出现一个新对话框:
点击“New..” 键,为回流创建一个缺省的时
间序列,命名为“0” 并点击
OK。点击“edit” 将所有的回流值改为1,表
示所有从上游获取的水都返回到下游的节点
处。保存已做修改。
2007版MIKE BASIN水资源软件完整实例培训教程
-
56-
点击OK关闭对话框。回到用水户属性对话框,
点击“OK”
4.
设定供水优先权
用水户获取水的节点现在有两个下游节点:用
水户和下游河流节点,因此要对它们如何获取
水设定一个优先规则。
打开取水节点的属性窗口(使用
该节点)
工具并点击
在“Priority of downstream demand” 列表
中,已经添加了一个缺省值。要改变规则,将
第一优先选项设为用水户。而对于下游节点,
它是最后一个节点无需进行设定,因为假定所
有剩余的水(如果有的话)将流至最后一个节
点处。完成后,对话框如右图所示,点击
“OK”.
5.
运行模型.
命名为 “sim2”。
6.
分析用水户节点的结果.
右键点击用水户节点,选择“Plot simulation
output time series.…”可以查看所有与该
节点相关的模拟时间序列结果。选择sim2中任
何一个输出的时间序列,点击plot查看时间序
列结果。
注意:到现在为止,水质浓度的输入参数值还
未确定。现主要搭建基本的水量平衡模型。详
细的水质模型设置见下一节。
7.
保存并退出.
2007版MIKE BASIN水资源软件完整实例培训教程
-
57-
4.2.3在模型中加入水质模型
1.
2.
重新打开练习
启动水质模型模块
选择MIKE BASIN->Options.
在 Water Quality检查框处打勾并点击OK.
3.
设定子流域的负荷
打开子流域的属性窗口(使用
流域多边形)。
工具并点击子
给每个子流域设定污染负荷,在“Water
Quality in runoff time series”栏中设定质
量流时间序列。您可以确定一个质量时间序列
(kg/sec),或者浓度时间序列(mg/l),甚至是
单位面积质量时间序列(g/m2/sec)。
或者,使用Load Calculator(负荷计算器)
Load Calculator (见后面介绍),根据不同
污染源类型、滞留过程以及径流状况来计算污
染负荷。
点击“Water Quality in runoff time
series” 中的“” 来设定一个简单的
污染物负荷质量通量时间序列,会生成一个新
的缺省时间序列,命名为
“Runoff_0” 并点击OK。默认的时间
序列单位是单位面积质量时间序列
(g/m2/sec)。
在时间分析器的目录中右击“Plot/Edit
Collection”打开新建的时间序列。时间序列
中已经包括了几个预先设定的污染物:BOD,
DO, NH4, NO3, P和Ecoli。缺省值为零。
改变其数值,如对BOD成分输入一个新值(单位
为: g/m2/s),如图所示,然后右击BOD,选
2007版MIKE BASIN水资源软件完整实例培训教程
-
58-
择“Item Properties”,一个“TSItem
Properties”对话框出现。
“Item type” 可以从“Concentration” 改
变成“Specific Solute Flux Per Area” 。
并且在“Item type”下,有很多不同的数值单
位可以选择。
在此练习中,我们保持 “Item Type” 不变,
但是将 “Unit”从 “g/m2/sec”变为
“g/m2/day”。对剩余的其他参数都重复上面
的操作步骤:NH4, NO3, P, DO, “User
defined”. 对于 Ecoli ,“Item type”是
Bacteria flux,将它的unit从“1/m2/sec”
变为“1000/m2/day”。
对于BOD, NH4, NO3 和 P 将他们每一个时间步
长的数值都变为 0.003 g/m2/day 。注意将每
个时间序列的最后一栏数值设为空白!
选择File->Save进行保存。点击OK。
对第二个子流域重复上面的操作步骤。
4.
设定供水中的负荷
打开用水户节点的属性窗口(使用
击节点)。
工具并点
进入到Water Quality列表. 点击“ ”
键创建一个新的点源时间序列,命名该时间序
列为“Watersupply_0” ,点击
“Edit” ,添加供水过程中回流水中污染物的
浓度。
另外,可以将上游来水中的污染物浓度添加到
回流水中的浓度中,通过选择add point
solutes to the incoming concentration。
2007版MIKE BASIN水资源软件完整实例培训教程
-
59-
5.
设定流域各支流的传输时间
为了计算污染物在河流中的衰减和停留,需要
传输时间(或停留时间)的信息。
打开河流Reach Properties属性窗口(使用
工具并点击某一个河段)。
进入水动力Hydraulics列表。在MIKE BASIN
中,可以根据流量和河宽(假定为一矩形断
面)计算水位,从而计算传输时间。有两种计
算水深的方法:根据水位流量关系曲线
(Rating Curve)和曼宁公式(Mannings
formula)。
在本练习中选择 “Mannings formula”.
设定Mannings number(曼宁数)为0.05
slope(坡降)为0.02
max level(最大水位)为5
进入水质Water Quality列表。
在 “Calculate decay based on:”下拉菜单
中选择 “Specific width,calculated
depth”。
河流长度(Reach length)是自动计算的,该
值可能会计算过大。
在水质模型中需要设定一个参数组(parameter
set),该参数组中包括了水质模型所必需的参
数。点击“”
命名参数组为 “Parameterset1”。使用各缺
省参数值。
给Temperature(温度)创建一个新的时间序
列,点击“New..” ,命名该新时间序列为
“Parameter_0”。如果要对温度值进
行修改,则点击“edit”键并保存。
点击OK。
2007版MIKE BASIN水资源软件完整实例培训教程
-
60-
最后一步是设定河流宽度。在河流Reach
properties中进入 “General” 列表。
在“River WidthSection” 中输入河流的宽
度,如10。
对所有支流重复以上步骤。
对于Link Channels(连接河道),为了简化计
算,在河流Reaches properties 对话框中点击
“Water Quality” 列表,选择
“Conservative Transport” 。
6.
运行模型
命名为sim3
7.
分析下游节点的结果.
右键点击最下游的节点,选择 “Plot simulation output time series.…”
可以看到与该节点相关的所有模拟时间序列结果。选择sim3中BOD组分的时间序列输出文件,点击
plot查看时间序列结果。
4.3使用Load Calculator估算污染物负荷
4.3.1根据城市污染源计算污染物负荷
1.打开Population (人口)图
本练习中将根据人口图来量化来自人口的污染负
荷。
打开位于练习文件夹中“LOAD input”目录下的
文件。
2007版MIKE BASIN水资源软件完整实例培训教程
-
61-
2.打开Load Calculator(负荷计算器)
选择MIKE BASIN->Load Calculator
打开Load Calculator:
3.添加一个新污染源
点击“ ”添加一个新污染源。命名该污染源
为 “Population” ,从下拉菜单中选择method
为“Domestic”。点击OK。
4.对生活污染源进行设定
选择代表人口分布的图层(Population)。
选择Population shape文件属性表中的一项,该项
具有各区域的唯一名字(=INC)。
选择属性表中的population count(计数)field
项,该项具有人口数 (=Population)。
确保在对话框底部的“Maps and statistics” 和
“MIKE BASIN” 检查框前打勾。
设定“Time distribution”时间序列,可以根据
时间来分配负荷。点击“New ...” 键,命名时间
序列为alpha_0,对于所有时间步长内所有
污染物,缺省值为1,表示污染源不随时间变化。
点击OK保持缺省值。
点击 “Loads per Capita”,设定每人每单位时间
2007版MIKE BASIN水资源软件完整实例培训教程
-
62-
所产生的平均负荷量。
点击键开始进行编辑状态,输入BOD为19(选
择单位kg/year),总氮为4(选择单位
kg/year)。
点击
结束编辑并保存编辑内容。
5.传输设定
再transport菜单中有三个标签,在general标签
中,MIKE BASIN默认catchment图层为负荷计算图
层,如果用户希望使用其它mxd工程中的图层进行
计算,可以通过import catchment 功能导入其它
的土层。
在此练习中,使用MIKE BASIN 默认的Catchment
图层,用户不需另外导入其它图层。点击
“Catchment properties”键,打开子流域属性输
入列表。
点击
键开始编辑状态。根据子流域径流时间序
列覆盖的时间段来设定起止时间(参见练习1)。
当运行Load calculator 时,会计算出每个子流域
的总径流量,并用非点源产生的总负荷除以总径流
量,来计算出非点源的平均径流污染物浓度。为了
生成MIKE BASIN 的非点源边界,将该径流污染物
浓度乘以径流时间序列可获得随时间变化的污染物
通量。
在WQFraction_NH4项中设定数值(如0.8),代表
氨氮占总氮的比例。
6.运行Load Calculation
点击OK,开始执行负荷计算。计算过程中对每个子
流域,将累加由人所产生的污染负荷,并生成代表
污染负荷通量的时间序列。如果在MIKE BASIN检查
框处打勾,计算的时间序列将会自动地加到MIKE
BASIN流域属性中,作为水质模型的输入文件。要
查看该项内容,打开Catchment properties(子流
域属性)对话框,编辑已设定好的水质时间序列。
除了时间序列,还会生成一个负荷结果表,并在窗
口底部自动被打开。
该表显示了不同类型污染源在每个子流域的总负
荷。
2007版MIKE BASIN水资源软件完整实例培训教程
-
63-
7.使用新的计算负荷再次运行MIKE BASIN.
重新运行练习3(水质部分)的MIKE BASIN模拟,
命名为Sim4.新的模拟将包括负荷计算器Load
Calculator计算出的人口负荷。
分别在两个流域出口节点右击鼠标,选择Time
Series…,将sim4结果中的NO3浓度与 sim3结果
相比较,发现有较大的差异。
4.3.2 根据工业污染源计算污染物负荷
1.打开工业的点源污染图层(或者其他的点源污染)
在此练习中,用户会学习计算点源污染物负荷(例如
工业)。打开在Open the “LOAD input” 文件夹
中的图层。
2.打开Load Calculator(负荷计算器)
选择MIKE BASIN->Load Calculator
打开Load Calculator:
3.添加一个新污染源
点击“ ”添加一个新污染源。命名该污染源为
“Industry BOD” ,从下拉菜单中选择method 为
“Point Sour”。点击OK。
2007版MIKE BASIN水资源软件完整实例培训教程
-
64-
4.对点源污染进行设定
选择代表人口分布的图层(industry)。
选择图层属性表中的一项,该项具有各区域的唯一名
字(= FID)。
选择属性表中的count(计数)field项,该项具有年
BOD总负荷数 (=LOADB)。选择unit是 “kg/yr” 并
且 component是 “BOD”。
确保在对话框底部的“Maps and statistics” 和
“MIKE BASIN” 检查框前打勾。
设定“Time distribution”时间序列,从下拉箭头
里选择与计算城市污染负荷时所使用的同样的时间序
列。
出于率定的需要,径流系数可以针对每一个点源和污
染物设定。径流系数数值在0和1之间变化,代表流
入河道里的污染物负荷占总负荷的比例。
点击 “” 来确定每个点源
和污染物的参数值。
点击
键开始进行编辑状态。点击
保存编辑内容。
结束编辑并
在此,我们保持所有的系数都是默认值1。
5.传输设定
在此选项中,没有新增的输入数值。
6.运行Load Calculation
点击OK,开始执行负荷计算。计算过程中对每个子流
域,将累加由人以及工业所产生的污染负荷。负荷结
果表将会在窗口底部再次自动打开。
7.使用新的计算负荷再次运行MIKE BASIN.
重新运行MIKE BASIN模拟,命名为Sim5。新的模拟
将包括负荷计算器Load Calculator计算出的人口负
荷和工业负荷。
2007版MIKE BASIN水资源软件完整实例培训教程
-
65-
4.3.3根据农业污染源计算污染物负荷
1.打开牲畜和化肥消耗的图层(或者其他的点源污
染)
在此练习中,用户会学习计算农业的非点源污染
物负荷(例如牲畜和化肥)。打开在Open the
“LOAD input” 文件夹中的图
层。
2.打开Load Calculator(负荷计算器)
选择MIKE BASIN->Load Calculator
打开Load Calculator:
3.添加一个新的牲畜污染源
点击“ ”添加一个新污染源。命名该污染
源为“Cows” ,从下拉菜单中选择method 为
““Livestock”。点击OK。
2007版MIKE BASIN水资源软件完整实例培训教程
-
66-
4.对牲畜污染源进行设定
选择牲畜分布的图层()。
选择图层属性表中的一项,该项具有各区域的唯
一名字(= FID)。
属性表中的count(计数)field项选择牛的总数
(=Cows)。
点击 “Loads per Capita”,设定每头牛每单位
时间所产生的平均负荷量。
键开始进行编辑状态。对 BOD选择150点击
(选择单位kg/year) 以及总 Nitrogen 是25 (选
择单位kg/year)。点击
内容。
结束编辑并保存编辑
确保在对话框底部的“Maps and statistics”
和“MIKE BASIN” 检查框前打勾。
设定“Time distribution”时间序列,从下拉
箭头里选择与计算城市污染负荷时所使用的同样
的时间序列。
出于率定的需要,径流系数可以针对每一个区域
和土地利用类型。径流系数数值在0和1之间变
化,代表流入河道里的污染物负荷占总负荷的比
例。
我们将会在后面的练习中介绍另一个径流选项
“Including distance decay”。
点击 “” 来确定每个
点源和污染物的参数值。
点击
键开始进行编辑状态。点击
辑并保存编辑内容。
结束编
在此,我们保持所有的系数都是默认值1。
5.添加一个新的化肥污染源
点击“ ”添加一个新污染源。命名该污染
源为““Fertilizer N” ,从下拉菜单中选择
method 为““Fertilizer ”。点击OK。
2007版MIKE BASIN水资源软件完整实例培训教程
-
67-
6.对化肥污染源进行设定
选择化肥分布的图层()。
选择图层属性表中的一项,该项具有各区域的唯
一名字(= FID)。
属性表中的count(计数)field项,选择年化肥
消耗总量(=Fert_N)。选择unit是 “kg/yr” 并
且 component是 “Ntot”。
确保在对话框底部的“Maps and statistics”
和“MIKE BASIN” 检查框前打勾。
设定“Time distribution”时间序列,从下拉
箭头里选择与计算城市污染负荷时所使用的同样
的时间序列。
出于率定的需要,径流系数可以针对每一个点源
和污染物设定。径流系数数值在0和1之间变
化,代表流入河道里的污染物负荷占总负荷的比
例。
点击 “” 来确定每个
点源和污染物的参数值。
点击键开始进行编辑状态。点击
辑并保存编辑内容。
结束编
在此,我们保持所有的系数都是默认值1。
7.传输设定
类似于化肥和牲畜的非点源污染流入河道的程度
取决于径流的过程。而点源污染则不受径流过程
的影响
(例如城市和工业污染)。
Catchment properties” 表格中,在“
WQRunoffStartTime与WQRunoffEndTime
。
你
start time” 和一个 “end time”。这可以确定一个 “
个时段是用来计算每一个非点源污染排出的平均
径流浓度(例如牲畜和化肥污染)。在这时段内
总径流量将会根据每个子流域的径流时间序列被
计算出来。
根据非点源的总负荷
(kg)除以时段内的总径流量
得到平均的浓度。
在MIKE BASIN 中,这个浓度乘以径流时间序
列,得到进入河道的随时间变化的污染物负荷。
点击键开始进行编辑状态。点击
保存编辑内容。
结束编辑并
现在我们输入 1/1/1999 为开始时间,1/1/2000为
结束时间。
2007版MIKE BASIN水资源软件完整实例培训教程
-
68-
8.运行Load Calculation
点击OK,开始执行负荷计算。计算过程中对每个
子流域,将累加由人口以及工业以及农业所产生
的污染负荷。负荷结果表将会在窗口底部再次自
动打开。
注意: 对于每个污染源,都有一列单位是
“mg/l”的数值列出。这是与子流域径流里产生
的非点源污染有关。
9.使用新的计算负荷再次运行MIKE BASIN.
重新运行MIKE BASIN模拟,命名为Sim6。新的模拟将包括负荷计算器Load Calculator计算出的人口
负荷和工业负荷、农业负荷。
4.3.4 包含 “Distance Specific Decay”
在这个练习中我们将学习怎样应用距离降解
“distance specific decay”作为一种参数,在
污染物讲解中使用。
Gradient grid (坡度网格) -从下拉式菜单中选
择一个代表地形坡度的网格图,每一个网格值代
表无量纲的坡度。可以用空间分析的标准功能来
生成坡度栅格图。
一阶距离降解方程:
注意:
在实际应用中可用平均流域坡度来替代,
比如用一个常量为1的栅格图。
Distance grid (距离网格)-从下拉式菜单中选
择一个距离栅格图,每一个网格的值代表各网格
点到河道的距离。可以用空间分析的标准功能来
生成距离栅格图。
Detailed grid output (详细网格输出)-在"详
细网格输出"框里打勾,在计算后则会生成一些网
格图,并被添加入到ArcGIS浏览器中。计算中涉
及到的每类污染源的每种污染物组分都会生成一
个网格图。每个网格图代表了使用距离降解后每
个网格单元的总负荷通量,如公斤/年。
Decay Rates (降解率)... –点击该按钮打开降
解编辑器,可对来自不同类型污染源的各种污染
物组分设定一级降解率。降解率也作为率定参
数。
m
river
–
流入河道的通量
m
load
–
单元网格流出的通量
K –
一阶降解系数
D –
是该网格到河道的最短距离
G –
地形坡度
T –
平均温度(摄氏度)
2007版MIKE BASIN水资源软件完整实例培训教程
-
69-
1.
生成“distance” 图层
每个 “distance” 图层的数值代表从某个网格
到下游河道上最近一点的公里数,它的高程用
DEM表示。这个距离是通过空间分析中的“path
distance”功能计算得到的。
距离网格是用来计算每个网格中滞留了多少污染
物,它是通过距离的函数表示。
它假设离河越远,越少的污染物会流入河道。距
离和降解之间的关系是通过简单的一阶方程来表
示。
说明:
距离降解功能用于模拟与距离有关的污染
物滞留。假设污染物的入河量与传输距离相关,
即靠河流越近,污染的贡献就越大。距离降解计
算为简单的一级距离降解。
点击
按钮,打开 ArcCatalog ,找到当前工
程下的DHI Network Features -> DHI
BranchFeatures,右键点击选择Export -> To
Shapefile (Single)…在出现的对话框中定义输
出文件名和存储路径。点击OK生成代表河网的线
Shape 文件(命名为Traced_).
说明:
图中蓝线为追踪的河网,坐标范围覆盖了所
有子流域,这样可以保证之后生成的距离栅格图
的范围可以涵盖整个流域范围。
在ArcMap标准工具栏中选择
按钮
在出现的ArcToolbox下找到Spatial Analyst
Tools -> Distance -> Path Distance, 双击后
出现一个对话框:
选择 Input raster or feature source data 为
代表河网的线Shape 文件(Traced_);
选择Input surface rater 为DEM (filldem1),
点击OK。在界面最底部点击Environments…,在
弹出的界面中选择General Setting,在Output
Extent的下拉箭头中选择Same as Layer
filldem1。点OK。
2007版MIKE BASIN水资源软件完整实例培训教程
-
70-
完成后点CLOSE,有新的图层显示出来。
2.
生成“Gradient ‘’ 网格图层
每个 “Gradient” 网格的数值代表每个网格单
元的坡度,(单位unit是: -/-).。
Spatial Analyst ->Surface Analysis ->
Slope…打来Slope对话框来设置和生成。这样可
以根据DEM生成反映实际情况的坡度栅格图:
选择 Input raster 为DEM文件(filldem1);选
择Output measurement (optional)为
PERCENT_RISE。在界面最底部点击
Environments…,在弹出的界面中选择General
Setting,在Output Extent的下拉箭头中选择
Same as Layer filldem1。点OK。
完成后点CLOSE,有新的图层显示出来。
此外也可以通过在工具栏上选择Spatial
Analyst ->Surface Analysis -> Slope…打来
Slope对话框来设置和生成:
2007版MIKE BASIN水资源软件完整实例培训教程
-
71-
根据DEM生成的坡度栅格图的范围和网格大小是
与DEM保持一致的;而根据DEM和河网文件生成
的距离栅格图的范围则会受到河网坐标范围的影
响。所以要确保两个栅格图的范围和网格大小相
同。否则会出现右侧的错误。
一般在实际操作中,对于平原地区可以使用常量
为1的坡度栅格图,即忽略坡度对距离降解的影
响(理论上坡度越缓,流速越小,降解越大)。
如果用户想生成坡度为恒定值的栅格数据,则可
以使用下面的方法:
在Spatial Analyst 工具栏下选择Spatial
Analyst -> Reclassify …
将Input raster 选择所使用的流域DEM图,即
filldem1。
点击”Classify…”按钮,选择级别数
(classes:)为1,然后将 New values 设为1。
点击OK后就会生成了一个与距离栅格图的范围和
网格大小相同的,各网格值为1的坡度栅格图。
3.
打开Load Calculator(负荷计算器)
选择MIKE BASIN->Load Calculator
打开Load Calculator:
2007版MIKE BASIN水资源软件完整实例培训教程
-
72-
4.
确定距离降解参数
点击 “Distance Decay” 表格.
在 “Gradient Grid”的下拉选项中选择
“gradient”网格图层。在 “Distance Grid”
的下拉选项中选择 “distance”网格图层。在水
温度选项中选择默认数值20。
说明:当时用距离降解选项时,每个子流域中的
污染物的消减都取决于每个污染源的径流系数和
由于距离所产生的降解的共同作用。
区别这两种消减类型的方法是:径流系数表示污
染物从表层土壤(例如根区)下渗的比例,而距
离降解表示污染物在从污染源传输到河道的过程
中消减的负荷。
点击“” 按钮。一个输入表格将
会打开。
点击
键开始进行编辑状态。点击
辑并保存编辑内容。
结束编
现在我们将三种污染源Agriculture, Domestic
and Point sources的BOD, NTot 和Ptot的值
设为“0.1”, 表示所有的负荷都会按1级降解
系数0.1 km
-1
而消减。
如果对于每一个单元网格有一个以上的点源污
染,则会弹出右侧的对话框,在本次练习中将不
作介绍。
5.
运行Load Calculation
点击OK,开始执行负荷计算。计算过程中对每个
子流域,将累加由人口以及工业以及农业所产生
的污染负荷。负荷结果表将会在窗口底部再次自
动打开。
注意:由于load calculator的代码原因,用户
所使用的工作路径必须为英文名称,否则会出现
错误。
说明:此外在负荷结果表格中有很多的网格,它
的数值表示每个网格排入河道中的总负荷贡献。
这些网格输出结果可以被用于更深入的空间分
析,这里将不做讨论。
2007版MIKE BASIN水资源软件完整实例培训教程
-
73-
6.
使用新的计算负荷再次运行MIKE BASIN.
重新运行MIKE BASIN模拟,命名为Sim7。新的
模拟将包括负荷计算器Load Calculator使用距
离降解计算出的人口负荷和工业负荷、农业负
荷。
7.
分析计算结果:
*在Timeseries标签里,有Load_0文件,
例如BOD都是溶质通量Solution Flux单位
(kg/s)。计算结果的时段对应于流域属性对话框
中径流时间序列0中的时段(1981-1-
1到1982-1-1)。当Load Calculator成功运行
完之后才会出现,不用运行MIKE BASIN。
BOD [kg/s]
0.100690
0.100685
0.100680
此外,打开子流域的属性对话框,在下部的
water quality in runoff time series中,发
现时间序列已经被自动的替换为Load_0,
绘出图形,看到的是现在污染物的单位是溶质通
量Solution Flux单位(kg/s),而不是早前的
Runoff_0中的Specific Solute Flux
Per Area单位(g/m2/day)。
0.100675
0.100670
0.100665
0.100660
JanFebMarAprMayJunJulAugSepOctNovDec
8881
*在流域内的河道及子流域的出口节点处。例如
BOD都是浓度Concentration单位(mg/l)。计算
结果的时段对应于MIKE BASIN运算Run属性对话
框中的时段(1999-1-1到2000-1-1 )。只有当
MIKE BASIN成功运行完之后才会出现。且可以得
到Concentration(mg/l)=Solution Flux(kg/s)
/ sub-catchment total runoff(m
3
/s)
2007版MIKE BASIN水资源软件完整实例培训教程
-
74-
N5|BOD [mg/l]
100.700
100.690
100.680
100.670
100.660
19992000
在模型底部,弹出的负荷计算结果:
单位为kg/yr的是代表每年的通量,单位为mg/l
的是代表BODNonPoint除以子流域的total
runoff。计算的时段是在general标签下的
catchment properties中,WQRunoffStartTime
与WQRunoffEndTime之间的时段。
2007版MIKE BASIN水资源软件完整实例培训教程
-
75-
显示输出结果的污染物二维栅格图:
对照着一开始添加的shape文件,可以看见在临
时文件夹下生成两类栅格图。一是不使用距离降
解的已包括出流系数的根据行政区划分布的污染
源分布图,另一个是污染物使用距离降解并包括
出流系数后的污染物负荷图。
使用距离降解的污染物二维栅格图
行政区划shapefile图
二维栅格图属性表
不使用距离降解的污染物二维栅格图
4.3.5 其它设置
1.
包含基流Baseflow!
平时河道中实测的污染物浓度的变化,一个很重要的因素是因为河道内的水量有部分是来自于地下水。地下水
的污染物浓度明显地比地表水或者排水管道中的浓度要低。
因此,非点源污染为主的子流域在低流量时段的污染物浓度很低,而在高流量时段由于坡面流和排水排污水量
的增加,污染物浓度会升高。为了模拟这样一种情况,可以使用选项
“baseflow” –在MIKE BASIN Catchment
属性表格里的时间序列。可以通过以下步骤实现:
2007版MIKE BASIN水资源软件完整实例培训教程
-
76-
2.
确定Baseflow时间序列
-在时间分析器Temporal Analyst 的目录菜单中右击
Geodatabase数据库图标导入一个时间序列: Import
Time series->Quick import dfs0
-浏览工作目录并选择 Baseflow_0. 一个
新的组将会加入到目录中,命名为 “Groundwater
Recharge” ,里面包含一个时间序列。
还要检查所给的基流时间序列的数值大小不能大于对应
的子流域计算结果的总径流量,否则会出现以下的错误
信息。
此外,Baseflow的ItemType应当是Specific runoff,
uint是l/s/Km^2,Timeype是
Non_Equidistant_Calendar。
-打开MIKE BASIN Catchment 属性表格: MIKEBSIN-
>MIKE BASIN Attributes->Catchments
-点击
键开始进行编辑状态。
-找到 BaseflowTS 列
-选中BaseflowTS 列中的第一个单元格
-选择 “” 按钮
-选择Groundwater recharge组
-选择 “Open Group” 。这时时间序列就会被添加到
子流域1的base flow中。
- 点击
结束编辑并保存编辑内容。
注意:catchment properties中的
WQRunoffStartTime与WQRunoffEndTime的时间,要落在
子流域属性对话框内Runoff TmeSeries的时间序列时段
内。否则计算时会弹出下列的错误信息。
2007版MIKE BASIN水资源软件完整实例培训教程
-
77-
3.确定Baseflow 浓度
选择MIKE BASIN->Load Calculator
打开Load Calculator:
点击 “” 按钮.
在 “Transport/General” 对话框打开负荷的
Catchment Properties:
-点击键开始进行编辑状态。
-在每个子流域的每个污染物包含
“” 的列中输入数值 0.1 mg/l 用
以表示基流中的浓度。
因此,当流域径流中仅有基流部分时,径流的总浓度将
会等于0.1 mg/l。
-点击结束编辑并保存编辑内容。
4.使用新的计算负荷再次运行Load Calculation和MIKE
BASIN。
新的水质模拟将会基流的影响。
2024年8月26日发(作者:布乐容)
2007版MIKE BASIN水资源软件完整实例培训教程
2007
版
MIKE BASIN
水资源软件完整实例
培训教程
2007版MIKE BASIN水资源软件完整实例培训教程
目 录
1 MIKE BASIN模型基本搭建............................................1
1.1 DEM 建立模型..............................................................1
1.2运用Shapefile图层生成流域.................................................6
1.3添加用水户................................................................9
1.4用水户分配规则...........................................................11
1.5分流节点设置.............................................................12
2 模型高级设置.....................................................14
2.1添加水库.................................................................14
2.2水力发电模拟.............................................................16
2.3河流设置及演算...........................................................17
2.4地下水的应用.............................................................19
3 其他模型功能介绍.................................................21
3.1 NAM降雨-径流模拟........................................................21
3.2 如何使用25
3.2.1 Gapfilling(数据插补)...............................................28
3.2.2 Double Mass Analysis(双累积曲线分析)...............................29
3.2.3 Combine(合并)......................................................30
3.2.4 Evaluate .32
3.2.5 Gap Fill(插补).....................................................35
3.3 宏语言编程...............................................................36
3.3.37
2007版MIKE BASIN水资源软件完整实例培训教程
3.3.2 41
3.4 优化.....................................................................45
4 补充部分.........................................................48
4.1伪48
4.2 创建水质模型.............................................................50
4.2.1创建水动力模型........................................................50
4.2.2 在模型中添加一个用水户...............................................55
4.2.3在模型中加入水质模型..................................................57
4.3使用Load Calculator估算污染物负荷........................................60
4.3.1根据城市污染源计算污染物负荷..........................................60
4.3.2 根据工业污染源计算污染物负荷.........................................63
4.3.3根据农业污染源计算污染物负荷..........................................65
4.3.4包含 “Distance Specific Decay”......................................68
4.3.5其它设置..............................................................75
2007版MIKE BASIN水资源软件完整实例培训教程
-
1-
1 MIKE BASIN模型基本搭建
1.1 DEM 建立模型
1. 从windows程序管理器中运行MIKE BASIN
开始–>程序->DHI 软件->MIKE BASIN
在ArcGIS 的开始窗口中可能会提示你指定一个
新地图。点击OK 然后找到MIKE BASIN 工具
栏。在MIKE BASIN 菜单中点击开始一个新项目
这一栏。
将出现一个新的对话框,查看选项并选择Start
a new project with a new database.即可开始
一个拥有新数据库的新项目。
点击OK。
2.创建一个新的地理数据库
进入(或浏览)您先前创建的目录。
输入数据库名称,或者保留预设的
“”。
点击保存。
在MIKE BASIN Options 对话框中点击OK。
3. 加入一个DEM层作为背景图像
在背景中加入一个图像,能容易地让您对研究区
Press the
toolbar.
域内的河流进行数字化。
浏览您下载的练习数据并将以下DEM文件添加到
你的地图:Capefeardem
新的地图层会出现在ArcGIS浏览器中。确认它
显示出来(选择该图层左边的框)。
在当前区域范围内图像可能无法看到。可直接点
击capefeardem层,然后选择“Zoom To
Layer”(缩放至该层)。
在图层显示之后,您可用缩放按钮
推近观
button on the ArcMap standard
察。或者使用放大工具。(如果这些工具没
出现,请从主菜单中选择View->Toolbars-
>Tools)。
2007版MIKE BASIN水资源软件完整实例培训教程
-
2-
4. 在工具栏中的MIKE BASIN 菜单中选择
“Process DEM…”
出现一个流域描述菜单。
注意DEM文件已自动加载,可直接用于处理。
接着必需先计算水流向。点击“计算水流向”
(“Calculate Flow Direction”)按钮。依
据计算机的运行速度,计算一般需要耗费几秒
种。运行结束后ArcGIS浏览器中将添加一个新
的(流向)图层。
您不需要查看该层。
2007版MIKE BASIN水资源软件完整实例培训教程
-
3-
5. 描述河流
此时在工具栏中有两个工具被激活了。接着在
DEM中探查您感兴趣的河流水流路线。点击“追
工具。然踪河流”(“Trace River”)
后点击模型中所含的河流上游端点。
此DEM提供的地貌信息非常详细,所以整个河网
在DEM中清晰可见。利用先前计算的流向网格,
电脑从您点击的地方开始自动追踪河流下游的流
径。
如果您认为追踪结果不合理,可按键盘上的“删
除”“delete”键,删除上一次追踪的河流。
请记住您此时处于编辑模式。
结果需如向右图所示:
6. 在河网中加入流域节点(流域出口节点)
请注意:河流节点在每个河段上下游会自动添
,以此描述流域加。在河流上指定流域节点
情况。节点代表流域的入流点或出口。在描述流
域时,计算机从节点的各个方向追踪上游河流,
运用流向网格来确定流向这个点的区域。
注意:通过点击河流节点上的流域节点,您也可
以替换河流节点。
每次流域节点被加入模型后,会暂时出现形似
“香肠”的流域。
2007版MIKE BASIN水资源软件完整实例培训教程
-
4-
7. 创建流域
运用工具栏上的“描述流域”(“Delineate
catchments”)
创建真正的子流域。
结果需如右图示:
8. 添加其它要素,运行模型
添加各流域的径流时间序列,运行此模型。
右击集水区或选择MB属性工具(见图)并点击
集水区,将出现一个属性对话框。
(注:如果出现了一个不同的属性对话框,这是
因为你选择了临近的一个要素。可以放大局部区
域以便选择你所需要的)
你可为集水区命名。集水区类型是可选的(例如
用于区分不同用户定义的要素类型)。在指定面
积项中为每个集水区设定面积为2000 km2(两
条支流输入1000 km2)。(输入的集水区面积
并不需要与集水区大小成比例)。
当为第一个集水区输入径流数据时,点击
“new”按钮。当提示输入文件名时输入
“runoff”。系统将自动生成和保存格式正确的
时间序列文件,比如“0”(该时间
序列将在下一步被系统检查)。
当我们为下一个集水区输入径流数据时,只需要
从下拉菜单中选择“0”时间序列。
注意此时的时间序列为径流模数数据,因此对于
不同的集水区并不需要我们修改时间序列(假定
它们的水文特性相同)。
9. 查看和编辑时间序列
输入和输出的时间序列可以被查看和编辑。将在
以下的练习中介绍。
为了查看径流时间序列,在集水区属性对话框中
点击“Plot/Edit…”按钮,时间序列曲线将出
现在屏幕的底部。
注意时间序列包含81年1月1日到82年1月1
日的数据,单位为1 l/s/km^2。
2007版MIKE BASIN水资源软件完整实例培训教程
-
5-
保持默认值不做改动,关闭窗口。
现在,我们在径流模数对话框中点击“OK”,完
成集水区的属性输入。
10.模拟运行
完成了所有输入之后,现在你能模拟河网水流
了。从Mike Basin菜单中选择“Run Mike
Basin Simulation…”。
Simulation对话框将弹出:
将开始和结束时间设定为1980-01-01和1981-
01-01。确保已选中“Associate with features
in map”,输入“sim1”作为模拟描述名。
其它选项保持不变。
点击“Run”开始模拟,这时将出现一个进度
条,显示模拟进行到哪个阶段,当模拟完成时,
进度条关闭。
11.在时间序列管理器中分析结果
当模拟完成时,在ArcGIS浏览器中选择
“TimeSeires”标签。
数据库中所有的时间序列会显示在这个标签中。
时间序列可能被储存在数据库或外部文件中。
Mike Basin 时间序列一般被储存在外部*.dfs0
文件中,因为这是一个有效的储存方式。
打开“ProjectData”项,然后“MIKE BASIN
Simulation sim1”时间序列组(如果看不到,
右击“ProjectData”,选择“Refresh”)
注意,当你点击任意结果时间序列,相应的要素
将在地图上闪烁。你也能通过右击所要查看的图
形要素,从关联菜单中选择“Time Series…”
来访问这些结果时间序列。此时将打开一个对话
框,该对话框列出了所有与此要素相关的时间序
列。
点击结果时间序列,选择“Plot/Edit”。一旦
你绘制了一个时间序列你便能增加另一个时间序
列,点击“Add To Plot”。
2007版MIKE BASIN水资源软件完整实例培训教程
-
6-
试着检查河段的“Flow”时间序列。你能注意到
交汇点以下的流量是两个支流流量的和(在同一
图中绘制,进行比较)。你也能注意到模拟过程
中流量并没有改变,这是因为输入的径流时间序
列是一个常量
在文件菜单中,选择“Save”
1.2运用Shapefile图层生成流域
1. 点击工具条中的添加按钮,弹出添加数据框。
分别选中“Shapefile生成流域”文件夹中的
两个图层,并分别添加到MIKE BASIN中。
2. 在右上角出现图层。使用放大按钮,将此区
域放大。
点MIKE BASIN菜单中的Copy Branch
Shapes….弹出的对话框中,选择All
Shapes。按Copy。生成了河流。
2007版MIKE BASIN水资源软件完整实例培训教程
-
7-
不过我们注意到此河流流向与下游子流域的
流向相反。则我们将在Editor工具条的下拉
菜单中选择Stop Editing.在弹出的对话框
中选择不保存所做的修改。
并重新再此选择MIKE BASIN菜单中的Copy
Branch Shapes….弹出的对话框中,选择
All Shapes。这次选择了Flip Direction
(反向流向),按Copy。生成了河流。此时
的河流流向与下游一致。选择Stop
Editing。保存所做的修改。
2007版MIKE BASIN水资源软件完整实例培训教程
-
8-
显示Polygon_exercise图层。在Editor菜
单中选择Start Editing。选择数据库
Personal Geodatabase。
选择添加流域节点
。在
Polygon_exercise图层和新添加河道的下游
相交交点出点击。此时将会出现一个子流
域,默认的细长型。
选择MIKE BASIN菜单中的Copy Catchment
Shapes…并选择Polygon_exercise图层中
的多边形。在点击Select branch to
assign shape to:右边的箭头后,选择在流
域节点以上并且在多边形范围内的那一段新
添加河道。
2007版MIKE BASIN水资源软件完整实例培训教程
-
9-
则我们可以看到新添加的子流域与现有的
shapefile图层一致。在Editor菜单中选择
Stop Editing。并保存所做修改。
将新建的子流域的面积设为10000KM2.使用
0。选择Start Editing,并在
MIKE BASIN工具条上选择添加河道按钮,将
新添加的河道下游与子流域上游节点想连
接。Stop Editing。点运行按钮运行模型。
1.3添加用水户
1.选择Start Editing,选择数据库Personal
Geodatabase。添加一个用水户节点。(不要在
河流上)
然后单击“Add Channel”将用水户连接到河流
上。由河流节点画一个明渠连接到用水户。再画
另一个明渠连接用水户和下游河流上的一个节
点。
你们所画的网络看起来应该象这样:
停止编辑并保存。Stop Editing
2007版MIKE BASIN水资源软件完整实例培训教程
-
10-
2.设定用水户属性
右键单击你刚才添加的用水户,然后在下拉菜单
中选择“Properties…”。
当添加一个用水户(需水量)时间序列时,优先
权规则将自动地包括进去。因为只有一个上游节
点,你不需要更改默认设置。
回水规则设置是可选项可以不用包括进去。
一个用水户节点可以有多个水源和多个回流点。
这将在其它练习中讨论到。
对于时间序列数据,按下New按钮并命名文件为
“0”。然后按下EDIT按钮,
0时间序列就显示出来。
3.在时间序列显示中,将81年1月1日00:00:00
到81年5月1日00:00:00的时间段中的数据修
改为3 m3/s。
在序列图的File菜单中选择“Save Data”然后
关闭序列图。
回到Water User Properties(用水户属性)对
话框,按下“OK”。
4. 在Return flow rule(s)中,点按钮,弹出数据
输入框,新建一个dfs0文件。命名为Return
flow。使用默认值。点OK。
5.保存设置
2007版MIKE BASIN水资源软件完整实例培训教程
-
11-
6. 运行模型
将模拟命名为“sim3”
7. 分析用水户的结果文件
右键点击用水户节点,选择“Time Series…”
("时间序列 …")。
你将看见与这个节点相关联的全部时间序列。
选择“Water Demand Deficit” ("需水量不足
")时间序列并且点击“Plot”。然后选择
“Extraction from River Node”时间序列并且
点击“Add To Plot”。
在结果时间序列中,你会发现用水需求并不是都
能得到满足。结果中的周期性变化是MIKE BASIN
数据循环产生的结果。
数据循环的意思是,如果模拟的时间段超出输入数据的
时间段,那么模型会使用已有的最近一年中相同时间段
的数据。在本例中,
0时间序列只有
1981的数据(见练习1中第11步)。因此,模拟中
1982和1983部分数据使用的是1981的数据。所有
的时间序列的处理方法都采用这种方法。
1.4用水户分配规则
1.
模型添加新的用水户,并添加2个新的供水渠
道。
2. 设置用水户属性及取水优先级
设定此用水户的时间序列为Water User2,需水
量为常数3 m3/s。
3. 设定分配优先权
a)设定优先权规则,水首先取自左边流域,而后
再取自右边流域。运行模型。
b)设定需求比例规则,每个水源有相等的优先
权,每个水源的取水量为总需水量的0.5。起
一个新的模拟名称来运行模型。
2007版MIKE BASIN水资源软件完整实例培训教程
-
12-
4. 分析结果并讨论结果
1)查看每个水源的水是如何分配,以及水量的
不足。
2)绘制从每个水源抽取的水量(extraction)
和缺水量(water deficit)。
1.5分流节点设置
1.Start Editing,使用add river branch按钮数
字化一个(假设的)分流渠,双击鼠标结束分流渠。
结果看起来应该像右图:停止编辑并保存。Stop
Editing。
2007版MIKE BASIN水资源软件完整实例培训教程
-
13-
2.点击工具条上的要素属性按钮,然后点击新添
加河道的上游节点,设置分流节点属性。点击编辑
规则按钮,弹出输入数据框。
3. 这里有两种方式进行设置。我们在这里使用时间序
列Timeseries…,按新建按钮,命名为
Bifurcation,使用默认值,所有时刻的流量为2
m3/s 。点OK。保存。并运行模拟。
注意:分流节点只可以设置一个规则。若添加第二
个规则时,则会出现右侧的错误提示。
您可以尝试使用另一个选项来设置分流点规则。
2007版MIKE BASIN水资源软件完整实例培训教程
-
14-
2 模型高级设置
2.1添加水库
1.把一个水库添加到河道上,并且新建一个用水
户,然后从水库到用水户节点添加一条取水渠。
以及回水渠。
停止编辑并且保存编辑。
用水户的需水量时间序列使用
0,回水时间序列使用Return
0。
2. 设定水库的general(通用)属性
选择要素属性按钮,然后点击水库。或者
右键点击水库节点,然后选择" Mike Basin
Properties”
将reservoir type(水库类型)保留为“rule
curve reservoir”。
你也可以给水库取一个名称。
将initial water level(初始水位)设为540
[m].
添加level volume area table(水位-库容-
面积表)和losses and gains(损失和增益)
时间序列。水位-容积-面积表设定了水库的形
状,并用来确定库容和蒸发面积,而损失/增益
时间序列则设定了蒸发速度、降雨引起的水量
增加和河床渗漏损失。
创建一个characteristic levels(特征水
位)时间序列和一个losses and gains(损失
/增益)时间序列。你可以通过绘制这些时间
序列来看它们包含哪些数据,但是保留默认
值,不要做任何修改。注意,表中第一列是
“height”(而不是“time”)。
对话框如右图示(现在可以不按“OK”,而按
Apply。)
2007版MIKE BASIN水资源软件完整实例培训教程
-
15-
3. 设定水库操作属性
水库有很多属性,在属性对话框中分成了几个
标签项。现在点击"operation"标签项(本练习
不包括water quality) 。
在operation rules表内,为每种操作规则类
型增加一个合适的新规则:minimum release
(最小下泄量),maximum limit of release
(最大极限下泄量),minimum operation
level(最低运行水位),flood control
level(防洪限制水位)。记住为每一个操作
规则创建一个时间序列。
最后,为下游用水户添加优先权规则
(Priority of downstream users)。选择用
水户为第一优先权。可以注意到,下游用户已
经自动包括在菜单内。只需要设定优先权顺序
和规则(reduction levels 消落水位和
reduction ratios消减率)。Rule
0。
运行模型。确认正确。
将水库initial water level 改为 544m.
在右上角在练习2中添加的子流域属性框中,将
流域面积改为3200 KM2。将与水库连接的用水
户的时间序列改为Water 0。即为常
数0.5 m3/s。
在Remote flow control对话框中,按添加按
钮
,注意选择的Rule Type: Remote min
flow requirement rule.选择新添用水户下游
的子流域出口节点作为远程控制点。时间序列
命名为Remote 0。将所有数值改
为4.5 m3/s。
最终,对话框应该看起来如右图这样:
现在可以点击OK。
在这个练习中我们不进入第3 个标签项来设定
溢洪道属性。
4. 运行模拟,分析结果
分别查看用水库和水户节点的时间序列。
如果用水户调用的水量超出水库入流水量时,在一
年中的部分时段水库的库容可能会变为零的。在有
余水的时候,水库则能充满。
2007版MIKE BASIN水资源软件完整实例培训教程
-
16-
2.2水力发电模拟
1.Start Editing,在水库旁添加一个水电
站,并从水库到水电站添加一个取水连
接渠道及回到河道的回水渠道。Stop
Editing。
此时,在水库属性对话框中的操作规则
标签里的为下游用水户添加优先权规则
(Priority of downstream users)
中,需要编辑新添加的水电站属性。选
择的时间序列也可以是Rule
0。
2.定义下列水力发电方案中的参数:
目标电量Target power = 2MW
机装容量Installed capacity = 6 MW
激活“use surplus capacity”选
项。use surplus capacity=1
尾水位Tail water level = 2 m(即
默认值)
机组效率Machine efficiency = 80 %
(恒定值)
2007版MIKE BASIN水资源软件完整实例培训教程
-
17-
3.运行模型
使用日时间步长
查看模型计算的发电量以及水位结果。
2.3河流设置及演算
1. 选择一条河道,并且打开此河道的属性对话
框。如右图所示。
在通用标签中,河道损失时间序列,命名为
Reaches_0,将其中的
seepage losses factor的1~3月,7~9月
设为0.5。
在河道演算标签中,选择选择马斯京根演算
参数K= 60 天,x= 0.2。
2007版MIKE BASIN水资源软件完整实例培训教程
-
18-
2. 运行模型
并分析结果
用洪水波传递方法wave translation计
算,使用槽蓄系数,K= 124天(4个月)。
没有波变形参数X。
注意:河道演算时必须遵循一定的标准。见
右图,否则模型在默认情况下不会计算不符
合标准的演算。
注意:在马斯京根演算时,可能出现的关于
参数设置的警告信息。
2007版MIKE BASIN水资源软件完整实例培训教程
-
19-
2.4地下水的应用
1. 在MIKE BASIN菜单中,选择OPTION。勾选
Groundwater选项。选择OK。
在右侧所示子流域的属性对话框中的通用标签
里,选择地下水为一层(single layer)。
2007版MIKE BASIN水资源软件完整实例培训教程
-
20-
2.在地下水标签中,填入适当的参数。新建一个地
下水补给时间序列,命名为groundwater
0。使用默认值。
3. 选择有两个基本点引水渠道的用水户节点,打开它
的属性框。修改它所使用的water 0。
将Groundwater use fraction改为0.2。
在地下水标签中,选择Fraction of total
demand。Supplying catchment中选择所选择的子
流域Catchment 4。
4. 运行模型。分析结果。
注意:用水户取水可以不通过所在子流域,也可
以从外流域取地下水。但是必须要在用水户地下
水标签中设定。
2007版MIKE BASIN水资源软件完整实例培训教程
-
21-
3 其他模型功能介绍
3.1 NAM降雨-径流模拟
1.选择TimeSeries时间序列标签。
右击projectData这一行。弹出快捷菜
单。选择Import Time Series…/Quick
Import dfs0 files…。
2.在弹出的对话框中,找到NAM降雨径流文
件夹,分别选择0,
0。导入到时间序列标签
中。
2007版MIKE BASIN水资源软件完整实例培训教程
-
22-
3. 定义参数
在MIKE BASIN菜单中进入Rainfall-
Runoff,并打开Surface-Rootzone菜单
以设置参数
点选择图形要素工具
辑按钮
。
,选中上图的子流域。然后在界面下侧的NAM属性框的右上角,选择开始编
输入下面的参数:
地表水参数,命名为test_surf
接下来是地下水参数:命名为test_GW
初始条件:命名为test_Initial
最后是参数总览:
2007版MIKE BASIN水资源软件完整实例培训教程
-
23-
在RainfallTS列下,单击单元格,然后在左上角选择按钮Select TS….,在弹出的对话框中,先选择
所需要的时间序列TS的组,然后选择第一个时间序列.点击Open TimeSeries。类似地,选择
PotentialEvaporationTS.保存所做的修改并停止编辑。
先运行NAM模拟。
点击运行模拟,定义模拟时间段:
1/1/1996 – 12/31/1996
当NAM运行后,可以察看到,在流域属性对
话框中,径流时间序列区项中,径流时间序
列已经自动添加进来了。打开一个流域的时
间序列,可以看到包括了.Baseflow,
Interflow, Overlandflow以及Runoff.
将上述四个时间序列PLOT在一张图上,查看
结果.经过NAM的计算:
Runoff 近似地等于Overlandflow ,
Interflow , Baseflow三者的和。
2007版MIKE BASIN水资源软件完整实例培训教程
-
24-
此时,打开流域属性对话框,我们可以看
到,已经有一个时间序列填入到了Runoff
中.再运行MIKE BASIN,模拟节点流量。
注:如果在MIKE BASIN工具栏/
, 勾选Groundwater。并且在
NAM的参数总览中的Model Type中选择
ICM-1 layer GW,则可以在流域属性框中,
Groundwater标签里的Groundwater
recharge time series中选择已经NAM计
算出的地下水时间序列。
例如右图所示
test,Baseflow_Total,Catchment10
2007版MIKE BASIN水资源软件完整实例培训教程
-
25-
运行MIKE BASIN,将时间步长设为1天。
3.2 如何使用Temporal Analyst
本练习介绍如何使用Temporal Analyst(时间序列分析器)。在本练习中将会学到如何
建立一个新工程,并导入要素和数据文件,以及进行一系列的数据分析。
1.由程序管理器中启动MIKE
Start ->Programs ->DHI Software ->MIKE BASIN ->MIKE BASIN
2.
ArcMap的开始窗口将会提示设定一个新图层。点
击OK。
而后从ArcMap界面中启动ArcCatalog,由File
菜单中创建一个新数据库。选择New->Personal
Geodatabase。放入所选定的文件夹中。
将shape文件导出到geodatabase
想把哪个shape文件导入到geodatabase中就在
哪个文件上右击,而后选择Export-> To
geodatabase (single)。
Output Location中填所需要添加到的数据库,
并制定路径。Output Feature Class Name中填
在数据库中新添加要素的名称,可以和原有图层
名一致。点击OK。
2007版MIKE BASIN水资源软件完整实例培训教程
-
26-
把所有shape图层(catchment_,
,,
)放入数据库之后,退出
ArcCatalog。
3.
添加新图层到MIKE BASIN中
选择MIKE BASIN菜单下的New/Open
Project…,选择Start a new project with an
existing daabase。之后,在弹出的对话框中选
中刚新建的Personal Geodatabase。系统会自动
生成一个默认的MIKE BASIN Project。
将shape 文件添加到Project中。由
Geodatabase中选择刚刚新添加的四个Feature
图层文件。
在ArcMap标准工具条上按
添加按钮。
最后添加1文件作为背景图
所有添加的shape文件应该显示在Table of
Contents中。
可以根据情况修改每个图层的显示,包括图示、
颜色等,最后得到整个图形显示看起来象右图所
示。
4.
使用data loader导入时间序列
在Table of content上点击Time series标签。
右击数据库层,在下拉菜单中选择Time Series
Data Loader.
2007版MIKE BASIN水资源软件完整实例培训教程
-
27-
会出现一个对话框,名为Time Series Data
Loader-Batch File。在该对话框中设定一个文本
文件名,该文件与所要导入的时间序列数据之间
有着一定的链接,其中包括将时间序列与ArcMap
图层中的要素相关联的ID信息。
首先选择文本文件,然后点
击next。
在阅读手册中有关调用数据的相关章节前,先看
一下文本文件的内容。根据右图所示设定相关参
数,而后点击Next。
给要调用数据创建一个新的数据组,名为
Precipitation(如右图),然后点击Finish.
在数据库下的刚才命名的组中显示了调用的数
据。
现在可以用同样的方法将其它数据导入进来,如
地下水数据()、流量数据
()。现在已经把所有数据导入进来
了,可以点击每个时间序列,检查它们是否正确
地与图层要素相关联上。
Sensor name field:选择No field.
2007版MIKE BASIN水资源软件完整实例培训教程
-
28-
3.2.1 Gapfilling(数据插补)
1.使用上述的步骤将0导入到工程
中。使用批处理文件,并建立一
个新组,名为Rainfall。
注意:在Feature class 中选择DHI_Nodes,并且
在左上角的How to map files and features选
择Attribute in batch file.在Sensor name
field中,选择No field.
使用Plot绘制precipitation station 1的时间
序列图,而后用zoom in放大1968年前6个月的
时间序列,可以注意到二月和四月中有数据中
断。
现在,右击rainfall组,选择Add to Time
Series Analysis。在屏幕的下方TSAnalysis
中显示了刚刚添加的时间序列。
将前三个时间序列选上,点击菜单上的Process-
>Gap Fill。
会出现一个对话框,如右图所示。
点击Execute按钮,在TSAnalysis Output中会
显示出三个时间序列。绘制precipitation
station 1时间序列图,可以注意到二月和四月
份的数据中断已经得到插补,如下图所示。
红色线是差补之后,蓝色线是插补之前.
2.
保存已处理好的时间序列
在TSAnalysis Output中点击刚才经过插补的第
一个时间序列precipitaion station 1,然后在
Time series菜单中选择save。
创建一个新组,名为Rainfall Processed,而后
通过dfs Timeseries Bridge,将其保存到指定
的文件夹下,命名为
rainfall_0。
现在右击rainfall_0,将其添加
到时间序列分析器中。
可以注意到该时间序列是来自于插补分析的,属
2007版MIKE BASIN水资源软件完整实例培训教程
-
29-
于rainfall_processed组。
3.
使用TS的calculator(计算器)计算平均降雨
量
首先计算四个时间序列的平均值(precipitation
station 2 3 5和经过插补的时间序列)。
在TSAnalysis Iutput中将这四个时间序列选择
上,然后点击Process->Calculator。
在计算器中已经包括进了这四个时间序列,写一
个计算公式来计算平均降雨量。有关如何写公式
可以查看手册。(‹TSID 54›+‹TSID 55›+‹TSID
56›+‹TSID 57›)/4
然后在Time series菜单中选择save。将计算的
时间序列保存到rainfall_processed组中,起一
个其它名称的dfs0文件,如Average
0。
右击该时间序列,将其添加到时间序列分析器
中。
3.2.2Double Mass Analysis(双累积曲线分析)
1.
选择插补后的时间序列和平均降雨时间序列,然
后在Plot下选择Double Mass Curves。
2007版MIKE BASIN水资源软件完整实例培训教程
-
30-
将插补后的时间序列作为检验时间序列。这样在
接下的工作中,会调整所选择的这个时间序
列.另一个平均值的时间序列则会作为参考
值.出现一个对话框和曲线图,如下图所示:
2.
插入断点
在要插入断点的地方双击,然后点击estimate按
钮。
可以看到估算出的斜率值。如果感觉结果还可
以,则可以点击correct按钮。
在TSAnalysis Output中会得到一个该测站的校
正过的时间序列,可以将它保存到
rainfall_processed 组中。
要查看该时间序列,可以绘制时间序列图并与原
序列进行对比。
红色是调整前经过插补后的曲线,蓝色是经过与
4个站的平均值进行双累积曲线分析,调整后的曲
线.显然,蓝色线雨量比红色线小.
3.2.3Combine(合并)
这个练习介绍如何使用Combine工具合并或延长时间序列。该练习需要选择两个时间序
列,如果不是两个,这个功能将不可用。两个时间序列的单位必须是等量单位,可以直
接转换(如,mm/day转换成m/s)。有两种方法来合并两个时间序列,Merging(合并)
和Extending(延长)。合并过程中,以master time series(主时间序列)作为合并时
间序列的基础。
1.
2.
3.
继续使用上一次的练习
Merging(合并)
通过右击DataBase Level(TS l View by:
Group),在弹出菜单中选择New Group创建一新
组,名为Combine TS(如右图)。
右击Combine TS,选择Import Time Series ->
Quick Import dft0 file,浏览目录:
Data_Combine,将Rainfall1_0,
Rainfall2_0,
Rainfall3_0三个文件导入进来。
然后,通过右击时间序列组或者时间序列本身,
从弹出菜单中选择“Add to Time Series
2007版MIKE BASIN水资源软件完整实例培训教程
-
31-
Analysis”将需要Combine的两个时间序列
(Precipitation station1和3)添加到时间序
列分析器中。
在屏幕的下方的TSAnalysis Input 中显示了刚
才添加的时间序列。同时将两个时间序列选择
上,而后在TSAnalysis Input 菜单中选择
Process->Combine,将显示出Combine Two
Time Series对话框。
在Master TimeSeries中选择主时间序列名(本
列中选择Precipitation station3),而后选择
Merge with TimeSeries,最后“Execute”。
在TSAnalysis Output中,显示了合并后的结
果。可用Plot或Data Coverage显示该时间序
列。右图分别为合并前和合并后的时间序列Data
coverage.
ing(延长)
可通过右击时间序列组或者时间序列本身,从弹
出菜单中选择“Add to Time Series Analysis”
将需要Combine的两个时间序列(Precipitation
station1和2)添加到时间序列分析器中。
在屏幕的下方的TSAnalysis Input 中显示了刚
才添加的时间序列。同时将两个时间序列选择
上,而后在TSAnalysis Input 菜单中选择
Process->Combine,将显示出Combine Two
Time Series对话框。
在Master TimeSeries中选择需要延长的时间序
列名(本列中选择Precipitation station1),
而后选择Extend with other time series。根
2007版MIKE BASIN水资源软件完整实例培训教程
-
32-
据需要选择Before start of master time
series(延长主时间序列前部),或者After end
of master time series(延长主时间序列的后
部),或者全选。而后点击“Execute”。
在TSAnalysis Output中,显示了延长后的结
果。可用Plot或Data Coverage显示该时间序
列。
右图分别为合并前和合并后的时间序列Data
coverage.
3.2.4 Evaluate to Scalar
Evaluate to scalar工具用于计算时间序列的一些统计值。统计可以基于绝对时间段
(如1/1/2000 - 31/12/2004),也可以基于一个相对时间段(如每年的七月份,每周的
星期三,或者每天的8:00至16:00之间等等)。该工具的输出结果是一个GIS点要
素,其属性与所选择的统计量有关系。另外,点要素可以内插为一个连续的表面图,如
等雨量图或等地下水位图等等。
1.
2.
继续使用上一个练习
在Precipitation组上右击,在弹出菜单上选择
“ Add To Time Series Analysis”。
这将把该组内的所有时间序列添加到时间序列编
辑器中。现在,所选的时间序列显示在屏幕下方
的时间序列编辑器中。
2007版MIKE BASIN水资源软件完整实例培训教程
-
33-
3.
然后,选择所有已添加的时间序列,从菜单中
选择Process->Evaluate to Scalar。将会弹出
一个对话框:
Compute Scalar(s) From Time Series。
在 Operations中选择
New type: Descriptive and test statistics
Value: Time-weighted average,
然后点击Add to list,将会添加到列表框中。
在Output Options中选择Map。
最后,点击“Execute”
4.
在GIS显示界面上会自动添加刚才计算的结果
(如右图)
5.
在屏幕上部的GIS工具条上选择
Spatial Analyst->Options…, 会出现一个
Options对话框。
在对话框可以设置Working directory(工作目
录)(保持默认值),而后在Analysis mask项
中选择catchment_meter作为分析的背景基
图。其它值都保持不变。
Working directory必须与数据库文件路径一
致.
(如果没有显示Spatial Analyst按钮,可从
GIS菜单Tools->Extensions选择Spatial
Analyst,将它添加到GIS界面上)。
2007版MIKE BASIN水资源软件完整实例培训教程
-
34-
在EXTENT标签下的Analysis extent 里选择
Same As Display。
点击OK。
6.
在屏幕上部的GIS工具条上选择Spatial
Analyst->Interpolate to Raster->Inverse
Distance Weighted…
将显示出一个对话框:Inverse Distance
Weighted。在对话框中,Input points一栏显
示的是刚才计算得到的雨量点图,不要修改。
保持其它设置不变。在Output raster中找到
保存的文件夹路径,并命名输出结果文件名:
Raster1
然后,点击OK。
在屏幕的下方会显示一个进度条,可能需要一
点时间将点图内插为一个Raster。
7.
内插后的Raster会自动添加到GIS Table of
Content上,并显示出来。如未显示,请在
Raster图左侧的复选框中打勾。结果应该看起
来如右图。
2007版MIKE BASIN水资源软件完整实例培训教程
-
35-
8.
可以在上图的基础上得到降雨等值线图。
在屏幕上部的GIS工具条上选择Spatial
Analyst->Surface Analysis->Contour。
会出现一个如右图的对话框,在Input surface
项中选择刚才生成的Raster图层
(Raster1),可以根据需要修改Contour
interval(如,0.001),在Output features
中输入输出结果文件名,如ctour1,默认的文
件后缀是.shp。
点击OK。
9.
可以看到,在GIS Table of Content上自动添
加了等雨量线图层。如右图。
3.2.5 Gap Fill(插补)
Gap Fill(插补)工具用于对时间序列中数据缺失部分进行插补,通常使用附近测站的数
据对缺失数据进行插补。
1.
2.
继续上一个练习
将练习所需要的时间序列导入进来。
可以建立一个新组名为Gap Fill,然后通过右击
该组在弹出菜单中选择Import Time Series ->
Quick Import dft0 file。
浏览目录: Data_GapFill,将Rainfall7,8_gap
二个文件导入进来。
3.
通过点击precipitaiton7和precipitation8
时间序列,在弹出菜单中选择“ Add To Time
Series Analysis”,将数据添加到时间序列编
辑器中。
用Data Coverage将显示两个序列,可以看出
precipitation7的数据中有数据缺失:1968年
2007版MIKE BASIN水资源软件完整实例培训教程
-
36-
1月1日至1968年4月30日,1972年,1978
年。现用离其最近的测站8的数据
(precipitation8)来插补。
4.
将两个时间序列都选中,然后选择菜单上
Process->Gap Fill…,
5.
将出现一个对话框,名为Gap Filling by
Cross-Referenceing。
其中,显示了两个时间序列之相关性,左侧显
示的是它们之间的相关系数为0.855,右侧显示
的是回归计算的优先顺序。左下部显示的是相
关关系式及关系式中各个变量所代表的时间序
列信息。
在本例中需要做插补是precipitation7,因此
Y应该是precipitation7。需要在
precipitation7和precipitation8相交的单
元格单击.确认Y是precipitation7.
按Execute按钮,现在开始执行插补过程。
6.现在时间序列编辑器的TSAnalysis Output上输出了插补的结果,可以用Data Coverage或Plot显示
插补后的precipitation7。如右图。
3.3 宏语言编程
通过编程可以访问MIKE BASIN的计算核心("引擎"),让你有最大的灵活度来改变计算或
实现计算自动化。
可以用Excel中的宏命令编程或者ArcGIS、或其它任何支持Microsoft技术的编程语言
(如Visual C++、Delphi等)、或者任何一种.Net语言(C#, Visual Basic .Net, 等等)
来实现访问。
通过COM/.Net接口,你可以访问和操纵任何包含在时间序列中的模型输入、输出文件,
并且你可以改变任何输入参数、对话框中的察看表格。但是,你不可以修改模型结构(比
2007版MIKE BASIN水资源软件完整实例培训教程
-
37-
如, 增加或删除节点,重新定义优先级,等等),这意味着从宏命令或其它程序使用MIKE
BASIN之前,你必须在ArcGIS标准用户界面预先建立了模型。
对MIKE BASIN引擎的直接访问是非常有用的,比如当你想做以下这些工作时:
通过蒙特-卡罗模拟方法,快速地做灵敏度分析;
对多个方案进行快速运行和分析;
使用Excel 的统计功能做结果的后处理,ArcGIS图表制作,或其它第三方程序;
除了MIKE BASIN 的标准分配算法,执行任何运行机制 (比如,具体的水库操作规
则);
动态控制模拟(逐步模拟,从上次时间步长中获得热启动,或是在一个时间步长内
迭代):
对ArcGIS 或 Excel 用户,很容易创建简单的MIKE BASIN 模型的接口 (非GIS用户
也可以执行);
对Excel工具做优化 ('Data' 菜单).
这个练习的目的是向用户介绍COM/.NET用户接口,以下两个练习将演示一些基本界面的
使用。
3.3.1Macro
1.该练习是基于如图所示的简单模型,启动时需
要打开名为'Macro '的MIKE
BASIN工程,它包含了完整的模型设置。
问题描述
(虚拟的)问题如下:在河边有一个用水户,
3
全年恒定取水0.1 m/s。由于流域上游来水变
化非常大,故必须建立一个水库来保证这种供
给。
子流域径流选择时间序列:
DHI_Catchment_0
2.管理部门要求任何时刻水库下泄至该河流的最小下泄流量为0.1 m/s,并且该取水点下游河道的最小流
量至少为0.15 m
3
/s。用水户的回流率为0.8,这意味着在正常的供水条件下,用水户将回流0.08 m
3
/s
的流量入河道,这足以满足需求。
出于不同的原因,从用水户的回流流量必须被分配到两条支流中(左支和右支) , 0.05 m
3
/s的流量被回
流入左支(对于完成需求是够了),其它的水量被回流到右支。左支和右支的分配比例为0.63 和 0.37。
在干旱年,水库回落到很低的水位,供水量被减少到需水量的80%。在这种情况下,为保证左支回流量
3
仍然维持在0.05 m
/s,回流的流量比例必须被修改。考虑到水库的水位、因而实际的供水是动态的,
不可能给MIKE BASIN提供预定义的回流比例的时间序列,于是宏功能就有了用途。
运行模型
运行MIKE BASIN模型。在固定回流比例的情况下计算,图形结果可以显示出,在水库水位偏低而使水
库供水能力较低时将导致左支回流流量偏低。
3
3.
4.
2007版MIKE BASIN水资源软件完整实例培训教程
-
38-
为了解决这个问题,MIKE BASIN宏功能可以在
计算过程中提取实际入流和用水户回流信息,
并用此信息来更新回流比例。MIKE BASIN宏助
手可以用来产生一个宏,用于解决此特殊问
题。
5.
创建宏
从MIKE BASIN下拉菜单中,选择宏助手。
6.命名宏:ReturnFlow(或者是任何你能识别的字
符串)
宏名字中不要带有空格.
7.在'Inputs to be set'标签页,选择在模拟期
需要被调整的所有变量。对于这个特别的问
题,我们可以更新这两条支流的回流流量。回
流流量定义在Rules(规则)内(Return flow
4 和Return flow 17)。双击选择。
8.在'Results to be retrieved'标签页下,我
们需要选择用水户节点下的三个项目/W4: Net
flow to node, Return flow to: River node
2 and Return flow to: River node 9(流向
节点的净流量, 回流流量到: 河道节点2和回
流流量到: 河道节点9)。确认选择了
'Current Time' (最后一列)。双击选择。
当按下'Generate'键后,宏助手就会产生一个
宏,可以用做一个解决特殊问题的开发模板。
在我们的例子里,我们需要使用检索信息,来
计算新的回流量。
9.
2007版MIKE BASIN水资源软件完整实例培训教程
-
39-
10.选择Tools/Macros/Visual Basic编辑器,打
开生成的宏代码。以下是代码的打印输出,并
有各部分代码的注释。请确认加入了一个'DHI
MIKE BASIN .Net/COM Engine Interface'引
用(Tools/References)。
11.基于生成的代码写一个宏,保证将河道节点2的回流控制在0.05 m/s,并且将回流的其它部分都送入
节点9(下面给出了一个方法)。
3
12.宏助手生成的代码
' MIKE BASIN macro generated 04/08/2005 12:56:33
' Under the Tools menu, , make sure to add 'DHI MIKE BASIN .Net/COM Engine Interface'
Public Sub ReturnFlows()
' any error will halt execution and be handled
On Error GoTo ErrorHandler
' declare variables
Dim engine As DHI_MikeBasin_
Dim feature As DHI_MikeBasin_bject
Dim iItemIndex, result, currDate
' initialize calculations
Set engine = New DHI_MikeBasin_
= True ' no progress info, no separate dialogs
tionDescription = "Macro Exercise WITH ReturnFlows" ' make sure macro does not overwrite normal simulation
lize "C:JovProjectsMikeBasin ExamplesTestDirMacro exercise", ""
' set inputs
Set feature = elObject("Return flow 4") ' Return Flow (N2)
iItemIndex = putIndex("TimeSeries", "Return flow fraction")
ut iItemIndex, #1/1/1981#, #1/1/1982#, 1
Set feature = elObject("Return flow 17") ' Return Flow (N9)
iItemIndex = putIndex("TimeSeries", "Return flow fraction")
ut iItemIndex, #1/1/1981#, #1/1/1982#, 1
' run the simulation time loop
currDate = tionStart
While currDate <> 0
teTimeStep currDate
所有错误由默认错误处理器处理。不要修改它,除非你打算用自己的错
误处理器替代。
此三行代码显示如何访问和设置回流量 (N2)
此三行代码显示如何访问和设置回流量 (N9)
运行单一时间步长。
显示如何检索 'Return flow
to: RiverNode 2'
和 'Net
Flow tonode'信息。
' get current (this time step's) results (if any)
Set feature = elObject("W4")
result = rentResult("Return flow to: River Node 2")
Set feature = elObject("W4")
result = rentResult("Net flow to node")
currDate = eTimeStep(True)
Wend
' get results for any time period (if any)
Exit Sub
End Sub
此循环在每一
时间步长内进
行,直至模拟
结束
因为SimulateTimeStep的时间步长设定可以包含同一时间步长内
的重复循环, 此方法是必须的,用于保证模型一旦在用户定义的标准
得到满足后计算能进入下一时间步长。
2007版MIKE BASIN水资源软件完整实例培训教程
-
40-
13.解决此问题的一个方案(需要将路径更改,其他部分可以直接复制粘贴)
' MIKE BASIN macro generated 2007-8-6 0:32:42
' Under the Tools menu, , make sure to add 'DHI MIKE BASIN .Net/COM Engine
Interface'
Public Sub ReturnFlows()
' any error will halt execution and be handled
On Error GoTo ErrorHandler
' declare variables
Dim engine As DHI_MikeBasin_
Dim WaterUser, E4, ReturnFlowFracToN2, ReturnFlowFracToN9 As
DHI_MikeBasin_bject
Dim iItemIndexN2, iItemIndexN9, result, currDate
Dim MinFlow, ReturnFlowToN2, Inflow As Double
' Minimum required return flow to N2
MinFlow = 0.05
' initialize calculations
Set engine = New DHI_MikeBasin_
= True ' no progress info, no separate dialogs
tionDescription = "Macro Exercise WITH ReturnFlows" ' make sure macro does
not overwrite normal simulation
lize "D:TempMacro", ""
' set inputs
Set ReturnFlowFracToN2 = elObject("Return flow 4") ' Return Flow (N2)
iItemIndexN2 = putIndex("TimeSeries", "Return flow fraction")
Set ReturnFlowFracToN9 = elObject("Return flow 17") ' Return Flow (N9)
iItemIndexN9 = putIndex("TimeSeries", "Return flow fraction")
Set WaterUser = elObject("W4")
' run the simulation time loop
currDate = tionStart
While currDate <> 0
teTimeStep currDate
' get current time step results results (if any)
ReturnFlowToN2 = rentResult("Return flow to: River Node 2")
Inflow = rentResult("Net flow to node")
If (Abs(ReturnFlowToN2 - MinFlow)) > 0.0001 Then
'Calculate new return fractions
NewReturnFractionN2 = MinFlow / Inflow
2007版MIKE BASIN水资源软件完整实例培训教程
-
41-
NewReturnFractionN9 = 0.8 - NewReturnFractionN2
' Set the newly calculated return flow fractions
ut iItemIndexN2, #1/1/1981#, #1/1/1982#,
NewReturnFractionN2
ut iItemIndexN9, #1/1/1981#, #1/1/1982#,
NewReturnFractionN9
' Restart simulation time step using the new return flow fractions
teTimeStep currDate
End If
' Advance date
currDate = eTimeStep(True)
Wend
Exit Sub
ErrorHandler:
Dim Msg, Button, Style, Title, Response
Msg = ption
Msg = Msg + Chr(13) + Chr(13) + "Continue?" + Chr(13) ' error message
Button = vbDefaultButton2 ' should not continue this macro by default
Style = vbYesNo + vbCritical + Button ' Define buttons and icon
Title = "MIKE BASIN Macro Error" ' Define title
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then ' User chose Yes
Resume ' continue this macro right after where the error occured
Else
Set engine = Nothing ' free memory
Exit Sub
End If
End Sub
3.3.2 excel_macro1
在Excel中进一步处理和分析MIKE BASIN模拟结果在实际应用中将是非常有用的。例
如,使用模拟结果来总结重要信息、进行一些经济分析或使用Excel中的图形功能。
本练习的目的是在Excel中写一个简单的宏,通过宏来读取MIKE BASIN的结果并将结果
写到Excel表中。
2007版MIKE BASIN水资源软件完整实例培训教程
-
42-
1.该练习的模型设置非常简单,如右图。首先,建
立一个新的MIKE BASIN工程,命名为
“Macro_excel”
2.运行模拟
创建一个时间序列0,然后运行
MIKE BASIN,模拟时间为2年,1980-01-01-
1982-01-01。然后绘制流域出口处的流量,如
“Water leaving the model area”。
3.创建宏模板
从MIKE BASIN下拉菜单中选择Macro Assistant。
命名宏的名字为“exceloutput”(或任何你能辨
别的名字)。
在'Results to be retrieved'栏中选择下列项:
“River node 2 Water leaving the model
area”。可以通过双击或使用蓝色箭头来选择。确
认选择了'Current Time' (最后一列)。
4.按下'Generate'按钮后,Macro Assistant将会生
成一个宏,该宏可作为模板用于某一特殊问题的进
一步开发。不要运行宏。
可以用Tools/Macros/Visual Basic Editor来打
开宏代码。下面给出了生成的代码。
表
在本例中,选择在Excel中运行宏。因此,需要在
Excel中建立一个新的宏,将刚才生成的宏代码拷
贝到Excel中的Visual Basic Editor。
6.打开一个新的Excel 表,试着将表中布局做得像右
图。
在以下表格中写:
1)表格B5中 “Path” ,在C5中输入数据
库所在的路径
2)表格B6 中“dbname”,在C6中输入数据
库名字
3)表格B9中 “Time”, 以及
4)表格C9 中“Flow”
先不要试着做图。
2007版MIKE BASIN水资源软件完整实例培训教程
-
43-
7.在Excel中打开Visual Basic Editor
下面给出了用于在Excel中显示MIKE BASIN结果的宏代码。
打开Visual basic Editor,将在MIKE BASIN中生成的宏代码拷贝进来。注意,下面代码中用黑体标注
的是在macro assistant自动生成的代码基础上需要添加或更改的内容。花点时间理解插入的或修改的
部分。
确保在引用中(在Tools/References下)添加'DHI MIKE BASIN .Net/COM Engine Interface'
------------------------------------------------------------------------
Public Sub exceloutput(path, dbname)
' any error will halt execution and be handled
On Error GoTo ErrorHandler
' declare variables
Dim engine As DHI_MikeBasin_
Dim feature As DHI_MikeBasin_bject
Dim iItemIndex, result, currDate
Dim iTS As Integer
' initialize calculations
Set engine = New DHI_MikeBasin_
= True ' no progress info, no separate dialogs
tionDescription = "run1" ' make sure macro does not overwrite normal
simulation
lize path, dbname
' set inputs
' run the simulation time loop
currDate = tionStart
iTS = 0
While currDate <> 0
teTimeStep currDate
' get current (this time step's) results (if any)
Set feature = elObject("N2")
result = rentResult("Water leaving model area")
' Write data and result to spreadsheet
2007版MIKE BASIN水资源软件完整实例培训教程
-
44-
(10 + iTS, 2) = currDate
(10 + iTS, 3) = result
currDate = eTimeStep(True)
iTS = iTS + 1
Wend
' get results for any time period (if any)
Exit Sub
ErrorHandler:
Dim Msg, Button, Style, Title, Response
Msg = ption
If <> 100 And <> 101 Then ' 100/101 is MIKE BASIN error, which has
separate ID
Msg = Msg + Chr(13) + Str()
End If
Msg = Msg + Chr(13) + Chr(13) + "Continue?" + Chr(13) ' error message.
If = 101 Then
Button = vbDefaultButton1 ' MIKE BASIN error 101: may continue this macro by default
Else
Button = vbDefaultButton2 ' All other errors: should NOT continue this macro by
default
End If
Style = vbYesNo + vbCritical + Button ' Define buttons and icon
Title = "MIKE BASIN Macro Error" ' Define title
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then ' User chose Yes
Resume ' continue this macro right after where the error occured
Else
Set Engine = Nothing ' free memory
Exit Sub
End If
End Sub
8.如何制作运行MB的按钮
在菜单中插入Control Toolbox工具条(可以从View-> Toolbars中找到)。点击Command Button工
具,并在表区中拖拽出一个矩形。然后在按钮上右击,选择CommandButton object->Edit,将文字改为
“run MB”。
注意,Private Sub CommandButton1_Click()这一部分的程序是用于运行按钮的执行。
9.在Visual Basic Editor中编辑代码
按照下列显示的编写代码:
Private Sub CommandButton1_Click()
Dim path, dbname
path = Worksheets("Sheet1").Range("C5").Value
dbname = Worksheets("Sheet1").Range("C6").Value
2007版MIKE BASIN水资源软件完整实例培训教程
-
45-
Call exceloutput(path, dbname)
End Sub
10.在运行宏之前,首先要编译宏,然后保存excel表,退出后再打开该表。
11.点击运行按钮,MIKE BASIN模拟结果应该出现在表中。现在可以做相应的图了。
3.4 优化
该练习的目的在于演示MIKE BASIN中内置的优化功能。练习中使用的例子包含一个简单
的水库和一个从水库中取水的用水户。
1.
该模型设置的示意图如右所示:
问题描述
水库从上游流域来水,流量日变化很大。当前,用
水户终年不断地从水库中取水,其流量为恒定
3
0.5 m
/s。这个数值远低于水库泄流能力,水库
每年的泄流量很大(可以通过运行模型来验证这一
点)。
数据输入:
流域面积:500 km
2
流域径流:如右表中所示。
水库
在Operation标签上添加洪水控制规则,新建一
时间序列,使用默认值。
在Priority Downstream Users下新建时间序
列,使用默认值。
用水户需水量:0.5 m
/s(恒定值),其余值为
0。
3
2.该练习的目的是使用MIKE BASIN的优化功能来找出从水库中抽取的最大水量,假设需水是恒定的,同时
能够把需水量的缺口降到最低。优化结果为一年中恒定的抽水量。
如果取水量设得过大,水库的入流就会立即被取走。这样做将会使用水最大化,但是在旱季将会导致很
大的用水缺口。另一方面,如果取水量设得过小,在雨季水库就会溢流,对于用水户来说,这部分水会
白白流失。但是,对于低用水量来说,在一年中用水需求都可以得到满足,也就意味着用水缺口保持在
低水平。基于以上考虑,可以很清楚地看出,“优化”容量取决于我们能够接受的用水缺口。
在优化开始之前,我们需要考虑哪些参数应该被优化,哪些参数可以用来评估模拟的效果(即用于评估
目标函数的变量).
因此优化变量设定为用水量,优化的目标函数项应该包括实际的用水量和用水缺口。优化的任务在于找
出在最大程度上满足实际用水需求,并且能够使用水缺口保持在最小的用水量。以下为必要的操作步
骤。
2007版MIKE BASIN水资源软件完整实例培训教程
-
46-
1.在MIKE BASIN的下拉列表中选择
'Optimization Problem…'.
2.在'Variables to be optimized'下,选
择’Water demand' for Water user node
W9 (模型中唯一的用水户)。双击选择。
3.根据模拟时段(1/1/1981 - 1/1/1982)来
设置'Period start' 和'Period end'。把
上下边界分别设置为 0和100 m
3
/s。设
置'First guess'为10 m
3
/s。
4.在'Objective function terms'选项卡
下,选择'Water demand deficit' 和
'Used Water'。并再次确认模拟时段是否正
确。
5.由于我们要使’用水量used water’最
大化,该参数需要被赋予一个负的权值
(Weight和Weight Beyon)。对于初次优
化,设置权值为-1,其余区域保持不变。
6.‘用水缺口量water demand deficit’
是需要最小化的变量,所以设置权值为正数
(Weight和Weight Beyon),在此设置为
1,保持其他区域不变,点击OK。
7.从MIKE BASIN下拉菜单中选择
'Run
MIKE BASIN simulation'。在点击'Run'之
前,确认'Optimization'被选中(在对话框
的顶部)。运行优化并查看结果。
在MIKE BASIN运行框中,时间步长请选择
1 Day.注意:如果是选择1Month,会影响
优化的精度.
此外,在Result Group Definition中,需
要选择<none> (full results).否则优化
结果会不正确.
8.优化结束之后,将会弹出一个对话框,
显示优化后的抽水量为1.971 m
3
/s。检查结
果。水库是否依旧溢水?在所有时段用水缺
口是否为零?水库水位变化情况与用水户取
水情况是否相关?
右图为时间步长为1 Day的优化结果,红线
是优化后从水库的取水量。Extraction
2007版MIKE BASIN水资源软件完整实例培训教程
-
47-
from Reservoir Node.
比较,右图为时间步长为1Month的优化结
果.
BASIN的最优解反映了我们赋给两
个不同要求下(高用水量、低缺口量)的权
值。结果显示,在这样的两个权值下(1和-
1),在一个月中用水缺口量为50%。如果我
们不愿接受这样大的缺口,必须增大目标函
数中'用水缺口项'的权值。
右击用水户,选择时间序列Time
Series…,选择Relative deficit,然后
点击Plot绘出图形.
10. 再次打开'Optimization problem…'对
话框,在'Objective function terms'选项
卡下,增加用水户的’Relative deficit '
项,且它的权值weight (以及
weight
beyond),设为5。运行优化,查看在大权
值下,用水缺口在所有时段是如何保持为零
的。这样做的'代价'为抽水量降为
1.78
3
m/s.
2007版MIKE BASIN水资源软件完整实例培训教程
-
48-
4 补充部分
4.1伪DEM
您的区域如果没有DEM,通过等分已知河流间距,还可运用‘伪DEM’来完成描述流域的
任务。如果您有一个相当详细的河网图,这种方法将行之有效。这里以巴西的库里提巴
河的数据为例。在没有真正DEM的情况下,使用这种方法,仍然可获得完备的流域描
述。
新的视窗打开,选择“View”菜单中的“Add
Theme”,并在练习数据子目录下添加
“” 和 “”文件。
显示这些专题,观察他们的形状。
注意河流与流域边界图在出口重合。这一点很重
要,计算机计算流向时,追溯河流系统直至流域边
界(见图)。
创建流域
创建一个伪DEM
在MIKE BASIN菜单中点击“Process DEM…“(处
理DEM)。点击创建 Pseudo-DEM并确定河流图层与
流域边界图层在对话框中被正确地指明。
设定单元大小为50。单元的大小应不超过河流与河
流、河流与流域边界之间最小距离的三分之一,汇
流处除外。否则的话,一些河流会被合并,导致流
向无法被正确地确定。
所得到的结果是一个平坦的“DEM”, 除了在河流流
经处。此结果可作为一个正规的DEM使用。计算出
在地表平面上的流向之后,水流流向最近的(河
流)低点,然后流出直至流域的出口。
2007版MIKE BASIN水资源软件完整实例培训教程
-
49-
创建流向,为了不再显示可点击关闭伪DEM。
可使用拟似DEM系统,如同练习5所示,追踪河
流,描述流域。最终模型将如右图所示。
2007版MIKE BASIN水资源软件完整实例培训教程
-
50-
4.2创建水质模型
4.2.1创建水动力模型
1.
打开电脑中保存练习文件的工作目录
2.
从windows program启动 MIKE BASIN
Start ->
Programs ->
DHI Software ->
MIKE BASIN ->
MIKE BASIN
3.从有练习数据的工作目录中选择:
Start a new application with a new database
创建一个 Geodatabase
进入 (或浏览 ) 工作目录
在文件列表中创建一个文件名为
“” 的新数据库文件。
4.
5.加载数字高程模型
加载一个背景图,如地形基图,这样可以容易地
对研究区域的河流进行数字化。或者使用DEM
(数字高程模型)根据地形信息自动生成水系。
浏览练习数据,加载如下DEM:“Filldem1”
在ArcMap 标准工具栏中按键。
在
Table of Contents中就包含了一个新图层
“Filldem1”, 确保它是可见的(在图形要素的
左边框中打勾)
在目前的显示范围内,栅格图可能看不见,因此
右击该图层(层名为“Filldem1”),选择
“Zoom To Layer”
点击zoom to layer后, 可以选择
放大图
像,或者使用放大工具。 (若这些工具未显
示,可以通过选择View->Toolbars->Tools from
the main menu来实现)
2007版MIKE BASIN水资源软件完整实例培训教程
-
51-
6.保存工程文件.
现在可以保存所创建的图形文件。该文件记录了
添加到工程内的图层和图例,包括添加的
。
选择File->Save,在工作目录中保存该文件为
“” 。
以后会重新打开并使用该文件。
7.准备DEM用于绘制河网
开始绘制河网之前,先要计算流向栅格图。
选择MIKE BASIN ->
该对话框提供了处理和调整DEM的选项。从下拉
菜单中选择DEM (filldem1),点击“Calculate
Flow Direction”。
水流向栅格图看起来应该像:
8.使用DEM数字化一个简单的河网
找到Mike Basin工具栏(如右图所示)。
若该工具栏未显示,从主菜单中选择View-
>Toolbars->Mike Basin。
选择Trace River Tool (红色圆圈标识).
现在可以自动地数字化河网。作为一个例子,先
数字化一个有2条河流的河网。用鼠标点击1号
点和2号点的位置(如图所示)。
2
1
2007版MIKE BASIN水资源软件完整实例培训教程
-
52-
结果如右图所示:
此时,在河流支流的结束点和汇合点会自动生成
计算节点。
保存并停止编辑.
9.通过在河网中添加流域节点来描绘流域
选择 “Add Catchment Node” 按钮。
点击箭头所标识的位置,在数字化好的河流内插
入节点。对于左边标识的位置,将流域节点放在
河流节点上。
结果如右图所示:
注意: 如果有任何操作错误,可以在编辑Edit菜
单中选择 “Undo”。
添加流域节点后会出现如右图所示的绿色区域,
代表集水区或产流区,径流通过这些流域节点流
入到河流中。
根据DEM来描绘流域的边界,可以点击
Delineate Catchment tool (红圈所示)。
结果如右图所示:
该简单设置中包括2条支流,5个节点和2个子
流域。
2007版MIKE BASIN水资源软件完整实例培训教程
-
53-
10.保存编辑
当结束对河网的编辑后,点击“Stop Editing”
键保存当前编辑。在弹出的保存当前编辑的对话
框中,选择“Yes”。一旦选择保存,编辑内容会
提交给数据库,此时不能再撤销当前编辑内容。
11.设定输入信息属性
河流中的水流是由流域中的地表径流产生的,必须给每个流域输入一个时间序列的地表径流量。
右键点击子流域,在弹出的菜单中选择MIKEBASIN properties ,出现一个属性对话框。(注意:如果
弹出的是不同的属性对话框,可以选择上了另一个较近的要素。取消该对话框再试一次。可以通过放大
工具来帮助避开一些要素,而只选中所需的要素。)或者使用MIKE BASIN 工具栏中的
子流域多边形。
,左键点击
给子流域命名,category是可选项,用于区分用户定义的要素分类。可以采用自动给流域面积赋值或者
2
不选择“Use shape area for assigned area”,而输入每个子流域的面积为1000 km
。
对第一个子流域输入径流数据时,需点击“New” 键(如红圈所示)。当提示输入文件名时,输入
“runoff”。此时会自动生成一个正确格式的缺省时间序列,并以“0” 文件名保存。(该
时间序列将会在下一步中调用)。
对另一个流域输入径流数据时,只需从弹出菜单中选择“0”时间序列文件即可。注意:时
间序列文件中是的径流模数(单位面积的径流量),因此对于不同大小的子流域无需修改时间序列(假
定它们的水文条件相似)。
12.查看时间序列文件
使用Temporal Analyst时间分析模块对时间序列
(输入和输出时间序列)进行查看和编辑。
Temporal Analyst的使用功能已经整合在Mike
Basin对话框中,将在本练习的后面在查看练习
的结果文件时详细地了解这些功能。
查看径流时间序列,点击子流域属性对话框的
“Plot/Edit…” 键(红圈标识),时间序列将
会出现在屏幕底部的绘图区。
注意:时间序列的时间段从1981年1月1日
00:00:00 到1982年1月1日(该数据行为空
白),时间序列数据值为1 l/s/km^2。
保持缺省值并关闭绘图窗口。
现在,在Specific Runoff对话框中点击
“OK” ,完成对子流域的属性设定。
13.运行模型
完成所有输入后,可以进行河网水流的模拟。从
Mike Basin工具栏中选择 “Run Mike Basin
Simulation…” 。
2007版MIKE BASIN水资源软件完整实例培训教程
-
54-
模拟对话框会出现:
将起止日期改为1999年1月1日和2001年1月
1日。确保在“Associate with features in
map”检查框处打勾,并在Description处输入文
件名,如Sim1。
保持其他选项不变。
点击“Run” 键开始模拟。此时会出现一个进程
对话框,显示模拟的进程。当模拟结束时该对话
框会关闭。
14.使用Temporal Analyst时间分析模块分析结果.
当模拟结束后,在table of contents中选择
“Time Series”一栏。
所有与数据库连接的时间序列将会显示在列表
中。时间序列可以保存在数据库中,也可以保存
为外部文件中。Mike Basin 的时间序列通常保存
为外部的*.dfs0 文件中,这是一种有效的存储时
间序列的方式。
打开“ProjectData” 项和“MIKE BASIN
Simulation sim1” 时间序列组(若未看见该
项,右键点击“ProjectData”节点并选择
“Refresh”)。
注意:当点击任何结果时间序列时,与之相应的
要素在图上会闪动。也可以右键点击要素,在弹
出菜单中选择 “Time Series…”来访问结果时
间序列。在这种情况下,对话框中仅列出与该要
素相关的时间序列。
右键点击一个结果时间序列并选择
“Plot/edit”。绘制好一个时间序列后,可以通
过点击右键选择 “Add To Plot”再次添加其他
时间序列在该时间序列上。
尝试查看不同支流的“Flow”时间序列文件。
可以看到:最下游节点处的流量是2个子流域的
径流总和(为了便于比较,将这三个结果时间序
列绘制在同一图中)。
还可以看到:在整个模拟期间流量保持不变。这
是因为输入的径流时间序列在全年中为一常数。
2007版MIKE BASIN水资源软件完整实例培训教程
-
55-
15.保存项目文件并退出.
在File菜单中选择 “Save”,再选择“Exit” 。如果想继续做练习2,可以保持项目文件打开的状
态。
4.2.2 在模型中添加一个用水户
1.
2.
从windows program 启动MIKE BASIN,重新打
开练习1中的
插入用水户节点:点击“Add Water user”,
将光标放置在下游子流域中间的某个地方并点
击鼠标。
点击“Add Channel” ,将用水户与河流连在
一起。
从河流节点上画一条河道连接至用水户,再从
用水户画一条河道连接至河流的出口处。
河网如右图所示:
停止编辑并保存编辑。
3.
设定用水户属性.
选择工具,点击刚才插入的用水户,打开
用水户Mike basin属性对话框
点击“”键,添加一个新的缺省用水户
时间序列。给新时间序列命名(如
0)点击OK。可以点击
“edit” ,在Water demand项中添加新数值
或保持缺省值。在本练习保持数值不变。
“Priority of upstream supply node” 中
的内容已经设定好了,无需进行任何改变。
该用户的回流规则已经被创建了,但没有设定
回流时间序列。该时间序列表明在供水过程中
有多少水回流至河流中。
在“Return flow rule(s)” 部分点击“Edit
rule” (
)
出现一个新对话框:
点击“New..” 键,为回流创建一个缺省的时
间序列,命名为“0” 并点击
OK。点击“edit” 将所有的回流值改为1,表
示所有从上游获取的水都返回到下游的节点
处。保存已做修改。
2007版MIKE BASIN水资源软件完整实例培训教程
-
56-
点击OK关闭对话框。回到用水户属性对话框,
点击“OK”
4.
设定供水优先权
用水户获取水的节点现在有两个下游节点:用
水户和下游河流节点,因此要对它们如何获取
水设定一个优先规则。
打开取水节点的属性窗口(使用
该节点)
工具并点击
在“Priority of downstream demand” 列表
中,已经添加了一个缺省值。要改变规则,将
第一优先选项设为用水户。而对于下游节点,
它是最后一个节点无需进行设定,因为假定所
有剩余的水(如果有的话)将流至最后一个节
点处。完成后,对话框如右图所示,点击
“OK”.
5.
运行模型.
命名为 “sim2”。
6.
分析用水户节点的结果.
右键点击用水户节点,选择“Plot simulation
output time series.…”可以查看所有与该
节点相关的模拟时间序列结果。选择sim2中任
何一个输出的时间序列,点击plot查看时间序
列结果。
注意:到现在为止,水质浓度的输入参数值还
未确定。现主要搭建基本的水量平衡模型。详
细的水质模型设置见下一节。
7.
保存并退出.
2007版MIKE BASIN水资源软件完整实例培训教程
-
57-
4.2.3在模型中加入水质模型
1.
2.
重新打开练习
启动水质模型模块
选择MIKE BASIN->Options.
在 Water Quality检查框处打勾并点击OK.
3.
设定子流域的负荷
打开子流域的属性窗口(使用
流域多边形)。
工具并点击子
给每个子流域设定污染负荷,在“Water
Quality in runoff time series”栏中设定质
量流时间序列。您可以确定一个质量时间序列
(kg/sec),或者浓度时间序列(mg/l),甚至是
单位面积质量时间序列(g/m2/sec)。
或者,使用Load Calculator(负荷计算器)
Load Calculator (见后面介绍),根据不同
污染源类型、滞留过程以及径流状况来计算污
染负荷。
点击“Water Quality in runoff time
series” 中的“” 来设定一个简单的
污染物负荷质量通量时间序列,会生成一个新
的缺省时间序列,命名为
“Runoff_0” 并点击OK。默认的时间
序列单位是单位面积质量时间序列
(g/m2/sec)。
在时间分析器的目录中右击“Plot/Edit
Collection”打开新建的时间序列。时间序列
中已经包括了几个预先设定的污染物:BOD,
DO, NH4, NO3, P和Ecoli。缺省值为零。
改变其数值,如对BOD成分输入一个新值(单位
为: g/m2/s),如图所示,然后右击BOD,选
2007版MIKE BASIN水资源软件完整实例培训教程
-
58-
择“Item Properties”,一个“TSItem
Properties”对话框出现。
“Item type” 可以从“Concentration” 改
变成“Specific Solute Flux Per Area” 。
并且在“Item type”下,有很多不同的数值单
位可以选择。
在此练习中,我们保持 “Item Type” 不变,
但是将 “Unit”从 “g/m2/sec”变为
“g/m2/day”。对剩余的其他参数都重复上面
的操作步骤:NH4, NO3, P, DO, “User
defined”. 对于 Ecoli ,“Item type”是
Bacteria flux,将它的unit从“1/m2/sec”
变为“1000/m2/day”。
对于BOD, NH4, NO3 和 P 将他们每一个时间步
长的数值都变为 0.003 g/m2/day 。注意将每
个时间序列的最后一栏数值设为空白!
选择File->Save进行保存。点击OK。
对第二个子流域重复上面的操作步骤。
4.
设定供水中的负荷
打开用水户节点的属性窗口(使用
击节点)。
工具并点
进入到Water Quality列表. 点击“ ”
键创建一个新的点源时间序列,命名该时间序
列为“Watersupply_0” ,点击
“Edit” ,添加供水过程中回流水中污染物的
浓度。
另外,可以将上游来水中的污染物浓度添加到
回流水中的浓度中,通过选择add point
solutes to the incoming concentration。
2007版MIKE BASIN水资源软件完整实例培训教程
-
59-
5.
设定流域各支流的传输时间
为了计算污染物在河流中的衰减和停留,需要
传输时间(或停留时间)的信息。
打开河流Reach Properties属性窗口(使用
工具并点击某一个河段)。
进入水动力Hydraulics列表。在MIKE BASIN
中,可以根据流量和河宽(假定为一矩形断
面)计算水位,从而计算传输时间。有两种计
算水深的方法:根据水位流量关系曲线
(Rating Curve)和曼宁公式(Mannings
formula)。
在本练习中选择 “Mannings formula”.
设定Mannings number(曼宁数)为0.05
slope(坡降)为0.02
max level(最大水位)为5
进入水质Water Quality列表。
在 “Calculate decay based on:”下拉菜单
中选择 “Specific width,calculated
depth”。
河流长度(Reach length)是自动计算的,该
值可能会计算过大。
在水质模型中需要设定一个参数组(parameter
set),该参数组中包括了水质模型所必需的参
数。点击“”
命名参数组为 “Parameterset1”。使用各缺
省参数值。
给Temperature(温度)创建一个新的时间序
列,点击“New..” ,命名该新时间序列为
“Parameter_0”。如果要对温度值进
行修改,则点击“edit”键并保存。
点击OK。
2007版MIKE BASIN水资源软件完整实例培训教程
-
60-
最后一步是设定河流宽度。在河流Reach
properties中进入 “General” 列表。
在“River WidthSection” 中输入河流的宽
度,如10。
对所有支流重复以上步骤。
对于Link Channels(连接河道),为了简化计
算,在河流Reaches properties 对话框中点击
“Water Quality” 列表,选择
“Conservative Transport” 。
6.
运行模型
命名为sim3
7.
分析下游节点的结果.
右键点击最下游的节点,选择 “Plot simulation output time series.…”
可以看到与该节点相关的所有模拟时间序列结果。选择sim3中BOD组分的时间序列输出文件,点击
plot查看时间序列结果。
4.3使用Load Calculator估算污染物负荷
4.3.1根据城市污染源计算污染物负荷
1.打开Population (人口)图
本练习中将根据人口图来量化来自人口的污染负
荷。
打开位于练习文件夹中“LOAD input”目录下的
文件。
2007版MIKE BASIN水资源软件完整实例培训教程
-
61-
2.打开Load Calculator(负荷计算器)
选择MIKE BASIN->Load Calculator
打开Load Calculator:
3.添加一个新污染源
点击“ ”添加一个新污染源。命名该污染源
为 “Population” ,从下拉菜单中选择method
为“Domestic”。点击OK。
4.对生活污染源进行设定
选择代表人口分布的图层(Population)。
选择Population shape文件属性表中的一项,该项
具有各区域的唯一名字(=INC)。
选择属性表中的population count(计数)field
项,该项具有人口数 (=Population)。
确保在对话框底部的“Maps and statistics” 和
“MIKE BASIN” 检查框前打勾。
设定“Time distribution”时间序列,可以根据
时间来分配负荷。点击“New ...” 键,命名时间
序列为alpha_0,对于所有时间步长内所有
污染物,缺省值为1,表示污染源不随时间变化。
点击OK保持缺省值。
点击 “Loads per Capita”,设定每人每单位时间
2007版MIKE BASIN水资源软件完整实例培训教程
-
62-
所产生的平均负荷量。
点击键开始进行编辑状态,输入BOD为19(选
择单位kg/year),总氮为4(选择单位
kg/year)。
点击
结束编辑并保存编辑内容。
5.传输设定
再transport菜单中有三个标签,在general标签
中,MIKE BASIN默认catchment图层为负荷计算图
层,如果用户希望使用其它mxd工程中的图层进行
计算,可以通过import catchment 功能导入其它
的土层。
在此练习中,使用MIKE BASIN 默认的Catchment
图层,用户不需另外导入其它图层。点击
“Catchment properties”键,打开子流域属性输
入列表。
点击
键开始编辑状态。根据子流域径流时间序
列覆盖的时间段来设定起止时间(参见练习1)。
当运行Load calculator 时,会计算出每个子流域
的总径流量,并用非点源产生的总负荷除以总径流
量,来计算出非点源的平均径流污染物浓度。为了
生成MIKE BASIN 的非点源边界,将该径流污染物
浓度乘以径流时间序列可获得随时间变化的污染物
通量。
在WQFraction_NH4项中设定数值(如0.8),代表
氨氮占总氮的比例。
6.运行Load Calculation
点击OK,开始执行负荷计算。计算过程中对每个子
流域,将累加由人所产生的污染负荷,并生成代表
污染负荷通量的时间序列。如果在MIKE BASIN检查
框处打勾,计算的时间序列将会自动地加到MIKE
BASIN流域属性中,作为水质模型的输入文件。要
查看该项内容,打开Catchment properties(子流
域属性)对话框,编辑已设定好的水质时间序列。
除了时间序列,还会生成一个负荷结果表,并在窗
口底部自动被打开。
该表显示了不同类型污染源在每个子流域的总负
荷。
2007版MIKE BASIN水资源软件完整实例培训教程
-
63-
7.使用新的计算负荷再次运行MIKE BASIN.
重新运行练习3(水质部分)的MIKE BASIN模拟,
命名为Sim4.新的模拟将包括负荷计算器Load
Calculator计算出的人口负荷。
分别在两个流域出口节点右击鼠标,选择Time
Series…,将sim4结果中的NO3浓度与 sim3结果
相比较,发现有较大的差异。
4.3.2 根据工业污染源计算污染物负荷
1.打开工业的点源污染图层(或者其他的点源污染)
在此练习中,用户会学习计算点源污染物负荷(例如
工业)。打开在Open the “LOAD input” 文件夹
中的图层。
2.打开Load Calculator(负荷计算器)
选择MIKE BASIN->Load Calculator
打开Load Calculator:
3.添加一个新污染源
点击“ ”添加一个新污染源。命名该污染源为
“Industry BOD” ,从下拉菜单中选择method 为
“Point Sour”。点击OK。
2007版MIKE BASIN水资源软件完整实例培训教程
-
64-
4.对点源污染进行设定
选择代表人口分布的图层(industry)。
选择图层属性表中的一项,该项具有各区域的唯一名
字(= FID)。
选择属性表中的count(计数)field项,该项具有年
BOD总负荷数 (=LOADB)。选择unit是 “kg/yr” 并
且 component是 “BOD”。
确保在对话框底部的“Maps and statistics” 和
“MIKE BASIN” 检查框前打勾。
设定“Time distribution”时间序列,从下拉箭头
里选择与计算城市污染负荷时所使用的同样的时间序
列。
出于率定的需要,径流系数可以针对每一个点源和污
染物设定。径流系数数值在0和1之间变化,代表流
入河道里的污染物负荷占总负荷的比例。
点击 “” 来确定每个点源
和污染物的参数值。
点击
键开始进行编辑状态。点击
保存编辑内容。
结束编辑并
在此,我们保持所有的系数都是默认值1。
5.传输设定
在此选项中,没有新增的输入数值。
6.运行Load Calculation
点击OK,开始执行负荷计算。计算过程中对每个子流
域,将累加由人以及工业所产生的污染负荷。负荷结
果表将会在窗口底部再次自动打开。
7.使用新的计算负荷再次运行MIKE BASIN.
重新运行MIKE BASIN模拟,命名为Sim5。新的模拟
将包括负荷计算器Load Calculator计算出的人口负
荷和工业负荷。
2007版MIKE BASIN水资源软件完整实例培训教程
-
65-
4.3.3根据农业污染源计算污染物负荷
1.打开牲畜和化肥消耗的图层(或者其他的点源污
染)
在此练习中,用户会学习计算农业的非点源污染
物负荷(例如牲畜和化肥)。打开在Open the
“LOAD input” 文件夹中的图
层。
2.打开Load Calculator(负荷计算器)
选择MIKE BASIN->Load Calculator
打开Load Calculator:
3.添加一个新的牲畜污染源
点击“ ”添加一个新污染源。命名该污染
源为“Cows” ,从下拉菜单中选择method 为
““Livestock”。点击OK。
2007版MIKE BASIN水资源软件完整实例培训教程
-
66-
4.对牲畜污染源进行设定
选择牲畜分布的图层()。
选择图层属性表中的一项,该项具有各区域的唯
一名字(= FID)。
属性表中的count(计数)field项选择牛的总数
(=Cows)。
点击 “Loads per Capita”,设定每头牛每单位
时间所产生的平均负荷量。
键开始进行编辑状态。对 BOD选择150点击
(选择单位kg/year) 以及总 Nitrogen 是25 (选
择单位kg/year)。点击
内容。
结束编辑并保存编辑
确保在对话框底部的“Maps and statistics”
和“MIKE BASIN” 检查框前打勾。
设定“Time distribution”时间序列,从下拉
箭头里选择与计算城市污染负荷时所使用的同样
的时间序列。
出于率定的需要,径流系数可以针对每一个区域
和土地利用类型。径流系数数值在0和1之间变
化,代表流入河道里的污染物负荷占总负荷的比
例。
我们将会在后面的练习中介绍另一个径流选项
“Including distance decay”。
点击 “” 来确定每个
点源和污染物的参数值。
点击
键开始进行编辑状态。点击
辑并保存编辑内容。
结束编
在此,我们保持所有的系数都是默认值1。
5.添加一个新的化肥污染源
点击“ ”添加一个新污染源。命名该污染
源为““Fertilizer N” ,从下拉菜单中选择
method 为““Fertilizer ”。点击OK。
2007版MIKE BASIN水资源软件完整实例培训教程
-
67-
6.对化肥污染源进行设定
选择化肥分布的图层()。
选择图层属性表中的一项,该项具有各区域的唯
一名字(= FID)。
属性表中的count(计数)field项,选择年化肥
消耗总量(=Fert_N)。选择unit是 “kg/yr” 并
且 component是 “Ntot”。
确保在对话框底部的“Maps and statistics”
和“MIKE BASIN” 检查框前打勾。
设定“Time distribution”时间序列,从下拉
箭头里选择与计算城市污染负荷时所使用的同样
的时间序列。
出于率定的需要,径流系数可以针对每一个点源
和污染物设定。径流系数数值在0和1之间变
化,代表流入河道里的污染物负荷占总负荷的比
例。
点击 “” 来确定每个
点源和污染物的参数值。
点击键开始进行编辑状态。点击
辑并保存编辑内容。
结束编
在此,我们保持所有的系数都是默认值1。
7.传输设定
类似于化肥和牲畜的非点源污染流入河道的程度
取决于径流的过程。而点源污染则不受径流过程
的影响
(例如城市和工业污染)。
Catchment properties” 表格中,在“
WQRunoffStartTime与WQRunoffEndTime
。
你
start time” 和一个 “end time”。这可以确定一个 “
个时段是用来计算每一个非点源污染排出的平均
径流浓度(例如牲畜和化肥污染)。在这时段内
总径流量将会根据每个子流域的径流时间序列被
计算出来。
根据非点源的总负荷
(kg)除以时段内的总径流量
得到平均的浓度。
在MIKE BASIN 中,这个浓度乘以径流时间序
列,得到进入河道的随时间变化的污染物负荷。
点击键开始进行编辑状态。点击
保存编辑内容。
结束编辑并
现在我们输入 1/1/1999 为开始时间,1/1/2000为
结束时间。
2007版MIKE BASIN水资源软件完整实例培训教程
-
68-
8.运行Load Calculation
点击OK,开始执行负荷计算。计算过程中对每个
子流域,将累加由人口以及工业以及农业所产生
的污染负荷。负荷结果表将会在窗口底部再次自
动打开。
注意: 对于每个污染源,都有一列单位是
“mg/l”的数值列出。这是与子流域径流里产生
的非点源污染有关。
9.使用新的计算负荷再次运行MIKE BASIN.
重新运行MIKE BASIN模拟,命名为Sim6。新的模拟将包括负荷计算器Load Calculator计算出的人口
负荷和工业负荷、农业负荷。
4.3.4 包含 “Distance Specific Decay”
在这个练习中我们将学习怎样应用距离降解
“distance specific decay”作为一种参数,在
污染物讲解中使用。
Gradient grid (坡度网格) -从下拉式菜单中选
择一个代表地形坡度的网格图,每一个网格值代
表无量纲的坡度。可以用空间分析的标准功能来
生成坡度栅格图。
一阶距离降解方程:
注意:
在实际应用中可用平均流域坡度来替代,
比如用一个常量为1的栅格图。
Distance grid (距离网格)-从下拉式菜单中选
择一个距离栅格图,每一个网格的值代表各网格
点到河道的距离。可以用空间分析的标准功能来
生成距离栅格图。
Detailed grid output (详细网格输出)-在"详
细网格输出"框里打勾,在计算后则会生成一些网
格图,并被添加入到ArcGIS浏览器中。计算中涉
及到的每类污染源的每种污染物组分都会生成一
个网格图。每个网格图代表了使用距离降解后每
个网格单元的总负荷通量,如公斤/年。
Decay Rates (降解率)... –点击该按钮打开降
解编辑器,可对来自不同类型污染源的各种污染
物组分设定一级降解率。降解率也作为率定参
数。
m
river
–
流入河道的通量
m
load
–
单元网格流出的通量
K –
一阶降解系数
D –
是该网格到河道的最短距离
G –
地形坡度
T –
平均温度(摄氏度)
2007版MIKE BASIN水资源软件完整实例培训教程
-
69-
1.
生成“distance” 图层
每个 “distance” 图层的数值代表从某个网格
到下游河道上最近一点的公里数,它的高程用
DEM表示。这个距离是通过空间分析中的“path
distance”功能计算得到的。
距离网格是用来计算每个网格中滞留了多少污染
物,它是通过距离的函数表示。
它假设离河越远,越少的污染物会流入河道。距
离和降解之间的关系是通过简单的一阶方程来表
示。
说明:
距离降解功能用于模拟与距离有关的污染
物滞留。假设污染物的入河量与传输距离相关,
即靠河流越近,污染的贡献就越大。距离降解计
算为简单的一级距离降解。
点击
按钮,打开 ArcCatalog ,找到当前工
程下的DHI Network Features -> DHI
BranchFeatures,右键点击选择Export -> To
Shapefile (Single)…在出现的对话框中定义输
出文件名和存储路径。点击OK生成代表河网的线
Shape 文件(命名为Traced_).
说明:
图中蓝线为追踪的河网,坐标范围覆盖了所
有子流域,这样可以保证之后生成的距离栅格图
的范围可以涵盖整个流域范围。
在ArcMap标准工具栏中选择
按钮
在出现的ArcToolbox下找到Spatial Analyst
Tools -> Distance -> Path Distance, 双击后
出现一个对话框:
选择 Input raster or feature source data 为
代表河网的线Shape 文件(Traced_);
选择Input surface rater 为DEM (filldem1),
点击OK。在界面最底部点击Environments…,在
弹出的界面中选择General Setting,在Output
Extent的下拉箭头中选择Same as Layer
filldem1。点OK。
2007版MIKE BASIN水资源软件完整实例培训教程
-
70-
完成后点CLOSE,有新的图层显示出来。
2.
生成“Gradient ‘’ 网格图层
每个 “Gradient” 网格的数值代表每个网格单
元的坡度,(单位unit是: -/-).。
Spatial Analyst ->Surface Analysis ->
Slope…打来Slope对话框来设置和生成。这样可
以根据DEM生成反映实际情况的坡度栅格图:
选择 Input raster 为DEM文件(filldem1);选
择Output measurement (optional)为
PERCENT_RISE。在界面最底部点击
Environments…,在弹出的界面中选择General
Setting,在Output Extent的下拉箭头中选择
Same as Layer filldem1。点OK。
完成后点CLOSE,有新的图层显示出来。
此外也可以通过在工具栏上选择Spatial
Analyst ->Surface Analysis -> Slope…打来
Slope对话框来设置和生成:
2007版MIKE BASIN水资源软件完整实例培训教程
-
71-
根据DEM生成的坡度栅格图的范围和网格大小是
与DEM保持一致的;而根据DEM和河网文件生成
的距离栅格图的范围则会受到河网坐标范围的影
响。所以要确保两个栅格图的范围和网格大小相
同。否则会出现右侧的错误。
一般在实际操作中,对于平原地区可以使用常量
为1的坡度栅格图,即忽略坡度对距离降解的影
响(理论上坡度越缓,流速越小,降解越大)。
如果用户想生成坡度为恒定值的栅格数据,则可
以使用下面的方法:
在Spatial Analyst 工具栏下选择Spatial
Analyst -> Reclassify …
将Input raster 选择所使用的流域DEM图,即
filldem1。
点击”Classify…”按钮,选择级别数
(classes:)为1,然后将 New values 设为1。
点击OK后就会生成了一个与距离栅格图的范围和
网格大小相同的,各网格值为1的坡度栅格图。
3.
打开Load Calculator(负荷计算器)
选择MIKE BASIN->Load Calculator
打开Load Calculator:
2007版MIKE BASIN水资源软件完整实例培训教程
-
72-
4.
确定距离降解参数
点击 “Distance Decay” 表格.
在 “Gradient Grid”的下拉选项中选择
“gradient”网格图层。在 “Distance Grid”
的下拉选项中选择 “distance”网格图层。在水
温度选项中选择默认数值20。
说明:当时用距离降解选项时,每个子流域中的
污染物的消减都取决于每个污染源的径流系数和
由于距离所产生的降解的共同作用。
区别这两种消减类型的方法是:径流系数表示污
染物从表层土壤(例如根区)下渗的比例,而距
离降解表示污染物在从污染源传输到河道的过程
中消减的负荷。
点击“” 按钮。一个输入表格将
会打开。
点击
键开始进行编辑状态。点击
辑并保存编辑内容。
结束编
现在我们将三种污染源Agriculture, Domestic
and Point sources的BOD, NTot 和Ptot的值
设为“0.1”, 表示所有的负荷都会按1级降解
系数0.1 km
-1
而消减。
如果对于每一个单元网格有一个以上的点源污
染,则会弹出右侧的对话框,在本次练习中将不
作介绍。
5.
运行Load Calculation
点击OK,开始执行负荷计算。计算过程中对每个
子流域,将累加由人口以及工业以及农业所产生
的污染负荷。负荷结果表将会在窗口底部再次自
动打开。
注意:由于load calculator的代码原因,用户
所使用的工作路径必须为英文名称,否则会出现
错误。
说明:此外在负荷结果表格中有很多的网格,它
的数值表示每个网格排入河道中的总负荷贡献。
这些网格输出结果可以被用于更深入的空间分
析,这里将不做讨论。
2007版MIKE BASIN水资源软件完整实例培训教程
-
73-
6.
使用新的计算负荷再次运行MIKE BASIN.
重新运行MIKE BASIN模拟,命名为Sim7。新的
模拟将包括负荷计算器Load Calculator使用距
离降解计算出的人口负荷和工业负荷、农业负
荷。
7.
分析计算结果:
*在Timeseries标签里,有Load_0文件,
例如BOD都是溶质通量Solution Flux单位
(kg/s)。计算结果的时段对应于流域属性对话框
中径流时间序列0中的时段(1981-1-
1到1982-1-1)。当Load Calculator成功运行
完之后才会出现,不用运行MIKE BASIN。
BOD [kg/s]
0.100690
0.100685
0.100680
此外,打开子流域的属性对话框,在下部的
water quality in runoff time series中,发
现时间序列已经被自动的替换为Load_0,
绘出图形,看到的是现在污染物的单位是溶质通
量Solution Flux单位(kg/s),而不是早前的
Runoff_0中的Specific Solute Flux
Per Area单位(g/m2/day)。
0.100675
0.100670
0.100665
0.100660
JanFebMarAprMayJunJulAugSepOctNovDec
8881
*在流域内的河道及子流域的出口节点处。例如
BOD都是浓度Concentration单位(mg/l)。计算
结果的时段对应于MIKE BASIN运算Run属性对话
框中的时段(1999-1-1到2000-1-1 )。只有当
MIKE BASIN成功运行完之后才会出现。且可以得
到Concentration(mg/l)=Solution Flux(kg/s)
/ sub-catchment total runoff(m
3
/s)
2007版MIKE BASIN水资源软件完整实例培训教程
-
74-
N5|BOD [mg/l]
100.700
100.690
100.680
100.670
100.660
19992000
在模型底部,弹出的负荷计算结果:
单位为kg/yr的是代表每年的通量,单位为mg/l
的是代表BODNonPoint除以子流域的total
runoff。计算的时段是在general标签下的
catchment properties中,WQRunoffStartTime
与WQRunoffEndTime之间的时段。
2007版MIKE BASIN水资源软件完整实例培训教程
-
75-
显示输出结果的污染物二维栅格图:
对照着一开始添加的shape文件,可以看见在临
时文件夹下生成两类栅格图。一是不使用距离降
解的已包括出流系数的根据行政区划分布的污染
源分布图,另一个是污染物使用距离降解并包括
出流系数后的污染物负荷图。
使用距离降解的污染物二维栅格图
行政区划shapefile图
二维栅格图属性表
不使用距离降解的污染物二维栅格图
4.3.5 其它设置
1.
包含基流Baseflow!
平时河道中实测的污染物浓度的变化,一个很重要的因素是因为河道内的水量有部分是来自于地下水。地下水
的污染物浓度明显地比地表水或者排水管道中的浓度要低。
因此,非点源污染为主的子流域在低流量时段的污染物浓度很低,而在高流量时段由于坡面流和排水排污水量
的增加,污染物浓度会升高。为了模拟这样一种情况,可以使用选项
“baseflow” –在MIKE BASIN Catchment
属性表格里的时间序列。可以通过以下步骤实现:
2007版MIKE BASIN水资源软件完整实例培训教程
-
76-
2.
确定Baseflow时间序列
-在时间分析器Temporal Analyst 的目录菜单中右击
Geodatabase数据库图标导入一个时间序列: Import
Time series->Quick import dfs0
-浏览工作目录并选择 Baseflow_0. 一个
新的组将会加入到目录中,命名为 “Groundwater
Recharge” ,里面包含一个时间序列。
还要检查所给的基流时间序列的数值大小不能大于对应
的子流域计算结果的总径流量,否则会出现以下的错误
信息。
此外,Baseflow的ItemType应当是Specific runoff,
uint是l/s/Km^2,Timeype是
Non_Equidistant_Calendar。
-打开MIKE BASIN Catchment 属性表格: MIKEBSIN-
>MIKE BASIN Attributes->Catchments
-点击
键开始进行编辑状态。
-找到 BaseflowTS 列
-选中BaseflowTS 列中的第一个单元格
-选择 “” 按钮
-选择Groundwater recharge组
-选择 “Open Group” 。这时时间序列就会被添加到
子流域1的base flow中。
- 点击
结束编辑并保存编辑内容。
注意:catchment properties中的
WQRunoffStartTime与WQRunoffEndTime的时间,要落在
子流域属性对话框内Runoff TmeSeries的时间序列时段
内。否则计算时会弹出下列的错误信息。
2007版MIKE BASIN水资源软件完整实例培训教程
-
77-
3.确定Baseflow 浓度
选择MIKE BASIN->Load Calculator
打开Load Calculator:
点击 “” 按钮.
在 “Transport/General” 对话框打开负荷的
Catchment Properties:
-点击键开始进行编辑状态。
-在每个子流域的每个污染物包含
“” 的列中输入数值 0.1 mg/l 用
以表示基流中的浓度。
因此,当流域径流中仅有基流部分时,径流的总浓度将
会等于0.1 mg/l。
-点击结束编辑并保存编辑内容。
4.使用新的计算负荷再次运行Load Calculation和MIKE
BASIN。
新的水质模拟将会基流的影响。