ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

ArcMap

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительные модули

Использование классов в Python

  • Использование классов в инструментах геообработки

Класс подобен архитектурному чертежу. Чертеж обеспечивает структуру для создания чего-либо. Классы можно использовать для создания объектов, часто называемых экземплярами. Классы ArcPy, например, SpatialReference и Extent часто используются в качестве средства быстрого вызова для задания параметров инструментов геообработки, которые иначе пришлось бы задавать в виде сложных строк.

В ArcPy входят несколько классов, в том числе SpatialReference, ValueTable и Point. После создания экземпляра его свойства и методы становятся доступными для использования. Классы имеют один или несколько методов, называемых конструкторами. Конструктор – это метод для инициализации нового экземпляра класса. В приведенном ниже примере SpatialReference(prjFile) – это конструктор класса. Он создает объект spatialRef, считывая файл проекции.

import arcpy

prjFile = "c:/projections/North America Equidistant Conic.prj"
spatialRef = arcpy.SpatialReference(prjFile)

Как и большинство других классов, класс SpatialReference содержит несколько методов и свойств. Используя знания, полученные в предыдущем примере, можно получить доступ к свойствам класса spatialRef.

import arcpy

prjFile = "c:/projections/North America Equidistant Conic.prj"
spatialRef = arcpy.SpatialReference(prjFile)

# Print the SpatialReference's name, and type
#
print(spatialRef.name)
print(spatialRef.type)

Классы можно использовать повторно; в следующем примере два уникальных точечных объекта создаются с использованием класса Point.

import arcpy

pointA = arcpy.Point(2.0, 4.5)
pointB = arcpy.Point(3.0, 7.0)
Примечание:

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

Использование классов в инструментах геообработки

Параметры инструментов обычно определяются с использованием простых текстовых строк. Имена набора данных, пути, ключевые слова, имена полей, допуски и имена доменов могут указываться с использованием строк в кавычках.

Некоторые параметры труднее задать с использованием простых строк; это комплексные параметры, для которых необходимо задать много свойств. Вместо того, чтобы задавать длинные, сложные текстовые строки, определяющие эти параметры, можно использовать классы (например, SpatialReference, ValueTable и Point). Документация для каждого инструмента содержит пример создания скриптов для задания и применения каждого параметра инструмента.

В следующем примере создается объект SpatialReference, который затем используется для задания выходной системы координат нового класса пространственного объекта, создаваемого с использованием инструмента CreateFeatureClass.

import arcpy

inputWorkspace = "c:/temp"
outputName =  "rivers.shp"

prjFile = "c:/projections/North America Equidistant Conic.prj"
spatialRef = arcpy.SpatialReference(prjFile)

# Run CreateFeatureclass using the spatial reference object
#
arcpy.CreateFeatureclass_management(inputWorkspace, outputName, "POLYLINE", 
                                    spatial_reference=spatialRef)

Строковый эквивалент этого параметра будет выглядеть примерно так: PROJCS['North_America_Equidistant_Conic',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Equidistant_Conic'],PARAMETER['False_Easting',0.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-96.0],PARAMETER['Standard_Parallel_1',20.0],PARAMETER['Standard_Parallel_2',60.0],PARAMETER['Latitude_Of_Origin',40.0],UNIT['Meter',1.0]];IsHighPrecision

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

  • Использование инструментов в Python
  • Использование функций в Python

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог Esri
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2021 Esri. | Конфиденциальность | Правовая информация