Python支持下最新Noah-MP陆面模式站点、区域模拟及可视化分析技术教程

news2024/9/24 21:26:16

详情点击公众号链接:Python支持下最新Noah-MP陆面模式站点、区域模拟及可视化分析技术教程

Noah-MP 5.0模型&模型所需环境的搭建

陆面过程的主要研究内容(陆表能量平衡、水循环、碳循环等),陆面过程研究的重要性。

图片

图 1 陆面过程主要研究内容

陆面过程模型的发展历程、基本原理、常用陆面过程模型等。

图片

图 2 陆面过程模型

Noah-MP 5.0模型

Noah-MP 5.0模型的发展历史、主要模块、模型代码结构等。

模型运行环境配置、下载与安装

模型以及配套软件的下载

模型需要在Linux下运行,需提前预装Linux系统(推荐使用CentOS系统,下载地址为:https://www.centos.org/download/,安装教程可参考:

https://www.runoob.com/w3cnote/vmware-install-centos7.html。

运行模型需要提前确定模型运行环境,如系统使用的fortran及C编译器类型等,为之后运行解压缩包下的./configure及Makefile做准备。

模型下载地址:https://github.com/NCAR/hrldas/tree/master/hrldas。

图片

图 3 下载界面

模型以及配套软件的安装

从虚拟机出发,逐步Noah-MP 5.0模型运行所需的linux环境的搭建、intel编译器的安装与配置、必要软件的下载与安装、模型构建与编译等内容,细化步骤、逐指令。

完成相关软件和linux系统的配置,逐行运行指令,直至hrldas模型搭建编译完成。熟悉linux系统环境,掌握终端(指令行)下进行文件操作的技能,为后续运行模型打下基础。

Python教程

Python编程环境配置

陆面过程模型的数据处理及可视化需要Python语言的协助,在进行陆面模型模拟前需要配置好对应的Python编译环境并掌握Python的基本语法及操作。

环境配置

几种不同的环境配置,包括编译器和解释器及包管理器的选择与使用。同时还针对Python的基本语法知识。

图片

处理数据

格式化处理陆面模型运行能够识别的格式

图片

Noah-MP 5.0模型站点模拟

Noah-MP 5.0模型单站运行

大气驱动数据的准备

驱动数据主要包括站点的风速、气温、相对湿度、气压、长波辐射、短波辐射以及降水数据。对于Noah-MP 5.0模型而言,原始驱动数据需制作成模型可识别的标准格式,才能够进行下一步的驱动数据编译,将编译结果带入模型进行运算(python脚本)。

图片

数据时间格式转换

完成驱动数据在世界时和当地时之间的转换。

根据示例数据中的站点原始数据,基于python脚本,进行数据的提取合并以及时间转换,生成站点模拟所需的.dat格式文件。

准备静态数据

完成驱动数据的制作后,还需在生成的.dat文件中添加静态数据。此部分数据主要包括站点属性以及模型信息,如站点的海拔,经纬度,土壤类型,初始状态变量的设定和转换系数等。

图片

图 5 站点信息

图片

图 6 初始状态变量

驱动数据的编译运行

基于以上数据,生成指定时间步长的一系列.LDASIN_DOMAIN1文件,同时生成hrldas_setup_file.nc文件。

运行模型

根据研究区实际情况与模拟需求修改namelist.hrldas文件,./hrldas.exe即可启动模型,结果将以netCDF格式输出至指定文件夹内。

图片

图 7 修改namelist文件

模型运行结果的可视化与分析

讲解可视化部分使用的python脚本结构和用法。

借助python netCDF(https://github.com/Unidata/netcdf4-python)或xarray(http://xarray.pydata.org/en/stable)等工具对模拟结果(netCDF格式)进行变量提取与可视化,以用于进一步分析。

图片

基于示例代码中数据可视化部分的python脚本,对叶面积指数、感热通量以及潜热通量等模拟结果进行提取可视化,在熟悉代码结构的基础上,也可对其他变量进行筛选和提取。

单站模拟1

基于完整的单站模拟流程,选择示例站点之外的一个站点,完成数据下载、变量提取、格式转换、数据编译、模型参数设定、模型运行、结果提取与导出、结果可视化等操作。巩固成果,对疏漏点和易错点。

单站模拟2

选择不同的模型参数化方案,分别运行模型并对结果进行提取与可视化,对比与其他参数化方案所得结果的差异。

Noah-MP 5.0模型区域模拟

Noah-MP 5.0模型区域运行

Noah-MP 5.0模型区域运行整体流程与站点模拟相似,大致也可分为数据下载、数据变量提取、制作驱动数据、设置参数化方案、模型模拟与模拟结果可视化分析等几个步骤。但区域模拟的数据准备过程相较于站点运行更为繁琐,使用的数据源也更为多样,如GLDAS、NLDAS以及CLDAS等。同时模拟结果以二维形式存储,提取与可视化的方法也不同于单站。

区域运行将会基于GLDAS和NLDAS等数据源制作驱动数据的模拟方法,区域运行结果可视化工具xarray的使用方法。结构主要分为数据下载、数据处理、数据编译、模型运行与结果可视化几个部分:

准备大气驱动数据

Noah-MP 5.0模型的运行需要格式正确的驱动数据(气温、降水、气压、风速、辐射等)。因此用户需提前下载并处理好相关数据,以下为数据准备的简要步骤。

下载大气驱动数据-以GLDAS为例

区域驱动数据主要包括研究区的风速、气温、相对湿度、气压、长波辐射、短波辐射以及降水等。可从GLDAS官网下载相关数据:

https://disc.gsfc.nasa.gov/datasets/GLDAS_NOAH025_3H_2.1/summary?keywords=GLDAS。

图片

图 9 下载区域大气驱动数据

两种区域数据的获取方法,一种是基于downthemall的批量下载方法,操作简便;另一种是基于python脚本的数据抓取方式,自由化更高;学员可尝试不同的数据下载方法,获取区域驱动数据的源数据。

相关变量的提取与时间转换

对模型模拟所需变量进行提取,同时完成世界时和当地时之间的转换。

图片

图 10 相关变量提取代码(部分)

初始状态变量的提取与时间转换

图片

图 11 初始状态变量提取代码(部分)

风速的分解、降水数据的整合

图片

图 12 风速分解代码(部分)

图片

图 13 降水数据的提取整合(部分)

基于下载的netCDF4格式的源数据,分别编辑并运行以上python及perl脚本,生成变量分解后的一系列netCDF4格式文件,用于编译生成驱动数据。

准备研究区静态数据

制作geo_em_d0x.nc数据

基于WPS制作区域静态数据(包括研究区范围、研究区土地利用情况、植被覆盖度等信息)。此部分需安装WRF及WPS,并下载WPS_GEOG数据。详细流程可参考:

https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compilation_tutorial.php。

图片

观看WPS的安装编译视频,熟悉WPS的安装配置流程。

准备数字高程数据

hrldas (Noah-MP 5.0)自带的高程文件-GLDASGLDASp4_elevation_025d.nc4。一般情况下,将此文件作为模型的高程输入数据即可。 

编译与运行-生成模型驱动数据

区域原始的气象驱动数据和静态数据准备完毕后,需编译运行生成符合模型要求的驱动数据-*.LDASIN_DOMAIN1。

图片

图 14 设置namelist.input文件

图片

图 15 驱动数据制作结果

修改好相关目录的目录结构,在指定目录下,准备好必须的程序与文件,编译运行生成.LDASIN_DOMAIN1格式的驱动数据。

运行hrldas (Noah-MP 5.0)模型

根据研究区特点及用户模拟需求,修改namelist.hrldas文件,Namelist.hrldas文件编辑完成后,即可运行可执行程序/hrldas.exe。模型模拟结果将输出至指定文件夹下,若运行成功,在输出目录下应包含指定模拟时间段内的指定时间步长的模拟结果-*.LDASOUT_DOMAIN1

图片

图 16 输出结果文件

设置namelist.hrldas,选择一套参数化方案,运行模型。

数据的分析与可视化

区域模拟结果亦为netCDF格式文件,借助xarray,pandas等工具进一步进行变量提取、可视化等工作。

图片

图 17 模拟结果

基于提供的python脚本,提取模拟结果中的相关变量并可视化,熟悉xarray的使用方法。

区域模拟1

基于完整的区域模拟流程,选择课程示例区域之外的一个区域,完成数据下载、变量提取、格式转换、数据编译、模型参数设定、模型运行、结果提取与导出、结果可视化等操作。巩固成果,对疏漏点和易错点。

区域模拟2

选择不同的模型参数化方案,分别运行模型并对结果进行提取与可视化,对比与其他参数化方案所得结果的差异。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/908015.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MyBatis-Plus快速开始[MyBatis-Plus系列] - 第482篇

悟纤:师傅,MyBatis-Plus被你介绍的这么神乎其乎,咱们还是来的点实际的吧。 师傅:那真是必须的,学习技术常用的一种方法,就是实践。 悟纤:贱贱更健康。 师傅:这… 师傅:…

”源启,征程“新员工入职考试题及答案

中电金信,新员工入职必修课《源启,征程》考试题及答案。 源启,征程 单选题,每题仅有一个正确的选项.(本题型共有5题) 1.“源启”诞生的背景是什么?(10分) A、国际关系…

macbook 加载模型报错:failed to load model

环境:macbook m1 conda python3.9 加载模型链接为:ggml-model-q4_0.bin 加载方式: from langchain.embeddings import LlamaCppEmbeddings embeddings LlamaCppEmbeddings(model_pathllama_path) 在linux上加载是正常的,但是…

互联网医院|线上医疗提升就医效率

互联网医院是一款在线医疗服务平台,旨在解决患者就医难、看病贵的问题。通过该应用,用户可以在线咨询医生、挂号就医、获取医疗信息和健康管理等服务,随着这几年人们对于线上医疗的认可,互联网医院系统功能也越来越完善&#xff0…

(二)Linux中安装docker(一篇就够)

一、安装docker (1)卸载系统之前的 docker 复制以下下命令执行: sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine执行结果&…

使用vscode编写插件-php语言

https://blog.csdn.net/qq_45701130/article/details/125206645 一、环境搭建 1、安装 Visual Studio Code 2、安装 Node.js 3、安装 Git 4、安装生产插件代码的工具:npm install -g yo generator-code 二、创建工程 yo code 选择项解释: 选择编写扩…

Docker数据管理、网络通信和镜像创建

一、Docker 数据管理1、数据卷2、数据卷容器3、端口映射4、容器互联 二、Docker 镜像的创建1、基于现有的镜像创建1.1 首先启动一个镜像,在容器里做修改1.2 然后将修改后的容器提交为新的镜像,需要使用该容器的 ID 号创建新镜像 2、基于本地的模版创建3、…

RunnerGo中WebSocket、Dubbo、TCP/IP三种协议接口测试详解

大家好,RunnerGo作为一款一站式测试平台不断为用户提供更好的使用体验,最近得知RunnerGo新增对,WebSocket、Dubbo、TCP/IP,三种协议API的测试支持,本篇文章跟大家分享一下使用方法。 WebSocket协议 WebSocket 是一种…

【LeetCode】538.把二叉搜索树转换为累加树

题目 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒一下,二叉搜索树满足下列约束条件…

NAS个人云存储 - 手把手教你搭建Nextcloud个人云盘并实现公网远程访问

文章目录 摘要1. 环境搭建2. 测试局域网访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问 4 配置固定http公网地址4.1 保留一个二级子域名4.1 配置固定二级子域名4.3 测试访问公网固定二级子域名 摘要 Nextcloud,它是ownCloud的一个分支,是一个文件共享服…

VSCode好用的插件

文章目录 前言1.Snippet Creator & easy snippet(自定义代码)2.Indent Rainbow(代码缩进)3.Chinese (Simplified) Language Pack(中文包)4.Path Intellisense(路径提示)5.Beauti…

GitKraken 详细图文教程

前言 写这篇文章的原因是组内的产品和美术同学,开始参与到git工作流中,但是网上又没有找到一个比较详细的使用教程,所以干脆就自己写了一个[doge]。文章的内容比较基础,介绍了Git内的一些基础概念和基本操作,适合零基…

游戏反外挂方案解析

近年来,游戏市场高速发展,随之而来的还有图谋利益的游戏黑产。在利益吸引下,游戏黑产扩张迅猛,已发展成具有庞大规模的产业链,市面上游戏受其侵扰的案例屡见不鲜。 据《FairGuard游戏安全2022年度报告》数据统计&…

明星翻包口播介绍产品视频的创意与实践

在当前社交媒体充斥着各种内容的时代,创意而有趣的内容形式成为品牌吸引受众目光的关键。明星翻包口播介绍产品视频,作为一种新颖的内容形式,不仅满足了观众对明星生活的好奇心,还将产品介绍融入其中,为品牌推广带来全…

Spring练习---28 (用户表和角色表分析,角色列表展示,角色层和Dao层的设置,页面展示操作)

84、下面进入我们的业务层面,进入我们的业务层面我们先分析一个东西,我们要分析用户和角色的关系,因为我们只有在分析完用户和角色之间的关系后,我们才知道表的关系,实体的关系 85、现在我们先画一张表,分析…

传统节日民俗文化及民间故事推广系统 微信小程序

傣族节日及民间故事推广小程序是在的数据存储主要通过MySQL。用户在使用应用时产生的数据通过java语言传递给数据库。通过此方式促进傣族节日及民间故事推广信息流动和数据传输效率,提供一个内容丰富、功能多样、易于操作的平台。述了数据库的设计,系统的…

Application of Acrel Earth Leakage Relay in Intell

安科瑞 华楠 Abstract: the necessity of applying residual current relay in intelligent building is analyzed, the main functions, working principle, classification situation of ASJ residual current relay are introduced, and the principles and precautions in…

Everything+cpolar搭建在线资料库,实现随时随地访问

Everythingcpolar搭建在线资料库,实现随时随地访问 文章目录 Everythingcpolar搭建在线资料库,实现随时随地访问前言1.软件安装完成后,打开Everything2.登录cpolar官网 设置空白数据隧道3.将空白数据隧道与本地Everything软件结合起来总结 &a…

Cesium 模型视角锁定(entity)

需求: 需要将视角锁定在以模型为中心,无论怎么旋转和缩放,都是以模型为中心点的。 方法: //绑定方式 viewer.trackedEntity entity; //解绑方式 viewer.trackedEntity undefined;例子 var model_entity viewer.entities.add…

6个主流的工业3D管道设计软件

3D 管道设计软件是大多数行业工程工作的主要部分,例如: 电力、石油和天然气、石化、炼油厂、纸浆和造纸、化学品和加工业。 全球各工程公司使用了近 50 种工厂或管道设计软件。 每个软件都有优点和缺点,包括价格点。 EPC 和业主部门当前的趋势…