W poszukiwaniu EPSG
Często zdarza nam się, że potrzebujemy odnaleźć kod EPSG konkretnego układu współrzędnych np. w celu nadania go naszym danym przestrzennym. Oczywiście możemy skorzystać ze strony epsg.io, ale jest prostszy sposób i to w jeden z bibliotek R – rgdal. Załadujmy ją:
library(rgdal)
Za pomocą funkcji make_EPSG() do zmiennej proj zapiszemy wszystkie dane o układach współrzędnych:
proj <- make_EPSG()
Zmienna proj jest klasy data.frame i zawiera 3 kolumny: kod EPSG, nazwa układu, parametry w formacie proj4
> head(proj) code note prj4 1 3819 # HD1909 +proj=longlat +ellps=bessel +towgs84=595.48,121.69,515.35,4.115,-2.9383,0.853,-3.408 +no_defs 2 3821 # TWD67 +proj=longlat +ellps=aust_SA +no_defs 3 3824 # TWD97 +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs 4 3889 # IGRS +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs 5 3906 # MGI 1901 +proj=longlat +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +no_defs 6 4001 # Unknown datum based upon the Airy 1830 ellipsoid +proj=longlat +ellps=airy +no_defs
Poszukiwać interesującego nas układu możemy z użyciem funkcji grepl. Funkcja ta służy do znajdowania ciągów znaków w stringach. Dla przykładu znajdźmy wszystkie układy zawierające „Poland” w nazwie:
proj[grepl(pattern = "Poland",x = proj$note),1:2]
> proj[grepl(pattern = "Poland",x = proj$note),1:2] code note 670 2171 # Pulkovo 1942(58) / Poland zone I (deprecated) 671 2172 # Pulkovo 1942(58) / Poland zone II 672 2173 # Pulkovo 1942(58) / Poland zone III 673 2174 # Pulkovo 1942(58) / Poland zone IV 674 2175 # Pulkovo 1942(58) / Poland zone V 675 2176 # ETRS89 / Poland CS2000 zone 5 676 2177 # ETRS89 / Poland CS2000 zone 6 677 2178 # ETRS89 / Poland CS2000 zone 7 678 2179 # ETRS89 / Poland CS2000 zone 8 679 2180 # ETRS89 / Poland CS92 1610 3120 # Pulkovo 1942(58) / Poland zone I
Po znalezieniu EPSG lub proj4 przypisujemy go do naszych danych przestrzennych.