该文章来自博客:http://windforestwing.blog.163.c ... 412007103084743804/如有错误 ,大家及时指出啊!ps:meteoinfo可以直接处理grib数据

===========================

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

输出否否包含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平台上)

/*调用Dos命令实现Grib文件到Text文件的转换*/

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); //将执行结果输出

}

/*将Text文件中的Grib数据读入临时数组*/

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= GribText.ReadLine();

aryData= Convert.ToSingle(aryReadResult);

}

GribText.Close();

}

C++实例(控制台下)

/*调用DOS命令将Grib文件转化为临时文本文件*/

system("wgrib E:\\Projects\\AtmosData\\grib2005071500 | find \":5WAVA:\" | wgrib E:\\Projects\\AtmosData\\grib2005071500 -i -nh -text -o E:\\Projects\\AtmosData\\temp");

/*使用文件输入输出流将text文件读入数组中*/

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);

}

for( i=0; i

fclose(fp);

JAVA生成grib文件_wgrib读grib数据相关推荐

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

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

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

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

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

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

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

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

  5. java 导出mdb文件_Java中Java生成mdb文件工具类

    package com.util; /**  * Java生成mdb文件[MS Access文件]  * 1. 在ClassPath下存一个空的blank.mdb. (也就是在你的项目中包含一个空白的 ...

  6. java生成sql文件

    java生成sql文件 场景 场景 用于清理数据库数据,生成sql语句脚本,方便DBA执行 @RequestMapping("/cleanQuestion")@ResponseBo ...

  7. # Java 生成pdf文件

    Java 生成pdf文件 引入依赖 <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --> <depend ...

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

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

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

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

最新文章

  1. 【网络安全】如何使用keimpx检测网络环境中的有效凭证
  2. 一直觉得饿是什么问题
  3. 05 HTML字符串转换成jQuery对象、绑定数据到元素上
  4. 非常全的VsCode快捷键
  5. 新手一小时就写出人工智能应用 - 看图识熊
  6. 动态规划——最长公共子序列问题(LCS)
  7. 【论文学习】Densely Connected Convolutional Networks 学习
  8. 数据库每日一题 2020.05.07
  9. 容器入门(8) - 镜像签名
  10. 计算机专业技能水平如何提升,市计算机:提升技能水平
  11. 分清函数指针和指针函数
  12. ASP.NET 首页性能的4大做法
  13. loadrunner压力测试一般使用流程
  14. 修改CentOS默认yum源地址提高下载速度
  15. 免杀横向移动工具WMIHACKER
  16. 国内第一本许可式订阅E-mail营销书籍
  17. 阿里云心选“小眯眼摄像头”视频监控天猫精灵可控手机远程wifi高清
  18. c语言程序小猪佩奇,使用canvas 代码画小猪佩奇(示例代码)
  19. 统计分析知识之--描述性统计
  20. python如何输出数字穿插大小写:a1B2c3D4e5F6g7H8i9J10

热门文章

  1. shell中获取文件夹中文件名
  2. 关于微信小程序unionID、OpenID的区别,以及如何获取
  3. android客户端测试用例,测试开发笔记七(客户端测试平台)
  4. c语言 ——int16,c语言中int取值范围为16位指的是什么16位
  5. JS判断IE,FF等浏览器类型
  6. robotstudio仿真录制视频提示空转模式不支持
  7. 天马资产 | 金融数据分析师招聘(社招+实习)
  8. C#之:并行编程 -4
  9. python 等号报错_python提示Syntax Error报错解决教程
  10. 用python编写神经网络_用Python实现神经网络(第5周)的代价函数