SpatialReference

Сводка

Каждая часть пространственной привязки имеет множество свойств, в частности, систему координат, которая определяет, какие опции картографической проекции используются для определения горизонтальных координат.

Описание

Объект SpatialReference так же может быть доступен из существующих наборов данных, используя свойство Describe spatialReference.

dataset = "c:/data/landbase.gdb/Wetlands"
spatial_ref = arcpy.Describe(dataset).spatialReference

Экстенты XY, Z и M – это не тоже самое, что домены в пространственной привязке. Домены XY, Z и M значений в пространственной привязке задают допустимый диапазон значений координат, которые можно сохранить в классе объектов. Экстенты класса объектов отражают реальный диапазон значений координат, в пределах которых располагаются объекты этого класса. Эти экстенты не могут быть больше, чем значения домена.

Примечание:

Какие свойства пространственной привязки доступны, зависит от используемой системы координат. В списке свойств, приведенном ниже, свойства, доступные с системой координат проекции, обозначаются цифрой 1; свойства, доступные только с географической системой координат, обозначаются цифрой 2.

Синтаксис

 SpatialReference ({item}, {vcs})
ParameterОбъяснениеТип данных
item

Система координат, которая должна использоваться для создания SpatialReference. Может быть задана с помощью файла проекции, имени, кода или формата WKT. См. пример ниже.

  • Использовать файл проекции (.prj)
    sr = arcpy.SpatialReference("c:/coordsystems/NAD 1983.prj")
  • Использовать имя системы координат
    sr = arcpy.SpatialReference("Hawaii Albers Equal Area Conic")
  • Использовать "заводской" код системы координат (или авторский)
    # 32145 is the code for: 
    #  NAD 1983 StatePlane Vermont FIPS 4400 (Meters)
    sr = arcpy.SpatialReference(32145)
  • Использование текстового WKT-представления
    # String below is representation for the 
    # Geographic Coordinate system "WGS 1984" (factory code=4326)
    wkt = "GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],\
                   PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]];\
                   -400 -400 1000000000;-100000 10000;-100000 10000;8.98315284119522E-09;\
                   0.001;0.001;IsHighPrecision"
    sr = arcpy.SpatialReference()
    sr.loadFromString(wkt)

Более подробно об именах координатных систем и промышленных кодах см. geographic_coordinate_systems.pdf и projected_coordinate_systems.pdf файлы.

Более подробную информацию см. в разделе Использование класса пространственной привязки.

Variant
vcs

Вертикальная система координат (ВСК). ВСК определяет информацию о координатах Z. Может быть задана с помощью имени, кода или формата WKT. См. пример ниже.

  • Использование имен
    sr = arcpy.SpatialReference("Hawaii Albers Equal Area Conic", "MSL (Height)")
  • Использование кодов
    # Spatial Reference factory code of 32145 is : NAD 1983 StatePlane Vermont FIPS 4400 (Meters)
    # Spatial Reference factory code of 5714 is : Mean Sea Level (Height)
    sr = arcpy.SpatialReference(32145, 5714)
  • Использование текстового WKT-представления. Обратите внимание, что аргумент vcs не используется и ВСК определяется в разделе VERTCS WKT.
    # String below is representation for the 
    # Geographic Coordinate system "WGS 1984" (factory code=4326), 
    #   with a vertical coordinate system "WGS 1984" (factory code=115700)
    wkt = "GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],\
                   PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],\
                   VERTCS['WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],\
                   PARAMETER['Vertical_Shift',0.0],PARAMETER['Direction',1.0],UNIT['Meter',1.0]];\
                   -400 -400 1000000000;-100000 10000;-100000 10000;8.98315284119522E-09;\
                   0.001;0.001;IsHighPrecision"
    sr = arcpy.SpatialReference()
    sr.loadFromString(wkt)
Variant

Свойства

ВладениеОбъяснениеТип данных
GCS
(только чтение)

Система координат проекции для географической системы координат, лежащей в ее основе, возвращает объект SpatialReference. Географическая система координат возвращает тот же самый объект SpatialReference.

SpatialReference
MDomain
(только чтение)

Экстент домена измерения.

String
MFalseOriginAndUnits
(только чтение)

Смещение относительно начала координат для измерения и его единицы измерения.

String
MResolution
(чтение и запись)

Разрешение измерения.

Double
MTolerance
(чтение и запись)

Допуск измерения.

Double
VCS
(только чтение)

Если в системе координат присутствует вертикальная система координат, для вертикальной системы координат, на которой она основана, возвращается объект VCS.

Object
XYResolution
(чтение и запись)

Разрешение xy.

Double
XYTolerance
(чтение и запись)

Допуск xy.

Double
ZDomain
(только чтение)

Экстент z-домена.

String
ZFalseOriginAndUnits
(только чтение)

Смещение относительно начала координат для z и единицы измерения.

String
ZResolution
(чтение и запись)

Свойство z-разрешения.

Double
ZTolerance
(чтение и запись)

Свойство z-допуска.

Double
abbreviation
(чтение и запись)

Сокращенное имя пространственной привязки.

String
alias
(чтение и запись)

Псевдоним пространственной привязки.

String
domain
(только чтение)

Экстент домена xy.

String
factoryCode
(чтение и запись)

Заводской код WKID пространственной привязки.

Integer
falseOriginAndUnits
(только чтение)

Смещение относительно начала координат и единицы измерения.

String
hasMPrecision
(только чтение)

Обозначает, была ли задана информация о точности m-значения.

Boolean
hasXYPrecision
(только чтение)

Обозначает, была ли задана информация о точности xy.

Boolean
hasZPrecision
(только чтение)

Обозначает, была ли задана информация о точности z-значения.

Boolean
isHighPrecision
(чтение и запись)

Обозначает, была ли для пространственной привязки задана высокая точность.

Boolean
name
(чтение и запись)

Имя пространственной привязки.

String
remarks
(чтение и запись)

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

String
type
(чтение и запись)

Тип пространственной привязки.

  • Geographic — географическая система координат.
  • Projected — система координат проекции.
String
usage
(только чтение)

Примечания по использованию.

String
PCSCode
(чтение и запись)

Код системы координат проекции.1

Integer
PCSName
(чтение и запись)

Имя системы координат проекции.1

String
azimuth
(чтение и запись)

Азимут системы координат проекции.1

Double
centralMeridian
(чтение и запись)

Центральный меридиан системы координат проекции.1

Double
centralMeridianInDegrees
(чтение и запись)

Центральный меридиан (Lambda0) системы координат проекции в градусах.1

Double
centralParallel
(чтение и запись)

Центральная параллель системы координат проекции.1

Double
classification
(только чтение)

Классификация проекции карты.1

String
falseEasting
(чтение и запись)

Сдвиг на восток системы координат проекции.1

Double
falseNorthing
(чтение и запись)

Сдвиг на север системы координат проекции.1

Double
latitudeOf1st
(чтение и запись)

Широта первой точки системы координат проекции.1

Double
latitudeOf2nd
(чтение и запись)

Широта второй точки системы координат проекции.1

Double
latitudeOfOrigin
(чтение и запись)

Широта начала координат системы координат проекции.1

Double
linearUnitCode
(чтение и запись)

Код единицы длины.1

Integer
linearUnitName
(чтение и запись)

Название единицы длины.1

String
longitude
(чтение и запись)

Значение долготы этого начального меридиана.1

Double
longitudeOf1st
(чтение и запись)

Долгота первой точки системы координат проекции.1

Double
longitudeOf2nd
(чтение и запись)

Долгота второй точки системы координат проекции.1

Double
longitudeOfOrigin
(чтение и запись)

Долгота начала координат системы координат проекции.1

Double
metersPerUnit
(только чтение)

Количество метров в линейной единице.1

Double
projectionCode
(чтение и запись)

Код проекции.1

Integer
projectionName
(чтение и запись)

Имя проекции.1

String
scaleFactor
(чтение и запись)

Коэффициент масштабирования системы координат проекции.1

Double
standardParallel1
(чтение и запись)

Первая параллель системы координат проекции.1

Double
standardParallel2
(чтение и запись)

Вторая параллель системы координат проекции.1

Double
GCSCode
(чтение и запись)

Код географической системы координат.2

Integer
GCSName
(чтение и запись)

Имя географической системы координат.2

String
angularUnitCode
(чтение и запись)

Код единиц углов.2

Integer
angularUnitName
(чтение и запись)

Имя единиц углов.2

String
datumCode
(чтение и запись)

Код датума.2

Integer
datumName
(чтение и запись)

Имя датума.2

String
flattening
(чтение и запись)

Коэффициент сжатия этого сфероида.2

Double
longitude
(чтение и запись)

Значение долготы этого начального меридиана.2

Double
primeMeridianCode
(чтение и запись)

Код начального меридиана.2

Integer
primeMeridianName
(чтение и запись)

Имя начального меридиана.2

String
radiansPerUnit
(только чтение)

Радианы в угловых единицах.2

Double
semiMajorAxis
(чтение и запись)

Длина большой полуоси этого сфероида.2

Double
semiMinorAxis
(чтение и запись)

Длина большой полуоси этого сфероида.2

Double
spheroidCode
(чтение и запись)

Код сфероида.2

Integer
spheroidName
(чтение и запись)

Имя сфероида.2

String

Обзор метода

МетодОбъяснение
create ()

Создает объект пространственной привязки, используя свойства.

createFromFile (prj_file)

Создает объект пространственной привязки из файла проекции.

exportToString ()

Экспортирует объект в его строковое представление.

loadFromString (string)

Восстановление объекта с помощью его строкового представления. Метод exportToString может использоваться для создания строкового представления.

setDomain (x_min, x_max, y_min, y_max)

Задает домен XY.

setFalseOriginAndUnits (false_x, false_y, xy_units)

Задает смещение относительно начала координат для XY и единицы измерения.

setMDomain (m_min, m_max)

Задает домен M.

setMFalseOriginAndUnits (false_m, m_units)

Задает смещение относительно начала координат для M и единицы измерения.

setZDomain (z_min, z_max)

Задает домен Z.

setZFalseOriginAndUnits (false_z, z_units)

Задает смещение относительно начала координат для Z и единицы измерения.

Методы

create ()
createFromFile (prj_file)
ParameterОбъяснениеТип данных
prj_file

Файл проекции используется для заполнения объекта пространственной привязки.

String
exportToString ()
Значение отраженного сигнала
Тип данныхОбъяснение
String

Строковое представление объекта.

loadFromString (string)
ParameterОбъяснениеТип данных
string

Строковое представление объекта.

String
setDomain (x_min, x_max, y_min, y_max)
ParameterОбъяснениеТип данных
x_min

Минимальное x-значение.

Double
x_max

Максимальное x-значение.

Double
y_min

Минимальное y-значение.

Double
y_max

Максимальное y-значение.

Double
setFalseOriginAndUnits (false_x, false_y, xy_units)
ParameterОбъяснениеТип данных
false_x

Ложное значение x.

Double
false_y

Ложное значение y.

Double
xy_units

Единицы измерения xy.

String
setMDomain (m_min, m_max)
ParameterОбъяснениеТип данных
m_min

Минимальное m-значение.

Double
m_max

Максимальное m-значение.

Double
setMFalseOriginAndUnits (false_m, m_units)
ParameterОбъяснениеТип данных
false_m

Смещение m-значения.

Double
m_units

Единицы измерения m.

Double
setZDomain (z_min, z_max)
ParameterОбъяснениеТип данных
z_min

Минимальное z-значение.

Double
z_max

Максимальное z-значение.

Double
setZFalseOriginAndUnits (false_z, z_units)
ParameterОбъяснениеТип данных
false_z

Смещение z-значения.

Double
z_units

Единицы измерения смещения z.

Double

Пример кода

SpatialReference, пример

Для каждого класса пространственных объектов в рабочей области укажите имя его пространственной привязки.

import arcpy
# Set the workspace environment
arcpy.env.workspace = "c:/base/base.gdb"
# Get a list of the feature classes in the input folder
feature_classes = arcpy.ListFeatureClasses()
# Loop through the list
for fc in feature_classes:
    # Create the spatial reference object
    spatial_ref = arcpy.Describe(fc).spatialReference
    # If the spatial reference is unknown
    if spatial_ref.name == "Unknown":
        print("{} has an unknown spatial reference".format(fc))
    # Otherwise, print out the feature class name and spatial reference
    else:
        print("{} : {}".format(fc, spatial_ref.name))

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