El formato shapefile es un formato de datos vectoriales geoespaciales para software de sistemas de información geográfica (GIS) . Esri lo desarrolla y regula como una especificación mayoritariamente abierta para la interoperabilidad de datos entre Esri y otros productos de software GIS . [1] El formato shapefile puede describir espacialmente entidades vectoriales : puntos , líneas y polígonos , que representan, por ejemplo, pozos de agua , ríos y lagos . Cada elemento suele tener atributos que lo describen, como el nombre o la temperatura .
El formato shapefile es un formato de almacenamiento vectorial digital para almacenar información de ubicación geográfica y atributos asociados. Este formato no tiene capacidad para almacenar información topológica . El formato shapefile se introdujo con ArcView GIS versión 2 a principios de los años 90. Ahora es posible leer y escribir conjuntos de datos geográficos utilizando el formato shapefile con una amplia variedad de software.
El formato shapefile almacena la geometría como formas geométricas primitivas como puntos, líneas y polígonos. Estas formas, junto con los atributos de datos vinculados a cada forma, crean la representación de los datos geográficos. El término "shapefile" es bastante común, pero el formato consiste en una colección de archivos con un prefijo de nombre de archivo común, almacenados en el mismo directorio . Los tres archivos obligatorios tienen extensiones de nombre de archivo .shp
, .shx
y .dbf
. El shapefile real se relaciona específicamente con el .shp
archivo, pero por sí solo está incompleto para su distribución ya que se requieren los otros archivos de soporte. De acuerdo con la Descripción técnica de ESRI Shapefile , [1] el software SIG heredado puede esperar que el prefijo del nombre de archivo se limite a ocho caracteres para cumplir con la convención de nombre de archivo DOS 8.3 , aunque las aplicaciones de software modernas aceptan archivos con nombres más largos.
.shp
x-gis/x-shapefile
.shx
x-gis/x-shapefile
.dbf
application/octet-stream
ORtext/plain
.prj
— descripción de la proyección, utilizando una representación de texto conocida de sistemas de referencia de coordenadas {content-type: text/plain OR application/text}.sbn
y .sbx
— un índice espacial de las características {content-type: x-gis/x-shapefile}.fbn
y .fbx
— un índice espacial de las características que son de solo lectura {content-type: x-gis/x-shapefile}.ain
y .aih
— un índice de atributos de los campos activos en una tabla {content-type: x-gis/x-shapefile}.ixs
— un índice de geocodificación para conjuntos de datos de lectura y escritura {content-type: x-gis/x-shapefile}.mxs
— un índice de geocodificación para conjuntos de datos de lectura y escritura (formato ODB) {content-type: x-gis/x-shapefile}.atx
— un índice de atributos para el .dbf
archivo en formato (ArcGIS 8 y posterior) {content-type: }shapefile.columnname.atx
x-gis/x-shapefile
.shp.xml
— metadatos geoespaciales en formato XML, como ISO 19115 u otro esquema XML {content-type: application/fgdc+xml}.cpg
— se utiliza para especificar la página de códigos (solo para .dbf
) para identificar la codificación de caracteres que se utilizará {content-type: text/plain
OR x-gis/x-shapefile
}.qix
— un índice espacial de árbol cuaternario alternativo utilizado por el software MapServer y GDAL/OGR {content-type: x-gis/x-shapefile}En cada uno de los archivos .shp
, .shx
, y .dbf
, las formas de cada archivo se corresponden entre sí en secuencia (es decir, el primer registro del .shp
archivo se corresponde con el primer registro de los archivos .shx
y .dbf
, etc.). Los archivos .shp
y .shx
tienen varios campos con diferente orden de bytes , por lo que un implementador de los formatos de archivo debe tener mucho cuidado de respetar el orden de bytes de cada campo y tratarlo adecuadamente.
El archivo principal ( .shp ) contiene los datos de geometría. La geometría de una característica dada se almacena como un conjunto de coordenadas vectoriales. [1] : 5 El archivo binario consta de un único encabezado de longitud fija seguido de uno o más registros de longitud variable . Cada uno de los registros de longitud variable incluye un componente de encabezado de registro y un componente de contenido de registro. Se proporciona una descripción detallada del formato de archivo en la Descripción técnica de ESRI Shapefile . [1] Este formato no debe confundirse con el formato de fuente de forma de AutoCAD , que comparte la extensión..shp
El ordenamiento de los ejes 2D de los datos de coordenadas asume un sistema de coordenadas cartesianas , utilizando el orden (XY) o (Este-Norte). Este orden de ejes es consistente para los sistemas de coordenadas geográficas , donde el orden es similar (longitud-latitud). Las geometrías también pueden admitir coordenadas Z y M tridimensionales o cuatridimensionales, para elevación y medida, respectivamente. Una dimensión Z almacena la elevación de cada coordenada en el espacio 3D , que se puede utilizar para el análisis o la visualización de geometrías mediante gráficos de computadora 3D . La dimensión M definida por el usuario se puede utilizar para una de muchas funciones, como almacenar medidas de referencia lineal o tiempo relativo de una característica en el espacio 4D .
El encabezado del archivo principal tiene una longitud fija de 100 bytes y contiene 17 campos; nueve campos enteros de 4 bytes (enteros con signo de 32 bits o int32) seguidos de ocho campos de punto flotante con signo de 8 bytes ( doble ):
El archivo contiene entonces cualquier cantidad de registros de longitud variable. Cada registro tiene como prefijo un encabezado de registro de 8 bytes:
A continuación del encabezado del registro se encuentra el registro real:
El contenido de los registros de longitud variable depende del tipo de forma, que debe ser el tipo de forma indicado en el encabezado del archivo o nulo. Los siguientes son los tipos de forma posibles:
El índice contiene el índice posicional de la geometría de la entidad y el mismo encabezado de 100 bytes que el .shp
archivo, seguido de cualquier cantidad de registros de longitud fija de 8 bytes que constan de los siguientes dos campos:
Con este índice, es posible buscar hacia atrás en el shapefile, primero buscando hacia atrás en el índice de forma (lo cual es posible porque utiliza registros de longitud fija), luego leyendo el desplazamiento del registro y utilizando ese desplazamiento para buscar la posición correcta en el .shp
archivo. También es posible buscar hacia adelante una cantidad arbitraria de registros utilizando el mismo método.
Es posible generar el archivo de índice completo a partir de un solo .shp
archivo. Sin embargo, dado que se supone que un shapefile siempre debe contener un índice, hacerlo cuenta como reparar un archivo dañado. [2]
Este archivo almacena los atributos de cada forma; utiliza el formato dBase IV. El formato es de conocimiento público y se ha implementado en muchos clones de dBase conocidos como xBase . La biblioteca de archivos de formas de código abierto C, por ejemplo, llama a su formato "xBase" aunque se trata de dBase IV simple. [3]
Los nombres y valores de los atributos no están estandarizados y serán diferentes según la fuente del shapefile.
Este es un archivo de índice espacial binario , que solo utiliza el software de Esri. El formato no está documentado por Esri. Sin embargo, la comunidad de código abierto lo ha diseñado y documentado de forma inversa. El encabezado de 100 bytes es similar al de .shp . [4] Actualmente, otros proveedores no lo implementan. El archivo no es estrictamente necesario, ya que contiene toda la información necesaria para analizar correctamente los datos espaciales..sbn
.shp
El formato shapefile tiene una serie de limitaciones. [5]
El formato shapefile no tiene la capacidad de almacenar relaciones topológicas entre formas. Las coberturas ESRI ArcInfo y muchas geodatabases sí tienen la capacidad de almacenar topología de entidades.
El tamaño de ambos archivos .shp
y .dbf
de sus componentes no puede superar los 2 GB (o 231 bytes ), es decir, alrededor de 70 millones de características de puntos en el mejor de los casos. [6] La cantidad máxima de características para otros tipos de geometría varía según la cantidad de vértices utilizados.
El formato de la base de datos de atributos para el .dbf
archivo de componentes se basa en un estándar dBase más antiguo . Este formato de base de datos tiene inherentemente una serie de limitaciones: [6]
Debido a que el tipo de forma precede a cada registro de geometría, un shapefile es técnicamente capaz de almacenar una mezcla de diferentes tipos de formas. Sin embargo, la especificación establece que "todas las formas que no sean nulas en un shapefile deben ser del mismo tipo de forma". Por lo tanto, esta capacidad de mezclar tipos de formas debe limitarse a intercalar formas nulas con el tipo de forma único declarado en el encabezado del archivo. Un shapefile no debe contener datos de polilíneas y polígonos; por ejemplo, las descripciones de un pozo (punto), un río (polilínea) y un lago (polígono) se almacenarían en tres conjuntos de datos separados.