;+ ; ;NAME: ;iug_load_ear_iono_fr_txt ; ;PURPOSE: ; Queries the Kyoto_RISH servers for the FAI observation data in the CSV format ; taken by the equatorial atmosphere radar (EAR) and loads data into ; tplot format. ; ;SYNTAX: ; iug_load_ear_iono_fr_txt, parameter1=parameter1, parameter2=parameter2 $ ; downloadonly=downloadonly, trange=trange, verbose=verbose ; ;KEYWOARDS: ; PARAMETER1 = first parameter name of EAR FAI obervation data. ; For example, iug_load_ear_iono_fr_txt, parameter1 = 'fb1p16a'. ; The default is 'all', i.e., load all available parameters. ; PARAMETER2 = second parameter name of EAR FAI obervation data. ; For example, iug_load_ear_iono_fr_txt, parameter2 = 'dpl1'. ; The default is 'all', i.e., load all available parameters. ; TRANGE = (Optional) Time range of interest (2 element array), if ; this is not set, the default is to prompt the user. Note ; that if the input time range is not a full day, a full ; day's data is loaded. ; /downloadonly, if set, then only download the data, do not load it ; into variables. ; VERBOSE (In): [1,...,5], Get more detailed (higher number) command line output. ; ;DATA AVAILABILITY: ; Please check the following homepage of the time schedule of field-aligned irregularity (FAI) observation ; before you analyze the FAI data using this software. ; http://www.rish.kyoto-u.ac.jp/ear/data-fai/index.html#data ; ;CODE: ; A. Shinbori, 19/09/2010. ; ;MODIFICATIONS: ; A. Shinbori, 24/03/2011. ; A. Shinbori, 06/10/2011. ; A. Shinbori, 31/01/2012. ; A. Shinbori, 17/12/2012. ; A. Shinbori, 01/08/2013. ; A. Shinbori, 18/08/2013. ; A. Shinbori, 24/01/2014. ; ;ACKNOWLEDGEMENT: ; $LastChangedBy: jwl $ ; $LastChangedDate: 2014-02-10 16:12:40 -0800 (Mon, 10 Feb 2014) $ ; $LastChangedRevision: 14263 $ ; $URL $ ;- pro iug_load_ear_iono_fr_txt, parameter1=parameter1, $ parameter2=parameter2, $ downloadonly=downloadonly, $ trange=trange, $ verbose=verbose ;********************** ;Verbose keyword check: ;********************** if (not keyword_set(verbose)) then verbose=2 ;************ ;parameters1: ;************ ;--- all parameters1 (default) parameter1_all = strsplit('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 ',$ ' ', /extract) ;--- check parameter1 if(not keyword_set(parameter1)) then parameter1='all' parameters = thm_check_valid_name(parameter1, parameter1_all, /ignore_case, /include_all) print, parameters ;************ ;parameters2: ;************ ;--- all parameters2 (default) parameter2_all = strsplit('dpl1 dpl2 dpl3 dpl4 dpl5 dpl6 dpl7 dpl8 pwr1 pwr2 pwr3 pwr4 pwr5 '+$ 'pwr6 pwr7 pwr8 wdt1 wdt2 wdt3 wdt4 wdt5 wdt6 wdt7 wdt8 pn1 pn2 pn3 '+$ 'pn4 pn5 pn6 pn7 pn8',' ', /extract) ;--- check parameter2 if(not keyword_set(parameter2)) then parameter2='all' parameters2 = thm_check_valid_name(parameter2, parameter2_all, /ignore_case, /include_all) print, parameters2 ;***************** ;Defition of unit: ;***************** ;--- all units (default) unit_all = strsplit('m/s dB',' ', /extract) ;****************************************************************** ;Loop on downloading files ;****************************************************************** ;Get timespan, define FILE_NAMES, and load data: ;=============================================== ; ;=================================================================== ;Download files, read data, and create tplot vars at each component: ;=================================================================== jj=0L for ii=0L,n_elements(parameters)-1 do begin for iii=0L,n_elements(parameters2)-1 do begin if ~size(fns,/type) then begin ;**************************** ;Get files for ith component: ;**************************** file_names = file_dailynames( $ file_format='YYYY/YYYYMMDD/'+$ 'YYYYMMDD',trange=trange,times=times,/unique)+'.fai'+parameters[ii]+'.'+parameters2[iii]+'.csv' ;=============================== ;Define FILE_RETRIEVE structure: ;=============================== source = file_retrieve(/struct) source.verbose=verbose source.local_data_dir = root_data_dir() + 'iugonet/rish/misc/ktb/ear/fai/f_region/csv/' source.remote_data_dir = 'http://www.rish.kyoto-u.ac.jp/ear/data-fai/data/csv/' ;======================================================= ;Get files and local paths, and concatenate local paths: ;======================================================= local_paths=file_retrieve(file_names,_extra=source) local_paths_all = ~(~size(local_paths_all,/type)) ? $ [local_paths_all, local_paths] : local_paths if ~(~size(local_paths_all,/type)) then local_paths=local_paths_all endif else file_names=fns ;--- Load data into tplot variables if (not keyword_set(downloadonly)) then downloadonly=0 if (downloadonly eq 0) then begin ;=================================================== ;read data, and create tplot vars at each parameter: ;=================================================== ;Read the files: ;=============== ;---Definition of string variable: s='' ;---Initialize data and time buffer: ear_time=0 ear_data=0 ;============== ;Loop on files: ;============== for h=jj,n_elements(local_paths)-1 do begin file= local_paths[h] if file_test(/regular,file) then dprint,'Loading EAR file: ',file $ else begin dprint,'EAR file ',file,' not found. Skipping' continue endelse ;---Open read file: openr,lun,file,/get_lun ;========================== ;Read information of range: ;========================== readf, lun, s ;============================= ;Read information of altitude: ;============================= readf, lun, s ;---Definition of altitude and data arraies: h_data = strsplit(s,',',/extract) altitude = fltarr(n_elements(h_data)-1) ;---Enter the altitude information: for j=0L,n_elements(h_data)-2 do begin altitude[j] = float(h_data[j+1]) endfor ;Enter the missing value: for j=0L,n_elements(altitude)-1 do begin b = altitude[j] wbad = where(b eq 0,nbad) if nbad gt 0 then b[wbad] = !values.f_nan altitude[j]=b endfor ;================= ;Loop on readdata: ;================= while(not eof(lun)) do begin readf,lun,s ok=1 if strmid(s,0,1) eq '[' then ok=0 if ok && keyword_set(s) then begin dprint,s ,dlevel=5 data = strsplit(s,',',/extract) data2 = fltarr(1,n_elements(data)-1)+!values.f_nan ;---Get date and time information: year = strmid(data(0),0,4) month = strmid(data(0),5,2) day = strmid(data(0),8,2) hour = strmid(data(0),11,2) minute = strmid(data(0),14,2) ;---Convert time from local time to unix time time = time_double(string(year)+'-'+string(month)+'-'+string(day)+'/'+hour+':'+minute) $ -time_double(string(1970)+'-'+string(1)+'-'+string(1)+'/'+string(7)+':'+string(0)+':'+string(0)) ;Replace missing value by NaN: for j=0L,n_elements(data)-2 do begin a = float(data[j+1]) wbad = where(a eq -999,nbad) if nbad gt 0 then a[wbad] = !values.f_nan data2[0,j]=a endfor ;============================= ;Append data of time and data: ;============================= append_array, ear_time, time append_array, ear_data, data2 endif endwhile free_lun,lun endfor ;============================== ;Store data in TPLOT variables: ;============================== ;---Acknowlegment string (use for creating tplot vars) acknowledgstring = 'The Equatorial Atmosphere Radar belongs to Research Institute for ' $ + 'Sustainable Humanosphere (RISH), Kyoto University and is operated by ' $ + 'RISH and National Institute of Aeronautics and Space (LAPAN) Indonesia. ' $ + 'Distribution of the data has been partly supported by the IUGONET ' $ + '(Inter-university Upper atmosphere Global Observation NETwork) project ' $ + '(http://www.iugonet.org/) funded by the Ministry of Education, Culture, ' $ + 'Sports, Science and Technology (MEXT), Japan.' if size(pwr1,/type) eq 4 then begin if strmid(parameters2[iii],0,2) eq 'dp' then o=0 if strmid(parameters2[iii],0,2) eq 'wd' then o=0 if strmid(parameters2[iii],0,2) eq 'pw' then o=1 if strmid(parameters2[iii],0,2) eq 'pn' then o=1 ;---Create tplot variables for each parameter: dlimit=create_struct('data_att',create_struct('acknowledgment',acknowledgstring,'PI_NAME', 'M. Yamamoto')) store_data,'iug_ear_fai'+parameters[ii]+'_'+parameters2[iii],data={x:ear_time, y:ear_data, v:altitude},dlimit=dlimit ;---Add options: new_vars=tnames('iug_ear_fai'+parameters[ii]+'_'+parameters2[iii]) if new_vars[0] ne '' then begin options,'iug_ear_fai'+parameters[ii]+'_'+parameters2[iii],ytitle='EAR-FAI!CHeight!C[km]',ztitle=parameters2[iii]+'!C['+unit_all[o]+']' options,'iug_ear_fai'+parameters[ii]+'_'+parameters2[iii], labels='EAR-FAI F-region [km]' if strmid(parameters2[iii],0,2) ne 'np' then options, 'iug_ear_fai'+parameters[ii]+'_'+parameters2[iii], 'spec', 1 endif endif ;---Clear time and data buffer: ear_time=0 ear_data=0 ;---Add tdegap new_vars=tnames('iug_ear_fai*') if new_vars[0] ne '' then begin tdegap, 'iug_ear_fai'+parameters[ii]+'_'+parameters2[iii],/overwrite endif endif jj=n_elements(local_paths) endfor jj=n_elements(local_paths) endfor new_vars=tnames('iug_ear_fai*') if new_vars[0] ne '' then begin print,'***************************** print,'Data loading is successful!!' print,'***************************** endif ;************************* ;Print of acknowledgement: ;************************* print, '**************************************************************** print, 'Acknowledgement' print, '**************************************************************** print, 'The Equatorial Atmosphere Radar belongs to Research Institute for ' print, 'Sustainable Humanosphere (RISH), Kyoto University and is operated by ' print, 'RISH and National Institute of Aeronautics and Space (LAPAN) Indonesia. ' print, 'Distribution of the data has been partly supported by the IUGONET ' print, '(Inter-university Upper atmosphere Global Observation NETwork) project ' print, '(http://www.iugonet.org/) funded by the Ministry of Education, Culture, ' print, 'Sports, Science and Technology (MEXT), Japan.' end