คำถามติดแท็ก pyqgis

งูเหลือมผูกสำหรับ QGIS

2
การนำเข้าการประมวลผล QGIS ในสคริปต์หลามแบบสแตนด์อโลน
ฉันต้องการเขียนสคริปต์แบบสแตนด์อโลนสองสามตัวที่ใช้กล่องเครื่องมือประมวลผลของ Qgis ฉันได้อ่านไม่กี่กระทู้ ( ที่นี่และที่นี่เช่น) แต่ยังหาวิธีแก้ปัญหาที่ใช้งานไม่ได้ ใช้ Qgis 2.16.1 บน Ubuntu Xenial 16.04 LTS ส่วนการนำเข้าของสคริปต์ของฉันมีลักษณะดังนี้: # Python modules import sys import time import os # Qgis modules from qgis.core import * import qgis.utils from PyQt4.QtCore import QFileInfo, QSettings ไม่มีใครรู้ว่าสิ่งที่ขาดหายไปสำหรับฉันที่จะสามารถนำเข้าโมดูลการประมวลผล? ด้วยการประมวลผลการนำเข้าอย่างง่ายฉันได้รับสิ่งนี้: Original exception was: Traceback (most recent call last): File "/home/steph/Documents/Projets/20141227-CIM_Bishkek/Scripts/python/00-projets/20160811-AnalysesUAVs/20160811-UAVAnalyse.py", …

2
แสดงตารางแอตทริบิวต์ของ QGIS ทางด้านขวา
เป็นไปได้หรือไม่ที่จะเทียบตารางแอตทริบิวต์ QGIS ทางด้านขวา ฉันรู้ว่ามันเป็นไปได้ที่จะแสดงมันบนและล่าง แต่สำหรับโครงการของฉันมันจะดีกว่าที่จะเทียบชิดขอบด้านขวา (หรือซ้าย)

1
วิธีการเปลี่ยนตัวแปรโครงการโดยใช้ Python
ฉันต้องการเปลี่ยนค่าของตัวแปรโครงการที่ผู้ใช้กำหนด (สามารถแก้ไขได้ด้วยตนเองใน Project Settings | Variables) โดยใช้ Python console ฉันติดตามฟังก์ชัน setVariable () ในคลาส QgsExpressionContextScopeแต่ไม่ประสบความสำเร็จในการเปลี่ยนตัวแปรจริงในการตั้งค่าโครงการ รหัสของฉัน: iface.mapCanvas().mapSettings().expressionContext().scope(0).setVariable('myvar',1) ฉันคิดว่าฉันหลงทางในบริบทการแสดงออกที่แตกต่างกัน ...
10 qgis  pyqgis 

2
วิธีออกจาก QGIS หลังจากรันสคริปต์ python
ฉันต้องการเรียกใช้สคริปต์ python ผ่านqgis --code myscript.pyแล้วออกจากทันที ฉันใช้iface.actionExit().trigger()ซึ่งฆ่า QGIS เมื่อฉันเรียกใช้จากคอนโซลหลาม --codeแต่ไม่เมื่อใส่ในสคริปต์ที่ผมผ่านไป วิธีที่ถูกต้องในการออกจากทันทีคืออะไร ฉันใช้ QGIS 2.0.1 อัปเดต : ฉันได้ลองsys.exit()แล้ว QGIS จับมันและดึงหน้าต่างขึ้นมาด้วยสิ่งต่อไปนี้: An error occured during execution of following code: execfile('myscript.py') Traceback (most recent call last): File "", line 1, in File "myscript.py", line 14, in sys.exit() SystemExit อัปเดต : ใช้os.kill(os.getpid(), 9)งานได้ แต่มันแฮ็คสกปรกและฉันกำลังมองหาสิ่งที่ดีกว่า
10 qgis  python  pyqgis 

2
โหลดโปรแกรมแต่งเพลงจากแม่แบบและสร้างแผนที่โดยใช้ PyQGIS
ฉันพยายามสร้างปลั๊กอินเพื่อโหลดผู้แต่งเพลงจากไฟล์สร้างแอตลาสและส่งออกไปยังรูปภาพ จนถึงตอนนี้ฉันประสบความสำเร็จในการโหลดเทมเพลตและส่งออกไปยังรูปภาพ ฉันไม่สามารถเพิ่มเลเยอร์ใด ๆ ในตำนาน (ซึ่งอยู่ใน toc) ลงในแผนที่ที่ส่งออกซึ่งส่งผลให้แผนที่ว่างเปล่าและไม่มีการแสดงออกของฟิลด์ใดทำงาน # Get layers in the legend and append, must be a cleaner way to do this? layers = self.iface.legendInterface().layers() layerStringList = [] for layer in layers: layerID = layer.id() layerStringList.append(layerID) # Add layer to map render myMapRenderer = QgsMapRenderer() myMapRenderer.setLayerSet(layerStringList) myMapRenderer.setProjectionsEnabled(False) # …

1
การใช้เลเยอร์เวกเตอร์ในหน่วยความจำพร้อมการประมวลผล QGIS / SEXTANTE
ฉันพยายามเรียกใช้qgis:clipอัลกอริทึมจากคอนโซล แต่ได้รับข้อผิดพลาดเมื่อใช้เลเยอร์ในหน่วยความจำเป็นพารามิเตอร์โอเวอร์เลย์ คาดว่าจะเป็นเช่นนี้หรือฉันกำลังทำอะไรผิดหรือเปล่า? รหัส: mem_layer = QgsVectorLayer("Polygon?crs=epsg:4326", "temp_layer", "memory") if not mem_layer.isValid(): raise Exception("Failed to create memory layer") mem_layer_provider = mem_layer.dataProvider() clip_polygon = QgsFeature() clip_polygon.setGeometry(QgsGeometry.fromRect( QgsRectangle( self.output_layer.extent().xMinimum() + 10, self.output_layer.extent().yMinimum() + 10, self.output_layer.extent().xMaximum() - 10, self.output_layer.extent().yMaximum() - 10 ) )) mem_layer_provider.addFeatures([clip_polygon]) mem_layer.updateExtents() output = self.output_layer_path + "2" processing.runalg("qgis:clip", layer, mem_layer, …

2
วิธีการเปลี่ยนสีของเลเยอร์เวกเตอร์ใน pyQGIS?
เป็นไปได้ไหมที่จะเปลี่ยนสีในขณะที่เพิ่มเลเยอร์เวกเตอร์ ฉันมีเวกเตอร์เลเยอร์ที่มีพื้นที่น้ำและต้องการโหลดด้วยสไตล์สีฟ้า เพิ่มเลเยอร์ด้วย: QgsMapLayerRegistry.instance().addMapLayer(self.vlayer) ฉันสามารถเปลี่ยนสีหลังจากหรือขณะโหลดได้หรือไม่?
10 qgis  python  pyqgis  color 

3
วิธีการซูมไปยังคุณสมบัติที่เลือกด้วย pyQGIS
ฉันต้องการสร้างฟังก์ชั่นที่เลือกคุณสมบัติและซูมเข้าไป (คล้ายใน QGIS) ดังนั้นจึงมีฟังก์ชั่นดังต่อไปนี้: QgsMapLayerRegistry.instance().addMapLayer(self.vlayer) def zoomTo(self): layer = self.vlayer atable = self.ui.table selectList=[] for i in atable.selectionModel().selectedRows(): ID = atable.item(i.row(),0).text() selectList.append(int(ID)) layer.setSelectedFeatures(selectList) คุณสมบัติที่เลือกจะถูกเน้นบนแผนที่ แต่ฉันไม่รู้ว่าจะทำ "ซูม" กับคุณสมบัติที่เลือกหรือโฟกัสบางอย่างในแผนที่ได้อย่างไร
10 qgis  python  pyqgis 

1
เมื่อวนซ้ำเวกเตอร์เลเยอร์ด้วย pyqgis ฉันจะตรวจสอบได้อย่างไรว่ามีการเลือกสถานที่ให้บริการหรือไม่
ในขณะที่วนซ้ำเวกเตอร์เลเยอร์โดยใช้รหัสต่อไปนี้ (ทำให้ร้อนขึ้นจากตัวอย่างในpyqgis cookbook ) มีวิธีตรวจสอบว่ามีการเลือกสถานที่หรือไม่? provider = vlayer.dataProvider() feat = QgsFeature() allAttrs = provider.attributeIndexes() provider.select(allAttrs) while provider.nextFeature(feat): geom = feat.geometry() attrs = feat.attributeMap() for (k,attr) in attrs.iteritems(): print "%d: %s" % (k, attr.toString()) อีกทางหนึ่งฉันสามารถสร้างรายการคุณลักษณะที่เลือกโดยใช้vlayer.selectedFeatures()แต่ฉันหวังว่าจะมีวิธีการตรวจสอบแต่ละคุณสมบัติโดยตรง
10 qgis  python  pyqgis  select 

5
วิธีการเรียกใช้อัลกอริทึม sextante นอกคอนโซล QGIS หลาม?
ฉันติดอยู่กับการพยายามหาวิธีเรียกใช้ sextante จาก python แบบสแตนด์อโลนจากการกระจาย OSGeo4W เหตุผลที่ฉันต้องการทำสิ่งนี้คือฉันรู้สึกเหนื่อยที่จะป้อนพารามิเตอร์ในกล่องโต้ตอบทุกครั้งที่ฉันต้องการทดสอบแบบจำลองจากตัวสร้างแบบจำลอง ดังนั้นนี่คือสคริปต์ python เรียกมันว่า test.py # as per http://qgis.org/pyqgis-cookbook/intro.html#using-pyqgis-in-custom-application from qgis.core import * # supply path to where is your qgis installed QgsApplication.setPrefixPath("C:/OSGeo4W/apps/qgis", True) # load providers QgsApplication.initQgis() from sextante.core.Sextante import Sextante Sextante.alglist() Sextante.alghelp("saga:slopeaspectcurvature") ที่ฉันโทรจากแบตช์ไฟล์ของฉัน @echo off set OSGEO4W_ROOT=C:\OSGeo4W set PYTHONPATH=%OSGEO4W_ROOT%\apps\qgis\python;%OSGEO4W_ROOT%\apps\qgis\python\plugins;%HOME%/.qgis/python/plugins set PATH=%OSGEO4W_ROOT%\bin;%OSGEO4W_ROOT%\apps\qgis\bin;%OSGEO4W_ROOT%\apps\qgis\plugins python …

3
แหล่งเรียนรู้สำหรับ PyQGIS? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันกำลังมองหาแหล่งข้อมูลเพื่อการเรียนรู้ PyQGIS มันจะน่าสนใจหากมีหนังสือหรือเว็บไซต์ที่ให้ตัวอย่างที่เป็นประโยชน์สำหรับการเรียนรู้ไวยากรณ์หรือทำงานเฉพาะอย่างให้สำเร็จ แหล่งข้อมูลเหล่านี้ควรเป็นแนวทางทั่วไปสำหรับผู้เริ่มต้นและผู้ใช้ที่มีประสบการณ์ จะหาบทช่วยสอน QGIS และแหล่งข้อมูลบนเว็บได้ที่ไหน? เป็นคำถามที่คล้ายกันมาก แต่ให้ความช่วยเหลือในการเรียนรู้ QGIS และไม่ใช่เฉพาะ PyQGIS (อันที่จริงแล้วมันไม่มีแท็ก PyQGIS) ความช่วยเหลือใด ๆ

1
เพิ่มเขตข้อมูลและคำนวณนิพจน์ด้วย PyQGIS หรือไม่
ฉันต้องการใช้ PyQGIS เพื่อเพิ่มเขตข้อมูลใหม่และคำนวณค่าสำหรับแต่ละคุณสมบัติ คล้ายกับตัวเลือก Field Calculator นิพจน์ 'Field Calculator' ของฉันเป็นตัวอย่าง: y(start_point($geometry)) from PyQt4.QtCore import QVariant from qgis.core import QgsField, QgsExpression, QgsFeature vl = iface.activeLayer() vl.startEditing() #step 1 myField = QgsField( 'myNewColumn', QVariant.Float ) vl.addAttribute( myField ) idx = vl.fieldNameIndex( 'myNewColumn' ) #step 2 e = QgsExpression( 'y(start_point($geometry))' ) e.prepare( vl.pendingFields() …

1
วิธีแสดงคอนโซล Python ที่โปรแกรม QGIS เริ่มต้นขึ้น
ฉันสงสัยว่ามีวิธีการเปิดคอนโซล Python โดยตรงที่เปิดตัวโปรแกรมหรือไม่ มีความเป็นไปได้ในการตั้งค่าทางลัดสำหรับคอนโซล Python แต่ฉันไม่พบตัวเลือกดังกล่าวสำหรับการเปิดตัวโปรแกรม QGIS

5
กำลังคำนวณขอบเขตภาพ / รอยเท้าของภาพถ่ายดาวเทียมโดยใช้เครื่องมือโอเพนซอร์สหรือไม่?
ฉันจำเป็นต้องสร้างรูปหลายเหลี่ยมของภาพแรสเตอร์เลเยอร์เดียวหลายรูปไม่ใช่กล่องขอบเขต / ขอบ แต่พื้นที่ที่ไม่มีค่า Nodata ดังแสดงที่นี่: การสร้างรูปร่างไฟล์แสดงรอยเท้าของ Rasters? . ในการตอบคำถามข้างต้นปลั๊กอิน Image Boundaryได้ถูกกล่าวถึง แต่ฉันไม่พบมันใน QGIS 1.8.0 Lisboa ที่ทำงานบน Ubuntu เครื่องมือยังคงมีอยู่หรือไม่? ถ้าไม่มีมีวิธีการทำเช่นนี้โดยใช้เครื่องมือ opensource ไม่ว่าจะเป็น gdal, R, QGIS, GRASS หรือคล้ายกันไม่ใช่กับ ArcMap?

3
การรับข้อมูลของฟีเจอร์หนึ่งที่เลือกใน QGIS โดยใช้ Python?
ฉันมีปัญหา / คำถามเกี่ยวกับหลามและ QGIS เป็นไปได้หรือไม่ที่จะได้รับข้อมูลของฟีเจอร์หนึ่งที่เลือกใน QGIS โดยใช้ python และถ้าเป็นเช่นนั้น ในตัวอย่างของฉันฉันมีเลเยอร์ซึ่งแสดงพัสดุบางส่วนสำหรับการวางผังเมือง ถ้าฉันเลือกหนึ่งในพัสดุที่ฉันต้องการรับข้อมูลสำหรับพัสดุตรงนี้ ข้อมูลนี้ควรอ่านโดยสคริปต์ไพ ธ อนจากนั้นเพิ่มลงในไฟล์ PDF ที่สร้างขึ้นโดยอัตโนมัติ ขั้นตอนสุดท้ายนั้นง่าย แต่ฉันไม่ได้รับข้อมูลจากคุณสมบัติที่เลือกนี้ เป็นไปได้ที่จะรับข้อมูลจากชั้นที่ใช้งานอยู่ แต่มันเป็นไปได้หรือไม่ที่จะได้รับข้อมูลจากคุณลักษณะที่เลือกหนึ่งของชั้นนี้ หวังว่าคุณจะช่วยฉัน ความนับถือ
10 qgis  python  pyqgis 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.