중요

번역은 여러분이 참여할 수 있는 커뮤니티 활동입니다. 이 페이지는 현재 100.00% 번역되었습니다.

6.1. 수업: 데이터 재투영 및 변환하기

좌표계(CRS) 얘기를 다시 해봅시다. 이전에 간략하게 언급했지만, 실제로 어떤 의미를 가지고 있는지에 대해서는 설명하지 않았습니다.

이 수업의 목표: 벡터 데이터를 재투영하고 변환하기.

6.1.1. ★☆☆ 따라해보세요: 투영

맵 자체는 물론 모든 데이터는 현재 WGS84 라는 좌표계를 사용하고 있습니다. WGS84는 데이터를 표현하는 데 쓰이는 매우 흔한 지리 좌표계(Geographic Coordinate System)입니다. 그러나 이제 곧 설명할 문제점도 가지고 있습니다.

  1. 현재 맵을 저장하십시오.

  2. 그 다음 exercise_data/world/world.qgs 경로에 있는 세계 지도를 여십시오.

  3. Zoom In 도구를 사용해서 남아프리카 공화국으로 확대하십시오.

  4. 창 맨 아래의 상태 바 에 있는 Scale 항목을 통해 축척을 설정해보십시오. 남아프리카 공화국이 보이는 상태에서 1:5,000,000 (5백만 분의 1)로 값을 설정합니다.

  5. Scale 항목에 주의를 기울이면서 맵을 이리저리 이동해보십시오.

축척이 변하는 것을 보셨습니까? 여러분이 1:5,000,000 축척으로 확대한, 화면 정중앙에 있던 포인트를 벗어났기 때문입니다. 그 포인트를 벗어나면 축척이 달라집니다.

그 이유를 이해하려면, 지구의를 생각해보십시오. 남북 방향으로 선이 뻗어 있습니다. 이 경도 선들은 적도에서는 멀리 떨어져 있지만 남극/북극에서 만납니다.

지리 좌표계는 이 구체 상에서 정의되지만, 여러분의 모니터는 평면입니다. 평면에서 구체를 표현하려 할 때, 마치 테니스 공을 잘라서 평평하게 펼치려고 할 때처럼, 왜곡이 발생합니다. 즉 맵 상에서는 경도 선들이 (서로 만나야 할) 극지방에서도 평행하게 떨어져 있습니다. 다시 말해 맵 상에서 적도로부터 멀어질수록, 여러분이 보는 객체의 축척이 점점 커진다는 뜻입니다. 한 마디로 말하자면 맵 상의 위치에 따라 축척이 계속 변한다는 말이지요!

이 문제를 해결하기 위해 투영 좌표계(Projected Coordinate System)를 대신 사용해봅시다. 투영 좌표계는 축척 변화를 감안하여 바로잡는 방식으로 데이터를 “투영”하거나 변환합니다. 따라서 축척을 일정하게 유지하려면 투영 좌표계를 이용해서 데이터를 재투영해야 합니다.

6.1.2. ★☆☆ 따라해보세요: “실시간” 재투영

QGIS는 기본적으로 “실시간(on-the-fly)”으로 데이터를 재투영합니다. 데이터 자체가 다른 좌표계를 이용하고 있더라도, 사용자가 바라는 좌표계로 데이터를 투영할 수 있다는 뜻입니다.

QGIS 우하단에 있는 projectionEnabled Current projection 버튼을 클릭하면 프로젝트의 좌표계를 변경할 수 있습니다.

  1. 대화창이 뜨면, Filter 항목에 global 이라고 입력하십시오. 아래에 있는 Predefined Reference Systems 항목에 좌표계 몇 개가 나타날 것입니다.

  2. WGS 84 / NSIDC EASE-Grid 2.0 Global | EPSG:6933 항목을 클릭해서 선택한 다음 OK 를 클릭하십시오.

    남아프리카 공화국의 형태가 어떻게 변하는지 보셨습니까? 투영체를 바꾸면 지구 상의 객체의 형태가 바뀝니다.

  3. 이전과 마찬가지로 1:5,000,000 축척으로 확대하십시오.

  4. 맵을 이리저리 이동해보십시오.

    축척이 일정하게 유지됩니다!

서로 다른 좌표계를 이용하는 데이터셋을 결합하는 데에도 “실시간” 재투영을 사용할 수 있습니다.

  1. 남아프리카 공화국의 데이터만을 가지고 있는 다른 벡터 레이어를 맵에 추가해보십시오. exercise_data/world/RSA.shp 경로에서 찾을 수 있습니다.

  2. 해당 레이어를 불러오십시오. 범례에 있는 레이어 위에 마우스를 가져가면 레이어의 좌표계를 쉽게 알 수 있습니다. 해당 레이어의 좌표계는 EPSG:3410 입니다.

    보이십니까?

    해당 레이어가 continents 레이어와는 다른 좌표계인데도 스크린에 가시화되었습니다.

6.1.3. ★★☆ 따라해보세요: 데이터셋을 또다른 좌표계로 저장하기

기존 데이터셋을 또다른 좌표계로 내보내야 할 경우가 있습니다. 다음 수업에서 알게 될 테지만, 여러분이 레이어 상에서 거리를 계산해야 하는 경우 레이어의 좌표계가 투영 좌표계인 편이 항상 낫습니다.

‘실시간’ 재투영은 프로젝트 와 연관되어 있지 단일 레이어들과는 연관되어 있지 않다는 사실을 기억하십시오. 다시 말해 레이어가 정확한 위치에 보이더라도 프로젝트와는 다른 좌표계를 가질 수 있다는 뜻입니다.

레이어를 쉽게 또다른 좌표계로 내보낼 수 있습니다.

  1. training_data.gpkg 파일로부터 buildings 데이터셋을 추가하십시오.

  2. Layers 패널에서 buildings 레이어를 오른쪽 클릭하십시오.

  3. 컨텍스트 메뉴에서 Export ► Save Features As… 를 선택하십시오. Save Vector Layer as… 대화창이 열릴 것입니다.

  4. File name 란 옆에 있는 Browse 버튼을 클릭하십시오.

  5. exercise_data/ 디렉터리를 찾아가서 새 레이어의 이름을 buildings_reprojected.shp 로 지정하십시오.

  6. CRS 의 값을 변경하십시오. 드롭다운 메뉴에는 최근 사용했던 좌표계들만 보일 것입니다. 드롭다운 메뉴 옆에 있는 setProjection Select projection 버튼을 클릭하십시오.

  7. Coordinate Reference System Selector 대화창이 열립니다. 대화창의 Filter 란에서 34S 를 검색하십시오.

  8. 목록에서 WGS 84 / UTM zone 34S | EPSG:32734 를 선택하십시오.

    ../../../_images/CRSselector.png
  9. 다른 옵션들은 그대로 유지하십시오. Save Vector Layer as… 대화창이 이제 다음처럼 보일 것입니다:

    ../../../_images/save_vector_dialog.png
  10. OK 를 클릭합니다.

이제 레이어의 예전 투영과 새로운 투영을 비교해보면 서로 다른 두 좌표계들이지만 아직도 중첩하고 있다는 사실을 알 수 있습니다.

6.1.4. ★★★ 따라해보세요: 사용자 고유 투영체 생성하기

QGIS에 기본으로 포함된 투영체 외에도 많은 투영체가 있습니다. 여러분 자신만의 투영체를 생성할 수도 있습니다.

  1. 새로운 맵을 시작하십시오.

  2. world/oceans.shp 데이터셋을 불러오십시오.

  3. Settings ► Custom Projections… 메뉴 항목을 선택하면 다음 대화창이 열릴 것입니다:

    ../../../_images/custom_crs.png
  4. 새 투영체를 생성하려면 symbologyAdd Add new CRS 버튼을 클릭하십시오.

  5. 사용할 흥미로운 투영체는 제1 데어 그린텐 투영도법(Van der Grinten I) 이라고 합니다. Name 란에 이 이름을 입력하십시오.

    이 투영체는 다른 대부분의 투영체와는 달리 직사각형 면이 아니라 원형 면에 지구를 표현합니다.

  6. Format 에서 WKT (Recommended) 를 선택하십시오.

  7. Parameters 란에 다음 문자열을 추가하십시오:

    PROJCRS["unknown",
        BASEGEOGCRS["unknown",
            DATUM["unknown",
                ELLIPSOID["unknown",6371000,0,
                    LENGTHUNIT["metre",1,
                        ID["EPSG",9001]]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8901]]],
        CONVERSION["unknown",
            METHOD["Van Der Grinten"],
            PARAMETER["Longitude of natural origin",0,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8802]],
            PARAMETER["False easting",0,
                LENGTHUNIT["metre",1],
                ID["EPSG",8806]],
            PARAMETER["False northing",0,
                LENGTHUNIT["metre",1],
                ID["EPSG",8807]]],
        CS[Cartesian,2],
            AXIS["(E)",east,
                ORDER[1],
                LENGTHUNIT["metre",1,
                    ID["EPSG",9001]]],
            AXIS["(N)",north,
                ORDER[2],
                LENGTHUNIT["metre",1,
                    ID["EPSG",9001]]]]
    
    ../../../_images/new_crs_parameters.png
  8. OK 를 클릭합니다.

  9. 상태 바의 오른쪽에 있는 projectionEnabled Current CRS 버튼을 클릭해서 프로젝트 좌표계를 변경하십시오.

  10. 여러분이 새로 정의한 투영체를 (Filter 란에서 그 이름을 검색해서) 선택하십시오.

  11. 이 투영체를 적용하면 맵이 다음과 같이 재투영될 것입니다:

    ../../../_images/van_grinten_projection.png

6.1.5. 결론

목적에 따라 유용한 투영체도 달라집니다. 올바른 투영체를 선택함으로써 사용자 맵 상에 피처를 정확하게 표현할 수 있게 됩니다.

6.1.6. 더 읽어볼 거리

이 수업의 고급 부분에서 쓰인 자료는 이 기사 에서 발췌했습니다.

좌표계 에서 더 자세한 정보를 읽어보십시오.

6.1.7. 다음은 무엇을 배우게 될까요?

다음 수업에서는 QGIS의 다양한 벡터 분석 도구들을 사용해서 벡터 데이터를 분석하는 방법을 배울 것입니다.