登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 112f7 于 2022-7-24 14:02 编辑
接上次安装完之后,可以点vmware软件里的新建快照,保留一个最初始的系统状态,这样万一玩崩了不至于从头开始。或者依次选择“虚拟机>快照>新建快照” (图)
先解决一下下载源的问题,默认的源速度很慢,我不要求几兆每秒吧起码不能几k每秒。
(图)
因此在桌面点左下角九个点处点击显示应用程序,打开“软件和更新”,方盒子模样那个。点“下载自”,选“其他站点”,点“选择最佳服务器”。选自己熟悉的也行,或者清华他们的,或者自动选的也足够用了。
过一会等他结束,点“选择服务器”以确认,输入密码以认证,点关闭。
然后按照提示更新一下语言包软件包什么的,比如重新载入软件列表和更新语言支持。系统可以不升级到20
ubuntu版本介绍忽略就行 (图)
接下来要写写代码,因此有几点必须要说一下: 1、ubuntu虽然有人机交互界面,但是linux核心的终端控制作为内核还是不变的,大部分操作都要在终端上进行。 2、终端,如下图的样子。 3、电脑不太行的尽量别随便改VMware的窗口大小,保持全屏,我有两次为了复制代码方便弄了VMware和Edge的二分屏,然后ubuntu在适应分辨率的时候卡崩了直接开不了机,两次。 4、"sudo su"命令是用来将后续命令统一赋予管理员权限的,在输入正确密码后后续命令提示符变成白色#号,否则需要在每一处需要管理员权限的命令前增加“sudo”字段。 5、前面说的root权限虽然好用但是在该环境下生成的文件也只有管理员有更改权限,会很麻烦,所以合理使用sudo su命令。 6、cd是改目录用的,apt-get是安装软件用的,install是安装的意思,等。 7、一口气粘贴很多命令时,有时候最后一个命令不会被自动执行,记得回车。 8、ubuntu里crtl+c是终止运行,终端里慎用ctrl+c,不要和win里的复制搞混
(终端图)
一、为了极大地提高安装wrf的效率,需要win和ubuntu之间共用粘贴板,方法是启用vm-tools:
在桌面右键打开终端,依次键入以下命令:
sudo apt-get autoremove open-vm-tools 输完要回车执行
sudo apt-get update 输完要回车执行
sudo apt-get install open-vm-tools-desktop 输完要回车执行
第一次sudo的时候会让输密码,输就是了
会有询问空间占用的问题,输入y就行了
然后键入reboot命令重启虚拟机
二、在“虚拟机>设置”里可以添加共享文件夹,根据图里的选项,点击“添加”即可添加共享文件夹,有时候会比较方便
共享之后(我的名字叫Eshare)的位置在这,从桌面左边点击“文件”,进入文件系统,然后“其他位置>计算机>mnt>hgfs”
三、安装基本软件
在桌面打开终端,粘贴这些东西,根据我的经验,装这些东西之后就能成功安装wrf(可能会有一些用不到的)
sudo su
apt-get install gcc cpp gfortran g++ m4 make cshlibhdf5-mpich-dev libpng-dev libnetcdff-dev netcdf-bin mpi intltool git zlib* 代码的意思是安装gcc、cpp、make等一系列软件
然后检查更新:
apt-get update
apt-get upgrade
会花费几分钟
四、环境变量
这里的东西参考了这篇博文里写的,并添加了一些必要的不会导致报错的语句
小白跑WRF第二天,安装环境(各种编译器)的准备_野生的气象小流星的博客-CSDN博客_wrf安装
它里面的软件测试环节这里省去了,我做了好几遍都是没问题的,下面编辑环境变量
用nano打开bashrc,或者进主目录按crtl+h显示隐藏文件,打开bashrc进行编辑:
sudo nano ~/.bashrc
把这些东西粘贴到最后:记得改用户文件夹名字 export DIR=/home/(这里请输入自己的用户名文件夹)/Build_WRF/LIBRARIES export CC=gcc export CXX=g++ export FC=gfortran export CFLAGS='-m64' export F77=gfortran export FFLAGS='-m64' export PATH=$DIR/mpich/bin:$PATH export PATH=$DIR/netcdf/bin:$PATH export NETCDF=$DIR/netcdf export JASPERLIB=$DIR/grib2/lib export JASPERINC=$DIR/grib2/include export LDFLAGS=-L$DIR/grib2/lib export CPPFLAGS=-I$DIR/grib2/include export LD_LIBRARY_PATH=$DIR/grib2/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=$DIR/hdf5/lib:$LD_LIBRARY_PATH export HDF5=$DIR/hdf5 export CURL=$DIR/curl export ZLIB=$DIR/grib2 exportLD_LIBRARY_PATH=${NETCDF}/lib:${LD_LIBRARY_PATH} exportLD_RUN_PATH=${NETCDF}/lib:${LD_RUN_PATH} 如果使用nano编辑的,最后ctrl+x退出,它会问要不要保存,输入y然后回车 如果双击用文本编辑器打开的,点击保存然后退出
添加好之后,执行以下命令以生效环境变量:
source ~/.bashrc
然后:
reboot
重启虚拟机
五、
根据“野生的气象小流星”中引用的即WRF官方推荐的文件树结构,需要:
在主目录下执行以下命令,mkdir是创建目录的意思
mkdir Build_WRF
mkdir TESTS
不要在root(sudo)下做这个,不然文件夹上会有一个小锁 (主目录图)
双击进入Build_WRF,打开终端,再创建一个文件夹
mkdir LIBRARIES
六、mwget (可以不装,不影响WRF正常使用,后面的命令里如果出现mwget的换成wget即可)
为了从长计议,安装mwget,一个多线程下载器,防止下载大文件太慢(静态地理数据急哭了)
在主目录依次执行以下命令: sudo apt install build-essential
sudo apt upgrade intltool
sudo apt install libssl-dev
wget http://jaist.dl.sourceforge.net/project/kmphpfm/mwget/0.1/mwget_0.1.0.orig.tar.bz2
tar -xjvf mwget_0.1.0.orig.tar.bz2
cd mwget_0.1.0.orig
./configure
sudo make
(图)
根据经验,make命令后必报错,所以根据博文Ubuntu安装mwget_流星的眼眸的博客-CSDN博客_ubuntu安装mwget
进入刚才解压缩后的mwget_0.1.0.orig/src文件夹,打开报错的.cpp文件,在开头添加以下三行代码:
#include <string.h>
#include <string>
using std::string;
共三个.cpp文件,所以要make三次以找出所有报错文件,修改后记得保存
最后安装:
sudo make install
输入:
mwget -h
出现介绍文字表示成功
七、第三方依赖库
就不麻烦了一口气全上来,在代码最后解释含义
在Build_WRF下,执行(全部粘贴进去): wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/zlib-1.2.7.tar.gz wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/mpich-3.0.4.tar.gz wgethttps://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-1.8.22/src/hdf5-1.8.22.tar.gz wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/netcdf-4.1.3.tar.gz wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/jasper-1.900.1.tar.gz wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/libpng-1.2.50.tar.gz wget https://curl.se/download/curl-7.83.1.tar.gz tar xzvfzlib-1.2.7.tar.gz cd zlib-1.2.7 ./configure--prefix=$DIR/grib2 make make install cd .. tar xzvfmpich-3.0.4.tar.gz cd mpich-3.0.4 ./configure--prefix=$DIR/mpich make make install cd.. tar xzvflibpng-1.2.50.tar.gz cd libpng-1.2.50 ./configure--prefix=$DIR/grib2 make make install cd .. tar xzvfjasper-1.900.1.tar.gz cd jasper-1.900.1 ./configure--prefix=$DIR/grib2 make make install cd.. tar xzvfcurl-7.83.1.tar.gz cd curl-7.83.1 ./configure--prefix=${CURL} --with-amissl make make install cd .. tar zxvfhdf5-1.8.22.tar.gz cd hdf5-1.8.22 ./configure--with-zlib=${ZLIB} --prefix=${HDF5} --enable-fortran --enable-fortran2003 make make install cd .. tar xzvfnetcdf-4.1.3.tar.gz cd netcdf-4.1.3 CPPFLAGS=-I${HDF5}/includeLDFLAGS=-L${HDF5}/lib ./configure --prefix=${NETCDF} make make install cd ..
会很久,十几分钟
本人建议不要让它锁屏,动动鼠标
最后一行记得补一个回车
整体的意思是,先下载七个库,然后对每一个库依次进行解压缩文件夹、进入文件夹、配置、编译、安装、退出文件夹的操作。最后两个库有点特殊,因为根据小流星的教程做下来,我最后安装WRF的时候会报netcdf4的错,所以最后根据这个教程做了HDF5对netcdf支持的代码: ubuntu下安装NetCDF之HDF4/HDF5对NetCDF的支持_ISmileLi的博客-CSDN博客_ubuntu安装netcdf 但是兼容性测试的环节就不能按小流星(或官方)的程序测试,不过我这样做下来是没问题的。
如果安装出来LIBIARIES文件夹下是空的,可能是因为环境变量没生效或者没保存,返回去再加上 如果出现这个提示,说明库本身的安装没有问题了 (netcdf成功图)
好了好了,安装WRF
八、好累啊,好复杂 在Build_WRF下打开终端,执行以下命令: mwget https://www2.mmm.ucar.edu/wrf/src/WRFV4.0.TAR.gz tar xzvfWRFV4.0.TAR.gz cd WRF ./configure Wrf比较大,我用了mwget 即下载wrf、解压缩、进入文件夹、配置 (wrf配置图)
这里选择34或者32,回车后选1(基本)再回车。 我这里选的是34和1 假如说这里失败了,在确认前面步骤没错的情况下,改一下第一个选项,比如34改成32或者33试一下 (wrf配置成功图)
然后运行: ./compileem_real >& log.compile 会很久,二十多分钟。结束时候去Build_WRF\WRF\main\里找四个exe文件,或者执行此命令: ls -lsmain/*.exe (wrf4exe成功图)
其他文件夹比如WRF\run\里的exe是链接过去的,如果main里没有exe只有run里有的话也是安装失败的。 错误信息保存在log.compile里,在WRF文件夹下,从后往前找能看到error信息(比如有一次出现了hdf5的gfortran编译不支持,因此不得不在之前的代码里加入了--enable-fortran--enable-fortran2003)
九、WPS 在Build_WRF下执行以下命令: wgethttps://www2.mmm.ucar.edu/wrf/src/WPSV4.0.TAR.gz tar xzvfWPSV4.0.TAR.gz cd WPS ./clean ./configure (WPS选择图)
选3,dmpar,和刚才wrf的选择相对应 出现此图即为成功: (wps成功图)
这里它会自动检查之前c、Fortran的运行是否良好,我之前出了一些问题,在这篇博文中找到答案,在环境变量里增添两行语句,这一步已经在之前的步骤里写好了: http://t.zoukankan.com/cuancuancuanhao-p-10711140.html 现在执行此命令: ./compile>& compile.log & tail -f compile.log 当屏幕停止跳动后(约一分钟),也就是这个画面: (停止跳动图)
按键盘上的ctrl+c终止程序运行 然后执行此命令查看3个exe文件是否已经生成: ls -las *.exe (wps3exe成功图)
在小流星的文章里,修改了namelist.wps文件。为了后面成功地运行wrf案例,也修改一下: (namelist.wps.txt) 篇幅原因就不把原文放上来了,文件在开头压缩包里,同名文件。要把里面的一处中文字改成自己的文件名!然后删除.txt后缀!最后替换掉Build_WRF\WPS\下的namelist.wps! 【为了以防万一,先说一下,在后续运行WRF时,如果出现无法读取namelist.input,或其他从win里移动到ub的文件无法读取的问题,需要在ubuntu下打开namelist.input,清空内容,复制windows下namelist.input.txt中的内容,粘贴到ub下同名文件夹内,最后重新运行程序,可能因为win和linux的字符编码有些不同】
十、静态地理数据 在Build_WRF下执行: mkdir WPS_GEOG 以创建文件夹 然后根据namelist.wps中的设置,也就是geog_data_res变量,下载对应的数据包,放入刚才创建的文件夹里 数据量很大,我也是费了一番心思才找齐,东西我放百度网盘了,要的自提: 《在文章最后》 这一部分需要将解压缩后的20个文件夹直接放在WPS_GEOG里,最好是直接在ub里解压缩,以防出现linux和win字符编码不同的错误,因此在压缩包所在文件夹执行以下命令: xz -djingtaigeog.tar.xz tar -xvfjingtaigeog.tar tar xjvfalbedo_modis.tar.bz2 tar xjvfclayfrac_5m.tar.bz2 tar xjvferod.tar.bz2 tar xjvfgreenfrac_fpar_modis.tar.bz2 tar xjvflai_modis_10m.tar.bz2 tar xjvflake_depth.tar.bz2 tar xjvfmaxsnowalb_modis.tar.bz2 tar xjvfmodis_landuse_20class_30s_with_lakes.tar.bz2 tar xjvfnlcd2011_can_ll_9s.tar.bz2 tar xjvfnlcd2011_imp_ll_9s.tar.bz2 tar xjvforogwd_10m.tar.bz2 tar xjvfsandfrac_5m.tar.bz2 tar xjvfsoiltemp_1deg.tar.bz2 tar xjvfsoiltype_bot_30s.tar.bz2 tar xjvfsoiltype_bot_10m.tar.bz2 tar xjvftopo_gmted2010_30s.tar.bz2 tar xjvfvarsso_10m.tar.bz2 tar xjvfNUDAPT44_1km.tar.bz2 tar xjvfsoiltype_top_30s.tar.bz2 tar xjvfsoiltype_top_10m.tar.bz2 然后要手动把全部文件夹移动到WPS_GEOG里,删除全部无用文件 (抱歉这里十分繁琐,因为来回的压缩和解压缩20G的数据太费时间了,就先这样吧) (效果图)
十一、ARWpost 在Build_WRF文件夹下打开终端,运行以下代码: wgethttps://www2.mmm.ucar.edu/wrf/src/ARWpost_V3.tar.gz tar -zxvfARWpost_V3.tar.gz cd ARWpost ./configure 意思为从下载到配置的过程 选择3,即gfortran,我们始终都用的这个工具,保持一致 图(ARWpost成功) 然后进入Build_WRF\ARWpost\src\Makefile,这里有个makefile文件,makefile的是用来统一集合编译的,往往一个工程里包含很多待编译的文件,makefile的存在使得用户只要使用“make”命令即可一键编译 根据小流星的教程,我们需要将 第19行:-L$(NETCDF)/lib -I$(NETCDF)/include -lnetcdf
修改为:-L$(NETCDF)/lib-I$(NETCDF)/include -lnetcdff -lnetcdf 要是嫌麻烦,我给的替换压缩包里有,同名的,直接换就行了,但是后缀“txt”务必要去掉 第二个修改的: 位置:\Build_WRF\ARWpost\configure.arwp 第37行:CFLAGS =-m64 修改为:CFLAGS= -fPIC -m64
第38行:CPP =/lib/cpp -C -P -traditional 修改为:CPP= /lib/cpp -P -traditional 这里两个文件的修改步骤我直接cp了,因为做下来没有问题,本着能跑就不动的原则,还是照做 文件替换压缩包里也有,同名的
现在在ARWpost文件夹下执行: ./compile ls -ls *.exe 图(ARWpostexe成功)
如果出现这样一个exe文件,则成功,这一步在我装的很多遍里没有出过问题
最后修改namelist.ARWpost 位置:\Build_WRF\ARWpost\namelist.ARWpost 这里有两个要改成自己文件夹名字的地方,注意改好之后要去掉后缀名然后替换原文件,压缩包里有
十二、数据准备 最开始装WRF时就是去官网下的和小流星一样时间的数据文件,所以说这里我就不改别的了,直接放上。
后续WRF运行教程参考小流星的文章: 小白跑WRF第七天,运行WRF案例_野生的气象小流星的博客-CSDN博客_wrf运行实例 最后说几点小流星没提但是说不定会用的东西: 1、 WRF运行错误日志文件在Build_WRF/WRF/test/em_real/rsl.error.0000,几线程运行就会有几个错误文件 2、 如果之前哪里的步骤出错,在运行real.exe的时候就会有五花八门的问题出来,到时候具体问题具体分析 3、 ARWpost后处理得到的数据可以用GRADS来分析,但是grads也是要在linux环境下跑的,论坛里有大佬做的win下运行的opengrads程序,跑的时候一定要先开Xming,目录是OpenGrADS2.1.a2\opengrads\Contents\Resources\Xming\Xming.exe。在win下win+r,输入cmd调出命令行,使用d:或其他字母,更改盘符,使用cd ProgramFiles\OpenGrADS2.1.a2\opengrads\Classic\bin或其他路径,定位到grads文件夹,然后输入grads运行grads即可。把生成的.ctl控制文件拖入命令行,使用d tc或set z 15等来显示地图或调整高度,结果展示在Xming内。
用到的附件: 1、静态地理数据 链接:https://pan.baidu.com/s/190ybfCHfKQPQGYj9V4oX0g 提取码:khaj 2、文中用到的大部分代码 |