#pvlib
#pvlib
Вопрос:
У меня возникла концептуальная проблема с прогнозами pvlib: Проблема в том, что если я запрашиваю «прошлые прогнозы», то я не знаю, каков временной горизонт для прогноза. Для реальных будущих прогнозов это немного более очевидно, наивно я бы просто вычел текущее время из временной метки возвращаемого прогноза, хотя, если запросы данных (в зависимости от модели) выполняются только с часовыми или 6-часовыми интервалами, тогда, похоже, мне пришлось бы добавить эту неопределенность к горизонту, поэтому я все еще не уверен.
Что касается прошлых прогнозов, я просто понятия не имею, что такое горизонт. Как это можно определить?
Этот вопрос относится как к стандартному способу pvlib-python получения данных / прогнозов, так и, я думаю, к специальному скриптуhttps://github.com/wholmgren/get_nomads чтобы получить данные для прогнозов на более отдаленный период в прошлом.
Была бы признательна любая помощь в понимании этой ситуации.
Чтобы попытаться сделать этот вопрос более конкретным, я включаю этот фрагмент кода, взятый из forecast_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:
Для реальных будущих прогнозов это немного более очевидно, наивно, я бы просто вычел текущее время из временной метки возвращаемого прогноза
Да, это верно для истинных прогнозов. Для прошлых прогнозов вы должны определить горизонт таким образом, который соответствует вашей способности делать верные прогнозы.
NCEP поддерживает страницу состояния модели, на которой подробно описывается типичное время, в которое данные модели погоды доступны на его серверах. Каждая модель имеет разную задержку между временем ее инициализации и доступностью прогноза.
Также может помочь документ «Определения арбитра по солнечным прогнозам«.