大家好。我正在尝试使用 python 通过 API 访问 pvwatts,但是错误状态代码 422 总是出现。我检查了参数,但什么也没发现 - 我还尝试了适合我所在位置的网站版本,它有效。您能帮助我并教我解决这个问题吗?我仍然是 python 的新手,但是我的最终项目需要这个。
我曾尝试填充更多参数,甚至尝试使用其他代码,但它不起作用 - 有时它会变得更糟。我尝试过的代码是:
import requests
# Define the PVWatts API URL
url = 'https://developer.nrel.gov/api/pvwatts/v8.json'
# Define your API key
api_key = 'xoxoxoxoxoxoxoxo'
# Define the parameters for the PVWatts API request
params = {
'format': 'json',
'api_key': api_key,
'system_capacity': 12, # kW
'module_type': 0, # 0 for standard, 1 for premium
'losses': 14, # percentage
'array_type': 1, # 0 for fixed open rack, 1 for fixed roof mount, 2 for 1-axis tracking, 3 for 1-axis backtracking, 4 for 2-axis tracking
'tilt': 15, # degrees
'azimuth': 0, # degrees
'address': 'Cakung, Bekasi', # location address
'lat': -6.1833, # latitude
'lon': 106.9499, # longitude
'dataset': 'nsrdb', # climate dataset
'timeframe': 'hourly', # 'hourly' or 'monthly'
'dc_ac_ratio': 1.2, / # DC/AC ratio
'gcr': 0.4 # ground coverage ratio
}
# Send the API request
response = requests.get(url, params=params)
# Check if the request was successful (HTTP status code 200)
if response.status_code == 200:
data = response.json()
# Process the response data as per your requirements
# For example, you can access the estimated energy production
ac_annual = data['outputs']['ac_annual']
print(f"Estimated annual AC energy production: {ac_annual} kWh")
else:
print(f"Request failed with status code {response.status_code}")
代码的最终结果是显示当前模型的图表 - 但是,我想从头开始学习它,所以我尝试不使用现有的代码 - 也因为我的教授想要发布它,我可以不要不加修改地使用现有代码。
可以在
https://developer.nrel.gov/docs/solar/pvwatts/v8/找到使用
DEMO_KEY
的工作示例
删除地址似乎可以做到这一点,因为您有
lat
和 lon
我相信该地址必须与现有的气象站相匹配,并且它具有纬度、经度的优先级,如果它错过了,你会得到 422
params = {
"api_key": 'DEMO_KEY',
"azimuth":0,
"lat": -6.1833, # latitude
"lon": 106.9499, # longitude
"system_capacity":4,
"losses":14,
"array_type":1,
"module_type":0,
"gcr":0.4,
"dc_ac_ratio":1.2,
"inv_eff":96.0,
"radius":0,
"dataset": "nsrdb",
"tilt": 10
}
给出:
Estimated annual AC energy production: 5626.015769442323 kWh