✅ 博主简介:擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。
✅ 具体问题可以私信或扫描文章底部二维码。
(1) 多尺度影像分割与分层体系设计
在本研究中,基于遂宁市安居区的聚落信息提取,首先对影像分割技术进行了深入研究。遥感影像的有效分割是信息提取的重要前提。利用eCognition软件对GF-1和Sentinel-2的遥感影像进行分割,以便将聚落、植被、道路等地物的边界更好地分离出来。为了达到更高的分割精度,本研究选择了多尺度分割的方法,该方法可以通过合理调整参数使不同大小和类型的地物得到适合的分割尺度。尤其是对于结构复杂的聚落区域,单一尺度难以达到满意的结果,多尺度分割可以更精细地表现地物的异质性。
针对GF-1影像和Sentinel-2影像的不同特点,本文应用ESP尺度评价方法确定每种影像的最佳分割参数。ESP尺度评价方法是一种有效的工具,可以通过多次实验自动评估影像分割的质量,最终选择最合适的分割尺度。在此基础上,GF-1影像由于其较高的空间分辨率,适合采用较小的分割尺度,从而细化地物边界,而Sentinel-2影像由于分辨率相对较低,更适合采用较大尺度的分割,以保证地物特征的完整性。通过对最优分割参数的精确选择,最终实现了对两种影像的分层分割体系设计,使得分割结果既满足聚落信息提取的需求,又兼顾了计算效率。
(2) 地物特征知识库的建立与分类体系构建
在完成影像的多尺度分割后,本文针对安居区内不同地物的光谱特征、光谱衍生特征、形状特征以及纹理特征进行了深入分析,并据此建立了地物特征知识库。光谱特征是遥感影像分类中最基础的信息来源,但光谱信息在复杂地物分类中的区分能力有限,因此还需结合光谱衍生特征(如植被指数、土壤调节指数等),以增强分类的可区分性。此外,形状特征(如长宽比、形状规则性)和纹理特征(如熵值、均值)在识别不同类型聚落和其他地物时具有重要作用。例如,聚落区域通常表现为不规则多边形,其形状和纹理与农田、植被等显著不同。
在知识库的基础上,分别构建了GF-1和Sentinel-2影像的分类提取体系。通过对影像进行面向对象的分割和分类,结合聚落、道路、耕地等主要地物的特征,逐步完善分类规则。该体系被应用于整个安居区的同源影像中,验证了其分类提取的可靠性和可行性。在地物的识别过程中,GF-1影像由于其较高的空间分辨率,能够有效区分聚落内部的建筑结构与道路,而Sentinel-2影像则更适合于进行全区域的地物覆盖研究,尤其是大尺度下的聚落分布和扩展情况的分析。
(3) 分类提取方法的对比与优选
为了选择最佳的聚落信息提取方法,本文对比了面向对象的分类提取方法、面向样本的分类提取方法以及CART分类器的方法。面向对象的分类方法通过对影像进行多尺度分割和对象化处理,能够在提取过程中考虑地物的光谱、形状和纹理等多种特征,因此对于结构复杂的地物,如聚落、道路等,表现出了较高的分类精度。而面向样本的分类方法依赖于大量的样本数据,虽然在理论上能够达到较高的精度,但在安居区的复杂地貌中,对采样点的依赖程度较高,容易受到地形复杂性的干扰,导致分类结果不稳定。
CART分类器(分类回归树)方法作为一种经典的机器学习算法,在本研究中被用于对地物的光谱特征进行分类。尽管CART分类器在特征维度的使用上有一定优势,但由于其忽略了地物之间的空间关系,对于聚落这样的复杂地物,无法有效区分建筑、道路和绿化等子区域,从而影响分类的完整性。经过对比实验分析,面向对象的分类方法表现出最佳的提取效果,能够准确区分聚落区域与其他地物。因此,最终选择面向对象的分类方法对安居区聚落信息进行提取。
(4) 分类精度评价与聚落空间分布特征分析
为了评估分类结果的可靠性,本文对GF-1和Sentinel-2影像的分类提取结果进行了精度评价。通过对提取的地物类别与实际地物进行对比,GF-1影像的地物提取精度为91.28%,而Sentinel-2影像的地物提取精度为85.40%。这一结果表明,GF-1影像在细节识别上具有更好的效果,更适合于聚落内部建筑、道路等小尺度地物的识别和分析,而Sentinel-2影像则适合于宏观尺度的聚落空间分布与扩展研究。尤其是成本方面,Sentinel-2影像获取相对较为经济,在进行大范围、多时相的聚落动态变化分析中具有优势。
结合数字高程模型(DEM)数据,本文进一步分析了安居区聚落的空间分布特征。研究发现,安居区内的聚落主要集中在高程258m-392m之间,这一区域的聚落面积占整个安居区聚落总面积的97.39%,并且这些区域的聚落密度相对较高。此外,安居区的聚落主要分布在坡度2°–15°的范围内,这一坡度范围的聚落面积占安居区聚落总面积的85.54%,说明较为平坦的地形有利于聚落的发展。值得注意的是,部分聚落分布在坡度较陡和高程较高的区域,存在一定的地质安全隐患,需在城镇化过程中加以重视和优化,以保障聚落居民的生活安全。
import gdal
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
# 打开影像文件
dataset = gdal.Open('suaning_GF1_image.tif')
band = dataset.GetRasterBand(1)
image_data = band.ReadAsArray()
# 读取地物特征数据,假设数据已预处理
features = np.load('features.npy') # 光谱、纹理、形状等特征
labels = np.load('labels.npy') # 地物类别标签
# 将数据划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(features, labels, test_size=0.3, random_state=42)
# 使用随机森林分类器进行地物分类
rf_classifier = RandomForestClassifier(n_estimators=100, random_state=42)
rf_classifier.fit(X_train, y_train)
# 对测试集进行预测
y_pred = rf_classifier.predict(X_test)
# 输出分类结果的报告
print(classification_report(y_test, y_pred))
# 将分类结果保存为GeoTIFF文件
output_driver = gdal.GetDriverByName('GTiff')
output_dataset = output_driver.Create('classified_result.tif', dataset.RasterXSize, dataset.RasterYSize, 1, gdal.GDT_Byte)
output_band = output_dataset.GetRasterBand(1)
output_band.WriteArray(y_pred.reshape(dataset.RasterYSize, dataset.RasterXSize))
# 清理资源
output_band.FlushCache()
dataset = None
output_dataset = None