Loading etl/assets/data/source_properties.yml +21 −7 Changes for etl/assets/data/source_properties.yml: 21 added lines, 7 removed lines. Original line number Diff line number Diff line G332.96: { 'vlsr': -67.6, # 'vlsr': -69, CH3OH: { 'data': 'G332.96_CH3OH_3mm_feather.fits', 'rms': 0.0034, 'vlsr': -67.6, 'frequency_limits_ghz': [ 96.755, 96.775 ] } 'frequency_limits_ghz': [ 96.741, 96.787 ] }, N2H+:{ 'data': 'G332.96_N2H+_3mm_feather.fits', 'rms': 0.0034, 'frequency_limits_ghz': [ 93.1958, 93.199 ], 'starting_point': [191, 306] } } G28: { 'vlsr': 79.6, CH3OH: { 'data': 'G28_CH3OH_3mm_feather.fits', 'rms': 0.003, 'vlsr': 79.6, 'frequency_limits_ghz': [ 96.6995, 96.740 ] } 'frequency_limits_ghz': [ 96.6995, 96.740 ] }, N2H+:{ 'data': 'G28_N2H+_3mm_feather.fits', 'rms': 0.0034, 'frequency_limits_ghz': [ 93.15025, 93.16 ] } } G14: { 'vlsr': 40.5, CH3OH: { 'data': 'G14_CH3OH_3mm_feather.fits', 'rms': 0.0032, 'vlsr': 40.5, 'frequency_limits_ghz': [ 96.706, 96.750 ] } 'frequency_limits_ghz': [ 96.706, 96.750 ] }, N2H+:{ 'data': 'G14_N2H+_3mm_feather.fits', 'rms': 0.0033, 'frequency_limits_ghz': [ 93.1627, 93.184 ] } } G12: { 'vlsr': 34.4, CH3OH: { 'data': 'G12_CH3OH_3mm_ACA_MA.fits', 'rms': 0.002, 'vlsr': 34.4, 'frequency_limits_ghz': [ 96.692, 96.786 ] } } No newline at end of file etl/mdl/mdl_psk_decomposition.py +0 −52 Changes for etl/mdl/mdl_psk_decomposition.py: 0 added lines, 52 removed lines. Original line number Diff line number Diff line Loading @@ -79,51 +79,6 @@ def update_results(fitted_cube, final_pars, indices_to_keep, mask, rms, componen return _final_pars def get_guesses(peaks: Tuple[np.array, dict], ea_channel_separation: float, ref_freq: float, ref_chan: float, channelwidth_hz: float, rest_freq: float, guesses: list) -> Tuple[float, float, float]: _peak_shifts_channels = peaks[0][::-1] _widths_channels = peaks[1]['widths'][::-1] comps = len(guesses) // 12 _guess_chans = [] for i in range(comps): _guess_chans.append((guesses[1 + 12 * i] - ref_freq) / channelwidth_hz + ref_chan) mask = np.full(shape=_peak_shifts_channels.shape, fill_value=False) is_e = [] for component_shift, component_width in zip(_peak_shifts_channels, _widths_channels): tolerance = np.min((ea_channel_separation / 2, component_width)) shifts = _peak_shifts_channels - component_shift mask = mask | np.where(np.abs(shifts + ea_channel_separation) <= tolerance, True, False) if np.sum(mask) == 1: is_e.append(True) else: is_e.append(False) print(component_shift, np.abs(shifts + ea_channel_separation), tolerance) _peak_shifts_channels = np.where(~mask, _peak_shifts_channels, -9999) mask_guesses = np.full(shape=_peak_shifts_channels.shape, fill_value=False) for i in range(comps): mask_guesses = mask_guesses | np.where( np.min(np.abs(np.where(mask_guesses, -9999, _peak_shifts_channels) - _guess_chans[i])) == np.abs( _peak_shifts_channels - _guess_chans[i]), True, False) _peak_heights = np.where(~mask[::-1] & ~mask_guesses[::-1], peaks[1]['peak_heights'], 0) try: next_peak = np.argmax(_peak_heights) additional_shift = 0 if not is_e[-next_peak - 1]: additional_shift = ea_channel_separation * np.abs(channelwidth_hz) return (_peak_heights[next_peak], (_peak_shifts_channels[::-1][ next_peak] - ref_chan) * channelwidth_hz + ref_freq - additional_shift - rest_freq, _widths_channels[::-1][next_peak] * np.abs(channelwidth_hz) / 2.355) except IndexError: return (np.nanmean(peaks[1]['peak_heights']), 3 * np.abs(channelwidth_hz), 2 * np.abs(channelwidth_hz)) datadir = os.path.join('assets', 'data') with open(os.path.join(datadir, 'source_properties.yml'), 'r') as infile: Loading Loading @@ -207,13 +162,6 @@ for source in source_names: tied += fill_tied_pars(tied_pars=tied_pars) else: tied = [''] * pars_per_component # best_guesses = get_guesses(peaks=peaks, # ea_channel_separation=channel_separation[0], # ref_freq=cube.header['CRVAL3'], # ref_chan=cube.header['CRPIX3'], # channelwidth_hz=channelwidth_hz, # rest_freq=doppler_adjusted_frequencies[0].to(u.Hz).value, # guesses=guesses) guesses += fill_guesses(line_peak=peak_guess, doppler_adjusted_frequencies=doppler_adjusted_frequencies, shift_hz=linewidth_guess_hz / 2 * idx_shift, Loading Loading
etl/assets/data/source_properties.yml +21 −7 Changes for etl/assets/data/source_properties.yml: 21 added lines, 7 removed lines. Original line number Diff line number Diff line G332.96: { 'vlsr': -67.6, # 'vlsr': -69, CH3OH: { 'data': 'G332.96_CH3OH_3mm_feather.fits', 'rms': 0.0034, 'vlsr': -67.6, 'frequency_limits_ghz': [ 96.755, 96.775 ] } 'frequency_limits_ghz': [ 96.741, 96.787 ] }, N2H+:{ 'data': 'G332.96_N2H+_3mm_feather.fits', 'rms': 0.0034, 'frequency_limits_ghz': [ 93.1958, 93.199 ], 'starting_point': [191, 306] } } G28: { 'vlsr': 79.6, CH3OH: { 'data': 'G28_CH3OH_3mm_feather.fits', 'rms': 0.003, 'vlsr': 79.6, 'frequency_limits_ghz': [ 96.6995, 96.740 ] } 'frequency_limits_ghz': [ 96.6995, 96.740 ] }, N2H+:{ 'data': 'G28_N2H+_3mm_feather.fits', 'rms': 0.0034, 'frequency_limits_ghz': [ 93.15025, 93.16 ] } } G14: { 'vlsr': 40.5, CH3OH: { 'data': 'G14_CH3OH_3mm_feather.fits', 'rms': 0.0032, 'vlsr': 40.5, 'frequency_limits_ghz': [ 96.706, 96.750 ] } 'frequency_limits_ghz': [ 96.706, 96.750 ] }, N2H+:{ 'data': 'G14_N2H+_3mm_feather.fits', 'rms': 0.0033, 'frequency_limits_ghz': [ 93.1627, 93.184 ] } } G12: { 'vlsr': 34.4, CH3OH: { 'data': 'G12_CH3OH_3mm_ACA_MA.fits', 'rms': 0.002, 'vlsr': 34.4, 'frequency_limits_ghz': [ 96.692, 96.786 ] } } No newline at end of file
etl/mdl/mdl_psk_decomposition.py +0 −52 Changes for etl/mdl/mdl_psk_decomposition.py: 0 added lines, 52 removed lines. Original line number Diff line number Diff line Loading @@ -79,51 +79,6 @@ def update_results(fitted_cube, final_pars, indices_to_keep, mask, rms, componen return _final_pars def get_guesses(peaks: Tuple[np.array, dict], ea_channel_separation: float, ref_freq: float, ref_chan: float, channelwidth_hz: float, rest_freq: float, guesses: list) -> Tuple[float, float, float]: _peak_shifts_channels = peaks[0][::-1] _widths_channels = peaks[1]['widths'][::-1] comps = len(guesses) // 12 _guess_chans = [] for i in range(comps): _guess_chans.append((guesses[1 + 12 * i] - ref_freq) / channelwidth_hz + ref_chan) mask = np.full(shape=_peak_shifts_channels.shape, fill_value=False) is_e = [] for component_shift, component_width in zip(_peak_shifts_channels, _widths_channels): tolerance = np.min((ea_channel_separation / 2, component_width)) shifts = _peak_shifts_channels - component_shift mask = mask | np.where(np.abs(shifts + ea_channel_separation) <= tolerance, True, False) if np.sum(mask) == 1: is_e.append(True) else: is_e.append(False) print(component_shift, np.abs(shifts + ea_channel_separation), tolerance) _peak_shifts_channels = np.where(~mask, _peak_shifts_channels, -9999) mask_guesses = np.full(shape=_peak_shifts_channels.shape, fill_value=False) for i in range(comps): mask_guesses = mask_guesses | np.where( np.min(np.abs(np.where(mask_guesses, -9999, _peak_shifts_channels) - _guess_chans[i])) == np.abs( _peak_shifts_channels - _guess_chans[i]), True, False) _peak_heights = np.where(~mask[::-1] & ~mask_guesses[::-1], peaks[1]['peak_heights'], 0) try: next_peak = np.argmax(_peak_heights) additional_shift = 0 if not is_e[-next_peak - 1]: additional_shift = ea_channel_separation * np.abs(channelwidth_hz) return (_peak_heights[next_peak], (_peak_shifts_channels[::-1][ next_peak] - ref_chan) * channelwidth_hz + ref_freq - additional_shift - rest_freq, _widths_channels[::-1][next_peak] * np.abs(channelwidth_hz) / 2.355) except IndexError: return (np.nanmean(peaks[1]['peak_heights']), 3 * np.abs(channelwidth_hz), 2 * np.abs(channelwidth_hz)) datadir = os.path.join('assets', 'data') with open(os.path.join(datadir, 'source_properties.yml'), 'r') as infile: Loading Loading @@ -207,13 +162,6 @@ for source in source_names: tied += fill_tied_pars(tied_pars=tied_pars) else: tied = [''] * pars_per_component # best_guesses = get_guesses(peaks=peaks, # ea_channel_separation=channel_separation[0], # ref_freq=cube.header['CRVAL3'], # ref_chan=cube.header['CRPIX3'], # channelwidth_hz=channelwidth_hz, # rest_freq=doppler_adjusted_frequencies[0].to(u.Hz).value, # guesses=guesses) guesses += fill_guesses(line_peak=peak_guess, doppler_adjusted_frequencies=doppler_adjusted_frequencies, shift_hz=linewidth_guess_hz / 2 * idx_shift, Loading