Я создал несколько полигонов, представляющих "оболочки", которые сгруппированы в изоплеты с использованием пакета R tlocoh
. Теперь я хочу экспортировать эти полигоны в виде шейп-файлов для лучшей визуализации. Функция lhs.exp.shp
в tlocoh
должна быть в состоянии сделать это легко (и делала это для меня раньше), однако, на этот раз (и многочисленные попытки после этого) это привело к фатальной ошибке со следующим всплывающим сообщение об ошибке: «Сеанс RStudio R перестал работать. Из-за проблемы программа перестала работать правильно. Пожалуйста, закройте программу. ” Посмотрев в функцию, я обнаружил, что она использует rgdal::writeOGR
в качестве основы - затем я извлек полигоны в виде списка SpatialPolygonDataFrame
объектов, и провел его непосредственно через rgdal::writeOGR
, и получил та же фатальная ошибка (и та же для raster::shapefile
).
Я думаю, что эта ошибка связана с нехваткой памяти при попытке экспортировать большое количество полигонов одновременно. Если это не так, то, пожалуйста, дайте мне знать тоже!
Поэтому я бы хотел поместить SpatialPolygonDataFrame
в 5 различных уровней изоплетов, перечисленных в iso$polygons
, и объединить полигоны внутри. Например, iso$polygons[[1]]
- это первый из пяти уровней изоплет. Для каждого изотопного уровня объедините многоугольники в каждом списке в один многоугольник, чтобы затем экспортировать, например, объедините 84 многоугольника в iso@polygons[[5]]@Polygons
в один многоугольник. Экспорт одного полигона в виде шейп-файла. Наконец, заканчивайте 5 шейп-файлами для каждого уровня изоплеты.
Я боролся с этим в течение дней , и я просто не могу понять это правильно.
Любая / вся помощь будет принята с благодарностью!
Примечание: Я обновил все свои пакеты и R (R version 3.6.2 (2019-12-12) -- "Dark and Stormy Night"
)
Снимок экрана с макетом данных:
![screen shot of data structure](https://i.stack.imgur.com/UMcBD.png)
Фрагмент структуры:
List of 1
$ AWT_NAN00238_datetime.pts1035.k5.s0.kmin0:List of 19
..$ id : chr "AWT_NAN00238_datetime"
..$ pts :Formal class 'SpatialPointsDataFrame' [package "sp"] with 5 slots
.. .. ..@ data :'data.frame': 1035 obs. of 3 variables:
.. .. .. ..$ ptid: int [1:1035] 1 2 3 4 5 6 7 8 9 10 ...
.. .. .. ..$ id : Factor w/ 1 level "AWT_NAN00238_datetime": 1 1 1 1 1 1 1 1 1 1 ...
.. .. .. ..$ dt : POSIXct[1:1035], format: "2016-12-04 15:53:33" "2016-12-05 15:53:33" "2016-12-07 15:53:32" "2016-12-08 15:53:32" ...
.. .. ..@ coords.nrs : num(0)
.. .. ..@ coords : num [1:1035, 1:2] 311987 312715 312717 311363 310279 ...
.. .. .. ..- attr(*, "dimnames")=List of 2
.. .. .. .. ..$ : chr [1:1035] "1" "2" "3" "4" ...
.. .. .. .. ..$ : chr [1:2] "x" "y"
.. .. ..@ bbox : num [1:2, 1:2] 308360 7144236 313431 7147789
.. .. .. ..- attr(*, "dimnames")=List of 2
.. .. .. .. ..$ : chr [1:2] "x" "y"
.. .. .. .. ..$ : chr [1:2] "min" "max"
.. .. ..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slot
.. .. .. .. ..@ projargs: chr "+proj=utm +south +zone=36J +ellps=WGS84"
..$ anv : NULL
..$ rw.params:'data.frame': 1 obs. of 4 variables:
.. ..$ id : Factor w/ 1 level "AWT_NAN00238_datetime": 1
.. ..$ time.step.median: num 28775
.. ..$ d.bar : num 372
.. ..$ vmax : num 0.0843
..$ mode : chr "k"
..$ k : num 5
..$ r : NULL
..$ a : NULL
..$ auto.a : NULL
..$ s : num 0
..$ kmin : num 0
..$ dups :List of 2
.. ..$ dups.idx: num 465
.. ..$ offset : num 1
..$ desc : chr "Hulls created from 1035 locations of AWT_NAN00238_datetime using the Fixed-k method (k=5, s=0, kmin=0, 1 duplic"| __truncated__
..$ hulls :Formal class 'SpatialPolygonsDataFrame' [package "sp"] with 5 slots
.. .. ..@ data :'data.frame': 1035 obs. of 11 variables:
.. .. .. ..$ pts.idx : num [1:1035] 1 2 3 4 5 6 7 8 9 10 ...
.. .. .. ..$ ptid : int [1:1035] 1 2 3 4 5 6 7 8 9 10 ...
.. .. .. ..$ nnn : num [1:1035] 6 6 6 6 6 6 6 6 6 6 ...
.. .. .. ..$ area : num [1:1035] 10751 11565 10876 4020 15640 ...
.. .. .. ..$ perim : num [1:1035] 505 439 633 327 494 ...
.. .. .. ..$ tspan : num [1:1035] 795 879 870 820 643 ...
.. .. .. ..$ nep : int [1:1035] 6 6 6 6 6 6 6 6 6 6 ...
.. .. .. ..$ scg.enc.mean: num [1:1035] 0.0353 0.0221 0.0574 0.0189 0.026 ...
.. .. .. ..$ scg.enc.sd : num [1:1035] 0.02621 0.02494 0.04259 0.00877 0.01987 ...
.. .. .. ..$ scg.nn.mean : num [1:1035] 0.0353 0.0221 0.0574 0.0189 0.026 ...
.. .. .. ..$ scg.nn.sd : num [1:1035] 0.02621 0.02494 0.04259 0.00877 0.01987 ...
.. .. ..@ polygons :List of 1035
--------------------
..$ hm.params: NULL
..$ gen.date : chr "Fri Feb 07 11:50:34 2020"
..$ isos :List of 1
.. ..$ iso.srt-area.iso-q.h1035.i5:List of 9
.. .. ..$ ufipt : chr "Density Isopleths"
.. .. ..$ desc : chr "These isopleths were constructed from 1035 hulls sorted by area. Isopleth levels indicate the proportion of tot"| __truncated__
.. .. ..$ iso.method : chr "pt.quantiles"
.. .. ..$ sort.metric : chr "area"
.. .. ..$ hmap : NULL
.. .. ..$ polys :Formal class 'SpatialPolygonsDataFrame' [package "sp"] with 5 slots
.. .. .. .. ..@ data :'data.frame': 5 obs. of 7 variables:
.. .. .. .. .. ..$ iso.level: num [1:5] 0.1 0.25 0.5 0.75 0.95
.. .. .. .. .. ..$ area : num [1:5] 5830 40157 257998 946716 4856549
.. .. .. .. .. ..$ edge.len : num [1:5] 1436 5777 20649 42911 78045
.. .. .. .. .. ..$ nep : num [1:5] 105 259 520 777 984
.. .. .. .. .. ..$ ptp : num [1:5] 0.101 0.25 0.502 0.751 0.951
.. .. .. .. .. ..$ hm.val : num [1:5] 369 1140 3951 9347 39994
.. .. .. .. .. ..$ num.hulls: int [1:5] 84 221 439 678 948
.. .. .. .. ..@ polygons :List of 5
.. .. .. .. .. ..$ :Formal class 'Polygons' [package "sp"] with 5 slots
.. .. .. .. .. .. .. ..@ Polygons :List of 13
.. .. .. .. .. .. .. .. ..$ :Formal class 'Polygon' [package "sp"] with 5 slots
.. .. .. .. .. .. .. .. .. .. ..@ labpt : num [1:2] 312380 7145467
.. .. .. .. .. .. .. .. .. .. ..@ area : num 324
.. .. .. .. .. .. .. .. .. .. ..@ hole : logi FALSE
.. .. .. .. .. .. .. .. .. .. ..@ ringDir: int 1
.. .. .. .. .. .. .. .. .. .. ..@ coords : num [1:6, 1:2] 312383 312376 312361 312380 312398 ...
.. .. .. .. .. .. .. .. .. .. .. ..- attr(*, "dimnames")=List of 2
.. .. .. .. .. .. .. .. .. .. .. .. ..$ : NULL
.. .. .. .. .. .. .. .. .. .. .. .. ..$ : chr [1:2] "x" "y"
.. .. .. .. .. .. .. .. ..$ :Formal class 'Polygon' [package "sp"] with 5 slots
.. .. .. .. .. .. .. .. .. .. ..@ labpt : num [1:2] 309441 7146001
.. .. .. .. .. .. .. .. .. .. ..@ area : num 666
.. .. .. .. .. .. .. .. .. .. ..@ hole : logi FALSE
.. .. .. .. .. .. .. .. .. .. ..@ ringDir: int 1
.. .. .. .. .. .. .. .. .. .. ..@ coords : num [1:9, 1:2] 309448 309442 309425 309411 309433 ...
.. .. .. .. .. .. .. .. .. .. .. ..- attr(*, "dimnames")=List of 2
.. .. .. .. .. .. .. .. .. .. .. .. ..$ : NULL
.. .. .. .. .. .. .. .. .. .. .. .. ..$ : chr [1:2] "x" "y"
.. .. .. .. .. .. .. .. ..$ :Formal class 'Polygon' [package "sp"] with 5 slots
.. .. .. .. .. .. .. .. .. .. ..@ labpt : num [1:2] 311971 7145977
.. .. .. .. .. .. .. .. .. .. ..@ area : num 502
.. .. .. .. .. .. .. .. .. .. ..@ hole : logi FALSE
.. .. .. .. .. .. .. .. .. .. ..@ ringDir: int 1
.. .. .. .. .. .. .. .. .. .. ..@ coords : num [1:7, 1:2] 311992 311965 311961 311954 311974 ...
.. .. .. .. .. .. .. .. .. .. .. ..- attr(*, "dimnames")=List of 2
.. .. .. .. .. .. .. .. .. .. .. .. ..$ : NULL
.. .. .. .. .. .. .. .. .. .. .. .. ..$ : chr [1:2] "x" "y"
.. .. .. .. .. .. .. .. ..$ :Formal class 'Polygon' [package "sp"] with 5 slots
.. .. .. .. .. .. .. .. .. .. ..@ labpt : num [1:2] 309876 7145897
.. .. .. .. .. .. .. .. .. .. ..@ area : num 482
.. .. .. .. .. .. .. .. .. .. ..@ hole : logi FALSE
.. .. .. .. .. .. .. .. .. .. ..@ ringDir: int 1
.. .. .. .. .. .. .. .. .. .. ..@ coords : num [1:8, 1:2] 309891 309885 309877 309859 309864 ...
.. .. .. .. .. .. .. .. .. .. .. ..- attr(*, "dimnames")=List of 2
.. .. .. .. .. .. .. .. .. .. .. .. ..$ : NULL
.. .. .. .. .. .. .. .. .. .. .. .. ..$ : chr [1:2] "x" "y"
.. .. .. .. .. .. .. .. ..$ :Formal class 'Polygon' [package "sp"] with 5 slots
.. .. .. .. .. .. .. .. .. .. ..@ labpt : num [1:2] 311752 7145868
.. .. .. .. .. .. .. .. .. .. ..@ area : num 476
.. .. .. .. .. .. .. .. .. .. ..@ hole : logi FALSE
.. .. .. .. .. .. .. .. .. .. ..@ ringDir: int 1
.. .. .. .. .. .. .. .. .. .. ..@ coords : num [1:11, 1:2] 311776 311782 311759 311755 311737 ...
.. .. .. .. .. .. .. .. .. .. .. ..- attr(*, "dimnames")=List of 2
.. .. .. .. .. .. .. .. .. .. .. .. ..$ : NULL
.. .. .. .. .. .. .. .. .. .. .. .. ..$ : chr [1:2] "x" "y"
-------------------------