使用python根据遥感影像数据识别土地利用的代码
时间: 2024-05-10 08:16:50 浏览: 158
遥感影像目视解译(土地利用)
土地利用识别是遥感图像处理中的重要应用之一。这里给出一个基于Python的土地利用分类示例代码:
```python
import rasterio
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from rasterio.plot import show
# 读取影像数据
with rasterio.open('landuse.tif') as src:
image = src.read()
profile = src.profile
# 数据预处理
image = np.transpose(image, (1, 2, 0))
rows, cols, n_bands = image.shape
reshaped_image = image.reshape(rows*cols, n_bands)
# 创建分类标签
landuse = {1: '水体', 2: '草地', 3: '灌木', 4: '森林', 5: '建筑', 6: '裸地', 7: '其他'}
classes = np.array([1]*20000 + [2]*20000 + [3]*20000 + [4]*20000 + [5]*20000 + [6]*20000 + [7]*20000)
# 随机森林分类器
rf = RandomForestClassifier(n_estimators=100, random_state=0)
rf.fit(reshaped_image, classes)
# 应用分类器到整个图像
predicted = rf.predict(reshaped_image)
predicted = predicted.reshape(rows, cols)
# 保存分类结果
with rasterio.open('landuse_classified.tif', 'w', **profile) as dst:
dst.write(predicted.astype(rasterio.uint8), 1)
# 显示分类结果
show(predicted, cmap='terrain')
```
需要注意的是,这里的示例代码是基于随机森林分类器的,实际应用中可以根据具体情况选择其他分类算法。此外,还需要准备好训练数据,即已经进行了土地利用分类的遥感图像数据。
阅读全文