항공사진 지오레퍼런싱

경고

This tutorial is now obsolete. A new and updated version is available at 항공사진 지오레퍼런싱 (QGIS3)

QGIS 예제 :doc:`Georeferencing Topo Sheets and Scanned Maps`에서 지오레퍼런시 기본 과정을 살펴보았습니다. 거기서는 스캔된 지도에서 좌표를 읽어내고 수작업으로 좌표를 입력하는 방법이 포함되어 있습니다. 많은 경우 지도에 인쇄된 좌표가 없음에도 이미지에 지오레퍼런싱을 합니다. 그 경우 다른 지오레퍼런스 자료를 입력자료로 사용할 수 있습니다. 이 예제에서는 지오레퍼런싱 과정에서 기존의 오픈 데이터 소스를 어떻게 사용하는 지를 배우게 될 것입니다.

과업 개요

풍선을 이용해 찍은 고화질 영상을 오픈스트리트맵의 레퍼런스 좌표를 이용하여 지오레퍼런스합니다.

기타 스킬

  • 초고화질 공공 도메인 영상을 다운로드합니다.

  • QGIS에서 오픈레이어 플러그인을 사용합니다.

  • cs2cs 커맨드라인 툴을 이용한 다른 투영이미지간의 좌표를 전환합니다.

  • 지오레퍼런스툴에서 GCP 포인트를 입력한 기존 지오레퍼런스 레이어를 사용합니다.

  • 데이터값이 없는 레이어를 세팅 합니다.

데이터 획득

이 예제에서는 The Public Laboratory.에서 멋진 연과 풍선을 이용해 찍은 이미지를 사용할 것입니다. The Public Laboratory에서는 사용가능한 지오레퍼런스된 이미지를 만들지만 여기서는 지오레펀스되지 않은 JPG 이미지를 다운로드 할 것이고 QGIS에서 지오레퍼런싱 과정을 거칠 것입니다. The Public Laboratory가 제공하는 이미지가 좋다면 구글어스에서 탐색 explore it 할 수 있습니다.

뉴욕의 워싱턴 스퀘어 파크 `Washington Square Park, New York <http:// publiclaboratory.org/map/washington-square-park-new-york-new-york/2012-10-01>`_의 JPG 이미지를 다운로드합니다. 마우스 오른쪽 버튼을 클릭하여 JPG버튼을 클릭하고 다른 링크로 저장 :guilabel:`Save link as…`을 선택합니다.

편리하게도, 데이터셋을 아래 링크로에서 바로 다운로드하실 수 있습니다.

newyorkcity-washingtonsquarepark.jpg

과정

  1. 이 예제에서는 레퍼런스 레이어로 오픈스트리트맵을 사용할 것입니다. 메뉴에서 플러그인 –> 플러그인 관리 및 설치 –> 설치되지 않음 Plugins ‣ Manage and install plugins ‣ Get more 에서 오픈레이어 플러그인을 설치합니다. QGIS에서 플러그인 사용에 대한 추가 정보는 :doc:`using_plugins`를 보시기 바랍니다.

../_images/1160.png
  1. 버젼에 따라 메뉴의 위치가 달라질 수 있지만, 일단 인스톨이 완료된 후 메뉴에서 플러그인 –> OpenLayers plugin –> 오픈스트리트맵 레이어 추가 :menuselection:`Plugins –> OpenLayers plugin –> Add OpenStreetMap layer`로 갑니다. 이것은 오픈스트리트맵 데이터 `OpenStreetMap data <http://www.openstreetmap.org/>`_에서 만들어진 프리렌더 타일 레이어를 추가할 것입니다.

../_images/2133.png
  1. 이제 오픈스트리트맵 레이어가 QGIS에 나타납니다. 이 레이어의 좌표체계(CRS)를 살펴보십시오. EPSG 3857 Pseudo Mercator로 세팅되어 있습니다.이 레이어에서 참고할 좌표가 이 CRS이므로 그것을 아는 것은 중요합니다.

../_images/375.png
  1. 이제 해야할 일은 지오레퍼런스를 시도할 지역의 인근지역을 찾는 것입니다. 팬과 줌 툴을 이용하여 오픈스트리트맵 레이어에서 지역을 찾습니다. 그러나 훗날 도움을 줄 수도 있는 또다른 툴을 설명하는 기회를 가질 수 있습니다. 다운로드 한 이미지가 뉴욕의 Washington Square Park임을 알고 있습니다. 만약 이 장소를 찾는다면 위키페디아에서 찾을 수 있을 것입니다. 이 공원의 좌표가 거기네 나와 있습니다.

../_images/443.png
  1. 좌표는 도/분/초이고 위도와 경도임을 주목해야 합니다. 그러나 레이어가 메카토르 투영이므로 공원을 찾기 위해 메카토르 좌표가 필요합니다 여기 **cs2cs**라고 하는 커맨드라인 툴이 있습니다. OSGeo4W 인스톨러로부터 QGIS를 설치했다면 QGiS에는 사전에 설치가 되어 있습니다. 터미널 윈도우창을 시작하고``cs2cs``를 입력하여 사용가능한지 살펴봅니다. 윈도우 사용자는 메뉴 시작 –> OSGeo4W –> MSYS :menuselection:`Start –> OSGeo4W –> MSYS`에서 터미널을 찾을 수 있습니다.

참고

MacOS users can locate the cs2cs tool at /Library/Frameworks/PROJ.Framework/Programs/cs2cs

../_images/537.png
  1. 일단 cs2cs 툴이 시스템에 있는 것을 확인했다면 경도와 위도를 메카토르 좌표로 변경할 때입니다. 이 툴을 사용하는 방법은 소스 source`와 목표 :guilabel:`destination CRS 를 명기하는 것입니다. CRS의 정의는 PROJ4 string 혹은 EPSG code <http://www.epsg-registry.org/>`_가 될 것입니다. 이미 입력 및 출력 CRS에 대한 EPSG 코드를 알고 있으므로 이것을 이용할 것입니다. 툴을 가장 쉽게 이용하는 방법은 커맨드 라인에 좌표를 직접 입력하는 것입니다. 주목할 점은 툴이 `X Y 순서로 좌표를 받아들인다는 것입니다. 그래서 ‘위도 경도’를 입력할 필요가 있습니다. 터미널에 다음의 명령을 입력하고 엔터를 칩니다. 알아둘 것은 인용부호 (“)는 역슬래쉬 ()로 회피할 수 있습니다. 일단 엔터를 치면 툴은 좌표 작업을 수행하고 EPSG 3857 CRS에서 X Y 좌표를 표시해 줍니다.

echo "-73d59'51\" 40d43'51\"" | cs2cs +init=EPSG:4326 +to +init=EPSG:3857

-8237364.02 4972720.34 0.00

먄약 위 명령이 작동하지 않는다면 다음의 명령을 따라해 보십시오.

echo -73d59'51 40d43'51 | cs2cs +init=EPSG:4326 +to +init=EPSG:3857
../_images/636.png
  1. 이들 좌표를 복사합니다. 그리고 QGIS로 전환합니다. QGIS 윈도우 아랫창에서 좌표가 표시된 텍스트 상자를 볼 수 있습니다. X, Y로 좌표를 입력합니다. 엔터를 누릅니다. 지도가 살짝 변환되는 것을 볼 수 있습니다. 그러나 줌은 아닙니다. 이 지역을 확대하기 위해서는 좌표 상자 옆에 있는 축척 드롭다운에서 축척 1:2500을 선택합니다. 엔터를 칩니다.

../_images/736.png
  1. 자 보십시오! 이제 캔버스에서 Washington Square Park 지역을 봅니다. 이제 지오레퍼런싱을 할 차례입니다. 메뉴 래스터 –> 지오레퍼런서 –> 지오레퍼런서 Raster ‣ Georeferencer ‣ Georeferencer`에서 **Georeferencer**를 실행합니다. 메뉴가 보이지 않는다면 메뉴 플러그인 ‣ 플러그인 관리 및 설 ‣ 설치 :menuselection:`Plugins ‣ Manage and install Plugins ‣ Installed`에서 :guilabel:`Georeferencer GDAL 플러그인을 활성화 시키십시오.

../_images/835.png
  1. 지오레퍼런서 Georeferencer 창에서 메뉴 파일 –> 래스터 열기 File ‣ Open raster 로 가십시오. 다운로드한 JPG파일을 찾고 :guilabel:`Open`를 클릭합니다.

../_images/936.png
  1. 좌표체계선택 :guilabel:`Coordinate Reference System Selector`에서 :guilabel:`EPSG:3857 Pseudo Mercator`를 선택합니다.

../_images/1043.png
  1. 이제 툴바에서 포인트 추가 Add Point 단추를 클릭하고 영상에서 쉽게 구분할 수 장소를 선택합니다. 코너, 교차점, 기둥 등이 좋은 컨트롤 포인트입니다.

../_images/1161.png
  1. 일단 영상의 컨트롤 포인트 위치를 클릭하면 지도의 좌표를 묻는 팝업창을 만날 것입니다. 지도캔버스에서 From map canvas 단추를 클릭합니다.

../_images/1246.png
  1. 참고 레이어 즉, 오픈스트리트맵 레이어에서 몇 위치를 찾고 그곳을 클릭합니다. 맵 캔버스위에서 클릭할 때마다 좌표가 자동적으로 생성됩니다. OK를 클릭합니다. 마찬가지로, 영상에서 적어도 4개의 점을 선택하고 참고 레이어로부터 그들의 좌표를 추가합니다.

../_images/1344.png
  1. 이제 메뉴 설정 –> 변환 설정 :menuselection:`Settings –> Transformation settings.`을 갑니다.

../_images/1441.png
  1. 아래 보인 것과 같이 설정을 선택합니다. 완료 후 QGiS에 불러오기 Load in QGIS when done 버튼이 체크되어 있는지 확인합니다.OK를 클릭합니다. 지오레퍼런서 Georeferencer`창으로 되돌아 가서 메뉴 파일 –> 지오레퍼런싱 시작 :menuselection:`File –> Start georeferencing 으로 갑니다. 이것은 GCP를 사용하여 이미지를 보정할 것이고 목표 래스터를 만들것 입니다.

../_images/1537.png
  1. 일단 과정이 종료되면 QGIS상에 지오레퍼싱된 레이어가 나타날 것입니다. 만약 모든 것이 잘 수행되었다면 오픈스트리트맵에 잘 중첩되는 것을 볼 수 있을 것입니다.

../_images/1635.png
  1. 결과물을 멋지게 만들기 위하여 데이터가 없는 검은색과 하얀색 부분을 제거합니다. 이미지 레이어에서 마우스 오른쪽 버튼을 클릭하여 속성 :guilabel:`Properties`을 선택합니다.

../_images/1734.png
  1. 투명도 Transparency`탭으로 전환합니다. 이미지 상엣 데이터값이 없는 어떤 검은색 혹은 흰색 픽셀도 나타내고 투명하게 만듭니다. 데이터값없음 :guilabel:`No data value 에 9을 입력합니다. 또한 사용자 정의 투명도 설정 옵션 Custom transparency options`에서 :guilabel:`+ 단추를 클릭하고 각 밴드에서 투명 픽셀값으로 255를 추가합니다. 그리고 투명도 ::guilabel:`Percent transparent`에 100을 입력합니다. :guilabel:`OK`를 클릭합니다.

../_images/1830.png
  1. 이제 베이스 레이어 위에 지오레퍼런스된 멋진 이미지가 중첩된 것을 볼 수 있을 것입니다.

../_images/1923.png

If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)