[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