You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何制作计数型Choropleth地图?解决WMUNIT_CODE多多边形合并问题

解决方案:计数型Choropleth地图制作与数据合并

1. 预处理Excel数据:统计每个WMUNIT_CODE的实例数

先对xlsx中的原始数据按WMUNIT_CODE分组计数,避免重复记录导致合并冲突。以下是两种工具的实现方式:

Python pandas实现

import pandas as pd

# 读取Excel数据
df = pd.read_excel("your_data.xlsx")

# 先按筛选条件过滤数据(时间范围、物种、检测方法)
filtered_df = df[
    (df["date"] >= "2020-01-01") &
    (df["date"] <= "2023-12-31") &
    (df["species"] == "目标物种") &
    (df["detection_method"] == "相机陷阱")
]

# 分组统计每个WMUNIT_CODE的实例数
count_df = filtered_df.groupby("WMUNIT_CODE").size().reset_index(name="instance_count")

ArcGIS工具实现

使用汇总统计数据工具:

  • 输入表选你的xlsx数据
  • 分组字段选WMUNIT_CODE
  • 统计类型选计数,输出包含WMUNIT_CODE和计数字段的汇总表

2. 处理地理数据库中多多边形对应同一WMUNIT_CODE的情况

针对同一代码对应多个多边形的问题,有两种可选方案:

方案A:合并同代码的多边形为单个要素(简化图层)

如果不需要保留单个多边形的细节,可将同一WMUNIT_CODE的多边形合并:

  • ArcGIS中用融合工具:输入WMUNIT图层,融合字段选WMUNIT_CODE,输出新图层(每个代码对应一个合并后的多边形)
  • GeoPandas中用dissolve方法:
import geopandas as gpd

# 读取地理数据库中的WMUNIT图层
gdf = gpd.read_file("your_geodatabase.gdb", layer="WMUNIT_layer")

# 按WMUNIT_CODE融合多边形
merged_gdf = gdf.dissolve(by="WMUNIT_CODE", as_index=False)

方案B:保留多多边形,直接关联统计计数

如果需要保留原始多边形,直接通过WMUNIT_CODE将统计数据连接到原图层:

  • ArcGIS中用连接字段工具:输入WMUNIT图层,连接字段选WMUNIT_CODE,连接表选预处理后的计数表,匹配字段保持一致
  • GeoPandas中用merge方法:
# 合并地理数据与统计数据
final_gdf = gdf.merge(count_df, on="WMUNIT_CODE", how="left")
# 为无实例的管理单元填充0值
final_gdf["instance_count"] = final_gdf["instance_count"].fillna(0)

3. 制作Choropleth地图与动态筛选

  • Python可视化:基于final_gdf,用GeoPandas+Matplotlib或Plotly将instance_count作为颜色映射字段绘制地图。动态筛选只需重新执行「过滤-计数-合并」流程后更新地图即可。
  • ArcGIS Pro:将合并后的图层添加到地图,设置符号系统为分级色彩,基于instance_count字段。通过图层属性-定义查询设置时间、物种、检测方法的筛选条件,或用参数化查询实现交互式筛选。

关键注意事项

  • 确保Excel和地理数据库中的WMUNIT_CODE格式完全一致(如字符串/数字类型、大小写、无多余空格),避免匹配失败。
  • 处理无实例的管理单元时,必须填充0值,防止地图出现缺失区域。
  • 使用ArcGIS工具时,输出路径避免中文或特殊字符,防止报错。

内容的提问来源于stack exchange,提问作者Flavia Rasmussen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 00:11:07