Viktigt
Översättning är en gemenskapsinsats du kan gå med i. Den här sidan är för närvarande översatt till 100.00%.
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)
Öppna det projekt som motsvarar denna lektion och du kommer att se två lager med namnen 23030 och 4326. De innehåller båda samma punkter, men i olika CRS (EPSG:23030 och EPSG:4326). De visas på samma plats eftersom QGIS omprojicerar i farten till projektets CRS (EPSG:4326), men de är faktiskt inte samma lager.
Öppna algoritmen Export/Add geometry columns.

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.
Den andra parametern för algoritmen gör det möjligt att ställa in hur algoritmen använder koordinater för att beräkna det nya värdet som den lägger till i de resulterande lagren. De flesta algoritmer har inte ett sådant alternativ, utan använder bara koordinaterna direkt. Välj alternativet Layer CRS för att bara använda koordinaterna som de är. Det är så här nästan alla geoalgoritmer fungerar.
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.
Öppna algoritmen Reproject layer.

Välj något av lagren som indata och välj EPSG:23029 som destination CRS. Kör algoritmen och du kommer att få ett nytt lager, identiskt med indatalagret, men med en annan CRS. Det kommer att visas på samma område av duken som de andra, eftersom QGIS kommer att omprojicera det i farten, men dess ursprungliga koordinater är annorlunda. Du kan se det genom att köra algoritmen Export/Add geometry columns med det nya lagret som indata och konstatera att de tillagda koordinaterna skiljer sig från dem i attributtabellerna för båda de två lager som vi hade beräknat tidigare.