当前位置: 首页 > article >正文

【ArcGIS Pro实操第10期】统计某个shp文件中不同区域内的站点数

统计某个shp文件中不同区域内的站点数

  • 方法 1:使用“空间连接 (Spatial Join)”工具
  • 方法 2:使用“点计数 (Point Count)”工具
  • 方法 3:通过“选择 (Select by Location)”统计
  • 方法 4:通过“Python 脚本 (ArcPy)”实现
  • 参考

在 ArcGIS Pro 中,如果需要统计某个shp文件中不同区域内的站点数,可以通过以下步骤实现。通常,这种任务涉及两个数据集:
1、站点数据:点状数据,例如站点坐标。
2、区域数据:多边形数据,例如行政区划、分区等。

目标是计算每个区域(多边形)中包含的站点数量。
在这里插入图片描述

方法 1:使用“空间连接 (Spatial Join)”工具

步骤如下:

1、加载数据:
打开 ArcGIS Pro 并加载两个图层:

  • 站点图层(点数据),如站点位置的 shp 文件。
  • 区域图层(多边形数据),如行政区划的 shp 文件。

2、打开“空间连接 (Spatial Join)”工具:
在“分析”选项卡中,选择“工具 (Tools)”。
搜索并打开 “Spatial Join” 工具。

3、设置参数:

  • 目标要素(Target Features):选择 区域图层(多边形数据)。
  • 连接要素(Join Features):选择 站点图层(点数据)。
  • 连接操作(Join Operation):选择 One-To-One(默认)。
  • 匹配选项(Match Option):选择 Intersects(确保统计所有位于多边形内的点)。

4、运行工具:
运行工具后,输出的多边形图层将包含一个新字段,表示每个区域内的站点数(通常是 Join_Count 字段)。

5、结果:
打开输出图层的属性表,可以在 Join_Count 字段中查看每个区域的站点数量。

方法 2:使用“点计数 (Point Count)”工具

如果仅需要统计点的数量,可以使用专门的点计数工具。

步骤如下:

1、加载数据:
打开 ArcGIS Pro 并加载两个图层:

  • 站点图层(点数据)。
  • 区域图层(多边形数据)。

2、打开“点计数 (Summarize Within)”工具:
在“分析”选项卡中,选择“工具 (Tools)”。
搜索并打开 “Summarize Within” 工具。

3、设置参数:

  • 输入多边形(Input Polygons):选择 区域图层。
  • 输入点(Input Summary Features):选择 站点图层。
  • 输出字段:选择一个字段(如站点 ID 或其他唯一标识),用作计数依据。

示例如下:
在这里插入图片描述
4、运行工具:
运行工具后,输出的多边形图层将包含一个新字段,表示每个区域内的点数量。

5、结果:
打开输出图层的属性表,可以查看每个区域的点数量。
在这里插入图片描述

方法 3:通过“选择 (Select by Location)”统计

如果不需要生成新的图层,只是想快速统计每个区域的站点数量,可以使用“选择 (Select by Location)”功能。

步骤如下:

1、加载数据:
同样加载站点图层和区域图层。

2、打开“按位置选择 (Select by Location)”工具:
在“地图”选项卡中,选择“按位置选择 (Select by Location)”工具。

3、设置参数:

  • 输入要素(Input Features):选择 站点图层。
  • 选择要素(Selecting Features):选择 区域图层。
  • 空间关系(Spatial Relationship):选择 完全包含 (Completely Within) 或 相交 (Intersects)。

4、统计结果:
在属性表中查看被选中的点的数量。
分别对每个多边形执行上述操作,记录每个区域的站点数量。

方法 4:通过“Python 脚本 (ArcPy)”实现

使用 ArcPy 脚本可以自动化此过程,更适合批量处理。

脚本示例:

以下代码统计每个多边形内的站点数,并将结果写入区域图层的属性表。

import arcpy

# 输入文件路径
point_layer = r"path_to_point_layer.shp"  # 站点图层路径
polygon_layer = r"path_to_polygon_layer.shp"  # 区域图层路径
output_layer = r"path_to_output_layer.shp"  # 输出图层路径

# 执行空间连接
arcpy.analysis.SpatialJoin(
    target_features=polygon_layer,
    join_features=point_layer,
    out_feature_class=output_layer,
    join_operation="JOIN_ONE_TO_ONE",
    match_option="INTERSECT"
)

print("空间连接完成,输出保存到:", output_layer)

运行该脚本后,output_layer 将包含一个新字段(Join_Count),表示每个区域的站点数量。

参考


http://www.kler.cn/a/412091.html

相关文章:

  • macos 14.0 Monoma 修改顶部菜单栏颜色
  • Springboot启动报错’javax.management.MBeanServer’ that could not be found.
  • Easyexcel(7-自定义样式)
  • GCP Dataproc有什么特点,有什么最佳实践
  • c++编程玩转物联网:使用芯片控制8个LED实现流水灯技术分享
  • 【面试题】2025年百度校招Java后端面试题
  • 探索Python自动化新境界:Helium库揭秘
  • 三六零[601360]行情数据接口
  • Angular面试题汇总系列一
  • 玩转 Burp Suite (1)
  • 硬菜!高精度!BO-Transformer贝叶斯优化编码器多特征分类预测/故障诊断
  • 【jupyter】linux服务器怎么使用jupyter
  • Android 网络通信(三)OkHttp实现登入
  • 【es6进阶】vue3中的数据劫持的最新实现方案的proxy的详解
  • java-使用HSSFWorkbook编辑excel文件
  • 《Hello YOLOv8从入门到精通》5,颈部网络(Neck)结构、核心源码和参数调优
  • 用 C++ 写一个 AWS Lambda Hello World
  • zabbix“专家坐诊”第265期问答
  • 【AI系统】Tensor Core 架构演进
  • CTF之密码学(密码特征分析)
  • 【SpringBoot】HttpClient
  • SSL/TLS,SSL,TLS分别是什么
  • 三、表格布局与表单交互
  • 计算机网络-GRE(通用路由封装协议)简介
  • Redis基础配置
  • springboot vue工资管理系统源码和答辩PPT论文