fire2a.processing_utils
This module is related to qgis processing algorithms, needing a special initialization
1#!python3 2""" 3This module is related to qgis processing algorithms, needing a special initialization 4""" 5__author__ = "Fernando Badilla" 6__revision__ = "$Format:%H$" 7import logging 8import os 9import sys 10 11from qgis.core import QgsProcessingFeedback 12 13from .utils import fprint 14 15logger = logging.getLogger(__name__) 16 17from platform import system as platform_system 18 19# Append the path where processing plugin can be found 20# TODO macos 21if platform_system() == "Windows": 22 sys.path.append("C:\\PROGRA~1\\QGIS33~1.1\\apps\\qgis\\python\\plugins") 23else: 24 sys.path.append("/usr/share/qgis/python/plugins") 25 26# import processing 27# from processing.core.Processing import Processing 28# Processing.initialize() 29from processing.algs.gdal.GdalUtils import GdalUtils 30 31 32def get_vector_driver_from_filename(filename: str) -> str: 33 return GdalUtils.getVectorDriverFromFileName(filename) 34 35 36def get_output_raster_format(filename: str, feedback: QgsProcessingFeedback = None) -> str: 37 """Gets a valid GDAL output raster driver name, warns if not found, defaults to GTiff. 38 39 Args: 40 filename (str): The name with extension of the raster. (Not implemented for suffixes with multiple dots, e.g. mpv.gz) 41 feedback (QgsProcessingFeedback): The feedback object to push warnings to. 42 43 Returns: 44 str: The GDAL short format name for extension. 45 46 Sample usage: 47 driver_name = get_output_raster_format(filename, feedback) 48 dst_ds = gdal.GetDriverByName(raster_format).Create(filename, W, H, 1, GDT_Float32) 49 50 Based/copied from qgis.python.grassprovider.grass_utils.py GrassUtils 51 """ 52 ext = os.path.splitext(filename)[1].lower() 53 ext = ext.lstrip(".") 54 if ext: 55 supported = GdalUtils.getSupportedOutputRasters() 56 for name in list(supported.keys()): 57 exts = supported[name] 58 if ext in exts: 59 return name 60 fprint( 61 f"Using GTiff format! No supported GDAL raster format for {filename=} {ext=} found.", 62 level="warning", 63 feedback=feedback, 64 ) 65 return "GTiff" 66 67 68def check_gdal_readable_raster(filename): 69 """Based/copied from qgis.python.grassprovider.grass_utils.py GrassUtils""" 70 ext = os.path.splitext(filename)[1].lower() 71 ext = ext.lstrip(".") 72 if ext: 73 supported = GdalUtils.getSupportedRasters() 74 for name in list(supported.keys()): 75 exts = supported[name] 76 if ext in exts: 77 return True 78 return False
logger =
<Logger fire2a.processing_utils (WARNING)>
def
get_vector_driver_from_filename(filename: str) -> str:
def
get_output_raster_format(filename: str, feedback: qgis._core.QgsProcessingFeedback = None) -> str:
37def get_output_raster_format(filename: str, feedback: QgsProcessingFeedback = None) -> str: 38 """Gets a valid GDAL output raster driver name, warns if not found, defaults to GTiff. 39 40 Args: 41 filename (str): The name with extension of the raster. (Not implemented for suffixes with multiple dots, e.g. mpv.gz) 42 feedback (QgsProcessingFeedback): The feedback object to push warnings to. 43 44 Returns: 45 str: The GDAL short format name for extension. 46 47 Sample usage: 48 driver_name = get_output_raster_format(filename, feedback) 49 dst_ds = gdal.GetDriverByName(raster_format).Create(filename, W, H, 1, GDT_Float32) 50 51 Based/copied from qgis.python.grassprovider.grass_utils.py GrassUtils 52 """ 53 ext = os.path.splitext(filename)[1].lower() 54 ext = ext.lstrip(".") 55 if ext: 56 supported = GdalUtils.getSupportedOutputRasters() 57 for name in list(supported.keys()): 58 exts = supported[name] 59 if ext in exts: 60 return name 61 fprint( 62 f"Using GTiff format! No supported GDAL raster format for {filename=} {ext=} found.", 63 level="warning", 64 feedback=feedback, 65 ) 66 return "GTiff"
Gets a valid GDAL output raster driver name, warns if not found, defaults to GTiff.
Args: filename (str): The name with extension of the raster. (Not implemented for suffixes with multiple dots, e.g. mpv.gz) feedback (QgsProcessingFeedback): The feedback object to push warnings to.
Returns: str: The GDAL short format name for extension.
Sample usage: driver_name = get_output_raster_format(filename, feedback) dst_ds = gdal.GetDriverByName(raster_format).Create(filename, W, H, 1, GDT_Float32)
Based/copied from qgis.python.grassprovider.grass_utils.py GrassUtils
def
check_gdal_readable_raster(filename):
69def check_gdal_readable_raster(filename): 70 """Based/copied from qgis.python.grassprovider.grass_utils.py GrassUtils""" 71 ext = os.path.splitext(filename)[1].lower() 72 ext = ext.lstrip(".") 73 if ext: 74 supported = GdalUtils.getSupportedRasters() 75 for name in list(supported.keys()): 76 exts = supported[name] 77 if ext in exts: 78 return True 79 return False
Based/copied from qgis.python.grassprovider.grass_utils.py GrassUtils