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)); } SUV-Reifen - SchneeToni
Mittwoch, 12. Februar 2025

Schnee und Winterpneus: Warum ich auf den Bridgestone Blizzak DM-V3 setze

Warum die Wahl des Winterpneus entscheidend ist Sobald der erste Schnee fällt, wird es auf den Strassen rutschig – und genau dann zeigt sich, welcher Reifen wirklich etwas taugt. Ich bin das ganze Jahr über bei jedem Wetter unterwegs und verlasse mich im Winter auf einen Winterreifen, der für extreme Bedingungen ausgelegt ist: den Bridgestone […]