干货|如何利用ArcGIS提取天地图建筑轮廓

干货|如何利用ArcGIS提取天地图建筑轮廓

天地图是测绘地地理信息行政主管部门主导建设的国家地理信息公共服务平台,由主节点、省级节点和市级节点构成。节点地图主要包括矢量电子地图、矢量地图注记、影像电子地图和影像地图注记,其中矢量电子地图内容最为丰富,比如建筑轮廓数据就比百度高德等商用地图丰富很多。但天地图的建筑轮廓数据为图片格式,而在某些工程项目GIS系统中使用时,一般需要的是矢量数据格式,那有没有办法将建筑轮廓提取为矢量数据呢?

经过分析研究并充分测试之后,小编发现可以先用万能地图下载器下载天地图建筑轮廓图片,然后再用ArcGIS对建筑轮廓进行分析提取,以下就是提取矢量建筑轮廓的具体方法。

一、 下载天地图电子地图
打开水经注万能地图下载器,下载“天地图 WGS84 坐标系”电子地图,注意在新建任务对话框内地图类型选择“仅下载影像”,下载级别选择19级,其余按照默认设置即可。
在这里插入图片描述

二.、提取单波段
1.将下载的天地图电子地图加载到ArcGIS内,点击菜单栏上的“窗口”→“影像分析”;
点击“影像分析”

2.在显示的“影像分析”对话框内选择上需要提取单波段的图片,点击“添加函数”;
添加函数

3.在“函数模板编辑器”对话框内,在需要处理的图片上点击右键→“插入”,选择“波段提取函数”;
选择波段提取函数
4.在“栅格函数属性”对话框内,“波段”选择2,“组合”选择2;
设置栅格函数属性
5.点击两次“确定”后可以看到处理后的效果图;
提取后的效果
三、 影像重分类
1.在ArcToolbox内点击Spatial Analyst工具点击“重分类”→“重分类”。
选择重分类
2.点击“确定”后可以看到重分类的结果。
重分类结果
四、 再次重分类
同样在ArcToolbox内点击Spatial Analyst工具点击“重分类”→“重分类”,在“重分类”对话框内“输入栅格”选择之前重分类过后的图片,将旧值“3”的新值设置为“1”,这样分类后就只有两类。
再次重分类
点击确定后可以看到再次重分类后的效果。
再次重分类结果
五.、新建线面图层
在目录下选择预先准备好的文件夹,点击右键,选择“新建”→“Shapefile”,新建一个Shapefile文件。
新建Shapefile
在显示的“新建Shapefile”对话框内“名称”命名为“折线”,“要素类型”选择“折线”,点击“编辑”,设置坐标系为“WGS 1984”。
新建线文件
采取同样的方法新建面文件

六.、创建矢量
在左侧新建的线图层上点击右键,选择“编辑要素”→“开始编辑”,将线图层变为编辑状态。
打开编辑
在菜单栏上点击“自定义”→“工具条”,勾选上ArcScan,显示出来ArcScan工具条。
打开Arcscan工具条
在ArcScan工具条上点击“矢量化”,选择“矢量化设置”。
选择矢量化设置
在显示的“矢量化设置”对话框内点击“样式”,选择样式“轮廓”。
设置样式
应用并关闭对话框后在ArcScan工具条上点击“矢量化”,选择“生成要素”。
生成要素
生成要素设置
点击“确定”后会创建矢量,创建后可以看到生成的建筑轮廓。
生成的建筑轮廓
点击编辑器工具条上的“编辑器”→“保存编辑内容”,再点击“停止编辑”完成数据的保存和退出编辑状态。
保存编辑内容
七、 效果查看
生成的建筑轮廓保存在之前新建的名为“面”的文件内,可以通过加载矢量的方式将其加载到万能地图下载器内,可以看到完美的叠加。
将结果叠加到水经注
八、结语
以上就是利用ArcGIS提取天地图建筑轮廓的详细说明,主要包括了地图下载、波段提取、影像重分类和创建矢量等功能。yysy 水经注还挺好用,钱不白花

### 使用 UNet++ 模型从遥感图像中提取建筑轮廓 #### 加载和预处理图像 对于遥感影像的加载与预处理,确保输入数据适合于后续的建筑提取操作。这涉及到了解图像的基本属性以及应用必要的转换来优化模型的表现。 ```python import cv2 import numpy as np # 读取遥感影像 image = cv2.imread('path_to_your_satellite_image.jpg') # 将其转化为灰度图以简化计算复杂度 gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)[^1] # 利用高斯滤波去除可能存在的噪声干扰 blurred = cv2.GaussianBlur(gray, (5, 5), 0) ``` #### 构建 UNet++ 模型架构 UNet++ 是一种改进版的 U 形编码-解码网络结构,在传统 UNet 的基础上增加了密集跳跃连接(dense skip connections),从而增强了特征传播路径,提高了梯度流动效率,并促进了更深层次的信息交流。这种设计特别有利于解决医学成像等领域内的细粒度分割任务,同样适用于精确识别建筑物边界的情况。 ```python from keras.models import Model from keras.layers import Input, Conv2D, MaxPooling2D, UpSampling2D, concatenate def unet_plusplus(input_size=(None, None, 1)): inputs = Input(input_size) # Encoder path with dense skips conv1_1 = Conv2D(32, 3, activation='relu', padding='same')(inputs) pool1 = MaxPooling2D(pool_size=(2, 2))(conv1_1) conv2_1 = Conv2D(64, 3, activation='relu', padding='same')(pool1) up1_2 = UpSampling2D(size=(2, 2))(conv2_1) merge1_2 = concatenate([conv1_1, up1_2], axis=3) conv1_2 = Conv2D(32, 3, activation='relu', padding='same')(merge1_2) # Decoder path continues similarly... outputs = Conv2D(1, 1, activation='sigmoid')(final_merge_layer) model = Model(inputs=[inputs], outputs=[outputs]) return model ``` 请注意上述代码片段仅展示了部分核心组件;完整的实现还需要定义整个编码器-解码器链路及其间的额外跳过链接[^3]。 #### 数据集准备与训练配置 为了使模型能够有效地学习到区分背景和其他物体的能力,尤其是针对特定目标——即本案例中的建筑物,应当收集足够的标注样本作为监督信号的一部分来进行迭代更新权重参数的过程。此外,还需考虑采用适当的数据增强策略增加泛化能力,比如旋转、翻转等几何变换手段。 #### 预测阶段及后处理 完成训练之后,利用已学得的知识对新来的测试图片做出推断: ```python model.predict(blurred.reshape((1,) + blurred.shape)) ``` 得到的结果是一个概率分布映射,其中每个像素位置对应着属于前景类别的可能性大小。通常情况下会设定阈值将连续值离散化为二元标签形式,进而形成最终所需的矢量化多边形表示法描述各个独立个体的位置范围[^2]。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿拉雷-尼古拉斯-杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值