首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从R中的空间点数据中删除第二行和第二列

从R中的空间点数据中删除第二行和第二列
EN

Stack Overflow用户
提问于 2021-03-09 18:02:53
回答 2查看 103关注 0票数 0

我已将光栅转换为R中的点矩阵,该文件有3列,x (lon)、y (lat)和v(像素值)--我现在希望删除图像左上角所示的每二列x和每一行y,但不知道如何做到这一点。这样做的目的是在不进行插值或重采样的情况下对数据进行细化。

如图所示的示例数据可以在这里访问:https://drive.google.com/file/d/1XGEPsPEyrVNLEcZy-C6ES5915kWIaqGz/view?usp=sharing

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-10 02:20:26

当问R问题时,请始终包括一个最小的可重复的、自成一体的示例,即显示一些代码,并且不依赖必须下载的文件。

当您开始使用光栅数据时,在创建点之前可能最容易操作光栅数据。

使用raster包:

示例数据

代码语言:javascript
复制
library(raster)
r <- raster(nrow=20, ncol=20, xmn=0, xmx=1, ymn=0, ymx=1, crs="+proj=utm +zone=1 +datum=WGS84")
values(r) <- 1:ncell(r)

p <- rasterToPoints(r)
plot(r)
points(p, cex=.5)

解决方案

代码语言:javascript
复制
i <- seq(1, nrow(r), 2)
j <- seq(1, ncol(r), 2)
r[i,] <- NA
r[, j] <- NA
pp <- rasterToPoints(r)
points(pp, pch=20, cex=2)

或者使用terra包:

代码语言:javascript
复制
library(terra)
r <- rast(nrow=20, ncol=20, xmin=0, xmax=1, ymin=0, ymax=1, crs="+proj=utm +zone=1 +datum=WGS84")
values(r) <- 1:ncell(r)
p <- as.points(r)

plot(r)
points(p, cex=.5)

i <- seq(1, nrow(r), 2)
j <- seq(1, ncol(r), 2)
r[i,] <- NA
r[, j] <- NA
pp <- as.points(r)

points(pp, pch=20, cex=2)

票数 1
EN

Stack Overflow用户

发布于 2021-03-09 18:12:59

这行得通吗?如果没有可重复的示例和所需的输出,很难知道要操作什么,但是这应该会从矩阵中删除偶数行和列。

代码语言:javascript
复制
library(dplyr)
matrix(1:100, nrow = 10) %>%
  as.data.frame() %>%
  filter(row_number() %% 2 != 0) %>%
  select(seq(1, ncol(.), 2)) %>%
  as.matrix()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66552358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档