Geo algoritme

Het geo vraagstuk

We hebben een algoritme ontwikkeld dat een probleem met de volgende kenmerken oplost:

  • We kunnen op basis van geografische coordinaten gegevens opvragen
  • Het is van tevoren, of na opvragen, niet bekend of de gegevens voor een bepaald gebied compleet zijn
  • Het is bekend dat als het gebied kleiner wordt gemaakt, de gegevens nauwkeuriger en completer zijn
  • We kunnen niet een onbeperkt aantal kleine gebieden selecteren om aan de gegevens te komen
  • Het gaat om grote aantallen gegevens



Geo algoritme met heatmaps

Hiervoor hebben we een algoritme ontwikkeld dat heatmaps aanmaakt, en steeds verder verfijnt in kleinere gebieden. Het algoritme beoordeelt aan de hand van de verfijningen of de hoeveelheid gegevens compleet genoeg zijn, en of verder verfijnen zinvol is.

Zo ontstaat een lijst met bruikbare heatmaps voor een geografische regio, variërend in grootte.


Workflow and state machines

Omdat het om grote hoeveelheden gegevens gaat, die bovendien niet in 1 keer op te vragen zijn, kan dit niet in 1 keer uitgevoerd worden. Het geheugen van een server is gewoonweg niet toereikend, en het proces duurt te lang zodat in geval van bijvoorbeeld een netwerk fout het hele proces opnieuw opgestart zou moeten worden.

Daarom hebben we het proces opgedeeld in vele kleinere taken, die asynchroon uitgevoerd kunnen worden. Elke kleinere taak kan zelf ook weer taken aanmaken. Dit zorgt ervoor dat de data verzameling fault tolerant wordt, veel minder geheugen verbruikt en deels herstartbaar is.

Om dit beheersbaar te maken, hebben we gebruik gemaakt van 'workflow' en 'state machine' design patterns. Deze houden de staat van het hele proces in de gaten, en bepalen welke transities gemaakt kunnen worden in het systeem.



Datum: November, 2019

AWS Certified Devops Engineer

Ik volg momenteel de AWS Certified DevOps Engineer-cursus om mijn kennis te vergroten op het gebied van het automatiseren van infrastructuur en CI/DI.

AWS migratie

Update voor het lopende AWS migratie project.

Load en Stress tests

Cloud infrastructuur testen met K6

Gobot RPI simulator

GPIO pin simulator voor RPI geschreven in Golang

Reactions Craft CMS plugin

Nieuwe Craft CMS plugin voor Facebook stijl reacties

Liveblog Beurs

Gedaan met stoffige beursartikelen. Hier een Facebook-stijl blog feed om het beursnieuws wat kleurrijker en actueler te maken.