Grote onderhoudsronde deel 2: P2000 in gewoon Nederlands, scheepvaart en vliegverkeer scherper in beeld

Gestopt
Zondag 2 Augustus 01:15:5716°71%
Taal
Thema

Grote onderhoudsronde deel 2: P2000 in gewoon Nederlands, scheepvaart en vliegverkeer scherper in beeld

Redactie
Dordrecht
Dordrecht

In deel 1 stond dat er een tweede bericht zou komen. Hier is het — en het is opnieuw een flinke lap geworden, want er is de afgelopen dagen stevig doorgewerkt.

De rode draad is dezelfde als vorige keer, maar dan een slag dieper. Ging deel 1 vooral over nieuwe functies en gecontroleerde cijfers, deze ronde draait om iets anders: begrijpen wat je ziet. Een alarmering in codetaal uitschrijven naar gewoon Nederlands. Een melding op de juiste hectometerpaal zetten in plaats van ergens op de weg. Een schip niet alleen tonen, maar erbij zetten op welke vaarweg het vaart en waarom die diepgang er nu toe doet. En overal: erbij zeggen wat we níét weten.

Er zitten ook een paar stevige fouten tussen die we onderweg tegenkwamen — waaronder een feed die vier weken stilstond zonder dat iets dat meldde, en een teller die een factor duizend verkeerd stond. Die staan er gewoon in. Ze zijn gevonden dóór te controleren, en dat is precies waar deze ronde over gaat.

Ook dit bericht past er niet in één keer in: er komt nog een deel 3.

P2000: van codetaal naar een leesbare melding

In deel 1 kreeg P2000 al een nieuw uiterlijk. Deze keer ging het niet over hoe de meldingen eruitzien, maar over wat er staat — en waar ze op de kaart terechtkomen.

Een alarmering is geschreven voor de hulpverlener die hem op zijn pager krijgt, niet voor de meelezer. Het resultaat is compacte codetaal:

A2 DP2 Leidschendam-Voorburg Via Donizetti VOORB VWS 15110

Wie dat niet dagelijks leest, ziet een regel ruis. Dat is op vier fronten aangepakt.

1. Afkortingen worden uitgeschreven

Er ligt nu een woordenlijst achter de pagina die afkortingen omzet naar gewone taal: BR wordt Brand, DIA wordt directe inzet ambulance, SEH wordt spoedeisende hulp. Bij een deel van de termen wordt de afkorting bewust laten staan met de uitleg als tooltip, omdat vervangen de zin onleesbaar zou maken.

Twee dingen die daarbij principieel zijn:

  • Er wordt niet gegokt. Een foute uitleg bij een hulpdienstmelding is erger dan geen uitleg. Afkortingen die we niet hard konden maken, krijgen een toelichting met de vermelding dat ze niet geverifieerd zijn — géén vervanging. Zo blijft OMS staan zoals het er staat, omdat het net zo goed om een handmelder als om een automatische melding kan gaan.
  • Elke melding heeft een knop origineel. Eén klik en je ziet de onbewerkte tekst zoals hij binnenkwam. Er gaat dus nooit informatie verloren; de uitleg ligt eroverheen, niet ervoor in de plaats.

Een paar termen zijn onderweg uitgezocht en verklaard, waaronder eentje die in Haaglanden en Hollands Midden ruim drieduizend keer in ons archief staat:

VWS — voorwaardescheppend. Geen incident, maar dynamisch ambulancemanagement: de ambulance rijdt zónder patiënt naar een strategisch punt om de dekking in de regio op peil te houden. Er is dus niets aan de hand op de genoemde plek.

Datzelfde geldt voor de DP-codes (dekkingspunten) die daarbij horen: DP2 is Voorburg, DP4 Delft, DP5 Westland, DP6 Nootdorp. Een officiële lijst daarvan bestaat niet — de lijstjes die rondzwerven komen van hobbyisten en lopen achter, omdat nummers hergebruikt worden voor een nieuwe locatie. Wij leiden ze daarom af uit ons eigen archief van twee maanden meldingen, waarin de straat altijd meekomt, en dat wordt wekelijks opnieuw gecontroleerd. Twee nummers uit de rondzwervende lijsten bleken achterhaald.

Ook plaatsnaam-afkortingen worden uitgeschreven: VOORB wordt Voorburg, NOOTDP Nootdorp. Staat de plaatsnaam al voluit in de melding, dan blijft het bij een tooltip — anders krijg je "Papendrecht Papendrecht".

2. De meldingstekst wordt niet langer stukgemaakt

Voordat er een adres uit een melding gehaald kan worden, wordt de tekst opgeschoond: prioriteitscode en ritnummers eraf. Daar zaten twee fouten in die precies het tegenovergestelde deden.

De prioriteitscodes werden niet alleen vooraan weggehaald, maar overal in de tekst — en één daarvan is A2. Dat is óók een snelweg. En de losse cijfers 1 en 2 werden overal geschrapt, waardoor hectometreringen sneuvelden.

in de meldingwerd hiervoorwordt nu
Aanrijding letsel A2 Li 57,6 Utrecht57,6 Utrechtongewijzigd
letsel A28 35,2letsel8 35,A28 35,2
N3 1,4N3 ,4N3 1,4

Nagemeten over ruim 75.000 meldingen verandert er bij 1,9% iets — en elk bekeken verschil is winst. Een melding op de A2 of A28 werd dus stelselmatig van zijn wegnummer beroofd, en belandde daarna ergens in de buurt in plaats van op de weg.

3. Meldingen op de snelweg staan op de juiste plek

Een P2000-melding op de snelweg noemt vrijwel altijd een hectometrering — het getal op de blauwe paaltjes in de berm, bijvoorbeeld A16 Re 21,3. Dat is de precieze plek van het incident, tot op honderd meter nauwkeurig.

Tot nu toe deed de kaart daar niets mee. Een melding op de N3 bij Papendrecht belandde op het middelpunt van die weg, en élke melding op dat wegvak kreeg daardoor exact dezelfde speld. Gemiddeld zat de marker er zo'n achthonderd meter naast — genoeg om aan de verkeerde kant van een afrit of viaduct uit te komen.

Vanaf nu wordt die hectometrering opgezocht in het Nationaal Wegenbestand, het officiële wegenregister van Rijkswaterstaat, en komt de melding op de werkelijke hectometerpaal te staan. Ook de rijbaan telt mee: links en rechts liggen op een snelweg vijftien tot tachtig meter uit elkaar, dus dat is geen detail. Noemt de melding geen rijbaan, dan wordt hij ook niet verzonnen — dan pakt de kaart het midden.

De omschrijving onder de melding verandert mee. Waar eerder een postcode stond die eigenlijk nergens op sloeg — die hoorde bij het punt waar de zoekmachine de snelweg toevallig raakte, niet bij het incident — staat nu gewoon:

A12 linkerrijbaan hectometer 8,1

Van alle meldingen bevat ongeveer 1,7% zo'n hectometrering; daarvan vindt 99,2% een exacte paal. De enkele misser is een weg waarvan de hectometrering onder een ander wegnummer valt. In dat geval valt de melding netjes terug op plaatsniveau — liever grof goed dan precies fout.

4. Testmeldingen staan niet meer tussen het echte werk

Ongeveer 7,4% van al het P2000-verkeer is een test: proefalarmen, pagercontroles, systeemberichten. Die staan nu standaard verborgen, met een knop in de werkbalk om ze alsnog te tonen, en een grijze TEST-badge zodat je altijd ziet waar je naar kijkt.

Er zit één bewuste terughoudendheid in dat filter. Er wordt alleen gefilterd op hele woorden in de tekst — niet op capcodes die als testcode bekendstaan, en niet op tekstfragmenten. Dat laatste zou Materials Testing Veendam, de Testerstraat en de Protestantse Kerk als test bestempelen. En dat eerste bleek bij het nameten over twee maanden meldingen twee echte grote incidenten te verbergen: een industriebrand in Oss en een GRIP 2-gebouwbrand aan de Slinge in Rotterdam. Die kwamen binnen op een capcode die "Proefalarm/Test GRIP" heet maar óók voor echte opschalingen wordt gebruikt. Een filter dat een GRIP 2 verbergt is erger dan een paar testmeldingen te veel — dus dat signaal gebruiken we niet.

5. Reddingboten bij naam, en een vangnet bij storing

KNRM- en Kustwachtmeldingen eindigen op een rij tekstcodes: Vaartuig gekapseisd / MBK, AND. Een officiële vertaling van die codes bestaat niet. Uit ons eigen archief is er wél een af te leiden — welke code verschijnt structureel samen met welke eenheid — en dat leverde veertig codes op met voldoende zekerheid. Zo weet je nu dat er een reddingboot met een naam achter zit: MKN1 is de Frans Verkade, STEbu de Antoinette, CG06 de SAR-helikopter Rescue 06 uit Den Helder. Codes die altijd samen alarmeren en dus niet te scheiden zijn, blijven staan zoals ze zijn — zie hierboven, niet gokken.

Tot slot een storingsvangnet. Onze eigen ontvanger kan uitvallen; dat is een keer gebeurd en duurde toen bijna negentien uur. Normaal zit er mediaan elf seconden tussen twee meldingen, dus tien minuten stilte is geen rustige avond maar een storing. Gebeurt dat, dan meldt de pagina dat met een duidelijke banner en vult hij de lijst tijdelijk aan met meldingen van p2000-online.net, met bronvermelding erbij. Zodra de eigen ontvanger weer loopt, verdwijnt dat vanzelf.

Bronnen bij dit onderdeel: hectometerpalen uit het Nationaal Wegenbestand (Rijkswaterstaat, via PDOK) · capcodegegevens uit de openbare capcodedatabase · reserveberichten van p2000-online.net · afkortingen en dekkingspunten afgeleid uit ons eigen meldingenarchief.

Luchtverkeer: meer te zien, en het beweegt eindelijk vloeiend

Luchtverkeer toonde tot nu toe vooral stipjes met een vluchtnummer. Er zat meer in de ontvangen gegevens dan we lieten zien, en de kaart bewoog schokkerig. Allebei aangepakt.

Elk toestel met type en silhouet

De ontvanger levert bij elk toestel niet alleen een registratie maar ook een typecode mee. Die lazen we niet uit — van een KC-135R tankvliegtuig wisten we dus niets, behalve dat er iets vloog.

Nu wordt bij elk toestel het model erbij gezocht in de officiële typeregistratie van de ICAO (Doc 8643, ruim 2.600 typecodes): Boeing 737-800, Airbus A320neo, AW-139, F-16. En het icoontje op de kaart is niet langer voor iedereen hetzelfde vliegtuigje maar een silhouet dat bij het type hoort — 88 vormen, van een viermotorige widebody tot een helikopter, een gyrocopter en een Chinook met zijn twee rotoren.

Dat kiezen van de juiste naam bleek trouwens een dingetje: 1.350 van die typecodes dekken meer dan één model, omdat elke licentiebouwer een eigen regel heeft. Simpelweg de kortste naam pakken leverde "F-16 Netz" (de Israëlische variant) en "AB-139" in plaats van "AW-139" op. Er wordt nu gekozen op hoe gangbaar een naam is; de overige varianten staan erbij vermeld.

Toch bleven er toestellen over die nergens in thuis te brengen waren. De database die met de ontvanger meekomt is namelijk een momentopname uit het softwarepakket, en de onze liep achter — alles wat daarna is geregistreerd ontbrak. Die is inmiddels bijgewerkt, wat het grootste deel oploste.

Voor wat er dan nog overblijft is er een derde laag: de openbare toestellendatabase van OpenSky, ruim een half miljoen registraties, die maandelijks lokaal wordt bijgewerkt. Geen wondermiddel — van de zeven onbekende toestellen in een steekproef kende OpenSky er twee, waaronder een Tecnam die verder nergens in stond — maar het sluit een reëel gat, en het werkt zonder dat er tijdens je bezoek iets naar buiten hoeft.

Route, maatschappij en logo

Een ADS-B-uitzending bevat géén route — een toestel zendt zijn vluchtnummer uit, niet waar het vandaan komt of naartoe gaat. Dat wordt er nu bij opgezocht, zodat je bij een lijnvlucht ziet welke maatschappij het is en tussen welke luchthavens hij vliegt, met het logo van de maatschappij erbij.

Die logo's staan op onze eigen server, niet hotlinked. Dat is een bewuste keuze: de pagina blijft dan werken als de leverancier ermee stopt of traag wordt, en er gaat geen verzoek van jouw browser naar een derde partij.

De kaart beweegt vloeiend — en waarom dat eerder niet lukte

Toestellen bewogen schokkerig: ze schoten vooruit en stonden dan stil tot de volgende meting. Er zat al een vloeiend-maak-laag in, en die was juist de oorzaak. Het gebruikte een versnellen-en-afremmen-curve, waardoor een marker binnen één cyclus naar twee keer de werkelijke snelheid ging en dan weer naar nul — om daarna abrupt op normale snelheid verder te gaan. Dát was het springen.

Nu wordt er gewoon lineair tussen twee metingen bewogen, over precies het gemeten interval tussen die updates in plaats van een vaste waarde die niet klopte met hoe vaak de pagina ververst. De koers draait op dezelfde manier mee, langs de korte kant van de cirkel. Netto: de marker loopt hooguit één procent voor of achter op de werkelijkheid, in plaats van honderd.

Drie dingen die stilletjes fout stonden

  • De hoogtekleur werd nooit bijgewerkt. Een toestel hield de kleur van het moment waarop het in beeld kwam — een dalende landingsvlucht bleef dus kleuren alsof hij op kruishoogte zat. De drempel werd namelijk vergeleken met de vórige meting in plaats van met wat er op het scherm staat, en dat vroeg een klimsnelheid die geen enkel toestel haalt.
  • NOCALL bleef staan. Zond een toestel zijn vluchtnummer pas later uit, dan werd dat niet meer in de tabel bijgewerkt.
  • De tooltip toonde de verkeerde koers. Je zag de hoek waar het icoontje naartoe aan het draaien was, niet de gemeten koers — een verschil van tientallen graden. Nu staat de meting er, en het gladgestreken getal blijft waar het hoort: in de animatie.

Verder kiest de tooltip zelf de kant waar hij past, zodat hij niet meer half buiten de kaart valt, en is er flink gesnoeid in het werk dat de pagina elke paar seconden deed. Staat de tab op de achtergrond, dan stopt het verversen helemaal — dat scheelt data en accu.

De hoeveelheid toestellen in de lucht is bovendien terug te zien als trendlijn over de afgelopen 24 uur in de bovenste tegels.

De blinde vlek boven de stad

De eigen ontvanger van Luchtverkeer doet het uitstekend op afstand: in een meting zag hij 231 toestellen binnen 50 kilometer, tegen 59 bij de grote internationale netwerken. Maar er zat één gat, en uitgerekend op de plek waar je het niet wilt hebben: recht boven Dordrecht.

Twee oorzaken kwamen daar samen. Een antenne die rondom goed hoort, hoort recht omhoog vrijwel niets — de zogeheten cone of silence. En een toestel dat laag én dichtbij vliegt komt zó hard binnen dat de ontvanger overstuurd raakt, net als een microfoon waar je te dicht op staat. Gemeten aan een politiehelikopter op 1,8 kilometer afstand en 925 voet hoogte: 28 posities in drie minuten, met gaten tot 29 seconden. Precies het verkeer waar je als omwonende nieuwsgierig naar bent — de traumahelikopter, de politieheli, een laag overkomend sportvliegtuigje — viel dus met horten en stoten op de kaart.

Daar is aan twee kanten wat aan gedaan.

Aan de ontvangkant

De eerste verdachte was de voorversterker vóór de ontvanger. Die helpt om zwakke signalen van ver weg op te pikken, maar zou bij een helikopter op anderhalve kilometer juist tegen je werken. Hij is eruit gehaald — en dat bleek maar zo'n 2 dB te schelen. Niet waar het probleem zat.

Dat zat in de automatische versterkingsregeling. Die kijkt naar de ruisvloer om te bepalen hoeveel versterking er nodig is, ziet daar niets alarmerends, en draait daarom vrolijk door naar het maximum van de tuner. Voor zwak verkeer op 300 kilometer is dat prima. Voor een politiehelikopter op 1,8 kilometer is het een megafoon tegen je oor.

De regeling is nu begrensd op 44,5 dB, met de stand aan die snel terugschakelt bij korte, harde pieken — precies het patroon van een toestel dat vlak overkomt. Wat dat deed:

eerdernu
versterking58,6 dB44,5 dB
sterkste ontvangen signaal−0,8 dBFS−9,7 dBFS
aandeel te sterke signalen2 – 6%0,0%
toestel binnen 10 km−1,7 dBFS (klippend)−12,5 dBFS

Nul procent overstuurde signalen, waar het er eerst een paar procent waren. In gewone woorden: het laag en dichtbij overkomende verkeer komt nu gewoon binnen in plaats van dat de ontvanger erop dichtklapt.

Daar zit wel een prijskaartje aan, en dat verzwijgen we niet: op deze instelling zit het verre verkeer een stuk dichter op de ruis. Er is nog wat speelruimte, dus het is goed mogelijk dat de versterking straks weer iets omhoog gaat en de voorversterker terugkomt — de regeling die de pieken opvangt is nu immers bewezen werkend. Dat is iets om te meten, niet om op gevoel te doen.

En een aanvulling van buitenaf

Blijft er toch een gat vallen, dan wordt dat opgevuld met posities uit de open community-netwerken adsb.fi en airplanes.live. Dat gebeurt alleen voor verkeer binnen 30 kilometer en onder de 10.000 voet, en alleen wanneer de eigen ontvanger een toestel echt even kwijt is. Op alle andere afstanden en hoogtes blijft de eigen ontvanger leidend, want daar is hij aantoonbaar beter — 231 toestellen tegen 59.

Waar een positie van buitenaf komt, staat dat er gewoon bij: die regels krijgen het label Extern. De bronnen staan bij de toelichting onder de kaart.

Het resultaat is een vloeiender spoor boven de stad, zonder dat de kaart plotseling vol taxiënd verkeer van Rotterdam The Hague staat — dat wordt er bewust uit gehouden.

Een foto van het toestel dat je aanwijst

Wijs een toestel aan en je ziet nu ook hoe het eruitziet — en waar het kan, in de kleuren van de maatschappij zelf. Kijk je naar een KLM-vlucht, dan staat er een KLM-toestel bij, geen willekeurige.

Dat "waar het kan" is de moeite waard, want er zaten twee valkuilen in. De eerste: bij het zoeken naar een foto van een bepaalde maatschappij eisten we dat de volledige naam in de bestandsnaam stond. Voor "KLM Royal Dutch Airlines" betekende dat letterlijk "KLM Royal Dutch" — en zo heet geen enkele foto. Ze heten "KLM Cityhopper Embraer ERJ-190". Gevolg: élke KLM-combinatie viel af, en KLM-vluchten kregen een algemene foto met het bijschrift "andere maatschappij" — terwijl daar toevallig ook een KLM op stond.

Alleen op het eerste woord matchen kon niet: dan wordt "China Airlines" een foto van China Eastern Airlines, een andere maatschappij met een andere livrei. De regel is nu dat een afkorting als KLM, TUI of TAP op zichzelf genoeg is, en dat er bij gewone namen twee woorden moeten kloppen.

De tweede valkuil zat in de zoekvolgorde. Zoeken op "KLM Royal Dutch Airlines Embraer ERJ-190" leverde op alle vijftien plekken foto's van een heel andere maatschappij op — één ijverige fotograaf had een complete serie op één luchthaven staan, en die vulde het hele venster. De KLM-foto's bestonden wel, ze haalden de lijst niet. Er wordt nu eerst binnen de bestandsnamen gezocht.

Van een handvol maatschappij-eigen foto's ging het zo naar 74 van de toestellen die op dat moment in de lucht hingen. Is er geen foto van díé maatschappij bij dát type, dan verschijnt een algemene foto van het type met het bijschrift erbij dat het om een ander toestel gaat — zodat je nooit denkt dat je naar deze vlucht kijkt. De foto's staan, net als de logo's, op onze eigen server.

Vliegtuigen die achteruit vlogen

Een enkele keer schoof een toestel over de kaart de verkeerde kant op. Dat zag er onmogelijk uit, en dat was het ook.

De oorzaak was een botsing tussen twee dingen die apart klopten. De kaart rekent tussen twee metingen door vooruit, zodat de beweging vloeiend blijft. Tegelijk wordt bijgehouden hoe oud de laatst ontvangen positie is, met een grens: is een melding ouder dan een seconde of twaalf, dan gaan we die niet verder extrapoleren — dan verzinnen we te veel.

Stopt een toestel met het uitzenden van posities, dan blijft de laatst bekende plek staan terwijl de leeftijd ervan oploopt. Het richtpunt kwam dan tegen die grens aan en stond stil, terwijl de vloeiende beweging gewoon doorliep. Bij de volgende ronde lag het richtpunt dus áchter de marker, en gleed die terug. In een meting bleken 81 van de ongeveer 200 toestellen op enig moment hun positie te herhalen, met uitschieters tot 45 seconden en tien kilometer verschil.

Nu wordt er alleen opnieuw gericht als er werkelijk een nieuwe meting binnen is. Over veertig seconden gemeten aan 124 toestellen: geen enkele beweegt nog achteruit.

Twee tellers die niet hetzelfde telden

De tegel "vliegtuigen op de kaart" en het telletje op de kaart zelf gaven structureel een paar toestellen verschil. Ze telden ook niet hetzelfde: de tegel telde toestellen met een actuele positie, het telletje telde alle symbolen op de kaart.

Dat verschil bestond uit toestellen die de ontvanger nog wel hoort, maar niet meer kan plaatsen. Hun symbool bleef tot een minuut lang in de gewone kleur op de laatst bekende plek staan, alsof het toestel daar nog vloog. Zodra de positie wegvalt wordt het symbool nu meteen grijs — zichtbaar een laatste bekende plek in plaats van een actuele — en tellen beide getallen hetzelfde.

Bronnen bij dit onderdeel: eigen ADS-B-ontvanger · aanvullende posities van adsb.fi en airplanes.live · toestelnamen uit ICAO Doc 8643 · registraties en types uit de OpenSky-toestellendatabase · routegegevens van adsbdb · typefoto's uit Wikimedia Commons en de bijbehorende Wikipedia-artikelen, lokaal opgeslagen · de silhouetten zijn afgeleid van de vormdefinities uit het opensourceproject tar1090 (GPL-2.0); kleur, contour en schaling zijn eigen werk · eigen metingen aan de kaart.

Droneweer: van "er vliegt iets laag" naar "kan dat mij raken?"

Droneweer vertaalt het weer naar één vraag: kun je vandaag vliegen? Het vliegverkeer erboven deed daar tot nu toe eigenlijk niet aan mee — en dat was een gemis, want dat is nou net het risico dat je zelf niet ziet aankomen.

Vliegverkeer telt nu echt mee

Er stond wel een waarschuwing, maar die was zo grof — er vliegt iets laag binnen 15 kilometer — dat hij niets zei en dus ook niet meetelde in het vliegcijfer.

Nu wordt per toestel de vraag beantwoord die er werkelijk toe doet. In de open categorie mag je tot 120 meter. Zit een toestel daar ruim boven, dan kan je drone er domweg niet bij en is de kans op een botsing nul — dat staat er dan ook zo bij, in plaats van een waarschuwing die nergens over gaat. Zit er iets ín jouw luchtlaag, of daalt het er snel naartoe, dan is dat zichtbaar én telt het mee in het cijfer en het eindoordeel.

De grens voor "laagvliegend" is onderweg twee keer bijgesteld en staat nu op 450 meter. Hij stond op 900, maar dat getal kwam van de overgangshoogte (3.000 voet) — een grens die over hoogtemeterinstellingen gaat, niet over wie er laag vliegt. 450 meter is wél de bovenkant van wat er echt laag opereert: de minimum vlieghoogte boven bebouwing is 300 meter en een circuit gaat tot 450. Daarvóór stond de grens op 350 meter, waardoor het circuit- en lesverkeer boven Dordrecht onzichtbaar bleef terwijl je het gewoon over ziet komen.

De tabel sorteert bovendien op risico en pas daarna op afstand. Een toestel in jouw luchtlaag wordt dus nooit meer verdrongen door een onschuldig toestel dat toevallig een kilometer dichterbij zit.

En je ziet nu wáár het vliegt

Bij elk toestel staat boven welke buurt het hangt, hoe ver en in welke richting dat is vanaf het centrum, welke kant het op vliegt en hoe snel. Voorheen stond er alleen een afstand — zonder richting en zonder plaatsnaam, en gemeten vanaf een punt dat er 2,5 kilometer naast lag. De tabel staat nu direct onder de kaart, zodat je een toestel uit de lijst ook meteen ziet vliegen, en hij ververst zichzelf elke vijf seconden in plaats van alleen bij het laden.

Bij een traumahelikopter staat erbij waar hij naartoe gaat: de bijbehorende P2000-inzet, of anders zijn standplaats. Die melding werkt zichzelf bij zonder de pagina te herladen en verschijnt ook in de nieuwsticker en rechtsboven in de header.

Dat laatste vroeg om opruimen, want die drie plekken keken alle drie anders. De ticker gebruikte een strak kadertje om de stad — een helikopter op elf kilometer viel er al buiten — de pagina keek naar vijftien kilometer, en geen van beide vertelde vanaf welk punt er gemeten werd of waar het toestel heen ging. Nu is er één definitie voor alle drie, met een straal van 25 kilometer.

Woordkeus en eenheden

Een paar dingen stonden er gewoon verkeerd, en dat is precies het soort fout dat je zelf niet ziet omdat het plausibel oogt:

  • Het zicht uit de METAR stond in de verkeerde eenheid: statute miles, maar gelabeld als meters. Nu in kilometers.
  • Een toestel op 325 meter werd omschreven als "op dronehoogte". Dat is het niet — dronehoogte is 120 meter, de hoogte waar je zélf mag komen. Het vliegt laag, meer niet.
  • De teller boven de tabel sprak zichzelf tegen: "binnen 15 km" boven een lijst van "binnen 10 km".
  • 's Avonds kon er "nog voor zonsopgang" staan.
  • Hoogtes werden niet overal op dezelfde manier voor luchtdruk gecorrigeerd.

Verder staat bij de windroos nu ook de windsnelheid in meters per seconde met de Beaufortwaarde en de vlagen erbij — daar stond alleen een richting.

Wat het níét is

Elke sectie heeft een zichtbare bronregel gekregen, en op twee plekken staat voortaan expliciet wat je niet moet aannemen. Bij de dronetabel: de windbestendigheid is opgave van de fabrikant, niet iets wat wij onafhankelijk gemeten hebben. En boven aan de pagina: het vliegcijfer is onze eigen weging van de omstandigheden, geen officieel advies en geen vervanging van je eigen beoordeling of van de geldende regels.

Bronnen bij dit onderdeel: eigen ADS-B-ontvanger voor het vliegverkeer · METAR-waarnemingen voor zicht en wolkenbasis · de buurtindeling van het CBS, via de PDOK Locatieserver · P2000 voor de inzet van de traumahelikopter · windbestendigheid volgens opgave van de dronefabrikanten.

Maritiem verkeer: elf tellers eruit, vier cijfers erin

Maritiem Verkeer volgt de scheepvaart op de Drechtsteden met een eigen AIS-antenne. De pagina bestond al, maar telde vooral dingen die je in de tabel eronder ook gewoon kon zien.

Vier cijfers die iets zeggen

Er stonden elf tellers bovenaan die alle elf hetzelfde zeiden: hoeveel schepen van soort X er nú zijn. Een kaal getal zegt niets — twaalf varende schepen is veel op zondagochtend en weinig op dinsdagmiddag. Die elf zijn vervangen door vier kaarten, en de tellingen per scheepstype staan nu in de filterknoppen zelf, waar je ze gebruikt.

  • Schepen varend, afgezet tegen wat normaal is voor dít uur van de week. Die referentie bouwt de pagina zelf op uit eigen metingen, elke vijf minuten één, en zwijgt zolang er te weinig metingen zijn in plaats van iets te beweren.
  • Passages per uur — doorstroom in plaats van momentopname. Een schip dat blijft liggen telt niet mee.
  • Gevaarlijke lading: het aantal tankers voor gevaarlijke stoffen. Die teller stond vrijwel altijd op nul, omdat alleen de zeevaartcodes werden herkend en niet de binnenvaartcodes — op deze rivieren is dat nogal een gat.
  • Schepen in beeld, waarmee je ziet hoe ver de eigen antenne op dit moment reikt en of de ontvangst nog leeft.

Wat er onder die cijfers veranderde is misschien nog belangrijker: er werd geteld op de navigatiestatus die een schip uitzendt, en die laat ruwweg de helft van de schippers na het afmeren gewoon op "onderweg" staan. Er wordt nu geteld op werkelijke snelheid over de grond. En schepen die al een half uur niets meer hadden uitgezonden telden nog mee als "ontvangen"; die grens ligt nu op tien minuten, gelijk aan de kaart.

Nieuw is ook een dagritme-grafiek: hoe druk het per uur van de dag normaal is, als mediaan met een band eromheen waarbinnen een gewone dag valt.

Waar vaart dat schip precies?

Bij elk schip staat nu de vaarweg en de kilometerBeneden-Merwede, km 108 — en welke brug of sluis het dichtstbij is. Bruggen en sluizen zijn een eigen kaartlaag geworden, en met "Vaarspoor" zie je waar een schip vandaan komt.

Bij de diepgang staat voortaan de actuele waterstand bij Dordrecht erbij. 3,5 meter diepgang betekent iets heel anders bij hoog dan bij laag water, en dat is precies het soort getal dat zonder context niets zegt. Het is dezelfde meetreeks als op waterstanden, zodat de twee pagina's nooit een ander getal tonen.

De kaart tekent nu wat er echt is

  • Schepen hebben een zwarte contour gekregen; op de luchtfoto en de waterkaart liepen de lichtere rompkleuren weg tegen de ondergrond. Ingezoomd staat de scheepsnaam ernaast.
  • De romp ligt op de ware voorliggende koers als het schip die uitzendt. Afgemeerde schepen wezen daarvoor allemaal naar het noorden, omdat ze geen koers over de grond melden.
  • Schepen die hun afmetingen nog niet hebben uitgezonden krijgen een stip in plaats van een romp. Ze werden getekend als een aangenomen schip van 50 bij 10 meter, wat op de kaart niet te onderscheiden was van een gemeten romp. Voor de ruim tweehonderd schepen die hun maten wél melden klopt de tekening tot op een halve meter.
  • Hulpdienstschepen zijn magenta; in het oranje waren ze nauwelijks van pleziervaart te onderscheiden.

Het venster bij een schip toont bovendien alles wat de transponder meestuurt maar nergens te zien was: diepgang, aankomsttijd, IMO-nummer, transponderklasse, afstand tot onze ontvanger, signaalsterkte en het aantal ontvangen berichten. Het opent aan de kant waar ruimte is, in plaats van de kaart te verschuiven.

Eerlijk over wat je ziet

Een AIS-pagina nodigt uit om alles voor waarheid aan te nemen, en dat is het niet. Dus staat er nu bij:

  • Naam, bestemming en afmetingen worden aan boord met de hand ingevoerd en zijn dus niet altijd actueel.
  • Wat je ziet bewegen is deels voorspeld. Tussen twee berichten door wordt de positie doorgerekend uit koers en snelheid.
  • Aankomsttijden die de schipper nooit heeft bijgewerkt worden weggelaten in plaats van als feit gepresenteerd. Van de 139 ingevulde aankomsttijden bleven er 83 over — de rest was een aankomst in maart, of 1 januari 00:00.
  • Het scheepstype zegt waar een schip voor gebouwd is, niet wat het op dit moment aan boord heeft. Dat geldt ook voor die teller met gevaarlijke lading.
  • Er wordt geen route van schepen bewaard. Het vaarspoor wordt in je eigen browser opgebouwd zolang je de pagina open hebt, en verdwijnt daarna.

Bronnen bij dit onderdeel: eigen AIS-ontvanger in Dordrecht-Oost · scheepstypen en statuscodes volgens ITU-R M.1371 (zeevaart) en de UNECE ERI-scheepstypelijst (binnenvaart) · vaarwegnaam en kilometer uit NWB-Vaarwegen via PDOK, met de kilometerraaien en de bruggen en sluizen uit Vaarweginformatie van Rijkswaterstaat · waterstand van Rijkswaterstaat · vaarwegmarkering van OpenSeaMap.

Fixi-meldingen: hoe lang staat dit al open?

Op Fixi meldingen staan de meldingen over de openbare ruimte in Dordrecht — kapotte straatverlichting, zwerfafval, een losliggende stoeptegel. Je kon zien wáár ze zaten, maar niet of er iets mee gebeurde.

Boven de kaart staan nu vier kerncijfers: hoeveel meldingen er openstaan, hoeveel er deze week bij zijn gekomen, welk aandeel is afgehandeld, en hoe lang de langst openstaande melding al loopt. Bij elke open melding staat in de lijst hoe lang hij er al staat, en je kunt filteren op alleen openstaand, of langer dan een week, een maand of drie maanden. Dat maakt van een kaart met spelden een pagina waarop je een vraag kunt stellen.

Verder:

  • "Bij mij in de buurt" toont alleen meldingen binnen 250 of 500 meter, 1 of 2 kilometer. Dat kan op je eigen locatie, maar ook op postcode — de browser leidt je locatie op een desktop af uit het netwerk en zit er dan al snel honderden meters naast, wat bij een straal van 250 meter niet werkt. Vul je er een huisnummer achter, dan is het punt exact. Die opzoeking gebruikt het landelijke adressenregister op onze eigen server, dus je postcode gaat niet naar een externe dienst.
  • Een hittekaart laat zien waar meldingen zich opstapelen, in plaats van waar er toevallig één ligt.
  • Afgewezen meldingen zijn zichtbaar en apart te filteren. Die verdwenen eerder gewoon, terwijl "hier is naar gekeken en er gebeurt niets" ook een antwoord is.
  • De lijst heeft een leesbare statuskolom in plaats van alleen een kleurtje.
  • Klik je een melding aan, dan pulseert hij dertig seconden op de kaart, zodat je hem niet kwijtraakt tussen de andere spelden.
  • De tabel volgt nu het ingestelde tijdvak. Hij toonde een jaar aan meldingen terwijl de kaart en de tellers ernaast een maand lieten zien — twee getallen op één scherm die elkaar tegenspraken.
  • De lijst laadt zichzelf bij tijdens het scrollen. Dat maakt de pagina 2,3 MB lichter, wat je op een mobiele verbinding merkt.

Tot slot: boven aan de pagina staat een werkende link om zelf een melding te doen. De link die er stond gaf een foutmelding.

Bronnen bij dit onderdeel: meldingen uit Fixi, het meldingssysteem van de gemeente Dordrecht.

Bekendmakingen: wat de overheid over jouw straat publiceert

Op Bekendmakingen staan de officiële publicaties over Dordrecht uit het Gemeenteblad en de Staatscourant: vergunningsaanvragen, verkeersbesluiten, bestemmingsplannen. Nuttig, maar tot nu toe moest je zelf maar raden wat je zag.

De belangrijkste toevoeging is dat de lijst nu de locatie toont — straat en wijk — en hoe lang geleden iets is gepubliceerd, en dat je daarop kunt zoeken. Voor een pagina die draait om de vraag "gebeurt er iets bij mij in de buurt?" was het ontbreken daarvan een gemis. Klik je een regel aan, dan springt de kaart erheen en pulseert de stip dertig seconden, hetzelfde patroon als bij de Fixi-meldingen.

Verder:

  • Kerncijfers boven de pagina: hoeveel publicaties er zijn, hoeveel er deze week bij kwamen, hoeveel er een adres hebben en welke wijk het drukst is.
  • Een nieuw blok onderaan legt uit wat je met een bekendmaking kunt: wat een aanvraag betekent, tot wanneer je kunt reageren en waar je bezwaar maakt.
  • Sorteren op datum ging mis over maandgrenzen heen. De lijst leek op volgorde te staan, maar zodra een nieuwe maand begon klopte de volgorde niet meer — en dat is precies het soort fout dat je pas ziet als je erop let.

Eén ding staat er nadrukkelijk bij, want het is geen detail: niet elke bekendmaking heeft een adres. Beleid, verordeningen en besluiten die voor de hele gemeente gelden noemen geen straat, en die kunnen dus ook niet op de kaart. Die staan in de lijst als "hele gemeente" in plaats van dat ze stilletjes verdwijnen. Boven aan de pagina staat daarom hoeveel van de publicaties er werkelijk op de kaart staan — de kaart is een deel van het verhaal, niet het geheel.

Bronnen bij dit onderdeel: officiële publicaties via zoek.officielebekendmakingen.nl · adressen uit de Basisregistratie Adressen en Gebouwen. Wil je zelf een attendering per e-mail, dan kan dat bij Berichten over uw buurt — die link staat ook op de pagina.

Nextdoor: de feed stond bijna een maand stil

Nextdoor heeft vier weken lang niets nieuws opgehaald, zonder dat daar ergens een foutmelding bij verscheen. Vervelender dan de storing zelf is dat hij zo lang onopgemerkt kon blijven.

De oorzaak zat aan de andere kant. Nextdoor beveiligt zijn opvragingen met een sleutel die bij elke update van hun eigen website verandert. Werkt die sleutel niet meer, dan krijgen we geen foutmelding maar een keurig "in orde" — met nul berichten erin. Geen rood lampje, geen regel in een logboek, niets. De feed bevroor op 4 juli en het viel pas op 1 augustus op.

En het viel op door iets wat er eigenlijk náást stond: er stond al weken "1 dag geleden" boven de berichten. Dat kwam doordat we die tijdsaanduiding overnamen zoals Nextdoor hem meestuurde — een momentopname, die dus voor altijd "4 uur geleden" bleef zeggen. Die tekst wordt nu zelf berekend uit het tijdstempel, waardoor een oud bericht er ook oud uitziet.

Drie dingen om te zorgen dat dit niet opnieuw ongemerkt gebeurt:

  • De site herstelt zichzelf. Werkt de sleutel niet meer, dan haalt hij de nieuwe zelf op door als een echte bezoeker in te loggen, en probeert het meteen opnieuw. Dat kost een seconde of twintig, en gebeurt alleen ná een fout — met een rem van maximaal één poging per zes uur, zodat een storing elders niet elk uur een browser opstart.
  • Een stille mislukking is nu een luide. Een niet-werkende sleutel, een mislukt herstel én "wel een antwoord maar nul berichten" gaan alle drie naar het interne foutenlogboek.
  • De pagina zegt het zelf. Is het nieuwste bericht ouder dan drie dagen, dan staat daar een waarschuwing. Dat had vier weken stilte meteen zichtbaar gemaakt.

Daarnaast bleek de sortering niet te doen wat je zou denken. Er werd gesorteerd op nabijheid in plaats van op tijd, waardoor een bericht van een uur oud buiten de eerste vijfentwintig viel en de pagina simpelweg nooit haalde. Nu komt de nieuwste eerst, met extra rondes voor de breedte — anders zie je alleen nog het meest recente en niet meer wat er in de buurt speelt.

Tot slot heeft de pagina dezelfde opmaak gekregen als de nieuwspagina's: dezelfde kaarten, dagscheidingen en kolomkiezer. Nextdoor-berichten hebben vaak geen onderwerp; dan wordt de eerste zin de kop en de rest de tekst, zodat elke kaart dezelfde opbouw houdt.

Bronnen bij dit onderdeel: berichten van Nextdoor voor de buurten rond Dordrecht.

Afval: welke bak moet er vanavond buiten?

De afvalpagina kende je ophaalkalender al, maar je moest hem zelf lezen. Nu staat er na het opzoeken van je adres meteen bovenaan welke bak wanneer buiten moet, met een aftelling erbij — over 3 dagen — en een waarschuwing als er een feestdag tussen zit, want dan schuift de ophaaldag vaak.

Twee dingen die het adres opzoeken zelf betreffen, en die eerder gewoon fout gingen:

  • Huisnummers met een letter of toevoeging werkten niet. Woon je op 12A, dan kwam je er niet in.
  • Staan er meerdere adressen op dezelfde postcode en huisnummer — 1A en 1B bijvoorbeeld — dan pakte de site zonder het te zeggen de eerste. Nu krijg je de keuze. Bij een ophaalkalender is dat geen detail: de buren kunnen een andere dag hebben.

De uitleg over afvalsoorten stond in 23 opengeklapte blokken, wat neerkwam op eindeloos scrollen langs informatie die je niet zocht. Dat is nu een dichtgeklapte lijst van vijftien afvalsoorten, waarbij de Dordtse regels bij de landelijke uitleg staan in plaats van eronder — want de vraag is niet "wat is PMD" maar "mag dít erin, hier".

De cijfers zetten Dordrecht nu af tegen het Nederlands gemiddelde én tegen de landelijke doelstelling van 100 kilo restafval per inwoner. Een kaal getal zegt niets; het gaat om de vraag of we het goed doen.

Tot slot: is de inzamelaar even onbereikbaar, dan blijft de pagina werken en zegt hij dat er iets mis is, in plaats van te blijven hangen op een laadmelding.

Bronnen bij dit onderdeel: ophaalkalender en afvalstromen van HVC · restafvalcijfers en de landelijke vergelijking van het CBS · de doelstelling van 100 kg restafval per inwoner uit het landelijke afvalbeleid.

Antennes: wat er op het dak staat, en wat we daarvan zeker weten

De antennepagina toont de zendmasten in de regio. Bovenaan staan nu kerncijfers: hoeveel masten er zijn, hoeveel mobiele locaties met welk aandeel 5G, hoeveel masten door meerdere aanbieders worden gedeeld, en de verdeling tussen KPN, Vodafone en Odido. Klik je een antenne in de lijst aan, dan pulseert hij dertig seconden op de kaart — hetzelfde patroon als inmiddels op de andere kaartpagina's.

Ook zijn de koppen in gewoon Nederlands gezet. "Antennes in cijfers" leest nu eenmaal prettiger dan "Key Performance Indicators".

Het meeste werk zat echter in de achtergrondteksten, die zijn nagelopen bij het Antennebureau zelf:

  • De vergunningsregels kloppen nu: de vijf gevallen waarin een omgevingsvergunning nodig is, met de uitzonderingen erbij. Dat stond er eerder te stellig en te globaal.
  • Er staat nu bij dat C2000-masten bewust niet in het register staan. Dat is het netwerk van de hulpdiensten, en het ontbreken daarvan is geen gat in onze data maar een keuze van de overheid — als je dat niet weet, tel je verkeerd.
  • Cijfers die niet na te trekken waren zijn eruit, waaronder een veilingopbrengst en een "100% zeker"-bewering.
  • Elke uitlegsectie sluit af met een bron, met daarin het onderscheid tussen wat er in het register staat en wat wij eruit hebben afgeleid. Dat verschil is op deze pagina wezenlijk: het aantal masten is een feit, het aandeel gedeelde masten is onze telling.

Bij zendamateurs legt de pagina nu uit waaróm er geen technische details staan, in plaats van een kaal "geen gegevens" te tonen. Dat laatste suggereert een storing; het is gewoon zo dat die vergunningen anders geregistreerd worden.

Bronnen bij dit onderdeel: het Antenneregister · aanvullende dekkingsdata van OpenCelliD · regelgeving en uitleg van het Antennebureau.

Energiedashboard: van drie grafieken naar een compleet beeld

Het Energie Dashboard heeft de grootste uitbreiding van deze ronde gekregen.

Alle Nederlandse centrales op de kaart

Nieuw is een kaart met alle 137 Nederlandse elektriciteitscentrales vanaf 35 megawatt — gas, kolen, biomassa, kernenergie, waterkracht en de windparken op zee — met een doorzoekbare tabel eronder. De legenda werkt als filter: klik op een brandstof en je houdt alleen die centrales over.

Bij de productiecijfers is het versheidsverschil eerlijk benoemd, want dat is groot:

bronactualiteit
8 windparken op zeeNED.nlper uur, vrijwel realtime
overige centralesENTSO-Elaatst bekende dag (~1 dag vertraging)

Bij die tweede groep staat dus nadrukkelijk niet "nu", maar de laatst gepubliceerde dag. Dat verzwijgen zou een preciezer beeld suggereren dan er is.

Stroomprijs: een jaar terug in plaats van een week

De grafiek van de beursprijs ging tot nu toe acht dagen terug, en zelfs dat alleen als er die dagen toevallig iemand op de pagina had gekeken — werd er een dag niet gekeken, dan ontbrak die dag voorgoed. Dat is omgedraaid: de daggemiddelden worden nu automatisch bijgehouden en de grafiek loopt een jaar terug, met het jaargemiddelde, de duurste en de goedkoopste dag erbij.

Cijfers die niet klopten

Bij het nalopen kwamen er een paar dingen uit die recht getrokken zijn:

  • De KPI's voor wind en zon stonden in megawatt terwijl er gigawatt bedoeld werd. 4,7 gigawatt zonproductie las je daardoor als "5 MW" — een factor duizend ernaast.
  • De energiemix telt nu één en hetzelfde uur op. Op het moment dat het uur wisselde konden bronnen uit verschillende uren door elkaar lopen, waardoor de percentages niet meer optelden.
  • Alle grafieken staan vast op Nederlandse tijd. Ze werden voorheen door de browser in UTC getekend, wat in de zomer twee uur scheelt.
  • De CO2-vergelijking met de buurlanden is vervangen door controleerbare cijfers van Ember, met bronvermelding.
  • De achtergrondteksten bij Over de energiebronnen zijn nagelopen: het opgestelde zonvermogen, de doelen voor wind op zee en de kernenergieplannen waren achterhaald. Overal staat nu een klikbare bron bij.
  • De productiegrafiek laadt in één verzoek in plaats van tien, en als de gegevens niet ververst zijn zegt de pagina dat er nu bij in plaats van een oud getal te tonen alsof het actueel is.

De stroomcijfers elders op de site

Wat Nederland op dit moment opwekt en welk deel daarvan duurzaam is, staat nu ook in de nieuwsticker onderaan en als chip in de aftelbalk onder de header. Alle plekken rekenen met dezelfde bron, zodat ze niet uit elkaar kunnen gaan lopen — dat is precies de fout die je op zo'n dashboard niet wilt maken.

Kleinere dingen

  • Eén stijl voor toelichtingen. Vrijwel elke datapagina had zijn eigen opmaak voor het regeltje onder een grafiek dat uitlegt wat je ziet — een stuk of twintig varianten, allemaal net iets anders van grootte en kleur, en de meeste vielen weg in de donkere modus. Dat is nu één component, overal hetzelfde en overal leesbaar.
  • De aftelbalk uit deel 1 heeft er een chip bij gekregen die geen aftelling toont maar een stand van nu: de actuele stroomopwek. Hij verdwijnt vanzelf zodra de cijfers niet meer vers genoeg zijn.
  • De datum- en weerregel in de header is opgeschoond; de stroomcijfers die daar kort stonden zijn verhuisd naar de aftelbalk, waar meer ruimte is.

En er komt een deel 3

Net als vorige keer krijgen we het niet in één bericht. Er wordt nog volop doorgewerkt, en wat nu al klaar is maar hier niet meer bij paste — plus alles wat er de komende dagen bij komt — verschijnt in deel 3.

Een paar dingen staan bovendien bewust nog op de lijst. De uitgebreide achtergrondteksten over luchtverontreinigende stoffen, die in deel 1 al werden doorgeschoven, verdienen nog een controleslag voordat we er iets over beweren. En de externe aanvulling op het vliegverkeer draait nog op instellingen van vóór de ingreep aan de ontvanger; of die aanvulling nu nog nodig is, moet eerst opnieuw gemeten worden. Liever een ronde later dan een bewering te vroeg.

Vragen, of iets opgemerkt dat niet klopt? Laat het weten — een deel van wat in dit bericht staat, is gevonden doordat iemand ergens over struikelde.

Delen

Meer nieuws

Laatst gewijzigd