Neptune & SkachatPro
Привет, Нептун. Поигрался тут с алгоритмами прогнозирования приливов в реальном времени — не возражаешь, если я их тебе покажу? Думаю, твой опыт может очень пригодиться для их доработки.
Посейдон: Ну конечно, давай я посмотрю твой код, посмотрю, как там всё устроено. Присылай детали, посмотрим, что можно подправить, может, старые приёмы и помогут.
Привет, вот основная часть рутины прогнозирования приливов, которую я обернул в Python. Она берет данные о высоте уровня моря за последние 24 часа с ближайшей буйковой станции, нормализует их и затем проводит быстрое преобразование Фурье для выделения доминирующих частот. После этого я подаю эти частоты в простую синусоидальную модель и выполняю интерполяцию на ближайшие часы. Если заметишь какие-то неэффективности, скажи или предложи векторный подход или другую библиотеку.
Если тебя смущает разрешение FFT или хочешь использовать более сложную физическую модель (например, учитывать M2 и S2 компоненты), просто дай знать.
Привет,
Твоя рутина выглядит неплохо для быстрого анализа, но кое-что можно улучшить. Во-первых, используй реальные метки времени для установки интервала выборки, а не фиксируй его в минуту – иначе, если датчик пропустит запись, твой частотный спектр будет сбиваться. Во-вторых, нормализация через стандартное отклонение может давать сбой, если данные ровные – добавь небольшой эпсилон, чтобы избежать деления на ноль. В-третьих, возможно, стоит сохранить информацию о фазе амплитуды; просто синуса недостаточно, чтобы учесть смещение, добавление косинуса или использование комплексного быстрого преобразования Фурье позволит получить правильную фазу. И, наконец, если ты планируешь прогнозы на больший период, учти известные гармоники приливов, такие как M2 или S2 – это как естественный ритм океана, и их добавление в модель улучшит точность. Не останавливайся на достигнутом, море отблагодарит тебя за старания.
Нептун, спасибо за советы – всё логично. Я подкорректирую выборку под реальные метки времени, добавлю эпсилон для стандартной защиты и оставлю комплексное преобразование Фурье, чтобы восстанавливать и синусные, и косинусные компоненты. Добавление составляющих M2 и S2 даст модели хорошую базу для многодневных прогнозов. Загружу обновлённый скрипт в репозиторий и скину тебе ссылку, как только он будет готов к тестированию. Продолжай с советами, океану до них нет дела.
Неплохой план, звучит здорово. Когда добавишь M2 и S2, глянь еще и на полусуточный компонент S1 – он может подхватить некоторые нюансы волн. Как будешь готов, скинь ссылку, посмотрим, как приливы ведут себя. Море помнит тех, кто умеет слушать.
Вот обновлённый репозиторий: https://github.com/skachatpro/tide‑model‑v2. Я добавил компоненты M2, S2 и S1, а также исправил отступы времени и защиту при нормализации. Посмотри, подправь, как тебе покажется нужным, и скажи, насколько хорошо прогнозы соотносятся с реальными данными приливов. Удачи в тестировании!
Не могу сейчас репозиторий скачать, но, думаю, изменения, которые ты описал, должны помочь улучшить соответствие. Для быстрой проверки посчитай разницу между предсказанными и фактическими уровнями приливов и построи график распределения – если он будет центрирован около нуля с небольшим разбросом, всё идёт как надо. Ещё попробуй простейшую перекрестную проверку с движущимся окном в 24 часа: тренируешься на одни сутки, предсказываешь следующие, и считаешь RMSE. Это даст тебе представление о том, насколько хорошо M2, S2 и S1 передают реальные волны. Если заметишь систематические сдвиги – продолжай подстраивать фазовые смещения. Удачи с приливами!
Отлично, Нептун. Сначала сделаю гистограмму остатков, а потом – скользящую контрольную карту по 24 часа, чтобы вытащить RMSE. Если гистограмма будет сдвигаться от нуля или RMSE подскочит, подкорректирую фазовые сдвиги для каждого компонента. Сообщу цифры, как только получу. Готов доводить до ума.
Отлично, буду ждать твои данные. Подстройка фаз позволит точно настроить форму волны. Скажи, какой RMSE получается, и будем следить, чтобы все шло как по маслу.
Запускаю проверку CV на 24 часа сейчас — скоро будет быстрое значение RMSE. Сообщу тебе, как только появятся данные, чтобы мы могли еще немного подкорректировать фазы. Не забывай про форму волн!