MOODY

{{ clockDate }}
{{ clockUtc }}
{{ clockHkt }}

ATIS
{{ activeAtis.letter }}
{{ parsedAtisDetails.runways.join(' / ') }}

Wind {{ parsedAtisDetails.windFormatted || '—' }}
VIS {{ parsedAtisDetails.cavok ? 'CAVOK' : (parsedAtisDetails.visFormatted || '—') }}
QNH Q{{ parsedAtisDetails.qnh }}
H H N E S W
Cloud {{ parsedAtisDetails.cavok ? 'CAVOK' : (parsedAtisDetails.cloudFormatted || '—') }}
WX {{ parsedAtisDetails.cavok ? 'NIL' : (parsedAtisDetails.wxFormatted || '—') }}
{{ note.text }}
{{ activeAtis.body }}

Retrieving VHHH ATIS...

METAR/TAF

{{ metarData.metarType || 'METAR' }} {{ formatTafTimeLabel(metarData.obsTime) }}
Wind:{{ metarWindTable }} Vis:{{ metarVisText }} Clouds: {{ l.label }}{{ i < metarClouds.length - 1 ? ' ' : '' }}
Temp:{{ metarTemp }}°C Dew:{{ metarDewpoint }}°C
QNH:Q{{ metarQnh }} Wx:{{ metarData.wxString || 'NSW' }}
{{ tafValidHeader }}
{{ f.fcstChange || 'BASE' }}
Wind:{{ formatTafWind(f) }} Vis:{{ formatTafVis(f) }} Clouds: {{ l.label }}{{ i < formatTafClouds(f).length - 1 ? ' ' : '' }} Wx:{{ f.wxString || f.wx || 'NSW' }}

Retrieving Flight Meteorological Data...

METAR:

{{ metarData.rawOb || metarData.rawText }}

TAF:

{{ formattedRawTaf }}

Interactive Weather Map

Map Controls

last update {{ lastRefreshed.toLocaleTimeString('en-GB', { hour: '2-digit', minute: '2-digit', timeZone: 'Asia/Hong_Kong' }) }} L