Как разделить два набора данных (спектры) с разными размерами? - PullRequest
0 голосов
/ 01 марта 2019

Spectrum_3 = Spectrum_1/Spectrum_2, но они имеют разные размеры.Как я мог продолжить?Поскольку я имею дело со спектрами, мой подход состоит в том, чтобы уменьшить разрешение Spectrum_1, чтобы размер данных соответствовал (если вы пришли из Астрофизики, это правильный подход?).В любом случае, мне (кажется, мне) нужно скопировать данные из Spectrum_1 таким образом, чтобы их размер соответствовал размеру Spectrum_2.

arr1.size is 313136
synth_spec2.size is 102888
arr1_new = arr1.reshape(-1,2).mean(axis=1) # should be the answer but 
# I don`t fully understand it. 

Мне нужно

len(arr1_new) == len(synth_spec2) #True

1 Ответ

0 голосов
/ 09 марта 2019

Обычно вам нужно интерполировать два спектра на общую сетку длин волн, обращая особое внимание на концы спектров, если они не полностью перекрываются.Я бы посоветовал взглянуть на пакет synphot и, в частности, на классы SourceSpectrum .Несмотря на название, он поддерживает различные спектры, поскольку синтетическая фотометрия обычно выполняется путем сборки подходящего спектра источника, применения к нему покраснения / затухания и т. Д., А затем умножения на полосы пропускания фильтра (что также является спектром, поскольку передача подлина волны) и интегрирование для получения потока.

...