We zijn tegenwoordig behoorlijk verwend. Als we naar vreemde oorden gaan, kunnen we al van tevoren met Google Maps de reis plannen. Via Streetview kun je de reis eigenlijk ook al maken en rondlopen met Google Streetview.

Auteur:  Arjan ten Hoopen    |    Gepubliceerd in Linux Magazine 2021 – 3

Ik moet toegeven: mijn vakantievoorpret is ook vaak met Maps en Streetview. Tegelijkertijd vraag ik me af of ik zelf ook aan dergelijke satelliet foto’s kan komen. Of dat dit alleen weggelegd is voor multinationals met diepe zakken. En wat ik dan bij Maps nog het vervelendste vind is dat menige satelliet foto jaren oud is. Ik weet het; ik klink als een verwende kleuter.

Landsat en Felicette

Dus zou er niet een satelliet zijn die haar foto’s als open source beschikbaar zou stellen? En als die er al is, hoe krijg ik die foto’s dan op mijn eigen computer? Goed nieuws, want een dergelijke satelliet is er! De beelden van de NASA/USGS Landsat satelliet zijn namelijk open source. De Landsat maakt dag en nacht foto’s van de aarde. De foto’s van de aarde bestrijken ongeveer een gebied van 130 kilometer in het vierkant. De hele aarde staat dus op de foto, en nu het leuke: het zijn allemaal recente foto’s.

Dan blijft de vraag, hoe krijg ik deze foto’s op mijn computer? Het blijkt dat op GitHub al iemand een project heeft gestart om ons daarbij te ondersteunen. Het gaat hier om het Felicette project. De ontwikkelaars hebben ook goed nagedacht voordat ze aan het programmeren sloegen. De satellietafbeeldingen zullen namelijk vaak wolken laten zien, en met een beetje pech: alleen maar wolken. Dus ze hebben er voor gezorgd dat Felicette ernaar streeft om afbeeldingen te gebruiken met maximaal 10% wolkbedekking. Dit houdt wel in dat afbeeldingen mogelijk net wat ouder zijn dat waar je op hoopte. Naar mijn inziens een goede afweging.

Je kunt Felicette op je eigen systeem installeren, op de Project Website (zie Links) staat uitgelegd hoe je dat moet doen voor Debian. Gebruik je een andere distributie, dan sta je even op eigen benen, en moet je uitzoeken hoe je het op jouw distributie aan de praat krijgt. Maar naast de Debian instructies hebben ze ook voor een docker image gezorgd. In dit artikel ga ik gebruikmaken van dit docker image. Verreweg de makkelijkste methode. Voor een ieder die niet zo thuis is in Docker, lees het kader over Docker om Docker op jouw systeem aan de praat te krijgen. Fluitje van een cent.

Bestanden Overzicht

Het docker image zal gemount worden op je huidige map. Mocht je een beetje uit je dak gaan met Felicette, dus veel images downloaden, dan vraagt dit al snel veel schijfruimte. Zorg er dus voor dat je huidige map op een schijf staat met voldoende ruimte.

Nu nog even het slechte nieuws voor sommigen; er is geen GUI. Felicette is een commando regel tool, maar laat dat je niet afschrikken. Met het volgende commando krijg je de help informatie te zien van Felicette:

docker run -it -v "$PWD"/felicette-data:/root/felicette-data milhouse1337/felicette felicette --help

Nog even over het mounten. Wil je niet dat de output van Felicette in de [huidige map]/felicette-data, maar in een andere map weg geschreven moet worden, verander dan “$PWD”/felicette-data in het volle pad naar de map die jij wil gebruiken.

Opties

Voordat we Felicette gaan aanroepen om satelliet beelden te downloaden, kijken we eerst nog even naar de opties van Felicette. Met de -c optie kun je de longitude en lattitude waarden opgeven van de plek op aarde die zichtbaar moet zijn op de satellietafbeelding. Bedenk dus dat de coördinaten die je opgeeft dus ook helemaal in de rechts onderin van de afbeelding kunnen liggen. Wel je de coördinaten hebben van je eigen woonplaats dan verkrijg je die het snelst en eenvoudigst met Google Maps. Dubbel klik op de plaats waar je de coördinaten van wilt hebben en kijk vervolgens in de adres balk. Hierin staan de coördinaten. Echter ze staan hier in de verkeerde volgorde, je moet ze voor gebruik met Felicette omdraaien. Stel de plek die je gekozen hebt heeft in Maps het adres https://www.google.com/maps/@52.1309504,6.6107444,15z dan is de longitude 6.610744 en de lattitude 52.1309504.

In plaats van coördinaten kun je ook de plaatsnaam opgeven, dit doe je met de -l optie. In bovenstaand voorbeeld was dit Neede.

De -pan optie is een aanrader, deze verhoogt het eye candy niveau van de afbeeldingen.

Normaal gesproken krijg je er automatisch een lage resolutie afbeelding bij. Wil je die niet, gebruik dan –no-preview.

Tip: gebruik de -v optie. Deze geeft de vegetatie aan, het gebruik van het land. Deze afbeelding helpt je bij het zoeken waar Neede, of de plaats die je hebt opgegeven, ligt op de afbeelding. De niet vegetatie afbeeldingen hebben vaak wolken, of zijn (erg) donker. De vegetatie afbeelding is altijd “helder”.

Aan de slag

Tijd om wat te gaan experimenteren. Een voorbeeld om je op weg te helpen:

docker run -it -v "$PWD"/felicette-data:/root/felicette-data milhouse1337/felicette felicette --no-preview -pan -v -l Neede

Als dit de eerste keer is dat je Felicette aanroept, zal het docker image gedownload worden. Na het downloaden wordt Felicette aangeroepen. Het downloaden is eenmalig.

Nu worden alle afbeeldingen gedownload. Dit kan even duren. Merk op dat de gedownloade afbeeldingen worden opgeslagen met root als eigenaar en groep eigenaar. Nadat het commando uitgevoerd is, krijg je een foutmelding over xdg-open (ook al is deze op je systeem voorhanden). Laten we zeggen dat de ontwikkelaars daar nog even wat tijd in moeten steken. Open de vegetatie afbeelding die je met bovenstaand commando hebt gedownload. Je kunt er flink op inzoomen en je ziet de verdeling van het land duidelijk. Zoom nu helemaal uit en kijk naar de onderkant van de afbeelding. Daar zie je twee bruine vlekken. Waar en wat zou dat zijn? Hint .. iets met kolen? Schijnen ze in Duitsland nog flink mee bezig te zijn. We hebben nu met Felicette toegang gekregen tot een schat aan fotografisch materiaal. Veel plezier met het ontdekken.

Commando Uitvoer

Docker

In een paar stappen heb je je systeem uitgerust met docker zodat je docker images kunt gebruiken. Volg het stappen plan:

  1. Installeer docker via je package manager
  2. Controleer of bij de installatie een groep docker gemaakt is. Is dat niet het geval? Maak deze dan.
  3. Voeg jezelf toe aan de groep docker
  4. Zorg dat de docker service gestart wordt, ook na rebooten:
sudo systemctl start docker
sudo systemctl enable docker
  1. Log-uit en login, het systeem weet dan ook dat je in de groep docker zit.
  2. Test nu of het werkt via het commando docker run hello-world
    De output is wat je verwacht (Hello from Docker!) met uitleg wat er precies gebeurd is.
  3. Haal het docker image voor felicette op met docker pull milhouse1337/felicette
  4. Klaar voor het echte werk!

 

LINKS

Landsat website
https://www.usgs.gov/core-science-systems/nli/landsat

Project Website
https://github.com/plant99/felicette