[R] 한국 주요 좌표계에 대한 proj4 인자 및 지도 예시

 정보

  • 업무명     : 한국 주요 좌표계 EPSG 코드 및 proj4 인자를 이용하여 주요 도법 지도 그리기

  • 작성자     : 박진만

  • 작성일     : 2020-10-25

  • 설   명      :

  • 수정이력 :

 

 내용

[특징]

  • 국내 주요 기관으로부터 쓰이는 proj4 인자 설명 및 예시 이미지를 그려보았다.

 

[기능]

  • 하단 참조

 

[활용 자료]

  • 하단 참조

 

[자료 처리 방안 및 활용 분석 기법]

  • 없음

 

[사용법]

  • 두개 그룹의 입력자료 다운로드 (아래의 사이트에서  1. 대한민국 선택 후 다운로드 (한반도 영역) / 2. 전 세계 지도 다운로드 (내부 링크에 설명 존재)

    gadm.org/download_world.html
 

GADM

 

gadm.org

  • 패키지 설치

  • 소스코드 실행

 

 

[사용 OS]

  • Windows10

 

[사용 언어]

  • R v4.0.2

  • R Studio v1.2.5033

 

 소스 코드

전지구 좌표계
  • 전 세계를 한번에 나타낼 때 주로 사용하는 좌표계이다.

 

[WGS84 경위도 좌표계]

  • GPS가 사용하는 좌표계

  • proj4 인자 : +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs 

  • 소스코드 및 예시 이미지

(첨부 예정)

 

[Bessel 1841 경위도 좌표계]

  • 한국과 일본에 적합한 지역 타원체 사용 좌표계

  • proj4 인자 : proj=longlat +ellps=bessel +no_defs +towgs84=-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43

  • 소스코드 및 예시 이미지

(첨부 예정)

 

[GRS80 경위도 좌표계]

  • WGS84와 거의 유사함

  • proj4 인자 : +proj=longlat +ellps=GRS80 +no_defs

  • 소스코드 및 예시 이미지

 

[Google Mercator]

  • 구글지도 / Bing 지도 / Yahoo 지도 / OSM 에서 현재 사용중인 좌표계

  • proj4 인자 : +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

  • 소스코드 및 예시 이미지

 

[전지구 좌표게 (UTM) ]

전세계를 6도 단위로 나누는 표준적인 TM 좌표계 (주로 군사목적으로 사용) 

 

[UTM52N (WGS84)]

  • 경도 120 ~ 126도 사이에서 사용

  • proj4 인자 : +proj=utm +zone=52 +ellps=WGS84 +datum=WGS84 +units=m +no_defs

  • 소스코드 및 예시 이미지

 

[UTM51N (WGS84)]

  • 경도 126 ~ 132도 사이에서 사용

  • proj4 인자 : +proj=utm +zone=51 +ellps=WGS84 +datum=WGS84 +units=m +no_defs

  • 소스코드 및 예시 이미지

 

[KATEC 계열 좌표계]

한반도 전체를 하나의 좌표계로 나타낼 때 많이 사용하는 좌표계.

 

[UTM-K (Bessel)]

  • 새주소지도에서 사용중

  • proj4 인자 : +proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=1000000 +y_0=2000000 +ellps=bessel +units=m +no_defs +towgs84=-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43

  • 소스코드 및 예시 이미지 (티스토리 오류로 인해 소스코드 직접 업로드가 불가능합니다.)

library(rgdal)
library(ggplot2)
library(rgeos)
library(scales)
library(raster)

world_shape<-getData("GADM", country="AUT", level=0)

shape <- readOGR(dsn = path.expand("./gdam/gadm36_KOR_2.shp"),
                 layer = "gadm36_KOR_2")

projection="+proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=1000000 +y_0=2000000 +ellps=bessel +units=m +no_defs +towgs84=-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43"

world_shape = spTransform(shape, CRS(projection))

world = fortify(world_shape)
head(world)

# mapping 
ggplot() +
  theme_bw() +
  geom_polygon(data=world, aes(x=long,y=lat,group=group), fill="white") +
  geom_path(data=world, aes(x=long,y=lat,group=group), colour='black') +
  geom_point(aes(x = 0,y = 0),color = "black",size = 3) + 
  xlim(min(world$long),max(world$long)) +
  ylim(min(world$lat),max(world$lat)) +
  ggsave("./out.png",dpi = 600)

결과 이미지 예시

 

[UTM-K (GRS80)]

  • 네이버지도에서 사용중

  • proj4 인자 : +proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=1000000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs 

  • 소스코드 및 예시 이미지

library(rgdal)
library(ggplot2)
library(rgeos)
library(scales)
library(raster)

world_shape<-getData("GADM", country="AUT", level=0)

shape <- readOGR(dsn = path.expand("./gdam/gadm36_KOR_2.shp"),
                 layer = "gadm36_KOR_2")

projection="+proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=1000000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs "

world_shape = spTransform(shape, CRS(projection))

world = fortify(world_shape)
head(world)

# mapping 
ggplot() +
  theme_bw() +
  geom_polygon(data=world, aes(x=long,y=lat,group=group), fill="white") +
  geom_path(data=world, aes(x=long,y=lat,group=group), colour='black') +
  geom_point(aes(x = 0,y = 0),color = "black",size = 3) + 
  xlim(min(world$long),max(world$long)) +
  ylim(min(world$lat),max(world$lat)) +
  ggsave("./out.png",dpi = 600)

 

 

[네비게이션용 KATEC 좌표계(KOTI-KATEC)]

  • 네이게이션에 사용되는 비공식 좌표계

  • proj4 인자 : +proj=tmerc +lat_0=38 +lon_0=128 +k=0.9999 +x_0=400000 +y_0=600000 +ellps=bessel +units=m +no_defs +towgs84=-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43

  • 소스코드 및 예시 이미지

library(rgdal)
library(ggplot2)
library(rgeos)
library(scales)
library(raster)

world_shape<-getData("GADM", country="AUT", level=0)

shape <- readOGR(dsn = path.expand("./gdam/gadm36_KOR_2.shp"),
                 layer = "gadm36_KOR_2")

projection="+proj=tmerc +lat_0=38 +lon_0=128 +k=0.9999 +x_0=400000 +y_0=600000 +ellps=bessel +units=m +no_defs +towgs84=-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43"

world_shape = spTransform(shape, CRS(projection))

world = fortify(world_shape)
head(world)

# mapping 
ggplot() +
  theme_bw() +
  geom_polygon(data=world, aes(x=long,y=lat,group=group), fill="white") +
  geom_path(data=world, aes(x=long,y=lat,group=group), colour='black') +
  geom_point(aes(x = 0,y = 0),color = "black",size = 3) + 
  xlim(min(world$long),max(world$long)) +
  ylim(min(world$lat),max(world$lat)) +
  ggsave("./out.png",dpi = 600)

 

[현재 국토지리정보원 표준]

2002년 이후에 국토지리정보원 지형도에서 사용중인 좌표계

 

[서부원점(GRS80) 좌표계]

  • +proj=tmerc +lat_0=38 +lon_0=125 +k=1 +x_0=200000 +y_0=600000 +ellps=GRS80 +units=m +no_defs

  • 소스코드 및 예시 이미지

[중부원점(GRS80) 좌표계]

  • proj4 인자 : +proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=600000 +ellps=GRS80 +units=m +no_defs

  • 소스코드 및 예시 이미지

 

[동부원점(GRS80) 좌표계]

  • proj4 인자 : +proj=tmerc +lat_0=38 +lon_0=129 +k=1 +x_0=200000 +y_0=600000 +ellps=GRS80 +units=m +no_defs

  • 소스코드 및 예시 이미지

 

[동해(울릉)원점(GRS80) 좌표계]

  • proj4 인자 : +proj=tmerc +lat_0=38 +lon_0=131 +k=1 +x_0=200000 +y_0=600000 +ellps=GRS80 +units=m +no_defs

  • 소스코드 및 예시 이미지

 

 참고 문헌

[논문]

  • 없음

[보고서]

  • 없음

[URL]

  • 없음

 

 문의사항

[기상학/프로그래밍 언어]

  • sangho.lee.1990@gmail.com

[해양학/천문학/빅데이터]

  • saimang0804@gmail.com