linux下使用.csh脚本自动化下载GFS气象预报数据

简介: 在linux环境下使用脚本实现对于WRF模式的初始场强迫场资料–GFS数据进行自动化下载

在linux环境下使用脚本实现对于WRF模式的初始场强迫场资料–GFS数据进行自动化下载



GFS(Global Forecast System–全球预报系统)


GFS(Global Forecast System–全球预报系统)是WRF模式中常用的预报场资料,一般应用于业务预报。


Final Reanalysis Data再分析数据集


  • FNL是由美国气象环境预报中心(NCEP)和美国国家大气研究中心(NCAR)联合制作的,他们采用了当今最先进的全球资料同化系统和完善的数据库,对各种来源(地面、船舶、无线电探空、测风气球、飞机、卫星等)的观测资料进行质量控制和同化处理,获得了一套完整的再分析资料集,它不仅包含的要素多,范围广,而且延伸的时段长,是一个综合的数据集。与GFS相比,FNL中加入了同化技术,预报结果更准确,但是更新时间要落后GFS一定时间,6h左右的时间,所以FNL一般用于数据反演。
  • 数据是在全球按照一定的度数划分的数据网格,有1度的、0.5度和0.25度,数据更新的时间是每6小时,时间是以格里尼治时间为标准。
  • 环境:linux
  • 脚本:csh
  • 功能:实现指定时间范围内的GFS气象数据下载


使用csh脚本下载GFS资料


#!/bin/csh -xf
#-----------------------------------------------------------------------
#set debug
set cmd = $0
set cmd = $cmd:t
#-----------------------------------------------------------------------
# get args
#-----------------------------------------------------------------------
if ( $#argv >= "1" ) then
  set date    = $1  # start time 
  set res     = $2  # resolution :0p25\0p50\1p00
  set inter   = $3  # time interp:1\3\6
  set end     = $4  # end data
else
   echo "  "
   echo "  Usage: $cmd Initime"
   echo "  "
   exit 1
endif
  set SY4     = `echo $date | cut -c 1-4`  #year
  set SMM     = `echo $date | cut -c 5-6`  #month
  set SDD     = `echo $date | cut -c 7-8`  #day
  set SHH     = `echo $date | cut -c 9-10` #forrest start time
#-----------------------------------------------------------------------
# Ftp Server information
#-----------------------------------------------------------------------
  if ( ! $?ftpserver ) set  ftpserver = "https://ftp.ncep.noaa.gov/data/nccf/com/gfs/prod/"
#-----------------------------------------------------------------------
  mkdir $date
  cd $date
  set gfsdata = "${ftpserver}/gfs.${SY4}${SMM}${SDD}/${SHH}/atmos"
  set i=0
  while ( $i <= $end )
    set HH3 = `/Users/gfsdown/cvtno.pl 3 $i`
    wget  ${gfsdata}/gfs.t${SHH}z.pgrb2.${res}.f${HH3}
    @ i = $i + $inter
  end
  echo 'download gfs finish'
#-----------------------------------------------------------------------
exit 0


上述脚本中的cvtno.pl文件如下所示:


#!/usr/bin/perl -w
($#ARGV == 1) || die "Error ";
($len,$no)=@ARGV;
printf "%${len}.${len}d\n",$no;
exit;


FNL官网数据介绍


使用python下载FNL


FNL官网数据介绍
使用python下载FNL
import requests


读取FNL资料:

ds = xr.open_dataset('/home/mw/project/fnl_20180516_00_00.grib2',engine='pynio')
ds


引用参考


https://www.heywhale.com/mw/project/6199a9657d74800017253023

https://psl.noaa.gov/data/gridded/reanalysis/

https://ftp.ncep.noaa.gov/data/nccf/com/gfs/prod/

http://www.ihamodel.com/?p=17426

https://zhuanlan.zhihu.com/p/368000766

http://bbs.06climate.com/forum.php?mod=viewthread&tid=20582

https://www.cnblogs.com/tiandi/p/11045602.html


相关文章
|
14天前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
|
2月前
|
数据采集 存储 JavaScript
自动化数据处理:使用Selenium与Excel打造的数据爬取管道
本文介绍了一种使用Selenium和Excel结合代理IP技术从WIPO品牌数据库(branddb.wipo.int)自动化爬取专利信息的方法。通过Selenium模拟用户操作,处理JavaScript动态加载页面,利用代理IP避免IP封禁,确保数据爬取稳定性和隐私性。爬取的数据将存储在Excel中,便于后续分析。此外,文章还详细介绍了Selenium的基本设置、代理IP配置及使用技巧,并探讨了未来可能采用的更多防反爬策略,以提升爬虫效率和稳定性。
129 4
|
22天前
|
数据采集
使用 Puppeteer 绕过 Captcha:实现商家数据自动化采集
本文介绍了如何使用Puppeteer结合代理IP和用户伪装技术,轻松绕过大众点评的Captcha验证,实现商家信息的高效采集。通过配置Puppeteer、设置代理和用户伪装参数、模拟人类操作等步骤,成功提取了目标页面的数据。该方法不仅提高了爬虫的稳定性和隐蔽性,还为市场研究和商业分析提供了有力支持。注意,数据采集需遵守法律法规及网站政策。
使用 Puppeteer 绕过 Captcha:实现商家数据自动化采集
|
28天前
|
人工智能 Java 关系型数据库
Red Hat Enterprise Linux 9.5 发布下载,新增功能亮点概述
Red Hat Enterprise Linux 9.5 发布下载,新增功能亮点概述
69 4
Red Hat Enterprise Linux 9.5 发布下载,新增功能亮点概述
|
13天前
|
关系型数据库 MySQL Linux
MySQL数据库下载安装教程(Windows&Linux)
本文档详细介绍了MySQL的安装步骤,包括安装前的准备工作、下载安装包、Windows和Linux系统下的具体安装流程,以及如何配置MySQL服务、设置环境变量、启动服务和连接数据库等关键操作。
|
1月前
|
Linux 数据安全/隐私保护
适用于 Linux 的最佳命令行下载加速器
适用于 Linux 的最佳命令行下载加速器
53 3
|
1月前
|
Ubuntu Linux Shell
Linux 系统中的代码类型或脚本类型内容
在 Linux 系统中,代码类型多样,包括 Shell 脚本、配置文件、网络配置、命令行工具和 Cron 定时任务。这些代码类型广泛应用于系统管理、自动化操作、网络配置和定期任务,掌握它们能显著提高系统管理和开发的效率。
|
1月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
2月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
62 1