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

Географические наборы данных, такие как классы пространственных объектов, покрытия и растры, имеют пространственную привязку, которая определяет систему координат набора данных, домен 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.management.Copy(fc, "D:/St_Johns/data.gdb/roads_UTM")

Создание пространственной привязки

Часто бывает нецелесообразно хранить все опции пространственной привязки внутри скрипта Python. Используя файл проекции, стандартный код или имя пространственной привязки в качестве аргумента класса SpatialReference, можно быстро выполнить свойства пространственной привязки и использовать объект в качестве входных данных для инструмента геообработки. В следующем примере пространственная привязка создается с использованием стандартного кода (также известного как авторитетный код), предоставленного в качестве входного аргумента.

Подсказка:

Более подробно об именах координатных систем и стандартных кодах см.geographic_coordinate_systems.pdfиprojected_coordinate_systems.pdfфайлы в папке Документации ArcGIS.

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.management.CreateFeatureclass(inputWorkspace, outputName, 
                                    "POLYLINE", spatial_reference=sr)
Примечание:

Полный список свойств и методов см. в Класс SpatialReference.

Примечание:

Пространственные привязки иногда относят к строкам Projection Engine. Projection Engine (PE) — это библиотека кода, которую использует вся система ArcGIS для определения картографических проекций и преобразования из одной проекции в другую.