没有合适的资源?快使用搜索试试~ 我知道了~
首页第 07 节 GEE 的数据类型 (Image,Image Collection).pdf
第 07 节 GEE 的数据类型 (Image,Image Collection).pdf
需积分: 49 257 浏览量
更新于2023-05-23
评论 1
收藏 2.16MB PDF 举报
第 07 节 GEE 的数据类型 (Image,Image Collection).pdf
资源详情
资源评论
资源推荐

第
7
节
GEE
的数据类型
(Image
,
Image Collection)
GEE 作为一个遥感大数据平台,栅格图像是其核心数据。在 GEE 的代码中,栅格图像
以 Image 来表示。在本节中,我们将学习 GEE 中有关栅格图像的常见命令。
7.1 Image
下边介绍 GEE 中常见的栅格图像数据。第一种是遥感图像,包括 Landsat,Sentinel 和
MODIS 系列卫星的所有图像数据。第二种是地形影像,主要是 90m 和 30m 精度的 SRTM
影像,以及局部地区的高精度地形影像。第三种则是其他影像,包括土地利用图像、气象图
像等。
图 7.1 GEE 中的常见图像数据
用户还可以上传个人数据到 GEE 中,相应的步骤与矢量数据的上传类似。
图 7.2 上传个人栅格数据

下边介绍栅格数据的创建,代码及执行效果如下:
var Image_1 = ee.Image( 10 );
var Image_2 = ee.Image.constant( 20 );
var Image_3 = Image_1.add(Image_2)
print(Image_1,Image_2,Image_3);
图 7.3 创建栅格数据
此时创建的栅格数据没有“分辨率”的概念,或者说此时栅格的分辨率无限小,任意位置
都是指定的常数。常数栅格的创建常常见于遥感图像的时序分析,被当做方程中的常量。
下边介绍栅格的掩膜分析,代码及执行效果如下:
var Image_DEM = ee.Image( 'CGIAR/SRTM90_V4' );
var Image_Cropland = ee.Image("ESA/GLOBCOVER_L4_200901_200912_V2_3")
.select('landcover').eq(11);
var Image_Masked = Image_DEM.mask( Image_Cropland );
print(Image_DEM,Image_Cropland,Image_Masked);
Map.setCenter(106.4, 34.78, 4);
Map.addLayer( Image_DEM,
{"opacity":1,"bands":["elevation"],"min":0,"max":1400,"palette":["2dff07","ff0b0b"]},
' Image_DEM ' );
Map.addLayer( Image_Cropland,
{"opacity":1,"bands":["landcover"],"palette":["ffffff","fbff2d"]},
' Image_Cropland ' );
Map.addLayer( Image_Masked,
{"opacity":1,"bands":["elevation"],"min":0,"max":1400,"palette":["2dff07","ff0b0b"]},
'Image_Masked ');

图 7.4 栅格的掩膜分析
下边介绍栅格的裁剪,代码及执行效果如下:
var DEM = ee.Image("USGS/SRTMGL1_003");
var CQ = ee.FeatureCollection("users/wangjinzhulala/China_Provinces")
.filterBounds(ee.Geometry.Point([106.8, 29.3]))
var CQ_DEM = DEM.clip(CQ)
Map.setCenter(106.8, 29.3,7)
Map.addLayer(CQ_DEM,{min:0,max:2000})
图 7.5 栅格的裁剪
需要指出的是,栅格图像的掩膜操作只是给 GEE 指出图像的哪些部分不参加运算,而
栅格的裁剪则是直接将裁剪数据意外的部分删除。但在多数情况下,两者可以互用。
下边介绍栅格的选择创建,代码及执行效果如下:
var Glob_Cover = ee.Image("ESA/GLOBCOVER_L4_200901_200912_V2_3");
var Land_cover = Glob_Cover.select('landcover')
var Land_cover_quality = Glob_Cover.select('qa')
Map.setCenter(107.56, 34.79,4)
Map.addLayer(Land_cover)
Map.addLayer(Land_cover_quality)
Image_DEM
Image_Croplan
Image_Masked

图 7.6 栅格的选择创建
这里需要说明,GLOBCOVER_L4_2009 数据包含两个波段,一个波段是“landcover”,
用来说明土地利用类型。另一个波段是“qa”,用来说明某位置的数据来源(0 表示来源于
GLOBCOVER 项目,1 表示来源于其他数据集)。
下边介绍栅格的波段裁取创建,代码及执行效果如下:
var L8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_RT");
var L8_One = ee.Image(L8.filterBounds(ee.Geometry.Point(106.4958, 29.5856)).first())
var L8_Slice = L8_One.slice(2,5);
print(L8_One,L8_Slice)
图 7.7 栅格的波段裁取
波段裁取命令的两个参数分别表示裁取的起始和结束位置,由于代码语言中是从 0 开
始计数的,所以本例中的 2 和 5 分别表示第 3 和第 6 个位置。同时也可以看出,波段裁取只
执行到结束位置的前一个位置。
下边介绍栅格的添加,代码及执行效果如下:
var L8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_RT");
var L8_One = ee.Image(L8.filterBounds(ee.Geometry.Point(106.4958, 29.5856)).first())
var L8_B5 = L8_One.select('B5');
var L8_B4 = L8_One.select('B4');
var L8_B5_4 = L8_B5.addBands(L8_B4)
print(L8_B5,L8_B4,L8_B5_4)

图 7.8 栅格的添加
下边介绍栅格的重投影命令,代码及执行效果如下:
var L8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_RT");
var L8_One = ee.Image(L8.filterBounds(ee.Geometry.Point(106.4958, 29.5856)).first())
var L8_Reproject = L8_One.reproject('EPSG:3857',null,100)
print(L8_One.select('B1').projection(),L8_Reproject.projection())
Map.setCenter(106.58365, 29.56972,15)
Map.addLayer(L8_One,{"bands":["B5","B4","B3"],"min":10586,"max":18154},'30m')
Map.addLayer(L8_Reproject,{"bands":["B5","B4","B3"],"min":10586,"max":18154}, '100m')
图 7.9 栅格的重投影
这里注意,矢量的重投影命令是.transpose(),而栅格的重投影命令式.Reproject,两者的
操作目的是相同的,但却是不可混用的两个命令。
下边介绍栅格的色彩转换,代码及执行效果如下:
var L8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_RT");
var L8_One = ee.Image(L8.filterBounds(ee.Geometry.Point(106.4958, 29.5856))
.first()).slice(2,5).unitScale(0,32468)
var L8_HSV = L8_One.rgbToHsv()
var L8_RGB = L8_HSV.hsvToRgb()
print(L8_One,L8_HSV,L8_RGB)
Map.setCenter(106.5, 29.5,9)
Map.addLayer(L8_One,{},'Origin')
Map.addLayer(L8_HSV,{},'HSV')
Map.addLayer(L8_RGB,{},'RGB')
剩余31页未读,继续阅读


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0