• Login:

Bienvenue sur Forum SIG - Systèmes d'Information Géographique et Géomatique.

Bienvenue sur le forumSIG. S'il s'agit de votre première visite, assurez vous de faire une recherche préalable dans les FAQ SIG. Vous devez vous inscrire avant de pouvoir poster.

Affichage des résultats 1 à 2 sur 2
  1. #1

    Date d'inscription
    janvier 2019
    Messages
    2

    Par défaut Utilisation de la fonction "grass7:V.net.iso"

    Bonjour,

    Je me permets de venir poser ma question ici après de longues heures de recherche sans réponse.
    Je cherche actuellement a découper de manière automatique un réseau selon des isolignes de coût et je rencontre un problème lors de l'utilisation de la fonction "grass7:v.net.iso"
    Mon code est ci-dessous :

    import processing
    from qgis.core import *
    from qgis.utils import *

    #Import des couches
    layer1 = iface.addVectorLayer("C:\QGIS\Communes.shp", "Communes", "ogr")
    layer2 = iface.addVectorLayer("C:\QGIS\gis_osm_roads_free_1 _lambert_93.shp", "Routes", "ogr")
    layer3 = iface.addVectorLayer("C:\QGIS\DI.shp", "Hydrant", "ogr")

    #Filtration de découpage de la route
    layer2.setSubsetString('code = 5113 OR code = 5114 OR code = 5115 OR code = 5121 OR code = 5122 OR code = 5123 OR code = 5124 OR code = 5131 OR code = 5132 OR code = 5133 OR code = 5134 OR code = 5141 OR code = 5142 OR code = 5199')
    Route_filtre = QgsVectorFileWriter.writeAsVectorFormat(layer2,"C: \QGIS\Route_filtre.shp", "utf-8", None, "ESRI Shapefile")
    processing.runalg("qgis:fixeddistancebuffer",layer 1,400,5,True,"C:\QGIS\Communes_400.shp")
    processing.runalg("qgis:clip","C:\QGIS\Route_filtr e.shp","C:\QGIS\Communes_400.shp", "C:\QGIS\Routes_decoupe.shp")
    route_explosee = processing.runalg("qgis:explodelines","C:\QGIS\Rou tes_decoupe.shp","C:\QGIS\Routes_explosee.shp")

    #Filtration des hydrants
    layer3.setSubsetString("(TYPE LIKE '%Incendie%' OR TYPE LIKE '%incendie%' OR TYPE = 'PI' OR TYPE='BI' OR TYPE='RI' OR TYPE='Poteau Incendie') AND DEBIT <60 OR DEBIT= ''" )

    #Calcul de la distance par rapport aux hydrants
    processing.runalg("grass7:v.net.iso", {'input':route_explosee,'points':layer3,'threshold ':50,'arc_type':0,'center_cats':1-100000,'costs':[200,400] ,'GRASS_REGION_PARAMETER':'7000000,7000000,7000000 ,7000000', 'GRASS_OUTPUT_TYPE_PARAMETER':0,'output':'C:\QGIS\ DECI_inconnue.shp'})


    L'intégralité du code s'exécute sans problème sauf la dernière ligne qui contient doit faire tourner "grass7:v.net.iso" et qui renvoie:

    Unable to execute algorithm
    Wrong parameter value: {'OUTPUT': 'C:\\QGIS\\Routes_explosee.shp'}

    J'ai du mal a comprendre d'où vient le problème sachant que si je prend la couche route_explosee et que je fais tourner manuellement v.net.iso avec la boite à outil je n'ai aucun soucis. Auriez vous une explication ?

    Egalement, auriez vous une idée des gammes de valeur rentrer pour GRASS_REGION_PARAMETER pour couvrir la France?

    Merci pour votre aide!

  2. #2

    Date d'inscription
    janvier 2019
    Messages
    2

    Par défaut Re : Utilisation de la fonction "grass7:V.net.iso"

    Bonjour,

    Après quelques nouveaux tests, j'ai réussi à faire tourner la dernière ligne de code en mettant ceci:

    processing.runalg("grass7:v.net.iso", {'input':"C:\QGIS\Routes_explosee.shp",'points':la yer3,'threshold':50,'arc_type':2,'center_cats':1-100000,'costs':[200,400] ,'GRASS_REGION_PARAMETER':'7000000,7000000,7000000 ,7000000', 'GRASS_OUTPUT_TYPE_PARAMETER':0,'output':'C:\QGIS\ DECI_inconnue.shp'})

    Le seul problème c'est que même si la commande s'exécute sans message d'erreur, aucune couche n'est produite (alors qu'exécuter manuellement la commande v.net.iso depuis la boite à outil avec les même couches produit un résultat).

    Le problème vient donc de l'input mais je ne vois pas comment est il possible que manuellement la commande fonctionne alors que lorsqu'elle est automatisée non.

    Je trouve ça également étrange qu'indiquer le chemin d'accès au fichier fonctionne alors qu'indiquer une couche déjà stockée dans le mémoire renvoie une erreur. Peut être que Qgis vérifie la conformité de la donnée dans un cas et pas dans l'autre?

    Quelqu'un aurait il une suggestion pour que la commande produise effectivement la couche demandée?

 

 

Discussions similaires

  1. [QGIS 2.x] Fonction "Find" / "Rechercher"
    Par alexandrefb dans le forum Assistance et Programmation
    Réponses: 2
    Dernier message: 19/08/2015, 13h52
  2. [QGIS 2.x] Utilisation de la fonction "ombrage" dans un script
    Par lesjj dans le forum Assistance et Programmation
    Réponses: 5
    Dernier message: 30/12/2014, 18h36
  3. [ArcGIS 9.x] Utilisation de la fonction "Eliminer"
    Par Speed-Popeye dans le forum Assistance Technique
    Réponses: 11
    Dernier message: 13/02/2012, 11h56
  4. [ArcGIS 9.x] Automatisation des fonction "Pan To" et d'"Export Map"
    Par Speed-Popeye dans le forum Programmation
    Réponses: 3
    Dernier message: 16/01/2012, 01h07
  5. [ArcGIS 8.x] Problème avec la fonction "info" ou "i"
    Par Lafont dans le forum Assistance Technique
    Réponses: 2
    Dernier message: 29/09/2005, 13h45

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •