knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
library(sf2)
R语言中,若想制作出地理位置正确的空间图,数据排序需要满足如下要求:
Table1. 空间数据中数据排序要求。
| 函数 | 数据名称 | 数据格式 | 其他说明 |
| ------------------------------------------------------------ | -------- | ----------------- | ------------------------------------------------------------ |
| image, fileds::image.plot, lattice::levelplot | mat_base | [lon, lat]
| mat_base
to mat_rast
:t() %>% fliplr()
, flipud() %>% t()
|
| raster::raster, terra::rast
raster::as.array | mat_rast | [rev(lat), lon]
| mat_rast
to mat_gdal
:t() %>% flipud()
, fliplr() %>% t()
|
| g_base = sf2::make_grid(type = “base”), default type
| mat_base | [lon, lat]
| 优势:
(1) lon、lat都是按照从小到大进行排列,符合常规习惯;
(2) 此种格式,R语言基础绘图可以正常出图
劣势:
与所有空间数据R包相悖。 |
| (a) g_gdal = sf2::make_grid(type = “gdal”),
(b) rgdal、sp、terra、raster的计算函数返回的均是这种数据排列格式,
如:raster::values, raster::area, terra::values, terra::as.data.frame,他们是按照g_gdal排序格式,与其构造函数中数据排序无关。
(c) terra::writeCDF保存的nc文件, ncdf4::ncvar_get获取的array。 | mat_gdal | [lon, rev(lat)]
| mat_base
to mat_gdal
:
flipud()mat_rast
to mat_gdal
:t()
|
其中,
rev(lat)
代表倒序的lat。 注意:g_mat
转化为raster::raster或terra::rast之后,则按照新的数据格式排列数据。
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.