python遥感影像分类_python实现随机森林遥感图像分类
时间: 2023-07-08 22:36:46 浏览: 231
基于深度学习实现遥感图像(海滩, 灌木丛, 沙漠, 森林, 草地)分类识别python源码+使用说明(准确率0.991).zip
好的,关于遥感影像分类,我可以为你提供一些实现随机森林遥感图像分类的Python代码。下面是一个简单的例子,希望能够帮到你。
```python
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split
from osgeo import gdal
import numpy as np
# 读取遥感影像数据
ds = gdal.Open('image.tif')
cols = ds.RasterXSize
rows = ds.RasterYSize
bands = ds.RasterCount
# 读取每个像素的值
data = []
for band in range(1, bands+1):
band_data = ds.GetRasterBand(band).ReadAsArray(0, 0, cols, rows).astype(float)
data.append(band_data.flatten())
data = np.array(data).transpose()
# 读取分类标签
label_ds = gdal.Open('label.tif')
label_data = label_ds.GetRasterBand(1).ReadAsArray(0, 0, cols, rows).flatten()
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(data, label_data, test_size=0.3, random_state=42)
# 训练随机森林模型
clf = RandomForestClassifier(n_estimators=100, max_depth=10, random_state=42)
clf.fit(X_train, y_train)
# 预测分类结果
y_pred = clf.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)
```
这段代码中,我们使用了`sklearn`库中的`RandomForestClassifier`来实现随机森林分类器,使用`gdal`库读取遥感影像数据和分类标签。代码中的`n_estimators`和`max_depth`参数可以根据具体的数据集进行调整,以获得更好的分类效果。
阅读全文