17.12. Bereiken definiëren

Notitie

In deze les zullen we zien hoe we bereiken definiëren, die bij sommige algoritmen nodig zijn, in het bijzonder voor rasters.

Sommige algoritmen vereisen een bereik om het gebied te definiëren dat moet worden bedekt door de analyse die zij uitvoeren, en gewoonlijk ook om het bereik van de resulterende laag te definiëren.

Wanneer een bereik wordt vereist, kan het handmatig gedefinieerd worden door de vier waarden die het definieert in te voeren (min X, min Y, max X, max Y), maar er zijn ook meer praktische en interessantere manieren om dat te doen. We zullen ze allemaal zien in deze les.

First, let’s open an algorithm that requires an extent to be defined. Open the Shapes to grid algorithm, which creates a raster layer from a vector layer.

../../../_images/rasterize1.png

All the parameters, except for the last two ones, are used to define which layer is to be rasterized, and configure how the rasterization process should work. The two last parameters, on the other hand, define the characteristics of the output layer. That means that they define the area that is covered (which is not necesarily the same area covered by the input vector layer), and the resolution/cellsize (which cannot be infered from the vector layer, since vector layers do not have a cellsize).

Het eerste dat u kunt doen is de 4 waarden voor de definitie, zoals hierboven besproken, in te typen, gescheiden door komma’s.

../../../_images/type.png

Dat behoeft geen nadere extra uitleg. Hoewel dit de meest flexibele optie is, is het in sommige gevallen ook minder praktisch, en dat is waarom ander opties werden geïmplementeerd. U moet op de knop aan de rechterkant van het tekstvak voor het bereik klikken om daar toegang toe te krijgen.

../../../_images/menu.png

Laten we eens kijken wat elk ervan doet.

De eerste optie is Use layer/canvas extent, wat het dialoogvenster voor selectie zal weergeven dat hieronder staat.

../../../_images/layer.png

Hier kunt u het bereik voor het kaartvenster selecteren (het bereik dat wordt bedekt door de huidige zoom), of het bereik van elk van de beschikbare lagen. Selecteer het en klik op OK, en het tekstvak zal automatisch worden gevuld met de overeenkomende waarden.

De tweede optie is Select extent on canvas. In dit geval verdwijnt het dialoogvenster van het algoritme en kunt u in het kaartvenster van QGIS klikken en slepen om het gewenste bereik te definiëren.

../../../_images/extent_drag.png

Als u de muisknop weer loslaat zal het dialoogvenster weer verschijnen en zal het tekstvak al de waarden bevatten die overeenkomen met het gedefinieerde bereik.

De laatste optie is Use min covering extent from input layers, wat de standaard optie is. Dit zal de minimale bedekte bereik berekenen van alle lagen die gebruikt zullen worden om het algoritme uit te voeren, en er is geen reden om enige waarde in het tekstvak in te voeren. In het geval van één enkele invoerlaag, zoals in het algoritme dat we uitvoeren, kan hetzelfde bereik worden verkregen door diezelfde invoerlaag te selecteren in Use layer/canvas extent die we al eerder zagen. Echter, wanneer er verscheidene invoerlagen zijn, correspondeert het minimale bedekte bereik niet met enig bereik van de invoerlaag, omdat het uit alle tezamen wordt berekend.

We zullen deze laatste methode gebruiken om ons algoritme voor het omzetten naar raster uit te voeren.

Vul het dialoogvenster voor de parameters zoals hieronder weergegeven en druk op OK.

../../../_images/parameters.png

Notitie

In this case, better use an Integer (1 byte) instead of a Floating point (4 byte), since the ID is an integer with maximum value=63. This will result in a smaller file size and faster computations.

U zult een rasterlaag verkrijgen die exact het gebied bedekt dat wordt bedekt door de originele vectorlaag.

../../../_images/result.png

In sommige gevallen zou de laatste optie, Use min covering extent from input layers, niet beschikbaar kunnen zijn. Dit zal gebeuren bij die algoritmen die geen invoerlagen hebben, maar slechts parameters van andere typen. In dat geval zult u de waarde handmatig moeten invoeren of een van de andere opties gebruiken.

Onthoud dat, wanneer een selectie bestaat, het bereik van de laag dat van de gehele verzameling objecten is, en de selectie wordt niet gebruikt voor de berekening van het bereik, zelfs hoewel het rasteriseren werd uitgevoerd op alleen de geselecteerde items. In dat geval wilt u misschien een nieuwe laag maken van de selectie, en die dan gebruiken als invoer.