标注 | 说明 | 数据类型 |
输入要素 | 将用于生成变形地图的输入面要素。 | Feature Layer |
字段名 | 包含用于确定输出变形地图中面要素面积的值的数值字段。 任何具有负值或 0 值的要素都将在输出中忽略。 | Field |
输出要素类 | 应用了变形地图变换的输出面。 | Feature Layer |
方法 (可选) | 指定将用于变换输入和创建变形地图的方法。
| String |
摘要
根据数值字段将多个面的面积扭曲为彼此成正比以生成变形地图,同时保留共享边界。
插图

使用情况
输出将是一个新的面要素图层,其中的面已完成转换,从而使每个要素的面积都能与某数值字段与输入中所有要素的该字段的总和比较之后得出的值成正比。
输入图层的属性数据将传输到输出。 当输入为符号化图层时,将传输符号系统和标注。
方法参数具有以下选项:
- 基于流 - 此选项是扩散方法的进化版本,且通常速度更快。 相比之下,输出面的形状可能有所不同或包含的畸变略多。 这是默认设置。
- 扩散 - 与基于流选项相比,此选项可能对原始形状造成的畸变略少,但完成时间较长。
要减少处理时间,可在运行此工具之前对输入要素运行简化面工具。 如果某些输出面被扭曲得明显更大,这可能会导致它们看起来过于简化。
输入数据或显示数据的活动地图应使用适合该区域的等积投影。 这样,输入面的可见区域将能够更准确地表示修改之前的实际区域。 如果没有活动地图并且数据使用非等积投影,则请使用制图坐标系环境。 在相同的等积投影中显示结果,以便准确地描绘校正后的要素区域。
字段名称参数值中的字段值应为正数。 输出中将不存在任何具有负值或 0 值的要素。
其他资源:
Gastner, Michael T. and M. E. J. Newman. 2004. "Diffusion-based method for producing density-equalizing maps." Proceedings of the National Academy of Sciences of the United States of America, 101(20): 7499–7504.
Gastner, Michael T., Vivien Seguy, and Pratyush More. 2018. "Fast flow-based algorithm for creating density-equalizing map projections." Proceedings of the National Academy of Sciences of the United States of America, 115(10): E2156-E2164.
参数
arcpy.cartography.GenerateContiguousCartogram(in_features, field_name, out_features, {method})
名称 | 说明 | 数据类型 |
in_features | 将用于生成变形地图的输入面要素。 | Feature Layer |
field_name | 包含用于确定输出变形地图中面要素面积的值的数值字段。 任何具有负值或 0 值的要素都将在输出中忽略。 | Field |
out_features | 应用了变形地图变换的输出面。 | Feature Layer |
method (可选) | 指定将用于变换输入和创建变形地图的方法。
| String |
代码示例
以下 Python 窗口脚本演示了如何在即时模式下使用 GenerateContiguousCartogram 函数。
import arcpy
arcpy.env.workspace = "C:/data/admin.gdb"
arcpy.cartography.GenerateContiguousCartogram(
"countries",
"population",
"countries_cartogram_population",
"FLOW-BASED")
以下独立脚本演示了如何使用 GenerateContiguousCartogram 函数。
# Name: GenerateContiguousCartogram_sample2.py
# Description: Output a contiguous cartogram of country polyons
# based on popuplation.
# Import System Modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data/admin.gdb"
# Set Local Variables
in_features = "countries"
value_field = "population"
out_cartogram = "countries_cartogram_population"
algorithm = "DIFFUSION"
# Execute Generate Contiguous Cartogram
arcpy.cartography.GenerateContiguousCartogram(
in_features,
value_field,
out_cartogram,
algorithm)