计算纬度余弦作为栅格降水值的权重

时间:2020-03-27 03:18:40

标签: r

我正在使用包含栅格化降水数据(1402层的8192个栅格像元)的栅格砖。但是,由于极点附近的面积比赤道附近的面积大,因此有必要使用纬度余弦来施加权重。但是,我收到的值很奇怪,不确定我是否正确执行了此操作。我想将这些权重应用于140层每一层的每个网格单元。到目前为止,这是我所做的:

Model2 <- brick("MaxPrecCCCMACanESM21pctCO2.nc", var="onedaymax")
new <- rasterToPoints(Model2)
weight<- cos(new[,"y"]*(pi/180))
newprec <- apply(new[,3:ncol(new)], 2, function(x) x * weight)

以下是前几个网格单元的派生降水值:

> newprec
              X1           X2           X3           X4           X5           X6           X7           
X8
[1,]   0.27567528   0.24205794   0.27703410   0.25225538   0.43462864   0.26681639   0.52068429   
0.30341760
[2,]   0.27127565   0.23553404   0.31334782   0.22269904   0.46649158   0.27605592   0.57219751   
0.29737593
[3,]   0.25791578   0.22808846   0.35357911   0.23320888   0.50118092   0.28115661   0.40429370   
0.31467036
[4,]   0.24726204   0.23485372   0.38576613   0.25100560   0.53510838   0.28291017   0.46415740   
0.31253770
[5,]   0.26043152   0.26307936   0.41757709   0.29961563   0.56215398   0.28584261   0.44126914   
0.31707329
[6,]   0.27163764   0.28184050   0.45071078   0.31253864   0.58024153   0.28563418   0.33270020   
0.35154895
[7,]   0.29662650   0.28822337   0.52179242   0.33481873   0.57810949   0.28326347   0.31865999   
 0.30893378
    X9          X10          X11          X12          X13          X14          X15          X16
[1,]   0.29551221   0.38643225   0.31908628   0.20627933   0.39268046   0.45240661   0.3316521 
0.37557260
[2,]   0.29968592   0.36144125   0.34942253   0.22403266   0.38389816   0.47353695   0.35494386   
0.41303691
[3,]   0.30398685   0.37758057   0.37552215   0.24564733   0.35611095   0.47643618   0.33604546   
0.42336511
[4,]   0.32420756   0.37371012   0.39471952   0.26249758   0.32805687   0.45818970   0.42707286   
0.44590961
[5,]   0.33468238   0.36156798   0.38230730   0.28380474   0.35848330   0.42909070   0.42969315   
0.48266150
[6,]   0.33470307   0.37452035   0.40623552   0.30364748   0.34336817   0.41937878   0.42803487   
0.51959504
[7,]   0.32599735   0.35396442   0.40487938   0.31876450   0.33019248   0.38832444   0.42091250   
0.56627930

这些值似乎很低,所以我不确定是否正确执行了此操作?

我们将不胜感激!

谢谢

1 个答案:

答案 0 :(得分:0)

请始终提供一个简单的可独立复制的示例。

difference = (df.loc[0, 'timestamp'] - df.loc[1, 'timestamp']).total_seconds()

获取每个网格单元的面积

library(raster)
r <- raster(res=10)
values(r) <- 1:ncell(r)

或者按照逻辑,使用余弦

a <- area(r)
plot(a)

要应用这些权重,您可以

lat <- init(r, "y") * (pi/180)
clat <- cos(lat)
plot(clat)

也许您然后想做这样的事情

rw <- r * clat 

然后使用s <- stack(rw, r) 计算加权值和权重的区域总和,然后将它们相除以得到加权平均值。

相关问题