描述
创建标准差椭圆来汇总地理要素的空间特征:中心趋势、离散和方向趋势。
插图
使用方法
-
标准差椭圆工具可创建一个其中每个案例(案例分组字段参数)都对应一个椭圆面的新的输出要素类。这些椭圆面的属性值会包括平均中心的 X 和 Y 坐标、两个标准距离(长轴和短轴)及椭圆的方向。字段名分别是 CenterX、CenterY、XStdDist、YStdDist 和 Rotation。如果提供了案例分组字段,那么也会将此字段添加到输出要素类。
-
基于欧氏距离或者曼哈顿距离的计算需要对数据进行投影以准确测量距离。
如果要素的基础空间模式是中心处集中而朝向外围的要素较少(一种空间正态分布),则一个标准差椭圆面会包含聚类中约 68% 的要素,两个标准差椭圆面会包含聚类中约 95% 的要素,三个标准差椭圆面则可包含聚类中约 99% 的要素。
-
输出字段 Rotation 中的值表示长轴从顶点开始按顺时针测量的旋转角度。
-
案例分组字段用于在分析前对要素进行分组。如果指定了案例分组字段,则会首先根据案例分组字段值对输入要素进行分组,然后再计算每组的标准差椭圆。案例分组字段可以为整型、日期型或字符串型。对于案例分组字段,具有空值的记录将从分析中排除。
可以根据可选的权重字段计算标准差椭圆(例如,获取按严重程度衡量的交通事故的椭圆)。权重字段应为数值型字段。
-
对于线和面要素,距离计算中会使用要素的质心。对于多点、折线或由多部分组成的面,将会使用所有要素部分的加权平均中心来计算质心。点要素的加权项是 1,线要素的加权项是长度,而面要素的加权项是面积。
-
地图图层可用于定义输入要素类。在使用带有选择内容的图层时,分析只会包括所选的要素。
语法
arcpy.stats.DirectionalDistribution(Input_Feature_Class, Output_Ellipse_Feature_Class, Ellipse_Size, {Weight_Field}, {Case_Field})
参数 | 说明 | 数据类型 |
Input_Feature_Class |
要计算标准差椭圆的要素分布所在的要素类。 | Feature Layer |
Output_Ellipse_Feature_Class | 包含输出椭圆要素的面要素类。 | Feature Class |
Ellipse_Size | 标准差中输出椭圆的大小。默认椭圆大小为 1;可供选择的选项为 1、2 或 3 标准差。
| String |
Weight_Field (可选) | 根据各位置的相对重要性对它们进行加权的数值型字段。 | Field |
Case_Field (可选) | 对要素进行分组以分别计算方向分布的字段。案例分组字段可以为整型、日期型或字符串型。 | Field |
代码示例
DirectionalDistribution 示例(Python 窗口)
下面的 Python 窗口脚本演示了如何使用 DirectionalDistribution 工具。
import arcpy
arcpy.env.workspace = r"C:\data"
arcpy.DirectionalDistribution_stats("AutoTheft.shp", "auto_theft_SE.shp", "1_STANDARD_DEVIATION", "#", "#")
DirectionalDistribution 示例(独立 Python 脚本)
下面的独立 Python 脚本演示了如何使用 DirectionalDistribution 工具。
# Measure the geographic distribution of auto thefts
# Import system modules
import arcpy
# Local variables...
workspace = "C:/data"
locations = "AutoTheft.shp"
links = "AutoTheft_links.shp"
standardDistance = "auto_theft_SD.shp"
stardardEllipse = "auto_theft_SE.shp"
linearDirectMean = "auto_theft_LDM.shp"
try:
# Set the workspace (to avoid having to type in the full path to the data every time)
arcpy.env.workspace = workspace
# Process: Standard Distance of auto theft locations...
arcpy.StandardDistance_stats(locations, standardDistance, "1_STANDARD_DEVIATION", "#", "#")
# Process: Directional Distribution (Standard Deviational Ellipse) of auto theft locations...
arcpy.DirectionalDistribution_stats(locations, standardEllipse, "1_STANDARD_DEVIATION", "#", "#")
# Process: Linear Directional Mean of auto thefts...
arcpy.DirectionalMean_stats(links, linearDirectMean, "DIRECTION", "#")
except:
# If an error occurred while running a tool, print the messages
print(arcpy.GetMessages())
环境
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是