Message posté par : AlbertMerlin7
----------------------------------------
Bonjour,
Je cherche à créer des isochrones sur QGIS en tenant compte de la vitesse de déplacement à pied et en utilisant uniquement mes données pour ainsi éviter d’utiliser des services type Open route service.
Plus précisément, je possède pour l’ensemble d’une ville :
- une couche point avec env. 200 points d’intérêt (Type de géométrie = point)
- une couche réseau des chemins piétons pour laquelle est indiqué, pour chaque tronçon, l’altitude à chacune des extrémités du trançon (Type de géométrie = polylignes).
J’utilise QNEAT3 qui permet de faire des isochrones depuis mes points en ayant l’avantage de pouvoir préciser la vitesse de déplacement selon un champ de la couche réseau. Dès lors, sur la base d’études qui définissent la vitesse de marche en fonction de la pente, je pourrais ajouter un champ dans ma couche réseau indiquant pour chaque tronçon sa pente et ensuite créer un nouveau champs qui indiquerait, pour chaque tronçon, la vitesse de déplacement déduite selon la pente.
Cependant, pour une même pente, la vitesse de déplacement n’est pas la même si le tronçon monte ou descend. Dès lors, comment peut-on faire pour que QNEAT3 comprenne que depuis le point où il calcule l’isochrone, le tronçon qu’il empreinte est soit en montée ou soit descente afin qu’il indique la bonne vitesse ?
Je parle ici de QNEAT car j’ai le plus l’habitude de travailler avec, mais je reste bien sûr ouvert à d’autres alternatives !
En vous remerciant et avec mes meilleures salutations
AM7
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=362532#p362532
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 : Pascal1968
----------------------------------------
Salut Jérémie !
Grand merci pour cette réponse aussi rapide que complète !
Normalement, au niveau nomenclature des arbres, un cas comme Salix (x) sepulcralis _'Chrysocoma' s'écrit Salix x sepulcralis 'Chrysocoma'.
Seulement, au niveau des expressions que j'avais montées, il me fallait pouvoir distinguer ce qui est le nom du genre, le nom de l'espèce et le nom de la variété. Sans compter toutes les variantes qui ne comprenne pas de nom d'espèces ou qui possède un 'x' de liaison car ce sont des cultivars.
Bref, le "(x)" et le " _" me permettait sans trop d'effort au résultat.
Pour rire, le fait des parenthèses autour du "x" me permettait d'éviter que ma fonction ne s'arrête sur le "x" de "saliX" au lieu de s'arrêter sur le "x" de liaison :-) Ca m'a rendu ce truc-là.
Le redoublement de l'espacement n'était pas non plus une erreur. Il me permettait de ne pas avoir le nom du cultivar qui venait s'afficher avec celui de l'espèce. Mais, bon, je l'admets, c'est du bricolage.
De mon très rapide petit test au boulot, tes trois expressions fonctionnent presque à la perfection. Je constate simplement que je me suis mal exprimé sur quelques détails.
Pour le "(x)", tu as raison. Je souhaite effectivement pouvoir récupérer le "x" (sans les parenthèses) dans le champs "Species".
Pour le Salix (x) sepulcralis _'Chrysocoma', le résultat escompté est donc:
Genus : Salix
Species: x sepulcralis
Cultivar: 'Chrysocoma'
De même les guillemets simples (') qui entourent le nom du cultivar doivent aussi être conservés. Ce qui n'est pas le cas ici.
Penses-tu qu'il soit possible de modifier tes trois expressions pour les utiliser directement sur les noms réels sans mes "(x)" et " _" qui me servent à séparer genre/espèce/variété ?
Je vais m'attaquer ce soir au site que tu m'as conseillé et qui me semble effectivement très intéressant. On est jamais trop vieux pour apprendre.
Merci d'avance pour la suite !
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=362500#p362500
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 : Jérémie
----------------------------------------
J'ai essayé quelque chose qui pourrait t'aller, avec regexp_matches.
-----------------
Code :
regexp_matches( replace(fullname,'(x) ',''),'^([a-zA-Z0-9_]+) ([a-zA-Z0-9_]*) ?(_.+)*$')
-----------------
Permet de récupérer une liste de toutes les chaînes repérées par l'expression rationnelle.
J'ai remplacé le (x) et l'espace qui le suit par une chaine vide pour ne pas à avoir à le gérer dans l'expression rationnelle. J'espère que j'ai bien compris et que tu ne souhaitais pas le récupérer dans tes champs ?
L'expression rationnelle récupère 3 groupes (ce sont les parenthèses qui servent à faire les groupes) qu'on récupère dans une liste :
- genus = le premier groupe de lettres ou chiffres [a-zA-Z0-9_]+ le ^ servant à indiquer que c'est le début de la ligne et le + pour indiquer 1 à n répétitions de lettres ou chiffres
- species = le deuxième groupe de lettres ou chiffres (mais peut aussi être vide, c'est à ça que sert le * : 0 à n répétitions de lettres ou chiffres)
- cultivar = après une deuxième espace optionnelle (?) on a à la suite un underscore suivi de n'importe quel caractère (.) répété entre 1 et n fois (+). Cet ensemble peut être présent 0 à n fois (*) et enfin fin de ligne ($)
Ensuite, pour récupérer le bon groupe, tu peux utiliser le array_get() :
Pour genus
-----------------
Code :
array_get(regexp_matches( replace(fullname,'(x) ',''),'^([a-zA-Z0-9_]+) ([a-zA-Z0-9_]*) ?(_.+)*$'),0)
-----------------
Pour species
-----------------
Code :
array_get(regexp_matches( replace(fullname,'(x) ',''),'^([a-zA-Z0-9_]+) ([a-zA-Z0-9_]*) ?(_.+)*$'),1)
-----------------
Pour cultivar
-----------------
Code :
regexp_replace(array_get(regexp_matches( replace(fullname,'(x) ',''),'^([a-zA-Z0-9_]+) ([a-zA-Z0-9_]*) ?(_.+)*$'),2),'[_'']','')
-----------------
J'ai ajouté un regexp_replace qui remplace les underscore et les quotes par une chaîne vide.
En espérant que ça réponde à ta problématique.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=362487#p362487
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 : Bruno IRATCHET (bruno(a)georezo.net)
----------------------------------------
Bonjour,
Par ici (forum QGIS).
Bonne journée!
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=362514#p362514
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 : Léandre Béron
----------------------------------------
Bonjour,
Je recherche actuellement tous les prérequis techniques nécessaires avant implémentation d'un QGIS Server sur notre environnement.
En regardant dans la documentation (https://qgis.org/fr/site/forusers/alldownloads.html), je remarque certaines conditions comme l'utilisation de Debian 12.x mais je ne trouve pas d'éléments sur la RAM ou encore sur l'espace disque recommandé pour un fonctionnement optimal.
Auriez-vous une doc qui évoque ces éléments ?
Le cas échéant, quelle est la configuration de votre server Debian pour le fonctionnement de QGIS Server ?
Bien cordialement,
Léandre BERON
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=362499#p362499
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 : Evaan
----------------------------------------
Bonjour,
Je me permets de remonter ce topic, pour la bonne cause je l'espère. Étant en effet confronté à la même problématique que l'auteur, une recherche m'a amené ici et je constate qu'aucune solution vraiment simple n'a semble-t-il été trouvée. Or en poursuivant mes recherches il semble que j'ai trouvé une solution satisfaisante.
Pour rappel, il s'agissait de trouver une méthode avec QGis pour replacer manuellement des points sans géométrie dans une couche de ponctuels.
Un exemple de contexte qui est le mien, et qui peut, je pense, être rencontré par de nombreux utilisateurs : en utilisant l'extension de géocodage QBAN(O), les adresses non trouvées par le géocodeur renvoient des lignes sans géométrie dans la table des résultats. Il peut alors en effet être pratique de pouvoir, si on connait l'emplacement de ces point ou si on peut facilement les trouver, les replacer manuellement sans avoir à tout récréer (attributs, etc.) ou sans avoir à faire (comme l'a fait l'auteur) un export en csv pour ajouter les coordonnées XY manuellement avec l'aide d'outils externes (Google Maps, Géoportail) puis réimporter le csv en ponctuels, manipulations qui me semblent assez lourdes.
La solution identifiée est donc la suivante :
- Sélectionner une ligne sans géométrie dans la table attributaire que l'on veut localiser,
- Rendre la couche éditable,
- Utiliser l'outil d'édition "ajouter une partie" (QGis >=2.2) et placer le point sur la carte à l'emplacement identifié.
On créé une entité multi-partie à partir d'une entité non géométrique, donc en résumé on obtient une entité géométrique simple (0+1=1).
Pour rentre à César ce qui appartient à César, voici la source (en anglais) de cette trouvaille : https://gis.stackexchange.com/questions/42458/how-to-add-a-geometry-to-an-e…
En espérant que cela puisse aider.
Antoine.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=362496#p362496
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 : GlaDal
----------------------------------------
Bonjour, dans les propriétés de votre couche, rubrique étiquette, sélectionnez la sous-rubrique 'rendu'. Ici cochez 'Autroriser les emplacements de remplacement inférieurs et sélectionnez également 'Autoriser les chevauchements si nécessaire'
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=362458#p362458
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 : Robin BNF
----------------------------------------
Bonjour,
L'erreur indique que l'import du module QgsLayer a échoué. D'après l'API QGIS python, il me semble que cette classe n'existe pas et donc ne pas être importée.
En parcourant rapidement votre code, il me semble que ce module n'est pas nécessaire, vous pouvez essayer de le supprimer.
Concernant l'IA pour éditer des codes python, je ne sais pas laquelle vous avez utilisé, mais si il s'agit de Chat GPT, mon expérience est qu'il n'est pas très performant en pyQGIS. Il peut être utile pour donner des idées de fonctions ou de méthodes mais il est nécessaire de retoucher ensuite le code car il y a fréquemment des erreurs.
Pour des fonctions courantes en pyqgis, vous pouvez consulter de livre des recettes pyQGIS qui est très bien fait : https://docs.qgis.org/3.28/fr/docs/pyqgis_developer_cookbook/index.html
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=362466#p362466
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 : antho0023
----------------------------------------
Bonjour merci pour votre retour. En fait j'utilise l'IA par défaut de connaissances dans la programmation en générale. j'ai pu effectivement constater que bien souvent il y a des éléments à revoir. Pour un petit retour d'expérience, meme si là n'est pas le sujet, Chat GPT peut etre un bon allié dans l'utilisation de la calculatrice de champs. Je n'ai rencontré que peu d'erreurs même si j'ai appris à être vigilant car des fois, les réponses ne sont pas bonnes ou pertinente.
Le code que j'ai inséré a été produit lui par Bard qui ne semble pas très chaud sur le sujet. D'ailleurs même en le poussant " à la reflexion" les réponses sont toujours les mêmes.
Je vais tenter de faire passer le code de cette manière. Pour un info et pour d'éventuels autres utilsateurs qui seraient dans ce cas, je vais tenter le script avec un profil utilisateur vierge, car celui que j'utilise à l'heure actuelle me fais générer des erreurs python au démarage en lien avec cette classe d'attributs.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=362484#p362484
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 : Pascal1968
----------------------------------------
Bonjour à toutes et tous,
J'ai un petit souci d'extraction partielle d'une chaîne de caractères d'un champ pour remplir un autre champ.
Je sais qu'il y déjà quantité de sujet du même style, mais l'expression que j'utilise fonctionne parfaitement sauf pour un cas en particulier.
Si quelqu'un sait me dépanner ... ?
Soit une couche avec un champ "Fullname" comprenant des valeurs de type :
Abies concolor => Genus + Species
Acer campestre _'Elsrijk' => Genus + Species + Cultivar
Carpinus betulus _'Albert Beeckman' => Genus + Species + Cultivar (cultivar en deux mots)
Ilex _'Nellie R. Stevens' => Genus + Cultivar
Populus (x) canadensis => Genus + Species (mais avec "(+)" devant le nom d'espèce)
Salix (x) sepulcralis _'Chrysocoma' => Genus + Species (mais avec "(+)" devant le nom d'espèce) + Cultivar
Je souhaite remplir automatiquement un champ "Genus", un champ "Species" et un champ "Cultivar" sur base de "Fullname".
"Genus" est le premier mot de "Fullname".
"Species" est le second mot sans quotes de "Fullname" lorsque ce deuxième mot existe.
"Cultivar est le second ou troisième mot de "Fullname" et est toujours entre deux quotes.
Pour "Genus", en valeur par défaut, je mets : array_get (string_to_array ("Fullname",' '), 0)
Pour "Cultivar", en valeur par défaut, je mets : array_get (string_to_array ("Fullname",'_'), 1)
Les deux expressions fonctionnent à marveille.
Le problème est pour le champ "Species".
En valeur par défaut, pour résoudre tous les différents cas, je mets:
CASE
WHEN length("Fullname")-length(replace("Fullname", '(x)', '')) = 3
THEN 'x '||array_get (string_to_array ("Fullname",'(x)'), 1)
ELSE
array_get (string_to_array ("Fullname",' '), 1)
END
Cela fonctionne dans tous les cas sauf un: les valeur du type Salix (x) sepulcralis _'Chrysocoma' qui renvoient "x sepulcralis _'Chrysocoma'".
Il y a donc la partie ( _'Chrysocoma') en trop.
Voir capture d'écran : https://imagizer.imageshack.com/img923/2386/5YvlLf.jpg
J'ai essayé de comprendre l'expression regexp_substr, mais sans succès
Elle me semble pourtant être adaptée à ce que je souhaite faire : extraire une partie d'une chaîne de caractères, toujours comprise entre les deux mêmes caractères.
Début = la parenthèse fermée.
Fin = le underscroll (en réalité, l'espace avant le underscroll).
Une âme charitable pourrait-elle me mettre sur la bonne piste ?
D'avance merci !
----------------------------------------
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=362483#p362483
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