UTM的范围和纬度的投影

问题描述

我有一个具有4层的栅格,我想将范围转换为lon / lat以便进行提取,但是点和栅格的投影或范围不匹配。你能帮我吗?

pp.an
class      : RasterBrick 
dimensions : 530,748,396440,4  (nrow,ncol,ncell,nlayers)
resolution : 1000,1000  (x,y)
extent     : 133000,881000,225000,755000  (xmin,xmax,ymin,ymax)
crs        : +proj=longlat +datum=wgs84 +ellps=wgs84 +towgs84=0,0 
source     : memory
names      :       X01,X02,X03,X04 
min values :  13.12333,12.16333,16.02000,13.00667 
max values :  75.00333,65.92000,88.52333,100.46333 
           : 01,02,03,04 
pshp
class       : SpatialPoints 
features    : 5 
extent      : 27.25892,27.38349,44.43456,44.55279  (xmin,ymax)
crs         : +proj=longlat +datum=wgs84 +ellps=wgs84 +towgs84=0,0 
pshp<- data.frame(Y =  c(44.548684,44.533389,44.537298,44.4345597,44.552794),X = c(27.258922,27.282476,27.347930,27.331980,27.383491))
coordinates(pshp) <- ~X+Y
proj4string(pshp)<- CRS("+init=epsg:4326")
pshp1 <- spTransform(pshp,projection(p.p))

crs(pshp) <-"+proj=longlat +datum=wgs84 +ellps=wgs84 +towgs84=0,0"
projectRaster(pp.an,crs = projection(pshp))
ex <- extract(pp.an,pshp1)

解决方法

  1. 要从具有不同crs的栅格中提取点的值,应该转换点而不是栅格(以避免精度损失)。

  2. 您显示pp.an的crs设置为+proj=longlat +datum=WGS84。鉴于您说这是UTM且133000,881000,225000,755000

    的范围,这显然是错误的

所以首先您需要设置正确的crs

crs(pp.an) <- "+proj=utm +zone=??? +datum=WGS84"
 

然后变换点

pshp1 <- spTransform(pshp,projection(pp.an))

然后使用extract

e <- extract(pp.an,pshp1)