⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cdn_field_range_dialogue.pro

📁 浏览MODIS遥感数据的HDF格式数据的IDL程序
💻 PRO
字号:
;--------------------------------------------------------------------------------pro cdn_field_range_dialogue, infopro_name = 'cdn_field_range_dialogue'@getinfowidget_control, /hourglasssubset_name = info.vfield.name_selsubset_name = subset_name(0)subset_name=info.vfield.name_sel + $    '[' + strcompress(string(info.subset.count)) +']'widget_control, info.widgets.current_file, get_value=filename		the_vdata_name=info.vdata.name_selvdata_ref=info.vdata.refthe_name = info.vfield.name_selthe_index = info.vfield.indices_selnlayer = info.hdf5.nlayercurrent_data_name = ''for j = 1, nlayer do begin    if strlen(info.hdf5.name_string[j]) gt 0 then begin	current_data_name = current_data_name + '/' + info.hdf5.name_string[j]    endifendforcurrent_data_name = current_data_name + '/' + the_vdata_nameif info.show_attr gt 0 then begin	get_data_attr,filename,current_data_name, the_index, 2, info	if info.show_attr eq 2 then returnendif;  Open a HDF5 filefileid = open_hdf5_file(filename)if fileid eq -1 then begin    result=dialog_message('Problem open HDF5 file!',$        title='View HDF Warning!')    returnendif;  Open the datasetdataset_id = H5D_OPEN(fileid, current_data_name)the_result = get_cdn_field_type(dataset_id, the_index, the_types, sds_rank, $    sds_dims);  Get the dataspace iddataspace_id = H5D_GET_SPACE(dataset_id);  Get the dimension sizes and rank for recordrec_rank = H5S_GET_SIMPLE_EXTENT_NDIMS(dataspace_id)rec_dims = H5S_GET_SIMPLE_EXTENT_DIMS(dataspace_id, MAX_DIMENSIONS=max_dims)if sds_rank gt 0 then begin    sds_rank = sds_rank + rec_rank    sds_dims = [sds_dims, rec_dims]endif else begin    sds_rank = rec_rank    sds_dims = [rec_dims]endelse;if info.rangetype.type eq 2 then begin;    read_vdata_multiple_files, filename, the_vdata_name, vdata_ref, the_name, $;	the_index, the_order, the_types, the_result, info;    return;endifsds_dims = reverse(sds_dims)info.sds.rank = sds_rankinfo.sds.dims = sds_dimsinfo.sds.type = the_typesprint,'dataset name = ',current_data_nameprint,'field_name = ',info.vfield.name_selprint,'rank = ',sds_rankprint,'dimension = ',sds_dimsprint,'sds_type = ', the_typesunit_list = [the_result]if the_result ne 'BAD' then info.unitname = ', '+unit_list[0] else info.unitname = ''info = redefine_info( info, unit_list, 7)close_hdf5_dataspace, dataspace_idH5D_CLOSE, dataset_idH5F_CLOSE, fileidinfo.rangetype.dim_name(*) = ''for i = 0 , sds_rank-1 do begin    info.rangetype.dim_name(i) = 'Dimension ' + strcompress(string(i+1),/REMOVE_ALL)endforinfo.vdata.nrec=sds_dims(0)rank = sds_rank - 1if info.rangetype.type eq 1 then begin  info.rangetype.flag = 0  get_time_range, subset_name, rank, info  widget_control, get_uvalue=info, info.base  if info.canceloption eq 'Yes' then begin	info.canceloption = 'No'	widget_control, set_uvalue=info, info.base	return  endif   if info.rangetype.flag eq 0 then begin	info.rangetype.type = 0	widget_control, info.rangetype.widget, set_droplist_select=info.rangetype.type  endifendifif info.rangetype.type eq 0 or info.rangetype.flag eq 1 then $  record_range_buttons, subset_name, rank, 'read_hdf5_cdn_dataCB', info $else returnwidget_control, info.widgets.vdata, set_list_select=-1end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -