0.

ModelBuilder를 통한 공간조인 및 속성조인의 활용에 대해 다룬다.

공간정보를 다루다보면 여러가지 형태의 조인을 자주 활용하게된다. ArcGIS를 사용한다면 조인 자체는 간단하게 수행할 수 있지만, 작업한 여러 형태의 데이터를 추출하고 정리하는 것은 귀찮은 작업이다. 이때 ModelBuilder를 활용하는 방법이다. 본인은 국공유지 중 무단으로 점거된 필지를 추출하는 작업을 수행해봤고, 이때 활용한 ModelBuilder를 통해, 공간조인 및 속성조인을 다뤄보려고 한다.



1. 시나리오

주어진 데이터는 다음과 같다. 

Parcel : 연속지적도를 기반으로 생성된, 필지 단위의 데이터.

Object : 건물, 컨테이너박스 등의 시설물객체. 


목표는 위치정보만을 활용할 수 있는 레이어들이 주어졌을 때, 공간조인을 통해 관계를 추출하는 것이다. 즉, 각각 parcel 위에 존재하는 object에 대한 레이어, object가 올라가있는 parcel의 레이어를 추출하는 것을 최종목표로 한다.

ArcGIS는 공간조인을 위해 Spatial Join, Select by location 등(실질적으로 같은 작업의 다른 이름이다)의 기능을 제공한다. 공간조인을 통해 중첩되는 object과 parcel에 대한 정보를 추출하고, 추출한 정보와 기존의 각 object, parcel 레이어들을에 대해 속성정보 기반의 테이블 조인을 수행해 필요한 레이어를 생성한다. 실질적인 작업은 다음과 같은 순서로 이루어질 것이다.

  1.  공간조인 기능을 활용해 parcel 위에 존재하는 object들을 추출한다.
  2.  추출한 I를 기반으로, object가 존재하는 parcel을 추출한다.


2. ModelBuilder

전체 과정을 모델빌더로 작성하면 다음과 같다. 특히, 1번을 통해 I을 수행하고, 2번을 통해 II를 수행한다.

2.1 Spatial Join

"Spatial Join"이라는 공간조인 툴을 활용해 object와 parcel의 위치관계 정보를 추출했다. 

"Spatial Join"를 사용하기 위해서 다양한 입력변수 및 option을 입력해야된다. ArcGIS 기본적으로 입력해야되는 각 항목들에 대해 친절하게 설명을 해주기에 그때그때 읽어보면서 사용하면되고, 어떤 상황에서 필요한 툴이 무엇인지 아는 것이 중요하다. 고로 이러한 문제가 해결하기 위해 "Spatial Join"을 활용한다는 것만 확실히 기억하도록하면 된다. 여기서는 필수적인 항목인 Target Features, Join Features, Matching option에 대해서만 간략하게 언급하고 넘어가겠다.

Match option은 공간조인을 하는 방법을 선택하는 옵션으로 경우 굉장히 다양하다. "intersect", "closest", "HAVE_THEIR_CENTER_IN", "within", contains" .... 등. 여기서 설명하기에는 너무 방대하고, ArcGIS는 간단한 설명을 함께 제공해주니 이를 읽어보고 목적에 부합하는 것을 사용하는 것이 가장 좋다. 본 작업에서는 데이터의 특성(간략하게, parcel의 형태가 장방형인 것들이 다수 존재하고, object 데이터가 불완전했기 때문에 엄밀한 기준의 매칭을 할 필요가 있었다)으로 인해 object의 중심점이 parcel 내부에 위치하는 경우에 대해서 공간조인을 수행하는 "HAVE_THEIR_CENTER_IN"를 선택했다. 

Target Features와 Join Features는 각각 공간조인을 수행할 때 결과로 추출되는 레이어, 기준이 되는 레이어를 뜻한다. 공간조인의 목적과 Match option에 따라 올바른 선택을 해야한다. Target과 Join이 바뀔 경우 같은 공간조인에 대해 주체가 object냐 혹은 parcel이냐에 대한 문제가 아닌 상이한 결과가 추출된다. 거꾸로 한 경우, 중심점이 object 내에 존재하는 parcel이 추출될 것이다! 얼마나 다른 결과일지 상상해보라.

* 참고로 "Select by location" 이라는 툴도 비슷한 역할을 수행한다. 툴을 열어보면 입력 항목 및 옵션 등이 "Spatial Join"과 완전히 동일한 것을 알 수 있다. 차이점은 "Spatial Join"은 공간조인 후, 새로운 레이어로 결과를 추출해 주는 반면에, "Select by location"은 물론 동일한 결과에 대해, 각 항목들을 select만 한 채로 작업을 마무리 한다. 본 모델에서는 'parcel 위에 존재하는 object에 대한 레이어'를 한번에 추출하기위해 "Spatial Join"을 사용했다.

"Spatial Join"에 object를 Target Features, parcel을 Join Features로 연결한다. Match option은 "HAVE_THEIR_CENTER_IN"을 선택했다. 결과는 object_SpatialJoin.shp로 추출되고 다음과 같다. parcel 위에 존재하는 object들만 선택이 된 것을 확인할 수 있다.


2.2 Join

"Add Join" 툴을 기반으로, 생성한 object_SpatialJoin 레이어와 속성정보를 통한 조인을 활용하여 object가 위에 존재하는 parcel을 추출한다. 

object_SpatialJoin에는 연관된 object와 parcel의 필드가 모두 존재하기 때문에 이를 활용해 parcel과 테이블 조인을 수행했다. 필드 기반의 Join을 위해서는 각각 특징이 있는 여러 Tool이 존재하지만 본 작업에서는 "Add Join"을 활용했다. "Add Join"은 ArcGIS를 활용할 때 가장 기본적으로 사용하는 Join 툴이다. 레이어나 테이블에 마우스 우클릭을 통해 Join/Relate를 선택해 수행하는 방법이 "Add Join"에 대응된다. 입력 및 동작이 이와 같기 때문에 따로 설명은 하지 않겠다

*혹은 "Join Field"라는 툴을 사용할 수도 있다. 차이점을 살펴보면, "Add Join"의 경우 테이블을 조인한 상태로 작업을 끝내지만, "Join Field"의 경우 조인 후, 입력 테이블 혹은 레이어에 테이블조인한 레이어나 테이블의 필드를 복사해서 가져온 뒤, join을 제거하는 것까지의 작업을 수행한다. 기존의 데이터에 특정 값을 추가하는 등의 특정 목적의 작업수행에서는 하나의 툴로 깔끔한 결과를 얻을 수 있지만, 작업속도가 상대적으로 많이 느려진다. 본 작업에서는 'object가 올라가있는 parcel의 레이어를 추출', 즉, 기존 레이어에 값을 추가하는 것이 아닌 새로운 레이어를 생성하는 것이 목적이기 때문에 "Add Join"을 활용했다.

이후의 과정은 조인한 테이블을 바탕으로 새로운 레이어를 추출하는 것에 대한 내용이다.

"Copy Feature" 툴을 통해, "Add Join"을 통해 얻은 object가 올라가있는 parcel에 대한 데이터 복사하여 새로운 레이어로써 추출했다. 이를 위해 약간 팬시한 트릭을 사용했다. "Spatial Join"과 "Add Join"의 과정에서 모두 'Keep All Target Features' 항목을 off 해 두었다. 이를 통해 "Copy Features"까지의 flow를 보면 추출되거나 조인된 항목만을 전달하고 있다. 즉, parcel(3)에는 object_SpatialJoin과 조인된 parcel들만 존재한다. 그렇기 때문에 조인된 항목을 select 후 "copy feature"를 사용할 필요 없이, 바로 결과를 추출할 수 있다.

마지막으로 "Remove Join" 툴을 이용해 레이어간의 조인을 제거했다. 큰 문제는 아니지만, "Remove Join"을 수행하지 않는다면 parcel 데이터가 object_SpatialJoin과 조인된 parcel들만 존재하는 parcel(3)의 형태로 유지되게 된다. 즉,  parcel과 parcel_CopyFeatures가 같은 형태로 출력된다. 직관적이지 않은 형태이므로, 모델빌더 내에서 처리하기 위해서 "Remove Join"을 수행해 Join을 없앰으로써 parcel 데이터를 기존의 형태와 같게 만든 후 출력하도록 한다. parcel_CopyFeatures를 'precondition'으로(모델빌더의 점선의 화살표 형태) Remove Join에 연결해주어 parcel_CopyFeatures이 추출되기전에 Join이 해제되지 않도록 한다.

1. "Add Join"의 Layer Name or Table View에 parcel data를, Join Table에 object_SpatialJoin를 입력한뒤, 조인을 위한 공통필드를 선택한다. 2. "Copy Feature"를 통해 object_SpatialJoin와 조인된 parcel 데이터(즉, 우리의 목표)를 복사하여 parcel_CopyFeatures.shp 파일로 저장한다. 3. "Remove Join"을 통해 Join을 해제한다.

결과는 위와 같다. object들이 존재하는 parcel들이 추출된 것을 확인할 수 있다.


3.

설명을 위해 중간 과정의 파일을을 모두 보여주었지만, 위와 같은 모델빌더를 실행시키면 과정이 한번에 실행되고, 'object_SpatialJoin.shp', 'parcel_CopyFeatures.shp' 두개의 파일들이 지정된 장소에 생성되어 있다.

분리되어 관리되는 지역들에 대해 반복적인 공간조인 작업을 수행해야 할 때, 공간조인하는 과정에서의 파일을 모두 저장해서 관리해야될때, 나의 작업 상황을 동료에게 공유해야 될 때 이와 같은 모델빌더를 작업해서 활용하면 편리하다. 

반응형

공간정보를 다루다보면 데이터의 특성상 반복적인 작업을 정말 많이 수행하게된다. 

다루는 지역이 많아서든, 여러 조건에 대해 같은 작업을 수행해서든... 여러 이유로 인해 반복작업을 수행한다.


모델빌더를 사용하면 이러한 작업을 상당부분 축소할 수 있다. 

또한 나의 작업상황을 메뉴얼화할 때, 동료와 공유해야할 때 이를 통하면 굉장히 편리하다.



내가 아는 것을 어떻게 전달할지 고민을 해보았다. 내가 전통적으로 arcGIS나 ModelBuilder를 배운것이 아니기에, 체계적인 방식으로 전달할 수 있을 것 같진 않다. 하여 내가 필요에 의해 만들 었던 여러가지 모델빌더들을 그 상황과 함께 전달하려한다. 내가 데이터를 다루어보며 불편했던 문제들을 해결하기 위한 실용적인 방법들이기 때문에, 이러한 것들이 필요한 사람들이 있지 않을까 싶다.



PS.

목표는 ModelBuilder를 통해 구현한 모델빌더를 연재하고, 그와 유사한 형태로 QGIS의 Model Processer를 재현해보는 방식으로 연재해보려한다.



반응형

안녕하세요. SY입니다.

서울대 공간정보연구실의 석사이며, P님의 후배입니다.

학연을 통해 게시판 지분을 얻어냈습니다.


결론부터 말하면

저는 게시판에 ArcGIS의 ModelBuilderQGIS의 Processing Model에 대해서 연재할 계획입니다.




구구절절한 사연입니다.


"석사과정의 2년이라는 짧은 기간을 보낸 후 어떤사람이 되어있어야할까, 2년동안 내 몸값을 어떻게 올려야할까.."

에 대한 고민을 많이 했습니다. 연구실의 환경 및 제 관심사를 종합고려해보면 제가 목표하는 전문성의 방향은 '공간정보전문가 + 인공지능전문가'이지 싶습니다.

이러한 전문성을 논문만으로 증명하기에는 제가 무능력하다는것을 깨달은 참입니다. 하여, 그래도 공간정보를 할 줄은 안다는 일종의 certification을 남기고싶어 공간정보전문가 필님의 도움을 받아(본인 블로그니깐 많이 도와주지 않을까요?) 내가 해왔고, 할 수 있는 것들에 대한 기록을 남기는 것이 목표입니다.


목표로하는 공간정보전문가의 수준은.. 혼자서 프로젝트 하나를 맡아서 해결할 수 있는 사람이 되는 것 입니다.

연구실에 입지분석과 같은 공간정보 SW 활용이 필요한 의뢰가 들어오면 모두가 P님을 찾습니다. 간지폭발오지고지리고렛잇고아리랑고개를 넘어버리는 부분이죠. 이것이 제 목표입니다.


프로젝트 등을 통해 공간정보를 뒤적여보며 활용했던 ArcGIS의 ModelBuilder에 대해 연재해보려합니다. ModelBuilder의 장점은 보고서가 간지나집니다.  ... 그리고 복잡한, 혹은 반복적이고 지루한 작업을 시스템화 할 수 있습니다. 전문가로써의 멋짐을 담당하는 부분이자, 1인 프로젝트를 가능케하는 하는 부분이라고 생각합니다. 


이러한 이유들로 인해 게시판에 ModelBuilder에 대해 연재하려고 합니다. 1년 후 졸업할 때 쯤, 굉장히 실력이 늘어있을 제 모습이 기대됩니다 ^.^ ㅎ.ㅎ ㅋ.ㅋ ㅐ.ㅐ *.*

또한 여기에 더해 현직에 계시는 P님의 조언을 받아, model builder에 대응되는 QGIS의 processing model에 대한 내용을 공부해가며 같이 연재하려고합니다.



PS.

공부하면서 올려야해서 연재주기가 어떨진 모르겠습니다.

단기적인 목표는 게시물들의 퀄리티를 인정받아, P님과 YM님이 작성하고 계시는 QGIS 책에 한챕터 자리차지하겠다고 비벼보는 것입니다.


반응형

안녕.

오늘은 포스팅할 내용은 간단함.

내 생각에 길게 포스팅을 쓰는것도 좋지만 이건 뭔가 내가 늘어지기 쉽기도하고 해서 짧게 짧게 많이 올려보려고 함.



사실 내가 좋아하는 블로거 (Apple Map Head) 가 있는데 이분은 엄청 길게 분기마다 한게 쓸까말까함.

그러나 나와의 패턴은 다름.



암튼,

Oracle을 쉽게 쓰려면 Toad라는걸 쓰면 된다. 혹은 sqldeveloper 같은거.

Postgresql도 쉽게 쓰려면 pgadmin을 사용하면된다.

여기서 쉽게라는 말은 GUI 환경이다.


아 . 그리고 나 postgres 10 에서 -> postgres 9.6 으로 바꿈.

pgadmin은 4를 그대로 씀


만약 여러분도 나처럼 버전을 줄이면 pgadmin이 실행이 안될거임

그때는 %appdata% -> Roaming 에서 postgresql 폴더를 지우면 되염

모르겠다면 댓글 남겨주세요 (댓글 보는 재미도 쏠쏠함)





Pgadmin은 이렇게 생겼슴. ( 내 PC 배경 신ㅋ주ㅋ쿠ㅋ)



그리고, 기다리면 이런 화면이 보임


여기서 + 버튼을 누르면 여러분의 postgresql 버전과 접속할 수 있는 환경을 보여줌 그리고 여러분이 만든 비번 (보통은 postgres로 많이 떄림)을 넣으면 보임


그리고 postgresql 설치할때 DB도 같이 만들 수 있음.

전 글에서 Oji9yo 라는 이름의 DB를 생성했지만, 지금 내가 버전 다운을 하면서 DB도 다시 만듬.



내 DB는 postgres임


그러면 여기서 정리해보면

서버는 PostgreSQL이고 DB는 postgres(이름) 인건가? 라고 추측해볼 수 있음


그리고 보통 DB에 들어가는 데이터들은 Schemas -> public -> tables 안에 들어가게 되있다.



물론 원하면 새로운 DB도 만들 수 있다.

저번 글 부터 이어서 본 사람은 헷갈릴 수 있으니 Oji9yo DB를 한번 다시 만들어보려 한다.


여기서

이렇게 타입하고


오키 누름됨

이렇게 새로운 DB가 생겼긔



그리고 오른쪽 SQL tab에 뭐가 막 있다. DB에 관련한 기본적인 사항?이랄까

현재 오지구요 DB는 spatial extension이 적용안된 상황이다.

이 글은 짤막하지만 일반 DB를 spatial DB로 변환하는 방법을 알려주려고 한다.


그럼 어떻게 해야할까?


?



마우스 오른쪽 버튼엔 많은 기능이 숨어 있다.




DB에 오른쪽 버튼을 누르고 SQL을 칠 수 있게 준비한다음에.


CREATE EXTENSION postgis;


치면 됨




그리고 끝나면





이렇게되고 schemas -> public -> tables 로 가면 spatial-ref-sys 가 생긴걸 볼 수 있다.




끝.



물론

postgis_topology

도 해주면 좋음.

반응형

ArcMap은 너무도 강력크하여 Link Shapefile 이나 File GDB안에 Link가 있으면 노드와 링크를 몇번의 클릭질로 생성해주고 내장되어 있는 네트워크 분석 모듈을 사용할 수 있게 해준다. (물론 이에 맞는 라이센스를 추가 구입하긴 해야 함) 

돈은 삶을 참 이롭게 해준다.


특별한 DBMS를 설치하지 않고가능케 하는 esri 개발자들은 역시 오지고, 지린다. File GDB에서 다 가능함.

물론 외부 DBMS를 사용할 수 있게 ArcSDE 설치도 가능함.




그러나, 돈 없는 사람들은 사실 못씀.


File GDB는 이제 드라이버 설치 후 오픈소스에서 사용가능함.

그나저나, 나는 서버 개발자가 아니라서 DBMS/DB 뭐 뭔말하는지 잘 모름.




그래서 오늘은 오픈소스 GIS 소프트웨어인 QGIS에서 네트워크 분석을 하는 방법을 써보려고 한다.

사실 네트워크 분석전 필요한 프로그램을 설치하는 과정이다.


필요한 건

PostgreSQL과 얘의 Spatial Extension인 PostGIS 이다.

마치 Oracle 과 Oracle Spatial로 봐야하나?



PostgreSQL부터 설치한다.

나는 윈도우를 사용할 수 밖에 없는 사람이다 (ArcMap을 쓰려면 어쩔 수 없음 ㅜ_ㅠ)

그렇지만 다양한 OS를 지원하고 있음


https://www.postgresql.org/download/


나도 오랜만에 다운/설치라서... 근데 Oracle 보다는 훨씬 더 쉽다.

최신버전을 그냥 받음 (postgreSQL 10)


설치를 한다.

나는 C드라이브 용량이 없어서 E드라이브에 설치하고 pgAdmin, StackBuilder까지 다 설치함

그리고 StackBuilder을 열어서 PostGIS를 설치해야 한다.



다음을 누르고..

설치해야 하는데..


원래 있어야 하는데 없다.

너무 최신인가?



원래 여기에 있어야 한다..

그래서 내가 파일을 올리겠다.


postgis-bundle-pg10x64-setup-2.4.1-1.z01

postgis-bundle-pg10x64-setup-2.4.1-1.z02

postgis-bundle-pg10x64-setup-2.4.1-1.zip


얘를 어디서 받았는지 기억이 나질 않는다. 내 다운로드폴더에 있을 뿐.


그리고 설치하자.

나는 PostGIS 설치 뿐 아니라 Spatial Database도 만들었다. 체크표시만 하면됨 (어짜피 도로데이터를 여기에 업로드 해야하니까 그냥 만듬)




디렉토리 지정해주고 postgreSQL 만들었을때 지정한 password 입력하고



그리고, DB 이름을 정한다.

아무거나 넣으면 된다. 예를들면 Jiryeotda, Ojida 등 가능하다.



그리구 인스톨 하면 됨.

그럼 시작파일에 다음과 같이 보임 ㅋ




일단 여기까지 통과하면 어느정도는 기반을 닦은 거임

수고했쪄여 뿌우~



반응형

주로 컨텐츠를 생산하는 나는 P이다.


그리고 이 블로그는 BS와 처음 시작한 것이며, 컨텐츠를 만들기 힘들어서 중간에 내가 J를 영입했다.

그리고 지금 BS는 미국에 J는 박사님이 되어 멀리멀리 있다.


최근 영민님을 영입하려고 한다.

그리고 거의 끝나간다.

영민님은 원래 블로그를 갖고 계신다.



잘 되면 자세히 소개하겠다.



그리고 분기마다 지도쟁이들이 뭐하는지 업뎃을 해야 할 것 같아서 이 게시판도 가끔은 새 글이 올라올 것 같다.



BS님 근황

GIS를 버리고 교통으로 가셨다.

한국도 버리고 미국으로 가셨다.


PK님 근황

박사과정을 잠시 중단(수료, Qual, 졸업 내규는 완ㅋ료ㅋ)하고 회사로 가셨다.


SJ님 근황

박사학위를 끝내시고 굴지의 연구소에서 연구원으로 계신다.


영민님 근황

결혼하심



그래서 말인데.. 블로그가... 서울대에서 GIS하긴데 .. 블로그 이름을 바꿔야 하나?

영민님은 아직 학교에 있으니 영민님 영입하면 계속 이름 쓸 수 있음.

반응형


저번에 작성했던 내용은 CSV나 TXT의 형태로 제공되는 데이터와 SHP을 KeyField를 통해 연결해서 속성정보가 풍부한 형태의 공간정보를 만드는 작업을 하였다.

(사실 저번 작성내용이 몇 달이 지났는지도 모르겠음..)


암튼, 조금 더 응용을 해보자.


그리고 응용을 해보기 전에 하나 전달할 께 있다면 앞으로는 QGIS를 좀 더 활용하도록 할 계획이다.

물론 ArcMap의 성능이나 파워풀함은 비교 대상이 없지만, QGIS는 무료라는 장점과 잘 사용하면 ArcMap보다 더 유연하게 활용할 수 도 있기 때문이다.

그리고.. ArcGIS를 학교에서 자유롭게 사용하다가.. 회사에 와버린 나머지 사용이 힘들어졌다 ㅜ_ㅠ




이제 본론.



GIS분야를 연구/공부하다보면 다양한 기관에서 획득한 데이터를 갖고 있게 된다.

(그리고 지도 서비스를 하다보면 여러 데이터를 만들어야 할 필요도 있다)


모든 데이터를 Shapefile로 주면 제일 좋겠으나, 가끔은 *.MDB, *.XLSX, *.DWG, *.GDB (거의 없음 주면 다행) 등으로 제공한다.

(예전 건축학과의 학생들만 봐도 CAD 파일을 ArcGIS에서 어떤식으로 열람?하는지에 대해서 당황해 하는것 같아서 내가 간간히 도와준적이 있다)

가끔은 Wiki Table에서 긁어모아야 할 필요도 있다... (<- 이건 어쩌면 최악?)


아.. 주제는 뭐로 하면 좋을까 고민하다가 GIS를 전공하지 않는? 사람들에게 활용을 쉽게 도와주게 끔 하는걸 만들어보자라는 생각이 들었다.

그래서 이번엔 서로 다른 포맷의 공간정보를 ArcGIS상에서 가공?할 수 있게 가져오는 방법을 설명하려고 한다.


주제 : CAD 파일 (*.dwg, *.dxf)를 GIS 소프트웨어로 가져오고 좌표까지 맞추기!


그러면 캐드 파일이 필요하다. 나는 갖고 있는 캐드 파일 하나를 가지고 놀 생각이다. 여러분들은 여러분 데이터 쓰셈.

AutoCAD의 도면을 GIS 소프트웨어 상으로 가져와서 작업하는부분에 있어서는 여러번 해보았다.

아마 이번 글은 GIS 전공자보다는 건축이나 도시쪽 관련종사자들이 필요한 부분이지 않나 싶다.



궁극의 ArcGIS의 경우는 캐드 데이터를 File Geodatabase 형태로 변환을 해준다.

그리고 좌표를 알고 있는 CAD 파일이라면 ArcGIS 상에서 CAD파일 선택 후, 좌표를 정의해주고 변환하면 끗.

QGIS에서도 같다.


아래의 지도는 QGIS로 불러온1:5000 수치지도이다.

프로젝션은 Korean Datum 2010/중부원점


어떻게 했게?

그냥 ㅋ 불러오면 ㅋ 됨 ㅋ 

Add Vector Layer에서 불러오세영



문제는 좌표를 모르는 CAD, 건축물 도면, 스캔한 고지도의 경우일 듯

이때는 CAD를 Raster파일이라 생각하면 쉽다.

사실 여기서는 Raster에 대해서 설명을 안해줬긴 한데 쉽게 얘기하면 이미지 파일임.

이를 끌어와서 지도위에 맞추는거임


여러가지 용어 설명이 필요함.. GCP라던지, Affine Transformation이라던지 .. 

근데 그런건 걍 무시하고


일단 해보기나 하자.

ArcGIS의 Georeference는 Toolbar에서 On하면 볼 수 있고

QGIS에서 한번 해보자.


내 수업을 들었던 우리 학생이 물어봤던게 있었음.

"오빠오빠 이거 어떻게 해요?"

ㅇㅇ 할 수 있어 ㅇㅇ 오빠

오빠는 다 할 수 있어. 불러줘 오빠.


지적도? 이미지를 구했고 이를 GIS 소프트웨어상에 올리는 작업임

(여기서 저 지적도이미지 파일을 캐드파일이라 생각해보자.  (내가 갖고 있는 모든 캐드파일이 다 좌표 정의된 캐드파일이라... 어쩔 수 없이 이미지로 설명하는 중)


결과를 먼저 보여주자면 이렇다


그리고 저기서 Measure 도구를 이용해서 면적이라던지 거리를 구하면 됨. (물론 신뢰도 100%는 아니고 어림잡아 알 수 있음)







실습을 해보자.

실습은 초파의 사진을 서울대로 투영해보자. (그리고 초파의 사진 = 서울대 dxf 라고 생각하자)



자 올라갔다.

사실 여기다 올리면 안되긴 하는데 보여주기 위함임


ArcMap과 비슷한 방법으로 옮기면 된다.

우리가 쓸 도구는 Georeferencer 이다.

Raster Tab에서 확인이 가능하다.


사실 QGIS에는 네이버지도, 구글지도, 다음지도 같은 지도가 필요하다 (Reference Map) 그리고 Georeferencer에서 원하는 이미지를 찾아서 이미지의 어느 부분지 reference map의 어디 부분이다를 찍어줘야 한다.


이런 느낌이랄까?

저 포인트들을 GCP라고 하는데 드론이나 측량할때도 많이 나오는 용어임 그라운드 컨트롤 포인트. 



이를 몇번 하다보면 어느정도 이동하는걸 볼 수 있다.



이렇게 이렇게 찍어주고


Transformation Setting을 해야하는데 Transformation Type이나 Resampling Method는 그냥 Default로 간다. 




Tada. 쵸파가 서울대 위에 있다. 잇힝.

이런식으로 Georefencer를 이용하면 투영되지 않은 캐드파일이나 이미지를 투영시킬 수 있다.





퇴근하고 한시간 정도씩 쓰려고 한다.

근데 티스토리가 나은지, 네이버블로그가 나은지 전혀 모르겠다.


근데 퇴근하면 정말 쉬고 싶다.

반응형


학교에서 살다보니 ArcGIS 라이센스 문제에 있어 전혀 문제가 없었습니다.


제가 지금 학교에서 나와 회사생활을 하고 있는데 이게 생각보다 쉽지가 않네요. (물론 회사는 정식 라이센스 이지만 제가 쉽게 사용하기가 어렵습니다. 그리고 제 개인컴퓨터에도 ArcGIS가 없는 상황이구요)





그래서 ArcGIS강의에서 QGIS와 ArcGIS에 있는 Spatial Analysis툴을 대신할만한 Geoda를 사용하면 어떤지 고민이 됩니다.


같이 작업하는 분들과 얘기 후 추후 업뎃 하도록 하겠습니다.





요새 회사 적응하느라 늦었습니다. 죄송합니다.

반응형

'지도쟁이들 분석노트 > :P 생각정리' 카테고리의 다른 글

아.. 오랜만에 밤을 세어본다.  (0) 2018.04.27
최근 근황  (0) 2017.08.01
학위 취득 축하 및 나에 대한 고찰  (0) 2017.03.08
근황정리.  (2) 2016.11.24
일본 출장 다녀왔습니다.  (0) 2016.08.06


저번에 만들어놓은 컨텐츠의 양이 장난 아니다라는 얘기가 있었다.


연구실 영민님의 개인 블로그에서도 얘길 하지만 그냥 다짜고짜 시작하는게 맞지 않겠느냐? 실제로 우리가 진행하면서 시행착오를 쓰는게 더 낫지 않겠느냐? 동영상을 하는게 낫지 않겠느냐의 의견도 주고 받앗다.  > 영민님 블로그 (클릭)


고민하다가 그냥 글로 남기는게 좋겠다라는 생각이 들어서 목차를 바꿀까 한다. (바꿀까?)


일단 기본 공간정보를 다루는것은 중요한 일이기 때문에 이부분은 그대로 진행하는걸로 한다.



공간정보의 세세한 설명보다는 이 글을 읽는 사람은 어느정도의 공간데이터를 다루는 지식이 있다고 가정하고 진행하겠다. (즉, shp이뭔지, dbf가 뭔지 shx가 뭔지 prj가 뭔지..)


대부분 대학원생 및 연구원들의 한계는 이 데이터를 어디서 구하느냐이다.



정부 3.0 이다 뭐다 한국형 오픈 어쩌고 해서 최근 공공데이터가 많이 공개되었다.

기본적으로 내가 개인적으로 많이 이용하는 데이터는 국토부와 통계청이다. (링크 걸어놓음)



국가공간정보포털

통계청

국토지리정보원


이 정도인것 같다.


그리고 민간?업체의 경우 비즈지아이에스 가 있을테고

그밖의 원하는 자료는 Crawling 하거나, 아름아름 구해보기도하고, 만들어보기도 한다.

여기서 Crawling이나 Editing을 가르쳐주는것은 힘들것 같다. 그래서 위 데이터를 어떻게 지지고 볶아야 하는지에 대해서 설명할까 한다.



자 일단 그러면 통계청 데이터를 사용해보자.


통계청데이터는 굉장히 여러가지가 있다. 그중에서 내가 갖고 있는건 뭐 사업체, 인구총괄, 뭐 교육별, 산업분류별 등등 다양하다 (이들은 속성이고)

도로경계, 집계구경계 등 다양한 형태의 shp 도 제공한다.





그러나 통계청은 집계구 경계가 큰 의미를 갖는다고 할 수 있다.

한편 txt 파일로 제공해주는 속성도 양이 어마어마 하다. 어머어마 한 만큼 데이터를 보면 편집하기 까다롭다.



필드명은 없고 첫 컬럼은 년도, 두번째 컬럼은 집계구 번호, 3번은 속성의 종류? 4번은 속성값이다.

여기서 나는 성연령별 인구기 때문에 각 집계구에 001~054까지의 해당하는 속성값이라고 이해하면 될 것이다.

그럼 집계구 shp과 위 데이터를 ArcMap에서 한번 확인해보자. (언제나, 배경은 서울대를..)



그런데 저렇게 되있으면 못쓴다.

그래서 나는 일반적으로 속성 데이터의 경우 QGIS에서 구분자를 넣어서 dbf로 만든다음 ArcMap으로 불러와서 사용한다.


이렇게

변환이 되지롱~


그리고 Field_3의 QUERY를 통해 원하는 정보를 뺀다음 이를 집계구 shp 과 join 하면 된다.


그럼 in_age_***이 무엇인가?

통계청의 자룐 이렇게 말하고 있다.


그렇기에 내가 만약에 4세 이하의 인구를 뽑고 싶다라고 하면

"field_3" = 'in_age_001' 이렇게 날린 후 집계구 shp과 join을 하면 완성 된다. 이를 여러번 (54번) 하면 집계구 shp 은 다음과 같은 속성을 갖을 수 있다.



물론 저걸 노가다 할 수 있지만 노가다 하면 안되니까 자동화 하면 된다.

그 방법은 연구실을 떠나기전 후배들에게 전수하고 갈려고 한다.
조금 있다가 후배들이랑 공동 연구 하러 갈꺼라서 여기 까지 쓸란다.

결론, 통계청 데이터는 저렇게 쓰시면 됩니다~


반응형

하이루 방가방가



현재 서울대에서 GIS 하는 사람들은

사실상 나를 제외하고 서울대를 떠났다.


나도 떠나고 싶다...



뭐 교재를 만든다는 둥 뭐한다는 둥 했는데 최근 컨텐츠 제작을 하지 못했다.


변명을 늘어놓자면


1. 후배 양성

2. 연구실 일 (세미나 준비)

3. 연구(?)

4. 데이터 정비

5. 여기저기 기웃기웃


등을 했다.


교재를 만들기 위해 나보다 더 꼼꼼한? 사람이 필요하다고 느꼇고. 같은 연구실에 있는 영민님을 영입?하기로 했다.

곧 새로운 목차와 교재가 나올 것 같다.

반응형

+ Recent posts