Как разделить два набора данных (спектры) с разными размерами?
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. Несмотря на название, он поддерживает различные спектры, так как синтетическая фотометрия обычно выполняется путем сборки подходящего спектра источника, применения к нему покраснения / затухания и т. Д., А затем умножения на полосу пропускания фильтра (которая также подобна спектру и является передачей против длина волны) и интегрирование для получения потока.