.

Veldberekening

De knop mActionCalculateField Veldberekening in de attributentabel geeft de mogelijkheid om berekeningen uit te voeren van bestaande waarden van attributen of gedefinieerde functies, bijvoorbeeld om de lengte of oppervlakte van geometrie-objecten te berekenen. De resultaten kunnen worden weggeschreven naar een nieuw attribuutveld, een virtueel veld, of zij kunnen worden gebruikt om de waarden in een bestaand attribuutveld bij te werken.

Tip

Virtuele velden

  • Virtuele velden zijn niet permanent en worden niet opgeslagen.

  • Een veld virtueel maken moet gebeuren als het veld wordt gemaakt.

De Veldberekening is nu beschikbaar op elke laag die bewerken ondersteunt. Wanneer u op het pictogram veldberekening klikt opent het dialoogvenster (zie figure_attributes_3). Als de laag niet in de modus Bewerken staat, wordt een waarschuwing weergegeven en het gebruiken van Veldberekening zal er voor zorgen dat de laag in de modus Bewerken wordt gezet vóórdat de berekening wordt uitgevoerd.

De werkbalk Snelle veldberekening, boven in de attributentabel, is alleen zichtbaar als de laag te bewerken is.

Selecteer, op de werkbalk Snelle veldberekening, eerst de bestaande veldnaam en open dan het dialoogvenster Expressie om uw expressie te maken, of voer die direct in in het veld en klik op de knop Alles bijwerken.

tab Expressie

In het dialoogvenster dient u eerst te selecteren of u alleen geselecteerde objecten wilt bijwerken, een nieuw attribuutveld moet worden gemaakt waarin de resultaten van de berekening zullen worden toegevoegd of dat de berekening gebruikt zal worden om een bestaand attribuutveld te vernieuwen of er aan te worden toegevoegd.

Figure Attributes 3:

../../../_images/fieldcalculator.png

Veldberekening nix

Als u er voor kiest een nieuw veld toe te voegen, dient een veldnaam, een veldtype (geheel getal, decimaal getal of tekst), de totale veldlengte en de precisie te worden opgegeven (zie figure_attributes_3). Als u bijvoorbeeld voor een veldlengte van 10 en een precisie van 3 kiest, betekent dit dat u ruimte heeft voor 6 tekens voor de punt, daarna de punt en daarachter nog 3 tekens voor de precisie.

Een kort voorbeeld illustreert het gebruik van Veldberekening bij het gebruiken van de tab Expressie. We willen de lengte van de laag railroads van de voorbeeld dataset van QGIS berekenen in km:

  1. Laad het shapefile railroads.shp in QGIS en selecteer mActionOpenTable Open attributentabel.

  2. Klik op mActionToggleEditing Bewerken aan/uitzetten en open het dialoogvenster Veldberekening met mActionCalculateField Veldberekening.

  3. Selecteer het keuzevak checkbox Nieuw veld aanmaken om berekeningen op te slaan in het nieuwe veld.

  4. Voeg lengte toe als resultaatveld, selecteer Decimaal getal (real) als veldtype en geef een veldlengte op van 10 en een precisie van 3.

  5. Klik nu op de functie $length in de groep Geometry om deze toe te voegen als $length in het vak voor de expressie van de veldberekening.

  6. Maak de expressie compleet door “/1000” in te typen in het vak voor de expressie van de berekening en druk op [OK].

  7. U zult nu een nieuw veld lengte in de attributentabel terugvinden.

De beschikbare functies worden vermeld in het hoofdstuk Expressies.

tab Functiebewerker

Met de Functiebewerker kunt u op een comfortabele manier uw eigen aangepaste functies in Python maken. De functiebewerker zal nieuwe bestanden voor Python maken in qgis2pythonexpressions en zal automatisch alle functies laden, die zijn gedefinieerd, bij het starten van QGIS. Onthoud goed dat nieuwe functies alleen worden opgeslagen in de map expressions en niet in het projectbestand. Als u een project heeft dat een van uw aangepaste functies gebruikt, dient u ook het .py-bestand te delen in de map expressions.

Here’s a short example on how to create your own functions:

@qgsfunction(args="auto", group='Custom')
def myfunc(value1, value2 feature, parent):
    pass

Het korte voorbeeld maakt een functie ‘myfunc’ die u een functie zal geven met twee waarden. Bij het gebruiken van het argument voor de functie args=’auto’ zal het aantal argumenten voor de functie worden berekend door het aantal argumenten waarmee de functie werd gedefinieerd in Python (minus 2 - object, en ouder).

This function then can be used with the following expression:

myfunc('test1', 'test2')

Uw functie zal worden geïmplementeerd in de:guilabel:Functies ‘Custom’ op de tab Expressie na het gebruiken van de knop Script uitvoeren.

Meer informatie over het maken van code voor Python kan worden gevonden op http://www.qgis.org/html/en/docs/pyqgis_developer_cookbook/index.html.

De functiebewerker is niet alleen beperkt tot het werken met Veldberekening, hij is overal te vinden waar u met expressies werkt. Zie ook Expressies.