Commit a89ef493 authored by Andrea Giannetti's avatar Andrea Giannetti
Browse files

Removed get_guesses experiment; added N2H+ to source_properties.yml

parent d45528d5
Loading
Loading
Loading
Loading
+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
+0 −52
Changes for etl/mdl/mdl_psk_decomposition.py: 0 added lines, 52 removed lines.
Original line number Diff line number Diff line
@@ -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:
@@ -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,