Описание данных

Инструменты геообработки применяются ко всем типам данных, например: к классам объектов базы геоданных, шейп-файлам, растрам, таблицам, топологиям и сетям. Каждый фрагмент данных обладает определенными свойствами, которые можно использовать для управления при выполнении скрипта или в качестве параметров инструментов. Например, выходной тип объектов инструмента Пересечь зависит от типа формы пересекаемых данных – точка, линия или полигон. Если инструмент Пересечь (Intersect) выполняется в скрипте с входными наборами данных, необходимо определить типы форм входных наборов данных, чтобы можно было задать корректный выходной тип формы. Для определения типов данных всех входных наборов данных можно использовать функцию Описать (Describe).

С помощью функции Описать (Describe) можно определить свойства набора данных и использовать их для принятия решений. Например, в следующем примере скрипт использует функцию Описать (Describe) для оценки типа формы (полилиния, полигон, точка и т.д.) входных данных и для определения соответствующего инструмента геообработки.

import arcpy

inFC = arcpy.GetParameterAsText(0)
outFC = arcpy.GetParameterAsText(1)

# Describe a feature class
#
desc = arcpy.Describe(inFC)

# Get the shape type (Polygon, Polyline) of the feature class
#
type = desc.shapeType

# If the shapeType is Polygon convert the data to polylines 
#  using the FeatureToLine tool, otherwise just copy the 
#  data using the CopyFeatures tool.
#
if type == "Polygon":
    arcpy.FeatureToLine_management(inFC, outFC)
else:
    arcpy.CopyFeatures_management(inFC, outFC)

Функция Описать (Describe) возвращает объект Описать (Describe) с несколькими свойствами, например, тип данных, поля, индексы и многие другие. Свойства объекта являются динамическими, то есть в зависимости от описываемого типа данных доступны для использования различные свойства описания.

Свойства описания организованы в серии групп свойств. Любой определенный набор данных содержит свойства хотя бы одной из этих групп. Например, если описывается класс объектов базы геоданных, можно получить свойства из групп свойств GDB FeatureClass, FeatureClass, Table и Dataset. Все данные независимо от типа данных всегда получают общие свойства Описать объект (Describe Object).

Свойства Описать объект (Describe Object)Свойства элемента ArcInfo WorkstationСвойства таблицы ArcInfo WorkstationСвойства набора данных чертежа САПР (CAD)Свойства класса объектов САПРСвойства набора кадастровых данныхСвойства класса объектов покрытияСвойства покрытияСвойства наборов данныхСвойства таблицы dBaseСвойства набора данных отслеживания редактораСвойства класса объектовСвойства файлаСвойства папкиСвойства класса объектов БГДСвойства таблицы БГДСвойства геометрической сетиСвойства наборов данных LASСвойства слояСвойства документа картыСвойства набора данных мозаикиСвойства слоя Network AnalystСвойства набора сетевых данныхСвойства файла PrjСвойства канала растраСвойства каталога растровСвойства наборов растровых данныхСвойства RecordSet и FeatureSetСвойства класса отношенийСвойства класса представленияСвойства набора схематических данныхСвойства схематического представленияСвойства папки схемыСвойства класса объектов SDCСвойства класса объектов шейп-файловСвойства таблицыСвойства видов таблицыСвойства текстовых файловСвойства TinСвойства инструментаСвойства набора инструментовСвойства топологииСвойства покрытия VPFСвойства класса объектов VPFСвойства таблицы VPFСвойства рабочего пространства

Работа с наборами свойств

Некоторые свойства являются членами набора Свойство (Property). Например, допуски покрытия или свойства подключения рабочего пространства возвращаются в виде наборов Свойства (Property). Набор свойств включают именованные свойства, которые можно вызывать из самого набора свойств. В следующем примере допуски покрытия (Нечеткий (Fuzzy), Висячий узел (Dangle), TicMatch, Редактировать (Edit), Замыкание узла (NodeSnap), Прореживание (Weed), Гранулирование (Grain) и Замыкание (Snap)) выводятся в качестве стандартных выходных данных:

import arcpy

# Create a describe object from a coverage feature class
#
desc = arcpy.Describe("D:/St_Johns/covs/freshwater")

# Create a property set of coverage tolerances
#
covTols = desc.tolerances

# Print each coverage tolerance
#
print covTols.fuzzy
print covTols.dangle
print covTols.ticMatch
print covTols.edit
print covTols.nodeSnap
print covTols.weed
print covTols.grain
print covTols.snap

Наборы свойств обычно используются, если свойства объекта описываются различным образом. Свойства подключения (сервер, экземпляр, база данных, пользователь и версия) корпоративного рабочего пространства изменяются в зависимости от используемого типа базы данных ArcSDE, поэтому их удобно использовать в наборе свойств, не имеющем предопределенного набора значений.

Связанные темы

9/11/2013