Python GeoJSON 표준 형식을 구현한 python-geojson 라이브러리 알아보기

오늘은 Python으로 GeoJSON 표준 형식을 구현한 라이브러리인 python-geojson을 적용해보려 합니다.

python-geojson 설치

우선 virtualenv로 파이썬 환경을 분리해줍니다.

pip3 install virtualenv
virtualenv -mvenv env

env라는 이름의 가상 환경을 생성합니다.

source env/bin/activate

가상환경을 폴더에서 활성화합니다.

pip3 install --upgrade pip

pip의 업그레이드가 존재하는지 확인하고 진행합니다.

pip install geojson

pip로 python-geojson을 설치합니다.

Point

from geojson import Point

point = Point((126.97689056396484, 37.57880031671566))
print(point)
print(point.is_valid)

geojson에서 Point를 가져와서 Geometries 기본 형태인 Point로 저장할 수 있습니다.

is_valid 필드로 형태가 올바른지 판단할 수 있습니다.

{
  "type": "Point",
  "coordinates": [126.9906234741211, 37.55083796990428]
}

json 형태로 변환되면 위와 같이 나타낼 수 있습니다.

MultiPoint

from geojson import MultiPoint

multi_p = MultiPoint([(126.97689056396484, 37.57880031671566), (126.97079658508302, 37.55492071859406)])
print(multi_p)
print(multi_p.is_valid)

geojson에서 MultiPoint를 가져와서 Geometries 멀티파트 형태인 MultiPoint로 저장할 수 있습니다.

is_valid 필드로 형태가 올바른지 판단할 수 있습니다.

{
    "type": "MultiPoint",
    "coordinates": [
        ...
    ]
}

json 형태로 변환되면 위와 같이 나타낼 수 있습니다.

LineString

from geojson import LineString

list_str = LineString([(126.95972442626953, 37.575671232633184), (126.99354171752928,37.57607938149231)])
print(list_str)
print(list_str.is_valid)

geojson에서 LineString을 가져와서 Geometries 기본 형태인 LineString으로 저장할 수 있습니다.

is_valid 필드로 형태가 올바른지 판단할 수 있습니다.

{
  "type": "LineString",
  "coordinates": [
    [126.92419052124023, 37.54430510679532],
    [127.02529907226561, 37.54376067569239]
  ]
}

json 형태로 변환되면 위와 같이 나타낼 수 있습니다.

MultiLineString

from geojson import MultiLineString

multi_str = MultiLineString([((126.95972442626953, 37.575671232633184), (126.99354171752928,37.57607938149231)),
                             [(126.95972442626953, 37.575671232633184), (126.99354171752928,37.57607938149231)]])
print(multi_str)
print(multi_str.is_valid)

geojson에서 MultiLineString을 가져와서 Geometries 멀티파트 형태인 MultiLineString으로 저장할 수 있습니다.

is_valid 필드로 형태가 올바른지 판단할 수 있습니다.

{
    "type": "MultiLineString",
    "coordinates": [
        ...
    ]
}

json 형태로 변환되면 위와 같이 나타낼 수 있습니다.

Polygon

from geojson import Polygon

polygon = Polygon([((126.98212623596191, 37.5774398615325), (126.96847915649414, 37.55839087912287),
                    (126.9938850402832, 37.55621354238461), (126.98212623596191, 37.5774398615325))])
print(polygon)
print(polygon.is_valid)

geojson에서 Polygon을 가져와서 Geometries 기본 형태인 Polygon으로 저장할 수 있습니다.

is_valid 필드로 형태가 올바른지 판단할 수 있습니다.

{
  "type": "Polygon",
  "coordinates": [
    [
      [126.97774887084961, 37.586486421515175],
      [126.93311691284178, 37.54171902364639],
      [127.0210075378418, 37.54308013122266],
      [126.97774887084961, 37.586486421515175]
    ]
  ]
}

json 형태로 변환되면 위와 같이 나타낼 수 있습니다.

MultiPolygon

from geojson import MultiPolygon

multi_poly = MultiPolygon([([(126.98212623596191, 37.5774398615325), (126.96847915649414, 37.55839087912287),
                    (126.9938850402832, 37.55621354238461), (126.98212623596191, 37.5774398615325)],),
              ([(127.98212623596191, 37.5774398615325), (127.96847915649414, 37.55839087912287),
                    (127.9938850402832, 37.55621354238461), (127.98212623596191, 37.5774398615325)],)])
print(multi_poly)
print(multi_poly.is_valid)

geojson에서 MultiPolygon을 가져와서 Geometries 멀티파트 형태인 MultiPolygon으로 저장할 수 있습니다.

is_valid 필드로 형태가 올바른지 판단할 수 있습니다.

{
  "type": "MultiPolygon",
  "coordinates": [
    ...
  ]
}

json 형태로 변환되면 위와 같이 나타낼 수 있습니다.

Written on May 20, 2019