示例#1
0
def test_get_pvgis_tmy_kwargs(userhorizon_expected):
    _, _, inputs, _ = get_pvgis_tmy(45, 8, usehorizon=False)
    assert inputs['meteo_data']['use_horizon'] is False
    data, _, _, _ = get_pvgis_tmy(45,
                                  8,
                                  userhorizon=[0, 10, 20, 30, 40, 15, 25, 5])
    assert np.allclose(data['G(h)'], userhorizon_expected['G(h)'].values)
    assert np.allclose(data['Gb(n)'], userhorizon_expected['Gb(n)'].values)
    assert np.allclose(data['Gd(h)'], userhorizon_expected['Gd(h)'].values)
    _, _, inputs, _ = get_pvgis_tmy(45, 8, startyear=2005)
    assert inputs['meteo_data']['year_min'] == 2005
    _, _, inputs, _ = get_pvgis_tmy(45, 8, endyear=2016)
    assert inputs['meteo_data']['year_max'] == 2016
示例#2
0
def test_get_pvgis_tmy_epw(expected, epw_meta):
    data, _, _, meta = get_pvgis_tmy(45, 8, outputformat='epw')
    assert np.allclose(data.ghi, expected['G(h)'])
    assert np.allclose(data.dni, expected['Gb(n)'])
    assert np.allclose(data.dhi, expected['Gd(h)'])
    assert np.allclose(data.temp_air, expected['T2m'])
    assert meta == epw_meta
示例#3
0
def test_get_pvgis_tmy_csv(expected, month_year_expected, inputs_expected,
                           meta_expected, csv_meta):
    data, months_selected, inputs, meta = get_pvgis_tmy(
        45, 8, outputformat='csv')
    # check each column of output separately
    for outvar in meta_expected['outputs']['tmy_hourly']['variables'].keys():
        assert np.allclose(data[outvar], expected[outvar])
    assert np.allclose(
        [_['month'] for _ in months_selected], np.arange(1, 13, 1))
    assert np.allclose(
        [_['year'] for _ in months_selected], month_year_expected)
    assert inputs['latitude'] == inputs_expected['location']['latitude']
    assert inputs['longitude'] == inputs_expected['location']['longitude']
    assert inputs['elevation'] == inputs_expected['location']['elevation']
    for meta_value in meta:
        if not meta_value:
            continue
        if meta_value == 'PVGIS (c) European Communities, 2001-2020':
            continue
        assert meta_value in csv_meta
示例#4
0
def get_from_pvgis(lat, lon, tz):
    """Return the pvgis data"""

    # PVGIS information
    info = get_pvgis_tmy(lat, lon)

    # Altitude
    alt = info[2]['location']['elevation']

    # Get th principal information
    df = info[0]

    # Convert UTC to time zone
    df.index = df.index.tz_convert(tz)
    df.index.name = f'Time {tz}'

    # Get the solar position
    solpos = get_solarposition(time=df.index,
                               latitude=lat,
                               longitude=lon,
                               altitude=alt,
                               pressure=df.SP,
                               temperature=df.T2m)

    # Create the schema
    data = df
    data = data.drop(df.columns, axis=1)
    data['HourOfDay'] = df.index.hour
    data['Zenith'] = solpos['zenith']
    data['Temperature'] = df.T2m
    data['Humidity'] = df.RH
    data['WindSpeed'] = df.WS10m
    data['WindDirection'] = df.WD10m
    data['PrecipitableWater'] = gueymard94_pw(df.T2m, df.RH)
    data['Pressure'] = df.SP
    data['ExtraRadiation'] = get_extra_radiation(df.index)
    data['GHI'] = df['G(h)']

    return data
示例#5
0
def test_get_pvgis_tmy(expected, month_year_expected, inputs_expected,
                       meta_expected):
    data, months_selected, inputs, meta = get_pvgis_tmy(45, 8)
    # check each column of output separately
    for outvar in meta_expected['outputs']['tmy_hourly']['variables'].keys():
        assert np.allclose(data[outvar], expected[outvar])
    assert np.allclose(
        [_['month'] for _ in months_selected], np.arange(1, 13, 1))
    assert np.allclose(
        [_['year'] for _ in months_selected], month_year_expected)
    inputs_loc = inputs['location']
    assert inputs_loc['latitude'] == inputs_expected['location']['latitude']
    assert inputs_loc['longitude'] == inputs_expected['location']['longitude']
    assert inputs_loc['elevation'] == inputs_expected['location']['elevation']
    inputs_met_data = inputs['meteo_data']
    expected_met_data = inputs_expected['meteo_data']
    assert (
        inputs_met_data['radiation_db'] == expected_met_data['radiation_db'])
    assert inputs_met_data['year_min'] == expected_met_data['year_min']
    assert inputs_met_data['year_max'] == expected_met_data['year_max']
    assert inputs_met_data['use_horizon'] == expected_met_data['use_horizon']
    assert inputs_met_data['horizon_db'] == expected_met_data['horizon_db']
    assert meta == meta_expected
示例#6
0
def test_get_pvgis_tmy(expected, month_year_expected, inputs_expected,
                       meta_expected):
    pvgis_data = get_pvgis_tmy(45, 8)
    _compare_pvgis_tmy_json(expected, month_year_expected, inputs_expected,
                            meta_expected, pvgis_data)
示例#7
0
def test_get_pvgis_tmy_error():
    err_msg = 'outputformat: Incorrect value.'
    with pytest.raises(requests.HTTPError, match=err_msg):
        get_pvgis_tmy(45, 8, outputformat='bad')
    with pytest.raises(requests.HTTPError, match='404 Client Error'):
        get_pvgis_tmy(45, 8, url='https://re.jrc.ec.europa.eu/')
示例#8
0
def test_get_pvgis_tmy_epw(expected, epw_meta):
    pvgis_data = get_pvgis_tmy(45, 8, outputformat='epw')
    _compare_pvgis_tmy_epw(expected, epw_meta, pvgis_data)
示例#9
0
def test_get_pvgis_tmy_csv(expected, month_year_expected, inputs_expected,
                           meta_expected, csv_meta):
    pvgis_data = get_pvgis_tmy(45, 8, outputformat='csv')
    _compare_pvgis_tmy_csv(expected, month_year_expected, inputs_expected,
                           meta_expected, csv_meta, pvgis_data)
示例#10
0
def test_get_pvgis_tmy_basic(expected, meta_expected):
    pvgis_data = get_pvgis_tmy(45, 8, outputformat='basic')
    _compare_pvgis_tmy_basic(expected, meta_expected, pvgis_data)
示例#11
0
def test_get_pvgis_tmy_basic(expected, meta_expected):
    data, _, _, _ = get_pvgis_tmy(45, 8, outputformat='basic')
    # check each column of output separately
    for outvar in meta_expected['outputs']['tmy_hourly']['variables'].keys():
        assert np.allclose(data[outvar], expected[outvar])
示例#12
0
def test_get_pvgis_map_variables(pvgis_tmy_mapped_columns):
    actual, _, _, _ = get_pvgis_tmy(45, 8, map_variables=True)
    assert all([c in pvgis_tmy_mapped_columns for c in actual.columns])
示例#13
0
def test_get_pvgis_tmy_epw(expected, epw_meta):
    pvgis_data = get_pvgis_tmy(45, 8, outputformat='epw', map_variables=False)
    _compare_pvgis_tmy_epw(expected, epw_meta, pvgis_data)
示例#14
0
def test_get_pvgis_tmy_basic(expected, meta_expected):
    pvgis_data = get_pvgis_tmy(45, 8, outputformat='basic',
                               map_variables=False)
    _compare_pvgis_tmy_basic(expected, meta_expected, pvgis_data)
示例#15
0
def test_get_pvgis_tmy(expected, month_year_expected, inputs_expected,
                       meta_expected):
    pvgis_data = get_pvgis_tmy(45, 8, map_variables=False)
    _compare_pvgis_tmy_json(expected, month_year_expected, inputs_expected,
                            meta_expected, pvgis_data)
示例#16
0
def test_pvgis_tmy_variable_map_deprecating_warning_0_10():
    with pytest.warns(pvlibDeprecationWarning, match='names will be renamed'):
        _ = get_pvgis_tmy(45, 8)
    with pytest.warns(pvlibDeprecationWarning, match='names will be renamed'):
        fn = DATA_DIR / 'tmy_45.000_8.000_2005_2016.epw'
        _ = read_pvgis_tmy(fn)