공간정보/Shapely(Python)

Shapely #2 WKT 사용 방법

요긴소프트 2022. 11. 14. 12:52
728x90
반응형

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), 다중점(MULTIPOINT), 기하집합(GEOMETRYCOLLECTION) 등 읽으면 의미를 알 수 있는 형태이다.

Shapely에 사용하는 방법은 이전 소개에서 보았던 방법대로 from shapely.wkt import dumps, loads 구문으로 관련 모듈을 import 한 후에 사용할 수 있다.

from shapely.wkt import dumps, loads
# WKT문자열을 Geometry로 변환
geom = loads('POLYGON EMPTY')
# Geometry를 WKT 문자열로 변환
dumps(geom)

if geom.is_empty:
  print('비어있는 폴리곤 입니다')

위와 같이 사용할 수 있습니다. is_empty 는 geometry 객체에서 사용할 수 있는 연산으로 해당 도형이 null인지 확인 할 수 있습니다.

한가지 주의 사항은 도형의 경우, empty와 null을 혼동하지 않도록 더욱 조심해야 한다. 예를들어 교집합(intersection), 차집합(difference)의 결과가 없는 경우 empty가 되고, geometry 변수자체에 값이 없는 경우 null이 된다. 

 

728x90
반응형