2013-03-06 32 views
0

請原諒我的天真。我在重新投標SGDF時遇到了麻煩。5公里* 5公里分辨率的重新項目SGDF到0.05 * 0.05

我有一個xyz(x =經度,y =緯度,z =值)3列數據集。經度和緯度值是EPSG:3035格式的座標。我將數據幀轉換成EPSG:3035中預測的空間分辨率爲5公里* 5公里的網格。我希望將網格重新投影到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")) 

好了,感謝保羅,我是能夠重新使用項目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

您會收到此消息,因爲再投影后,經常在經緯網格上的點不再是另一個投影系統中的規則網格。重投影步驟並不能保持規律性,因爲對於很多預測來說,經緯度和投影系統之間的變化並不是恆定的。因此,一個區域的變形或變化比另一個區域更大,導致非規則的網格。想象一下,在投影系統中,經緯度網格的正方形變成非正方形。

最簡單的解決方案就是先將點投影到EPSG:4326,然後執行插值步驟。我不確定您使用哪個插值例程,但例如gstat不支持lat-lon的插值。因此,在內插數據之前,先投影一個投影系統,而不是經緯度,總是一個安全的選擇。

如果您確實需要重新投影網格,則需要進行某種插值。你做了兩件事:使用像gdalwarp這樣的工具,它可以執行座標變換以及隨後生成的網格的變形。或者,可以使用例如內插法將非規則網格內插到規則網格。最近的鄰居或任何你喜歡的插值程序。

+0

感謝Paul,您的快速回復。插值是在EPSG 3035投影的網格上進行的。這是否意味着我還應該重新投影網格以執行插值?那麼它會再次回到這個問題上?我如何重新投影網格? – Nav 2013-03-06 21:55:26

+0

將所有點數據集投影到目標投影中是最簡單的,這是最簡單的。我會在上面的答案中編輯更多信息。 – 2013-03-06 22:07:02

+0

如果我錯了,請糾正我。數據集本身是Lon Lat和相應值的插值,可以將其轉換爲規則網格。如果我希望重新投影插入的網格,我是否應該再次在插值上使用另一個插值例程,例如gstat中的idw()。 – Nav 2013-03-06 22:29:48