Загрузка данных


# modules/forecast_data_processing.py

import numpy as np
from datetime import datetime, timedelta

def generate_trajectory(lambda_val, days_forward, step_days):
    """
    Генерирует траекторию значений по дням.
    :param lambda_val: Интенсивность событий (в день).
    :param days_forward: Количество дней для прогноза.
    :param step_days: Шаг отображения графика.
    :return: tuple(list, list): Траектория для графика и полная история ежедневных значений.
    """
    value_pool_positive = [1, 2, 3, 4, 5]
    trajectory = []
    current_value = 0
    
    daily_values_history = [] 

    start_date = datetime.now().date() # Определяем дату начала здесь

    for day_offset in range(days_forward + 1):
        daily_sum = 0
        num_events_today = np.random.poisson(lam=lambda_val)
        
        for _ in range(num_events_today):
            event_value = np.random.choice(value_pool_positive)
            daily_sum += event_value
        
        current_value += daily_sum
        daily_values_history.append(current_value)
        
        # --- ДОБАВЛЕН ВЫВОД В КОНСОЛЬ ---
        current_date = start_date + timedelta(days=day_offset)
        print(f"{current_date}: Событий: {num_events_today:2d}. Итог дня: {daily_sum:6.2f}. Накоплено: {current_value:6.2f}")
        # ---------------------------------
        
        if day_offset % step_days == 0 or day_offset == days_forward:
            trajectory.append(current_value)
            
    return trajectory, daily_values_history