项目简介
本项目名为UrbanBoundary_Detector,是一款基于C++实现的城市边界识别系统。它借助栅格数据,通过一系列算法对城市边界进行识别,最终输出城市边界的矢量(shp)和栅格(tif)数据。
项目的主要特性和功能
- 利用邻域扩展法精准识别城市实体。
- 通过在边界处使用不同半径的滑动模板进行缓冲区分析,统计半径和融合实体个数。
- 对采样结果进行三次Hermit插值,确保对数点间隔相等。
- 用1 - 13次多项式拟合采样点,计算最大曲率和贝叶斯信息准则(BIC值)。
- 依据最大BIC对应的最大曲度确定临界半径,得到urban cluster。
- 绘制urban cluster的等级规模分布图。
- 采用层次聚类分析对等级规模分布做二分聚类,区分城市和农村区域。
- 提取城市聚类的边界,作为城市边界,并可输出城市范围的tif和shp文件。
安装使用步骤
安装
假设你已下载本项目的源码文件,需确保系统中安装有C++编译器。
编译
打开命令行工具,切换到项目源码所在目录,使用编译器进行编译。例如使用g++编译:g++ -o UrbanBoundary_Detector main.cpp
。
输入数据准备
准备包含城市(urban)分类的栅格图,像素值为整数。注意栅格图不宜过大,像素分辨率在30m - 1000m,tif的像素总数控制在10^9以内,避免程序内存占用过大。
运行
编译成功后,在命令行中运行生成的可执行文件:./UrbanBoundary_Detector
,并按照提示输入准备好的栅格图文件路径。
输出结果
程序运行结束后,会在指定位置生成城市边界的矢量(shp)和栅格(tif)数据文件。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】