PRO phangs_extract_seds,source_name=source_name $ ,resolution_filter=resolution_filter $ ,reset_seds=reset_seds $ ,help=help ;+ ; NAME: ; phangs_extract_seds ; PURPOSE: ; extract SEDs in Muse Voronoi bins ; CATEGORY: ; PHANGS ISRF ; CALLING SEQUENCE: ; phangs_extract_seds[,source_name=][,/save][,/reset_seds] ; INPUTS: ; None ; OPTIONAL INPUT PARAMETERS: ; source_name : source name (default = 'ngc0628') ; OUTPUTS: ; None ; OPTIONAL OUTPUT PARAMETERS: ; None ; ACCEPTED KEY-WORDS: ; help = If set, print this help ; nostop = if set, does not stop ; reset_seds = if set, removes all SED saved files from disk and recomputes all. ; COMMON BLOCKS: ; None ; SIDE EFFECTS: ; The following files are written, if they do not already exist (unless /reset_seds is used) : ; _seds_indices.sav ; _jwst_seds_muse_pixels.sav ; _muse_seds_muse_pixels.sav ; _astrosat_seds_muse_pixels.sav ; _herschel_seds_muse_pixels.sav ; _all_seds_muse_pixels.sav ; RESTRICTIONS: ; None ; PROCEDURE: ; ; EXAMPLES ; phangs_extract_seds,source_name='ngc0628' ; MODIFICATION HISTORY: ; Written by J.-Ph. Bernard (2023) ; Evolution details on the DustEMWrap gitlab. ; See http://dustemwrap.irap.omp.eu/ for FAQ and help. ;- IF keyword_set(help) THEN BEGIN doc_library,'phangs_extract_seds' goto,the_end ENDIF use_source_name='ngc0628' IF keyword_set(source_name) THEN use_source_name=source_name reso_str='' IF keyword_set(resolution_filter) THEN BEGIN reso_str='_'+resolution_filter ENDIF data_dir=!phangs_data_dir+'/ISRF/WORK/' IF keyword_set(reset_seds) THEN BEGIN files_2b_removed=data_dir+use_source_name+'*seds_muse_pixels*'+reso_str+'.sav' str='rm '+files_2b_removed message,'spawning '+str,/continue ;stop spawn,str files_2b_removed=data_dir+use_source_name+'*_seds_indices*'+reso_str+'.sav' str='rm '+files_2b_removed message,'spawning '+str,/continue ;stop spawn,str ENDIF extract_seds: restore,data_dir+use_source_name+'_muse_data'+reso_str+'.sav',/verb ;% RESTORE: Restored variable: ST_TEMPLATES. ;% RESTORE: Restored variable: ST_MUSE_WEIGHTS. ;% RESTORE: Restored variable: VORONOI_ID. ;% RESTORE: Restored variable: AGE_VALUES. ;% RESTORE: Restored variable: METALICITY_VALUES. ;% RESTORE: Restored variable: BINS. ;% RESTORE: Restored variable: HREF. restore,data_dir+use_source_name+'_jwst_images'+reso_str+'.sav',/verb ;% RESTORE: Restored variable: JWST_IMAGES. ;% RESTORE: Restored variable: FILTERS. ;% RESTORE: Restored variable: HREF. ;% RESTORE: Restored variable: NHCO. restore,data_dir+use_source_name+'_astrosat_images'+reso_str+'.sav',/verb ;changed to astrosat_images ;% RESTORE: Restored variable: ASTROSAT_IMAGES. ;% RESTORE: Restored variable: ASTROSAT_FILTERS. ;% RESTORE: Restored variable: HREF. ;restore,data_dir+use_source_name+'_muse_filters_data'+reso_str+'.sav',/verb ;should be called muse_images restore,data_dir+use_source_name+'_muse_filters_images'+reso_str+'.sav',/verb ;changed to muse_images ;% RESTORE: Restored variable: MUSE_IMAGES. ;% RESTORE: Restored variable: MUSE_FILTERS. ;% RESTORE: Restored variable: HREF. restore,data_dir+use_source_name+'_herschel_images'+reso_str+'.sav',/verb ;% RESTORE: Restored variable: HERSCHEL_IMAGES. ;% RESTORE: Restored variable: HERSCHEL_FILTERS. ;% RESTORE: Restored variable: HREF. help,jwst_images,astrosat_images,muse_images,herschel_images ;stop ;This is the file used to store seds indices file_save_indices=data_dir+use_source_name+'_seds_indices'+reso_str+'.sav' ;This is the file used to save JWST seds in Muse voronoi bins file_save=data_dir+use_source_name+'_jwst_seds_muse_pixels'+reso_str+'.sav' res=file_info(file_save) IF not res.exists THEN BEGIN ;stop all_seds=extract_all_muse_phangs_seds(use_source_name,voronoi_id,jwst_images,filters,indices=all_seds_indices,counts=counts) save,all_seds,file=file_save message,'Saved '+file_save,/info save,all_seds_indices,file=file_save_indices message,'Saved '+file_save_indices,/info ENDIF ELSE BEGIN message,'File '+file_save+' already exist',/continue stop ENDELSE ;stop restore,file_save_indices,/verb ;just to get the all_seds_indices variable ;% RESTORE: Restored variable: ALL_SEDS_INDICES ;==== extract Muse SEDs, using previously computed all_seds_indices file_save=data_dir+use_source_name+'_muse_seds_muse_pixels'+reso_str+'.sav' res=file_info(file_save) IF not res.exists THEN BEGIN all_seds=extract_all_muse_phangs_seds(use_source_name,voronoi_id,muse_images,muse_filters,use_these_indices=all_seds_indices,counts=counts) save,all_seds,file=file_save message,'Saved '+file_save,/info ENDIF ELSE BEGIN message,'File '+file_save+' already exist',/continue stop ENDELSE file_save=data_dir+use_source_name+'_astrosat_seds_muse_pixels'+reso_str+'.sav' res=file_info(file_save) IF not res.exists THEN BEGIN all_seds=extract_all_muse_phangs_seds(source_name,voronoi_id,astrosat_images,astrosat_filters,use_these_indices=all_seds_indices,counts=counts) save,all_seds,file=file_save message,'Saved '+file_save,/info ENDIF ELSE BEGIN message,'File '+file_save+' already exist',/continue stop ENDELSE file_save=data_dir+use_source_name+'_herschel_seds_muse_pixels'+reso_str+'.sav' res=file_info(file_save) IF not res.exists THEN BEGIN all_seds=extract_all_muse_phangs_seds(source_name,voronoi_id,herschel_images,herschel_filters,use_these_indices=all_seds_indices,counts=counts) save,all_seds,file=file_save message,'Saved '+file_save,/info ENDIF ELSE BEGIN message,'File '+file_save+' already exist',/continue stop ENDELSE ;==== The following is not really useful, can be done through SED aggregation later ;==== However, not equivalent to the above, because of undefined pixels in some of the images, and the way this is handled by sed extractor ;stop file_save=data_dir+use_source_name+'_all_seds_muse_pixels'+reso_str+'.sav' res=file_info(file_save) IF not res.exists THEN BEGIN use_filters=[astrosat_filters,muse_filters,filters,herschel_filters] use_Nfilters=n_elements(use_filters) use_images=fltarr([sxpar(href,'NAXIS1'),sxpar(href,'NAXIS2'),2,use_Nfilters]) from=0L & to=from+n_elements(filters)-1 use_images[*,*,*,from:to]=jwst_images from=to+1 & to=from+n_elements(muse_filters)-1 use_images[*,*,*,from:to]=muse_images from=to+1 & to=from+n_elements(astrosat_filters)-1 use_images[*,*,*,from:to]=astrosat_images from=to+1 & to=from+n_elements(herschel_filters)-1 use_images[*,*,*,from:to]=herschel_images all_seds=extract_all_muse_phangs_seds(use_source_name,voronoi_id,use_images,use_filters,indices=all_seds_indices,counts=counts) save,all_seds,file=file_save message,'Saved '+file_save,/info ENDIF ELSE BEGIN message,'File '+file_save+' already exist',/continue stop ENDELSE the_end: END