SpatialReference
Краткая информация
Каждая часть пространственной привязки имеет множество свойств, в частности, систему координат, которая определяет, какие опции картографической проекции используются для определения горизонтальных координат.
Обсуждение
Объект SpatialReference так же может быть доступен из существующих наборов данных, используя свойство Describe spatialReference.
dataset = "c:/data/landbase.gdb/Wetlands"
spatial_ref = arcpy.Describe(dataset).spatialReference
Экстенты XY, Z и M – это не тоже самое, что домены в пространственной привязке. Домены XY, Z и M значений в пространственной привязке задают допустимый диапазон значений координат, которые можно сохранить в классе объектов. Экстенты класса объектов отражают реальный диапазон значений координат, в пределах которых располагаются объекты этого класса. Эти экстенты не могут быть больше, чем значения домена.
Объект SpatialReference обеспечивает работу операторов equal (==) и not equal (!=) для сравнения пространственных привязок.
Примечание:
Какие свойства пространственной привязки доступны, зависит от используемой системы координат. В списке свойств, приведенном ниже, свойства, доступные с системой координат проекции, обозначаются цифрой 1; свойства, доступные только с географической системой координат, обозначаются цифрой 2.
Поскольку система координат проекции основана на географической системе координат, доступ к свойствам системы координат проекции можно получить из географической системы координат с помощью свойства GCS.
Синтаксис
SpatialReference({item}, {vcs}, {text})
| Имя | Объяснение | Тип данных |
|---|---|---|
|
item (Дополнительный) |
The horizontal coordinate system used to create the Create a
Create a
Create a
Create a
For more information about coordinate system names and factory codes, see the geographic_coordinate_systems.pdf and projected_coordinate_systems.pdf files. For more information, see Using the spatial reference class. |
Variant |
|
vcs (Дополнительный) |
The vertical coordinate system (VCS). The VCS defines information about the z-coordinates and can be set using a name or factory code. See the following examples: Define the vertical coordinate system using a name.
Define the vertical coordinate system using a factory code.
|
Variant |
|
text (Дополнительный) |
A well-known text (WKT or WKT2 format) string that can be used to define a horizontal and vertical coordinate system. Примечание:When creating a Create a
Create a
Create a
|
String |
Свойства
| Имя | Объяснение | Тип данных |
|---|---|---|
|
GCS (Только для чтения) |
Система координат проекции для географической системы координат, лежащей в ее основе, возвращает объект |
SpatialReference |
|
MDomain (Только для чтения) |
Экстент домена измерения. |
String |
|
MFalseOriginAndUnits (Только для чтения) |
Смещение относительно начала координат для измерения и его единицы измерения. |
String |
|
MResolution (Чтение / Запись) |
Разрешение измерения. |
Double |
|
MTolerance (Чтение / Запись) |
Допуск измерения. |
Double |
|
VCS (Только для чтения) |
Если в системе координат присутствует вертикальная система координат, свойство возвращает объект |
Object |
|
XYResolution (Чтение / Запись) |
Разрешение x,y. |
Double |
|
XYTolerance (Чтение / Запись) |
Допуск x,y. |
Double |
|
ZDomain (Только для чтения) |
Экстент z-домена. |
String |
|
ZFalseOriginAndUnits (Только для чтения) |
Смещение относительно начала координат для z и единицы измерения. |
String |
|
ZResolution (Чтение / Запись) |
Разрешение Z. |
Double |
|
ZTolerance (Чтение / Запись) |
Допуск Z. |
Double |
|
abbreviation (Чтение / Запись) |
Сокращенное имя пространственной привязки. |
String |
|
alias (Чтение / Запись) |
Псевдоним пространственной привязки. |
String |
|
domain (Только для чтения) |
Экстент домена x,y. |
String |
|
factoryCode (Чтение / Запись) |
Заводской код WKID пространственной привязки. |
Integer |
|
falseOriginAndUnits (Только для чтения) |
Смещение относительно начала координат и единицы измерения. |
String |
|
hasMPrecision (Только для чтения) |
Определяет, была ли задана информация о точности m-значения. |
Boolean |
|
hasXYPrecision (Только для чтения) |
Определяет, была ли задана информация о точности xy. |
Boolean |
|
hasZPrecision (Только для чтения) |
Определяет, была ли задана информация о точности z-значения. |
Boolean |
|
isHighPrecision (Чтение / Запись) |
Определяет, была ли задана высокая точность пространственной привязки. |
Boolean |
|
name (Чтение / Запись) |
Имя пространственной привязки. |
String |
|
remarks (Чтение / Запись) |
Строка комментария пространственной привязки. |
String |
|
type (Чтение / Запись) |
Определяет тип пространственной привязки.
|
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()
Создает объект SpatialReference, используя свойства.
createFromFile(prj_file)
Создает объект SpatialReference из файла проекции.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
prj_file |
The projection file used to populate the |
String |
exportToString({encoding})
Экспортирует объект в его строковое представление.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
encoding (Дополнительный) |
Specifies the encoding of the exported string.
(Значение по умолчанию — WKT) |
String |
Возвращаемое значение
| Тип данных | Объяснение |
|---|---|
|
String |
WKT или WKT 2 представление объекта. |
loadFromString(string)
Определяет объект SpatialReference из строки WKT.
Метод exportToString может использоваться для экспорта строки WKT пространственной привязки.
Использование строки WKT с горизонтальной системой координат.
# The following string is the WKT 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)Использование строки WKT с горизонтальной и вертикальной системами координат. Помните, что вертикальная система координат задается в разделе
VERTCSWKT.# The following string is the WKT 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)
| Имя | Объяснение | Тип данных |
|---|---|---|
|
string |
The WKT string representation of the object. |
String |
setDomain(x_min, x_max, y_min, y_max)
Задает домен x,y.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
x_min |
The minimum x-value. |
Double |
|
x_max |
The maximum x-value. |
Double |
|
y_min |
The minimum y-value. |
Double |
|
y_max |
The maximum y-value. |
Double |
setFalseOriginAndUnits(false_x, false_y, xy_units)
Устанавливает смещение начала координат для x,y и единицы измерения.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
false_x |
The false x-value. |
Double |
|
false_y |
The false y-value. |
Double |
|
xy_units |
The x,y-units. |
String |
setMDomain(m_min, m_max)
Устанавливает m-домен.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
m_min |
The minimum m-value. |
Double |
|
m_max |
The maximum m-value. |
Double |
setMFalseOriginAndUnits(false_m, m_units)
Устанавливает смещение начала координат для m и единицы измерения.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
false_m |
The false m-value. |
Double |
|
m_units |
The m-units. |
Double |
setZDomain(z_min, z_max)
Устанавливает z-домен.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
z_min |
The minimum z-value. |
Double |
|
z_max |
The maximum z-value. |
Double |
setZFalseOriginAndUnits(false_z, z_units)
Устанавливает смещение начала координат для z и единицы измерения.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
false_z |
The false z-value. |
Double |
|
z_units |
The false z-units. |
Double |
Пример кода
Для каждого класса пространственных объектов в рабочей области укажите имя его пространственной привязки.
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(r"{fc} has an unknown spatial reference")
# Otherwise, print out the feature class name and spatial reference
else:
print(f"{fc} : {spatial_ref.name}")