matlab写hdf文件(含地理信息文件hdfeos)

本文介绍matlab写hdf4和hdf5的一些方法。hdf的一些基础信息可以参考:https://sanwen8.cn/p/1fcFE9f.html

1、matlab写hdf4文件

通常有两种方法:

1)matlab.io.hdf4.sd系列函数(matlab.io.hdf4.sd 用于HDF数据集、matlab.io.hdfeos.gd HDF-EOS 格点数据、matlab.io.hdfeos.sw HDF-EOS测绘带文件)

其中,

writeData写数据集

setDataStrs、setDimStrs、setFillValue、setRange设置数据集的特定属性

setAttr设置自定义属性,例如sd.setAttr(sdID,'creation_date',datestr(now));

也可以设置已有属性,sd.setAttr(sdsID,'long_name','Temperature in sunlight.');

该系列函数说明在:https://cn.mathworks.com/help/matlab/ref/matlab.io.hdf4.sd.html

具体参考这个例子:

import matlab.io.hdf4.*
sdID = sd.start('myfile.hdf','create');
sd.setAttr(sdID,'creation_date',datestr(now));
sdsID = sd.create(sdID,'temperature','double',[10 20]);
data = rand(10,20);
sd.writeData(sdsID,[0 0],data);
sd.setDataStrs(sdsID,'degrees_celsius','degrees_east','','geo');
sd.setAttr(sdsID,'long_name','Temperature in sunlight.');
dimID0 = sd.getDimID(sdsID,0);
sd.setAttr(dimID0,'long_name','latitude');
sd.endAccess(sdsID);
sd.close(sdID);


对于含有地理信息的hdfeos数据使用matlab.io.hdfeos.gd系列函数操作。

例如,matlab.io.hdfeos.gd.defProj 可以定义投影信息

相关函数的链接在:https://cn.mathworks.com/help/matlab/ref/matlab.io.hdfeos.gd.html

参考这个例子:Create a UTM grid bounded by 54 E to 60 E longitude and 20 N to 30 N latitude (zone 40). Divide the grid into 120 bins along the x-axis and 200 bins along the y-axis.

import matlab.io.hdfeos.*
gfid = gd.open('myfile.hdf','create');
uplft = [210584.50041 3322395.95445];
lowrgt = [813931.10959 2214162.53278];
gridID = gd.create(gfid,'UTMGrid',120,200,uplft,lowrgt);
gd.defProj(gridID,'utm',40,'Clarke 1866',[]);
gd.detach(gridID);
gd.close(gfid);


2)hdfsd函数(matlab不推荐)

http://blog.sciencenet.cn/home.php?mod=space&uid=43777&do=blog&id=364662


2、matlab写hdf5文件

常用的hdf5写函数是
h5write/hdf5write(一样的)
http://cn.mathworks.com/help/matlab/ref/hdf5write.html

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值