GenerateOptimalCoordinateSystem

摘要

GenerateOptimalCoordinateSystem 对象可生成一个具有自定义投影坐标系的 SpatialReference 对象,该坐标系最适用于地图或分析的指定范围和预期目的。

由于无法将曲面投影到没有变形的平面上,因此存在各种在保留角度、面积、距离或方向之间折衷的地图投影。 地图的预期目的和范围可以帮助确定要保留这些属性中的哪些属性。 例如,最好为导航地图选择等角投影以保持方位角,或者可能需要投影保持面积以可视化或测量要素的相对大小。

语法

GenerateOptimalCoordinateSystem (extent, property, {custom_name})
参数说明数据类型
extent

The extent of interest. The Extent object must have a spatial reference in a geographic coordinate system such as WGS84.

Extent
property

Specifies the property that will be used to represent the purpose of the projection.

  • EQUAL_AREAThe relative area of regions everywhere on earth will be preserved. Shape and distances will be distorted.
  • CONFORMALAngles in small areas will be preserved, so shapes, for the most part, will be preserved. Size and distances will be distorted.
  • EQUIDISTANT_ONE_POINTDistance will be preserved when measured through the center of the projection. Area, shape, and other distances will be distorted.
  • EQUIDISTANT_MERIDIANSDistance will be preserved when measured along meridians. Area, shape, and other distances will be distorted.
  • COMPROMISE_WORLDArea, shape, and distance will not be specifically preserved, but a balance between these geometric properties will be created. Compromise projections are only suggested for very large areas.

Not all properties are supported for all extents of interest. The CONFORMAL and EQUIDISTANT_MERIDIANS properties are only supported for large-scale extents, and the COMPROMISE_WORLD property is only supported for full-world extents. The EQUAL_AREA and EQUIDISTANT_ONE_POINT properties are supported for all extents

String
custom_name

The name of the custom projected coordinate system. If no value is provided, the name will be 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)

相关主题