Использование класса пространственной привязки
Наборы географических данных, например, классы объектов схемы, покрытия и растры, имеют пространственную привязку, которая определяет систему координат x,y-домен, m-домен, и z-домен набора данных. Каждая часть пространственной привязки имеет множество свойств, в частности, систему координат, которая определяет, какие опции картографической проекции используются для определения горизонтальных координат. Вся эта информация доступна в описании в наборе данных и при доступе к свойствам его пространственной привязки, которая в действительности является другим объектом, содержащим множество свойств.
import arcpy
# Describe a feature class
#
fc = "D:/St_Johns/data.gdb/roads"
desc = arcpy.Describe(fc)
# Get the spatial reference
#
sr = desc.spatialReference
# Check if the feature class is in projected space
#
if sr.type == "Projected":
arcpy.Copy_management(fc,"D:/St_Johns/data.gdb/roads_UTM")
Создание пространственной привязки
Обычно неразумно хранить все сведения о пространственной привязке в сценарии Python. Используя в качестве аргумента для класса SpatialReference файл проекции, промышленный код или пространственную привязку, можно быстро заполнить свойства пространственной привязки и использовать объект в качестве входных данных для инструмента геообработки. В следующем примере пространственная привязка формируется из промышленного кода (также называемого кодом авторитетного источника) и используется в качестве входного аргумента.
Более подробно об именах координатных систем и промышленных кодах см. geographic_coordinate_systems.pdf и projected_coordinate_systems.pdf файлы в папке ArcGIS Documentation.
import arcpy
inputWorkspace = "c:/temp"
outputName = "rivers.shp"
# Get the input workspace, the output name for the new feature class
# and path to an input projection file
#
inputWorkspace = arcpy.GetParameterAsText(0)
outputName = arcpy.GetParameterAsText(1)
factoryCode = arcpy.GetParameterAsText(2)
# Use a code as input to the SpatialReference class
#
sr = arcpy.SpatialReference(factoryCode)
# Use the SpatialReference object to create a new feature class with a
# specific coordinate system
#
arcpy.CreateFeatureclass_management(inputWorkspace, outputName,
"POLYLINE", spatial_reference=sr)
Полный список свойств и методов см. в Класс SpatialReference.
Пространственные привязки иногда называют строками механизма проецирования. Механизм проецирования (Projection Engine, PE) — это библиотека кода, которая используется всеми компонентами ArcGIS для определения картографический проекций и преобразования одной проекции в другую.