其他
rgee土地覆被变化检测——2001~2019中国土地覆被变化
rgee土地覆被变化检测——2001~2019中国土地覆被变化
本文的目的是获取两期MCD12Q1土地覆被不变的区域。以中国区域为例,想看看2001年到2019年那些地区土地覆被没有变化,那么就需要先获取2001和2019两年的土地覆被,然后再找到它们不变的区域。
rgee获取MCD12Q1土地覆被
启动rgee 使用 sf
定义影像裁剪区域筛选、融合、裁剪影像 预览
library(rgee)
library(sf)
ee_Initialize(drive = T)
# Define a region of interest with sf
ee_roi <- read_sf("./SHP/ChinaSizhi.SHP") %>%
sf_as_ee()
china_lucc = ee$ImageCollection("MODIS/006/MCD12Q1")$select('LC_Type1')$
filterBounds(ee_roi)$
filterDate('2001-01-01', '2001-12-31')
china_lucc1 = china_lucc$mosaic()$clip(ee_roi)
igbpLandCoverVis = list(
min = 1.0,
max = 17.0,
palette= c('05450a', '086a10', '54a708', '78d203', '009900', 'c6b044', 'dcd159',
'dade48', 'fbff13', 'b6ff05', '27ff87', 'c24f44', 'a5a5a5', 'ff6d4c',
'69fff8', 'f9ffa4', '1c0dff')
)
Map$addLayer(china_lucc1, igbpLandCoverVis, 'chinalucc')+
Map$addLayer(ee_roi, visParams = list(palette = "red"), "roi")
Map$centerObject(ee_roi)
igbp_lucc <- ee_as_raster(
image = china_lucc1,
region = ee_roi$geometry(),
scale = 500,
dsn = './LUCC/ChinaLC01.tif',
via = "drive"
)
变化检测
ee$Image$eq()
判断两期影像是否一致,相同的区域输出1,不同的区域记为0在这里我将红色区域设为变化区域,蓝色为不变区域 updateMask()
设置掩膜,eq()
选取特定值china_lucc1$updateMask(china_lucc_equal$eq(1))
将值为1的区域设置掩膜掩膜提取土地覆被不发生改变的区域
#判断影像是否相同
china_lucc_equal = china_lucc1$eq(china_lucc19) #ee$Image$eq 相同的返回1
Map$addLayer(china_lucc_equal, visParams = list(min=0, max=1,palette = c("red", "blue"))) #蓝色为不变区域
#将相同的地方设为掩膜,提取不变区域
china_lucc_0119 = china_lucc1$updateMask(china_lucc_equal$eq(1))
Map$addLayer(china_lucc_0119, igbpLandCoverVis, 'chinalucc')+
Map$addLayer(china_lucc_equal, visParams = list(min=0, max=1,palette = c("red", "blue")))
igbp_lucc_eq <- ee_as_raster(
image = china_lucc_equal,
region = ee_roi$geometry(),
scale = 500,
dsn = './LUCC/china_lucc_equal.tif'
)
igbp_lucc0119 <- ee_as_raster(
image = china_lucc_0119,
region = ee_roi$geometry(),
scale = 500,
dsn = './LUCC/china_lucc_0119.tif'
)