--- title: "rast_values_order" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{rast_values_order} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` ```{r setup} 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之后,则按照新的数据格式排列数据。