shapefile의 shx 파일과 shp 파일의 차이점을 설명 하시겠습니까?


11

shp 및 shx 파일의 차이점에 대해 자세히 설명하고 있습니다. 나는 'shp contains geometry-shx contains geometry of index'를 넘어서는 의미입니다.

내가 묻는 이유는 최근 QGIS에서 작업하는 동안 이러한 파일 확장의 정확한 차이점에 대해 두 가지 관찰을하여 내 마음에 질문을했기 때문입니다.

  1. QGIS는 shx와 shp를 모두 열고 표시 할 수 있으며 각 파일은 출력 (디스플레이)에서 다소 동일하게 나타납니다.
  2. 그러나 정확히 그렇지는 않습니다-때로는 일치하는 shx / shp 파일이 서로에 대해 약간 '킬러 부족'으로 표시되는 것을 알았습니다. 투영 문제가 아닌 것처럼 서로 정확히 같은 위치에 그리지는 않습니다.

이러한 관찰을 통해 왜 이러한 디스플레이 차이가 존재하는지, QGIS가 shp와 동일한 방식으로 shx를 열고 작동 할 수있는 이유에 대해 궁금해했습니다. .dbf 및 .shx가 하나의 전체 엔티티로 올바르게 작동해야합니다.



답변:


19

shapefile 형식에 대한 확실한 참조는 ESRI Shapefile 기술 설명 입니다.

shx"인덱스"로 설명하는 것은 오해의 소지가 있습니다. 대신 직접 액세스 오프셋 파일입니다. 에 데이터가 없으며 shx처음 100 바이트의 복제본과 레코드 번호 및에 해당 레코드의 시작 바이트에 대한 오프셋 만 shp있습니다. 속성의 유일한 위치 dbf는 (독립적이지만 "지식"에도 불구하고 and을 shx묶지 않고 레코드 번호 만 사용합니다)입니다.shpdbf

모양 파일이에 "격차"가하는 것이 가능하다 shp하게하는 shx필수 불가결를하지만, 실제로는 Esri는 도구는 전체를 다시 작성합니다 shpshx그래서 편집 기록에 의해 생성 된 간격이 제거됩니다. 대부분의 조건에서 shx내용이 누락되면 내용 을 복구 할 수 있습니다 . 동일은에 대해 말할 수 없다 shpdbf.

이름은 PrImeOS 운영 체제 의 가변 폭 직접 액세스 모듈의 이름으로 shp, Esri가 먼저 Esri에서 Unix, VAX / VMS, Data General 및 IBM으로 포팅 한 다음 Microsoft Windows로 포팅합니다. / (이들은 Shape 파일 규격 내에 설명하지 않지만) 공간 인덱스 쌍 주 동일한 명명 규칙. 원래 FORTRAN 라이브러리 내에서 기본 파일 만 명명되었으며 터미널 문자 가있는 오프셋 파일이 파일 생성시 나타납니다.shxVFILEsbnsbxVFILEx


1
그리고 나중에 : The index file (.shx) contains a 100-byte header followed by 8-byte, fixed-length records. Figure 4 illustrates the index file organization.논리적으로 데이터베이스 색인과 유사합니다 a data structure that improves the speed of data retrieval operations.
user30184

2
아니,이 shx절대적으로 없는 공간 인덱스.
빈스

1
shx실제로 직렬 접속 (더 I / O)를 느리게,하지만 직접 액세스 할 수 있도록 수행 가능한 개선 간주 될 수 있습니다.
빈스

1
"... 처음 백 바이트의 복제 및 레코드 번호 와 ..." . "... shx는 shp와 dbf를 묶지 않으며 레코드 번호 만 그렇게합니다 . " 먼저 '레코드 번호'가 .shx 안에 있다고 말합니다. 나중에 .shx는 .shp와 .dbf를 묶지 않지만 '레코드 번호'는 묶습니다. '레코드 번호'가 두 가지 인용 형식을 묶고 .shx의 일부인 경우 왜 .shx가 .shp 및 .dbf라고 말할 수 없습니까? 당신의 대답의이 부분이 혼란 스럽습니다. 당신은 명확히 할 수 있습니까? Tks.
Andre Silva

2
레코드 수는 모두에 존재 shp하고 shx. 그것은이다 하지 존재 dbf, 시간 기록 크기 (필드 수, 각 필드에 대해 추가의 40 바이트를 포함하는 표 40 바이트)이 헤더 레코드의 끝으로부터 오프셋 만 암시 바이트. 'C'와 Java로 shapefile 리더와 라이터를 작성했으며 shp/ shx를에 연결하는 프로그램의 루프 카운터 변수입니다 dbf. 이 shx기능은 recno 무결성 검사를 통해 오프셋으로 레코드 번호를 레코드 시작 부분에 연결합니다 shp.
Vince

12

사양 https://www.esri.com/library/whitepapers/pdfs/shapefile.pdf 에서 읽을 수 있으므로 Shx는 확실히지도에만 표시 할 것이 없습니다 .

QGIS 3.0.3에서 .shx 부분을 선택하여 shapefile을 열 수는 있지만 실제로는 위치에 차이가 없습니다. shapefile이 여전히 동일한 경로를 통해 열리고 결과는 동일하다고 생각합니다. 지오메트리의 다른 배치 문제를 재현하기위한 테스트 케이스를 작성할 수있는 경우 문제에 대한 QGIS 티켓을 작성하십시오.

.shp 부분을 삭제하면 QGIS가 .shx 만 열지 않습니다.


실수로 같은 파일을 다시 확인했는데 실제로 일치하지 않는 투영이었습니다. 이를 재정렬 할 때 동일한 레이어의 shx 및 shp 버전이 정렬되어 예상대로 동일했습니다. 흥미롭게도 QGIS를 사용하면 .shx와 .shp를 동일한 프로젝트에 업로드 할 수 있으며 각각 고유 한 소스 경로를 표시하지만 다른 사람들이 지적한 것처럼 출력은 실제로 동일한 파일과 동일한 형상입니다.
Maggie

2

.shx.shp파일 의 인덱스입니다 .

.shp파일 을 열려면 둘 다 필요 합니다. .shxQGIS에서 파일 을 열면 파일이 열립니다 .shp. 꺼져 있으면 투사 문제가있는 것입니다.

ShapeFile에는 세 가지 구성 요소가 필요합니다.

  1. .shp -기하학을 저장
  2. .shx -색인을 저장
  3. .dbf -속성을 저장

.prj프로젝션 정보를 저장 하는 파일이 일반적으로 권장됩니다. ShapeFile과 (와) 관련된 다른 파일이있을 수 있지만, 반드시 필요한 것은 아닙니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.