#python #pycharm
Вопрос:
Этот вопрос очень специфичен для Pytides2. Итак, я пытался восстановить поддельный сигнал прилива(сгенерированный мной самим).
amp = [4,6] phase = [np.pi/2,np.pi/4] period = [4,12] signal = [[amp[i] * np.cos((2*np.pi/period[i])*j - (phase[i])) for j in range(len(time))] for i in range(2) ] signal_sum = np.add(signal[0],signal[1])
Теперь я пытаюсь разложить его и получить компоненты прилива (чтобы я мог использовать основные компоненты для восстановления поддельного сигнала прилива).
tide_decom = Tide.decompose(signal_sum,time) from pandas import DataFrame constituent = [c.name for c in tide_decom.model['constituent']] df_constituent = DataFrame(tide_decom.model, index =constituent).drop('constituent', axis=1) df_constituent.reset_index(inplace=True) const_tidal = df_constituent.sort_values('amplitude', ascending=False) print(const_tidal)
Следует отметить, что, когда я даю точные значения периодов, таких как 4, 6, 8, 12 и 24(это идеальные значения с 6,4,3,2, 1 циклами в день), я могу получить правильную амплитуду, фазу и период на выходе.
index constituent amplitude phase period 2 S2 5.964851 45.482195 12.0000 12 S6 4.000000 89.999999 4.0000
что очень похоже на фальшивый сигнал прилива.
Проблема возникает, когда я слегка изменяю значения периодов, скажем, периоды 4 изменились на 4,01, сохраняя при этом фазу и амплитуду одинаковыми.
period[4.01,12]
Это приводит к тому, что амплитуда, фаза, период выходного сигнала имеют огромные значения, которые в действительности очень ошибочны и невозможны.
index constituent amplitude phase period 2 S2 57637.533234 344.583897 12.0000 22 T2 34100.335418 158.853583 12.0164
амплитуда 57637,53 метра!! Это абсурд.
Любая помощь приветствуется.