공간정보 62

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..

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), 다..

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 설치 ..

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 를 통해서..

Apache OpenOffice - 아파치 오픈 오피스

아파치 오픈 오피스는 이름에서도 알수 있듯이 Microsoft 오피스 계열의 소프트웨어의 오픈 소스 버전입니다. Apache OpenOffice - Official Site - The Free and Open Productivity Suite Udine moves to OpenOffice, will save 360,000 Euro 16 September 2014: The City of Udine, in Italy, announced a process that will lead to the installation of OpenOffice on 900 municipal desktops, saving the city 360,000 Euro. ZDNet's Raffaele Mastrolonardo h www.o..

한줄 팁 - PostGIS 교차 중복된 면적 구하기

PostGIS에 저장된 폴리곤 레이어가 있다고 가정하고, 이 레이어의 feature들 중 내가 설정한 영역과 중복되는 폴리곤들의 면적을 구하는 한줄 쿼리 입니다. select pnu, ST_Area( st_intersection( geom, st_transform( st_setsrid(st_geomfromtext('POLYGON ((127.00143 37.49791, 127.00635 37.49791, 127.00635 37.50109, 127.00143 37.50109, 127.00143 37.49791))'), 4326), 3857)))as area from lp_pa_cbnd where st_intersects(geom, st_transform( st_setsrid(st_geomfromtext('P..

한줄 팁 - Postgresql에서 CSV 바로 만들기

Postgresql의 Copy라는 명령어로 간단하게 CSV(Comma Separated Values) 포맷 파일을 만들 수 있습니다. 즉 좌표가 포함된 PostGIS 레이어 테이블도 간단하게 CSV 파일로 만들 수 있습니다. 문법은 아래와 같습니다. COPY [Table 이름 또는 쿼리] to '[파일경로/파일이름.csv]' csv header; 파일경로는 서버에서 수행할 경우 절대 경로로 해줘야 합니다. 이 명령어를 이용해 PostGIS 레이어 테이블에서 폴리곤으로 되어 있는 레이어에서 중심점 좌표만 추출한 CSV 파일을 만들고자 한다면 다음과 같이 명령어를 만들 수 있습니다. COPY ( select gate_no, gate_nm, st_x(st_centroid(st_transform(geom,432..

한줄 팁 - 여러 개의 shp 파일을 하나로 합치기

GDAL 명령어 중에 ogr2ogr 이라는 명령어가 있습니다. 주로 벡터 데이터를 가공, 변환, 추출하는데 많이 쓰이는 command line 명령어입니다. 이 명령어로 할 수 있는 것 중에 하나로, 여러 개의 shp 파일을 하나로 합치는 기능입니다. 예를 들어, 전국 200개가 넘는 시군구 데이터 파일이 시군구 별로 나눠져 있는데 이걸 하나로 합치고 싶다면 아래 명령어로 해결이 가능합니다. 한줄은 아니지만 합치고 싶은만큼 반복하며 됩니다. ogr2ogr mergeAll.shp shp-001.shp ogr2ogr -update -append mergeAll.shp shp-002.shp -nln merged ogr2ogr -update -append mergeAll.shp shp-003.shp -nls m..

QGIS - 아파트 단지 배치도를 지도에 올려보기

아파트 청약 안내 전단지나 홈페이지에 보면 앞으로 지어질 아파트의 단지 배치도를 보여줍니다. 대부분 사람들은 이렇게 제공된 단지 배치도를 기존 지도에 올려서 중첩해 보면 좋겠다고 생각합니다. 그래야 주변의 교통, 마트, 병원, 학교, 학원 위치를 파악하기 쉽기 때문이죠. QGIS를 통해 간단(?)하게 확인하는 방법을 소개해 드리겠습니다. 대략의 순서는 다음과 같습니다. QGIS를 다운로드 받습니다. QGIS에서 TMS for Korea 플러그인을 설치합니다. 아파트 단지 배치도를 불러옵니다. 단지배치도와 지도의 동일한 특정 위치들을 1:1로 맵핑시킵니다. 매핑 완료한 단지배치도를 지도사진(래스터)로 변환합니다. 기존 지도에 중첩된 단지 배치도를 확인합니다. 1. QGIS 홈페이지에서 다운로드 받습니다. ..