Я хочу получить широту и долготу из шейп-файла. До сих пор я только умею читать шейп-файл.
library(rgdal)
centroids.mp <- readOGR(".","35DSE250GC_SIR")
Но как я могу извлечь широту и долготу из centroids.mp?
Я хочу получить широту и долготу из шейп-файла. До сих пор я только умею читать шейп-файл.
library(rgdal)
centroids.mp <- readOGR(".","35DSE250GC_SIR")
Но как я могу извлечь широту и долготу из centroids.mp?
В этом вопросе есть несколько уровней.
Вы запрашиваете долготу и широту, но это может быть не система координат, используемая этим объектом. Вы можете получить координаты, как это
coordinates(centroids.mp)
Обратите внимание, что «центроидами» будут все координаты, если это SpatialPointsDataFrame, список всех линейных координат, если это SpatialLinesDataFrame, и только центроиды, если это SpatialPolygonsDataFrame.
Координаты могут быть долготой и широтой, но объект может этого не знать. Использовать
proj4string(centroids.mp)
Если это «Н/П», то объект не знает (А). Если он включает «+proj=longlat», объект знает, и это долгота/широта (B). Если он включает "+proj=" и какое-то другое имя (не "longlat"), то объект знает, и это не долгота/широта (C).
Если (A), вам придется это выяснить, или это может быть очевидно из значений.
Если (B) вы закончили (хотя вам следует сначала проверить предположения, эти метаданные могут быть неверными).
Если (C) вы можете (довольно надежно, хотя вы должны сначала проверить предположения) преобразовать долготу в широту (на датуме WGS84) следующим образом:
coordinates(spTransform(centroids.mp, CRS("+proj=longlat +datum=WGS84")))
pro4string
или proj4string
? (Получил ошибку на первом)
- person Bhargav Rao; 01.02.2016
Используйте coordinates()
, например:
library(maptools)
xx <- readShapePoints(system.file("shapes/baltim.shp", package="maptools")[1])
coordinates(xx)
# coords.x1 coords.x2
# 0 907.0 534.0
# 1 922.0 574.0
# 2 920.0 581.0
# 3 923.0 578.0
# 4 918.0 574.0
# [.......]
readOGR()
из rgdal для чтения векторных слоев. Если rgdal работает, почему бы просто не использовать его и забыть о maptools?
- person Josh O'Brien; 09.05.2013
st_coordinates
решает проблему, но удаляет ковариаты, связанные с координатами из объекта sf. здесь я делюсь альтернативой на случай, если они вам понадобятся:
# useful enough
sites_sf %>%
st_coordinates()
#> X Y
#> 1 -80.14401 26.47901
#> 2 -80.10900 26.83000
# alternative to keep covariates within a tibble/sf
sites_sf %>%
st_coordinates_tidy()
#> Joining, by = "rowname"
#> Simple feature collection with 2 features and 3 fields
#> geometry type: POINT
#> dimension: XY
#> bbox: xmin: -80.14401 ymin: 26.479 xmax: -80.109 ymax: 26.83
#> epsg (SRID): 4326
#> proj4string: +proj=longlat +datum=WGS84 +no_defs
#> # A tibble: 2 x 4
#> gpx_point X Y geometry
#> <chr> <dbl> <dbl> <POINT [°]>
#> 1 a -80.1 26.5 (-80.14401 26.47901)
#> 2 b -80.1 26.8 (-80.109 26.83)
readShapePoints()
, поэтому совершенно неясно, что вы сделали и что вы просите. - person Josh O'Brien   schedule 10.05.2013