Класс подобен архитектурному чертежу. Чертеж обеспечивает структуру для создания чего-либо. Классы можно использовать для создания объектов, часто называемых экземплярами. Классы 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)
Использование классов в инструментах геообработки
Параметры инструментов обычно определяются с использованием простых текстовых строк. Имена набора данных, пути, ключевые слова, имена полей, допуски и имена доменов могут указываться с использованием строк в кавычках.
Некоторые параметры труднее задать с использованием простых строк; это комплексные параметры, для которых необходимо задать много свойств. Вместо того, чтобы задавать длинные, сложные текстовые строки, определяющие эти параметры, можно использовать классы (например, 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