GISProjekt R

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.