;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; PRO aia_psf_fft_creation_jr, channel, data_size, aia_psf_fft_channel, error=error ; creating an FFT of the AIA PSF depending on the selected channel and ; data size of the raw AIA image data to be deconvolved for the PSF ; effect later on ; INPUT: channel - AIA channel (value or string - one of 94,131,171,193,211,304,335) ; data_size - size of the raw AIA image data to be deconvolved for the PSF later on ; (the FFT PSF will be created in this particular size) ; RESTRICTION: raw AIA image data to be deconvolved for the PSF has to ; be larger in both dimensions than 801 points ; ; OUTPUT: aia_psf_fft_channel - FFT of PSF (complex, data_size x data_size array) ; error - 0=creation OK, 1=wrong channel required, 2=too small data size ; PSFs of SDO AIA derived followinf the article and data of ; title : POINT-SPREAD FUNCTIONS FOR THE EXTREME-ULTRAVIOLET CHANNELS OF SDO/AIA TELESCOPES' ; autors : B. Poduval, C. E. DeForest, J. T. Schmelz, and S. Pathak ; journal: The Astrophysical Journal, 765:144 (15pp), 2013 March 10 ; in case of channel as a number channel=strcompress(string(fix(channel)),/remove_all) ; OK error=0 ; wrong channel if total(where(channel eq [94,131,171,193,211,304,335])) eq -1 then begin print print,' INFO : wrong channel required !' error=1 & aia_psf_fft_channel=0 return endif ; too small data size if data_size lt 801 then begin print print,' INFO : too small data size, it has to be >= 801 !' error=2 & aia_psf_fft_channel=0 return endif ; valid channel ; PSF reading from file path0='~/data/sdo/aia/data/FITS/' aia_psf_fits ='PSF'+channel+'A.fits' fits_read,path0+aia_psf_fits,psf,header ; parameters size_psf=size(psf) & psf_size_half=(size_psf(1)-1)/2 data_size=data_size & data_size_half=data_size/2 ; data array for the PSF itself psf_large=fltarr(data_size_half*2,data_size_half*2) ; the atual PSF data placed to the center of the PSF data array psf_large(data_size_half-psf_size_half:data_size_half+psf_size_half,$ data_size_half-psf_size_half:data_size_half+psf_size_half)=psf ; calculation of the final PSF FFT aia_psf_fft_channel =fft(psf_large,-1) return end