Использование классов в 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 создается и используется для определения выходной системы координат нового класса пространственных объектов, созданного с помощью инструмента Создать класс пространственных объектов.


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

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