Google Premier Partner gespecialiseerd in Location-Based Services.

BigQuery-gegevens eenvoudig visualiseren op Google Maps

Van tijd tot tijd komen we online gegevens tegen die we willen visualiseren en combineren met bestaande gegevens die al in bigquery staan. Deze post laat zien hoe je vanaf nul kunt beginnen: gegevens online vinden, ze in bigquery brengen en de resultaten visualiseren in GeoViz.

We zullen GCP gebruiken om deze taak te volbrengen. We gaan er dus van uit dat je al toegang hebt tot Google Cloud console met een geldig factureringsaccount (Zo niet, neem dan contact met ons op om je verder te helpen). Klik hier voor de eerste keer instellen van uw Google Cloud account. Voltooi daarna de volgende stappen:

-Vind en download de gegevens waarin u geïnteresseerd bent
-Stel een notebook in GCP in
-Stel de machtigingen in IAM in
-De resultaten weergeven in GeoViz

Download de data 

De eerste stap is het vinden van een interessante gegevensbron die we willen visualiseren. Voor deze tutorial hebben we de bushaltes in Vlaanderen (België) gebruikt. De dataset: ‘Haltes Vlaamse Vervoersmaatschappij De Lijn’ is hier te vinden. In dit geval komen de gegevens in een Shapefile, een formaat dat niet wordt ondersteund door BigQuery. Daarom moesten we de gegevens voorbereiden in een van de volgende formaten: Avro, CSV, JSON, GeoJSON ORC, of Parquet-formaat.

Het opzetten van een notebook in GCP

De volgende stap is het opzetten van een notebook om de gegevens te transformeren en te onderzoeken in het juiste formaat om ze in Google BigQuery te kunnen laden. Een notebook is een interactieve code-omgeving waar we gemakkelijk wat snelle code kunnen schrijven zonder al te veel gedoe. Het is gebaseerd op jupyter notebooks.

Om een notebook te maken ga naar de cloud console open het Vertex AI menu en selecteer de workbench.

blog1 vertexAI 230x300 1

Ga in het workbench scherm naar door de gebruiker beheerde notitieboeken en maak een nieuw notitieboek aan.

Blog1 figuur2 e1651226907970 1024x166 1

Voor opties kies je een python 3 notebook. Voor de overige instellingen kunt u de standaardwaarden aanhouden. Desgewenst kan je de zone of het machinetype wijzigen in de geavanceerde opties.

Zodra de notebook is aangemaakt, open je de jupyter notebook. In het welkomstscherm van de launcher kunt u een nieuwe python conda notebook aanmaken door op het vakje python [conda env:root] te klikken.

blog2 launcher 300x211 1

Nu gaan we geopandas installeren, een krachtige tool voor gegevensmanipulatie gebaseerd op de populaire pandas-tool. Deze tool kan worden gebruikt om onze gegevens te transformeren naar een formaat dat compatibel is met BigQuery. Het laat ook toe om een eerste data discovery te doen op onze gegevens. Bijvoorbeeld hoe de gegevens eruit zien of om duplicaten of nulwaarden te verwijderen.

Zodra je het conda python notebook opent, moet je een console voor je notebook openen door op de bestandsmenuknop te klikken. Vervolgens kun je de knop ‘Nieuwe console voor notebook’ selecteren.

blog2 phytonwindow

In de console installeer je het geopandas-pakket, door ‘conda install geopandas’ in te typen.

blog2 geopandas

Als volgende stap moeten we de gegevens uploaden die we willen transformeren en visualiseren in het notitieboek. Je kunt de upload-knop in het menu gebruiken om alle relevante bestanden te uploaden. Het eindresultaat zou er zo uit moeten zien:

pandafiles

Zodra onze bestanden zijn geüpload, kunnen we beginnen met het schrijven van de code. U kunt beginnen met coderen in een nieuwe cel in het notitieboek.

Eerst importeren we het geopandas pakket, dan uploaden we onze Shapefile in een pandas dataframe.

codesnap1 1 768x63 1

Om onze gegevens te ontdekken kunnen we wat basisinformatie over onze gegevens afdrukken. In deze stap kunnen we aanvullende stappen doen om onze gegevens te manipuleren. We kunnen waarden verwijderen of de gegevens verrijken. Hier zullen we alleen basisinformatie afdrukken. Gebruik de volgende code om wat basisinformatie af te drukken:

codesnap2 768x57 1

Dit toont basisinformatie over de kolommen van ons dataframe en hun namen. Het sterke punt van geopandas is dat het een geometriekolom heeft. Deze kolom koppelt een locatie aan de informatie.

blog2 figuurpanda2

Als volgende stap zullen we valideren of onze gegevens in het juiste coördinatensysteem staan. Er zijn verschillende coördinaten die een locatie kan hebben, afhankelijk van het systeem. De gegevens van de bushaltes staan in een Belgisch specifiek coördinatenstelsel. Het systeem heet het Lambert 72 coördinatensysteem (of een andere naam is EPSG:31370). Google gebruikt echter een ander coördinatensysteem dat WGS 84 heet (of een andere naam is EPSG:4326). Omdat er zoveel coördinatensystemen bestaan, wordt een standaard naamgevingsconventie gebruikt in het formaat van EPSG. Als we onze gegevens in het belgische coördinatensysteem rechtstreeks in Google zouden laden, zou het kunnen dat onze bushaltes in de stille oceaan verschijnen. We moeten dus de belgische coördinaten converteren naar de Google coördinaten. Geopandas maakt een eenvoudige conversie van coördinatensystemen mogelijk en we kunnen de volgende code gebruiken:

codesnap3 768x56 1


Tenslotte kunnen we onze gegevens in Google BigQuery laden, door 3 parameters in te stellen . De basislocatie, datasetnaam en tabelnaam. Dat is alles wat we nodig hebben voor het opzetten van een eenvoudige BigQuery tabel met behulp van python. We nemen de EU als basislocatie. Voor de datasetnaam nemen we ‘demo_geo’ en voor de tabelnaam ‘bus_stops’.

codesnap4 768x436 1

Ga naar BigQuery in de Google Cloud console. Als alles goed is gegaan, zou je de dataset en tabel moeten zien die je in je huidige project hebt gemaakt. Als je klaar bent met het notebook vergeet dan niet het notebook te stoppen om onnodige kosten te voorkomen. Doe dit in het vertex AI menu in de Google Cloud console, waar dit notebook is aangemaakt

OPMERKING: als er iets mis is gegaan, controleer dan of de machtigingen aan u zijn toegewezen in het hoofdstuk Ingestelde machtiging IAM.

De machtigingen IAM instellen (Optioneel)

Normaal gesproken, als je je standaard service account hebt gebruikt bij het aanmaken van de notebook, zou je geen machtigingsproblemen moeten hebben gehad. Als dat wel het geval is, ga dan naar IAM in de Google Cloud console en werk de machtigingen van de gebruikte notebookaccounts bij. Het zou voldoende toegang moeten hebben tot BigQuery om de tabel aan te maken waarin we onze gegevens zullen plaatsen. U kunt dit aanpassen door de machtigingen te bewerken en de juiste rol aan te passen of toe te voegen.

blog2 permitions

De resultaten weergeven

Tot slot gaan we onze gegevens visualiseren in BigQuery geoviz. Met deze tool van Google kunnen we snel gegevens weergeven in de vertrouwde Google Maps omgeving. Wil je meer weten over geo viz bekijk dan deze starter tutorial. Het maakt het gemakkelijk om inzichten op een visuele manier te tonen en te delen met anderen. GeoViz heeft 4 eenvoudige stappen: de query, het selecteren van de geodata, het stylen van de visuals op onze kaart en het delen ervan.

blog2 geoviz 256x300 1

De eerste stap is het inlezen van de gegevens in GeoViz en de velden die je nodig hebt. Je zult lezen uit de .. die we eerder in ons notitieboek hebben gedefinieerd bij het schrijven naar bigquery.

codesnap5 1 768x131 1

Omdat we Geopandas gebruiken is het veld “geometrie” al van het type GEOGRAFIE. Zo niet kunt u altijd van tekst of coördinaten converteren naar een GEOGRAFIE-type. Voor meer informatie over het laden van geografietypes kunt u deze documenten raadplegen.

Als u een query hebt uitgevoerd, is het volgende scherm de gegevensstap, waar u het veld “geometrie” als kolom moet selecteren. Dan is het tijd om de kaart tot leven te brengen. In deze demo veranderen we de kleur van de bushalte op basis van hun postcode. We splitsen de CODEGEM op in intervallen en veranderen de kleur op basis van hun waarde.

blog2 styling

Vergeet niet te klikken op de knop Stijl toepassen om de volgende mooi uitziende afbeelding te krijgen:

bus result

Speel zeker ook met de andere opties om de visuals aan te passen aan de boodschap die u wilt brengen.

Sluit je aan bij de 950+ professionals die onze inzichten volgen

Sluit je aan bij de 950+ professionals die onze inzichten volgen

We delen onze insights graag met jou. Abonneer je dus nu en ontvang elke maand een nieuwsbrief boordevol tips, tricks en inzichten!