Google Earth Engine(GEE)使用土地利用数据(modis)上采样Landsat数据提取农田范围 |
您所在的位置:网站首页 › gee重采样Modis › Google Earth Engine(GEE)使用土地利用数据(modis)上采样Landsat数据提取农田范围 |
前言
最近因为大创项目,一直在研究GEE平台的一些操作,主要在GEE中利用海量的遥感影像,来实现关于滁州市的农作物种植结构的长时间序列分析。本篇主要利用GEE中发布的土地利用数据(modis)500m分辨率进行上采样到Landsat的30m影像中,提取农田范围,为后续农作物分类提供帮助。 1.导入研究区域首先在Assets中导入研究区域边界的shp文件,导入到代码中。 选择MCD12Q1全球土地覆盖产品和Landsat7影像,并按时间进行过滤筛选。 var modisLandcover = ee.ImageCollection('MODIS/006/MCD12Q1') .filterDate('2019-01-01', '2019-12-31') .first() .select('LC_Type1') .subtract(1) //将波段排序从0开始排列 .clip(geometry); //切割出研究区范围 // 设置IGBP分类系统配色方案 var landcoverPalette = '05450a,086a10,54a708,78d203,009900,c6b044,dcd159,' + 'dade48,fbff13,b6ff05,27ff87,c24f44,a5a5a5,ff6d4c,69fff8,f9ffa4,1c0dff'; //设置土地分类可视化参数 var landcoverVisualization = {palette: landcoverPalette, min: 0, max: 16, format: 'png'}; var l7 = ee.ImageCollection('LANDSAT/LE07/C01/T1') .filterBounds(geometry) .filterDate('2019-01-01', '2020-01-01'); // 最小云量影像合成 var landsatComposite = ee.Algorithms.Landsat.simpleComposite({ collection: l7, asFloat: true });MCD12Q1土地利用数据中LC_Type1的第12个波段表示农田,所以我们后续重点提取bands12属性。 根据modis数据属性可知,bands12表示农田数据,所以通过编写函数,进行指定波段提取。 //选取农田波段 var mask=function(image,my_type){ var mask=image.eq(my_type); var masked_image=image.updateMask(mask); return masked_image; } var modismask = mask(modisLandcover,11) //调用mask函数,筛选出bands12农田数据 4.通过modis上采样到Landsat影像中首先要创建数据集,在MCD12Q1中随机采样1000个随机点作为数据集,并将数据集通过smileCart方法进行训练,将训练器运用到Landsat影像中。 // 创建训练数据集,采样1000个随机采样点 var training = modisLandcover.addBands(landsatComposite).sample({ region: geometry, scale: 30, numPixels: 1000 }); // 利用训练数据集进行训练,选取IGBP分类系统 var classifier = ee.Classifier.smileCart().train({ features: training, classProperty: 'LC_Type1', }); // 将训练器运用到Landsat影像中 var upsampled = landsatComposite.classify(classifier); 5.输出结果分析这是modis数据通过波段筛选,筛选出的农田范围。 提取出了滁州市的农田范围数据,下一步将进行农作物分类,通过modis数据上采样到landsat数据中,提高了后续农作物分类的分辨率问题,只选择了表示农田的bands12,避免了其他数据对农作物分类的干扰。 完整代码: //选择2001年数据的IGBP分类系统 var modisLandcover = ee.ImageCollection('MODIS/006/MCD12Q1') .filterDate('2019-01-01', '2019-12-31') .first() .select('LC_Type1') .subtract(1) .clip(geometry); //选取农作物波段 var mask=function(image,my_type){ var mask=image.eq(my_type); var masked_image=image.updateMask(mask); return masked_image; } var modismask = mask(modisLandcover,11) // 设置IGBP分类系统配色方案 var landcoverPalette = '05450a,086a10,54a708,78d203,009900,c6b044,dcd159,' + 'dade48,fbff13,b6ff05,27ff87,c24f44,a5a5a5,ff6d4c,69fff8,f9ffa4,1c0dff'; //设置土地分类可视化参数 var landcoverVisualization = {palette: landcoverPalette, min: 0, max: 16, format: 'png'}; //显示影像 Map.centerObject(geometry, 9); Map.addLayer(modismask, landcoverVisualization, 'MODIS landcover'); // 筛选Landsat影像 var l7 = ee.ImageCollection('LANDSAT/LE07/C01/T1') .filterBounds(geometry) .filterDate('2019-01-01', '2020-01-01'); // 最小云量影像合成 var landsatComposite = ee.Algorithms.Landsat.simpleComposite({ collection: l7, asFloat: true }); //影像显示 Map.addLayer(landsatComposite, {min: 0, max: 0.3, bands: ['B3','B2','B1']}, 'Landsat composite'); // 创建训练数据集,采样1000个随机采样点包含MCD12Q1与Landsat属性 var training = modisLandcover.addBands(landsatComposite).sample({ region: geometry, scale: 30, numPixels: 1000 }); // 利用训练数据集进行训练,选取IGBP分类系统 var classifier = ee.Classifier.smileCart().train({ features: training, classProperty: 'LC_Type1', }); // 将训练器运用到Landsat影像中 var upsampled = landsatComposite.classify(classifier); var result = mask(upsampled,11) var result1 = result.clip(geometry); // 可视化分类结果 Map.addLayer(result1, landcoverVisualization, 'Upsampled landcover'); // 显示分类区域 Map.addLayer(geometry, {}, 'Training region', false); Export.image.toAsset({ image: result1, scale:10, maxPixels:5e8, region: geometry }); |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |