Tham gia tệp CSV không phải không gian vào dữ liệu không gian (shapefile) bằng cách sử dụng QGIS?


40

Tôi có một tệp CSV có dữ liệu mã bưu điện trong một trường, nhưng nó không phải là không gian, ví dụ như không có Easting và Northing.

Tôi có một shapefile với mã bưu điện trong một trường và một số dữ liệu bổ sung.

Tôi muốn tham gia CSV với shapefile dựa trên các thuộc tính (trường mã bưu điện). Tôi biết tôi có thể làm điều này trong ArcMap, nhưng làm cách nào tôi có thể đạt được điều tương tự trong QGIS?


Làm thế nào để bạn làm điều này trong phiên bản 2.3.0-Master?

Trong phiên bản 2.8 (và với một số phiên bản trước đó cũng vậy) tôi không thể thực hiện công việc này. Cố gắng tham gia khớp với dữ liệu mã bưu điện của Anh. Sử dụng mmqgis tôi gặp lỗi "không có hình học trong lớp Mã bưu điện" hoặc một cái gì đó rất giống nhau. Sử dụng chức năng tham gia QGIS Tôi nhận được một phép nối dữ liệu nhưng không có hình học nào được thêm vào CSV. Rất rất thất vọng với vấn đề này.
Rostranimin

1
Xin chào @Rostranimin. Bạn đang thực hiện đúng cách, tức là nối dữ liệu CSV vào dữ liệu shapefile, từ hộp thoại "Thuộc tính" của shapefile?
stragu

Câu trả lời:


28

Một cách nhanh chóng là sử dụng plugin mmqgis sẽ nối tệp csv của bạn với shapefile theo các trường mã bưu điện

nhập mô tả hình ảnh ở đây


4
Này này! Có plugin Trình duyệt tệp của tôi: D
Nathan W

1
Good Work Nathan - đã sử dụng nó rất nhiều, hoạt động tốt.
Mapperz

1
Điều này đang làm việc tốt, chỉ là những gì chúng ta cần. Cảm ơn bạn rất nhiều!
gisuser

xin chào, tôi cố gắng thực hiện nhưng tôi gặp lỗi sau TracBack (cuộc gọi gần đây nhất): Tệp "C: /Users/Juan/.qgis/python/plugins \ mmqgis \ mmqgis_dialogs.py", dòng 65, trong phương ngữ Browse_infiles = csv.Sniffer (). sniff (infile.read (1024)) Tệp "C: \ PROGRA ~ 1 \ QUANTU ~ 1 \ apps \ Python25 \ lib \ csv.py", dòng 160, khi phát hiện lỗi sniff, "Có thể không xác định dấu phân cách "Lỗi: Không thể xác định dấu phân cách

@Carlos: Bạn sử dụng dấu phân cách nào trong tệp CSV?
underdark

39

Bản phát hành sắp tới của QGIS phiên bản 1.7 sẽ có tính năng nối được tích hợp trong các thuộc tính lớp. Tốc độ tham gia cũng khá ấn tượng.

Các bước tham gia:

  1. Mở csv thông qua biểu tượng vector mở.
  2. Mở tab thuộc tính trên lớp bạn muốn tham gia (bản đồ của bạn)
  3. Nhấp vào tab Tham gia và nhấn nút +
  4. Chọn lớp csv và hai cột mà bạn muốn tham gia.
  5. Nhấn ok trong hộp thoại thuộc tính.

Tham gia vào QGIS


Tốt đẹp. Thêm tệp csv bằng cách sử dụng lớp Thêm Vector không trực quan. Tôi ước tôi biết điều này sớm hơn.
RK

1
Bốn năm sau và điều này vẫn không hoạt động đáng tin cậy như IME plugin MMQGIS.
camdenl

1
Điều này nhanh hơn nhiều so với plugin MM. Để thêm lớp dữ liệu, hãy sử dụng lớp -> thêm văn bản được phân tách-> csv
Học thống kê theo ví dụ

0

Nếu bạn tải dữ liệu của mình vào MS Access, ftools sẽ cho phép bạn tham gia với bảng MS Access.

Bạn bắt đầu trình cài đặt plugin qgis, bật repos bên thứ 3 và ftools sẽ khả dụng.

sau đó sử dụng công cụ plugin bằng cách truy cập fTools> Công cụ quản lý dữ liệu> Tham gia thuộc tính


Cảm ơn bạn, tôi không đặc biệt muốn sử dụng một chương trình khác để đến đó nhưng tôi sẽ thử điều này nếu tất cả các cách khác đều thất bại.
gisuser

0

Plugin fTools để làm việc với dữ liệu Vector cũng sẽ cung cấp cho bạn tùy chọn tương tự để "nối dữ liệu trên một thuộc tính" ngay cả khi nó không phải là không gian.


Nó dường như chỉ sử dụng dữ liệu không gian làm lớp đích, trong trường hợp này tôi muốn thêm các trường từ lớp không gian vào csv. Cám ơn vì sự gợi ý.
gisuser
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.