littlebot
Published on 2025-04-11 / 0 Visits
0

【源码】基于C++的城市边界识别系统

项目简介

本项目名为UrbanBoundary_Detector,是一款基于C++实现的城市边界识别系统。它借助栅格数据,通过一系列算法对城市边界进行识别,最终输出城市边界的矢量(shp)和栅格(tif)数据。

项目的主要特性和功能

  1. 利用邻域扩展法精准识别城市实体。
  2. 通过在边界处使用不同半径的滑动模板进行缓冲区分析,统计半径和融合实体个数。
  3. 对采样结果进行三次Hermit插值,确保对数点间隔相等。
  4. 用1 - 13次多项式拟合采样点,计算最大曲率和贝叶斯信息准则(BIC值)。
  5. 依据最大BIC对应的最大曲度确定临界半径,得到urban cluster。
  6. 绘制urban cluster的等级规模分布图。
  7. 采用层次聚类分析对等级规模分布做二分聚类,区分城市和农村区域。
  8. 提取城市聚类的边界,作为城市边界,并可输出城市范围的tif和shp文件。

安装使用步骤

安装

假设你已下载本项目的源码文件,需确保系统中安装有C++编译器。

编译

打开命令行工具,切换到项目源码所在目录,使用编译器进行编译。例如使用g++编译:g++ -o UrbanBoundary_Detector main.cpp

输入数据准备

准备包含城市(urban)分类的栅格图,像素值为整数。注意栅格图不宜过大,像素分辨率在30m - 1000m,tif的像素总数控制在10^9以内,避免程序内存占用过大。

运行

编译成功后,在命令行中运行生成的可执行文件:./UrbanBoundary_Detector,并按照提示输入准备好的栅格图文件路径。

输出结果

程序运行结束后,会在指定位置生成城市边界的矢量(shp)和栅格(tif)数据文件。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】