JAVA生成grib文件,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
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格式转换心得【转载】相关推荐
- 使用libtiff库生成tif文件,格式转换。
一.说明 该代码主要使用libtiff库,将T.6 格式文件转换成 T.4格式. 二.代码 int tiff2tiff(char *pSrcFile, char *pDstFile) {TIFF* i ...
- POI以SAX方式解析Excel2007大文件(包含空单元格的处理) Java生成CSV文件实例详解...
http://blog.csdn.net/l081307114/article/details/46009015 http://www.cnblogs.com/dreammyle/p/5458280. ...
- java 生成csv文件_Java生成CSV文件实例详解
本文实例主要讲述了java生成csv文件的方法,具体实现步骤如下: 1.新建csvutils.java文件: package com.saicfc.pmpf.internal.manage.utils ...
- ESRI的Shapefile文件向Google Earth中KML文件的格式转换
转载自http://wenku.baidu.com/link?url=3TG7c0cERbdnZwFBLq6n2v-chB-k4ja5ikNYSyRQHyLf4yvYCGBEGrlhch8GD5e-9 ...
- Java生成PDF文件_自用
Java生成PDF文件 一.前言 前几天,做ASN条码收货模块,需要实现打印下载收货报表,经一番查找,选定iText--用于生成PDF文档的一个Java类库.废话不多说,进入正题. 二.iText简介 ...
- java生成csv文件,excel打开文件乱码问题
之前项目中用到了生成csv文件编码UTF-8在windos下excel打开乱码 二话不说直接撸上代码 解决方法如下: 1:生成csv文件封装类 public class CreateCsvUtil { ...
- 超详细的java生成excel文件并下载
在网上随手一搜,可以搜到很多java生成excel文件相关的博客,但每个都有不同,核心点说清楚了,但具体运用的时候,相信大家或多或少都没法一次直接运用,这样每次去找并且运用的时候很费时间,所以这也是我 ...
- zipentry压缩乱码linux,java生成压缩文件 ZipEntry出现乱码的有关问题
java生成压缩文件 ZipEntry出现乱码的问题 在项目中,一次导出的文件有好几个,而且文件内容比较大,最后考虑到把文件进行压缩在下载,开始试用JDK自带的ZIP压缩包时,ZipEntry ze ...
- java流与文件——java生成解压缩文件(夹)
[0]README 0.1) 本文描述转自 http://blog.csdn.net/chenssy/article/details/9622171 , 旨在理解 java流与文件--java生成解压 ...
最新文章
- 玩转SpringCloud Spring Cloud 微服务
- Nginx隐藏主机信息,proxy_hide_header 与fastcgi_hide_header
- [deviceone开发]-数据绑定示例
- php正则重复匹配,php – 用于匹配任何长度的所有重复子串的正则表达式
- Spring XD用于数据提取
- Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - MMX技术(7) - 状态清除指令 小结
- TensorFlow HOWTO 2.1 支持向量分类(软间隔)
- 暴跌3000亿,“酱茅”怎么了?
- Mac下配置PHP+Apache+phpMyAdmin+MySql远程链接
- php setheader,PHP-MPDF:如何删除setHeader()和setFooter()边框
- java实现高德地图经纬度转换成百度地图
- linux中#和## 用法
- NVIDIA NGC镜像使用笔记
- matlab 康托尔集,【德国数学康托尔构造的这个图形叫分形,称做康托尔集.从长度为1的...-康托尔-谭榷刨同学...
- 成都托普计算机职业技术怎么样学校,成都中职学校前景怎么样
- 数据科学之 如何找到指标的最 佳分裂点的几个想法
- 树莓派3B+ 远程下载服务器(Aria2)
- 安科瑞智能照明控制系统在某办公楼上的应用——安科瑞潘芹
- MySQL登录时出现 Access denied for user“xxx” ‘‘@‘xxx.xxx.xxx.xxx‘ (using password: YES) 的原因及解决办法
- HFSS 电磁仿真及应用,CST 电磁仿真及应用