geojson의 구조 및 활용

2023. 3. 27. 15:57Bio-python/Pre-Process

GeoJSON은 지리적인 데이터를 표현하기 위한 형식 중 하나로, JSON으로 위치 데이터와 속성 데이터를 저장하는 형식이다.

 

geojson의 구조는 다음과같다.

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "LineString",
        "coordinates": [
          [12955.36, 15843.04],
          [12955.36, 15843.04],
          [12952.61, 15834.79],
        ]
      },
      "properties": {
        "object_type": "annotation",
        "classification": {
          "name": "TP_microvascular proliferation",
          "colorRGB": -16711681
        },
        "isLocked": false
      }
    },
        {
      "type": "Feature",
      "geometry": {
        "type": "LineString",
        "coordinates": [
          [5720.49, 10941.09],
          [5720.49, 10941.09],
          [5720.49, 10940.36],
          [5720.49, 10939.63],
          ]
         },
               "properties": {
        "object_type": "annotation",
        "classification": {
          "name": "TP_microvascular proliferation",
          "colorRGB": -16711681
        },
        "isLocked": false
      }
      }

✨ Geometry Type

GeoJSON은 데이터 객체를 Geometry , Feature , FeatureCollection 3가지 타입으로 표현할 수 있다.

차원(Dimension) 타입(type)
0차원(점) - Point
- MultiPoint
1차원(선) - LineString
- MultiLineString
2차원(면) - Polygon
- MultiPolygon
 
- GeometryCollection

✨ Feature Type

  • 특정 공간에 위치하는 개체를 나타낸다. (a spatially bounded entity)
  • Feature는 Geometry object(7 Geometry Type 중 하나)와 추가 프로퍼티로 구성된다.

✨ FeatureCollection Type

  • Feature의 리스트를 나타낸다. (a list of Features)

 

📍 포지션(Position)

세부적인 Geometry Object를 알아보기 전에 포지션의 개념에 대한 이해가 필요하다.

Geometry Object는 특정 공간 영역을 나타내는 객체이다. 이러한 공간 영역 나타내기 위해서 포지션이 사용된다. 포지션은 지구상의 한 지점을 나타낼 수 있으며 이 지점은 우리가 '장소'라고 생각할 수 있는 가장 작은 단위이다.

포지션은 순서대로 배열된 좌표(Coordinate)이다. 포지션은 숫자 배열로 반드시 2개 이상의 엘리먼트가 있어야한다.

[ longitude, latitude, (altitude) ]

처음 두 엘리먼트는 longitude / latitude 또는 easting / northing을 나타내며 순서에 맞춰 10진수를 사용해야한다. 3번째 엘리먼트는 옵션으로 altitude 또는 elevation을 나타낸다.

포지션에서 사용할 수 있는 엘리먼트는 최대 3개이다. 역사적으로 이 이상 엘리먼트를 추가하려는 시도도 있었지만 그다지 성공적이지 못했다. 따라서 GeoJSON 처리기는 3개의 엘리먼트 외에 다른 추가 엘리먼트들은 무시한다.

단일 포지션은 한 지점을 나타내지만 여러 포지션들을 조합하면 좌표상에 기하학(Geometry) 형태의 도형을 표현할 수 있다.

필자의 Geojson은 Linestring이며 이미지파일에 어노테이션된 부분이 coordination 객체내에 위치해있다.

 

'Bio-python > Pre-Process' 카테고리의 다른 글

yolo를 활용하여 svs 파일의 geojson 좌표학습 1  (0) 2023.03.29