Наборы сетевых данных в PostgreSQL
Наборы сетевых данных представляют собой наборы классов объектов, обладающих отношением связности. Наборы сетевых данных создаются с использованием трех типов источников – источников объектов ребер, например, центральные линии улиц, источников объектов соединения, например, классов объектов точек, содержащих железнодорожные стрелки, и источников объектов поворотов. Они используются для моделирования транспорта. Для работы с наборами сетевых данных вам необходимо установить дополнительный модуль Дополнительный модуль ArcGIS Network Analyst.
Наборы сетевых данных в ArcGIS for Desktop
В дереве каталога наборы классов объектов, которые содержат наборы сетевых данных в PostgreSQL, выглядят аналогично до тех пор, пока вы не раскроете набор данных. В раскрытом наборе данных вы увидите набор сетевых данных, представленный следующим значком:
Имя сети в базе геоданных в PostgreSQL содержит имя базы данных, имя владельца сети и имя сети.
Например, геометрическая сеть road_network_nd, принадлежащая пользователю hbear, в базе геоданных m16 обозначается в дереве Каталога как m16.hbear.road_network_nd.
При создании набора сетевых данных система также создает класс объектов системных соединений. Данный класс пространственных объектов имеет такое же имя, как и набор сетевых данных, но при этом сопровождается окончанием _Junctions.
Наборы сетевых данных в базе данных PostgreSQL
Набор сетевых данных отслеживается в таблице gdb_items. В таблице gdb_itemtypes хранится значение, указывающее, что объект является набором сетевых данных. В таблице gdb_itemrelationships хранится информация об отношениях сети и набора пространственных объектов.
Также имеются таблицы, созданные в схеме пользователя, владеющего набором сетевых данных. К ним относятся:
- n_<id>_desc: Таблица n_<id>_desc описывает элементы сети. Это нормализованная таблица, количество строк которой равно количеству соединений, ребер и поворотов в геометрической сети.
- n_<id>_props: Таблица n_<id>_props содержит итоговое описание сетевых параметров, например, количество элементов и максимальные значения EID.
- n_<id>_topology: В данной таблице хранятся все топологии страниц BLOB.
- n_<id>_edgeweight: В данной таблице хранятся все страницы BLOB для значений веса ребра.
- n_<id>_junctionweight: В данной таблице хранятся все страницы BLOB для значений веса соединений.
- n_<id>_turnweight: В данной таблице хранятся все страницы BLOB для значений веса поворотов.
- nd_<itemid>_dirtyareas: В таблице nd_<itemid>_dirtyareas хранится информация обо всех пространственных объектах сети, подвергнутых редактированию.
- nd_<itemid>_dirtyobjects: В таблице nd_<itemid>_dirtyobjects хранится информация обо всех реляционных объектах сети, подвергнутых редактированию, в наборе сетевых данных.
ID в именах первых шести таблиц является ID логической сети. itemID в двух последних таблицах представляет собой objectid из таблицы gdb_items.
Структуры таблиц показана ниже:
Таблица n_<id>_desc содержит записи для всех элементов пересечения, ребра и поворота набора сетевых данных.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
oid |
integer |
Уникальный идентификатор элемента сети |
NOT NULL |
userclassid |
integer |
Идентификатор класса пространственных объектов, к которому принадлежит элемент |
NOT NULL |
userid |
integer |
ObjectID элемента |
NOT NULL |
usersubid |
integer |
Идентификатор элемента в объекте; применяется только к пространственным объектам "сложное ребро" |
NOT NULL |
elementtype |
smallint |
Кодовая идентификация типа элемента сети |
NOT NULL |
eid |
integer |
Уникальный идентификатор элемента сети; уникален только для типа сетевого элемента |
NOT NULL |
Таблица n_<id>_props содержит итоговое описание сетевых параметров, например, количество элементов и максимальные значения EID.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
propertyid |
integer |
The unique identifier of the network property |
NOT NULL |
propertyname |
varchar(32) |
The name of the property |
NOT NULL |
propertyvalue |
integer |
The value of the property |
NOT NULL |
Таблица nd_<itemid>_dirtyareas отслеживает редактируемые пространственные элементы в наборе сетевых данных.
Имя поля | Тип поля | Описание | Null? |
---|---|---|---|
objectid | integer | Уникальный идентификатор записи | NOT NULL |
isretired | integer | Указывает на использование данного объекта для отслеживания измененной области набора сетевых данных | NOT NULL |
dirtyarea | st_geometry geometry | Геометрия полигона измененной области |
Таблица nd_<itemid>_dirtyobjects отслеживает все реляционные объекты сети, подвергнутых редактированию, в наборе сетевых данных, например, повороты и записи истории трафика.
Имя поля | Тип поля | Описание | Null? |
---|---|---|---|
objectid | integer | Уникальный идентификатор записи | NOT NULL |
classid | integer | objectID элемента измененного объекта в таблице gdb_items. | NOT NULL |
oid | integer | Идентификатор измененного объекта | NOT NULL |
updatetype | smallint | Тип выполненного редактирования – вставить (0), обновить (1) или удалить (2) – для измененного объекта | NOT NULL |
Остальные таблицы сети содержат аналогичные имена полей и типы. Их структура выглядит так:
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
oid |
integer |
Уникальный идентификатор страницы bytea в таблице |
NOT NULL |
pagenumber |
integer |
Номер страницы bytea в таблице |
NOT NULL |
pageblob |
bytea |
Описание элемента, к которому относится таблица, например ребро и его статус |
|
tableid |
integer |
Для таблиц BLOB n_<ID>_edgeweight, n_<ID>_turnweight, и n_<ID>_junctionweight, tableID соответствует weightID. Для таблицы BLOB n_<ID>_topology, tableID соответствует положению исходной таблицы среди таблиц топологии, заданных в файле GeoDatabase\GeoDatabase\Network\Network\TableDefs.h. |
NOT NULL |
Далее приведена диаграмма набора сетевых параметров в PostgreSQL:
Штриховые линии определяют неявные отношения между столбцами.
Существуют дополнительные, опциональные таблицы, которые вы можете использовать как часть набора сетевых данных для модели времени движения или скоростей истории трафика, а также определения изменений в часовом поясе, которые могут повлиять на сетевой анализ. К ним относятся таблицы, которые вы создаете перед созданием вашего набора сетевых данных, и сохраненные в вашей схеме (аналогично внесению в схему класса пространственных объектов, на котором построена сеть). Вам необходимо указать имена таблиц. Дополнительные сведения об использовании таких таблиц истории трафика и часового пояса см. в разделе Дополнительный модуль Дополнительный модуль ArcGIS Network Analyst.
Наборы сетевых данных в XML-документе рабочей области
Наборы сетевых данных маркируются как логические сети. Ниже приводится выдержка из документа XML, созданного с помощью экспорта из набора данных RoadNetwork.
<LogicalNetworkName>m16.hbear.RoadNetwork_ND</LogicalNetworkName>
<NetworkType>1</NetworkType>
<Buildable>true</Buildable>
<SupportsTurns>true</SupportsTurns>
<Properties xsi:nil="true" />
<UserData xsi:nil="true" />
<EdgeFeatureSources xsi:type="esri:ArrayOfEdgeFeatureSource">
<EdgeFeatureSource xsi:type="esri:EdgeFeatureSource">
<ID>1</ID>
<ClassID>1</ClassID>
<Name>m16.hbear.Streets</Name>
<ElementType>esriNETEdge</ElementType>
<Properties xsi:nil="true" />
<FromElevationFieldName />
<ToElevationFieldName />
<Connectivity xsi:type="esri:PropertySet">
<PropertyArray xsi:type="esri:ArrayOfPropertySetProperty">
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>Version</Key>
<Value xsi:type="xs:short">1</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>UsesSubtypes</Key>
<Value xsi:type="xs:short">0</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>ClassConnectivity</Key>
<Value xsi:type="xs:short">1</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>SubtypeConnCount</Key>
<Value xsi:type="xs:int">0</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>DefaultGroup</Key>
<Value xsi:type="xs:int">1</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>GroupCount</Key>
<Value xsi:type="xs:int">0</Value>
</PropertySetProperty>
</PropertyArray>
</Connectivity>
</EdgeFeatureSource>
</EdgeFeatureSources>
<JunctionFeatureSources xsi:type="esri:ArrayOfJunctionFeatureSource" />
<SystemJunctionSources xsi:type="esri:ArrayOfSystemJunctionSource">
<SystemJunctionSource xsi:type="esri:SystemJunctionSource">
<ID>3</ID>
<ClassID>4</ClassID>
<Name>m16.hbear.RoadNetwork_ND_Junctions</Name>
<ElementType>esriNETJunction</ElementType>
<Properties xsi:nil="true" />
<ElevationFieldName />
</SystemJunctionSource>
</SystemJunctionSources>
<TurnFeatureSources xsi:type="esri:ArrayOfTurnFeatureSource">
<TurnFeatureSource xsi:type="esri:TurnFeatureSource">
<ID>2</ID>
<ClassID>2</ClassID>
<Name>m16.hbear.Turns</Name>
<ElementType>esriNETTurn</ElementType>
<Properties xsi:nil="true" />
</TurnFeatureSource>
</TurnFeatureSources>
<EvaluatedNetworkAttributes xsi:type="esri:ArrayOfEvaluatedNetworkAttribute">
<EvaluatedNetworkAttribute xsi:type="esri:EvaluatedNetworkAttribute">
<ID>1</ID>
<Name>Oneway</Name>
<Units>Unknown</Units>
<DataType>esriNADTBoolean</DataType>
<UsageType>esriNAUTRestriction</UsageType>
<UserData xsi:nil="true" />
<UseByDefault>true</UseByDefault>
<AttributeParameters xsi:type="esri:ArrayOfNetworkAttributeParameter" />
</EvaluatedNetworkAttribute>
</EvaluatedNetworkAttributes>