본문 바로가기

전체 글139

#0 OrTools란 무엇인가? Google Optimization Tools로 구글에서 만들어 무료(open-source)로 배포하고 있는 최적화 도구입니다. 최적화 도구란 여러가지 선택 가능한 문제를 수학적 모델로 정의하고 가장 나은 선택을 제시해 주는 프로그램이라고 할 수 있다. 예를 자주 드는 N-Queen 문제가 있다. 크기가 N x N 인 체스판 위에 퀸 N 개가 서로를 공격 할 수 없게 놓는 경우의 수를 구하는 문제 체스에서 퀸은 대각선과 가로, 세로로 공격할 수 있다. 그러면 N x N 크기의 체스판에서 공격할 수 없게 놓을 수 있는 퀸 배치 경우의 수는 몇개인가? N-Queens 문제는 최적화라기보다 가능한 모든 경우의 수를 구하는 문제이지만, 최대값, 최소값을 구하는 문제도 Or-Tools를 통해 구할 수 있다. Or.. 2022. 11. 14.
아나콘다 가상환경 생성하기/내보내기/불러오기 아나콘다를 이용해 python 가상 개발환경을 관리할 수 있다. python 개발 가상환경이 필요한 이유는 하나의 컴퓨터에 여러개의 python 프로젝트(프로그램)을 작성하면, 각각의 프로젝트에서 다양한 버전의 모듈 설치가 필요한 경우가 생긴다. 그리고 여러명의 개발자가 하나의 프로젝트를 협업할 때, 동일한 가상개발 환경을 구성해 소스 통합 시 모듈 버전 충돌문제를 발생하지 않도록 해준다. 아나콘다 설치는 아나콘다 홈페이지에서 자신의 개발 머신에 맞는 설치파일을 다운받아 설치하면 된다. 가상환경 생성하기 conda create -n python= 가상환경 내보내기 conda env export > 가상환경파일명.yml 가상환경 불러오기 conda env create --file 가상환경파일이름.yml 내.. 2022. 11. 14.
Shapely #3 기하 도형 그리기(Plot) Shapely 라이브러리는 기하학적 객체를 읽고, 쓰고, 분석하는 일을 하지만 해당 객체를 그려주지는 않는다. Python에서 matplotlib는 도형정보를 그리는 모듈 중 하나인데, 이를 이용해 shapely의 기하정보를 그릴 수 있다. 설치 방법은 pip install matplotlib 하면 설치된다. import matplotlib.pyplot as plt from shapely.geometry import Polygon fig, ax = plt.subplots() # Create Polygon exterior = [(20, 20), (50, 70), (80, 20)] poly = Polygon(exterior) # Plot Polygon xe, ye = poly.exterior.xy ax.pl.. 2022. 11. 14.
Shapely #2 WKT 사용 방법 WKT(Well Known Text) 포맷은 이름대로 직관적으로 도형의 정보를 알 수 있는 포맷이다. GEOS에서 소개된 WKT 포맷의 예는 아래와 같다. POINT(0 0) POINT EMPTY LINESTRING(0 0, 0 1, 1 2) LINESTRING EMPTY POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)) POLYGON((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 1 2, 2 2, 2 1, 1 1)) POLYGON EMPTY MULTIPOINT(0 0, 1 1) GEOMETRYCOLLECTION(MULTIPOINT(0 0, 1 1), POINT(3 4), LINESTRING(2 3, 3 4)) 점(POINT), 선(LINESTRING), 면(POLYGON), 다.. 2022. 11. 14.
Shapely #1 bounding box 쉽게 만들기 shapely에서 bouding box 쉽게 만들기 # shapely 설치후 box 클래스 import from shapely.geometry import box b = box(0.0, 0.0, 200, 100) print(b.wkt) # print 결과 : POLYGON ((200 0, 200 100, 0 100, 0 0, 200 0)) list(b.exterior.coords) # 결과 : [(200.0, 0.0), (200.0, 100.0), (0.0, 100.0), (0.0, 0.0), (200.0, 0.0)] # 기타 도형의 bounding box로 shapely.geometry.box 폴리곤 만들기 pbox = box(*myPolygon.bounds, ccw=True) ※ shapely 설치 .. 2022. 11. 14.
Shapely #0 소개 및 설치 방법 Shapely는 기하학적인 객체의 조작 및 분석을 위한 파이썬 라이브러리입니다. Manipulation and analysis of geometric objects 현재 Github에서 꾸준히 업데이트 관리되고 있습니다. 소개에 따르면 널리 사용하고 있는 오픈 소스 기하학 라이브러리인 GEOS(PostGIS, JTS 등에서 사용)를 사용하고 있다고 합니다. Shapely 2.0 이상 버전을 사용하시려면 Python 은 3.7이상, GEOS는 3.5이상, NumPy는 1.14 이상 버전이 설치되어 있거나 설치하면 됩니다. 설치방법은 간단히 pip install shapely 를 통해 할 수 있고, conda 환경이라면 conda install shapely --channel conda-forge 를 통해서.. 2022. 11. 14.