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

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

4
จะปฏิเสธไฟล์ CSV 500 ไฟล์อย่างมีประสิทธิภาพและง่ายดายโดยใช้ QGIS อย่างไร
ฉันรู้ว่าคำถามของฉันคล้ายกับคำถามเก่า ๆ ในเว็บไซต์นี้ ฉันมีไฟล์ CSV (พิกัดทางภูมิศาสตร์) จำนวนมากที่จะนำเข้าสู่ qgis (แล้วแปลงเป็นไฟล์) และวิธีปกติไม่ใช่วิธีที่ดีที่สุดในการทำ (ยาวเกินไป) ฉันมีไฟล์ CSV เกือบ 500 ไฟล์ (พิกัด wgs84) และนี่คือสิ่งที่ฉันต้องการทำ: นำเข้าไฟล์ CSV ทั้งหมดในครั้งเดียวไปยัง QGIS ฉายภาพเหล่านั้น ส่งออกเป็นไฟล์ CSV (อีกครั้ง) แต่มีพิกัดต่างกัน (แปลงเป็น UTM33N) ฉันพยายามเข้าใจวิธีการใช้งานpython consoleแต่ฉันไม่ได้ไปที่ :( ทุกคนสามารถอธิบายให้ฉันทราบถึงวิธีการบรรลุเป้าหมายทีละขั้นตอนได้หรือไม่
11 qgis  python  pyqgis  export  csv 

4
บันทึกมุมมองนักแต่งเพลงพิมพ์ / แผนที่ QGIS เป็น PNG / PDF โดยใช้ Python (โดยไม่ต้องเปลี่ยนอะไรในเค้าโครงที่มองเห็นได้)?
ฉันเปิดมุมมองผู้แต่ง / พิมพ์ QGIS พร้อมองค์ประกอบทั้งหมดที่ปรับตามที่ฉันต้องการ ตอนนี้ฉันต้องพิมพ์ / บันทึก / ส่งออกเป็นไฟล์ PNG หรือ PDF จาก Python console / Python script ฉันไม่ต้องการเปลี่ยนแปลงอะไรในเค้าโครงปัจจุบัน ตัวอย่างส่วนใหญ่ที่ฉันพบ (ตัวอย่างเช่น: สิ่งนี้ ) เปลี่ยนตำแหน่งบนแผนที่หรือขนาดในเอาต์พุต PDF เปรียบเทียบกับสิ่งที่ฉันเห็นในมุมมองนักแต่งเพลงปัจจุบันของฉัน ฉันต้องการที่จะได้รับผลตรงเช่นเดียวกับฉันจะได้รับเมื่อฉันคลิกที่พิมพ์ -> ส่งออกเป็นภาพ ฉันจะทำสิ่งนั้นได้อย่างไร Atlas ไม่ใช่ทางออกสำหรับฉัน

3
แก้ไขข้อผิดพลาด“ SDK ดูเหมือนว่าไม่ถูกต้อง” เมื่อตั้งค่า PyCharm และ PyQGIS?
ผมอยากจะตั้งค่า PyCharm วิธีการโพสต์บล็อกนี้อธิบาย: การตั้งค่าสำหรับ PyCharm PyQGIS และ Qt ฉันทำทุกอย่างตามคำแนะนำ แต่เมื่อมันมาถึงการเพิ่มล่ามโครงการฉันได้รับข้อความแสดงข้อผิดพลาดนี้: ใครบ้างมีวิธีแก้ปัญหานี้?

2
การเขียนสคริปต์ที่สามารถโทรได้ทั้ง Arcpy และ PyQGIS?
ฉันใช้เวลาสักครู่เพื่อค้นหาคำตอบที่ชัดเจนในหัวข้อนี้และยังไม่สามารถบรรลุเป้าหมายของฉันในการเข้าถึง PyQGIS ในสคริปต์แบบสแตนด์อะโลนได้ มีการให้คำตอบบางส่วนไว้ในคำถามต่าง ๆ มากมายเช่น: แอปพลิเคชันแบบสแตนด์อโลนที่ใช้ QGIS และตัวแปรสภาพแวดล้อม pyQgis ในสคริปต์สแตนด์อะโลนข้อผิดพลาดในการโหลดเวกเตอร์ การเขียนสคริปต์ Python แบบสแตนด์อโลนโดยใช้ PyQGIS? ส่วนใหญ่ thourough คำตอบที่ฉันได้พบถูกจัดให้โดย @gene ที่นี่ สิ่งที่ฉันสนใจเป็นพิเศษคือสามารถเขียนสคริปต์ที่สามารถเรียกใช้ทั้ง Arcpy และ PyQGIS ฉันได้ตั้งค่าตัวแปรระบบทั้ง PATH และ PYTHONPATH ตามเอกสารประกอบตำรา PyQGIS เป็น: C:\OSGeo4W\apps\qgis\bin,%PATH%;C:\Python27\ArcGIS10.2\Lib\site-packages\PyQt4;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio …

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

1
ฉันจะรักษา GUI ที่ตอบสนองได้อย่างไรโดยใช้ QThread กับ PyQGIS
ฉันได้พัฒนาเครื่องมือการประมวลผลแบบแบตช์เป็นปลั๊กอินหลามสำหรับ QGIS 1.8 ฉันพบว่าในขณะที่เครื่องมือของฉันกำลังเรียกใช้ GUI จะไม่ตอบสนอง ภูมิปัญญาทั่วไปคืองานควรทำในเธรดผู้ปฏิบัติงานด้วยข้อมูลสถานะ / ความสมบูรณ์ส่งกลับไปยัง GUI เป็นสัญญาณ ฉันได้อ่านเอกสารริมตลิ่งแล้วและศึกษาที่มาของ doGeometry.py (การใช้งานจากftools ) การใช้แหล่งข้อมูลเหล่านี้ฉันพยายามสร้างการใช้งานอย่างง่ายเพื่อสำรวจฟังก์ชันการทำงานนี้ก่อนที่จะทำการเปลี่ยนแปลงกับฐานรหัส โครงสร้างโดยรวมเป็นรายการในเมนูปลั๊กอินที่มีการโต้ตอบกับปุ่มเริ่มและหยุด ปุ่มควบคุมชุดข้อความที่นับถึง 100 โดยส่งสัญญาณกลับไปที่ GUI สำหรับแต่ละหมายเลข GUI ได้รับสัญญาณแต่ละรายการและส่งสตริงที่มีหมายเลขทั้งบันทึกข้อความและชื่อหน้าต่าง รหัสของการใช้งานนี้อยู่ที่นี่: from PyQt4.QtCore import * from PyQt4.QtGui import * from qgis.core import * class ThreadTest: def __init__(self, iface): self.iface = iface def initGui(self): self.action = QAction( …

1
ฉันจะเพิ่มปุ่มลงในแถบเครื่องมือ QGIS หรือสร้างแถบเครื่องมือของตัวเองได้อย่างไร
ฉันต้องการสร้างปุ่มและเพิ่มลงในแถบเครื่องมือ QGIS หรือสร้างแถบเครื่องมือของตัวเองและเพิ่มปุ่มที่นี่ ควรเริ่มต้นปลั๊กอินเมื่อผู้ใช้คลิกปุ่ม
11 qgis  python  plugins  pyqgis 

2
processing.runalg () พ่น“ TypeError: การจับคลาสที่ไม่สืบทอดจาก BaseException ไม่ได้รับอนุญาต”
สวัสดีทุกคนฉันกำลังใหม่กับ PyQGIS และฉันพยายามเรียกใช้สคริปต์ใน QGIS 3.0 โดยไม่ประสบความสำเร็จ (มันวิ่งอย่างสมบูรณ์ใน 2.18) และได้รับข้อผิดพลาดเดียวกันเสมอ: AttributeError: โมดูล 'กำลังประมวลผล' ไม่มีคุณลักษณะ 'runalg' ในระหว่างการจัดการกับข้อยกเว้นข้างต้นเกิดข้อยกเว้นอื่น: การติดตามย้อนกลับ (การโทรล่าสุดครั้งล่าสุด): ไฟล์ "C: \ PROGRA ~ 1 \ QGIS3 ~ 1.0 \ apps \ Python36 \ lib \ code.py ", บรรทัดที่ 91, ใน runcode exec (รหัส, self.locals) ไฟล์" ", บรรทัดที่ 8, ใน TypeError: ไม่อนุญาตให้รับคลาสที่ไม่ได้รับสืบทอดจาก …

3
การจัดแนวหลายจุดให้เป็นบรรทัดใน QGIS?
ฉันต้องการจัดตำแหน่งหลายจุดให้เป็นหนึ่งบรรทัดหรือหลายบรรทัดภายในเลเยอร์โดยใช้เกณฑ์ความคลาดเคลื่อนหรือบัฟเฟอร์รอบวัตถุเส้นตรง โปรดดูตัวอย่างร่างที่แนบมา เพื่อให้เป็นไปตามตัวอย่างนี้จุดที่อยู่ใกล้กับเส้นมากที่สุดในภาพก่อนหน้านั้นจะอยู่ในระยะ 5 หน่วยแผนที่ของเส้นในขณะที่จุดนอกสุดอยู่ห่างจากแผนที่มากกว่า 10 หน่วย ฉันต้องการถ่ายจุดที่ใกล้ที่สุดลงบนเส้นที่ใกล้ที่สุดโดยใช้ความอดทน 5 หน่วยแผนที่เพื่อให้ได้ผลลัพธ์ในภาพหลัง


2
ดึงการเชื่อมต่อ PostGIS ที่มีอยู่ใน PyQGIS
ฉันสามารถดึงการเชื่อมต่อที่มีอยู่ไปยังฐานข้อมูล PostGIS ใน PyQGIS ได้หรือไม่ ฉันต้องการให้รายการของการเชื่อมต่อฐานข้อมูลที่มีอยู่และต่อมาก็คือรายการตารางภายใน UI ของปลั๊กอินของฉัน ฉันตรวจสอบตำราอาหาร แต่ไม่สามารถหาทางที่จะไปให้ไกลกว่านี้ได้
11 qgis  postgis  pyqgis 

3
วิธีการโหลดเอาท์พุทหน่วยความจำจากการประมวลผล QGIS?
อัลกอริทึมการประมวลผลจำนวนมากมีตัวเลือกในการบันทึกผลลัพธ์เป็นหน่วยความจำ หากวิ่งจากกล่องเครื่องมือสิ่งนี้จะใช้ได้เพราะคุณสามารถทำเครื่องหมายในช่อง "เปิดไฟล์เอาต์พุตหลังจากเรียกใช้อัลกอริทึม" มองไปที่ซอร์สโค้ดสำหรับ QGIS Postprocessing.handleAlgorithmResultsรหัสสำหรับการโหลดชั้นหน่วยความจำที่ดูเหมือนว่าจะมีการกำหนดไว้ในการทำงาน ฟังก์ชันใช้การเข้าถึงalg.outputsรายการและทำสิ่งต่อไปนี้: for out in alg.outputs: progress.setPercentage(100 * i / float(len(alg.outputs))) if out.hidden or not out.open: continue if isinstance(out, (OutputRaster, OutputVector, OutputTable)): try: if out.value.startswith('memory:'): layer = out.memoryLayer # NOTE!! QgsMapLayerRegistry.instance().addMapLayers([layer]) # NOTE!! else: # ... เมื่อคุณเรียกใช้อัลกอริทึมการประมวลผลจากคอนโซลมีวิธีโหลดเลเยอร์โดยไม่ต้องเข้าถึงวัตถุนี้หรือไม่? ฉันวิ่งได้ processing.runalg("qgis:intersection", layer1, layer2, "memory:") หรือแม้กระทั่ง processing.runalg("qgis:intersection", layer1, …

1
โปรแกรมเปิด / ปิดแผงด้วย PyQGIS
ใน QGIS right-clickคุณสามารถสลับเปิด / ปิดบางพื้นที่ในแผงควบคุมแถบเครื่องมือดังแสดงในภาพด้านล่าง (แผงข้อมูล GPS เป็นต้น) ฉันต้องทำสิ่งนี้โดยทางโปรแกรมดังนั้นจะสลับเปิด / ปิดพาเนลจาก PyQGIS ได้อย่างไร ฉันพบว่าQgsInterfaceชั้นเรียนมีบางอย่างaddDockWidgetและremoveDockWidgetวิธีการ แต่ฉันไม่สามารถคิดออกว่าเป็นวิธีที่เหมาะสมเพื่อให้บรรลุนี้ ...
10 pyqgis  panel 

1
QGIS Modeler if / else เงื่อนไขสคริปต์ที่กำหนดเองสำหรับ Modeler
ฉันต้องการทำให้ฟังก์ชั่น if / else ง่าย ๆ ภายใน Model ของฉันและฉันต้องการทราบว่าเป็นไปได้หรือไม่ ฉันต้องการให้สิ่งนี้ทำเช่นนั้นหากมีการเลือกอินพุทสำหรับ 'เซกเมนต์เลเยอร์' ซึ่งไม่จำเป็นต้องดำเนินการ 'เซกเมนต์ (meanhift)' และใช้ 'เซกเมนต์เลเยอร์' แทนอินพุทสำหรับกระบวนการถัดไป อินพุตสำหรับ 'การแบ่งส่วน (meanhift)' มีดังนี้ อัปเดตหลังจากพยายามใช้คำตอบของโจเซฟ: ฉันใช้รหัสต่อไปนี้และได้รับข้อผิดพลาดนี้ อัปเดต 2 หลังจากเปลี่ยนพารามิเตอร์ฉันได้รับข้อผิดพลาดในบรรทัด 28 นี่คือ 'else:' stands ##Example=name ##BGREN=optional raster ##Segment_Layer=optional vector ##output=output vector if BGREN is not None: processing.runalg('otb:segmentationmeanshift', \ -BGREN\ -0\ -70\ -70\ -0.1\ -100\ …

3
วิธีสร้างสคริปต์ประมวลผล QGIS ที่เพิ่มลำดับลงในคอลัมน์ตัวระบุที่ไม่ซ้ำกันใน PostGIS
ใครสามารถช่วยฉันสร้างสคริปต์ประมวลผล QGIS ที่เพิ่มลำดับลงในคอลัมน์ตัวระบุที่มีอยู่ (ประเภท: จำนวนเต็ม) ใน PostGIS ได้หรือไม่ นี้จะเป็นประโยชน์มากเช่นเป็นวิธีแก้ปัญหาสำหรับข้อผิดพลาด# 6798 น่าเสียดายที่ฉันไม่มีประสบการณ์ Python เลย CREATE SEQUENCE /*input_schema*/./*input_table*/_/*uic*/_seq OWNED BY /*input_schema*/./*input_table*/./*uic*/; SELECT SETVAL('/*input_schema*/./*input_table*/_/*uic*/_seq', (SELECT MAX(/*uic*/) FROM /*input_schema*/./*input_table*/)); ALTER TABLE /*input_schema*/./*input_table*/ ALTER COLUMN /*uic*/ SET DEFAULT nextval('/*input_schema*/./*input_table*/_/*uic*/_seq'::regclass);

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