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));
}
Albulapass: Schneeverhältnisse & Strasseninfos
Dienstag, 15. Oktober 2024
Der Albulapass ist ein spektakulärer Alpenpass, der im Winter durch seine Schneemengen und besondere Herausforderungen besticht. Mit seiner Höhe von 2’312 Metern gehört er zu den höchsten und faszinierendsten Alpenpässen der Schweiz. Doch während der kalten Monate herrscht hier eine strenge Wintersperre. Was macht diesen Pass so einzigartig und warum sind die Schneemengen so gewaltig? […]
Mittwoch, 9. Oktober 2024
Der Lai da Palpuogna, oft als einer der schönsten Seen der Schweiz bezeichnet, fasziniert mit seinem kristallklaren Wasser, seiner malerischen Lage und hervorragenden Erreichbarkeit. Was macht diesen Ort so besonders? Eine Perle im Parc Ela: Lage und Erreichbarkeit Der Lai da Palpuogna, ein Naturjuwel im Kanton Graubünden, liegt auf 1’918 Metern Höhe in der wunderschönen […]
Dienstag, 10. September 2024
Wetterlage: Sinkende Schneefallgrenze und winterliche Verhältnisse auf den Pässen. Ab Donnerstagabend wird die Schneefallgrenze in der Schweiz auf etwa 1300 Meter absinken, in intensiven Niederschlägen können die Flocken sogar bis auf 1000 Meter fallen. Am Freitag wird besonders auf den Alpenpässen oberhalb von 2000 Metern mit erheblichen Schneefällen gerechnet. In der Schweiz sind vor allem […]