什么是OKR:Google的目标管理方针(OKR目标管理)
1284
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() %>%
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小时内删除侵权内容。