Использование классов в 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

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