将SGDF以5 km * 5km的分辨率重新投影至0.05 * 0.05

时间:2013-03-06 21:37:50

标签: r map-projections spatial-interpolation

请原谅我天真。我在重新投射SGDF时遇到了麻烦。

我有一个xyz(x =经度,y =纬度,z =值)3列数据集。经度和纬度值是EPSG:3035格式的坐标。我将数据帧转换为EPSG中投影的空间分辨率为5 km * 5km的网格:3035。我希望将网格重新投影到EPSG:4326,空间分辨率为0.05 * 0.05。但是我收到以下警告信息:

Warning messages:
1: In spTransform(radon, CRS("+init=epsg:4326")) :   Grid warping not available, coercing to points
2: In spTransform(as(x, "SpatialPixelsDataFrame"), CRSobj, ...) :   Grid warping not available, coercing to points

任何人都可以告诉我,我如何重新投射网格。以下是一个可重复的小例子:

library(sp)
library(rgdal)
library(raster)

x=c(5013500, 5018500, 4883500, 4888500, 4893500, 4898500, 4908500,4948500, 4953500, 4958500, 4963500, 4973500, 4978500, 4988500, 5008500, 5013500, 5028500, 4878500, 4883500, 4888500, 4893500,4898500, 4903500,4928500, 4963500, 4968500, 4973500, 4978500, 4983500, 4988500)

y=c(5395500, 5395500, 5390500, 5390500, 5390500, 5390500, 5390500,5390500, 5390500, 5390500, 5390500, 5390500, 5390500, 5390500, 5390500,5390500, 5390500, 5385500, 5385500, 5385500, 5385500, 5385500, 5385500,5385500, 5385500, 5385500, 5385500, 5385500, 5385500, 5385500)

z=c(1.74, 1.74, 1.82, 1.82, 1.82, 1.81, 1.81, 1.78, 1.77, 1.77, 1.76,1.76, 1.75, 1.74, 1.73, 1.73, 1.72, 1.82, 1.82, 1.81, 1.81, 1.80, 1.80, 1.78, 1.75, 1.75, 1.74, 1.74, 1.73, 1.73)

df1=data.frame(x,y,z)
coordinates(df1) <- c("x", "y")
proj4string(df1)=CRS("+init=epsg:3035")
gridded(df1)=TRUE
fullgrid(df1)=TRUE

getGridTopology(df1)

                     x       y
cellcentre.offset 4878500 5385500
cellsize             5000    5000
cells.dim              31       3

newgrid = spTransform(df1, CRS("+init=epsg:4326"))

好吧,多亏Paul,我能够使用 gdalwarp 重新投影网格。但是,空间分辨率仍然不同:

    Coordinates:
    min      max
x -31.34409 50.36650
y  34.07928 71.87206
Is projected: FALSE 
proj4string :
[+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0]
Grid attributes:
       cellcentre.offset   cellsize cells.dim
x         -31.31151 0.06515996      1254
y          34.11186 0.06515996       580
Data attributes:
Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
-0.11290  0.00000  0.00000  0.06136  0.00000  1.90300 

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您收到此消息是因为在重新投影之后,lat-lon中常规网格上的位置不再是另一个投影系统中的常规网格。重投影步骤不保持规则性,因为对于许多投影,lat-lon和投影系统之间的变化不是恒定的。因此,失真或变化在一个区域中比在另一个区域中更大,从而导致非规则网格。想象一下,拉长的网格正方形在投影系统中变成非正方形。

最简单的解决方案是首先将点投影到EPSG:4326,然后执行插值步骤。我不确定你使用哪种插值程序,但是gstat不支持lat-lon中的插值。因此,在插入数据之前,转到预计的系统而不是lat-lon总是一个安全的选择。

如果您确实需要重新投影网格,则需要进行某种插值。您可以做两件事:使用gdalwarp之类的工具来执行坐标转换以及随后对生成的网格进行扭曲。或者,您可以使用例如非规则网格将非规则网格插入到常规网格中。最近邻居或任何你喜欢的插值程序。