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

arcgis如何将一部分shp地图截取下来并处理成networkx格式

一、准备工作

—你需要有:

  • 一个要被裁剪的 目标图层(比如全国行政区划 shp)
  • 一个用来定义裁剪范围的 边界图层(比如某个省、市、或矩形区域)

二、操作步骤(以 ArcGIS Pro 为例)

方法一:使用“Clip(裁剪)”工具

  1. 打开 ArcGIS Pro / ArcMap

  2. 在菜单栏选择:
    Analysis → Tools → 搜索 “Clip”

  3. 打开工具后,设置参数:

    • Input Features(输入要素):你要裁剪的主图层(例如全国地图)
    • Clip Features(裁剪要素):用来裁剪的范围(例如某个省的边界)
    • Output Feature Class(输出要素类):输出文件路径和名称(例如 D:\clip_result.shp
  4. 点击 Run(运行)
    ✅ 执行完成后,会生成一个新的 shapefile,只包含在裁剪范围内的部分。


方法二:如果没有现成的裁剪范围

可以自己绘制:

  1. 在地图上新建一个图层(或用“Create Feature Class”创建一个简单矩形)。
  2. 在编辑模式下绘制你希望保留的范围(例如框选一个区域)。
  3. 再用这个矩形作为 Clip Features 去裁剪目标图层。

方法三:选择 + 导出

如果你只想快速提取一小部分数据(不精确裁剪):

  1. 使用 Select Features 工具在地图上选中目标区域。
  2. 右键图层 → Data → Export Features
  3. 在弹出窗口中选择“Selected features”,保存为新 shapefile。
    ✅ 这样导出的就是你选中的部分。

📁 输出结果

生成的文件(例如 clip_result.shp)将只包含被裁剪范围内的地理要素。


💡 小技巧

  • 如果你只想裁剪属性表的一部分,可先用 “Select by Attributes” 筛选后再导出。
  • 如果只是想看某一区域,而不真正创建新文件,可以使用 “Definition Query” 设置显示过滤条件。
  • 如果想裁剪栅格数据(.tif),要用 Clip Raster 工具。

取地图

import geopandas as gpd
import networkx as nx
from shapely.geometry import LineString, MultiLineString# 1️⃣ 读取 shapefile
gdf = gpd.read_file("road.shp")# 2️⃣ 创建空图
G = nx.Graph()# 3️⃣ 遍历每条道路
for idx, row in gdf.iterrows():geom = row.geometry# 如果是单条线if isinstance(geom, LineString):lines = [geom]# 如果是多条线(MultiLineString)elif isinstance(geom, MultiLineString):lines = list(geom.geoms)else:continue  # 忽略非线类型几何(如点、面)# 遍历每条线for line in lines:coords = list(line.coords)for i in range(len(coords) - 1):start = coords[i]end = coords[i + 1]length = LineString([start, end]).length# 添加边到图中G.add_edge(start, end, weight=length, **row.to_dict())print(f"✅ 网络构建完成:节点数 = {G.number_of_nodes()}, 边数 = {G.number_of_edges()}")

遍历

# 假设你已经有 G 了
source = list(G.nodes())[0]
target = list(G.nodes())[-1]path = nx.shortest_path(G, source=source, target=target, weight='weight')
print("最短路径:", path)

作图

import matplotlib.pyplot as pltpos = {node: node for node in G.nodes()}
nx.draw(G, pos, node_size=5, linewidths=0.2)
plt.show()

在这里插入图片描述
下一步是如何进行算法以及找 baseline了,

这个领域的base 不好找啊

http://www.dtcms.com/a/449142.html

相关文章:

  • .NET Aspire深度解析:重新定义云原生分布式应用开发的“秘密武器“
  • 标准件网站开发手机淘宝网页版
  • 【网络编程】揭秘 HTTPS 数据安全:加密方案与证书体系的协同防护
  • Windows Server 2022 安装教程(从 ISO 文件安装 Server STD CORE 2022 64位系统)​
  • 【STM32】墨水屏驱动开发
  • Java 大视界 -- 基于 Java 的大数据实时流处理在工业物联网设备故障预测与智能运维中的应用
  • 【MySQL】SQL的分类
  • Flutter GridView 使用指南
  • day86——有效的字母异位词(LeetCode-242)
  • 企业的网站建设费用重庆seo什么意思
  • 网站搭建介绍网站建设的原因
  • 怎么建免费网站建设公司网站新闻宣传管理制度
  • Deep Code Research:当 Deep Research 遇上 ABCoder
  • JavaEE初阶——中秋特辑:网络编程送祝福从 Socket 基础到 TCP/UDP 实战
  • 多模卫星导航定位与应用-原理与实践(RTKLib)3
  • 数字婵娟:一部关于中秋节的计算主义宣言
  • ED2K技术
  • 【数据结构】顺序表0基础知识讲解 + 实战演练
  • GPU即服务:Linux与云原生如何联手开启AI算力“自来水“时代
  • 【数据结构】算法复杂度
  • 校园网门户网站建设招聘网站如何做
  • 深度学习(十六):数据归一化处理
  • 力扣70.爬楼梯
  • 【深度学习计算机视觉】10:转置卷积
  • 电子商务网站策划素材网站 模板
  • Coze源码分析-资源库-编辑知识库-后端源码-安全/错误处理机制
  • 【无标题】标签单击事件
  • GAMES101:现代计算机图形学入门(Chapter5 光栅化1(三角形遍历))迅猛式学习笔记(附Homework 0)
  • 【Linux操作系统】进程概念
  • 【Linux】Linux进程信号(上)