Message posté par : mus_AB (musabrous(a)gmail.com)
----------------------------------------
Bonjour,
Je travaille actuellement sr une tache ou je suis appelé à automatiser un processus sur qgis. J'essaie d'exploit la boite à outils de qgis notamment la biblithèque 'processing'
- Indépendamment les scripts fonctionnent parfaitement mais dès j'introduit la boucle ' while' j'ai une erreur.
Ci-joint le script et l'erreur retournée.
Merci d'avance pour votre aide.
Voici mon code :
# -*- coding: utf-8 -*-
"""
@author: Mustapha ABROUS
musabrous(a)gmail.com
"""
"""
1- boucle d'indentifier les tronçons dans un dossier(fichier shp gpkg)
2- création des input et output
3- soustration d'un tronçon du tracé
4- creation d'un buffer pour le tronçon
5- création d'un buffer pour le fichier résultant de la soustraction
6- vérification d'intersection entre le buffer du tronçon et le bufffer du fichier issu de la soustraction
7- ajustement de la largeur du buffer afin d'éviter l'intersection
"""
#importing library
import os
import processing
from osgeo import ogr
#setting folders
TronconInputdirectory = 'C:/local_file/RHIN_LIBRE_PROJ/py_BAS/02-resultat/tronçons/'
ProfilOutputdirectory = 'C:/local_file/RHIN_LIBRE_PROJ/py_BAS/02-resultat/profil/'
#demfile= 'C:/local_file/RHIN_LIBRE_PROJ/MNT/Affluents_Sauer_RhinNord_MNT_1m_L93_LiDAR_2018.gpkg'
trace='C:/local_file/RHIN_LIBRE_PROJ/py_BAS/01-donnée/trace/trace.gpkg'
traceWithoutTroncondirectory='C:/local_file/RHIN_LIBRE_PROJ/py_BAS/02-resultat/traceWithoutTronçon/'
BufferWithoutTronconOutputdirectory= 'C:/local_file/RHIN_LIBRE_PROJ/py_BAS/02-resultat/buffer/'
bufferTronconOutputdirectory='C:/local_file/RHIN_LIBRE_PROJ/py_BAS/02-resultat/bufferTroncon/'
## looking for gpkg et shp file
for filename in os.listdir(TronconInputdirectory):
if filename.endswith(".gpkg") or filename.endswith(".shp"):
# print(filename)
troncon = (os.path.join(TronconInputdirectory, filename))
#set ouput name
name = filename
# print("name= ",name)
traceWithoutTroncon= traceWithoutTroncondirectory+'traceWithout'+(name)
BufferTraceWithoutTroncon = BufferWithoutTronconOutputdirectory+'Buffer_without'+(name)
bufferTroncon= bufferTronconOutputdirectory +'bufffer_'+ (name)
intersection = False #init intersection
largeur = 1 # setting fist largeur value
while intersection is False :
########## buffering tronçon
processing.run("native:buffer",
{'INPUT':troncon,
'DISTANCE': largeur,
'SEGMENTS':5,
'END_CAP_STYLE':0,
'JOIN_STYLE':0,
'MITER_LIMIT':1,
'DISSOLVE':False,
'OUTPUT':bufferTroncon})
##########removing tronçon from tracé
processing.run("native:difference",
{'INPUT':trace,
'OVERLAY':troncon,
'OUTPUT':traceWithoutTroncon})
##########buffering traceWithoutTroncon
processing.run("native:buffer",
{'INPUT':traceWithoutTroncon,
'DISTANCE': largeur,
'SEGMENTS':5,
'END_CAP_STYLE':0,
'JOIN_STYLE':0,
'MITER_LIMIT':1,
'DISSOLVE':False,
'OUTPUT':BufferTraceWithoutTroncon})
driver = ogr.GetDriverByName("gpkg") #new
srcShp1 = driver.Open(BufferTraceWithoutTroncon)#new
srcLay1 = srcShp1.GetLayer()
# print(srcLay1)
for feat1 in srcLay1:
## print(feat1)
geom1 = feat1.GetGeometryRef()
# print(geom1)
driver = ogr.GetDriverByName("gpkg") #new
srcShp2 = driver.Open(bufferTroncon)#new
srcLay2 = srcShp2.GetLayer()
# print(srcLay2)
for feat2 in srcLay2:
# print(feat2)
geom2 = feat2.GetGeometryRef()
# print(geom2)
intersection = geom2.Intersects(geom1)
if intersection is False:
print("No")
largeur= largeur+1
else:
print("no")
Voici l'erreur que j'obtient :
Traceback (most recent call last):
File "C:PROGRA~1QGIS3~1.8appsPython37libcode.py", line 90, in runcode
exec(code, self.locals)
File "", line 1, in
File "", line 41, in
File "C:/PROGRA~1/QGIS3~1.8/apps/qgis/./python/pluginsprocessingtoolsgeneral.py", line 106, in run
return Processing.runAlgorithm(algOrName, parameters, onFinish, feedback, context)
File "C:/PROGRA~1/QGIS3~1.8/apps/qgis/./python/pluginsprocessingcoreProcessing.py", line 181, in runAlgorithm
raise QgsProcessingException(msg)
Merci encore pour votre aide !
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=344657#p344657
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : Demonshine
----------------------------------------
Bonjour,
Je rencontre un problème pour regrouper plusieurs polygones en un seul. Je dispose d'une commune composée d'un quadrillage. Je souhaite fusionner toutes les cellules du quadrillage pour avoir un seul polygone par commune.
J'ai utilisé l'outil "Regrouper" mais il me reste des lignes dans mon polygone : Voir fichier ci-joint du résultat obtenu (je ne peux joindre qu'un seul fichier).
Auriez-vous une solution pour supprimer ces lignes restantes ?
Merci pour votre aide,
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=344653#p344653
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : Eddy DRU (eddy.dru.18(a)gmail.com)
----------------------------------------
Bonjour,
Cela fait un plusieurs années que je n'ai pas fait de SIG et je dois m'y remettre.
Je suis sous QGis et je suis relié à une BDD mssql.
Dans une table, j'ai créé des LINESTRING (réseau de transport) avec leur couleur du réseau en hexadécimale.
Ma question est:
Est-il possible d'attribuer la couleur hexadécimale de la table à chaque ligne du réseau correspondante automatiquement et que ces couleurs s'affichent bien dans la légende?
Merci de votre aide.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=344641#p344641
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net