Suite

QGIS 2.4 plante lors de la symbolisation de QgsComposerShape en Python avec ScriptRunner

QGIS 2.4 plante lors de la symbolisation de QgsComposerShape en Python avec ScriptRunner


J'essaie d'utiliser ScriptRunner pour générer un jpeg d'un rectangle rouge à l'aide de QGIS Composer pour comprendre QgsComposerShape. Tout fonctionne sauf que QGIS plante lorsque le symbole est appliqué. L'image de sortie est correctement produite mais QGIS plante. Si je supprime la partie symbole du code, il dessine le contour du rectangle et ne se bloque pas. Si j'exécute le même code ligne par ligne dans la console QGIS Python, tout fonctionne sans plantage.

Je ne comprends tout simplement pas pourquoi l'utilisation du plug-in ScriptRunner entraîne un plantage. En parcourant GIS-SE, je ne trouve pas ce problème exact, mais il semble y avoir d'autres problèmes avec les plug-ins et les symboles. Existe-t-il une solution de contournement à ce problème ?

Voici le script ScriptRunner. La couche n'est pas rendue, mais vous avez besoin d'un moteur de rendu de carte pour utiliser l'objet de forme :

de PyQt4.QtCore import * de PyQt4.QtGui import * de qgis.core import * de qgis.gui import * def run_script(iface): """Imprimer une carte simple avec un rectangle""" lyr = QgsVectorLayer("/Users /joellawhead/qgis_data/ms/Mississippi.shp", "Mississippi", "ogr") reg = QgsMapLayerRegistry.instance() reg.addMapLayer(lyr) c = QgsComposition(iface.mapCanvas().mapRenderer()) c.setPlotStyle (QgsComposition.Print) c.setPaperSize(215,9, 279,4) w, h = c.paperWidth(), c.paperHeight() x = 0 y = ((h * .2) * -1) / 2 composerMap = QgsComposerMap( c,x,y,w,h) c.addItem(composerMap) dpi = c.printResolution() c.setPrintResolution(dpi) dpmm = dpi / 25,4 width = int(dpmm * c.paperWidth()) height = int( dpmm * c.paperHeight()) red = {'color':'255,0,0,255','color_border':'0,0,255,255'} redsym = QgsFillSymbolV2.createSimple(red) shape1 = QgsComposerShape(10,50,10 ,25,c) shape1.setShapeType(1) shape1.setUseSymbolV2(True) shape1.setShapeStyleSymbol(redsym) c.addItem(shape1) # créer une image de sortie et l'initialiser imag e = QImage(QSize(width, height), QImage.Format_ARGB32) image.setDotsPerMeterX(dpmm * 1000) image.setDotsPerMeterY(dpmm * 1000) image.fill(0) # rend la composition imagePainter = QPainter(image) sourceArea = QRectF (0, 0, c.paperWidth(), c.paperHeight()) targetArea = QRectF(0, 0, width, height) c.render(imagePainter, targetArea, sourceArea) imagePainter.end() image.save("/ Users/joellawhead/qgis_data/map.jpg">

Cela est dû à un bogue dans QGIS 2.4 (corrigé pour 2.6). Le plantage est causé lorsque python nettoie le symbole redsym. Pour le contourner, assurez-vous que redsym est stocké quelque part où python ne le nettoiera pas automatiquement (par exemple, stockez-le dans une variable globale).


Je viens de tester le script et fonctionne très bien également avec ScriptRunner. La seule chose que j'ai dû modifier dans le code ci-dessus était d'initialiser la classe QgsFillSymbolV2 ;-):

redsym = QgsFillSymbolV2() redsym.createSimple (rouge)

Quoi qu'il en soit, nous aurons une autre excellente sortie le 31 :)


Сновные инструменты¶

QGIS fournit des raccourcis clavier par défaut pour de nombreuses fonctionnalités. Vous pouvez les trouver dans la rubrique авное меню. De plus, l'option de menu Paramètres ‣ Configurer les raccourcis.. vous permet de modifier les raccourcis clavier par défaut et d'ajouter de nouveaux raccourcis clavier aux fonctionnalités de QGIS.

Raccourcis de la figure 1 :

Définir les options de raccourci (Gnome)

La configuration est très simple. Sélectionnez simplement une fonctionnalité dans la liste et cliquez sur [Changer], [Définir aucun] ou alors [Définir par defaut]. Une fois que vous avez terminé votre configuration, vous pouvez l'enregistrer en tant que fichier XML et le charger dans une autre installation QGIS.


1 réponse 1

Vous pouvez télécharger les anciennes versions de QGIS ici :

2.18 n'est cependant plus supporté. Il n'y aura donc plus de corrections de bugs. 3.4 est maintenant la version ltr.

Donc mon commentaire n'était pas tout à fait correct. Vous pouvez toujours installer QGIS 2.18 via le programme d'installation OSGeo4W, ce ne sera pas le LTR, car ce n'est pas le LTR. Mais il peut être installé. Il vous suffit de décocher "Masquer les packages obsolètes":

Désolé, mais cela ne fonctionne pas pour moi. J'ai besoin d'une installation complète d'Osgeo4W64 avec 2,18 en ltr.


Le module C++ plante dans Blender mais pas dans la console Python [fermé]

Vous voulez améliorer cette question ? Mettez à jour la question afin qu'elle soit sur le sujet pour Blender Stack Exchange.

J'ai fait un module Python C++ pour optimiser un chemin de caméra. L'algèbre linéaire se fait avec la bibliothèque Eigen et la compilation pour Python avec pybind11.

J'utilise mon propre modèle de caméra pour les calculs.

Cela a bien fonctionné jusqu'au point où j'ai réellement essayé de faire l'optimisation. Le module ne repose sur aucun appel à l'API Blender, il peut donc également être utilisé avec du Python pur. J'utilise simplement Blender pour configurer le chemin de la caméra, etc. Dans la console Anaconda Python, il fonctionne sans problème mais lorsque je l'appelle dans Blender, il plante toujours complètement Blender.

J'ai jeté un œil au journal des pannes, mais je n'arrive pas vraiment à le comprendre. Je soupçonne cette ligne ./blender(_ZN5Eigen8IOFormatD1Ev+0xd3) [0x2041673] d'être le coupable, car cela pourrait avoir quelque chose à voir avec la bibliothèque Eigen et l'alignement de la mémoire mais je ne suis pas sûr car cela fonctionne généralement en Python.

Est-ce que quelqu'un a une idée de pourquoi cela se produit? Quelqu'un peut-il m'aider à comprendre le journal?

Script (optFlowCam est mon module)

Avec faulthandler.enable(), j'obtiens

il s'agit donc certainement d'un problème de mémoire.

Le module est compilé pour Python 3.7. La console Anaconda utilise Python 3.7.5 et Blender utilise 3.7.4. Le code du module est long (fichiers multiples) et n'est pas accessible au public. Je copie le module compilé dans le dossier <blender Version>/python/lib/python3.7 pour le charger.


QGIS pour l'histoire et l'archéologie

J'utilise QGIS depuis un certain temps maintenant pour analyser ma région à la recherche de caractéristiques historiques et archéologiques au nom de ma société d'histoire locale. Cependant, je suis conscient que je ne fais qu'effleurer la surface des fonctionnalités fournies par QGIS. Quelqu'un a-t-il un nouveau cas d'utilisation de QGIS pour ce genre de chose?

Données LIDAR de modèle numérique de terrain (MNT) importées pour rechercher des caractéristiques cachées dans le paysage, pas immédiatement évidentes à partir de l'imagerie satellite.

Ajout d'une rampe de couleurs, étirée pour s'adapter à la topologie de la zone qui m'intéresse.

Ajout d'une couche d'ombrage pour rendre le terrain plus évident.

Géoréférencé d'anciennes cartes, y compris des cartes dessinées à la main sans échelle, pour identifier les caractéristiques modernes avec lesquelles elles s'alignent.

Exportation de parties du modèle vers un modèle visualisable par navigateur 3D, à l'aide du plugin qgis2threejs. Cela inclut la fonction d'avion personnalisé, pour me permettre d'inonder virtuellement des éléments d'eau drainés depuis longtemps.

Ajout de couches à partir de cartes Web (WMS, WFS, TMS et WMTS) dans mon modèle.

C'est un excellent outil, et j'en découvre plus chaque jour. Pour quoi d'autre les historiens et les archéologues utilisent-ils QGIS ?

Salut! Je suis également archéologue et conférencier à l'Université de Floride centrale. J'utilise QGIS pour tout mon travail et enseignement. Je crée une série de didacticiels appelée QGIS 4 Arch sur https://www.youtube.com/playlist?list=PLqiB3IIUNAnU8vPcuea6A9pB7Y_qQBH1u J'espère que cela vous aidera. Je mettrai en ligne de nouvelles vidéos dans les semaines à venir, après avoir terminé quelques travaux de terrain.

J'ai fait quelques-uns de ces tutoriels maintenant. Ils sont excellents. Cela a comblé un certain nombre de lacunes pour moi. J'aime particulièrement importer un CSV de trouvailles archéologiques avec coordonnées puis colorier les repères par période. Il y a plusieurs choses là-dedans que je n'ai jamais trouvées moi-même depuis un million d'années.

Continuez ce bon travail. Je suis abonné.

En tant que collègue archéologue, merci beaucoup pour cela. Est-ce parfois un problème pour le DM dans le cas où j'ai des questions sur Qgis ?

Je suis archéologue et analyste SIG des États-Unis, et je voulais parler de quelque chose d'un peu différent. Je vois que vous venez du Royaume-Uni et il a toujours semblé que l'archéologie publique/amateur y est considérée un peu différemment qu'ici aux États-Unis, donc ce que je m'apprête à dire pourrait ne pas s'appliquer à vous légalement mais peut-être éthiquement.

En termes simples : faites attention à la sécurité des données. Sachez à qui et où vos produits vont être distribués.

Nous avons un problème important avec le pillage de sites dans de nombreuses régions des États-Unis, les gens entrent et déterrent des sites pour pouvoir vendre des artefacts au marché noir (ou au marché aux puces). Cela détruit la valeur scientifique de ces sites et prive le public dans son ensemble des informations qu'ils pourraient contenir. Il existe des lois fédérales aux États-Unis qui protègent l'emplacement des sites archéologiques d'une large diffusion et protègent les emplacements des sites archéologiques des demandes d'informations. De nombreux États ont des réglementations similaires pour leurs terres. Les terres privées sont des terres privées et de manière générale, vous pouvez faire ce que vous voulez à moins que des restes humains ne soient impliqués, mais la plupart des archéologues ne diffusent pas eux-mêmes largement les données en dehors des propriétaires fonciers (qui peuvent alors faire ce qu'ils veulent).

Je pense que le SIG et la télédétection sont un outil formidable pour la préservation historique, mais entre de mauvaises mains, cela peut être potentiellement très dommageable. Lorsque vous fabriquez vos produits, gardez à l'esprit l'aspect de la protection de ces ressources.


Voir la vidéo: Tutorial Qgis - Layout