Я застрял с чем-то, что, кажется, должно быть довольно простым.Извините, я новичок в использовании пространственных данных в R.
Я пытаюсь отобразить городские данные на карту мировых береговых линий.Я взял береговые линии из набора данных о естественной земле (https://www.naturalearthdata.com/downloads/) 1: 110 м и сгенерировал кадр данных пространственных линий:
coast_rough_sldf
class : SpatialLinesDataFrame
features : 134
extent : -180, 180, -85.60904, 83.64513 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
variables : 3
names : scalerank, featurecla, min_zoom
min values : 0, Coastline, 0.0
max values : 1, Country, 1.5
. У меня также есть набор данных по городам, образец котороговыглядит следующим образом:
city_coast <- data.frame(Latitude = c(-34.60842, -34.47083, -34.55848, -34.76200, -34.79658, -34.66850),
Longitude = c(-58.37316, -58.52861, -58.73540, -58.21130, -58.27601, -58.72825),
Name1 = c("Buenos Aires", "San Isidro", "San Miguel", "Berazategui", "Florencio Varela", "Merlo"),
distance = c(7970.091, 5313.518, 26156.700, 11670.274, 18409.738, 33880.259))
city_coast
Latitude Longitude Name1 distance
1 -34.60842 -58.37316 Buenos Aires 7970.091
2 -34.47083 -58.52861 San Isidro 5313.518
3 -34.55848 -58.73540 San Miguel 26156.700
4 -34.76200 -58.21130 Berazategui 11670.274
5 -34.79658 -58.27601 Florencio Varela 18409.738
6 -34.66850 -58.72825 Merlo 33880.259
Затем я успешно создаю фрейм данных пространственных точек:
city_spdf <- SpatialPointsDataFrame(coords = select(city_coast, c("Longitude", "Latitude")),
proj4string = CRS("+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84"),
data = select(city_coast, c("Name1", "distance")))
city_spdf
class : SpatialPointsDataFrame
features : 6
extent : -58.7354, -58.2113, -34.79658, -34.47083 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
variables : 2
names : Name1, distance
min values : Berazategui, 5313.518
max values : San Miguel, 33880.259
Теперь я хочу объединить city_spdf с coast_sldf, чтобы я мог построить их, используя tmapГлядя на учебники, кажется, что я должен использовать over ():
city_coast_shp <- over(coast_rough_sldf, city_spdf)
city_coast_shp
Name1 distance
1 <NA> NA
Что явно не так. Переключение порядка объектов меняет вещи, но все равно не дает мне то, что мне нужно.
Может кто-нибудь сказать мне, что я не правильно понимаю с этой функцией? В каждом примере, который я видел, просто люди присоединяются к двум пространственным объектам. Извинения, если я упускаю что-то чрезвычайно простое.