Definicja układu współrzędnych w R
Często zdarza się, że wczytywane przez nas dane rastrowe lub wektorowe nie mają przypisanego układu współrzędnych. Brak zdefiniowanego układu przy korzystaniu z narzędzi analiz przestrzennych może powodować błędy. Pokażemy zatem jak w prosty sposób przypisać układ do warstwy.
Wczytajmy używaną przez nas wcześniej warstwę kolej bez zdefiniowanego układu współrzędnych (wystarczy usunąć plik PRJ):
library(rgdal) kolej <- readOGR("D:/","kolej",stringsAsFactors = F)
Wyświetlmy informację o warstwie kolej:
> kolej class : SpatialLinesDataFrame features : 213 extent : 638667.5, 678777.7, 490053.6, 519583.1 (xmin, xmax, ymin, ymax) coord. ref. : NA variables : 4 names : osm_id, code, fclass, name min values : 120785643, 6101, narrow_gauge, NA max values : 460572267, 6106, rail, NA
Widać, że atrybut coord. ref. ma wartość NA, co znaczy że układ jest nieznany. Do jego nadawania użyjemy narzędzia projection z biblioteki raster:
library(raster) > projection(kolej) [1] NA
Wiemy, że dane geometryczne w tej warstwie są zdefiniowane w układzie PUWG 1992. Najpierw musimy ten układ zdefiniować wykorzystując do tego funkcję crs z biblioteki raster. Argumentem tej funkcji mogą być parametry układu zapisane w formacie PROJ4:
puwg1992 = crs("+proj=tmerc +lat_0=0 +lon_0=19 +k=0.9993 +x_0=500000 +y_0=-5300000 +ellps=GRS80 +units=m +no_defs ")
lub też możemy skorzystać z kodów EPSG:
puwg1992 = crs("+init=EPSG:2180")
Układ przypisujemy do warstwy używając wyrażenia:
projection(kolej) = puwg1992
Przedstawiony sposób przypisania układu współrzędnych działa również dla rastrów.