Tôi đang cố gắng làm điều tương tự được hỏi trong câu hỏi này, Cartogram + choropleth map in R, nhưng bắt đầu từ một SpatialPolygonsDataFrame và hy vọng sẽ kết thúc với cùng một loại đối tượng.Sử dụng Rcartogram trên đối tượng SpatialPolygonsDataFrame
Tôi có thể lưu đối tượng dưới dạng shapefile, sử dụng scapetoad, mở lại và chuyển đổi lại, nhưng tôi muốn có tất cả trong R để quy trình hoàn toàn có thể tái sản xuất và tôi có thể tự động mã hàng chục biến thể .
Tôi đã chia nhỏ mã Rcartogram trên github và thêm nỗ lực của tôi cho đến nay here.
Thực chất bản demo này tạo SpatialGrid trên bản đồ, tìm mật độ dân số tại mỗi điểm lưới và chuyển đổi thành ma trận mật độ theo định dạng yêu cầu cho cartogram()
để làm việc. Càng xa càng tốt.
Nhưng, làm cách nào để nội suy các điểm bản đồ gốc dựa trên đầu ra của cartogram()
?
Có hai vấn đề ở đây. Đầu tiên là lấy bản đồ và lưới vào cùng một đơn vị để cho phép nội suy. Thứ hai là truy cập mọi điểm của mọi đa giác, nội suy nó, và giữ chúng theo thứ tự đúng.
Lưới nằm trong các đơn vị lưới và bản đồ nằm trong các đơn vị dự kiến (trong trường hợp của longlat mẫu). Một trong hai lưới phải được chiếu thành longlat hoặc bản đồ thành các đơn vị lưới. Suy nghĩ của tôi là tạo một CRS giả và sử dụng hàm này cùng với hàm spTransform()
trong package(rgdal)
, vì điều này xử lý mọi điểm trong đối tượng với ít phiền phức.
Việc truy cập mọi điểm rất khó bởi vì chúng là một vài lớp trong đối tượng SpPDF: đối tượng> đa giác> Đa giác> đường> coords mà tôi nghĩ. Bất kỳ ý tưởng làm thế nào để truy cập vào trong khi vẫn giữ cấu trúc của bản đồ tổng thể nguyên vẹn?
Tôi đã vấp phải câu hỏi này sau khi đăng [của riêng tôi] (http://stackoverflow.com/questions/32406216/population-weighted-polygon-distortion/) và đấu tranh với việc sử dụng 'Rcartogram'. Cho đến nay đề nghị của tôi là sử dụng ScapeToad; Tôi đang cố gắng quyết định liệu tôi có thể chuyển sự đơn giản của nó thành R – MichaelChirico