#1 Wed 13 December 2023 11:29
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
QGIS 3.28/Python: Proprietes des couches chargees
Bonjour
Je charge différentes couches de données (vecteur ou raster) à l'aide de AddVectorLayer et AddRastorLayer,
et je voudrais ensuite pourvoir pour chacune d'elles, lire les propriétés de ces couche
- source de la donnée
- nature (vecteur ou raster)
- etc ...
Pourriez-vous me dire comment s'y prendre en PYTHON ?
Merci et bonne journée, PYJ
Hors ligne
#2 Wed 13 December 2023 14:11
- YoLecomte
- Participant assidu
- Lieu: Epinal
- Date d'inscription: 7 Jul 2015
- Messages: 266
Re: QGIS 3.28/Python: Proprietes des couches chargees
Hors ligne
#3 Wed 13 December 2023 17:12
Re: QGIS 3.28/Python: Proprietes des couches chargees
Bonjour,
Pour compléter cette réponse un peu teintée RTFM ...
Le 'Développement PyQGIS - Livre de recettes' existe aussi en français, et évolue au fil de la traduction que les contributeur.rices bénévoles en font : https://docs.qgis.org/3.28/fr/docs/pyqg … index.html
(Bien qu'évidemment des notions ou la maîtrise de l'anglais technique sont un gros plus pour la prog python en général, donc aussi celle de l'API QGIS.)
Pour en revenir à la question, une bonne source d'inspiration est la doc de ladite API : https://qgis.org/pyqgis/3.28/index.html (en anglais).
En particulier la partie concernant les classes QgsVectorLayer et QgsRasterLayer
Bonne journée.
Edit modo: Quitte à pointer vers des liens, autant utiliser ceux de la version en objet.
Dernière modification par SANTANNA (Thu 14 December 2023 11:06)
Hors ligne
#4 Thu 14 December 2023 08:03
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: QGIS 3.28/Python: Proprietes des couches chargees
Bonjour,
Désolé,
Je débute avec QGIS, mais je n'ai rien trouvé dans la doc ;-(
Pour ma problématique,
les couches (vecteur ou raster sont déjà chargées via les fonctions appropriées
Elles apparaissent dans la vue et dans la légende
Ensuite, pour un besoin particuleir, j'ai besoin de reparcourir ces couches (ou layers) et pour chacue d'elle, etrouver leurd caractéristiques
- Nature (Verteur ou raster)
- Leur source initiale (base ou fichier)
- Leur localisation dans le cas de fichier)
Un petit exemple serait donc le bien venu
Merci de votre aide
Hors ligne
#5 Thu 14 December 2023 18:46
Re: QGIS 3.28/Python: Proprietes des couches chargees
Bonjour,
[...]
les couches (vecteur ou raster sont déjà chargées via les fonctions appropriées
[...]]Un petit exemple serait donc le bien venu
Peut-être qu'un exemple du code qui charge les couches via les fonctions appropriés serait utile pour répondre.
Bonne soirée.
Hors ligne
#6 Fri 15 December 2023 07:14
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: QGIS 3.28/Python: Proprietes des couches chargees
Vonjour,
Et voilà comment je charge mes couches
Les 2 premières fonctions sont des utilitaires, c'est la dernière qui fait le job
Il faut lui passée en argument une liste de fichiers shape ou tif
Merci
Code:
import os # Retourne l'extension d'un fichier (. compris) def WBO_FICHIER_DonnerExtensionFichier(fichier): _, extension = os.path.splitext(fichier) return(extension) # Ajoute une couche shape ou tif # Arg 1 : Chemin complet vers le jeu de données # Arg2 : Nom que l'on veut voir dans la légende # Res : layer ajoute def WBO_LAYER_CoucheAjouter(jeu,nom): if (WBO_FICHIER_DonnerExtensionFichier(jeu) == ".shp"): layer = iface.addVectorLayer(jeu, nom, "ogr") elif (WBO_FICHIER_DonnerExtensionFichier(jeu) == ".tif"): layer = iface.addRasterLayer(jeu,nom,"gdal") else: print ("Format inconnu") return(layer) # Foncton à jouer # Il faut 2 jeux de donnees (shape et/ou tif) dans C:Temp def PRT_Test(liste): for radical in liste: jeu = ("c:/temp/" + radical + ".shp") layer = WBO_LAYER_CoucheAjouter(jeu,compo)
Hors ligne