คำถามติดแท็ก qgis-processing

กรอบการประมวลผลข้อมูลเชิงพื้นที่ที่นำความสามารถในการวิเคราะห์ขั้นสูงมาสู่ QGIS

3
ผู้ให้บริการ GRASS แบบ QGIS 2.14 ขาดโฟลเดอร์ Msys ไม่สามารถเรียกใช้เครื่องมือ
ใน QGIS 2.12 และลดลงเมื่อคนหนึ่งตั้งค่าเส้นทางโฟลเดอร์ผู้ให้บริการ GRASS ด้วยตนเองนี่เป็นวิธีที่จะทำ ใน GIS 2.14 ไม่มีโฟลเดอร์ Msys ในพา ธ เดียวกัน (... \ apps \ msys) หรือโฟลเดอร์อื่น ๆ ในการติดตั้ง QGIS ดังนั้นแม้ว่า QGIS แบบสแตนด์อโลนจะต้องตั้งค่าไว้อย่างถูกต้องเพื่อให้เครื่องมือ GRASS ทำงาน แต่ก็ไม่สามารถทำได้ ดังนั้นคุณจะทำให้เครื่องมือ GRASS ทำงานใน QGIS 2.14 ได้อย่างไร

2
ไม่สามารถโหลดปลั๊กอิน 'การประมวลผล' บน windows 7 64 บิต
ฉันติดตั้ง QGIS (2.0.1-Dufour Dufour, d94c044) โดยใช้ทั้งตัวติดตั้งแบบสแตนด์อโลนและตัวติดตั้ง OSgeo4w และดูเหมือนจะมีปัญหากับปลั๊กอินการประมวลผล ตอนแรกฉันคิดว่ามีปัญหาเส้นทางหลาม แต่ตอนนี้ฉันสงสัยว่าทุกอย่างติดตั้งอย่างถูกต้อง ฉันไม่รู้ว่าห้องสมุดอยู่ที่ใดดังนั้นฉันต้องการความช่วยเหลือในการแก้ปัญหานี้ นี่คือสิ่งที่ฉันรู้: ฉันได้รับข้อความแสดงข้อผิดพลาดด้านล่างเมื่อฉันเปิดใช้งาน QGIS โฟลเดอร์ต่อไปนี้ไม่มีอยู่ในคอมพิวเตอร์ของฉัน: C: \ Users \ gstein / .qgis2 / หลาม C: \ Users \ gstein / .qgis2 / หลาม / ปลั๊กอิน C: \ PROGRA ~ 1 \ QGISDU ~ 1 \ bin \ python27.zip C: \ …

2
เพิ่มเครื่องมือ ArcToolbox ให้กับ QGIS หรือไม่
ฉันได้รับการใช้เครื่องมือที่มีอยู่ทั่วไปใน ArcGIS เรียกว่าSpread-GIS เป็นชุดของสคริปต์ python ที่ "ใช้งานเป็นกล่องเครื่องมือ ArcGIS" (พร้อมไฟล์ tbx) ฉันใหม่สำหรับ QGIS มีวิธีรวมและใช้ SPreAD-GIS ใน QGIS หรือไม่

3
สรุปค่าของรูปหลายเหลี่ยมเพื่อนบ้านโดยใช้ QGIS?
ฉันหวังว่าคุณสามารถช่วยฉันด้วยปัญหาต่อไปนี้: ฉันมีเลเยอร์เวกเตอร์ (รูปหลายเหลี่ยม) ฉันต้องการเพิ่มคุณสมบัติให้กับเลเยอร์ที่ - สำหรับทุกรูปหลายเหลี่ยม - รวมค่าของเขตข้อมูลเฉพาะของรูปหลายเหลี่ยมที่อยู่ใกล้เคียงทั้งหมด เพื่อยกตัวอย่างที่เป็นรูปธรรมมากขึ้น: ฉันมีเลเยอร์หลายเหลี่ยมของเขตที่มีข้อมูลเกี่ยวกับประชากร ทีนี้สำหรับทุกอำเภอฉันอยากรู้ว่ามีกี่คนที่อาศัยอยู่ในเขตใกล้เคียงทั้งหมด เนื่องจากฉันมีมากกว่า 300 เขตฉันไม่สามารถทำสิ่งนี้ได้ด้วยมือสำหรับแต่ละเขต QGIS ทำสิ่งนี้ได้อย่างมีประสิทธิภาพมากขึ้นหรือไม่?

3
แบ่งรูปร่างที่ซับซ้อนลงในตาราง
ฉันมีรูปร่างไฟล์ที่มีรายละเอียดอย่างเหมาะสมพร้อมด้วยคุณสมบัติรูปหลายเหลี่ยม / รูปหลายเหลี่ยม (ไฟล์ประมาณ 500mb) จริงๆแล้วมันเป็นรูปร่างของโลกทั้งใบด้วยคุณสมบัติที่เป็นตัวแทนของแนวชายฝั่ง ฉันต้องการหารข้อมูลนี้โดยใช้กริด เพื่อความชัดเจนฉันไม่ต้องการ 'เรียงลำดับ' ข้อมูล แต่จริง ๆ แล้วตัดรูปหลายเหลี่ยมขึ้นเป็นแบบเรียงต่อกัน ฉันรู้ว่าคำถามนี้ถูกถามมาก่อน แต่วิธีแก้ปัญหาที่พบนั้นใช้ไม่ได้สำหรับฉัน ฉันได้พยายาม: การใช้ QGIS และตัดเนื้อหา Shapefile ของฉันด้วยเวกเตอร์กริด - ผลลัพธ์แย่มาก เจ้าของที่ดินรายใหญ่ส่วนใหญ่หายตัวไปอย่างน่าอัศจรรย์แม้ว่าบางครั้งมันอาจดูเหมือนว่าเป็นที่ดินขนาดเล็กก็ตาม ฉันควรทราบว่าวิธีนี้ใช้ได้ดีกับข้อมูลที่ง่ายกว่า (เช่น. คะแนนน้อยกว่า) การใช้เครื่องมือ Intersection ของ OGR ฉันลองทั้งผ่าน ogr2ogr และแม้กระทั่งโดยการหมุนเครื่องมือ C ++ ของฉันเอง ทั้งคู่มีปัญหาเดียวกันกับ QGIS พวกเขายังไม่แสดงปัญหานี้สำหรับไฟล์แบบง่าย ๆ แต่จะไม่ทำให้ไฟล์ซับซ้อนขึ้น สำหรับการอ้างอิงฉันใช้ shapefile ของออสเตรเลียและนิวซีแลนด์ต่ำกว่า 20mb ในขนาดและทั้ง QGIS และ OGR …

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
การสร้างเส้นคู่ขนานที่ระยะทางเฉพาะจากบรรทัดที่เป็นส่วนหนึ่งของ shapefile
ฉันใช้ QGIS 2.18 ฉันมี shapefile ซึ่งมีหลายบรรทัด หลังจากการประมวลผลข้อมูลบางอย่างฉันต้องวาดเส้นคู่ขนานในระยะทางที่แตกต่างจากบรรทัดที่มีอยู่ ตัวอย่างเช่นฉันมี 32 บรรทัดใน shapefile ที่มีอยู่ ฉันต้องการวาดเส้นขนานที่ระยะ 50, 100, 170, 500,400 จากหมายเลขบรรทัด 3, 6,20,25,31 ในครั้งเดียว มีวิธีการหรือปลั๊กอินใน QGIS ที่ทำแบบเดียวกันหรือไม่?

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
สร้างคะแนนตามระยะทางที่กำหนดจากกันและกันในเซลล์ของแหอวนแบบสุ่มในขณะที่อยู่บน linestrings
เรามีโปรโตคอลที่ดินที่เราได้รับแหอวนของเซลล์ 1x1 กม. เซลล์บางส่วนได้รับการสุ่มเลือก เราต้องใส่ 4 คะแนนในแต่ละเซลล์และคะแนนเหล่านี้จะต้องอยู่บนถนนด้วย ระยะห่างต่ำสุดระหว่างจุดต้องมี 500m สำหรับทุก ๆ จุดของทุกเซลล์หากเป็นไปได้หรือหากไม่ใช่เราต้องการระยะทางที่เป็นไปได้สูงสุด ในการทดลองครั้งแรกเราแบ่งทุกเซลล์ในสี่เซลล์ 500x500 m ด้วยST_CreateFishnetจากนั้นเราวางจุดที่ centroid ของเซลล์ย่อยแล้วบนถนนที่ใกล้ที่สุด (ST_ClosestPoint) เราได้รับผลลัพธ์ที่ดี แต่ในตัวอย่างด้านล่างคุณสามารถเห็นจุดที่ 5 อยู่ใกล้เกินไปจาก 6 และสามารถเคลื่อนย้ายบนถนนด้านซ้าย WITH r1 AS ( -- only sub-cells which intersects random cells SELECT id_maille, ROW_NUMBER() OVER() AS id_grille, fishnet_500.geomgrille FROM fishnet_500 JOIN t_mailles ON ST_Intersects(ST_Buffer(t_mailles.geom,-200), fishnet_500.geomgrille) …

2
เครื่องมือ Refactor Fields ที่มีแบตช์คืออะไร "ไวยากรณ์การแมปฟิลด์" ใน QGIS?
ใน QGIS มีเครื่องมือที่ดี"ฟิลด์ Refactor"ในเครื่องมือประมวลผล: การใช้มันในชั้นเดียวค่อนข้างตรงไปตรงมา อย่างไรก็ตามเมื่อคุณวางแผนที่จะใช้มันในโหมดแบทช์เราสามารถเห็นกล่องข้อความ"การแมปฟิลด์" ฉันกำลังมองหาตัวอย่างของไวยากรณ์ที่จะใช้มี ฉันยังไม่พบเอกสารเฉพาะใด ๆ

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);

2
QGIS 2.14.6 ส่วนขยายการประมวลผลเครื่องมือ 'รูปหลายเหลี่ยม' หายไป
เพิ่งติดตั้ง QGIS 2.14.6 64 บิตจากตัวติดตั้ง OSGEO4W เวอร์ชันส่วนขยายการประมวลผลคือ 2.12.99 ดังที่เห็นในภาพหน้าจอฉันไม่สามารถเปลี่ยนเป็น 'อินเทอร์เฟซขั้นสูง' ได้ตามปกติเพื่อเข้าถึงPolygonizeเครื่องมือ (เส้นไปยังรูปหลายเหลี่ยมยังไม่ทำงาน cp. QGIS 2.12 เส้นไปยังรูปหลายเหลี่ยมไม่ทำงานอย่างถูกต้อง ): การติดตั้งเดียวกันแบบขนานบนเครื่องอื่นมีปลั๊กอินการประมวลผลเวอร์ชัน 2.10.3 และที่นี่ฉันสามารถเปลี่ยนไปใช้อินเทอร์เฟซขั้นสูงและเข้าถึงPolygonizeเครื่องมือได้: เพิ่ม / ปรับปรุง: สับสนโดยสิ้นเชิง: ใน 2.14.5 ที่ติดตั้งจากตัวติดตั้งแบบสแตนด์อโลนเวอร์ชันปลั๊กอินการประมวลผลคือ 2.12.99 ด้วย แต่ในที่นี้ฉันสามารถเข้าถึงPolyonizeเครื่องมือได้: ความพยายามในการวิจัยจนถึงตอนนี้: ฉันรู้ว่าในกรณีที่ 2. ปลั๊กอินการประมวลผลถูกติดตั้งภายใต้username\.qgis2\python\plugins\เส้นทางที่ผิดปกติสำหรับปลั๊กอินหลัก เห็นได้ชัดว่า (หรืออาจจะ?) ปัญหาคือการติดตั้งก่อนหน้าของ QGIS ก่อนการประมวลผลได้กลายเป็นปลั๊กอินหลักดังนั้นปลั๊กอินในที่นี้ดูเหมือนจะแทนที่ปลั๊กอินหลัก สิ่งนี้จะอธิบายเช่นกันว่าทำไมปลั๊กอินที่ต่ำกว่า 2 จึงไม่ได้รับผลกระทบจากการอัปเดต (เนื่องจากการประมวลผลเป็นปลั๊กอินหลักจึงไม่สามารถใช้ได้ในที่เก็บ) วิธีแก้ปัญหาคือเพียงถอนการติดตั้งปลั๊กอินเริ่ม QGIS ใหม่และมีปลั๊กอินหลักรุ่น 2.12.99 โดดเด่น: Polygonizeเครื่องมือยังคงมีอยู่ (ตรงกันข้ามกับกรณีที่ …

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? ฉันสงสัยว่า QGIS 2.6 จะรวมสิ่งนี้หรือไม่เมื่อใช้กระบวนการต่างๆ ฉันตรวจสอบออนไลน์และฉันพบได้เพียงว่าการเรนเดอร์แบบมัลติเธรดนั้นได้รับการแนะนำให้รู้จักกับ QGIS 2.4 (ฉันคิดว่ามันจะใช้งานได้อีกใน 2.6) ตอนนี้แผนที่สามารถวาดใหม่ได้อย่างรวดเร็วโดยเฉพาะเมื่อจัดการกับชุดข้อมูลขนาดใหญ่ ฉันอ่านว่ามันค่อนข้างยากที่จะรวมฟังก์ชั่นมัลติเธรดเข้ากับคอร์และผู้ใช้ควรใช้โค้ด Python เพื่อให้บรรลุผลเช่นในการปฏิบัติการ Parallelising GIS ใน PyQGIS? . ฉันได้ตรวจสอบคำขอคุณสมบัติแล้วแต่ถูกปิดไป 9 เดือนโดย Tim Sutton ด้วยความคิดเห็นล่าสุด: "ฉันกำลังปิดตัวลงนี้ - Martin Dobias มีการนำไปใช้ในสาขาซึ่งจะถูกรวมเข้าด้วยกัน QGIS 2.2" ฟังก์ชั่นบางอย่างใน QGIS 2.6 ใช้ประโยชน์จากมัลติเธรด (หรือจะเน้นไปที่การเรนเดอร์อีกครั้ง) และถ้าไม่จะเปลี่ยนที่ QGIS 3.0 หรือไม่

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, …

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