从空间网格多边形生成网格单元 ID(以矩阵形式)
generate grid cell id (in matrix form) from the spatial grid polygon
我有一个尺寸为 72 col × 24 rows 的空间网格。对于这个问题,我尝试创建了一个小的多边形网格(3×3),我希望你也可以在你的电脑上运行。
如您所见,它是一个 3×3 的网格,但是网格单元的编号从最后一行的左下角开始向右下角开始,然后再次从中间行的左侧向右继续。
library(sf)
#> Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 7.0.0; sf_use_s2() is TRUE
url = "https://github.com/Ohm-Np/ex-data/raw/main/vector/test_grid.gpkg"
download.file(url, "../grid.gpkg")
grid <- read_sf("../grid.gpkg")
plot(grid)
由 reprex package (v2.0.0)
于 2022-02-25 创建
所以,我的问题是:如何创建另一列(比如)column_row
并存储从左上角向右开始的网格单元格 ID。
这样的结果 (col_number × row_number):
df <- data.frame(column_row = c("01_01", "02_01", "03_01", "01_02", "02_02", "03_02", "01_03", "02_03", "03_03"))
df
#> column_row
#> 1 01_01
#> 2 02_01
#> 3 03_01
#> 4 01_02
#> 5 02_02
#> 6 03_02
#> 7 01_03
#> 8 02_03
#> 9 03_03
由 reprex package (v2.0.0)
于 2022-02-25 创建
这可能是您获得解决方案的一种方式。
tile = 7
col <- tile%%3
row <- 3 - floor(tile/3)
if (tile%%3 == 0) {
col = 3
row = row + 1
}
sprintf("%02d_%02d", col, row)
#> [1] "01_01"
由 reprex package (v2.0.0)
于 2022-02-28 创建
我有一个尺寸为 72 col × 24 rows 的空间网格。对于这个问题,我尝试创建了一个小的多边形网格(3×3),我希望你也可以在你的电脑上运行。
如您所见,它是一个 3×3 的网格,但是网格单元的编号从最后一行的左下角开始向右下角开始,然后再次从中间行的左侧向右继续。
library(sf)
#> Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 7.0.0; sf_use_s2() is TRUE
url = "https://github.com/Ohm-Np/ex-data/raw/main/vector/test_grid.gpkg"
download.file(url, "../grid.gpkg")
grid <- read_sf("../grid.gpkg")
plot(grid)
由 reprex package (v2.0.0)
于 2022-02-25 创建所以,我的问题是:如何创建另一列(比如)column_row
并存储从左上角向右开始的网格单元格 ID。
这样的结果 (col_number × row_number):
df <- data.frame(column_row = c("01_01", "02_01", "03_01", "01_02", "02_02", "03_02", "01_03", "02_03", "03_03"))
df
#> column_row
#> 1 01_01
#> 2 02_01
#> 3 03_01
#> 4 01_02
#> 5 02_02
#> 6 03_02
#> 7 01_03
#> 8 02_03
#> 9 03_03
由 reprex package (v2.0.0)
于 2022-02-25 创建这可能是您获得解决方案的一种方式。
tile = 7
col <- tile%%3
row <- 3 - floor(tile/3)
if (tile%%3 == 0) {
col = 3
row = row + 1
}
sprintf("%02d_%02d", col, row)
#> [1] "01_01"
由 reprex package (v2.0.0)
于 2022-02-28 创建