Viktigt
Översättning är en gemenskapsinsats du kan gå med i. Den här sidan är för närvarande översatt till 77.27%.
17.6. CRS:er. Omprojicering
Observera
I den här lektionen ska vi diskutera hur Processing använder CRS. Vi kommer också att se en mycket användbar algoritm: reprojicering.
CRS är en stor källa till förvirring för QGIS Processing-användare, så här är några allmänna regler om hur de hanteras av geoalgoritmer när ett nytt lager skapas.
Om det finns flera inmatningslager används CRS för det första lagret. Detta antas vara CRS för alla indatalager, eftersom de bör ha samma CRS. Om du använder lager med CRS som inte matchar varandra kommer QGIS att varna dig för det. Lägg märke till att CRS för indatalageren visas tillsammans med dess namn i parameterdialogen.
Om det inte finns något inmatningslager kommer det att använda projektets CRS, såvida inte algoritmen innehåller ett specifikt CRS-fält (som det hände i den senaste lektionen med graticule-algoritmen)
Open the project corresponding to this lesson and you will see two layers named
23030 and 4326. They both contain the same points, but in different CRSs
(EPSG:23030 and EPSG:4326). They appear in the same place because QGIS is
reprojecting on the fly to the project CRS (EPSG:4326), but they are not
actually the same layer.
Open the Add geometry attributes algorithm.
Denna algoritm lägger till nya kolumner i attributtabellen för ett vektorlager. Innehållet i kolumnerna beror på vilken typ av geometri som lagret har. När det gäller punkter lägger den till nya kolumner med X- och Y-koordinaterna för varje punkt.
I listan över tillgängliga lager som du hittar i fältet input layer ser du varje lager med sin motsvarande CRS. Det innebär att även om de visas på samma plats i din canvas kommer de att behandlas på olika sätt. Välj lageret 4326.
The other parameter of the algorithm allows to set how the algorithm uses coordinates to calculate the new value that it will add to the resulting layers. Most algorithms do not have an option like that, and just use the coordinates directly. Select the Layer CRS option to just use coordinates as they are. This is how almost all geoalgorithms work.
Du bör få ett nytt lager med exakt samma punkter som de andra två lagren. Om du högerklickar på lagerets namn och öppnar dess egenskaper ser du att det har samma CRS som indatalageret, det vill säga EPSG:4326. När lageret laddas in i QGIS kommer du inte att bli ombedd att ange lagerets CRS, eftersom QGIS redan känner till det.
Om du öppnar attributtabellen för det nya lagret kommer du att se att det innehåller två nya fält med X- och Y-koordinaterna för varje punkt.
Dessa koordinatvärden anges i lagerets CRS, eftersom vi valde det alternativet. Men även om du väljer ett annat alternativ skulle lagerets CRS för utdata ha varit detsamma, eftersom CRS för indata används för att ställa in CRS för utdata. Om du väljer ett annat alternativ kommer värdena att vara olika, men inte den resulterande punkten att ändras eller CRS för det utgående lagret att vara annorlunda än CRS för det ingående lagret.
Gör nu samma beräkning med det andra lagret. Det resulterande lagret kommer att återges exakt på samma plats som de andra, och det kommer att ha EPSG:23030 CRS, eftersom det var det som användes i det ingående lagret.
Om du går till dess attributtabell kommer du att se värden som skiljer sig från dem i det första lagret som vi skapade.
Detta beror på att originaldata är annorlunda (den använder en annan CRS), och dessa koordinater är hämtade från den.
Vad kan man lära sig av detta? Huvudtanken bakom dessa exempel är att geoalgoritmer använder lagret som det är i sin ursprungliga datakälla och helt ignorerar de omprojektioner som QGIS kan göra före rendering. Med andra ord ska du inte lita på vad du ser på skärmen, utan alltid ha i åtanke att originaldata kommer att användas. Det är inte så viktigt i det här fallet, eftersom vi bara använder ett enda lager åt gången, men i en algoritm som behöver flera av dem (t.ex. en klippalgoritm) kan lager som ser ut att matcha eller överlagra varandra vara mycket långt ifrån varandra, eftersom de kan ha olika CRS.
Algoritmer utför ingen reprojektion (utom i reprojektionsalgoritmen som vi ska se härnäst), så det är upp till dig att se till att lagren har matchande CRS:er.
En intressant modul som handlar om CRS är reprojektionsmodulen. Den representerar ett särskilt fall, eftersom den har ett inputlager (det som ska reprojiceras), men den kommer inte att använda sin CRS för outputlagret.
Open the Reproject layer algorithm.
Select any of the layers as input, and select EPSG:23029 as the destination CRS. Run the algorithm and you will get a new layer, identical to the input one, but with a different CRS. It will appear on the same region of the canvas, like the other ones, since QGIS will reproject it on the fly, but its original coordinates are different. You can see that by running the Add geometry attributes algorithm using this new layer as input, and verifying that the added coordinates are different to the ones in the attribute tables of both of the two layers that we had computed before.