.SHP 파일이란?
SHP는 ESRI Shapefile의 표현에 사용되는 기본 파일 유형 중 하나의 파일 확장자입니다. 지리정보시스템(GIS) 애플리케이션에서 사용할 벡터 데이터 형태의 공간정보를 나타냅니다. 형식은 ESRI와 다른 소프트웨어 제품 간의 상호 운용성을 용이하게 하기 위해 개방형 사양으로 개발되었습니다.
데이터 표현
앞서 언급했듯이 shapefile 형식은 데이터 세트의 지리 공간 정보를 벡터 기능으로 설명합니다. 이러한 벡터 기능은 다음과 같습니다.
- 포인트들
- 라인
- 폴리곤
이러한 기능을 조합하면 우물, 국가 경계, 공간 점, 강 흐름, 호수 등과 같은 거의 모든 유형의 모양을 나타낼 수 있습니다. 각 벡터 기능은 해당 기능의 목적을 실제로 정의하는 속성을 가질 수 있습니다. 예를 들어, 로스앤젤레스의 도시를 포함하는 shapefile은 공간 데이터에 의미 있는 표현을 제공하는 속성으로 도시 이름과 온도를 가질 수 있습니다.
관련 파일
독립 실행형 shp 파일은 포함된 데이터의 의미를 만들기 위해 소프트웨어 응용 프로그램에서 사용할 수 없습니다. 이러한 파일에 포함된 정보를 이해하기 위해 shapefile은 다음과 같은 추가 필수 파일을 사용합니다.
- shx 파일 - 인덱스 파일
- dbf 파일 - 모양의 모든 속성을 기본 파일에 저장하는 dBASE 파일
- prj 파일 - 파일의 프로젝트 정보 저장
기본 파일과 동일한 이름을 공유하는 다른 선택적 파일도 있을 수 있습니다.
SHP 파일 형식 사양
shapefile의 공개 사양은 Technical Description 형식으로 ESRI에서 온라인으로 제공되며 파일의 전체 구조를 자세히 설명합니다. 기본 .shp 파일의 정보는 헤더와 레코드로 구성됩니다. 고정 길이 파일 헤더 다음에 가변 길이 레코드가 옵니다. 여기서 모든 레코드는 고정 길이 레코드 헤더와 가변 길이 레코드 내용으로 구성됩니다.
메인 SHP 파일 헤더
기본 파일 헤더는 파일의 시작 부분에서 시작하며 길이는 100바이트입니다. 바이트 위치, 값, 유형 및 바이트 순서와 함께 이 메인 파일 헤더의 구성은 다음 표와 같습니다.
바이트 | 필드 | 값 | 유형 | 바이트 순서 |
---|---|---|---|---|
0-3 | 파일 코드 | 9994 | 정수 | 빅 엔디안 |
4-23 | 미사용 | 0 | 정수 | 빅 엔디안 |
24-27 | 파일 길이 | 파일 길이 | 정수 | 빅 엔디안 |
28-31 | 버전 | 1000 | 정수 | 리틀 엔디안 |
32-35 | 모양 유형 | 모양 유형 | 정수 | 리틀 엔디안 |
36-67 | 최소 경계 사각형 | Xmin, Ymin, Xmax 및 Ymax | double | 리틀 엔디안 |
68-83 | 경계 상자 | Zmin, Zmax | 더블 | 리틀 엔디안 |
84-99 | 경계 상자 | Mmin, Mmax | 더블 |
파일 길이 값은 헤더를 구성하는 50개의 16비트 워드도 포함하는 16비트 워드로 된 파일의 총 길이입니다.
모양 유형
위 표의 모양 유형 필드 값은 다음과 같습니다.
값 | 모양 유형 |
---|---|
0 | 널 모양 |
1 | 포인트 |
3 | 폴리라인 |
5 | 다각형 |
8 | 멀티포인트 |
11 | 포인트Z |
13 | 폴리라인Z |
15 | 폴리곤Z |
18 | 멀티포인트Z |
21 | 포인트엠 |
23 | 폴리라인M |
25 | 다각형M |
28 | 멀티포인트M |
31 | 멀티패치 |
데이터 기록
기본 파일 헤더 뒤에는 가변 길이 레코드가 오고, 여기서 각 레코드는 고정 길이 레코드 헤더와 가변 길이 레코드 내용으로 구성됩니다.
레코드 헤더
레코드 헤더는 8바이트의 고정 길이로 레코드 번호와 레코드의 내용 길이에 대한 정보를 포함합니다. 레코드 헤더의 구성은 다음과 같습니다.
바이트 | 필드 | 값 | 유형 | 바이트 순서 |
---|---|---|---|---|
0-3 | 레코드 번호 | 레코드 번호 | 정수 | 큰 |
4-7 | 레코드 길이 | 레코드 길이 | 정수 | 큰 |
녹음 내용
셰이프 파일 레코드 내용은 해당 셰이프에 대한 기하학적 데이터가 뒤따르는 셰이프 유형으로 구성됩니다. 0의 모양 유형은 모양에 대한 기하학적 데이터가 없는 null 모양을 나타냅니다. 레코드 내용의 길이는 모양 부분과 꼭짓점의 반영입니다. 레코드에 이러한 모양 유형에 대한 정보가 포함된 방법을 자세히 설명하기 위해 점 모양 유형의 예를 들어 보겠습니다.
점은 각 좌표가 배정밀도 값으로 표시되는 X,Y 순서로 특정 지리적 위치를 나타냅니다. 다음 표는 Point 모양 유형의 배열을 보여줍니다.
바이트 | 모양 유형 | 값 | 유형 | 숫자 | 바이트 순서 |
---|---|---|---|---|---|
0-3 | 모양 유형 | 1 | 정수 | 1 | 작은 |
4-11 | X | X | 더블 | 1 | 작은 |
12-19 | Y | Y | 더블 | 1 | 작은 |
다른 모양 유형의 예는 ESRI 기술 설명 문서에서 찾을 수 있습니다.
참조
- ESRI Shapefile 기술 설명 by ESRI