comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » HDF file: bug with IDL or bug with my code?
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
HDF file: bug with IDL or bug with my code? [message #3745] Sat, 25 February 1995 07:02
ratel is currently offline  ratel
Messages: 5
Registered: June 1993
Junior Member
I look for use HDF file with IDL.

I have problem for READ data. (with HDF_VSREAD)
I include below a small example.

Question: bug with IDL or bug with my code ?

Gilles Ratel
Email: ratel@toka.ireq-ccfm.hydro.qc.ca

note: machine OpenVMS AXP
IDL version 3.6.1a
attention: problem with IDL v 3.5.1 for HDF_VFGET
;=========================================================== =============
; HDF *** TEST ***
; ---------------------------------------------------------
; Suppose data with structure
; data = { X:0, Y:[0B,0B], Z:0B } <---- record
;
; X => type: INT , ORDER:1
; Y => type: BYTE , ORDER:2
; Z => type: BYTE , ORDER:1

;Define 3 records
A1 = [ 0B, 1B, 2B, 3B, 4B]
A2 = [ 0B, 5B, 6B, 7B, 8B]
A3 = [ 0B, 9B,10B,11B,12B]

; Stock into Byte array
data = BYTARR(5,3)
data(*,0) = A1
data(*,1) = A2
data(*,2) = A3

; Write HDF file
; -------------------------------------------------
fid = HDF_OPEN('TEST.HDF',/CREATE,/WRITE)

Vgroup= HDF_VATTACH(fid,-1,/WRITE)
HDF_VSETNAME,Vgroup,'DEMO'
HDF_VSETCLASS,Vgroup,'TEST'

Vdata = HDF_VSATTACH(fid,-1,/WRITE)
HDF_VSFDEFINE,VData,'X',/INT ,ORDER=1
HDF_VSFDEFINE,VData,'Y',/BYTE,ORDER=2
HDF_VSFDEFINE,VData,'Z',/BYTE,ORDER=1

HDF_VSSET, Vdata, NAME='Structure {X Y Z}',CLASS='TEST'
HDF_VSWRITE,Vdata,'X,Y,Z',data,NREC=3

HDF_VINSERT,Vgroup,VData
HDF_VSDETACH,Vdata

HDF_VDETACH,Vgroup

HDF_CLOSE,fid

; print data
PRINT,'WRITE data = '
PRINT,data
size_in = SIZE(data)

; Read HDF file
; -----------------------------------------------------

fid = HDF_OPEN('TEST.HDF',/READ)

vgid = HDF_VGETID(fid,-1)
vg = HDF_VATTACH(fid,vgid,/READ)

HDF_VGET,vg,class=vgclass,name=vgname,nentries=vgentries
PRINT,'Characteristics for Vgroup'
PRINT,'========================================'
print,'VG = ',Vgroup
PRINT,'VGclass= ',vgclass
PRINT,'VGname = ',vgname
PRINT,'VGentries= ',vgentries
PRINT,'========================================'
PRINT,' '

vsid = HDF_VSGETID(fid,-1)
vs = HDF_VSATTACH(fid,vsid,/READ)
HDF_VSGET,vs,class=vsclass,count=vscount,fields=vsfields, $
interlace=vsinterlace,name=vsname,nfields=vsnfields,$
size=vsize,tag=vstag,ref=vsref
PRINT,'Characteristics for Vsdata'
PRINT,'========================================'
print,'VS =',vs
PRINT,'VSclass =',vsclass
PRINT,'VScount =',vscount
PRINT,'VSfiels =',vsfields
PRINT,'VSinterlace=',vsinterlace
PRINT,'VSname =',vsname
PRINT,'VSnfields =',vsnfields
PRINT,'VSsize =',vsize
PRINT,'VStag =',vstag
PRINT,'VSref =',vsref
PRINT,'========================================'
PRINT,' '

HDF_VSETNAME,vg,'X,Y,Z'
PRINT,'Characteristics for Vsfields'
PRINT,'========================================'
FOR i=0,VSnfields-1 DO BEGIN
HDF_VFGET,vs,i,NAME=n,TYPE=t,SIZE=s,ORDER=o
PRINT,i,' NAME: ',n,' TYPE: ',t,' SIZE: ',s,' ORDER: ',o
ENDFOR
PRINT,'========================================'
PRINT,' '


VSnrecord = HDF_VSREAD(vs,data)
PRINT,'========================================'
PRINT,'READ data = '
PRINT,data
size_out = SIZE(data)

IF ((size_in(1) NE size_out(1)) OR (size_in(2) NE size_out(2))) THEN BEGIN
PRINT,' '
PRINT,'****************************************'
PRINT,'*** PROBLEM OF DIMENSION ***'
PRINT,'*** -------------------------------- ***'
PRINT,' SIZE(data input ) = ',size_in,FORMAT='(A21,5(1X,I2))'
PRINT,' SIZE(data output) = ',size_out,FORMAT='(A21,5(1X,I2))'
PRINT,'*** -------------------------------- ***'
PRINT,'****************************************'
ENDIF
END
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Which Operating System Am I On?
Next Topic: SORT needs minor fix

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 15:47:44 PDT 2025

Total time taken to generate the page: 0.00426 seconds