Linux教程

基于Linux下的VIC使用(1)基础准备

本文主要是介绍基于Linux下的VIC使用(1)基础准备,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

VIC不像SWAT一样有极为详尽的使用说明文档,感觉到官网的东西还是蛮多模糊的点且网上的相关资料偏少,所以在此记录一下学习过程。

目录

  • 相关资源链接
  • VMware + Linux(Ubuntu)安装
  • VMTools 安装
  • 尝试编译vic

1. 相关资源链接 

VIC官网:Home - VICicon-default.png?t=L9C2https://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_dataicon-default.png?t=L9C2https://github.com/UW-Hydro/VIC_sample_data

2. VMware 与 Linux安装

2.1 VMware

1)下载地址:官网VMware Workstation Pro lets you run multiple operating systems as virtual machines (including Windows VMs) on a single windows or Linux PC.icon-default.png?t=L9C2https://www.vmware.com/products/workstation-pro.html

直接下载icon-default.png?t=L9C2https://download3.vmware.com/software/wkst/file/VMware-workstation-full-16.0.0-16894299.exe2)VMware16密钥

网上随意搜搜即可,此处给个参考

ZF3R0-FHED2-M80TY-8QYGC-NPKYF
 

2.2 Linux

此处选择了南京大学的镜像下载地址,版本选择了18.0.4,其他需要其他的自行下载即可

下载地址:NJU Mirroricon-default.png?t=L9C2https://mirror.nju.edu.cn/ubuntu-releases/

2.3 教程示例

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

3 VMtools安装

需要vmtools的背景是,先前把vic源码和vic示例文件下载到了windows桌面上,而虚拟机和主机是无法直接复制文件夹的,但vmtools安装成功后,可以实现跨系统文件夹的直接复制

教程示例:在linux虚拟机里手动安装VMware Tools_u012273935的专栏-CSDN博客icon-default.png?t=L9C2https://blog.csdn.net/u012273935/article/details/88675586

 其他:我在安装过程中出现了很多教程中没有展示的需确认项,部分直接enter即可,部分是需要输入yes/no,如果不放心建议百度解决。

如下图左侧两个文件夹,都是直接从Windows中直接复制进的linux

4 尝试编译VIC

4.1 进入源码文件夹

方式1:直接在vic/drivers/classic中右键,在终端打开

方式2:直接打开终端,通过cd进入(根据自己的文件夹路径而定)

cd Desktop/VIC-master/vic/drivers/classic

 4.2 编译vic.exe文件(make指令说明 / gcc / make安装)

4.2.1 操作过程

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命令查看版本

4.2.2 make指令说明 / gcc / make安装

什么是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

 

5 示例数据驱动vic

 5.1 示例数据说明

 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

这篇关于基于Linux下的VIC使用(1)基础准备的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!