Probléme de mémoire avec R

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Adama FAYE
Messages : 22
Enregistré le : 01 Juil 2013, 23:40

Probléme de mémoire avec R

Messagepar Adama FAYE » 06 Juin 2014, 11:23

Je suis sous window et j'utilise Rstudio pour faire de la modélisation de niche avec, les packages raster et dismo. Pour decouper mes couches spatiales j'utilise un programme que j'ai fait:

Code : Tout sélectionner

require (raster)
require (SDMTools)
require(adehabitat)
library(ade4) # livre de recettes analyses multivariées
setwd("C:/Users/faye/......") # Définit répertoire de travail
##Clippage des couches##.........faye/Desktop/6K", pattern='.tif', full.names=TRUE)
Bio.LIG
rasterBio=list();
length(rasterBio)=length(Bio.LIG)
for (i in 1 : length(Bio.LIG)) {
  rasterBio[[i]]=raster(Bio.LIG[[i]])
  cat(i,"\n")
}
afrique<- shapefile("C:/Users/....../shp ocean afrique/ocean afrique2.shp")
ex<-extent(1,20,-10,12) # extension de l'aire d'interet
Maskocean<- crop(afrique,ex,snap= "out")
# masquer toutes les couches
maskBio<-list(); length(maskBio)=length(rasterBio)
cropBio<-list();length(cropBio)=length(rasterBio)
for (i in 1: length(rasterBio)){
  maskBio[[i]]<-mask(rasterBio[[i]], Maskocean,inverse=T, snap='out')# en 1er
  cropBio[[i]]<- crop(maskBio[[i]], ex, snap= "out")#en sd
  cat(i,"\n")
  plot (cropBio[[i]])
}
# exporter les rasters decoupes
ascBio=list();length(ascBio)=length(cropBio)
for (i in 1: length(cropBio)){
  write.asc(asc.from.raster( cropBio[[i]]),paste("C:/Users/......./bio",i,".asc",sep="" ))
  ascBio[[i]]<-read.asc(paste("C:/Users/......../bio",i,".asc",sep=""))
  cat(i,"\n")
}
Mais quand je lance le programme sur les couches spatiales sur toute la couverture terrestre, R prend tout mon disque dure et le programme finit par buguer par manque d'espace dans le disque dure. je ne comprends pas ce qui est à l'origine et meme si le programme je n'arrive plus a récuperer de l'espace. Aide svp!!

Jean-Emmanuel Longueville
Messages : 314
Enregistré le : 23 Fév 2011, 08:03

Messagepar Jean-Emmanuel Longueville » 10 Juin 2014, 09:27

Dans votre boucle for vous écrivez une grande quantitée de fichier une possibilité serait de compresser chaque fichier une fois écrit.
Pour récupérer l'espace supprimer les fichiers asc qui sont écrit dans votre system.
Pour vous aider un peu plus connaitre votre OS peut être utile
Jean-Emmanuel
Ingénieur d'étude LNEC


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité