항공사진 지오레퍼런싱¶
경고
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…`을 선택합니다.
편리하게도, 데이터셋을 아래 링크로에서 바로 다운로드하실 수 있습니다.
과정¶
이 예제에서는 레퍼런스 레이어로 오픈스트리트맵을 사용할 것입니다. 메뉴에서 플러그인 –> 플러그인 관리 및 설치 –> 설치되지 않음 `using_plugins`를 보시기 바랍니다.
에서 오픈레이어 플러그인을 설치합니다. QGIS에서 플러그인 사용에 대한 추가 정보는 :doc:
버젼에 따라 메뉴의 위치가 달라질 수 있지만, 일단 인스톨이 완료된 후 메뉴에서 플러그인 –> OpenLayers plugin –> 오픈스트리트맵 레이어 추가 :menuselection:`Plugins –> OpenLayers plugin –> Add OpenStreetMap layer`로 갑니다. 이것은 오픈스트리트맵 데이터 `OpenStreetMap data <http://www.openstreetmap.org/>`_에서 만들어진 프리렌더 타일 레이어를 추가할 것입니다.
이제 오픈스트리트맵 레이어가 QGIS에 나타납니다. 이 레이어의 좌표체계(CRS)를 살펴보십시오. EPSG 3857 Pseudo Mercator로 세팅되어 있습니다.이 레이어에서 참고할 좌표가 이 CRS이므로 그것을 아는 것은 중요합니다.
이제 해야할 일은 지오레퍼런스를 시도할 지역의 인근지역을 찾는 것입니다. 팬과 줌 툴을 이용하여 오픈스트리트맵 레이어에서 지역을 찾습니다. 그러나 훗날 도움을 줄 수도 있는 또다른 툴을 설명하는 기회를 가질 수 있습니다. 다운로드 한 이미지가 뉴욕의 Washington Square Park임을 알고 있습니다. 만약 이 장소를 찾는다면 위키페디아에서 찾을 수 있을 것입니다. 이 공원의 좌표가 거기네 나와 있습니다.
좌표는 도/분/초이고 위도와 경도임을 주목해야 합니다. 그러나 레이어가 메카토르 투영이므로 공원을 찾기 위해 메카토르 좌표가 필요합니다 여기 **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
일단 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
이들 좌표를 복사합니다. 그리고 QGIS로 전환합니다. QGIS 윈도우 아랫창에서 좌표가 표시된 텍스트 상자를 볼 수 있습니다. X, Y로 좌표를 입력합니다. 엔터를 누릅니다. 지도가 살짝 변환되는 것을 볼 수 있습니다. 그러나 줌은 아닙니다. 이 지역을 확대하기 위해서는 좌표 상자 옆에 있는 축척 드롭다운에서 축척 1:2500을 선택합니다. 엔터를 칩니다.
자 보십시오! 이제 캔버스에서 Washington Square Park 지역을 봅니다. 이제 지오레퍼런싱을 할 차례입니다. 메뉴 래스터 –> 지오레퍼런서 –> 지오레퍼런서
플러그인을 활성화 시키십시오.
지오레퍼런서 Georeferencer 창에서 메뉴 파일 –> 래스터 열기 로 가십시오. 다운로드한 JPG파일을 찾고 :guilabel:`Open`를 클릭합니다.
좌표체계선택 :guilabel:`Coordinate Reference System Selector`에서 :guilabel:`EPSG:3857 Pseudo Mercator`를 선택합니다.
이제 툴바에서 포인트 추가 Add Point 단추를 클릭하고 영상에서 쉽게 구분할 수 장소를 선택합니다. 코너, 교차점, 기둥 등이 좋은 컨트롤 포인트입니다.
일단 영상의 컨트롤 포인트 위치를 클릭하면 지도의 좌표를 묻는 팝업창을 만날 것입니다. 지도캔버스에서 From map canvas 단추를 클릭합니다.
참고 레이어 즉, 오픈스트리트맵 레이어에서 몇 위치를 찾고 그곳을 클릭합니다. 맵 캔버스위에서 클릭할 때마다 좌표가 자동적으로 생성됩니다. OK를 클릭합니다. 마찬가지로, 영상에서 적어도 4개의 점을 선택하고 참고 레이어로부터 그들의 좌표를 추가합니다.
이제 메뉴 설정 –> 변환 설정 :menuselection:`Settings –> Transformation settings.`을 갑니다.
아래 보인 것과 같이 설정을 선택합니다. 완료 후 QGiS에 불러오기 Load in QGIS when done 버튼이 체크되어 있는지 확인합니다.OK를 클릭합니다. 지오레퍼런서 Georeferencer`창으로 되돌아 가서 메뉴 파일 –> 지오레퍼런싱 시작 :menuselection:`File –> Start georeferencing 으로 갑니다. 이것은 GCP를 사용하여 이미지를 보정할 것이고 목표 래스터를 만들것 입니다.
일단 과정이 종료되면 QGIS상에 지오레퍼싱된 레이어가 나타날 것입니다. 만약 모든 것이 잘 수행되었다면 오픈스트리트맵에 잘 중첩되는 것을 볼 수 있을 것입니다.
결과물을 멋지게 만들기 위하여 데이터가 없는 검은색과 하얀색 부분을 제거합니다. 이미지 레이어에서 마우스 오른쪽 버튼을 클릭하여 속성 :guilabel:`Properties`을 선택합니다.
투명도 Transparency`탭으로 전환합니다. 이미지 상엣 데이터값이 없는 어떤 검은색 혹은 흰색 픽셀도 나타내고 투명하게 만듭니다. 데이터값없음 :guilabel:`No data value 에 9을 입력합니다. 또한 사용자 정의 투명도 설정 옵션 Custom transparency options`에서 :guilabel:`+ 단추를 클릭하고 각 밴드에서 투명 픽셀값으로 255를 추가합니다. 그리고 투명도 ::guilabel:`Percent transparent`에 100을 입력합니다. :guilabel:`OK`를 클릭합니다.
이제 베이스 레이어 위에 지오레퍼런스된 멋진 이미지가 중첩된 것을 볼 수 있을 것입니다.
If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)