Разделение отдельных пространственных многоугольников на равные в R - PullRequest
0 голосов
/ 08 мая 2018

У меня есть шейп-файл полигонов, которые являются городками в штате Айова. Я хотел бы разделить каждый элемент (то есть каждый городок) на 9 равных частей (то есть сетка 3 x 3 для каждого городка). Я понял, как это сделать, но у меня проблемы с формированием нового информационного блока из новых полигонов. Мой код ниже. Данные можно скачать здесь: https://ufile.io/wi6tt

library(sf)
library(tidyverse)
setwd("~/Desktop")

iowa<-st_read( dsn="Townships/iowa", layer="PLSS_Township_Boundaries", stringsAsFactors = F) # import data

## Make division 
r<-NULL
for (row in 1:nrow(iowa)) {
  r[[row]]<-st_make_grid(iowa[row,],n=c(3,3))
}

# Combine together
region<-NULL 
for (row in 1:nrow(iowa)) {
  region<-rbind(region,r[[row]])
}

region<-st_sfc(region,crs=4326) #convert to sfc
reg_id<-data.frame(reg_id=1:length(region)) #make ID for dataframe

# Make SF 
region_df<-st_sf(reg_id,region)

Последняя строка выдает следующую ошибку:

Error in `[[<-.data.frame`(`*tmp*`, all_sfc_names[i], value = list(list( : replacement has 1644 rows, data has 14796

1664 - количество строк в исходном кадре данных Айовы. Ясно, что количество строк не соответствует количеству элементов.

Это может быть общая вещь, а не пространственная, но я решил опубликовать все это на случай, если у кого-то возникнет идея, как сделать все это немного чище

...