[Qgis-user] Getting file name from parameterAsFile
Rudi von Staden
rudivs at gmail.com
Wed Jun 27 07:44:45 PDT 2018
Hi all,
I'm trying to get the file path for an input layer (which is a csv) in a
script in QGIS 3. I can see from the algorithm history that it is there in
the parameters (see below). However, it seems that when I use
`parameterAsFile`, it always returns an empty string. Is this a bug, or am
I using it incorrectly?
What I am looking for is a way to programatically access "
C:/GIS/Projects/LizeSuitableHabitatModel/dummySpecies.txt".
Thanks,
Rudi
*Algorithm history:*
processing.run("script:suitablehabitatmodel",
{'SPECIES_LIST':'file:///C:/GIS/Projects/LizeSuitableHabitatModel/dummySpecies.txt?type=csv&geomType=none&subsetIndex=no&watchFile=no','SPECIES_POINTS':'file:///C:/GIS/Projects/LizeSuitableHabitatModel/dummyPoints.txt?type=csv&xField=DDE&yField=DDS&crs=EPSG:4326&spatialIndex=yes&subsetIndex=no&watchFile=no','MODEL_CRS':'USER:100000','SPECIES_REPROJECT':'C:/Users/rudi_000/AppData/Local/Temp/processing_41d6b6ec7dd342f1bfd813b4b1c79dba/e89a5f992eb94e2291281d57f796e1b0/SPECIES_REPROJECT.shp'})
*Summarised script:*
def initAlgorithm(self, config=None):
self.addParameter(
QgsProcessingParameterFeatureSource(
self.SPECIES_POINTS,
self.tr('Species points'),
[QgsProcessing.TypeVectorPoint]
)
)
def processAlgorithm(self, parameters, context, feedback):
speciesPointsFile = self.parameterAsFile(parameters,
self.SPECIES_POINTS, context) # always returns an empty string
genspec = '1031-125' # this would be set in a loop
# trying to apply a filter to the input file by changing the subset
parameter
uri =
f"file:///{speciesPointsFile}?type=csv&xField=DDE&yField=DDS&crs=EPSG:4326&spatialIndex=yes&subsetIndex=no&watchFile=no&subset=%22Genspec%22%20%3D%20\'{genspec}\'"
filteredLayer = QgsVectorLayer(uri, 'FILTERED_POINTS',
'delimitedtext')
pointsReprojected = processing.run("native:reprojectlayer", {
'INPUT': filteredLayer,
'TARGET_CRS': modelCrs.authid(),
'OUTPUT' : speciesReprojectOutput
}, context=context, feedback=feedback)['OUTPUT']
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20180627/389fd037/attachment.html>
More information about the Qgis-user
mailing list