PRO NCREAD ; Open file and initialize the SDS interface. ;IF N_ELEMENTS(filename) EQ 0 THEN filename = PICKFILE() ;IF NOT TEST_ISNC(filename) THEN BEGIN ; PRINT, 'Invalid NC file ...' ; RETURN ; ENDIF ELSE $ ; PRINT, 'Valid NC file. Opening "' + filename + '"' ;filename = '/home/radbud/NDE/total/GVF-WKL-GLB_v1r0_npp_s20150127_e20150202_c201502030807450.nc' ;filename = '/home/yzhu/winds/compare/PAMV-VIIRS-CD-NH_v1r1_npp_s201506080149470_e201506080513130_c201506080735000.nc' ;filename = '/home/yzhu/winds/compare/PAMV-VIIRS-CD-NH_v1r1_npp_s201506080149470_e201506080513130_c201506080943140_2.nc' ;filename = '/home/yzhu/GVF/061415_pe1/GVF-WKL-GLB_v1r0_npp_s20150606_e20150612_c201506131107430.nc' ;filename = '/home/yzhu/compare/VVHP/OPS/ViirsVH1000mDaily_r04c04_v2r01_j01_s201906060000000_e201906060600000_c201906060849583.nc' filename = '/home/yzhu/compare/VVHP/OPS/ViirsVH1000mDaily_r04c04_v2r01_npp_s201906060000000_e201906060600000_c201906060946519.nc' print, 'filename: ', filename ;IF N_ELEMENTS(filename) EQ 0 THEN filename = PICKFILE() ;IF NOT TEST_ISNC(filename) THEN BEGIN ; PRINT, 'Invalid NC file ...' ; RETURN ; ENDIF ELSE $ ; PRINT, 'Valid NC file. Opening "' + filename + '"' ;filename = '/home/radbud/NDE/total/GVF-WKL-GLB_v1r0_npp_s20150127_e20150202_c201502030807450.nc' ;filename = '/home/yzhu/winds/compare/PAMV-VIIRS-CD-NH_v1r1_npp_s201506080149470_e201506080513130_c201506080735000.nc' ;filename = '/home/yzhu/winds/compare/PAMV-VIIRS-CD-NH_v1r1_npp_s201506080149470_e201506080513130_c201506080943140_2.nc' ;filename = '/home/yzhu/GVF/061415_pe1/GVF-WKL-GLB_v1r0_npp_s20150606_e20150612_c201506131107430.nc' cdfid = ncdf_open(filename) if (n_elements(cdfid) eq 0) then $ message, 'Argument CDFID is undefined' ;--get file infomation varnames = '' fileinfo = ncdf_inquire(cdfid) nvars = fileinfo.nvars print, 'fileinfo:' help, fileinfo ;--get variable names if (nvars gt 0) then begin varnames = strarr(nvars) for index =0L, nvars - 1L do begin varinfo = ncdf_varinq(cdfid, index) varnames[index] = varinfo.name endfor endif print, 'varinfo:' help, varinfo help, varnames print, varnames ;--get attribute information varname = '' if (varname eq '') then begin fileinfo = ncdf_inquire(cdfid) natts = fileinfo.ngatts endif else begin varid = ncdf_varid(cdfid, 'var-name') varinfo = ncdf_inq(cdfid, varid) natts = varinfo.natts endelse print, 'varinfo:' help, varinfo print, 'number of attributes: ', natts ;--get attribute names if (natts gt 0) then begin attnames = strarr(natts) for index =0L, natts - 1L do begin if (varname eq '') then begin name = ncdf_attname(cdfid, index, /global) endif else begin name = ncdf_attname(cdfid, varid, index) endelse attnames[index] = name endfor endif help, attnames print, attnames ;--get global attribute value based on cdfid and att-name ;ncdf_attget, cdfid, 'att-name', gattvalue, /global ;print, 'global gattvalue: ', gattvalue ;-or get variable attribute value based on cdfid, varid, and attriute name ;ncdf_attget, cdfid, varid, 'att-name', attvalue ;print 'att value: ', attvalue ;--get variable value ;varid1 = ncdf_varid(cdfid, '4km_gvf') ;ncdf_varget, cdfid, varid1, data1 ;varid2 = ncdf_varid(cdfid, 'Number_Of_Pixels') ;ncdf_varget, cdfid, varid2, data2 ;varid3 = ncdf_varid(cdfid, 'quality_information') ;ncdf_varget, cdfid, varid3, data3 ;varid1 = ncdf_varid(cdfid, 'Wind_Speed') ;ncdf_varget, cdfid, varid1, data1 ;varid2 = ncdf_varid(cdfid, 'Wind_Dir') ;ncdf_varget, cdfid, varid2, data2 ;varid3 = ncdf_varid(cdfid, 'quality_information') ;ncdf_varget, cdfid, varid3, data3 varid1 = ncdf_varid(cdfid, 'reflectance_I1') ncdf_varget, cdfid, varid1, data1 varid2 = ncdf_varid(cdfid, 'temperature_I5') ncdf_varget, cdfid, varid2, data2 varid3 = ncdf_varid(cdfid, 'reflectance_M3') ncdf_varget, cdfid, varid3, data3 varid4 = ncdf_varid(cdfid, 'solar_zenith') ncdf_varget, cdfid, varid4, data4 varid5 = ncdf_varid(cdfid, 'packed_cloud_mask') ncdf_varget, cdfid, varid5, data5 ncdf_close, cdfid help, data1 ;tvscl, data1 help, data2 ;tvscl, data2 help, data3 ;print, 'data3=quality_information: ', data3 ;tvscl, data3 ;print, '' print, 'data1=reflectance_I1' ;print, data1[0], data1[1], data1[2], data1[3], data1[4], data1[5], data1[6], data1[7], data1[8], data1[9] ;print, data1[24990], data1[24991], data1[24992], data1[24993], data1[24994], data1[24995], data1[24996];, data1[24997];, data1[24998];, data1[24999] print, data1[0,0], data1[0,1], data1[0,2], data1[0,3], data1[0,4], data1[0,5], data1[0,6], data1[0,7], data1[0,8], data1[0,9] print, data1[1,0], data1[1,1], data1[1,2], data1[1,3], data1[1,4], data1[1,5], data1[1,6], data1[1,7], data1[1,8], data1[1,9] print, data1[2,0], data1[2,1], data1[2,2], data1[2,3], data1[2,4], data1[2,5], data1[2,6], data1[2,7], data1[2,8], data1[2,9] print, '' print, 'data2=temperature_I5' print, data2[0,0], data2[0,1], data2[0,2], data2[0,3], data2[0,4], data2[0,5], data2[0,6], data2[0,7], data2[0,8], data2[0,9] print, data2[1,0], data2[1,1], data2[1,2], data2[1,3], data2[1,4], data2[1,5], data2[1,6], data2[1,7], data2[1,8], data2[1,9] print, data2[2,0], data2[2,1], data2[2,2], data2[2,3], data2[2,4], data2[2,5], data2[2,6], data2[2,7], data2[2,8], data2[2,9] print, 'data3=reflectance_M3' print, data3[0,0], data3[0,1], data3[0,2], data3[0,3], data3[0,4], data3[0,5], data3[0,6], data3[0,7], data3[0,8], data3[0,9] print, data3[1,0], data3[1,1], data3[1,2], data3[1,3], data3[1,4], data3[1,5], data3[1,6], data3[1,7], data3[1,8], data3[1,9] print, data3[2,0], data3[2,1], data3[2,2], data3[2,3], data3[2,4], data3[2,5], data3[2,6], data3[2,7], data3[2,8], data3[2,9] print, 'data4=solar_zenith' print, data4[0,0], data4[0,1], data4[0,2], data4[0,3], data4[0,4], data4[0,5], data4[0,6], data4[0,7], data4[0,8], data4[0,9] print, data4[1,0], data4[1,1], data4[1,2], data4[1,3], data4[1,4], data4[1,5], data4[1,6], data4[1,7], data4[1,8], data4[1,9] print, data4[2,0], data4[2,1], data4[2,2], data4[2,3], data4[2,4], data4[2,5], data4[2,6], data4[2,7], data4[2,8], data4[2,9] print, 'data5=packed_cloud_mask' print, data5[0,0], data5[0,1], data5[0,2], data5[0,3], data5[0,4], data5[0,5], data5[0,6], data5[0,7], data5[0,8], data5[0,9] print, data5[1,0], data5[1,1], data5[1,2], data5[1,3], data5[1,4], data5[1,5], data5[1,6], data5[1,7], data5[1,8], data5[1,9] print, data5[2,0], data5[2,1], data5[2,2], data5[2,3], data5[2,4], data5[2,5], data5[2,6], data5[2,7], data5[2,8], data5[2,9] ;print, data2[0], data2[1], data2[2], data2[3], data2[4], data2[5], data2[6], data2[7], data2[8], data2[9] ;print, data2[24990], data2[24991], data2[24992], data2[24993], data2[24994], data2[24995], data2[24996];, data2[24997];, data2[24998];, data2[24999] ;print, data2[0,0], data2[0,1], data2[0,2], data2[0,3], data2[0,4], data2[0,5], data2[0,6], data2[0,7], data2[0,8], data2[0,9] ;print, data2[1,0], data2[1,1], data2[1,2], data2[1,3], data2[1,4], data2[1,5], data2[1,6], data2[1,7], data2[1,8], data2[1,9] ;print, data2[2,0], data2[2,1], data2[2,2], data2[2,3], data2[2,4], data2[2,5], data2[2,6], data2[2,7], data2[2,8], data2[2,9] ;print, data1 ;print, data2 ;-- Draw a contour map of the data. ;PRINT, 'Drawing contour plot ...' ;WINDOW, XSIZE=400, YSIZE=400 ;TVLCT, TRANSPOSE(CONGRID(thisPalette, 3, !D.Table_Size-1)) ;cgImage, BYTSCL(newGriddedData, TOP=!D.Table_Size-1), $ ; POSITION=[0.15, 0.15, 0.95, 0.87] ;CONTOUR, newGriddedData, lonscale, latscale, $ ; XSTYLE=1, YSTYLE=1, NLEVELS=14, /NOERASE, $ ; XTITLE = lonlable + ' (' + lonunits + ')', $ ; YTITLE = latlable + ' (' + latunits + ')', $ ; TITLE = thisExperiment + ' on ' + thisDate, $ ; POSITION=[0.15, 0.15, 0.95, 0.87], /FOLLOW, $ ; CHARSIZE=1.25, C_COLOR=0 PRINT, 'Read netCDF operation complete.' END