Tôi muốn tập hợp một shapefile (tệp .shp và các tệp được liên kết là here) thành một tập hợp các tọa độ, cho biết giữa các độ dài [80,90] và chuột [20,30], sau đó viết ra như một shapefile khác. Nếu tôi sử dụng maptools
gói:R/GIS: Làm thế nào để tập hợp một shapefile bằng một hộp giới hạn dài-lat?
df = readShapeLines("/path/asia_rivers.shp")
và sau đó nhìn vào cấu trúc của tập tin với as.data.frame(df)
, tôi không thể tìm thấy bất kỳ cách rõ ràng Subsetting theo tọa độ. Tôi thể sử dụng gói PBSmapping
để tập hợp con:
df = importShapefile("/path/asia_rivers.shp")
df_sub = subset(df, X>=80 & X<=90 & Y >=20 & Y <=30)
nhưng sau đó tôi dường như không thể để có thể ép buộc này thành một khung dữ liệu có thể được xuất khẩu qua writeSpatialShape()
trong maptools
. Tôi vẫn gặp lỗi này: Error in PolySet2SpatialLines(df_sub) : unknown coordinate reference system
. Chắc chắn tôi đang thiếu một cái gì đó rất cơ bản và có phải là một cách dễ dàng để subsetting dữ liệu địa lý theo tọa độ địa lý?
Vấn đề không phải là trong âm mưu, nhưng trong Subsetting trong một định dạng mà có thể được xuất ra dưới dạng một shapefile. – user702432
Bạn đã cố gắng đọc shapefile của bạn, cắt nó với một hộp giới hạn thích hợp bằng cách sử dụng gIntersection và sau đó xuất nó, ví dụ: với maptools :: writeShapeLines? Tôi chỉ vẽ nó để cho bạn thấy rằng các dòng đã được cắt với dữ liệu giả, vì tệp hình dạng bạn cung cấp không hợp lệ (một shapefile bao gồm nhiều hơn chỉ là một tệp * .shp; http://en.wikipedia.org/ wiki/Shapefile). – johannes
Xin chào jmsigner ... Xin lỗi, tôi đã xấu. Tôi đã thay đổi liên kết đến thư mục nén có chứa các tệp .dbf, .lyr, .prj, .sbn, .sbx, .shp và .shx gốc. Cảm ơn. – user702432