Suite

Retour d'exportation PyQGIS vide .tif

Retour d'exportation PyQGIS vide .tif


Je suis nouveau sur pyqgis et j'essaie de remonter du post précédent avec un peu de progrès par rapport au dernier (outil de débogage implémenté pdb) mais maintenant j'essaye d'exporter dans un fichier .tif afin que je puisse vérifier les sommets de la géométrie csv. Malheureusement, je suis coincé avec une image de rendu .tif vierge. La taille du fichier render.tif affiche 1,9 Mo, lorsque je télécharge et visualise localement, l'image n'a que l'arrière-plan de couleur blanche et aucun sommet.

En même temps, j'ai vérifié mon fichier csv et j'ai également parcouru les caractéristiques du calque après avoir exporté les fichiers csv. Ils sont tous bons…

Comment puis-je afficher toutes les caractéristiques de la couche vectorielle sur le fichier image .tif ? Quelqu'un s'il vous plaît aider? :/

PS : je suis sur le serveur Ubuntu et j'utilise PyQGIS.

Essayé avecrender.fullExtent()etrender.extent(), les deux renvoient une image.tif vide

Échantillon inséré de elevp.csv

Mon code :-

#!/usr/bin/python import sys import qgis import PyQt4 depuis qgis.core import * depuis qgis.utils import * depuis qgis.gui import * depuis PyQt4.QtCore import * depuis PyQt4.QtGui import * depuis PyQt4.QtXml import * import pdb qgis_prefix="/usr" QgsApplication.setPrefixPath(qgis_prefix, True) QgsApplication.initQgis() app = QgsApplication([], False) uri = "/home/ubuntu/pyqgis/elevp.csv?crs=%s&delimiter=% s&xField=%s&yField=%s&elevField=%s" % ("EPSG:4326",";","x","y","elev") vlayer = QgsVectorLayer(uri, "test", "delimitedtext") QgsMapLayerRegistry .instance().addMapLayer(vlayer) # créer une image img = QImage(QSize(800, 600), QImage.Format_ARGB32_Premultiplied) # définir la couleur de fond de l'image = QColor(255, 255, 255) img.fill(color.rgb( )) # create painter p = QPainter() p.begin(img) p.setRenderHint(QPainter.Antialiasing) render = QgsMapRenderer() # set layer set lst = [vlayer.id()] print(lst) render.setLayerSet( lst) # définir l'étendue rect = QgsRectangle(render.fullExtent()) rect.scale(1.1) render.setExt ent(rect) # définir la taille de sortie render.setOutputSize(img.size(), img.logicalDpiX()) # faire le rendu render.render(p) p.end() # enregistrer l'image img.save("/home/ ubuntu/pyqgis/render.tif","tif")

Exemple elevp.csv : -

x;y;elev 120;960;13 360;40;52 640;840;3