;+ ;NAME: ; iug_ui_load_data ; ;PURPOSE: ; Generates the tab that loads iugonet data for the gui. ; ;HISTORY: ;$LastChangedBy: nikos $ ;$LastChangedDate: 2018-08-01 11:03:38 -0700 (Wed, 01 Aug 2018) $ ; ;Modifications: ;A. Shinbori, 02/05/2011 ;A. Shinbori, 11/05/2012 ;A. Shinbori, 12/06/2012 ;A. Shinbori, 24/10/2012 ;A. Shinbori, 14/12/2012 ;A. Shinbori, 08/07/2013 ;Y.-M. Tanaka, 16/08/2013 ;A. Shinbori, 25/09/2013 ;A. Shinbori, 09/10/2013 ;A. Shinbori, 27/11/2013 ;Y.-M. Tanaka, 05/02/2014 ; ;-------------------------------------------------------------------------------- pro iug_ui_load_data_event,event compile_opt hidden,idl2 err_xxx = 0 Catch, err_xxx IF (err_xxx NE 0) THEN BEGIN Catch, /Cancel Help, /Last_Message, Output = err_msg if is_struct(state) then begin ;send error message FOR j = 0, N_Elements(err_msg)-1 DO state.historywin->update,err_msg[j] if widget_valid(state.baseID) && obj_valid(state.historyWin) then begin spd_gui_error,state.baseid,state.historyWin endif ;update central tree, if possible if obj_valid(state.loadTree) then begin *state.treeCopyPtr = state.loadTree->getCopy() endif ;restore state Widget_Control, event.TOP, Set_UValue=state, /No_Copy endif Print, 'Error--See history' ok=error_message('An unknown error occured and the window must be restarted. See console for details.',$ /noname, /center, title='Error in Load Data') widget_control, event.top,/destroy RETURN ENDIF widget_control, event.handler, Get_UValue=state, /no_copy ;Options widget_control, event.id, get_uvalue = uval ;not all widgets are assigned uvalues if is_string(uval) then begin case uval of 'INSTRUMENT': begin typelist = widget_info(event.handler,find_by_uname='typelist') widget_control,typelist,set_value=*state.typeArray[event.index],set_list_select=0 paramList = widget_info(event.handler,find_by_uname='paramlist') widget_control,paramList,set_value=*(*state.paramArray[event.index])[0] ;======================================================================== ;added the two lines of widget_control to parameters-2 paramList2 = widget_info(event.handler,find_by_uname='paramlist2') widget_control,paramList2,set_value=*(*state.param2Array[event.index])[0] ;======================================================================== end 'TYPELIST': begin instrument = widget_info(event.handler,find_by_uname='instrument') text = widget_info(instrument,/combobox_gettext) idx = (where(text eq state.instrumentArray))[0] parameter = widget_info(event.handler,find_by_uname='paramlist') widget_control,parameter,set_value=*(*state.paramArray[idx])[event.index] ;=========================================================================== ;added the two lines of widget_control in order to have a relation between ;instrument and parameters-2. parameter2 = widget_info(event.handler,find_by_uname='paramlist2') widget_control,parameter2,set_value=*(*state.param2Array[idx])[event.index] ;=========================================================================== end ;================================================================== ;added the two lines controlling the widget of site or parameters-1 ; 'PARAMLIST': begin ; end ;================================================================== 'CLEARPARAM': begin paramlist = widget_info(event.handler,find_by_uname='paramlist') widget_control,paramlist,set_list_select=-1 end ;================================================================== ;added the following lines controlling the widget of CLEARPARAM2 'CLEARPARAM2': begin paramlist2 = widget_info(event.handler,find_by_uname='paramlist2') widget_control,paramlist2,set_list_select=-1 end ;================================================================== 'CLEARDATA': begin ok = dialog_message("This will delete all currently loaded data. Are you sure you wish to continue?",/question,/default_no,/center) if strlowcase(ok) eq 'yes' then begin datanames = state.loadedData->getAll(/parent) if is_string(datanames) then begin for i = 0,n_elements(dataNames)-1 do begin result = state.loadedData->remove(datanames[i]) if ~result then begin state.statusBar->update,'Unexpected error while removing data.' state.historyWin->update,'Unexpected error while removing data.' endif endfor endif state.loadTree->update state.callSequence->clearCalls endif end 'DEL': begin dataNames = state.loadTree->getValue() if ptr_valid(datanames[0]) then begin for i = 0,n_elements(dataNames)-1 do begin result = state.loadedData->remove((*datanames[i]).groupname) if ~result then begin state.statusBar->update,'Unexpected error while removing data.' state.historyWin->update,'Unexpected error while removing data.' endif endfor endif state.loadTree->update end 'ADD': begin instrument = widget_info(event.handler,find_by_uname='instrument') instrumentText = widget_info(instrument,/combobox_gettext) instrumentSelect = (where(instrumentText eq state.instrumentArray))[0] type = widget_info(event.handler,find_by_uname='typelist') typeSelect = widget_info(type,/list_select) if typeSelect[0] eq -1 then begin state.statusBar->update,'You must select one type' state.historyWin->update,'IUGONET add attempted without selecting type' break endif typeText = (*state.typeArray[instrumentSelect])[typeSelect] parameter = widget_info(event.handler,find_by_uname='paramlist') paramSelect = widget_info(parameter,/list_select) if paramSelect[0] eq -1 then begin state.statusBar->update,'You must select at least one parameter' state.historyWin->update,'IUGONET add attempted without selecting parameter' break endif ; ;handle '*' type, if present, introduce all if in_set(0,paramSelect) then begin paramText = (*(*state.paramArray[instrumentSelect])[typeSelect]) endif else begin paramText = (*(*state.paramArray[instrumentSelect])[typeSelect])[paramSelect] endelse ;========================================================================================; ; Added the following lines of handling the parameter-2 ; parameter2 = widget_info(event.handler,find_by_uname='paramlist2') param2Select = widget_info(parameter2,/list_select) if param2Select[0] eq -1 then begin state.statusBar->update,'You must select at least one parameter2' state.historyWin->update,'IUGONET add attempted without selecting parameter2' break endif ;handle '*' type, if present, introduce all if in_set(0,param2Select) then begin param2Text = (*(*state.param2Array[instrumentSelect])[typeSelect]) endif else begin param2Text = (*(*state.param2Array[instrumentSelect])[typeSelect])[param2Select] endelse ;=======================================================================================; timeRangeObj = state.timeRangeObj timeRangeObj->getProperty,startTime=startTimeObj,endTime=endTimeObj startTimeObj->getProperty,tdouble=startTimeDouble,tstring=startTimeString endTimeObj->getProperty,tdouble=endTimeDouble,tstring=endTimeString if startTimeDouble ge endTimeDouble then begin state.statusBar->update,'Cannot add data unless end time is greater than start time.' state.historyWin->update,'IUGONET add attempted with start time greater than end time.' break endif ;============================================== ;=== Call iug_ui_load_data_load_pro === ;============================================== widget_control, /hourglass if ~keyword_set(overwrite_selections) then overwrite_selections='' loadStruc = { instrumentText:instrumentText,$ typeText:typeText,$ paramText:paramText,$ param2Text:param2Text,$ ;added this parameter timeRange:[startTimeString,endTimeString] } iug_ui_load_data_load_pro, $ loadStruc, $ state.loadedData, $ state.statusBar, $ state.historyWin, $ overwrite_selections=overwrite_selections state.loadTree->update callSeqStruc = { type:'loadapidata', $ subtype:'iug_ui_load_data_load_pro', $ loadStruc:loadStruc, $ overwrite_selections:overwrite_selections } state.callSequence->addSt, callSeqStruc end else: endcase endif Widget_Control, event.handler, Set_UValue=state, /No_Copy return end ;**************************** ;***** iug_ui_load_data ***** ;**************************** pro iug_ui_load_data,tabid,loadedData,historyWin,statusBar,treeCopyPtr,timeRangeObj,callSequence,loadTree=loadTree,timeWidget=timeWidget compile_opt idl2,hidden ;load bitmap resources getresourcepath,rpath rightArrow = read_bmp(rpath + 'arrow_000_medium.bmp', /rgb) ;leftArrow = read_bmp(rpath + 'arrow_180_medium.bmp', /rgb) trashcan = read_bmp(rpath + 'trashcan.bmp', /rgb) spd_ui_match_background, tabid, rightArrow ;spd_ui_match_background, tabid, leftArrow spd_ui_match_background, tabid, trashcan ;===== added iug_ui_load_data_event =====; topBase = Widget_Base(tabid, /Row, /Align_Top, /Align_Left, YPad=1,event_pro='iug_ui_load_data_event') ; bottomBase=widget_base(topBase,/col,/align_bottom) leftBase = widget_base(topBase,/col) middleBase = widget_base(topBase,/col,/align_center) rightBase = widget_base(topBase,/col) ;===== Modified leftLabel =====; leftLabel = widget_label(leftBase,value='IUGONET Data Selection:',/align_left) rightLabel = widget_label(rightBase,value='Data Loaded:',/align_left) ;clearDataBase = widget_base(bottomBase,/align_bottom) ; NotesLabel = widget_label(clearDataBase,value='* in collaboration with ERG-SC') selectionBase = widget_base(leftBase,/col,/frame) treeBase = widget_base(rightBase,/col,/frame) addButton = Widget_Button(middleBase, Value=rightArrow, /Bitmap, UValue='ADD', $ ToolTip='Load data selection') minusButton = Widget_Button(middleBase, Value=trashcan, /Bitmap, $ Uvalue='DEL', $ ToolTip='Delete data selected in the list of loaded data') loadTree = Obj_New('spd_ui_widget_tree', treeBase, 'LOADTREE', loadedData, $ XSize=400, YSize=425, mode=0, /multi,/showdatetime) loadTree->update,from_copy=*treeCopyPtr clearDataBase = widget_base(rightBase,/row,/align_center) clearDataButton = widget_button(clearDataBase,value='Delete All Data',uvalue='CLEARDATA',/align_center,ToolTip='Deletes all loaded data') ;===== Added the left-bottom label =============================================================================================================; NotesBase = widget_base(leftBase,/row,/align_left) NotesLabel = widget_label(NotesBase,value='Note: # means that the load procedure has been developed') NotesBase = widget_base(leftBase,/row,/align_left) NotesLabel = widget_label(NotesBase,value=' in collaboration with the ERG Science Center.') ;==================================================================================================================================================; timeWidget = spd_ui_time_widget(selectionBase,$ statusBar,$ historyWin,$ timeRangeObj=timeRangeObj,$ uvalue='TIME_WIDGET',$ uname='time_widget',$ startyear=1880) ;================================ ;========== Instrument ========== ;================================ instrumentBase = widget_base(selectionBase,/row) instrumentLabel = widget_label(instrumentBase,value='Instrument Type: ') instrumentArray = ['AllSky_Imager_Keograms', 'Automatic_Weather_Station', 'Boundary_Layer_Radar', 'EISCAT_radar', $ 'Equatorial_Atmosphere_Radar', 'geomagnetic_field_fluxgate', 'geomagnetic_field_induction', $ 'geomagnetic_field_index', 'GPS_radio_occultation', 'HF_Solar_Jupiter_radio_spectrometer', $ 'Iitate_Planetary_Radio_Telescope', 'Imaging_Riometer', 'Ionosonde', 'Lower_Troposphere_Radar', $ 'Low_Frequency_radio_transmitter', 'Medium_Frequency_radar', 'Meteor_Wind_radar', $ 'Middle_Upper_atmosphere_radar', 'Radiosonde', 'SuperDARN_radar#', 'Wind_Profiler_Radar_(LQ-7)'] instrumentCombo = widget_combobox(instrumentBase,$ value=instrumentArray,$ uvalue='INSTRUMENT',$ uname='instrument') ;================================ ;=========== Data Type ========== ;================================ typeArray = ptrarr(21) typeArray[0] = ptr_new(['NIPR#']) typeArray[1] = ptr_new(['troposphere']) typeArray[2] = ptr_new(['troposphere']) typeArray[3] = ptr_new(['altitude_prof','latitude_prof','longitude_prof','Vi_E_vectors']) typeArray[4] = ptr_new(['troposphere','e_region','ef_region','v_region','f_region']) typeArray[5] = ptr_new(['icswse','magdas#','210mm#','ISEE#','WDC_kyoto','NIPR#']) typeArray[6] = ptr_new(['NIPR#','ISEE#']) typeArray[7] = ptr_new(['Dst_index','AE_index','ASY_index','Wp_index']) typeArray[8] = ptr_new(['troposphere']) typeArray[9] = ptr_new(['Sun_or_Jupiter']) typeArray[10] = ptr_new(['Sun']) typeArray[11] = ptr_new(['30MHz']) typeArray[12] = ptr_new(['ionosphere']) typeArray[13] = ptr_new(['troposphere']) typeArray[14] = ptr_new(['ath','nal']) typeArray[15] = ptr_new(['thermosphere']) typeArray[16] = ptr_new(['thermosphere']) typeArray[17] = ptr_new(['troposphere','mesosphere','ionosphere','meteor','rass','fai']) typeArray[18] = ptr_new(['DAWEX','misc']) typeArray[19] = ptr_new(['ionosphere']) typeArray[20] = ptr_new(['troposphere']) dataBase = widget_base(selectionBase,/row) typeBase = widget_base(dataBase,/col) typeLabel = widget_label(typeBase,value='Data Type:') typeList = widget_list(typeBase,$ value=*typeArray[0],$ uname='typelist',$ uvalue='TYPELIST',$ xsize=16,$ ysize=15) widget_control,typeList,set_list_select=0 ;===================================================================================================================================; ; The following programs consist of calling site or parameters 1 and parameters 2. ; The number of two elements of two dimensinal paramArray[*][*] and param2Array[*][*] must be the same value. ; For example, if the numbers of paramArray[a][b] elements are a=10, b=15, those of paramArray[c][d] must be c=10, d=15. ; ; ;============================================ ;========== Sites and Parameters-1 ========== ;============================================ paramArray = ptrarr(21) paramArray[0] = ptr_new(ptrarr(1)) paramArray[1] = ptr_new(ptrarr(1)) paramArray[2] = ptr_new(ptrarr(1)) paramArray[3] = ptr_new(ptrarr(4)) paramArray[4] = ptr_new(ptrarr(5)) paramArray[5] = ptr_new(ptrarr(6)) paramArray[6] = ptr_new(ptrarr(2)) paramArray[7] = ptr_new(ptrarr(4)) paramArray[8] = ptr_new(ptrarr(1)) paramArray[9] = ptr_new(ptrarr(1)) paramArray[10] = ptr_new(ptrarr(1)) paramArray[11] = ptr_new(ptrarr(1)) paramArray[12] = ptr_new(ptrarr(1)) paramArray[13] = ptr_new(ptrarr(1)) paramArray[14] = ptr_new(ptrarr(2)) paramArray[15] = ptr_new(ptrarr(1)) paramArray[16] = ptr_new(ptrarr(1)) paramArray[17] = ptr_new(ptrarr(6)) paramArray[18] = ptr_new(ptrarr(2)) paramArray[19] = ptr_new(ptrarr(1)) paramArray[20] = ptr_new(ptrarr(1)) (*paramArray[0])[0] = ptr_new(['*(all)','hus','lyr','tjo','tro','spa','syo']) (*paramArray[1])[0] = ptr_new(['*(all)','bik','ktb','mnd','pon','sgk']) (*paramArray[2])[0] = ptr_new(['*(all)','ktb','sgk','srp']) (*paramArray[3])[0] = ptr_new(['*(all)','esr_32m','esr_42m','tro_vhf','tro_uhf','kir_uhf','sod_uhf']) (*paramArray[3])[1] = ptr_new(['*(all)','esr_32m','esr_42m','tro_vhf','tro_uhf','kir_uhf','sod_uhf']) (*paramArray[3])[2] = ptr_new(['*(all)','esr_32m','esr_42m','tro_vhf','tro_uhf','kir_uhf','sod_uhf']) (*paramArray[3])[3] = ptr_new(['*(all)','kst']) (*paramArray[4])[0] = ptr_new(['*(all)']) (*paramArray[4])[1] = ptr_new(['*(all)','eb1p2a','eb1p2b','eb1p2c','eb2p1a','eb3p2a',$ 'eb3p2b','eb3p4a','eb3p4b','eb3p4d','eb3p4e','eb3p4f',$ 'eb3p4g','eb3p4h','eb4p2c','eb4p2d','eb4p4','eb4p4a',$ 'eb4p4b','eb4p4d','eb5p4a']) (*paramArray[4])[2] = ptr_new(['*(all)','efb1p16','efb1p16a','efb1p16b']) (*paramArray[4])[3] = ptr_new(['*(all)','vb3p4a','150p8c8a','150p8c8b','150p8c8c','150p8c8d','150p8c8e','150p8c8b2a','150p8c8b2b','150p8c8b2c','150p8c8b2d','150p8c8b2e','150p8c8b2f']) (*paramArray[4])[4] = ptr_new(['*(all)','fb1p16a','fb1p16b','fb1p16c','fb1p16d','fb1p16e','fb1p16f',$ 'fb1p16g','fb1p16h','fb1p16i','fb1p16j1','fb1p16j2','fb1p16j3','fb1p16j4',$ 'fb1p16j5','fb1p16j6','fb1p16j7','fb1p16j8','fb1p16j9',$ 'fb1p16j10','fb1p16j11','fb1p16k1','fb1p16k2','fb1p16k3','fb1p16k4','fb1p16k5',$ 'fb8p16','fb8p16k1','fb8p16k2','fb8p16k3','fb8p16k4','fb1p16m2','fb1p16m3',$ 'fb1p16m4','fb8p16m1','fb8p16m2']) (*paramArray[5])[0] = ptr_new(['*(all)','aab','abj','abu','ama','anc','asb','asw','bcl','bik','bkl',$ 'can','cdo','ceb','cgr','chd','ckt','cmd','dav','daw','des',$ 'drb','dvs','eus','ewa','fym','gsi','her','hln','hob','hvd',$ 'ica','ilr','jrs','jyp','kpg','krt','ktn','kuj','lag','laq',$ 'lgz','lkw','lsk','lwa','mcq','mgd','mlb','mnd','mut','nab',$ 'onw','prp','ptk','ptn','roc','sbh','scn','sma','tgg','tik',$ 'tir','twv','wad','yak','yap','zgn']) (*paramArray[5])[1] = ptr_new(['*(all)','ama','asb','daw','her','hln','hob','kuj','laq','mcq','mgd',$ 'mlb','mut','onw','ptk','wad','yap']) (*paramArray[5])[2] = ptr_new(['*(all)','adl','asa','bik','bji','bsw','can','cbi','chd','cst', $ 'dal','daw','ewa','gua','irt','kag','kat','kor','kot', $ 'ktb','ktn','lmt','lnp','mgd','mcq','msr','mut','onw', $ 'ppi','ptk','ptn','rik','tik','wep','wew','wtk','yak', $ 'yap','ymk','zgn','zyk']) (*paramArray[5])[3] = ptr_new(['*(all)','msr','rik','kag','ktb','mdm','tew']) (*paramArray[5])[4] = ptr_new(['*(all)','aaa','aae','abg','abk','abn','agn','aia','ale','alm','aml','ams',$ 'amt','amu','anc','ann','api','aqu','arc','are','ark','ars','art','asc','ash','aso','asp',$ 'bag','bde','bdv','bel','bfe','bfo','bgy','bji','bjn','blc','blt','bmt','bng','bou',$ 'box','brt','brw','bsl','byr','can','cao','cax','cbb','cbi','ccs','cdp','clf','clh',$ 'cmo','cnb','cnh','coi','cpa','csy','cta','cto','ctx','cwe','czt','dal','dav','dbn',$ 'dik','dlr','dnb','dob','dou','drv','dvs','ebr','egs','eic','elt','esa','esk','ett',$ 'eyr','fan','fcc','fra','frd','frn','fsp','ftn','fuq','fur','gck','gdh','gll','glm',$ 'gln','gna','grm','gua','gui','gwc','gzh','had','hba','hbk','her','his','hlp','hlw',$ 'hna','hon','hrb','hrn','hty','hua','hvn','hyb','ibd','ilm','iqa','irt','isk','izn',$ 'jai','jrv','kak','kdu','kgd','kgl','kir','kiv','kny','knz','kod','kom','kor','kou',$ 'krc','ksh','kzn','laa','ldv','len','ler','lgr','liv','lmm','lnn','lnp','lov','lpb',$ 'lpd','lqa','lrm','lrv','lua','lvv','lwi','lzh','mab','maw','mbc','mbo','mcp','mcq',$ 'mea','mfp','mgd','mid','mir','miz','mlt','mmb','mmk','mnk','mol','mos','mrn','mub',$ 'mut','mzl','nag','nai','naq','nck','new','ngk','ngp','nkk','nmp','nrd','nur','nvl',$ 'nvs','nws','oas','ode','ott','pab','paf','pag','pbq','pcu','peg','pen','pet','phu',$ 'pil','pio','piu','pmg','pnd','pod','pon','ppt','pru','psm','pst','ptu','qgz','qix','qsb',$ 'que','qzh','rbd','rdj','res','rob','rsv','sab','sba','sco','sfs','sge','shl','shu',$ 'sil','sit','sjg','skt','smg','sna','sod','spa','spt','ssh','sso','stj','sto','sua',$ 'sud','svd','swi','syo','szt','tah','tal','tam','tan','teh','ten','teo','tfs','thj','thl',$ 'thy','tik','tir','tkh','tkt','tmk','tnd','tng','tok','tol','too','trd','tro','trw',$ 'tsu','ttb','tuc','tun','uba','ujj','ups','val','vic','vla','vlj','vna','vos','vqs',$ 'vsk','vss','wat','whn','whs','wik','wil','wit','wmq','wng','yak','ycb','ykc','yss']) (*paramArray[5])[5] = ptr_new(['*(all)','aed','amb','hus','h57','h68','ihd','isa','skl','srm','syo','tjo']) (*paramArray[6])[0] = ptr_new(['*(all)','aed','hus','isa','syo','tjo']) (*paramArray[6])[1] = ptr_new(['*(all)','ath','mgd','ptk','msr','sta','gak','kap','zgn','hus']) (*paramArray[7])[0] = ptr_new(['*(all)','WDC_kyoto']) (*paramArray[7])[1] = ptr_new(['*(all)','WDC_kyoto']) (*paramArray[7])[2] = ptr_new(['*(all)','WDC_kyoto']) (*paramArray[7])[3] = ptr_new(['*(all)','WDC_kyoto']) (*paramArray[8])[0] = ptr_new(['*(all)','champ','cosmic']) (*paramArray[9])[0] = ptr_new(['*(all)','iit']) (*paramArray[10])[0] = ptr_new(['*(all)','iit']) (*paramArray[11])[0] = ptr_new(['*(all)','syo']) (*paramArray[12])[0] = ptr_new(['*(all)','sgk']) (*paramArray[13])[0] = ptr_new(['*(all)','sgk']) (*paramArray[14])[0] = ptr_new(['*(all)','nau','ndk','nlk','npm','nrk','nwc','wwvb']) (*paramArray[14])[1] = ptr_new(['*(all)','dcf','gbz','msf','nrk']) (*paramArray[15])[0] = ptr_new(['*(all)','pam','pon']) (*paramArray[16])[0] = ptr_new(['*(all)','bik','ktb','sgk','srp']) (*paramArray[17])[0] = ptr_new(['*(all)']) (*paramArray[17])[1] = ptr_new(['*(all)','org','scr']) (*paramArray[17])[2] = ptr_new(['*(all)']) (*paramArray[17])[3] = ptr_new(['*(all)']) (*paramArray[17])[4] = ptr_new(['*(all)']) (*paramArray[17])[5] = ptr_new(['*(all)','ie2e4b','ie2e4c','ie2e4d','ie2rea','ie2mya','ie2myb','ie2rta','ie2trb','iecob3',$ 'ied101','ied103','ied108','ied110','ied201','ied202','ied203','iedb4a','iedb4b',$ 'iedb4c','iedc4a','iedc4b','iedc4c','iede4a','iede4b','iede4c','iede4d','iedp01',$ 'iedp02','iedp03','iedp08','iedp10','iedp11','iedp12','iedp13','iedp1s','iedpaa',$ 'iedpbb','iedpcc','iedpdd','iedpee','iedpff','iedpgg','iedphh','iedpii','iedpjj',$ 'iedpkk','iedpl2','iedpll','iedpmm','iedptt','iedpyy','iedpzz','ieewb5','ieimga',$ 'ieimgb','ieimgm','ieimgt','ieis01','iefai1','iefdi2','ieggmt','iemb5i','iemcb3',$ 'iemdb3','iemdb5','iemdc3','iemy3a','iemy3b','iemy3c','iemyb5','iensb5','iepbr1',$ 'iepbr2','iepbr3','iepbr4','iepbr5','iepbrt','ieper1','ieper2','ieper3','ieper4',$ 'ieper5','ieper6','ieper7','ieper8','ieps3a','ieps3b','ieps3c','ieps4a','ieps4b',$ 'ieps4c','ieps4d','ieps4e','ieps5a','ieps5b','ieps5c','ieps6a','ieps6b','iepsb3',$ 'iepsb4','iepsb5','iepsi1','iepsi5','iepsit','iesp01','iess01','iess02','iess03',$ 'iess04','iess05','iess2l','iess3l','iess4l','iess8c','iessb5','iesst2','iesst3',$ 'iet101','iet102','ietest','ietst2','ieto02','ieto03','ieto16','ietob3','ietob4',$ 'ietob5','iey4ch','iey4ct','ieyo4a','ieyo4b','ieyo4c','ieyo4d','ieyo4e','ieyo4f',$ 'ieyo4g','ieyo5a','ieyo5b','ieyo5c','ieyo5d','ieyo5e','ieyo5f','ieyo5g','ieyo5m',$ 'ifco02','ifco03','ifco04','ifco16','if5bd1','if5bd2','if5bd3','if5bd4','if5bd5',$ 'if5be1','if5be2','if5be3','if5be4','if5be5','ifchk1','ifdp00','ifdp01','ifdp02',$ 'ifdp03','ifdp0a','ifdp0b','ifdp0c','ifdp0d','ifdp1u','ifdp1s','ifdp1t','ifdpll',$ 'ifdq01','ifdq02','ifim16','ifmb16','ifmc16','ifmd16','ifmf16','ifmy01','ifmy02',$ 'ifmy03','ifmy04','ifmy05','ifmy99','ifmyc1','ifmyc2','ifmyc3','ifmyc4','ifmyc5',$ 'ifmyc6','ifmyc7','ifmyca','ifmycb','ifmyt1','ifmyt2','ifmyt3','ifmyt4','ifmyt5',$ 'ifmyu1','ifmyu2','ifmyu3','ifmyu4','ifmyu5','ifmyv1','ifpsi1','ifpsit','ifss02',$ 'iftes1','iftes2','iftes3','iftes5','iftes6','iftes7','iftes8','ifts01','ifts02',$ 'ifts03','ifts04','ifts05','ifts06','ifts07']) (*paramArray[18])[0] = ptr_new(['*(all)','drw','gpn','ktr']) (*paramArray[18])[1] = ptr_new(['*(all)','bdg','ktb','pon','sgk','srp','uji']) (*paramArray[19])[0] = ptr_new(['*(all)','hok','sye','sys']) (*paramArray[20])[0] = ptr_new(['*(all)','bik','mnd','pon','sgk']) paramBase = widget_base(dataBase,/col) paramLabel = widget_label(paramBase,value='Site or parameter(s)-1:') paramList = widget_list(paramBase,$ value=*((*paramArray[0])[0]),$ /multiple,$ uname='paramlist',$ uvalue='PARAMLIST',$ xsize=24,$ ysize=15) widget_control,paramList,set_list_select=0 clearTypeButton = widget_button(paramBase,value='Clear Site or Parameters-1',uvalue='CLEARPARAM',ToolTip='Deselect all sites and parameters types') ;============================================ ;========== Parameters-2 ==================== ;============================================ param2Array = ptrarr(21) param2Array[0] = ptr_new(ptrarr(1)) param2Array[1] = ptr_new(ptrarr(1)) param2Array[2] = ptr_new(ptrarr(1)) param2Array[3] = ptr_new(ptrarr(4)) param2Array[4] = ptr_new(ptrarr(5)) param2Array[5] = ptr_new(ptrarr(6)) param2Array[6] = ptr_new(ptrarr(2)) param2Array[7] = ptr_new(ptrarr(4)) param2Array[8] = ptr_new(ptrarr(1)) param2Array[9] = ptr_new(ptrarr(1)) param2Array[10] = ptr_new(ptrarr(1)) param2Array[11] = ptr_new(ptrarr(1)) param2Array[12] = ptr_new(ptrarr(1)) param2Array[13] = ptr_new(ptrarr(1)) param2Array[14] = ptr_new(ptrarr(2)) param2Array[15] = ptr_new(ptrarr(1)) param2Array[16] = ptr_new(ptrarr(1)) param2Array[17] = ptr_new(ptrarr(6)) param2Array[18] = ptr_new(ptrarr(2)) param2Array[19] = ptr_new(ptrarr(1)) param2Array[20] = ptr_new(ptrarr(1)) (*param2Array[0])[0] = ptr_new(['*','0000']) (*param2Array[1])[0] = ptr_new(['*','press','precipi','rh','sr','temp','uwnd','vwnd','wnddir','wndspd']) (*param2Array[2])[0] = ptr_new(['*','uwnd','vwnd','wwnd','pwr1','pwr2','pwr3','pwr4','pwr5','wdt1','wdt2','wdt3','wdt4','wdt5']) (*param2Array[3])[0] = ptr_new(['*','ne','neerr','te','teerr','ti','tierr','vi','vierr','pulse','inttim',$ 'lat','long','alt','range','colf','comp','q','qflag']) (*param2Array[3])[1] = ptr_new(['*','ne','neerr','te','teerr','ti','tierr','vi','vierr','pulse','inttim',$ 'lat','long','alt','range','colf','comp','q','qflag']) (*param2Array[3])[2] = ptr_new(['*','ne','neerr','te','teerr','ti','tierr','vi','vierr','pulse','inttim',$ 'lat','long','alt','range','colf','comp','q','qflag']) (*param2Array[3])[3] = ptr_new(['*','vi','vierr','E','Eerr','pulse','inttim','lat','long','alt','q']) (*param2Array[4])[0] = ptr_new(['*','uwnd','vwnd','wwnd','pwr1','pwr2','pwr3','pwr4','pwr5','wdt1','wdt2',$ 'wdt3','wdt4','wdt5','dpl1','dpl2','dpl3','dpl4','dpl5','pn1','pn2','pn3','pn4','pn5']) (*param2Array[4])[1] = ptr_new(['*','dpl1','dpl2','dpl3','dpl4','dpl5','pwr1','pwr2','pwr3','pwr4','pwr5',$ 'wdt1','wdt2','wdt3','wdt4','wdt5','pn1','pn2','pn3','pn4','pn5']) (*param2Array[4])[2] = ptr_new(['*','dpl1','pwr1','wdt1','pn1']) (*param2Array[4])[3] = ptr_new(['*','dpl1','dpl2','dpl3','pwr1','pwr2','pwr3','wdt1','wdt2','wdt3','pn1','pn2','pn3']) (*param2Array[4])[4] = ptr_new(['*','dpl1','dpl2','dpl3','dpl4','dpl5','dpl6','dpl7','dpl8','pwr1','pwr2','pwr3','pwr4','pwr5',$ 'pwr6','pwr7','pwr8','wdt1','wdt2','wdt3','wdt4','wdt5','wdt6','wdt7','wdt8','snr1','snr2','snr3',$ 'snr4','snr5','snr6','snr7','snr','pn1','pn2','pn3','pn4','pn5','pn6','pn7','pn8']) (*param2Array[5])[0] = ptr_new(['*','1sec','1min']) (*param2Array[5])[1] = ptr_new(['*','1sec']) (*param2Array[5])[2] = ptr_new(['*','1sec','1min','1h']) (*param2Array[5])[3] = ptr_new(['*','1sec','1min','1h']) (*param2Array[5])[4] = ptr_new(['*','min','hour']) (*param2Array[5])[5] = ptr_new(['*','1sec']) (*param2Array[6])[0] = ptr_new(['*']) (*param2Array[6])[1] = ptr_new(['*']) (*param2Array[7])[0] = ptr_new(['*','final','prov']) (*param2Array[7])[1] = ptr_new(['*','min','hour','prov_min','prov_hour']) (*param2Array[7])[2] = ptr_new(['*','asy','sym']) (*param2Array[7])[3] = ptr_new(['*']) (*param2Array[8])[0] = ptr_new(['*','event','gpsid','leoid','lat','lon','ref','pres','temp','tan_lat','tan_lon']) (*param2Array[9])[0] = ptr_new(['*','L','R']) (*param2Array[10])[0] = ptr_new(['*','L','R']) (*param2Array[11])[0] = ptr_new(['*','N0-7E0','N0-7E1','N0-7E2','N0-7E3','N0-7E4','N0-7E5','N0-7E6','N0-7E7','N0E0-7','N1E0-7','N2E0-7','N3E0-7','N4E0-7','N5E0-7','N6E0-7','N7E0-7']) (*param2Array[12])[0] = ptr_new(['*','2MHz','3MHz','4MHz','5MHz','6MHz','7MHz','8MHz','9MHz','10MHz','11MHz','12MHz','13MHz','14MHz','15MHz','16MHz','17MHz','18MHz']) (*param2Array[13])[0] = ptr_new(['*','uwnd','vwnd','wwnd','pwr1','pwr2','pwr3','pwr4','pwr5','wdt1','wdt2','wdt3','wdt4','wdt5']) (*param2Array[14])[0] = ptr_new(['*','power','phase']) (*param2Array[14])[1] = ptr_new(['*','power','phase']) (*param2Array[15])[0] = ptr_new(['*','uwnd','vwnd','wwnd']) (*param2Array[16])[0] = ptr_new(['*','h2t60min00','h2t60min30','h4t60min00','h4t60min30','h4t240min00']) (*param2Array[17])[0] = ptr_new(['*','uwnd','vwnd','wwnd','pwr1','pwr2','pwr3','pwr4','pwr5','wdt1','wdt2',$ 'wdt3','wdt4','wdt5','dpl1','dpl2','dpl3','dpl4','dpl5','pn1','pn2','pn3','pn4','pn5']) (*param2Array[17])[1] = ptr_new(['*','uwnd','vwnd','wwnd','pwr1','pwr2','pwr3','pwr4','pwr5','wdt1','wdt2',$ 'wdt3','wdt4','wdt5','dpl1','dpl2','dpl3','dpl4','dpl5','pn1','pn2','pn3','pn4','pn5']) (*param2Array[17])[2] = ptr_new(['*','Vperp_e','Vperp_n','Vpara_u','Vz_ew','Vz_ns','Vd_b','pwr1','pwr2','pwr3','pwr4','te','ti','er_te','er_ti','er_tr','snr']) (*param2Array[17])[3] = ptr_new(['*','h1t60min00','h1t60min30','h2t60min00','h2t60min30']) (*param2Array[17])[4] = ptr_new(['*','uwnd','vwnd','wwnd','temp']) (*param2Array[17])[5] = ptr_new(['*','pwr1','pwr2','pwr3','pwr4','pwr5','pwr6','pwr7','pwr8','pwr9','pwr10','pwr11','pwr12','pwr13','pwr14','pwr15','pwr16',$ 'wdt1','wdt2','wdt3','wdt4','wdt5','wdt6','wdt7','wdt8','wdt9','wdt10','wdt11','wdt12','wdt13','wdt14','wdt15','wdt16',$ 'dpl1','dpl2','dpl3','dpl4','dpl5','dpl6','dpl7','dpl8','dpl9','dpl10','dpl11','dpl12','dpl13','dpl14','dpl15','dpl16',$ 'snr1','snr2','snr3','snr4','snr5','snr6','snr7','snr8','snr9','snr10','snr11','snr12','snr13','snr14','snr15','snr16',$ 'pn1','pn2','pn3','pn4','pn5','pn6','pn7','pn8','pn9','pn10','pn11','pn12','pn13','pn14','pn15','pn16']) (*param2Array[18])[0] = ptr_new(['*','press','temp','rh','dewp','uwnd','vwnd']) (*param2Array[18])[1] = ptr_new(['*','press','temp','rh','dewp','uwnd','vwnd']) (*param2Array[19])[0] = ptr_new(['*','azim_no','pwr','pwr_err','spec_width','spec_width_err','vlos','vlos_err',$ 'echo_flag','quality','quality_flag','vnorth','vnorth_iscat','vnorth_gscat','veast','veast_iscat','veast_gscat','vlos_iscat','vlos_gscat']);,'position_tbl']) (*param2Array[20])[0] = ptr_new(['*','uwnd','vwnd','wwnd','pwr1','pwr2','pwr3','pwr4','pwr5','wdt1','wdt2','wdt3','wdt4','wdt5']) paramBase = widget_base(dataBase,/col) paramLabel = widget_label(paramBase,value='Parameter(s)-2:') paramList2 = widget_list(paramBase,$ value=*((*param2Array[0])[0]),$ /multiple,$ uname='paramlist2',$ xsize=24,$ ysize=15) widget_control,paramList2,set_list_select=0 clearTypeButton = widget_button(paramBase,value='Clear Parameters-2',uvalue='CLEARPARAM2',ToolTip='Deselect all parameters types') ;===================================================================================================================================; state = {baseid:topBase,$ loadTree:loadTree,$ treeCopyPtr:treeCopyPtr,$ timeRangeObj:timeRangeObj,$ statusBar:statusBar,$ historyWin:historyWin,$ loadedData:loadedData,$ callSequence:callSequence,$ instrumentArray:instrumentArray,$ typeArray:typeArray,$ paramArray:paramArray,$ param2Array:param2Array} ;added this parameter widget_control,topBase,set_uvalue=state return end