本次用到的数据是USGS/GMTED2010,也就是选择高程,就行可视化,
最后用蓝色填充海平面
没有加上海平面的全山地影像
去掉海面影像
山影影像
原始影像
代码:
// 加载全球的影像 var elev = ee.Image('USGS/GMTED2010'); // 找缩放中心点 Map.setCenter(-121.069, 50.709, 6); // 加载最原始没有色彩的影像 Map.addLayer(elev, {}, 'elev'); // 使用地形算法计算具有 8 位值的山体阴影。 var shade = ee.Terrain.hillshade(elev); Map.addLayer(shade, {}, 'hillshade', false); //创建一个用于制图目的的“海”变量即通过小于0的地形来掩膜出来 var sea = elev.lte(0); Map.addLayer(sea.mask(sea), {palette:'000022'}, 'sea', false); //设置条带颜色和设置最大和最小值范围 //从十六进制字符串创建自定义高程调色板。 var elevationPalette = ['006600', '002200', 'fff700', 'ab7634', 'c4d0ff', 'ffffff']; // 使用这些按位置自定义的可视化参数。 var visParams = {min: 1, max: 3000, palette: elevationPalette}; var visualized = ee.ImageCollection([ // 掩盖高程以仅获得陆地上的数据 elev.mask(sea.not()).visualize(visParams), // 直接使用海面罩来显示海面。 sea.mask(sea).visualize({palette:'000022'}) ]).mosaic();//最后将两者镶嵌一起 //请注意,可视化图像不需要可视化参数。这里{}并没有加入参数 Map.addLayer(visualized, {}, 'elev palette', false); // 将可视化高程转换为 HSV,首先转换为 [0, 1] 数据。 var hsv = visualized.divide(255).rgbToHsv(); //仅选择色调和饱和度带 var hs = hsv.select(0, 1); // 按照 HSV 算法的预期,将山体阴影转换为 [0, 1] 数据。 var v = shade.divide(255); //通过从 HSV 转换回 RGB 来创建可视化图像。 // 注意转换为字节以便正确导出图像。 var rgb = hs.addBands(v).hsvToRgb().multiply(255).byte(); Map.addLayer(rgb, {}, 'styled');