El formato Esri TIN es un formato de datos vectoriales geoespaciales popular pero patentado para el software del sistema de información geográfica (GIS) para almacenar datos de elevación como una red irregular triangulada . Está desarrollado y regulado por Esri . El formato Esri TIN puede describir espacialmente la información de elevación, incluidas las características de los bordes de ruptura. Cada punto y triángulo puede llevar una etiqueta de información. [1] [2] Un TIN almacenado en este formato de archivo puede tener cualquier forma, cubrir varias regiones (por ejemplo, islas) y contener agujeros (por ejemplo, lagos). [3]
Extensiones de nombre de archivo | .adf |
---|---|
Desarrollado por | Esri |
Tipo de formato | SIG |
En 2007 , salió a la luz una descripción de ingeniería inversa del formato Esri TIN. [4] Desde entonces, Virtual Terrain Project, un software de código abierto , ha implementado soporte para leer el formato, sin la necesidad de instalar ArcGIS . [5]
Descripción general
El formato Esri TIN es un formato de almacenamiento de vectores digitales para almacenar información de elevación, incluidas las características de los bordes de ruptura. El formato Esri TIN se introdujo con ArcView GIS .
El formato Esri TIN consiste en una colección de archivos con nombres de archivo específicos y una extensión de nombre de archivo común, almacenados en el mismo directorio . La mayoría de los archivos son obligatorios archivos ( tdenv.adf, tedg.adf, thul.adf, tmsk.adf, tmsx.adf, tnod.adf, [5] tnxy.adf[5] y tnz.adf[5] ), opcionalmente un archivo que contiene la información del sistema y la proyección (coordenadas prj.adf) y los archivos que contienen información de la etiqueta punto ( tnval.adfy tndsc.adf) y la etiqueta triángulo se puede dar información ( ttval.adfy ttdsc.adf) [1] [2] .
- Archivos obligatorios
- tdenv.adf - encabezado y datos estadísticos
- tedg.adf - datos de bordes y topología
- thul.adf - datos de polígono de casco exterior e interior
- tmsk.adf- enmascarar datos, enmascarar triángulos invisibles
- tmsx.adf - archivo de índice para tmsk.adf
- tnod.adf- datos del nodo triangular
- tnxy.adf - información de posición (coordenadas xey)
- tnz.adf - información de altura (valores z)
El endianness de la mayoría de los archivos es big-endian. tmsk.adf, tmsx.adfY tdenv.adfse han mezclado orden de bits .
- Otros archivos
- prj.adf- descripción de la proyección, utilizando una representación de texto bien conocida de sistemas de referencia de coordenadas ; son una sola línea {B286C06B-0879-11D2-AACA-00C04FA33C20}significa un sistema de coordenadas desconocido [6]
- tndsc.adf - estadística sobre el uso de etiquetas de puntos
- tnval.adf - datos de etiqueta de punto
- ttdsc.adf - descripción de los datos de la etiqueta triangular
- ttval.adf - datos de etiqueta triangular
La endianidad del archivo tndsc.adfy tnval.adfes little-endian.
- Archivos generados por ArcGIS 10
- tnodinfo.adf - tipos de puntos y más
- teval.adf - datos de bordes
- tdenv9.adf- el archivo tdenv.adfrenombrado
- Tamaño de archivo
Un TIN con npuntos (incluidos superpuntos ) y k triángulos , los tamaños de archivo se calculan para:
- tnxy.adf : 16 * nbytes
- tnz.adf : 4 * nbytes
- tnod.adf : 12 * kbytes
- tedg.adf : 12 * kbytes
- tmsx.adf : 116 bytes
- tdenv.adf/ tdenv9.adf : 104 bytes
- tmsk.adf : 132 + 4 * techo ( k/ 32) bytes
- thul.adf : min. 12 bytes, depende del número de puntos en el polígono del casco convexo
- tndsc.adf : 24 * el número de entradas de etiquetas especificadas en tndsc.adfbytes (ver más abajo)
- tnval.adf : 4 * n'bytes (n ': número de puntos etiquetados, incluidos superpuntos ; ver más abajo)
- tnodinfo.adf : 2 * nbytes
- teval.adf : 16 * el número de entradas de bordes de ruptura especificadas en tdenv9.adfbytes (ver más abajo)
Archivos obligatorios
tnxy.adf - Coordenadas X e Y de los puntos del TIN
Contiene una matriz de valores de coordenadas X e Y, un par para cada punto del TIN. El conjunto de datos para cada punto se puede describir mediante la siguiente estructura:
Bytes | Tipo | Endianidad | Uso |
---|---|---|---|
0–7 | doble | grande | Valor de la coordenada X |
8-15 | doble | grande | Valor de la coordenada Y |
tnz.adf - Coordenadas Z de los puntos del TIN
Contiene una matriz de valores de coordenadas Z, uno para cada punto del TIN. Los valores están en el mismo orden que los valores tnxy.adfy juntos almacenan la coordenada tridimensional de cada punto del TIN. El conjunto de datos para cada punto se puede describir mediante la siguiente estructura:
Bytes | Tipo | Endianidad | Uso |
---|---|---|---|
0-3 | flotador | grande | Valor de la coordenada Z |
tnod.adf - Índices de los puntos que forman los triángulos del TIN
Contiene una matriz de índices para los puntos que forman los triángulos del TIN, 3 índices para cada triángulo. Los índices están en el rango de 1 al número de puntos ([1, # de puntos]). La cara frontal de un triángulo (generalmente el lado superior) es esa cara, que tiene los 3 puntos / esquinas ordenados en el sentido de las agujas del reloj cuando se ve. El conjunto de datos para cada triángulo se puede describir mediante la siguiente estructura:
Bytes | Tipo | Endianidad | Uso |
---|---|---|---|
0-3 | int32 | grande | Índice del primer punto de un triángulo |
4-7 | int32 | grande | Índice del segundo punto de un triángulo |
8-11 | int32 | grande | Índice del tercer punto de un triángulo |
tedg.adf - Topología de los triángulos y tipo de sus aristas
Contiene información sobre la topología de los triángulos y el tipo de sus aristas.
Hay una entrada para cada triángulo con cada 3 índices, que apuntan a la posición (número del índice) en el tnod.adfarchivo para identificar el triángulo, que comparte un borde con el triángulo descrito por el conjunto de datos actual y el punto de ese triángulo. , que forman ese borde.
Para cada triángulo en tnod.adfexiste un conjunto de datos en la misma ubicación de archivo en tedg.adf. Cada uno de los valores apunta a la ubicación en tnod.adf, donde se especifica el punto (el índice de ese punto) que forma un borde. Al mismo tiempo, dado que la ubicación en tnod.adfy tedg.adfcorresponde, cada uno de los valores apunta a la ubicación en tedg.adf, donde se especifica la ubicación del valor. Regla: Si el borde de una de triángulo A puntos de borde b de triángulo B , entonces borde b de triángulo B debe apuntar a borde una de triángulo A . Dado que la definición del borde tedg.adfy la definición del punto en tnod.adfde cada triángulo están en la misma ubicación que los archivos, los índices en tedg.adfapuntan a la definición del punto en tnod.adfde los triángulos vecinos.
Los índices codifican el índice real y el tipo de borde. Los índices reales no son compensaciones de archivo en bytes, sino en int32valores, en el rango de 1 al número de puntos ([1, # de puntos]). Si el valor es negativo (se establece el bit 31), el borde es un borde de ruptura. Además, el bit 30 de los int32valores se usa para determinar si el borde es un borde de rotura duro o blando. Si el índice real fuera 1234(0x000004D2), entonces un borde de ruptura fuerte se codificaría como -1234(0xFFFFFB2E) y un borde de ruptura suave como -1073743058(0xBFFFB2E). La definición de borde del triángulo vecino debe reflejar el tipo de borde. ATENCIÓN: Este comportamiento ha cambiado desde ArcGIS 10. Compare con la información proporcionada en la sección ' Cambios de formato y archivos nuevos con ArcGIS 10 '.
El conjunto de datos para cada triángulo se puede describir mediante la siguiente estructura:
Bytes | Tipo | Endianidad | Uso |
---|---|---|---|
0-3 | int32 | grande | Índice codificado de definición de punto (índice de un punto) del triángulo vecino tnod.adfque forma un borde con el primer punto del triángulo |
4-7 | int32 | grande | Índice codificado de definición de punto (índice de un punto) del triángulo vecino tnod.adfque forma un borde con el segundo punto del triángulo |
8-11 | int32 | grande | Índice codificado de definición de punto (índice de un punto) del triángulo vecino en el tnod.adfque forma un borde con el tercer punto el triángulo a |
tdenv.adf - Encabezado o estadísticas
Este archivo contiene información que podría verse como una combinación de encabezado de archivo y datos estadísticos.
Bytes | Tipo | Endianidad | Uso |
---|---|---|---|
0-3 | int32 | grande | Número de puntos (puntos regulares y superpuntos ) |
4-7 | int32 | grande | Numero de triangulos |
8-11 | int32 | grande | Número de índices y separadores en thul.adf |
12-15 | int32 | grande | 0 (en la versión 9) / número de entradas de borde de ruptura en teval.adf(versión 10) |
16-19 | int32 | grande | Número de triángulos, no enmascarados tmsk.adf |
20-23 | int32 | grande | Número de puntos regulares |
24-27 | int32 | grande | Número de superpuntos |
28–31 | flotador | grande | Altura mínima (valor Z del punto más bajo; zmin) |
32–35 | flotador | grande | Altura máxima (valor Z del punto más alto; zmax) |
36–39 | int32? | grande | Valores desconocidos, diferentes encontrados |
40–47 | doble | grande | Extensión mínima en dirección X (xmin) |
48–55 | doble | grande | Extensión mínima en dirección Y (ymin) |
56–63 | doble | grande | Extensión máxima en dirección X (xmax) |
64–71 | doble | grande | Extensión máxima en dirección Y (ymax) |
72–79 | doble ? | grande | Desconocido, siempre 0 |
80–87 | doble ? | grande | Valores desconocidos, diferentes encontrados |
88–91 | int32 | grande | Desconocido, siempre 70001 (versión 9) / 90001 (versión 10); tal vez un número de versión |
92–95 | int32 | pequeño | Número de etiquetas utilizadas (incluida la etiqueta 0para superpuntos ) |
96–99 | int32? | grande | Desconocido, siempre 0; tal vez sin usar |
100-103 | int32? | grande | Desconocido, siempre 0; tal vez sin usar |
thul.adf - Casco, polígono delimitador y agujeros
Contiene una matriz de índices y separadores, que define el límite exterior del TIN y sus huecos. Los índices están en el rango de 1 al número de puntos ([1, # de puntos]). Los separadores son -1 (0xFFFFFFFF) y cero (0).
Si el TIN se construye usando superpuntos (generalmente los primeros 4 puntos), thul.adfenumera los índices de estos puntos y luego -1(0xFFFFFFFF). Después del separador sigue una o más listas de índices que forman polígonos delimitadores (límites externos) y tal vez huecos (límites internos). Estas listas están separadas por valores cero (0).
Si el TIN no contiene superpuntos , thul.adfcomienza con el -1separador (0xFFFFFFFF), seguido de una o más listas de índices que forman polígonos delimitadores (límites externos) y tal vez huecos (límites internos). Estas listas están separadas por valores cero (0).
Los índices y separadores son valores enteros de 4 bytes (int32), almacenados en orden de bytes big-endian.
tmsk.adf - Máscara
Contiene una matriz de bits (almacenados en números enteros de 4 bytes) que especifican la visibilidad de los triángulos del TIN. Esto se puede utilizar para ocultar los triángulos dentro de los huecos del terreno o fuera del terreno (fuera de los límites exteriores).
El archivo se almacena utilizando las mismas estructuras (encabezado y registros) que un shapefile , pero como solo almacena los valores de visibilidad de los triángulos, se utilizan muchos campos del encabezado.
El encabezado del archivo tiene una longitud fija de 100 bytes y contiene 17 campos; nueve campos enteros de 4 bytes (entero de 32 bits con signo o int32) seguidos de ocho campos de coma flotante con signo de 8 bytes ( doble ):
Bytes | Tipo | Endianidad | Uso |
---|---|---|---|
0-3 | int32 | grande | Código de archivo (siempre valor hexadecimal 0x0000270a) |
4-23 | int32 | grande | No usado; cinco uint32 |
24-27 | int32 | grande | Longitud del archivo (en palabras de 16 bits, incluido el encabezado) |
28–31 | int32 | pequeño | Versión 0; probablemente sin usar |
32–35 | int32 | pequeño | Tipo de forma 0; probablemente sin usar |
36–43 | doble | pequeño | Extensión X mínima (siempre 0.0); no usado |
44–51 | doble | pequeño | Extensión Y mínima (siempre 0.0); no usado |
52–59 | doble | pequeño | Extensión X máxima (siempre 0.0); no usado |
60–67 | doble | pequeño | Extensión Y máxima (siempre 0.0); no usado |
68–75 | doble | pequeño | Extensión Z mínima (siempre 0.0); no usado |
76–83 | doble | pequeño | Extensión Z máxima (siempre 0.0); no usado |
84–91 | doble | pequeño | Extensión mínima M (siempre 0.0); no usado |
92–99 | doble | pequeño | Extensión máxima M (siempre 0.0); no usado |
El archivo entonces contiene al menos 2 registros. Cada registro tiene como prefijo un encabezado de registro de 8 bytes:
Bytes | Tipo | Endianidad | Uso |
---|---|---|---|
0-3 | int32 | grande | Número de registro (basado en 1) |
4-7 | int32 | grande | Longitud de registro (en palabras de 16 bits) |
A continuación del encabezado del registro se encuentran los datos reales.
Registro 1: Los datos del registro número 1 tienen 2 palabras y solo contienen el tamaño de los datos del registro número 2 en números enteros de 4 bytes, almacenados como un entero de 4 bytes (big-endian).
Registro 2: Los datos del registro número 2 contienen la siguiente estructura de longitud variable:
Bytes | Tipo | Endianidad | Uso |
---|---|---|---|
0-3 | int32 | grande | Número de entero en la matriz de máscara |
4-7 | int32 | grande | No usado; siempre 0; tal vez un desplazamiento (bits, bytes o enteros?) en la matriz de la máscara, donde comienzan los bits de la máscara real |
8-11 | int32 | grande | Número de bits usados en la matriz de máscara |
12– | uint32 [] | grande | Matriz de máscara |
El bit 0 (bit menos significativo) del primer número entero contiene la bandera de visibilidad (invisible si se establece en 1) del primer triángulo definido en tnod.adf. El bit 1 del primer entero contiene el indicador de visibilidad (invisible si se establece en 1) del segundo triángulo, y así sucesivamente. Se utilizan los 32 bits de los enteros (sin bit de signo).
Registro 0: los registros con el número de registro 0 deben ignorarse.
tmsx.adf - Archivo de índice para la máscara
El archivo de índice contiene el mismo encabezado de 100 bytes que el tmsk.adfarchivo, seguido de cualquier número de registros de longitud fija de 8 bytes que constan de los dos campos siguientes:
Bytes | Tipo | Endianidad | Uso |
---|---|---|---|
0-3 | int32 | grande | Desplazamiento de registro (en palabras de 16 bits) |
4-7 | int32 | grande | Longitud de registro (en palabras de 16 bits) |
Usando este índice, es posible buscar hacia atrás en el tmsk.adfarchivo, primero, buscando hacia atrás en el índice (lo cual es posible porque usa registros de longitud fija), luego leyendo el desplazamiento del registro y usando ese desplazamiento para buscar el valor correcto. posición en el tmsk.adfarchivo. También es posible buscar reenvíos de un número arbitrario de registros utilizando el mismo método.
archivos opcionales
Dependiendo de la información almacenada en el TIN, se necesitan algunos archivos adicionales.
prj.abf - Proyección y CRS
Contiene el sistema de coordenadas y la información de proyección. El archivo puede estar en el ESRI sabor de la representación de texto conocido de los sistemas de coordenadas de referencia formato (WKT), una notación simple valor de palabra clave (Keyword: Projection, Datum, Spheroid, Units, Zunits, Xshift, Yshift, Zone, ...) o tienen un único línea {B286C06B-0879-11D2-AACA-00C04FA33C20}, que significa un sistema de coordenadas desconocido.
tndcs.abf - Estadística de uso de etiquetas
Contiene un conjunto de datos grandes de 24 bytes, uno para cada etiqueta utilizada. El conjunto de datos contiene la etiqueta y el número de puntos con esa etiqueta. Cada conjunto de datos está estructurado de la siguiente manera:
Bytes | Tipo | Endianidad | Uso |
---|---|---|---|
0-3 | int32 | pequeño | Número de la entrada; comenzando con 1 |
4-7 | int32 | pequeño | Valor de etiqueta |
8-11 | int32 | pequeño | No usado; siempre 0; tal vez reservado para extender los valores de la etiqueta a 64 bits |
12-15 | int32 | pequeño | Número de puntos con la etiqueta |
16-19 | int32? | pequeño | No usado; siempre 0 |
20-23 | int32? | pequeño | Desconocido; siempre 0 en ArcGIS 9, valores diferentes en ArcGIS 10 |
tnval.abf - Archivo de etiqueta de punto
Contiene una matriz de valores enteros de 4 bytes, uno para cada punto (etiquetado) del TIN. Los valores se almacenan en orden de bytes little-endian. Los superpuntos tienen el valor 0(cero). Los puntos sin una etiqueta (por ejemplo, los puntos agregados al romper los bordes) deben almacenarse en último lugar en el TIN y no tienen una entrada en este archivo.
Cambios de formato y archivos nuevos con ArcGIS 10
Desde ArcGIS 10 hubo algunos cambios en el formato de archivo TIN. Quedaron 2 archivos nuevos ( teval.dbfy tnodinfo.dbf) y 1 archivo.
tdenv9.dbf- tdenv.dbfrenombrado
La estructura del archivo sigue siendo la misma, solo se usa adicionalmente el campo que contiene el número de bordes de ruptura.
tnodinfo.dbf - Más información de los puntos
Contiene una matriz de valores enteros de 2 bytes. Uno shortpor cada punto. El propósito aún no se conoce públicamente. Hasta ahora parece ser una especie de máscara de bits o código que describe el uso del punto. Los valores parecen almacenarse en orden de bytes big-endian.
Valor | Valor hexadecimal | Uso |
---|---|---|
2 | 0x0002 | Superpunto |
4 | 0x0004 | Punto regular |
24 | 0x0018 | ? |
88 | 0x0058 | ? |
132 | 0x0084 | ? |
280 | 0x0118 | ? |
284 | 0x011C | ? |
376 | 0x0178 | ? |
516 | 0x0204 | ? |
772 | 0x0304 | ? |
796 | 0x031C | ? |
teval.dbf - El nuevo archivo de borde de ruptura (parte 1)
Contiene una matriz de conjuntos de datos que definen los bordes de ruptura del TIN, dos para cada borde de ruptura (uno para cada dirección). Cada conjunto de datos tiene una longitud de 16 bytes y está estructurado de la siguiente manera:
Bytes | Tipo | Endianidad | Uso |
---|---|---|---|
0-3 | int32 | grande | Índice de definición de punto (índice de un punto) y definición de borde (índice de borde) del triángulo vecino en tnod.adfo tedg.adfque forma un borde de ruptura |
4-7 | int32 | grande | Índice de definición de punto (índice de un punto) y definición de borde (índice de borde) del triángulo actual en tnod.adfo tedg.adfque forma un borde de ruptura |
8-11 | int32 | grande | Tipo de borde de rotura (4 para bordes duros, 2 para bordes suaves) |
12-15 | int32 | grande | No usado; siempre 0 |
tedg.dbf - El nuevo archivo de borde de ruptura (parte 2)
Desde ArcGIS 10, este archivo ha cambiado un poco. Todavía contiene un conjunto de datos para cada triángulo, y las referencias / índices de los bordes regulares no se modifican, pero la codificación de los bordes de ruptura es diferente. Los bordes de ruptura todavía se marcan con valores negativos, pero el índice ya no apunta a la posición del archivo en tnod.dbfy tedg.dbf, en su lugar, el valor absoluto es el número de entrada del borde de ruptura teval.dbf. La codificación de bordes suaves también se ha trasladado a teval.dbf.
Superpunto
En este artículo, el término "superpunto" se utiliza en varios lugares. En ausencia de una descripción oficial del formato de archivo, se eligió este término para reflejar las propiedades de estos puntos. (También podrían haberse llamado 'metapunto', 'punto extra', 'punto infinito' y muchos más.) Un superpunto en el contexto del formato de archivo Esri TIN es un punto adicional agregado por el software ArcGIS durante la triangulación / generación del ESTAÑO. ArcGIS generalmente agrega 4 de estos puntos, uno al oeste, norte, este y sur de los puntos TIN regulares, a distancias extremadamente altas. Los superpuntos suelen ser los primeros puntos en los archivos de puntos tnxy.adfy tnz.adf. Los triángulos que se construyen con estos puntos suelen estar enmascarados (invisibilizados) en el tmsk.adfarchivo.
Ver también
- Sistema de información geográfica
- Formato propietario
- Shapefile
- Red irregular triangulada
Referencias
- ^ a b Samaga, Uta. "Kartographische 3D-Modellierung mit dem ArcView 3D-Analyst" (PDF) . Consultado el 27 de abril de 2015 .
- ^ a b Ormsby, Tim; Alvi, Jonell. Ampliación de ArcView GIS . ISBN 978-1-879-10205-7.
- ^ "Conferencia sobre superficies a cargo de Ronald Briggs, Ph.D., GISP" . Consultado el 27 de abril de 2015 .
- ^ "Descripción del formato del Proyecto de Terreno Virtual ITF (" Formato TIN intermedio ")" . Consultado el 27 de abril de 2015 .
- ^ a b c d "Código fuente del Proyecto de Terreno Virtual leyendo Ersi TIN" . Consultado el 27 de abril de 2015 .
- ^ "Referencia de GeoEco Python sobre el método ConvertSpatialReference" . Consultado el 27 de abril de 2015 .
enlaces externos
- Formato ITF : descripción del formato del "Formato TIN intermedio" utilizado en el proyecto de terreno virtual.
- Formato de texto conocido