簡體   English   中英

如何使用R將矩形多邊形擬合為不規則多邊形?

[英]How to fit rectangular polygon into irregular polygon using R?

如何將矩形多邊形擬合為不規則多邊形? 或更好; 如何將最大矩形多邊形擬合成不規則多邊形?

背景:我有一堆重疊的光柵文件,它們代表了星載傳感器系統的不同數據。 為了進一步分析,我想獲得適合所有這些數據集的足跡/輪廓的最大矩形多邊形(所有 4 個角均為 90 度角),以屏蔽和裁剪我的數據集。 換句話說; 如何將最大尺寸的矩形多邊形放入綠色輪廓中(見下圖)?

想法:首先獲取每個數據集的輪廓或足跡,然后溶解所有足跡以獲得輪廓,最后將最大范圍的矩形多邊形放入該不規則多邊形中

紅線代表數據集的足跡,綠線代表不規則多邊形的輪廓,我想在其中擬合最大尺寸的矩形多邊形

以下是否滿足您的需求?

library(raster)
library(rgeos)
library(mapview)
raster1 <- raster(xmn=-2,xmx=0.1,ymn=50.3,ymx=51.5,vals=1)
raster2 <- raster(xmn=-2.1,xmx=0.5,ymn=50.4,ymx=51.4,vals=1)
raster3 <- raster(xmn=-2.2,xmx=-0.3,ymn=50.2,ymx=51.6,vals=1)

r1 <- extent(raster1)
r1p <- as(r1, 'SpatialPolygons')
r2 <- extent(raster2)
r2p <- as(r2, 'SpatialPolygons')
r3 <- extent(raster3)
r3p <- as(r3, 'SpatialPolygons')
r1p$data <- 1
r2p$data <- 2
r3p$data <- 3

rr <- bind(r1p, r2p, r3p)
rrsp <- as(extent(rr), 'SpatialPolygons')
rrsp$data <- 1
crs(rrsp) <- crs(r1p) <- crs(r2p) <- crs(r3p) <- crs(raster1)

mm <-
    mapview(rrsp, col.regions = 'green', col='green', alpha.regions = 0.1) + 
    mapview(r1p, col.regions = 'red', col='red', alpha.regions = 0.1) + 
    mapview(r2p, col.regions = 'red', col='red', alpha.regions = 0.1) + 
    mapview(r3p, col.regions = 'red', col='red', alpha.regions = 0.1)

mm

它找到每個柵格的范圍,根據它們制作空間多邊形,然后將它們綁定在一起。 然后找到它的范圍,再次作為空間多邊形。

mapview代碼生成以下圖。

在此處輸入圖片說明

綠色矩形包含所有紅色柵格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM