Google Earth Engine(GEE)——R 语言图像可视化(内含NDWI指数计算和掩膜镶嵌后的图像展示)

网友投稿 1206 2022-05-30

改编自Google Earth Engine 文档。

您可以使用Map$addLayer()可视化图像。如果在没有任何附加参数的情况下向地图添加图层,默认情况下rgee将前三个波段分别分配给红色、绿色和蓝色。默认拉伸基于带中数据的类型(例如,浮点数在 [0,1] 中拉伸,16 位数据被拉伸到可能值的完整范围),这可能适合也可能不适合。为了达到理想的可视化效果,您可以为Map$addLayer()提供可视化参数。具体来说,参数是:

1. RGB 合成

下面说明了如何使用参数将 Landsat 8 图像设置为假彩色合成:

library(rgee)

ee_Initialize()

# 加载影像

landsat <- ee$Image('LANDSAT/LC08/C01/T1_TOA/LC08_044034_20140318')

# 定义参数

vizParams <- list(

bands = c('B5', 'B4', 'B3'),

min = 0,

max = 0.5,

gamma = c(0.95, 1.1, 1)

)

# 设置影像中心和加载到地图中

Map$setCenter(lon = -122.1899, lat = 37.5010, zoom = 10) # San Francisco Bay

Map$addLayer(landsat, vizParams, 'false color composite')

在本例中,波段‘B5’被分配给红色,‘B4’被分配给绿色,‘B3’被分配给蓝色。结果应该类似于图 1。

图 N°01:美国加利福尼亚州旧金山湾区的 Landsat 8 假彩色合成图。

2. 调色板

要以彩色显示图像的单个波段,请使用palette由 CSS 样式颜色字符串列表表示的色带设置参数。(有关更多信息,请参阅此参考资料)。以下示例说明了如何使用从青色 ( ‘00FFFF’) 到蓝色 ( ‘0000FF’) 的颜色来渲染归一化差值水指数 (NDWI)图像:

# 加载影像

landsat <- ee$Image('LANDSAT/LC08/C01/T1_TOA/LC08_044034_20140318')

# 创建归一化水体指数NDWI

ndwi <- landsat$normalizedDifference(c('B3', 'B5'))

# 定义视觉参数和加载影像

ndwiViz <- list(

min = 0.5,

max = 1,

palette = c('00FFFF', '0000FF')

)

Map$addLayer(

eeObject = ndwi,

visParams = ndwiViz,

name = 'NDWI',

shown = FALSE

)

在此示例中,请注意min和max参数指示应应用调色板的像素值范围。中间值被线性拉伸。另请注意,如果您将shown参数定义为FALSE,这会导致图层在添加到地图时不可见。始终可以使用地图左上角的图层管理器再次打开它。结果应该类似于图 2。

图 N°02:美国旧金山湾区 Landsat 8 NDWI。与图 1 相同的区域。青色是低值,蓝色是高值。

3. 掩膜

您可以使用image$updateMask()根据蒙版图像中的像素不为零的位置设置单个像素的不透明度。遮罩中等于 0 的像素被排除在计算之外,并且不透明度设置为 0 以进行显示。以下示例使用 NDWI 阈值更新先前创建的 NDWI 图层上的掩码:

# Load an image.

landsat <- ee$Image('LANDSAT/LC08/C01/T1_TOA/LC08_044034_20140318')

# Create visualization layers.

imageRGB <- landsat$visualize(

list(

bands = list("B5", "B4", "B3"),

max = 0.5

)

)

ndwiRGB <- ndwiMasked$visualize(

list(

min = 0.5,

max = 1,

palette = c('00FFFF', '0000FF')

)

)

5. 镶嵌

您可以使用遮罩和imageCollection$mosaic()来实现各种制图效果。该mosaic()方法根据输入集合中的顺序渲染输出图像中的图层。下面的示例用于mosaic()组合蒙版 NDWI 和假色合成并获得新的可视化:

# 镶嵌可视化图层并显示(或导出)。

mosaic <- ee$ImageCollection(list(imageRGB, ndwiRGB))$mosaic()

Map$addLayer(eeObject = mosaic, list(), name = 'mosaic')

在此示例中,观察向ImageCollection构造函数提供了两个可视化图像的列表。列表的顺序决定了图像在地图上呈现的顺序。结果应该类似于图 3。

图 N°04: Landsat 8 假彩色合成和 NDWI 的马赛克。美国旧金山湾区。

6. 与其他 R 包的集成

Map$addLayer()创建一个带有以下额外属性的传单对象:标记、名称、不透明度、显示、最小值、最大值、调色板和图例。这些额外的数据有助于用户自定义他们的交互式地图和/或将Map$addLayer与其他 R 包(例如{mapview}、 {mapedit}和{leaflet} )集成。

library(rgee)

ee_Initialize()

# 加载影像

landsat <- ee$Image('LANDSAT/LC08/C01/T1_TOA/LC08_044034_20140318')

# 定义参数

vizParams <- list(

bands = c('B5', 'B4', 'B3'),

min = 0,

max = 0.5,

gamma = c(0.95, 1.1, 1)

)

# 展示影像

Map$setCenter(lon = -122.1899, lat = 37.5010, zoom = 10) # San Francisco Bay

m1 <- Map$addLayer(landsat, vizParams, 'false color composite')

m1$rgee

#> $tokens获取权限

#> [1] "https://earthengine.googleapis.com/v1alpha/projects/earthengine-legacy/maps/6f68ea5563f0787171eef294011e5b1a-54a29dea5a564831913fb1c8c1653628/tiles/{z}/{x}/{y}"

#>

#> $name

#> [1] "false color composite"

#>

#> $opacity

#> [1] 1

#>

#> $shown

#> [1] TRUE

#>

#> $min

#> [1] NA

#>

#> $max

#> [1] NA

#>

#> $palette

#> $palette[[1]]

#> [1] NA

#>

#>

#> $legend

#> [1] FALSE

{leaflet}:是一个用于传单的 R 包绑定(由 Rstudio 开发),一个用于移动友好型交互式地图的开源 JavaScript 库。

library(leaflet)

library(rgee)

ee_Initialize()

# 加载影像

landsat <- ee$Image('LANDSAT/LC08/C01/T1_TOA/LC08_044034_20140318')

# 定义视觉参数

vizParams <- list(

bands = c('B5', 'B4', 'B3'),

min = 0,

max = 0.5,

gamma = c(0.95, 1.1, 1)

)

# 设置地图中心点和展示

Map$setCenter(lon = -122.1899, lat = 37.5010, zoom = 10) # San Francisco Bay

m1 <- Map$addLayer(landsat, vizParams, 'false color composite')

# 与leaflet结合

leaflet() %>%

addTiles() %>%

Google Earth Engine(GEE)——R 语言图像可视化(内含NDWI指数计算和掩膜镶嵌后的图像展示)

setView(-122.1899, 37.5010, 9) %>%

addTiles(

urlTemplate = m1$rgee$tokens,

layerId = "leaflet_false_color",

options = leaflet::tileOptions(opacity = 1)

)

图 N°05: Map$addLayer 和 {leaflet} 集成

{mapview}:由 Tim Appelhans 开发的 R 包,它提供了非常快速和方便地创建 R 空间数据的交互式可视化的功能。它支持最流行的空间数据 R 包({sp}、{sf}、{stars} 和 {raster})。

library(mapview)

library(rgee)

ee_Initialize()

# 加载影像

landsat <- ee$Image('LANDSAT/LC08/C01/T1_TOA/LC08_044034_20140318')

# 设置参数

vizParams <- list(

bands = c('B5', 'B4', 'B3'),

min = 0,

max = 0.5,

gamma = c(0.95, 1.1, 1)

)

# 显示图像

Map$setCenter(lon = -122.1899, lat = 37.5010, zoom = 10) # San Francisco Bay

m1 <- Map$addLayer(landsat, vizParams, 'false color composite')

# 与地图视图集成

stp <- st_sfc(st_point(c(-122.27234, 37.46941)), crs=4326)

mapview(stp, m1)

图 N°06: Map$addLayer 和 {mapview} 集成。

{mapedit}:为传单交互式地图添加空间数据编辑功能(类似于代码编辑器几何工具)。

每加载一个地物就直接应用到这个函数就好了,所以比较简单

library(mapedit)

library(rgee)

ee_Initialize()

# Load an image.

landsat <- ee$Image('LANDSAT/LC08/C01/T1_TOA/LC08_044034_20140318')

# Define the visualization parameters.

vizParams <- list(

bands = c('B5', 'B4', 'B3'),

min = 0,

max = 0.5,

gamma = c(0.95, 1.1, 1)

)

# Center the map and display the image.

Map$setCenter(lon = -122.1899, lat = 37.5010, zoom = 10) # San Francisco Bay

m1 <- Map$addLayer(landsat, vizParams, 'false color composite')

# Integrate with mapedit

my_geom <- editMap(m1)$drawn

7. 地图运营商

从 1.0.5 版本开始,rgee支持两种地图操作符:

library(mapedit)

library(rgee)

ee_Initialize()

# Load an image.

landsat <- ee$Image('LANDSAT/LC08/C01/T1_TOA/LC08_044034_20140318')

ndwi <- landsat$normalizedDifference(c('B3', 'B5'))

ndwiMasked <- ndwi$updateMask(ndwi$gte(0.4))

# Define the visualization parameters.

vizParams <- list(

bands = c('B5', 'B4', 'B3'),

min = 0,

max = 0.5,

gamma = c(0.95, 1.1, 1)

)

ndwiViz <- list(

min = 0.5,

max = 1,

palette = c('00FFFF', '0000FF')

)

# Center the map and display the image.

Map$setCenter(lon = -122.1899, lat = 37.5010, zoom = 10) # San Francisco Bay

m1 <- Map$addLayer(landsat, vizParams, 'false color composite')

m2 <- Map$addLayer(ndwiMasked, ndwiViz, 'NDWI masked')

m1 +m2:叠加层。

m1 + m2

图 N°08:叠加地图

示例

m1 |m2:并排视图。

#中间这个竖条也十分直白,就告诉你分开就好

m1 | m2

图 N°08:并排示例

R 语言

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:ECharts用法及常用配置项详解(Vue环境)
下一篇:Python基本语法_输入/输出语句详解
相关文章