Message posté par : ODJAC33
----------------------------------------
Merci de votre réponse.
Effectivement l'outil Regrouper semble adapté.
J'ai essayé de nombreuses combinaisons pour trouver le bon champ de regroupement, mais l’exécution de l'algorithme ne modifie pas la couche de départ (les frontières intérieures restent).
Je joins une image qui décrit la couche dont je veux extraire le contour extérieur.
Merci encore.
----------------------------------------
Ce message est accompagné de fichiers, pour les télécharger, suivre le lien ci-dessous.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322741#p322741
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 : D3us
----------------------------------------
-----------------
carteq écrit :
Dans les propriétés de la couche du parcellaire : jointure. Ajouter une jointure en appuyant sur le + au bas de la fenêtre.
-----------------
Ah par contre je ne savais pas qu'on pouvais le faire dans QGIS
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322734#p322734
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 : Vincent
----------------------------------------
Dans les propriétés de la couche du parcellaire : jointure. Ajouter une jointure en appuyant sur le + au bas de la fenêtre.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322733#p322733
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 : rep20
----------------------------------------
En fait pour affiner ma demande je souhaiterais un moyen de filtrer ma couche selon la localisation.
En gros afficher certaines données qui intersectent une région sans pour autant créer une nouvelle couche.
Le truc c'est que je peux ajouter une colonne région dans mes données et filtrer selon cette attribut.
Seulement certaines de mes données sont à cheval sur deux régions donc la fonction intersecter serait plus approprier non ?
Comment pourrais-je la mettre en place dans le constructeur de requête de la couche ?
Rémi
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322732#p322732
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 : Martin GUILLOU
----------------------------------------
Bonjour,
Question mainte fois abordée sur le forum... ayez le réflexe 'recherche' s.v.p.
Pour répondre à votre question, je vous invite à consulter cette page qui synthétise ce genre de requêtes : http://pasq.fr/les-requetes-du-graal
-----------------
Code :
"Nom" like '[LF][SIV%'
-----------------
Martin
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322714#p322714
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 : ODJAC33
----------------------------------------
Bonjour à tous,
Pouvez-vous m'indiquer quel est l'opérateur de chaines de caractère qui permet de sélectionner tous les objets d'une base dont le champ Nom commence par "[LF][SIV".
Merci.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322713#p322713
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 : pedro9magic
----------------------------------------
Bonjour,
J'écris car ce qui parait évident dans la documentation de l'ign ne l'est absolument pas pour moi.
Je possède mon bd parcellaire normé avec mes parcelles, ma bd adresse et ce qui normalement fait le lien si j'ai bien lu les sujets ici et sur le site de l'ign à savoir adresse premium. Ca me crée un trait entre la parcelle du bd parcellaire et le numéro du bd adresse. Toutefois, mon but comme vous l'imaginez serait d'avoir une bd parcellaire avec dans la table attributaire l'adresse reliée à la parcelle. Comment puis je faire cela ? J'ai réfléchi aux outils de qgis, "union" ou "regrouper" mais ca ne colle pas car j'ai 3 couches vecteurs.
J'ai lu la doc de l'ign mais il n'y a rien en réalité. Ca parait évident à leurs yeux ("permet de lier l'adresse au bâtiment ou à une parcelle") sans expliquer le comment ?
Merci par avance,
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322710#p322710
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 : 34Cédric34
----------------------------------------
Alors qu'est ce que j'aurai raté ?
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322709#p322709
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 : jepeto
----------------------------------------
Ce que j'aimerais réalisé c'est plutôt ceci.
Voir le fichier joint que j'ai pu trouvé sur le net.
Merci de m'aider
Jep'
----------------------------------------
Ce message est accompagné de fichiers, pour les télécharger, suivre le lien ci-dessous.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322708#p322708
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 : jepeto
----------------------------------------
Ce que j'aimerais réalisé c'est plutôt ceci.
Voir le fichier joint que j'ai pu trouvé sur le net.
Merci de m'aider
Jep'
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322707#p322707
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 : Vincent
----------------------------------------
-----------------
Citation :
même si certaines pentes sont supérieures à 100%
-----------------
C'est tout à fait normal. Une pente de 100% est une pente à 45 degrés.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322705#p322705
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 : djinnroh (antoine.delauney(a)eveha.fr)
----------------------------------------
Bonjour à tous,
tout d'abord je travaille sous QGIS 2.18 sous système Linux, OS Fedora 23 (4.8.13) et mon projet (si cela à de l'importance) est en Lambert 93 (EPSG 2154).
Voici mon problème,
J'ai un shape qui correspond à des sondages sur les emprises de trois chantiers archéologiques.
Ce shape est composé de 4 valeurs ("NUM" [Integer], "ST'[QSTRING], "Site"[Integer] et "Profondeur"[Real])
Pour l'affichage du site 1, je veux faire apparaître les profondeurs des sondages (seules les profondeurs des sondages du site 1 ont été renseignées).
Du coup je suis passé par Style, Ensemble de règle en édictant ces règles
Règle 1 : IF ("Site"='1', IF("NUM"=0,"ST","NUM"),NULL)
Règle 2 : IF ("Site"='2', IF("NUM"=0,"ST","NUM"),NULL)
Règle 3 : IF ("Site"='3', IF("NUM"=0,"ST","NUM"),NULL)
à la règle 1 j'ai affiné la règle en ajoutant un intervalle et en mettant va valeur de profondeur en référence.
Le test au sein de chaque règle me renvoie bien le bon nombre d'entités présentes pour chaque site (respectivement 580, 74 et 34), toutefois à l'affichage il y a des sondages qui n'apparaissent pas.
Après vérification, les sondages qui n'apparaissent pas ont dans le champ "ST" ou des caractères espace entre le numéro des structures qu'ils concernent (e.g. 6499 6994) ou sont des caractères Alpha (e.g. DIAGGEOL). Si je supprime l'espace et accole les chiffres, les entités ainsi modifiées sont enfin reconnues, mais cette manip ne m'arrange pas pour une question de lisibilité des numéros de structures) et à part supprimer l'espace, aucune autre manipulation (remplacement de l'espace par un -, ou un _ ou une , ou un ; ou un /) ne fonctionne. Pourtant mon champ est bien un QSTRING.
Je n'arrive pas à comprendre ce qui bloque QGISS car si je choisis simplement un symbole unique avec une étiquette sur le champ ST, il affiche les valeurs correctement.
J'espère avoir été clair et que quelqu'un pourra m'éclairer sur mon problème et me proposer une solution. Désolé par avance si une question similaire avait déjà été posée (cela sera signe que je n'ai pas assez cherché sur le forum).
Merci d'avance à toute aide.
Djinnroh
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322700#p322700
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 : laurent00
----------------------------------------
je ne vois strictement rien dans cette couche, elle est vide !
LJ
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322698#p322698
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 : Jean-Baptiste Richet
----------------------------------------
Bien vu ! Merci beaucoup tumasgiu.
Ce soir, je prendrai le temps de résumer pour que ce fil ait une chance d'être utile à d'autres...
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322696#p322696
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 : 34Cédric34
----------------------------------------
C'est très gentil de me venir en aide ! :)
Je pense bien avoir enregistré les couches, d'ailleurs j'ai un fichier .dbf pour chacune des deux (il n'y en a que deux qui posent problème : Zone propice et Chênes).
Voici les fichiers enregistrés pour Zone propice : https://we.tl/t-21Qnx0ShZE (https://we.tl/t-21Qnx0ShZE)
----------------------------------------
Ce message est accompagné de fichiers, pour les télécharger, suivre le lien ci-dessous.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322695#p322695
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 : Feneck91
----------------------------------------
En fait le résultat est SUPER simple mais vos réponses m'ont permis d'aiguiller mes recherches !!
Un énorme merci.
Un fois la couche exportée, il faut simplement ajouter le code :
-----------------
Code :
if bSaveStyle:
layerStyle = QgsVectorLayer(strFilePath + lambdaFormatLayerName(layer, options.layerName))
doc = QDomDocument("qgis")
layer.exportNamedStyle(doc)
if layerStyle.importNamedStyle(doc):
layerStyle.saveStyleToDatabase(options.layerName, '', True, '')
else:
raise Exception(self.tr("Error while writing vector layer style '{}' / id = '{}': '{}'!").format(layer.name(), layer.id(), errorMessage))
-----------------
Ça tient en pas beaucoup de lignes !
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322692#p322692
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 : laurent00
----------------------------------------
la fenêtre au démarrage c juste une photo du dernier enregistrement de ton projet ...
très sincèrement je crains que tu n'es pas enregistré tes couches, cad que lorsque tu enregistres ton projet cela n'enregistre que les paramètres du projet, comme par exemple les liens vers tes couches et autres personnalisation
il faut également enregistrer tes couches lorsque tu les édites puis modifies
dernier point peut être dans tes fichiers de ta couche tu dois avoir un .dbf qui est comme un tableur, si tes enregistrements ne sont pas là je pense qu'il ne sont nul part.. .
LJ
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322689#p322689
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 : T. Rossini
----------------------------------------
Donc SagaGIS ne décale pas votre raster, mais présente les données
de manière différente.
Je pense que votre problème est que vous utilisez plusieurs SCR différents.
Vérifiez vos traitement afin de produire toutes vos couches avec le même SCR,
et veillez à utiliser GeoTiff et non pas tiff+tfw.
Vous pouvez également forcer le SCR dans SagaGIS (clic droit sur le thumbnail,
Spatial Reference).
Vous pouvez
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322687#p322687
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 : T. Rossini
----------------------------------------
ERRATUM:
le raster a été créé avec l'origine (0,100)
Oui, c'est pareil chez moi,
l'encart dans l'onglet THumbnail indique le centre du pixel superieur gauche et non son coin supérieur gauche.
L'emprise est identique sous QGIS et SagaGIS, vous pouvez le constatez en pointant le coin sup gauche et inf droit
du raster qui auront respectivement les coordonnées (0,100) et (100, 0).
En mode aire (PixelAsArea), les points géoreferencés sont les centres des pixels de votre raster.
Vous pouvez le voir en consultant l'onglet description qui affichera :
-----------------
Code :
West
0.5
East
99.5
South
0.5
North
99.5
-----------------
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322685#p322685
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 : 34Cédric34
----------------------------------------
Voici ce que je vois, autant dire pas grand chose :
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322684#p322684
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 : Jean Cascalès
----------------------------------------
Bonjour,
Est-il possible de créer des annotations d'étiquettes comme dans arcgis afin que je puisse les exporter et les voir dans Autocad?
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322681#p322681
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 : Viniasco
----------------------------------------
-----------------
SANTANNA écrit :
Je suis sous mac là, pour le coup.
-----------------
-----------------
haubourg écrit :
..on dirait bien que vous tombez sur MacOs sur un des rares cas où le système détruit les fichiers temporaires ...
-----------------
Je vais aussi essayer avec un autre Mac.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322680#p322680
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 : Jean-Baptiste Richet
----------------------------------------
Merci tumasgiu pour ce fichier test. C'est intéressant... Dans qgis, j'obtiens bien la même chose que vous, mais dans saga 2.3.2 comme dans saga 7.2, l'emprise indiquée est "100x 100y; 0.5x 0.5y", soit un décalage d'un demi pixel.
Ce serait mon installation qui serait fautive ?
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322678#p322678
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 : Martin GUILLOU
----------------------------------------
Bonjour,
Je duplique ma réponse apportée à sujet similaire : QGIS: couche cadre délimiter zone de travail -> https://georezo.net/forum/viewtopic.php?id=116315
S'il s’agit d'une découpe 'visuelle' pour un besoin de représentation dans le projet cartographique, le plugin Mask répondra parfaitement au besoin.
-----------------
Citation :
Cette extension permet de générer un masque à partir d'une sélection de polygones. Le plugin permet également de filtrer l'étiquetage uniquement pour les objets à l'intérieur de ce masque.
-----------------
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322675#p322675
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 : T. Rossini
----------------------------------------
Le raster geotiff ci-joint créé à l'aide de la calculatrice Qgis3.4 (install Osgeo4W),
se charge correctement dans SagaGIS 2.3.2.
----------------------------------------
Ce message est accompagné de fichiers, pour les télécharger, suivre le lien ci-dessous.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322674#p322674
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 : Martin GUILLOU
----------------------------------------
Bonjour,
S'il s’agit d'une découpe 'visuelle' pour un besoin de représentation dans le projet cartographique, le plugin Mask répondra parfaitement au besoin.
-----------------
Citation :
Cette extension permet de générer un masque à partir d'une sélection de polygones. Le plugin permet également de filtrer l'étiquetage uniquement pour les objets à l'intérieur de ce masque.
-----------------
S'il s'agit de découper les données, en effet il vous faut passer par les géotraitements de découpage. Le plugin Clip Multiple Layers vous permettra d'automatiser le processus.
-----------------
Citation :
Clip all displayed layers (rasters and vectors) with a polygon layer selected.
-----------------
Martin
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322673#p322673
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 : Martin GUILLOU
----------------------------------------
Bonjour,
La doc de Qfield préconise l’utilisation du Geopackage.
https://qfield.org/docs/fr/project-management/dataformat.html#raster-data
La création de pyramides apporte, à mon goût, un réel gain de performances au niveau de la navigation cartographique.
L'utilisation d'un stockage externe (micro SD) est une bonne solution afin d'augmenter l'espace disponible, cependant il faut bien veiller à utiliser le matériel ayant la meilleur vitesse de lecture, sinon le temps d'accès à la donnée devient ingérable en production.
Martin
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322672#p322672
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 : SANTANNA
----------------------------------------
Je suis sous mac là, pour le coup.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322670#p322670
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 : Jean-Baptiste Richet
----------------------------------------
-----------------
tumasgiu écrit :
Vous voulez dire que le décalage "s'annule" quand vous chargez dans QGIS le raster produit dans saga ?
-----------------
Oui c'est bien cela.
1/ couche raster R1 créée dans qgis, coin supérieur gauche = (523640; 6932020)
2/ couche R1 chargée dans saga 7, coin supérieur gauche = (523642,5; 6932022,5)
3/ couche raster R2 créée dans saga à partir de C1, coin supérieur gauche = (523642,5; 6932022,5)
4/ couche R2 chargée dans qgis, coin supérieur gauche = (523640; 6932020)
MAIS
5/ couche shapefile V2 créée dans saga à partir de R2, coin supérieur gauche = (523642,5; 6932022,5)
6/ couche V2 chargée dans qgis, coin supérieur gauche = (523642,5; 6932022,5)
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322666#p322666
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 : Viniasco
----------------------------------------
Je vais tester exactement comme vous, mais avant je ne sais plus quelle version, j'ai pu bouger des étiquettes et conserver ces emplacements.
Peut-être un bug spécifique Mac, comme le disait haubourg ?
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322665#p322665
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 : SANTANNA
----------------------------------------
-----------------
Citation :
Le but est de le faire en python, pas de le faire manuelllement.
-----------------
Je sais. Ma réponse consistait à vous montrer ce que fait l'algo en question (et qui, à mon sens, rejoint votre besoin).
-----------------
Citation :
vous pouvez appeler des algo de Processing depuis PyQGIS
-----------------
yep, c'est ce que je suggérais (https://docs.qgis.org/testing/en/docs/user_manual/processing/scripts.html)
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322664#p322664
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 : T. Rossini
----------------------------------------
Peut être que çà ne réponds pas à votre problème,
mais vous pouvez appeler des algo de Processing
depuis PyQGIS.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322663#p322663
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 : T. Rossini
----------------------------------------
Salut,
Je vois plusieurs solutions :
*Si vous importer vos données dans une base Postgres :
https://stackoverflow.com/questions/1128737/unpivot-and-postgresql/52015646…
L'équivalent dans d'autres moteur de base de données devrait être faisable.
*Sinon vous pouvez passer par un script python à exécuter dans QGIS.
Vous pouvez tenter d'écrire tout le code,
ou passer par une bibli tierce genre Pandas.
exemple : la fonction pandas.melt
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.melt.html
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322662#p322662
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 : Feneck91
----------------------------------------
Le but est de le faire en python, pas de le faire manuelllement.
d'ailleurs avec la version 3.6 c'était déjà possiblle en sauvant le style dans le geopackage, je n'ai pas réussi à le faire en python.
Le C++ ne me dérange pas, je fais du Python, du C++, du JAVA, du C# et j'en passe....
Dans le QgsVectorFileWriter.writeAsVectorFormat il y a bien l'option options.symbologyExport = QgsVectorFileWriter.FeatureSymbology mais ça n'a aucun effet.
D'ailleur on peut voir que dans la fonction QgsPackageAlgorithm::packageVectorLayer ilfait bien appel à QgsVectorFileWriter::writeAsVectorFormat par contre, il y a du code :
-----------------
Code :
if ( saveStyles )
{
std::unique_ptr< QgsVectorLayer > res = qgis::make_unique< QgsVectorLayer >( QStringLiteral( "%1|layername=%2" ).arg( newFilename, newLayer ) );
if ( res )
{
QString errorMsg;
QDomDocument doc( QStringLiteral( "qgis" ) );
QgsReadWriteContext context;
layer->exportNamedStyle( doc, errorMsg, context );
if ( !errorMsg.isEmpty() )
{
feedback->reportError( QObject::tr( "Could not retrieve existing layer style: %1 " ).arg( errorMsg ) );
}
else
{
if ( !res->importNamedStyle( doc, errorMsg ) )
{
feedback->reportError( QObject::tr( "Could not set existing layer style: %1 " ).arg( errorMsg ) );
}
else
{
QgsSettings settings;
// this is not nice -- but needed to avoid an "overwrite" prompt messagebox from the provider! This api needs a rework to avoid this.
QVariant prevOverwriteStyle = settings.value( QStringLiteral( "qgis/overwriteStyle" ) );
settings.setValue( QStringLiteral( "qgis/overwriteStyle" ), true );
res->saveStyleToDatabase( newLayer, QString(), true, QString(), errorMsg );
settings.setValue( QStringLiteral( "qgis/overwriteStyle" ), prevOverwriteStyle );
if ( !errorMsg.isEmpty() )
{
feedback->reportError( QObject::tr( "Could not save layer style: %1 " ).arg( errorMsg ) );
}
}
}
-----------------
Je vais tenter de m'en inspirer...
Si vous avez des idées... En tout cas merci.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322661#p322661
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 : SANTANNA
----------------------------------------
Bonjour,
Je viens de faire un test rapide avec une couche polygone et ça semble marcher sans souci:
- J'étiquette ma couche
- Je sélectionne l'outil "Déplacer les étiquettes et diagrammes"
- Je clique sur une étiquette de ma couche en question (je ne sais si c'est nécessaire mais pour éviter des erreurs j'ai caché les autres couches et sélectionné ma couche cible dasn le panneau Couches au préalable- on n'est jamais trop prudent!)
- j'accepte le choix du champ primaire (en avez-vous un? QGIS en a besoin pour identifier de façon unique les entités auxquelles associer les coordonnées)
- J'ouvre les propriétés de ma couche, les champs sont libellés dans l'onglet "stockage auxiliaire" et bien associés aux propriétés x et y dans l'onglet "Étiquettes"
- Je déplace des étiquettes
- j'ouvre la table attributaire; les champs ne sont pas là mais je les active via l'entrée "Organiser les colonnes": des valeurs (mes nouvelles coordonnées) sont là pour les entités déplacées.
- J'enregistre le fichier projet puis ouvre à nouveau. Tout est à l'identique: champs, valeurs, étiquettes...
Utilisez-vous la même procédure? Essayez sur un projet différent, tout simple d'abord. Autrement, je ne sais quoi dire. Si! j'ai utilisé la 3.6 pour le test (pas de 3.4 sur le poste où je suis) mais je n'ai pas connaissance d'une régression à ce niveau.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322660#p322660
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 : laurent00
----------------------------------------
http://ressources.ingall-niger.org/temp/Capture.PNG
pour tous ce qui est caractère spéciaux il faut éviter d'une manière générale dans els noms de fichiers mais aussi dans les champs attributaires de tes tables
LJ
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322658#p322658
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 : Viniasco
----------------------------------------
Bonjour
Pas de suite ?
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322655#p322655
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 : Wilcar
----------------------------------------
J'importe dans Qgis des données organisées sous la forme d'une matrice (format large) à partir d'un fichier csv
|ALLIER |AISNE |ALPES
|ALLIER | - |10 |200
|AISNE |70 | - |100
|ALPES |10 |100 |-
Je souhaite réorganiser me données dans un format long après importation donc dans Qgis.
|FROM |TO |VALUE
|ALLIER |AISNE |10
|ALLIER |ALPES |200
|AISNE |ALLIER |70
|AISNE |ALPES |100
....
Ma matrice fait environ 100 x 100
----------------------------------------
Ce message est accompagné de fichiers, pour les télécharger, suivre le lien ci-dessous.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322654#p322654
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 : Feneck91
----------------------------------------
Merci SANTANA mais c'est quoi l'algorithme "Empaquetage de couches" ?
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322653#p322653
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 : SANTANNA
----------------------------------------
Bonjour,
l'algorithme "Empaquetage de couches" dans la version 3.8 intègre l'export de styles. Peut-être que l'algo seul répond déjà à toute votre problématique d'empaquetage, ou y a-t-il moyen de s'inspirer de son code ou de l'appeler dans votre traitement pour les points qui restent.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322651#p322651
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 : 34Cédric34
----------------------------------------
Bonjour Laurent,
Merci de me lire :)
-----------------
Citation :
lorsque tu ouvres une de ces couches sous format tableau dans la barre d'outil
-----------------
Je ne vois pas cette option dans ma barre d'outil, peux-tu me préciser comment faire?
Autrement les liens semblent corrects mais j'ai enregistré les .shp sous des noms de dossiers comprenant des majuscules et des accents ... ça ne pourrait pas venir de là ?
Désolé, je suis vraiment novice ....
Cédric
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322649#p322649
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 : laurent00
----------------------------------------
bonjour
on ne peut pas faire grand chose avec ton projet vu qu les liens vers les couches sont inopérants ...
au lancement j'ai vu qu'il recherche effectivement tes trois couches, le liens est-il le bon ?
lorsque tu ouvres une de ces couches sous format tableau dans la barre d'outil, estc-e que tu vois les enregistrements de tes polygones en ligne ..
LJ
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322648#p322648
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 : 34Cédric34
----------------------------------------
Bonjour,
Débutant dans l'utilisation de QGIS (v. 3.4 Madeira), je rencontre des difficultés.
Je travaille sur un projet très simple : une couche raster (photographie aérienne), trois couches vecteurs (limite de commune et polygones de parcelles). Après avoir sauvegarder mon projet hier soir, en l'ouvrant ce matin, mes polygones n'apparaissent plus dans le canvas.
----------------------------------------
Ce message est accompagné de fichiers, pour les télécharger, suivre le lien ci-dessous.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322646#p322646
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 : Lucie SMVG (smvg.zh(a)orange.fr)
----------------------------------------
effectivement il faut la fonction polygones inversés pour la couche qui sert de masque mais pour les autres couches que l'on souhaite afficher en prenant les contours de l'atlas, il faut une seconde formule aussi bien pour la symbologie que pour les étiquettes dans les ensembles de règles : contains(@atlas_geometry,$geometry)
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322641#p322641
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 : Feneck91 (schateau(a)laposte.net)
----------------------------------------
Bonjour à tous et à toutes.
Je suis développeur pour une grande société française.
L'entité dans laquelle je travaille réalise des cartes, l'outils QGIS (3.x) est utilisé.
Nous utilisons une base de données postgresql afin de gérer les donnés vectorielle. Un besoin a été de réaliser un plugin afin de sélectionner les données intéressantes à consulter.
Autre point : la capacité de faire un export afin de mettre tout un projet sur un clef ou disque dur afin de travailler de chez soi.
Ceci fonctionne plutôt bien. On peut même y intégrer les rasters mais ce n'est pas très rapide et je pense que les pyramides ne sont pas calculées.
La chose que je voudrais faire, c'est que, pour le format GeoPackage, je puis intégrer toutes les layers mais aussi la symbologie.
Actuellement j'exporte le fichier projet QGS et je le patch pour que ça fonctionne.
Mais, on peut intégrer la symbologie dans le géopackage, hélas rien ne semble fonctionner et mes multiples recherches sur internet n'ont rien données.
Je vous livre une partie du programme python.
Ça pourrait même vous servir...
Le code "options.symbologyExport = QgsVectorFileWriter.FeatureSymbology" semble ne rien faire.
Normalement, lorsque la symbologie est présente, un table nommée "layer_styles" doit être présente.
-----------------
Code :
#===========================================================================================================================
# Sauve le document.
#
# Exemple : self.saveDocument(documentQLR, "D:\Dev\GeoMaps\QGisPlugins\DMDatabaseVector\Datas\Template\VN2SHP_Template_cpy.qgs")
#===========================================================================================================================
def saveDocument(self, documentQLR, strPath):
fileSave = QFile(strPath)
if fileSave.open(QIODevice.WriteOnly | QIODevice.Text):
ouStream = QTextStream(fileSave)
ouStream.setCodec("UTF-8")
ouStream 0:
try:
QSettings().setValue(f"DMDatabaseVector/Settings/ExportFilePath", strFileName)
bAlwaysCopyRasterFiles = QSettings().value(f"DMDatabaseVector/Settings/AlwaysCopyRasterFiles", True, type=bool)
self.CreateSplashScreen(self.CONST_SPLASH_SCREEN_EXPORT, self.tr('Exporting project file...'))
pInstance = QgsProject.instance()
strCurrentFilePath = pInstance.absoluteFilePath()
isDirty = pInstance.isDirty()
# Suppression si déjà existant
if os.path.isfile(strFileName):
os.remove(strFileName)
pInstance.write(strFileName)
pInstance.setFileName(strCurrentFilePath)
pInstance.setDirty(isDirty)
if os.path.isfile(strFileName):
fileQLR = QFile(strFileName)
self.SetSplashScreeMessageAndValue(9.99, self.tr('Reloading exported project file, please wait...'))
if fileQLR.open(QIODevice.ReadOnly | QIODevice.Text):
if self.__CancelLoading:
raise UserWarning(self.tr('Operation canceled by user!'))
documentQLR = QDomDocument()
bLoadOK = documentQLR.setContent(fileQLR)
fileQLR.close()
if bLoadOK:
layers = QgsProject.instance().mapLayers() # dictionary
strFolderPath = os.path.dirname(strFileName)
strFileNameWithoutExtension = os.path.splitext(os.path.basename(strFileName))[0]
iNumLayerSaved = 0
iNbLayers = len(layers.values())
iNumLayerSaved, isUniqueFileCreated = self.RecursiveExportQGS(documentQLR, bAlwaysCopyRasterFiles, lambdaFormatLayerName, strFolderPath, strFileNameWithoutExtension, strFormat, strExtension, bOnlyOneFile, [], iNbLayers, 0, False, {}, None)
self.SetSplashScreeMessageAndValue(94.0, self.tr('Saving exported project file...'))
self.saveDocument(documentQLR, strFileName)
self.SetSplashScreeMessageAndValue(100.0, self.tr('Done.'))
self.ManagesplashEvents(1.5)
bExportOK = True
else:
raise Exception(self.tr("Bad format for the exported project file '{}'!").format(strFileName))
else:
raise Exception(self.tr("The exported project file '{}' cannot be read!").format(strFileName))
else:
raise Exception(self.tr("The exported project file '{}' cannot be found!").format(strFileName))
except UserWarning as ex:
self.CloseSplashScreen()
QMessageBox.warning(self, self.tr("Plugin"), "{}".format(ex), QMessageBox.Ok)
except Exception as ex:
self.CloseSplashScreen()
QMessageBox.critical(self, self.tr("Exception"), self.tr("Exception raised: {}").format(ex), QMessageBox.Ok)
finally:
self.CloseSplashScreen()
if bExportOK:
if QMessageBox.Yes == QMessageBox.question(self, self.tr("Loading exported project ?"), self.tr("Would you like to load the exported project now ?nnBe careful, you will lose all actual project content!"), QMessageBox.Yes, QMessageBox.No):
QgsProject.instance().clear()
QgsProject.instance().read(strFileName)
self.close()
#===========================================================================================================================
# Export chaque layer dans un fichier.
#
# documentQLR : document contenant le fichier qgs, permet de patcher les sources (fichiers au lieu de BDD)
# bAlwaysCopyRasterFiles : indique si les rasters doivent toujours être copiés ou pas
# lambdaFormatLayerName : permet de formatter le nom de la layer à mettre dans "source" et "datasource"
# strFolderPath : chemin racine où sauver la donnée
# strFileName :nom du fichier sans l'extension, non utilisé si sauvegarde en multi fichier
# strFormat : format d'exportation
# strExtension : extension (sans le '.')
# bOnlyOneFile : sauvegarde dans un seul fichier ou en multi-fichier (un par layer)
# lstArboFolders : liste de l'arborescence des répertoires
# iNbLayersToSave : Nombre de layers à sauver (pour calculer le % d'avancement)
# iNumLayerSaved : Nombre de layers déjà sauvées (pour calculer le % d'avancement)
# isUniqueFileCreated : Ne vaut true QUE lorsque le fichier unique a été créé. En effet si la première couche a créer est un raster que l'option bAlwaysCopyRasterFiles est true, à la deuxième layer à créer le iNumLayerSaved sera = 1 et les
# options de création ne seront pas corrects.
# dicLayersName : Nom des layers déjà sauvées, utilisé lorsque bOnlyOneFile est True pour ne pas réutiliser le même nom deux fois dans un fichier unique
# layerRoot : Noeud racine (appel récursif)
#===========================================================================================================================
def RecursiveExportQGS(self, documentQLR, bAlwaysCopyRasterFiles, lambdaFormatLayerName, strFolderPath, strFileName, strFormat, strExtension, bOnlyOneFile, lstArboFolders, iNbLayersToSave, iNumLayerSaved, isUniqueFileCreated, dicLayersName, layerRoot = None):
layerRoot = layerRoot if not (layerRoot is None) else QgsProject.instance().layerTreeRoot()
for layerTreeNode in layerRoot.children():
if self.__CancelLoading:
raise UserWarning(self.tr('Operation canceled by user!'))
if QgsLayerTree.isLayer(layerTreeNode):
layer = None
try:
layer = layerTreeNode.layer()
except Exception as ex:
try:
for layerNodeBlc in QgsProject.instance().layerTreeRoot().findLayers():
if layerNodeBlc.name() == layerTreeNode.name() and layerNodeBlc.parent().name() == layerTreeNode.parent().name():
layer = layerNodeBlc.layer()
break
except Exception as ex:
# La layer est vide, n'existe pas, il faut l'ignorer
pass
# Initialiser les options
options = QgsVectorFileWriter.SaveVectorOptions()
options.driverName = strFormat
options.fileEncoding = "utf-8"
if not(layer is None) and layer.isValid() and (isinstance(layer, QgsVectorLayer) or isinstance(layer, QgsRasterLayer)):
# Mettre à jour la splash screen
self.SetSplashScreeMessageAndValue(10.0 + iNumLayerSaved * (80.0 / iNbLayersToSave), self.tr('Exporting layer {}...').format(layer.name()))
# Calcul layer name
strLayerNameIntoDic = ""
if bOnlyOneFile :
# Calculer le nom de la layer
options.layerName = ".".join(lstArboFolders) + ("" if len(lstArboFolders) == 0 else ".") + "_".join(layer.name().split(' '))
iIndexLayerNameSame = 2
# Faire en sorte qu'elle soit unique
while options.layerName in dicLayersName:
strLayerName = (".".join(lstArboFolders) + ("" if len(lstArboFolders) == 0 else ".") + "_".join(layer.name().split(' '))) + f"~{iIndexLayerNameSame}"
iIndexLayerNameSame += 1
strLayerNameIntoDic = options.layerName
else:
options.layerName = "_".join(layer.name().split(' '))
iIndexLayerNameSame = 2
# Faire en sorte qu'elle soit unique
while os.path.join(*lstArboFolders, options.layerName) in dicLayersName:
strLayerName = "_".join(layer.name().split(' ')) + f"~{iIndexLayerNameSame}"
iIndexLayerNameSame += 1
strLayerNameIntoDic = os.path.join(*lstArboFolders, options.layerName)
# Récupération des informations dans le fichier qgs
strInfoLayerDatas = None
qDomNodeCurrent = documentQLR.documentElement().firstChildElement("projectlayers")
if not qDomNodeCurrent.isNull():
qDomNodeCurrent = qDomNodeCurrent.firstChildElement("maplayer")
if not qDomNodeCurrent.isNull() :
qDomNodeCurrent = self.findChildNodeFromAttributeOrNode(qDomNodeCurrent, "id", layer.id(), False)
if not qDomNodeCurrent.isNull():
qDomElementDataSource = qDomNodeCurrent.firstChildElement("datasource")
qDomElementProvider = qDomNodeCurrent.firstChildElement("provider")
if not (qDomElementDataSource.isNull()) :
if not (qDomElementProvider.isNull()):
strInfoLayerDatas = qDomElementProvider.firstChild().nodeValue() + "¤" + qDomElementDataSource.firstChild().nodeValue()
else:
raise Exception(self.tr("Dom node '{}' not found for layer = '{}' / id = '{}'!").format("provider", layer.name(), layer.id()))
else:
raise Exception(self.tr("Dom node '{}' not found for layer = '{}' / id = '{}'!").format("datasource", layer.name(), layer.id()))
else:
raise Exception(self.tr("Dom node '{}' not found for layer = '{}' / id = '{}'!").format("id", layer.name(), layer.id()))
else:
raise Exception(self.tr("Dom node '{}' not found for layer = '{}' / id = '{}'!").format("maplayer", layer.name(), layer.id()))
else:
raise Exception(self.tr("Dom node '{}' not found for layer = '{}' / id = '{}'!").format("projectlayers", layer.name(), layer.id()))
for key, val in dicLayersName.items():
if val[0] == strInfoLayerDatas:
strLayerNameIntoDic = None # On réutilise la même layer que celle qui existe déjà avec les mêmes attributs
strDomElementSource = val[1]
break
if not(strLayerNameIntoDic is None):
# Vérifier l'arborescence et créer les répertoires
if not(bOnlyOneFile):
for iIndex, folderName in enumerate(lstArboFolders):
path = os.path.join(strFolderPath, *[lstArboFolders for i in range(0, iIndex)])
if os.path.isfile(path):
os.remove(path)
path = os.path.join(strFolderPath, *lstArboFolders)
if not(os.path.isdir(path)):
os.makedirs(path)
if isinstance(layer, QgsVectorLayer):
# Calcul des fichiers / répertoires relatifs
strFileNameOnly = strFileName + "." + strExtension if bOnlyOneFile else options.layerName + "." + strExtension
strFileNameRelativePathOnly = strFileNameOnly if bOnlyOneFile else os.path.join(*lstArboFolders, strFileNameOnly)
strFilePath = os.path.join(strFolderPath, strFileNameRelativePathOnly)
elif isinstance(layer, QgsRasterLayer):
if bOnlyOneFile and not bAlwaysCopyRasterFiles:
# Copier dans le fichier unique
strFileNameOnly = strFileName + "." + strExtension if bOnlyOneFile else options.layerName + "." + strExtension
strFileNameRelativePathOnly = strFileNameOnly if bOnlyOneFile else os.path.join(*lstArboFolders, strFileNameOnly)
strFilePath = os.path.join(strFolderPath, strFileNameRelativePathOnly)
else:
# Copier le fichier source vers la destination
strFileNameOnly = os.path.basename(layer.source())
strFileNameRelativePathOnly = os.path.join(*lstArboFolders, strFileNameOnly)
strFilePath = os.path.join(strFolderPath, strFileNameRelativePathOnly)
path = os.path.join(strFolderPath, *lstArboFolders)
if not(os.path.isdir(path)):
os.makedirs(path)
if not(bOnlyOneFile) or iNumLayerSaved == 0:
if os.path.isfile(strFilePath):
os.remove(strFilePath)
if bOnlyOneFile and isUniqueFileCreated:
options.actionOnExistingFile = QgsVectorFileWriter.CreateOrOverwriteLayer
# Exportation
if isinstance(layer, QgsVectorLayer):
strDomElementSource = "./" + strFileNameRelativePathOnly + lambdaFormatLayerName(layer, options.layerName)
# QgsVectorFileWriter.SymbologyExport = QgsVectorFileWriter.NoSymbology ----------------> https://qgis.org/pyqgis/master/core/QgsVectorFileWriter.html#qgis.core.QgsV…
options.symbologyExport = QgsVectorFileWriter.NoSymbology
writeResult, errorMessage = QgsVectorFileWriter.writeAsVectorFormat(layer, strFilePath, options)
isUniqueFileCreated = True # Une fois passé ici, vaut toujours TRUE
if writeResult != 0:
raise Exception(self.tr("Error while writing vector layer '{}' / id = '{}': '{}'").format(layer.name(), layer.id(), errorMessage))
strProvider = "ogr"
elif isinstance(layer, QgsRasterLayer):
strProvider = "gdal"
if bOnlyOneFile and not bAlwaysCopyRasterFiles:
strDomElementSource = strFormat + ":./" + strFileNameRelativePathOnly + lambdaFormatLayerName(layer, options.layerName)
pipe = QgsRasterPipe()
provider = layer.dataProvider()
projector = QgsRasterProjector()
projector.setCrs(provider.crs(), provider.crs())
if pipe.set(provider.clone()) and pipe.insert(2, projector):
fw = QgsRasterFileWriter(strFilePath)
fw.setOutputFormat(strFormat)
fw.setCreateOptions(["RASTER_TABLE=" + options.layerName, 'APPEND_SUBDATASET=' + ('YES' if OnlyOneFile and isUniqueFileCreated else 'NO'), 'TILE_FORMAT=PNG']) # 'TILING_SCHEME=GoogleMapsCompatible'
if fw.writeRaster(pipe, provider.xSize(),provider.ySize(),provider.extent(),provider.crs()) != QgsRasterFileWriter.NoError:
raise Exception(self.tr("Error while writing raster layer '{}' / id = '{}'!").format(layer.name(), layer.id()))
isUniqueFileCreated = True # Une fois passé ici, vaut toujours TRUE
else:
raise Exception(self.tr("Error while preparing writing raster layer '{}' / id = '{}'!").format(layer.name(), layer.id()))
else:
# Copie du raster source au même endroit que la destination
source = QFileInfo(layer.source())
strDomElementSource = "./" + strFileNameRelativePathOnly
if source.exists():
QFile.copy(source.absoluteFilePath(),strFilePath)
else:
raise Exception(self.tr("Error while writing raster layer '{}' / id = '{}': file '{}' doesn't exists!").format(layer.name(), layer.id(), source.absoluteFilePath()))
dicLayersName[strLayerNameIntoDic] = [strInfoLayerDatas, strDomElementSource]
# Patch du fichier qgs
# Patch 1 : projectlayers
qDomElementDataSource.firstChild().setNodeValue(strDomElementSource)
qDomElementProvider.firstChild().setNodeValue(strProvider)
# Patch 2 : layer-tree-group
qDomNodeCurrent = documentQLR.documentElement().firstChildElement("layer-tree-group")
if not qDomNodeCurrent.isNull():
qDomNodeCurrent = self.findInLayerTreeGroup(qDomNodeCurrent, "id", layer.id())
if not qDomNodeCurrent.isNull():
qDomAttributeSource = self.getNodeAttribute(qDomNodeCurrent, "source")
qDomAttributeProviderKey = self.getNodeAttribute(qDomNodeCurrent, "providerKey")
if not (qDomAttributeSource.isNull()) :
if not (qDomAttributeProviderKey.isNull()):
qDomAttributeSource.setNodeValue(strDomElementSource)
qDomAttributeProviderKey.setNodeValue(strProvider)
else:
raise Exception(self.tr("Dom attribute '{}' not found for layer = '{}' / id = '{}'!").format("providerKey", layer.name(), layer.id()))
else:
raise Exception(self.tr("Dom attribute '{}' not found for layer = '{}' / id = '{}'!").format("source", layer.name(), layer.id()))
else:
raise Exception(self.tr("Dom node '{}' not found for layer = '{}' / id = '{}'!").format("layer-tree-group", layer.name(), layer.id()))
else:
raise Exception(self.tr("Dom node '{}' not found for layer = '{}' / id = '{}'!").format("layer-tree-group", layer.name(), layer.id()))
iNumLayerSaved += 1
elif QgsLayerTree.isGroup(layerTreeNode):
lstArboFoldersCopy = copy.deepcopy(lstArboFolders)
lstArboFoldersCopy.append(layerTreeNode.name())
iNumLayerSaved, isUniqueFileCreated = self.RecursiveExportQGS(documentQLR, bAlwaysCopyRasterFiles, lambdaFormatLayerName, strFolderPath, strFileName, strFormat, strExtension, bOnlyOneFile, lstArboFoldersCopy, iNbLayersToSave, iNumLayerSaved, isUniqueFileCreated, dicLayersName, layerTreeNode)
return iNumLayerSaved, isUniqueFileCreated
#===========================================================================================================================
# Retrouver le noeud dont sont attribue dont le nom est passé en paramètre est égla à la valeur recherchée.
#
# qDomNode : de type QDomNode, est le noeud parent contenant les sous-noeuds.
# strAttributeName : nom du sous-noeud a rechercher.
# Retourne la valeur du sous-noeud, None si non trouvé.
#===========================================================================================================================
def findInLayerTreeGroup(self, qDomNode, strAttributeName, strAttributeValue):
while not qDomNode.isNull():
nodeAttribute = self.findChildNodeFromAttributeOrNode(qDomNode.firstChildElement("layer-tree-layer"), strAttributeName, strAttributeValue, True)
if nodeAttribute.isNull():
# Look in children
nodeAttribute = self.findInLayerTreeGroup(qDomNode.firstChildElement(qDomNode.nodeName()), strAttributeName, strAttributeValue)
if not(nodeAttribute.isNull()):
qDomNode = nodeAttribute
break
qDomNode = qDomNode.nextSiblingElement(qDomNode.nodeName())
return qDomNode
-----------------
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322640#p322640
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 : géoflo
----------------------------------------
Bonjour, je m'entraîne actuellement au logiciel Qgis 3.4 et je rencontre un problème.
J'ai un srtm et j'aimerai calculer les pentes en %
Sur d'autres versions de Qgis j'utilisais l'outil MNT/DEM qui marchait très bien. Sur cette version de Qgis je ne trouve plus cet outils. Est ce normal ?
J'ai donc utilisé l'outils gdal pente qui donne des résultats étranges en % (valeurs dans les milliers).
J'ai vu sur un forum qu'il fallait mettre 111120 dans la case échelle ce qui donne des résultats un peu plus satisfaisants même si certaines pentes sont supérieures à 100%.
Cependant je ne comprends pas d'où sort cette valeur et si c'est vraiment la solution idéale ...
Si quelqu'un a des infos ... ou connaît d autres moyens de calculer des pentes sur qgis 3.4
Merci d'avance !
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322639#p322639
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 : Renaud Mouche (renaud(a)georezo.net)
----------------------------------------
Bonjour,
La réponse précédente, utilisation de la symbologie 'polygones inversés', répond bien à la question
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322635#p322635
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 : SANTANNA
----------------------------------------
Bonjour,
Au terme du délai dont nous disposions, nous avons reçu une trentaine de votes et après décompte, la sélection se compose comme suit:
Choix n°1: 8. "Rebalance" the labeling engine and fix poor automatic label placement choices (113 pts)
Choix n°2: 9. Profile and optimise the QGIS vector rendering code (86 pts)
Choix n°3: 6. Reuse core functionality to provide DB manager features (78 pts)
Choix n°4: 10. Snapping cache improvements (60 pts)
Choix n°5: 5. Registry for classification methods (47 pts)
Choix n°6: 1. Precise GetFeatureInfo (identify) in QGIS Server (41 pts)
Ce choix a été reporté dans le vote au niveau de QGIS.ORG.
Reste plus qu'à voir si la grande communauté à la même sensibilité que les utilisateurs FR.
Merci à tous les participants.
Cordialement,
Harrissou S.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=322619#p322619
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