R 从光栅中删除异常值

R 从光栅中删除异常值,r,raster,boxplot,outliers,R,Raster,Boxplot,Outliers,我想知道是否有可能从光栅数据集中删除异常值 >库(光栅) >ras箱线图(ras) >摘要(ras) 08_sa.tif 最小值-6.010734e+17 第一区-4.292327e+15 中位数3.456345e+15 第三区5.913508e+15 最大值3.954778e+17 NA的0.000000e+00 >dput(ras) 不,不,不,不,不,不,不,不,不,不,不,不,不,不,不, 不,不,不,不,不,不,不,不,不,不,不,不,不,不,不, 不,不,不,不,不,不,不,不,不,

我想知道是否有可能从光栅数据集中删除异常值

>库(光栅)
>ras箱线图(ras)
>摘要(ras)
08_sa.tif
最小值-6.010734e+17
第一区-4.292327e+15
中位数3.456345e+15
第三区5.913508e+15
最大值3.954778e+17
NA的0.000000e+00
>dput(ras)
不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,
不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,
不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不
),偏移量=0,增益=1,内存=TRUE,从磁盘=FALSE,
isfactor=FALSE,attributes=list(),haveminmax=TRUE,
最小值=213381595136,最大值=395477771117133824,频带=1L,
unit=“”,name=“Data”),图例=新(“.RasterLegend”,
类型=字符(0),值=逻辑(0),颜色=逻辑(0),
名称=逻辑(0),颜色表=逻辑(0)),标题=字符(0),
区段=新的(“区段”,xmin=60.514678955,xmax=97.416931152,
ymin=-0.701358795,ymax=38.49804306),旋转=FALSE,
旋转=新(“.rotation”,geotrans=数值(0),transfun=函数()
空),ncols=369L,nrows=392L,crs=new(“crs”,projargs=“+proj=longlat+datum=WGS84+no_defs+ellps=WGS84+towgs84=0,0,0”),
历史=列表(),z=列表())

>as.data.frame(ras,xy=TRUE)->df.ras
>colnames(df.ras)df.ras$value[!df.ras$value%in%boxplot.stats(df.ras$value)$out]->否大纲视图
>箱线图(大纲视图编号)
>绘图(大纲视图编号)
>摘要(编号:大纲视图)
最小第一个曲中位数平均第三个曲最大NA's
2.134e+11 3.315e+15 5.084e+15 4.936e+15 6.538e+15 1.145e+16 113153
如果没有离群值,“否。离群值”已失去其地理位置 在删除异常值之前绘制“ras”

尝试以下操作:

# load package raster
library(raster)

# load your data
ras <- raster("08_sa.tif")

# make a df
as.data.frame(ras,xy=TRUE) -> df.ras

# adjust col names
colnames(df.ras) <- c("x","y","value")

# remove outliner
df.ras$value[!df.ras$value %in% boxplot.stats(df.ras$value)$out] -> no.outliner

# draw boxplot without outliner 
boxplot(no.outliner)
#加载包光栅
图书馆(光栅)
#加载数据
ras df.ras
#调整列名称
colnames(df.ras)编号大纲视图
#不使用大纲视图绘制箱线图
箱线图(大纲视图编号)
试试这个:

# load package raster
library(raster)

# load your data
ras <- raster("08_sa.tif")

# make a df
as.data.frame(ras,xy=TRUE) -> df.ras

# adjust col names
colnames(df.ras) <- c("x","y","value")

# remove outliner
df.ras$value[!df.ras$value %in% boxplot.stats(df.ras$value)$out] -> no.outliner

# draw boxplot without outliner 
boxplot(no.outliner)
#加载包光栅
图书馆(光栅)
#加载数据
ras df.ras
#调整列名称
colnames(df.ras)编号大纲视图
#不使用大纲视图绘制箱线图
箱线图(大纲视图编号)

我查看直方图和箱线图,注意到异常值范围,并使用重新分类删除。再次感谢@val您的重新分类提示在r中是值得的

> x1 <- reclassify(ras, cbind(1.5e+16,Inf, NA), right=FALSE) 
> spplot(x1)
> boxplot(x1)
> hist(x1)
>x1-spplot(x1)
>箱线图(x1)
>历史(x1)

我查看了直方图和箱线图,注意到了异常值的范围,并使用重新分类删除了异常值。再次感谢@val您的重新分类提示在r中是值得的

> x1 <- reclassify(ras, cbind(1.5e+16,Inf, NA), right=FALSE) 
> spplot(x1)
> boxplot(x1)
> hist(x1)
>x1-spplot(x1)
>箱线图(x1)
>历史(x1)

您能发布08_sa.tif吗?它发布在链接数据中下载数据的链接不是好做法。如果可能,请使用
dput
,或者生成一个小的测试数据集来再现您的问题/question@val这是一个只有234 kb大小的测试数据集。问题已用dput更新。@Dipu它与大小无关,只是让人们可以方便(安全)地帮助您。顺便说一句,请发布
dput(ras)
not
dput(ras[1:10,1:10])
的输出。你能发布08_sa.tif吗?它发布在链接数据中下载数据的链接不是好做法。如果可能,请使用
dput
,或者生成一个小的测试数据集来再现您的问题/question@val这是一个只有234 kb大小的测试数据集。问题已用dput更新。@Dipu它与大小无关,只是让人们可以方便(安全)地帮助您。顺便说一句,请发布
dput(ras)
not
dput(ras[1:10,1:10])
的输出。我认为它删除了异常值,但失去了地理位置。我认为它删除了异常值,但失去了地理位置