Добавить пространственный индекс (Add Spatial Index) (Управление данными)
Краткая информация
Добавляет пространственный индекс в шейп-файл, файловую базу геоданных или класс объектов ArcSDE. Используйте этот инструмент либо для добавления пространственного индекса к шейп-файлу или классу пространственных объектов, который еще не имеет таковых, либо для перепостроения существующего пространственного индекса.Советы по использованию.
Использование
ArcGIS использует пространственные индексы для быстрого поиска объектов в классах пространственных объектов. Определение пространственного объекта, выбор объектов путем наведения и растягивания окна, а также перемещение и масштабирование - все это обязывает ArcMap использовать пространственный индекс для размещения объектов. Пространственный индекс определяется путем использования виртуальных сеток, которые накладываются на экстент пространственных объектов в классе объектов, аналогично индексным сеткам на маршрутных картах в путеводителях.
По умолчанию, ArcGIS создает и поддерживает пространственные индексы для классов пространственных объектов базы геоданных. Класс объектов базы геоданных, не имеющий пространственного индекса, необходимо полностью удалить с помощью инструмента Удалить пространственный индекс (Remove_Spatial_Index).
Параметры Пространственная сетка 1 (Spatial Grid 1), 2 и 3 применяются только к файловым базам геоданных и конкретным классам базы геоданных ArcSDE (тем, которые используют бинарное хранение Сервера SQL, DB2, Oracle или Oracle ST_Geometry).
- Если вы не знаете, как установить размер пространственной сетки или не уверены в том, какие значения следует использовать, воспользуйтесь значениями по умолчанию 0, 0, 0. После введения значений по умолчанию, этот инструмент вычислит оптимальный размер пространственной сетки путем проверки всех входных объектов.
- Шейп-файлы и конкретные классы базы геоданных ArcSDE (те, которые используют Oracle Spatial, Informix и PostgreSQL) не используют пространственных индексов на основе размеров сетки; поэтому, не нужно указывать значения пространственной сетки.
- Классы пространственных объектов персональной базы геоданных получают размер сетки пространственного индекса на основе свойств пространственной привязки класса объектов. Этот индексную сетку нельзя перезаписать, удалить или изменить.
- Пространственная сетка 1 (Spatial Grid 1) является первым, или наименьшим, уровнем сетки и имеет наименьший размер ячейки. Ячейки квадратные, и вводимое значение параметра - это длина одной стороны. Используется единица измерения пространственной привязки класса пространственных объектов (например, метры). Пространственная сетка 2 (Spatial Grid 2) должна быть по крайней мере в три раза больше, чем Пространственная сетка 1 (Spatial Grid 1), а Пространственная сетка 3 (Spatial Grid 3) — по крайней мере в три раза больше, чем Пространственная сетка 2 (Spatial Grid 2).
Если Входные объекты (Input Features) уже имеют пространственный индекс, Пространственные сетки 1, 2, 3 отображает текущие значения сетки пространственного индекса. Если для параметров сетки пространственного индекса вы вводите 0,0,0 и используете этот инструмент, вычисляется оптимальный размер сетки, а индекс перестраивается. Затем вы можете просмотреть вычисленный размер сетки, повторно открыв этот инструмент и еще раз введя класс пространственных объектов или слой (затем нажмите Отмена (Cancel), т.к. вам не нужно перестраивать индекс). Вы также можете использовать инструмент Вычислить индекс пространственной сетки, используемый по умолчанию (Calculate Default Spatial Grid Index), чтобы вычислить оптимальные размеры сеток.
-
Добавление нового пространственного индекса в класс пространственных объектов ArcSDE довольно сильно загружает сервер. Не следует делать это с большими классами пространственных объектов, если к серверу подключено большое количество пользователей.
- Более подробно о пространственных индексах см. следующее:
Синтаксис
Параметр | Объяснение | Тип данных |
in_features |
Класс объектов ArcSDE, класс объектов файловой базы геоданных или шейп-файл, в которые должен быть добавлен пространственный индекс, или в которых он должен быть повторно построен. | Feature Layer; Mosaic Layer; Raster Catalog Layer |
spatial_grid_1 (дополнительно) | Параметры Пространственная сетка 1, 2 и 3 (Spatial Grid 1, 2, and 3) применяются только к файловой базе геоданных и к конкретным классам пространственных объектов базы геоданных ArcSDE. Если вы не знакомы с установкой размеров сетки, оставьте эти параметры на 0,0,0, и ArcGIS вычислит оптимальный для вас размер. | Double |
spatial_grid_2 (дополнительно) |
Размер ячейки второй пространственной сетки. Оставьте размер равным 0, если вам нужна только одна сетка. В противном случае, задайте размер по крайней мере в три раза больше, чем Пространственная сетка 1 (Spatial Grid 1). | Double |
spatial_grid_3 (дополнительно) |
Размер ячейки третьей пространственной сетки. Оставьте размер равным 0, если вам нужно только две сетки. В противном случае, задайте размер, по крайней мере, в три раза больше, чем Пространственная сетка 2 (Spatial Grid 2). | Double |
Пример кода
Пример (окно Python) Пример скрипта Python для выполнения функции Добавить пространственный индекс (Add Spatial Index) с запуском из окна Python в ArcGIS.
import arcpy
import arcpy.env as ENV
ENV.workspace = "Database Connections/Connection to esoracle.sde"
arcpy.AddSpatialIndex_management("LPI.Land/LPI.PLSSFirstDivision", 500)
На следующем скрипте Python демонстрируется, как использовать функцию Добавить пространственный индекс (Add Spatial Index) в автономном скрипте.
# Name: AddSpatialIndex_Example2.py
# Description: Add a spatial index to a SDE feature class.
# Author: ESRI
# Import system modules
import arcpy
import arcpy.env as ENV
# Set workspace
ENV.workspace = "Database Connections/Connection to esoracle.sde"
# Set local variables
in_features = "LPI.Land/LPI.PLSSFirstDivision"
spatial_grid_1 = "500"
spatial_grid_2 = ""
spatial_grid_3 = ""
# Execute AddSpatialIndex
arcpy.AddSpatialIndex_management(in_features, spatial_grid_1)