가상환경 구축 (mac OS)
아나콘다(anaconda)를 사용한 파이썬 가상환경
1. 아나콘다 소개
anaconda는 데이터 처리, 예측 분석 등을 위한 파이썬 언어의 프리미움 오픈소스 배포판으로 패키지 관리와 단순한 배포를 목표로 개발되었다. conda는 아나콘다와 함께 설치되는 패키지 관리 프로그램이다.
2. miniconda와 anaconda의 차이점
미니콘다는 아나콘다의 경량화 버전으로 conda, Python, pip, zlib 등 최소한의 의존성 패키지만 설치된다.
conda create -n geos python=3.9
conda activate geos
conda install -y -c conda-forge psycopg2 gdal geos shapely fiona pyshp rasterio geopandas requests jupyterlab
# 가상환경(geos) 활성화
conda activate geos
데이터베이스 구성
지리공간 데이터를 처리, 분석하는 데이터베이스에는 SpatialLite와 PostGIS 존재
Postgres.app 설치 (Mac OS)
Postgres.app - the easiest way to get started with PostgreSQL on the Mac
- Download ➜ Move to Applications folder ➜ Double Click
- Click Initialize to create a new server
- Configure your $PATH to use the included command line tools (optional):
sudo mkdir -p /etc/paths.d && echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee /etc/paths.d/postgresapp
이 때 유저는 사용자 mac OS 계정 이름으로 설정되며 패스워드는 없다.
PostgreSQL Graphical Client
Database 생성
createdb -U <username> pythonspatial
Database 연결
psql -U <username> -d pythonspatial
Enabling PostGIS
-- Enable PostGIS (as of 3.0 contains just geometry/geography)
CREATE EXTENSION postgis;
-- enable raster support (for 3+)
CREATE EXTENSION postgis_raster;
-- Enable Topology
CREATE EXTENSION postgis_topology;
-- Enable PostGIS Advanced 3D
-- and other geoprocessing algorithms
-- sfcgal not available with all distributions
CREATE EXTENSION postgis_sfcgal;
-- fuzzy matching needed for Tiger
CREATE EXTENSION fuzzystrmatch;
-- rule based standardizer
CREATE EXTENSION address_standardizer;
-- example rule data set
CREATE EXTENSION address_standardizer_data_us;
-- Enable US Tiger Geocoder
CREATE EXTENSION postgis_tiger_geocoder;
Python으로 데이터베이스 연결 및 테이블 생성
(geos) $ jupyter-lab
jupyter-lab 실행 후 웹브라우저가 자동 실행되면 새로운 노트북 하나를 생성하고 아래 코드를 복사한다.
import psycopg2
connection = psycopg2.connect(database="pythonspatial", user="<username>")
cursor = connection.cursor()
cursor.execute("CREATE TABLE art_pieces (id SERIAL PRIMARY KEY, code VARCHAR(255), location GEOMETRY)")
connection.commit()
pythonspatial 데이터베이스에 접속하여 art_pieces 테이블 생성하라는 코드이다.
다음글에서는 연결된 데이터베이스 테이블에 데이터를 추가하고, 데이터를 쿼리하고 좌표계(CRS)를 변경하는 등의 실습을 진행해볼 예정이다.
'devlog > Python' 카테고리의 다른 글
직렬화(Serialize), 역직렬화(Deserialize), 마샬링(Marshalling) (0) | 2021.09.07 |
---|---|
공간정보 분석 - Part 1. 관련 라이브러리 소개 (0) | 2021.06.19 |
conda 기본 사용 가이드 (0) | 2021.03.21 |
Installation Notes (0) | 2017.02.25 |