聚类或无监督分类是根据统计相似性将图像的像素值分组或聚合到一定数量的自然类(组)的过程。在本教程中,我们将使用rasterio进行sentinel-2图像处理,并使用功能强大的完整scikit-learn python 包在jupyter Notebook中进行聚类。
Scikit-learn是一个用于 Python 编程语言的免费软件机器学习库,其中包含各种分类、回归和聚类算法。要安装此软件包:
conda install -c anaconda scikit-learn
Rasterio是一个开源 Python 库,可以读取和写入栅格数据集,例如 GEOTIFF 和 JP2 等不同格式的卫星图像和地形模型。
conda install -c conda-forge rasterio
算法: Scikit-learn有不同的聚类算法,这些算法可以直接im从集群子库移植。K-均值是最常用的算法之一聚类中的thms因其简单性而被采用。它基本上将 n 个观测值(在我们的例子中为像素值)划分为 k 个簇(用户预定义的类数),其中每个观测值属于具有最接近平均值的簇。本教程将基于 K 均值,但您可以轻松切换以尝试其余部分,代码几乎保持不变,但您只需要更改算法。
苏丹杰济拉州 El-hasaheesa 和 Elmanagel 地区的 Sentinel-2 图像将在本教程中分别用于训练和预测。这些数据和本教程的完整代码可以在 github 上找到