资源简介
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 < n; 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个文件信息
相关资源
- Pattern Recognition and Machine Learning(高清
- MATLAB 编程 第二版 Stephen J. Chapman 著
- 均值滤波和FFT频谱分析Matlab代码
- 《MATLAB扩展编程》代码
- HDB3码、AMI码的MATLAB实现
- 3点GPS定位MATLAB仿真
- MATLAB数字信号处理85个实用案例精讲入
- matlab从入门到精通pdf94795
- 欧拉放大论文及matlab代码
- 跳一跳辅助_matlab版本
- 全面详解LTE MATLAB建模、仿真与实现
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- MATLAB Programming for Engineers 4th - Chapman
- matlab 各种谱分析对比
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- MATLAB车流仿真 包括跟驰、延误
- matlab空间桁架计算程序
- 基于MATLAB的图像特征点匹配和筛选
- DMA-TVP-FAVAR
- GPS信号的码捕获matlab代码.7z
- 一维光子晶体MATLAB仿真代码吸收率折
- newmark法源程序
- 传统关联成像、计算鬼成像matlab
- pri传统分选算法
- 摆动滚子推杆盘形凸轮设计
- 医学图像重建作业matlab源码
- Matlab实现混沌系统的控制
- 检测疲劳驾驶
- Matlab锁相环仿真-Phase Locked Loop.rar
评论
共有 条评论