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)); } Schneefälle Alpen - SchneeToni
Freitag, 20. September 2024

Schnee und Nordstaulagen: Wo in den Alpen der meiste Schnee fällt

Nordstaulagen sind für die Schneemengen in den Alpen von entscheidender Bedeutung. Diese Wetterlagen treten auf, wenn feuchte Luftmassen aus nördlicher Richtung auf die Alpen treffen, wo sie aufsteigen und abkühlen. Dies führt zu starken Schneefällen, besonders in Tälern und Skigebieten auf der Nordseite der Alpen. Die geografische Lage, Höhe und Ausrichtung spielen dabei eine wesentliche […]