problème de boucle

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

marie-soleil fradette
Messages : 3
Enregistré le : 07 Juil 2017, 15:08

problème de boucle

Messagepar marie-soleil fradette » 10 Juil 2017, 16:02

Bonjour,
Je débute avec l’utilisation de R. J’essaie d’utiliser des fonctions du package Rlas et j’ai un peu de difficulté. Pour l’utilisation des fonctions sur un fichier LAS spécifique je n’aie aucun problème. Par contre, ce que je voudrais, ces utiliser les fonctions en boucle sur plusieurs fichiers d’un dossier. Je crois donc que mon problème vient de l’utilisation des boucles. J’ai essayé de trouver des réponses sur des forums, mais je n’aie pas réussi à régler mon problème. Je n’arrive pas à programmer les fonctions pour qu’il recommence en boucle jusqu’à ce que tous les fichiers de mon dossier soit passés

Voici mon essaie:
library(lidR)
library(rlas)
library(plyr)
library(Matrix)

files<-catalog("E:/Hauteur/las")
#le chemin pour le fichier est dans la colonne 34 du catalogue.
n<-nrow(files)
for (i in 1:n) {
fichier[i]<-readlasdata("files[i,34]")
header[i]<-readlasheader("files[i,34]")
temps.unique <- count (fichier[i][[4]])
num.lignes <- match (temps.unique$x, fichier[i][[4]])
num.lignes2 <- matrix(num.lignes, nrow = length(num.lignes),ncol = 1)
fichier[i][,11]<-c(1:100000000)
fichier[i][[10]] <- ifelse(fichier[i][[11]] %in% num.lignes2[,1], 9, 0)
fichier[i][[5]] <- ifelse(fichier[i][[10]]==9& fichier[i][[6]]==1,100,0)


writelas(fichier[i], header[i], fichier[i][[1]], fichier[i][[2]], fichier[i][[3]], fichier[i][[4]], fichier[i][[5]], fichier[i][[6]], fichier[i][[7]], fichier[i][[8]], fichier[i][[9]], fichier[i][[10]], fichier[i][[11]], fichier[i][[12]], fichier[i][[13]])
}

Je ne sais pas si vous pouvez m’aider.
Merci beaucoup
Bonne journée

Eric Casellas
Messages : 767
Enregistré le : 06 Jan 2009, 14:59

Re: problème de boucle

Messagepar Eric Casellas » 11 Juil 2017, 07:29

Bonjour,

On ne sais pas quel genre de problème tu as (ce qui pourrai être pratique), mais a première vue comme ça je dirais que dans ton code pour l'appel des fonctions readlasdata et readlasheader ce n'est pas la chaîne de charactere "files[i,34]" que tu veux utiliser mais plutôt celle contenue dans l'objet files (il ne faut donc pas mettre de ")...

Eric
Eric


Retourner vers « Questions en cours »

Qui est en ligne

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