diff --git a/fmi_weather_client/http.py b/fmi_weather_client/http.py index 81ddcf0..f33d67f 100644 --- a/fmi_weather_client/http.py +++ b/fmi_weather_client/http.py @@ -97,10 +97,16 @@ def _create_params(request_type: RequestType, 'service': 'WFS', 'version': '2.0.0', 'request': 'getFeature', - 'storedquery_id': 'fmi::forecast::hirlam::surface::point::multipointcoverage', + 'storedquery_id': 'fmi::forecast::harmonie::surface::point::multipointcoverage', 'timestep': timestep_minutes, 'starttime': start_time.isoformat(timespec='seconds'), - 'endtime': end_time.isoformat(timespec='seconds') + 'endtime': end_time.isoformat(timespec='seconds'), + 'parameters': ( + 'Temperature,DewPoint,Pressure,Humidity,WindDirection,WindSpeedMS,' + 'WindUMS,WindVMS,WindGust,WeatherSymbol3,TotalCloudCover,LowCloudCover,' + 'MediumCloudCover,HighCloudCover,Precipitation1h,RadiationGlobalAccumulation,' + 'RadiationNetSurfaceSWAccumulation,RadiationNetSurfaceLWAccumulation,GeopHeight,LandSeaMask' + ) } if lat is not None and lon is not None: diff --git a/fmi_weather_client/parsers/forecast.py b/fmi_weather_client/parsers/forecast.py index 6406248..e487700 100644 --- a/fmi_weather_client/parsers/forecast.py +++ b/fmi_weather_client/parsers/forecast.py @@ -112,6 +112,10 @@ def to_value(vals: Dict[str, float], variable_name: str, unit: str) -> Value: value = vals.get(variable_name, None) return Value(value, unit) + # Some fields were available in HIRLAM forecasts, but are not + # available in HARMONIE forecasts. These fields are kept here + # for backward compatibility. Value of those fields will + # always be None. return WeatherData( time=time, temperature=to_value(values, 'Temperature', '°C'), @@ -122,7 +126,7 @@ def to_value(vals: Dict[str, float], variable_name: str, unit: str) -> Value: wind_speed=to_value(values, 'WindSpeedMS', 'm/s'), wind_u_component=to_value(values, 'WindUMS', 'm/s'), wind_v_component=to_value(values, 'WindVMS', 'm/s'), - wind_max=to_value(values, 'MaximumWind', 'm/s'), + wind_max=to_value(values, 'MaximumWind', 'm/s'), # Not supported wind_gust=to_value(values, 'WindGust', 'm/s'), symbol=to_value(values, 'WeatherSymbol3', ''), cloud_cover=to_value(values, 'TotalCloudCover', '%'), @@ -132,11 +136,12 @@ def to_value(vals: Dict[str, float], variable_name: str, unit: str) -> Value: precipitation_amount=to_value(values, 'Precipitation1h', 'mm/h'), radiation_short_wave_acc=to_value(values, 'RadiationGlobalAccumulation', 'J/m²'), radiation_short_wave_surface_net_acc=to_value(values, 'RadiationNetSurfaceSWAccumulation', 'J/m²'), - radiation_long_wave_acc=to_value(values, 'RadiationLWAccumulation', 'J/m²'), + radiation_long_wave_acc=to_value(values, 'RadiationLWAccumulation', 'J/m²'), # Not supported radiation_long_wave_surface_net_acc=to_value(values, 'RadiationNetSurfaceLWAccumulation', 'J/m²'), - radiation_short_wave_diff_surface_acc=to_value(values, 'RadiationDiffuseAccumulation', 'J/m²'), + radiation_short_wave_diff_surface_acc=to_value(values, 'RadiationDiffuseAccumulation', 'J/m²'), # Not supported geopotential_height=to_value(values, 'GeopHeight', 'm'), - land_sea_mask=to_value(values, 'LandSeaMask', '')) + land_sea_mask=to_value(values, 'LandSeaMask', '') # Not supported + ) def _float_or_none(value: Any) -> Optional[float]: diff --git a/setup.py b/setup.py index 810f314..f5e2ccf 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setuptools.setup( name="fmi-weather-client", - version="0.1.1", + version="0.1.2", author="Mika Hiltunen", author_email="saaste@gmail.com", description="Library for fetching weather information from Finnish Meteorological Institute (FMI)", diff --git a/test/test_data/corner_nan_response.xml b/test/test_data/corner_nan_response.xml index 296bb93..b2a3fd5 100644 --- a/test/test_data/corner_nan_response.xml +++ b/test/test_data/corner_nan_response.xml @@ -1,55 +1,55 @@ + http://inspire.ec.europa.eu/schemas/omso/3.0 https://inspire.ec.europa.eu/schemas/omso/3.0/SpecialisedObservations.xsd + http://inspire.ec.europa.eu/schemas/ompr/3.0 https://inspire.ec.europa.eu/schemas/ompr/3.0/Processes.xsd + http://xml.fmi.fi/namespace/om/atmosphericfeatures/1.1 https://xml.fmi.fi/schema/om/atmosphericfeatures/1.1/atmosphericfeatures.xsd"> - + - 2020-03-03T16:00:00Z - 2020-03-03T23:00:00Z + 2022-09-29T09:20:00Z + 2022-09-29T11:10:00Z - 2020-03-05T15:38:00Z + 2022-09-19T12:06:30Z - + - + - 2020-03-05T12:00:00Z + 2022-09-19T09:00:00Z - + @@ -70,7 +70,7 @@ - + Oulu 65.01236 25.46816 @@ -82,32 +82,40 @@ - + - 65.01236 25.46816 1583251200 - 65.01236 25.46816 1583254800 - 65.01236 25.46816 1583258400 - 65.01236 25.46816 1583262000 - 65.01236 25.46816 1583265600 - 65.01236 25.46816 1583269200 - 65.01236 25.46816 1583272800 - 65.01236 25.46816 1583276400 - + 65.01236 25.46816 1664443200 + 65.01236 25.46816 1664443800 + 65.01236 25.46816 1664444400 + 65.01236 25.46816 1664445000 + 65.01236 25.46816 1664445600 + 65.01236 25.46816 1664446200 + 65.01236 25.46816 1664446800 + 65.01236 25.46816 1664447400 + 65.01236 25.46816 1664448000 + 65.01236 25.46816 1664448600 + 65.01236 25.46816 1664449200 + 65.01236 25.46816 1664449800 + - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - + NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN + NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN + NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN + NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN + NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN + NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN + NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN + NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN + NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN + NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN + NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN + NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN + @@ -117,34 +125,31 @@ + - + - - - + - - - + - - - + + + - + \ No newline at end of file diff --git a/test/test_data/error_invalid_lat_lon_response.xml b/test/test_data/error_invalid_lat_lon_response.xml index 3beabeb..04a070f 100644 --- a/test/test_data/error_invalid_lat_lon_response.xml +++ b/test/test_data/error_invalid_lat_lon_response.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://www.opengis.net/ows/1.1 http://schemas.opengis.net/ows/1.1.0/owsExceptionReport.xsd" version="2.0.0" xml:lang="eng"> - [Runtime error] Invalid lon-lat given to WorldTimeZones::zone_name: 124.834,160.222 - URI: /wfs?endtime=2020-03-03T23%3A26%3A00Z&latlon=160.2224%2C124.83385&parameters=WeatherSymbol3&request=GetFeature&service=WFS&starttime=2020-03-03T15%3A26%3A00Z&storedquery_id=fmi%3A%3Aforecast%3A%3Ahirlam%3A%3Asurface%3A%3Apoint%3A%3Amultipointcoverage&timestep=60&version=2.0.0 + Invalid lon-lat given to WorldTimeZones::zone_name: 124.834,160.222 + URI: /wfs?endtime=2020-03-03T23%3A26%3A00Z&latlon=160.2224%2C124.83385&parameters=WeatherSymbol3&request=GetFeature&service=WFS&starttime=2020-03-03T15%3A26%3A00Z&storedquery_id=fmi%3A%3Aforecast%3A%3Aharmonie%3A%3Asurface%3A%3Apoint%3A%3Amultipointcoverage&timestep=60&version=2.0.0 diff --git a/test/test_data/error_no_data_available_response.xml b/test/test_data/error_no_data_available_response.xml index cf6ca1b..69598f8 100644 --- a/test/test_data/error_no_data_available_response.xml +++ b/test/test_data/error_no_data_available_response.xml @@ -5,6 +5,6 @@ version="2.0.0" xml:lang="eng"> No data available for '-43.3439,32.1254'! - URI: /wfs?endtime=2020-03-03T23%3A26%3A00Z&latlon=32.1254396%2C-43.3439002&request=GetFeature&service=WFS&starttime=2020-03-03T15%3A26%3A00Z&storedquery_id=fmi%3A%3Aforecast%3A%3Ahirlam%3A%3Asurface%3A%3Apoint%3A%3Amultipointcoverage&timestep=60&version=2.0.0 + URI: /wfs?endtime=2020-03-03T23%3A26%3A00Z&latlon=32.1254396%2C-43.3439002&request=GetFeature&service=WFS&starttime=2020-03-03T15%3A26%3A00Z&storedquery_id=fmi%3A%3Aforecast%3A%3Aharmonie%3A%3Asurface%3A%3Apoint%3A%3Amultipointcoverage&timestep=60&version=2.0.0 diff --git a/test/test_data/error_no_locations_response.xml b/test/test_data/error_no_locations_response.xml index 636ae40..7ab447d 100644 --- a/test/test_data/error_no_locations_response.xml +++ b/test/test_data/error_no_locations_response.xml @@ -5,6 +5,6 @@ version="2.0.0" xml:lang="eng"> No locations found for the place with the requested language! - URI: /wfs?endtime=2020-03-20T17%3A27%3A00Z&place=M%C3%A4kkyl%C3%A4%2CEspoosdf&request=GetFeature&service=WFS&starttime=2020-03-20T17%3A17%3A00Z&storedquery_id=fmi%3A%3Aforecast%3A%3Ahirlam%3A%3Asurface%3A%3Apoint%3A%3Amultipointcoverage&timestep=10&version=2.0.0 + URI: /wfs?endtime=2020-03-20T17%3A27%3A00Z&place=M%C3%A4kkyl%C3%A4%2CEspoosdf&request=GetFeature&service=WFS&starttime=2020-03-20T17%3A17%3A00Z&storedquery_id=fmi%3A%3Aforecast%3A%3Aharmonie%3A%3Asurface%3A%3Apoint%3A%3Amultipointcoverage&timestep=10&version=2.0.0 diff --git a/test/test_data/valid_coordinate_forecast_response.xml b/test/test_data/valid_coordinate_forecast_response.xml index b7648d5..cbb057d 100644 --- a/test/test_data/valid_coordinate_forecast_response.xml +++ b/test/test_data/valid_coordinate_forecast_response.xml @@ -1,55 +1,55 @@ + http://inspire.ec.europa.eu/schemas/omso/3.0 https://inspire.ec.europa.eu/schemas/omso/3.0/SpecialisedObservations.xsd + http://inspire.ec.europa.eu/schemas/ompr/3.0 https://inspire.ec.europa.eu/schemas/ompr/3.0/Processes.xsd + http://xml.fmi.fi/namespace/om/atmosphericfeatures/1.1 https://xml.fmi.fi/schema/om/atmosphericfeatures/1.1/atmosphericfeatures.xsd"> - + - 2020-02-16T00:00:00Z - 2020-02-21T12:00:00Z + 2022-09-19T09:20:00Z + 2022-09-19T11:10:00Z - 2020-02-16T09:18:36Z + 2022-09-19T12:06:30Z - + - + - 2020-02-16T06:00:00Z + 2022-09-19T09:00:00Z - + @@ -70,7 +70,7 @@ - + Sauoiva 67.58399 29.74273 @@ -82,40 +82,40 @@ - + - 67.58399 29.74273 1581811200 - 67.58399 29.74273 1581854400 - 67.58399 29.74273 1581897600 - 67.58399 29.74273 1581940800 - 67.58399 29.74273 1581984000 - 67.58399 29.74273 1582027200 - 67.58399 29.74273 1582070400 - 67.58399 29.74273 1582113600 - 67.58399 29.74273 1582156800 - 67.58399 29.74273 1582200000 - 67.58399 29.74273 1582243200 - 67.58399 29.74273 1582286400 - + 67.58399 29.74273 1663579200 + 67.58399 29.74273 1663579800 + 67.58399 29.74273 1663580400 + 67.58399 29.74273 1663581000 + 67.58399 29.74273 1663581600 + 67.58399 29.74273 1663582200 + 67.58399 29.74273 1663582800 + 67.58399 29.74273 1663583400 + 67.58399 29.74273 1663584000 + 67.58399 29.74273 1663584600 + 67.58399 29.74273 1663585200 + 67.58399 29.74273 1663585800 + - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - 366.05 -2.26 991.73 95.29 168.0 2.79 -1.82 2.13 2.85 8.67 -3.17 100.0 3.0 51.6 98.6 99.9 0.0 0.1 366735.53 6782847.0 -88927.28 298585.88 367741.0 1.0 - 366.05 0.41 968.58 94.54 159.0 3.31 -2.45 2.24 4.05 10.21 -0.66 100.0 52.0 99.9 95.4 0.0 0.7 5.8 495136.53 20289592.0 -573642.75 402490.69 495136.53 1.0 - 366.05 0.53 958.85 97.0 253.0 3.74 2.81 2.46 4.61 11.25 -0.06 100.0 52.0 99.9 99.9 99.9 0.5 14.9 756807.88 34095544.0 -1034228.44 612327.75 760818.44 1.0 - 366.05 1.0 968.75 97.19 253.0 4.0 2.94 2.72 4.47 11.97 0.45 100.0 51.0 94.9 82.4 98.8 0.1 16.9 822343.88 47316492.0 -2048792.13 661479.75 818162.44 1.0 - 366.05 0.37 973.67 97.0 271.0 1.35 1.24 0.5 3.14 4.17 -0.22 100.0 51.0 99.9 39.2 99.9 0.1 20.9 1222015.13 61191096.0 -2394977.0 986206.31 1216650.75 1.0 - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - + 1005.8 328.4 6.8 6.3 97.6 10.0 4.57 -0.8 -4.49 0.04 100.0 100.0 24.7 0.4 NaN 41438.7 -7447.8 37637.9 NaN 2870.4 6.1 + 1005.8 328.4 6.8 6.3 97.7 10.0 4.62 -0.78 -4.54 0.05 100.0 100.0 22.5 0.6 34.5 62158.1 -11171.7 56456.8 0.0 2827.6 7.0 + 1005.8 328.4 6.8 6.3 97.7 10.0 4.66 -0.77 -4.59 0.07 100.0 100.0 20.4 0.8 34.5 82877.5 -14895.6 75275.7 0.0 2784.9 7.8 + 1005.9 328.4 6.7 6.3 97.8 10.0 4.71 -0.75 -4.65 0.09 100.0 100.0 18.3 1.0 34.5 103596.8 -18619.5 94094.6 0.0 2742.1 8.6 + 1005.9 328.4 6.7 6.3 97.9 8.0 4.76 -0.73 -4.7 0.11 100.0 100.0 16.1 1.2 34.5 124316.2 -22343.5 112913.5 0.0 2699.3 9.5 + 1005.9 328.4 6.7 6.3 97.9 8.0 4.76 -0.72 -4.71 0.12 100.0 100.0 14.1 1.0 33.1 139991.2 -24966.5 127174.1 0.0 2652.3 9.5 + 1005.9 328.4 6.7 6.3 98.0 8.0 4.76 -0.71 -4.71 0.14 100.0 100.0 12.0 0.8 31.7 155666.1 -27589.5 141434.7 0.0 2605.3 9.5 + 1006.0 328.4 6.7 6.3 98.1 8.0 4.76 -0.7 -4.72 0.16 100.0 100.0 10.0 0.6 30.3 171341.1 -30212.5 155695.3 0.0 2558.3 9.5 + 1006.0 328.4 6.6 6.3 98.2 8.0 4.76 -0.69 -4.72 0.18 100.0 100.0 7.9 0.4 28.9 187016.1 -32835.6 169955.9 0.0 2511.4 9.5 + 1006.0 328.4 6.6 6.3 98.3 8.0 4.76 -0.68 -4.73 0.19 100.0 100.0 5.9 0.2 27.5 202691.1 -35458.6 184216.5 0.0 2464.4 9.5 + 1006.0 328.4 6.6 6.3 98.4 7.0 4.77 -0.67 -4.73 0.21 100.0 100.0 3.8 0.0 26.1 218366.1 -38081.6 198477.1 0.0 2417.4 9.5 + 1006.1 328.4 6.6 6.3 98.3 7.0 4.79 -0.61 -4.77 0.22 100.0 100.0 5.2 0.0 25.0 229957.2 -40491.8 209049.8 0.0 2439.0 9.6 + @@ -125,34 +125,31 @@ + - + - - - + - - - + - - - + + + - + \ No newline at end of file diff --git a/test/test_data/valid_place_forecast_response.xml b/test/test_data/valid_place_forecast_response.xml index 12ee443..1935a06 100644 --- a/test/test_data/valid_place_forecast_response.xml +++ b/test/test_data/valid_place_forecast_response.xml @@ -1,55 +1,55 @@ + http://inspire.ec.europa.eu/schemas/omso/3.0 https://inspire.ec.europa.eu/schemas/omso/3.0/SpecialisedObservations.xsd + http://inspire.ec.europa.eu/schemas/ompr/3.0 https://inspire.ec.europa.eu/schemas/ompr/3.0/Processes.xsd + http://xml.fmi.fi/namespace/om/atmosphericfeatures/1.1 https://xml.fmi.fi/schema/om/atmosphericfeatures/1.1/atmosphericfeatures.xsd"> - + - 2020-02-16T00:00:00Z - 2020-02-21T12:00:00Z + 2022-09-19T09:20:00Z + 2022-09-19T11:10:00Z - 2020-02-16T09:18:36Z + 2022-09-19T12:06:30Z - + - + - 2020-02-16T06:00:00Z + 2022-09-19T09:00:00Z - + @@ -70,7 +70,7 @@ - + Iisalmi 63.55915 27.19067 @@ -82,40 +82,40 @@ - + - 63.55915 27.19067 1581811200 - 63.55915 27.19067 1581854400 - 63.55915 27.19067 1581897600 - 63.55915 27.19067 1581940800 - 63.55915 27.19067 1581984000 - 63.55915 27.19067 1582027200 - 63.55915 27.19067 1582070400 - 63.55915 27.19067 1582113600 - 63.55915 27.19067 1582156800 - 63.55915 27.19067 1582200000 - 63.55915 27.19067 1582243200 - 63.55915 27.19067 1582286400 - + 63.55915 27.19067 1663579200 + 63.55915 27.19067 1663579800 + 63.55915 27.19067 1663580400 + 63.55915 27.19067 1663581000 + 63.55915 27.19067 1663581600 + 63.55915 27.19067 1663582200 + 63.55915 27.19067 1663582800 + 63.55915 27.19067 1663583400 + 63.55915 27.19067 1663584000 + 63.55915 27.19067 1663584600 + 63.55915 27.19067 1663585200 + 63.55915 27.19067 1663585800 + - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - 105.03 1.21 992.1 96.49 166.0 5.31 -3.17 4.27 5.38 13.0 0.52 100.0 82.0 99.6 99.9 93.8 1.0 2.2 566599.88 7066252.5 -79389.69 373366.66 565823.06 0.75 - 105.03 3.71 974.67 95.2 202.0 6.09 -0.34 6.09 6.39 14.83 2.75 100.0 31.0 99.9 1.6 99.9 0.2 9.0 659396.75 21453204.0 52618.24 432397.75 659396.75 0.75 - 105.03 3.52 975.22 68.13 253.0 5.35 4.07 3.49 5.4 13.29 -3.82 82.02 2.0 80.7 19.1 16.2 0.0 9.3 3073639.25 34619964.0 -1171872.13 2058793.0 2891207.5 0.75 - 105.03 1.81 982.12 84.07 207.0 4.09 0.23 4.1 5.08 10.18 -1.52 93.51 3.0 77.9 3.8 0.0 0.0 9.4 3955907.25 46463388.0 -3631405.0 2639325.0 3759898.75 0.75 - 105.03 2.34 976.49 96.31 202.0 3.52 -0.13 3.52 4.23 8.85 1.61 100.0 31.0 99.9 96.6 29.3 0.3 11.0 4564224.0 60773616.0 -3637929.75 3056518.25 4369864.0 0.75 - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN - + 12.3 7.2 1000.7 78.1 22.0 3.01 -0.84 -2.86 3.9 NaN 90.5 90.5 3.0 0.0 NaN 190057.3 173938.6 -52007.0 90.2 0.5 + 12.3 7.4 1000.6 78.7 22.0 3.06 -0.77 -2.92 4.4 NaN 92.9 92.9 4.5 0.0 NaN 285085.9 260907.9 -78010.5 90.2 0.5 + 12.2 7.5 1000.5 79.4 22.0 3.1 -0.7 -2.98 4.9 NaN 95.2 95.2 6.0 0.0 NaN 380114.5 347877.2 -104014.0 90.2 0.5 + 12.2 7.6 1000.4 80.1 22.0 3.14 -0.63 -3.04 5.4 NaN 97.6 97.6 7.5 0.0 NaN 475143.1 434846.5 -130017.5 90.2 0.5 + 12.2 7.7 1000.3 80.7 13.0 3.18 -0.56 -3.1 5.8 31.0 100.0 100.0 9.0 0.0 0.0 570171.8 521815.8 -156021.0 90.2 0.5 + 12.1 7.9 1000.3 81.4 13.0 3.45 -0.63 -3.36 6.2 31.0 100.0 100.0 21.5 0.0 0.0 645831.4 591147.1 -174722.9 90.2 0.5 + 12.1 8.0 1000.4 82.0 13.0 3.71 -0.7 -3.62 6.6 31.0 100.0 100.0 33.9 0.0 0.0 721491.0 660478.4 -193424.7 90.2 0.5 + 12.1 8.2 1000.4 82.6 13.0 3.97 -0.76 -3.88 7.0 31.0 100.0 100.0 46.4 0.0 0.0 797150.6 729809.8 -212126.6 90.2 0.5 + 12.1 8.3 1000.5 83.3 13.0 4.24 -0.83 -4.14 7.4 31.0 100.0 100.0 58.8 0.0 0.0 872810.1 799141.1 -230828.5 90.2 0.5 + 12.1 8.5 1000.5 83.9 13.0 4.5 -0.9 -4.4 7.8 31.0 100.0 100.0 71.3 0.0 0.0 948469.8 868472.4 -249530.3 90.2 0.5 + 12.0 8.6 1000.5 84.6 11.0 4.77 -0.96 -4.67 8.2 31.0 100.0 100.0 83.7 0.0 0.1 1024129.3 937803.8 -268232.2 90.2 0.5 + 12.0 8.6 1000.6 84.9 11.0 4.64 -0.95 -4.54 8.3 31.0 98.9 97.3 79.6 0.0 0.1 1095757.4 1003347.6 -294629.5 90.2 0.5 + @@ -125,29 +125,25 @@ - + - - - + - - - - + + @@ -155,4 +151,4 @@ - + \ No newline at end of file diff --git a/test/test_init.py b/test/test_init.py index 59d0814..371d009 100644 --- a/test/test_init.py +++ b/test/test_init.py @@ -95,33 +95,54 @@ def test_server_error_response(self, mock_get): def assert_name_weather(self, weather): self.assertEqual(weather.place, 'Iisalmi') - self.assertEqual(weather.data.time.timestamp(), 1582027200.0) - self.assertEqual(weather.data.temperature.value, 2.34) - self.assertEqual(weather.data.wind_speed.value, 3.52) + self.assertEqual(weather.data.time.timestamp(), 1663585800.0) + self.assertEqual(weather.data.temperature.value, 12.0) + self.assertEqual(weather.data.dew_point.value, 8.6) + self.assertEqual(weather.data.pressure.value, 1000.6) + self.assertEqual(weather.data.humidity.value, 84.9) + self.assertEqual(weather.data.wind_direction.value, 11.0) + self.assertEqual(weather.data.wind_speed.value, 4.64) + self.assertEqual(weather.data.wind_u_component.value, -0.95) + self.assertEqual(weather.data.wind_v_component.value, -4.54) + self.assertEqual(weather.data.wind_max.value, None) + self.assertEqual(weather.data.wind_gust.value, 8.3) + self.assertEqual(weather.data.symbol.value, 31.0) + self.assertEqual(weather.data.cloud_cover.value, 98.9) + self.assertEqual(weather.data.cloud_low_cover.value, 97.3) + self.assertEqual(weather.data.cloud_mid_cover.value, 79.6) + self.assertEqual(weather.data.cloud_high_cover.value, 0.0) + self.assertEqual(weather.data.precipitation_amount.value, 0.1) + self.assertEqual(weather.data.radiation_short_wave_acc.value, 1095757.4) + self.assertEqual(weather.data.radiation_short_wave_surface_net_acc.value, 1003347.6) + self.assertEqual(weather.data.radiation_long_wave_acc.value, None) + self.assertEqual(weather.data.radiation_long_wave_surface_net_acc.value, -294629.5) + self.assertEqual(weather.data.radiation_short_wave_diff_surface_acc.value, None) + self.assertEqual(weather.data.geopotential_height.value, 90.2) + self.assertEqual(weather.data.land_sea_mask.value, 0.5) def assert_coordinate_weather(self, weather): self.assertEqual(weather.place, 'Sauoiva') - self.assertEqual(weather.data.time.timestamp(), 1582027200.0) - self.assertEqual(weather.data.temperature.value, 0.37) - self.assertEqual(weather.data.wind_speed.value, 1.35) + self.assertEqual(weather.data.time.timestamp(), 1663585800.0) + self.assertEqual(weather.data.temperature.value, 6.6) + self.assertEqual(weather.data.wind_speed.value, 4.79) def assert_name_forecast(self, forecast): self.assertEqual(forecast.place, 'Iisalmi') self.assertEqual(forecast.lat, 27.19067) self.assertEqual(forecast.lon, 63.55915) - self.assertEqual(len(forecast.forecasts), 5) - self.assertEqual(forecast.forecasts[0].temperature.value, 1.21) - self.assertEqual(forecast.forecasts[1].pressure.value, 974.67) - self.assertEqual(forecast.forecasts[4].humidity.value, 96.31) + self.assertEqual(len(forecast.forecasts), 12) + self.assertEqual(forecast.forecasts[0].temperature.value, 12.3) + self.assertEqual(forecast.forecasts[1].pressure.value, 1000.6) + self.assertEqual(forecast.forecasts[4].humidity.value, 80.7) def assert_coordinate_forecast(self, forecast): self.assertEqual(forecast.place, 'Sauoiva') self.assertEqual(forecast.lat, 29.74273) self.assertEqual(forecast.lon, 67.58399) - self.assertEqual(len(forecast.forecasts), 5) - self.assertEqual(forecast.forecasts[0].temperature.value, -2.26) - self.assertEqual(forecast.forecasts[1].pressure.value, 968.58) - self.assertEqual(forecast.forecasts[4].humidity.value, 97.0) + self.assertEqual(len(forecast.forecasts), 12) + self.assertEqual(forecast.forecasts[0].temperature.value, 6.8) + self.assertEqual(forecast.forecasts[1].pressure.value, 1005.8) + self.assertEqual(forecast.forecasts[4].humidity.value, 97.9) if __name__ == '__main__':