R中

2017-03-06 12 views
1

圍繞創建空間數據緩存我有商場的空間數據集,我想在R.R中

周圍創建緩衝區我想這些包將是有益的:

require(maptools) 
require(geosphere) 

我能夠爲一組座標而不是空間數據。代碼如下所示:

coordinates(locs) <- c("Longitude", "Latitude") # set spatial coordinates 
fivekm <- cbind(coordinates(locs), X=rowSums(distm (coordinates(locs)[,1:2], fun = distHaversine)/1000 <= 5)) # number of points within 5 km 

但是我不知道用於一組多邊形的函數/包。有人可以請告知功能(或代碼),我會從那裏去?

謝謝!

回答

2

我認爲在目前的唯一選擇是項目的經度和緯度點到平面地圖,然後做一切有。據我所知,目前還沒有在球體上做多邊形幾何的軟件包(我正在研究一個,但沒有ETA)。使用

投影與spTransformsp包做,但現在它可能是使用更現代的簡單功能包sf其具有的功能st_transform更方便。小插曲https://cran.r-project.org/web/packages/sf/vignettes/sf1.html有一個名爲「座標參考系統和轉換」的部分來幫助您完成這一部分。緩衝在「幾何操作」一節中介紹。

+0

謝謝! @Ege Rubak。 – JAG2024

0

在庫rgeos中,有與SpatialPoints或SpatialPolygons一起使用的gBuffer函數。
width參數允許設置要緩衝的距離。但是,請注意,此距離是所用座標系統的比例尺。因此,以非投影數據爲單位,單位爲米。正如@Ege Rubak建議的那樣,您必須首先使用spTransform來投影您的數據(請務必根據您的位置使用相應的CRS)。
至於現在,rgeos庫可與圖書館sp,但不(沒?)與近期sf

0

兩個以前的帖子已經覆蓋了細節,但我認爲它可能是有用的,提供的工作流。這是假設你有使用lat和long點。你的原始空間數據格式是什麼?

  1. 將您的座標轉換爲空間點數據幀SpatialPointsDataFrame併爲其分配一個地理CRS(proj4)符合您的座標數據(可能WGS84)
  2. 改變投射到本地投影CRS與首選單位
  3. 應用緩衝區空間點的數據幀時,width現在將更多的可用單元