Massa verwerken met behulp van Framework Processing (QGIS 3)¶
Het Processing Framework in QGIS verschaft een omgeving binnen QGIS om eigen en algoritmes van derde partijen uit te voeren om gegevens te verwerken. Het bevat een leuke interface voor massaverwerking die het mogelijk maakt om eenvoudig een algoritme op meerdere lagen uit te voeren. Massa verwerken is een handig programma dat veel handwerk kan besparen en u helpt uw herhalende taken te automatiseren.
Overzicht van de taak¶
We zullen een aantal globale vectorlagen nemen en die verkleinen tot het bereik van Afrika in één enkele massaopdracht.
Andere vaardigheden die u zult leren¶
Een Filter maken om ongewenste objecten uit een laag te verwijderen zonder een nieuwe laag te maken.
Meerdere lagen samenvoegen tot één bestand voor Geopackage.
De gegevens ophalen¶
Natural Earth heeft verschillende globale vectorlagen. Download de volgende lagen
Voor het gemak kunt u direct een Geopackage downloaden dat bovenstaande lagen bevat vanaf de link hieronder:
Gegevensbron: [NATURALEARTH]
Procedure¶
Zoek, in het paneel QGIS Browser, de map waar u uw gegevens hebt gedownload. Vergroot het item
zip
ofgpkg
en selecteer de laagne_10m_admin_0_countries
. Sleep de laag naar het kaartvenster.
U zult de laag zie die is geladen in het paneel Lagen. We dienen eerst een laag voor te bereiden die de alleen de objecten bevat van dat continent, omdat onze taak is om de globale lagen te clippen tot de grenzen van Afrika. Laten we eens naar de attributentabel kijken om te zien welke kolom gebruikt kan worden om objecten te bevragen die tot een bepaald continent behoren. Klik met rechts op de laag
ne_10m_admin_0_countries
en selecteer Attributentabel openen.
Notitie
Tip: U kunt ook de sneltoets F6 gebruiken om de attributentabel van de geselecteerde laag te openen.
Wanneer u horizontaal scrollt in het venster Attributentabel, zult u zien dat de gegevens een attribuut bevatten, genaamd CONTINENT. We kunnen dat attribuut gebruiken om objecten te filteren.
Sluit de attributentabel en ga terug naar het hoofdvenster van QGIS. Klik met rechts op de laag
ne_10m_admin_0_countries
en selecteer Filteren.
Selecteer, in het venster Querybouwer, het veld CONTINENT en klik op Voorbeeld. Dit zal het paneel Waarden vullen met een subset van waarden van dat attribuut uit objecten. Deze stap is nuttig om te begrijpen welke typen waarden aanwezig zijn in uw gegevensset. We zien dat onze gegevensset een waarde, genaamd Africa, bevat, naast andere.
Voer nu de expressie in in het tekstvak Provider-specifieke filter-expressie. U kunt klikken op het label CONTINENT gevolgd door de knop = en het label Africa. Of u kunt de volledige expressie in het tekstvak typen. Klik op OK na het invoeren van de expressie.
"CONTINENT" = 'Africa'
U zult zien dat het kaartvenster nu alleen de landen van Afrika bevat. Merk het filterpictogram op dat naast de laagnaam staat war aangeeft dat op die laag een filter is toegepast. U kunt kliken op het filterpictogram en de expressie leegmaken, als u alle objecten van de laag wilde zien en gebruiken. Voor nu zullen we het filter behouden zodat we andere lagen naar Afrika kunnen clippen.
We zijn nu klaar om het proces van masaverwerking uit te voeren om de lagen te clippen. Zoek de globale lagen van Natural Earth
ne_10m_railroads
,ne_10m_ports
enne_10m_urban_areas
op in het paneel QGIS Browser. Houd de Ctrl-toets ingedrukt en klik op elke laag om die te selecteren. Sleep ze, eenmaal geselecteerd, naar het kaartvenster.
Als de lagen eenmaal zijn geladen zult u zien dat zij globale lagen zijn en objecten hebben die in alle landen voorkomen. Nu is het tijd om ons proces voor massaverwerking voor clippen uit te voeren om deze lagen te clippen tot alleen Afrika. Open
.
Blader door alle beschikbare algoritmen en zoek naar het gereedschap Clippen via . U kunt ook het vak Zoeken… gebruiken om eenvoudig het algoritme te vinden.
Klik met rechts op het algoritme Clippen en selecteer Uitvoeren als batch-proces.
In het dialoogvenster Batch Processing, is de eerste tab Parameters waar we onze invoer definiëren. Elke regel in de tabel vertegenwoordigt 1 taak voor de verwerking. Klik op de knop Regel toevoegen om een nieuwe regel toe te voegen. Voeg drie regels toe omdat onze taak 3 lagen omvat.
Klik op … naast de eerste regel in de kolom Invoerlaag. Selecteer Uit geopende kaartlagen selecteren.
Selecteer, in het dialoogvenster Mervoudige selecties, de 3 lagen die we willen clippen en klik op OK.
U zult zien dat de kolom :Invoerlaag automatisch is gevuld met alle lagen die u had geselecteerd. U kunt de knop Add row gebruiken om meer rijen toe te voegen en meer invoer te definiëren. Vervolgens moeten we de laag selecteren die de grens bevat om onze invoerlagen te clippen. Klik op de knop … voor de eerste regel in de kolom Overleglaag en selecteer Uit geopende kaartlagen selecteren.
Selecteer, in het dialoogvenster Meervoudige selecties,
ne_10m_admin_0_countries
en klik op OK.
Een handige sneltoets is, omdat de te clippen laag dezelfde is voor alle invoerlagen, om dubbel te klikken op de kolomkop Overleglaag en dezelfde laag zal automatisch wordne gevuld voor alle regels.
Vervolgens dienen we onze uitvoer te definiëren. Klik op de knop … naast de eerste regel in de kolom Geclipt.
Blader naar de map waar u uw uitvoerlagen wilt opslaan. Typ de bestandsnaam in als
clipped_
en klik op Opslaan.
U zult een nieuw dialoogvenster Instelling automatisch vullen zien verschijnen. Selecteer
Vullen met parameterwaarden
als de Modus Automatisch vullen. SelecteerInvoerlaag
als de Parameter om te gebruiken. Deze instelling zal de naam van het invoerbestand toevoegen aan het uitvoerbestand samen met het gespecificeerde bestandsnaamclipped_
. Dit is belangrijk om er voor te zorgen dat alle uitvoerbestanden unieke namen hebben en zij elkaar niet overschrijven.
Nu kunnen we het proces van massa-verwerking starten. Zorg er voor dat Uitvoerbestand openen na uitvoeren algoritme is geselecteerd en klik op Uitvoeren.
Het algoritme clippen zal worden uitgevoerd voor elk van de invoerbestanden en de uitvoerbestanden maken zoals we hebben gespecificeerd. Klik op Sluiten om terug te keren naar QGIS als het proces voor massaverwerking is voltooid.
Notitie
Tip: QGIS kan nu taken van Processing op de achtergrond uitvoeren zonder de gebrukersinterface af te dekken. Als uw proces voor massverwerking dus lang duurt kunt u het dialoogvenster sluiten en doorgaan met werken aan andere taken in QGIS terwijl het proces uitgevoerd blijft worden op de achtergrond.
Terug in het hoofdvenster van QGIS zult u zien dat de lagen zijn toegevoegd aan het kaartvenster van QGIS. Zoals u zult zien zijn alle globale lagen netjes verkleind tot de grens van het continent dat we hadden gespecificeerd.
We hebben de taak van het clippen van meerdere lagen in massa volbracht. Maar QGIS3 heeft een andere nuttige mogelijkheid die u zal helpen het resultaat op een meer efficiënte manier op te slaan en af te leveren. Als u de geclipte lagen wilde afleveren aan iemand zou u de individuele bestanden waarschijnlijk buiten QGIS inpakken (zippen). Een betere optie is om de uitvoerbestanden te verpakken in één enkel bestand voor GeoPackage. Zoek, in de QGIS Browser, de geclipte uitvoerlagen op. U moet misschien op de knop Bijwerken drukken op de nieuw toegvoegde bestanden te kunnen zien.
Houdt de Ctrl-toets ingedrukt en selecteer de lagen. Sleep ze naar het kaartvenster om ze in QGIS te laden.
Zoek, in Processing Toolbox, het gereedschap .
Klik, in het dialoogvenster Pakketlagen, op de knop … naast Invoerlagen.
Selecteer, in het dialoogvenster Meervoudige selecties, de lagen
clipped_ne_10m_ports
,clipped_ne_10m_railroads
enclipped_ne_10m_urban_areas
. Klik op OK.
Als de invoerlagen eenmaal zijn geselecteerd, klik op de … naast Doel Geopackage en kies Opslaan als bestand.
Voer de naam voor het uitvoerbestand in als
geclipte_lagen
.
Klik op Uitvoeren om het proces van verpakken te starten.
Als het proces is voltooid zult u een nieuw bestand voor Geopackage zien in uw QGIS Browser dat alle geclipte uitvoerlagen bevat. Dit is één enkel bestand op uw computer dat alle uitvoerlagen bevat.
If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)