資源簡介
matlabreadgrib用matlab讀grib數據grib數據是氣象常用數據-read_grib.rar
這個插件是用來讀氣象數據的grib 數據的希望對大家有用。附件1 是插件,附件2是.m 文件,讀ERA-40日地面氣壓。將附件1解壓 放在toobox 下面,然后添加上路徑,file——set path——add with subfolders 就行了
這個插件是用來讀氣象數據的grib 數據的希望對大家有用。附件1 是插件,附件2是.m 文件,讀ERA-40日地面氣壓。將附件1解壓 放在toobox 下面,然后添加上路徑,file——set path——add with subfolders 就行了

代碼片段和文件信息
/*
BDS_unpack_mex5.c
GRiB?Binary?Data?Section?decoding
Relevant?code?from?W.?Ebisuzaki?NCEP
30?Aug?2005
???fixed?alloc?sizeof?bug?noted?by?several?users?under?MATLAB7/R14
???Both?Felipe?Nievinski?and?Julien?Choisnard?noticed?that?seg?viols
???occured?because?of?the?sizeof(mxREAL).??These?have?been?changed?to
???size(float).??
*/
#include?
#include?
#include?“mex.h“
/*?PROTOTYPES?*/
void?BDS_unpack(float?*flt?unsigned?char?*bits?unsigned?char?*bitmap
????????int?n_bits?int?n?double?ref?double?scale);
/************************************************************
??####?????##?????#####??######??#????#????##?????#???#
?#????#???#??#??????#????#???????#????#???#??#?????#?#
?#???????#????#?????#????#####???#????#??#????#?????#
?#??###??######?????#????#???????#?##?#??######?????#
?#????#??#????#?????#????#???????##??##??#????#?????#
??####???#????#?????#????######??#????#??#????#?????#
************************************************************/
void?mexFunction(int????????????nlhs
?????????????????mxArray??????*plhs[]
?????????????????int????????????nrhs
?????????????????const?mxArray?*prhs[])
{
???unsigned?char?*databits?*bitmap;
???int?n_bitsnimbnb;
???double?refscaleNaN=mxGetNaN()*tempd;
???FILE?*tempfile*fopen();
???float?*tempf;
???
???bool?bms_empty;
???
???databits=(unsigned?char?*)mxGetData(prhs[0]);
???bms_empty=mxIsEmpty(prhs[1]);
???if(bms_empty)
??????bitmap=NULL;
???else
??????bitmap=(unsigned?char?*)mxGetData(prhs[1]);
???
???n_bits=mxGetScalar(prhs[2]);
???n=mxGetScalar(prhs[3]);
???ref=mxGetScalar(prhs[4]);
???scale=mxGetScalar(prhs[5]);
???
???/*?tempf=(float?*)mxMalloc(sizeof(mxREAL)*n);?*/
???/*?sizeof(mxREAL)?caused?seg?viol?in?R14?*/
???tempf=(float?*)mxMalloc(sizeof(float)*n);
???mb=mxGetM(prhs[0]);
???nb=mxGetN(prhs[0]);
???BDS_unpack(tempf?databits?bitmap?n_bits?n?ref?scale);
???
???plhs[0]=mxCreateDoubleMatrix(n1mxREAL);
???tempd=mxGetPr(plhs[0]);
???for?(i=0;i ???mxSetPr(plhs[0]tempd);
???
???return;
}
/*?for?simple?unpacking?of?a?grid?*/
/*?wesley?ebisuzaki?NCEP?wgrib?*/
/*?http://wesley.wwb.noaa.gov?*/
/*?undefined?value?--?if?bitmap?*/
#define?UNDEFINED 9.999e20
void?BDS_unpack(float?*flt?unsigned?char?*bits?unsigned?char?*bitmap
int?n_bits?int?n?double?ref?double?scale)?{
????int?i?j?k;
????unsigned?int?map_mask?bit_mask;
????map_mask?=?bit_mask?=?128;
????for?(i?=?0;?i? if?(bitmap)?{
????j?=?(*bitmap?&?map_mask);
????if?((map_mask?>>=?1)?==?0)?{
map_mask?=?128;
bitmap++;
????}
????if?(j?==?0)?{
*flt++?=?UNDEFINED;
continue;
????}
}
j?=?0;
k?=?n_bits;
while?(k)?{
????if?(k?>=?8?&&?bit_mask?==?128)?{
j?=?256?*?j?+?*bits;
bits++;
k?-=?8;
????}
????else?{
????????j?=?j?+?j?+?((*bits?&?bit_mask)?!=?0);
if?((bit_mask?>>=?1)?==?0)?{
????bits++;
????bit_mask?=?128;
}
k--;
????}
}
*flt++?=?ref?+?scale*j;
???}
???return;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????12292??2004-10-24?20:04??read_grib\read_grib1.4.0\.DS_Store
?????文件???????2953??2005-09-01?02:02??read_grib\read_grib1.4.0\BDS_unpack_mex5.c
?????文件???????3643??2005-09-01?01:12??read_grib\read_grib1.4.0\BDS_unpack_mex5.cv
?????文件???????6656??2007-10-15?11:16??read_grib\read_grib1.4.0\BDS_unpack_mex5.dll
?????文件???????6578??2005-09-22?04:57??read_grib\read_grib1.4.0\BDS_unpack_mex5.mexglx
?????文件???????9720??2005-09-01?01:13??read_grib\read_grib1.4.0\BDS_unpack_mex5.mexmac
?????文件???????7119??2005-08-31?22:25??read_grib\read_grib1.4.0\ECMWF128.tab
?????文件???????4203??2005-08-31?22:25??read_grib\read_grib1.4.0\ECMWF160.tab
?????文件???????9850??2005-08-31?22:24??read_grib\read_grib1.4.0\NCEPOPER.tab
?????文件??????10083??2005-08-31?22:24??read_grib\read_grib1.4.0\NCEPREAN.tab
?????文件????????221??2005-09-01?09:33??read_grib\read_grib1.4.0\private\bitshift2.m
?????文件????????237??2005-09-01?09:33??read_grib\read_grib1.4.0\private\bitshift3.m
?????文件???????1708??2005-09-01?10:05??read_grib\read_grib1.4.0\private\extract_grib.m
?????文件????????818??2005-09-01?10:10??read_grib\read_grib1.4.0\private\find_grib_marker.m
?????文件????????453??2005-09-01?10:06??read_grib\read_grib1.4.0\private\get_bds.m
?????文件????????374??2005-09-01?10:07??read_grib\read_grib1.4.0\private\get_bms.m
?????文件???????2089??2005-09-01?10:06??read_grib\read_grib1.4.0\private\get_gds.m
?????文件????????272??2005-09-01?10:18??read_grib\read_grib1.4.0\private\Get_Parameter.m
?????文件???????1892??2005-09-01?10:08??read_grib\read_grib1.4.0\private\get_pds.m
?????文件???????4974??2005-09-01?10:18??read_grib\read_grib1.4.0\private\gribhelp.m
?????文件???????1201??2005-09-01?09:30??read_grib\read_grib1.4.0\private\ibm2flt.m
?????文件????????439??2005-09-01?09:33??read_grib\read_grib1.4.0\private\int2.m
?????文件???????1765??2005-09-01?09:32??read_grib\read_grib1.4.0\private\int3.m
?????文件????????457??2005-09-01?10:19??read_grib\read_grib1.4.0\private\is_grib_file.m
?????文件???????1858??2005-09-01?10:18??read_grib\read_grib1.4.0\private\levels.m
?????文件??????53215??2005-09-01?10:09??read_grib\read_grib1.4.0\private\Set_Parameter_Table.m
?????文件???????1248??2005-09-01?10:14??read_grib\read_grib1.4.0\private\table0.m
?????文件????????353??2005-09-01?10:15??read_grib\read_grib1.4.0\private\table1.m
?????文件???????3181??2005-09-01?10:16??read_grib\read_grib1.4.0\private\table3a.m
?????文件????????299??2005-09-01?10:16??read_grib\read_grib1.4.0\private\table4.m
............此處省略19個文件信息
評論
共有 條評論