hardwork
路人甲
路人甲
  • 注册日期2004-11-06
  • 发帖数7
  • QQ
  • 铜币150枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:3227回复:6

MODIS的HDF头文件读取

楼主#
更多 发布于:2007-04-19 09:46
<P>请教:关于modis的HDF文档结构的读取,怎么通过编程来实现阿?</P>
<P>或者是哪位大虾那有关于HDF的库阿</P>
<P>望能交流,<a href="mailtlianjian2001@163.com" target="_blank" >lianjian2001@163.com</A></P>
喜欢0 评分0
lutianshenxiao
卧底
卧底
  • 注册日期2004-09-09
  • 发帖数171
  • QQ
  • 铜币379枚
  • 威望0点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
1楼#
发布于:2007-04-23 17:28
嗯……我也碰到这样的问题,没人帮我解决!<br><br>
我把你的名字写在烟上,吸进肺里,留在离我心脏更近的地方……
举报 回复(0) 喜欢(0)     评分
zj0748
路人甲
路人甲
  • 注册日期2008-11-19
  • 发帖数191
  • QQ
  • 铜币0枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2008-12-13 19:42
<img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em02.gif" />
举报 回复(0) 喜欢(0)     评分
starynight
路人甲
路人甲
  • 注册日期2008-04-19
  • 发帖数13
  • QQ
  • 铜币151枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2008-12-18 09:06
<P>idl语言有操作hdf文件的api接口</P>
<P>或者到nasa下idl库</P>
举报 回复(0) 喜欢(0)     评分
myzrl20
路人甲
路人甲
  • 注册日期2006-04-30
  • 发帖数39
  • QQ
  • 铜币252枚
  • 威望0点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
4楼#
发布于:2009-01-01 03:57
<P>如果是采用MATLAB编程的话,可以用HDFSD函数来读取HDF文件的数据流。</P>
举报 回复(0) 喜欢(0)     评分
shape1573
路人甲
路人甲
  • 注册日期2007-09-20
  • 发帖数10
  • QQ
  • 铜币140枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2009-02-09 16:44
IDL有一个pro能输出所有的属性值,google一下 "hdf_info filetype:pro"就找的到。<br><br>大致思路是<br>通过hdf_sd_attrinfo函数来读取属性。<br>        hdf_sd_attrinfo函数需要两个参数,sd_id,属性的序号<br>                   sd_id从hdf_sd_select和hdf_sd_start获得。<br>                   共有多少个属性可以用hdf_sd_fileinfo获得<br>然后for循环读取,输出每一个属性。<br><br>sd_id=HDF_SD_START(filename,/read)<br>HDF_SD_FILEINFO,sd_id,nmfsds,nglobatts<br>;    Get the number of MFSDs in the file<br>    printf,uid,"    # of MFSD = ",nmfsds,FORMAT=F1<br><br>    if nmfsds gt 0 then begin<br>         printf,uid<br>         printf,uid,FORMAT=F80<br>         printf,uid,"          Information about MFHDF DataSets "<br>         printf,uid,FORMAT=F80<br>     printf,uid,"    NAME   IDL_Type   HDF_Type      Rank   Dimensions"<br>         printf,uid,"---------  -------- ----------      ----  ------------"<br>         printf,uid,"           ------------- Atrribute Info -------------"<br>         printf,uid<br>         FSD='(A10,"  ",A8,"  ",I6,"  ",I6)'<br>     for i=0,nmfsds-1 do begin<br>      sds_id=HDF_SD_SELECT(sd_id,i)<br>          HDF_SD_GETINFO,sds_id,name=n,ndims=r,type=t,natts=nats,$<br>                         hdf_type=h,unit=u<br>          if r gt 0 then HDF_SD_GETINFO,sds_id,dims=dims else dims=0<br><br>          if r le 1 then FSD='(A10," ",A8," ",A12,3X,I4,3X,"[",I6,"] ",A)' $<br>                   else FSD='(A10," ",A8," ",A12,3X,I4,3X,"["'+$<br>                        STRING(r-1)+'(I4,","),I6,"] ",A)'<br>          <br>          printf,uid,n,t,h,r,dims,u,FORMAT=FSD<br>          for j=0,nats-1 do begin<br>        HDF_SD_ATTRINFO,sds_id,j,name=n,type=t,count=c,data=d,$<br>                            hdf_type=h<br>            <br>              CASE t OF<br>         'FLOAT':  FB='G)'<br>                 'DOUBLE': FB='G)'<br>                 'STRING': FB='A)'<br>         ELSE:     FB='I)'<br>            ENDCASE<br>            <br>        printf,uid,j+1,n,d[0],$<br>             FORMAT='(11X,"Attribute => ",I3,2X,A13," = ",'+FB<br><br>       for k=1,n_elements(d)-1 do printf,uid,d[k],FORMAT='(45X,'+FB<br>      endfor<br>      HDF_SD_ENDACCESS,sds_id<br>          printf,uid,FORMAT='(10X,70("_"))'<br>     endfor<br>    endif<br>    printf,uid,FORMAT=F80E<br>    printf,uid,"    # of Global Attributes ",nglobatts<br>    if nglobatts gt 0 then begin<br>         printf,uid<br>     printf,uid,"------------------------------------------------"<br>     printf,uid,'Name','Type','Elements','Value',FORMAT=F5L<br>     printf,uid,FORMAT=F80<br>     printf,uid<br>     for i=0,nglobatts-1 do begin<br>        HDF_SD_ATTRINFO,sd_id,i,name=n,type=t,count=c,data=d<br>       if (t eq 'STRING' ) then printf,uid,strtrim(n),t,c,d[0,0],FORMAT=FS else $<br>       if (t eq 'FLOAT' )  then printf,uid,strtrim(n),t,c,d[0,0],FORMAT=FF else $<br>       if (t eq 'DOUBLE' ) then printf,uid,strtrim(n),t,c,d[0,0],FORMAT=FD else $<br>        printf,uid,strtrim(n),t,c,d[0,0],FORMAT=FI<br>     endfor<br>    endif<br>    HDF_SD_END,sd_id<br><br><img src="images/post/smile/dvbbs/em07.gif" />
举报 回复(0) 喜欢(0)     评分
liuzh833
路人甲
路人甲
  • 注册日期2006-03-17
  • 发帖数11
  • QQ
  • 铜币145枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2009-06-10 09:33
<img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em02.gif" />
举报 回复(0) 喜欢(0)     评分
游客

返回顶部