고도 등고선 생성기
단일 숫자 고도 밴드가 있는 GeoTIFF DEM에서 같은 고도 셀 사이의 선을 계산합니다. 각 고도 샘플을 픽셀 중심에 놓고 셀 사이를 선형 보간하며, 구간 경계를 연결해 GeoJSON과 SVG로 내보냅니다.
주요 기능
- 북쪽이 위인 EPSG:4326/3857 단일 밴드 DEM과 NoData 태그를 실제 GeoTIFF로 읽기
- 간격과 기준 고도로 등고선 높이를 결정하고 2×2 샘플 사이를 marching squares로 보간
- 네 모서리 saddle에는 쌍선형 determinant 규칙 적용, 같은 점·중복 조각 연결/제거
- NoData가 낀 셀을 건너뛰고 가장 바깥 반 셀을 임의 외삽하지 않음
- EPSG:3857 입력도 RFC 7946 WGS84 경도·위도 GeoJSON LineString/MultiLineString으로 출력
- SVG 선 미리보기와 고도별 선·조각·꼭짓점 수, 유효 샘플·제외 셀 보고
사용 방법
- GeoTIFF DEM을 열거나 9×9 원뿔 예제를 불러와 CRS·격자·NoData를 확인합니다.
- 고도 간격, 기준 고도, 원본 값의 단위(미터·피트·미지정)를 입력합니다.
- 생성을 실행한 뒤 최소·최대 고도, 픽셀 중심 범위와 높이별 선 수를 확인합니다.
- 등고선 미리보기를 보고 GeoJSON 또는 SVG를 다운로드합니다.
- GeoJSON 좌표는 WGS84 경도·위도이며, SVG는 투영 지도나 측량 원도가 아니라는 점을 검토합니다.
활용 예시
- 작은 수치 DEM에서 높이별 지형선을 만들어 GIS에서 검사
- 고도 간격을 바꿔 선 밀도와 NoData 공백을 비교
- 직접 측정한 단일 고도 격자로 등치선 알고리즘을 학습
자주 묻는 질문
일반 이미지 SVG 윤곽화와 무엇이 다른가요?
이미지 SVG 도구는 RGBA 색상·명도를 임계값으로 추적합니다. 이 도구는 GeoTIFF의 수치 고도 band와 지리 좌표 태그를 읽고 실제 높이 간격에서 선을 보간합니다. 사진 색상은 고도로 해석하지 않습니다.
등고선은 픽셀 모서리나 중심 중 어디를 지나나요?
GeoTIFF PixelIsArea 샘플 값은 셀 중심의 대표값으로 취급합니다. 네 이웃 샘플 중심이 만든 사각형에서 보간하므로 결과 범위는 원본 지리 경계에서 반 셀 안쪽입니다. 외곽 반 셀은 외삽하지 않습니다.
NoData와 평평한 고도 구역은 어떻게 처리하나요?
NoData를 하나라도 포함한 네 샘플 사각형은 통째로 제외해 선이 공백을 가로지르지 않습니다. 모두 같은 고도인 평면에는 유일한 선이 없으므로 선을 만들어내지 않습니다. 최소·최대와 같은 극단 높이는 출력 목록에서 제외합니다.
saddle처럼 네 변을 가로지르는 모호한 셀은요?
쌍선형 보간의 determinant 부호로 어느 변을 연결할지 정합니다. 정확히 0인 동점은 고정된 방향을 택합니다. 교차점이 꼭짓점에 겹치면 0길이·중복 조각을 제거하고 연결 가능한 조각만 잇습니다.
EPSG:3857에서 만든 GeoJSON도 좌표가 미터인가요?
아닙니다. RFC 7946 GeoJSON은 WGS84 경도·위도여야 하므로 모든 출력 선을 EPSG:4326으로 변환합니다. 원본 CRS와 선언한 고도 단위는 속성에 기록합니다. SVG는 원본 격자의 평면 도식이며 거리 측정용이 아닙니다.
어떤 DEM과 크기를 지원하나요?
명시적인 EPSG:4326/3857, 북쪽이 위인 단일 이미지 PixelIsArea GeoTIFF의 숫자 band 하나만 처리합니다. 입력 8 MiB, 120,000셀·한 변 1024셀, 등고선 80개·셀×높이 200만 회·조각 10만 개 한도입니다. 회전, 다중 band, 다른 CRS나 높이 수직 기준계 변환은 지원하지 않습니다.
개인정보 안내
DEM은 브라우저 안에서 읽고 처리합니다. 이 도구는 파일 내용을 서버 API에 전송하지 않습니다. 내보낸 GeoJSON과 SVG는 이 탭에서 생성됩니다.
댓글과 질문