FeatureSet

Сводка

FeatureSet объекты являются упрощенным представлением класса пространственных объектов. Они представляют собой особый элемент данных, который содержит не только схему, но и данные. Объект FeatureSet – это также метод, с помощью которого данные объекта передаются и получаются с сервера.

Описание

Примечание:

При загрузке класса объектов в новый FeatureSet и изменении FeatureSet с помощью инструмента геообработки, который изменяет вход как инструмент Вычислить поле или функции, подобной UpdateCursor, исходный класс объектов также будет изменен.

Синтаксис

 FeatureSet  ({table})
ParameterОбъяснениеТип данных
table

Данные пространственных объектов для загрузки в объект FeatureSet.

String

Свойства

ВладениеОбъяснениеТип данных
JSON
(только чтение)

Возвращает представление геометрии Esri JSON в виде строки.

Подсказка:

Возвращаемая строка может быть конвертирована в словарь с помощью функции Python json.loads.

String

Обзор метода

МетодОбъяснение
load (table_path, {where_clause}, {time_filter}, {renderer}, {is_renderer})

Импорт из таблицы.

save (table_path)

Экспорт в таблицу.

Методы

load (table_path, {where_clause}, {time_filter}, {renderer}, {is_renderer})
ParameterОбъяснениеТип данных
table_path

Импортируемая таблица.

Входными данными может быть путь каталога к классу объектов, URL размещенного векторного слоя или URL JSON с синтаксисом {"url":"<url>", "token":"<token", "referer":"<referer>"} для загрузки данных из внешних источников, которые требуют токен доступа.

String
where_clause

SQL-выражение, использованное для выбора поднабора записей.

Более подробно о синтаксисе SQL см. Справочник по SQL для выражений запросов, применяемых в ArcGIS.

(Значение по умолчанию — None)

String
time_filter

Момент времени или экстент времени для запроса. Фильтр времени можно применить только к размещенным векторным слоям, а для слоя должна быть включена опция времени.

Временная метка должна быть отформатирована как срока, например, "1199145600000" ((1 Jan 2008 00:00:00 GMT). Временной экстент должен быть строкой с разделителями-запятыми: "1199145600000, 1230768000000" (1 Jan 2008 00:00:00 GMT to 1 Jan 2009 00:00:00 GMT).

Нулевое значение, указанное для времени начала или конца будет представлять бесконечность, например: "null, 1230768000000".

(Значение по умолчанию — None)

String
renderer

Выходные символы FeatureSet можно настроить с помощью строки или представления словаря либо для JSON renderer, либо для объекта JSON Definition.

Более подробно об объектах JSON renderers и JSON definition.

(Значение по умолчанию — None)

String
is_renderer

Указывает тип значения, которое используется с аргументом renderer. Задайте как True, если значение является объектом механизма отрисовки и False, если значение является определением.

(Значение по умолчанию — None)

Boolean

Дополнительные параметры могут быть только позиционными, передать их по ключевому слову нельзя. Например, если целью является только указание символов, то дополнительные аргументы where_clause и time_filter нужно пропустить с помощью None.

save (table_path)
ParameterОбъяснениеТип данных
table_path

Создаваемая выходная таблица.

String

Пример кода

Пример 1 FeatureSet

Загрузите данные в FeatureSet и вставьте в класс объектов.

import arcpy

arcpy.env.overwriteOutput = True

arcpy.ImportToolbox("http://flame7/arcgis/services;BufferByVal",
                    "servertools")

# List of coordinates
coordinates = [[-117.196717216, 34.046944853],
               [-117.186226483, 34.046498438],
               [-117.179530271, 34.038016569],
               [-117.187454122, 34.039132605],
               [-117.177744614, 34.056765964],
               [-117.156205131, 34.064466609],
               [-117.145491191, 34.068261129],
               [-117.170825195, 34.073618099],
               [-117.186784501, 34.068149525],
               [-117.158325598, 34.03489167]]

# Create an in_memory feature class to initially contain the coordinate pairs
feature_class = arcpy.CreateFeatureclass_management(
    "in_memory", "tempfc", "POINT")[0]

# Open an insert cursor
with arcpy.da.InsertCursor(feature_class, ["SHAPE@XY"]) as cursor:
    # Iterate through list of coordinates and add to cursor
    for (x, y) in coordinates:
        cursor.insertRow([(x, y)])

# Create a FeatureSet object and load in_memory feature class
feature_set = arcpy.FeatureSet()
feature_set.load(feature_class)

results = arcpy.BufferPoints_servertools(feature_set)
Пример 2 FeatureSet

Загрузите подмножество данных из ArcGIS Living Atlas of the World в FeatureSet и задайте символы.

import arcpy
# Set data
in_data = "https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/USA_States_Generalized/FeatureServer/0"
query = "STATE_NAME = 'California'"
renderer = '''{
    "renderer": {
        "type": "simple",
        "symbol": {
            "type": "esriSFS",
            "style": "esriSFSSolid",
            "color": [
                255,
                0,
                0,
                255
            ],
            "outline": {
                "type": "esriSLS",
                "style": "esriSLSSolid",
                "color": [
                    110,
                    110,
                    110,
                    255
                ],
                "width": 2
            }
        },
        "label": "",
        "description": "",
        "rotationType": "geographic",
        "rotationExpression": ""
    }
}'''
# Create empty FeatureSet
feature_set = arcpy.FeatureSet()
# Load data into FeatureSet with query
feature_set.load(in_data, query, None, renderer, True)

Связанные разделы