Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[Foss4 g2014 korea] qgis를 플랫폼으로 한 파이썬기반 공간통계 구현 사례

[Foss4 g2014 korea]
qgis를 플랫폼으로 한 파이썬기반 공간통계 구현 사례

  • Login to see the comments

[Foss4 g2014 korea] qgis를 플랫폼으로 한 파이썬기반 공간통계 구현 사례

  1. 1. QGIS를 플랫폼으로 한 파이썬 기반 공간통계 구현 사례 장병진(가이아쓰리디), 이경주(한국교통대학교)
  2. 2. GEEPS  연구/교육용 공간정보 기술 통합플랫폼 개발 연구  목적: 연구와 교육지원을 목적으로 오픈소스 공간 정보 기술 연구 및 패키지화  실체: QGIS를 연구/교육 활용목적 확장 연구  설계: 국토연구원  개발: 가이아쓰리디, 망고시스템  2013 – 기초기술 정리  2014 – 공간통계/공간분석 개발  2015 – 연구/교육용 컨텐츠 및 패키지 개발 QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 2
  3. 3. 이경주  본 연구 공간통계 체계 설계  한국교통대학교 건설교통대학 도시공학과 교수  뉴욕주립대학교에서 공간통계로 박사학위  A Spatial Statistical Approach to Examining Sprawled Urban Growth Patterns over Time in The Framework of Geographic Information System (GIS) QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 3
  4. 4. 장병진(BJ Jang)  본 연구 공간통계 개발  Gaia3D Open GIS Team Manager  OSGeo Charter Member  Open Source GIS Korean Localizer  Risk Surfer QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 4
  5. 5. 공간통계???
  6. 6. 통계의 목적  미지의 결과를 추정  서울 중소기업의 40세 여자 개발자는 몇 살까 지 살 수 있을까?  특이한 상황인지 검정  1990년생 남자로 현재 165Cm라면 작은 키인 가?  샘플을 이용해 판단  모평균의 추정  모표준편차의 추정 QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 6
  7. 7. 공간현상 특성과 극복  추계적(推計的, Stochastic)  확률을 따르지만 정확히 예측 불가  일반적인 사회현상의 특징  일반통계적 방법론으로 극복 가능  자기상관적(Autocorrelation)  시공간적으로 인접해 있을수록 그 성향 및 속성 유 사할 가능성 높음  일반통계의 변수 독립성 가정 위배  왜곡 가능성  거리가 가까울수록 가중치 많이 부여하여 유사성 에 따른 정보손실 반영 QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 7
  8. 8. 공간통계 사례  John Snow의 콜 레라 발생 분석  이전까지는 전파 경로가 분명치 않 았음(공기? 접촉?)  Snow가 특정 물 펌프 사용자를 중 심으로 수인성 전 염임을 균 발견 없 이 거의 완벽히 설 명  공간통계와 공중 보건 분야의 시조 QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 8
  9. 9. 공간정보산업 변화 DB 구축 및 운영 업무용 시스템 웹을 통한 정보 조회 의사결정 지원 •수치지도 구축 •주제도 구축 •영상지도 구축 •KLIS •UIS •내비게이션 •Mashup •Drill Down •Convergence •웹 지도 •지도 앱 QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 9
  10. 10. 개발환경 구성방법
  11. 11. 필요 라이브러리  Python, qgis, PyQt  PySAL  Python based Spatial Analysis Library  NumPy와 SciPy를 기반으로 작성됨  http://pysal.org  NumPy  과학 계산을 위한 기초 파이썬 패키지  http://numpy.org  SciPy  수학, 과학, 통계 연산을 위한 파이썬 패키지  http://scipy.org QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 11
  12. 12. R vs PySAL  R  가장 많이 사용되는 오픈소스 통계 패키지  다양한 공간통계분석도 제공  R 고유 스크립트로 개발  PySAL  공간분석용 파이썬 패키지  공간통계가 강함  파이썬으로 모든 개발 가능  통일적인 언어체계로 공간통계부터 가시화까지 가 능 QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 12
  13. 13. QGIS 설치  1. QGIS를 다운로드 받아 설치  http://qgis.org  2. QGIS가 사용중인 파이썬 버전 확인  OSGeo4W Shell을 관리자 권한으로 실행  python 명령  버전확인  3. OSGeo4W Setup 실행  OSGeo4W Shell을 관리자 권한으로 실행 안 하면 여기서 오류  Advanced Install 모드  설치된 라이브러리들과 버전 확인 QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 13
  14. 14. NumPy 설치  NumPy Version > 1.8.0  PySAL이 필요로 하는 버전보다 낮으면 업데이트 QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 14
  15. 15. SciPy 설치  윈도우에서는 파이썬 패키지관리에서 설치 안됨  UC IRVINE에서 윈도우용 설치본 만들어 둠  http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy  Registry 수정 필요 QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 15
  16. 16. PySAL 설치  pip(PyPi, Python Package Index)로 설치  SetupTools 설치  pip 설치  PySAL 설치 QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 16
  17. 17. PyCharm 설치  PyCharm 이란?  파이썬 전용 통합개발환경  Eclipse, Visual Studio와 역할 유사  다운로드 및 설치  http://www.jetbrains.com/pycharm/download/  QGIS용 라이브러리도 사용하려면  QGIS가 사용하는 파이썬의 경로와 변수를 배치파일을 통해 설정후 CyCharm 실행  이를 배치파일로 만들어 간단히 실행 QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 17
  18. 18. 개발 진행 과정  단위 로직 작성  QGIS 파이썬 콘솔에서 테스트  객체에 담긴 값을 확인해 검증  모듈 로직 작성  한 단위(통계로직 하나)를 하나의 파일로 개발  PyCharm에서 인텔리센스의 도움을 받아 개발  QGIS 파이썬 콘솔에서 전체 동작 확인  플러그인 UI에 통합  모듈 로직을 리팩토링 하여 UI와 결합  사용자 입력값에 대한 검증 추가  플러그인을 로드하여 전체 동작 검증 QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 18
  19. 19. 상세한 과정 보기  생활코딩 QGIS 기반 공간통계 강의  http://opentutorials.org/module/982  현재 설치 및 기초부분까지 강의 진행  GEEPS 프로젝트 홈페이지  http://geeps.krihs.re.kr/study/spstat  컨텐츠 채운 후 오픈 예정 QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 19
  20. 20. 공간통계 개발결과
  21. 21. Moran’s I Statistic  자료의 공간자기상관의 전반적 경향을 추정  전역적 𝐼로 전체 경향판단, 지역적 𝐼𝑖로 각 지역 판단  정규화 하여 𝑍 값으로 변환후 유의성 판단  수행과정 1. 자료 정제(필요 데이터 추출) 2. 기준거리에 따라 공간가중치(Weight) 계산 3. pysal.esda.moran 으로 전역통계량 계산 4. pysal.esda.moran_local로 지역통계량 계산 5. 기준거리를 증가시켜 2~4 과정 반복 6. 표 및 그래프로 표출 QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 21
  22. 22. Moran’s I Statistic QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 22
  23. 23. Getis-Ord’s G Statistic  ‘높은’ 값을 가지는 지역들이 군집하는 경향을 지수화  전역적 𝐺로 전체 경향판단, 지역적 𝐺𝑖로 각 지역 판단  정규화 하여 𝑍 값으로 변환후 유의성 판단  수행과정 1. 자료 정제(필요 데이터 추출) 2. 기준거리에 따라 공간가중치(Weight) 계산 (0 혹은 1) 3. pysal.esda.getisord 으로 전역통계량 계산 4. pysal.esda.getisord_local로 지역통계량 계산 5. 기준거리를 증가시켜 2~4 과정 반복 6. 표 및 그래프로 표출 QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 23
  24. 24. Getis-Ord’s G Statistic QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 24
  25. 25. Nearest Neighbor Statistic  공간사건의 발생이 무작위 분포와 얼마나 차이 나는지 지 수화  보조적으로 최근린점을 연결하여 국지적 분포 시각화  수행과정 1. i 번째 점의 점의 최근린점 탐색 2. 찾은 최근린점을 연결하고 최근린거리합에 합산 3. 1~2를 모든 점에 대해 수행 4. 최근린거리합을 바탕으로 최근린 통계량 계산 분석대상지면적포인트수    A,N r rr Z A N ρ ρN 0.26 r ρ r r r R var expobs Rvarexp exp obs ,,, 2 1 , QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 25
  26. 26. Nearest Neighbor Statistic QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 26
  27. 27. K-function  지리적 사건들의 공간적 군집을 지수화  각 사건에서 반경(ℎ)내의 사건수의 합을 밀도로 나누어 계산  수행과정 1. h를 최소거리로 설정하고 시작 2. 모든 점을 돌며 반경 h내의 점 수 파악하여 합산후 밀도 산정 3. 원 데이터와 동일한 무작위 점을 찍어 2의 방법으로 밀도 계산하는 몬 테카를로 시뮬레이션 n(999)번 실시 4. 원 데이터 밀도가 시뮬레이션 밀도 중 몇번째에 해당하는지로 확률값 평가 5. h를 최대거리까지 점차 증가시키며 2~3의 과정 반복 6. 모든 결과를 표로 그려 공간적 군집도가 의미 있는 거리 파악  2 2 hπ λ hλπ E  QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 27
  28. 28. K-function QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 28
  29. 29. Knox Statistic  시공간 상에서 발생하는 점들의 군집도 추정  수행과정 1. 원 데이터의 모든 점을 돌며 기준 시간/공간 거리내의 점 수 파 악하여 합산 2. 원 데이터에서 무작위로 시간을 섞어 1의 시공간내 점 수 파악 하는 몬테카를로 시뮬레이션 n(999)번 수행 3. 원 데이터의 기준 시공간내 점 수가 전체 시뮬레이션에서 몇 번 째인지 파악하여 확률값 산정               otherwise dttif T otherwise dxxif S TS STN tji ij sji ij n i n j ijij ,0 ,1 , ,0 ,1 , 2 )( 1 1 QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 29
  30. 30. Knox Statistic QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 30
  31. 31. Spatial Scan Statistic  특정한 사건이 많이 발생하는 공간적인 범위 판단  수행과정 1. 모든 지역에 대해 그 지역의 사건수와 그 외 지역 사건수가 얼마나 다른 지 나타내는 우도비(LR) 계산 2. 가장 우도비가 높은 지역부터 인근 지역순으로 합쳐가며 우도비가 가 장 높게 합쳐지는 지역을 파악 3. 각 지역의 인구수에 비례되도록 무작위로 사건을 만들어 n(999)번 몬 테카를로 시뮬레이션 4. 원 데이터의 우도비가 시뮬레이션 중 몇 번째에 해당하는지 판단하여 확률값 산정 5. 나머지 지역중 우도비가 높은 2, 3번째 군집 파악 QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 31
  32. 32. Spatial Scan Statistic QGIS를 플랫폼으로 한 파이썬기반 공간통계 구현 사례 32
  33. 33. 감사합니다!!!

×