กำลังเตรียมไฟล์ CSV เพื่อใช้ใน ArcGIS Desktop หรือไม่


16

ฉันจะเตรียมไฟล์ CSV เพื่อใช้ใน ArcGIS Desktop ได้อย่างไร

ฉันถามเพราะฉันมีปัญหาในการใช้ไฟล์ CSV เพราะ ArcGIS มีการระบุประเภทฟิลด์ที่ไม่ถูกต้องลงในคอลัมน์ของฉันและตีความตัวอักษรพิเศษเช่นáหรือê

ฉันได้อ่านในฟอรัม Esri ว่ามีไฟล์ schema.ini ที่เรียกว่าประเภทฟิลด์เช่น "Col22 = V002 Text" ดูที่นี่http://forums.esri.com/Thread.asp?c=93&f = 1149 & t = 64464

นั่นเป็นเรื่องตลกเพราะฉันเห็นไฟล์. ini บนแผ่นดิสก์ของฉันบ่อย ๆ แต่ไม่เคยสงสัยเลยว่าไฟล์เหล่านี้ดีสำหรับอะไร เป็นเรื่องแปลกที่ Excel เก็บข้อมูลเมตาดังกล่าวในไฟล์เพิ่มเติมเนื่องจากโปรแกรมอื่น ๆ เช่น R ไม่ทำเช่นนั้น

ฉันพยายามที่จะจัดการไฟล์. ini นี้ด้วยความสำเร็จเพียงเล็กน้อยเนื่องจากฉันไม่พบวิธีใช้ตัวอย่างเช่น "string" มีข้อมูลบางอย่างเกี่ยวกับไซต์ MS ดูที่นี่: http://msdn.microsoft.com/en-us/library/windows/desktop/ms709353%28v=vs.85%29.aspxแต่ฉันไม่พบวิธีแก้ปัญหา .

นอกจากนี้ฉันไม่ชอบความคิดที่จะทำงานกับไฟล์. ini นี้เพราะมันค่อนข้างเป็นงานที่ต้องกำหนดและพิมพ์ชื่อฟิลด์ทั้งหมดเมื่อฉันสมมุติ 50 คอลัมน์ และไฟล์. ini เหล่านี้อาจสูญหาย ฯลฯ

คำตอบ:


16

การแก้ไขอย่างรวดเร็วของฉันคือการสร้างแถวแรกทั้งหมดด้วยค่าดัมมี่แล้วลบแถว / บันทึกนี้หลังจากนำเข้าสู่ ArcGIS

แถวแรกนี้มีค่าตัวแทนหรือค่าที่แตกต่างกันบ่อยครั้ง (เช่นตัวอักษรตัวอักษรแม้ว่าคอลัมน์จะมีตัวเลขที่ฉันต้องการให้เป็นประเภทข้อมูลข้อความ) และมีจำนวนอักขระมากที่สุดที่จำเป็นสำหรับแถวนั้น (เนื่องจากเขตข้อมูลข้อความมักจะถูกตัดทอน) .

ค่าวันที่ / เวลาอาจมีข้อผิดพลาดในการนำเข้า (โดยเฉพาะระหว่างรูปแบบวันที่เริ่มต้นของแคนาดา / สหรัฐฯ) ดังนั้นการทำงานของฉันคือการแยกส่วนวันที่ / เวลาในคอลัมน์ที่แยกต่างหาก (เช่นปีเดือนวันชั่วโมงนาที) จากนั้น เชื่อมต่อสิ่งเหล่านี้ในการคำนวณภาคสนามใหม่หลังจากนำเข้าสู่ ArcGIS ได้สำเร็จ

เคล็ดลับพิกัดทางภูมิศาสตร์จากเจมี่ก็เป็นสิ่งจำเป็นเช่นกัน - ระบุค่าลบสำหรับลองจิจูดซีกโลกตะวันตกและละติจูดซีกโลกใต้ และยูนิโค้ดดูแลตัวละครพิเศษ

ท้ายที่สุดถ้าประเภทข้อมูลภาคสนามยังคงตีความผิดหลังจากนำเข้าสู่ ArcGIS ฉันจะเพิ่มเขตข้อมูลใหม่ในประเภทข้อมูลที่ถูกต้องและคำนวณ / แปลงค่าจากเขตข้อมูลเดิม แต่โดยปกติแล้วแถวจำลอง / บันทึกจะดูแลมากที่สุดหากไม่ ทุกปัญหา


8

การออกเล็กน้อยจากเลเยอร์ CSV-> ArcGIS ดั้งเดิมอาจใช้ ogr2ogr เพื่อสร้างรูปร่างไฟล์ของคุณจาก CSV ก่อนโหลดลงใน ArcMap

เมื่อใช้OGRคุณสามารถสร้างไฟล์ CSVT ที่อธิบายถึงประเภทคอลัมน์ของคุณด้วยตนเองเช่นเดียวกับ ArcGIS ที่พยายามทำกับไฟล์ schema.ini

โพสต์นี้โดย @underdark เกี่ยวกับวิธีระบุประเภทข้อมูลของคอลัมน์ CSV (สำหรับใช้ใน QGIS)อธิบายรายละเอียดของการสร้าง CSVT คุณสามารถเพิกเฉยต่อการใช้งานของ QGIS เนื่องจากใช้เพียง ogr เพื่อนำเข้าข้อมูล CSV ลงใน UI


7

ด้วย ArcGIS 10 คุณสามารถสร้างคลาสคุณลักษณะและตั้งค่าประเภทฟิลด์ทั้งหมดก่อนจากนั้นโหลดไฟล์. csv โดยใช้ ArcCatalog เพียงคลิกขวาที่คลาสคุณลักษณะแล้วเลือกโหลด> โหลดข้อมูล จากนั้นทำตามไดอะล็อก Simple Data Loader เพื่อจับคู่ฟิลด์และอื่น ๆ มันเป็นตัวโหลดอย่างง่ายซึ่งมีตัวเลือกไม่มาก แต่ทำงานได้กับข้อมูลที่มีการจัดรูปแบบที่ดี ฉันไม่แน่ใจว่าสิ่งนี้ใหม่สำหรับ 10 หรือไม่เพราะฉันไม่มีรุ่นก่อนหน้านี้ที่สะดวกในการตรวจสอบ


3

วิธีที่ถูกต้องในการแก้ไขปัญหาเหล่านี้คือการใช้ไฟล์ 'schema.ini' ตามที่แนะนำโดย @Kirk_Kuykendall ในความคิดเห็น นี่เป็นวิธีมาตรฐานของ Microsoft ในการจัดการอินพุตจาก CSV ลงในฐานข้อมูลซึ่งสามารถตีความประเภทคอลัมน์ได้อย่างคลุมเครือ

ArcGIS เคารพไฟล์ 'schema.ini' เหล่านี้เมื่อนำเข้าจาก CSV

ดูเอกสารของ Microsoft ได้ที่: https://docs.microsoft.com/en-us/sql/odbc/microsoft/schema-ini-file-text-file-driver?view=sql-server-2017

ไฟล์ 'schema.ini' จะต้องอยู่ในตำแหน่งเดียวกับไฟล์ CSV ของคุณและสามารถรวมการกำหนดค่าสำหรับไฟล์ CSV อื่น ๆ หลายไฟล์ในตำแหน่งเดียวกันหากคุณต้องการ

ไฟล์ 'schema.ini' แบบง่ายสำหรับไฟล์ CSV เดียวที่มีเพียงหนึ่งคอลัมน์ที่มิฉะนั้นการอ่านด้วยประเภทที่ไม่ถูกต้องอาจมีลักษณะเช่นนี้:

[SomeFileName.csv]
Col2=SomeFieldName Long

ยืนยันการทำงานนี้ใน ArcGIS Pro ฉันใช้งานอื่น ๆ ที่คุณเพิ่มแถวข้อมูลด้านบนด้วยค่าที่ตรงกับประเภทข้อมูลที่คุณต้องการซึ่งใช้ได้กับสิ่งหนึ่งครั้ง แต่ถ้าตารางมีขนาดใหญ่หรือคุณมีระบบอัตโนมัตินี่เป็นทางออกที่ดีที่สุดแน่นอน คุณเพียงแค่ตั้งค่าและลืมมัน!
alexGIS

1

วิธีแก้ปัญหาที่ฉันพบคือการเปิด CSV ในโปรแกรมแก้ไขข้อความ (ฉันใช้ notepad ++) และบันทึกเป็น CSV อีกครั้ง ฉันไม่เห็นการเปลี่ยนแปลงใด ๆ ที่มองเห็นได้ในเนื้อหาไฟล์รวมถึงอักขระมาร์กอัปพิเศษ แต่ปัญหาน่าจะเกี่ยวข้องกับการจัดรูปแบบไฟล์ CSV ของ Excel ฉันบันทึกไฟล์ใน Excel โดยใช้ตัวเลือก CSV มาตรฐาน 'CSV (คั่นด้วยจุลภาค) (*. csv)' บางทีรูปแบบ CSV ที่แตกต่างกันอาจใช้งานได้ดีกว่า

ข้อมูลเพิ่มเติม: ต้องมีการเปลี่ยนแปลงบางอย่างในไฟล์ CSV เมื่อฉันบันทึกด้วย notepad ++ เพราะตอนนี้ฉันสามารถแก้ไขและบันทึกใน excel และยังคงนำเข้าเป็นตัวเลขโดย arcmap ฉันไม่มีเงื่อนงำสิ่งที่เปลี่ยนแปลงแม้ว่า


-2

น่าแปลกที่การเปิดไฟล์ต้นฉบับ (สำหรับฉัน. txt) ในโปรแกรมแก้ไขข้อความ (UltraEdit สำหรับฉัน) และบันทึกเป็นไฟล์. csv หรือ. txt ไม่มีการเปลี่ยนแปลงที่เห็นได้ชัดเจนในไฟล์ใน UltraEdit, pandas หรือวิธีการตรวจสอบอื่น ๆ ที่ฉันเห็น

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

ดังนั้นวิธีนี้จึงใช้งานได้สองครั้ง ... จากนั้นขั้นตอนเดียวกันนี้ก็หยุดทำงาน

ฉันต้องลบการรวมทั้งหมด, ลบตาราง, ปิด ArcMap, เปิดตารางในโปรแกรมแก้ไขข้อความ, บันทึกตารางใหม่, เปิด ArcMap, เพิ่มตาราง, และทำซ้ำการเข้าร่วม ... ทุกครั้งที่ฉันเปลี่ยนแปลงอะไรใน โต๊ะ.

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