2017-12-13 4 views
-1

Ich versuche, eine globale Karte von sinusförmigen zu WGS84 zu konvertieren. Ich benutze projectRaster im Raster-Paket. Das ursprüngliche Raster ist hier:Konvertieren Sie globale Karte von sinusoidal zu wgs84 mit Projectraster und ein Teil der Daten fehlen

> ras_sinu 
class  : RasterLayer 
dimensions : 33600, 86400, 2903040000 (nrow, ncol, ncell) 
resolution : 463.3127, 463.3127 (x, y) 
extent  : -20015109, 20015109, -6671703, 8895604 (xmin, xmax, ymin, ymax) 
coord. ref. : +proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6371007.181 +b=6371007.181 +units=m +no_defs 
data source : C:\Users\jw2495\Desktop\Gap-filling\MODIS_fPAR\2015.01.09\sinu.tif 
names  : sinu 
values  : 0, 1 (min, max) 

plot here

Und ich

llprj <- "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +towgs84=0,0,0" 
ras_wgs84=projectRaster(ras_sinu, crs=llprj) 

hier die Ergebnisse erhalten:

> ras_wgs84 
class  : RasterLayer 
dimensions : 33583, 85106, 2858114798 (nrow, ncol, ncell) 
resolution : 0.00423, 0.00417 (x, y) 
extent  : -179.9998, 179.9986, -60.02026, 80.02085 (xmin, xmax, ymin, ymax) 
coord. ref. : +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +towgs84=0,0,0 
data source : C:\Users\jw2495\AppData\Local\Temp\RtmpEPstLE\raster\r_tmp_2017-12-13_123847_5260_78184.grd 
names  : sinu 
values  : 0, 1 (min, max) 

plot here

Ein Teil der Daten scheint zu fehlen. Weiß jemand, was passiert ist? Vielen Dank im Voraus!

Antwort

0

Hier ist ein reproduzierbares Beispiel auf Informationen basieren, die schlägt vor, dass es funktioniert:

Beispieldaten:

library(raster) 
library(maptools) 
sincrs <- "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6371007.181 +b=6371007.181 +units=m" 
llcrs <- "+proj=longlat +ellps=WGS84 +datum=WGS84" 
data(wrld_simpl) 
w <- spTransform(wrld_simpl, sincrs) 
ras_sinu <- raster(nrow=336, ncol=864, ext=extent(-20015109, 20015109, -6671703, 8895604), crs=sincrs) 
rs <- rasterize(w, ras_sinu) 
plot(rs) 

Transformation:

rll <- projectRaster(rs, crs=llcrs) 
plot(rll) 

Vielleicht haben Sie raster aktualisieren müssen. Dies ist mit

packageVersion("raster") 
#[1] ‘2.6.7’ 
+0

Danke dude! Eigentlich habe ich versucht, die Originaldaten zuerst von einer Auflösung von 500m auf 5km zu aggregieren und dann den projectRaster zu verwenden. Und es ging gut. Ich vermute, dass es eine Frage der großen Anzahl von Pixeln ist. Versuchen Sie es mit 33600 * 86400? –

+0

hast du das versucht? – RobertH

+0

Hallo! Ich habe es mit 33600 * 86400 versucht. Es scheint gut zu funktionieren. Obwohl es zuletzt zeigt: Fehler in der Basis :: rowSums (x, na.rm = na.rm, Dims = Dims, ...): 'Calloc' konnte nicht zuordnen Speicher (2468074 von 16 Bytes) beim Ausführen von Projektraster, Die Handlung ist abgeschlossen. –

Verwandte Themen