0001 function status = cbass_write_hdf(filename,dataBundle,dummy1,dummy2,startTimeMJD,endTimeMJD,thisScanNumber,totalScans,batchStartMJD,batchEndMJD,sunbuffer,datatype)
0002 n=1;
0003 filename = strcat(filename,'.hdf');
0004 disp('cbass_write_hdf:: Writing HDF5 file to:');
0005 disp(['cbass_write_hdf:: ',filename]);
0006
0007
0008
0009 hdf5write(filename, '/scan/MJD', dataBundle(:,n));
0010
0011
0012 writeHDFCol(filename,'/scan/RA',dataBundle(:,n)); n=n+1;
0013 writeHDFCol(filename,'/scan/DEC',dataBundle(:,n)); n=n+1;
0014 writeHDFCol(filename,'/scan/AZ',dataBundle(:,n)); n=n+1;
0015 writeHDFCol(filename,'/scan/EL',dataBundle(:,n)); n=n+1;
0016 writeHDFCol(filename,'/scan/LAT',dataBundle(:,n)); n=n+1;
0017 writeHDFCol(filename,'/scan/LON',dataBundle(:,n)); n=n+1;
0018 if (datatype==4)
0019 writeHDFCol(filename,'/scan/I',dataBundle(:,n)); n=n+1;
0020 writeHDFCol(filename,'/scan/Q',dataBundle(:,n)); n=n+1;
0021 writeHDFCol(filename,'/scan/U',dataBundle(:,n)); n=n+1;
0022 writeHDFCol(filename,'/scan/V',dataBundle(:,n)); n=n+1;
0023 variant=1;
0024 elseif (datatype==6)
0025 writeHDFCol(filename,'/scan/I1',dataBundle(:,n)); n=n+1;
0026 writeHDFCol(filename,'/scan/Q1',dataBundle(:,n)); n=n+1;
0027 writeHDFCol(filename,'/scan/U1',-dataBundle(:,n)); n=n+1;
0028 writeHDFCol(filename,'/scan/Q2',dataBundle(:,n)); n=n+1;
0029 writeHDFCol(filename,'/scan/U2',dataBundle(:,n)); n=n+1;
0030 writeHDFCol(filename,'/scan/I2',dataBundle(:,n)); n=n+1;
0031 variant=2;
0032
0033 elseif (datatype==8)
0034 writeHDFCol(filename,'/scan/I1',dataBundle(:,n)); n=n+1;
0035 writeHDFCol(filename,'/scan/Q1',dataBundle(:,n)); n=n+1;
0036 writeHDFCol(filename,'/scan/U1',dataBundle(:,n)); n=n+1;
0037 writeHDFCol(filename,'/scan/Q2',dataBundle(:,n)); n=n+1;
0038 writeHDFCol(filename,'/scan/U2',dataBundle(:,n)); n=n+1;
0039 writeHDFCol(filename,'/scan/Q3',dataBundle(:,n)); n=n+1;
0040 writeHDFCol(filename,'/scan/U3',dataBundle(:,n)); n=n+1;
0041 writeHDFCol(filename,'/scan/V',dataBundle(:,n)); n=n+1;
0042 variant=1;
0043 end
0044 writeHDFCol(filename,'/scan/FLAG',dataBundle(:,n)); n=n+1;
0045 writeHDFCol(filename,'/scan/DAYFLAG',dataBundle(:,n)); n=n+1;
0046
0047 northern = int32(1);
0048
0049
0050 writeScanHDFAttr(filename,'/scan/','START_MJD',startTimeMJD);
0051 writeScanHDFAttr(filename,'/scan/','END_MJD',endTimeMJD);
0052 writeScanHDFAttr(filename,'/scan/','SCAN_INDEX',int32(thisScanNumber));
0053 writeScanHDFAttr(filename,'/scan/','NSCAN',int32(totalScans));
0054 writeScanHDFAttr(filename,'/scan/','BATCH_START_MJD',batchStartMJD);
0055 writeScanHDFAttr(filename,'/scan/','BATCH_END_MJD',batchEndMJD);
0056 writeScanHDFAttr(filename,'/scan/','NORTHERN',northern);
0057 writeScanHDFAttr(filename,'/scan/','CBASSGEN',variant);
0058
0059
0060
0061
0062 status=0;
0063 return;
0064 end
0065
0066 function writeScanHDFAttr(filename,path,name,value)
0067 attr_details.Name = name;
0068 attr_details.AttachedTo = path;
0069 attr_details.AttachType = 'group';
0070 hdf5write(filename, attr_details, value, 'WriteMode', 'append');
0071 return;
0072 end
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082 function writeHDFCol(filename,setname,col)
0083 hdf5write(filename, setname, col, 'WriteMode', 'append');
0084 return;
0085 end
0086
0087
0088
0089
0090
0091
0092
0093