Grib格式转换心得

1、wgrib的使用

在cmd命令行下键入wgrib后即可察看wgrib相关命令参数,简要介绍如下:

l Inventory/diagnostic–output selections 详细目录或诊断的输出选择

-s

short inventory 简短目录

-v

verbose inventory 详细目录

-V diagnostic output 诊断输出

regular inventory 一般目录

例如:wgrib E:\GrADS\Data\grib2005071500

–v>a.txt

Options 相关选项

-PDS/-PDS10 print PDS in hex/decimal

十六进制或二进制绘制PDS图

-GDS/-GDS10 print GDS in hex/decimal

十六进制或二进制绘制GDS图

-verf print forecast verification time

-ncep_opn/-ncep_rean default T62 NCEP grib table

-4yr print year using 4 digits

l Decoding GRIB selection

GRIB格式解码选项

-d [record

number|all] decode record number

按编号输出数据

-p [byte

position] decode record at byte position

按二进制位置输出数据

-i decode controlled by stdin

按输入流控制编码,一般转化Grib文件都要加

no decoding

Options 相关选项

-text/-ieee/-grib/-bin conver to text/ieee/grib/bin

转化格式控制

-nh/-h

output will have no headers/headers

是否包含标题头

-H

output will include PDS and GDS

only>

输出否否包含PDS和GDS

-append append to output file

在输出文件上添加而不是替换

-o

[file] output file name, ‘dump’ is default

输出文件名

综合使用实例:

DOS命令行下:

>wgrib grib_file_name | find “:GAP:” | wgrib

grib_file_name –i –nh –text –o temp

linux

shell命令行下:

% wgrib grib_file_name | grep “:GAP:” | wgrib grib_file_name –i

–nh –text –o temp

从Grib格式文件中选择GAP参数相关的数据生成名为temp的文本文件

2、 Grib文件目录说明

l wgrib –s生成目录:

1:0:d=05071500:HGT:1000 mb:anl:NAve=0

1) 记录号

2) 二进制位置

3) 时间

4) 参数名称

5) 层次值

6) analysis分析数据,也可能是fcst(forecast 预报数据)

7) 用于求平均的格点数

l wgrib –v 生成目录:

1:0:D=2005071500:HGT:1000 mb:kpds=7,100,1000:anl:"Geopotential

height [gpm]

1) 记录号

2) 二进制位置

3) 时间

4) 参数名称

5) 层次值

6) kpds,第一个数字是Grib参数编号,比如PRES是1,TMP是11;第二个数字是层次类型(高度层或等压面层);第三个数字是层次值;

7) analysis分析数据,也可能是fcst(forecast 预报数据)

8) 该参数的解释及单位

l wgrib –V 生成目录:

rec 1:0:date 2005071500 HGT kpds5=7 kpds6=100 kpds7=1000

levels=(3,232) grid=3 1000 mb anl:

HGT=Geopotential height [gpm]

timerange 10 P1 0 P2 0 TimeU 1 nx 360 ny 181 GDS grid 0

num_in_ave 0 missing 0

center 7 subcenter 0 process 82 Table 2

latlon: lat 90.000000 to -90.000000 by 1.000000 nxny 65160

long 0.000000 to -1.000000 by 1.000000, (360 x 181) scan 0 mode 128

bdsgrid 1

min/max data -631 334 num bits 14 BDS_Ref -6310 DecScale 1

BinScale 0

这个综合几种两种目录显示目前只能看明白其中一部分……

l wgrib 生成目录:

1:0:d=05071500:HGT:kpds5=7:kpds6=100:kpds7=1000:TR=10:P1=0:P2=0:TimeU=1:1000

mb:anl:NAve=0

1) 记录号

2) 二进制位置

3) 时间

4) 参数名称

5) Grib参数编号,比如PRES是1,TMP是11

6) 层次类型(高度层或等压面层)

7) 层次值

8) 时间范围

9) 时间1的时段

10) 时间2的时段

11) 预报时间单位

12) 层次值

13) analysis分析数据,也可能是fcst(forecast 预报数据)

14) 用于求平均的格点数

3、 利用C程序转化Grib格式文件与读取Grib文件

C# 实例(Web平台上)

private

void GribToText()

{

Process process = new Process();

process.StartInfo.FileName = "cmd.exe";

process.StartInfo.UseShellExecute = false;

process.StartInfo.RedirectStandardInput = true;

process.StartInfo.RedirectStandardOutput = true;

process.StartInfo.CreateNoWindow =

true; //不创建窗口

process.Start();

string command = "wgrib E:\\Projects\\AtmosData\\grib2005071500 |

find \":5WAVA:\" | wgrib E:\\Projects\\AtmosData\\grib2005071500 -i

-nh -text -o E:\\Projects\\AtmosData\\temp";

process.StandardInput.WriteLine(command); //调用Dos命令

process.StandardInput.WriteLine("exit");

process.WaitForExit();

string output = process.StandardOutput.ReadToEnd();

Response.Write(output); //将执行结果输出

}

private

void ReadTextData()

{

StreamReader GribText = new

StreamReader("E:\\Projects\\AtmosData\\temp");

string[] aryReadResult = new

string[65160]; //360*181个格点数据

float[] aryData = new float[65160];

for (int i = 0; i < 1000; i++)

{

aryReadResult[i] = GribText.ReadLine();

aryData[i] = Convert.ToSingle(aryReadResult[i]);

}

GribText.Close();

}

C++实例(控制台下)

system("wgrib E:\\Projects\\AtmosData\\grib2005071500 | find

\":5WAVA:\" | wgrib E:\\Projects\\AtmosData\\grib2005071500 -i -nh

-text -o E:\\Projects\\AtmosData\\temp");

FILE *fp;

long int i;

float

wava[65160] ={0};

char

*path ="E:\\Projects\\AtmosData\\temp";

if((fp=fopen(path,"r")) == NULL)

{

printf("Can not open file!");

exit(1);

}

for( i=0; i

{

fscanf_s(fp,"%f",&wava[i]);

}

for( i=0; i

fclose(fp);

JAVA生成grib文件,Grib格式转换心得【转载】相关推荐

  1. 使用libtiff库生成tif文件,格式转换。

    一.说明 该代码主要使用libtiff库,将T.6 格式文件转换成 T.4格式. 二.代码 int tiff2tiff(char *pSrcFile, char *pDstFile) {TIFF* i ...

  2. POI以SAX方式解析Excel2007大文件(包含空单元格的处理) Java生成CSV文件实例详解...

    http://blog.csdn.net/l081307114/article/details/46009015 http://www.cnblogs.com/dreammyle/p/5458280. ...

  3. java 生成csv文件_Java生成CSV文件实例详解

    本文实例主要讲述了java生成csv文件的方法,具体实现步骤如下: 1.新建csvutils.java文件: package com.saicfc.pmpf.internal.manage.utils ...

  4. ESRI的Shapefile文件向Google Earth中KML文件的格式转换

    转载自http://wenku.baidu.com/link?url=3TG7c0cERbdnZwFBLq6n2v-chB-k4ja5ikNYSyRQHyLf4yvYCGBEGrlhch8GD5e-9 ...

  5. Java生成PDF文件_自用

    Java生成PDF文件 一.前言 前几天,做ASN条码收货模块,需要实现打印下载收货报表,经一番查找,选定iText--用于生成PDF文档的一个Java类库.废话不多说,进入正题. 二.iText简介 ...

  6. java生成csv文件,excel打开文件乱码问题

    之前项目中用到了生成csv文件编码UTF-8在windos下excel打开乱码 二话不说直接撸上代码 解决方法如下: 1:生成csv文件封装类 public class CreateCsvUtil { ...

  7. 超详细的java生成excel文件并下载

    在网上随手一搜,可以搜到很多java生成excel文件相关的博客,但每个都有不同,核心点说清楚了,但具体运用的时候,相信大家或多或少都没法一次直接运用,这样每次去找并且运用的时候很费时间,所以这也是我 ...

  8. zipentry压缩乱码linux,java生成压缩文件 ZipEntry出现乱码的有关问题

    java生成压缩文件 ZipEntry出现乱码的问题 在项目中,一次导出的文件有好几个,而且文件内容比较大,最后考虑到把文件进行压缩在下载,开始试用JDK自带的ZIP压缩包时,ZipEntry ze ...

  9. java流与文件——java生成解压缩文件(夹)

    [0]README 0.1) 本文描述转自 http://blog.csdn.net/chenssy/article/details/9622171 , 旨在理解 java流与文件--java生成解压 ...

最新文章

  1. 玩转SpringCloud Spring Cloud 微服务
  2. Nginx隐藏主机信息,proxy_hide_header 与fastcgi_hide_header
  3. [deviceone开发]-数据绑定示例
  4. php正则重复匹配,php – 用于匹配任何长度的所有重复子串的正则表达式
  5. Spring XD用于数据提取
  6. Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - MMX技术(7) - 状态清除指令 小结
  7. TensorFlow HOWTO 2.1 支持向量分类(软间隔)
  8. 暴跌3000亿,“酱茅”怎么了?
  9. Mac下配置PHP+Apache+phpMyAdmin+MySql远程链接
  10. php setheader,PHP-MPDF:如何删除setHeader()和setFooter()边框
  11. java实现高德地图经纬度转换成百度地图
  12. linux中#和## 用法
  13. NVIDIA NGC镜像使用笔记
  14. matlab 康托尔集,【德国数学康托尔构造的这个图形叫分形,称做康托尔集.从长度为1的...-康托尔-谭榷刨同学...
  15. 成都托普计算机职业技术怎么样学校,成都中职学校前景怎么样
  16. 数据科学之 如何找到指标的最 佳分裂点的几个想法
  17. 树莓派3B+ 远程下载服务器(Aria2)
  18. 安科瑞智能照明控制系统在某办公楼上的应用——安科瑞潘芹
  19. MySQL登录时出现 Access denied for user“xxx” ‘‘@‘xxx.xxx.xxx.xxx‘ (using password: YES) 的原因及解决办法
  20. HFSS 电磁仿真及应用,CST 电磁仿真及应用

热门文章

  1. Jmeter官方资料地址
  2. 字节跳动笔试题02万万没想到之抓捕孔连顺
  3. 精华推荐 |【JVM技术专题】深入学习JIT编译器实现机制「核心剖析篇」
  4. PCL教程-点云配准之成对逐步配准(两两配准)
  5. 机器学习中基本符号表示和常用术语
  6. dup 和dup2区别
  7. M2006+C610驱动方案(二)arduino can模块
  8. 如何用单片机实现基于电磁感应的无线充电系统
  9. XAI/ML:机器学习可解释性之模型洞察之为什么以及什么时候你需要洞察力?
  10. 最简单的JSP-Servlet案例