Een vloeiende radarloop begint als getallen, niet als een kant-en-klare film. Forecast Bar leidt een nationale scan door tegels, verificatie, caching en weergave op het apparaat, en overbrugt daarna de gaten tussen scans, zodat stormen vloeiend over het scherm kunnen bewegen.
Eén nationale scan, ongeveer zestien miljoen waarden
NOAA voegt radarwaarnemingen elke twee minuten samen tot een nationale scan. De scan in deze film bevat 6.100 bij 2.700 punten: 16.470.000 waarden. De server van Forecast Bar kijkt elke twintig seconden of er een nieuwe scan is.
Dat zijn verschillende klokken. Elke twintig seconden controleren levert niet elke twintig seconden een nieuwe waarneming op. En een scherm dat vele keren per seconde ververst, krijgt ook niet zoveel nieuwe radarscans binnen.
Stuur waarden en voeg de kleur later toe
De radar reist als getallen, één byte per punt. De telefoon voegt de kleur toe bij het tekenen van de kaart. Zo blijven de onderliggende radarwaarden gescheiden van het kleurenpalet dat de kijker ziet.
Afzonderlijke radars draaien niet synchroon. Loopt er een achter, dan worden de gegevens geleidelijk naar de volgende echte scan gebracht. De film beschrijft dat als werken tussen echte scans, niet als het verzinnen van een extra waarneming.
Bouw complete beelden van geverifieerde tegels
Elk beeld wordt in tegels gesneden. Een tegel leent een rand van één pixel van zijn buren, zodat de getoonde stukken zonder naden aansluiten. Elke tegel krijgt ook een SHA-256-vingerafdruk.
Een beeld gaat pas live als al zijn tegels de verificatie doorstaan. Eenmaal gepubliceerd verandert het nooit meer. De tegels die het scherm nodig heeft, komen samen binnen als één bestand in één verzoek, en verschijnen dus niet als een reeks onvolledige stukken.
Houd onveranderlijke beelden dichtbij
Omdat een gepubliceerd beeld niet verandert, kunnen edge-caches het een jaar bewaren. Een oud beeld in de cache is nog steeds dat beeld; de laatste scan vinden is een aparte taak.
Op het apparaat worden tegels in het GPU-geheugen gestapeld en wordt de kleur per pixel toegepast tijdens het tekenen. De gemeten autoplay in de film was ongeveer anderhalve seconde. Dat meet hoe snel de loop klaar is om af te spelen, niet de leeftijd van een radarwaarneming of een universele bezorgtijd.
Verplaats stormen tussen scans in plaats van alleen te vervagen
Stormen blijven bewegen in de minuten tussen waarnemingen. Een gewone crossfade laat de oude storm vervagen terwijl de nieuwe opkomt, wat twee vage kopieën oplevert.
De GPU schat daarom een bewegingsveld en verplaatst de echo's tussen de beelden langs hun baan. Het resultaat kan bij de volgende schermverversing worden bijgewerkt, tot 120 Hz op geschikte schermen. Dat is een bovengrens van het scherm, geen belofte voor elk apparaat, en het verhoogt de waarnemingsfrequentie niet.
Om te onthouden
Gebruik deze controles de volgende keer:
- Maak onderscheid tussen scanfrequentie, servercontroles en schermverversing.
- Lees de tijdstempel, ook als de animatie doorlopend lijkt.
- Zie vloeiende beweging als weergave tussen scans, niet als nieuwe radarwaarnemingen.