#pvlib
#pvlib
Вопрос:
Я пишу программу для оценки почасовой выработки энергии от PV в разных городах США. Для простоты у меня есть они в словаре (tmy3_cities), чтобы я мог перебирать их. Чтобы прочитать код, я следовал инструкциям TMY по отключению питания от Github. Вместо того, чтобы показывать весь цикл, я добавил только код, который считывает и сдвигает время на 30 минут.
Соответственно, код, взятый из руководства, работает для всех файлов TMY3, за исключением Хьюстона, Атланты и Балтимора (для простоты HAB). Все файлы tmy3 были загружены из NREL и переименованы для моего собственного использования. Ошибка, которую я получаю при чтении этих трех файлов, связана с датой и временем, и она, по сути, сводится к «ValueError: недопустимый литерал для int() с основанием 10: ‘1’ после некоторой трассировки.
Вместо того, чтобы зацикливаться на одной и той же проблеме, я ввел каждый файл в программу чтения по отдельности, и, конечно же, только файлы HAB tmy3 выдают ошибки.
Во-вторых, я снова загрузил файлы. Это, очевидно, не оказало никакого влияния.
В ленивой попытке обойти проблему я скопировал и вставил столбцы даты и времени из рабочих файлов tmy3 (например, Miami) в нерабочие (например, HAB) через excel.
Я не уверен, что еще делать, поскольку я все еще новичок в Python и кодировании в целом.
#The dictionary below is not important to the problem below, but is
provided only for some clarification.
tmy3_cities = {'miami': 'TMY3Miami.csv',
'houston': 'TMY3Houston.csv',
'phoenix': 'TMY3Phoenix.csv',
'atlanta': 'TMY3Atlanta.csv',
'los_angeles': 'TMY3LosAngeles.csv',
'las_vegas': 'TMY3LasVegas.csv',
'san_francisco': 'TMY3SanFrancisco.csv',
'baltimore': 'TMY3Baltimore.csv',
'albuquerque': 'TMY3Albuquerque.csv',
'seattle': 'TMY3Seattle.csv',
'chicago': 'TMY3Chicago.csv',
'denver': 'TMY3Denver.csv',
'minneapolis': 'TMY3Minneapolis.csv',
'helena': 'TMY3Helena.csv',
'duluth': 'TMY3Duluth.csv',
'fairbanks': 'TMY3Fairbanks.csv'}
#The code below was taken from the tutorial.
pvlib_abspath = os.path.dirname(os.path.abspath(inspect.getfile(pvlib)))
#This is the only section of the code that was modified.
datapath = os.path.join(pvlib_abspath, 'data', 'TMY3Atlanta.csv')
tmy_data, meta = pvlib.tmy.readtmy3(datapath, coerce_year=2015)
tmy_data.index.name = 'Time'
# TMY data seems to be given as hourly data with time stamp at the end
# Shift the index 30 Minutes back for calculation of sun positions
tmy_data = tmy_data.shift(freq='-30Min')['2015']
print(tmy_data.head())
Я бы ожидал, что каждый прочитанный файл tmy3 создаст свой собственный фрейм данных tmy_data. Пожалуйста, прокомментируйте, если вы хотите увидеть весь
Комментарии:
1. Вы пробовали читать непосредственно с веб-сайта NREL? У меня нет проблем с чтением файлов Houston (Bush Intercontinental), Atlanta и Baltimore непосредственно с веб-сайта. например
dataatl, metadataatl = pvlib.iotools.read_tmy3('https://rredc.nrel.gov/solar/old_data/nsrdb/1991-2005/data/tmy3/722190TYA.CSV', coerce_year=2015)
. Возможно, проблема между загрузкой и чтением.2. Привет, Уилл! Спасибо за быстрый ответ. Ваше предложение устранило проблему как для Атланты, так и для Хьюстона; однако теперь я получаю новую ошибку для Балтимора: «Ошибка значения: день находится вне диапазона для месяца». В настоящее время я просматриваю веб-сайт, чтобы узнать, сталкивался ли кто-нибудь еще с этой ошибкой.