使用预定义的像元大小将 sf 转换为栅格并绘制它
converting sf to raster using predefined cell size and plot it
nz_height
和 nz
存在于 spData
包中。
nz_height
- sf class 数据集 - 新西兰前 101 个最高点。
nz
- sf class 数据 - 代表新西兰 16 个地区的多边形。
下面是使用tmap()
进行可视化的图表
你能帮我创建吗
- nz_raster(栅格 class),像元大小 = 100km x 100km,每个像元包含峰数
- 剧情nz_raster.
# load packages
library(tidyverse)
library(sf)
library(raster)
library(spData)
library(tmap)
# vector plot of peaks
tm_shape(nz) +
tm_polygons(col = "white") +
tm_shape(nz_height) +
tm_symbols(col = "red") +
tm_scale_bar()
您可以使用 raster
包或其继任者 terra
:
对点进行栅格化
# Load packages
packs <- list("tidyverse", "raster", "sf", "terra")
lapply(packs, require, character.only = T)
# raster version
nz_height <- st_transform(nz_height, crs = "+proj=moll +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +units=m +no_defs") %>%
as("Spatial")
nz_raster <- raster(resolution = 100000, crs = "+proj=moll +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +units=m +no_defs",
xmn = 13600000, xmx = 15100000, ymn = -5300000, ymx = -4700000) %>%
rasterize(nz_height, ., field = "elevation", fun = "count", background = 0)
# terra version
nz_height <- st_transform(nz_height, crs = "+proj=moll +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +units=m +no_defs") %>%
vect()
nz_raster <- rast(resolution = 100000, crs = "+proj=moll +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +units=m +no_defs",
xmin = 13600000, xmax = 15100000, ymin = -5300000, ymax = -4700000) %>%
rasterize(nz_height, ., fun = length, background = 0)
该代码使用 Mollweide 等面积投影,即网格单元等大。
您可以通过这些包中的 plot()
函数绘制光栅对象。其他选项例如rasterVis::gplot()
、ggplot2::geom_raster()
和 tmap::tm_raster()
。
nz_height
和 nz
存在于 spData
包中。
nz_height
- sf class 数据集 - 新西兰前 101 个最高点。nz
- sf class 数据 - 代表新西兰 16 个地区的多边形。
下面是使用tmap()
你能帮我创建吗
- nz_raster(栅格 class),像元大小 = 100km x 100km,每个像元包含峰数
- 剧情nz_raster.
# load packages
library(tidyverse)
library(sf)
library(raster)
library(spData)
library(tmap)
# vector plot of peaks
tm_shape(nz) +
tm_polygons(col = "white") +
tm_shape(nz_height) +
tm_symbols(col = "red") +
tm_scale_bar()
您可以使用 raster
包或其继任者 terra
:
# Load packages
packs <- list("tidyverse", "raster", "sf", "terra")
lapply(packs, require, character.only = T)
# raster version
nz_height <- st_transform(nz_height, crs = "+proj=moll +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +units=m +no_defs") %>%
as("Spatial")
nz_raster <- raster(resolution = 100000, crs = "+proj=moll +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +units=m +no_defs",
xmn = 13600000, xmx = 15100000, ymn = -5300000, ymx = -4700000) %>%
rasterize(nz_height, ., field = "elevation", fun = "count", background = 0)
# terra version
nz_height <- st_transform(nz_height, crs = "+proj=moll +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +units=m +no_defs") %>%
vect()
nz_raster <- rast(resolution = 100000, crs = "+proj=moll +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +units=m +no_defs",
xmin = 13600000, xmax = 15100000, ymin = -5300000, ymax = -4700000) %>%
rasterize(nz_height, ., fun = length, background = 0)
该代码使用 Mollweide 等面积投影,即网格单元等大。
您可以通过这些包中的 plot()
函数绘制光栅对象。其他选项例如rasterVis::gplot()
、ggplot2::geom_raster()
和 tmap::tm_raster()
。