17.6. CRS-en opnieuw.projecteren
Notitie
In deze les zullen we bespreken hoe Processing CRS-en gebruikt. We zullen ook een zeer bruikbaar algoritme bekijken: opnieuw projecteren.
CRS-en zijn een grote bron van verwarring voor gebruikers van Processing in QGIS, dus zijn er enkele algemene regels over hoe zij worden afgehandeld door geo-algoritmen bij het maken van een nieuwe laag.
Als er invoerlagen zijn, zal het het CRS van de eerste laag gebruiken. Aangenomen wordt dat dat het CRS is van alle invoerlagen, omdat zij allemaal hetzelfde zouden moeten hebben. Als u lagen gebruikt met CRS-en die niet overeenkomen, zal QGIS u daarover waarschuwen. Merk op dat het CRS van invoerlagen wordt weergegeven, tezamen met de naam, in het dialoogvenster voor de parameters.
Als er geen invoerlaag is, zal het het CRS van het project gebruiken, tenzij het algoritme een specifiek veld voor het CRS bevat (zoals gebeurde in de laatste les met het algoritme voor het raster)
Open het project dat correspondeert met dezes les en u zult twee lagen zien, genaamd 23030 en 4326. Zij bevatten beide dezelfde punten, maar zijn in verschillende CRS-en (EPSG:23030 en EPSG:4326). Zij verschijnen op dezelfde plaats omdat QGIS direct opnieuw projecteert naar het CRS van het project (EPSG:4326), maar in feite zijn zij niet dezelfde laag.
Open het algoritme Export/Add geometry columns.
Dit algoritme voegt nieuwe kolommen toe aan de attributentabel van een vectorlaag. De inhoud van de kolommen is afhankelijk van het type geometrie van de laag. In het geval van punten, voegt het nieuwe kolommen toe met de X- en Y-coördinaten van elk punt.
In de lijst met beschikbare lagen die u kunt vinden in het veld voor de invoerlaag, zult u elk zien met zijn overeenkomend CRS. Dat betekent dat, hoewel zij op dezelfde plaats in uw kaartvenster verschijnen, zij verschillend zullen worden behandeld. Selecteer de laag 4326.
De andere parameter van het algoritme maakt het mogelijk in te stellen hoe het algoritme coördinaten gebruikt om de nieuwe waarde te berekenen die zal worden toegevoegd aan de resulterende lagen. De meeste algoritmen hebben geen optie zoals dit, en gebruiken eenvoudigweg direct de coördinaten. Selecteer de laagoptie Layer CRS om de coördinaten slechts te gebruiken zoals zij zijn. Dit is hoe bijna alle geo-algoritmen werken.
U zou een nieuwe laag moeten krijgen met exact dezelfde punten als de andere twee lagen. Als u met rechts klikt op de naam van de laag en de eigenschappen ervan opent, zult u zien dat het hetzelfde CRS van de invoerlaag deelt, dat is, EPSG:4326. Wanneer de laag wordt geladen in QGIS, zult u worden gevraagd het CRS van de laag in te voeren, omdat QGIS daar al van weet.
Als u de attributentabel van de nieuwe laag opent zult u zien dat het nu twee nieuwe velden bevat met de X- en Y-coördinaten van elk punt.
Deze waarden voor de coördinaten zijn in het CRS van de laag, omdat we die optie kozen. Echter, zelfs als u een andere optie kiest, zou het CRS van de uitvoer van de laag hetzelfde zijn, omdat het CRS van de invoer is gebruikt om het CRS van de uitvoerlaag in te stellen. Kiezen van een andere optie zal er voor zorgen dat de waarden anders zijn, maar zal het resulterende punt niet wijzigen of het CRS van de uitvoerlaag te laten verschillen van het CRS van die van de invoer.
Doe nu dezelfde berekening met behulp van de andere laag. U zou moeten zien dat de resulterende laag op exact dezelfde plaats is gerenderd als de andere, en het zal het CRS EPSG:23030 hebben, omdat dat die van de invoerlaag was.
Als u naar de attributentabel ervan gaat, zult u zien dat die anders zijn dan die uit de eerste laag die we maakten.
Dit komt omdat de originele gegevens anders zijn (het gebruikt een ander CRS), en deze coördinaten komen daar uit.
Wat zou u hieruit moeten leren? Het belangrijkste idee achter deze voorbeelden is dat geo-algoritmen de laag gebruiken zoals die is in zijn originele gegevensbron, en het opnieuw projecteren dat QGIS zou kunnen doen vóór het renderen volledig negeert. Met andere woorden, vertrouw niet wat u ziet in uw kaartvenster, maar onthoud dat altijd de originele gegevens zullen worden gebruikt. Dat is in dit geval niet zo belangrijk, omdat we slechts één laag per keer gebruiken, maar in een algoritme dat er meerdere nodig heeft (zoals een algoritme om te clippen), zouden lagen die overeenkomen of over elkaar liggen ver uit elkaar kunnen liggen, omdat ze verschillende CRS-en zouden kunnen hebben.
Algoritmen voeren projecteren niet opnieuw (behalve in het algoritme voor opnieuw projecteren dat we hierna zullen zien), dus is het aan u om er voor te zorgen dan de lagen overeenkomende CRS-en hebben.
Een interessante module die werkt met CRS-en is die voor opnieuw projecteren. Het vertegenwoordigt een bijzonder geval, omdat het een invoerlaag heeft (die welke opnieuw moet worden geprojecteerd), maar het zal niet het CRSaarvan gebruiken voor de uitvoer.
Open het algoritme Reproject layer.
Selecteer een van de lagen als invoer, en selecteer EPSG:23029 als het doel-CRS. Voer het algoritme uit en u zult een nieuwe laag krijgen die identiek is aan die van de invoer, maar met een ander CRS. Het zal op dezelfde regio in het kaartvenster verschijnen, net als de andere, omdat QGIS het direct opnieuw zal projecteren, maar de originele coördinaten ervan zijn anders. U kunt dat zien door het algoritme Export/Add geometry columns uit te voeren met deze nieuwe laag als invoer en verifiëren dat de toegevoegde coördinaten verschillen van die in de attributentabellen van de beide andere twee lagen die we eerder hadden berekend.