2017-04-30 1 views
0

Ici, j'essaie d'importer des fichiers tiff d'images CT vers R pour analyse. J'ai environ 250 fichiers tiff que j'essaie d'analyser en boucle. L'analyse commence par recadrage, puis par seuillage, puis calcul de la porosité en fonction des valeurs d'intensité des pixels. Actuellement, je reçois cette erreur:Fichier introuvable dans la boucle R raster

Error in .rasterObjectFromFile(x, band = band, objecttype = "RasterLayer", : Cannot create a RasterLayer object from this file. (file does not exist)

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


    `project_files <- dir("/Users/Rob/Documents/BMBT5130/Data") 
    for (jj in 1:length(mget(project_files))) { 
    x[jj] <- raster(paste0(project_files[jj])) 
    x1 <- crop(x, extent(800,1600,700,1600)) 
    x[x<=35]=0 
    plot(x1) 
    Porosity[jj] <- (length(x1[x1<=35]))/length(x1[x1>=0])` 

Le répertoire de travail est le répertoire utilisé ci-dessus

Sessioninfo:

R version 3.3.3 (2017-03-06) Platform: x86_64-apple-darwin13.4.0 (64-bit) Running under: OS X El Capitan 10.11.6

locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages: [1] stats graphics grDevices utils datasets methods base

other attached packages: [1] RBioFormats_0.0.30 rJava_0.9-8 EBImage_4.16.0 imager_0.40.2 magrittr_1.5 [6] plyr_1.8.4 ROI_0.2-1 rgdal_1.2-6 raster_2.5-8 sp_1.2-4 [11] tiff_0.1-5

loaded via a namespace (and not attached): [1] Rcpp_0.12.10 knitr_1.15.1 BiocGenerics_0.20.0 lattice_0.20-35 jpeg_0.1-8 [6] stringr_1.2.0 tools_3.3.3 parallel_3.3.3 grid_3.3.3 png_0.1-7 [11] registry_0.3 abind_1.4-5 bmp_0.2 purrr_0.2.2 fftwtools_0.9-8 [16] slam_0.1-40 readbitmap_0.1-4 stringi_1.1.5 locfit_1.5-9.1

Toute aide la fixation de ce sera très appréciée.
Best,
Rob

+0

Essayez de remplacer 'dir' par' list.files'. – www

+0

Merci, l'erreur que je reçois maintenant est 'Erreur: valeur pour' File1.tif 'pas trouvé' – Rob

+2

try 'list.files ("/Users/Rob/Documents/BMBT5130/Données ", full.names = T, modèle = "tif $") ' – maRtin

Répondre

1

Comme déjà mentionné dans les commentaires:

list.files("/Users/Rob/Documents/BMBT5130/Data", full.names=T, pattern="tif$") 

devrait faire votre travail de code. Veillez à définir full.names=T pour vous assurer d'obtenir le nom complet du chemin d'accès et, si vous travaillez avec des fichiers woth tif, ne pensez qu'à rechercher des fichiers se terminant par "tif" (c'est-à-dire exclure les fichiers tix.aux).