반응형

     정보

    • 업무명     : 한국 주요 좌표계 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
    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기