本科水利狗一枚,正在跟老师做水利信息化方面的项目,VIC是玩的第一个水文模型,边啃官方文档边学其他周边东西边不断鼓捣解决问题终于成功使用。
仅面对于需要使用VIC但是不怎么了解计算机的广大水文水利研究人员。
由处于水文学和计算机两边不靠的交叉学科的两边半桶水的作者所写,所以还请两边的大牛和蔼指正莫冷嘲热讽。
VIC是啥
先简单介绍下(我所了解的)VIC水文模型。
VIC水文模型,全称Variable Infiltration Capacity Macroscale Hydrologic Model,可变下渗容量大尺度水文模型,是一个开源的,基于水量热量平衡、物理动力机理的概念型大尺度分布式水文模型,由梁旭教授带头开发,华盛顿大学、普林斯顿和加伯等高校维护更新,编程语言为C语言,交互方式为控制台输指令。
模型输入为文件形式的研究区域下垫面参数(土壤的理化、水力特征以及地表覆盖参数),以及区域内研究时间段内历时(逐日或者逐若干小时)的气象数据,输出为模拟的区域内研究时间段内历时的土壤含水量、蒸散发量、产流量等数据(要是提供参数齐全还能计算净初级生产量这些数据,确实强大)。
VIC官网主页 http://vic.readthedocs.org/en/master/,源码所在 https://github.com/UW-Hydro/VIC
VIC适用于范围较大的区域(东江流域到德州大小),思想为将研究区域栅格化,即将区域划分为若干行若干列网格状的,边长为1km到经纬度0.5度的正方形单元区域,每个网格拥有各自的下垫面参数和气象数据,各自独立进行计算。这也就是所谓的大尺度、分布式。
从而VIC得出的也只有各网格的产流量而没有汇流量。想要流域出口流量还得使用配备给VIC的汇流程序计算。汇流程序在https://github.com/UW-Hydro/VIC_Routing
VIC假设在纵向土壤分为若干层,默认设定同时最常用的也是为3层土壤(原本VIC设定为两层土壤,后来为了更好的考虑土壤蒸散发在上边加了10cm厚的一薄层)。土壤顶部为若干种土地覆盖,VIC要求给出每种土地覆盖类型面积(林地、耕地等)占网格面积的比例,剩下没占完的面积则认之为裸地。
VIC的运行过程:将研究区域从左到右、从上到下挨个网格计算,网格间互不影响,网格内挨时间步(逐日或者逐若干小时)计算,上一个时间步的计算结果作为下一个时间步的初始数据进行下一步计算。算完某网格研究时间段内全部时间步之后输出该网格的模拟结果数据并计算下一个网格,全部网格计算完后收工。
运行VIC需要的东西
工具:
- 能跑VIC的环境;
- 地理信息管理工具(比如ArcGIS,用来进行研究区域的地理信息处理比如