GISProjekt R

Reprojekcja warstwy wektorowej

Ostatnio pokazaliśmy jak nadać układ współrzędnych wczytanej warstwie wektorowej. Co w przypadku, gdy chcemy przeliczyć współrzędne obiektów z jednego układu do drugiego? Możemy do tego wykorzystać narzędzie spTransform z biblioteki sp (biblioteka sp ładuje się razem z rgdal).

Wczytajmy warstwę do R:

library(rgdal)
kolej <- readOGR("D:/","kolej",stringsAsFactors = F)

Wyświetlamy informację o warstwie kolej:

> kolej
class       : SpatialLinesDataFrame
features    : 213
extent      : 638667.5, 678777.7, 490053.6, 519583.1  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=tmerc +lat_0=0 +lon_0=19 +k=0.9993 +x_0=500000 +y_0=-5300000 +ellps=GRS80 +units=m +no_defs
variables   : 4
names       :    osm_id, code,       fclass, name
min values  : 120785643, 6101, narrow_gauge,   NA
max values  : 460572267, 6106,         rail,   NA

Warstwa jest w układzie PUWG 1992. Przetransformujmy współrzędne obiektów do układu geograficznego WGS84 (EPSG:4326).

Najpierw zapiszmy parametry układu do zmiennej uw_wgs84:

uw_wgs84 = crs("+init=EPSG:4326")
> uw_wgs84
CRS arguments:
+init=EPSG:4326 +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0

Korzystając z funkcji spTransform przeliczmy wszystkie współrzędne warstwy kolej do nowego układu:

kolej_wgs84 = spTransform(kolej,uw_wgs84)

Wyświetlmy informacje o warstwie:

> kolej_wgs84
class       : SpatialLinesDataFrame
features    : 213
extent      : 21.04023, 21.6354, 52.25615, 52.51271  (xmin, xmax, ymin, ymax)
coord. ref. : +init=EPSG:4326 +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
variables   : 4
names       :    osm_id, code,       fclass, name
min values  : 120785643, 6101, narrow_gauge,   NA
max values  : 460572267, 6106,         rail,   NA

Obiekty zostały przetransformowane do nowego układu.