|
|
from ocf_data_sampler.select.location import Location |
|
|
from pvnet.utils import SiteLocationLookup |
|
|
import xarray as xr |
|
|
import pytest |
|
|
|
|
|
|
|
|
@pytest.mark.parametrize( |
|
|
"lookup_site_id, expected_x, expected_y, expected_id", |
|
|
[ |
|
|
(1, -1.99106, 48.709865, 1), |
|
|
(0, 0.30693, 51.509865, 0), |
|
|
(2, -1.56106, 56.203865, 2), |
|
|
], |
|
|
) |
|
|
def test_site_location_lookup(lookup_site_id, expected_x, expected_y, expected_id): |
|
|
|
|
|
site_ids = [0, 1, 2] |
|
|
longs = [0.30693, -1.99106, -1.56106] |
|
|
lats = [51.509865, 48.709865, 56.203865] |
|
|
da_long = xr.DataArray( |
|
|
data=longs, |
|
|
dims="pv_system_id", |
|
|
coords=dict(site_id=(["pv_system_id"], site_ids), long=(["pv_system_id"], longs)), |
|
|
) |
|
|
da_lat = xr.DataArray( |
|
|
data=lats, |
|
|
dims="pv_system_id", |
|
|
coords=dict(site_id=(["pv_system_id"], site_ids), long=(["pv_system_id"], lats)), |
|
|
) |
|
|
|
|
|
site_lookup = SiteLocationLookup(long=da_long, lat=da_lat) |
|
|
|
|
|
|
|
|
site_location: Location = site_lookup(lookup_site_id) |
|
|
|
|
|
assert site_location.x == expected_x |
|
|
assert site_location.y == expected_y |
|
|
assert site_location.id == expected_id |
|
|
|