Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Tue 24 July 2018 12:28

Xueimuohtreb
Juste Inscrit !
Date d'inscription: 21 Jan 2018
Messages: 2

QGIS 3 / Console Python: Problème algorithme IDW de Grass

Objet original: Problème algorithme IDW de Grass (console python de QGis 3)

Bonjour,

J'écris un script python dans lequel j'aimerais faire une interpolation par IDW. Pour cela, j'utilise l'algorithme de grass v.surf.idw, qui fonctionne parfaitement via l'interface graphique.

Cependant, je ne parviens par à le faire fonctionner sur la console python.

Voilà ce que j'ai essayé (avec pour entrée la couche "layer", qui est valide):

Code:

extent = layer.extent()
xmin = extent.xMinimum()
xmax = extent.xMaximum()
ymin = extent.yMinimum()
ymax = extent.yMaximum()
        
 parameters = { 
    '-n' : False, 
    'GRASS_MIN_AREA_PARAMETER' : 0.0001, 
    'GRASS_RASTER_FORMAT_META' : '', 
    'GRASS_RASTER_FORMAT_OPT' : '', 
    'GRASS_REGION_CELLSIZE_PARAMETER' : 1,
    'GRASS_REGION_PARAMETER' : "%f,%f,%f,%f" % (xmin, xmax, ymin, ymax), 
    'GRASS_SNAP_TOLERANCE_PARAMETER' : -1, 
    'column' : 'rdmt_sec', 
    'input' : layer,
    'npoints' : 12, 
    'output' : 'chemin/vers/output.tif',
    'power' : 2 
}
            
result = processing.run("grass7:v.surf.idw",parameters,feedback = QgsProcessingFeedback())

Je n'obtiens pas de message d'erreur, et constate juste qu'aucun fichier n'a été créé.  Je précise que je travaille sur QGis 3

Vous avez une idée de ce qui peut ne pas marcher dans ce code? Ou, à défaut, connaissez-vous un autre moyen pour faire une interpolation par IDW en python?

Merci bien,

Hors ligne

 

#2 Fri 17 August 2018 10:52

Xueimuohtreb
Juste Inscrit !
Date d'inscription: 21 Jan 2018
Messages: 2

Re: QGIS 3 / Console Python: Problème algorithme IDW de Grass

J'ai des erreurs sur à peu près tous les algorithmes autres que les algorithmes natifs de QGis lorsque je les lance à partir de la console.
Quelqu'un a-t-il un problème similaire? Est-ce lié à la nouvelle version de QGis?

Hors ligne

 

#3 Mon 27 August 2018 11:57

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

Re: QGIS 3 / Console Python: Problème algorithme IDW de Grass

Sous QGIS 3.0.2 Girona, j'ai créé une couche points.shp avec une colonne de pondération appelée value.

Et le script suivant fonctionne bien :

Code:

import processing

layerName ='points'

layer = QgsProject.instance().mapLayersByName('points')[0]

extent = layer.extent()
xmin = extent.xMinimum()
xmax = extent.xMaximum()
ymin = extent.yMinimum()
ymax = extent.yMaximum()
        
parameters = { 
    '-n' : False, 
    'GRASS_MIN_AREA_PARAMETER' : 0.0001, 
    'GRASS_REGION_CELLSIZE_PARAMETER' : 10,
    'GRASS_REGION_PARAMETER' : "%f,%f,%f,%f" % (xmin, xmax, ymin, ymax), 
    'GRASS_SNAP_TOLERANCE_PARAMETER' : -1, 
    'column' : 'value', 
    'input' : layer,
    'npoints' : 12, 
    'output' : 'C:/temp/raster/out.tif',
    'power' : 2 
}

#processing.alghelp("grass7:v.surf.idw")

raster_output = processing.run('grass7:v.surf.idw', parameters, feedback = QgsProcessingFeedback())

geodata au cerema et petits billets en géomatique

Hors ligne

 

Pied de page des forums

Powered by FluxBB