diff --git a/bundles/org.openhab.binding.smhi/README.md b/bundles/org.openhab.binding.smhi/README.md index 5eb57073f..b9bd14b36 100644 --- a/bundles/org.openhab.binding.smhi/README.md +++ b/bundles/org.openhab.binding.smhi/README.md @@ -27,18 +27,24 @@ You can also choose for which hours and which days you would like to get forecas ## Channels -The channels are the same for all forecasts: +The channels are the same for all forecasts, but the daily forecast provides some additional aggregated values. +For the other daily forecast channels, the values are for 12:00 UTC. #### Basic channels | channel | type | description | |----------|--------|------------------------------| | Temperature | Number:Temperature | Temperature in Celsius | +| Max Temperature | Number:Temperature | Highest temperature of the day (daily forecast only) | +| Min Temperature | Number:Temperature | Lowest temperature of the day (daily forecast only) | | Wind direction | Number:Angle | Wind direction in degrees | | Wind Speed | Number:Speed | Wind speed in m/s | +| Max Wind Speed | Number:Speed | Highest wind speed of the day (daily forecast only) | +| Min Wind Speed | Number:Speed | Lowest wind speed of the day (daily forecast only) | | Wind gust speed | Number:Speed | Wind gust speed in m/s | | Minimum precipitation | Number:Speed | Minimum precipitation intensity in mm/h | | Maximum precipitation | Number:Speed | Maximum precipitation intensity in mm/h | +| Total precipitation | Number:Length | Total amount of precipitation during the day, in mm (daily forecast only) | | Precipitation category* | Number | Type of precipitation | | Air pressure | Number:Pressure | Air pressure in hPa | | Relative humidity | Number:Dimensionless | Relative humidity in percent | diff --git a/bundles/org.openhab.binding.smhi/src/main/java/org/openhab/binding/smhi/internal/Forecast.java b/bundles/org.openhab.binding.smhi/src/main/java/org/openhab/binding/smhi/internal/Forecast.java index 6a77c15ac..1b849432f 100644 --- a/bundles/org.openhab.binding.smhi/src/main/java/org/openhab/binding/smhi/internal/Forecast.java +++ b/bundles/org.openhab.binding.smhi/src/main/java/org/openhab/binding/smhi/internal/Forecast.java @@ -16,9 +16,9 @@ package org.openhab.binding.smhi.internal; import java.math.BigDecimal; import java.time.ZonedDateTime; import java.util.Map; +import java.util.Optional; import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jdt.annotation.Nullable; /** * A class containing a forecast for a specific point in time. @@ -43,8 +43,8 @@ public class Forecast implements Comparable { return parameters; } - public @Nullable BigDecimal getParameter(String parameter) { - return parameters.get(parameter); + public Optional getParameter(String parameter) { + return Optional.ofNullable(parameters.get(parameter)); } @Override diff --git a/bundles/org.openhab.binding.smhi/src/main/java/org/openhab/binding/smhi/internal/ForecastAggregator.java b/bundles/org.openhab.binding.smhi/src/main/java/org/openhab/binding/smhi/internal/ForecastAggregator.java new file mode 100644 index 000000000..da703bfe5 --- /dev/null +++ b/bundles/org.openhab.binding.smhi/src/main/java/org/openhab/binding/smhi/internal/ForecastAggregator.java @@ -0,0 +1,47 @@ +/** + * Copyright (c) 2010-2020 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ + +package org.openhab.binding.smhi.internal; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.List; +import java.util.Optional; + +import org.eclipse.jdt.annotation.NonNullByDefault; + +/** + * @author Anders Alfredsson - Initial contribution + */ +@NonNullByDefault +public class ForecastAggregator { + public static Optional max(TimeSeries timeSeries, int dayOffset, String parameter) { + List dayForecasts = timeSeries.getDay(dayOffset); + return dayForecasts.stream().map(forecast -> forecast.getParameter(parameter)).filter(Optional::isPresent) + .map(Optional::get).max(BigDecimal::compareTo); + } + + public static Optional min(TimeSeries timeSeries, int dayOffset, String parameter) { + List dayForecasts = timeSeries.getDay(dayOffset); + return dayForecasts.stream().map(forecast -> forecast.getParameter(parameter)).filter(Optional::isPresent) + .map(Optional::get).min(BigDecimal::compareTo); + } + + public static Optional total(TimeSeries timeSeries, int dayOffset, String parameter) { + List dayForecasts = timeSeries.getDay(dayOffset); + BigDecimal sum = dayForecasts.stream().map(forecast -> forecast.getParameter(parameter)) + .filter(Optional::isPresent).map(Optional::get).reduce(BigDecimal::add).orElse(BigDecimal.ZERO); + BigDecimal mean = sum.divide(BigDecimal.valueOf(dayForecasts.size()), RoundingMode.HALF_UP); + return Optional.of(mean.multiply(BigDecimal.valueOf(24))); + } +} diff --git a/bundles/org.openhab.binding.smhi/src/main/java/org/openhab/binding/smhi/internal/SmhiBindingConstants.java b/bundles/org.openhab.binding.smhi/src/main/java/org/openhab/binding/smhi/internal/SmhiBindingConstants.java index 722dc71db..44be5bf94 100644 --- a/bundles/org.openhab.binding.smhi/src/main/java/org/openhab/binding/smhi/internal/SmhiBindingConstants.java +++ b/bundles/org.openhab.binding.smhi/src/main/java/org/openhab/binding/smhi/internal/SmhiBindingConstants.java @@ -13,10 +13,7 @@ package org.openhab.binding.smhi.internal; import java.math.BigDecimal; -import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.core.thing.ThingTypeUID; @@ -56,13 +53,22 @@ public class SmhiBindingConstants { public static final String PRECIPITATION_CATEGORY = "pcat"; public static final String WEATHER_SYMBOL = "wsymb2"; - public static final List CHANNEL_IDS = Collections - .unmodifiableList(Stream - .of(PRESSURE, TEMPERATURE, VISIBILITY, WIND_DIRECTION, WIND_SPEED, RELATIVE_HUMIDITY, - THUNDER_PROBABILITY, TOTAL_CLOUD_COVER, LOW_CLOUD_COVER, MEDIUM_CLOUD_COVER, - HIGH_CLOUD_COVER, GUST, PRECIPITATION_MIN, PRECIPITATION_MAX, PRECIPITATION_MEAN, - PRECIPITATION_MEDIAN, PERCENT_FROZEN, PRECIPITATION_CATEGORY, WEATHER_SYMBOL) - .collect(Collectors.toList())); + public static final String TEMPERATURE_MAX = "tmax"; + public static final String TEMPERATURE_MIN = "tmin"; + public static final String WIND_MAX = "wsmax"; + public static final String WIND_MIN = "wsmin"; + public static final String PRECIPITATION_TOTAL = "ptotal"; + + public static final List HOURLY_CHANNELS = List.of(PRESSURE, TEMPERATURE, VISIBILITY, WIND_DIRECTION, + WIND_SPEED, RELATIVE_HUMIDITY, THUNDER_PROBABILITY, TOTAL_CLOUD_COVER, LOW_CLOUD_COVER, MEDIUM_CLOUD_COVER, + HIGH_CLOUD_COVER, GUST, PRECIPITATION_MIN, PRECIPITATION_MAX, PRECIPITATION_MEAN, PRECIPITATION_MEDIAN, + PERCENT_FROZEN, PRECIPITATION_CATEGORY, WEATHER_SYMBOL); + + public static final List DAILY_CHANNELS = List.of(PRESSURE, TEMPERATURE, TEMPERATURE_MAX, TEMPERATURE_MIN, + VISIBILITY, WIND_DIRECTION, WIND_SPEED, WIND_MAX, WIND_MIN, RELATIVE_HUMIDITY, THUNDER_PROBABILITY, + TOTAL_CLOUD_COVER, LOW_CLOUD_COVER, MEDIUM_CLOUD_COVER, HIGH_CLOUD_COVER, GUST, PRECIPITATION_MIN, + PRECIPITATION_MAX, PRECIPITATION_TOTAL, PRECIPITATION_MEAN, PRECIPITATION_MEDIAN, PERCENT_FROZEN, + PRECIPITATION_CATEGORY, WEATHER_SYMBOL); public static final String BASE_URL = "https://opendata-download-metfcst.smhi.se/api/category/pmp3g/version/2/"; public static final String APPROVED_TIME_URL = BASE_URL + "approvedtime.json"; diff --git a/bundles/org.openhab.binding.smhi/src/main/java/org/openhab/binding/smhi/internal/SmhiHandler.java b/bundles/org.openhab.binding.smhi/src/main/java/org/openhab/binding/smhi/internal/SmhiHandler.java index ad4784bda..f6f5f78c3 100644 --- a/bundles/org.openhab.binding.smhi/src/main/java/org/openhab/binding/smhi/internal/SmhiHandler.java +++ b/bundles/org.openhab.binding.smhi/src/main/java/org/openhab/binding/smhi/internal/SmhiHandler.java @@ -17,10 +17,7 @@ import static org.openhab.binding.smhi.internal.SmhiBindingConstants.*; import java.math.BigDecimal; import java.time.ZoneOffset; import java.time.ZonedDateTime; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; +import java.util.*; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; @@ -143,11 +140,11 @@ public class SmhiHandler extends BaseThingHandler { if (channels.isEmpty()) { continue; } - Forecast forecast = timeSeries.getForecast(i); - if (forecast != null) { + Optional forecast = timeSeries.getForecast(i); + if (forecast.isPresent()) { channels.forEach(c -> { String id = c.getUID().getIdWithoutGroup(); - BigDecimal value = forecast.getParameter(id); + Optional value = forecast.get().getParameter(id); updateChannel(c, value); }); } @@ -159,74 +156,87 @@ public class SmhiHandler extends BaseThingHandler { continue; } - int offset = 24 * i + 12; - Forecast forecast = timeSeries.getForecast(currentDay, offset); + int dayOffset = i; + int hourOffset = 24 * dayOffset + 12; + Optional forecast = timeSeries.getForecast(currentDay, hourOffset); - if (forecast == null) { + if (forecast.isEmpty()) { if (logger.isDebugEnabled()) { - logger.debug("No forecast yet for {}", currentDay.plusHours(offset)); + logger.debug("No forecast yet for {}", currentDay.plusHours(hourOffset)); } channels.forEach(c -> { - updateState(c.getUID(), UnDefType.NULL); + updateState(c.getUID(), UnDefType.UNDEF); }); } else { channels.forEach(c -> { String id = c.getUID().getIdWithoutGroup(); - BigDecimal value = forecast.getParameter(id); + Optional value; + if (isAggregatedChannel(id)) { + value = getAggregatedValue(id, timeSeries, dayOffset); + } else { + value = forecast.get().getParameter(id); + } updateChannel(c, value); }); } } } - private void updateChannel(Channel channel, @Nullable BigDecimal value) { + private void updateChannel(Channel channel, Optional value) { String id = channel.getUID().getIdWithoutGroup(); - State newState = UnDefType.NULL; + State newState = UnDefType.UNDEF; - if (value != null) { + if (value.isPresent()) { switch (id) { case PRESSURE: - newState = new QuantityType<>(value, MetricPrefix.HECTO(SIUnits.PASCAL)); + newState = new QuantityType<>(value.get(), MetricPrefix.HECTO(SIUnits.PASCAL)); break; case TEMPERATURE: - newState = new QuantityType<>(value, SIUnits.CELSIUS); + case TEMPERATURE_MAX: + case TEMPERATURE_MIN: + newState = new QuantityType<>(value.get(), SIUnits.CELSIUS); break; case VISIBILITY: - newState = new QuantityType<>(value, MetricPrefix.KILO(SIUnits.METRE)); + newState = new QuantityType<>(value.get(), MetricPrefix.KILO(SIUnits.METRE)); break; case WIND_DIRECTION: - newState = new QuantityType<>(value, Units.DEGREE_ANGLE); + newState = new QuantityType<>(value.get(), Units.DEGREE_ANGLE); break; case WIND_SPEED: + case WIND_MAX: + case WIND_MIN: case GUST: - newState = new QuantityType<>(value, Units.METRE_PER_SECOND); + newState = new QuantityType<>(value.get(), Units.METRE_PER_SECOND); break; case RELATIVE_HUMIDITY: case THUNDER_PROBABILITY: - newState = new QuantityType<>(value, Units.PERCENT); + newState = new QuantityType<>(value.get(), Units.PERCENT); break; case PERCENT_FROZEN: // Smhi returns -9 for spp if there's no precipitation, convert to UNDEF - if (value.intValue() == -9) { + if (value.get().intValue() == -9) { newState = UnDefType.UNDEF; } else { - newState = new QuantityType<>(value, Units.PERCENT); + newState = new QuantityType<>(value.get(), Units.PERCENT); } break; case HIGH_CLOUD_COVER: case MEDIUM_CLOUD_COVER: case LOW_CLOUD_COVER: case TOTAL_CLOUD_COVER: - newState = new QuantityType<>(value.multiply(OCTAS_TO_PERCENT), Units.PERCENT); + newState = new QuantityType<>(value.get().multiply(OCTAS_TO_PERCENT), Units.PERCENT); break; case PRECIPITATION_MAX: case PRECIPITATION_MEAN: case PRECIPITATION_MEDIAN: case PRECIPITATION_MIN: - newState = new QuantityType<>(value, Units.MILLIMETRE_PER_HOUR); + newState = new QuantityType<>(value.get(), Units.MILLIMETRE_PER_HOUR); + break; + case PRECIPITATION_TOTAL: + newState = new QuantityType<>(value.get(), MetricPrefix.MILLI(SIUnits.METRE)); break; default: - newState = new DecimalType(value); + newState = new DecimalType(value.get()); } } @@ -367,32 +377,27 @@ public class SmhiHandler extends BaseThingHandler { private List createChannels() { List channels = new ArrayList<>(); - // There's currently a bug in PaperUI that can cause options to be added more than one time - // to the list. Convert to a sorted set to work around this. - // See https://github.com/openhab/openhab-webui/issues/212 - Set hours = new TreeSet<>(); - Set days = new TreeSet<>(); + @Nullable List hourlyForecasts = config.hourlyForecasts; - if (hourlyForecasts != null) { - hours.addAll(hourlyForecasts); - } + @Nullable List dailyForecasts = config.dailyForecasts; + + if (hourlyForecasts != null) { + for (int i : hourlyForecasts) { + ChannelGroupUID groupUID = new ChannelGroupUID(thing.getUID(), "hour_" + i); + HOURLY_CHANNELS.forEach(id -> { + channels.add(createChannel(groupUID, id)); + }); + } + } + if (dailyForecasts != null) { - days.addAll(dailyForecasts); - } - - for (int i : hours) { - ChannelGroupUID groupUID = new ChannelGroupUID(thing.getUID(), "hour_" + i); - CHANNEL_IDS.forEach(id -> { - channels.add(createChannel(groupUID, id)); - }); - } - - for (int i : days) { - ChannelGroupUID groupUID = new ChannelGroupUID(thing.getUID(), "day_" + i); - CHANNEL_IDS.forEach(id -> { - channels.add(createChannel(groupUID, id)); - }); + for (int i : dailyForecasts) { + ChannelGroupUID groupUID = new ChannelGroupUID(thing.getUID(), "day_" + i); + DAILY_CHANNELS.forEach(id -> { + channels.add(createChannel(groupUID, id)); + }); + } } return channels; } @@ -409,17 +414,22 @@ public class SmhiHandler extends BaseThingHandler { String itemType = "Number"; switch (channelID) { case TEMPERATURE: + case TEMPERATURE_MAX: + case TEMPERATURE_MIN: itemType += ":Temperature"; break; case PRESSURE: itemType += ":Pressure"; break; case VISIBILITY: + case PRECIPITATION_TOTAL: itemType += ":Length"; break; case WIND_DIRECTION: itemType += ":Angle"; case WIND_SPEED: + case WIND_MAX: + case WIND_MIN: case GUST: case PRECIPITATION_MAX: case PRECIPITATION_MEAN: @@ -442,4 +452,34 @@ public class SmhiHandler extends BaseThingHandler { .withType(new ChannelTypeUID(BINDING_ID, channelID)).build(); return channel; } + + private boolean isAggregatedChannel(String channelId) { + switch (channelId) { + case TEMPERATURE_MAX: + case TEMPERATURE_MIN: + case WIND_MAX: + case WIND_MIN: + case PRECIPITATION_TOTAL: + return true; + default: + return false; + } + } + + private Optional getAggregatedValue(String channelId, TimeSeries timeSeries, int dayOffset) { + switch (channelId) { + case TEMPERATURE_MAX: + return ForecastAggregator.max(timeSeries, dayOffset, TEMPERATURE); + case TEMPERATURE_MIN: + return ForecastAggregator.min(timeSeries, dayOffset, TEMPERATURE); + case WIND_MAX: + return ForecastAggregator.max(timeSeries, dayOffset, WIND_SPEED); + case WIND_MIN: + return ForecastAggregator.min(timeSeries, dayOffset, WIND_SPEED); + case PRECIPITATION_TOTAL: + return ForecastAggregator.total(timeSeries, dayOffset, PRECIPITATION_MEAN); + default: + return Optional.empty(); + } + } } diff --git a/bundles/org.openhab.binding.smhi/src/main/java/org/openhab/binding/smhi/internal/TimeSeries.java b/bundles/org.openhab.binding.smhi/src/main/java/org/openhab/binding/smhi/internal/TimeSeries.java index 89210cc54..3dbeaf306 100644 --- a/bundles/org.openhab.binding.smhi/src/main/java/org/openhab/binding/smhi/internal/TimeSeries.java +++ b/bundles/org.openhab.binding.smhi/src/main/java/org/openhab/binding/smhi/internal/TimeSeries.java @@ -16,8 +16,10 @@ package org.openhab.binding.smhi.internal; import java.time.ZonedDateTime; import java.util.Iterator; import java.util.List; +import java.util.Optional; import java.util.Spliterator; import java.util.function.Consumer; +import java.util.stream.Collectors; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; @@ -48,8 +50,8 @@ public class TimeSeries implements Iterable { * @param hourOffset number of hours after now. * @return */ - public @Nullable Forecast getForecast(int hourOffset) { - return getForecast(ZonedDateTime.now(), hourOffset); + public Optional getForecast(int hourOffset) { + return getForecast(referenceTime, hourOffset); } /** @@ -58,17 +60,23 @@ public class TimeSeries implements Iterable { * @param hourOffset number of hours after now. * @return */ - public @Nullable Forecast getForecast(ZonedDateTime startTime, int hourOffset) { + public Optional getForecast(ZonedDateTime startTime, int hourOffset) { if (hourOffset < 0) { throw new IllegalArgumentException("Offset must be at least 0"); } for (Forecast forecast : forecasts) { - if (forecast.getValidTime().compareTo(startTime.plusHours(hourOffset)) >= 0) { - return forecast; + if (forecast.getValidTime().compareTo(startTime.plusHours(hourOffset)) > 0) { + return Optional.of(forecast); } } - return null; + return Optional.empty(); + } + + public List getDay(int dayOffset) { + ZonedDateTime day = referenceTime.plusDays(dayOffset); + return forecasts.stream().filter(forecast -> forecast.getValidTime().getDayOfMonth() == day.getDayOfMonth()) + .collect(Collectors.toList()); } @Override diff --git a/bundles/org.openhab.binding.smhi/src/main/resources/OH-INF/config/forecast-config.xml b/bundles/org.openhab.binding.smhi/src/main/resources/OH-INF/config/forecast-config.xml index ee5f2023b..3a5df9736 100644 --- a/bundles/org.openhab.binding.smhi/src/main/resources/OH-INF/config/forecast-config.xml +++ b/bundles/org.openhab.binding.smhi/src/main/resources/OH-INF/config/forecast-config.xml @@ -6,11 +6,11 @@ https://openhab.org/schemas/config-description-1.0.0.xsd"> - + Latitude for the forecast - + Longitude for the forecast diff --git a/bundles/org.openhab.binding.smhi/src/main/resources/OH-INF/thing/channel-types.xml b/bundles/org.openhab.binding.smhi/src/main/resources/OH-INF/thing/channel-types.xml index f49099754..6a2874e3c 100644 --- a/bundles/org.openhab.binding.smhi/src/main/resources/OH-INF/thing/channel-types.xml +++ b/bundles/org.openhab.binding.smhi/src/main/resources/OH-INF/thing/channel-types.xml @@ -8,97 +8,127 @@ Number:Pressure Air pressure in hPa - + Number:Temperature Temperature - + + + + Number:Temperature + + Highest temperature of the day + + + + Number:Temperature + + Lowest temperature of the day + Number:Length Horizontal visibility - + Number:Angle Wind direction - + Number:Speed Wind speed - + + + + Number:Speed + + Highest wind speed of the day + + + + Number:Speed + + Lowest wind speed of the day + Number:Dimensionless Relative humidity in percent - + Number:Dimensionless Probability of thunder in percent - + Number:Dimensionless Mean value of total cloud cover in percent - + Number:Dimensionless Mean value of low level cloud cover (0-2500 m) in percent - + Number:Dimensionless Mean value of medium level cloud cover (2500-6000 m) in percent - + Number:Dimensionless Mean value of high level cloud cover (> 6000 m) in percent - + Number:Speed Wind gust speed - + Number:Speed Minimum precipitation intensity - + Number:Speed Maximum precipitation intensity - + + + + Number:Length + + Total amount of precipitation during the day + Number:Speed Mean precipitation intensity - + Number:Speed Median precipitation intensity - + Number @@ -120,7 +150,7 @@ Number:Dimensionless Percent of precipitation in frozen form - + Number @@ -190,11 +220,16 @@ Forecast at noon for the specified offset + + + + + diff --git a/bundles/org.openhab.binding.smhi/src/test/java/org/openhab/binding/smhi/internal/SmhiTest.java b/bundles/org.openhab.binding.smhi/src/test/java/org/openhab/binding/smhi/internal/SmhiTest.java new file mode 100644 index 000000000..75ccaa6da --- /dev/null +++ b/bundles/org.openhab.binding.smhi/src/test/java/org/openhab/binding/smhi/internal/SmhiTest.java @@ -0,0 +1,112 @@ +/** + * Copyright (c) 2010-2020 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ + +package org.openhab.binding.smhi.internal; + +import static org.junit.jupiter.api.Assertions.*; +import static org.openhab.binding.smhi.internal.SmhiBindingConstants.*; + +import java.io.IOException; +import java.io.InputStream; +import java.math.BigDecimal; +import java.time.ZonedDateTime; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +/** + * @author Anders Alfredsson - Initial contribution + */ +@NonNullByDefault +public class SmhiTest { + private static final ZonedDateTime TIME = ZonedDateTime.parse("2020-12-13T08:15:00Z"); + private @NonNullByDefault({}) TimeSeries timeSeries; + + @BeforeEach + public void setUp() { + try { + InputStream is = SmhiTest.class.getResourceAsStream("forecast.json"); + if (is == null) { + throw new AssertionError("Couldn't read forecast example"); + } + String jsonString = new String(is.readAllBytes()); + timeSeries = Parser.parseTimeSeries(jsonString); + } catch (IOException e) { + throw new AssertionError("Couldn't read forecast example"); + } + } + + @Test + public void parameterTest() { + assertNotNull(timeSeries); + Forecast forecast = timeSeries.getForecast(TIME, 0).orElseThrow(AssertionError::new); + + BigDecimal msl = forecast.getParameter(PRESSURE).orElseThrow(AssertionError::new); + BigDecimal t = forecast.getParameter(TEMPERATURE).orElseThrow(AssertionError::new); + BigDecimal vis = forecast.getParameter(VISIBILITY).orElseThrow(AssertionError::new); + BigDecimal wd = forecast.getParameter(WIND_DIRECTION).orElseThrow(AssertionError::new); + BigDecimal ws = forecast.getParameter(WIND_SPEED).orElseThrow(AssertionError::new); + BigDecimal r = forecast.getParameter(RELATIVE_HUMIDITY).orElseThrow(AssertionError::new); + BigDecimal tstm = forecast.getParameter(THUNDER_PROBABILITY).orElseThrow(AssertionError::new); + BigDecimal tcc = forecast.getParameter(TOTAL_CLOUD_COVER).orElseThrow(AssertionError::new); + BigDecimal lcc = forecast.getParameter(LOW_CLOUD_COVER).orElseThrow(AssertionError::new); + BigDecimal mcc = forecast.getParameter(MEDIUM_CLOUD_COVER).orElseThrow(AssertionError::new); + BigDecimal hcc = forecast.getParameter(HIGH_CLOUD_COVER).orElseThrow(AssertionError::new); + BigDecimal gust = forecast.getParameter(GUST).orElseThrow(AssertionError::new); + BigDecimal pmin = forecast.getParameter(PRECIPITATION_MIN).orElseThrow(AssertionError::new); + BigDecimal pmax = forecast.getParameter(PRECIPITATION_MAX).orElseThrow(AssertionError::new); + BigDecimal spp = forecast.getParameter(PERCENT_FROZEN).orElseThrow(AssertionError::new); + BigDecimal pcat = forecast.getParameter(PRECIPITATION_CATEGORY).orElseThrow(AssertionError::new); + BigDecimal pmean = forecast.getParameter(PRECIPITATION_MEAN).orElseThrow(AssertionError::new); + BigDecimal pmedian = forecast.getParameter(PRECIPITATION_MEDIAN).orElseThrow(AssertionError::new); + BigDecimal wsymb = forecast.getParameter(WEATHER_SYMBOL).orElseThrow(AssertionError::new); + + assertEquals(0, msl.compareTo(BigDecimal.valueOf(1013.7))); + assertEquals(0, t.compareTo(BigDecimal.valueOf(3.0))); + assertEquals(0, vis.compareTo(BigDecimal.valueOf(24.3))); + assertEquals(0, wd.compareTo(BigDecimal.valueOf(110))); + assertEquals(0, ws.compareTo(BigDecimal.valueOf(1.5))); + assertEquals(0, r.compareTo(BigDecimal.valueOf(96))); + assertEquals(0, tstm.compareTo(BigDecimal.valueOf(0))); + assertEquals(0, tcc.compareTo(BigDecimal.valueOf(8))); + assertEquals(0, lcc.compareTo(BigDecimal.valueOf(8))); + assertEquals(0, mcc.compareTo(BigDecimal.valueOf(4))); + assertEquals(0, hcc.compareTo(BigDecimal.valueOf(0))); + assertEquals(0, gust.compareTo(BigDecimal.valueOf(3.0))); + assertEquals(0, pmin.compareTo(BigDecimal.valueOf(0.0))); + assertEquals(0, pmax.compareTo(BigDecimal.valueOf(0.0))); + assertEquals(0, spp.compareTo(BigDecimal.valueOf(-9))); + assertEquals(0, pcat.compareTo(BigDecimal.valueOf(0))); + assertEquals(0, pmean.compareTo(BigDecimal.valueOf(0.0))); + assertEquals(0, pmedian.compareTo(BigDecimal.valueOf(0.0))); + assertEquals(0, wsymb.compareTo(BigDecimal.valueOf(6))); + } + + @Test + public void aggregationsTest() { + assertNotNull(timeSeries); + BigDecimal maxTemp = ForecastAggregator.max(timeSeries, 5, TEMPERATURE).orElseThrow(AssertionError::new); + BigDecimal minTemp = ForecastAggregator.min(timeSeries, 5, TEMPERATURE).orElseThrow(AssertionError::new); + BigDecimal maxWind = ForecastAggregator.max(timeSeries, 5, WIND_SPEED).orElseThrow(AssertionError::new); + BigDecimal minWind = ForecastAggregator.min(timeSeries, 5, WIND_SPEED).orElseThrow(AssertionError::new); + BigDecimal totalPrecip = ForecastAggregator.total(timeSeries, 5, PRECIPITATION_MEAN) + .orElseThrow(AssertionError::new); + + assertEquals(0, maxTemp.compareTo(BigDecimal.valueOf(7.5))); + assertEquals(0, minTemp.compareTo(BigDecimal.valueOf(4.2))); + assertEquals(0, maxWind.compareTo(BigDecimal.valueOf(4.4))); + assertEquals(0, minWind.compareTo(BigDecimal.valueOf(3.7))); + assertEquals(0, totalPrecip.compareTo(BigDecimal.valueOf(2.4))); + } +} diff --git a/bundles/org.openhab.binding.smhi/src/test/resources/org/openhab/binding/smhi/internal/forecast.json b/bundles/org.openhab.binding.smhi/src/test/resources/org/openhab/binding/smhi/internal/forecast.json new file mode 100644 index 000000000..240eacc4e --- /dev/null +++ b/bundles/org.openhab.binding.smhi/src/test/resources/org/openhab/binding/smhi/internal/forecast.json @@ -0,0 +1 @@ +{"approvedTime":"2020-12-13T08:05:09Z","referenceTime":"2020-12-13T08:00:00Z","geometry":{"type":"Point","coordinates":[[16.150350,58.570784]]},"timeSeries":[{"validTime":"2020-12-13T09:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1013.7]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[3.0]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[24.3]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[110]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.5]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[96]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[4]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[3.0]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-13T10:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1013.9]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[3.0]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[31.5]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[109]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.4]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[95]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[2]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[3.0]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-13T11:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1013.8]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[3.0]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[38.8]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[106]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.5]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[94]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[1]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[3.0]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[4]}]},{"validTime":"2020-12-13T12:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1014.0]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[2.8]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[46.0]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[114]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.4]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[92]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[3.0]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[4]}]},{"validTime":"2020-12-13T13:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1014.1]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[2.6]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[46.7]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[105]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.2]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[92]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[2.7]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-13T14:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1014.2]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[2.3]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[47.3]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[99]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.3]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[92]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[2.5]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-13T15:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1014.3]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[2.1]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[48.0]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[83]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.2]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[92]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[2.5]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-13T16:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1014.5]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[2.0]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[48.7]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[80]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.3]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[92]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[1]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[2.5]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-13T17:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1014.8]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[1.8]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[49.3]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[83]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.3]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[91]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[2]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[2.7]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-13T18:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1014.9]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[1.8]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[50.0]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[93]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.2]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[91]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[2]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[2.6]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-13T19:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1014.9]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[1.9]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[50.0]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[88]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.6]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[90]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[4]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[3.2]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-13T20:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1014.9]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[1.9]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[50.0]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[90]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.7]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[90]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[5]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[3.5]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-13T21:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1015.0]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[2.0]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[50.0]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[88]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.5]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[90]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[6]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[3.3]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-13T22:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1015.2]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[1.8]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[46.0]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[84]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.3]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[91]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[5]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[2.9]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-13T23:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1015.2]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[1.8]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[46.0]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[77]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.5]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[92]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[5]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[3.0]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-14T00:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1015.3]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[1.9]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[45.9]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[84]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.9]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[92]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[5]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[3.6]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-14T01:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1015.3]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[1.9]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[45.9]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[81]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.7]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[93]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[5]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[3.6]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-14T02:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1015.2]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[1.7]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[45.9]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[79]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.6]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[94]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[3]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[3.2]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-14T03:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1015.0]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[1.0]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[2.6]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[86]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.5]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[97]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[1]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[3.2]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-14T04:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1014.9]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[0.8]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[2.4]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[89]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.2]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[98]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[2.9]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-14T05:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1015.0]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[1.4]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[3.6]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[90]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.2]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[96]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[1]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[2.3]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-14T06:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1015.0]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[1.5]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[3.5]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[94]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.3]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[96]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[1]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[2.4]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-14T07:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1015.2]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[1.5]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[3.3]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[111]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.1]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[96]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[7]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[7]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[2.4]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[4]}]},{"validTime":"2020-12-14T08:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1015.3]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[1.5]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[2.7]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[104]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.0]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[97]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[6]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[6]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[2.1]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[3]}]},{"validTime":"2020-12-14T09:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1015.3]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[1.9]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[2.9]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[91]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.1]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[97]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[4]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[4]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[2.2]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[3]}]},{"validTime":"2020-12-14T10:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1015.1]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[2.4]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[4.2]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[101]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.5]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[96]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[4]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[4]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[2.9]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[3]}]},{"validTime":"2020-12-14T11:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1014.9]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[2.8]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[4.3]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[128]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.7]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[95]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[5]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[4]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[1]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[3.5]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[3]}]},{"validTime":"2020-12-14T12:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1014.8]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[2.8]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[4.2]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[131]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.8]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[95]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[6]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[4]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[4]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[3.7]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[4]}]},{"validTime":"2020-12-14T13:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1014.6]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[2.8]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[3.3]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[126]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[2.1]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[96]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[5]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[1]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[6]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[4.0]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[4]}]},{"validTime":"2020-12-14T14:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1014.4]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[2.6]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[2.7]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[136]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[2.3]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[97]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[5]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[4]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[4.4]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-14T15:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1013.9]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[2.6]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[2.9]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[128]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[2.6]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[97]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[6]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[6]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[7]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[5.0]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-14T16:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1013.7]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[2.4]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[2.7]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[128]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[2.7]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[97]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[6]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[7]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[7]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[5.4]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-14T17:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1013.3]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[2.5]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[3.4]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[131]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[2.6]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[96]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[6]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[5]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[5.7]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-14T18:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1012.7]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[2.6]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[3.3]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[132]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[2.3]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[96]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[5]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[4]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[5.1]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-14T19:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1012.4]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[2.8]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[3.2]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[138]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[2.2]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[96]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[4]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[3]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[4.5]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.1]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[3]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-14T20:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1012.2]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[2.4]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[2.8]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[145]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[3.1]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[96]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[4]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[2]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[6.2]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.2]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[3]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.1]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-14T21:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1012.1]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[2.8]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[15.5]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[153]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[3.4]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[94]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[5]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[7.2]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.8]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[3]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.2]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.2]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[18]}]},{"validTime":"2020-12-14T22:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1011.6]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[3.1]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[3.5]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[147]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[3.5]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[95]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[7]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[7.0]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.1]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.8]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[4]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.3]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.2]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[18]}]},{"validTime":"2020-12-14T23:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1011.3]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[3.3]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[2.5]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[158]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[3.7]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[96]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[7.4]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.2]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[1.1]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[3]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.6]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.5]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[19]}]},{"validTime":"2020-12-15T00:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1010.9]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[3.4]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[1.5]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[155]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[2.9]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[100]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[7.8]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.7]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[1.1]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[3]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.9]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.9]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[19]}]},{"validTime":"2020-12-15T03:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1010.4]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[4.3]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[2.1]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[194]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[3.4]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[98]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[3]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[7.6]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.2]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.5]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[3]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.4]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.4]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[19]}]},{"validTime":"2020-12-15T06:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1011.0]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[4.6]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[2.2]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[212]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[3.1]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[98]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[5]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[6.2]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-15T09:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1012.5]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[4.7]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[2.2]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[207]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[2.4]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[98]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[1]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[4.9]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-15T12:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1012.9]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[5.6]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[2.4]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[185]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.7]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[97]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[3.8]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-15T18:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1011.3]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[5.0]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[1.4]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[141]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[2.6]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[100]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[5.3]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.1]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.3]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[3]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.2]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.2]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[19]}]},{"validTime":"2020-12-16T00:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1008.3]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[4.9]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[1.5]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[178]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[2.3]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[100]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[4.6]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.7]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[1.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[3]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.9]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.9]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[20]}]},{"validTime":"2020-12-16T06:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1006.1]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[4.7]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[1.6]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[243]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[2.6]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[100]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[2]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[5.1]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.2]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.4]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[3]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.3]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.3]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[19]}]},{"validTime":"2020-12-16T12:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1009.0]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[5.5]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[5.8]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[299]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[5.4]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[94]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[1]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[12.0]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.1]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.1]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[4]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.1]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.1]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[19]}]},{"validTime":"2020-12-16T18:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1014.0]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[5.2]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[37.4]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[293]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[4.0]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[93]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[3]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[9.3]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-17T00:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1017.3]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[4.8]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[3.2]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[290]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[1.6]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[96]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[6.3]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-17T06:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1017.4]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[4.5]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[37.3]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[205]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[2.5]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[94]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[5]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[1]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[5.7]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-17T12:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1014.9]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[4.5]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[12.6]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[171]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[3.2]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[92]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[7.6]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.1]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[3]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-17T18:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1011.6]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[5.7]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[1.5]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[215]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[3.7]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[100]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[1]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[7.5]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.3]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.5]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[3]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.4]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.4]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[19]}]},{"validTime":"2020-12-18T00:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1011.8]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[4.2]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[2.1]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[242]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[3.7]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[98]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[1]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[1]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[7.5]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.2]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.3]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[3]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.3]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.3]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[19]}]},{"validTime":"2020-12-18T06:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1011.0]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[5.9]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[5.4]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[249]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[4.4]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[95]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[1]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[8.9]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-18T12:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1012.3]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[7.5]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[18.7]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[259]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[4.4]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[86]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[1]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[4]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[9.5]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-18T18:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1012.7]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[7.0]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[28.4]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[235]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[4.2]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[92]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[1]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[1]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[9.4]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.1]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[3]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.1]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.1]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[18]}]},{"validTime":"2020-12-19T00:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1013.2]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[6.1]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[10.7]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[251]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[4.2]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[94]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[7]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[9.4]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.1]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.2]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[3]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.1]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.1]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[19]}]},{"validTime":"2020-12-19T12:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1011.6]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[5.4]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[15.9]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[204]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[2.8]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[83]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[4]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[4]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[1]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[6.2]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[3]}]},{"validTime":"2020-12-20T00:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1007.4]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[5.5]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[10.1]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[193]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[3.6]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[93]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[1]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[7.6]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[-9]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[0]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-20T12:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1005.8]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[7.0]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[50.0]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[228]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[3.9]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[91]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[8.0]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.1]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.2]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[4]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.1]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.1]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[19]}]},{"validTime":"2020-12-21T00:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1011.6]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[4.1]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[23.2]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[165]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[2.5]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[94]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[7]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[7.4]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.2]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[3]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-21T12:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1010.5]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[4.6]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[29.6]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[175]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[2.3]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[92]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[1]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[6]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[7.4]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.5]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[3]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.1]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-22T00:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1009.2]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[4.1]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[22.3]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[196]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[2.3]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[94]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[1]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[4]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[7.8]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.6]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[3]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.1]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]},{"validTime":"2020-12-22T12:00:00Z","parameters":[{"name":"msl","levelType":"hmsl","level":0,"unit":"hPa","values":[1007.2]},{"name":"t","levelType":"hl","level":2,"unit":"Cel","values":[4.2]},{"name":"vis","levelType":"hl","level":2,"unit":"km","values":[31.9]},{"name":"wd","levelType":"hl","level":10,"unit":"degree","values":[207]},{"name":"ws","levelType":"hl","level":10,"unit":"m/s","values":[2.8]},{"name":"r","levelType":"hl","level":2,"unit":"percent","values":[90]},{"name":"tstm","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"tcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"lcc_mean","levelType":"hl","level":0,"unit":"octas","values":[8]},{"name":"mcc_mean","levelType":"hl","level":0,"unit":"octas","values":[1]},{"name":"hcc_mean","levelType":"hl","level":0,"unit":"octas","values":[0]},{"name":"gust","levelType":"hl","level":10,"unit":"m/s","values":[8.9]},{"name":"pmin","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"pmax","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.9]},{"name":"spp","levelType":"hl","level":0,"unit":"percent","values":[0]},{"name":"pcat","levelType":"hl","level":0,"unit":"category","values":[3]},{"name":"pmean","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.1]},{"name":"pmedian","levelType":"hl","level":0,"unit":"kg/m2/h","values":[0.0]},{"name":"Wsymb2","levelType":"hl","level":0,"unit":"category","values":[6]}]}]} \ No newline at end of file