[英]R - SpatialPolygonsDataFrame from a list of SpatialPolygons
[英]R - recenter SpatialPolygonsDataFrame from Atlantic to Pacific view but keep data
我需要在具有经度(-0.125,359.875)的大型 RasterBrick 气候数据(dim = 721 1440 14610)上覆盖秘鲁的西半球 SpatialPolygonsDataFrame,经度(-81.3307,-68.65311)。 当然这是不可能的,因为 shapefile 在大西洋视图上,而在太平洋视图上的光栅砖。
我首先尝试使用rotate()
在大西洋视图上重新定位光栅砖,但这非常耗时。
然后我从sp
package 中找到了 centerer recenter()
。 这行得通; 新的秘鲁 shapefile 位于太平洋视图中。 然而,它只是一个 SpatialPolygons——它丢失了我在秘鲁的 SpatialPolygonsDataFrame 中的数据。 有什么方法可以保留数据,或者其他类似的 function 是否保留数据?
如果您想留在sp
并使用recenter()
,我认为唯一的方法是将 data.frame 复制回 output SpatialPolygons。 就像是:
peru_pac <- recenter(peru_atl)
peru_pac_spdf <- SpatialPointsDataFrame(peru_pac, peru_atl@data)
但我也建议尽可能使用较新的sf
package。 如果您已经有一个 SpatialPolygonsDataFrame object,很容易转换为简单的特征 object 与sfobject <- st_as_sf(spdataframe)
,然后使用st_shift_longitude
。 如果需要转换回sp
对象,可以使用spdataframe <- as(sfobject, "Spatial")
。
您可以考虑使用sf
package,它将对象作为空间数据框(如 geopandas)处理。 function st_shift_longitude()
recenter()
sp. 中的 centerer()。
文档 - https://www.rdocumentation.org/packages/sf/versions/0.9-2/topics/st_shift_longitude
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.