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"
và "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.