How can I find the complete path of the INPUT (r_in_name) and OUTPUT (r_out_name) rasters for the gdal datasets in the following code: from qgis.processing import alg from qgis.core import QgsFeature, QgsFeatureSink import numpy as np from osgeo import gdal, gdal_array, osr @alg(name="quantilizearaster", label=alg.tr("Quantilize a raster)"), group="rastertools", group_label=alg.tr("Raster Tools")) @alg.input(type=alg.RASTER_LAYER, name="INPUT", label="Input layer") @alg.input(type=alg.RASTER_LAYER, name="OUTPUT", label="Output layer") def quantilize(instance, parameters, context, feedback, inputs): """ This algorithm takes an INPUT raster and quantilize its values in five classes; result is a quantilized OUTPUT raster. """ source = instance.parameterAsRasterLayer(parameters, "INPUT", context) output_raster = instance.parameterAsRasterLayer(parameters, "OUTPUT", context) r_in_name = # r_in_name must be a string of the complete path to the INPUT raster, including its file name (*.tif) r_out_name = # r_out_name may be a temporary OUTPUT raster file dataset = gdal.Open(r_in_name) band = dataset.GetRasterBand(1) nodata = band.GetNoDataValue() array = dataset.ReadAsArray() new_array = array nan_array = array nan_array[array == nodata] = np.nan percentile_80 = np.nanpercentile(nan_array, 80) percentile_60 = np.nanpercentile(nan_array, 60) percentile_40 = np.nanpercentile(nan_array, 40) percentile_20 = np.nanpercentile(nan_array, 20) percentile_0 = np.nanpercentile(nan_array, 0) for i, v in enumerate(new_array): for j, element in enumerate(v): if element > percentile_0 and element <= percentile_20: new_array[i,j] = 1 if element > percentile_20 and element <= percentile_40: new_array[i,j] = 2 if element > percentile_40 and element <= percentile_60: new_array[i,j] = 3 if element > percentile_60 and element <= percentile_80: new_array[i,j] = 4 if element > percentile_80: new_array[i,j] = 5 new_array[ new_array != new_array ] = nodata geotransform = dataset.GetGeoTransform() wkt = dataset.GetProjection() # Create gtif file driver = gdal.GetDriverByName("GTiff") output_file = r_out_name # r_out_name may be a temporary OUTPUT raster file dst_ds = driver.Create(output_file, band.XSize, band.YSize, 1, gdal.GDT_Int16) #writting output raster dst_ds.GetRasterBand(1).WriteArray( new_array ) #setting nodata value dst_ds.GetRasterBand(1).SetNoDataValue(nodata) #setting extension of output raster # top left x, w-e pixel resolution, rotation, top left y, rotation, n-s pixel resolution dst_ds.SetGeoTransform(geotransform) # setting spatial reference of output raster srs = osr.SpatialReference() srs.ImportFromWkt(wkt) dst_ds.SetProjection( srs.ExportToWkt() ) #Close output raster dataset dataset = None dst_ds = None return