Использование класса пространственной привязки

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