Google Earth Engine(GEE)——R 语言图像可视化(内含NDWI指数计算和掩膜镶嵌后的图像展示)
改编自Google Earth Engine 文档。
您可以使用Map$addLayer()可视化图像。如果在没有任何附加参数的情况下向地图添加图层,默认情况下rgee将前三个波段分别分配给红色、绿色和蓝色。默认拉伸基于带中数据的类型(例如,浮点数在 [0,1] 中拉伸,16 位数据被拉伸到可能值的完整范围),这可能适合也可能不适合。为了达到理想的可视化效果,您可以为Map$addLayer()提供可视化参数。具体来说,参数是:
Visualization parameters for Map$addLayer() | ||
---|---|---|
Parameter | Description | Type |
bands | Comma-delimited list of three band names to be mapper to RGB | list |
min | Value(s) to map to 0 | number or list of three numbers, one for each band |
max | Value(s) to map to 255 | number or list of three numbers, one for each band |
gain | Value(s) by which to multiply each pixel value | number or list of three numbers, one for each band |
bias | Value(s) to add to each DN | number or list of three numbers, one for each band |
gamma | Gamma correction factor(s) | number or list of three numbers, one for each band |
palette | List of CSS-style color strings (single-band images only) | comma-separated list hex strings |
opacity | The opacity of the layer (0.0 is fully transparent and 1.0 is fully opaque) | number |
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:并排示例
Google Earth Engine(GEE)——R 语言图像可视化(内含NDWI指数计算和掩膜镶嵌后的图像展示)相关推荐
- Google Earth Engine(GEE) 01-中输入提示快捷键Ctrl+space无法使用的问题
Google Earth Engine(GEE) 01-中输入提示快捷键Ctrl+space无法使用的问题 GEE中 Ctrl+space组合键用于代码输入快捷提示,能够提高编码的准确度和速度,但是, ...
- 使用Google Earth Engine (GEE)实现MODIS数据批量下载
使用Google Earth Engine GEE实现MODIS数据批量下载 前言 下载数据代码 批量执行run任务 关注公众号,分享GIS知识.ArcGIS教程.SCI论文与科研日常等 前言 上图是 ...
- Google Earth Engine(GEE)——User memory limit exceeded(2)
上一次我们已经知道如何去进行避免这种错误的发生,有关详细内容,如果单单只是解决这个问题我们用到的是limit 和 first,上一次的博客在这里: (207条消息) Google Earth Engi ...
- Google Earth Engine(GEE)批量下载代码(以 NDVI数据为例)
下载数据先准备工作(具体细节都能查到):科学上网 谷歌邮箱,谷歌邮箱注册GEE账号. 一:导入需要下载边界shp文件. 标题 找到自己的shp文件,导入除了sbx文件的所有文件. 导入成功 命名ass ...
- 基于google earth engine(GEE)下载研究区域影像
基于google earth engine(GEE)下载研究区域影像 当研究需要Landsat数据时,我们可以通过USGS官网或者地理空间数据云平台下载.由于地理空间数据云目前无法下载到较新的数据,可 ...
- Google Earth Engine(GEE)——可视化动态图
代码: var geometry = /* color: #d63000 *//* shown: false *//* displayProperties: [{"type": & ...
- Google Earth Engine (GEE) ——卫星影像的监督分类(svm)
问题 GEE 提供哪些机器学习技术? 如何对卫星图像进行监督分类? 如何评估分类器的准确性? 如何手动创建自己的几何图形? 目标 练习查找无云图像和使用手绘几何导入 学习训练和应用分类算法所需的基本功 ...
- 关于google earth engine(GEE)的一些想法与大胆预测
我接触GEE有两年了,GEE留给我的印象是:无所不能. 不管是从庞大的数据量,还是包含遥感的各类算法:随机森林.SVM.CNN,都让人惊讶. 从GEE的云端操作来看,传统遥感需要几个月做出来的全国ND ...
- google earth engine GEE批量 run下载插件
在Google earth engine中,批量导出文件经常遇到多个文件下载的情况,只能一个个点击RUN.这里介绍一款插件,Open Earth Engine extension .该插件的作者是Ma ...
最新文章
- 操作系统原理之I/O设备管理(第六章上半部分)
- 大一计算机上机考试第七套,国家开放大学电大《计算机组网技术》机考第七套题库及答案.doc...
- python三级联动菜单_2分钟制作智能式联动下拉菜单,轻松搞定重复内容,录入不出错...
- OpenSSL密码库算法笔记——第0章 大整数的表示及相关函数
- CoreOS部署及应用
- 邮箱大师与微软Acompli功能评测
- java struts2教程_Struts2学习教程之入门小白的开始基础
- gridview动态添加行
- 模拟时针--微信小程序制作
- 2017cad光标大小怎么调_cad十字光标怎么调大-调整cad十字光标大小的方法 - 河东软件园...
- C语言int类型数值溢出会怎么样
- Font-AweSome在Vue中的使用
- OpenGL之基本图元
- 每周一学EXCEL函数公式:EXCEL中数值转文本公式TEXT
- C语言 校园歌手比赛系统源码
- 首席商学院新媒体运营黎想:抖音直播入门教学,点这!
- STM32F103中文参考手册PDF
- 与广东未来科技:怀揣初心,并肩同行
- 第二本书 unit7访问网络文件共享系统
- 翻译软件 Babylon Pro V6.0.0 R32免安装版
热门文章
- linux信号处理响应异步事件,Python Signal(信号) 异步系统事件
- Linux系统启动初始化
- 选择排序(升序排序)对无序序列进行排序
- vue中修改滚动条样式
- imx6 u-boot 启动 Can't find PMIC:PFUZE100
- oracle sql 生成日历
- 一个查询大学英语四六级的类
- PB编程通俗快速入手(自己2002年教别人PB时随手写的,很多年了,放上来送给新手们)
- 全球及中国廉金属热电偶行业市场发展前景与十四五投资规划研究报告2022-2028年
- 用c语言编一元二次方程的思路,[编程入门]自定义函数求一元二次方程 (C语言代码)...