| 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 |
|
|