Геометрические сети в базе геоданных на Informix
Геометрические сети представляют собой наборы классов объектов линий (границ) и точек (соединений) в наборе данных объектов, который имеет связующие отношения. Геометрические сети используются для моделирования инфраструктуры, например линий электропередач и канализационных систем.
Создание в сети таблиц зависит от присутствия в сети поворотов.
Геометрические сети в ArcGIS for Desktop
В дереве каталога наборы классов объектов, которые содержат геометрические сети, до раскрытия набора данных выглядят аналогично. После раскрытия набора данных можно увидеть геометрическую сеть, представленную следующим значком:
В базе геоданных IBM Informix, имя геометрической сети включает название базы данных, двоеточие (:), имя пользователя, которому принадлежит эта геометрическая сеть и собственно имя геометрической сети.
Например, геометрическая сеть water_net, принадлежащая пользователю gdb, в базе геоданных sdedb обозначается в дереве Каталога как sdedb:gdb.water_net.
При построении геометрической сети создается независимый класс объектов соединения в наборе классов объектов. Имя этого класса объектов совпадает с именем сети, но имеет суффикс _Junctions.
Любые ошибки, появляющиеся в процессе создания геометрической сети, записываются в таблицу ошибок построения, которую также можно увидеть в Каталоге. Имя этой таблицы <network_name>_builderr. Если при создании геометрической сети water_net имелись ошибки, в базе геоданных будет создана таблица sdedb:gdb.water_net_builderr.
Геометрические сети в базе геоданных в IBM Informix
Геометрические сети отслеживаются в таблице gdb_items. В таблице gdb_itemtypes хранится значение, указывающее, что объект является геометрической сетью. В таблице gdb_itemrelationships хранится информация об отношениях сети и набора пространственных объектов.
В дополнение к этим таблицам сети создаются из набора таблиц разного размера, который хранится в схеме пользователя, создавшего геометрическую сеть. Размер этих таблиц зависит от размера сети. Например, на размер сети могут повлиять количество соединений и количество границ.
Всего в каждой сети имеется 9 фиксированных таблиц, которые идентифицируются следующими обозначениями: N_<ID>_<table_descriptor>, где ID – логический идентификатор сети, который хранится в определении сетей в таблице gdb_items; например, N_1_<table descriptor>, N_2_<table descriptor>.
Фактическое количество таблиц может быть различным – в зависимости от элементов, содержащихся в сети. Для сети с поворотами и весами может быть создано не более 21 таблицы.
Для всех этих таблиц осуществляется контроль версий, если он осуществляется и для самой сети.
Следующие таблицы создаются во всех случаях: n_<id>_desc, n_<id>_e<#>, n_<id>_estatus, n_<id>_etopo, n_<id>_flodir, n_<id>_jdesc, n_<id>_jstatus, n_<id>_jtopo, and n_<id>_props.
Таблицы N_<ID>_* можно просматривать в СУБД, но не следует изменять с помощью SQL или сторонних приложений, поскольку это может привести к порче сети.
n_<id>_*
В таблицах базы геоданных, имя которых начинается с префикса N_, хранится информация о сетях.
n_<id>_desc
Таблица n_<id>_desc описывает элементы сети. Это нормализованная таблица, количество строк которой равно количеству соединений и границ в геометрической сети.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
oid |
integer |
Уникальный идентификатор элемента геометрической сети |
NOT NULL |
userclassid |
integer |
Идентификатор класса пространственных объектов, к которому принадлежит элемент |
NOT NULL |
userid |
integer |
ObjectID элемента |
NOT NULL |
usersubid |
integer |
Идентификатор элемента в объекте; применяется только к пространственным объектам "сложное ребро" |
NOT NULL |
elementtype |
smallint |
Код, указывающий тип сетевого элемента: 1 = соединение или 2 = граница |
NOT NULL |
eid |
integer |
Уникальный идентификатор элемента сети; уникален только для типа сетевого элемента |
NOT NULL |
n_<id>_props
Таблица n_<id>_props содержит итоговое описание сетевых параметров, например, количество элементов и максимальные значения EID.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
propertyid |
integer |
Уникальный идентификатор сетевого свойства |
NOT NULL |
propertyname |
varchar(32) |
Имя свойства |
NOT NULL |
propertyvalue |
integer |
Значение свойства |
NOT NULL |
Все остальные таблицы сети содержат аналогичные имена полей и типы. Имена полей таблицы и отслеживаемые этими полями параметры описаны под определениями таблицы.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
oid |
integer |
Уникальный идентификатор страницы BLOB в таблице |
NOT NULL |
pagenumber |
integer |
Номер страницы BLOB в таблице |
NOT NULL |
pageblob |
BLOB |
Фактическая страница BLOB, содержащая описание элемента, который описывает таблица, например границу и статус границы |
- n_<id>_e<#> – Описывает взвешенные значения границы сети; # = 2, 3, 4 или 5
- n_<id>_edesc – Описывает границы сети
- n_<id>_estatus – Описывает статус каждой границы, в том числе удаленное и отключенное состояния
- n_<id>_etopo – Описывает топологию и связность границы сети
- n_<id>_flodir – Описывает направление потока для сети
- n_<id>_j<#> – Описывает значения веса для сетевых соединений; # = 0 или 1
- n_<id>_jdesc – Описывает сетевые соединения
- n_<id>_jstatus – Описывает статус каждого сетевого соединения, в том числе удаленное и отключенное состояния
- n_<id>_jtopo – Описывает связь соединительных элементов с граничными элементами
- n_<id>_jtopo2 – Описывает связь соединительных элементов с граничными элементами при схождении нескольких границ в одном соединении
- n_<id>_t<#>* – Описывает значения веса для каждого элемента поворота
- n_<id>_tdefn* – Определяет каждый элемент поворота, перечисляя границы и соединения, составляющие поворот
- n_<id>_tdefn2* – Таблица переполнения для определения элементов поворота; например, при повороте нескольких границ
- n_<id>_tdesc* – Описывает повороты в сети
- n_<id>_tstatus* – Описывает статус каждого поворота в сети, включая удаленное и отключенное состояния
View a diagram of a geometric network in Informix.
Штриховые линии определяют неявные отношения между столбцами.
Для открытия файла необходим Adobe Acrobat Reader.
Описание таблицы ошибок построения можно найти в разделе Схема таблицы ошибок построения сети.
Геометрические сети в XML-документе
Для геометрических сетей элемент данных в документе XML указан как тип GeometricNetwork. Ниже показана часть документа XML, экспортированная из набора данных пространственных объектов, содержащего геометрическую сеть:
<DataElement xsi:type="esri:DEGeometricNetwork">
<CatalogPath>/V=sde.DEFAULT/FD=sdedb:gdb.Water/GN=sdedb:gdb.Water_Net</CatalogPath>
<Name>sdedb:gdb.Water_Net</Name>
<MetadataRetrieved>true</MetadataRetrieved>
<Metadata xsi:type="esri:XmlPropertySet">
<XmlDoc><?xml version="1.0"?> <metadata xml:lang="en"><Esri><MetaID>{A4750260-72E0-4B84-9E59-A28ED020FBCF}</MetaID><CreaDate>20060530</CreaDate><CreaTime>14011400</CreaTime><SyncOnce>TRUE</SyncOnce></Esri></metadata></XmlDoc>
</Metadata>
<DatasetType>esriDTGeometricNetwork</DatasetType>
<DSID>-1</DSID>
<Versioned>false</Versioned>
<CanVersion>true</CanVersion>
<Extent xsi:type="esri:EnvelopeN" />
<SpatialReference xsi:type="esri:ProjectedCoordinateSystem">
<WKT>PROJCS["World_Mercator", GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984", SPHEROID["WGS_1984",6378137.0,298.257223563]], PRIMEM["Greenwich",0.0], UNIT["Degree",0.0174532925199433]], PROJECTION["Mercator"],PARAMETER["False_Easting",0.0], PARAMETER["False_Northing",0.0], PARAMETER["Central_Meridian",0.0], PARAMETER["Standard_Parallel_1",0.0], UNIT["Meter",1.0]]</WKT>
<XOrigin>-147.84354555</XOrigin>
<YOrigin>-0.843545550000002</YOrigin>
<XYScale>160000000</XYScale>
<ZOrigin>0</ZOrigin>
<ZScale>1</ZScale>
<MOrigin>0</MOrigin>
<MScale>1</MScale>
<XYTolerance>0.0002</XYTolerance>
<ZTolerance>4.7683715798108E-03</ZTolerance>
<MTolerance>2</MTolerance>
<HighPrecision>true</HighPrecision>
</SpatialReference>
<NetworkType>esriNTUtilityNetwork</NetworkType>
<OrphanJunctionFeatureClassName />
<FeatureClassNames xsi:type="esri:Names" />
<ConnectivityRules xsi:type="esri:ArrayOfConnectivityRule" />
<NetworkWeights xsi:type="esri:ArrayOfNetWeight" />
<WeightAssociations xsi:type="esri:ArrayOfNetWeightAssociation" />
</DataElement>