Отсечение шейп-файла с использованием пересекающихся шейп-файлов в R - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь обрезать (не обрезать в соответствии с экстентом) шейп-файлы штатов и округов США, чтобы они соответствовали границам этого растрового растрового изображения (цифровой модели рельефа).

Мой обрезанный (в соответствии с экстентом) шейп-файл состояния выглядит следующим образом: enter image description here

Какобрезать шейп-файл состояния, чтобы он соответствовал сложному контуру матрицы высот?Я попытался пересечь два, что работает, но это не делает различий между государством и границами водораздела, делая карту очень трудной для чтения (особенно с округами!).enter image description here

huc6_cty_intersect <- raster::intersect(huc6s, counties)  

Мне нужно иметь возможность накладывать штаты и округа по отдельности, чтобы я мог изменять ширину, цвет и т. Д. Границ, чтобы карты были читаемыми.

Я пытался растеризовать шейп-файлы штатов и округов, а затем маскировать их демоном, но, похоже, это заняло очень-очень много времени (в одночасье не хватило времени).

counties_rast <- rasterize(counties, dem)
r4 <- raster::mask(counties_rast, huc6_cty_intersect)

Я пытаюсь добраться до следующего изображения, но со всеми государственными границами за пределами водосборных бассейнов срезаны.Любая помощь в том, как это сделать, была бы замечательной.Спасибо.enter image description here

ПРИМЕЧАНИЕ. Белые возвышения в пределах границ водораздела специально замаскированы.

1 Ответ

0 голосов
/ 18 июня 2019

Если я вас хорошо понимаю, вы ищете raster::crop

library(raster)
b <- as(extent(6, 6.4, 49.75, 50), 'SpatialPolygons')
crs(b) <- "+proj=longlat +datum=WGS84"    
p <- shapefile(system.file("external/lux.shp", package="raster"))

pb <- crop(p, b)

Если я вас плохо понял, то уточните ваш ответ, используя простые примеры данных, как я. Нет смысла ссылаться на объекты, которых нет у других.

...