|
Центр поддержки DATA+

Формат GENERATE
GENERATE - формат, разработанный ESRI и используемый ARC/INFO (UNIX/NT и PC версии) в качестве одного из основных форматов обмена пространственной информацией. Стандартное расширение - .gen.
Данные в формате GENERATE представляют собой ASCII файлы (файлы GEN), в которых последовательно представлены объекты, характерные для векторной формы представления пространственной информации: точечные, линейные, полигональные и некоторые другие.
В одном файле может содержаться только один тип объектов.
Формат не поддерживает топологические отношения между объектами. Не поддерживается также атрибутивная информация, однако, имеется несложная процедура, позволяющая передавать атрибуты. Формат также позволяет хранить аннотации, регистрационные точки, маршруты, связки (links), дуги, окружности и сети прямоугольных элементов (fishnet).
Формат применим для обмена пространственной информацией между большинством систем. Благодаря своей простоте и тому факту, что ASCII-файлы используются в большинстве платформ, обменный формат GENERATE является универсальным средством для обмена пространственными данными между широким спектром систем в средах DOS/Windows 3.x/95/NT (GIS, CAD, и т. д.) и UNIX. ASCII-файлы также можно просматривать и редактировать практически в любом текстовом редакторе. Редактирование файла GENERATE облегчается его простой и наглядной структурой (см. примеры).
Файлы формата GENERATE порождаются в среде ARC/INFO командой UNGENERATE.
Формат команды:
UNGENERATE <LINE / POINT/POLY*/TIC*/LINK*/REGION.subclass*> <in_cover> <out_generate_file> {NODES/NONODES}*
, где <LINE / POINT/POLY/TIC/LINK/REGION.subclass> - геометрические классы объектов;
<in_cover> - исходное покрытие;
<out_generate_file> - выходной GENERATE-файл;
{NODES/NONODES}- дублируются или нет в файле, содержащем полигональные объекты, общие узлы (см. примеры).
Команда GENERATE добавляет объекты в покрытие ARC/INFO. Координаты для каждого объекта могут быть введены с терминала или из файла.
Формат команды:
GENERATE <cover>
, где <cover> - создаваемое (редактируемое) покрытие.
Далее объекты добавляются в новое или существующее покрытие, используя подкоманды: ведется диалог, или подкоманды загружаются из файла. Вот некоторые из них:
ANNOTATIONS добавляет аннотации в покрытие;
CIRCLES создает в покрытии окружности, каждую со своим центром и радиусом;
LINES добавляет дуги в покрытие;
LINKS* добавляет связки (links) в покрытие;
POINTS добавляет метки точек в покрытие;
POLYS* добавляет полигоны и точки - метки полигонов в покрытие;
ROUTES* создает дуги по координатам x,y и определяет маршруты
на них;
TICS добавляет регистрационные точки (тики) в покрытие.
(* - отсутствует в PC ARC/INFO).
Также имеется вариант формата GENERATE для передачи цифровой модели рельефа в виде TIN (нерегулярной триангуляционной сети) соответствующими командами – UNGENERATETIN и CREATETIN. В данном документе вариант GENERATE для TIN не рассматривается.
В стандартный комплект ArcView GIS 3.0 входит программа на внутреннем языке ArcView – Avenue (shp2gen.ave), которая экспортирует активные темы в формат GENERATE.
Примеры представления точечных, линейных и полигональных объектов в формате GENERATE.
Общая схема структуры файла:
-
<ID1> X11 Y11
[X12 Y12]
[……….]
[X1i Y1i]
END
<ID2> X21 Y21
[X22 Y22]
[……….]
[X2j Y2j]
END
……….
<IDM> X M 1 Y M 1
[X M 2 Y M 2]
[……….]
[X M k Y M k]
END
END
, где: ID - идентификаторы объектов;
M - число объектов в файле;
i,j,k - число точек (точечных объектов, формобразующих точек, центров окружностей и т. д.);
X, Y - координаты формообразующих точек;
разделители - пробелы или запятые.
1) Точечные объекты.
Рисунок 1
Пример файла, содержащего точечные объекты:
-
1 4.00 0.00
2 10.00 7.00
3 6.00 3.00
4 6.00 5.00
5 2.00 7.00
6 0.00 8.00
END1
( 1 END обозначает конец файла;
1, 2, 3, 4 - идентификаторы объектов).
2) Линейные объекты.
Рисунок 2
Пример файла, содержащего линейные объекты:
-
101
4.00 0.00
6.00 3.00
6.00 5.00
END2
102
6.00 5.00
10.00 7.00
END2
103
6.00 5.00
2.00 7.00
0.00 8.00
END2
END3
( 2 END ставится после координат формообразующих точек каждого линейного объекта;
3 END обозначает конец файла;
101, 102, 103 - идентификаторы объектов).
3) Полигональные объекты.
Рисунок 3
3.1 Пример файла, содержащего полигональные объекты (в UNGENERATE использован параметр NODES):
-
10 5.00 6.45
6.00 5.00
10.00 7.00
10.00 7.00
0.00 8.00
0.00 8.00
2.00 7.00
6.00 5.00
END4
20 3.65 3.80
4.00 0.00
6.00 3.00
6.00 5.00
6.00 5.00
2.00 7.00
0.00 8.00
0.00 8.00
4.00 0.00
END4
END5
3.2 Пример файла, содержащего полигональные объекты (в UNGENERATE использован параметр NONODES):
-
10 5.00 6.45
6.00 5.00
10.00 7.00
0.00 8.00
2.00 7.00
6.00 5.00
END4
20 3.65 3.80
4.00 0.00
6.00 3.00
6.00 5.00
2.00 7.00
0.00 8.00
4.00 0.00
END4
END5
( 4 END ставится после координат точек контура полигона;
5 END обозначает конец файла;
10, 20, 30 - идентификаторы объектов, следом за ними - координаты точек-меток полигонов, ниже - координаты линий, описывающих полигон).
Примечание: в PC ARC/INFO создание и использование файлов в последнем из приведенных виде не поддерживается, а полигональные объекты создаются путем добавления к линейному покрытию, созданному при помощи команды GENERATE, меток полигонов и построения полигональной топологии (следует помнить, что при помощи команды GENERATE создаются пространственные объекты, но не строится топология, для построения которой используются команды BUILD и CLEAN).
Так как GENERATE не поддерживает атрибутивной информации об объектах, то рекомендуется его использование совместно с атрибутивной базой данных для последующего слияния данных в едином покрытии при помощи команды ARC/INFO JOINITEM. Для PC ARC/INFO атрибутивная база данных должна находиться в формате DBF, а для ARC/INFO UNIX/NT – в формате INFO. В последнем случае, если база данных в формате DBF, можно преобразовать ее в формат INFO, используя команду DBFINFO.
Идентификаторы объектов в файле GEN преобразуются в пользовательские идентификаторы (User-ID) объектов покрытия ARC/INFO. Наоборот, при вводе команды UNGENERATE пользовательские идентификаторы объектов покрытия ARC/INFO преобразуются в идентификаторы объектов в файле GEN. Команда JOINITEM производит слияние по общему полю User-ID.
Ниже приводится схема экспорта/импорта данных с использованием файлов формата GENERATE на примере PC ARC/INFO.
а) Схема экспорта данных
б) Схема импорта данных
Рисунок 4
Использование формата GENERATE представляется обоснованным в случаях обмена пространственной информацией между слабо совместимыми между собой по различным параметрам системами (в случае поддержки различных форматов хранения данных, а также в случае взаимодействия DOS/Windows и Unix приложений).
Также формат GENERATE может использоваться для передачи данных из систем цифрования (дигитайзеры, векторизаторы), где наличие топологических связей не является необходимым условием для выходного продукта, с системами обработки, хранения и интерпретации пространственной информации (ГИС-системы различной функциональной насыщенности). Так, во многих отечественных ГИС-программных продуктах введена поддержка GENERATE для возможности передачи данных в/из ARC/INFO (GeoDraw и другие). Здесь, однако, не всегда следует полагаться на расширение файла, оно может отличаться от стандартного .gen. Например, векторизатор Easy Trace при экспорте в GENERATE использует расширение .gen для линейных объектов, .gpn – для точечных и .csv – для текста и аннотаций.
В настоящее время в "линейке" программных продуктов ESRI наряду с GENERATE используются файлы SHAPE-формата (также открытого). Преимущество SHAPE-файлов – в поддержке атрибутивной информации и в том, что этот формат является базовым для популярной системы ArcView. Этот формат постоянно совершенствуется; так, в 1997 году в него были добавлены средства для корректного хранения 3-х мерной информации (т. е. наряду с X и Y введена еще и Z-координата). Благодаря этому, а также тому, что SHAPE-файлы легко переносимы между DOS/Windows и UNIX средами, формат SHAPEFILE, вероятно, с течением времени станет основным форматом обмена пространственной информацией с векторной формой представления для программных продуктов ESRI.
В общем, файлы структуры GENERATE обеспечивают обмен пространственными данными на “нижнем” уровне - нет передачи метаданных, топологии, прямой передачи атрибутов. Но из недостатков нижнего уровня одновременно происходят и его достоинства: универсальность, “прозрачность” ASCII, легкая настраиваемость путем модификации в текстовом редакторе, простое программирование процедур его ввода и вывода в собственных программных разработках. |