重采样,投影和尺度:https://www.cnblogs.com/yhpan/p/14160221.html
https://www.jianshu.com/p/e7b8435066f1
图像可视化
map.addLayer()函数对image做可视化,如果你不加任何参数使用这一函数,默认地,GEE会按照红-绿-蓝的次序依次加入。默认的归一值基于数据终端波段信息实现,例如,floats被限制在[0,1]的范围内,16-bit的数据则可以投射到可能值的全域,但是,这样的默认值可能不是特别合适。
bands 三个波段的列表,映射在RGB上 列表
min 最低值 数值或是数值列表
max 最大值 数值或是数值列表
gain 每个像素值的权重 数值或是数值列表
bias 每个DN上添加的值 数值或是数值列表
gamma 伽玛校正因子 数值或是数值列表
palette CSS风格的字符串的列表* 十六进制字符串列表
opacity 图层的不透明度** 数值
format jpg或是png 字符串
定义可视化属性,包括调色板以及在调色板之间拉伸的最小值和最大值。
- 如果没有指定“min”和“max”属性,它们将从数据类型范围确定,通常导致无效的颜色拉伸。
- 使用“调色板”参数与单波段图像输入定义线性颜色梯度之间的“最小”和“最大”的值。
RGB拼合
没有palettees自动默认为红绿蓝
palettes参数
想要展示一个image其中包含的一个波段,可以把palette参数用CSS风格的颜色字符串列表进行设置,下面就是用cyan和blue渲染图像的实例代码:
// Load an image.
var image = ee.Image('LANDSAT/LC08/C01/T1_TOA/LC08_044034_20140318');
// Create an NDWI image, define visualization parameters and display.
var ndwi = image.normalizedDifference(['B3', 'B5']);
var ndwiViz = {min: 0.5, max: 1, palette: ['00FFFF', '0000FF']};
Map.addLayer(ndwi, ndwiViz, 'NDWI', false);
min和max两个参数,二者被指示到像素值范围内,这也正是palettes参数应该设置的范围,代码中对中值进行线性拉伸。
同时应该注意到opt_show参数被设置为false,结果就是图层被添加到地图上时实际上不可见。参数可以在图层管理器中进行调整。
蒙版
可以使用image.updateMask()函数设置每个像素的透明度。每一个蒙版等于0的像素都不被计算,完全透明。
马赛克
可以使用imageCollection.mosaic()函数对图像做马赛克操作,这一方法根据输入集合中的顺序呈现输出图像中的图层
渲染特定地图
palettes对于渲染离散值地图非常重要,在有多个类的时候,就要使用这个palettes对每个类提供不同的颜色。image.remap()函数在这里可能派得上用场,它可以将标签转化为连续整数。下面使用了palettes对土地覆盖情况做了渲染:
更改的是属性
// Load 2012 MODIS land cover and select the IGBP classification.
var cover = ee.Image('MODIS/051/MCD12Q1/2012_01_01')
.select('Land_Cover_Type_1');
// Define a palette for the 18 distinct land cover classes.
var igbpPalette = [//指的是
'aec3d4', // water
'152106', '225129', '369b47', '30eb5b', '387242', // forest
'6a2325', 'c3aa69', 'b76031', 'd9903d', '91af40', // shrub, grass
'111149', // wetlands
'cdb33b', // croplands
'cc0013', // urban
'33280d', // crop mosaic
'd7cdcc', // snow and ice
'f7e084', // barren
'6f6f6f' // tundra
];
// Specify the min and max labels and the color palette matching the labels.
Map.setCenter(-99.229, 40.413, 5);
Map.addLayer(cover,
{min: 0, max: 17, palette: igbpPalette}, //此处的min和max都是指的是色带
'IGBP classification');