ต้องเพิ่มหลายเลเยอร์อย่างรวดเร็วจากหลาย ๆ โฟลเดอร์ไปยังโครงการ QGIS


12

ฉันดาวน์โหลดไฟล์ซิปภาพหลายภาพ (เนื้อหาของแต่ละไฟล์คือ jp2, jpg, jpw, xml, htm และ. dbf, .prj, .sbn, .sbx, .shp, .shx) และต้องการเพิ่มภาพนี้อย่างรวดเร็ว โครงการทำงานของฉันใน QGIS 2.6.1 ฉันพยายามหลีกเลี่ยงการนำทางและเพิ่มแต่ละไฟล์แยกกัน เนื่องจากแต่ละไฟล์อยู่ในโฟลเดอร์ที่แตกต่างกันฉันจึงไม่สามารถหาวิธีเพิ่มหลายไฟล์พร้อมกันได้


ดังนั้นคุณมีไฟล์ zip ในโฟลเดอร์ของคุณหรือคุณได้คลายบีบอัดเนื้อหาของไฟล์ zip แล้ว? ฉันอธิบายคำตอบสำหรับกรณีหลังนี้อย่างละเอียด ฉันเกรงว่ากรณีก่อนหน้านี้จะต้องใช้สคริปต์ (Python) เล็กน้อย
Germán Carrillo

ฉันได้แยกเนื้อหาแล้ว
reevesii

คำตอบ:


24

สิ่งที่คุณต้องการ QGIS ปลั๊กอินโหลดพวกเขาทั้งหมด นอกเหนือจากการโหลดไฟล์จากหลายไดเรกทอรีพร้อมกันคุณสามารถ:

  • แสดงโครงสร้างไดเรกทอรีในสารบัญ QGIS (โดยใช้กลุ่มเลเยอร์ซ้อนกัน)
  • ใช้ตัวกรองตัวเลขและตัวอักษรเพื่อให้คุณโหลดเลเยอร์ที่ตรงกับตัวกรองของคุณ (คิดถึงนิพจน์ทั่วไป)
  • โหลดเฉพาะรูปทรงเรขาคณิตหรือประเภทแรสเตอร์บางอย่างเท่านั้น (เช่นเฉพาะรูปหลายเหลี่ยมเวกเตอร์หรือหลายแกนแรสเตอร์)
  • โหลดเฉพาะนามสกุลไฟล์บางไฟล์ (เช่นเฉพาะไฟล์. shp)
  • โหลดเลเยอร์เท่านั้นที่อยู่ข้างในหรือตัดกับกล่องขอบที่กำหนด

และอื่น ๆ. ดูที่https://github.com/gacarrillor/loadthemallสำหรับรายละเอียดเพิ่มเติม

ป้อนคำอธิบายรูปภาพที่นี่


@ Germán Carrillo ดูเหมือนว่าปลั๊กอินที่สมบูรณ์แบบสำหรับความต้องการของฉัน แต่เมื่อฉันพยายามที่จะโหลดไฟล์ที่ฉันได้รับข้อผิดพลาด: "ไม่มีไฟล์ KML ที่จะโหลดจากเขาฐานไดเรกทอรีด้วยตัวกรองนี้เปลี่ยนพารามิเตอร์และลองอีกครั้ง" ฉันใช้ QGIS 2.14.2 ตัวกรองทั้งหมดถูกปิดและแผนที่ที่ฉันเลือกมีสองแผนที่พร้อมไฟล์ kml หนึ่งไฟล์ (เพื่อทดสอบฉันมีชุดข้อมูลขนาดใหญ่ที่จะนำเข้า)
Hannes Ledegen

@HannesLedegen คุณลองใช้ตัวกรอง 'Interesects' แทน 'ประกอบด้วย' หรือไม่ หากไม่ได้ผลโปรดเปิดปัญหาใหม่ในหน้า GitHub ของโครงการโดยอธิบายทุกอย่างโดยละเอียด
Germán Carrillo

2

เป็นอีกทางเลือกหนึ่งในการใช้ปลั๊กอินคุณสามารถให้คำสั่ง Add Layer เป็นรายการไฟล์ที่คั่นด้วยเครื่องหมายอัฒภาค คุณสามารถสร้างรายการดังกล่าวในลักษณะดังต่อไปนี้:

cd /d <Path_to_the_directory_where_your_files_are>
dir *.shp /s /b >All.txt

สิ่งนี้จะให้ชื่อไฟล์All.txtซึ่งมีพา ธ ไปยังไฟล์ทั้งหมดที่มีนามสกุลเฉพาะ (คุณสามารถใช้มาสก์ที่แตกต่างกันขึ้นอยู่กับไฟล์ที่คุณมี) ซึ่งแต่ละไฟล์อยู่ในบรรทัดใหม่

D:\Data\01\data01_1.shp
D:\Data\01\data01_2.shp
D:\Data\02\data02_1.shp
D:\Data\02\data02_2.shp

จากนั้นแทนที่บรรทัดใหม่ทั้งหมดด้วยการ;ใช้โปรแกรมแก้ไขข้อความ (เช่นNotepad ++ ) และวางผลลัพธ์ในAdd Vector Layer...กล่องโต้ตอบ

สำหรับ Notepad ++ คุณจำเป็นต้องเปลี่ยนโหมดการเปลี่ยนเพื่อขยายและแทนที่ด้วย\r\n ;คุณจะได้ไฟล์ที่มีลักษณะดังนี้:

D:\Data\01\data01_1.shp;D:\Data\01\data01_2.shp;D:\Data\02\data02_1.shp;D:\Data\02\data02_2.shp

0

บน Linux คุณสามารถแตกรายการ.shpไฟล์และป้อนลงในกล่องโต้ตอบ "นำเข้าเวกเตอร์" โดยตรง:

#on the command line
ls /home/yourpath/*/*shp|tr "\n" '@'|sed 's/@/" "/g'|sed 's/^/"/g'

ป้อนคำอธิบายรูปภาพที่นี่

ฉันพบว่าสิ่งนี้มีประโยชน์ภายใต้QGIS Dockerด้วยเหตุผลบางประการปลั๊กอิน "โหลดพวกเขาทั้งหมด" ไม่แสดงข้อความโต้ตอบ

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