Chuẩn bị các tệp CSV để sử dụng trong ArcGIS Desktop?


16

Làm cách nào để tôi chuẩn bị các tệp CSV để sử dụng trong ArcGIS Desktop.

Tôi hỏi vì tôi gặp một số rắc rối khi sử dụng tệp CSV vì ArcGIS quy các loại trường sai cho các cột của tôi và cũng giải thích sai các ký tự đặc biệt như á hoặc ê.

Tôi đã đọc trên diễn đàn Esri rằng có một tệp lược đồ được gọi là bằng cách xác định bằng cách nào đó các loại trường, ví dụ "Văn bản Col22 = V002" xem tại đây http://forums.esri.com/Thread.asp?c=93&f = 1149 & t = 64464

Điều đó thật buồn cười vì tôi thường thấy những tập tin .ini này trên đĩa của mình nhưng thực sự chưa bao giờ tự hỏi chúng tốt cho cái gì. Thật kỳ lạ khi Excel lưu trữ siêu dữ liệu như vậy trong một tệp bổ sung vì các chương trình khác như R không làm như vậy.

Tôi đã cố gắng thao tác với tệp .ini này với rất ít thành công vì tôi không tìm ra cách áp dụng ví dụ loại "chuỗi". Có một số thông tin trên các trang web của MS, xem tại đây: http://msdn.microsoft.com/en-us/l Library / windows / desktop / ms709353% 28v = vs85% 29.aspx nhưng tôi không thể tìm ra giải pháp .

Ngoài ra, tôi không thực sự thích ý tưởng làm việc với tệp .ini này vì đây là một loạt công việc để xác định và nhập tất cả các tên trường khi tôi nói 50 cột. Và các tệp .ini này có thể bị mất, v.v.

Câu trả lời:


16

Cách khắc phục nhanh của tôi là tạo tất cả hàng đầu tiên với các giá trị giả, sau đó xóa hàng / bản ghi này sau khi đưa vào ArcGIS.

Hàng đầu tiên này chứa các giá trị đại diện hoặc thường là các giá trị khác nhau (ví dụ: các ký tự chữ cái ngay cả khi cột chứa các số mà tôi muốn là kiểu dữ liệu văn bản) và với số lượng ký tự lớn nhất cần thiết cho hàng đó (vì các trường văn bản có xu hướng bị cắt ngắn) .

Giá trị ngày / giờ có thể bị lỗi nhập (đặc biệt là giữa các định dạng ngày mặc định của Canada / Hoa Kỳ), vì vậy, công việc của tôi là phân chia các phần ngày / giờ thành các cột riêng biệt (ví dụ: năm, tháng, ngày, giờ, phút), sau đó kết hợp những điều này trong một tính toán trường mới sau khi đưa vào ArcGIS thành công.

Mẹo tọa độ địa lý từ Jamie cũng là cần thiết - chỉ định các giá trị âm cho kinh độ bán cầu tây và vĩ độ nam bán cầu. Và unicode chăm sóc các nhân vật đặc biệt.

Cuối cùng, nếu một loại dữ liệu trường vẫn bị hiểu sai sau khi đưa vào ArcGIS, tôi sẽ thêm một trường mới vào loại dữ liệu chính xác và tính toán / chuyển đổi các giá trị từ trường ban đầu, nhưng thường thì hàng / bản ghi giả sẽ quan tâm nhất, nếu không tất cả, vấn đề.


8

Một chút khác biệt so với lớp CSV-> ArcGIS truyền thống có thể là sử dụng ogr2ogr để tạo shapefile của bạn từ CSV TRƯỚC tải nó vào ArcMap.

Khi sử dụng OGR , bạn có thể tự tạo một tệp CSVT mô tả các loại cột của mình, tương tự như những gì ArcGIS cố gắng thực hiện với tệp giản đồ.ini.

Bài đăng này của @underdark về Cách chỉ định các loại dữ liệu của cột CSV (để sử dụng trong QGIS) giải thích chi tiết về việc tạo CSVT. Bạn có thể bỏ qua việc sử dụng QGIS, vì nó chỉ sử dụng ogr để nhập dữ liệu CSV vào giao diện người dùng của nó.


7

Với ArcGIS 10, bạn có thể tạo lớp tính năng và đặt tất cả các loại trường trước, sau đó tải tệp .csv bằng ArcCatalog. Chỉ cần nhấp chuột phải vào lớp tính năng và chọn Tải> Tải dữ liệu. Sau đó, làm theo hộp thoại Trình tải dữ liệu đơn giản để khớp với các trường, v.v ... Đây là trình tải đơn giản ở chỗ không có nhiều tùy chọn nhưng nó hoạt động với dữ liệu được định dạng tốt. Tôi không chắc chắn nếu điều này là mới đối với 10 vì tôi không có phiên bản cũ hơn để kiểm tra.


3

Cách chính xác để giải quyết các vấn đề này là sử dụng tệp 'giản lược.ini' như được đề xuất bởi @Kirk_Kuykendall trong các nhận xét. Đây là một cách tiêu chuẩn của Microsoft để xử lý đầu vào từ CSV vào cơ sở dữ liệu trong đó loại cột có thể được hiểu một cách mơ hồ.

ArcGIS tôn trọng các tệp 'lược đồ' này khi nhập từ CSV.

Xem tài liệu của Microsoft tại: https://docs.microsoft.com/en-us/sql/odbc/microsoft/schema-ini-file-text-file- ức? View = sql-server-2017

Tệp 'lược đồ' cần ở cùng một vị trí với tệp CSV của bạn và nó có thể bao gồm các cấu hình cho nhiều tệp CSV khác trong cùng một vị trí nếu bạn cần.

Một tệp 'giản lược' cho một tệp CSV chỉ có một cột mà nếu không được đọc với loại sai có thể trông như thế này:

[SomeFileName.csv]
Col2=SomeFieldName Long

Xác nhận điều này hoạt động trong ArcGIS Pro. Tôi đã sử dụng công việc khác xung quanh nơi bạn thêm một hàng dữ liệu hàng đầu với các giá trị khớp với kiểu dữ liệu mà bạn mong muốn, hoạt động cho những thứ một lần, nhưng nếu bảng rất lớn hoặc bạn có tự động hóa, chắc chắn đây là giải pháp tốt nhất. Bạn chỉ cần đặt nó và quên nó!
alexGIS

1

Một cách giải quyết mà tôi đã tìm thấy là mở CSV trong trình soạn thảo văn bản (tôi đã sử dụng notepad ++) và lưu lại dưới dạng CSV. Tôi không thấy bất kỳ thay đổi có thể nhìn thấy nào trong nội dung tệp, bao gồm các ký tự đánh dấu đặc biệt, nhưng vấn đề có thể liên quan đến cách Excel định dạng tệp CSV. Tôi đã lưu tệp trong Excel bằng cách sử dụng các tùy chọn CSV tiêu chuẩn 'CSV (được phân cách bằng dấu phẩy) (*. Csv)'. Có lẽ một định dạng CSV khác sẽ hoạt động tốt hơn.

Thông tin bổ sung: Một cái gì đó cơ bản phải thay đổi với tệp CSV khi tôi lưu nó bằng notepad ++, vì bây giờ tôi có thể chỉnh sửa và lưu nó trong excel và nó vẫn được nhập dưới dạng số theo arcmap. Tôi không có manh mối gì đã thay đổi mặc dù.


-2

Đáng ngạc nhiên khi mở tệp gốc (đối với tôi .txt) trong trình chỉnh sửa văn bản (UltraEdit cho tôi) và lưu tệp dưới dạng .csv hoặc .txt hoạt động. Không có thay đổi đáng chú ý đối với tệp trong UltraEdit, gấu trúc hoặc bất kỳ phương pháp kiểm tra nào khác mà tôi có thể thấy.

Không có cách giải quyết nào, kể cả của riêng tôi, giải thích lý do cơ bản cơ bản tại sao ArcMap đôi khi chỉ quyết định đọc các cột số dưới dạng văn bản.

Vì vậy, điều này làm việc hai lần ... sau đó cùng một quy trình ngừng hoạt động.

Tôi phải xóa tất cả các phép nối, xóa bảng, tắt ArcMap, mở bảng trong trình soạn thảo văn bản, lưu lại bảng, mở ArcMap, thêm bảng và làm lại liên kết ... mỗi khi tôi thay đổi bất cứ điều gì trong bàn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.