Estoy buscando una explicación más profunda de las diferencias en los archivos shp y shx en vano. Quiero decir más allá de 'shp contiene geometría: shx contiene un índice de la geometría'.
La razón por la que pregunto es porque, mientras trabajaba en QGIS recientemente, hice dos observaciones que me llevaron a cuestionar las diferencias exactas en estas extensiones de archivo:
- QGIS puede abrir y mostrar shx y shp, y cada archivo parece ser más o menos idéntico en su salida (pantalla),
- pero no exactamente así: me he dado cuenta de que a veces los archivos shx / shp coincidentes se muestran ligeramente "fuera de lugar" entre sí. No parece ser un problema de proyección, simplemente no dibujan exactamente en la misma ubicación que el otro.
Estas observaciones me hicieron sentir curiosidad acerca de por qué existen estas diferencias en la visualización, y por qué QGIS puede abrir y operar el shx de la misma manera que el shp, cuando anteriormente entendí que el shp es el archivo 'maestro' si lo desea, pero requiere .dbf y .shx para funcionar correctamente como una entidad única y completa.
qgis
shapefile
file-formats
Maggie
fuente
fuente
Respuestas:
La referencia definitiva sobre el formato del archivo de forma es la Descripción técnica del archivo de forma ESRI .
Es engañoso describir el
shx
como un "índice". En cambio, es el archivo de desplazamiento de acceso directo. No hay datos en elshx
, solo un clon de los primeros cien bytes y el número de registro y el desplazamiento al byte inicial de ese registro en elshp
. La única ubicación para los atributos esdbf
(que es independiente, a pesar de "conocimiento" en contrario, elshx
no vincula elshp
ydbf
, solo el número de registro lo hace).Es posible que los archivos de forma tengan "huecos" en los
shp
que se haceshx
indispensable, pero en la práctica las herramientas de Esri reescribirán todoshp
yshx
así se eliminará cualquier espacio creado al editar registros. En la mayoría de las condiciones, es posible recuperar elshx
contenido si se pierde; No se puede decir lo mismo para elshp
odbf
.La denominación de
shp
yshx
es un artefacto delVFILE
módulo de acceso directo de ancho variable del sistema operativo PrImeOS, primero portado por Esri a Unix, VAX / VMS, Data General e IBM, luego a Microsoft Windows. El par de índicesbn
/sbx
espacial comparte la misma convención de nomenclatura (aunque no están documentados dentro de la especificación del archivo de forma). Dentro de laVFILE
biblioteca FORTRAN original , solo se nombró el archivo base, y el archivo de desplazamiento con unx
carácter terminal acaba de aparecer en la creación del archivo.fuente
The index file (.shx) contains a 100-byte header followed by 8-byte, fixed-length records. Figure 4 illustrates the index file organization.
lógicamente es análogo a los índices de bases de datosa data structure that improves the speed of data retrieval operations
.shx
absolutamente no es un índice espacial.shx
realidad, ralentiza el acceso en serie (más E / S), pero hace posible el acceso directo , lo que podría considerarse una mejora.shp
yshx
. Es no presente en eldbf
, desplazamiento desde el final de los registros de cabecera (40 bytes para la tabla, que incluye un número de campos, y 40 bytes adicionales para cada campo) veces el tamaño del registro solamente el byte implícita. He escrito lectores y escritores de archivos de forma tanto en 'C' como en Java, y es la variable del contador de bucles del programa la que vincula elshp
/shx
aldbf
. Elshx
proporciona la vinculación del número de registro, por compensada con una comprobación de integridad regnum, al inicio de lashp
grabación, nada más.Shx ciertamente no tiene nada que mostrar en un mapa solo, ya que puede leer la especificación https://www.esri.com/library/whitepapers/pdfs/shapefile.pdf .
De hecho, tiene razón en que es posible abrir shapefile seleccionando la parte .shx con QGIS 3.0.3, pero no puedo ver ninguna diferencia en la ubicación. Creo que el shapefile todavía se abre por el mismo camino y el resultado es el mismo. Si puede hacer un caso de prueba para reproducir el problema de la ubicación diferente de las geometrías, cree un ticket QGIS sobre el problema.
Si elimina la parte .shp, verá que QGIS no abre .shx solo.
fuente
.shx
es el índice de un.shp
archivo.Necesita ambos para poder abrir el
.shp
archivo. Si abre un.shx
archivo en QGIS, se abre el.shp
archivo. Si están apagados, hay un problema de proyección.Un ShapeFile necesita tres componentes:
.shp
- almacena la geometría.shx
- almacena el índice.dbf
- almacena los atributos.prj
Generalmente se recomienda un archivo, que almacena la información de proyección. Puede haber otros archivos asociados con un ShapeFile, pero estos no son absolutamente necesarios.fuente