Esri TIN - Википедия - Esri TIN

Esri TIN
Расширения имени файла.adf
РазработанEsri
Тип форматаГИС

В Esri TIN формат пока популярен проприетарный геопространственный вектор формат данных для программного обеспечения географической информационной системы (ГИС) для хранения данных о высоте в виде триангулированная нерегулярная сеть. Он разработан и регулируется Esri. Формат Esri TIN может пространственно описывать информацию о высотах, включая выступающие кромки. Каждая точка и треугольник могут нести теговую информацию.[1][2]TIN, хранящийся в этом формате файла, может иметь любую форму, охватывать несколько регионов (например, острова) и содержать дыры (например, озера).[3]

В 2007 г. реконструированный выявлено описание формата Esri TIN.[4] С тех пор проект Virtual Terrain Project программное обеспечение с открытым исходным кодом, реализована поддержка чтения формата без необходимости ArcGIS устанавливается.[5]

Обзор

Формат Esri TIN - это цифровой векторный формат хранения для хранения информации о высотах, в том числе обломков кромок. Формат Esri TIN появился в ArcView ГИС.

Формат Esri TIN состоит из набора файлов с конкретными именами файлов и общим расширением файлов, хранящихся в одном каталог. Большинство файлов обязательный файлы (tdenv.adf, tedg.adf, thul.adf, tmsk.adf, tmsx.adf, tnod.adf,[5] tnxy.adf[5] и tnz.adf[5]), необязательно файл, содержащий систему координат и информацию о проекции (prj.adf) и файлы, содержащие информацию о тегах точек (tnval.adf и tndsc.adf) и информация тега треугольника (ttval.adf и ttdsc.adf)[1][2] можно дать.

Обязательные файлы
  • tdenv.adf - заголовок и статистические данные
  • tedg.adf - данные и топология ребер
  • thul.adf - данные внешнего и внутреннего полигонов корпуса
  • tmsk.adf - данные маски, маски невидимые треугольники
  • tmsx.adf - индексный файл для tmsk.adf
  • tnod.adfтреугольник данные узла
  • tnxy.adf - информация о местоположении (координаты x и y)
  • tnz.adf - информация о высоте (значения z)

В порядок байтов большинства файлов с прямым порядком байтов. tmsk.adf, tmsx.adf и tdenv.adf смешали порядок байтов.

Другие файлы
  • prj.adf - описание проекции с использованием общеизвестное текстовое представление систем координат; однострочные {B286C06B-0879-11D2-AACA-00C04FA33C20} означает неизвестную систему координат[6]
  • tndsc.adf - статистика использования точечных тегов
  • tnval.adf - данные точечного тега
  • ttdsc.adf - описание данных тега треугольника
  • ttval.adf - данные тега треугольника

В порядок байтов файла tndsc.adf и tnval.adf с прямым порядком байтов.

Файлы, созданные ArcGIS 10
  • tnodinfo.adf - типы точек и другое
  • teval.adf - данные краев
  • tdenv9.adf - файл tdenv.adf переименован
Размер файла

ИНН с п баллы (вкл. суперпункты ) и k треугольники, размеры файлов рассчитываются следующим образом:

  • tnxy.adf : 16*п байты
  • tnz.adf : 4*п байты
  • tnod.adf : 12*k байты
  • tedg.adf : 12*k байты
  • tmsx.adf : 116 байт
  • tdenv.adf/tdenv9.adf : 104 байта
  • tmsk.adf : 132 + 4 * потолок (k/ 32) байтов
  • thul.adf : мин. 12 байт, зависит от количества точек в многоугольнике выпуклой оболочки
  • tndsc.adf : 24 * количество записей тегов, указанное в tndsc.adf байты (см. ниже)
  • tnval.adf : 4*п ' байтов (n ': количество отмеченных точек, вкл. суперпункты; Смотри ниже)
  • tnodinfo.adf : 2*п байты
  • teval.adf : 16 * количество записей обрывающихся ребер, указанных в tdenv9.adf байты (см. ниже)

Обязательные файлы

tnxy.adf - Координаты X и Y точек ИНН

Содержит массив значений координат X и Y, по одной паре для каждой точки TIN. Набор данных для каждой точки можно описать следующей структурой:

БайтовТипПорядок байтовиспользование
0–7двойнойбольшойЗначение координаты X
8–15двойнойбольшойЗначение координаты Y

tnz.adf - Z координаты точек ИНН

Содержит массив значений координаты Z, по одному для каждой точки TIN. Значения находятся в том же порядке, что и значения в tnxy.adf и вместе хранить 3-х мерные координаты каждой точки TIN. Набор данных для каждой точки можно описать следующей структурой:

БайтовТипПорядок байтовиспользование
0–3плаватьбольшойЗначение координаты Z

tnod.adf - Индексы точек, образующих треугольники ИНН

Содержит массив индексов точек, образующих треугольники TIN, по 3 индекса для каждого треугольника. Индексы находятся в диапазоне от 1 до количества точек ([1, # of points]). Передняя грань треугольника (обычно верхняя сторона) - это та грань, на которой упорядочены 3 точки / угла. по часовой стрелке при просмотре. Набор данных для каждого треугольника можно описать следующей структурой:

БайтовТипПорядок байтовиспользование
0–3int32большойИндекс первой точки треугольника
4–7int32большойИндекс второй точки треугольника
8–11int32большойИндекс третьей точки треугольника

tedg.adf - Топология треугольника и тип его ребер

Содержит информацию о топологии треугольников и типе их ребер.

Для каждого треугольника есть запись с каждыми 3 индексами, указывающими на позицию (номер индекса) в tnod.adf файл, чтобы идентифицировать треугольник, который имеет общую грань с треугольником, описанным текущим набором данных, и точку этого треугольника, образующую это ребро.

Для каждого треугольника в tnod.adf существует набор данных в том же месте файла в tedg.adf. Каждое из значений указывает на местоположение в tnod.adf, где указана точка (индекс этой точки), образующая ребро. В то же время, поскольку расположение в tnod.adf и tedg.adf соответствуют, каждое из значений указывает на местоположение в tedg.adf, где указано расположение значения. Правило: Если край а треугольника А указывает на край б треугольника B, затем край б треугольника B должен указывать на край а треугольника А. Поскольку определение края в tedg.adf и определение точки в tnod.adf каждого треугольника находятся в том же месте, что и файлы, индексы в tedg.adf укажите на определение точки в tnod.adf соседних треугольников.

Индексы кодируют фактический индекс и тип края. Фактические индексы не являются смещениями файлов в байты, а скорее в int32 значения в диапазоне от 1 до количества точек ([1, # точек]). Если значение отрицательное (установлен бит 31), край является обрывом. Кроме того, бит 30 int32 Значения используются, чтобы определить, является ли кромка твердой или мягкой кромкой. Если бы фактический индекс был бы 1234 (0x000004D2), тогда резкий край будет закодирован как -1234 (0xFFFFFB2E) и мягкое прерывание как -1073743058 (0xBFFFB2E). Определение ребра соседнего треугольника должно отражать тип ребра. ВНИМАНИЕ: Это поведение изменилось с момента выхода ArcGIS 10. Пожалуйста, сравните с информацией, приведенной в разделе 'Изменения формата и новые файлы в ArcGIS 10 '.

Набор данных для каждого треугольника можно описать следующей структурой:

БайтовТипПорядок байтовиспользование
0–3int32большойЗакодированный индекс определения точки (индекс точки) соседнего треугольника в tnod.adf образующие ребро с первой точкой треугольника
4–7int32большойЗакодированный индекс определения точки (индекс точки) соседнего треугольника в tnod.adf образующие ребро со второй точкой треугольника
8–11int32большойЗакодированный индекс определения точки (индекс точки) соседнего треугольника в tnod.adf которые образуют ребро с третьей точкой треугольника

tdenv.adf - Заголовок или статистика

Этот файл содержит информацию, которую можно рассматривать как смесь заголовка файла и статистических данных.

БайтовТипПорядок байтовиспользование
0–3int32большойКоличество баллов (обычных баллов и суперпункты )
4–7int32большойКоличество треугольников
8–11int32большойКоличество индексов и разделителей в thul.adf
12–15int32большой0 (в версии 9) / количество разрывов кромок в teval.adf (версия 10)
16–19int32большойКоличество треугольников, не замаскированных в tmsk.adf
20–23int32большойКоличество обычных точек
24–27int32большойКоличество суперпункты
28–31плаватьбольшойМинимальная высота (значение Z самой низкой точки; zmin)
32–35плаватьбольшойМаксимальная высота (значение Z самой высокой точки; zmax)
36–39int32?большойНеизвестно, обнаружены другие значения
40–47двойнойбольшойМинимальная протяженность в направлении X (xmin)
48–55двойнойбольшойМинимальная протяженность в направлении Y (ymin)
56–63двойнойбольшойМаксимальный размер в направлении X (xmax)
64–71двойнойбольшойМаксимальный размер в направлении Y (ymax)
72–79двойной  ?большойНеизвестно, всегда 0
80–87двойной  ?большойНеизвестно, обнаружены другие значения
88–91int32большойНеизвестно, всегда 70001 (версия 9) / 90001 (версия 10); возможно номер версии
92–95int32маленькийКоличество используемых тегов (включая тег 0 за суперпункты )
96–99int32?большойНеизвестно, всегда 0; возможно неиспользованный
100–103int32?большойНеизвестно, всегда 0; возможно неиспользованный

thul.adf - Корпус, ограничивающий многоугольник и отверстия

Содержит массив индексов и разделителей, определяющий внешнюю границу TIN и его отверстия. Индексы находятся в диапазоне от 1 до количества точек ([1, # of points]). Разделителями являются -1 (0xFFFFFFFF) и ноль (0).

Если ИНН построен с использованием суперпункты (обычно первые 4 балла), thul.adf перечисляет индексы этих точек, а затем -1 (0xFFFFFFFF). После разделителя следует один или несколько списков индексов, которые образуют ограничивающие многоугольники (внешние границы) и, возможно, дыры (внутренние границы). Эти списки разделены нулевыми (0) значениями.

Если ИНН не содержит суперпункты, thul.adf начинается с -1 (0xFFFFFFFF) разделитель, за которым следует один или несколько списков индексов, которые образуют ограничивающие многоугольники (внешние границы) и, возможно, дыры (внутренние границы). Эти списки разделены нулевыми (0) значениями.

Индексы и разделители представляют собой 4-байтовые целые числа (int32), хранящиеся в порядке байтов с прямым порядком байтов.

tmsk.adf - маска

Содержит массив битов (хранящихся в 4-байтовых целых числах), которые определяют видимость треугольников TIN. Это можно использовать, чтобы скрыть треугольники внутри отверстий ландшафта или за пределами ландшафта (за пределами внешних границ).

Файл хранится с использованием тех же структур (заголовок и записи), что и шейп-файл, но поскольку он хранит только значения видимости треугольников, используются многие поля заголовка.

Заголовок файла имеет фиксированную длину 100 байт и содержит 17 полей; девять 4-байтовых (32-битное целое число со знаком или int32) целочисленных полей, за которыми следуют восемь 8-байтовых (двойной ) подписанные поля с плавающей запятой:

БайтовТипПорядок байтовиспользование
0–3int32большойКод файла (всегда шестнадцатеричное значение 0x0000270a)
4–23int32большойНе используется; пять uint32
24–27int32большойДлина файла (16-битными словами, включая заголовок)
28–31int32маленькийВерсия 0; вероятно неиспользованный
32–35int32маленькийТип формы 0; вероятно неиспользованный
36–43двойноймаленькийМинимальный размер X (всегда 0,0); неиспользованный
44–51двойноймаленькийМинимальный размер Y (всегда 0,0); неиспользованный
52–59двойноймаленькийМаксимальный размер X (всегда 0,0); неиспользованный
60–67двойноймаленькийМаксимальный размер Y (всегда 0,0); неиспользованный
68–75двойноймаленькийМинимальный размер Z (всегда 0,0); неиспользованный
76–83двойноймаленькийМаксимальный размер Z (всегда 0,0); неиспользованный
84–91двойноймаленькийМинимальный размер M (всегда 0,0); неиспользованный
92–99двойноймаленькийМаксимальный размер M (всегда 0,0); неиспользованный

В этом случае файл содержит как минимум 2 записи. Каждой записи предшествует заголовок записи размером 8 байтов:

БайтовТипПорядок байтовиспользование
0–3int32большойНомер записи (от 1)
4–7int32большойДлина записи (в 16-битных словах)

За заголовком записи следуют фактические данные.

Запись 1: Данные записи номер 1 имеют длину 2 слова и содержат только размер данных записи номер 2 в 4-х байтовых целых числах, которые хранятся как 4-байтовые целые числа (с прямым порядком байтов).

Запись 2: Данные записи номер 2 содержат следующую структуру переменной длины:

БайтовТипПорядок байтовиспользование
0–3int32большойЧисло целых чисел в массиве масок
4–7int32большойНе используется; всегда 0; возможно смещение (биты, байты или целые числа?) в массиве маски, где начинаются фактические биты маски
8–11int32большойКоличество используемых битов в массиве масок
12–uint32 []большойМассив масок

Бит 0 (младший бит) первого целого числа содержит флаг видимости (невидимый, если установлен в 1) первого треугольника, определенного в tnod.adf. Бит 1 первого целого числа содержит флаг видимости (невидимый, если установлен в 1) второго треугольника и так далее. Используются все 32 бита целых чисел (без знака).

Запись 0: Записи с номером записи 0 игнорируются.

tmsx.adf - Индексный файл для маски

Индексный файл содержит тот же 100-байтовый заголовок, что и tmsk.adf файл, за которым следует любое количество 8-байтовых записей фиксированной длины, которые состоят из следующих двух полей:

БайтовТипПорядок байтовиспользование
0–3int32большойСмещение записи (16-битными словами)
4–7int32большойДлина записи (в 16-битных словах)

Используя этот индекс, можно искать назад в tmsk.adf файла, сначала ища назад по индексу (что возможно, потому что он использует записи фиксированной длины), затем считывая смещение записи и используя это смещение для поиска правильной позиции в tmsk.adf файл. Также можно переместить произвольное количество записей, используя тот же метод.

Дополнительные файлы

В зависимости от информации, хранящейся в ИНН, необходимы дополнительные файлы.

prj.abf - Проекция и CRS

Содержит систему координат и информацию о проекции. Файл может находиться либо в Esri аромат общеизвестное текстовое представление систем координат формат (WKT), простая запись значения ключевого слова (ключевое слово: Проекция, Datum, Сфероид, Единицы, Зуниц, Xshift, Yshift, Зона, ...) или иметь одну строку {B286C06B-0879-11D2-AACA-00C04FA33C20}, что означает неизвестную систему координат.

tndcs.abf - Статистика использования тегов

Содержит массив из 24-байтового набора больших данных, по одному на каждый используемый тег. Набор данных содержит тег и количество точек с этим тегом. Каждый набор данных структурирован следующим образом:

БайтовТипПорядок байтовиспользование
0–3int32маленькийНомер въезда; начиная с 1
4–7int32маленькийЗначение тега
8–11int32маленькийНе используется; всегда 0; может быть зарезервирован для расширения значений тегов до 64 бит
12–15int32маленькийКоличество точек с тегом
16–19int32?маленькийНе используется; всегда 0
20–23int32?маленькийНеизвестный; всегда 0 в ArcGIS 9, разные значения в ArcGIS 10

tnval.abf - Файл точечных тегов

Содержит массив из 4-х байтовых целочисленных значений, по одному на каждую (помеченную) точку TIN. Значения хранятся в порядке байтов с прямым порядком байтов. Суперпункты иметь ценность 0 (нуль). Точки без тега (например, точки, добавленные обрывом ребер) должны храниться в TIN последними и не иметь записи в этом файле.

Изменения формата и новые файлы в ArcGIS 10

Начиная с ArcGIS 10, в формат файла TIN были внесены некоторые изменения. 2 новых файла (teval.dbf и tnodinfo.dbf) и остался 1 файл.

tdenv9.dbf - tdenv.dbf переименован

Структура файла остается прежней, только дополнительно используется поле, содержащее количество обрывов ребер.

tnodinfo.dbf - Дополнительная информация по точкам

Содержит массив 2-байтовых целочисленных значений. Один короткая за каждую точку. О цели пока ничего не известно. Пока что это какая-то битовая маска или код, описывающий использование точки. Кажется, что значения хранятся в порядке байтов с прямым порядком байтов.

ЦенитьШестнадцатеричное значениеиспользование
20x0002Superpoint
40x0004Обычная точка
240x0018?
880x0058?
1320x0084?
2800x0118?
2840x011C?
3760x0178?
5160x0204?
7720x0304?
7960x031C?

teval.dbf - Новый надфиль ломающей кромки (часть 1)

Содержит массив наборов данных, определяющих грани обрыва TIN, по два на каждую кромку (по одному на каждое направление). Каждый набор данных имеет длину 16 байт и имеет следующую структуру:

БайтовТипПорядок байтовиспользование
0–3int32большойИндекс определения точки (индекс точки) и определение ребра (индекс ребра) соседнего треугольника в tnod.adf или же tedg.adf которые образуют передовой край
4–7int32большойИндекс определения точки (индекс точки) и определение ребра (индекс ребра) текущего треугольника в tnod.adf или же tedg.adf которые образуют передовой край
8–11int32большойТип обрываемой кромки (4 для жестких кромок, 2 для мягких кромок)
12–15int32большойНе используется; всегда 0

tedg.dbf - Новая ломающаяся кромочная пилка (часть 2)

Начиная с ArcGIS 10 этот файл немного изменился. Он по-прежнему содержит набор данных для каждого треугольника, и ссылки / индексы правильных ребер не изменились, но кодирование ломающихся ребер отличается. Обломки по-прежнему помечены отрицательными значениями, но индекс не указывает на позицию файла в tnod.dbf и tedg.dbf больше, вместо этого абсолютное значение - это номер входа ломающейся кромки в teval.dbf. Кодирование мягких краев перенесено на teval.dbf, тоже.

Superpoint

В этой статье термин «суперточка» используется в нескольких местах. В связи с отсутствием официального описания формата файла этот термин был выбран, чтобы отразить свойства этих точек. (Их также можно было бы назвать «метапункт», «экстра-точка», «точка бесконечности» и многие другие.) Суперточка в контексте формата файла Esri TIN - это дополнительная точка, добавляемая программным обеспечением ArcGIS во время триангуляции / генерации БАНКА. ArcGIS обычно добавляет 4 такие точки, по одной к западу, северу, востоку и югу от обычных точек TIN, на очень больших расстояниях. Суперпункты обычно являются первыми точками в файлах точек. tnxy.adf и tnz.adf. Треугольники, построенные из этих точек, обычно замаскированы (сделаны невидимыми) в tmsk.adf файл.

Смотрите также

Рекомендации

  1. ^ а б Самага, Ута. "Картографическое 3D-моделирование с помощью ArcView 3D-Analyst" (PDF). Получено 2015-04-27.
  2. ^ а б Ормсби, Тим; Альви, Джонелл. Расширение ArcView GIS. ISBN  978-1-879-10205-7.
  3. ^ «Лекция о поверхностях Рональда Бриггса, доктора философии, GISP». Получено 2015-04-27.
  4. ^ «Описание формата Virtual Terrain Project ITF (« Промежуточный формат TIN »)». Получено 2015-04-27.
  5. ^ а б c d «Исходный код проекта Virtual Terrain для чтения Ersi TIN». Получено 2015-04-27.
  6. ^ «Справочник GeoEco Python по методу ConvertSpatialReference». Получено 2015-04-27.

внешняя ссылка