Я пытаюсь создать карту тихоокеанского побережья Северной Америки (юг Канады, США, Нижняя Калифорния), на которой будут показаны местоположения сайтов. В идеале картографическая проекция должна сохранять форму / ориентацию береговой линии.
Я использую данные rnaturalearth
countries
как свои spatialpolygondataframe
. Я думаю, что исходная проекция этих данных (EPSG: 4326 proj4string: "+ proj = longlat + datum = WGS84 + no_defs") выглядит не очень хорошо, поэтому я преобразовал данные countries
в проекцию конической формы Ламберта (proj4string: + proj = lcc + lat_1 = 20 + lat_2 = 60 + lat_0 = 40 + lon_0 = -96 + x_0 = 0 + y_0 = 0 + датум = NAD83 + единицы = m + no_defs '). Я не уверен, что это лучший прогноз, но я решил, что с него нужно начать, я открыт для предложений.
Я изо всех сил пытаюсь построить преобразованную НФ, чтобы показать тихоокеанское побережье Северной Америки. Я знаю, что мне нужно преобразовать координаты моего окна в соответствии с проекцией LCC North America, а также координаты моего сайта, но Rstudio дает мне пустое окно графика и ошибки.
Я попытался выполнить шаги, изложенные в [https://www.r-bloggers.com/zooming-in-on-maps-with-sf-and-ggplot2/provided[1], но безуспешно после многих попыток и пробуя другие методы. Где я ошибаюсь при преобразовании окна карты? Это моя первая попытка нанести на карту преобразованную проекцию. Любые предложения будут ценны! Заранее спасибо!
library(tidyverse)
library(ggplot2)
library(sf)
library(rnaturalearth) # map data source
library(rgdal)
## Download sf from rnaturalearth
country <- ne_download(scale = 10, type = 'countries', category = 'cultural', returnclass = 'sf')
st_crs(country) # show CRS of data
st_proj_info() # lcc is available
# Lambert Conformal Conic projection proj4 according to https://epsg.io/102009
LCC_North_America <- '+proj=lcc +lat_1=20 +lat_2=60 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +datum=NAD83 +units=m +no_defs'
# transform country data to LCC N. America
country_LCC <- st_transform(country, crs = LCC_North_America)
## site locations, need to transform to LCC N.America and plot
lat <- c(48.98604, 47.72322, 37.96389, 33.61817)
long <- c(-122.7593, -122.6559, -122.4881, -117.9052)
disp_wind_4326 <- st_sfc(st_point(c(-127,49)), st_point(c(-112, 29)), crs = 4326)
disp_wind_LCC <- st_transform(disp_wind_4326, crs = LCC_North_America)
disp_window <- st_coordinates(disp_wind_LCC)
(NOOC_coast_fig <- ggplot() +
geom_sf(data = country_LCC) +
coord_sf(xlim = disp_window[,'X'], ylim = disp_window[,'Y'],
datum = LCC_North_America, expand = FALSE) +
theme_bw())
scale=110
) - их быстрее загружать и строить. - person David_O   schedule 18.12.2019