VIC不像SWAT一样有极为详尽的使用说明文档,感觉到官网的东西还是蛮多模糊的点且网上的相关资料偏少,所以在此记录一下学习过程。
VIC官网:Home - VIChttps://vic.readthedocs.io/en/master/
VIC源码:GitHub - UW-Hydro/VIC: The Variable Infiltration Capacity (VIC) Macroscale Hydrologic ModelThe Variable Infiltration Capacity (VIC) Macroscale Hydrologic Model - GitHub - UW-Hydro/VIC: The Variable Infiltration Capacity (VIC) Macroscale Hydrologic Modelhttps://github.com/UW-Hydro/VIC
VIC测试示例数据集:
https://github.com/UW-Hydro/VIC_sample_datahttps://github.com/UW-Hydro/VIC_sample_data
1)下载地址:官网VMware Workstation Pro lets you run multiple operating systems as virtual machines (including Windows VMs) on a single windows or Linux PC.https://www.vmware.com/products/workstation-pro.html
直接下载https://download3.vmware.com/software/wkst/file/VMware-workstation-full-16.0.0-16894299.exe2)VMware16密钥
网上随意搜搜即可,此处给个参考
ZF3R0-FHED2-M80TY-8QYGC-NPKYF
此处选择了南京大学的镜像下载地址,版本选择了18.0.4,其他需要其他的自行下载即可
下载地址:NJU Mirrorhttps://mirror.nju.edu.cn/ubuntu-releases/
Win10使用VMware虚拟机安装ubuntu_牧野的博客-CSDN博客_使用vmware安装ubuntuWin10专业版自带有虚拟机安装工具Hyper-V,也可以使用其他如VMware工具安装,也挺方便。所需工具:1. VMware-workstation2. ubuntuubuntu-16.04.2 下载链接:https://www.ubuntu.com/download1. 下载安装VMware之后打开,大概是这个样子的:2. 点击左上角文件-&g...https://blog.csdn.net/dcrmg/article/details/74075254?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-1.no_search_link&spm=1001.2101.3001.4242.1
需要vmtools的背景是,先前把vic源码和vic示例文件下载到了windows桌面上,而虚拟机和主机是无法直接复制文件夹的,但vmtools安装成功后,可以实现跨系统文件夹的直接复制。
教程示例:在linux虚拟机里手动安装VMware Tools_u012273935的专栏-CSDN博客https://blog.csdn.net/u012273935/article/details/88675586
其他:我在安装过程中出现了很多教程中没有展示的需确认项,部分直接enter即可,部分是需要输入yes/no,如果不放心建议百度解决。
如下图左侧两个文件夹,都是直接从Windows中直接复制进的linux
方式1:直接在vic/drivers/classic中右键,在终端打开
方式2:直接打开终端,通过cd进入(根据自己的文件夹路径而定)
cd Desktop/VIC-master/vic/drivers/classic
1)进入到4.1中的位置后,直接输入make
2) 编译过程
我编译过程一直在重复一个warning,VIC源码的问题,未对编译产生影响,暂时不管
错误:_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE
原因:自 glibc 2.19.90 (2.20 devel) 起不推荐使用 _BSD_SOURCE 和 _SVID_SOURCE 功能测试宏
3)编译完成后,会出现一个可执行的exe文件
4) ./vic_classic.exe后,出现红框中的即说明编译成功。
5)-v命令查看版本
什么是make指令?
主要是为了构建工程,其中必备的文件是MakeFil,如vic中可以在classic下找到这个文件。
MakeFile:告诉make需要做什么及怎么做
一般来说,主要是对文件中的c源文件进行编译和链接(多个文件链接成可执行程序)
不涉及太多,简单了解即可;
gcc/make安装
第一次make时,提示command not find,才发现我这个版本的中gcc和make都未安装,需要执行以下命令
安装make:sudu apt install make
安装gcc:sudo apt install gcc
forcings:各类驱动数据
parameters:参数文件(如全局参数、雪/冻土/土壤/植被等)
这里需要注意的是在global_param中,部分路径是相对路径,需要将其更为绝对路径,才能顺利找到相关驱动文件;
故需要更改驱动数据的路径(此处需为绝对路径,担心错误可以直接右键+R复制路径,/home开头)
5.2 运行exe文件
vic_classic.exe -g /home/aji/classic/Stehekin/parameters/global_param.STEHE.txt
此处需要注意两个地方
1)是exe文件可以复制到home下,直接右键打开终端使用;
2)后面的路径是绝对路径
初次运行之后,发现一直在持续报错未找到xx文件,花费了大量时间检查原因,最后在好朋友兼大厂开发的帮助下,发现在官方示例的全局参数定义文件中${VIC_SAMPLE_DATA} 需要去掉不可以加上(输出文件的路径同理需要一并更改)
正确的路径参考:
执行成功:
输出文件一览:
总结:
1)官方simple_data并不能直接拿来用,需做适当更改,主要在全局参数文件中;
2)VIC相关资料还是太少,相关问题可以在VIC源码的Github issue一栏查找解决;
Issues · UW-Hydro/VIC · GitHubThe Variable Infiltration Capacity (VIC) Macroscale Hydrologic Model - Issues · UW-Hydro/VIChttp://VIC-Github-issue