[R 지리공간 데이터 분석] 좌표계, 좌표 참조 시스템 (CRS, Coordinate Reference Systems)
R 분석과 프로그래밍/R 지리공간데이터 분석 2021. 1. 3. 19:59지난번 포스팅에서는 R의 sf패키지의 st_sfc() 함수를 사용해서 여러개의 기본 지리특성 기하(sfg, Simple feature geometry)들을 하나의 단순 지리특성 칼럼(sfc, Simple feature columns) 객체로 합치는 방법을 소개하였습니다.
지리공간 데이터 분석을 할 때 제일 먼저 해야 하고 또 확인해야 하는 것이 좌표계, 좌표 참조 시스템(Coordinate Reference Systems, CRS)을 설정하고 확인하는 것입니다.
좌표 참조 시스템(CRS) (또는 좌표계, 공간 참조 시스템, Spatial Reference System, SRS) 은 좌표 기반으로 국소, 지역, 또는 전지구적으로 지리상의 객체를 위치시킬 때 사용되는 참조 시스템입니다. 좌표 참조 시스템은 특정 지도 투영법 (map projection)을 정의하고, 서로 다른 좌표 참조 시스템 간의 변환을 할 수 있도록 해줍니다.
위도, 경도 좌표의 기준이 어떻게 되는지, 누가 언제 정의한 좌표 체계인지를 정의해 놓은 것입니다.
오픈소스 PostGIS 에서는 Spatial Reference System Table에 SRID 별로 'auth_name', 'auth_srid', 'srtext', 'proj4text' 등의 정보가 저장되어 있는데요, R에서도 좌표계, 좌표 참조 시스템(CRS)이 있어서 좌표계 간에 변환을 할 수 있게 해줍니다.
참고로, 전세계를 한번에 나타내야 할 때 많이 사용하는 전지구 좌표계로는 WGS84(EPSG:4326), Bessel 1841(EPSG:4004, EPSG:4162), GRS80(EPSG)4019, EPGS:4737), Google Mercator(EPSG:3857) 등이 있습니다.
[전지구 좌표계]
*WGS84 경위도: GPS가 사용하는 좌표계EPSG:4326, EPSG:4166 (Korean 1995)+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs
*Bessel 1841 경위도: 한국과 일본에 잘 맞는 지역타원체를 사용한 좌표계EPSG:4004, EPSG:4162 (Korean 1985)+proj=longlat +ellps=bessel +no_defs +towgs84=-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43
*GRS80 경위도: WGS84와 거의 유사EPSG:4019, EPSG:4737 (Korean 2000)+proj=longlat +ellps=GRS80 +no_defs
*Google Mercator: 구글지도/빙지도/야후지도/OSM 등 에서 사용중인 좌표계EPSG:3857(공식),EPSG:900913(통칭)
+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs
출처: https://www.osgeo.kr/17 [OSGeo(Open Source GeoSpatial) 한국어 지부 - OSGeo Korean Chapter]
한국 주요 좌표계 EPSG 코드 및 proj4 인자 정리는 https://www.osgeo.kr/17 를 참고하세요.
이번 포스팅에서는 R의 sf패키지를 사용해서 단순 지리특성 칼럼(sfc, Simple feature columns)에서
(1) 특정 좌표 참조 시스템(CRS, Coordinate Reference Systems) 지정해주기
(2) 좌표 참조 시스템(CRS, Coordinate Reference Systems) 확인: st_crs()
(3) raw proj4string 을 사용해서 좌표 참조 시스템 지정해주기
를 소개하겠습니다.
(1) 특정 좌표 참조 시스템(CRS, Coordinate Reference Systems) 지정해주기 |
기본 지리특성 칼럼(sfc, Simple feature columns)의 좌표 참조 시스템의 기본 값은 NA (Not Available) 입니다.
library(sf)
|
st_sfc() 함수의 crs 매개변수를 사용해서 특정 좌표 참조 시스템(CRS)을 설정해줄 수 있습니다.
가령, 아래 예에서는 EPSG 코드 4326 번으로 좌표 참조 시스템을 설정하여 보았습니다.
* EPSG 코드의 EPSG는 European Petroleum Survey Group 의 앞글자를 딴 줄임말입니다. EPSG 그룹은 좌표 시스템 정보 데이터베이스와 지도 투영법과 데이터에 대한 표준 문서 자료를 발행하는 곳입니다.
* WGS84 는 World Geodetic System 1984 의 앞글자를 딴 줄임말입니다. WGS84 는 전지구 좌표계로서, 우리가 매일 사용하는 GPS(Global Positioning System), 지도 제작, 측지학 등에서 사용합니다.
## EPSG: European Petroleum Survey Group
point_sfc_wgs
|
(2) 좌표 참조 시스템(CRS, Coordinate Reference Systems) 확인: st_crs() |
좌표 참조 시스템 확인은 st_crs() 함수를 사용합니다.
st_crs(point_sfc_wgs)
|
(3) raw proj4string 을 사용해서 좌표 참조 시스템 지정해주기 |
raw proj4string 을 직접 입력해서 좌표 참조 시스템을 지정해주려면 st_sfc() 함수의 crs 매개변수에 직접 따옴표 안에 proj, datum 을 입력해주면 됩니다. 아래 예는 WGS84를 raw proj4string로 해서 좌표 참조 시스템을 등록한 것입니다.
## to specify CRS using a raw proj4string
|
이번 포스팅이 많은 도움이 되었기를 바랍니다.
행복한 데이터 과학자 되세요! :-)