การเปลี่ยนค่าแอตทริบิวต์ชั้นของ CSV จากข้อความเป็นตัวเลขใน QGIS?


28

ฉันอ่านไฟล์ CSV เพื่อเชื่อมโยงไปยังไฟล์. shp

ตัวแปรทั้งหมดที่เป็นเพียงตัวเลขมาเป็นข้อความ

ฉันจะเปลี่ยนตัวแปรข้อความเป็นตัวเลขใน QGIS ได้อย่างไร

คำตอบ:


37

ฉันเคยมีคำถามเดียวกัน คำตอบคือคุณใส่ไฟล์ไว้ในโฟลเดอร์เดียวกันโดยลงท้ายด้วย csvt ตัวอย่างเช่นชื่อไฟล์ของคุณคือ xyzdata.csv คุณเพิ่มไฟล์ xyzdata.csvt

อันนี้คุณสามารถแก้ไขด้วยโปรแกรมแก้ไขตัวอย่างเช่น และในนั้นคุณตั้งค่าชนิดข้อมูลเช่นนี้ "จำนวนเต็ม", "สตริง", "จำนวนเต็ม", "จำนวนเต็ม", "สตริง", "จริง"

จำนวนเต็มเป็นตัวแปรสำหรับคอลัมน์แรกสตริงสำหรับวินาทีและต่อไป ... ตรวจสอบให้แน่ใจว่าไฟล์นั้นมีชื่อเหมือนกัน

แก้ไข: ดูที่นี่ด้วยหากต้องการ: http://underdark.wordpress.com/2011/03/07/how-to-specify-data-types-of-csv-colvs-for-use-in-qgis/


ขอบคุณ lot1 จริงไหมที่ไฟล์ CSV ทั้งหมดจะถูกอ่านเป็นข้อความ? บางทีฉันอาจจินตนาการถึงสิ่งนี้ แต่เมื่อฉันเริ่มใช้งาน QGIS เมื่อไม่นานมานี้ฉันเชื่อมโยงไฟล์ CSV และตัวเลขเป็นตัวเลข ดูเหมือนว่าข้อมูลนี้ควรอยู่ในคู่มือผู้ใช้ (บางทีฉันพลาด)
HealthMaps

ใช่แล้วมันก็ค่อนข้างแปลกสำหรับฉันเช่นกัน แต่ถ้าคุณมีเพียงไม่กี่คอลัมน์วิธีนี้จะทำได้ง่าย ดังนั้น ... จริง ๆ แล้วมันได้ผลสำหรับคุณหรือไม่
Shepherdjo

ใช่มันทำงานได้อย่างสมบูรณ์แบบ! ระวังการตั้งค่าไฟล์ CSVT ของคุณใน Excel; เครื่องหมายคำพูดพิเศษติดค้างอยู่เป็นต้นฉันใช้ SAS หรือ R เพื่อสร้างไฟล์ที่ฉันต้องการเชื่อมโยงดังนั้นจึงไม่เป็นปัญหามากเกินไปที่จะสร้างไฟล์ CSVT พร้อมกับไฟล์ CSV ดูเหมือนว่าสิ่งนี้จะต้องได้รับการแก้ไข GIS อื่นที่ฉันใช้ดูตัวเลขในคอลัมน์ CSV โดยจะอ่านเป็นตัวเลข
HealthMaps

ฉันพบปลั๊กอิน MMQGIS ที่จะเปลี่ยนคอลัมน์จากข้อความเป็นลอยหรือลอยเป็นข้อความ ใช้งานได้กับไฟล์รูปร่างเท่านั้นไม่ใช่ไฟล์ที่เชื่อมโยงหรือไฟล์ csv ที่นำเข้า ดู michaelminn.com/linux/mmqgis
HealthMaps

ดีใจที่ได้ยิน. และขอบคุณสำหรับคำแนะนำปลั๊กอิน ฉันก็จะขอบคุณเช่นกันถ้าคุณยอมรับคำตอบของฉันแล้วคุณจะ?
Shepherdjo

15

แทนที่จะเล่นกับไฟล์อินพุตพยายามทำให้ภาพทุกอย่างสมบูรณ์แบบเพียงใช้ตัวคำนวณฟิลด์เพื่อแปลงข้อความเป็นตัวเลข / จริง ดูตัวอย่างด้านล่าง:

เครื่องคิดเลขภาคสนาม

เครื่องคิดเลขสนามถึงจำนวน

เครื่องคำนวณภาคสนามเป็นของจริง

ตารางคุณสมบัติหลังจากฟังก์ชั่น


เมื่อฉันนำไฟล์ CSV มาฉันไม่สามารถแก้ไขได้ ปุ่มแก้ไขนั้นเป็นสีเทา ฉันจะทำให้แก้ไขได้อย่างไร
HealthMaps

ฉันไม่แน่ใจว่าคุณสามารถแก้ไข csv ผ่าน qGIS ได้ ฉันคิดว่าฉันอ่านคำถามของคุณผิดซึ่งคุณได้นำเข้าข้อมูล csv ไปยังรูปร่างไฟล์แล้ว
nagytech

2
ฉันทำลิงค์, .shp ไปยังไฟล์ csv ซึ่งมีคอลัมน์จำนวน แต่เป็นข้อความจริงๆ เห็นได้ชัดว่าไม่มีใครสามารถแก้ไขได้ในไฟล์ CSV ด้วยตัวมันเองหรือถ้ามันถูกลิงค์ไปยังไฟล์ SHP ดังนั้นฉันบันทึกไฟล์ที่เชื่อมโยงจากนั้นโหลดใหม่อีกครั้งและสามารถแก้ไขไฟล์หมายเลขข้อความเป็นรูปแบบจำนวนเต็มตามที่คุณแนะนำ ดูเหมือนว่าการใช้ไฟล์. csvt จะทำงานได้ดีที่สุดหากคุณมีคอลัมน์ข้อความจำนวนมากที่ต้องถูกแปลงแล้วใช้วิธีการคำนวณฟิลด์หากมีไม่มาก มันจะมีประโยชน์ที่จะสามารถแก้ไขไฟล์ CSV ด้วยตัวเองไม่ได้เชื่อมโยงกับอะไร
HealthMaps

11

แทนที่จะโหลด. csv โดยใช้เพิ่มเลเยอร์เวกเตอร์ให้ใช้เครื่องมือเลเยอร์ข้อความที่มีตัวคั่น มันจะพยายามตรวจหาชนิดข้อมูลที่เหมาะสมที่สุดสำหรับแต่ละคอลัมน์

สำหรับรายละเอียดเพิ่มเติมโปรดดูที่คู่มือผู้ใช้ QGIS

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


Insta-Fix! ขอขอบคุณ
user94812

5

MMQGis ทำให้เกิดปัญหานี้และเมื่อมันปรากฏออกมาก็สามารถแก้ไขได้

เมื่อคุณเข้าร่วม Shapefile & CSV Data ของคุณแล้วให้ใช้เครื่องมือ Modify> Text to Float ของ MMQGis

ตามปกติมันจะทิ้งร่องรอยของรูปร่างที่เป็นสื่อกลางของขยะ แต่มีอะไรใหม่


1

ในQGIS 3.xแหล่งที่มาของข้อผิดพลาดทั่วไปคือการเลือกตัวแยกทศนิยมที่ไม่ถูกต้อง ทำเครื่องหมายหรือยกเลิกการทำเครื่องหมายที่ช่อง "ตัวคั่นทศนิยมคือเครื่องหมายจุลภาค" ก่อนที่จะโหลด CSV ของคุณลงใน QGIS:

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


-2

อีกทางเลือกหนึ่งในกรณีที่ชุดข้อมูลขนาดใหญ่ต้องถูกจัดการและใช้เวลานานในการดำเนินการกับเครื่องคำนวณภาคสนาม (โดยไม่ต้องวนซ้ำ) หรือภายในตัวแก้ไขข้อความ: - บันทึกข้อมูลของคุณเป็นตัวแปร CSV + XY + สำหรับการเชื่อมต่อ CSV ของคุณด้วยปลั๊กอิน (นำเข้า csv) จากนั้นบันทึกเป็น shapefile (จุด) - จากนั้นปิด q gis - กลับไปที่โฟลเดอร์ที่มีจุด shapefile ทำซ้ำตาราง dbf / เปลี่ยนชื่อที่สอดคล้องกัน - เปิด Qgis - อัปโหลด dbf ใหม่และเข้าร่วม shapefile (คุณสมบัติรูปหลายเหลี่ยม)

หนึ่งศิลาสองนกพิราบ: คุณมีศักยภาพ 1) จุด Shapefile ที่มีข้อมูลทั้งหมดและความเป็นไปได้ทั้งหมดของการเป็นตัวแทน 2) และ Shapefile อิสระที่มีตาราง dbf เข้าร่วม (แก้ไขได้!) ที่เชื่อมโยงกับ polygone สำหรับการทำแผนที่เฉพาะเรื่อง

นี่เป็นสิ่งที่ค่อนข้างหยาบ แต่ค่อนข้างตรงไปตรง ...

bs_epidemio


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