当前位置: 首页 > news >正文

WRF后处理:使用ncl脚本批量提取wrfout变量并输出/Shell 入门:Shell进入不同文件夹执行脚本

目录

    • 背景
    • 思路
    • NCL提取wrfout特定变量
    • Shell批量执行

背景

在之前的博客WRF后处理总结我提到过将NCL与python结合进行后处理的问题,即,使用NCL进行wrfout变量的提取、计算、输出,再用已有python脚本绘图,这样可以极大节省时间。
对于run模式的而言,连续提交好几个作业任务进行敏感性试验是家常便饭,那么,能不能用NCL脚本加上shell同时对几个敏感性试验的结果进行提取并输出呢?这就是我打算实现的事。

思路

思路其实也很简单:敏感性实验的目的无非是比较几个特定变量的差异,我们只需将存于不同文件夹的wrfout所需提取出来,输出再由python绘图即可。
当然,如果服务器上已经装有python可以无需输出,只需直接调用py脚本,但由于服务器自身原因,加之Windows下的可视化绘图更加精致直观,这里我还是选择输出再绘图的模式。

NCL提取wrfout特定变量

load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/esmf/ESMF_regridding.ncl"
;get varaiables from wrfout
begin
;DIR1 = getenv(path1)
DIR1 ="/public/home/zhangzilu/Build_WRF/PWRF-4.3/run/out_amsr/"
FILES1 = systemfunc (" ls -1 " + DIR1 + "wrfout* ")
print(FILES1)
a1 = addfiles(FILES1,"r")
vlist=(/"p","slp","z","tk","T2","QVAPOR","rh","U10","V10","ua","va","wa","GLW","LWUPB","SWDOWN","SWUPB","HFX","LH","PBLH"/)
n=toint(dimsizes(vlist))
time = wrf_user_getvar(a1,"times",-1)  ;
print(time)
print(n)
setfileoption("nc", "Format", "NetCDF4Classic")
out1=addfile("wrf_var.nc", "c")
;p = wrf_user_getvar(a1,"p",-1)
;out1->p = p
;out1->times = time
;out2=addfile("wrf_avevar.nc", "c")
m=n-1
do i=0,m
data1=wrf_user_getvar(a1,vlist(i),-1)
printVarSummary(data1)
;data2=dim_avg_n(data1, 0)
out1->$vlist(i)$ = data1
;out2->vlist(i) = data2
delete(data1)
end do
end

写一个循环遍历需要的文件和变量名称提取即可。

Shell批量执行

由于我们的敏感性试验往往放在不同的文件夹中,我们可以写一个bash脚本,一口气将所有的试验变量提取出来。
思路相同,只要链接进入不同的文件夹内执行就好:

#!/bin/bashWRFpath="/public/home/zhangzilu/Build_WRF/PWRF-4.3/run/"
expname=(noseaice/ nosnow/ out_amsr/)
for file in ${expname[*]}
doecho $filepath[${#path[*]}]=${WRFpath}${file}echo $pathsname="get_varwrf.ncl"ln -sf "/public/home/zhangzilu/Build_WRF/PWRF-4.3/run/get_varwrf.ncl" ${path}${sname}cd $pathncl get_varwrf.nclpath=()
done

这里唯一值得一提的是shell中列表和数组的索引与构建问题,在shell中,字符串变量只能作为列表存放,不能与数组弄混。
以上。

相关文章:

WRF后处理:使用ncl脚本批量提取wrfout变量并输出/Shell 入门:Shell进入不同文件夹执行脚本

目录背景思路NCL提取wrfout特定变量Shell批量执行背景 在之前的博客WRF后处理总结我提到过将NCL与python结合进行后处理的问题,即,使用NCL进行wrfout变量的提取、计算、输出,再用已有python脚本绘图,这样可以极大节省时间。 对于…...

Consul在Windows系统下的安装与启动

1、Consul的简介 Consul 是由 HashiCorp 公司推出的一款开源工具,用于实现分布式系统的服务发现与服务配置。它内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key-Value 存储、多数据中心方案。 Consul 使用 GO 语言编写,因此天然具有可移…...

2022国赛16:神州路由器交换机BGP配置实例1

实验拓扑图 一、基本配置: R1配置: Router>ena Router#conf Router_config#host R1 R1_config#int g0/0 R1_config_g0/0#ip add 202.11.1.1 255.255.255.252 R1_config_g0/0#int l0 R1_config_l0#ip add 1.1.1.1 255.255.255.255 R1_confi...

PaddlePaddle NLP学习笔记1 词向量

文章目录1.语言模型 Language Model1.1 语言模型是什么1.2 语言模型计算什么1.3 n-gram Language Model2.神经网络语言模型NNLM2.1 N-gram模型的问题3. 词向量3.1 词向量(word Embedding)word2vec 词向量训练算法3.2 如何把词转换为词向量?3.3如何让向量具有语义信息…...

无重复全排列 [2*+]

目录 无重复全排列 [2*+] 程序设计 程序分析 无重复全排列 [2*+] 输出N个数的无重复全排列 Input 输入一个数值N 1<=N=50 Output 输出N个数的无重复全排列,每个数之间用空格隔开 最后一行输出无重复全排列的个数。 Sample Input 3 Sample Output 1 2...

【血泪建议】软件测试岗位现状,可惜之前没人告诉我,肠子都晦青了....

谈到现状&#xff0c;国内的软件测试行情目前呈现了两极分化的极端情况。 一个是早期的手工测试人员吐槽工作不好做&#xff0c;即使有工作也是外包&#xff0c;而且薪资太低&#xff1b;一方面是很多互联网企业感叹自动化测试人才难找&#xff0c;有技术的自动化测试工程师&a…...

Elastic(ELK) Stack 架构师成长路径

Elastic Stack&#xff08;ELK Stack&#xff09;是一个开源的日志分析平台&#xff0c;由 Elasticsearch、Logstash 和 Kibana 三个组件组成&#xff0c;主要用于数据搜索、分析和可视化。要成为一名 ELK Stack 架构师&#xff0c;需要遵循一定的成长路径&#xff0c;以便逐步…...

Netty的高性能体现在哪些方面

文章目录Netty的高性能体现在哪些方面1. 非阻塞I/O2. 零拷贝3. 内存池4. 线程模型Netty的高性能体现在哪些方面 Netty是一个高性能、异步事件驱动的网络应用程序框架&#xff0c;它具有出色的稳定性和灵活性。在现代的分布式系统和互联网应用中&#xff0c;Netty已经成为构建高…...

CompletableFuture详解

1、概述 咱们都知道可以通过继承Thread类或者实现Runnable接口两种方式实现多线程。但是有时候我们希望得到多线程异步任务执行后的结果&#xff0c;也就是异步任务执行后有返回值&#xff0c;Thread和Runnable是不能实现的。当我们需要返回值的时候怎么办呢&#xff1f; Java…...

(学习日记)2023.3.10

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…...

【图像分割】Meta分割一切(SAM)模型环境配置和使用教程

注意&#xff1a;python>3.8, pytorch>1.7,torchvision>0.8 Feel free to ask any question. 遇到问题欢迎评论区讨论. 官方教程&#xff1a; https://github.com/facebookresearch/segment-anything 1 环境配置 1.1 安装主要库&#xff1a; &#xff08;1&…...

AJ入门路线

一.AspectJ 入门 概述安装示例代码切入点表达式thisJoinPointStaticPart 和 thisJoinPoint与Spring 切面写法的对比总结 初步了解了aspectJ的使用&#xff0c;我们可以了解以下几点&#xff1a; 1&#xff09;aspectJ的使用是在编译期&#xff0c;通过特殊的编译器可以在不改变…...

多商户商城小程序源码开发需具备哪些功能?

随着电商的进一步发展&#xff0c;传统企业为了更好的占领市场也纷纷向电商市场迈进&#xff0c;着手打造属于自己的商城系统。多商户商城系统是一种多商户、多商品、多支付的电子商务平台&#xff0c;功能丰富&#xff0c;涵盖多个行业&#xff0c;能够满足多种商家和用户的需…...

【动态规划模板】最长公共|上升子序列问题

最长公共子序列&#x1f349; 给定两个长度分别为N和M的字符串A和B&#xff0c;求既是A的子序列又是B的子序列的字符串长度最长是多少。 输入格式 第一行包含两个整数 N 和 M。 第二行包含一个长度为N的字符串&#xff0c;表示字符串A。 第三行包含一个长度为M的字符串&am…...

Android系统启动流程--zygote进程的启动流程

在上一篇init进程启动流程中已经提到&#xff0c;在init中会解析一个init.rc文件&#xff0c;解析后会执行其中的命令来启动zygote进程、serviceManager进程等&#xff0c;下面我们来看一下&#xff1a; //文件路径&#xff1a;system/core/init/init.cppstatic void LoadBoot…...

C++程序设计——异常

一、C异常概念 异常处理是一种处理错误的方式&#xff0c;当一个函数发现自己无法处理的错误时&#xff0c;就可以抛出异常&#xff0c;让函数的直接或间接的调用者处理这个错误。 &#xff08;1&#xff09;throw&#xff1a;当问题出现时&#xff0c;程序会通过throw关键字抛…...

2022年第十三届蓝桥杯web开发—东奥大抽奖【题目、附官方解答】

冬奥大抽奖 介绍 蓝桥云课庆冬奥需要举行一次抽奖活动&#xff0c;我们一起做一个页面提供给云课冬奥抽奖活动使用。 准备 开始答题前&#xff0c;需要先打开本题的项目代码文件夹&#xff0c;目录结构如下&#xff1a; ├── css │ └── style.css ├── effect.g…...

一份两年前一个月的工作经历没写在简历上,背调前主动坦白,却被背调公司亮了红灯,到手的offer没了!...

只因为简历上漏写了一份一个月的工作&#xff0c;就被亮了背调红灯&#xff0c;这公平吗&#xff1f;一位网友就被狠狠坑了一把&#xff0c;来看下他的遭遇&#xff1a;他有一份两年前、时长一个月的工作经历没写在简历上&#xff0c;背调前主动和背调公司还有招聘方hr都说了这…...

C++游戏分析与破解方法介绍

1、C游戏简介 目前手机游戏直接用C开发的已经不多&#xff0c;使用C开发的多是早期的基于cocos2dx的游戏&#xff0c;因此我们这里就以cocos2d-x为例讲解C游戏的分析与破解方法。 Cocos2d-x是一个移动端游戏开发框架&#xff0c;可以使用C或者lua进行开发&#xff0c;也可以混…...

食堂总是拥挤不堪?解决用餐拥挤,教你一招

随着近几年科技的快速发展&#xff0c;行业里出现了很多新的名词&#xff0c;比如智慧社区、智慧旅游、智慧建筑&#xff0c;那么智慧食堂是什么呢&#xff1f;它又是如何实现全自助、全智能消费&#xff1f; 在先进的智能技术以及市场需求带动下&#xff0c;智慧食堂经历了由传…...

深入解析:set_clock_groups中-physically_exclusive与-asynchronous的约束协同与必要性

1. 从Spyglass报错看时钟约束的必要性 最近在跑Spyglass做SDC检查时&#xff0c;遇到了一个让我困惑的报错&#xff1a;"当两个时钟设置成物理互斥或逻辑互斥时&#xff0c;需要另外加上这两个时钟是异步设置的约束"。这让我很纳闷&#xff0c;明明已经设置了物理互…...

Matlab APP Designer避坑指南:字符进度条不更新的解决方案

Matlab APP Designer避坑指南&#xff1a;字符进度条不更新的解决方案 在Matlab APP Designer开发过程中&#xff0c;进度条是用户交互体验的重要组成部分。许多开发者都遇到过这样的困扰&#xff1a;精心设计的字符进度条在运行时却"卡住"不动&#xff0c;直到整个计…...

避开这些坑!算法工程师自学必备的5个高效学习法与工具推荐

避开这些坑&#xff01;算法工程师自学必备的5个高效学习法与工具推荐 1. 为什么大多数自学算法工程师会失败&#xff1f; 在咖啡馆见到老张时&#xff0c;他正对着电脑屏幕上的LeetCode题目发呆。这位转行学习算法的前机械工程师已经坚持了8个月&#xff0c;但最近一次面试还是…...

Guohua Diffusion 快速入门:三步完成星图GPU平台一键部署

Guohua Diffusion 快速入门&#xff1a;三步完成星图GPU平台一键部署 想试试AI绘画&#xff0c;但被复杂的安装和环境配置劝退&#xff1f;今天&#xff0c;咱们就来聊聊怎么用最简单的方式&#xff0c;在星图GPU平台上玩转Guohua Diffusion。整个过程&#xff0c;你只需要点三…...

别再瞎猜了!手把手教你用公式算清摄像头MIPI Lane数(附Excel计算器)

摄像头MIPI Lane数计算实战&#xff1a;从理论到Excel工具全解析 在嵌入式摄像头模组开发中&#xff0c;MIPI Lane数的选择往往让工程师陷入两难&#xff1a;Lane数不足会导致数据吞吐瓶颈&#xff0c;而过度配置又会增加功耗和成本。我曾见过一个团队因为凭经验选择了2 Lane配…...

上海优质seo公司推荐_上海seo公司的优势在哪里

<h3 id"seo_seo">上海优质seo公司推荐_上海seo公司的优势在哪里</h3> <p>在当今互联网营销的时代&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;已经成为企业提升网站流量、品牌知名度的重要手段。特别是在经济发达的大都市上海&#xff0c…...

OpenClaw多语言支持:GLM-4.7-Flash跨语言任务处理

OpenClaw多语言支持&#xff1a;GLM-4.7-Flash跨语言任务处理 1. 为什么需要多语言自动化助手 上周我需要整理一份包含中英日三语的会议纪要时&#xff0c;突然意识到一个问题&#xff1a;传统自动化工具往往只擅长处理单一语言环境。当我尝试用Python脚本批量处理日语邮件时…...

Ollama部署LFM2.5-1.2B-Thinking:轻量模型在边缘设备上的真实性能报告

Ollama部署LFM2.5-1.2B-Thinking&#xff1a;轻量模型在边缘设备上的真实性能报告 1. 模型介绍&#xff1a;专为边缘设备设计的智能助手 LFM2.5-1.2B-Thinking是一个专门为设备端部署优化的文本生成模型&#xff0c;它在LFM2架构基础上进行了深度改进。这个模型最大的特点就是…...

Acode:重新定义Android移动代码编辑体验

Acode&#xff1a;重新定义Android移动代码编辑体验 【免费下载链接】Acode Acode - powerful text/code editor for android 项目地址: https://gitcode.com/gh_mirrors/ac/Acode 在移动开发日益普及的今天&#xff0c;拥有一款高效的移动代码编辑器成为开发者的迫切需…...

【JavaEE】多线程 -- 初识线程

目录认识线程线程是什么为啥要有线程进程和线程的区别(重要)第一个多线程程序为什么先打印main再打印thread抛异常的小问题创建多线程的方式继承Thread, 重写run方法实现Runnable接口继承Thread, 使用匿名内部类实现Runnable接口, 使用匿名内部类lambda表达式(推荐写法)Thread类…...