🗺️ GIS & RS/📚 GIS (지리정보시스템)

[GIS] shp 파일의 크기 줄이는 방법

김 홍시 2024. 11. 13.
반응형

shp 파일의 크기를 줄이는 방법은 주로 데이터의 단순화, 불필요한 필드 제거, 또는 압축 방식을 활용하는 방법을 포함합니다. 아래에 구체적인 방법을 정리해 보았습니다.


1. 지리 데이터 단순화 (Simplification)

지리 데이터를 단순화하여 파일 크기를 줄일 수 있습니다. 이는 QGISArcGIS와 같은 GIS 소프트웨어 또는 Python을 이용하여 수행할 수 있습니다.

  • QGIS:
    1. 레이어를 선택하고 벡터 > 지오메트리 도구 > 단순화로 이동합니다.
    2. 단순화 허용 오차 값을 설정하여 세부 정보를 줄입니다.
  • Python (Shapely, Geopandas):
  • import geopandas as gpd from shapely.geometry import Polygon # 데이터 로드 gdf = gpd.read_file("your_file.shp") # 단순화 수행 (허용 오차: 0.01) gdf['geometry'] = gdf['geometry'].simplify(tolerance=0.01, preserve_topology=True) # 저장 gdf.to_file("simplified_file.shp")

2. 불필요한 속성 필드 제거

속성 테이블에서 사용하지 않는 필드를 삭제하면 파일 크기를 줄일 수 있습니다.

  • QGIS:
    1. 속성 테이블 열기 (Ctrl+T).
    2. 필드 계산기 또는 필드 삭제 기능을 이용하여 불필요한 필드를 제거.
  • Python:
  • gdf = gdf.drop(columns=['불필요한_필드1', '불필요한_필드2']) gdf.to_file("reduced_file.shp")

3. 지오메트리 정리 (Clean Geometry)

지오메트리 오류나 중복 데이터를 제거하여 용량을 줄일 수 있습니다.

  • QGIS: 벡터 > 지오메트리 도구 > 지오메트리 정리
  • Python: shapely.geometry를 활용하여 buffer(0)로 지오메트리를 수정.

 

 

 

 

 

 

Shapelysimplify 함수에서 사용하는 tolerance 값은 데이터의 복잡성단순화된 데이터가 보존해야 할 정확도에 따라 결정됩니다. 따라서 가중치(허용 오차)는 데이터의 특성과 프로젝트 목적에 맞게 설정해야 합니다.


1. Tolerance 설정 기준

  • 단위: tolerance는 입력된 데이터의 좌표계 단위에 따라 다릅니다.
    • 만약 좌표계가 WGS84 (EPSG:4326)라면, 단위는 도(degree)입니다.
    • 만약 좌표계가 UTM이나 다른 미터 기반 좌표계라면, 단위는 미터(m)입니다.

데이터 예시

  • 국가/도시 수준 데이터:
    • 적절한 tolerance: 0.001~0.01 (도로, 행정구역 경계 등 큰 영역)
  • 소규모 지역 데이터:
    • 적절한 tolerance: 0.0001~0.001 (건물 경계, 작은 지역 등)
반응형

댓글