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):
1 2 |
library(rgdal) kolej <- readOGR("D:/","kolej",stringsAsFactors = F) |
Wyświetlmy informację o warstwie kolej:
1 2 3 4 5 6 7 8 9 |
> 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:
1 2 3 |
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:
1 |
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:
1 |
puwg1992 = crs("+init=EPSG:2180") |
Układ przypisujemy do warstwy używając wyrażenia:
1 |
projection(kolej) = puwg1992 |
Przedstawiony sposób przypisania układu współrzędnych działa również dla rastrów.