Create interactive visualizations of spatial EE objects (ee$Geometry, ee$Image, ee$Feature, and ee$FeatureCollection) using leaflet.

Value

Object of class leaflet and EarthEngineMap, with the following extra parameters: tokens, name, opacity, shown, min, max, palette, position, and legend. Use the $ method to retrieve the data (e.g., m$rgee$min).

Details

R6Map uses the Earth Engine method getMapId to fetch and return an ID dictionary used to create layers in a leaflet object. Users can specify visualization parameters to Map$addLayer by using the visParams argument. Each Earth Engine spatial object has a specific format. For ee$Image, the parameters available are:

ParameterDescriptionType
bandsComma-delimited list of three band (RGB)list
minValue(s) to map to 0number or list of three numbers, one for each band
maxValue(s) to map to 1number or list of three numbers, one for each band
gainValue(s) by which to multiply each pixel valuenumber or list of three numbers, one for each band
biasValue(s) to add to each Digital Number valuenumber or list of three numbers, one for each band
gammaGamma correction factor(s)number or list of three numbers, one for each band
paletteList of CSS-style color strings (single-band only)comma-separated list of hex strings
opacityThe opacity of the layer (from 0 to 1)number

If you add an ee$Image to Map$addLayer without any additional parameters. By default it assigns the first three bands to red, green, and blue bands, respectively. The default stretch is based on the min-max range. On the other hand, the available parameters for ee$Geometry, ee$Feature, and ee$FeatureCollection are:

  • color: A hex string in the format RRGGBB specifying the color to use for drawing the features. By default #000000.

  • pointRadius: The radius of the point markers. By default 3.

  • strokeWidth: The width of lines and polygon borders. By default 3.

Public fields

lon

The longitude of the center, in degrees.

lat

The latitude of the center, in degrees.

zoom

The zoom level, from 1 to 24.

save_maps

Should R6Map save the previous maps?. If TRUE, Map will work in an OOP style. Otherwise it will be a functional programming style.

previous_map_left

Container on maps in the left side.

previous_map_right

Container on maps in the right side.

Methods


Method new()

Constructor of R6Map.

Usage

R6Map$new(lon = 0, lat = 0, zoom = 1, save_maps = TRUE)

Arguments

lon

The longitude of the center, in degrees. By default -76.942478.

lat

The latitude of the center, in degrees. By default -12.172116.

zoom

The zoom level, from 1 to 24. By default 18.

save_maps

Should R6Map save previous maps?.

Returns

A new EarthEngineMap object.


Method reset()

Reset to initial arguments.

Usage

R6Map$reset(lon = 0, lat = 0, zoom = 1, save_maps = TRUE)

Arguments

lon

The longitude of the center, in degrees. By default -76.942478.

lat

The latitude of the center, in degrees. By default -12.172116.

zoom

The zoom level, from 1 to 24. By default 18.

save_maps

Should R6Map save previous maps?.

Returns

A new EarthEngineMap object.

Examples

\dontrun{
library(rgee)
ee_Initialize()

# Load an Image
image <- ee$Image("LANDSAT/LC08/C01/T1/LC08_044034_20140318")

# Create
Map <- R6Map$new()
Map$centerObject(image)

# Simple display: Map just will
Map$addLayer(
  eeObject = image,
  visParams = list(min=0, max = 10000, bands = c("B4", "B3", "B2")),
  name = "l8_01"
)
Map # display map

Map$reset() # Reset arguments
Map
}


Method print()

Display a EarthEngineMap object.

Usage

R6Map$print()

Returns

An EarthEngineMap object.


Method setCenter()

Centers the map view at the given coordinates with the given zoom level. If no zoom level is provided, it uses 10 by default.

Usage

R6Map$setCenter(lon = 0, lat = 0, zoom = 10)

Arguments

lon

The longitude of the center, in degrees. By default -76.942478.

lat

The latitude of the center, in degrees. By default -12.172116.

zoom

The zoom level, from 1 to 24. By default 18.

Returns

No return value, called to set initial coordinates and zoom.

Examples

\dontrun{
library(rgee)

ee_Initialize()

Map <- R6Map$new()
Map$setCenter(lon = -76, lat = 0, zoom = 5)
Map

# Map$lat
# Map$lon
# Map$zoom
}


Method setZoom()

Sets the zoom level of the map.

Usage

R6Map$setZoom(zoom = 10)

Arguments

zoom

The zoom level, from 1 to 24. By default 10.

Returns

No return value, called to set zoom.

Examples

\dontrun{
library(rgee)

ee_Initialize()

Map <- R6Map$new()
Map$setZoom(zoom = 4)
Map

# Map$lat
# Map$lon
# Map$zoom
}


Method centerObject()

Centers the map view on a given object. If no zoom level is provided, it will be predicted according to the bounds of the Earth Engine object specified.

Usage

R6Map$centerObject(
  eeObject,
  zoom = NULL,
  maxError = ee$ErrorMargin(1),
  titiler_server = "https://api.cogeo.xyz/"
)

Arguments

eeObject

Earth Engine spatial object.

zoom

The zoom level, from 1 to 24. By default NULL.

maxError

Max error when input image must be reprojected to an explicitly requested result projection or geodesic state.

titiler_server

TiTiler endpoint. Defaults to "https://api.cogeo.xyz/".

Returns

No return value, called to set zoom.

Examples

\dontrun{
library(rgee)

ee_Initialize()

Map <- R6Map$new()
image <- ee$Image("LANDSAT/LC08/C01/T1/LC08_044034_20140318")
Map$centerObject(image)
Map
}


Method addLayer()

Adds a given Earth Engine spatial object to the map as a layer

Usage

R6Map$addLayer(
  eeObject,
  visParams = NULL,
  name = NULL,
  shown = TRUE,
  opacity = 1,
  position = NULL,
  titiler_viz_convert = TRUE,
  titiler_server = "https://api.cogeo.xyz/"
)

Arguments

eeObject

The Earth Engine spatial object to display in the interactive map.

visParams

List of parameters for visualization. See details.

name

The name of layers.

shown

A flag indicating whether layers should be on by default.

opacity

The layer's opacity is represented as a number between 0 and 1. Defaults to 1.

position

Character. Activate panel creation. If "left" the map will be displayed in the left panel. Otherwise, if it is "right" the map will be displayed in the right panel. By default NULL (No panel will be created).

titiler_viz_convert

Logical. If it is TRUE, Map$addLayer will transform the visParams to titiler style. Ignored if eeObject is not a COG file.

titiler_server

TiTiler endpoint. Defaults to "https://api.cogeo.xyz/".

Returns

An EarthEngineMap object.

Examples

\dontrun{
library(rgee)
ee_Initialize()

# Load an Image
image <- ee$Image("LANDSAT/LC08/C01/T1/LC08_044034_20140318")

# Create
Map <- R6Map$new()
Map$centerObject(image)

# Simple display: Map just will
Map$addLayer(
  eeObject = image,
  visParams = list(min=0, max = 10000, bands = c("B4", "B3", "B2")),
  name = "l8_01"
)

Map$addLayer(
  eeObject = image,
  visParams = list(min=0, max = 20000, bands = c("B4", "B3", "B2")),
  name = "l8_02"
)

# Simple display: Map just will (if the position is not specified it will
# be saved on the right side)
Map$reset() # Reset Map to the initial arguments.
Map$centerObject(image)
Map$addLayer(
  eeObject = image,
  visParams = list(min=0, max=10000, bands = c("B4", "B3", "B2")),
  name = "l8_left",
  position = "left"
)

Map$addLayer(
  eeObject = image,
  visParams = list(min=0, max=20000, bands = c("B4", "B3", "B2")),
  name = "l8_right"
)

Map$reset()
}


Method addLayers()

Adds a given ee$ImageCollection to the map as multiple layers.

Usage

R6Map$addLayers(
  eeObject,
  visParams = NULL,
  nmax = 5,
  name = NULL,
  shown = TRUE,
  position = NULL,
  opacity = 1
)

Arguments

eeObject

ee$ImageCollection to display in the interactive map.

visParams

List of parameters for visualization. See details.

nmax

Numeric. The maximum number of images to display. By default 5.

name

The name of layers.

shown

A flag indicating whether layers should be on by default.

position

Character. Activate panel creation. If "left" the map will be displayed in the left panel. Otherwise, if it is "right" the map will be displayed in the right panel. By default NULL (No panel will be created).

opacity

The layer's opacity is represented as a number between 0 and 1. Defaults to 1.

Returns

A EarthEngineMap object.

Examples

\dontrun{
library(sf)
library(rgee)
library(rgeeExtra)

ee_Initialize()

Map <- R6Map$new()

nc <- st_read(system.file("shape/nc.shp", package = "sf")) %>%
  st_transform(4326) %>%
  sf_as_ee()

ee_s2 <- ee$ImageCollection("COPERNICUS/S2")$
  filterDate("2016-01-01", "2016-01-31")$
  filterBounds(nc) %>%
  ee_get(0:2)

Map$centerObject(nc$geometry())
Map$addLayers(eeObject = ee_s2,position = "right")

# digging up the metadata
Map$previous_map_right$rgee$tokens

Map$reset()
}


Method addLegend()

Adds a color legend to an EarthEngineMap.

Usage

R6Map$addLegend(
  visParams,
  name = "Legend",
  position = c("bottomright", "topright", "bottomleft", "topleft"),
  color_mapping = "numeric",
  opacity = 1,
  ...
)

Arguments

visParams

List of parameters for visualization.

name

The title of the legend.

position

Character. The position of the legend. By default bottomright.

color_mapping

Map data values (numeric or factor/character) to colors according to a given palette. Use "numeric" ("discrete") for continuous (categorical) data. For display characters use "character" and add to visParams the element "values" containing the desired character names.

opacity

The legend's opacity is represented as a number between 0 and 1. Defaults to 1.

...

Extra legend creator arguments. See addLegend.

Returns

A EarthEngineMap object.

Examples

\dontrun{
library(leaflet)
library(rgee)
ee_Initialize()

Map$reset()

# Load MODIS ImageCollection
imgcol <- ee$ImageCollection$Dataset$MODIS_006_MOD13Q1

# Parameters for visualization
labels <- c("good", "marginal", "snow", "cloud")
cols   <- c("#999999", "#00BFC4", "#F8766D", "#C77CFF")
vis_qc <- list(min = 0, max = 3, palette = cols, bands = "SummaryQA", values = labels)

# Create interactive map
m_qc <- Map$addLayer(imgcol$median(), vis_qc, "QC")

# continous palette
Map$addLegend(vis_qc)

# categorical palette
Map$addLegend(vis_qc, name = "Legend1", color_mapping = "discrete")

# character palette
Map$addLegend(vis_qc, name = "Legend2", color_mapping = "character")
}


Method clone()

The objects of this class are cloneable with this method.

Usage

R6Map$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples


## ------------------------------------------------
## Method `R6Map$reset`
## ------------------------------------------------

if (FALSE) {
library(rgee)
ee_Initialize()

# Load an Image
image <- ee$Image("LANDSAT/LC08/C01/T1/LC08_044034_20140318")

# Create
Map <- R6Map$new()
Map$centerObject(image)

# Simple display: Map just will
Map$addLayer(
  eeObject = image,
  visParams = list(min=0, max = 10000, bands = c("B4", "B3", "B2")),
  name = "l8_01"
)
Map # display map

Map$reset() # Reset arguments
Map
}

## ------------------------------------------------
## Method `R6Map$setCenter`
## ------------------------------------------------

if (FALSE) {
library(rgee)

ee_Initialize()

Map <- R6Map$new()
Map$setCenter(lon = -76, lat = 0, zoom = 5)
Map

# Map$lat
# Map$lon
# Map$zoom
}

## ------------------------------------------------
## Method `R6Map$setZoom`
## ------------------------------------------------

if (FALSE) {
library(rgee)

ee_Initialize()

Map <- R6Map$new()
Map$setZoom(zoom = 4)
Map

# Map$lat
# Map$lon
# Map$zoom
}

## ------------------------------------------------
## Method `R6Map$centerObject`
## ------------------------------------------------

if (FALSE) {
library(rgee)

ee_Initialize()

Map <- R6Map$new()
image <- ee$Image("LANDSAT/LC08/C01/T1/LC08_044034_20140318")
Map$centerObject(image)
Map
}

## ------------------------------------------------
## Method `R6Map$addLayer`
## ------------------------------------------------

if (FALSE) {
library(rgee)
ee_Initialize()

# Load an Image
image <- ee$Image("LANDSAT/LC08/C01/T1/LC08_044034_20140318")

# Create
Map <- R6Map$new()
Map$centerObject(image)

# Simple display: Map just will
Map$addLayer(
  eeObject = image,
  visParams = list(min=0, max = 10000, bands = c("B4", "B3", "B2")),
  name = "l8_01"
)

Map$addLayer(
  eeObject = image,
  visParams = list(min=0, max = 20000, bands = c("B4", "B3", "B2")),
  name = "l8_02"
)

# Simple display: Map just will (if the position is not specified it will
# be saved on the right side)
Map$reset() # Reset Map to the initial arguments.
Map$centerObject(image)
Map$addLayer(
  eeObject = image,
  visParams = list(min=0, max=10000, bands = c("B4", "B3", "B2")),
  name = "l8_left",
  position = "left"
)

Map$addLayer(
  eeObject = image,
  visParams = list(min=0, max=20000, bands = c("B4", "B3", "B2")),
  name = "l8_right"
)

Map$reset()
}

## ------------------------------------------------
## Method `R6Map$addLayers`
## ------------------------------------------------

if (FALSE) {
library(sf)
library(rgee)
library(rgeeExtra)

ee_Initialize()

Map <- R6Map$new()

nc <- st_read(system.file("shape/nc.shp", package = "sf")) %>%
  st_transform(4326) %>%
  sf_as_ee()

ee_s2 <- ee$ImageCollection("COPERNICUS/S2")$
  filterDate("2016-01-01", "2016-01-31")$
  filterBounds(nc) %>%
  ee_get(0:2)

Map$centerObject(nc$geometry())
Map$addLayers(eeObject = ee_s2,position = "right")

# digging up the metadata
Map$previous_map_right$rgee$tokens

Map$reset()
}

## ------------------------------------------------
## Method `R6Map$addLegend`
## ------------------------------------------------

if (FALSE) {
library(leaflet)
library(rgee)
ee_Initialize()

Map$reset()

# Load MODIS ImageCollection
imgcol <- ee$ImageCollection$Dataset$MODIS_006_MOD13Q1

# Parameters for visualization
labels <- c("good", "marginal", "snow", "cloud")
cols   <- c("#999999", "#00BFC4", "#F8766D", "#C77CFF")
vis_qc <- list(min = 0, max = 3, palette = cols, bands = "SummaryQA", values = labels)

# Create interactive map
m_qc <- Map$addLayer(imgcol$median(), vis_qc, "QC")

# continous palette
Map$addLegend(vis_qc)

# categorical palette
Map$addLegend(vis_qc, name = "Legend1", color_mapping = "discrete")

# character palette
Map$addLegend(vis_qc, name = "Legend2", color_mapping = "character")
}