[QGIS-it-user] conoscere il percorso di un file di in gresso in uno script python

Salve a tutti

sto scrivendo uno script da poter utilizzare nell’ambiente processing di QGIS

la domanda è: è possibile salvare in una stringa o conoscere il percorso del file che viene inserito durante la sezione che vi riporto in basso?

def initAlgorithm(self, config=None):

self.addParameter(QgsProcessingParameterRasterLayer(
self.INPUT,
self.tr(‘Input linear stack’),
None,
False))

def processAlgorithm(
self,
parameters,
context,
feedback):

stackIn = self.parameterAsRasterLayer(
parameters,
self.INPUT,
context)

#etc

In pratica, è possibile salvare in una variabile stringa il percorso del file della variabile stackIn??
Grazie

Giacomo Fontanelli-2 wrote

Salve a tutti

        stackIn = self.parameterAsRasterLayer(
            parameters,
            self.INPUT,
            context)

#etc

In pratica, è possibile salvare in una variabile stringa il percorso del
file della variabile stackIn??

Ciao Giacomo,
parameterAsRasterLayer dovrebbe restituire un oggetto di tipo QgsRasterLayer
[1]. Quindi dovresti poter estrarre l'URI del layer usando
.dataProvider().dataSourceUri() [2].

Hai provato?

A presto.

Andrea

[1]
https://qgis.org/pyqgis/3.16/core/QgsProcessingParameters.html#qgis.core.QgsProcessingParameters.parameterAsRasterLayer
[2]
https://qgis.org/pyqgis/3.16/core/QgsRasterLayer.html#qgis.core.QgsRasterLayer.dataProvider
-
https://qgis.org/pyqgis/3.16/core/QgsDataProvider.html#qgis.core.QgsDataProvider.dataSourceUri

--
Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html

Ho provato e funziona

in verità avevo risolto anche aggiungendo la variabile pathStackIn, ma la tua soluzione è più elegante

Grazie

stackIn = self.parameterAsRasterLayer(
parameters,
self.INPUT,
context)

pathStackIn = self.parameterAsString(
parameters,
self.INPUT,
context)

Il giorno mar 1 giu 2021 alle ore 13:17 Andrea Giudiceandrea <andreaerdna@libero.it> ha scritto:

Giacomo Fontanelli-2 wrote

Salve a tutti

stackIn = self.parameterAsRasterLayer(
parameters,
self.INPUT,
context)

#etc

In pratica, è possibile salvare in una variabile stringa il percorso del
file della variabile stackIn??

Ciao Giacomo,
parameterAsRasterLayer dovrebbe restituire un oggetto di tipo QgsRasterLayer
[1]. Quindi dovresti poter estrarre l’URI del layer usando
.dataProvider().dataSourceUri() [2].

Hai provato?

A presto.

Andrea

[1]
https://qgis.org/pyqgis/3.16/core/QgsProcessingParameters.html#qgis.core.QgsProcessingParameters.parameterAsRasterLayer
[2]
https://qgis.org/pyqgis/3.16/core/QgsRasterLayer.html#qgis.core.QgsRasterLayer.dataProvider

https://qgis.org/pyqgis/3.16/core/QgsDataProvider.html#qgis.core.QgsDataProvider.dataSourceUri


Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html


QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user