Chapter 3 设计结构

3.1 AutoSHUD关键参数

AutoSHUD 建模前,需要把用户给定的流域边界、建模年份和少量建模参数转换为一组模型配置参数。对一般用户来说,可以把这个过程理解为:先计算流域的空间尺度,再根据空间尺度确定网格、河网和边界简化参数,最后根据模拟年份确定时间长度。

下面用几个基础量描述这些计算:

符号 含义 单位
\(A\) 流域边界面积,系统会在等面积投影下计算
\(N_{\mathrm{cell}}\) 用户设置的最小单元数
\(a_{\mathrm{max}}\) 用户设置的最大单元面积
\(D_{\mathrm{aquifer}}\) 用户设置的含水层厚度 m
\(Y_{\mathrm{start}}, Y_{\mathrm{end}}\) 模拟开始年份和结束年份

3.1.1 空间尺度参数

流域边界上传后,系统首先计算流域面积 \(A\)。如果用户没有指定最大单元面积 \(a_{\mathrm{max}}\),系统会用流域面积和目标单元数自动估算:

\[ a_{\mathrm{max}} = \frac{A}{N_{\mathrm{cell}}} \times 10^{-6} \]

其中 \(A/N_{\mathrm{cell}}\) 的单位是 m²,乘以 \(10^{-6}\) 后转换为 km²。这个值表示“如果把流域大致划分为 \(N_{\mathrm{cell}}\) 个单元,每个单元的平均面积是多少”。

为了进一步确定边界和河网的几何简化尺度,系统把最大单元面积\(a_{\mathrm{max}}\)换算成一个等效圆半径\(r\)

\[ r = \sqrt{\frac{a_{\mathrm{max}} \times 10^6}{\pi}} \]

这里 \(r\) 的单位是 m。可以直观理解为:面积为 \(a_{\mathrm{max}}\) km² 的模型单元,如果近似看成圆形,它的半径大约是多少。

基于上述基础量,关键空间参数的计算如下:

参数 计算逻辑 含义
NumCells \(\min(N_{\mathrm{cell}}, 100000)\) 模型网格目标单元数,上限为 100000,避免生成过大的模型。
MaxArea \(a_{\mathrm{max}}\),保留 4 位小数 单个模型单元允许的最大面积,单位 km²。
AqDepth \(D_{\mathrm{aquifer}}\),保留 3 位小数;若小于 1 m,则按 1 m 处理 含水层厚度。
tol.wb \(\max(\mathrm{round}(r/3), 30)\) 流域边界简化容差,单位 m;流域尺度越大,边界简化尺度通常越大。
tol.rivlen \(\max(\mathrm{round}(r), 15)\) 河道线段简化或最短河段控制尺度,单位 m。
DistBuffer \(\min(4000, \max(10, \mathrm{round}(\sqrt{A}/20)))\) 流域外扩缓冲距离,单位 m;用于保证边界附近数据裁剪有足够覆盖范围。
RivWidth 默认 5 河道宽度参数,单位 m。
RivDepth 默认 4 河道深度参数,单位 m。
MinAngle 固定为 30 网格生成时的最小角度控制参数。

这些参数之间有一个重要关系:NumCells 越大,或 MaxArea 越小,模型单元通常越细;相应地,边界和河网的几何控制尺度也会变小,模型会更精细,但计算量会增加。

3.1.2 河网提取尺度

河网提取也会使用流域面积、目标单元数和最大单元面积。系统先计算一个理想控制面积:

\[ A_i = \min\left(\frac{A}{N}, a_{\mathrm{max}} \times 10^6\right) \]

其中 \(A_i\) 的单位是 m²。它表示河网提取时采用的面积尺度,既不能大于“流域面积 / 目标单元数”,也不能大于用户设置的最大单元面积。随后根据 DEM 栅格单元面积 \(A_{dem}\) 估算河网提取阈值:

\[ F = \max\left(\mathrm{round}\left(\frac{A_i}{A_{dem}}\right) \times 8, 10\right) \]

其中 \(F\) 是流量累积栅格数阈值。阈值越小,提取出的河网越密;阈值越大,河网越概化。

3.1.3 时间参数

时间长度由模拟开始年份 \(Y_{\mathrm{start}}\) 和结束年份 \(Y_{\mathrm{end}}\) 决定。系统从 \(Y_{\mathrm{start}}\)-01-01 开始,到 \(Y_{\mathrm{end}}\)-12-31 结束,计算完整天数:

\[ \mathrm{ENDDAY} = \mathrm{days}(Y_{\mathrm{start}}\text{-}01\text{-}01, Y_{\mathrm{end}}\text{-}12\text{-}31) + 1 \]

因此,如果时间范围中包含闰年,ENDDAY 会自动包含闰年多出的日期。

参数 计算逻辑 含义
STARTDAY 固定为 0 模拟从第 0 天开始。
ENDDAY 起止年份之间的完整天数 模拟结束日序号。

3.1.4 其他控制参数

以下参数在当前在线建模流程中使用固定值,普通用户通常不需要调整:

参数 当前取值 含义
flowpath 0 不启用额外的流路重构选项。
QuickMode 0 不启用快速模式,按完整流程生成模型。
MAX_SOLVER_STEP 4 SHUD 求解器最大步长控制参数。
CRYOSPHERE 0 不启用冰冻圈过程。