Вырежьте все нанесенные на карту области за пределами области 13 штатов США - PullRequest
0 голосов
/ 07 октября 2019

Я только начал с отображения в R, и мне удалось преобразовать данные в формате lat, lon в растровый файл, а затем нанести на него границы состояния.

enter image description here

Теперь мне нужно подготовить его к публикации, и я хотел бы включить только форму моего региона из 13 штатов (и без больших озер),

library(tmap)    

usa <- st_as_sf(maps::map("state", fill=TRUE, plot =FALSE))

map_us<- tm_shape(usa)+
    tm_borders()  

tm_shape(raster_file) + 
  tm_raster(style = "cont", palette = "viridis", midpoint = 0)+
  map_us  

Мне трудно найти что-то, что могло бы предоставить многоугольник для нескольких состояний, и я прошел через множество картографических пакетов. Извините, я не могу включить свои растровые данные здесь.

1 Ответ

1 голос
/ 09 октября 2019

Чтобы обрезать растровый файл до векторной формы {sf}, у вас есть в принципе два варианта:

  • обрезать на уровне данных;это включает raster::mask(), возможно, raster::crop() позже, чтобы уменьшить экстент растра (растр в маске сохраняет исходный размер)
  • сохранить данные и наложить белый полигон с дырой над вашим графиком

Обрезка на уровне данных более "чистая", но оставит вас с неровными краями (растровая ячейка имеет , чтобы быть квадратным).

Наложение белого многоугольника не так чисто, но может быть предпочтительнее, если вашей ключевой целью является гладкое представление (и проклятие чистоты сущности ...)

Вы найдете их обоихобсуждается вместе с примерами и примерами кода в этом посте на сайте сообщества RStudio .

...