function stp_awp_summary_add_unique(&$parts, $text){ $text = trim((string)$text); if ($text === '') return; if (!in_array($text, $parts, true)) $parts[] = $text; } function stp_awp_build_v2_summary_parts($canonical){ $parts = array(); if (!is_array($canonical) || empty($canonical)) return $parts; if (isset($canonical['snow_cm_24h']) && is_numeric($canonical['snow_cm_24h'])) { $snow = (float)$canonical['snow_cm_24h']; if ($snow >= 15) stp_awp_summary_add_unique($parts, round($snow, 1) . ' cm Schnee / 24h'); elseif ($snow >= 3) stp_awp_summary_add_unique($parts, 'etwas Neuschnee'); } if (!empty($canonical['snowline_v2']) && is_array($canonical['snowline_v2'])) { $sv2 = $canonical['snowline_v2']; if (isset($sv2['value_m']) && is_numeric($sv2['value_m'])) { stp_awp_summary_add_unique($parts, 'Schneefallgrenze ' . round((float)$sv2['value_m']) . ' m'); } if (!empty($sv2['trend'])) { $map = array('falling' => 'Schneefallgrenze sinkt', 'rising' => 'Schneefallgrenze steigt', 'steady' => 'Schneefallgrenze stabil'); if (isset($map[$sv2['trend']])) stp_awp_summary_add_unique($parts, $map[$sv2['trend']]); } } elseif (isset($canonical['snowline_m']) && is_numeric($canonical['snowline_m'])) { stp_awp_summary_add_unique($parts, 'Schneefallgrenze ' . round((float)$canonical['snowline_m']) . ' m'); } if (!empty($canonical['atmosphere_v2']['freezing_level_v2']['value_m']) && is_numeric($canonical['atmosphere_v2']['freezing_level_v2']['value_m'])) { stp_awp_summary_add_unique($parts, 'Nullgradgrenze ' . round((float)$canonical['atmosphere_v2']['freezing_level_v2']['value_m']) . ' m'); } elseif (isset($canonical['freezing_level_m']) && is_numeric($canonical['freezing_level_m'])) { stp_awp_summary_add_unique($parts, 'Nullgradgrenze ' . round((float)$canonical['freezing_level_m']) . ' m'); } if (!empty($canonical['wind_v2']) && is_array($canonical['wind_v2'])) { $w = $canonical['wind_v2']; if (!empty($w['storm_signal'])) { $risk = isset($w['storm_risk']) ? (string)$w['storm_risk'] : 'hoch'; stp_awp_summary_add_unique($parts, 'stürmisch (' . $risk . ')'); } elseif (isset($w['wind_now_kmh']) && is_numeric($w['wind_now_kmh']) && (float)$w['wind_now_kmh'] >= 25) { stp_awp_summary_add_unique($parts, 'windig'); } if (!empty($w['bise_signal'])) stp_awp_summary_add_unique($parts, 'Bise möglich'); if (!empty($w['foehn_signal'])) stp_awp_summary_add_unique($parts, 'Föhnsignal'); } if (!empty($canonical['atmosphere_v2']['convective_v2']) && is_array($canonical['atmosphere_v2']['convective_v2'])) { $cv2 = $canonical['atmosphere_v2']['convective_v2']; if (!empty($cv2['lightning_watch'])) stp_awp_summary_add_unique($parts, 'Gewitterrisiko'); if (!empty($cv2['hail_risk']) && in_array((string)$cv2['hail_risk'], array('medium','high'), true)) stp_awp_summary_add_unique($parts, 'Hagel möglich'); if (!empty($cv2['winter_thunder_possible'])) stp_awp_summary_add_unique($parts, 'Wintergewitter möglich'); } if (!empty($canonical['icing_v2']) && is_array($canonical['icing_v2'])) { $ice = $canonical['icing_v2']; if (!empty($ice['blitzeis_risk']) && (string)$ice['blitzeis_risk'] === 'very_high') { stp_awp_summary_add_unique($parts, 'Blitzeisgefahr'); } elseif (!empty($ice['glatteis_risk']) && in_array((string)$ice['glatteis_risk'], array('high','very_high'), true)) { stp_awp_summary_add_unique($parts, 'Glatteisgefahr'); } elseif (!empty($ice['frost_signal'])) { stp_awp_summary_add_unique($parts, 'Frost möglich'); } if (!empty($ice['freezing_rain_risk']) && (string)$ice['freezing_rain_risk'] === 'high') stp_awp_summary_add_unique($parts, 'gefrierender Regen möglich'); } if (!empty($canonical['operational_flags_v2']) && is_array($canonical['operational_flags_v2'])) { $ops = $canonical['operational_flags_v2']; if (!empty($ops['rain_to_snow_transition'])) stp_awp_summary_add_unique($parts, 'Übergang von Regen zu Schnee'); if (!empty($ops['stau_active'])) stp_awp_summary_add_unique($parts, 'Staulage aktiv'); } return $parts; } function stp_awp_build_summary_line_v2($condition, $temp, $wind, $canonical){ $parts = array(); $condition = trim((string)$condition); if ($condition !== '') $parts[] = $condition; if ($temp !== null && $temp !== '') $parts[] = round((float)$temp) . '°C'; if ($wind !== null && $wind !== '') $parts[] = 'Wind ' . round((float)$wind) . ' km/h'; $v2parts = stp_awp_build_v2_summary_parts($canonical); foreach ($v2parts as $item){ stp_awp_summary_add_unique($parts, $item); } return trim(implode(' · ', $parts)); } Wetter Alpen – Schweiz, Deutschland & Österreich | SchneeToni
CH Edition

Alpenwetter Schweiz

Der direkte SchneeToni-Einstieg in Deutschschweiz, Westschweiz und Alpensüdseite.

Regionen

Wähle deine Region

01
CH Edition

Deutschschweiz

Nordseite, Voralpen und zentrale Lagen auf einen Blick.

02
CH Edition

Westschweiz

Jura, Wallis und westliche Alpen direkt öffnen.

03
CH Edition

Alpensüdseite

Tessin und Südseite schnell erreichen.