Comment créer un raster en brique avec des trames de différentes extensions?

Je suis nouveau dans R ainsi, cette question est très basique, mais j'ai eu du mal avec elle et ne pouvait pas trouver une solution qui a fonctionné. Je veux créer un raster de briques à partir de quelques images landsat de la même région.
Ils ont été téléchargés dans HDF-EOS format, et j'ai utilisé le Modis Reprojection Outil pour les convertir en .tif.

La résultante des rasters ont la même projection, mais diffèrent dans leur étendue, de la résolution et de l'origine.

J'ai essayé plusieurs approches, résumés ci-dessous:

  1. la définition d'un sous-ensemble de mesure manuellement et. tous les rasters. Ensuite, essaie de faire une brique avec le sous-ensemble des rasters
  2. Le rééchantillonnage des rasters, de leur donner le même nombre de colonnes et de lignes. Idéalement, qui permettrait d'assurer la trame cellules sont alignées et peut être mis dans un raster de la brique. Cette option a créé une brique où les rasters avait pas de valeur, ils étaient vides.

Je me demande quel est le concept que je devrais suivre pour corriger la mesure. Serait-il correct (et efficace) pour créer un vide raster que je voudrais remplir plus tard avec les valeurs de la importées image landsat? Pouvez-vous voir où je fais une erreur?
Dans le cas où il est pertinent, je suis en train de travailler sur un Version Mac OSX 10.9.1, et à l'aide de rgdal version 0.8-14

Toute aide sera très appréciée!

Merci

J'ajoute ici le code que j'ai été en utilisant:

# .tif files have been creating using the Modis Reprojection Tool. Input
# files used for this Tool was LANDSAT HDF-EOS imagery.
library(raster)
library(rgdal)
setwd()=getwd()
# Download the files from dropbox:
dl_from_dropbox <- function(x, key) {
require(RCurl)
bin <- getBinaryURL(paste0("https://dl.dropboxusercontent.com/s/", key, "/", x),
ssl.verifypeer = FALSE)
con <- file(x, open = "wb")
writeBin(bin, con)
close(con)
message(noquote(paste(x, "read into", getwd())))
}
dl_from_dropbox("lndsr.LT52210611985245CUB00-vi.NDVI.tif", "qb1bap9rghwivwy")
dl_from_dropbox("lndsr.LT52210611985309CUB00-vi.NDVI.tif", "sbhcffotirwnnc6")
dl_from_dropbox("lndsr.LT52210611987283CUB00-vi.NDVI.tif", "2zrkoo00ngigfzm")
# Create three rasters
tif1 <- "lndsr.LT52210611985245CUB00-vi.NDVI.tif"
tif2 <- "lndsr.LT52210611985309CUB00-vi.NDVI.tif"
tif3 <- "lndsr.LT52210611987283CUB00-vi.NDVI.tif"
r1 <- raster(tif1, values=TRUE)
r2 <- raster(tif2, band=1, values=TRUE)
r3 <- raster(tif3, band=1, values=TRUE)
### Display their properties
# projection is identical for the three rasters
projection(r1)
# "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
projection(r2)
projection(r3)
# Extents are different
extent(r1)
# class       : Extent 
# xmin        : -45.85728 
# xmax        : -43.76855 
# ymin        : -2.388705 
# ymax        : -0.5181549
extent(r2)
# class       : Extent 
# xmin        : -45.87077 
# xmax        : -43.78204 
# ymin        : -2.388727 
# ymax        : -0.5208711 
extent(r3)
# class       : Extent 
# xmin        : -45.81952 
# xmax        : -43.7173 
# ymin        : -2.405129 
# ymax        : -0.5154312
# origin differs for all
origin(r1)
# 5.644590e-05 -8.588605e-05
origin(r2)
# 0.0001122091 -0.0001045107
origin(r3)
# 6.949976e-05 -5.895945e-05
# resolution differs for r2
res(r1)
# 0.0002696872 0.0002696872
res(r2)
# 0.0002696875 0.0002696875
res(r3)
# 0.0002696872 0.0002696872
## Try different approaches to create a raster brick
# a- define a subset extent, and subset all the rasters
plot(r1, main="layer1 NDVI")
de <- drawExtent(show=TRUE, col="red")
de
# class       : Extent 
# xmin        : -45.36159 
# xmax        : -45.30108 
# ymin        : -2.002435 
# ymax        : -1.949501
e <- extent(-45.36159,-45.30108,-2.002435,-1.949501)
# Crop each raster with this extent
r1c <- crop(r1,e)
r2c <- crop(r2,e)
r3c <- crop(r3,e)
# Make raster brick
rb_a <- brick(r1c,r2c,r3c)
# Error in compareRaster(x) : different extent
# b- Resample each raster
s <- raster(nrow=6926, ncol=7735)  # smallest nrow and ncol among r1,r2 and r3
r1_res <- resample(r1,s, method="ngb")
r2_res <- resample(r2,s, method="ngb")
r3_res <- resample(r3,s, method="ngb")
# Resampling gives for the three rasters the following message:
# Warning message:
#   In .local(x, y, ...) :
#   you are resampling y a raster with a much larger cell size, 
#   perhaps you should use "aggregate" first
# Make raster brick
rb_c <- brick(r1, r2, r3)
# Error in compareRaster(x) : different extent
Je pense que vous avez oublié de charger library(RCurl)?
avez-vous essayé d'utiliser projectRaster() place de resample dans votre méthode b?

OriginalL'auteur user3127517 | 2013-12-22