;$Id: prob_mask_phase_1d.pro 51 2019-08-02 20:53:20Z heidinger $ ;---------------------------------------------- ; write to netcdf file ;---------------------------------------------- pro write_3d_table, sd_id, lut, attributes, channels_used, success_flag, class_att=class_att success_flag = 0 if (sd_id lt 0) then return if (keyword_set(class_att)) then begin ncdf_attput,sd_id, "classifier_names", attributes.classifier_name, /CHAR, /global ncdf_attput,sd_id, "length_of_classifier_names", attributes.length_classifier_name, /CHAR, /global endif grp_id = ncdf_groupdef(sd_id,attributes.classifier_name) if (grp_id lt 0) then return write_group_attributes, grp_id, attributes ;--- get dimensions nx_id = NCDF_DIMDEF(grp_id, 'nbins_x', attributes.nbins_x) ny_id = NCDF_DIMDEF(grp_id, 'nbins_y', attributes.nbins_y) nz_id = NCDF_DIMDEF(grp_id, 'nbins_z', attributes.nbins_z) nk_id = NCDF_DIMDEF(grp_id, 'nsfc', attributes.nsfc) nc_id = NCDF_DIMDEF(grp_id, 'nchan_used', attributes.nchan_used) ;--- create variable sds_id1 = NCDF_VARDEF(grp_id, 'clear_table', [nx_id,ny_id,nz_id,nk_id], /FLOAT) sds_id2 = NCDF_VARDEF(grp_id, 'water_table', [nx_id,ny_id,nz_id,nk_id], /FLOAT) sds_id3 = NCDF_VARDEF(grp_id, 'ice_table', [nx_id,ny_id,nz_id,nk_id], /FLOAT) sds_id4 = NCDF_VARDEF(grp_id, 'obs_table', [nx_id,ny_id,nz_id,nk_id], /FLOAT) sds_id5 = NCDF_VARDEF(grp_id, 'observation_count', [nk_id], /FLOAT) sds_id6 = NCDF_VARDEF(grp_id, 'cloud_fraction', [nk_id], /FLOAT) sds_id7 = NCDF_VARDEF(grp_id, 'ice_fraction', [nk_id], /FLOAT) sds_id8 = NCDF_VARDEF(grp_id, 'water_fraction', [nk_id], /FLOAT) sds_id9 = NCDF_VARDEF(grp_id, 'on_flag', [nk_id], /LONG) sds_id10 = NCDF_VARDEF(grp_id, 'channel_wvl', [nc_id], /LONG) NCDF_CONTROL, sd_id, /ENDEF ; Put the file into data mode NCDF_VARPUT, grp_id, sds_id1, lut.clear NCDF_VARPUT, grp_id, sds_id2, lut.water NCDF_VARPUT, grp_id, sds_id3, lut.ice NCDF_VARPUT, grp_id, sds_id4, lut.obs NCDF_VARPUT, grp_id, sds_id5, lut.observation_count NCDF_VARPUT, grp_id, sds_id6, lut.cloud_fraction NCDF_VARPUT, grp_id, sds_id7, lut.ice_fraction NCDF_VARPUT, grp_id, sds_id8, lut.water_fraction NCDF_VARPUT, grp_id, sds_id9, lut.on_flag NCDF_VARPUT, grp_id, sds_id10, channels_used.wvl success_flag = 1 end