From 11836413364a9c7b256463a12a958bdb35909620 Mon Sep 17 00:00:00 2001 From: Greg Walker Date: Wed, 17 Jul 2024 17:13:33 -0500 Subject: [PATCH 01/10] whoop --- tests/api/serve.js | 15 +- .../src/Service/DailyForecastTrait.php | 233 +++++++++++++++++- .../src/Service/DateTimeUtility.php | 38 ++- .../src/Service/HourlyForecastTrait.php | 5 +- .../src/Service/HourlyTableTrait.php | 5 +- ...block--weathergov-daily-forecast.html.twig | 4 +- .../daily-forecast-list-item.html.twig | 5 +- .../partials/daily-high-low.html.twig | 2 +- .../templates/partials/hourly-table.html.twig | 17 ++ 9 files changed, 302 insertions(+), 22 deletions(-) diff --git a/tests/api/serve.js b/tests/api/serve.js index 452ad6614..2103cbdbf 100644 --- a/tests/api/serve.js +++ b/tests/api/serve.js @@ -23,7 +23,7 @@ const adjust = (time, adjustment) => { return time; }; -const processDates = (obj, usingHourly = false) => { +const processDates = (obj, usingHourly = false, { parent = null } = {}) => { // If the input is null, just bail out. Otherwise we'll accidentally turn it // into an object. if (obj === null) { @@ -37,9 +37,9 @@ const processDates = (obj, usingHourly = false) => { Object.entries(obj ?? {}).forEach(([key, value]) => { // For arrays and objects, recurse into them if (Array.isArray(value)) { - value.forEach((item) => processDates(item, usingHourly)); + value.forEach((item) => processDates(item, usingHourly, { parent: key })); } else if (typeof value === "object" && value !== null) { - processDates(value, usingHourly); + processDates(value, usingHourly, { parent: key }); } // // But if the value has a startsWith function and it starts with the token, @@ -55,9 +55,14 @@ const processDates = (obj, usingHourly = false) => { // If we are parsing hourly forcast data, and the key is either the // start or end time, then align the output to the start of the given // hour. + // + // Alternatively, if we are not parsing hourly data but our parent key + // is "values" and our key is "validTime", then this is the hourly data + // stuffed inside the gridpoints API return. Do the same thing. if ( - usingHourly && - ["startTime", "endTime", "validTime"].includes(key) + (usingHourly && + ["startTime", "endTime", "validTime"].includes(key)) || + (!usingHourly && parent === "values" && key === "validTime") ) { updatedTime = updatedTime.startOf("hour"); } diff --git a/web/modules/weather_data/src/Service/DailyForecastTrait.php b/web/modules/weather_data/src/Service/DailyForecastTrait.php index bd03d63d9..b605cd4d6 100644 --- a/web/modules/weather_data/src/Service/DailyForecastTrait.php +++ b/web/modules/weather_data/src/Service/DailyForecastTrait.php @@ -32,6 +32,7 @@ private function formatDailyPeriod($period, $timezone = null) "dayName" => $dayName, "monthAndDay" => $monthAndDay, "startTime" => $startTime->format("c"), + "endTime" => $period->endTime, "shortForecast" => $this->t->translate($shortForecast), "icon" => $this->getIcon($period), "temperature" => $period->temperature, @@ -147,6 +148,25 @@ public function getDailyForecastFromGrid( $grid = $this->getGridFromLatLon($point->lat, $point->lon); $alerts = $this->getAlerts($grid, $point); + $allPrecipPeriods = $this->getHourlyPrecipitation($wfo, $x, $y, $now); + $allPrecipPeriods = array_map(function ($period) { + $valid = $period->validTime; + $value = $period->value; + $value = UnitConversion::millimetersToInches($value); + + $valid = explode("/", $valid); + $start = DateTimeUtility::stringToDate($valid[0], $timezone); + + $duration = new \DateInterval($valid[1]); + $end = $start->add($duration); + + return (object) [ + "start" => $start, + "end" => $end, + "value" => round($value, 2), + ]; + }, $allPrecipPeriods); + $tomorrow = $now->modify("tomorrow"); // These are the periods that correspond to "today". @@ -159,6 +179,208 @@ public function getDailyForecastFromGrid( // And future periods. $detailedPeriods = DateTimeUtility::filterToAfter($periods, $tomorrow); + // We keep those separate primarily because the "today" period can have + // 1, 2, or 3 periods. Future periods will only have 2 periods, so we + // can safely chunk them. (Except the very last day, which may only + // have one period, but that works out fine because it'll be the + // morning period. I.e., We'll never have a future day with an evening + // but without a morning. That can happen for today, though.) + + $all = [$todayPeriods, ...array_chunk($detailedPeriods, 2)]; + + $all = array_map( + function ($day, $dayIndex) use ( + &$now, + &$timezone, + &$hourlyPeriods, + &$alerts, + &$allPrecipPeriods, + ) { + // For each day, get the component periods, formatted. + $periods = array_map(function ($period) use ( + &$now, + &$timezone, + ) { + $formatted = $this->formatDailyPeriod($period, $timezone); + + // If we're doing the first day, we need to handle it a + // little bit differently. + if ($dayIndex === 0 && $formatted) { + // For "today" periods, we need to get date information from the current + // time, not from the forecast period because the first forecast period + // for "today" could actually be from "yesterday" if it begins before + // midnight. See #1151. + $shortDayName = $now->format("D"); + $dayName = $now->format("l"); + $monthAndDay = $now->format("M j"); + + $formatted["shortDayName"] = $shortDayName; + $formatted["dayName"] = $dayName; + $formatted["monthAndDay"] = $monthAndDay; + + // We need to determine if the period is an "overnight" + // period. These are periods whose startTime begins on or + // after midnight of the current day, and whose endTime is + // 6am of the current day + $startTime = DateTimeUtility::stringToDate( + $period->startTime, + $timezone, + ); + $endTime = DateTimeUtility::stringToDate( + $period->endTime, + $timezone, + ); + $midnight = $now->setTime(0, 0); + $overnightEnd = $now->setTime(6, 0); + + // This is an overnight period if the current time is between midnight + // and 6am, and the period ends on or before 6am of the same day. + // + // If now is before midnight, this must either be a day or night period. + // It can only become a̵ ̵g̵r̵e̵m̵l̵i̵n̵ an overnight period at midnight. + // + // If now is after midnight and this period ends after 6am, then it must + // also be a day or night period. + $isOvernightPeriod = + intval($now->format("G")) <= 6 && + $endTime <= $overnightEnd; + + $formatted["isOvernight"] = $isOvernightPeriod; + + // Provide formatted parentheticals about the coverage + // of each time period (in text form) + // These are only present on the "today" time periods + if ($isOvernightPeriod) { + $formatted["timeLabel"] = "NOW-6AM"; + } elseif ($formatted["isDaytime"]) { + $formatted["timeLabel"] = "6AM-6PM"; + } else { + $formatted["timeLabel"] = "6PM-6AM"; + } + } + + return $formatted; + }, $day); + + // If this is the first day and there is only one period, then + // it is an overnight period and we will only show the low + // temperature. (In any other case with just one period, we will + // show the high temperature.) + $useOnlyLow = $dayIndex === 0 && count($periods) === 1; + + // Now find the start and end time of the full day so we can use + // that to get the right hourly forecast, alerts, and precipitation. + $start = DateTimeUtility::stringToDate( + $periods[0]["startTime"], + $timezone, + ); + $end = DateTimeUtility::stringToDate( + end($periods)["endTime"], + $timezone, + ); + + // We only want the hourly periods within this day's range, + // inclusive off the start of the day. + $hourPeriods = DateTimeUtility::filterToOnOrAfter( + $hourlyPeriods, + $start, + "timestamp", + ); + $hourPeriods = DateTimeUtility::filterToBefore( + $hourPeriods, + $end, + "timestamp", + ); + + // Now get our alerts for the day, formatted with hour period + // offsets and duration. + $dayAlerts = $this->alertsToHourlyPeriods( + $alerts, + $hourPeriods, + ); + $highestAlertLevel = AlertUtility::getHighestAlertLevel( + array_map(function ($alert) { + return $alert["alert"]; + }, $dayAlerts), + ); + + // Get the first and last hours in our hourly data. We'll use + // these to filter alerts and precip. + $firstHour = DateTimeUtility::stringToDate( + $hourPeriods[0]["timestamp"], + ); + $lastHour = DateTimeUtility::stringToDate( + $hourPeriods[array_key_last($hourPeriods)]["timestamp"], + ); + $lastHour = $lastHour->modify("+1 hour"); + + $precipPeriods = array_filter($allPrecipPeriods, function ( + $period, + ) use (&$firstHour, &$lastHour) { + if ( + $period->start < $lastHour && + $period->end > $firstHour + ) { + return true; + } + return false; + }); + + $periodIndex = 0; + $precipPeriods = array_map(function ($period) use ( + &$periodIndex, + $firstHour, + $lastHour, + ) { + $duration = $period->end->diff($period->start)->h; + + // If the precipitation period starts before our first hour + // in the table, then we need to adjust the duration that + // we show. + if ($period->start < $firstHour) { + $duration -= $period->start->diff($firstHour)->h; + } + // Similarly if the precipitation period ends after our last + // hour, adjust. BOTH OF THESE CAN BE TRUE. + if ($period->end > $lastHour) { + $duration -= $lastHour->diff($period->end)->h; + } + + $myIndex = $periodIndex; + $periodIndex += $duration; + + return [ + "periodIndex" => $myIndex, + "duration" => $duration, + "value" => $period->value, + ]; + }, $precipPeriods); + + $precipPeriods = array_filter($precipPeriods, function ( + $period, + ) { + return $period["value"] > 0; + }); + + $day = [ + "periods" => $periods, + "useOnlyLow" => $useOnlyLow, + "hourPeriods" => $hourPeriods, + "alerts" => $dayAlerts, + "highestAlertLevel" => $highestAlertLevel, + "precipPeriods" => $precipPeriods, + ]; + + return $day; + }, + $all, + array_keys($all), + ); + + return $all; + + // ===================================================================== + // Format each of the today periods // as assoc arrays that can be used // by the templates @@ -187,12 +409,18 @@ public function getDailyForecastFromGrid( ]; }, array_chunk($detailedPeriods, 2)); + // Get raw precipitation periods data, then map and + // chunk into groups of periods based on each day's + // startTime + $precipPeriods = $this->getHourlyPrecipitation($wfo, $x, $y, $now); + // Get detailed hourly data for the today // daily period (for display) $this->getHourlyDetailsForDay( $todayPeriodsFormatted, $hourlyPeriods, $alerts, + $precipPeriods, true, ); if (count($todayPeriodsFormatted) > 1) { @@ -218,7 +446,9 @@ public function getDailyForecastFromGrid( return $todayAlert["alert"]; }, $todayAlerts); - $todayHighestAlertLevel = AlertUtility::getHighestAlertLevel($todayAlertItems); + $todayHighestAlertLevel = AlertUtility::getHighestAlertLevel( + $todayAlertItems, + ); // Get detailed hourly data for the // detailed forecast days @@ -226,6 +456,7 @@ public function getDailyForecastFromGrid( $detailedPeriodsFormatted, $hourlyPeriods, $alerts, + $precipPeriods, ); // Get a mapping of the starTime for each day, diff --git a/web/modules/weather_data/src/Service/DateTimeUtility.php b/web/modules/weather_data/src/Service/DateTimeUtility.php index 5c6aee0a1..6fdaee0a1 100644 --- a/web/modules/weather_data/src/Service/DateTimeUtility.php +++ b/web/modules/weather_data/src/Service/DateTimeUtility.php @@ -13,6 +13,17 @@ class DateTimeUtility */ private static $nowOverriddenTimestamp; + private static function getTimeValue($source, $property) + { + if (is_object($source) && property_exists($source, $property)) { + return $source->$property; + } + if (is_array($source) && array_key_exists($property, $source)) { + return $source[$property]; + } + return false; + } + public static function filterToAfter( $array, $after, @@ -20,10 +31,7 @@ public static function filterToAfter( ) { return array_values( array_filter($array, function ($item) use ($after, $property) { - $itemTime = property_exists($item, $property) - ? $item->$property - : $item[$property]; - + $itemTime = self::getTimeValue($item, $property); $itemTime = self::stringToDate($itemTime); return $itemTime > $after; @@ -31,6 +39,21 @@ public static function filterToAfter( ); } + public static function filterToOnOrAfter( + $array, + $after, + $property = "startTime", + ) { + return array_values( + array_filter($array, function ($item) use ($after, $property) { + $itemTime = self::getTimeValue($item, $property); + $itemTime = self::stringToDate($itemTime); + + return $itemTime >= $after; + }), + ); + } + public static function filterToBefore( $array, $before, @@ -38,10 +61,7 @@ public static function filterToBefore( ) { return array_values( array_filter($array, function ($item) use ($before, $property) { - $itemTime = property_exists($item, $property) - ? $item->$property - : $item[$property]; - + $itemTime = self::getTimeValue($item, $property); $itemTime = self::stringToDate($itemTime); return $itemTime < $before; @@ -80,7 +100,7 @@ public static function setNow(string $timestamp) { self::$nowOverriddenTimestamp = \DateTimeImmutable::createFromFormat( \DateTimeInterface::ISO8601_EXPANDED, - $timestamp + $timestamp, ); } diff --git a/web/modules/weather_data/src/Service/HourlyForecastTrait.php b/web/modules/weather_data/src/Service/HourlyForecastTrait.php index ff0c33e25..22d3c65da 100644 --- a/web/modules/weather_data/src/Service/HourlyForecastTrait.php +++ b/web/modules/weather_data/src/Service/HourlyForecastTrait.php @@ -313,7 +313,10 @@ public function filterHourlyPrecipitationToDay( // Therefore we only care about when the period starts. // If it starts within the $dayStart and $dayEnd window, it // counts for the current day. - $precipPeriodIsToday = $start >= $dayStart && $start < $dayEnd; + $precipPeriodIsToday = + $start < $dayEnd && + ($start >= $dayStart || + ($start < $dayStart && $end > $dayStart)); if ($precipPeriodIsToday) { $periods[] = (object) [ diff --git a/web/modules/weather_data/src/Service/HourlyTableTrait.php b/web/modules/weather_data/src/Service/HourlyTableTrait.php index 61402f393..7e24c95ba 100644 --- a/web/modules/weather_data/src/Service/HourlyTableTrait.php +++ b/web/modules/weather_data/src/Service/HourlyTableTrait.php @@ -24,6 +24,7 @@ public function getHourlyDetailsForDay( &$dayPeriods, &$hourlyPeriods, &$alerts, + $precip, $isTodayPeriod = false, ) { foreach ($dayPeriods as &$dayPeriod) { @@ -84,7 +85,9 @@ public function getHourlyDetailsForDay( $dayPeriodAlerts = array_map(function ($alertPeriod) { return $alertPeriod["alert"]; }, $alertPeriods); - $dayPeriod["highestAlertLevel"] = AlertUtility::getHighestAlertLevel($dayPeriodAlerts); + $dayPeriod[ + "highestAlertLevel" + ] = AlertUtility::getHighestAlertLevel($dayPeriodAlerts); } } return $dayPeriods; diff --git a/web/themes/new_weather_theme/templates/block/block--weathergov-daily-forecast.html.twig b/web/themes/new_weather_theme/templates/block/block--weathergov-daily-forecast.html.twig index b548ec277..d700dd45b 100644 --- a/web/themes/new_weather_theme/templates/block/block--weathergov-daily-forecast.html.twig +++ b/web/themes/new_weather_theme/templates/block/block--weathergov-daily-forecast.html.twig @@ -14,9 +14,9 @@ {% endif %} {# Render periods associated with future days, in detail #} - {% for data in content.detailed %} + {% for data in content %} {% set precipHours = content.precipitationPeriods[loop.index0 + precipIndex] %} - {% include '@new_weather_theme/partials/daily-forecast-list-item.html.twig' with { 'periods': [data.daytime, data.nighttime], 'dayHours': data.hourlyPeriods, 'alertPeriods': data.alertPeriods, 'highestAlertLevel': data.highestAlertLevel, 'precipHours': precipHours } %} + {% include '@new_weather_theme/partials/daily-forecast-list-item.html.twig' with { 'periods': data.periods, 'dayHours': data.hourPeriods, 'alertPeriods': data.alerts, 'highestAlertLevel': data.highestAlertLevel, 'useOnlyLow': data.useOnlyLow, 'precipPeriods': data.precipPeriods } %} {% endfor %} diff --git a/web/themes/new_weather_theme/templates/partials/daily-forecast-list-item.html.twig b/web/themes/new_weather_theme/templates/partials/daily-forecast-list-item.html.twig index bed5eab52..03f30738a 100644 --- a/web/themes/new_weather_theme/templates/partials/daily-forecast-list-item.html.twig +++ b/web/themes/new_weather_theme/templates/partials/daily-forecast-list-item.html.twig @@ -27,7 +27,7 @@ only be a nighttime period.
- {% include '@new_weather_theme/partials/daily-high-low.html.twig' with { 'periods': periods, 'useOnlyLowForToday': useOnlyLowForToday } %} + {% include '@new_weather_theme/partials/daily-high-low.html.twig' with { 'periods': periods, 'useOnlyLow': useOnlyLow } %}
@@ -109,7 +109,8 @@ only be a nighttime period. for: periods[0].monthAndDay, hours: dayHours, alertPeriods: alertPeriods, - itemId: itemId + itemId: itemId, + precipPeriods: precipPeriods } %} {% include '@new_weather_theme/partials/precip-table.html.twig' with { 'precipHours': precipHours } %} diff --git a/web/themes/new_weather_theme/templates/partials/daily-high-low.html.twig b/web/themes/new_weather_theme/templates/partials/daily-high-low.html.twig index 71c75c176..028024b0a 100644 --- a/web/themes/new_weather_theme/templates/partials/daily-high-low.html.twig +++ b/web/themes/new_weather_theme/templates/partials/daily-high-low.html.twig @@ -1,7 +1,7 @@ {% set temps = periods | map(p => p.temperature) %} {% set low = min(temps) %} {% set high = max(temps) %} -{% if useOnlyLowForToday == false %} +{% if useOnlyLow == false %}
{{ "High" | t }} diff --git a/web/themes/new_weather_theme/templates/partials/hourly-table.html.twig b/web/themes/new_weather_theme/templates/partials/hourly-table.html.twig index cfabd62a5..0fc38ccb4 100644 --- a/web/themes/new_weather_theme/templates/partials/hourly-table.html.twig +++ b/web/themes/new_weather_theme/templates/partials/hourly-table.html.twig @@ -116,6 +116,23 @@ {% endfor %} + + {% if precipPeriods | length > 0%} + + + {{"Accumulation" | t}} + + {% if precipPeriods[0].periodIndex > 0 %} + placeholder + {% endif %} + {% for period in precipPeriods %} + +
{{ period.value }} inches
+ + {% endfor %} + + {% endif %} + {{"Wind speed" | t}} From 764282f6d46333f2fc2abf810ffb49f7e9f43a8e Mon Sep 17 00:00:00 2001 From: Greg Walker Date: Thu, 18 Jul 2024 14:23:38 -0500 Subject: [PATCH 02/10] add the table back; fix spacing --- tests/api/data/testing/gridpoints/LZK/83,73.json | 8 ++++---- .../weather_data/src/Service/DailyForecastTrait.php | 9 +++++++-- .../partials/daily-forecast-list-item.html.twig | 2 +- .../templates/partials/hourly-table.html.twig | 4 +++- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/tests/api/data/testing/gridpoints/LZK/83,73.json b/tests/api/data/testing/gridpoints/LZK/83,73.json index 154efbfb4..713fa15d9 100644 --- a/tests/api/data/testing/gridpoints/LZK/83,73.json +++ b/tests/api/data/testing/gridpoints/LZK/83,73.json @@ -5185,11 +5185,11 @@ "values": [ { "validTime": "date:now +0 hours / PT1H", - "value": 0 + "value": 13 }, { "validTime": "date:now +1 hours / PT6H", - "value": 0 + "value": 94 }, { "validTime": "date:now +7 hours / PT6H", @@ -5197,11 +5197,11 @@ }, { "validTime": "date:now +13 hours / PT6H", - "value": 0 + "value": 42 }, { "validTime": "date:now +19 hours / PT6H", - "value": 0 + "value": 4 }, { "validTime": "date:now +25 hours / PT6H", diff --git a/web/modules/weather_data/src/Service/DailyForecastTrait.php b/web/modules/weather_data/src/Service/DailyForecastTrait.php index b605cd4d6..be1329697 100644 --- a/web/modules/weather_data/src/Service/DailyForecastTrait.php +++ b/web/modules/weather_data/src/Service/DailyForecastTrait.php @@ -149,7 +149,7 @@ public function getDailyForecastFromGrid( $alerts = $this->getAlerts($grid, $point); $allPrecipPeriods = $this->getHourlyPrecipitation($wfo, $x, $y, $now); - $allPrecipPeriods = array_map(function ($period) { + $allPrecipPeriods = array_map(function ($period) use (&$timezone) { $valid = $period->validTime; $value = $period->value; $value = UnitConversion::millimetersToInches($value); @@ -352,15 +352,20 @@ function ($day, $dayIndex) use ( return [ "periodIndex" => $myIndex, "duration" => $duration, + "start" => $period->start->format("g A"), + "end" => $period->end->format("g A"), "value" => $period->value, ]; }, $precipPeriods); - $precipPeriods = array_filter($precipPeriods, function ( + $noPrecipPeriods = array_filter($precipPeriods, function ( $period, ) { return $period["value"] > 0; }); + if (count($noPrecipPeriods) === count($precipPeriods)) { + $precipPeriods = []; + } $day = [ "periods" => $periods, diff --git a/web/themes/new_weather_theme/templates/partials/daily-forecast-list-item.html.twig b/web/themes/new_weather_theme/templates/partials/daily-forecast-list-item.html.twig index 03f30738a..dd9394388 100644 --- a/web/themes/new_weather_theme/templates/partials/daily-forecast-list-item.html.twig +++ b/web/themes/new_weather_theme/templates/partials/daily-forecast-list-item.html.twig @@ -113,7 +113,7 @@ only be a nighttime period. precipPeriods: precipPeriods } %} - {% include '@new_weather_theme/partials/precip-table.html.twig' with { 'precipHours': precipHours } %} + {% include '@new_weather_theme/partials/precip-table.html.twig' with { 'precipHours': precipPeriods } %}
{% endif %} diff --git a/web/themes/new_weather_theme/templates/partials/hourly-table.html.twig b/web/themes/new_weather_theme/templates/partials/hourly-table.html.twig index 0fc38ccb4..7837f94ca 100644 --- a/web/themes/new_weather_theme/templates/partials/hourly-table.html.twig +++ b/web/themes/new_weather_theme/templates/partials/hourly-table.html.twig @@ -123,11 +123,13 @@ {{"Accumulation" | t}} {% if precipPeriods[0].periodIndex > 0 %} - placeholder + {% endif %} {% for period in precipPeriods %} + {% if period.value > 0 %}
{{ period.value }} inches
+ {% endif %} {% endfor %} From cd8fd5670f2cd1aa4bd9d13526635d5d8629057b Mon Sep 17 00:00:00 2001 From: Greg Walker Date: Fri, 19 Jul 2024 08:47:46 -0500 Subject: [PATCH 03/10] greater and equals are not the same --- web/modules/weather_data/src/Service/DailyForecastTrait.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/modules/weather_data/src/Service/DailyForecastTrait.php b/web/modules/weather_data/src/Service/DailyForecastTrait.php index be1329697..3c4d28152 100644 --- a/web/modules/weather_data/src/Service/DailyForecastTrait.php +++ b/web/modules/weather_data/src/Service/DailyForecastTrait.php @@ -361,7 +361,7 @@ function ($day, $dayIndex) use ( $noPrecipPeriods = array_filter($precipPeriods, function ( $period, ) { - return $period["value"] > 0; + return $period["value"] == 0; }); if (count($noPrecipPeriods) === count($precipPeriods)) { $precipPeriods = []; From d340f5e939ae3ebc413b3082441e1df24c96eda5 Mon Sep 17 00:00:00 2001 From: Greg Walker Date: Mon, 30 Sep 2024 14:33:20 -0500 Subject: [PATCH 04/10] remove from hourly table --- .../src/Service/DailyForecastTrait.php | 156 +----------------- .../templates/partials/hourly-table.html.twig | 18 -- .../templates/partials/precip-table.html.twig | 1 + 3 files changed, 2 insertions(+), 173 deletions(-) diff --git a/web/modules/weather_data/src/Service/DailyForecastTrait.php b/web/modules/weather_data/src/Service/DailyForecastTrait.php index 3c4d28152..bdc494138 100644 --- a/web/modules/weather_data/src/Service/DailyForecastTrait.php +++ b/web/modules/weather_data/src/Service/DailyForecastTrait.php @@ -326,32 +326,8 @@ function ($day, $dayIndex) use ( return false; }); - $periodIndex = 0; - $precipPeriods = array_map(function ($period) use ( - &$periodIndex, - $firstHour, - $lastHour, - ) { - $duration = $period->end->diff($period->start)->h; - - // If the precipitation period starts before our first hour - // in the table, then we need to adjust the duration that - // we show. - if ($period->start < $firstHour) { - $duration -= $period->start->diff($firstHour)->h; - } - // Similarly if the precipitation period ends after our last - // hour, adjust. BOTH OF THESE CAN BE TRUE. - if ($period->end > $lastHour) { - $duration -= $lastHour->diff($period->end)->h; - } - - $myIndex = $periodIndex; - $periodIndex += $duration; - + $precipPeriods = array_map(function ($period) { return [ - "periodIndex" => $myIndex, - "duration" => $duration, "start" => $period->start->format("g A"), "end" => $period->end->format("g A"), "value" => $period->value, @@ -383,135 +359,5 @@ function ($day, $dayIndex) use ( ); return $all; - - // ===================================================================== - - // Format each of the today periods - // as assoc arrays that can be used - // by the templates - $todayPeriodsFormatted = array_map(function ($period) use ( - &$now, - &$timezone, - ) { - return $this->formatDailyPeriodForToday($period, $timezone, $now); - }, $todayPeriods); - - // Format each of the detailed periods - // as assoc arrays that can be used by - // the templates. Also group the periods - // into daytime and nighttime pairs - $detailedPeriodsFormatted = array_map(function ($periodPair) use ( - &$timezone, - ) { - $day = $periodPair[0]; - // The last day in the forecast can sometimes only have the first - // half of the pair. Defend against that. - $night = count($periodPair) > 1 ? $periodPair[1] : null; - - return [ - "daytime" => $this->formatDailyPeriod($day, $timezone), - "nighttime" => $this->formatDailyPeriod($night, $timezone), - ]; - }, array_chunk($detailedPeriods, 2)); - - // Get raw precipitation periods data, then map and - // chunk into groups of periods based on each day's - // startTime - $precipPeriods = $this->getHourlyPrecipitation($wfo, $x, $y, $now); - - // Get detailed hourly data for the today - // daily period (for display) - $this->getHourlyDetailsForDay( - $todayPeriodsFormatted, - $hourlyPeriods, - $alerts, - $precipPeriods, - true, - ); - if (count($todayPeriodsFormatted) > 1) { - $todayHourlyDetails = array_merge( - $todayPeriodsFormatted[0]["hourlyPeriods"], - $todayPeriodsFormatted[1]["hourlyPeriods"], - ); - $todayHourlyDetails = array_unique( - $todayHourlyDetails, - \SORT_REGULAR, - ); - } else { - $todayHourlyDetails = $todayPeriodsFormatted[0]["hourlyPeriods"]; - } - - $todayAlerts = $this->alertsToHourlyPeriods( - $alerts, - $todayHourlyDetails, - ); - - // Array of only the alert objects for today - $todayAlertItems = array_map(function ($todayAlert) { - return $todayAlert["alert"]; - }, $todayAlerts); - - $todayHighestAlertLevel = AlertUtility::getHighestAlertLevel( - $todayAlertItems, - ); - - // Get detailed hourly data for the - // detailed forecast days - $this->getHourlyDetailsForDay( - $detailedPeriodsFormatted, - $hourlyPeriods, - $alerts, - $precipPeriods, - ); - - // Get a mapping of the starTime for each day, - // starting with the today period. These will - // be used for grouping precipitation totals - // for each day. - $periodStartTimes = [ - DateTimeUtility::stringToDate( - $todayPeriods[0]->startTime, - $timezone, - ), - ]; - $detailedPeriodStartTimes = array_map(function ($periodPair) use ( - &$timezone, - ) { - return DateTimeUtility::stringToDate( - $periodPair[0]->startTime, - $timezone, - ); - }, array_chunk($detailedPeriods, 2)); - $periodStartTimes = array_merge( - $periodStartTimes, - $detailedPeriodStartTimes, - ); - - // Get raw precipitation periods data, then map and - // chunk into groups of periods based on each day's - // startTime - $precipPeriods = $this->getHourlyPrecipitation($wfo, $x, $y, $now); - $precipPeriods = array_map(function ($startTime) use ( - &$precipPeriods, - &$timezone, - ) { - return $this->filterHourlyPrecipitationToDay( - $startTime, - $precipPeriods, - $timezone, - ); - }, $periodStartTimes); - - $useOnlyLowForToday = count($todayPeriodsFormatted) == 1; - - return [ - "today" => array_values($todayPeriodsFormatted), - "todayHourly" => array_values($todayHourlyDetails), - "todayAlerts" => array_values($todayAlerts), - "todayHighestAlertLevel" => $todayHighestAlertLevel, - "detailed" => array_values($detailedPeriodsFormatted), - "precipitationPeriods" => array_values($precipPeriods), - "useOnlyLowForToday" => $useOnlyLowForToday, - ]; } } diff --git a/web/themes/new_weather_theme/templates/partials/hourly-table.html.twig b/web/themes/new_weather_theme/templates/partials/hourly-table.html.twig index 7837f94ca..2a5c10686 100644 --- a/web/themes/new_weather_theme/templates/partials/hourly-table.html.twig +++ b/web/themes/new_weather_theme/templates/partials/hourly-table.html.twig @@ -117,24 +117,6 @@ {% endfor %} - {% if precipPeriods | length > 0%} - - - {{"Accumulation" | t}} - - {% if precipPeriods[0].periodIndex > 0 %} - - {% endif %} - {% for period in precipPeriods %} - - {% if period.value > 0 %} -
{{ period.value }} inches
- {% endif %} - - {% endfor %} - - {% endif %} - {{"Wind speed" | t}} diff --git a/web/themes/new_weather_theme/templates/partials/precip-table.html.twig b/web/themes/new_weather_theme/templates/partials/precip-table.html.twig index d0b54f2da..e5c061217 100644 --- a/web/themes/new_weather_theme/templates/partials/precip-table.html.twig +++ b/web/themes/new_weather_theme/templates/partials/precip-table.html.twig @@ -1,3 +1,4 @@ +{{ dump(precipHours) }} {% if precipHours %}
From 7fbc35c90053d9b28d2477f8c8b99e6c1bd09b5a Mon Sep 17 00:00:00 2001 From: Greg Walker Date: Mon, 30 Sep 2024 14:48:14 -0500 Subject: [PATCH 05/10] remove dump --- .../new_weather_theme/templates/partials/precip-table.html.twig | 1 - 1 file changed, 1 deletion(-) diff --git a/web/themes/new_weather_theme/templates/partials/precip-table.html.twig b/web/themes/new_weather_theme/templates/partials/precip-table.html.twig index e5c061217..d0b54f2da 100644 --- a/web/themes/new_weather_theme/templates/partials/precip-table.html.twig +++ b/web/themes/new_weather_theme/templates/partials/precip-table.html.twig @@ -1,4 +1,3 @@ -{{ dump(precipHours) }} {% if precipHours %}
From 1003482d393d4c6ce543a5758fd30d4bf86cca5d Mon Sep 17 00:00:00 2001 From: Greg Walker Date: Tue, 1 Oct 2024 13:07:26 -0500 Subject: [PATCH 06/10] update expected schema and tweak properties in tests --- tests/api/data/e2e/gridpoints/FWD/89,104.json | 4234 +++++++++++++++++ .../FWD/89,104/forecast/hourly.json | 624 +-- .../DailyForecast/DailyForecast.php.test | 37 +- .../DailyForecast/HourlyData.php.test | 10 +- .../PrecipitationAmounts.php.test | 45 +- .../Block/Test/EndToEnd/schemas/daily.json | 75 +- .../src/Service/DailyForecastTrait.php | 8 +- .../src/Service/DateTimeUtility.php | 15 + 8 files changed, 4639 insertions(+), 409 deletions(-) create mode 100644 tests/api/data/e2e/gridpoints/FWD/89,104.json diff --git a/tests/api/data/e2e/gridpoints/FWD/89,104.json b/tests/api/data/e2e/gridpoints/FWD/89,104.json new file mode 100644 index 000000000..cff83469f --- /dev/null +++ b/tests/api/data/e2e/gridpoints/FWD/89,104.json @@ -0,0 +1,4234 @@ +{ + "@context": [ + "https://geojson.org/geojson-ld/geojson-context.jsonld", + { + "@version": "1.1", + "wmoUnit": "https://codes.wmo.int/common/unit/", + "nwsUnit": "https://api.weather.gov/ontology/unit/" + } + ], + "id": "https://api.weather.gov/gridpoints/FWD/89,104", + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-96.8169041, 32.7908431], + [-96.81654350000001, 32.7682162], + [-96.78964, 32.768516999999996], + [-96.7899953, 32.7911441], + [-96.8169041, 32.7908431] + ] + ] + }, + "properties": { + "@id": "https://api.weather.gov/gridpoints/FWD/89,104", + "@type": "wx:Gridpoint", + "updateTime": "2024-10-01T10:29:01+00:00", + "validTimes": "2024-10-01T04:00:00+00:00/P8DT6H", + "elevation": { "unitCode": "wmoUnit:m", "value": 136.8552 }, + "forecastOffice": "https://api.weather.gov/offices/FWD", + "gridId": "FWD", + "gridX": "89", + "gridY": "104", + "temperature": { + "uom": "wmoUnit:degC", + "values": [ + { "validTime": "2024-05-07T04:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-07T05:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-07T06:00:00Z/PT1H", + "value": 23.88888888888889 + }, + { + "validTime": "2024-05-07T07:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-07T08:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-07T09:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-07T10:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { + "validTime": "2024-05-07T11:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-07T12:00:00Z/PT1H", + "value": 18.88888888888889 + }, + { + "validTime": "2024-05-07T13:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-07T14:00:00Z/PT1H", + "value": 21.666666666666668 + }, + { + "validTime": "2024-05-07T15:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-07T16:00:00Z/PT1H", + "value": 27.77777777777778 + }, + { "validTime": "2024-05-07T17:00:00Z/PT1H", "value": 30 }, + { + "validTime": "2024-05-07T18:00:00Z/PT1H", + "value": 32.22222222222222 + }, + { + "validTime": "2024-05-07T19:00:00Z/PT1H", + "value": 32.77777777777778 + }, + { + "validTime": "2024-05-07T20:00:00Z/PT1H", + "value": 33.333333333333336 + }, + { + "validTime": "2024-05-07T21:00:00Z/PT1H", + "value": 33.888888888888886 + }, + { + "validTime": "2024-05-07T22:00:00Z/PT1H", + "value": 33.333333333333336 + }, + { + "validTime": "2024-05-07T23:00:00Z/PT1H", + "value": 32.77777777777778 + }, + { + "validTime": "2024-05-08T00:00:00Z/PT1H", + "value": 31.666666666666668 + }, + { + "validTime": "2024-05-08T01:00:00Z/PT1H", + "value": 29.444444444444443 + }, + { + "validTime": "2024-05-08T02:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { + "validTime": "2024-05-08T03:00:00Z/PT1H", + "value": 26.666666666666668 + }, + { + "validTime": "2024-05-08T04:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-08T05:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-08T06:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-08T07:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-08T08:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-08T09:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { "validTime": "2024-05-08T10:00:00Z/PT2H", "value": 20 }, + { + "validTime": "2024-05-08T12:00:00Z/PT1H", + "value": 18.88888888888889 + }, + { + "validTime": "2024-05-08T13:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-08T14:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-08T15:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-08T16:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-08T17:00:00Z/PT1H", + "value": 26.666666666666668 + }, + { + "validTime": "2024-05-08T18:00:00Z/PT1H", + "value": 29.444444444444443 + }, + { "validTime": "2024-05-08T19:00:00Z/PT1H", "value": 30 }, + { + "validTime": "2024-05-08T20:00:00Z/PT1H", + "value": 31.11111111111111 + }, + { + "validTime": "2024-05-08T21:00:00Z/PT1H", + "value": 31.666666666666668 + }, + { + "validTime": "2024-05-08T22:00:00Z/PT1H", + "value": 31.11111111111111 + }, + { "validTime": "2024-05-08T23:00:00Z/PT1H", "value": 30 }, + { + "validTime": "2024-05-09T00:00:00Z/PT1H", + "value": 29.444444444444443 + }, + { + "validTime": "2024-05-09T01:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { + "validTime": "2024-05-09T02:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-09T03:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-09T04:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-09T05:00:00Z/PT1H", + "value": 23.88888888888889 + }, + { + "validTime": "2024-05-09T06:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-09T07:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-09T08:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-09T09:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { "validTime": "2024-05-09T10:00:00Z/PT2H", "value": 20 }, + { + "validTime": "2024-05-09T12:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-09T13:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-09T14:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { "validTime": "2024-05-09T15:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-09T16:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-09T17:00:00Z/PT1H", + "value": 29.444444444444443 + }, + { + "validTime": "2024-05-09T18:00:00Z/PT1H", + "value": 31.666666666666668 + }, + { + "validTime": "2024-05-09T19:00:00Z/PT1H", + "value": 32.22222222222222 + }, + { + "validTime": "2024-05-09T20:00:00Z/PT1H", + "value": 32.77777777777778 + }, + { + "validTime": "2024-05-09T21:00:00Z/PT1H", + "value": 33.333333333333336 + }, + { + "validTime": "2024-05-09T22:00:00Z/PT1H", + "value": 32.22222222222222 + }, + { + "validTime": "2024-05-09T23:00:00Z/PT1H", + "value": 31.666666666666668 + }, + { + "validTime": "2024-05-10T00:00:00Z/PT1H", + "value": 30.555555555555557 + }, + { + "validTime": "2024-05-10T01:00:00Z/PT1H", + "value": 28.88888888888889 + }, + { + "validTime": "2024-05-10T02:00:00Z/PT1H", + "value": 27.77777777777778 + }, + { + "validTime": "2024-05-10T03:00:00Z/PT1H", + "value": 26.11111111111111 + }, + { "validTime": "2024-05-10T04:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-10T05:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-10T06:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-10T07:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-10T08:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { "validTime": "2024-05-10T09:00:00Z/PT1H", "value": 20 }, + { + "validTime": "2024-05-10T10:00:00Z/PT2H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-10T12:00:00Z/PT1H", + "value": 18.88888888888889 + }, + { + "validTime": "2024-05-10T13:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { + "validTime": "2024-05-10T14:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-10T15:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-10T16:00:00Z/PT1H", + "value": 26.666666666666668 + }, + { + "validTime": "2024-05-10T17:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { + "validTime": "2024-05-10T18:00:00Z/PT1H", + "value": 30.555555555555557 + }, + { + "validTime": "2024-05-10T19:00:00Z/PT1H", + "value": 31.11111111111111 + }, + { + "validTime": "2024-05-10T20:00:00Z/PT1H", + "value": 32.22222222222222 + }, + { + "validTime": "2024-05-10T21:00:00Z/PT1H", + "value": 32.77777777777778 + }, + { + "validTime": "2024-05-10T22:00:00Z/PT1H", + "value": 31.666666666666668 + }, + { + "validTime": "2024-05-10T23:00:00Z/PT1H", + "value": 31.11111111111111 + }, + { "validTime": "2024-05-11T00:00:00Z/PT1H", "value": 30 }, + { + "validTime": "2024-05-11T01:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { + "validTime": "2024-05-11T02:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-11T03:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-11T04:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-11T05:00:00Z/PT1H", + "value": 23.88888888888889 + }, + { + "validTime": "2024-05-11T06:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-11T07:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-11T08:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-11T09:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { "validTime": "2024-05-11T10:00:00Z/PT2H", "value": 20 }, + { + "validTime": "2024-05-11T12:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-11T13:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-11T14:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-11T15:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-11T16:00:00Z/PT1H", + "value": 26.11111111111111 + }, + { + "validTime": "2024-05-11T17:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { "validTime": "2024-05-11T18:00:00Z/PT1H", "value": 30 }, + { + "validTime": "2024-05-11T19:00:00Z/PT1H", + "value": 30.555555555555557 + }, + { + "validTime": "2024-05-11T20:00:00Z/PT1H", + "value": 31.666666666666668 + }, + { + "validTime": "2024-05-11T21:00:00Z/PT1H", + "value": 32.22222222222222 + }, + { + "validTime": "2024-05-11T22:00:00Z/PT1H", + "value": 31.11111111111111 + }, + { + "validTime": "2024-05-11T23:00:00Z/PT1H", + "value": 30.555555555555557 + }, + { + "validTime": "2024-05-12T00:00:00Z/PT1H", + "value": 29.444444444444443 + }, + { + "validTime": "2024-05-12T01:00:00Z/PT1H", + "value": 27.77777777777778 + }, + { + "validTime": "2024-05-12T02:00:00Z/PT1H", + "value": 26.666666666666668 + }, + { "validTime": "2024-05-12T03:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-12T04:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-12T05:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-12T06:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-12T07:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-12T08:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-12T09:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { "validTime": "2024-05-12T10:00:00Z/PT2H", "value": 20 }, + { + "validTime": "2024-05-12T12:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-12T13:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-12T14:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-12T15:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-12T16:00:00Z/PT1H", + "value": 26.11111111111111 + }, + { + "validTime": "2024-05-12T17:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { "validTime": "2024-05-12T18:00:00Z/PT1H", "value": 30 }, + { + "validTime": "2024-05-12T19:00:00Z/PT1H", + "value": 30.555555555555557 + }, + { + "validTime": "2024-05-12T20:00:00Z/PT1H", + "value": 31.666666666666668 + }, + { + "validTime": "2024-05-12T21:00:00Z/PT1H", + "value": 32.22222222222222 + }, + { + "validTime": "2024-05-12T22:00:00Z/PT1H", + "value": 31.11111111111111 + }, + { + "validTime": "2024-05-12T23:00:00Z/PT1H", + "value": 30.555555555555557 + }, + { + "validTime": "2024-05-13T00:00:00Z/PT1H", + "value": 29.444444444444443 + }, + { + "validTime": "2024-05-13T01:00:00Z/PT1H", + "value": 27.77777777777778 + }, + { + "validTime": "2024-05-13T02:00:00Z/PT1H", + "value": 26.666666666666668 + }, + { "validTime": "2024-05-13T03:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-13T04:00:00Z/PT1H", + "value": 23.88888888888889 + }, + { + "validTime": "2024-05-13T05:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-13T06:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-13T07:00:00Z/PT1H", + "value": 21.666666666666668 + }, + { + "validTime": "2024-05-13T08:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { "validTime": "2024-05-13T09:00:00Z/PT1H", "value": 20 }, + { + "validTime": "2024-05-13T10:00:00Z/PT2H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-13T12:00:00Z/PT1H", + "value": 18.88888888888889 + }, + { + "validTime": "2024-05-13T13:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { + "validTime": "2024-05-13T14:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-13T15:00:00Z/PT1H", + "value": 23.88888888888889 + }, + { + "validTime": "2024-05-13T16:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-13T17:00:00Z/PT1H", + "value": 27.77777777777778 + }, + { + "validTime": "2024-05-13T18:00:00Z/PT1H", + "value": 29.444444444444443 + }, + { "validTime": "2024-05-13T19:00:00Z/PT1H", "value": 30 }, + { + "validTime": "2024-05-13T20:00:00Z/PT1H", + "value": 30.555555555555557 + }, + { + "validTime": "2024-05-13T21:00:00Z/PT1H", + "value": 31.11111111111111 + }, + { "validTime": "2024-05-13T22:00:00Z/PT1H", "value": 30 }, + { + "validTime": "2024-05-13T23:00:00Z/PT1H", + "value": 29.444444444444443 + }, + { + "validTime": "2024-05-14T00:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { + "validTime": "2024-05-14T01:00:00Z/PT1H", + "value": 26.666666666666668 + }, + { + "validTime": "2024-05-14T02:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-14T03:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-14T04:00:00Z/PT1H", + "value": 21.666666666666668 + }, + { + "validTime": "2024-05-14T05:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { "validTime": "2024-05-14T06:00:00Z/PT1H", "value": 20 }, + { + "validTime": "2024-05-14T07:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-14T08:00:00Z/PT1H", + "value": 18.333333333333332 + }, + { + "validTime": "2024-05-14T09:00:00Z/PT1H", + "value": 17.77777777777778 + }, + { + "validTime": "2024-05-14T10:00:00Z/PT2H", + "value": 17.22222222222222 + }, + { + "validTime": "2024-05-14T12:00:00Z/PT1H", + "value": 16.666666666666668 + }, + { + "validTime": "2024-05-14T13:00:00Z/PT1H", + "value": 17.77777777777778 + }, + { + "validTime": "2024-05-14T14:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-14T15:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { + "validTime": "2024-05-14T16:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { "validTime": "2024-05-14T17:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-14T18:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-14T19:00:00Z/PT1H", + "value": 27.77777777777778 + }, + { + "validTime": "2024-05-14T20:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { + "validTime": "2024-05-14T21:00:00Z/PT1H", + "value": 28.88888888888889 + }, + { + "validTime": "2024-05-14T22:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { + "validTime": "2024-05-14T23:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-15T00:00:00Z/PT1H", + "value": 26.666666666666668 + }, + { + "validTime": "2024-05-15T01:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-15T02:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-15T03:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-15T04:00:00Z/PT1H", + "value": 21.666666666666668 + }, + { + "validTime": "2024-05-15T05:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { + "validTime": "2024-05-15T06:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-15T07:00:00Z/PT1H", + "value": 18.88888888888889 + }, + { + "validTime": "2024-05-15T08:00:00Z/PT1H", + "value": 17.77777777777778 + }, + { "validTime": "2024-05-15T09:00:00Z/PT1H", "value": 17.22222222222222 } + ] + }, + "dewpoint": { + "uom": "wmoUnit:degC", + "values": [ + { + "validTime": "2024-05-07T04:00:00Z/PT5H", + "value": 14.444444444444445 + }, + { + "validTime": "2024-05-07T09:00:00Z/PT3H", + "value": 16.11111111111111 + }, + { + "validTime": "2024-05-07T12:00:00Z/PT2H", + "value": 15.555555555555555 + }, + { + "validTime": "2024-05-07T14:00:00Z/PT5H", + "value": 16.11111111111111 + }, + { + "validTime": "2024-05-07T19:00:00Z/PT1H", + "value": 15.555555555555555 + }, + { + "validTime": "2024-05-07T20:00:00Z/PT1H", + "value": 16.11111111111111 + }, + { + "validTime": "2024-05-07T21:00:00Z/PT2H", + "value": 15.555555555555555 + }, + { "validTime": "2024-05-07T23:00:00Z/PT3H", "value": 15 }, + { + "validTime": "2024-05-08T02:00:00Z/PT1H", + "value": 14.444444444444445 + }, + { + "validTime": "2024-05-08T03:00:00Z/PT1H", + "value": 13.333333333333334 + }, + { + "validTime": "2024-05-08T04:00:00Z/PT1H", + "value": 12.222222222222221 + }, + { + "validTime": "2024-05-08T05:00:00Z/PT1H", + "value": 11.11111111111111 + }, + { + "validTime": "2024-05-08T06:00:00Z/PT1H", + "value": 10.555555555555555 + }, + { "validTime": "2024-05-08T07:00:00Z/PT1H", "value": 10 }, + { + "validTime": "2024-05-08T08:00:00Z/PT4H", + "value": 9.444444444444445 + }, + { "validTime": "2024-05-08T12:00:00Z/PT1H", "value": 10 }, + { + "validTime": "2024-05-08T13:00:00Z/PT1H", + "value": 10.555555555555555 + }, + { + "validTime": "2024-05-08T14:00:00Z/PT1H", + "value": 11.11111111111111 + }, + { + "validTime": "2024-05-08T15:00:00Z/PT1H", + "value": 12.222222222222221 + }, + { + "validTime": "2024-05-08T16:00:00Z/PT1H", + "value": 13.333333333333334 + }, + { + "validTime": "2024-05-08T17:00:00Z/PT1H", + "value": 14.444444444444445 + }, + { "validTime": "2024-05-08T18:00:00Z/PT1H", "value": 15 }, + { + "validTime": "2024-05-08T19:00:00Z/PT2H", + "value": 15.555555555555555 + }, + { "validTime": "2024-05-08T21:00:00Z/PT2H", "value": 15 }, + { + "validTime": "2024-05-08T23:00:00Z/PT14H", + "value": 15.555555555555555 + }, + { + "validTime": "2024-05-09T13:00:00Z/PT1H", + "value": 16.11111111111111 + }, + { + "validTime": "2024-05-09T14:00:00Z/PT1H", + "value": 16.666666666666668 + }, + { + "validTime": "2024-05-09T15:00:00Z/PT3H", + "value": 17.22222222222222 + }, + { + "validTime": "2024-05-09T18:00:00Z/PT2H", + "value": 16.666666666666668 + }, + { + "validTime": "2024-05-09T20:00:00Z/PT2H", + "value": 16.11111111111111 + }, + { + "validTime": "2024-05-09T22:00:00Z/PT1H", + "value": 15.555555555555555 + }, + { "validTime": "2024-05-09T23:00:00Z/PT3H", "value": 15 }, + { + "validTime": "2024-05-10T02:00:00Z/PT3H", + "value": 15.555555555555555 + }, + { "validTime": "2024-05-10T05:00:00Z/PT1H", "value": 15 }, + { + "validTime": "2024-05-10T06:00:00Z/PT2H", + "value": 14.444444444444445 + }, + { + "validTime": "2024-05-10T08:00:00Z/PT5H", + "value": 13.88888888888889 + }, + { + "validTime": "2024-05-10T13:00:00Z/PT2H", + "value": 14.444444444444445 + }, + { "validTime": "2024-05-10T15:00:00Z/PT4H", "value": 15 }, + { + "validTime": "2024-05-10T19:00:00Z/PT2H", + "value": 14.444444444444445 + }, + { + "validTime": "2024-05-10T21:00:00Z/PT1H", + "value": 13.88888888888889 + }, + { + "validTime": "2024-05-10T22:00:00Z/PT3H", + "value": 13.333333333333334 + }, + { + "validTime": "2024-05-11T01:00:00Z/PT2H", + "value": 13.88888888888889 + }, + { + "validTime": "2024-05-11T03:00:00Z/PT5H", + "value": 14.444444444444445 + }, + { "validTime": "2024-05-11T08:00:00Z/PT3H", "value": 15 }, + { + "validTime": "2024-05-11T11:00:00Z/PT2H", + "value": 15.555555555555555 + }, + { + "validTime": "2024-05-11T13:00:00Z/PT2H", + "value": 16.11111111111111 + }, + { + "validTime": "2024-05-11T15:00:00Z/PT4H", + "value": 16.666666666666668 + }, + { + "validTime": "2024-05-11T19:00:00Z/PT2H", + "value": 16.11111111111111 + }, + { + "validTime": "2024-05-11T21:00:00Z/PT5H", + "value": 15.555555555555555 + }, + { + "validTime": "2024-05-12T02:00:00Z/PT12H", + "value": 16.11111111111111 + }, + { + "validTime": "2024-05-12T14:00:00Z/PT5H", + "value": 16.666666666666668 + }, + { + "validTime": "2024-05-12T19:00:00Z/PT2H", + "value": 16.11111111111111 + }, + { + "validTime": "2024-05-12T21:00:00Z/PT1H", + "value": 15.555555555555555 + }, + { "validTime": "2024-05-12T22:00:00Z/PT2H", "value": 15 }, + { + "validTime": "2024-05-13T00:00:00Z/PT2H", + "value": 14.444444444444445 + }, + { + "validTime": "2024-05-13T02:00:00Z/PT3H", + "value": 13.88888888888889 + }, + { + "validTime": "2024-05-13T05:00:00Z/PT2H", + "value": 13.333333333333334 + }, + { + "validTime": "2024-05-13T07:00:00Z/PT2H", + "value": 12.777777777777779 + }, + { + "validTime": "2024-05-13T09:00:00Z/PT1H", + "value": 12.222222222222221 + }, + { + "validTime": "2024-05-13T10:00:00Z/PT1H", + "value": 11.666666666666666 + }, + { + "validTime": "2024-05-13T11:00:00Z/PT1H", + "value": 11.11111111111111 + }, + { + "validTime": "2024-05-13T12:00:00Z/PT2H", + "value": 10.555555555555555 + }, + { + "validTime": "2024-05-13T14:00:00Z/PT2H", + "value": 11.11111111111111 + }, + { + "validTime": "2024-05-13T16:00:00Z/PT2H", + "value": 10.555555555555555 + }, + { "validTime": "2024-05-13T18:00:00Z/PT4H", "value": 10 }, + { + "validTime": "2024-05-13T22:00:00Z/PT2H", + "value": 9.444444444444445 + }, + { "validTime": "2024-05-14T00:00:00Z/PT2H", "value": 8.88888888888889 }, + { + "validTime": "2024-05-14T02:00:00Z/PT2H", + "value": 9.444444444444445 + }, + { "validTime": "2024-05-14T04:00:00Z/PT3H", "value": 10 }, + { + "validTime": "2024-05-14T07:00:00Z/PT1H", + "value": 9.444444444444445 + }, + { "validTime": "2024-05-14T08:00:00Z/PT1H", "value": 8.88888888888889 }, + { + "validTime": "2024-05-14T09:00:00Z/PT3H", + "value": 8.333333333333334 + }, + { + "validTime": "2024-05-14T12:00:00Z/PT2H", + "value": 9.444444444444445 + }, + { "validTime": "2024-05-14T14:00:00Z/PT3H", "value": 10 }, + { + "validTime": "2024-05-14T17:00:00Z/PT3H", + "value": 10.555555555555555 + }, + { "validTime": "2024-05-14T20:00:00Z/PT5H", "value": 10 }, + { + "validTime": "2024-05-15T01:00:00Z/PT2H", + "value": 9.444444444444445 + }, + { "validTime": "2024-05-15T03:00:00Z/PT1H", "value": 8.88888888888889 }, + { + "validTime": "2024-05-15T04:00:00Z/PT2H", + "value": 8.333333333333334 + }, + { + "validTime": "2024-05-15T06:00:00Z/PT1H", + "value": 7.777777777777778 + }, + { + "validTime": "2024-05-15T07:00:00Z/PT2H", + "value": 8.333333333333334 + }, + { "validTime": "2024-05-15T09:00:00Z/PT1H", "value": 8.88888888888889 } + ] + }, + "maxTemperature": { + "uom": "wmoUnit:degC", + "values": [ + { + "validTime": "2024-05-07T04:00:00Z/PT13H", + "value": 33.888888888888886 + }, + { + "validTime": "2024-05-07T17:00:00Z/PT13H", + "value": 32.22222222222222 + }, + { + "validTime": "2024-05-08T06:00:00Z/PT13H", + "value": 33.333333333333336 + }, + { + "validTime": "2024-05-08T19:00:00Z/PT13H", + "value": 33.333333333333336 + }, + { + "validTime": "2024-05-09T08:00:00Z/PT13H", + "value": 32.77777777777778 + }, + { + "validTime": "2024-05-09T21:00:00Z/PT13H", + "value": 32.77777777777778 + }, + { + "validTime": "2024-05-10T10:00:00Z/PT13H", + "value": 31.666666666666668 + }, + { "validTime": "2024-05-10T23:00:00Z/PT13H", "value": 30 } + ] + }, + "minTemperature": { + "uom": "wmoUnit:degC", + "values": [ + { + "validTime": "2024-05-07T04:00:00Z/PT11H", + "value": 18.333333333333332 + }, + { + "validTime": "2024-05-07T15:00:00Z/PT14H", + "value": 18.88888888888889 + }, + { + "validTime": "2024-05-08T05:00:00Z/PT14H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-08T19:00:00Z/PT14H", + "value": 18.88888888888889 + }, + { + "validTime": "2024-05-09T09:00:00Z/PT14H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-09T23:00:00Z/PT14H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-10T13:00:00Z/PT14H", + "value": 18.88888888888889 + }, + { + "validTime": "2024-05-11T03:00:00Z/PT14H", + "value": 16.666666666666668 + }, + { "validTime": "2024-05-11T17:00:00Z/PT9H", "value": 15 } + ] + }, + "relativeHumidity": { + "uom": "wmoUnit:percent", + "values": [ + { "validTime": "2024-05-07T04:00:00Z/PT1H", "value": 52 }, + { "validTime": "2024-05-07T05:00:00Z/PT1H", "value": 54 }, + { "validTime": "2024-05-07T06:00:00Z/PT1H", "value": 56 }, + { "validTime": "2024-05-07T07:00:00Z/PT1H", "value": 57 }, + { "validTime": "2024-05-07T08:00:00Z/PT1H", "value": 61 }, + { "validTime": "2024-05-07T09:00:00Z/PT1H", "value": 73 }, + { "validTime": "2024-05-07T10:00:00Z/PT1H", "value": 76 }, + { "validTime": "2024-05-07T11:00:00Z/PT2H", "value": 81 }, + { "validTime": "2024-05-07T13:00:00Z/PT1H", "value": 78 }, + { "validTime": "2024-05-07T14:00:00Z/PT1H", "value": 71 }, + { "validTime": "2024-05-07T15:00:00Z/PT1H", "value": 56 }, + { "validTime": "2024-05-07T16:00:00Z/PT1H", "value": 49 }, + { "validTime": "2024-05-07T17:00:00Z/PT1H", "value": 43 }, + { "validTime": "2024-05-07T18:00:00Z/PT1H", "value": 38 }, + { "validTime": "2024-05-07T19:00:00Z/PT2H", "value": 36 }, + { "validTime": "2024-05-07T21:00:00Z/PT1H", "value": 33 }, + { "validTime": "2024-05-07T22:00:00Z/PT2H", "value": 34 }, + { "validTime": "2024-05-08T00:00:00Z/PT1H", "value": 37 }, + { "validTime": "2024-05-08T01:00:00Z/PT1H", "value": 41 }, + { "validTime": "2024-05-08T02:00:00Z/PT1H", "value": 43 }, + { "validTime": "2024-05-08T03:00:00Z/PT1H", "value": 44 }, + { "validTime": "2024-05-08T04:00:00Z/PT2H", "value": 43 }, + { "validTime": "2024-05-08T06:00:00Z/PT3H", "value": 44 }, + { "validTime": "2024-05-08T09:00:00Z/PT1H", "value": 49 }, + { "validTime": "2024-05-08T10:00:00Z/PT2H", "value": 51 }, + { "validTime": "2024-05-08T12:00:00Z/PT2H", "value": 56 }, + { "validTime": "2024-05-08T14:00:00Z/PT1H", "value": 53 }, + { "validTime": "2024-05-08T15:00:00Z/PT1H", "value": 50 }, + { "validTime": "2024-05-08T16:00:00Z/PT2H", "value": 47 }, + { "validTime": "2024-05-08T18:00:00Z/PT1H", "value": 41 }, + { "validTime": "2024-05-08T19:00:00Z/PT1H", "value": 42 }, + { "validTime": "2024-05-08T20:00:00Z/PT1H", "value": 39 }, + { "validTime": "2024-05-08T21:00:00Z/PT1H", "value": 37 }, + { "validTime": "2024-05-08T22:00:00Z/PT1H", "value": 39 }, + { "validTime": "2024-05-08T23:00:00Z/PT1H", "value": 41 }, + { "validTime": "2024-05-09T00:00:00Z/PT1H", "value": 43 }, + { "validTime": "2024-05-09T01:00:00Z/PT1H", "value": 46 }, + { "validTime": "2024-05-09T02:00:00Z/PT1H", "value": 49 }, + { "validTime": "2024-05-09T03:00:00Z/PT1H", "value": 54 }, + { "validTime": "2024-05-09T04:00:00Z/PT1H", "value": 57 }, + { "validTime": "2024-05-09T05:00:00Z/PT1H", "value": 60 }, + { "validTime": "2024-05-09T06:00:00Z/PT1H", "value": 64 }, + { "validTime": "2024-05-09T07:00:00Z/PT1H", "value": 67 }, + { "validTime": "2024-05-09T08:00:00Z/PT1H", "value": 70 }, + { "validTime": "2024-05-09T09:00:00Z/PT1H", "value": 73 }, + { "validTime": "2024-05-09T10:00:00Z/PT1H", "value": 74 }, + { "validTime": "2024-05-09T11:00:00Z/PT2H", "value": 75 }, + { "validTime": "2024-05-09T13:00:00Z/PT1H", "value": 70 }, + { "validTime": "2024-05-09T14:00:00Z/PT1H", "value": 65 }, + { "validTime": "2024-05-09T15:00:00Z/PT1H", "value": 60 }, + { "validTime": "2024-05-09T16:00:00Z/PT1H", "value": 53 }, + { "validTime": "2024-05-09T17:00:00Z/PT1H", "value": 46 }, + { "validTime": "2024-05-09T18:00:00Z/PT1H", "value": 41 }, + { "validTime": "2024-05-09T19:00:00Z/PT1H", "value": 39 }, + { "validTime": "2024-05-09T20:00:00Z/PT1H", "value": 38 }, + { "validTime": "2024-05-09T21:00:00Z/PT1H", "value": 37 }, + { "validTime": "2024-05-09T22:00:00Z/PT1H", "value": 38 }, + { "validTime": "2024-05-09T23:00:00Z/PT1H", "value": 39 }, + { "validTime": "2024-05-10T00:00:00Z/PT1H", "value": 40 }, + { "validTime": "2024-05-10T01:00:00Z/PT1H", "value": 43 }, + { "validTime": "2024-05-10T02:00:00Z/PT1H", "value": 47 }, + { "validTime": "2024-05-10T03:00:00Z/PT1H", "value": 50 }, + { "validTime": "2024-05-10T04:00:00Z/PT1H", "value": 52 }, + { "validTime": "2024-05-10T05:00:00Z/PT1H", "value": 54 }, + { "validTime": "2024-05-10T06:00:00Z/PT1H", "value": 55 }, + { "validTime": "2024-05-10T07:00:00Z/PT1H", "value": 59 }, + { "validTime": "2024-05-10T08:00:00Z/PT1H", "value": 62 }, + { "validTime": "2024-05-10T09:00:00Z/PT1H", "value": 65 }, + { "validTime": "2024-05-10T10:00:00Z/PT1H", "value": 68 }, + { "validTime": "2024-05-10T11:00:00Z/PT1H", "value": 70 }, + { "validTime": "2024-05-10T12:00:00Z/PT1H", "value": 73 }, + { "validTime": "2024-05-10T13:00:00Z/PT1H", "value": 66 }, + { "validTime": "2024-05-10T14:00:00Z/PT1H", "value": 59 }, + { "validTime": "2024-05-10T15:00:00Z/PT1H", "value": 54 }, + { "validTime": "2024-05-10T16:00:00Z/PT1H", "value": 48 }, + { "validTime": "2024-05-10T17:00:00Z/PT1H", "value": 43 }, + { "validTime": "2024-05-10T18:00:00Z/PT1H", "value": 39 }, + { "validTime": "2024-05-10T19:00:00Z/PT1H", "value": 37 }, + { "validTime": "2024-05-10T20:00:00Z/PT1H", "value": 35 }, + { "validTime": "2024-05-10T21:00:00Z/PT1H", "value": 33 }, + { "validTime": "2024-05-10T22:00:00Z/PT1H", "value": 34 }, + { "validTime": "2024-05-10T23:00:00Z/PT1H", "value": 36 }, + { "validTime": "2024-05-11T00:00:00Z/PT1H", "value": 37 }, + { "validTime": "2024-05-11T01:00:00Z/PT1H", "value": 41 }, + { "validTime": "2024-05-11T02:00:00Z/PT1H", "value": 45 }, + { "validTime": "2024-05-11T03:00:00Z/PT1H", "value": 50 }, + { "validTime": "2024-05-11T04:00:00Z/PT1H", "value": 54 }, + { "validTime": "2024-05-11T05:00:00Z/PT1H", "value": 57 }, + { "validTime": "2024-05-11T06:00:00Z/PT1H", "value": 62 }, + { "validTime": "2024-05-11T07:00:00Z/PT1H", "value": 64 }, + { "validTime": "2024-05-11T08:00:00Z/PT1H", "value": 67 }, + { "validTime": "2024-05-11T09:00:00Z/PT1H", "value": 70 }, + { "validTime": "2024-05-11T10:00:00Z/PT1H", "value": 73 }, + { "validTime": "2024-05-11T11:00:00Z/PT1H", "value": 76 }, + { "validTime": "2024-05-11T12:00:00Z/PT1H", "value": 78 }, + { "validTime": "2024-05-11T13:00:00Z/PT1H", "value": 73 }, + { "validTime": "2024-05-11T14:00:00Z/PT1H", "value": 68 }, + { "validTime": "2024-05-11T15:00:00Z/PT1H", "value": 64 }, + { "validTime": "2024-05-11T16:00:00Z/PT1H", "value": 58 }, + { "validTime": "2024-05-11T17:00:00Z/PT1H", "value": 53 }, + { "validTime": "2024-05-11T18:00:00Z/PT1H", "value": 48 }, + { "validTime": "2024-05-11T19:00:00Z/PT1H", "value": 45 }, + { "validTime": "2024-05-11T20:00:00Z/PT1H", "value": 42 }, + { "validTime": "2024-05-11T21:00:00Z/PT1H", "value": 39 }, + { "validTime": "2024-05-11T22:00:00Z/PT1H", "value": 41 }, + { "validTime": "2024-05-11T23:00:00Z/PT1H", "value": 43 }, + { "validTime": "2024-05-12T00:00:00Z/PT1H", "value": 45 }, + { "validTime": "2024-05-12T01:00:00Z/PT1H", "value": 49 }, + { "validTime": "2024-05-12T02:00:00Z/PT1H", "value": 54 }, + { "validTime": "2024-05-12T03:00:00Z/PT1H", "value": 60 }, + { "validTime": "2024-05-12T04:00:00Z/PT1H", "value": 63 }, + { "validTime": "2024-05-12T05:00:00Z/PT1H", "value": 67 }, + { "validTime": "2024-05-12T06:00:00Z/PT1H", "value": 71 }, + { "validTime": "2024-05-12T07:00:00Z/PT1H", "value": 74 }, + { "validTime": "2024-05-12T08:00:00Z/PT1H", "value": 78 }, + { "validTime": "2024-05-12T09:00:00Z/PT1H", "value": 81 }, + { "validTime": "2024-05-12T10:00:00Z/PT1H", "value": 83 }, + { "validTime": "2024-05-12T11:00:00Z/PT1H", "value": 85 }, + { "validTime": "2024-05-12T12:00:00Z/PT1H", "value": 87 }, + { "validTime": "2024-05-12T13:00:00Z/PT1H", "value": 79 }, + { "validTime": "2024-05-12T14:00:00Z/PT1H", "value": 73 }, + { "validTime": "2024-05-12T15:00:00Z/PT1H", "value": 66 }, + { "validTime": "2024-05-12T16:00:00Z/PT1H", "value": 60 }, + { "validTime": "2024-05-12T17:00:00Z/PT1H", "value": 53 }, + { "validTime": "2024-05-12T18:00:00Z/PT1H", "value": 48 }, + { "validTime": "2024-05-12T19:00:00Z/PT1H", "value": 44 }, + { "validTime": "2024-05-12T20:00:00Z/PT1H", "value": 40 }, + { "validTime": "2024-05-12T21:00:00Z/PT1H", "value": 37 }, + { "validTime": "2024-05-12T22:00:00Z/PT1H", "value": 38 }, + { "validTime": "2024-05-12T23:00:00Z/PT1H", "value": 40 }, + { "validTime": "2024-05-13T00:00:00Z/PT1H", "value": 41 }, + { "validTime": "2024-05-13T01:00:00Z/PT1H", "value": 45 }, + { "validTime": "2024-05-13T02:00:00Z/PT1H", "value": 48 }, + { "validTime": "2024-05-13T03:00:00Z/PT1H", "value": 52 }, + { "validTime": "2024-05-13T04:00:00Z/PT1H", "value": 56 }, + { "validTime": "2024-05-13T05:00:00Z/PT1H", "value": 59 }, + { "validTime": "2024-05-13T06:00:00Z/PT2H", "value": 64 }, + { "validTime": "2024-05-13T08:00:00Z/PT2H", "value": 65 }, + { "validTime": "2024-05-13T10:00:00Z/PT1H", "value": 66 }, + { "validTime": "2024-05-13T11:00:00Z/PT1H", "value": 67 }, + { "validTime": "2024-05-13T12:00:00Z/PT1H", "value": 68 }, + { "validTime": "2024-05-13T13:00:00Z/PT1H", "value": 60 }, + { "validTime": "2024-05-13T14:00:00Z/PT1H", "value": 54 }, + { "validTime": "2024-05-13T15:00:00Z/PT1H", "value": 48 }, + { "validTime": "2024-05-13T16:00:00Z/PT1H", "value": 42 }, + { "validTime": "2024-05-13T17:00:00Z/PT1H", "value": 38 }, + { "validTime": "2024-05-13T18:00:00Z/PT1H", "value": 33 }, + { "validTime": "2024-05-13T19:00:00Z/PT1H", "value": 32 }, + { "validTime": "2024-05-13T20:00:00Z/PT1H", "value": 30 }, + { "validTime": "2024-05-13T21:00:00Z/PT1H", "value": 28 }, + { "validTime": "2024-05-13T22:00:00Z/PT1H", "value": 29 }, + { "validTime": "2024-05-13T23:00:00Z/PT1H", "value": 30 }, + { "validTime": "2024-05-14T00:00:00Z/PT1H", "value": 31 }, + { "validTime": "2024-05-14T01:00:00Z/PT1H", "value": 35 }, + { "validTime": "2024-05-14T02:00:00Z/PT1H", "value": 39 }, + { "validTime": "2024-05-14T03:00:00Z/PT1H", "value": 44 }, + { "validTime": "2024-05-14T04:00:00Z/PT1H", "value": 46 }, + { "validTime": "2024-05-14T05:00:00Z/PT1H", "value": 48 }, + { "validTime": "2024-05-14T06:00:00Z/PT1H", "value": 51 }, + { "validTime": "2024-05-14T07:00:00Z/PT1H", "value": 53 }, + { "validTime": "2024-05-14T08:00:00Z/PT1H", "value": 55 }, + { "validTime": "2024-05-14T09:00:00Z/PT1H", "value": 58 }, + { "validTime": "2024-05-14T10:00:00Z/PT1H", "value": 59 }, + { "validTime": "2024-05-14T11:00:00Z/PT1H", "value": 61 }, + { "validTime": "2024-05-14T12:00:00Z/PT1H", "value": 62 }, + { "validTime": "2024-05-14T13:00:00Z/PT1H", "value": 58 }, + { "validTime": "2024-05-14T14:00:00Z/PT1H", "value": 54 }, + { "validTime": "2024-05-14T15:00:00Z/PT1H", "value": 51 }, + { "validTime": "2024-05-14T16:00:00Z/PT1H", "value": 44 }, + { "validTime": "2024-05-14T17:00:00Z/PT1H", "value": 40 }, + { "validTime": "2024-05-14T18:00:00Z/PT1H", "value": 35 }, + { "validTime": "2024-05-14T19:00:00Z/PT1H", "value": 34 }, + { "validTime": "2024-05-14T20:00:00Z/PT1H", "value": 32 }, + { "validTime": "2024-05-14T21:00:00Z/PT1H", "value": 31 }, + { "validTime": "2024-05-14T22:00:00Z/PT1H", "value": 32 }, + { "validTime": "2024-05-14T23:00:00Z/PT1H", "value": 34 }, + { "validTime": "2024-05-15T00:00:00Z/PT1H", "value": 35 }, + { "validTime": "2024-05-15T01:00:00Z/PT1H", "value": 36 }, + { "validTime": "2024-05-15T02:00:00Z/PT1H", "value": 39 }, + { "validTime": "2024-05-15T03:00:00Z/PT1H", "value": 40 }, + { "validTime": "2024-05-15T04:00:00Z/PT1H", "value": 42 }, + { "validTime": "2024-05-15T05:00:00Z/PT1H", "value": 45 }, + { "validTime": "2024-05-15T06:00:00Z/PT1H", "value": 47 }, + { "validTime": "2024-05-15T07:00:00Z/PT1H", "value": 50 }, + { "validTime": "2024-05-15T08:00:00Z/PT1H", "value": 54 }, + { "validTime": "2024-05-15T09:00:00Z/PT1H", "value": 58 } + ] + }, + "apparentTemperature": { + "uom": "wmoUnit:degC", + "values": [ + { "validTime": "2024-05-07T04:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-07T05:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-07T06:00:00Z/PT1H", + "value": 23.88888888888889 + }, + { + "validTime": "2024-05-07T07:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-07T08:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-07T09:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-07T10:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { + "validTime": "2024-05-07T11:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-07T12:00:00Z/PT1H", + "value": 18.88888888888889 + }, + { + "validTime": "2024-05-07T13:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-07T14:00:00Z/PT1H", + "value": 21.666666666666668 + }, + { + "validTime": "2024-05-07T15:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-07T16:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { "validTime": "2024-05-07T17:00:00Z/PT1H", "value": 30 }, + { + "validTime": "2024-05-07T18:00:00Z/PT1H", + "value": 32.22222222222222 + }, + { + "validTime": "2024-05-07T19:00:00Z/PT1H", + "value": 32.77777777777778 + }, + { + "validTime": "2024-05-07T20:00:00Z/PT1H", + "value": 33.333333333333336 + }, + { + "validTime": "2024-05-07T21:00:00Z/PT1H", + "value": 33.888888888888886 + }, + { + "validTime": "2024-05-07T22:00:00Z/PT1H", + "value": 33.333333333333336 + }, + { + "validTime": "2024-05-07T23:00:00Z/PT1H", + "value": 32.22222222222222 + }, + { + "validTime": "2024-05-08T00:00:00Z/PT1H", + "value": 31.11111111111111 + }, + { + "validTime": "2024-05-08T01:00:00Z/PT1H", + "value": 29.444444444444443 + }, + { + "validTime": "2024-05-08T02:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { + "validTime": "2024-05-08T03:00:00Z/PT1H", + "value": 26.666666666666668 + }, + { + "validTime": "2024-05-08T04:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-08T05:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-08T06:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-08T07:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-08T08:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-08T09:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { "validTime": "2024-05-08T10:00:00Z/PT2H", "value": 20 }, + { + "validTime": "2024-05-08T12:00:00Z/PT1H", + "value": 18.88888888888889 + }, + { + "validTime": "2024-05-08T13:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-08T14:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-08T15:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-08T16:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-08T17:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-08T18:00:00Z/PT1H", + "value": 29.444444444444443 + }, + { "validTime": "2024-05-08T19:00:00Z/PT1H", "value": 30 }, + { + "validTime": "2024-05-08T20:00:00Z/PT2H", + "value": 31.11111111111111 + }, + { + "validTime": "2024-05-08T22:00:00Z/PT1H", + "value": 30.555555555555557 + }, + { "validTime": "2024-05-08T23:00:00Z/PT1H", "value": 30 }, + { + "validTime": "2024-05-09T00:00:00Z/PT1H", + "value": 29.444444444444443 + }, + { + "validTime": "2024-05-09T01:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { + "validTime": "2024-05-09T02:00:00Z/PT1H", + "value": 27.77777777777778 + }, + { + "validTime": "2024-05-09T03:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-09T04:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-09T05:00:00Z/PT1H", + "value": 23.88888888888889 + }, + { + "validTime": "2024-05-09T06:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-09T07:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-09T08:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-09T09:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { "validTime": "2024-05-09T10:00:00Z/PT2H", "value": 20 }, + { + "validTime": "2024-05-09T12:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-09T13:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-09T14:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { "validTime": "2024-05-09T15:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-09T16:00:00Z/PT1H", + "value": 27.77777777777778 + }, + { "validTime": "2024-05-09T17:00:00Z/PT1H", "value": 30 }, + { + "validTime": "2024-05-09T18:00:00Z/PT1H", + "value": 31.666666666666668 + }, + { + "validTime": "2024-05-09T19:00:00Z/PT1H", + "value": 32.22222222222222 + }, + { + "validTime": "2024-05-09T20:00:00Z/PT1H", + "value": 33.333333333333336 + }, + { + "validTime": "2024-05-09T21:00:00Z/PT1H", + "value": 33.888888888888886 + }, + { + "validTime": "2024-05-09T22:00:00Z/PT1H", + "value": 32.77777777777778 + }, + { + "validTime": "2024-05-09T23:00:00Z/PT1H", + "value": 31.666666666666668 + }, + { + "validTime": "2024-05-10T00:00:00Z/PT1H", + "value": 30.555555555555557 + }, + { + "validTime": "2024-05-10T01:00:00Z/PT1H", + "value": 28.88888888888889 + }, + { + "validTime": "2024-05-10T02:00:00Z/PT1H", + "value": 27.77777777777778 + }, + { + "validTime": "2024-05-10T03:00:00Z/PT1H", + "value": 26.11111111111111 + }, + { "validTime": "2024-05-10T04:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-10T05:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-10T06:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-10T07:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-10T08:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { "validTime": "2024-05-10T09:00:00Z/PT1H", "value": 20 }, + { + "validTime": "2024-05-10T10:00:00Z/PT2H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-10T12:00:00Z/PT1H", + "value": 18.88888888888889 + }, + { + "validTime": "2024-05-10T13:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { + "validTime": "2024-05-10T14:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-10T15:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-10T16:00:00Z/PT1H", + "value": 26.666666666666668 + }, + { + "validTime": "2024-05-10T17:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { "validTime": "2024-05-10T18:00:00Z/PT1H", "value": 30 }, + { + "validTime": "2024-05-10T19:00:00Z/PT1H", + "value": 31.11111111111111 + }, + { + "validTime": "2024-05-10T20:00:00Z/PT1H", + "value": 31.666666666666668 + }, + { + "validTime": "2024-05-10T21:00:00Z/PT1H", + "value": 32.22222222222222 + }, + { + "validTime": "2024-05-10T22:00:00Z/PT1H", + "value": 31.11111111111111 + }, + { + "validTime": "2024-05-10T23:00:00Z/PT1H", + "value": 30.555555555555557 + }, + { + "validTime": "2024-05-11T00:00:00Z/PT1H", + "value": 29.444444444444443 + }, + { + "validTime": "2024-05-11T01:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { + "validTime": "2024-05-11T02:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-11T03:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-11T04:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-11T05:00:00Z/PT1H", + "value": 23.88888888888889 + }, + { + "validTime": "2024-05-11T06:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-11T07:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-11T08:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-11T09:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { "validTime": "2024-05-11T10:00:00Z/PT2H", "value": 20 }, + { + "validTime": "2024-05-11T12:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-11T13:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-11T14:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-11T15:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-11T16:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-11T17:00:00Z/PT1H", + "value": 28.88888888888889 + }, + { + "validTime": "2024-05-11T18:00:00Z/PT1H", + "value": 30.555555555555557 + }, + { + "validTime": "2024-05-11T19:00:00Z/PT1H", + "value": 31.11111111111111 + }, + { + "validTime": "2024-05-11T20:00:00Z/PT1H", + "value": 31.666666666666668 + }, + { + "validTime": "2024-05-11T21:00:00Z/PT1H", + "value": 32.22222222222222 + }, + { + "validTime": "2024-05-11T22:00:00Z/PT1H", + "value": 31.666666666666668 + }, + { + "validTime": "2024-05-11T23:00:00Z/PT1H", + "value": 30.555555555555557 + }, + { + "validTime": "2024-05-12T00:00:00Z/PT1H", + "value": 29.444444444444443 + }, + { + "validTime": "2024-05-12T01:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { + "validTime": "2024-05-12T02:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { "validTime": "2024-05-12T03:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-12T04:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-12T05:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-12T06:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-12T07:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-12T08:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-12T09:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { "validTime": "2024-05-12T10:00:00Z/PT2H", "value": 20 }, + { + "validTime": "2024-05-12T12:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-12T13:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-12T14:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-12T15:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-12T16:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-12T17:00:00Z/PT1H", + "value": 28.88888888888889 + }, + { + "validTime": "2024-05-12T18:00:00Z/PT1H", + "value": 30.555555555555557 + }, + { + "validTime": "2024-05-12T19:00:00Z/PT1H", + "value": 31.11111111111111 + }, + { + "validTime": "2024-05-12T20:00:00Z/PT1H", + "value": 31.666666666666668 + }, + { + "validTime": "2024-05-12T21:00:00Z/PT1H", + "value": 32.22222222222222 + }, + { + "validTime": "2024-05-12T22:00:00Z/PT1H", + "value": 31.11111111111111 + }, + { "validTime": "2024-05-12T23:00:00Z/PT1H", "value": 30 }, + { + "validTime": "2024-05-13T00:00:00Z/PT1H", + "value": 29.444444444444443 + }, + { + "validTime": "2024-05-13T01:00:00Z/PT1H", + "value": 27.77777777777778 + }, + { + "validTime": "2024-05-13T02:00:00Z/PT1H", + "value": 26.666666666666668 + }, + { "validTime": "2024-05-13T03:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-13T04:00:00Z/PT1H", + "value": 23.88888888888889 + }, + { + "validTime": "2024-05-13T05:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-13T06:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-13T07:00:00Z/PT1H", + "value": 21.666666666666668 + }, + { + "validTime": "2024-05-13T08:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { "validTime": "2024-05-13T09:00:00Z/PT1H", "value": 20 }, + { + "validTime": "2024-05-13T10:00:00Z/PT2H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-13T12:00:00Z/PT1H", + "value": 18.88888888888889 + }, + { + "validTime": "2024-05-13T13:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { + "validTime": "2024-05-13T14:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-13T15:00:00Z/PT1H", + "value": 23.88888888888889 + }, + { + "validTime": "2024-05-13T16:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-13T17:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-13T18:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { + "validTime": "2024-05-13T19:00:00Z/PT1H", + "value": 28.88888888888889 + }, + { + "validTime": "2024-05-13T20:00:00Z/PT2H", + "value": 29.444444444444443 + }, + { + "validTime": "2024-05-13T22:00:00Z/PT1H", + "value": 28.88888888888889 + }, + { + "validTime": "2024-05-13T23:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { + "validTime": "2024-05-14T00:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-14T01:00:00Z/PT1H", + "value": 26.11111111111111 + }, + { + "validTime": "2024-05-14T02:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-14T03:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-14T04:00:00Z/PT1H", + "value": 21.666666666666668 + }, + { + "validTime": "2024-05-14T05:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { "validTime": "2024-05-14T06:00:00Z/PT1H", "value": 20 }, + { + "validTime": "2024-05-14T07:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-14T08:00:00Z/PT1H", + "value": 18.333333333333332 + }, + { + "validTime": "2024-05-14T09:00:00Z/PT1H", + "value": 17.77777777777778 + }, + { + "validTime": "2024-05-14T10:00:00Z/PT2H", + "value": 17.22222222222222 + }, + { + "validTime": "2024-05-14T12:00:00Z/PT1H", + "value": 16.666666666666668 + }, + { + "validTime": "2024-05-14T13:00:00Z/PT1H", + "value": 17.77777777777778 + }, + { + "validTime": "2024-05-14T14:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-14T15:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { + "validTime": "2024-05-14T16:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { "validTime": "2024-05-14T17:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-14T18:00:00Z/PT1H", + "value": 26.666666666666668 + }, + { + "validTime": "2024-05-14T19:00:00Z/PT2H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-14T21:00:00Z/PT1H", + "value": 27.77777777777778 + }, + { + "validTime": "2024-05-14T22:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-14T23:00:00Z/PT2H", + "value": 26.666666666666668 + }, + { + "validTime": "2024-05-15T01:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-15T02:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-15T03:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-15T04:00:00Z/PT1H", + "value": 21.666666666666668 + }, + { + "validTime": "2024-05-15T05:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { + "validTime": "2024-05-15T06:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-15T07:00:00Z/PT1H", + "value": 18.88888888888889 + }, + { + "validTime": "2024-05-15T08:00:00Z/PT1H", + "value": 17.77777777777778 + }, + { "validTime": "2024-05-15T09:00:00Z/PT1H", "value": 17.22222222222222 } + ] + }, + "wetBulbGlobeTemperature": { + "uom": "wmoUnit:degC", + "values": [ + { + "validTime": "2024-05-07T04:00:00Z/PT2H", + "value": 20.555555555555557 + }, + { "validTime": "2024-05-07T06:00:00Z/PT2H", "value": 20 }, + { + "validTime": "2024-05-07T08:00:00Z/PT3H", + "value": 18.88888888888889 + }, + { + "validTime": "2024-05-07T11:00:00Z/PT1H", + "value": 18.333333333333332 + }, + { + "validTime": "2024-05-07T12:00:00Z/PT1H", + "value": 17.77777777777778 + }, + { + "validTime": "2024-05-07T13:00:00Z/PT1H", + "value": 18.333333333333332 + }, + { "validTime": "2024-05-07T14:00:00Z/PT1H", "value": 20 }, + { + "validTime": "2024-05-07T15:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-07T16:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-07T17:00:00Z/PT1H", + "value": 26.11111111111111 + }, + { + "validTime": "2024-05-07T18:00:00Z/PT3H", + "value": 27.77777777777778 + }, + { + "validTime": "2024-05-07T21:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-07T22:00:00Z/PT1H", + "value": 26.11111111111111 + }, + { + "validTime": "2024-05-07T23:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-08T00:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-08T01:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-08T02:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-08T03:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { "validTime": "2024-05-08T04:00:00Z/PT1H", "value": 20 }, + { + "validTime": "2024-05-08T05:00:00Z/PT1H", + "value": 18.88888888888889 + }, + { + "validTime": "2024-05-08T06:00:00Z/PT1H", + "value": 18.333333333333332 + }, + { + "validTime": "2024-05-08T07:00:00Z/PT1H", + "value": 17.77777777777778 + }, + { + "validTime": "2024-05-08T08:00:00Z/PT1H", + "value": 17.22222222222222 + }, + { + "validTime": "2024-05-08T09:00:00Z/PT3H", + "value": 16.11111111111111 + }, + { + "validTime": "2024-05-08T12:00:00Z/PT1H", + "value": 15.555555555555555 + }, + { + "validTime": "2024-05-08T13:00:00Z/PT1H", + "value": 16.666666666666668 + }, + { + "validTime": "2024-05-08T14:00:00Z/PT1H", + "value": 17.77777777777778 + }, + { "validTime": "2024-05-08T15:00:00Z/PT1H", "value": 20 }, + { + "validTime": "2024-05-08T16:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-08T17:00:00Z/PT1H", + "value": 23.88888888888889 + }, + { + "validTime": "2024-05-08T18:00:00Z/PT2H", + "value": 26.11111111111111 + }, + { + "validTime": "2024-05-08T20:00:00Z/PT1H", + "value": 26.666666666666668 + }, + { + "validTime": "2024-05-08T21:00:00Z/PT1H", + "value": 26.11111111111111 + }, + { "validTime": "2024-05-08T22:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-08T23:00:00Z/PT2H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-09T01:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-09T02:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-09T03:00:00Z/PT1H", + "value": 21.666666666666668 + }, + { + "validTime": "2024-05-09T04:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-09T05:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { "validTime": "2024-05-09T06:00:00Z/PT1H", "value": 20 }, + { + "validTime": "2024-05-09T07:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-09T08:00:00Z/PT1H", + "value": 18.88888888888889 + }, + { + "validTime": "2024-05-09T09:00:00Z/PT2H", + "value": 18.333333333333332 + }, + { + "validTime": "2024-05-09T11:00:00Z/PT2H", + "value": 17.77777777777778 + }, + { + "validTime": "2024-05-09T13:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-09T14:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { + "validTime": "2024-05-09T15:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-09T16:00:00Z/PT1H", + "value": 23.88888888888889 + }, + { + "validTime": "2024-05-09T17:00:00Z/PT1H", + "value": 26.11111111111111 + }, + { + "validTime": "2024-05-09T18:00:00Z/PT3H", + "value": 27.77777777777778 + }, + { + "validTime": "2024-05-09T21:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-09T22:00:00Z/PT1H", + "value": 26.11111111111111 + }, + { + "validTime": "2024-05-09T23:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-10T00:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-10T01:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-10T02:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-10T03:00:00Z/PT1H", + "value": 21.666666666666668 + }, + { + "validTime": "2024-05-10T04:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { "validTime": "2024-05-10T05:00:00Z/PT1H", "value": 20 }, + { + "validTime": "2024-05-10T06:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-10T07:00:00Z/PT1H", + "value": 18.88888888888889 + }, + { + "validTime": "2024-05-10T08:00:00Z/PT1H", + "value": 18.333333333333332 + }, + { + "validTime": "2024-05-10T09:00:00Z/PT3H", + "value": 17.22222222222222 + }, + { + "validTime": "2024-05-10T12:00:00Z/PT1H", + "value": 16.666666666666668 + }, + { + "validTime": "2024-05-10T13:00:00Z/PT1H", + "value": 18.333333333333332 + }, + { "validTime": "2024-05-10T14:00:00Z/PT1H", "value": 20 }, + { + "validTime": "2024-05-10T15:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-10T16:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { "validTime": "2024-05-10T17:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-10T18:00:00Z/PT3H", + "value": 26.666666666666668 + }, + { + "validTime": "2024-05-10T21:00:00Z/PT1H", + "value": 26.11111111111111 + }, + { "validTime": "2024-05-10T22:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-10T23:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-11T00:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-11T01:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-11T02:00:00Z/PT1H", + "value": 21.666666666666668 + }, + { + "validTime": "2024-05-11T03:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-11T04:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { "validTime": "2024-05-11T05:00:00Z/PT1H", "value": 20 }, + { + "validTime": "2024-05-11T06:00:00Z/PT2H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-11T08:00:00Z/PT1H", + "value": 18.88888888888889 + }, + { + "validTime": "2024-05-11T09:00:00Z/PT2H", + "value": 18.333333333333332 + }, + { + "validTime": "2024-05-11T11:00:00Z/PT2H", + "value": 17.77777777777778 + }, + { + "validTime": "2024-05-11T13:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-11T14:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { + "validTime": "2024-05-11T15:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-11T16:00:00Z/PT1H", + "value": 23.88888888888889 + }, + { + "validTime": "2024-05-11T17:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-11T18:00:00Z/PT1H", + "value": 26.666666666666668 + }, + { + "validTime": "2024-05-11T19:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-11T20:00:00Z/PT2H", + "value": 26.666666666666668 + }, + { + "validTime": "2024-05-11T22:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-11T23:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-12T00:00:00Z/PT1H", + "value": 23.88888888888889 + }, + { + "validTime": "2024-05-12T01:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-12T02:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-12T03:00:00Z/PT1H", + "value": 21.666666666666668 + }, + { + "validTime": "2024-05-12T04:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-12T05:00:00Z/PT2H", + "value": 20.555555555555557 + }, + { "validTime": "2024-05-12T07:00:00Z/PT1H", "value": 20 }, + { + "validTime": "2024-05-12T08:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-12T09:00:00Z/PT3H", + "value": 18.88888888888889 + }, + { + "validTime": "2024-05-12T12:00:00Z/PT1H", + "value": 18.333333333333332 + }, + { "validTime": "2024-05-12T13:00:00Z/PT1H", "value": 20 }, + { + "validTime": "2024-05-12T14:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-12T15:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-12T16:00:00Z/PT1H", + "value": 23.88888888888889 + }, + { + "validTime": "2024-05-12T17:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-12T18:00:00Z/PT2H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-12T20:00:00Z/PT1H", + "value": 26.666666666666668 + }, + { + "validTime": "2024-05-12T21:00:00Z/PT1H", + "value": 26.11111111111111 + }, + { "validTime": "2024-05-12T22:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-12T23:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-13T00:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-13T01:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-13T02:00:00Z/PT1H", + "value": 21.666666666666668 + }, + { + "validTime": "2024-05-13T03:00:00Z/PT1H", + "value": 20.555555555555557 + }, + { "validTime": "2024-05-13T04:00:00Z/PT1H", "value": 20 }, + { + "validTime": "2024-05-13T05:00:00Z/PT2H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-13T07:00:00Z/PT1H", + "value": 18.333333333333332 + }, + { + "validTime": "2024-05-13T08:00:00Z/PT1H", + "value": 17.77777777777778 + }, + { + "validTime": "2024-05-13T09:00:00Z/PT2H", + "value": 17.22222222222222 + }, + { + "validTime": "2024-05-13T11:00:00Z/PT2H", + "value": 16.666666666666668 + }, + { + "validTime": "2024-05-13T13:00:00Z/PT1H", + "value": 17.77777777777778 + }, + { + "validTime": "2024-05-13T14:00:00Z/PT1H", + "value": 18.88888888888889 + }, + { "validTime": "2024-05-13T15:00:00Z/PT1H", "value": 20 }, + { + "validTime": "2024-05-13T16:00:00Z/PT1H", + "value": 21.666666666666668 + }, + { + "validTime": "2024-05-13T17:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-13T18:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { "validTime": "2024-05-13T19:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-13T20:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-13T21:00:00Z/PT1H", + "value": 23.88888888888889 + }, + { + "validTime": "2024-05-13T22:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-13T23:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-14T00:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { "validTime": "2024-05-14T01:00:00Z/PT1H", "value": 20 }, + { + "validTime": "2024-05-14T02:00:00Z/PT1H", + "value": 18.88888888888889 + }, + { + "validTime": "2024-05-14T03:00:00Z/PT1H", + "value": 17.77777777777778 + }, + { + "validTime": "2024-05-14T04:00:00Z/PT1H", + "value": 17.22222222222222 + }, + { + "validTime": "2024-05-14T05:00:00Z/PT1H", + "value": 16.666666666666668 + }, + { + "validTime": "2024-05-14T06:00:00Z/PT1H", + "value": 16.11111111111111 + }, + { + "validTime": "2024-05-14T07:00:00Z/PT1H", + "value": 15.555555555555555 + }, + { "validTime": "2024-05-14T08:00:00Z/PT1H", "value": 15 }, + { + "validTime": "2024-05-14T09:00:00Z/PT3H", + "value": 14.444444444444445 + }, + { + "validTime": "2024-05-14T12:00:00Z/PT1H", + "value": 13.88888888888889 + }, + { + "validTime": "2024-05-14T13:00:00Z/PT1H", + "value": 15.555555555555555 + }, + { + "validTime": "2024-05-14T14:00:00Z/PT1H", + "value": 16.11111111111111 + }, + { + "validTime": "2024-05-14T15:00:00Z/PT1H", + "value": 17.22222222222222 + }, + { + "validTime": "2024-05-14T16:00:00Z/PT1H", + "value": 19.444444444444443 + }, + { + "validTime": "2024-05-14T17:00:00Z/PT1H", + "value": 21.666666666666668 + }, + { + "validTime": "2024-05-14T18:00:00Z/PT2H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-14T20:00:00Z/PT2H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-14T22:00:00Z/PT1H", + "value": 21.666666666666668 + }, + { + "validTime": "2024-05-14T23:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { "validTime": "2024-05-15T00:00:00Z/PT1H", "value": 20 } + ] + }, + "heatIndex": { + "uom": "wmoUnit:degC", + "values": [ + { "validTime": "2024-05-07T04:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-07T05:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-07T06:00:00Z/PT1H", + "value": 23.88888888888889 + }, + { + "validTime": "2024-05-07T07:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-07T08:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-07T09:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { "validTime": "2024-05-07T10:00:00Z/PT4H", "value": null }, + { + "validTime": "2024-05-07T14:00:00Z/PT1H", + "value": 21.666666666666668 + }, + { + "validTime": "2024-05-07T15:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-07T16:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { "validTime": "2024-05-07T17:00:00Z/PT1H", "value": 30 }, + { + "validTime": "2024-05-07T18:00:00Z/PT1H", + "value": 32.22222222222222 + }, + { + "validTime": "2024-05-07T19:00:00Z/PT1H", + "value": 32.77777777777778 + }, + { + "validTime": "2024-05-07T20:00:00Z/PT1H", + "value": 33.333333333333336 + }, + { + "validTime": "2024-05-07T21:00:00Z/PT1H", + "value": 33.888888888888886 + }, + { + "validTime": "2024-05-07T22:00:00Z/PT1H", + "value": 33.333333333333336 + }, + { + "validTime": "2024-05-07T23:00:00Z/PT1H", + "value": 32.22222222222222 + }, + { + "validTime": "2024-05-08T00:00:00Z/PT1H", + "value": 31.11111111111111 + }, + { + "validTime": "2024-05-08T01:00:00Z/PT1H", + "value": 29.444444444444443 + }, + { + "validTime": "2024-05-08T02:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { + "validTime": "2024-05-08T03:00:00Z/PT1H", + "value": 26.666666666666668 + }, + { + "validTime": "2024-05-08T04:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-08T05:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-08T06:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-08T07:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-08T08:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { "validTime": "2024-05-08T09:00:00Z/PT5H", "value": null }, + { + "validTime": "2024-05-08T14:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-08T15:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-08T16:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-08T17:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-08T18:00:00Z/PT1H", + "value": 29.444444444444443 + }, + { "validTime": "2024-05-08T19:00:00Z/PT1H", "value": 30 }, + { + "validTime": "2024-05-08T20:00:00Z/PT2H", + "value": 31.11111111111111 + }, + { + "validTime": "2024-05-08T22:00:00Z/PT1H", + "value": 30.555555555555557 + }, + { "validTime": "2024-05-08T23:00:00Z/PT1H", "value": 30 }, + { + "validTime": "2024-05-09T00:00:00Z/PT1H", + "value": 29.444444444444443 + }, + { + "validTime": "2024-05-09T01:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { + "validTime": "2024-05-09T02:00:00Z/PT1H", + "value": 27.77777777777778 + }, + { + "validTime": "2024-05-09T03:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-09T04:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-09T05:00:00Z/PT1H", + "value": 23.88888888888889 + }, + { + "validTime": "2024-05-09T06:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-09T07:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-09T08:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { "validTime": "2024-05-09T09:00:00Z/PT4H", "value": null }, + { + "validTime": "2024-05-09T13:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-09T14:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { "validTime": "2024-05-09T15:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-09T16:00:00Z/PT1H", + "value": 27.77777777777778 + }, + { "validTime": "2024-05-09T17:00:00Z/PT1H", "value": 30 }, + { + "validTime": "2024-05-09T18:00:00Z/PT1H", + "value": 31.666666666666668 + }, + { + "validTime": "2024-05-09T19:00:00Z/PT1H", + "value": 32.22222222222222 + }, + { + "validTime": "2024-05-09T20:00:00Z/PT1H", + "value": 33.333333333333336 + }, + { + "validTime": "2024-05-09T21:00:00Z/PT1H", + "value": 33.888888888888886 + }, + { + "validTime": "2024-05-09T22:00:00Z/PT1H", + "value": 32.77777777777778 + }, + { + "validTime": "2024-05-09T23:00:00Z/PT1H", + "value": 31.666666666666668 + }, + { + "validTime": "2024-05-10T00:00:00Z/PT1H", + "value": 30.555555555555557 + }, + { + "validTime": "2024-05-10T01:00:00Z/PT1H", + "value": 28.88888888888889 + }, + { + "validTime": "2024-05-10T02:00:00Z/PT1H", + "value": 27.77777777777778 + }, + { + "validTime": "2024-05-10T03:00:00Z/PT1H", + "value": 26.11111111111111 + }, + { "validTime": "2024-05-10T04:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-10T05:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-10T06:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-10T07:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-10T08:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { "validTime": "2024-05-10T09:00:00Z/PT5H", "value": null }, + { + "validTime": "2024-05-10T14:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-10T15:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-10T16:00:00Z/PT1H", + "value": 26.666666666666668 + }, + { + "validTime": "2024-05-10T17:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { "validTime": "2024-05-10T18:00:00Z/PT1H", "value": 30 }, + { + "validTime": "2024-05-10T19:00:00Z/PT1H", + "value": 31.11111111111111 + }, + { + "validTime": "2024-05-10T20:00:00Z/PT1H", + "value": 31.666666666666668 + }, + { + "validTime": "2024-05-10T21:00:00Z/PT1H", + "value": 32.22222222222222 + }, + { + "validTime": "2024-05-10T22:00:00Z/PT1H", + "value": 31.11111111111111 + }, + { + "validTime": "2024-05-10T23:00:00Z/PT1H", + "value": 30.555555555555557 + }, + { + "validTime": "2024-05-11T00:00:00Z/PT1H", + "value": 29.444444444444443 + }, + { + "validTime": "2024-05-11T01:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { + "validTime": "2024-05-11T02:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-11T03:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-11T04:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-11T05:00:00Z/PT1H", + "value": 23.88888888888889 + }, + { + "validTime": "2024-05-11T06:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-11T07:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-11T08:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { "validTime": "2024-05-11T09:00:00Z/PT4H", "value": null }, + { + "validTime": "2024-05-11T13:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-11T14:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-11T15:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-11T16:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-11T17:00:00Z/PT1H", + "value": 28.88888888888889 + }, + { + "validTime": "2024-05-11T18:00:00Z/PT1H", + "value": 30.555555555555557 + }, + { + "validTime": "2024-05-11T19:00:00Z/PT1H", + "value": 31.11111111111111 + }, + { + "validTime": "2024-05-11T20:00:00Z/PT1H", + "value": 31.666666666666668 + }, + { + "validTime": "2024-05-11T21:00:00Z/PT1H", + "value": 32.22222222222222 + }, + { + "validTime": "2024-05-11T22:00:00Z/PT1H", + "value": 31.666666666666668 + }, + { + "validTime": "2024-05-11T23:00:00Z/PT1H", + "value": 30.555555555555557 + }, + { + "validTime": "2024-05-12T00:00:00Z/PT1H", + "value": 29.444444444444443 + }, + { + "validTime": "2024-05-12T01:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { + "validTime": "2024-05-12T02:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { "validTime": "2024-05-12T03:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-12T04:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-12T05:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-12T06:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-12T07:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-12T08:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { "validTime": "2024-05-12T09:00:00Z/PT4H", "value": null }, + { + "validTime": "2024-05-12T13:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { + "validTime": "2024-05-12T14:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-12T15:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-12T16:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-12T17:00:00Z/PT1H", + "value": 28.88888888888889 + }, + { + "validTime": "2024-05-12T18:00:00Z/PT1H", + "value": 30.555555555555557 + }, + { + "validTime": "2024-05-12T19:00:00Z/PT1H", + "value": 31.11111111111111 + }, + { + "validTime": "2024-05-12T20:00:00Z/PT1H", + "value": 31.666666666666668 + }, + { + "validTime": "2024-05-12T21:00:00Z/PT1H", + "value": 32.22222222222222 + }, + { + "validTime": "2024-05-12T22:00:00Z/PT1H", + "value": 31.11111111111111 + }, + { "validTime": "2024-05-12T23:00:00Z/PT1H", "value": 30 }, + { + "validTime": "2024-05-13T00:00:00Z/PT1H", + "value": 29.444444444444443 + }, + { + "validTime": "2024-05-13T01:00:00Z/PT1H", + "value": 27.77777777777778 + }, + { + "validTime": "2024-05-13T02:00:00Z/PT1H", + "value": 26.666666666666668 + }, + { "validTime": "2024-05-13T03:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-13T04:00:00Z/PT1H", + "value": 23.88888888888889 + }, + { + "validTime": "2024-05-13T05:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-13T06:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-13T07:00:00Z/PT1H", + "value": 21.666666666666668 + }, + { "validTime": "2024-05-13T08:00:00Z/PT6H", "value": null }, + { + "validTime": "2024-05-13T14:00:00Z/PT1H", + "value": 22.22222222222222 + }, + { + "validTime": "2024-05-13T15:00:00Z/PT1H", + "value": 23.88888888888889 + }, + { + "validTime": "2024-05-13T16:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-13T17:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-13T18:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { + "validTime": "2024-05-13T19:00:00Z/PT1H", + "value": 28.88888888888889 + }, + { + "validTime": "2024-05-13T20:00:00Z/PT2H", + "value": 29.444444444444443 + }, + { + "validTime": "2024-05-13T22:00:00Z/PT1H", + "value": 28.88888888888889 + }, + { + "validTime": "2024-05-13T23:00:00Z/PT1H", + "value": 28.333333333333332 + }, + { + "validTime": "2024-05-14T00:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-14T01:00:00Z/PT1H", + "value": 26.11111111111111 + }, + { + "validTime": "2024-05-14T02:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-14T03:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { + "validTime": "2024-05-14T04:00:00Z/PT1H", + "value": 21.666666666666668 + }, + { + "validTime": "2024-05-14T05:00:00Z/PT1H", + "value": 21.11111111111111 + }, + { "validTime": "2024-05-14T06:00:00Z/PT10H", "value": null }, + { + "validTime": "2024-05-14T16:00:00Z/PT1H", + "value": 22.77777777777778 + }, + { "validTime": "2024-05-14T17:00:00Z/PT1H", "value": 25 }, + { + "validTime": "2024-05-14T18:00:00Z/PT1H", + "value": 26.666666666666668 + }, + { + "validTime": "2024-05-14T19:00:00Z/PT2H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-14T21:00:00Z/PT1H", + "value": 27.77777777777778 + }, + { + "validTime": "2024-05-14T22:00:00Z/PT1H", + "value": 27.22222222222222 + }, + { + "validTime": "2024-05-14T23:00:00Z/PT2H", + "value": 26.666666666666668 + }, + { + "validTime": "2024-05-15T01:00:00Z/PT1H", + "value": 25.555555555555557 + }, + { + "validTime": "2024-05-15T02:00:00Z/PT1H", + "value": 24.444444444444443 + }, + { + "validTime": "2024-05-15T03:00:00Z/PT1H", + "value": 23.333333333333332 + }, + { + "validTime": "2024-05-15T04:00:00Z/PT1H", + "value": 21.666666666666668 + }, + { "validTime": "2024-05-15T05:00:00Z/PT5H", "value": null } + ] + }, + "windChill": { + "uom": "wmoUnit:degC", + "values": [{ "validTime": "2024-05-07T04:00:00Z/P8DT6H", "value": null }] + }, + "skyCover": { + "uom": "wmoUnit:percent", + "values": [ + { "validTime": "2024-05-07T04:00:00Z/PT5H", "value": 1 }, + { "validTime": "2024-05-07T09:00:00Z/PT1H", "value": 4 }, + { "validTime": "2024-05-07T10:00:00Z/PT1H", "value": 3 }, + { "validTime": "2024-05-07T11:00:00Z/PT2H", "value": 4 }, + { "validTime": "2024-05-07T13:00:00Z/PT1H", "value": 1 }, + { "validTime": "2024-05-07T14:00:00Z/PT1H", "value": 3 }, + { "validTime": "2024-05-07T15:00:00Z/PT2H", "value": 5 }, + { "validTime": "2024-05-07T17:00:00Z/PT2H", "value": 6 }, + { "validTime": "2024-05-07T19:00:00Z/PT1H", "value": 4 }, + { "validTime": "2024-05-07T20:00:00Z/PT4H", "value": 3 }, + { "validTime": "2024-05-08T00:00:00Z/PT1H", "value": 4 }, + { "validTime": "2024-05-08T01:00:00Z/PT3H", "value": 3 }, + { "validTime": "2024-05-08T04:00:00Z/PT3H", "value": 1 }, + { "validTime": "2024-05-08T07:00:00Z/PT1H", "value": 2 }, + { "validTime": "2024-05-08T08:00:00Z/PT1H", "value": 3 }, + { "validTime": "2024-05-08T09:00:00Z/PT2H", "value": 5 }, + { "validTime": "2024-05-08T11:00:00Z/PT2H", "value": 6 }, + { "validTime": "2024-05-08T13:00:00Z/PT1H", "value": 5 }, + { "validTime": "2024-05-08T14:00:00Z/PT1H", "value": 7 }, + { "validTime": "2024-05-08T15:00:00Z/PT4H", "value": 6 }, + { "validTime": "2024-05-08T19:00:00Z/PT1H", "value": 5 }, + { "validTime": "2024-05-08T20:00:00Z/PT1H", "value": 4 }, + { "validTime": "2024-05-08T21:00:00Z/PT7H", "value": 3 }, + { "validTime": "2024-05-09T04:00:00Z/PT2H", "value": 2 }, + { "validTime": "2024-05-09T06:00:00Z/PT1H", "value": 1 }, + { "validTime": "2024-05-09T07:00:00Z/PT2H", "value": 2 }, + { "validTime": "2024-05-09T09:00:00Z/PT5H", "value": 3 }, + { "validTime": "2024-05-09T14:00:00Z/PT5H", "value": 4 }, + { "validTime": "2024-05-09T19:00:00Z/PT2H", "value": 3 }, + { "validTime": "2024-05-09T21:00:00Z/PT2H", "value": 2 }, + { "validTime": "2024-05-09T23:00:00Z/PT3H", "value": 3 }, + { "validTime": "2024-05-10T02:00:00Z/PT3H", "value": 4 }, + { "validTime": "2024-05-10T05:00:00Z/PT2H", "value": 3 }, + { "validTime": "2024-05-10T07:00:00Z/PT1H", "value": 5 }, + { "validTime": "2024-05-10T08:00:00Z/PT1H", "value": 7 }, + { "validTime": "2024-05-10T09:00:00Z/PT1H", "value": 9 }, + { "validTime": "2024-05-10T10:00:00Z/PT1H", "value": 10 }, + { "validTime": "2024-05-10T11:00:00Z/PT1H", "value": 12 }, + { "validTime": "2024-05-10T12:00:00Z/PT1H", "value": 13 }, + { "validTime": "2024-05-10T13:00:00Z/PT1H", "value": 12 }, + { "validTime": "2024-05-10T14:00:00Z/PT1H", "value": 10 }, + { "validTime": "2024-05-10T15:00:00Z/PT4H", "value": 9 }, + { "validTime": "2024-05-10T19:00:00Z/PT1H", "value": 7 }, + { "validTime": "2024-05-10T20:00:00Z/PT1H", "value": 6 }, + { "validTime": "2024-05-10T21:00:00Z/PT1H", "value": 4 }, + { "validTime": "2024-05-10T22:00:00Z/PT1H", "value": 5 }, + { "validTime": "2024-05-10T23:00:00Z/PT1H", "value": 6 }, + { "validTime": "2024-05-11T00:00:00Z/PT2H", "value": 7 }, + { "validTime": "2024-05-11T02:00:00Z/PT2H", "value": 8 }, + { "validTime": "2024-05-11T04:00:00Z/PT1H", "value": 6 }, + { "validTime": "2024-05-11T05:00:00Z/PT1H", "value": 4 }, + { "validTime": "2024-05-11T06:00:00Z/PT1H", "value": 2 }, + { "validTime": "2024-05-11T07:00:00Z/PT1H", "value": 5 }, + { "validTime": "2024-05-11T08:00:00Z/PT1H", "value": 7 }, + { "validTime": "2024-05-11T09:00:00Z/PT1H", "value": 10 }, + { "validTime": "2024-05-11T10:00:00Z/PT1H", "value": 12 }, + { "validTime": "2024-05-11T11:00:00Z/PT1H", "value": 15 }, + { "validTime": "2024-05-11T12:00:00Z/PT1H", "value": 17 }, + { "validTime": "2024-05-11T13:00:00Z/PT1H", "value": 22 }, + { "validTime": "2024-05-11T14:00:00Z/PT1H", "value": 26 }, + { "validTime": "2024-05-11T15:00:00Z/PT1H", "value": 31 }, + { "validTime": "2024-05-11T16:00:00Z/PT1H", "value": 36 }, + { "validTime": "2024-05-11T17:00:00Z/PT1H", "value": 40 }, + { "validTime": "2024-05-11T18:00:00Z/PT1H", "value": 45 }, + { "validTime": "2024-05-11T19:00:00Z/PT1H", "value": 46 }, + { "validTime": "2024-05-11T20:00:00Z/PT1H", "value": 47 }, + { "validTime": "2024-05-11T21:00:00Z/PT2H", "value": 48 }, + { "validTime": "2024-05-11T23:00:00Z/PT1H", "value": 49 }, + { "validTime": "2024-05-12T00:00:00Z/PT1H", "value": 50 }, + { "validTime": "2024-05-12T01:00:00Z/PT1H", "value": 48 }, + { "validTime": "2024-05-12T02:00:00Z/PT1H", "value": 46 }, + { "validTime": "2024-05-12T03:00:00Z/PT1H", "value": 45 }, + { "validTime": "2024-05-12T04:00:00Z/PT1H", "value": 43 }, + { "validTime": "2024-05-12T05:00:00Z/PT1H", "value": 41 }, + { "validTime": "2024-05-12T06:00:00Z/PT1H", "value": 39 }, + { "validTime": "2024-05-12T07:00:00Z/PT1H", "value": 30 }, + { "validTime": "2024-05-12T08:00:00Z/PT1H", "value": 22 }, + { "validTime": "2024-05-12T09:00:00Z/PT1H", "value": 13 }, + { "validTime": "2024-05-12T10:00:00Z/PT1H", "value": 12 }, + { "validTime": "2024-05-12T11:00:00Z/PT1H", "value": 11 }, + { "validTime": "2024-05-12T12:00:00Z/PT1H", "value": 10 }, + { "validTime": "2024-05-12T13:00:00Z/PT2H", "value": 11 }, + { "validTime": "2024-05-12T15:00:00Z/PT1H", "value": 12 }, + { "validTime": "2024-05-12T16:00:00Z/PT1H", "value": 10 }, + { "validTime": "2024-05-12T17:00:00Z/PT1H", "value": 9 }, + { "validTime": "2024-05-12T18:00:00Z/PT1H", "value": 7 }, + { "validTime": "2024-05-12T19:00:00Z/PT1H", "value": 6 }, + { "validTime": "2024-05-12T20:00:00Z/PT1H", "value": 4 }, + { "validTime": "2024-05-12T21:00:00Z/PT2H", "value": 3 }, + { "validTime": "2024-05-12T23:00:00Z/PT3H", "value": 2 }, + { "validTime": "2024-05-13T02:00:00Z/PT2H", "value": 3 }, + { "validTime": "2024-05-13T04:00:00Z/PT2H", "value": 2 }, + { "validTime": "2024-05-13T06:00:00Z/PT1H", "value": 1 }, + { "validTime": "2024-05-13T07:00:00Z/PT2H", "value": 2 }, + { "validTime": "2024-05-13T09:00:00Z/PT1H", "value": 3 }, + { "validTime": "2024-05-13T10:00:00Z/PT2H", "value": 4 }, + { "validTime": "2024-05-13T12:00:00Z/PT2H", "value": 5 }, + { "validTime": "2024-05-13T14:00:00Z/PT2H", "value": 4 }, + { "validTime": "2024-05-13T16:00:00Z/PT2H", "value": 5 }, + { "validTime": "2024-05-13T18:00:00Z/PT4H", "value": 6 }, + { "validTime": "2024-05-13T22:00:00Z/PT2H", "value": 7 }, + { "validTime": "2024-05-14T00:00:00Z/PT1H", "value": 8 }, + { "validTime": "2024-05-14T01:00:00Z/PT1H", "value": 7 }, + { "validTime": "2024-05-14T02:00:00Z/PT1H", "value": 5 }, + { "validTime": "2024-05-14T03:00:00Z/PT2H", "value": 4 }, + { "validTime": "2024-05-14T05:00:00Z/PT2H", "value": 3 }, + { "validTime": "2024-05-14T07:00:00Z/PT1H", "value": 5 }, + { "validTime": "2024-05-14T08:00:00Z/PT1H", "value": 6 }, + { "validTime": "2024-05-14T09:00:00Z/PT1H", "value": 8 }, + { "validTime": "2024-05-14T10:00:00Z/PT1H", "value": 9 }, + { "validTime": "2024-05-14T11:00:00Z/PT1H", "value": 10 }, + { "validTime": "2024-05-14T12:00:00Z/PT1H", "value": 11 }, + { "validTime": "2024-05-14T13:00:00Z/PT2H", "value": 10 }, + { "validTime": "2024-05-14T15:00:00Z/PT4H", "value": 9 }, + { "validTime": "2024-05-14T19:00:00Z/PT1H", "value": 8 }, + { "validTime": "2024-05-14T20:00:00Z/PT1H", "value": 7 }, + { "validTime": "2024-05-14T21:00:00Z/PT2H", "value": 6 }, + { "validTime": "2024-05-14T23:00:00Z/PT2H", "value": 7 } + ] + }, + "windDirection": { + "uom": "wmoUnit:degree_(angle)", + "values": [ + { "validTime": "2024-05-07T04:00:00Z/PT1H", "value": 140 }, + { "validTime": "2024-05-07T05:00:00Z/PT2H", "value": 120 }, + { "validTime": "2024-05-07T07:00:00Z/PT1H", "value": 110 }, + { "validTime": "2024-05-07T08:00:00Z/PT1H", "value": 60 }, + { "validTime": "2024-05-07T09:00:00Z/PT1H", "value": 100 }, + { "validTime": "2024-05-07T10:00:00Z/PT1H", "value": 40 }, + { "validTime": "2024-05-07T11:00:00Z/PT1H", "value": 10 }, + { "validTime": "2024-05-07T12:00:00Z/PT2H", "value": 0 }, + { "validTime": "2024-05-07T14:00:00Z/PT1H", "value": 10 }, + { "validTime": "2024-05-07T15:00:00Z/PT2H", "value": 20 }, + { "validTime": "2024-05-07T17:00:00Z/PT1H", "value": 30 }, + { "validTime": "2024-05-07T18:00:00Z/PT2H", "value": 40 }, + { "validTime": "2024-05-07T20:00:00Z/PT3H", "value": 30 }, + { "validTime": "2024-05-07T23:00:00Z/PT5H", "value": 20 }, + { "validTime": "2024-05-08T04:00:00Z/PT2H", "value": 30 }, + { "validTime": "2024-05-08T06:00:00Z/PT5H", "value": 20 }, + { "validTime": "2024-05-08T11:00:00Z/PT1H", "value": 30 }, + { "validTime": "2024-05-08T12:00:00Z/PT1H", "value": 40 }, + { "validTime": "2024-05-08T13:00:00Z/PT1H", "value": 50 }, + { "validTime": "2024-05-08T14:00:00Z/PT1H", "value": 70 }, + { "validTime": "2024-05-08T15:00:00Z/PT1H", "value": 90 }, + { "validTime": "2024-05-08T16:00:00Z/PT1H", "value": 100 }, + { "validTime": "2024-05-08T17:00:00Z/PT1H", "value": 110 }, + { "validTime": "2024-05-08T18:00:00Z/PT1H", "value": 100 }, + { "validTime": "2024-05-08T19:00:00Z/PT2H", "value": 10 }, + { "validTime": "2024-05-08T21:00:00Z/PT1H", "value": 0 }, + { "validTime": "2024-05-08T22:00:00Z/PT1H", "value": 30 }, + { "validTime": "2024-05-08T23:00:00Z/PT1H", "value": 100 }, + { "validTime": "2024-05-09T00:00:00Z/PT2H", "value": 130 }, + { "validTime": "2024-05-09T02:00:00Z/PT6H", "value": 140 }, + { "validTime": "2024-05-09T08:00:00Z/PT6H", "value": 150 }, + { "validTime": "2024-05-09T14:00:00Z/PT3H", "value": 160 }, + { "validTime": "2024-05-09T17:00:00Z/PT2H", "value": 170 }, + { "validTime": "2024-05-09T19:00:00Z/PT1H", "value": 160 }, + { "validTime": "2024-05-09T20:00:00Z/PT1H", "value": 150 }, + { "validTime": "2024-05-09T21:00:00Z/PT2H", "value": 140 }, + { "validTime": "2024-05-09T23:00:00Z/PT1H", "value": 130 }, + { "validTime": "2024-05-10T00:00:00Z/PT2H", "value": 120 }, + { "validTime": "2024-05-10T02:00:00Z/PT3H", "value": 110 }, + { "validTime": "2024-05-10T05:00:00Z/PT6H", "value": 120 }, + { "validTime": "2024-05-10T11:00:00Z/PT1H", "value": 110 }, + { "validTime": "2024-05-10T12:00:00Z/PT2H", "value": 100 }, + { "validTime": "2024-05-10T14:00:00Z/PT1H", "value": 90 }, + { "validTime": "2024-05-10T15:00:00Z/PT2H", "value": 80 }, + { "validTime": "2024-05-10T17:00:00Z/PT1H", "value": 70 }, + { "validTime": "2024-05-10T18:00:00Z/PT5H", "value": 60 }, + { "validTime": "2024-05-10T23:00:00Z/PT3H", "value": 70 }, + { "validTime": "2024-05-11T02:00:00Z/PT3H", "value": 80 }, + { "validTime": "2024-05-11T05:00:00Z/PT6H", "value": 70 }, + { "validTime": "2024-05-11T11:00:00Z/PT3H", "value": 60 }, + { "validTime": "2024-05-11T14:00:00Z/PT6H", "value": 70 }, + { "validTime": "2024-05-11T20:00:00Z/PT3H", "value": 60 }, + { "validTime": "2024-05-11T23:00:00Z/PT2H", "value": 70 }, + { "validTime": "2024-05-12T01:00:00Z/PT1H", "value": 80 }, + { "validTime": "2024-05-12T02:00:00Z/PT2H", "value": 90 }, + { "validTime": "2024-05-12T04:00:00Z/PT1H", "value": 100 }, + { "validTime": "2024-05-12T05:00:00Z/PT3H", "value": 110 }, + { "validTime": "2024-05-12T08:00:00Z/PT3H", "value": 100 }, + { "validTime": "2024-05-12T11:00:00Z/PT1H", "value": 90 }, + { "validTime": "2024-05-12T12:00:00Z/PT4H", "value": 80 }, + { "validTime": "2024-05-12T16:00:00Z/PT1H", "value": 70 }, + { "validTime": "2024-05-12T17:00:00Z/PT1H", "value": 40 }, + { "validTime": "2024-05-12T18:00:00Z/PT5H", "value": 30 }, + { "validTime": "2024-05-12T23:00:00Z/PT3H", "value": 40 }, + { "validTime": "2024-05-13T02:00:00Z/PT5H", "value": 50 }, + { "validTime": "2024-05-13T07:00:00Z/PT1H", "value": 40 }, + { "validTime": "2024-05-13T08:00:00Z/PT1H", "value": 30 }, + { "validTime": "2024-05-13T09:00:00Z/PT11H", "value": 20 }, + { "validTime": "2024-05-13T20:00:00Z/PT3H", "value": 10 }, + { "validTime": "2024-05-13T23:00:00Z/PT3H", "value": 20 }, + { "validTime": "2024-05-14T02:00:00Z/PT2H", "value": 30 }, + { "validTime": "2024-05-14T04:00:00Z/PT1H", "value": 40 }, + { "validTime": "2024-05-14T05:00:00Z/PT1H", "value": 50 }, + { "validTime": "2024-05-14T06:00:00Z/PT6H", "value": 60 }, + { "validTime": "2024-05-14T12:00:00Z/PT2H", "value": 40 }, + { "validTime": "2024-05-14T14:00:00Z/PT2H", "value": 50 }, + { "validTime": "2024-05-14T16:00:00Z/PT1H", "value": 60 }, + { "validTime": "2024-05-14T17:00:00Z/PT3H", "value": 70 }, + { "validTime": "2024-05-14T20:00:00Z/PT2H", "value": 60 }, + { "validTime": "2024-05-14T22:00:00Z/PT1H", "value": 70 }, + { "validTime": "2024-05-14T23:00:00Z/PT3H", "value": 80 }, + { "validTime": "2024-05-15T02:00:00Z/PT1H", "value": 90 }, + { "validTime": "2024-05-15T03:00:00Z/PT2H", "value": 100 }, + { "validTime": "2024-05-15T05:00:00Z/PT5H", "value": 110 } + ] + }, + "windSpeed": { + "uom": "wmoUnit:km_h-1", + "values": [ + { "validTime": "2024-05-07T04:00:00Z/PT5H", "value": 1.852 }, + { "validTime": "2024-05-07T09:00:00Z/PT4H", "value": 3.704 }, + { "validTime": "2024-05-07T13:00:00Z/PT1H", "value": 5.556 }, + { "validTime": "2024-05-07T14:00:00Z/PT1H", "value": 7.408 }, + { "validTime": "2024-05-07T15:00:00Z/PT1H", "value": 9.26 }, + { "validTime": "2024-05-07T16:00:00Z/PT1H", "value": 12.964 }, + { "validTime": "2024-05-07T17:00:00Z/PT1H", "value": 16.668 }, + { "validTime": "2024-05-07T18:00:00Z/PT5H", "value": 18.52 }, + { "validTime": "2024-05-07T23:00:00Z/PT2H", "value": 16.668 }, + { "validTime": "2024-05-08T01:00:00Z/PT2H", "value": 14.816 }, + { "validTime": "2024-05-08T03:00:00Z/PT2H", "value": 12.964 }, + { "validTime": "2024-05-08T05:00:00Z/PT1H", "value": 11.112 }, + { "validTime": "2024-05-08T06:00:00Z/PT3H", "value": 9.26 }, + { "validTime": "2024-05-08T09:00:00Z/PT3H", "value": 7.408 }, + { "validTime": "2024-05-08T12:00:00Z/PT3H", "value": 5.556 }, + { "validTime": "2024-05-08T15:00:00Z/PT1H", "value": 7.408 }, + { "validTime": "2024-05-08T16:00:00Z/PT1H", "value": 5.556 }, + { "validTime": "2024-05-08T17:00:00Z/PT12H", "value": 3.704 }, + { "validTime": "2024-05-09T05:00:00Z/PT6H", "value": 5.556 }, + { "validTime": "2024-05-09T11:00:00Z/PT3H", "value": 3.704 }, + { "validTime": "2024-05-09T14:00:00Z/PT1H", "value": 5.556 }, + { "validTime": "2024-05-09T15:00:00Z/PT2H", "value": 7.408 }, + { "validTime": "2024-05-09T17:00:00Z/PT6H", "value": 9.26 }, + { "validTime": "2024-05-09T23:00:00Z/PT8H", "value": 7.408 }, + { "validTime": "2024-05-10T07:00:00Z/PT2H", "value": 5.556 }, + { "validTime": "2024-05-10T09:00:00Z/PT7H", "value": 3.704 }, + { "validTime": "2024-05-10T16:00:00Z/PT2H", "value": 5.556 }, + { "validTime": "2024-05-10T18:00:00Z/PT1H", "value": 7.408 }, + { "validTime": "2024-05-10T19:00:00Z/PT1H", "value": 9.26 }, + { "validTime": "2024-05-10T20:00:00Z/PT3H", "value": 11.112 }, + { "validTime": "2024-05-10T23:00:00Z/PT3H", "value": 9.26 }, + { "validTime": "2024-05-11T02:00:00Z/PT2H", "value": 7.408 }, + { "validTime": "2024-05-11T04:00:00Z/PT2H", "value": 5.556 }, + { "validTime": "2024-05-11T06:00:00Z/PT7H", "value": 3.704 }, + { "validTime": "2024-05-11T13:00:00Z/PT2H", "value": 5.556 }, + { "validTime": "2024-05-11T15:00:00Z/PT2H", "value": 7.408 }, + { "validTime": "2024-05-11T17:00:00Z/PT3H", "value": 9.26 }, + { "validTime": "2024-05-11T20:00:00Z/PT4H", "value": 11.112 }, + { "validTime": "2024-05-12T00:00:00Z/PT1H", "value": 9.26 }, + { "validTime": "2024-05-12T01:00:00Z/PT2H", "value": 7.408 }, + { "validTime": "2024-05-12T03:00:00Z/PT2H", "value": 5.556 }, + { "validTime": "2024-05-12T05:00:00Z/PT9H", "value": 3.704 }, + { "validTime": "2024-05-12T14:00:00Z/PT2H", "value": 5.556 }, + { "validTime": "2024-05-12T16:00:00Z/PT2H", "value": 7.408 }, + { "validTime": "2024-05-12T18:00:00Z/PT1H", "value": 9.26 }, + { "validTime": "2024-05-12T19:00:00Z/PT4H", "value": 11.112 }, + { "validTime": "2024-05-12T23:00:00Z/PT14H", "value": 9.26 }, + { "validTime": "2024-05-13T13:00:00Z/PT2H", "value": 11.112 }, + { "validTime": "2024-05-13T15:00:00Z/PT2H", "value": 12.964 }, + { "validTime": "2024-05-13T17:00:00Z/PT5H", "value": 14.816 }, + { "validTime": "2024-05-13T22:00:00Z/PT2H", "value": 12.964 }, + { "validTime": "2024-05-14T00:00:00Z/PT2H", "value": 11.112 }, + { "validTime": "2024-05-14T02:00:00Z/PT2H", "value": 9.26 }, + { "validTime": "2024-05-14T04:00:00Z/PT2H", "value": 7.408 }, + { "validTime": "2024-05-14T06:00:00Z/PT8H", "value": 5.556 }, + { "validTime": "2024-05-14T14:00:00Z/PT3H", "value": 7.408 }, + { "validTime": "2024-05-14T17:00:00Z/PT6H", "value": 9.26 }, + { "validTime": "2024-05-14T23:00:00Z/PT4H", "value": 7.408 }, + { "validTime": "2024-05-15T03:00:00Z/PT7H", "value": 5.556 } + ] + }, + "windGust": { + "uom": "wmoUnit:km_h-1", + "values": [ + { "validTime": "2024-05-07T04:00:00Z/PT5H", "value": 3.704 }, + { "validTime": "2024-05-07T09:00:00Z/PT2H", "value": 5.556 }, + { "validTime": "2024-05-07T11:00:00Z/PT1H", "value": 7.408 }, + { "validTime": "2024-05-07T12:00:00Z/PT1H", "value": 9.26 }, + { "validTime": "2024-05-07T13:00:00Z/PT1H", "value": 11.112 }, + { "validTime": "2024-05-07T14:00:00Z/PT1H", "value": 14.816 }, + { "validTime": "2024-05-07T15:00:00Z/PT1H", "value": 18.52 }, + { "validTime": "2024-05-07T16:00:00Z/PT1H", "value": 22.224 }, + { "validTime": "2024-05-07T17:00:00Z/PT1H", "value": 27.78 }, + { "validTime": "2024-05-07T18:00:00Z/PT1H", "value": 31.484 }, + { "validTime": "2024-05-07T19:00:00Z/PT2H", "value": 35.188 }, + { "validTime": "2024-05-07T21:00:00Z/PT2H", "value": 33.336 }, + { "validTime": "2024-05-07T23:00:00Z/PT1H", "value": 31.484 }, + { "validTime": "2024-05-08T00:00:00Z/PT2H", "value": 27.78 }, + { "validTime": "2024-05-08T02:00:00Z/PT1H", "value": 25.928 }, + { "validTime": "2024-05-08T03:00:00Z/PT1H", "value": 24.076 }, + { "validTime": "2024-05-08T04:00:00Z/PT2H", "value": 22.224 }, + { "validTime": "2024-05-08T06:00:00Z/PT1H", "value": 18.52 }, + { "validTime": "2024-05-08T07:00:00Z/PT2H", "value": 16.668 }, + { "validTime": "2024-05-08T09:00:00Z/PT2H", "value": 14.816 }, + { "validTime": "2024-05-08T11:00:00Z/PT2H", "value": 12.964 }, + { "validTime": "2024-05-08T13:00:00Z/PT4H", "value": 11.112 }, + { "validTime": "2024-05-08T17:00:00Z/PT1H", "value": 9.26 }, + { "validTime": "2024-05-08T18:00:00Z/PT2H", "value": 7.408 }, + { "validTime": "2024-05-08T20:00:00Z/PT3H", "value": 9.26 }, + { "validTime": "2024-05-08T23:00:00Z/PT1H", "value": 7.408 }, + { "validTime": "2024-05-09T00:00:00Z/PT3H", "value": 5.556 }, + { "validTime": "2024-05-09T03:00:00Z/PT1H", "value": 7.408 }, + { "validTime": "2024-05-09T04:00:00Z/PT1H", "value": 9.26 }, + { "validTime": "2024-05-09T05:00:00Z/PT3H", "value": 11.112 }, + { "validTime": "2024-05-09T08:00:00Z/PT5H", "value": 9.26 }, + { "validTime": "2024-05-09T13:00:00Z/PT2H", "value": 11.112 }, + { "validTime": "2024-05-09T15:00:00Z/PT1H", "value": 12.964 }, + { "validTime": "2024-05-09T16:00:00Z/PT2H", "value": 14.816 }, + { "validTime": "2024-05-09T18:00:00Z/PT1H", "value": 16.668 }, + { "validTime": "2024-05-09T19:00:00Z/PT3H", "value": 18.52 }, + { "validTime": "2024-05-09T22:00:00Z/PT1H", "value": 16.668 }, + { "validTime": "2024-05-09T23:00:00Z/PT1H", "value": 12.964 }, + { "validTime": "2024-05-10T00:00:00Z/PT3H", "value": 11.112 }, + { "validTime": "2024-05-10T03:00:00Z/PT4H", "value": 12.964 }, + { "validTime": "2024-05-10T07:00:00Z/PT2H", "value": 11.112 }, + { "validTime": "2024-05-10T09:00:00Z/PT1H", "value": 9.26 }, + { "validTime": "2024-05-10T10:00:00Z/PT5H", "value": 7.408 }, + { "validTime": "2024-05-10T15:00:00Z/PT1H", "value": 9.26 }, + { "validTime": "2024-05-10T16:00:00Z/PT1H", "value": 11.112 }, + { "validTime": "2024-05-10T17:00:00Z/PT1H", "value": 12.964 }, + { "validTime": "2024-05-10T18:00:00Z/PT1H", "value": 14.816 }, + { "validTime": "2024-05-10T19:00:00Z/PT1H", "value": 18.52 }, + { "validTime": "2024-05-10T20:00:00Z/PT1H", "value": 20.372 }, + { "validTime": "2024-05-10T21:00:00Z/PT2H", "value": 22.224 }, + { "validTime": "2024-05-10T23:00:00Z/PT1H", "value": 20.372 }, + { "validTime": "2024-05-11T00:00:00Z/PT1H", "value": 18.52 }, + { "validTime": "2024-05-11T01:00:00Z/PT1H", "value": 16.668 }, + { "validTime": "2024-05-11T02:00:00Z/PT1H", "value": 14.816 }, + { "validTime": "2024-05-11T03:00:00Z/PT1H", "value": 12.964 }, + { "validTime": "2024-05-11T04:00:00Z/PT1H", "value": 11.112 }, + { "validTime": "2024-05-11T05:00:00Z/PT8H", "value": 9.26 }, + { "validTime": "2024-05-11T13:00:00Z/PT2H", "value": 11.112 }, + { "validTime": "2024-05-11T15:00:00Z/PT1H", "value": 12.964 }, + { "validTime": "2024-05-11T16:00:00Z/PT2H", "value": 14.816 }, + { "validTime": "2024-05-11T18:00:00Z/PT1H", "value": 16.668 }, + { "validTime": "2024-05-11T19:00:00Z/PT1H", "value": 18.52 }, + { "validTime": "2024-05-11T20:00:00Z/PT2H", "value": 20.372 }, + { "validTime": "2024-05-11T22:00:00Z/PT1H", "value": 18.52 }, + { "validTime": "2024-05-11T23:00:00Z/PT1H", "value": 16.668 }, + { "validTime": "2024-05-12T00:00:00Z/PT1H", "value": 14.816 }, + { "validTime": "2024-05-12T01:00:00Z/PT2H", "value": 12.964 }, + { "validTime": "2024-05-12T03:00:00Z/PT2H", "value": 11.112 }, + { "validTime": "2024-05-12T05:00:00Z/PT3H", "value": 9.26 }, + { "validTime": "2024-05-12T08:00:00Z/PT6H", "value": 7.408 }, + { "validTime": "2024-05-12T14:00:00Z/PT1H", "value": 9.26 }, + { "validTime": "2024-05-12T15:00:00Z/PT1H", "value": 11.112 }, + { "validTime": "2024-05-12T16:00:00Z/PT1H", "value": 12.964 }, + { "validTime": "2024-05-12T17:00:00Z/PT1H", "value": 14.816 }, + { "validTime": "2024-05-12T18:00:00Z/PT1H", "value": 16.668 }, + { "validTime": "2024-05-12T19:00:00Z/PT1H", "value": 18.52 }, + { "validTime": "2024-05-12T20:00:00Z/PT3H", "value": 20.372 }, + { "validTime": "2024-05-12T23:00:00Z/PT1H", "value": 18.52 }, + { "validTime": "2024-05-13T00:00:00Z/PT5H", "value": 16.668 }, + { "validTime": "2024-05-13T05:00:00Z/PT3H", "value": 14.816 }, + { "validTime": "2024-05-13T08:00:00Z/PT3H", "value": 16.668 }, + { "validTime": "2024-05-13T11:00:00Z/PT2H", "value": 18.52 }, + { "validTime": "2024-05-13T13:00:00Z/PT2H", "value": 20.372 }, + { "validTime": "2024-05-13T15:00:00Z/PT1H", "value": 22.224 }, + { "validTime": "2024-05-13T16:00:00Z/PT2H", "value": 24.076 }, + { "validTime": "2024-05-13T18:00:00Z/PT4H", "value": 25.928 }, + { "validTime": "2024-05-13T22:00:00Z/PT1H", "value": 24.076 }, + { "validTime": "2024-05-13T23:00:00Z/PT1H", "value": 20.372 }, + { "validTime": "2024-05-14T00:00:00Z/PT1H", "value": 18.52 }, + { "validTime": "2024-05-14T01:00:00Z/PT1H", "value": 16.668 }, + { "validTime": "2024-05-14T02:00:00Z/PT3H", "value": 14.816 }, + { "validTime": "2024-05-14T05:00:00Z/PT3H", "value": 12.964 }, + { "validTime": "2024-05-14T08:00:00Z/PT5H", "value": 11.112 }, + { "validTime": "2024-05-14T13:00:00Z/PT2H", "value": 12.964 }, + { "validTime": "2024-05-14T15:00:00Z/PT2H", "value": 14.816 }, + { "validTime": "2024-05-14T17:00:00Z/PT5H", "value": 16.668 }, + { "validTime": "2024-05-14T22:00:00Z/PT2H", "value": 14.816 }, + { "validTime": "2024-05-15T00:00:00Z/PT1H", "value": 12.964 }, + { "validTime": "2024-05-15T01:00:00Z/PT3H", "value": 11.112 }, + { "validTime": "2024-05-15T04:00:00Z/PT6H", "value": 9.26 } + ] + }, + "weather": { + "values": [ + { + "validTime": "2024-05-07T04:00:00Z/P8DT2H", + "value": [ + { + "coverage": null, + "weather": null, + "intensity": null, + "visibility": { "unitCode": "wmoUnit:km", "value": null }, + "attributes": [] + } + ] + } + ] + }, + "hazards": { "values": [] }, + "probabilityOfPrecipitation": { + "uom": "wmoUnit:percent", + "values": [ + { "validTime": "2024-05-07T04:00:00Z/P3DT14H", "value": 0 }, + { "validTime": "2024-05-10T18:00:00Z/PT6H", "value": 2 }, + { "validTime": "2024-05-11T00:00:00Z/PT12H", "value": 3 }, + { "validTime": "2024-05-11T12:00:00Z/PT6H", "value": 4 }, + { "validTime": "2024-05-11T18:00:00Z/PT6H", "value": 6 }, + { "validTime": "2024-05-12T00:00:00Z/P1D", "value": 3 }, + { "validTime": "2024-05-13T00:00:00Z/PT12H", "value": 0 }, + { "validTime": "2024-05-13T12:00:00Z/PT12H", "value": 1 }, + { "validTime": "2024-05-14T00:00:00Z/PT18H", "value": 0 }, + { "validTime": "2024-05-14T18:00:00Z/PT6H", "value": 1 }, + { "validTime": "2024-05-15T00:00:00Z/PT6H", "value": 0 } + ] + }, + "quantitativePrecipitation": { + "uom": "wmoUnit:mm", + "values": [ + { "validTime": "2024-05-07T04:00:00Z/PT2H", "value": 0 }, + { "validTime": "2024-05-07T06:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-07T12:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-07T18:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-08T00:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-08T06:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-08T12:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-08T18:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-09T00:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-09T06:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-09T12:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-09T18:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-10T00:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-10T06:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-10T12:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-10T18:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-11T00:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-11T06:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-11T12:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-11T18:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-12T00:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-12T06:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-12T12:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-12T18:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-13T00:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-13T06:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-13T12:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-13T18:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-14T00:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-14T06:00:00Z/PT6H", "value": 0 } + ] + }, + "iceAccumulation": { + "uom": "wmoUnit:mm", + "values": [ + { "validTime": "2024-05-07T04:00:00Z/PT2H", "value": 0 }, + { "validTime": "2024-05-07T06:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-07T12:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-07T18:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-08T00:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-08T06:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-08T12:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-08T18:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-09T00:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-09T06:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-09T12:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-09T18:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-10T00:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-10T06:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-10T12:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-10T18:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-11T00:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-11T06:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-11T12:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-11T18:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-12T00:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-12T06:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-12T12:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-12T18:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-13T00:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-13T06:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-13T12:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-13T18:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-14T00:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-14T06:00:00Z/PT6H", "value": 0 } + ] + }, + "snowfallAmount": { + "uom": "wmoUnit:mm", + "values": [ + { "validTime": "2024-05-07T04:00:00Z/PT2H", "value": 0 }, + { "validTime": "2024-05-07T06:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-07T12:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-07T18:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-08T00:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-08T06:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-08T12:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-08T18:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-09T00:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-09T06:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-09T12:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-09T18:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-10T00:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-10T06:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-10T12:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-10T18:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-11T00:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-11T06:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-11T12:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-11T18:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-12T00:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-12T06:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-12T12:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-12T18:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-13T00:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-13T06:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-13T12:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-13T18:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-14T00:00:00Z/PT6H", "value": 0 }, + { "validTime": "2024-05-14T06:00:00Z/PT6H", "value": 0 } + ] + }, + "snowLevel": { "values": [] }, + "ceilingHeight": { + "uom": "wmoUnit:m", + "values": [ + { "validTime": "2024-05-07T04:00:00Z/P3DT3H", "value": -30.48 } + ] + }, + "visibility": { + "uom": "wmoUnit:m", + "values": [ + { "validTime": "2024-05-07T04:00:00Z/P3DT3H", "value": 16093.44 } + ] + }, + "transportWindSpeed": { + "uom": "wmoUnit:km_h-1", + "values": [ + { "validTime": "2024-05-07T04:00:00Z/PT4H", "value": 9.26 }, + { "validTime": "2024-05-07T08:00:00Z/PT4H", "value": 7.408 }, + { "validTime": "2024-05-07T12:00:00Z/PT1H", "value": 5.556 }, + { "validTime": "2024-05-07T13:00:00Z/PT1H", "value": 7.408 }, + { "validTime": "2024-05-07T14:00:00Z/PT1H", "value": 11.112 }, + { "validTime": "2024-05-07T15:00:00Z/PT1H", "value": 14.816 }, + { "validTime": "2024-05-07T16:00:00Z/PT1H", "value": 22.224 }, + { "validTime": "2024-05-07T17:00:00Z/PT4H", "value": 25.928 }, + { "validTime": "2024-05-07T21:00:00Z/PT1H", "value": 27.78 }, + { "validTime": "2024-05-07T22:00:00Z/PT1H", "value": 25.928 }, + { "validTime": "2024-05-07T23:00:00Z/PT1H", "value": 24.076 }, + { "validTime": "2024-05-08T00:00:00Z/PT1H", "value": 22.224 }, + { "validTime": "2024-05-08T01:00:00Z/PT1H", "value": 24.076 }, + { "validTime": "2024-05-08T02:00:00Z/PT1H", "value": 27.78 }, + { "validTime": "2024-05-08T03:00:00Z/PT1H", "value": 29.632 }, + { "validTime": "2024-05-08T04:00:00Z/PT1H", "value": 27.78 }, + { "validTime": "2024-05-08T05:00:00Z/PT1H", "value": 25.928 }, + { "validTime": "2024-05-08T06:00:00Z/PT1H", "value": 22.224 }, + { "validTime": "2024-05-08T07:00:00Z/PT1H", "value": 20.372 }, + { "validTime": "2024-05-08T08:00:00Z/PT1H", "value": 16.668 }, + { "validTime": "2024-05-08T09:00:00Z/PT1H", "value": 14.816 }, + { "validTime": "2024-05-08T10:00:00Z/PT3H", "value": 12.964 }, + { "validTime": "2024-05-08T13:00:00Z/PT2H", "value": 14.816 }, + { "validTime": "2024-05-08T15:00:00Z/PT1H", "value": 12.964 }, + { "validTime": "2024-05-08T16:00:00Z/PT1H", "value": 9.26 }, + { "validTime": "2024-05-08T17:00:00Z/PT1H", "value": 7.408 }, + { "validTime": "2024-05-08T18:00:00Z/PT1H", "value": 5.556 }, + { "validTime": "2024-05-08T19:00:00Z/PT4H", "value": 7.408 }, + { "validTime": "2024-05-08T23:00:00Z/PT2H", "value": 5.556 }, + { "validTime": "2024-05-09T01:00:00Z/PT1H", "value": 7.408 }, + { "validTime": "2024-05-09T02:00:00Z/PT1H", "value": 11.112 }, + { "validTime": "2024-05-09T03:00:00Z/PT1H", "value": 12.964 }, + { "validTime": "2024-05-09T04:00:00Z/PT1H", "value": 14.816 }, + { "validTime": "2024-05-09T05:00:00Z/PT6H", "value": 16.668 }, + { "validTime": "2024-05-09T11:00:00Z/PT3H", "value": 14.816 }, + { "validTime": "2024-05-09T14:00:00Z/PT2H", "value": 16.668 }, + { "validTime": "2024-05-09T16:00:00Z/PT1H", "value": 14.816 }, + { "validTime": "2024-05-09T17:00:00Z/PT1H", "value": 11.112 }, + { "validTime": "2024-05-09T18:00:00Z/PT3H", "value": 9.26 }, + { "validTime": "2024-05-09T21:00:00Z/PT2H", "value": 11.112 }, + { "validTime": "2024-05-09T23:00:00Z/PT2H", "value": 12.964 }, + { "validTime": "2024-05-10T01:00:00Z/PT1H", "value": 14.816 }, + { "validTime": "2024-05-10T02:00:00Z/PT1H", "value": 16.668 }, + { "validTime": "2024-05-10T03:00:00Z/PT4H", "value": 18.52 }, + { "validTime": "2024-05-10T07:00:00Z/PT2H", "value": 16.668 }, + { "validTime": "2024-05-10T09:00:00Z/PT1H", "value": 14.816 }, + { "validTime": "2024-05-10T10:00:00Z/PT2H", "value": 12.964 }, + { "validTime": "2024-05-10T12:00:00Z/PT5H", "value": 11.112 }, + { "validTime": "2024-05-10T17:00:00Z/PT1H", "value": 12.964 }, + { "validTime": "2024-05-10T18:00:00Z/PT1H", "value": 14.816 }, + { "validTime": "2024-05-10T19:00:00Z/PT1H", "value": 18.52 }, + { "validTime": "2024-05-10T20:00:00Z/PT1H", "value": 20.372 }, + { "validTime": "2024-05-10T21:00:00Z/PT1H", "value": 22.224 }, + { "validTime": "2024-05-10T22:00:00Z/PT1H", "value": 20.372 }, + { "validTime": "2024-05-10T23:00:00Z/PT1H", "value": 18.52 }, + { "validTime": "2024-05-11T00:00:00Z/PT5H", "value": 16.668 }, + { "validTime": "2024-05-11T05:00:00Z/PT3H", "value": 18.52 }, + { "validTime": "2024-05-11T08:00:00Z/PT1H", "value": 16.668 }, + { "validTime": "2024-05-11T09:00:00Z/PT2H", "value": 14.816 }, + { "validTime": "2024-05-11T11:00:00Z/PT5H", "value": 12.964 }, + { "validTime": "2024-05-11T16:00:00Z/PT2H", "value": 14.816 }, + { "validTime": "2024-05-11T18:00:00Z/PT1H", "value": 16.668 }, + { "validTime": "2024-05-11T19:00:00Z/PT3H", "value": 18.52 }, + { "validTime": "2024-05-11T22:00:00Z/PT2H", "value": 16.668 }, + { "validTime": "2024-05-12T00:00:00Z/PT2H", "value": 14.816 }, + { "validTime": "2024-05-12T02:00:00Z/PT5H", "value": 16.668 }, + { "validTime": "2024-05-12T07:00:00Z/PT2H", "value": 14.816 }, + { "validTime": "2024-05-12T09:00:00Z/PT2H", "value": 12.964 }, + { "validTime": "2024-05-12T11:00:00Z/PT6H", "value": 11.112 }, + { "validTime": "2024-05-12T17:00:00Z/PT3H", "value": 12.964 }, + { "validTime": "2024-05-12T20:00:00Z/PT2H", "value": 14.816 }, + { "validTime": "2024-05-12T22:00:00Z/PT2H", "value": 12.964 }, + { "validTime": "2024-05-13T00:00:00Z/PT2H", "value": 11.112 }, + { "validTime": "2024-05-13T02:00:00Z/PT1H", "value": 12.964 }, + { "validTime": "2024-05-13T03:00:00Z/PT7H", "value": 14.816 }, + { "validTime": "2024-05-13T10:00:00Z/PT1H", "value": 12.964 }, + { "validTime": "2024-05-13T11:00:00Z/PT3H", "value": 11.112 }, + { "validTime": "2024-05-13T14:00:00Z/PT1H", "value": 12.964 }, + { "validTime": "2024-05-13T15:00:00Z/PT1H", "value": 14.816 }, + { "validTime": "2024-05-13T16:00:00Z/PT1H", "value": 16.668 }, + { "validTime": "2024-05-13T17:00:00Z/PT4H", "value": 18.52 }, + { "validTime": "2024-05-13T21:00:00Z/PT1H", "value": 16.668 }, + { "validTime": "2024-05-13T22:00:00Z/PT1H", "value": 14.816 }, + { "validTime": "2024-05-13T23:00:00Z/PT2H", "value": 12.964 }, + { "validTime": "2024-05-14T01:00:00Z/PT2H", "value": 14.816 }, + { "validTime": "2024-05-14T03:00:00Z/PT2H", "value": 16.668 }, + { "validTime": "2024-05-14T05:00:00Z/PT3H", "value": 14.816 }, + { "validTime": "2024-05-14T08:00:00Z/PT3H", "value": 12.964 }, + { "validTime": "2024-05-14T11:00:00Z/PT3H", "value": 11.112 }, + { "validTime": "2024-05-14T14:00:00Z/PT6H", "value": 12.964 }, + { "validTime": "2024-05-14T20:00:00Z/PT3H", "value": 11.112 }, + { "validTime": "2024-05-14T23:00:00Z/PT2H", "value": 9.26 } + ] + }, + "transportWindDirection": { + "uom": "wmoUnit:degree_(angle)", + "values": [ + { "validTime": "2024-05-07T04:00:00Z/PT1H", "value": 120 }, + { "validTime": "2024-05-07T05:00:00Z/PT1H", "value": 90 }, + { "validTime": "2024-05-07T06:00:00Z/PT1H", "value": 110 }, + { "validTime": "2024-05-07T07:00:00Z/PT1H", "value": 90 }, + { "validTime": "2024-05-07T08:00:00Z/PT1H", "value": 80 }, + { "validTime": "2024-05-07T09:00:00Z/PT1H", "value": 120 }, + { "validTime": "2024-05-07T10:00:00Z/PT1H", "value": 50 }, + { "validTime": "2024-05-07T11:00:00Z/PT2H", "value": 0 }, + { "validTime": "2024-05-07T13:00:00Z/PT1H", "value": 10 }, + { "validTime": "2024-05-07T14:00:00Z/PT4H", "value": 20 }, + { "validTime": "2024-05-07T18:00:00Z/PT1H", "value": 40 }, + { "validTime": "2024-05-07T19:00:00Z/PT1H", "value": 30 }, + { "validTime": "2024-05-07T20:00:00Z/PT3H", "value": 20 }, + { "validTime": "2024-05-07T23:00:00Z/PT1H", "value": 30 }, + { "validTime": "2024-05-08T00:00:00Z/PT1H", "value": 20 }, + { "validTime": "2024-05-08T01:00:00Z/PT2H", "value": 30 }, + { "validTime": "2024-05-08T03:00:00Z/PT3H", "value": 40 }, + { "validTime": "2024-05-08T06:00:00Z/PT4H", "value": 50 }, + { "validTime": "2024-05-08T10:00:00Z/PT3H", "value": 70 }, + { "validTime": "2024-05-08T13:00:00Z/PT1H", "value": 80 }, + { "validTime": "2024-05-08T14:00:00Z/PT1H", "value": 90 }, + { "validTime": "2024-05-08T15:00:00Z/PT1H", "value": 100 }, + { "validTime": "2024-05-08T16:00:00Z/PT1H", "value": 120 }, + { "validTime": "2024-05-08T17:00:00Z/PT1H", "value": 130 }, + { "validTime": "2024-05-08T18:00:00Z/PT1H", "value": 320 }, + { "validTime": "2024-05-08T19:00:00Z/PT3H", "value": 0 }, + { "validTime": "2024-05-08T22:00:00Z/PT1H", "value": 40 }, + { "validTime": "2024-05-08T23:00:00Z/PT1H", "value": 110 }, + { "validTime": "2024-05-09T00:00:00Z/PT2H", "value": 140 }, + { "validTime": "2024-05-09T02:00:00Z/PT3H", "value": 130 }, + { "validTime": "2024-05-09T05:00:00Z/PT2H", "value": 140 }, + { "validTime": "2024-05-09T07:00:00Z/PT1H", "value": 150 }, + { "validTime": "2024-05-09T08:00:00Z/PT3H", "value": 160 }, + { "validTime": "2024-05-09T11:00:00Z/PT3H", "value": 170 }, + { "validTime": "2024-05-09T14:00:00Z/PT3H", "value": 180 }, + { "validTime": "2024-05-09T17:00:00Z/PT2H", "value": 190 }, + { "validTime": "2024-05-09T19:00:00Z/PT1H", "value": 180 }, + { "validTime": "2024-05-09T20:00:00Z/PT1H", "value": 150 }, + { "validTime": "2024-05-09T21:00:00Z/PT2H", "value": 140 }, + { "validTime": "2024-05-09T23:00:00Z/PT1H", "value": 130 }, + { "validTime": "2024-05-10T00:00:00Z/PT5H", "value": 120 }, + { "validTime": "2024-05-10T05:00:00Z/PT8H", "value": 130 }, + { "validTime": "2024-05-10T13:00:00Z/PT1H", "value": 120 }, + { "validTime": "2024-05-10T14:00:00Z/PT1H", "value": 100 }, + { "validTime": "2024-05-10T15:00:00Z/PT2H", "value": 90 }, + { "validTime": "2024-05-10T17:00:00Z/PT1H", "value": 80 }, + { "validTime": "2024-05-10T18:00:00Z/PT2H", "value": 70 }, + { "validTime": "2024-05-10T20:00:00Z/PT5H", "value": 60 }, + { "validTime": "2024-05-11T01:00:00Z/PT1H", "value": 70 }, + { "validTime": "2024-05-11T02:00:00Z/PT3H", "value": 80 }, + { "validTime": "2024-05-11T05:00:00Z/PT6H", "value": 90 }, + { "validTime": "2024-05-11T11:00:00Z/PT3H", "value": 80 }, + { "validTime": "2024-05-11T14:00:00Z/PT3H", "value": 90 }, + { "validTime": "2024-05-11T17:00:00Z/PT9H", "value": 80 }, + { "validTime": "2024-05-12T02:00:00Z/PT2H", "value": 90 }, + { "validTime": "2024-05-12T04:00:00Z/PT1H", "value": 100 }, + { "validTime": "2024-05-12T05:00:00Z/PT3H", "value": 110 }, + { "validTime": "2024-05-12T08:00:00Z/PT3H", "value": 120 }, + { "validTime": "2024-05-12T11:00:00Z/PT2H", "value": 110 }, + { "validTime": "2024-05-12T13:00:00Z/PT1H", "value": 100 }, + { "validTime": "2024-05-12T14:00:00Z/PT1H", "value": 90 }, + { "validTime": "2024-05-12T15:00:00Z/PT2H", "value": 80 }, + { "validTime": "2024-05-12T17:00:00Z/PT1H", "value": 70 }, + { "validTime": "2024-05-12T18:00:00Z/PT4H", "value": 60 }, + { "validTime": "2024-05-12T22:00:00Z/PT1H", "value": 70 }, + { "validTime": "2024-05-12T23:00:00Z/PT3H", "value": 80 }, + { "validTime": "2024-05-13T02:00:00Z/PT2H", "value": 70 }, + { "validTime": "2024-05-13T04:00:00Z/PT1H", "value": 80 }, + { "validTime": "2024-05-13T05:00:00Z/PT1H", "value": 90 }, + { "validTime": "2024-05-13T06:00:00Z/PT1H", "value": 100 }, + { "validTime": "2024-05-13T07:00:00Z/PT1H", "value": 120 }, + { "validTime": "2024-05-13T08:00:00Z/PT1H", "value": 150 }, + { "validTime": "2024-05-13T09:00:00Z/PT1H", "value": 160 }, + { "validTime": "2024-05-13T10:00:00Z/PT1H", "value": 120 }, + { "validTime": "2024-05-13T11:00:00Z/PT1H", "value": 40 }, + { "validTime": "2024-05-13T12:00:00Z/PT2H", "value": 0 }, + { "validTime": "2024-05-13T14:00:00Z/PT1H", "value": 350 }, + { "validTime": "2024-05-13T15:00:00Z/PT1H", "value": 340 }, + { "validTime": "2024-05-13T16:00:00Z/PT1H", "value": 350 }, + { "validTime": "2024-05-13T17:00:00Z/PT3H", "value": 0 }, + { "validTime": "2024-05-13T20:00:00Z/PT1H", "value": 350 }, + { "validTime": "2024-05-13T21:00:00Z/PT1H", "value": 340 }, + { "validTime": "2024-05-13T22:00:00Z/PT1H", "value": 350 }, + { "validTime": "2024-05-13T23:00:00Z/PT2H", "value": 0 }, + { "validTime": "2024-05-14T01:00:00Z/PT1H", "value": 10 }, + { "validTime": "2024-05-14T02:00:00Z/PT3H", "value": 20 }, + { "validTime": "2024-05-14T05:00:00Z/PT6H", "value": 30 }, + { "validTime": "2024-05-14T11:00:00Z/PT5H", "value": 20 }, + { "validTime": "2024-05-14T16:00:00Z/PT1H", "value": 30 }, + { "validTime": "2024-05-14T17:00:00Z/PT1H", "value": 40 }, + { "validTime": "2024-05-14T18:00:00Z/PT1H", "value": 50 }, + { "validTime": "2024-05-14T19:00:00Z/PT1H", "value": 70 }, + { "validTime": "2024-05-14T20:00:00Z/PT1H", "value": 110 }, + { "validTime": "2024-05-14T21:00:00Z/PT1H", "value": 130 }, + { "validTime": "2024-05-14T22:00:00Z/PT1H", "value": 120 }, + { "validTime": "2024-05-14T23:00:00Z/PT1H", "value": 100 }, + { "validTime": "2024-05-15T00:00:00Z/PT1H", "value": 90 } + ] + }, + "mixingHeight": { + "uom": "wmoUnit:m", + "values": [ + { "validTime": "2024-05-07T04:00:00Z/PT1H", "value": 136.2456 }, + { "validTime": "2024-05-07T05:00:00Z/PT1H", "value": 132.588 }, + { "validTime": "2024-05-07T06:00:00Z/PT1H", "value": 130.7592 }, + { "validTime": "2024-05-07T07:00:00Z/PT1H", "value": 131.3688 }, + { "validTime": "2024-05-07T08:00:00Z/PT1H", "value": 127.4064 }, + { "validTime": "2024-05-07T09:00:00Z/PT1H", "value": 123.444 }, + { "validTime": "2024-05-07T10:00:00Z/PT2H", "value": 125.5776 }, + { "validTime": "2024-05-07T12:00:00Z/PT1H", "value": 116.1288 }, + { "validTime": "2024-05-07T13:00:00Z/PT1H", "value": 109.1184 }, + { "validTime": "2024-05-07T14:00:00Z/PT1H", "value": 167.9448 }, + { "validTime": "2024-05-07T15:00:00Z/PT1H", "value": 318.2112 }, + { "validTime": "2024-05-07T16:00:00Z/PT1H", "value": 694.3344 }, + { "validTime": "2024-05-07T17:00:00Z/PT1H", "value": 1224.9912 }, + { "validTime": "2024-05-07T18:00:00Z/PT1H", "value": 1678.5336 }, + { "validTime": "2024-05-07T19:00:00Z/PT1H", "value": 1909.8768 }, + { "validTime": "2024-05-07T20:00:00Z/PT1H", "value": 2013.204 }, + { "validTime": "2024-05-07T21:00:00Z/PT1H", "value": 2047.3416 }, + { "validTime": "2024-05-07T22:00:00Z/PT1H", "value": 1803.8064 }, + { "validTime": "2024-05-07T23:00:00Z/PT1H", "value": 1384.7064 }, + { "validTime": "2024-05-08T00:00:00Z/PT1H", "value": 489.8136 }, + { "validTime": "2024-05-08T01:00:00Z/PT1H", "value": 189.8904 }, + { "validTime": "2024-05-08T02:00:00Z/PT1H", "value": 164.8968 }, + { "validTime": "2024-05-08T03:00:00Z/PT1H", "value": 152.4 }, + { "validTime": "2024-05-08T04:00:00Z/PT1H", "value": 148.7424 }, + { "validTime": "2024-05-08T05:00:00Z/PT1H", "value": 168.8592 }, + { "validTime": "2024-05-08T06:00:00Z/PT1H", "value": 170.9928 }, + { "validTime": "2024-05-08T07:00:00Z/PT2H", "value": 149.6568 }, + { "validTime": "2024-05-08T09:00:00Z/PT1H", "value": 147.828 }, + { "validTime": "2024-05-08T10:00:00Z/PT1H", "value": 155.1432 }, + { "validTime": "2024-05-08T11:00:00Z/PT1H", "value": 158.496 }, + { "validTime": "2024-05-08T12:00:00Z/PT1H", "value": 163.3728 }, + { "validTime": "2024-05-08T13:00:00Z/PT1H", "value": 220.98 }, + { "validTime": "2024-05-08T14:00:00Z/PT1H", "value": 342.5952 }, + { "validTime": "2024-05-08T15:00:00Z/PT1H", "value": 508.4064 }, + { "validTime": "2024-05-08T16:00:00Z/PT1H", "value": 651.0528 }, + { "validTime": "2024-05-08T17:00:00Z/PT1H", "value": 802.5384 }, + { "validTime": "2024-05-08T18:00:00Z/PT1H", "value": 1002.4872 }, + { "validTime": "2024-05-08T19:00:00Z/PT1H", "value": 1163.1168 }, + { "validTime": "2024-05-08T20:00:00Z/PT1H", "value": 1255.776 }, + { "validTime": "2024-05-08T21:00:00Z/PT1H", "value": 1348.1304 }, + { "validTime": "2024-05-08T22:00:00Z/PT1H", "value": 1055.8272 }, + { "validTime": "2024-05-08T23:00:00Z/PT1H", "value": 763.2192 }, + { "validTime": "2024-05-09T00:00:00Z/PT1H", "value": 470.916 }, + { "validTime": "2024-05-09T01:00:00Z/PT1H", "value": 352.3488 }, + { "validTime": "2024-05-09T02:00:00Z/PT1H", "value": 233.4768 }, + { "validTime": "2024-05-09T03:00:00Z/PT1H", "value": 114.9096 }, + { "validTime": "2024-05-09T04:00:00Z/PT1H", "value": 129.8448 }, + { "validTime": "2024-05-09T05:00:00Z/PT1H", "value": 145.0848 }, + { "validTime": "2024-05-09T06:00:00Z/PT1H", "value": 160.02 }, + { "validTime": "2024-05-09T07:00:00Z/PT1H", "value": 168.2496 }, + { "validTime": "2024-05-09T08:00:00Z/PT1H", "value": 176.784 }, + { "validTime": "2024-05-09T09:00:00Z/PT1H", "value": 185.0136 }, + { "validTime": "2024-05-09T10:00:00Z/PT1H", "value": 181.6608 }, + { "validTime": "2024-05-09T11:00:00Z/PT1H", "value": 178.6128 }, + { "validTime": "2024-05-09T12:00:00Z/PT1H", "value": 175.26 }, + { "validTime": "2024-05-09T13:00:00Z/PT1H", "value": 276.1488 }, + { "validTime": "2024-05-09T14:00:00Z/PT1H", "value": 376.7328 }, + { "validTime": "2024-05-09T15:00:00Z/PT1H", "value": 477.6216 }, + { "validTime": "2024-05-09T16:00:00Z/PT1H", "value": 821.7408 }, + { "validTime": "2024-05-09T17:00:00Z/PT1H", "value": 1165.86 }, + { "validTime": "2024-05-09T18:00:00Z/PT1H", "value": 1509.9792 }, + { "validTime": "2024-05-09T19:00:00Z/PT1H", "value": 1693.7736 }, + { "validTime": "2024-05-09T20:00:00Z/PT1H", "value": 1877.2632 }, + { "validTime": "2024-05-09T21:00:00Z/PT1H", "value": 2061.0576 }, + { "validTime": "2024-05-09T22:00:00Z/PT1H", "value": 1452.372 }, + { "validTime": "2024-05-09T23:00:00Z/PT1H", "value": 843.9912 }, + { "validTime": "2024-05-10T00:00:00Z/PT1H", "value": 235.3056 }, + { "validTime": "2024-05-10T01:00:00Z/PT1H", "value": 217.932 }, + { "validTime": "2024-05-10T02:00:00Z/PT1H", "value": 200.5584 }, + { "validTime": "2024-05-10T03:00:00Z/PT1H", "value": 183.1848 }, + { "validTime": "2024-05-10T04:00:00Z/PT1H", "value": 176.784 }, + { "validTime": "2024-05-10T05:00:00Z/PT1H", "value": 170.0784 }, + { "validTime": "2024-05-10T06:00:00Z/PT1H", "value": 163.6776 }, + { "validTime": "2024-05-10T07:00:00Z/PT1H", "value": 154.2288 }, + { "validTime": "2024-05-10T08:00:00Z/PT1H", "value": 144.78 }, + { "validTime": "2024-05-10T09:00:00Z/PT1H", "value": 135.3312 }, + { "validTime": "2024-05-10T10:00:00Z/PT1H", "value": 129.2352 }, + { "validTime": "2024-05-10T11:00:00Z/PT1H", "value": 123.444 }, + { "validTime": "2024-05-10T12:00:00Z/PT1H", "value": 117.348 }, + { "validTime": "2024-05-10T13:00:00Z/PT1H", "value": 215.4936 }, + { "validTime": "2024-05-10T14:00:00Z/PT1H", "value": 313.944 }, + { "validTime": "2024-05-10T15:00:00Z/PT1H", "value": 412.0896 }, + { "validTime": "2024-05-10T16:00:00Z/PT1H", "value": 754.6848 }, + { "validTime": "2024-05-10T17:00:00Z/PT1H", "value": 1097.5848 }, + { "validTime": "2024-05-10T18:00:00Z/PT1H", "value": 1440.18 }, + { "validTime": "2024-05-10T19:00:00Z/PT1H", "value": 1661.4648 }, + { "validTime": "2024-05-10T20:00:00Z/PT1H", "value": 1883.0544 }, + { "validTime": "2024-05-10T21:00:00Z/PT1H", "value": 2104.3392 }, + { "validTime": "2024-05-10T22:00:00Z/PT1H", "value": 1492.9104 }, + { "validTime": "2024-05-10T23:00:00Z/PT1H", "value": 881.4816 }, + { "validTime": "2024-05-11T00:00:00Z/PT1H", "value": 270.0528 }, + { "validTime": "2024-05-11T01:00:00Z/PT1H", "value": 235.0008 }, + { "validTime": "2024-05-11T02:00:00Z/PT1H", "value": 199.644 }, + { "validTime": "2024-05-11T03:00:00Z/PT1H", "value": 164.592 }, + { "validTime": "2024-05-11T04:00:00Z/PT1H", "value": 152.7048 }, + { "validTime": "2024-05-11T05:00:00Z/PT1H", "value": 140.5128 }, + { "validTime": "2024-05-11T06:00:00Z/PT1H", "value": 128.6256 }, + { "validTime": "2024-05-11T07:00:00Z/PT1H", "value": 128.3208 }, + { "validTime": "2024-05-11T08:00:00Z/PT1H", "value": 127.7112 }, + { "validTime": "2024-05-11T09:00:00Z/PT1H", "value": 127.4064 }, + { "validTime": "2024-05-11T10:00:00Z/PT1H", "value": 138.0744 }, + { "validTime": "2024-05-11T11:00:00Z/PT1H", "value": 149.0472 }, + { "validTime": "2024-05-11T12:00:00Z/PT1H", "value": 159.7152 }, + { "validTime": "2024-05-11T13:00:00Z/PT1H", "value": 275.2344 }, + { "validTime": "2024-05-11T14:00:00Z/PT1H", "value": 391.0584 }, + { "validTime": "2024-05-11T15:00:00Z/PT1H", "value": 506.5776 }, + { "validTime": "2024-05-11T16:00:00Z/PT1H", "value": 955.548 }, + { "validTime": "2024-05-11T17:00:00Z/PT1H", "value": 1404.8232 }, + { "validTime": "2024-05-11T18:00:00Z/PT1H", "value": 1853.7936 }, + { "validTime": "2024-05-11T19:00:00Z/PT1H", "value": 1954.3776 }, + { "validTime": "2024-05-11T20:00:00Z/PT1H", "value": 2055.2664 }, + { "validTime": "2024-05-11T21:00:00Z/PT1H", "value": 2155.8504 }, + { "validTime": "2024-05-11T22:00:00Z/PT1H", "value": 1500.8352 }, + { "validTime": "2024-05-11T23:00:00Z/PT1H", "value": 845.5152 }, + { "validTime": "2024-05-12T00:00:00Z/PT1H", "value": 190.5 }, + { "validTime": "2024-05-12T01:00:00Z/PT1H", "value": 172.212 }, + { "validTime": "2024-05-12T02:00:00Z/PT1H", "value": 153.6192 }, + { "validTime": "2024-05-12T03:00:00Z/PT1H", "value": 135.3312 }, + { "validTime": "2024-05-12T04:00:00Z/PT1H", "value": 142.9512 }, + { "validTime": "2024-05-12T05:00:00Z/PT1H", "value": 150.2664 }, + { "validTime": "2024-05-12T06:00:00Z/PT1H", "value": 157.8864 }, + { "validTime": "2024-05-12T07:00:00Z/PT1H", "value": 159.1056 }, + { "validTime": "2024-05-12T08:00:00Z/PT1H", "value": 160.6296 }, + { "validTime": "2024-05-12T09:00:00Z/PT1H", "value": 161.8488 }, + { "validTime": "2024-05-12T10:00:00Z/PT1H", "value": 158.1912 }, + { "validTime": "2024-05-12T11:00:00Z/PT1H", "value": 154.2288 }, + { "validTime": "2024-05-12T12:00:00Z/PT1H", "value": 150.5712 }, + { "validTime": "2024-05-12T13:00:00Z/PT1H", "value": 387.7056 }, + { "validTime": "2024-05-12T14:00:00Z/PT1H", "value": 624.84 }, + { "validTime": "2024-05-12T15:00:00Z/PT1H", "value": 861.9744 }, + { "validTime": "2024-05-12T16:00:00Z/PT1H", "value": 1161.8976 }, + { "validTime": "2024-05-12T17:00:00Z/PT1H", "value": 1461.8208 }, + { "validTime": "2024-05-12T18:00:00Z/PT1H", "value": 1761.744 }, + { "validTime": "2024-05-12T19:00:00Z/PT1H", "value": 1695.6024 }, + { "validTime": "2024-05-12T20:00:00Z/PT1H", "value": 1629.4608 }, + { "validTime": "2024-05-12T21:00:00Z/PT1H", "value": 1563.3192 }, + { "validTime": "2024-05-12T22:00:00Z/PT1H", "value": 1124.712 }, + { "validTime": "2024-05-12T23:00:00Z/PT1H", "value": 686.1048 }, + { "validTime": "2024-05-13T00:00:00Z/PT1H", "value": 247.4976 }, + { "validTime": "2024-05-13T01:00:00Z/PT1H", "value": 209.0928 }, + { "validTime": "2024-05-13T02:00:00Z/PT1H", "value": 170.688 }, + { "validTime": "2024-05-13T03:00:00Z/PT1H", "value": 132.2832 }, + { "validTime": "2024-05-13T04:00:00Z/PT1H", "value": 128.9304 }, + { "validTime": "2024-05-13T05:00:00Z/PT1H", "value": 125.5776 }, + { "validTime": "2024-05-13T06:00:00Z/PT1H", "value": 122.2248 }, + { "validTime": "2024-05-13T07:00:00Z/PT1H", "value": 127.1016 }, + { "validTime": "2024-05-13T08:00:00Z/PT1H", "value": 131.6736 }, + { "validTime": "2024-05-13T09:00:00Z/PT1H", "value": 136.5504 }, + { "validTime": "2024-05-13T10:00:00Z/PT1H", "value": 153.3144 }, + { "validTime": "2024-05-13T11:00:00Z/PT1H", "value": 170.3832 }, + { "validTime": "2024-05-13T12:00:00Z/PT1H", "value": 187.1472 }, + { "validTime": "2024-05-13T13:00:00Z/PT1H", "value": 355.3968 }, + { "validTime": "2024-05-13T14:00:00Z/PT1H", "value": 523.9512 }, + { "validTime": "2024-05-13T15:00:00Z/PT1H", "value": 692.2008 }, + { "validTime": "2024-05-13T16:00:00Z/PT1H", "value": 878.1288 }, + { "validTime": "2024-05-13T17:00:00Z/PT1H", "value": 1063.752 }, + { "validTime": "2024-05-13T18:00:00Z/PT1H", "value": 1249.68 }, + { "validTime": "2024-05-13T19:00:00Z/PT1H", "value": 1294.7904 }, + { "validTime": "2024-05-13T20:00:00Z/PT1H", "value": 1339.9008 }, + { "validTime": "2024-05-13T21:00:00Z/PT1H", "value": 1385.0112 }, + { "validTime": "2024-05-13T22:00:00Z/PT1H", "value": 1054.3032 }, + { "validTime": "2024-05-13T23:00:00Z/PT1H", "value": 723.5952 }, + { "validTime": "2024-05-14T00:00:00Z/PT1H", "value": 392.8872 }, + { "validTime": "2024-05-14T01:00:00Z/PT1H", "value": 321.564 }, + { "validTime": "2024-05-14T02:00:00Z/PT1H", "value": 250.5456 }, + { "validTime": "2024-05-14T03:00:00Z/PT1H", "value": 179.2224 }, + { "validTime": "2024-05-14T04:00:00Z/PT1H", "value": 182.2704 }, + { "validTime": "2024-05-14T05:00:00Z/PT1H", "value": 185.3184 }, + { "validTime": "2024-05-14T06:00:00Z/PT1H", "value": 188.3664 }, + { "validTime": "2024-05-14T07:00:00Z/PT1H", "value": 181.6608 }, + { "validTime": "2024-05-14T08:00:00Z/PT1H", "value": 174.9552 }, + { "validTime": "2024-05-14T09:00:00Z/PT1H", "value": 168.2496 }, + { "validTime": "2024-05-14T10:00:00Z/PT1H", "value": 173.736 }, + { "validTime": "2024-05-14T11:00:00Z/PT1H", "value": 179.5272 }, + { "validTime": "2024-05-14T12:00:00Z/PT1H", "value": 185.0136 }, + { "validTime": "2024-05-14T13:00:00Z/PT1H", "value": 305.1048 }, + { "validTime": "2024-05-14T14:00:00Z/PT1H", "value": 425.196 }, + { "validTime": "2024-05-14T15:00:00Z/PT1H", "value": 545.2872 }, + { "validTime": "2024-05-14T16:00:00Z/PT1H", "value": 746.4552 }, + { "validTime": "2024-05-14T17:00:00Z/PT1H", "value": 947.6232 }, + { "validTime": "2024-05-14T18:00:00Z/PT1H", "value": 1148.7912 }, + { "validTime": "2024-05-14T19:00:00Z/PT1H", "value": 1128.3696 }, + { "validTime": "2024-05-14T20:00:00Z/PT1H", "value": 1108.2528 }, + { "validTime": "2024-05-14T21:00:00Z/PT1H", "value": 1087.8312 }, + { "validTime": "2024-05-14T22:00:00Z/PT1H", "value": 790.0416 }, + { "validTime": "2024-05-14T23:00:00Z/PT1H", "value": 492.252 }, + { "validTime": "2024-05-15T00:00:00Z/PT1H", "value": 194.4624 } + ] + }, + "hainesIndex": { + "values": [ + { "validTime": "2024-05-07T04:00:00Z/PT2H", "value": 6 }, + { "validTime": "2024-05-07T06:00:00Z/PT18H", "value": 5 }, + { "validTime": "2024-05-08T00:00:00Z/PT18H", "value": 4 }, + { "validTime": "2024-05-08T18:00:00Z/P1D", "value": 5 }, + { "validTime": "2024-05-09T18:00:00Z/PT12H", "value": 6 }, + { "validTime": "2024-05-10T06:00:00Z/PT12H", "value": 5 }, + { "validTime": "2024-05-10T18:00:00Z/PT12H", "value": 6 }, + { "validTime": "2024-05-11T06:00:00Z/P1D", "value": 5 }, + { "validTime": "2024-05-12T06:00:00Z/PT12H", "value": 4 }, + { "validTime": "2024-05-12T18:00:00Z/PT12H", "value": 6 }, + { "validTime": "2024-05-13T06:00:00Z/P2D", "value": 5 } + ] + }, + "lightningActivityLevel": { + "values": [{ "validTime": "2024-05-07T04:00:00Z/P8DT6H", "value": 1 }] + }, + "twentyFootWindSpeed": { + "uom": "wmoUnit:km_h-1", + "values": [ + { "validTime": "2024-05-07T04:00:00Z/PT5H", "value": 1.852 }, + { "validTime": "2024-05-07T09:00:00Z/PT4H", "value": 3.704 }, + { "validTime": "2024-05-07T13:00:00Z/PT1H", "value": 5.556 }, + { "validTime": "2024-05-07T14:00:00Z/PT1H", "value": 7.408 }, + { "validTime": "2024-05-07T15:00:00Z/PT1H", "value": 9.26 }, + { "validTime": "2024-05-07T16:00:00Z/PT1H", "value": 11.112 }, + { "validTime": "2024-05-07T17:00:00Z/PT1H", "value": 14.816 }, + { "validTime": "2024-05-07T18:00:00Z/PT5H", "value": 16.668 }, + { "validTime": "2024-05-07T23:00:00Z/PT2H", "value": 14.816 }, + { "validTime": "2024-05-08T01:00:00Z/PT2H", "value": 12.964 }, + { "validTime": "2024-05-08T03:00:00Z/PT2H", "value": 11.112 }, + { "validTime": "2024-05-08T05:00:00Z/PT4H", "value": 9.26 }, + { "validTime": "2024-05-08T09:00:00Z/PT3H", "value": 7.408 }, + { "validTime": "2024-05-08T12:00:00Z/PT3H", "value": 5.556 }, + { "validTime": "2024-05-08T15:00:00Z/PT1H", "value": 7.408 }, + { "validTime": "2024-05-08T16:00:00Z/PT1H", "value": 5.556 }, + { "validTime": "2024-05-08T17:00:00Z/PT12H", "value": 3.704 }, + { "validTime": "2024-05-09T05:00:00Z/PT9H", "value": 5.556 }, + { "validTime": "2024-05-09T14:00:00Z/PT3H", "value": 7.408 }, + { "validTime": "2024-05-09T17:00:00Z/PT6H", "value": 9.26 }, + { "validTime": "2024-05-09T23:00:00Z/PT8H", "value": 7.408 }, + { "validTime": "2024-05-10T07:00:00Z/PT2H", "value": 5.556 }, + { "validTime": "2024-05-10T09:00:00Z/PT7H", "value": 3.704 }, + { "validTime": "2024-05-10T16:00:00Z/PT2H", "value": 5.556 }, + { "validTime": "2024-05-10T18:00:00Z/PT1H", "value": 7.408 }, + { "validTime": "2024-05-10T19:00:00Z/PT7H", "value": 9.26 }, + { "validTime": "2024-05-11T02:00:00Z/PT2H", "value": 7.408 }, + { "validTime": "2024-05-11T04:00:00Z/PT2H", "value": 5.556 }, + { "validTime": "2024-05-11T06:00:00Z/PT8H", "value": 3.704 }, + { "validTime": "2024-05-11T14:00:00Z/PT2H", "value": 5.556 }, + { "validTime": "2024-05-11T16:00:00Z/PT2H", "value": 7.408 }, + { "validTime": "2024-05-11T18:00:00Z/PT7H", "value": 9.26 }, + { "validTime": "2024-05-12T01:00:00Z/PT2H", "value": 7.408 }, + { "validTime": "2024-05-12T03:00:00Z/PT2H", "value": 5.556 }, + { "validTime": "2024-05-12T05:00:00Z/PT9H", "value": 3.704 }, + { "validTime": "2024-05-12T14:00:00Z/PT2H", "value": 5.556 }, + { "validTime": "2024-05-12T16:00:00Z/PT2H", "value": 7.408 }, + { "validTime": "2024-05-12T18:00:00Z/PT11H", "value": 9.26 }, + { "validTime": "2024-05-13T05:00:00Z/PT6H", "value": 7.408 }, + { "validTime": "2024-05-13T11:00:00Z/PT5H", "value": 9.26 }, + { "validTime": "2024-05-13T16:00:00Z/PT2H", "value": 11.112 }, + { "validTime": "2024-05-13T18:00:00Z/PT4H", "value": 12.964 }, + { "validTime": "2024-05-13T22:00:00Z/PT2H", "value": 11.112 }, + { "validTime": "2024-05-14T00:00:00Z/PT4H", "value": 9.26 }, + { "validTime": "2024-05-14T04:00:00Z/PT2H", "value": 7.408 }, + { "validTime": "2024-05-14T06:00:00Z/PT11H", "value": 5.556 }, + { "validTime": "2024-05-14T17:00:00Z/PT6H", "value": 7.408 }, + { "validTime": "2024-05-14T23:00:00Z/PT11H", "value": 5.556 } + ] + }, + "twentyFootWindDirection": { + "uom": "wmoUnit:degree_(angle)", + "values": [ + { "validTime": "2024-05-07T04:00:00Z/PT1H", "value": 140 }, + { "validTime": "2024-05-07T05:00:00Z/PT2H", "value": 120 }, + { "validTime": "2024-05-07T07:00:00Z/PT1H", "value": 110 }, + { "validTime": "2024-05-07T08:00:00Z/PT1H", "value": 60 }, + { "validTime": "2024-05-07T09:00:00Z/PT1H", "value": 100 }, + { "validTime": "2024-05-07T10:00:00Z/PT1H", "value": 40 }, + { "validTime": "2024-05-07T11:00:00Z/PT1H", "value": 10 }, + { "validTime": "2024-05-07T12:00:00Z/PT2H", "value": 0 }, + { "validTime": "2024-05-07T14:00:00Z/PT1H", "value": 10 }, + { "validTime": "2024-05-07T15:00:00Z/PT2H", "value": 20 }, + { "validTime": "2024-05-07T17:00:00Z/PT1H", "value": 30 }, + { "validTime": "2024-05-07T18:00:00Z/PT2H", "value": 40 }, + { "validTime": "2024-05-07T20:00:00Z/PT3H", "value": 30 }, + { "validTime": "2024-05-07T23:00:00Z/PT5H", "value": 20 }, + { "validTime": "2024-05-08T04:00:00Z/PT2H", "value": 30 }, + { "validTime": "2024-05-08T06:00:00Z/PT5H", "value": 20 }, + { "validTime": "2024-05-08T11:00:00Z/PT1H", "value": 30 }, + { "validTime": "2024-05-08T12:00:00Z/PT1H", "value": 40 }, + { "validTime": "2024-05-08T13:00:00Z/PT1H", "value": 50 }, + { "validTime": "2024-05-08T14:00:00Z/PT1H", "value": 70 }, + { "validTime": "2024-05-08T15:00:00Z/PT1H", "value": 90 }, + { "validTime": "2024-05-08T16:00:00Z/PT1H", "value": 100 }, + { "validTime": "2024-05-08T17:00:00Z/PT1H", "value": 110 }, + { "validTime": "2024-05-08T18:00:00Z/PT1H", "value": 100 }, + { "validTime": "2024-05-08T19:00:00Z/PT2H", "value": 10 }, + { "validTime": "2024-05-08T21:00:00Z/PT1H", "value": 0 }, + { "validTime": "2024-05-08T22:00:00Z/PT1H", "value": 30 }, + { "validTime": "2024-05-08T23:00:00Z/PT1H", "value": 100 }, + { "validTime": "2024-05-09T00:00:00Z/PT4H", "value": 130 }, + { "validTime": "2024-05-09T04:00:00Z/PT1H", "value": 140 }, + { "validTime": "2024-05-09T05:00:00Z/PT8H", "value": 150 }, + { "validTime": "2024-05-09T13:00:00Z/PT1H", "value": 160 }, + { "validTime": "2024-05-09T14:00:00Z/PT3H", "value": 170 }, + { "validTime": "2024-05-09T17:00:00Z/PT2H", "value": 180 }, + { "validTime": "2024-05-09T19:00:00Z/PT1H", "value": 170 }, + { "validTime": "2024-05-09T20:00:00Z/PT1H", "value": 150 }, + { "validTime": "2024-05-09T21:00:00Z/PT2H", "value": 140 }, + { "validTime": "2024-05-09T23:00:00Z/PT1H", "value": 130 }, + { "validTime": "2024-05-10T00:00:00Z/PT5H", "value": 120 }, + { "validTime": "2024-05-10T05:00:00Z/PT5H", "value": 130 }, + { "validTime": "2024-05-10T10:00:00Z/PT1H", "value": 120 }, + { "validTime": "2024-05-10T11:00:00Z/PT1H", "value": 110 }, + { "validTime": "2024-05-10T12:00:00Z/PT2H", "value": 100 }, + { "validTime": "2024-05-10T14:00:00Z/PT3H", "value": 90 }, + { "validTime": "2024-05-10T17:00:00Z/PT1H", "value": 80 }, + { "validTime": "2024-05-10T18:00:00Z/PT2H", "value": 70 }, + { "validTime": "2024-05-10T20:00:00Z/PT3H", "value": 60 }, + { "validTime": "2024-05-10T23:00:00Z/PT3H", "value": 70 }, + { "validTime": "2024-05-11T02:00:00Z/PT6H", "value": 80 }, + { "validTime": "2024-05-11T08:00:00Z/PT3H", "value": 70 }, + { "validTime": "2024-05-11T11:00:00Z/PT2H", "value": 60 }, + { "validTime": "2024-05-11T13:00:00Z/PT1H", "value": 70 }, + { "validTime": "2024-05-11T14:00:00Z/PT3H", "value": 80 }, + { "validTime": "2024-05-11T17:00:00Z/PT6H", "value": 70 }, + { "validTime": "2024-05-11T23:00:00Z/PT3H", "value": 80 }, + { "validTime": "2024-05-12T02:00:00Z/PT3H", "value": 90 }, + { "validTime": "2024-05-12T05:00:00Z/PT3H", "value": 100 }, + { "validTime": "2024-05-12T08:00:00Z/PT3H", "value": 90 }, + { "validTime": "2024-05-12T11:00:00Z/PT3H", "value": 80 }, + { "validTime": "2024-05-12T14:00:00Z/PT1H", "value": 70 }, + { "validTime": "2024-05-12T15:00:00Z/PT2H", "value": 60 }, + { "validTime": "2024-05-12T17:00:00Z/PT1H", "value": 50 }, + { "validTime": "2024-05-12T18:00:00Z/PT2H", "value": 40 }, + { "validTime": "2024-05-12T20:00:00Z/PT2H", "value": 30 }, + { "validTime": "2024-05-12T22:00:00Z/PT1H", "value": 40 }, + { "validTime": "2024-05-12T23:00:00Z/PT1H", "value": 50 }, + { "validTime": "2024-05-13T00:00:00Z/PT5H", "value": 60 }, + { "validTime": "2024-05-13T05:00:00Z/PT1H", "value": 50 }, + { "validTime": "2024-05-13T06:00:00Z/PT2H", "value": 40 }, + { "validTime": "2024-05-13T08:00:00Z/PT1H", "value": 30 }, + { "validTime": "2024-05-13T09:00:00Z/PT2H", "value": 20 }, + { "validTime": "2024-05-13T11:00:00Z/PT3H", "value": 10 }, + { "validTime": "2024-05-13T14:00:00Z/PT9H", "value": 20 }, + { "validTime": "2024-05-13T23:00:00Z/PT3H", "value": 10 }, + { "validTime": "2024-05-14T02:00:00Z/PT3H", "value": 20 }, + { "validTime": "2024-05-14T05:00:00Z/PT6H", "value": 30 }, + { "validTime": "2024-05-14T11:00:00Z/PT3H", "value": 40 }, + { "validTime": "2024-05-14T14:00:00Z/PT2H", "value": 50 }, + { "validTime": "2024-05-14T16:00:00Z/PT1H", "value": 60 }, + { "validTime": "2024-05-14T17:00:00Z/PT3H", "value": 70 }, + { "validTime": "2024-05-14T20:00:00Z/PT2H", "value": 60 }, + { "validTime": "2024-05-14T22:00:00Z/PT1H", "value": 70 }, + { "validTime": "2024-05-14T23:00:00Z/PT3H", "value": 80 }, + { "validTime": "2024-05-15T02:00:00Z/PT1H", "value": 90 }, + { "validTime": "2024-05-15T03:00:00Z/PT2H", "value": 100 }, + { "validTime": "2024-05-15T05:00:00Z/PT5H", "value": 110 } + ] + }, + "waveHeight": { "values": [] }, + "wavePeriod": { "values": [] }, + "waveDirection": { "values": [] }, + "primarySwellHeight": { "values": [] }, + "primarySwellDirection": { "values": [] }, + "secondarySwellHeight": { "values": [] }, + "secondarySwellDirection": { "values": [] }, + "wavePeriod2": { "values": [] }, + "windWaveHeight": { "values": [] }, + "dispersionIndex": { "values": [] }, + "pressure": { "values": [] }, + "probabilityOfTropicalStormWinds": { "values": [] }, + "probabilityOfHurricaneWinds": { "values": [] }, + "potentialOf15mphWinds": { "values": [] }, + "potentialOf25mphWinds": { "values": [] }, + "potentialOf35mphWinds": { "values": [] }, + "potentialOf45mphWinds": { "values": [] }, + "potentialOf20mphWindGusts": { "values": [] }, + "potentialOf30mphWindGusts": { "values": [] }, + "potentialOf40mphWindGusts": { "values": [] }, + "potentialOf50mphWindGusts": { "values": [] }, + "potentialOf60mphWindGusts": { "values": [] }, + "grasslandFireDangerIndex": { "values": [] }, + "probabilityOfThunder": { + "values": [ + { "validTime": "2024-05-07T04:00:00Z/P1DT2H", "value": 0 }, + { "validTime": "2024-05-08T06:00:00Z/PT6H", "value": 1 }, + { "validTime": "2024-05-08T12:00:00Z/P1D", "value": 0 } + ] + }, + "davisStabilityIndex": { "values": [] }, + "atmosphericDispersionIndex": { "values": [] }, + "lowVisibilityOccurrenceRiskIndex": { "values": [] }, + "stability": { "values": [] }, + "redFlagThreatIndex": { + "values": [{ "validTime": "2024-05-07T04:00:00Z/P7DT18H", "value": 0 }] + } + } +} diff --git a/tests/api/data/e2e/gridpoints/FWD/89,104/forecast/hourly.json b/tests/api/data/e2e/gridpoints/FWD/89,104/forecast/hourly.json index 9227c2918..56ca6909e 100644 --- a/tests/api/data/e2e/gridpoints/FWD/89,104/forecast/hourly.json +++ b/tests/api/data/e2e/gridpoints/FWD/89,104/forecast/hourly.json @@ -34,8 +34,8 @@ { "number": 1, "name": "", - "startTime": "date:now -2226 seconds", - "endTime": "date:now +1373 seconds", + "startTime": "2024-05-07T04:00:00Z", + "endTime": "2024-05-07T05:00:00Z", "isDaytime": true, "temperature": 79, "temperatureUnit": "F", @@ -55,8 +55,8 @@ { "number": 2, "name": "", - "startTime": "date:now +1373 seconds", - "endTime": "date:now +4973 seconds", + "startTime": "2024-05-07T05:00:00Z", + "endTime": "2024-05-07T06:00:00Z", "isDaytime": true, "temperature": 80, "temperatureUnit": "F", @@ -76,8 +76,8 @@ { "number": 3, "name": "", - "startTime": "date:now +4973 seconds", - "endTime": "date:now +8573 seconds", + "startTime": "2024-05-07T06:00:00Z", + "endTime": "2024-05-07T07:00:00Z", "isDaytime": true, "temperature": 81, "temperatureUnit": "F", @@ -97,8 +97,8 @@ { "number": 4, "name": "", - "startTime": "date:now +8573 seconds", - "endTime": "date:now +12173 seconds", + "startTime": "2024-05-07T07:00:00Z", + "endTime": "2024-05-07T08:00:00Z", "isDaytime": true, "temperature": 82, "temperatureUnit": "F", @@ -118,8 +118,8 @@ { "number": 5, "name": "", - "startTime": "date:now +12173 seconds", - "endTime": "date:now +15773 seconds", + "startTime": "2024-05-07T08:00:00Z", + "endTime": "2024-05-07T09:00:00Z", "isDaytime": true, "temperature": 82, "temperatureUnit": "F", @@ -139,8 +139,8 @@ { "number": 6, "name": "", - "startTime": "date:now +15773 seconds", - "endTime": "date:now +19373 seconds", + "startTime": "2024-05-07T09:00:00Z", + "endTime": "2024-05-07T10:00:00Z", "isDaytime": false, "temperature": 81, "temperatureUnit": "F", @@ -160,8 +160,8 @@ { "number": 7, "name": "", - "startTime": "date:now +19373 seconds", - "endTime": "date:now +22973 seconds", + "startTime": "2024-05-07T10:00:00Z", + "endTime": "2024-05-07T11:00:00Z", "isDaytime": false, "temperature": 80, "temperatureUnit": "F", @@ -181,8 +181,8 @@ { "number": 8, "name": "", - "startTime": "date:now +22973 seconds", - "endTime": "date:now +26573 seconds", + "startTime": "2024-05-07T11:00:00Z", + "endTime": "2024-05-07T12:00:00Z", "isDaytime": false, "temperature": 79, "temperatureUnit": "F", @@ -202,8 +202,8 @@ { "number": 9, "name": "", - "startTime": "date:now +26573 seconds", - "endTime": "date:now +30173 seconds", + "startTime": "2024-05-07T12:00:00Z", + "endTime": "2024-05-07T13:00:00Z", "isDaytime": false, "temperature": 78, "temperatureUnit": "F", @@ -223,8 +223,8 @@ { "number": 10, "name": "", - "startTime": "date:now +30173 seconds", - "endTime": "date:now +33773 seconds", + "startTime": "2024-05-07T13:00:00Z", + "endTime": "2024-05-07T14:00:00Z", "isDaytime": false, "temperature": 77, "temperatureUnit": "F", @@ -244,8 +244,8 @@ { "number": 11, "name": "", - "startTime": "date:now +33773 seconds", - "endTime": "date:now +37373 seconds", + "startTime": "2024-05-07T14:00:00Z", + "endTime": "2024-05-07T15:00:00Z", "isDaytime": false, "temperature": 76, "temperatureUnit": "F", @@ -265,8 +265,8 @@ { "number": 12, "name": "", - "startTime": "date:now +37373 seconds", - "endTime": "date:now +40973 seconds", + "startTime": "2024-05-07T15:00:00Z", + "endTime": "2024-05-07T16:00:00Z", "isDaytime": false, "temperature": 75, "temperatureUnit": "F", @@ -286,8 +286,8 @@ { "number": 13, "name": "", - "startTime": "date:now +40973 seconds", - "endTime": "date:now +44573 seconds", + "startTime": "2024-05-07T16:00:00Z", + "endTime": "2024-05-07T17:00:00Z", "isDaytime": false, "temperature": 75, "temperatureUnit": "F", @@ -307,8 +307,8 @@ { "number": 14, "name": "", - "startTime": "date:now +44573 seconds", - "endTime": "date:now +48173 seconds", + "startTime": "2024-05-07T17:00:00Z", + "endTime": "2024-05-07T18:00:00Z", "isDaytime": false, "temperature": 73, "temperatureUnit": "F", @@ -328,8 +328,8 @@ { "number": 15, "name": "", - "startTime": "date:now +48173 seconds", - "endTime": "date:now +51773 seconds", + "startTime": "2024-05-07T18:00:00Z", + "endTime": "2024-05-07T19:00:00Z", "isDaytime": false, "temperature": 73, "temperatureUnit": "F", @@ -349,8 +349,8 @@ { "number": 16, "name": "", - "startTime": "date:now +51773 seconds", - "endTime": "date:now +55373 seconds", + "startTime": "2024-05-07T19:00:00Z", + "endTime": "2024-05-07T20:00:00Z", "isDaytime": false, "temperature": 72, "temperatureUnit": "F", @@ -370,8 +370,8 @@ { "number": 17, "name": "", - "startTime": "date:now +55373 seconds", - "endTime": "date:now +58973 seconds", + "startTime": "2024-05-07T20:00:00Z", + "endTime": "2024-05-07T21:00:00Z", "isDaytime": false, "temperature": 73, "temperatureUnit": "F", @@ -391,8 +391,8 @@ { "number": 18, "name": "", - "startTime": "date:now +58973 seconds", - "endTime": "date:now +62573 seconds", + "startTime": "2024-05-07T21:00:00Z", + "endTime": "2024-05-07T22:00:00Z", "isDaytime": true, "temperature": 72, "temperatureUnit": "F", @@ -412,8 +412,8 @@ { "number": 19, "name": "", - "startTime": "date:now +62573 seconds", - "endTime": "date:now +66173 seconds", + "startTime": "2024-05-07T22:00:00Z", + "endTime": "2024-05-07T23:00:00Z", "isDaytime": true, "temperature": 72, "temperatureUnit": "F", @@ -433,8 +433,8 @@ { "number": 20, "name": "", - "startTime": "date:now +66173 seconds", - "endTime": "date:now +69773 seconds", + "startTime": "2024-05-07T23:00:00Z", + "endTime": "2024-05-08T00:00:00Z", "isDaytime": true, "temperature": 73, "temperatureUnit": "F", @@ -454,8 +454,8 @@ { "number": 21, "name": "", - "startTime": "date:now +69773 seconds", - "endTime": "date:now +73373 seconds", + "startTime": "2024-05-08T00:00:00Z", + "endTime": "2024-05-08T01:00:00Z", "isDaytime": true, "temperature": 74, "temperatureUnit": "F", @@ -475,8 +475,8 @@ { "number": 22, "name": "", - "startTime": "date:now +73373 seconds", - "endTime": "date:now +76973 seconds", + "startTime": "2024-05-08T01:00:00Z", + "endTime": "2024-05-08T02:00:00Z", "isDaytime": true, "temperature": 76, "temperatureUnit": "F", @@ -496,8 +496,8 @@ { "number": 23, "name": "", - "startTime": "date:now +76973 seconds", - "endTime": "date:now +80573 seconds", + "startTime": "2024-05-08T02:00:00Z", + "endTime": "2024-05-08T03:00:00Z", "isDaytime": true, "temperature": 78, "temperatureUnit": "F", @@ -517,8 +517,8 @@ { "number": 24, "name": "", - "startTime": "date:now +80573 seconds", - "endTime": "date:now +84173 seconds", + "startTime": "2024-05-08T03:00:00Z", + "endTime": "2024-05-08T04:00:00Z", "isDaytime": true, "temperature": 82, "temperatureUnit": "F", @@ -538,8 +538,8 @@ { "number": 25, "name": "", - "startTime": "date:now +84173 seconds", - "endTime": "date:now +87773 seconds", + "startTime": "2024-05-08T04:00:00Z", + "endTime": "2024-05-08T05:00:00Z", "isDaytime": true, "temperature": 86, "temperatureUnit": "F", @@ -559,8 +559,8 @@ { "number": 26, "name": "", - "startTime": "date:now +87773 seconds", - "endTime": "date:now +91373 seconds", + "startTime": "2024-05-08T05:00:00Z", + "endTime": "2024-05-08T06:00:00Z", "isDaytime": true, "temperature": 87, "temperatureUnit": "F", @@ -580,8 +580,8 @@ { "number": 27, "name": "", - "startTime": "date:now +91373 seconds", - "endTime": "date:now +94973 seconds", + "startTime": "2024-05-08T06:00:00Z", + "endTime": "2024-05-08T07:00:00Z", "isDaytime": true, "temperature": 88, "temperatureUnit": "F", @@ -601,8 +601,8 @@ { "number": 28, "name": "", - "startTime": "date:now +94973 seconds", - "endTime": "date:now +98573 seconds", + "startTime": "2024-05-08T07:00:00Z", + "endTime": "2024-05-08T08:00:00Z", "isDaytime": true, "temperature": 87, "temperatureUnit": "F", @@ -622,8 +622,8 @@ { "number": 29, "name": "", - "startTime": "date:now +98573 seconds", - "endTime": "date:now +102173 seconds", + "startTime": "2024-05-08T08:00:00Z", + "endTime": "2024-05-08T09:00:00Z", "isDaytime": true, "temperature": 88, "temperatureUnit": "F", @@ -643,8 +643,8 @@ { "number": 30, "name": "", - "startTime": "date:now +102173 seconds", - "endTime": "date:now +105773 seconds", + "startTime": "2024-05-08T09:00:00Z", + "endTime": "2024-05-08T10:00:00Z", "isDaytime": false, "temperature": 87, "temperatureUnit": "F", @@ -664,8 +664,8 @@ { "number": 31, "name": "", - "startTime": "date:now +105773 seconds", - "endTime": "date:now +109373 seconds", + "startTime": "2024-05-08T10:00:00Z", + "endTime": "2024-05-08T11:00:00Z", "isDaytime": false, "temperature": 86, "temperatureUnit": "F", @@ -685,8 +685,8 @@ { "number": 32, "name": "", - "startTime": "date:now +109373 seconds", - "endTime": "date:now +112973 seconds", + "startTime": "2024-05-08T11:00:00Z", + "endTime": "2024-05-08T12:00:00Z", "isDaytime": false, "temperature": 83, "temperatureUnit": "F", @@ -706,8 +706,8 @@ { "number": 33, "name": "", - "startTime": "date:now +112973 seconds", - "endTime": "date:now +116573 seconds", + "startTime": "2024-05-08T12:00:00Z", + "endTime": "2024-05-08T13:00:00Z", "isDaytime": false, "temperature": 79, "temperatureUnit": "F", @@ -727,8 +727,8 @@ { "number": 34, "name": "", - "startTime": "date:now +116573 seconds", - "endTime": "date:now +120173 seconds", + "startTime": "2024-05-08T13:00:00Z", + "endTime": "2024-05-08T14:00:00Z", "isDaytime": false, "temperature": 77, "temperatureUnit": "F", @@ -748,8 +748,8 @@ { "number": 35, "name": "", - "startTime": "date:now +120173 seconds", - "endTime": "date:now +123773 seconds", + "startTime": "2024-05-08T14:00:00Z", + "endTime": "2024-05-08T15:00:00Z", "isDaytime": false, "temperature": 76, "temperatureUnit": "F", @@ -769,8 +769,8 @@ { "number": 36, "name": "", - "startTime": "date:now +123773 seconds", - "endTime": "date:now +127373 seconds", + "startTime": "2024-05-08T15:00:00Z", + "endTime": "2024-05-08T16:00:00Z", "isDaytime": false, "temperature": 75, "temperatureUnit": "F", @@ -790,8 +790,8 @@ { "number": 37, "name": "", - "startTime": "date:now +127373 seconds", - "endTime": "date:now +130973 seconds", + "startTime": "2024-05-08T16:00:00Z", + "endTime": "2024-05-08T17:00:00Z", "isDaytime": false, "temperature": 74, "temperatureUnit": "F", @@ -811,8 +811,8 @@ { "number": 38, "name": "", - "startTime": "date:now +130973 seconds", - "endTime": "date:now +134573 seconds", + "startTime": "2024-05-08T17:00:00Z", + "endTime": "2024-05-08T18:00:00Z", "isDaytime": false, "temperature": 74, "temperatureUnit": "F", @@ -832,8 +832,8 @@ { "number": 39, "name": "", - "startTime": "date:now +134573 seconds", - "endTime": "date:now +138173 seconds", + "startTime": "2024-05-08T18:00:00Z", + "endTime": "2024-05-08T19:00:00Z", "isDaytime": false, "temperature": 73, "temperatureUnit": "F", @@ -853,8 +853,8 @@ { "number": 40, "name": "", - "startTime": "date:now +138173 seconds", - "endTime": "date:now +141773 seconds", + "startTime": "2024-05-08T19:00:00Z", + "endTime": "2024-05-08T20:00:00Z", "isDaytime": false, "temperature": 73, "temperatureUnit": "F", @@ -874,8 +874,8 @@ { "number": 41, "name": "", - "startTime": "date:now +141773 seconds", - "endTime": "date:now +145373 seconds", + "startTime": "2024-05-08T20:00:00Z", + "endTime": "2024-05-08T21:00:00Z", "isDaytime": false, "temperature": 73, "temperatureUnit": "F", @@ -895,8 +895,8 @@ { "number": 42, "name": "", - "startTime": "date:now +145373 seconds", - "endTime": "date:now +148973 seconds", + "startTime": "2024-05-08T21:00:00Z", + "endTime": "2024-05-08T22:00:00Z", "isDaytime": true, "temperature": 73, "temperatureUnit": "F", @@ -916,8 +916,8 @@ { "number": 43, "name": "", - "startTime": "date:now +148973 seconds", - "endTime": "date:now +152573 seconds", + "startTime": "2024-05-08T22:00:00Z", + "endTime": "2024-05-08T23:00:00Z", "isDaytime": true, "temperature": 73, "temperatureUnit": "F", @@ -937,8 +937,8 @@ { "number": 44, "name": "", - "startTime": "date:now +152573 seconds", - "endTime": "date:now +156173 seconds", + "startTime": "2024-05-08T23:00:00Z", + "endTime": "2024-05-09T00:00:00Z", "isDaytime": true, "temperature": 75, "temperatureUnit": "F", @@ -958,8 +958,8 @@ { "number": 45, "name": "", - "startTime": "date:now +156173 seconds", - "endTime": "date:now +159773 seconds", + "startTime": "2024-05-09T00:00:00Z", + "endTime": "2024-05-09T01:00:00Z", "isDaytime": true, "temperature": 76, "temperatureUnit": "F", @@ -979,8 +979,8 @@ { "number": 46, "name": "", - "startTime": "date:now +159773 seconds", - "endTime": "date:now +163373 seconds", + "startTime": "2024-05-09T01:00:00Z", + "endTime": "2024-05-09T02:00:00Z", "isDaytime": true, "temperature": 78, "temperatureUnit": "F", @@ -1000,8 +1000,8 @@ { "number": 47, "name": "", - "startTime": "date:now +163373 seconds", - "endTime": "date:now +166973 seconds", + "startTime": "2024-05-09T02:00:00Z", + "endTime": "2024-05-09T03:00:00Z", "isDaytime": true, "temperature": 81, "temperatureUnit": "F", @@ -1021,8 +1021,8 @@ { "number": 48, "name": "", - "startTime": "date:now +166973 seconds", - "endTime": "date:now +170573 seconds", + "startTime": "2024-05-09T03:00:00Z", + "endTime": "2024-05-09T04:00:00Z", "isDaytime": true, "temperature": 84, "temperatureUnit": "F", @@ -1042,8 +1042,8 @@ { "number": 49, "name": "", - "startTime": "date:now +170573 seconds", - "endTime": "date:now +174173 seconds", + "startTime": "2024-05-09T04:00:00Z", + "endTime": "2024-05-09T05:00:00Z", "isDaytime": true, "temperature": 87, "temperatureUnit": "F", @@ -1063,8 +1063,8 @@ { "number": 50, "name": "", - "startTime": "date:now +174173 seconds", - "endTime": "date:now +177773 seconds", + "startTime": "2024-05-09T05:00:00Z", + "endTime": "2024-05-09T06:00:00Z", "isDaytime": true, "temperature": 87, "temperatureUnit": "F", @@ -1084,8 +1084,8 @@ { "number": 51, "name": "", - "startTime": "date:now +177773 seconds", - "endTime": "date:now +181373 seconds", + "startTime": "2024-05-09T06:00:00Z", + "endTime": "2024-05-09T07:00:00Z", "isDaytime": true, "temperature": 88, "temperatureUnit": "F", @@ -1105,8 +1105,8 @@ { "number": 52, "name": "", - "startTime": "date:now +181373 seconds", - "endTime": "date:now +184973 seconds", + "startTime": "2024-05-09T07:00:00Z", + "endTime": "2024-05-09T08:00:00Z", "isDaytime": true, "temperature": 89, "temperatureUnit": "F", @@ -1126,8 +1126,8 @@ { "number": 53, "name": "", - "startTime": "date:now +184973 seconds", - "endTime": "date:now +188573 seconds", + "startTime": "2024-05-09T08:00:00Z", + "endTime": "2024-05-09T09:00:00Z", "isDaytime": true, "temperature": 88, "temperatureUnit": "F", @@ -1147,8 +1147,8 @@ { "number": 54, "name": "", - "startTime": "date:now +188573 seconds", - "endTime": "date:now +192173 seconds", + "startTime": "2024-05-09T09:00:00Z", + "endTime": "2024-05-09T10:00:00Z", "isDaytime": false, "temperature": 87, "temperatureUnit": "F", @@ -1168,8 +1168,8 @@ { "number": 55, "name": "", - "startTime": "date:now +192173 seconds", - "endTime": "date:now +195773 seconds", + "startTime": "2024-05-09T10:00:00Z", + "endTime": "2024-05-09T11:00:00Z", "isDaytime": false, "temperature": 86, "temperatureUnit": "F", @@ -1189,8 +1189,8 @@ { "number": 56, "name": "", - "startTime": "date:now +195773 seconds", - "endTime": "date:now +199373 seconds", + "startTime": "2024-05-09T11:00:00Z", + "endTime": "2024-05-09T12:00:00Z", "isDaytime": false, "temperature": 83, "temperatureUnit": "F", @@ -1210,8 +1210,8 @@ { "number": 57, "name": "", - "startTime": "date:now +199373 seconds", - "endTime": "date:now +202973 seconds", + "startTime": "2024-05-09T12:00:00Z", + "endTime": "2024-05-09T13:00:00Z", "isDaytime": false, "temperature": 80, "temperatureUnit": "F", @@ -1231,8 +1231,8 @@ { "number": 58, "name": "", - "startTime": "date:now +202973 seconds", - "endTime": "date:now +206573 seconds", + "startTime": "2024-05-09T13:00:00Z", + "endTime": "2024-05-09T14:00:00Z", "isDaytime": false, "temperature": 78, "temperatureUnit": "F", @@ -1252,8 +1252,8 @@ { "number": 59, "name": "", - "startTime": "date:now +206573 seconds", - "endTime": "date:now +210173 seconds", + "startTime": "2024-05-09T14:00:00Z", + "endTime": "2024-05-09T15:00:00Z", "isDaytime": false, "temperature": 76, "temperatureUnit": "F", @@ -1273,8 +1273,8 @@ { "number": 60, "name": "", - "startTime": "date:now +210173 seconds", - "endTime": "date:now +213773 seconds", + "startTime": "2024-05-09T15:00:00Z", + "endTime": "2024-05-09T16:00:00Z", "isDaytime": false, "temperature": 74, "temperatureUnit": "F", @@ -1294,8 +1294,8 @@ { "number": 61, "name": "", - "startTime": "date:now +213773 seconds", - "endTime": "date:now +217373 seconds", + "startTime": "2024-05-09T16:00:00Z", + "endTime": "2024-05-09T17:00:00Z", "isDaytime": false, "temperature": 72, "temperatureUnit": "F", @@ -1315,8 +1315,8 @@ { "number": 62, "name": "", - "startTime": "date:now +217373 seconds", - "endTime": "date:now +220973 seconds", + "startTime": "2024-05-09T17:00:00Z", + "endTime": "2024-05-09T18:00:00Z", "isDaytime": false, "temperature": 70, "temperatureUnit": "F", @@ -1336,8 +1336,8 @@ { "number": 63, "name": "", - "startTime": "date:now +220973 seconds", - "endTime": "date:now +224573 seconds", + "startTime": "2024-05-09T18:00:00Z", + "endTime": "2024-05-09T19:00:00Z", "isDaytime": false, "temperature": 69, "temperatureUnit": "F", @@ -1357,8 +1357,8 @@ { "number": 64, "name": "", - "startTime": "date:now +224573 seconds", - "endTime": "date:now +228173 seconds", + "startTime": "2024-05-09T19:00:00Z", + "endTime": "2024-05-09T20:00:00Z", "isDaytime": false, "temperature": 68, "temperatureUnit": "F", @@ -1378,8 +1378,8 @@ { "number": 65, "name": "", - "startTime": "date:now +228173 seconds", - "endTime": "date:now +231773 seconds", + "startTime": "2024-05-09T20:00:00Z", + "endTime": "2024-05-09T21:00:00Z", "isDaytime": false, "temperature": 67, "temperatureUnit": "F", @@ -1399,8 +1399,8 @@ { "number": 66, "name": "", - "startTime": "date:now +231773 seconds", - "endTime": "date:now +235373 seconds", + "startTime": "2024-05-09T21:00:00Z", + "endTime": "2024-05-09T22:00:00Z", "isDaytime": true, "temperature": 67, "temperatureUnit": "F", @@ -1420,8 +1420,8 @@ { "number": 67, "name": "", - "startTime": "date:now +235373 seconds", - "endTime": "date:now +238973 seconds", + "startTime": "2024-05-09T22:00:00Z", + "endTime": "2024-05-09T23:00:00Z", "isDaytime": true, "temperature": 66, "temperatureUnit": "F", @@ -1441,8 +1441,8 @@ { "number": 68, "name": "", - "startTime": "date:now +238973 seconds", - "endTime": "date:now +242573 seconds", + "startTime": "2024-05-09T23:00:00Z", + "endTime": "2024-05-10T00:00:00Z", "isDaytime": true, "temperature": 68, "temperatureUnit": "F", @@ -1462,8 +1462,8 @@ { "number": 69, "name": "", - "startTime": "date:now +242573 seconds", - "endTime": "date:now +246173 seconds", + "startTime": "2024-05-10T00:00:00Z", + "endTime": "2024-05-10T01:00:00Z", "isDaytime": true, "temperature": 70, "temperatureUnit": "F", @@ -1483,8 +1483,8 @@ { "number": 70, "name": "", - "startTime": "date:now +246173 seconds", - "endTime": "date:now +249773 seconds", + "startTime": "2024-05-10T01:00:00Z", + "endTime": "2024-05-10T02:00:00Z", "isDaytime": true, "temperature": 71, "temperatureUnit": "F", @@ -1504,8 +1504,8 @@ { "number": 71, "name": "", - "startTime": "date:now +249773 seconds", - "endTime": "date:now +253373 seconds", + "startTime": "2024-05-10T02:00:00Z", + "endTime": "2024-05-10T03:00:00Z", "isDaytime": true, "temperature": 73, "temperatureUnit": "F", @@ -1525,8 +1525,8 @@ { "number": 72, "name": "", - "startTime": "date:now +253373 seconds", - "endTime": "date:now +256973 seconds", + "startTime": "2024-05-10T03:00:00Z", + "endTime": "2024-05-10T04:00:00Z", "isDaytime": true, "temperature": 76, "temperatureUnit": "F", @@ -1546,8 +1546,8 @@ { "number": 73, "name": "", - "startTime": "date:now +256973 seconds", - "endTime": "date:now +260573 seconds", + "startTime": "2024-05-10T04:00:00Z", + "endTime": "2024-05-10T05:00:00Z", "isDaytime": true, "temperature": 78, "temperatureUnit": "F", @@ -1567,8 +1567,8 @@ { "number": 74, "name": "", - "startTime": "date:now +260573 seconds", - "endTime": "date:now +264173 seconds", + "startTime": "2024-05-10T05:00:00Z", + "endTime": "2024-05-10T06:00:00Z", "isDaytime": true, "temperature": 78, "temperatureUnit": "F", @@ -1588,8 +1588,8 @@ { "number": 75, "name": "", - "startTime": "date:now +264173 seconds", - "endTime": "date:now +267773 seconds", + "startTime": "2024-05-10T06:00:00Z", + "endTime": "2024-05-10T07:00:00Z", "isDaytime": true, "temperature": 79, "temperatureUnit": "F", @@ -1609,8 +1609,8 @@ { "number": 76, "name": "", - "startTime": "date:now +267773 seconds", - "endTime": "date:now +271373 seconds", + "startTime": "2024-05-10T07:00:00Z", + "endTime": "2024-05-10T08:00:00Z", "isDaytime": true, "temperature": 79, "temperatureUnit": "F", @@ -1630,8 +1630,8 @@ { "number": 77, "name": "", - "startTime": "date:now +271373 seconds", - "endTime": "date:now +274973 seconds", + "startTime": "2024-05-10T08:00:00Z", + "endTime": "2024-05-10T09:00:00Z", "isDaytime": true, "temperature": 78, "temperatureUnit": "F", @@ -1651,8 +1651,8 @@ { "number": 78, "name": "", - "startTime": "date:now +274973 seconds", - "endTime": "date:now +278573 seconds", + "startTime": "2024-05-10T09:00:00Z", + "endTime": "2024-05-10T10:00:00Z", "isDaytime": false, "temperature": 77, "temperatureUnit": "F", @@ -1672,8 +1672,8 @@ { "number": 79, "name": "", - "startTime": "date:now +278573 seconds", - "endTime": "date:now +282173 seconds", + "startTime": "2024-05-10T10:00:00Z", + "endTime": "2024-05-10T11:00:00Z", "isDaytime": false, "temperature": 75, "temperatureUnit": "F", @@ -1693,8 +1693,8 @@ { "number": 80, "name": "", - "startTime": "date:now +282173 seconds", - "endTime": "date:now +285773 seconds", + "startTime": "2024-05-10T11:00:00Z", + "endTime": "2024-05-10T12:00:00Z", "isDaytime": false, "temperature": 74, "temperatureUnit": "F", @@ -1714,8 +1714,8 @@ { "number": 81, "name": "", - "startTime": "date:now +285773 seconds", - "endTime": "date:now +289373 seconds", + "startTime": "2024-05-10T12:00:00Z", + "endTime": "2024-05-10T13:00:00Z", "isDaytime": false, "temperature": 72, "temperatureUnit": "F", @@ -1735,8 +1735,8 @@ { "number": 82, "name": "", - "startTime": "date:now +289373 seconds", - "endTime": "date:now +292973 seconds", + "startTime": "2024-05-10T13:00:00Z", + "endTime": "2024-05-10T14:00:00Z", "isDaytime": false, "temperature": 70, "temperatureUnit": "F", @@ -1756,8 +1756,8 @@ { "number": 83, "name": "", - "startTime": "date:now +292973 seconds", - "endTime": "date:now +296573 seconds", + "startTime": "2024-05-10T14:00:00Z", + "endTime": "2024-05-10T15:00:00Z", "isDaytime": false, "temperature": 69, "temperatureUnit": "F", @@ -1777,8 +1777,8 @@ { "number": 84, "name": "", - "startTime": "date:now +296573 seconds", - "endTime": "date:now +300173 seconds", + "startTime": "2024-05-10T15:00:00Z", + "endTime": "2024-05-10T16:00:00Z", "isDaytime": false, "temperature": 68, "temperatureUnit": "F", @@ -1798,8 +1798,8 @@ { "number": 85, "name": "", - "startTime": "date:now +300173 seconds", - "endTime": "date:now +303773 seconds", + "startTime": "2024-05-10T16:00:00Z", + "endTime": "2024-05-10T17:00:00Z", "isDaytime": false, "temperature": 67, "temperatureUnit": "F", @@ -1819,8 +1819,8 @@ { "number": 86, "name": "", - "startTime": "date:now +303773 seconds", - "endTime": "date:now +307373 seconds", + "startTime": "2024-05-10T17:00:00Z", + "endTime": "2024-05-10T18:00:00Z", "isDaytime": false, "temperature": 65, "temperatureUnit": "F", @@ -1840,8 +1840,8 @@ { "number": 87, "name": "", - "startTime": "date:now +307373 seconds", - "endTime": "date:now +310973 seconds", + "startTime": "2024-05-10T18:00:00Z", + "endTime": "2024-05-10T19:00:00Z", "isDaytime": false, "temperature": 64, "temperatureUnit": "F", @@ -1861,8 +1861,8 @@ { "number": 88, "name": "", - "startTime": "date:now +310973 seconds", - "endTime": "date:now +314573 seconds", + "startTime": "2024-05-10T19:00:00Z", + "endTime": "2024-05-10T20:00:00Z", "isDaytime": false, "temperature": 63, "temperatureUnit": "F", @@ -1882,8 +1882,8 @@ { "number": 89, "name": "", - "startTime": "date:now +314573 seconds", - "endTime": "date:now +318173 seconds", + "startTime": "2024-05-10T20:00:00Z", + "endTime": "2024-05-10T21:00:00Z", "isDaytime": false, "temperature": 63, "temperatureUnit": "F", @@ -1903,8 +1903,8 @@ { "number": 90, "name": "", - "startTime": "date:now +318173 seconds", - "endTime": "date:now +321773 seconds", + "startTime": "2024-05-10T21:00:00Z", + "endTime": "2024-05-10T22:00:00Z", "isDaytime": true, "temperature": 62, "temperatureUnit": "F", @@ -1924,8 +1924,8 @@ { "number": 91, "name": "", - "startTime": "date:now +321773 seconds", - "endTime": "date:now +325373 seconds", + "startTime": "2024-05-10T22:00:00Z", + "endTime": "2024-05-10T23:00:00Z", "isDaytime": true, "temperature": 61, "temperatureUnit": "F", @@ -1945,8 +1945,8 @@ { "number": 92, "name": "", - "startTime": "date:now +325373 seconds", - "endTime": "date:now +328973 seconds", + "startTime": "2024-05-10T23:00:00Z", + "endTime": "2024-05-11T00:00:00Z", "isDaytime": true, "temperature": 64, "temperatureUnit": "F", @@ -1966,8 +1966,8 @@ { "number": 93, "name": "", - "startTime": "date:now +328973 seconds", - "endTime": "date:now +332573 seconds", + "startTime": "2024-05-11T00:00:00Z", + "endTime": "2024-05-11T01:00:00Z", "isDaytime": true, "temperature": 66, "temperatureUnit": "F", @@ -1987,8 +1987,8 @@ { "number": 94, "name": "", - "startTime": "date:now +332573 seconds", - "endTime": "date:now +336173 seconds", + "startTime": "2024-05-11T01:00:00Z", + "endTime": "2024-05-11T02:00:00Z", "isDaytime": true, "temperature": 68, "temperatureUnit": "F", @@ -2008,8 +2008,8 @@ { "number": 95, "name": "", - "startTime": "date:now +336173 seconds", - "endTime": "date:now +339773 seconds", + "startTime": "2024-05-11T02:00:00Z", + "endTime": "2024-05-11T03:00:00Z", "isDaytime": true, "temperature": 70, "temperatureUnit": "F", @@ -2029,8 +2029,8 @@ { "number": 96, "name": "", - "startTime": "date:now +339773 seconds", - "endTime": "date:now +343373 seconds", + "startTime": "2024-05-11T03:00:00Z", + "endTime": "2024-05-11T04:00:00Z", "isDaytime": true, "temperature": 72, "temperatureUnit": "F", @@ -2050,8 +2050,8 @@ { "number": 97, "name": "", - "startTime": "date:now +343373 seconds", - "endTime": "date:now +346973 seconds", + "startTime": "2024-05-11T04:00:00Z", + "endTime": "2024-05-11T05:00:00Z", "isDaytime": true, "temperature": 75, "temperatureUnit": "F", @@ -2071,8 +2071,8 @@ { "number": 98, "name": "", - "startTime": "date:now +346973 seconds", - "endTime": "date:now +350573 seconds", + "startTime": "2024-05-11T05:00:00Z", + "endTime": "2024-05-11T06:00:00Z", "isDaytime": true, "temperature": 76, "temperatureUnit": "F", @@ -2092,8 +2092,8 @@ { "number": 99, "name": "", - "startTime": "date:now +350573 seconds", - "endTime": "date:now +354173 seconds", + "startTime": "2024-05-11T06:00:00Z", + "endTime": "2024-05-11T07:00:00Z", "isDaytime": true, "temperature": 77, "temperatureUnit": "F", @@ -2113,8 +2113,8 @@ { "number": 100, "name": "", - "startTime": "date:now +354173 seconds", - "endTime": "date:now +357773 seconds", + "startTime": "2024-05-11T07:00:00Z", + "endTime": "2024-05-11T08:00:00Z", "isDaytime": true, "temperature": 78, "temperatureUnit": "F", @@ -2134,8 +2134,8 @@ { "number": 101, "name": "", - "startTime": "date:now +357773 seconds", - "endTime": "date:now +361373 seconds", + "startTime": "2024-05-11T08:00:00Z", + "endTime": "2024-05-11T09:00:00Z", "isDaytime": true, "temperature": 77, "temperatureUnit": "F", @@ -2155,8 +2155,8 @@ { "number": 102, "name": "", - "startTime": "date:now +361373 seconds", - "endTime": "date:now +364973 seconds", + "startTime": "2024-05-11T09:00:00Z", + "endTime": "2024-05-11T10:00:00Z", "isDaytime": false, "temperature": 76, "temperatureUnit": "F", @@ -2176,8 +2176,8 @@ { "number": 103, "name": "", - "startTime": "date:now +364973 seconds", - "endTime": "date:now +368573 seconds", + "startTime": "2024-05-11T10:00:00Z", + "endTime": "2024-05-11T11:00:00Z", "isDaytime": false, "temperature": 75, "temperatureUnit": "F", @@ -2197,8 +2197,8 @@ { "number": 104, "name": "", - "startTime": "date:now +368573 seconds", - "endTime": "date:now +372173 seconds", + "startTime": "2024-05-11T11:00:00Z", + "endTime": "2024-05-11T12:00:00Z", "isDaytime": false, "temperature": 73, "temperatureUnit": "F", @@ -2218,8 +2218,8 @@ { "number": 105, "name": "", - "startTime": "date:now +372173 seconds", - "endTime": "date:now +375773 seconds", + "startTime": "2024-05-11T12:00:00Z", + "endTime": "2024-05-11T13:00:00Z", "isDaytime": false, "temperature": 70, "temperatureUnit": "F", @@ -2239,8 +2239,8 @@ { "number": 106, "name": "", - "startTime": "date:now +375773 seconds", - "endTime": "date:now +379373 seconds", + "startTime": "2024-05-11T13:00:00Z", + "endTime": "2024-05-11T14:00:00Z", "isDaytime": false, "temperature": 68, "temperatureUnit": "F", @@ -2260,8 +2260,8 @@ { "number": 107, "name": "", - "startTime": "date:now +379373 seconds", - "endTime": "date:now +382973 seconds", + "startTime": "2024-05-11T14:00:00Z", + "endTime": "2024-05-11T15:00:00Z", "isDaytime": false, "temperature": 67, "temperatureUnit": "F", @@ -2281,8 +2281,8 @@ { "number": 108, "name": "", - "startTime": "date:now +382973 seconds", - "endTime": "date:now +386573 seconds", + "startTime": "2024-05-11T15:00:00Z", + "endTime": "2024-05-11T16:00:00Z", "isDaytime": false, "temperature": 66, "temperatureUnit": "F", @@ -2302,8 +2302,8 @@ { "number": 109, "name": "", - "startTime": "date:now +386573 seconds", - "endTime": "date:now +390173 seconds", + "startTime": "2024-05-11T16:00:00Z", + "endTime": "2024-05-11T17:00:00Z", "isDaytime": false, "temperature": 64, "temperatureUnit": "F", @@ -2323,8 +2323,8 @@ { "number": 110, "name": "", - "startTime": "date:now +390173 seconds", - "endTime": "date:now +393773 seconds", + "startTime": "2024-05-11T17:00:00Z", + "endTime": "2024-05-11T18:00:00Z", "isDaytime": false, "temperature": 63, "temperatureUnit": "F", @@ -2344,8 +2344,8 @@ { "number": 111, "name": "", - "startTime": "date:now +393773 seconds", - "endTime": "date:now +397373 seconds", + "startTime": "2024-05-11T18:00:00Z", + "endTime": "2024-05-11T19:00:00Z", "isDaytime": false, "temperature": 62, "temperatureUnit": "F", @@ -2365,8 +2365,8 @@ { "number": 112, "name": "", - "startTime": "date:now +397373 seconds", - "endTime": "date:now +400973 seconds", + "startTime": "2024-05-11T19:00:00Z", + "endTime": "2024-05-11T20:00:00Z", "isDaytime": false, "temperature": 61, "temperatureUnit": "F", @@ -2386,8 +2386,8 @@ { "number": 113, "name": "", - "startTime": "date:now +400973 seconds", - "endTime": "date:now +404573 seconds", + "startTime": "2024-05-11T20:00:00Z", + "endTime": "2024-05-11T21:00:00Z", "isDaytime": false, "temperature": 61, "temperatureUnit": "F", @@ -2407,8 +2407,8 @@ { "number": 114, "name": "", - "startTime": "date:now +404573 seconds", - "endTime": "date:now +408173 seconds", + "startTime": "2024-05-11T21:00:00Z", + "endTime": "2024-05-11T22:00:00Z", "isDaytime": true, "temperature": 60, "temperatureUnit": "F", @@ -2428,8 +2428,8 @@ { "number": 115, "name": "", - "startTime": "date:now +408173 seconds", - "endTime": "date:now +411773 seconds", + "startTime": "2024-05-11T22:00:00Z", + "endTime": "2024-05-11T23:00:00Z", "isDaytime": true, "temperature": 60, "temperatureUnit": "F", @@ -2449,8 +2449,8 @@ { "number": 116, "name": "", - "startTime": "date:now +411773 seconds", - "endTime": "date:now +415373 seconds", + "startTime": "2024-05-11T23:00:00Z", + "endTime": "2024-05-12T00:00:00Z", "isDaytime": true, "temperature": 63, "temperatureUnit": "F", @@ -2470,8 +2470,8 @@ { "number": 117, "name": "", - "startTime": "date:now +415373 seconds", - "endTime": "date:now +418973 seconds", + "startTime": "2024-05-12T00:00:00Z", + "endTime": "2024-05-12T01:00:00Z", "isDaytime": true, "temperature": 65, "temperatureUnit": "F", @@ -2491,8 +2491,8 @@ { "number": 118, "name": "", - "startTime": "date:now +418973 seconds", - "endTime": "date:now +422573 seconds", + "startTime": "2024-05-12T01:00:00Z", + "endTime": "2024-05-12T02:00:00Z", "isDaytime": true, "temperature": 68, "temperatureUnit": "F", @@ -2512,8 +2512,8 @@ { "number": 119, "name": "", - "startTime": "date:now +422573 seconds", - "endTime": "date:now +426173 seconds", + "startTime": "2024-05-12T02:00:00Z", + "endTime": "2024-05-12T03:00:00Z", "isDaytime": true, "temperature": 71, "temperatureUnit": "F", @@ -2533,8 +2533,8 @@ { "number": 120, "name": "", - "startTime": "date:now +426173 seconds", - "endTime": "date:now +429773 seconds", + "startTime": "2024-05-12T03:00:00Z", + "endTime": "2024-05-12T04:00:00Z", "isDaytime": true, "temperature": 74, "temperatureUnit": "F", @@ -2554,8 +2554,8 @@ { "number": 121, "name": "", - "startTime": "date:now +429773 seconds", - "endTime": "date:now +433373 seconds", + "startTime": "2024-05-12T04:00:00Z", + "endTime": "2024-05-12T05:00:00Z", "isDaytime": true, "temperature": 76, "temperatureUnit": "F", @@ -2575,8 +2575,8 @@ { "number": 122, "name": "", - "startTime": "date:now +433373 seconds", - "endTime": "date:now +436973 seconds", + "startTime": "2024-05-12T05:00:00Z", + "endTime": "2024-05-12T06:00:00Z", "isDaytime": true, "temperature": 77, "temperatureUnit": "F", @@ -2596,8 +2596,8 @@ { "number": 123, "name": "", - "startTime": "date:now +436973 seconds", - "endTime": "date:now +440573 seconds", + "startTime": "2024-05-12T06:00:00Z", + "endTime": "2024-05-12T07:00:00Z", "isDaytime": true, "temperature": 78, "temperatureUnit": "F", @@ -2617,8 +2617,8 @@ { "number": 124, "name": "", - "startTime": "date:now +440573 seconds", - "endTime": "date:now +444173 seconds", + "startTime": "2024-05-12T07:00:00Z", + "endTime": "2024-05-12T08:00:00Z", "isDaytime": true, "temperature": 78, "temperatureUnit": "F", @@ -2638,8 +2638,8 @@ { "number": 125, "name": "", - "startTime": "date:now +444173 seconds", - "endTime": "date:now +447773 seconds", + "startTime": "2024-05-12T08:00:00Z", + "endTime": "2024-05-12T09:00:00Z", "isDaytime": true, "temperature": 78, "temperatureUnit": "F", @@ -2659,8 +2659,8 @@ { "number": 126, "name": "", - "startTime": "date:now +447773 seconds", - "endTime": "date:now +451373 seconds", + "startTime": "2024-05-12T09:00:00Z", + "endTime": "2024-05-12T10:00:00Z", "isDaytime": false, "temperature": 77, "temperatureUnit": "F", @@ -2680,8 +2680,8 @@ { "number": 127, "name": "", - "startTime": "date:now +451373 seconds", - "endTime": "date:now +454973 seconds", + "startTime": "2024-05-12T10:00:00Z", + "endTime": "2024-05-12T11:00:00Z", "isDaytime": false, "temperature": 76, "temperatureUnit": "F", @@ -2701,8 +2701,8 @@ { "number": 128, "name": "", - "startTime": "date:now +454973 seconds", - "endTime": "date:now +458573 seconds", + "startTime": "2024-05-12T11:00:00Z", + "endTime": "2024-05-12T12:00:00Z", "isDaytime": false, "temperature": 74, "temperatureUnit": "F", @@ -2722,8 +2722,8 @@ { "number": 129, "name": "", - "startTime": "date:now +458573 seconds", - "endTime": "date:now +462173 seconds", + "startTime": "2024-05-12T12:00:00Z", + "endTime": "2024-05-12T13:00:00Z", "isDaytime": false, "temperature": 71, "temperatureUnit": "F", @@ -2743,8 +2743,8 @@ { "number": 130, "name": "", - "startTime": "date:now +462173 seconds", - "endTime": "date:now +465773 seconds", + "startTime": "2024-05-12T13:00:00Z", + "endTime": "2024-05-12T14:00:00Z", "isDaytime": false, "temperature": 69, "temperatureUnit": "F", @@ -2764,8 +2764,8 @@ { "number": 131, "name": "", - "startTime": "date:now +465773 seconds", - "endTime": "date:now +469373 seconds", + "startTime": "2024-05-12T14:00:00Z", + "endTime": "2024-05-12T15:00:00Z", "isDaytime": false, "temperature": 68, "temperatureUnit": "F", @@ -2785,8 +2785,8 @@ { "number": 132, "name": "", - "startTime": "date:now +469373 seconds", - "endTime": "date:now +472973 seconds", + "startTime": "2024-05-12T15:00:00Z", + "endTime": "2024-05-12T16:00:00Z", "isDaytime": false, "temperature": 66, "temperatureUnit": "F", @@ -2806,8 +2806,8 @@ { "number": 133, "name": "", - "startTime": "date:now +472973 seconds", - "endTime": "date:now +476573 seconds", + "startTime": "2024-05-12T16:00:00Z", + "endTime": "2024-05-12T17:00:00Z", "isDaytime": false, "temperature": 65, "temperatureUnit": "F", @@ -2827,8 +2827,8 @@ { "number": 134, "name": "", - "startTime": "date:now +476573 seconds", - "endTime": "date:now +480173 seconds", + "startTime": "2024-05-12T17:00:00Z", + "endTime": "2024-05-12T18:00:00Z", "isDaytime": false, "temperature": 64, "temperatureUnit": "F", @@ -2848,8 +2848,8 @@ { "number": 135, "name": "", - "startTime": "date:now +480173 seconds", - "endTime": "date:now +483773 seconds", + "startTime": "2024-05-12T18:00:00Z", + "endTime": "2024-05-12T19:00:00Z", "isDaytime": false, "temperature": 64, "temperatureUnit": "F", @@ -2869,8 +2869,8 @@ { "number": 136, "name": "", - "startTime": "date:now +483773 seconds", - "endTime": "date:now +487373 seconds", + "startTime": "2024-05-12T19:00:00Z", + "endTime": "2024-05-12T20:00:00Z", "isDaytime": false, "temperature": 63, "temperatureUnit": "F", @@ -2890,8 +2890,8 @@ { "number": 137, "name": "", - "startTime": "date:now +487373 seconds", - "endTime": "date:now +490973 seconds", + "startTime": "2024-05-12T20:00:00Z", + "endTime": "2024-05-12T21:00:00Z", "isDaytime": false, "temperature": 62, "temperatureUnit": "F", @@ -2911,8 +2911,8 @@ { "number": 138, "name": "", - "startTime": "date:now +490973 seconds", - "endTime": "date:now +494573 seconds", + "startTime": "2024-05-12T21:00:00Z", + "endTime": "2024-05-12T22:00:00Z", "isDaytime": true, "temperature": 61, "temperatureUnit": "F", @@ -2932,8 +2932,8 @@ { "number": 139, "name": "", - "startTime": "date:now +494573 seconds", - "endTime": "date:now +498173 seconds", + "startTime": "2024-05-12T22:00:00Z", + "endTime": "2024-05-12T23:00:00Z", "isDaytime": true, "temperature": 61, "temperatureUnit": "F", @@ -2953,8 +2953,8 @@ { "number": 140, "name": "", - "startTime": "date:now +498173 seconds", - "endTime": "date:now +501773 seconds", + "startTime": "2024-05-12T23:00:00Z", + "endTime": "2024-05-13T00:00:00Z", "isDaytime": true, "temperature": 64, "temperatureUnit": "F", @@ -2974,8 +2974,8 @@ { "number": 141, "name": "", - "startTime": "date:now +501773 seconds", - "endTime": "date:now +505373 seconds", + "startTime": "2024-05-13T00:00:00Z", + "endTime": "2024-05-13T01:00:00Z", "isDaytime": true, "temperature": 66, "temperatureUnit": "F", @@ -2995,8 +2995,8 @@ { "number": 142, "name": "", - "startTime": "date:now +505373 seconds", - "endTime": "date:now +508973 seconds", + "startTime": "2024-05-13T01:00:00Z", + "endTime": "2024-05-13T02:00:00Z", "isDaytime": true, "temperature": 69, "temperatureUnit": "F", @@ -3016,8 +3016,8 @@ { "number": 143, "name": "", - "startTime": "date:now +508973 seconds", - "endTime": "date:now +512573 seconds", + "startTime": "2024-05-13T02:00:00Z", + "endTime": "2024-05-13T03:00:00Z", "isDaytime": true, "temperature": 72, "temperatureUnit": "F", @@ -3037,8 +3037,8 @@ { "number": 144, "name": "", - "startTime": "date:now +512573 seconds", - "endTime": "date:now +516173 seconds", + "startTime": "2024-05-13T03:00:00Z", + "endTime": "2024-05-13T04:00:00Z", "isDaytime": true, "temperature": 74, "temperatureUnit": "F", @@ -3058,8 +3058,8 @@ { "number": 145, "name": "", - "startTime": "date:now +516173 seconds", - "endTime": "date:now +519773 seconds", + "startTime": "2024-05-13T04:00:00Z", + "endTime": "2024-05-13T05:00:00Z", "isDaytime": true, "temperature": 77, "temperatureUnit": "F", @@ -3079,8 +3079,8 @@ { "number": 146, "name": "", - "startTime": "date:now +519773 seconds", - "endTime": "date:now +523373 seconds", + "startTime": "2024-05-13T05:00:00Z", + "endTime": "2024-05-13T06:00:00Z", "isDaytime": true, "temperature": 78, "temperatureUnit": "F", @@ -3100,8 +3100,8 @@ { "number": 147, "name": "", - "startTime": "date:now +523373 seconds", - "endTime": "date:now +526973 seconds", + "startTime": "2024-05-13T06:00:00Z", + "endTime": "2024-05-13T07:00:00Z", "isDaytime": true, "temperature": 79, "temperatureUnit": "F", @@ -3121,8 +3121,8 @@ { "number": 148, "name": "", - "startTime": "date:now +526973 seconds", - "endTime": "date:now +530573 seconds", + "startTime": "2024-05-13T07:00:00Z", + "endTime": "2024-05-13T08:00:00Z", "isDaytime": true, "temperature": 80, "temperatureUnit": "F", @@ -3142,8 +3142,8 @@ { "number": 149, "name": "", - "startTime": "date:now +530573 seconds", - "endTime": "date:now +534173 seconds", + "startTime": "2024-05-13T08:00:00Z", + "endTime": "2024-05-13T09:00:00Z", "isDaytime": true, "temperature": 79, "temperatureUnit": "F", @@ -3163,8 +3163,8 @@ { "number": 150, "name": "", - "startTime": "date:now +534173 seconds", - "endTime": "date:now +537773 seconds", + "startTime": "2024-05-13T09:00:00Z", + "endTime": "2024-05-13T10:00:00Z", "isDaytime": false, "temperature": 78, "temperatureUnit": "F", @@ -3184,8 +3184,8 @@ { "number": 151, "name": "", - "startTime": "date:now +537773 seconds", - "endTime": "date:now +541373 seconds", + "startTime": "2024-05-13T10:00:00Z", + "endTime": "2024-05-13T11:00:00Z", "isDaytime": false, "temperature": 77, "temperatureUnit": "F", @@ -3205,8 +3205,8 @@ { "number": 152, "name": "", - "startTime": "date:now +541373 seconds", - "endTime": "date:now +544973 seconds", + "startTime": "2024-05-13T11:00:00Z", + "endTime": "2024-05-13T12:00:00Z", "isDaytime": false, "temperature": 74, "temperatureUnit": "F", @@ -3226,8 +3226,8 @@ { "number": 153, "name": "", - "startTime": "date:now +544973 seconds", - "endTime": "date:now +548573 seconds", + "startTime": "2024-05-13T12:00:00Z", + "endTime": "2024-05-13T13:00:00Z", "isDaytime": false, "temperature": 72, "temperatureUnit": "F", @@ -3247,8 +3247,8 @@ { "number": 154, "name": "", - "startTime": "date:now +548573 seconds", - "endTime": "date:now +552173 seconds", + "startTime": "2024-05-13T13:00:00Z", + "endTime": "2024-05-13T14:00:00Z", "isDaytime": false, "temperature": 70, "temperatureUnit": "F", @@ -3268,8 +3268,8 @@ { "number": 155, "name": "", - "startTime": "date:now +552173 seconds", - "endTime": "date:now +555773 seconds", + "startTime": "2024-05-13T14:00:00Z", + "endTime": "2024-05-13T15:00:00Z", "isDaytime": false, "temperature": 68, "temperatureUnit": "F", @@ -3289,8 +3289,8 @@ { "number": 156, "name": "", - "startTime": "date:now +555773 seconds", - "endTime": "date:now +559373 seconds", + "startTime": "2024-05-13T15:00:00Z", + "endTime": "2024-05-13T16:00:00Z", "isDaytime": false, "temperature": 67, "temperatureUnit": "F", diff --git a/web/modules/weather_blocks/src/Plugin/Block/Test/EndToEnd/DailyForecast/DailyForecast.php.test b/web/modules/weather_blocks/src/Plugin/Block/Test/EndToEnd/DailyForecast/DailyForecast.php.test index 3caea6581..bffefcf16 100644 --- a/web/modules/weather_blocks/src/Plugin/Block/Test/EndToEnd/DailyForecast/DailyForecast.php.test +++ b/web/modules/weather_blocks/src/Plugin/Block/Test/EndToEnd/DailyForecast/DailyForecast.php.test @@ -62,6 +62,7 @@ final class DailyForecastStructureTest extends EndToEndBase "dayName" => $expectedStart->format("l"), "monthAndDay" => $expectedStart->format("M j"), "startTime" => $expectedStart->format("c"), + "endTime" => $expectedEnd->format("c"), "shortForecast" => "Scattered rain showers", "icon" => (object) [ "icon" => "showers_scattered_rain.svg", @@ -75,11 +76,7 @@ final class DailyForecastStructureTest extends EndToEndBase ]; $data = $this->block->build($now); - $actualStructure = $data["today"][0]; - - // Get rid of the hourly stuff. - // For this case, we don't care about it - unset($actualStructure["hourlyPeriods"]); + $actualStructure = $data[0]["periods"][0]; $this->assertEquals($expectedStructure, $actualStructure); } @@ -107,6 +104,7 @@ final class DailyForecastStructureTest extends EndToEndBase "dayName" => "Tuesday", "monthAndDay" => "May 7", "startTime" => "2024-05-06T23:00:00-05:00", + "endTime" => "2024-05-07T06:00:00-0500", "shortForecast" => "First period", "icon" => (object) [ "icon" => "thunderstorm.svg", @@ -123,6 +121,7 @@ final class DailyForecastStructureTest extends EndToEndBase "dayName" => "Tuesday", "monthAndDay" => "May 7", "startTime" => "2024-05-07T06:00:00-05:00", + "endTime" => "2024-05-07T18:00:00-0500", "shortForecast" => "Second period", "icon" => (object) [ "icon" => "thunderstorm.svg", @@ -139,6 +138,7 @@ final class DailyForecastStructureTest extends EndToEndBase "dayName" => "Tuesday", "monthAndDay" => "May 7", "startTime" => "2024-05-07T18:00:00-05:00", + "endTime" => "2024-05-08T06:00:00-0500", "shortForecast" => "Third period", "icon" => (object) [ "icon" => "mostly_clear-day.svg", @@ -154,12 +154,8 @@ final class DailyForecastStructureTest extends EndToEndBase $actual = $this->block->build($now); - $this->assertEquals(3, count($actual["today"])); - unset($actual["today"][0]["hourlyPeriods"]); - unset($actual["today"][1]["hourlyPeriods"]); - unset($actual["today"][2]["hourlyPeriods"]); - - $this->assertEquals($expected, $actual["today"]); + $this->assertEquals(3, count($actual[0]["periods"])); + $this->assertEquals($expected, $actual[0]["periods"]); } /** @@ -182,6 +178,7 @@ final class DailyForecastStructureTest extends EndToEndBase "dayName" => "Monday", "monthAndDay" => "May 6", "startTime" => "2024-05-06T23:00:00-05:00", + "endTime" => "2024-05-07T06:00:00-0500", "shortForecast" => "First period", "icon" => (object) [ "icon" => "thunderstorm.svg", @@ -197,10 +194,8 @@ final class DailyForecastStructureTest extends EndToEndBase $actual = $this->block->build($now); - $this->assertEquals(1, count($actual["today"])); - unset($actual["today"][0]["hourlyPeriods"]); - - $this->assertEquals($expected, $actual["today"]); + $this->assertEquals(1, count($actual[0]["periods"])); + $this->assertEquals($expected, $actual[0]["periods"]); } /** @@ -223,6 +218,7 @@ final class DailyForecastStructureTest extends EndToEndBase "dayName" => "Tuesday", "monthAndDay" => "May 7", "startTime" => "2024-05-07T06:00:00-05:00", + "endTime" => "2024-05-07T18:00:00-0500", "shortForecast" => "Second period", "icon" => (object) [ "icon" => "thunderstorm.svg", @@ -239,6 +235,7 @@ final class DailyForecastStructureTest extends EndToEndBase "dayName" => "Tuesday", "monthAndDay" => "May 7", "startTime" => "2024-05-07T18:00:00-05:00", + "endTime" => "2024-05-08T06:00:00-0500", "shortForecast" => "Third period", "icon" => (object) [ "icon" => "mostly_clear-day.svg", @@ -254,18 +251,14 @@ final class DailyForecastStructureTest extends EndToEndBase $actual = $this->block->build($now); - $this->assertEquals(2, count($actual["today"])); - unset($actual["today"][0]["hourlyPeriods"]); - unset($actual["today"][1]["hourlyPeriods"]); - - $this->assertEquals($expected, $actual["today"]); + $this->assertEquals(2, count($actual[0]["periods"])); + $this->assertEquals($expected, $actual[0]["periods"]); } /** * Ensure that we set the flag for only low temp after 6pm * * @group e2e - * @group eric */ public function testOnlyLowAfter6pmToday() { @@ -278,6 +271,6 @@ final class DailyForecastStructureTest extends EndToEndBase $actual = $this->block->build($now); - $this->assertTrue($actual['useOnlyLowForToday']); + $this->assertTrue($actual[0]["useOnlyLow"]); } } diff --git a/web/modules/weather_blocks/src/Plugin/Block/Test/EndToEnd/DailyForecast/HourlyData.php.test b/web/modules/weather_blocks/src/Plugin/Block/Test/EndToEnd/DailyForecast/HourlyData.php.test index 8e38ec032..7b92062c9 100644 --- a/web/modules/weather_blocks/src/Plugin/Block/Test/EndToEnd/DailyForecast/HourlyData.php.test +++ b/web/modules/weather_blocks/src/Plugin/Block/Test/EndToEnd/DailyForecast/HourlyData.php.test @@ -35,7 +35,7 @@ final class DailyForecastWithHourlyDataTest extends EndToEndBase $this->assertEquals( $start->format("c"), - $data["todayHourly"][0]["timestamp"], + $data[0]["hourPeriods"][0]["timestamp"], ); } @@ -67,7 +67,7 @@ final class DailyForecastWithHourlyDataTest extends EndToEndBase $actual = array_map(function ($hour) { return $hour["time"]; - }, $data["todayHourly"]); + }, $data[0]["hourPeriods"]); $this->assertEquals($expected, $actual); } @@ -121,7 +121,7 @@ final class DailyForecastWithHourlyDataTest extends EndToEndBase $actual = array_map(function ($hour) { return $hour["time"]; - }, $data["todayHourly"]); + }, $data[0]["hourPeriods"]); $this->assertEquals($expected, $actual); } @@ -140,10 +140,10 @@ final class DailyForecastWithHourlyDataTest extends EndToEndBase $data = $this->block->build(); - $extended = $data["detailed"]; + $extended = array_slice($data, 1); foreach ($extended as $period) { $start = $start->modify("+1 day"); - $hourly = $period["hourlyPeriods"]; + $hourly = $period["hourPeriods"]; $this->assertEquals($start->format("c"), $hourly[0]["timestamp"]); $this->assertEquals( diff --git a/web/modules/weather_blocks/src/Plugin/Block/Test/EndToEnd/DailyForecast/PrecipitationAmounts.php.test b/web/modules/weather_blocks/src/Plugin/Block/Test/EndToEnd/DailyForecast/PrecipitationAmounts.php.test index 2cbe93b7b..c52bbb130 100644 --- a/web/modules/weather_blocks/src/Plugin/Block/Test/EndToEnd/DailyForecast/PrecipitationAmounts.php.test +++ b/web/modules/weather_blocks/src/Plugin/Block/Test/EndToEnd/DailyForecast/PrecipitationAmounts.php.test @@ -34,29 +34,26 @@ final class PrecipitationAmountsTest extends EndToEndBase { "type": "array", "items": { - "type": "array", - "items": { - "type": "object", - "properties": { - "startRaw": { - "type": "string", - "pattern": "$isoRegex" - }, - "endRaw": { - "type": "string", - "pattern": "$isoRegex" - }, - "start": { - "type": "string", - "pattern": "$hourSpanRegex" - }, - "end": { - "type": "string", - "pattern": "$hourSpanRegex" - }, - "value": { - "type": "number" - } + "type": "object", + "properties": { + "startRaw": { + "type": "string", + "pattern": "$isoRegex" + }, + "endRaw": { + "type": "string", + "pattern": "$isoRegex" + }, + "start": { + "type": "string", + "pattern": "$hourSpanRegex" + }, + "end": { + "type": "string", + "pattern": "$hourSpanRegex" + }, + "value": { + "type": "number" } } } @@ -67,7 +64,7 @@ final class PrecipitationAmountsTest extends EndToEndBase ); $data = $this->block->build(); - $schema->in(json_decode(json_encode($data["precipitationPeriods"]))); + $schema->in(json_decode(json_encode($data[2]["precipPeriods"]))); $this->assertTrue(true); } diff --git a/web/modules/weather_blocks/src/Plugin/Block/Test/EndToEnd/schemas/daily.json b/web/modules/weather_blocks/src/Plugin/Block/Test/EndToEnd/schemas/daily.json index 4bc0b8dc5..906141541 100644 --- a/web/modules/weather_blocks/src/Plugin/Block/Test/EndToEnd/schemas/daily.json +++ b/web/modules/weather_blocks/src/Plugin/Block/Test/EndToEnd/schemas/daily.json @@ -1,54 +1,41 @@ { - "type": "object", - "properties": { - "today": { - "type": "array", - "items": { - "$ref": "#/$defs/day" - } - }, - "todayHourly": { - "type": "array", - "items": "$include:hourly.json" - }, - "todayAlerts": { - "type": "array", - "items": { - "$ref": "#/$defs/alert" - } - }, - "todayHighestAlertLevel": { - "type": "string" - }, - "precipitationPeriods": { - "type": "array", - "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "periods": { "type": "array", - "maxItems": 5, "items": { - "$ref": "#/$defs/precipPeriod" + "$ref": "#/$defs/day" } - } - }, - "detailed": { - "type": "array", - "items": { - "type": "object", - "properties": { - "daytime": { "$ref": "#/$defs/day" }, - "nightime": { "$ref": "#/$defs/day" }, - "hourlyPeriods": { "type": "array" }, - "alertPeriods": { - "type": "array", - "items": { - "$ref": "#/$defs/alert" - } + }, + "hourPeriods": { + "type": "array", + "items": { + "items": "$include:hourly.json" + } + }, + "alerts": { + "type": "array", + "items": { + "$ref": "#/$defs/alert" + } + }, + "todayHighestAlertLevel": { + "type": "string" + }, + "precipPeriods": { + "type": "array", + "items": { + "maxItems": 5, + "items": { + "$ref": "#/$defs/precipPeriod" } } + }, + "useOnlyLow": { + "type": "boolean" } - }, - "useOnlyLowForToday": { - "type": "boolean" } }, diff --git a/web/modules/weather_data/src/Service/DailyForecastTrait.php b/web/modules/weather_data/src/Service/DailyForecastTrait.php index bdc494138..62531094e 100644 --- a/web/modules/weather_data/src/Service/DailyForecastTrait.php +++ b/web/modules/weather_data/src/Service/DailyForecastTrait.php @@ -189,6 +189,9 @@ public function getDailyForecastFromGrid( $all = [$todayPeriods, ...array_chunk($detailedPeriods, 2)]; $all = array_map( + // Ignore the lint on this line because it conflicts with the code + // formatter. I choose to prefer to formatter. + // phpcs:ignore function ($day, $dayIndex) use ( &$now, &$timezone, @@ -198,6 +201,7 @@ function ($day, $dayIndex) use ( ) { // For each day, get the component periods, formatted. $periods = array_map(function ($period) use ( + &$dayIndex, &$now, &$timezone, ) { @@ -286,7 +290,7 @@ function ($day, $dayIndex) use ( $start, "timestamp", ); - $hourPeriods = DateTimeUtility::filterToBefore( + $hourPeriods = DateTimeUtility::filterToOnOrBefore( $hourPeriods, $end, "timestamp", @@ -349,7 +353,7 @@ function ($day, $dayIndex) use ( "hourPeriods" => $hourPeriods, "alerts" => $dayAlerts, "highestAlertLevel" => $highestAlertLevel, - "precipPeriods" => $precipPeriods, + "precipPeriods" => array_values($precipPeriods), ]; return $day; diff --git a/web/modules/weather_data/src/Service/DateTimeUtility.php b/web/modules/weather_data/src/Service/DateTimeUtility.php index 6fdaee0a1..f3c8fc782 100644 --- a/web/modules/weather_data/src/Service/DateTimeUtility.php +++ b/web/modules/weather_data/src/Service/DateTimeUtility.php @@ -69,6 +69,21 @@ public static function filterToBefore( ); } + public static function filterToOnOrBefore( + $array, + $before, + $property = "startTime", + ) { + return array_values( + array_filter($array, function ($item) use ($before, $property) { + $itemTime = self::getTimeValue($item, $property); + $itemTime = self::stringToDate($itemTime); + + return $itemTime <= $before; + }), + ); + } + public static function stringToDate($str, $timezone = false) { if ($str) { From 98fe38f8cb80394313538a1e08ead928cee6b537 Mon Sep 17 00:00:00 2001 From: Greg Walker Date: Tue, 1 Oct 2024 15:27:57 -0500 Subject: [PATCH 07/10] fixup frontend tests too --- .../gridpoints/LWX/95,71/forecast.json | 216 ------------------ .../e2e/daily-forecast-hourly-table.spec.js | 25 +- 2 files changed, 3 insertions(+), 238 deletions(-) diff --git a/tests/api/data/testing/gridpoints/LWX/95,71/forecast.json b/tests/api/data/testing/gridpoints/LWX/95,71/forecast.json index deedca43d..dd5dd0e19 100644 --- a/tests/api/data/testing/gridpoints/LWX/95,71/forecast.json +++ b/tests/api/data/testing/gridpoints/LWX/95,71/forecast.json @@ -123,222 +123,6 @@ "icon": "https://api.weather.gov/icons/land/night/few?size=medium", "shortForecast": "Mostly Clear", "detailedForecast": "Mostly clear, with a low around 33. Northwest wind 12 to 18 mph, with gusts as high as 28 mph." - }, - { - "number": 5, - "name": "Thursday", - "startTime": "date:today 06:00:-5 +2 days", - "endTime": "date:today 18:00:-5 +2 days", - "isDaytime": true, - "temperature": 50, - "temperatureUnit": "F", - "temperatureTrend": null, - "probabilityOfPrecipitation": { - "unitCode": "wmoUnit:percent", - "value": null - }, - "dewpoint": { "unitCode": "wmoUnit:degC", "value": -7.777777777777778 }, - "relativeHumidity": { "unitCode": "wmoUnit:percent", "value": 53 }, - "windSpeed": "9 to 16 mph", - "windDirection": "NW", - "icon": "https://api.weather.gov/icons/land/day/few?size=medium", - "shortForecast": "Sunny", - "detailedForecast": "Sunny, with a high near 50. Northwest wind 9 to 16 mph, with gusts as high as 23 mph." - }, - { - "number": 6, - "name": "Thursday Night", - "startTime": "date:today 18:00:-5 +2 days", - "endTime": "date:today 06:00:-5 +3 days", - "isDaytime": false, - "temperature": 31, - "temperatureUnit": "F", - "temperatureTrend": null, - "probabilityOfPrecipitation": { - "unitCode": "wmoUnit:percent", - "value": null - }, - "dewpoint": { "unitCode": "wmoUnit:degC", "value": -7.777777777777778 }, - "relativeHumidity": { "unitCode": "wmoUnit:percent", "value": 53 }, - "windSpeed": "7 to 14 mph", - "windDirection": "N", - "icon": "INVALID_ICON_URL", - "shortForecast": "Mostly Clear", - "detailedForecast": "Mostly clear, with a low around 31." - }, - { - "number": 7, - "name": "Friday", - "startTime": "date:today 06:00:-5 +3 days", - "endTime": "date:today 18:00:-5 +3 days", - "isDaytime": true, - "temperature": 50, - "temperatureUnit": "F", - "temperatureTrend": null, - "probabilityOfPrecipitation": { - "unitCode": "wmoUnit:percent", - "value": null - }, - "dewpoint": { - "unitCode": "wmoUnit:degC", - "value": -2.7777777777777777 - }, - "relativeHumidity": { "unitCode": "wmoUnit:percent", "value": 58 }, - "windSpeed": "7 to 13 mph", - "windDirection": "E", - "icon": "https://api.weather.gov/icons/land/day/bkn?size=medium", - "shortForecast": "Partly Sunny", - "detailedForecast": "Partly sunny, with a high near 50." - }, - { - "number": 8, - "name": "Friday Night", - "startTime": "date:today 18:00:-5 +3 days", - "endTime": "date:today 06:00:-5 +4 days", - "isDaytime": false, - "temperature": 42, - "temperatureUnit": "F", - "temperatureTrend": null, - "probabilityOfPrecipitation": { - "unitCode": "wmoUnit:percent", - "value": 60 - }, - "dewpoint": { "unitCode": "wmoUnit:degC", "value": 5 }, - "relativeHumidity": { "unitCode": "wmoUnit:percent", "value": 89 }, - "windSpeed": "13 mph", - "windDirection": "SE", - "icon": "https://api.weather.gov/icons/land/night/rain,60?size=medium", - "shortForecast": "Light Rain Likely", - "detailedForecast": "Rain likely after 8pm. Mostly cloudy, with a low around 42. Chance of precipitation is 60%." - }, - { - "number": 9, - "name": "Saturday", - "startTime": "date:today 06:00:-5 +4 days", - "endTime": "date:today 18:00:-5 +4 days", - "isDaytime": true, - "temperature": 55, - "temperatureUnit": "F", - "temperatureTrend": null, - "probabilityOfPrecipitation": { - "unitCode": "wmoUnit:percent", - "value": 60 - }, - "dewpoint": { "unitCode": "wmoUnit:degC", "value": 6.666666666666667 }, - "relativeHumidity": { "unitCode": "wmoUnit:percent", "value": 93 }, - "windSpeed": "10 to 17 mph", - "windDirection": "N", - "icon": "https://api.weather.gov/icons/land/day/rain,60/rain,50?size=medium", - "shortForecast": "Light Rain Likely", - "detailedForecast": "Rain likely. Mostly cloudy, with a high near 55. Chance of precipitation is 60%." - }, - { - "number": 10, - "name": "Saturday Night", - "startTime": "date:today 18:00:-5 +4 days", - "endTime": "date:today 06:00:-5 +5 days", - "isDaytime": false, - "temperature": 33, - "temperatureUnit": "F", - "temperatureTrend": null, - "probabilityOfPrecipitation": { - "unitCode": "wmoUnit:percent", - "value": 50 - }, - "dewpoint": { "unitCode": "wmoUnit:degC", "value": 4.444444444444445 }, - "relativeHumidity": { "unitCode": "wmoUnit:percent", "value": 61 }, - "windSpeed": "20 mph", - "windDirection": "N", - "icon": "https://api.weather.gov/icons/land/night/rain,50/rain?size=medium", - "shortForecast": "Chance Light Rain", - "detailedForecast": "A chance of rain. Mostly cloudy, with a low around 33. Chance of precipitation is 50%." - }, - { - "number": 11, - "name": "Sunday", - "startTime": "date:today 06:00:-5 +5 days", - "endTime": "date:today 18:00:-5 +5 days", - "isDaytime": true, - "temperature": 50, - "temperatureUnit": "F", - "temperatureTrend": null, - "probabilityOfPrecipitation": { - "unitCode": "wmoUnit:percent", - "value": null - }, - "dewpoint": { "unitCode": "wmoUnit:degC", "value": -5.555555555555555 }, - "relativeHumidity": { "unitCode": "wmoUnit:percent", "value": 63 }, - "windSpeed": "14 to 20 mph", - "windDirection": "N", - "icon": "https://api.weather.gov/icons/land/day/rain/sct?size=medium", - "shortForecast": "Slight Chance Light Rain then Mostly Sunny", - "detailedForecast": "A slight chance of rain before 8am. Mostly sunny, with a high near 50." - }, - { - "number": 12, - "name": "Sunday Night", - "startTime": "date:today 18:00:-5 +5 days", - "endTime": "date:today 06:00:-5 +6 days", - "isDaytime": false, - "temperature": 35, - "temperatureUnit": "F", - "temperatureTrend": null, - "probabilityOfPrecipitation": { - "unitCode": "wmoUnit:percent", - "value": null - }, - "dewpoint": { - "unitCode": "wmoUnit:degC", - "value": -3.3333333333333335 - }, - "relativeHumidity": { "unitCode": "wmoUnit:percent", "value": 67 }, - "windSpeed": "14 mph", - "windDirection": "NE", - "icon": "https://api.weather.gov/icons/land/night/sct?size=medium", - "shortForecast": "Partly Cloudy", - "detailedForecast": "Partly cloudy, with a low around 35." - }, - { - "number": 13, - "name": "Monday", - "startTime": "date:today 06:00:-5 +6 days", - "endTime": "date:today 18:00:-5 +6 days", - "isDaytime": true, - "temperature": 55, - "temperatureUnit": "F", - "temperatureTrend": null, - "probabilityOfPrecipitation": { - "unitCode": "wmoUnit:percent", - "value": null - }, - "dewpoint": { "unitCode": "wmoUnit:degC", "value": 0 }, - "relativeHumidity": { "unitCode": "wmoUnit:percent", "value": 69 }, - "windSpeed": "15 mph", - "windDirection": "E", - "icon": "https://api.weather.gov/icons/land/day/rain?size=medium", - "shortForecast": "Slight Chance Light Rain", - "detailedForecast": "A slight chance of rain after 8am. Mostly sunny, with a high near 55." - }, - { - "number": 14, - "name": "Monday Night", - "startTime": "date:today 18:00:-5 +6 days", - "endTime": "date:today 06:00:-5 +7 days", - "isDaytime": false, - "temperature": 42, - "temperatureUnit": "F", - "temperatureTrend": null, - "probabilityOfPrecipitation": { - "unitCode": "wmoUnit:percent", - "value": null - }, - "dewpoint": { "unitCode": "wmoUnit:degC", "value": 3.3333333333333335 }, - "relativeHumidity": { "unitCode": "wmoUnit:percent", "value": 86 }, - "windSpeed": "15 mph", - "windDirection": "E", - "icon": "https://api.weather.gov/icons/land/night/rain?size=medium", - "shortForecast": "Slight Chance Light Rain", - "detailedForecast": "A slight chance of rain. Mostly cloudy, with a low around 42." } ] } diff --git a/tests/playwright/e2e/daily-forecast-hourly-table.spec.js b/tests/playwright/e2e/daily-forecast-hourly-table.spec.js index 08586104a..02636c9f1 100644 --- a/tests/playwright/e2e/daily-forecast-hourly-table.spec.js +++ b/tests/playwright/e2e/daily-forecast-hourly-table.spec.js @@ -9,31 +9,12 @@ describe("hourly table within the daily forecast", () => { await page.locator("#daily-tab-button").first().click(); }); - test("shows hourly expand/collapse button for first two days", async ({ - page, - }) => { - const days = await page.locator(".wx-daily-forecast-block li"); - const day1 = days.nth(0); - const day2 = days.nth(1); - - const hourlyButton1 = day1.locator("wx-hourly-toggle"); - const hourlyButton2 = day2.locator("wx-hourly-toggle"); - - await expect(hourlyButton1).toBeVisible(); - await expect(hourlyButton2).toBeVisible(); - }); - - test("does NOT show hourly expand/collapse button for days 3+", async ({ - page, - }) => { - const days = await page - .locator(".wx-daily-forecast-block li") - .all() - .then((locators) => locators.slice(2)); + test("shows hourly expand/collapse button", async ({ page }) => { + const days = await page.locator(".wx-daily-forecast-block li").all(); for await (const day of days) { const hourlyButton = day.locator("wx-hourly-toggle"); - await expect(hourlyButton).not.toBeVisible(); + await expect(hourlyButton).toBeVisible(); } }); }); From d786b3ad283b9ef38bcbd78bc886f035664532ac Mon Sep 17 00:00:00 2001 From: Greg Walker Date: Tue, 1 Oct 2024 16:20:02 -0500 Subject: [PATCH 08/10] re-fix weird lint thing --- web/modules/weather_data/src/Service/DailyForecastTrait.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/web/modules/weather_data/src/Service/DailyForecastTrait.php b/web/modules/weather_data/src/Service/DailyForecastTrait.php index 62531094e..788155be0 100644 --- a/web/modules/weather_data/src/Service/DailyForecastTrait.php +++ b/web/modules/weather_data/src/Service/DailyForecastTrait.php @@ -320,7 +320,10 @@ function ($day, $dayIndex) use ( $precipPeriods = array_filter($allPrecipPeriods, function ( $period, - ) use (&$firstHour, &$lastHour) { + ) use ( + &$firstHour, + &$lastHour, + ) { if ( $period->start < $lastHour && $period->end > $firstHour From f575b155fca46886b63a725e38b4ef8be33a3697 Mon Sep 17 00:00:00 2001 From: Greg Walker Date: Tue, 1 Oct 2024 16:45:06 -0500 Subject: [PATCH 09/10] properly determine hourly data --- tests/api/serve.js | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/tests/api/serve.js b/tests/api/serve.js index 2103cbdbf..23241ff99 100644 --- a/tests/api/serve.js +++ b/tests/api/serve.js @@ -23,7 +23,7 @@ const adjust = (time, adjustment) => { return time; }; -const processDates = (obj, usingHourly = false, { parent = null } = {}) => { +const processDates = (obj, usingHourly = false) => { // If the input is null, just bail out. Otherwise we'll accidentally turn it // into an object. if (obj === null) { @@ -39,7 +39,7 @@ const processDates = (obj, usingHourly = false, { parent = null } = {}) => { if (Array.isArray(value)) { value.forEach((item) => processDates(item, usingHourly, { parent: key })); } else if (typeof value === "object" && value !== null) { - processDates(value, usingHourly, { parent: key }); + processDates(value, usingHourly); } // // But if the value has a startsWith function and it starts with the token, @@ -52,18 +52,13 @@ const processDates = (obj, usingHourly = false, { parent = null } = {}) => { if (start === "now" && modifier) { updatedTime = adjust(updatedTime, modifier); - // If we are parsing hourly forcast data, and the key is either the - // start or end time, then align the output to the start of the given - // hour. - // - // Alternatively, if we are not parsing hourly data but our parent key - // is "values" and our key is "validTime", then this is the hourly data - // stuffed inside the gridpoints API return. Do the same thing. - if ( - (usingHourly && - ["startTime", "endTime", "validTime"].includes(key)) || - (!usingHourly && parent === "values" && key === "validTime") - ) { + // If the object key is in this list, then we may need to align the + // output to the start of the given hour. + const isAlignKey = ["startTime", "endTime", "validTime"].includes(key); + + // If we are processing hourly data AND this is one of the keys that + // needs to be aligned to the start of the hour + if (usingHourly && isAlignKey) { updatedTime = updatedTime.startOf("hour"); } } else if (start === "today") { @@ -125,7 +120,12 @@ export default async (request, response) => { return; } - const isHourlyForecast = filePath.toString().includes("hourly"); + // We know this is hourly forecast data if it's somewhere in the /gridpoints + // tree and EITHER ends after the WFO grid OR ends with /forecast/hourly. + const isHourlyForecast = + /\/gridpoints\/[A-Z]{3}\/\d+,\d+(\/forecast\/hourly)?\.json/.test( + filePath.toString(), + ); processDates(output, isHourlyForecast); From d4f03744485105c82aec962b01f88fb19b8d84ea Mon Sep 17 00:00:00 2001 From: Greg Walker Date: Tue, 1 Oct 2024 17:14:27 -0500 Subject: [PATCH 10/10] oops; tests were depending on there being at least 3 days --- .../data/testing/gridpoints/LWX/95,71.json | 103 +- .../gridpoints/LWX/95,71/forecast.json | 48 + .../gridpoints/LWX/95,71/forecast/hourly.json | 1971 ++++++++++++++++- 3 files changed, 2110 insertions(+), 12 deletions(-) diff --git a/tests/api/data/testing/gridpoints/LWX/95,71.json b/tests/api/data/testing/gridpoints/LWX/95,71.json index 053acb5b0..3c0348aa1 100644 --- a/tests/api/data/testing/gridpoints/LWX/95,71.json +++ b/tests/api/data/testing/gridpoints/LWX/95,71.json @@ -13,11 +13,26 @@ "type": "Polygon", "coordinates": [ [ - [-77.0934052, 38.9066303], - [-77.09715220000001, 38.884677100000005], - [-77.06893950000001, 38.8817577], - [-77.06518670000001, 38.903710600000004], - [-77.0934052, 38.9066303] + [ + -77.0934052, + 38.9066303 + ], + [ + -77.09715220000001, + 38.884677100000005 + ], + [ + -77.06893950000001, + 38.8817577 + ], + [ + -77.06518670000001, + 38.903710600000004 + ], + [ + -77.0934052, + 38.9066303 + ] ] ] }, @@ -124,6 +139,10 @@ { "validTime": "date:now +83932 seconds / PT1H", "value": 12.777777777777779 + }, + { + "validTime": "date:now +87532 seconds / PT72H", + "value": 12.777777777777779 } ] }, @@ -189,6 +208,10 @@ { "validTime": "date:now +80332 seconds / PT4H", "value": -1.6666666666666667 + }, + { + "validTime": "date:now +94732 seconds / PT72H", + "value": -1.6666666666666667 } ] }, @@ -198,6 +221,10 @@ { "validTime": "date:now +69532 seconds / PT13H", "value": 16.666666666666668 + }, + { + "validTime": "date:now +116332 seconds / PT72H", + "value": 16.666666666666668 } ] }, @@ -207,6 +234,10 @@ { "validTime": "date:now +26332 seconds / PT14H", "value": 4.444444444444445 + }, + { + "validTime": "date:now +76732 seconds / PT72H", + "value": 4.444444444444445 } ] }, @@ -304,6 +335,10 @@ { "validTime": "date:now +83932 seconds / PT1H", "value": 37 + }, + { + "validTime": "date:now +87532 seconds / PT72H", + "value": 37 } ] }, @@ -397,6 +432,10 @@ { "validTime": "date:now +83932 seconds / PT1H", "value": 12.777777777777779 + }, + { + "validTime": "date:now +87532 seconds / PT72H", + "value": 12.777777777777779 } ] }, @@ -430,6 +469,10 @@ { "validTime": "date:now +83932 seconds / PT2H", "value": 11.666666666666666 + }, + { + "validTime": "date:now +91132 seconds / PT72H", + "value": 11.666666666666666 } ] }, @@ -511,6 +554,10 @@ { "validTime": "date:now +80332 seconds / PT11H", "value": null + }, + { + "validTime": "date:now +119932 seconds / PT72H", + "value": null } ] }, @@ -596,6 +643,10 @@ { "validTime": "date:now +83932 seconds / PT1H", "value": 39 + }, + { + "validTime": "date:now +87532 seconds / PT72H", + "value": 39 } ] }, @@ -657,6 +708,10 @@ { "validTime": "date:now +83932 seconds / PT1H", "value": 250 + }, + { + "validTime": "date:now +87532 seconds / PT72H", + "value": 250 } ] }, @@ -714,6 +769,10 @@ { "validTime": "date:now +83932 seconds / PT1H", "value": 20.372 + }, + { + "validTime": "date:now +87532 seconds / PT72H", + "value": 20.372 } ] }, @@ -763,6 +822,10 @@ { "validTime": "date:now +83932 seconds / PT1H", "value": 31.484 + }, + { + "validTime": "date:now +87532 seconds / PT72H", + "value": 31.484 } ] }, @@ -797,6 +860,10 @@ { "validTime": "date:now +69532 seconds / PT6H", "value": 4 + }, + { + "validTime": "date:now +91132 seconds / PT72H", + "value": 4 } ] }, @@ -818,6 +885,10 @@ { "validTime": "date:now +69532 seconds / PT6H", "value": 0 + }, + { + "validTime": "date:now +91132 seconds / PT72H", + "value": 0 } ] }, @@ -839,6 +910,10 @@ { "validTime": "date:now +69532 seconds / PT6H", "value": 0 + }, + { + "validTime": "date:now +91132 seconds / PT72H", + "value": 0 } ] }, @@ -860,6 +935,10 @@ { "validTime": "date:now +69532 seconds / PT6H", "value": 0 + }, + { + "validTime": "date:now +91132 seconds / PT72H", + "value": 0 } ] }, @@ -932,6 +1011,10 @@ { "validTime": "date:now +83932 seconds / PT1H", "value": 37.04 + }, + { + "validTime": "date:now +87532 seconds / PT72H", + "value": 37.04 } ] }, @@ -985,6 +1068,10 @@ { "validTime": "date:now +80332 seconds / PT5H", "value": 260 + }, + { + "validTime": "date:now +98332 seconds / PT72H", + "value": 260 } ] }, @@ -1078,6 +1165,10 @@ { "validTime": "date:now +83932 seconds / PT1H", "value": 1721.2056 + }, + { + "validTime": "date:now +87532 seconds / PT72H", + "value": 1721.2056 } ] }, @@ -1298,4 +1389,4 @@ "values": [] } } -} +} \ No newline at end of file diff --git a/tests/api/data/testing/gridpoints/LWX/95,71/forecast.json b/tests/api/data/testing/gridpoints/LWX/95,71/forecast.json index dd5dd0e19..c0ff991e4 100644 --- a/tests/api/data/testing/gridpoints/LWX/95,71/forecast.json +++ b/tests/api/data/testing/gridpoints/LWX/95,71/forecast.json @@ -123,6 +123,54 @@ "icon": "https://api.weather.gov/icons/land/night/few?size=medium", "shortForecast": "Mostly Clear", "detailedForecast": "Mostly clear, with a low around 33. Northwest wind 12 to 18 mph, with gusts as high as 28 mph." + }, + { + "number": 5, + "name": "Thursday", + "startTime": "date:today 06:00:-5 +2 days", + "endTime": "date:today 18:00:-5 +2 days", + "isDaytime": false, + "temperature": 33, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": null + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -2.7777777777777777 + }, + "relativeHumidity": { "unitCode": "wmoUnit:percent", "value": 49 }, + "windSpeed": "12 to 18 mph", + "windDirection": "NW", + "icon": "https://api.weather.gov/icons/land/night/few?size=medium", + "shortForecast": "Mostly Clear", + "detailedForecast": "Mostly clear, with a low around 33. Northwest wind 12 to 18 mph, with gusts as high as 28 mph." + }, + { + "number": 6, + "name": "Thursday Night", + "startTime": "date:today 18:00:-5 +2 days", + "endTime": "date:today 06:00:-5 +3 days", + "isDaytime": false, + "temperature": 33, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": null + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -2.7777777777777777 + }, + "relativeHumidity": { "unitCode": "wmoUnit:percent", "value": 49 }, + "windSpeed": "12 to 18 mph", + "windDirection": "NW", + "icon": "INVALID_ICON_URL", + "shortForecast": "Mostly Clear", + "detailedForecast": "Mostly clear, with a low around 33. Northwest wind 12 to 18 mph, with gusts as high as 28 mph." } ] } diff --git a/tests/api/data/testing/gridpoints/LWX/95,71/forecast/hourly.json b/tests/api/data/testing/gridpoints/LWX/95,71/forecast/hourly.json index b7c49226c..961e05bfd 100644 --- a/tests/api/data/testing/gridpoints/LWX/95,71/forecast/hourly.json +++ b/tests/api/data/testing/gridpoints/LWX/95,71/forecast/hourly.json @@ -14,11 +14,26 @@ "type": "Polygon", "coordinates": [ [ - [-77.0934052, 38.9066303], - [-77.09715220000001, 38.884677100000005], - [-77.06893950000001, 38.8817577], - [-77.06518670000001, 38.903710600000004], - [-77.0934052, 38.9066303] + [ + -77.0934052, + 38.9066303 + ], + [ + -77.09715220000001, + 38.884677100000005 + ], + [ + -77.06893950000001, + 38.8817577 + ], + [ + -77.06518670000001, + 38.903710600000004 + ], + [ + -77.0934052, + 38.9066303 + ] ] ] }, @@ -681,7 +696,1951 @@ "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", "shortForecast": "Mostly Sunny", "detailedForecast": "" + }, + { + "number": 26, + "name": "", + "startTime": "date:now +87532 seconds", + "endTime": "date:now +91132 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 27, + "name": "", + "startTime": "date:now +91132 seconds", + "endTime": "date:now +94732 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 28, + "name": "", + "startTime": "date:now +94732 seconds", + "endTime": "date:now +98332 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 29, + "name": "", + "startTime": "date:now +98332 seconds", + "endTime": "date:now +101932 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 30, + "name": "", + "startTime": "date:now +101932 seconds", + "endTime": "date:now +105532 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 31, + "name": "", + "startTime": "date:now +105532 seconds", + "endTime": "date:now +109132 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 32, + "name": "", + "startTime": "date:now +109132 seconds", + "endTime": "date:now +112732 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 33, + "name": "", + "startTime": "date:now +112732 seconds", + "endTime": "date:now +116332 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 34, + "name": "", + "startTime": "date:now +116332 seconds", + "endTime": "date:now +119932 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 35, + "name": "", + "startTime": "date:now +119932 seconds", + "endTime": "date:now +123532 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 36, + "name": "", + "startTime": "date:now +123532 seconds", + "endTime": "date:now +127132 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 37, + "name": "", + "startTime": "date:now +127132 seconds", + "endTime": "date:now +130732 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 38, + "name": "", + "startTime": "date:now +130732 seconds", + "endTime": "date:now +134332 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 39, + "name": "", + "startTime": "date:now +134332 seconds", + "endTime": "date:now +137932 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 40, + "name": "", + "startTime": "date:now +137932 seconds", + "endTime": "date:now +141532 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 41, + "name": "", + "startTime": "date:now +141532 seconds", + "endTime": "date:now +145132 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 42, + "name": "", + "startTime": "date:now +145132 seconds", + "endTime": "date:now +148732 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 43, + "name": "", + "startTime": "date:now +148732 seconds", + "endTime": "date:now +152332 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 44, + "name": "", + "startTime": "date:now +152332 seconds", + "endTime": "date:now +155932 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 45, + "name": "", + "startTime": "date:now +155932 seconds", + "endTime": "date:now +159532 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 46, + "name": "", + "startTime": "date:now +159532 seconds", + "endTime": "date:now +163132 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 47, + "name": "", + "startTime": "date:now +163132 seconds", + "endTime": "date:now +166732 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 48, + "name": "", + "startTime": "date:now +166732 seconds", + "endTime": "date:now +170332 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 49, + "name": "", + "startTime": "date:now +170332 seconds", + "endTime": "date:now +173932 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 50, + "name": "", + "startTime": "date:now +173932 seconds", + "endTime": "date:now +177532 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 51, + "name": "", + "startTime": "date:now +177532 seconds", + "endTime": "date:now +181132 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 52, + "name": "", + "startTime": "date:now +181132 seconds", + "endTime": "date:now +184732 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 53, + "name": "", + "startTime": "date:now +184732 seconds", + "endTime": "date:now +188332 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 54, + "name": "", + "startTime": "date:now +188332 seconds", + "endTime": "date:now +191932 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 55, + "name": "", + "startTime": "date:now +191932 seconds", + "endTime": "date:now +195532 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 56, + "name": "", + "startTime": "date:now +195532 seconds", + "endTime": "date:now +199132 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 57, + "name": "", + "startTime": "date:now +199132 seconds", + "endTime": "date:now +202732 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 58, + "name": "", + "startTime": "date:now +202732 seconds", + "endTime": "date:now +206332 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 59, + "name": "", + "startTime": "date:now +206332 seconds", + "endTime": "date:now +209932 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 60, + "name": "", + "startTime": "date:now +209932 seconds", + "endTime": "date:now +213532 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 61, + "name": "", + "startTime": "date:now +213532 seconds", + "endTime": "date:now +217132 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 62, + "name": "", + "startTime": "date:now +217132 seconds", + "endTime": "date:now +220732 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 63, + "name": "", + "startTime": "date:now +220732 seconds", + "endTime": "date:now +224332 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 64, + "name": "", + "startTime": "date:now +224332 seconds", + "endTime": "date:now +227932 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 65, + "name": "", + "startTime": "date:now +227932 seconds", + "endTime": "date:now +231532 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 66, + "name": "", + "startTime": "date:now +231532 seconds", + "endTime": "date:now +235132 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 67, + "name": "", + "startTime": "date:now +235132 seconds", + "endTime": "date:now +238732 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 68, + "name": "", + "startTime": "date:now +238732 seconds", + "endTime": "date:now +242332 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 69, + "name": "", + "startTime": "date:now +242332 seconds", + "endTime": "date:now +245932 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 70, + "name": "", + "startTime": "date:now +245932 seconds", + "endTime": "date:now +249532 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 71, + "name": "", + "startTime": "date:now +249532 seconds", + "endTime": "date:now +253132 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 72, + "name": "", + "startTime": "date:now +253132 seconds", + "endTime": "date:now +256732 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 73, + "name": "", + "startTime": "date:now +256732 seconds", + "endTime": "date:now +260332 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 74, + "name": "", + "startTime": "date:now +260332 seconds", + "endTime": "date:now +263932 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 75, + "name": "", + "startTime": "date:now +263932 seconds", + "endTime": "date:now +267532 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 76, + "name": "", + "startTime": "date:now +267532 seconds", + "endTime": "date:now +271132 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 77, + "name": "", + "startTime": "date:now +271132 seconds", + "endTime": "date:now +274732 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 78, + "name": "", + "startTime": "date:now +274732 seconds", + "endTime": "date:now +278332 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 79, + "name": "", + "startTime": "date:now +278332 seconds", + "endTime": "date:now +281932 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 80, + "name": "", + "startTime": "date:now +281932 seconds", + "endTime": "date:now +285532 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 81, + "name": "", + "startTime": "date:now +285532 seconds", + "endTime": "date:now +289132 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 82, + "name": "", + "startTime": "date:now +289132 seconds", + "endTime": "date:now +292732 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 83, + "name": "", + "startTime": "date:now +292732 seconds", + "endTime": "date:now +296332 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 84, + "name": "", + "startTime": "date:now +296332 seconds", + "endTime": "date:now +299932 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 85, + "name": "", + "startTime": "date:now +299932 seconds", + "endTime": "date:now +303532 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 86, + "name": "", + "startTime": "date:now +303532 seconds", + "endTime": "date:now +307132 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 87, + "name": "", + "startTime": "date:now +307132 seconds", + "endTime": "date:now +310732 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 88, + "name": "", + "startTime": "date:now +310732 seconds", + "endTime": "date:now +314332 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 89, + "name": "", + "startTime": "date:now +314332 seconds", + "endTime": "date:now +317932 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 90, + "name": "", + "startTime": "date:now +317932 seconds", + "endTime": "date:now +321532 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 91, + "name": "", + "startTime": "date:now +321532 seconds", + "endTime": "date:now +325132 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 92, + "name": "", + "startTime": "date:now +325132 seconds", + "endTime": "date:now +328732 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 93, + "name": "", + "startTime": "date:now +328732 seconds", + "endTime": "date:now +332332 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 94, + "name": "", + "startTime": "date:now +332332 seconds", + "endTime": "date:now +335932 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 95, + "name": "", + "startTime": "date:now +335932 seconds", + "endTime": "date:now +339532 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 96, + "name": "", + "startTime": "date:now +339532 seconds", + "endTime": "date:now +343132 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" + }, + { + "number": 97, + "name": "", + "startTime": "date:now +343132 seconds", + "endTime": "date:now +346732 seconds", + "isDaytime": true, + "temperature": 55, + "temperatureUnit": "F", + "temperatureTrend": null, + "probabilityOfPrecipitation": { + "unitCode": "wmoUnit:percent", + "value": 4 + }, + "dewpoint": { + "unitCode": "wmoUnit:degC", + "value": -1.6666666666666667 + }, + "relativeHumidity": { + "unitCode": "wmoUnit:percent", + "value": 37 + }, + "windSpeed": "13 mph", + "windDirection": "W", + "icon": "https://api.weather.gov/icons/land/day/sct,4?size=small", + "shortForecast": "Mostly Sunny", + "detailedForecast": "" } ] } -} +} \ No newline at end of file