Как определить или лучше указать горизонт для настоящих и прошлых прогнозов? - PullRequest
0 голосов
/ 11 марта 2019

У меня концептуальная проблема с предсказаниями pvlib: проблема в том, что, если я спрашиваю «прошлые предсказания», то я не знаю, какой временной горизонт для предсказания.Для реальных будущих прогнозов это немного более очевидно, наивно я бы просто вычел текущее время из временной отметки возвращенного прогноза, хотя если запросы данных (зависящие от модели) выполняются только с часовым или 6-часовым интервалом, то это выглядит так:Мне пришлось бы добавить эту неопределенность к горизонту, так что я все еще не уверен.

Что касается прошлых прогнозов, я просто понятия не имею, что такое горизонт.Как это можно определить?

Этот вопрос относится как к стандартному способу получения данных / прогнозов, так и к pvlib-python, и я думаю, что он также применим к специальному сценарию https://github.com/wholmgren/get_nomads для получения данных для прогнозов в далеком прошлом.

Любая помощь будет полезна в понимании этой ситуации.

Чтобы попытаться сделать этот вопрос более конкретным, я включаю этот фрагмент кода, взятый изgnatcast_to_power.ipynb, с изменениями времени начала и окончания, чтобы быть вПрошлое:

# built-in python modules
import datetime
import inspect
import os

# scientific python add-ons
import numpy as np
import pandas as pd

# plotting stuff
# first line makes the plots appear in the notebook
%matplotlib inline 
import matplotlib.pyplot as plt
import matplotlib as mpl

# finally, we import the pvlib library
from pvlib import solarposition,irradiance,atmosphere,pvsystem
from pvlib.forecast import GFS, NAM, NDFD, RAP, HRRR

# Choose a location.
# Tucson, AZ
latitude = 32.2
longitude = -110.9
tz = 'US/Mountain'

surface_tilt = 30
surface_azimuth = 180 # pvlib uses 0=North, 90=East, 180=South, 270=West convention
albedo = 0.2

# for this example, let's predict into the past:
start = pd.Timestamp(datetime.date.today(), tz=tz) - pd.Timedelta(days=14) # 14 days ago
end = start + pd.Timedelta(days=7) # 7 days from start

fm = GFS()

forecast_data = fm.get_processed_data(latitude, longitude, start, end)

forecast_data.head()

temp_air    wind_speed  ghi dni dhi total_clouds    low_clouds  mid_clouds  high_clouds
2019-02-25 06:00:00-07:00   6.581512    1.791610    0.000000    0.000000    0.000000    33.0    0.0 0.0 33.0
2019-02-25 09:00:00-07:00   4.832214    0.567790    392.833659  668.164855  121.831040  0.0 0.0 0.0 0.0
2019-02-25 12:00:00-07:00   3.409973    0.860611    794.120954  910.658669  118.492918  0.0 0.0 0.0 0.0
2019-02-25 15:00:00-07:00   6.841797    0.942555    529.425232  515.727013  222.689391  22.0    0.0 0.0 22.0
2019-02-25 18:00:00-07:00   24.458038   0.466084    11.339769   0.000000    11.339769   52.0    0.0 0.0 52.0

Каков временной горизонт этого обратного прогноза?Могу ли я настроить это?Если да, то как?

1 Ответ

0 голосов
/ 11 марта 2019

Для реальных будущих прогнозов это немного более очевидно, наивно я бы просто вычел текущее время из отметки времени возвращенного прогноза

Да, это верно для истинных предсказаний. Для прошлых предсказаний вы должны определить горизонт таким образом, чтобы это соответствовало вашей способности делать истинные предсказания.

NCEP поддерживает страницу состояния модели , в которой подробно описываются типичные моменты времени, когда данные модели погоды доступны на его серверах. Каждая модель имеет различную задержку между временем инициализации и доступностью прогноза.

Также может помочь документ Solar Forecast Arbiter .

...