- 积分
- 12508
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2019-7-29
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 雨落森林 于 2026-4-9 16:58 编辑
## 2023-10-22 20:00 ##
一、写在前面的话
关于flexpart的安装帖有很多,随便一搜就有,所以我也不需要再讲多少,已经亲测并且将需要的安装包都已经打包好了,照着下面的步骤安装是最简单的。这里选用的flexpart版本是10.4,推荐选用ubuntu 20.04,因为它默认安装的gcc是9.x的版本。要安装模式的话,gnu编译器不能太新,像是10.x以及我自己电脑的Arch linux系统用的是最新的13.x都是不行的,编译容易出问题。
(另外,由于附件不能上传超过50MB的东西,所以我分成了两份,使用的时候先把zip文件解压出来一个FlexpartEnv文件夹,再把flexpart_v10.4.tar.gz放进这个文件夹就可以了,在这个FlexpartEnv 文件夹里面执行docker buile或者执行setup.sh之类的)
1. 用docker安装
首先,这个是模式,最好安装在linux系统是最方便的,然后,无论是什么版本的linux的操作系统,除非是ubuntu20.04,否则最简单的办法就是用docker来装,有docker的话,直接照着附件里面的readme文件输入sudo docker build --tag=flexpart . 就可以了。
2. 用ubuntu 20.04安装
没有docker的话也不着急,手动模仿docker前期的步骤就行,首先准备一个ubuntu 20.04的操作系统(无论用双系统、虚拟机还是WSL2都可以),然后执行下面这条命令:
apt-get install gfortran gcc g++ build-essential m4 csh time vim python3 libhdf5-serial-dev python-dev libcurl4-openssl-dev libxml2 libxml2-dev python3-pip cmake autoconf libtool automake flex bison cmake python3-dev python3-pip libeccodes-dev
然后就算是把最基本的开发环境装好了然后把附件里面的那些东西cp到/tmp里面,再cd到/tmp里面,sudo sh ./setup.sh就可以直接一键无脑安装了。
二、额外的一些说明
flexpart默认安装在/usr/local/softwares/flexpart_v10这个目录,在里面的src中有可执行的文件LEXPART。
(又好像是在/nwps/flexpart_v10.4里面,不记得了,总之看哪个有就用哪个)
a. 如若需要更改安装路径,修改setup.sh里面的DIR和DIR_abs,这个DIR_abs中路径的斜杠/需要加个\,否则识别不出来。
b. 如若需要修改源代码,可以在src里面修改相应的代码,然后make ncf=yes重新编译。
三、总结
网上教程安装的东西太多都是冗余的,其实安装flexpart只需要zlib、jasper、eccodes和netcdf就可以了,别的那些都可以不需要。当安装的时候指定了eccodes就可以不用grib_api了。
另外,虽然说这是最简单的方法,可以省得走很多弯路,但是真的自己动手一步一步去装的话是能学到很多东西的。感兴趣的话可以看看setup.sh里面安装了什么以及如何安装的,还有就是src里面makefile的设置,都可以看一看,了解一下。
## 2026-4-9 17:00 ##
本人于2026年4月简单运行了flexpart模式,写了半自动化控制脚本来实现多个试验的设计,包括下载对应时段的fnl数据、后向模拟、Kmeans轨道聚类、计算E-P通量并画图,因此把环境上传备份一下。欢迎大家使用本环境,作为参考和借鉴。
把flex_run.zip文件解压,可以修改config文件来设计试验代号和它们对应的区域和时间,修改好COMMAND和RELEASES文件里面除了区域和时间以外的其它设置,主目录运行main.sh就会生成run目录,可以进入run目录执行download脚本下载fnl资料,config默认开启了代理,需要开启端口监听才有用。数据下载好会出现在data文件夹里面,把它和run文件夹都放入flexpart运行目录中,确保flexpart模式的文件夹下面有run和data,然后执行run.sh就会自动跑flexpart模式了。运行结束后会出现flex_out的文件夹,把它放入postprocess里面,修改并执行deal_data是处理并聚类数据的。(需要确保输出的partposi文件是十进制文本格式,可以在flexpart本身src里面修改partoutput.f90),然后,修改并执行auto_draw是画图的。当然,也可以手动修改并运行py代码。
|
评分
-
查看全部评分
|