
记录一下课上演示的一个遥感云计算+机器学习土地覆被解译的例子。
数据获取
使用AI EARTH下载Landsat9影像数据,自己随意指定一个研究区即可。
- AI EARTH:https://engine-aiearth.aliyun.com/#/portal/open-data
检索数据,图形化界面,裁剪很简单R语言机器学习土地覆被解译
前面给大家分享过一个实例,R语言机器学习土地覆被分类实例,不过推文里面由于倏忽,少粘了点代码,完整代码请看原文:
- https://mlr-org.com/gallery/technical/2023-02-27-land-cover-classification/
QGIS制作样本点
使用QGIS建一个GeoPackage,然后点样本点,详细操作看B站视频,不赘述
R语言机器学习土地覆被解译代码
简单说一下需要注意的点:
- 机器学习的样本数据,类型必须使用因子型factor
不理解没关系,看视频
视频二维码贴在这,欢迎关注我的B站,下面是视频号中的讲解,欢迎关注视频号代码直接全部放上来:
library(mlr3verse)
library(mlr3spatial)
library(terra, exclude = "resample")
library(sf)
library(tidyverse)
library(tidyterra)
Kunming_raster = rast("./Raster/KunmingLandsat9.tif")
Kunming_raster
plot(Kunming_raster)
Kunming_vector = read_sf("./Raster/ROI.gpkg", query = 'SELECT * FROM Kunming_vector2') %>%
mutate(land_cover = as.factor(land_cover))
Kunming_vector
plot(Kunming_vector)
#提取栅格像元值
km_vect = terra::extract(Kunming_raster, Kunming_vector)
km_vect
Kunming_vector = cbind(Kunming_vector, km_vect)
Kunming_vector = Kunming_vector %>%
dplyr::select(-ID)
Kunming_vector
ggplot() +
geom_spatraster_rgb(data = Kunming_raster, r = 4, g = 3, b = 2, max_col_value = 20000) +
geom_spatvector(data = Kunming_vector, aes(color = land_cover)) +
scale_color_viridis_d(name = "Land cover", labels = c("Forest", "Farm", "Buildings", "Water")) +
theme_minimal()
task = as_task_classif_st(Kunming_vector, target = "land_cover")
task
learner = lrn("classif.rpart")
learner$train(task)
# predict land cover map
land_cover = predict_spatial(Kunming_raster, learner)
land_cover
plot(land_cover)
遥感影像和样本点预览图
机器学习介意结果
常见问题
创建任务报错
创建分类任务的时候可能报错,如下图 task = as_task_classif_st(Kunming_vector, target = "land_cover") 错误于.__TaskClassifST__coordinate_names(self = self, private = private, : Assertion on 'rhs' failed: Must have length 2, but has length 3.
报错这是因为导入的点有高程信息,机器学习解译所需的点位不能有高程信息,只能有x,y坐标。
必须是POINT,不能是POINTZ由于初始文件是使用两步路获取的照片点位,因此存储了高程Z信息,在进行R语言机器学习解译时,需要从QGIS中把点位中的Z去除,导出Points类型的矢量,并且把Z高程信息去掉。
几何类型必须指定为Point,Include z-dimension必须去掉转载自走天涯徐小洋地理数据科学
文章仅代表作者观点,与本公众号无关,版权归原作者所有
原文标题:【更新报错解决方案】AI EARTH获取Landsat影像QGIS制作解译样点R语言机器学习土地覆被分类
图文编辑:何韵依 王松海
审编:王玉瑶 郭书阳
终审:初明若 李雨竹 代浩宇 毕丝淇