Đang tải nhiều tệp CSV vào QGIS 2.10


8

Làm cách nào tôi có thể tải nhiều tệp CSV vào QGIS với Kinh độ / Vĩ độ đã được bao gồm trong đó. Tôi đã tải xuống trình cắm "Tải tất cả chúng", tuy nhiên, kết quả được tải đã được chuyển đổi dưới dạng tệp văn bản và không thể hiển thị trên bản đồ. Có ai giúp đỡ không? Có bất kỳ trình cắm có sẵn nào có thể tải nhiều tệp CSV sẽ hoạt động tốt trong QGIS không?


1
Bạn có thể yêu cầu tính năng đó tại github.com/gacarrillor/loadthemall/issues Chỉ cần mở một vấn đề mới mô tả những gì bạn muốn có. Sẽ thật tuyệt nếu thêm nó vào Tải tất cả chúng.
Germán Carrillo

Làm thế nào nhiều tập tin csv khác nhau?
BillW

Câu trả lời:


10

Bạn có thể sử dụng đoạn mã sau trong Bảng điều khiển Python để định vị các tệp csv của mình trong một thư mục được chỉ định và tải chúng dưới dạng các shapefile điểm bằng các trường kinh độ / vĩ độ của chúng. Mã giả định:

  • Tệp csv được phân tách bằng dấu phẩy
  • Kinh độ / vĩ độ tên trường đang "x""y"tương ứng
  • CRS của các lớp được tải sẽ ở mức EPSG: 4326

Nhưng bạn có thể chỉnh sửa điều này:

import glob, os

# Define path to  directory of your csv files
path_to_csv = "C:/Users/You/Desktop/csv folder/"  

# Set current directory to path of csv files
os.chdir(path_to_csv)  
# Find each .csv file and load them as vector layers
for fname in glob.glob("*.csv"):  
    uri = "file:///" + path_to_csv + fname + "?delimiter=%s&crs=epsg:4326&xField=%s&yField=%s" % (",", "x", "y")
    name = fname.replace('.csv', '')
    lyr = QgsVectorLayer(uri, name, 'delimitedtext')
    #QgsMapLayerRegistry.instance().addMapLayer(lyr)

Trong phiên bản mới o QGIS, lệnh QgsMapLayerRegistry.instance().addMapLayer(lyr)đã được giảm giá. Giải pháp vẫn hợp lệ nếu chúng tôi thay thế dòng cũ bằng cách: QgsProject.instance().addMapLayer(lyr) Ngoài ra, bạn cần xóa hoặc nhận xét dòng thứ haifrom qgis.core import QgsMapLayerRegistry

Giải pháp hoạt động hoàn hảo.


1
Cảm ơn tất cả các bình luận của bạn ... nó thực sự hoạt động ngoại trừ tệp được lưu dưới dạng tệp .csvt.
wss84

@ wss84 - Rất hoan nghênh, rất vui vì nó đã hoạt động :)
Joseph

1

Bạn có thể cần các tệp csvt dọc theo các tệp CSV của mình để thông báo cho QGIS nơi cần tìm hình học.

Các plugin có thể sử dụng Add Vector layertrong nền, không phải là Add delimited textmột số đoán có giáo dục trên các cột hình học.

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.