Как разделить два набора данных (спектры) с разными размерами?

Spectrum_3 = Spectrum_1/Spectrum_2, но они имеют разные размеры. Как я мог продолжить? Поскольку я имею дело со спектрами, мой подход заключается в уменьшении разрешения Spectrum_1 так что размер данных совпадает (если вы пришли из Astrophysics, это правильный подход?). Во всяком случае, мне (кажется, я) нужно, чтобы данные из 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

0 ответов

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

Другие вопросы по тегам