首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >光栅::焦点返回不正确的值

光栅::焦点返回不正确的值
EN

Stack Overflow用户
提问于 2017-01-02 07:36:43
回答 1查看 220关注 0票数 1

我正在使用光栅软件包v2.5-8的焦距函数来获得3x3窗口中的最大值。我期望两行/列的边以NA的形式返回,相反,返回的输出是9,9,9。这是正确的吗?

示例:

代码语言:javascript
复制
library(raster); require(rasterVis)
r <- raster(nrows=3, ncols=3)
r[] <- 1:ncell(r)
plot(r);text(r);
r.class <- focal(r, w=matrix(1,nrow=3,ncol=3), fun=max) 
plot(r.class); text(r.class);

输出:

代码语言:javascript
复制
     [,1] [,2] [,3]
[1,]   NA   NA   NA
[2,]    9    9    9
[3,]   NA   NA   NA

预期输出:

代码语言:javascript
复制
       [,1] [,2] [,3]
[1,]   NA   NA   NA
[2,]   NA    9   NA
[3,]   NA   NA   NA
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-02 18:51:53

得到这个结果是因为地球的“左”和“右”边(经度= -180或180)是相同的位置。

代码语言:javascript
复制
library(raster)
r <- raster(nrows=3, ncols=3)
r[] <- 1:ncell(r)
as.matrix(r)

##     [,1] [,2] [,3]
## [1,]    1    2    3
## [2,]    4    5    6
## [3,]    7    8    9

rf <- focal(r, w=matrix(1,nrow=3,ncol=3), fun=max) 
as.matrix(rf)

##     [,1] [,2] [,3]
## [1,]   NA   NA   NA
## [2,]    9    9    9
## [3,]   NA   NA   NA

默认的CRS是lonlat。

代码语言:javascript
复制
crs(r)

## CRS arguments:
## +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 

有了平面CRS,你就能得到你所期望的:

代码语言:javascript
复制
crs(r) <- "+proj=utm +zone=1 +datum=WGS84"
rf2 <- focal(r, w=matrix(1,nrow=3,ncol=3), fun=max) 
as.matrix(rf2)

##     [,1] [,2] [,3]
## [1,]   NA   NA   NA
## [2,]   NA    9   NA
## [3,]   NA   NA   NA
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41422941

复制
相关文章

相似问题

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