Sto scrivendo uno script di processing che dovrebbe applicare la stessa operazione matematica a ogni raster che si trova in una qualsiasi cartella.
Per comodità descrivo solo la parte che mi crea problemi nello script, spero possa bastare
Come prima cosa ho provato a settare la cartella con i file
Ciao Giacomo,
hai verificato se la variabile pathIn contiene un path valido di una cartella (e non di un file) prima dell'inizio del ciclo for?
In questo caso, puoi provare che os.listdir funzioni correttamente eseguendo nella console di Python:
for myFile in os.listdir(folderpath):
print(myFile)
Se tutto funziona come dovrebbe, allora probabilmente il problema è nel codice interno al ciclo for.
A presto.
Andrea
Il 09/02/2022 19:05, Giacomo Fontanelli ha scritto:
Salve a tutti
Sto scrivendo uno script di processing che dovrebbe applicare la stessa operazione matematica a ogni raster che si trova in una qualsiasi cartella.
il problema sta nel fatto che nonostante io creda di aver fornito il path di una cartella in verità mi viene riconosciuto solo l’ultimo file presente in questa.
Ci devo lavorare.
Grazie
Il giorno mer 9 feb 2022 alle ore 20:53 Andrea Giudiceandrea <andreaerdna@libero.it> ha scritto:
Ciao Giacomo,
hai verificato se la variabile pathIn contiene un path valido di una
cartella (e non di un file) prima dell’inizio del ciclo for?
In questo caso, puoi provare che os.listdir funzioni correttamente
eseguendo nella console di Python:
for myFile in os.listdir(folderpath):
print(myFile)
Se tutto funziona come dovrebbe, allora probabilmente il problema è nel
codice interno al ciclo for.
A presto.
Andrea
Il 09/02/2022 19:05, Giacomo Fontanelli ha scritto:
Salve a tutti
Sto scrivendo uno script di processing che dovrebbe applicare la
stessa operazione matematica a ogni raster che si trova in una
qualsiasi cartella.
inizia con stampare sulla consolle i valori pathIn e della lista per vedere se sono corretti
Ciao Marco,
credo che il tuo consiglio sia lo stesso che ho dato io. Ho capito male?
Il 10/02/2022 13:27, Giacomo Fontanelli ha scritto:
il problema sta nel loop all'interno dei file raster in una cartella, che invece di prendere in considerazione tutti i file si ferma al primo.
Se tolgo l'ultima riga ovvero
return {self.FOLDER: outRas["OUTPUT"]}
lo script prende in considerazione tutti i file, altrimenti si ferma al primo
Ciao Giacomo,
quindi, come ti scrivevo, il problema è proprio nel codice interno al ciclo for.
E' assolutamente normale che, se nel ciclo "for" interno alla funzione "processAlgorithm" c'è un'istruzione "return", allora in quel punto Python interrompa l'esecuzione del ciclo "for" e termina l'esecuzione della funzione "processAlgorithm.
Se tale istruzione "return" è nell'ultima riga del ciclo "for", questo, quindi, verrà eseguito inevitabilmente solo una volta e l'algoritmo terminerà l'esecuzione.