BK3ON3

From TOI-Pedia

QGIS

Informatie halen uit QGIS

Qgis.png

Het GML-bestand is te openen in QGIS door het bestand vanuit file-explorer het QGIS venster in te slepen. Hierna verschijnt het volgende scherm:

Voorbereiding in QGIS

Het geopende bestand in QGIS moet worden bijgesneden tot een werkzame onderlegger voor de gebiedsanalyse. Hiervoor maken we gebruik van de plug-in: “Lat Lon Tools”, deze is te installeren door via de menubalk te navigeren naar:

Plugins --> Plug-ins beheren en installeren --> zoeken op: “zoom” --> Lat Lon Tools, klik op: “installeer plug-in”.

Na het laden van de plug-in, zal er onder in de werkbalk aan de linkerkant van het scherm, de plug-in verschijnen. Hier zijn de coordinaten in te voeren waarheen gezoomd moet worden.

Voer hier de volgende coordinaten in: 51.910310, 4.467395.

Vervolgens dient de schaal te worden ingesteld op 1:20.000.

Na het installeren van de plug-in en het invullen van de juiste gegevens, is het plangebied duidelijk op het scherm te zien.


Note: het constant herberekenen van de kaart kan worden in-/uitgeschakeld door links-onder in het venster de optie “(Her)teken” aan of uit te vinken. Dit bespaart erg veel tijd tijdens het orienteren. Wel is het hertekenen van de kaart nodig wanneer er precisie gevraagd wordt.

Aangeven plangebied in QGIS

Qgis1.png

Wanneer de voorbereiding in QGIS is gedaan, is het volgende scherm zichtbaar:


Het gebied moet worden bepaald door een clipping laag toe te voegen in QGIS, dit gebeurd door via de menubalk te navigeren naar: Kaartlagen --> Laag maken --> Nieuwe Shapefile-laag…

Qgis2.png

Selecteer in het pop-up venster als type “Polygoon”, selecteer onder de bestandscodering het tekentje aan de rechterkant en stel het coördinaten-systeem Amersfoort / RD New (EPSG:28992) in. Geef vervolgens de laag een naam en klik op OK. Hierna zal de laag te zien zijn in het Paneel Lagen. In deze laag kunnen we een polygoon tekenen welke als clipping-mask wordt gebruikt om een deel van het onderliggende GML-bestand te gebruiken.

Selecteer de nieuwe polygoon-laag en zet bewerken aan, selecteer vervolgens de optie om een object toe te voegen.

Qgis3.png

Qgis4.png

Teken een vlak over het gebied welk gebruikt dient te worden met behulp van punten in QGIS, punten zijn te plaatsen door te klikken met LMB, als je klaar bent met het definiëren kan de vorm gemaakt worden door op RMB te klikken. Wanneer de optie “(Her)tekenen” is uitgeschakeld, is de getekende geometrie nog niet zichtbaar. De herberekening zal moeten worden ingeschakeld om de polygoon weer te geven.


Let op de grootte van het gebied welk aangegeven wordt. Een groter gebied betekend meer tijd nodig om te berekenen, het wordt snel te zwaar voor menig PC om de informatie te verwerken.

Met behulp van punten kan er een clipping laag gedefiniëerd worden in QGIS. Geef de vorm een iD (deze wordt verder niet gebruikt, een numeriek symbool is afdoende).


Qgis5.png





Wanneer de polygoon is voltooid, dient er een nieuwe laag aangemaakt te worden om enkel de uitsnede weer te geven. Dit gebeurt door via de menubalk te navigeren naar:

Vector --> Geoprocessing gereedschap --> “Clippen”. Voer in het pop-up scherm de “3DGebouwhoogteNL”laag in als Invoerlaag, en de getekende polygoon-laag als ‘Clip’ laag, geef een naam aan de geclipte laag om deze te definiëren, wanneer er op ok wordt geklikt, wordt de geclipte laag berekend. Wanneer deze niet wordt getoond, kan het zijn dat de optie om de kaart te (Her)tekenene uitstaat, deze moet ingeschakeld zijn om de uitsnede van de kaart te tonen.






Qgis6.png

Uiteindelijk wordt in het Paneel Lagen de geclipte laag zichtbaar, deze bevat het uitgesneden gedeelte van de kaart. De uitgesneden kaart kan geëxporteerd worden als GML-bestand om in het vervolg mee verder te werken door met RMB op de geclipte laag te klikken en de optie “Opslaan als…” te kiezen. Kies in het pop-up scherm voor het formaat GML, onder de knop bladeren kan de locatie voor opslag gekozen worden. LET OP het juiste coördinaten referentie systeem (Amersfoort / RD New (EPSG:28992))!

Aangeven parameters in QGIS

Hoogteinformatie

QgisB1.png

Met behulp van QGIS kunnen we gegevens in een GML-bestand gebruiken voor analyse, hiervoor is een GML-bestand van de planomgeving nodig, tezamen met het programma QGIS. Wanneer het GML-bestand in QGIS geladen is, kunnen we de inbegrepen informatie weergeven. In dit voorbeeld gebruiken we een kleurweergave voor de hoogte van de gebouwen. We werken in dit voorbeeld door met het gegenereerde GML-bestand uit de tutorial: “Informatie halen uit QGIS”.

De weer te geven eigenschappen van de shapes welke in het GML-bestand zitten inbegrepen, kunnen we weergeven door de eigenschappen van de laag weer te geven: Klik met RMB op de laag en navigeer naar eigenschappen, selecteer in het pop-up venster aan de rechterkant “Stijl” en kies boven in de rechterkant van het pop-up scherm voor “gradueel” in het drop- down menu.



QgisBb2.png

Selecteer in het menu onder de invoer Kolom: “1.2 gemiddelde”, en klik achter de optie om kleurverloop te selecteren op de knop ”Bewerken”. Hierin kunnen de kleurweergaven voor de gebouwhoogte worden ingesteld. We willen met behulp van één gradient het verschil in hoogte tussen de gebouwen weergeven. Hiervoor hebben we 2 kleuren nodig, welk een pure waarde hebben in RGB:

Verwijder in het pop-up venster alle gradient punten behalve de eerste en de laatste. Stel hierna de kleurcode van het eerste punt in op R:0, G:0, B:255. Stel vervolgens de kleurcode van het laatste punt in op R:255, G:0, B:0, op, hierdoor zal de bebouwing van hoog naar laag worden weergegeven met de kleuren blauw – rood.

Als laatste aanpassing stellen we het aantal Klassen in op 256, en klikken we op “Classificeren”. We sluiten het venster af met “Apply” en vervolgens “OK”.De kaart is te exporteren door via het menu te navigeren naar: Project --> DXF export

Hierdoor kan de kaart inclusief kleuren worden geëxporteerd. (het is verstandig om de minimum en maximumhoogte te onthouden, deze is later niet meer in de .DXF te vinden, dit kan door beide maten bijv. in de bestandsnaam te vermelden).

Zoals dit bijvoorbeeld: uitsnede-locatie_Gemhoogten-min2.26totplus119.62m-in-256stappen.dxf



Functies van gebouwen

QgisB4.png

Met behulp van QGIS kunnen we gegevens in een GML-bestand gebruiken voor analyse, hiervoor is een GML-bestand van de planomgeving nodig, tezamen met het programma QGIS. Wanneer het GML-bestand in QGIS geladen is, kunnen we de inbegrepen informatie weergeven. In dit voorbeeld gebruiken we een kleurweergave voor de functie van de gebouwen. We werken in dit voorbeeld door met het gegenereerde GML-bestand uit de tutorial: “Informatie halen uit QGIS”.

De weer te geven eigenschappen van de shapes welke in het GML-bestand zitten inbegrepen, kunnen we weergeven door de eigenschappen van de laag weer te geven: Klik met RMB op de laag en navigeer naar eigenschappen, selecteer in het pop-up venster aan de rechterkant “Stijl” en kies boven in de rechterkant van het pop-up scherm voor “categoriën” in het drop- down menu.





QgisBb5.png

Selecteer in het menu onder de invoer Kolom: “abc typeGebouw”, en klik onder het lege vak op de knop ”Classificeren”. Wanneer we afsluiten door op “Apply” en “OK” te klikken, worden de weergegeven gebouwen op de kaart gekleurd volgens hun functie.

Select categorieën (categorized), willekeurige kleuren (random colors) en klik op Classificeren (Classify). Klik nog niet op ok. Tel hoeveel categorieën er zijn. Waarschijnlijk 19 in dit geval. Maak nu een gradient met 19 stappen, zoals in de afbeelding hiernaast uitgelegd.

LET OP: het is belangrlijk dat de layernamen in alfabetische volgorde staan. Dit is in principe ook standaard het geval.


Het is verstandig om op dit moment een legenda te maken van de weergegeven kleuren met de gebouwtypenamen. Dit kan door op het + teken te klikken voor de laag, in het Paneel Lagen. Hierdoor worden de kleuren en hun classificering weergegeven. Deze kunnen bewaard blijven door het Paneel Lagen te vergroten, zodat alle classificaties zichtbaar zijn, om vervolgens een screenshot te maken en deze op te slaan.




QgisBb7.png

De kaart is te exporteren door via het menu te navigeren naar: Project --> DXF export Geef een bestandsnaam waar ook de hoeveelheid stappen en R waarden in staan. Zodat dit later nog is terug te vinden. Bijvoorbeeld: uitsnede-locatie_gouwtypen-functies-19Rstappenvan1tot19.dxf Hierdoor kan de kaart inclusief kleuren worden geëxporteerd, samen met een screenshot van de classificering kunnen de gebouwen op de kaart geïdentificeerd worden.



QGIS naar een 3D model in Rhino met behulp van Grasshopper.

Import files in Rhino

Qgisc1.png


Deze uitleg gaat over het vertalen van Informatie-onderleggers uit QGIS naar een 3D model in Rhino met kleurwaarden voor functies en geëxtrudeerde hoogte per bouwblok.

Het vertalen van de geëxporteerde dxf Informatie-onderleggers uit qgis bevatten gegevens over:

  • de maximale gebouwhoogte per gebouwomlijning
  • het gebouwtype (functies zoals huizenblok, postkantoor etc.)

De eerste stap is het inladen van de twee dxf bestanden:

(Onderstaande bestandsnamen zijn voorbeelden)

  • uitsnede-locatie_Gemhoogten-min2.26totplus119.62m-in-256stappen.dxf
  • Uitsnede-locatie_gouwtypen-functies.dxf

1) Ga naar file → insert. Link het gebouwtypen-functies dxf bestand. Let er op dat bij insertion point prompt uit staat.


Klik Ok en nogmaals Ok. Daarna staat de kaart in Rhino, geheel geselecteerd


Qgisc2.png
Qgisc3.png
Qgisc4.png


2) Nu is het van belang om de kleurvlakken van hatches naar surfaces te vertalen zodat deze ingeladen kunnen worden in Grasshopper.

  • Deselecteer de kaart:
  • Selecteer alle hatches met het commando SelHatch (Edit → Select Objects → Hatches)
  • De kleurhatches zijn te vertalen naar surfaces met kleurwaarden met het commando Explode (Edit → Explode)























Met SelSrf (Edit → Select Objects → Surfaces) kunnen nu alle surfaces geselecteerd worden en zet deze in een aparte laag. Bijvoorbeeld surfaces-gebouwtypen.

3) Herhaal bovenstaande stappen voor uitsnede-locatie_Gemhoogten-min2.26totplus119.62m-in-256stappen.dxf


4) Opruimen van de tekening

Zorg dat de tekening 4 lagen bevat (lijnen, vlakken met gebouwtype, vlakken met gebouwhoogten):

  • Maak één van de layers die we willen bewaren de huidige laag (current layer)
  • Typ Purge in de commandline.
  • Alle onnodige layers zijn nu verwijdert en nu hebben we de volgende layers:

Qgisc5.png


(afhankelijk van de benaming van de layers uiteraard. In dit voorbeeld 2 layers met de lijnen en twee layers met de surfaces met de kleurwaarden. Van de Lines layers is er eigenlijk maar 1 nodig.)



Setup in Grasshopper

Qgisc6.png

5) De vlakken inladen in Grasshopper

Start Grasshopper op en maak 3 inputs (2 voor de vlakken voor de hoogte en gebouwtype en 1 panel met de gemiddelde verd.hoogte over het algemeen voor de m2 berekening. Bijvoorbeeld 4m). Geef de twee inputs logische namen:


Installeer de gratis grasshopper plugin: FabTools: http://www.food4rhino.com/app/fabtools

Met de optie Get Object Attributes uit FabTools kunnen we de kleurwaarden uit de vlakken lezen (en nog veel meer is mogelijk).


Qgisc7.png


Qgisc8.png






Link beide surface inputs naar de Get Object Attributes component. En laad de surfaces met de kleurwaarden respectievelijk in. Link bij beiden aan de output C een Split ARGB component en stel hierbij in met de rechtermuisknop dat de output in ‘integer channels’ gegeven wordt. Het script ziet er nu als volgt uit:




Qgisc9.png

Deze R waarden kunnen we nu gaan vertalen naar hoogtewaarden en gebouwtypen ! Belangrijk is dat er een gradient is gekozen van puur blauw naar puur rood in 256 stappen in QGIS voor de hoogte, daar gaat in ieder geval dit voorbeeld van uit. ! Voor de functies een R tussen de 1 en 19 als er bv. 19 categoriën zijn. Zie uitleg over export uit QGIS. !

Als doel domein: de laagste en hoogste hoogtewaarden uit qgis. In dit voorbeeld is dat van -2.26 tot 119.62. ! dit kan in elk geval net anders zijn. Deze waarde heb je als het goed is in de bestandsnaam van de hoogwaarden export genoteerd in de qgis uitleg. !

Met het ReMap component kunnen we de R waarden van het domein van 0 tot 255 omzetten naar het hoogtedomein (in dit geval -2.17 tot 161.28). Maak dat hoogtedomein met het Construct Domain component. De source domain is in te voeren door enkel de eindwaarde 255 in te voeren met een panel. Hang aan de R output van Remap een panel en geef deze eventueel een naam zoals Hoogte per blok in M. Het script ziet er nu als volgt uit:






Sla alles zeker nu even op voor je dit doet. Als het gebied niet te groot is gaat het goed. Maar het kan wat rekentijd geven. Goed is om in ieder geval preview op disable te zetten: Dit scheelt aanzienlijk rekentijd


Qgisc10.png


Qgisc11.png

Nu kunnen we de surfaces Extruderen met de hoogte met de Extrude component. Link de surfaces van Srf gebouwhoogten (de andere zou ook kunnen uiteraard) aan de B input van de Extrude en de waarden uit R van ReMap aan een Unit-Z component en die aan de D input van de Extrude. Zoals onderstaand. Omdat beide lijsten nog dezelfde structuur hebben gaat dit goed.




Qgisc12.png
Qgisc14.png

Nu kunnen we verder met het koppelen van de gebouwtype aan de gebouwblokken.

Maak een .txt bestand met de gebouwtypen per laag zoals hieronder:

  • Huizenblok
  • Huizenblok - parkeerdak, parkeerdek,parkeergarage
  • huizenblok - postkantoor
  • huizenblok - religieusgebouw
  • Metrostation - treinstation
  • museum
  • museum - toren
  • overige
  • parkeerdak, parkeerdek, parkeergarage
  • politiebureau
  • postkantoor
  • radarpost
  • religieus gebouw
  • religieus gebouw - toren
  • stadskantoor
  • tankstation
  • toren
  • ziekenhuis
  • null

Laad deze lijst in met een File Path component. En Link dat aan een Read File component. Dit geeft per line nu de functie uit het .txt bestand. Zoals hiernaast:




Qgisc15.png

Deze lijst kunnen we nu linken met de R waarden tussen 1 en 19 uit QGIS. Omdat de categorienamen in een lijst zitten van 0 tot 18, verminderen we de R waarden met 1 zodat die ook in een lijst van 0 tot 18 zitten. Daarna kunnen we met List Item component per gebouwblok een categorienaam kiezen. Belangrijk is dat graft aanstaat bij de R waarden. Zodat voor ieder gebouwblok opnieuw de lijst met namen wordt bekeken. Bekijk zonodig nog deze uitleg over de Data Tree van grasshopper: http://wiki.bk.tudelft.nl/toi-pedia/Grasshopper_Data_Tree_Editing





Qgisc16.png

Nu gaan we per bouwblok de vloeroppervlakte berekenen. Hiervoor gebruiken we de eerder aangemaakt gemiddelde verd. Hoogte input. Deze waarde is uiteraard zelf te kiezen. Link de bouwblokhoogte aan een divide. Rond dit af met een Round component. Link de Area aan de oorspronkelijke gemiddelde bouwhoogte srf input. Vermedigvuldig dit met het aantal lagen uit de Round component (F). Dit geeft het totaal m2 per gebouwblok.







Qgisc17.png

Met List Length weten we hoeveel categoriën er in de file input zitten. En met Color Wheel kunnen we nu 19 willekeurige kleuren genereren voor de lagen. Link aan het eind een LayerAttributes (van FabTools), maar Disable deze eerst, daarna kun je met Enable 1x de lagen genereren. Die zie je daarna in Rhino staan.







Qgisc18.png

Met Advanced Bake (van FabTools) kunnen we de Extrusies linken aan de juiste layers en m2 waarden als objectnaam. Zie hiernaast:














Qgisc19.png

De advanced bake gebruikt een Button om 1 x te baken. Trigger de button om 1x de gebouwen met m2 waarde als object naam en in de juiste functielayers te genereren.

Het script ziet er uiteindelijk als volgt uit:









Qgisc20.png

En in Rhino hebben we nu lagen per functie en m2 als objectnaam per object. In meters Zoals hiernaast:

Personal tools
Actions
Navigation
Tools