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

如何将行政区多边形与市县空间关联并生成CSV表格?

解决District与城市/County空间匹配的高效方案

一、先搞懂Find Overlaps工具的输出怎么用

Find Overlaps的输出会包含重叠双方的ID、重叠类型、重叠面积这些核心字段,直接基于它就能推进:

  • 保留district_id、city_name、county_name、overlap_area这类你需要的字段
  • 若只需定性关联(比如包含/部分重叠),直接用overlap_type筛选;若要找每个District最主要关联的城市/County,先按district_id+overlap_area降序排序,再用Delete Identical工具保留每个District的第一条记录

二、ArcGIS内优化空间连接的方法

你之前得到1346条记录是因为一对多关联(一个District跨多个城市/County),可以通过以下步骤简化:

  1. 设置精准匹配规则:在Spatial Join工具的Match Option里选Largest Overlap,这样每个District只会生成一条记录,直接得到一对一的核心关联结果
  2. 分层减少计算量:先把城市数据按county_name做Dissolve合并成County级多边形,先完成District与County的空间连接,再关联回城市数据,避免直接处理大量城市多边形
  3. 直接在工具内清理字段:用Field Calculator保留需要的列,再导出CSV,不用到Excel里手动整理

三、用Python GeoPandas直接处理(更灵活可控)

如果熟悉Python,这个方法比GUI操作更高效,步骤如下:

  1. 读取两个Shapefile:
import geopandas as gpd

# 读取District和城市/County数据
districts = gpd.read_file("districts.shp")
cities = gpd.read_file("cities_counties.shp")
  1. 执行空间匹配(按需选择规则):
# 方案1:找每个District最近的城市/County(无重叠时适用)
joined = gpd.sjoin_nearest(districts, cities, how="left", max_distance=0)

# 方案2:找每个District重叠面积最大的城市/County
overlaps = gpd.overlay(districts, cities, how="intersection")
overlaps["overlap_area"] = overlaps.geometry.area
max_overlaps = overlaps.sort_values("overlap_area", ascending=False).drop_duplicates("district_id")
  1. 导出指定字段到CSV:
# 按需选择要导出的列
max_overlaps[["district_id", "district_name", "city_name", "county_name", "overlap_area"]].to_csv("district_mapping.csv", index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 07:57:22