파이썬을 활용한 지리공간 분석 마스터하기 [GeoDjango, CARTOframes, MapboxGL-Jupyter를 활용한 GIS 프로세싱]
- 원서명Mastering Geospatial Analysis with Python: Explore GIS processing and learn to work with GeoDjango, CARTOframes and MapboxGL-Jupyter (ISBN 9781788293334)
- 지은이폴 크릭커드(Paul Crickard), 에릭 반 리스(Eric van Rees), 사일러스 톰스(Silas Toms)
- 옮긴이김동호
- ISBN : 9791161754505
- 40,000원
- 2020년 10월 19일 펴냄
- 페이퍼백 | 500쪽 | 188*235mm
- 시리즈 : 데이터 과학
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/geospatial-python
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약
사용하기 쉽고 다양한 분야에서 인기 있는 언어인 파이썬을 사용해 값비싼 도구 없이 전문적인 GIS 프로세싱을 배울 수 있다. 또한 지리공간분석, 통계분석, 데이터관리를 위해 준비된 다양한 파이썬 라이브러리 사용한 예제로 지리공간 데이터를 처리하는 방법을 쉽게 배울 수 있다. 이 책을 통해 지리공간 데이터를 처리하는 오픈소스와 상용툴의 사용법을 살펴보고 실제 분석과 코드를 작성해 볼 수 있다.
이 책에서 다루는 내용
■ 파이썬 3로 코드 라이브러리 관리 및 추상적 지리공간 분석 기술
■ 지리 공간 분석 작업을 수행하는 인기 있는 코드 라이브러리 살펴보기
■ 데이터 변환, 데이터 관리, 웹 맵 및 REST API 개발을 위한 코드 라이브러리 활용
■ 클라우드에서 지리 공간 데이터 처리와 관련된 기술 학습
■ PostGIS, SQL Server, SpatiaLite와 같은 지리 공간 데이터베이스에서 파이썬 3 기능 활용
이 책의 대상 독자
위치 정보와 파이썬으로 작업하는 모든 사람을 위한 책이다. 파이썬 3로 구축된 GIS 데이터 관리, 분석 기법, 코드 라이브러리를 다루는 학생, 개발자, 지리공간 전문가 모두 이 책을 활용할 수 있다.
이 책의 구성
1장, ‘패키지 설치와 관리’에서는 코드 라이브러리를 설치, 관리하는 방법을 설명한다.
2장, ‘지리공간 코드 라이브러리 소개’에서는 지리공간 데이터를 처리하고 분석하는 데 사용되는 주요 코드 라이브러리를 다룬다.
3장, ‘지리공간 데이터베이스 소개’에서는 데이터 저장과 분석에 사용되는 지리공간 데이터베이스를 소개한다.
4장, ‘데이터 타입, 저장 공간 및 변환’에서는 GIS 내에 존재하는 다양한 데이터 타입(벡터와 래스터)에 초점을 맞춘다.
5장, ‘벡터 데이터 분석’에서는 Shapely, OGR, GeoPandas 같은 벡터 데이터를 분석하고 처리하는 데 사용되는 파이썬 라이브러리를 다룬다.
6장, ‘래스터 데이터 처리’에서는 지리공간 분석을 수행하기 위해 GDAL 및 Rasterio를 사용해 래스터 데이터셋을 처리하는 방법을 살펴본다.
7장, ‘지오데이터베이스를 사용한 지오프로세싱’에서는 공간 SQL을 사용해 공간 칼럼을 포함하는 데이터베이스 테이블로 지오프로세싱을 수행하는 방법을 보여준다.
8장, ‘QGIS 분석 자동화’에서는 PyQGIS를 사용해 QGIS 매핑 제품군 내에서 분석을 자동화하는 방법을 알려준다.
9장, ‘ArcGIS API 및 ArcGIS 온라인’에서는 파이썬 3를 사용해 Esri의 클라우드 플랫폼인 ArcGIS 온라인에서 활용 가능한 파이썬 ArcGIS API를 소개한다.
10장, ‘GPU 데이터베이스와 지오프로세싱 파이썬’에서는 툴을 사용해 클라우드 기반 데이터와 상호 작용해 데이터를 검색하고 처리하는 부분을 다룬다.
11장, ‘Flask와 GeoAlchemy2’에서는 Flask 파이썬 웹프레임워크와 GeoAlchemy ORM을 사용해 공간 데이터 쿼리를 수행하는 방법을 설명한다.
12장, ‘GeoDjango 공간 데이터’에서는 쿼리를 수행하기 위해 Django 파이썬 웹 프레임워크와 GeoDjango ORM을 사용하는 방법을 다룬다.
13장, ‘지리공간 REST API’에서는 지리공간 데이터를 위한 REST API를 개발하는 방법을 다룬다.
14장, ‘클라우드 지오데이터베이스 분석 및 시각화’에서는 CARTOframes 파이썬 패키지를 소개하고 CARTO 지도, 분석 및 데이터 서비스를 데이터 과학 워크플로우에 통합하는 방법을 소개한다.
15장, ‘Cartography 클라우드 지도 제작’에서는 자동화 주피터 노트북을 위한 새로운 위치 데이터 시각화 라이브러리를 다룬다.
16장, ‘하둡으로 파이썬 지오프로세싱’에서는 분산 서버를 이용한 지리공간 분석 수행 방법을 설명한다.
상세 이미지
목차
목차
- 1장. 패키지 설치와 관리
- 아나콘다 소개
- 아나콘다를 사용해 파이썬 설치하기
- 주피터 노트북 실행하기
- 노트북 실행하기
- 새 노트북 만들기
- 코드 추가하기
- 노트북 실행하기
- 파이썬 패키지 관리
- 아나콘다 내비게이터로 패키지 관리
- 아나콘다 클라우드에서 온라인 패키지 검색하기
- conda로 파이썬 패키지 관리하기
- pip로 파이썬 패키지 관리하기
- pip를 사용해 패키지 업그레이드 및 제거하기
- 파이썬 가상 환경
- 아나콘다를 사용한 가상 환경
- conda로 환경 관리하기
- virtualenv 사용하기
- 요약
- 아나콘다 소개
- 2장. 지리공간 코드 라이브러리 소개
- GDAL과 OGR 라이브러리
- GDAL 설치하기
- 아나콘다 3로 GDAL 설치하기
- conda로 GDAL 설치하기
- pip로 GDAL 설치하기
- pip로 GDAL 두 번째 버전 설치하기
- 추천할 만한 다른 GDAL 리소스
- GDAL 설치하기
- GEOS
- GEOS 설치하기
- Shapely
- Shapely 설치하기
- Fiona
- Fiona 설치하기
- pyshp 파이썬 쉐이프파일 라이브러리
- pyshp 설치하기
- pyproj
- pyproj 설치하기
- Rasterio
- Rasterio 의존성
- Rasterio 설치
- GeoPandas
- GeoPandas 설치
- GeoPandas 의존성
- 함께 사용하는 방법
- 요약
- GDAL과 OGR 라이브러리
- 3장. 지리공간 데이터베이스 소개
- 윈도우에 PostgreSQL, PostGIS 설치하기
- 맥에 PostgreSQL, PostGIS 설치하기
- 파이썬으로 PostgreSQL, PostGIS 작업하기
- psycopg2로 PostgreSQL 연결하기
- psycopg2 설치하기
- 데이터베이스에 연결하고 테이블 생성하기
- 테이블에 데이터 추가하기
- Shapely
- 데이터 쿼리하기
- CRS 변경하기
- 버퍼
- 거리와 주변
- 데이터터베이스에서의 선
- 선의 길이
- 선 교차하기
- 폴리곤
- 폴리곤 내부의 포인트
- psycopg2로 PostgreSQL 연결하기
- 요약
- 4장. 데이터 타입, 저장 공간 및 변환
- 래스터, 벡터 데이터
- 쉐이프파일
- GeoJSON
- KML
- GeoPackage
- 래스터 데이터 포맷
- GeoPandas로 벡터 데이터 읽고 쓰기
- GR로 벡터 데이터 읽고 쓰기
- Rasterio로 래스터 데이터 읽고 쓰기
- GDAL로 래스터 데이터 읽고 쓰기
- 요약
- 래스터, 벡터 데이터
- 5장. 벡터 데이터 분석
- OGR 라이브러리
- OGR 배치 명령
- ogrmerge
- OGR 라이브러리와 파이썬 바인딩
- OGR 주요 모듈과 클래스
- OGR로 폴리곤 지오메트리 생성하기
- GeoJSON에서 폴리곤 지오메트리 생성하기
- 기본 지오메트릭 연산
- 신규 쉐이프파일에 폴리곤 데이터 쓰기
- 공간 필터를 사용해 특징 선택하기
- Shapely와 Fiona
- Shapely 객체와 클래스
- 지리공간 분석용 Shapely 메서드
- Fiona 데이터 모델
- Shapely로 지오메트리 생성하기
- Shapely로 JSON 지오메트리 읽기
- Fiona 데이터 읽기
- Shapely, Fiona로 쉐이프파일 내 지오메트리 벡터 접근하기
- GeoPandas
- GeoPandas로 지리공간 분석
- GeoPandas와 Matplotilb으로 지오메트리 데이터 플로팅하기
- GeoPandas로 산불 데이터 매핑하기
- 데이터 검증 문제
- GeoPandas로 지리공간 분석
- 요약
- OGR 라이브러리
- 6장. 래스터 데이터 처리
- GDAL을 사용해 래스터 데이터 다루기
- GDAL 라이브러리로 래스터 데이터 로드 및 쿼리하기
- GDAL을 이용한 래스터 생성
- PostgreSQL에서 래스터 처리하기
- PostgreSQL에 래스터 로드하기
- PostgreSQL로 래스터 쿼리 수행하기
- 래스터 메타데이터 쿼리하기
- 지오메트리 결괏값 쿼리
- 반환된 값 쿼리하기
- 요약
- GDAL을 사용해 래스터 데이터 다루기
- 7장. 지오데이터베이스를 사용한 지오프로세싱
- 범죄 대시보드
- 범죄 데이터베이스 구성
- 테이블 생성하기
- 데이터 채우기
- 쿼리 매핑하기
- 대화형 위젯
- 차트
- 트리거
- 범죄 데이터베이스 구성
- 요약
- 범죄 대시보드
- 8장. QGIS 분석 자동화
- 파이썬 콘솔로 작업하기
- 레이어 로딩하기
- 레이어 처리하기
- 레이어 속성
- 특징 속성
- PostGIS에서 레이어 그리기
- 포인트 그리기
- PostGIS에서 폴리곤 그리기
- 특징 추가, 편집, 삭제하기
- 기존 레이어에 특징 추가하기
- 기존 레이어에서 항목 삭제하기
- 기존 레이어에서 특징 편집하기
- 수식을 사용해 특징 선택하기
- 툴박스 사용하기
- 사용자 정의 툴박스 만들기
- 요약
- 파이썬 콘솔로 작업하기
- 9장. 파이썬 ArcGIS API 및 ArcGIS 온라인
- 파이썬 및 ArcGIS 온라인용 ArcGIS API 소개
- 파이써닉 웹 API
- API 설치하기
- API 테스팅
- 문제 해결
- Esri 사용자 계정 인증
- 서로 다른 Esri 사용자 계정
- 파이썬 ArcGIS API의 여러 모듈들
- 연습 1 - API 임포팅 및 맵 위젯 사용하기
- 개인화된 ArcGIS 온라인 계정 만들기
- 연습 2 - 지리공간 콘텐츠 검색, 표시, 설명하기
- 연습 3 - 래스터 데이터 및 API 지오프로세싱 함수 사용하기
- 요약
- 파이썬 및 ArcGIS 온라인용 ArcGIS API 소개
- 10장. GPU 데이터베이스와 지오프로세싱
- 클라우드 지오데이터베이스 솔루션
- 빅데이터 프로세싱
- OmniSciDB 아키텍처
- 클라우드 대 로컬 대 혼합
- 클라우드에 OmniSciDB 인스턴스 생성하기
- AMI 검색하기
- AWS 계정 만들기
- 키 쌍 생성하기
- 인스턴스 실행하기
- 버전 선택하기
- 인스턴스 검색하기
- 보안 그룹 설정하기
- Immerse 환경
- Immerse로 로깅하기
- CSV 가져오기
- 차트 만들기
- SQL EDITOR 사용하기
- 지리공간 데이터 사용하기
- 터미널에서 데이터베이스 연결하기
- PuTTYgen
- pymapd 설치하기
- 연결 생성하기
- 데이터 커서
- 테이블 생성하기
- INSERT 구문
- 아파치 애로우로 데이터 로드하기
- 포함 여부 확인
- 요약
- 클라우드 지오데이터베이스 솔루션
- 11장. Flask와 GeoAlchemy2
- Flask와 컴포넌트 모듈
- 설정
- pip로 모듈 설치하기
- Flask 애플리케이션 개발하기
- 데이터소스에서 데이터 다운로드하기
- 카운티, 디스트릭트, 주 및 경기장 쉐이프파일
- 데이터베이스, 데이터 테이블 생성하기
- 신규 데이터베이스에 PostGIS 확장 테이블 추가하기
- 데이터베이스 테이블 정의
- 테이블 생성하기
- 신규 데이터 테이블로 데이터 삽입하기
- 필요한 모듈 임포트하기
- 쉐이프파일 검색과 읽기
- Flask 애플리케이션 컴포넌트
- 폴더 구조와 컨트롤러 객체
- 폼
- 뷰
- 웹 지도 템플릿
- 로컬에서 웹 애플리케이션 실행하기
- 설정
- 요약
- Flask와 컴포넌트 모듈
- 12장. GeoDjango
- Django, GeoDjango 설치 및 설정하기
- Django에서 GeoDjango까지
- Django 설치하기
- 윈도우 환경변수 수정하기
- 프로젝트와 애플리케이션 생성하기
- 명령행 인수 startproject
- manage.py로 애플리케이션 생성하기
- settings.py 설정하기
- 애플리케이션 만들기
- manage.py
- 데이터 모델 생성하기
- 데이터베이스 마이그레이션
- LayerMapping
- 관리 패널
- GeoDjango 관리 패널
- URLs
- URL 패턴
- 뷰
- 필수 폴더와 파일
- 뷰 작성하기
- 애플리케이션 실행하기
- manage.py
- 요약
- Django, GeoDjango 설치 및 설정하기
- 13장. 지리공간 REST API
- 파이썬 REST API 만들기
- REST
- JSON
- 파이썬 REST API
- Flask
- 기타 프레임워크
- Flask URLs 변수
- 숫자 타입 변환기
- 요청 메서드
- GET 요청
- POST 요청
- 기타 활용 가능한 요청 메서드
- REST API 애플리케이션
- 애플리케이션 컴포넌트
- 애플리케이션 폴더와 파일 구조
- forms.py
- views.py
- 기본 URL
- Arenas 테이블
- States 데이터
- County 데이터
- Districts 데이터
- API POST 엔드포인트
- 새 경기장
- requests 라이브러리로 POST 요청 보내기
- arena 삭제하기
- 로컬에서 REST API 실행하기
- 애플리케이션 컴포넌트
- Flask에서 IIS 로 배포하기
- Flask와 웹서버
- WSGI
- WFastCGI 모듈 및 FastCGI 설치하기
- FastCGI 설정하기
- 루트 서버 설정과 환경변수
- Flask와 웹서버
- 요약
- 파이썬 REST API 만들기
- 14장. 클라우드 지오데이터베이스 분석 및 시각화
- CARTOframes 설치 방법
- 추가 리소스
- 주피터 노트북
- CARTO API 키
- 패키지 의존성
- CARTO Data Observatory
- CARTO 계정 가입하기
- CARTO 무료 체험판
- 데이터셋 추가하기
- API 키
- 데이터셋 추가하기
- CARTO 무료 체험판
- 가상 환경
- virtualenv 설치하기
- virtualenv 실행하기
- 가상 환경 활성화하기
- virtualenv 내 모듈 설치하기
- 사용 모듈
- virtualenv 설치하기
- 주피터 노트북 사용하기
- 계정 접속하기
- 자격증명 저장하기
- 데이터셋 액세스하기
- 개별행 선택하기
- CSV 데이터셋 로딩하기
- 쉐이프파일 로딩
- GeoPandas 설치하기
- CARTO에 쓰기
- 지오메트리 CSV 로딩하기
- 지리공간 분석
- 데이터셋 편집 및 업데이트하기
- overwrite=True
- 맵 만들기
- 계정 접속하기
- 요약
- CARTOframes 설치 방법
- 15장. Cartography 클라우드 지도 제작 자동화
- 지도 제작에 관한 모든 것
- GIS에 맵박스 통합하는 방법
- 맵박스 도구
- MapboxGL
- 맵박스 파이썬 SDK
- 맵박스 시작하기
- 맵박스 계정 등록
- API 토큰 생성하기
- 맵박스 계정에 데이터 추가하기
- 예제 - GeoJSON 데이터셋 업로드하기
- 예제 - 타일셋 데이터 업로드하기
- 맵박스 스튜디오
- 베이스맵 커스터마이징
- 타일셋 추가하기
- 가상 환경
- MapboxGL-Jupyter 설치하기
- 주피터 노트북 설치하기
- Pandas, GeoPandas 설치하기
- 주피터 노트북 서버 사용하기
- GeoPandas로 데이터 가져오기
- 폴리곤에서 포인트 생성하기
- 데이터 정제
- GeoJSON에 포인트 저장하기
- 맵에 포인트 추가하기
- 등급별 색상 시각화 만들기
- 색상, 크기, 구분 자동 설정
- 단계 구분도 만들기
- 지도 저장하기
- 히트맵 만들기
- 맵박스 파이썬 SDK로 데이터 업로드하기
- 데이터셋 생성하기
- 데이터셋에 데이터 로드하기
- 데이터셋에서 데이터 읽기
- 행 삭제하기
- 베이스맵 커스터마이징
- 요약
- 지도 제작에 관한 모든 것
- 16장. 하둡으로 파이썬 지오프로세싱
- 하둡이란?
- 하둡 프레임워크 설치하기
- 리눅스 설치하기
- 도커 설치하기
- 호튼웍스 설치하기
- 하둡 기초
- SSH를 통한 연결
- 암바리
- 하둡 Esri GIS 도구
- 파이썬과 HDFS, 하이브
- 요약