GenerateOptimalCoordinateSystem

Краткая информация

Создает объект SpatialReference с пользовательской системой координат, оптимальной для определенного экстента и назначения вашей карты или анализа.

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

Синтаксис

GenerateOptimalCoordinateSystem (extent, property, {custom_name})
ПараметрОписаниеТип данных
extent

Экстент интереса. У объекта Extent должна быть пространственная привязка в географической системе координат, например, в WGS84.

Extent
property

Свойство, представляющее цель проекции.

  • EQUAL_AREAСохраняет относительную площадь регионов по всей поверхности Земли. Форма и расстояния будут искажены.
  • CONFORMALСохраняет углы в небольших областях, так что формы по большей части сохраняются. Размер и расстояния будут искажены.
  • EQUIDISTANT_ONE_POINTСохраняет расстояние при измерении через центр проекции. Площадь, форма и другие расстояния будут искажены.
  • EQUIDISTANT_MERIDIANSСохраняет расстояние при измерении вдоль меридианов. Площадь, форма и другие расстояния будут искажены.
  • COMPROMISE_WORLDНе сохраняет специально площадь, форму или расстояние, но создает баланс между этими геометрическими свойствами. Произвольные проекции предлагаются только для очень больших областей.

Не все свойства поддерживаются для всех экстентов интереса. Свойства CONFORMAL и EQUIDISTANT_MERIDIANS поддерживаются только для крупномасштабных экстентов, а свойство COMPROMISE_WORLD – только для экстентов на весь мир. Свойства EQUAL_AREA EQUIDISTANT_ONE_POINT поддерживаются для всех экстентов.

String
custom_name

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

String
Возвращаемое значение
Тип данныхОписание
SpatialReference

Объект SpatialReference с пользовательской системой координат проекции, оптимальной для определенного экстента и назначенной цели.

Пример кода

GenerateOptimalCoordinateSystem, пример 1

Создает пользовательскую систему координат проекции, оптимизирующую сохранение формы в экстенте класса пространственных объектов, и проецирует класс объектов в пользовательскую систему координат.

import arcpy
# Input features in Projected Coordinate System
infc = r"C:\Projected.gdb\Colorado_Counties"
# Get extent of features
desc = arcpy.Describe(infc)
extent = desc.extent
# Project the extent to Geographic Coordinate System WGS84
gcs_sr = arcpy.SpatialReference(4326)
prj_extent = extent.projectAs(gcs_sr)
# Create custom projected coordinate system
custom_sr = arcpy.GenerateOptimalCoordinateSystem(prj_extent, "EQUAL_AREA",
                                                  "EQUAL_AREA_COLORADO")
# Project the input features to the custom projection
fc_prj = arcpy.management.Project(infc, "TestPoly_Projected", custom_sr)
GenerateOptimalCoordinateSystem, пример 2

Создает простой полигональный объект и проецирует его в пользовательскую систему координат с сохранением формы.

import arcpy
gcs_sr = arcpy.SpatialReference(4326) # Create WGS84 spatial reference
# Create polygon
poly_info = [[20, 20], [20, 60], [60, 60], [60, 20], [20, 20]]
poly_pts = arcpy.Array([arcpy.Point(*coords) for coords in poly_info])
poly = arcpy.Polygon(poly_pts, gcs_sr)
# Create extent object from polygon
extent = poly.extent
# Create custom projected coordinate system
custom_sr = arcpy.GenerateOptimalCoordinateSystem(extent, "CONFORMAL")
# Project the polygon to the custom projection
poly_prj = poly.projectAs(custom_sr)

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