셰이프 파일에서 위도와 경도를 얻고 싶습니다. 지금까지는 셰이프 파일을 읽는 방법 만 알고 있습니다.공간 객체에서 위도와 경도 가져 오기 R
library(rgdal)
centroids.mp <- readOGR(".","35DSE250GC_SIR")
하지만 centroids.mp에서 위도와 경도를 어떻게 추출 할 수 있습니까?
셰이프 파일에서 위도와 경도를 얻고 싶습니다. 지금까지는 셰이프 파일을 읽는 방법 만 알고 있습니다.공간 객체에서 위도와 경도 가져 오기 R
library(rgdal)
centroids.mp <- readOGR(".","35DSE250GC_SIR")
하지만 centroids.mp에서 위도와 경도를 어떻게 추출 할 수 있습니까?
이 질문에 대한 몇 가지 수준이있다.
경도와 위도를 묻지 만이 좌표계는이 개체에서 사용하지 않을 수 있습니다. 당신이이 SpatialPointsDataFrame, 모든 라인의 목록입니다 이것은 SpatialLinesDataFrame 경우 좌표, 그냥 무게 중심 경우 경우 "무게 중심"이 좌표의 모든 것이라고이
coordinates(centroids.mp)
주와 같은 좌표를 얻을 수 있습니다 이것은 SpatialPolygonsDataFrame입니다.
좌표는 경도와 위도 일 수 있지만 개체는이를 알지 못할 수 있습니다. 사용
proj4string(centroids.mp)
"NA"인 경우 개체는 (A)를 알지 못합니다. "+ proj = longlat"을 포함하면 객체는 알 수 있으며 경도/위도 (B)입니다. "+ proj ="와 다른 이름 ("longlat"이 아님)이 포함되어 있으면 객체가 알기 때문에 경도/위도 (C)가 아닙니다.
(A) 알아야 할 경우 또는 값에서 분명한 경우 일 수 있습니다.
(B) 완료 한 경우 (먼저 가정을 확인해야하지만,이 메타 데이터가 잘못 될 수 있음).
하는 경우 (C) 할 수 있습니다 (꽤 안정적으로 먼저 가정을 확인해야하지만) 이런 식으로 (데이텀 WGS84에) 경도 위도로 변환 :
그것은 당신의 질문은 전혀 "GDAL"를 포함 분명하지 않다coordinates(spTransform(centroids.mp, CRS("+proj=longlat +datum=WGS84")))
'pro4string' 또는'proj4string'입니까?(첫 번째 오류가 발생했습니다) –
proj4string, 죄송합니다, 지금 고정 – mdsumner
고마워, 지금은 잘 작동하고있어 :) –
사용과 같은 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
# [.......]
maptools로 도형 파일을 열려고 할 때 오류가 발생합니다. 이것은 오류입니다 : "getinfo.shape (filen)의 오류 : SHP 파일을 여는 중 오류가 발생했습니다". Rgdal을 사용하면 파일을 읽을 수 있습니다. 무슨 일이 일어나고 있는지 아십니까? –
아니요. 일반적으로 ** rgdal **의'readOGR()'만 사용하여 벡터 레이어를 읽습니다. ** rgdal **이 작동하면 ** maptools **를 잊어 버리는 것이 어떻습니까? –
위도/경도가 아닐 수 있으므로 좌표()의 사용에는 proj4string (xx)에 대한 안전 검사가 포함되어야하며 rgdal을 사용하는 경우 변형을 포함 할 수 있습니다 일반은 아마도 안전하지 않을 것입니다.) – mdsumner
readShapePoints가 maptools (rgdal이 아닌)에 있기 때문에 coordinates() 솔루션이 경도/위도에 대해 작동하는지 실제로 알기 위해 summary (centroids.mp)와 같이 더 많이 볼 필요가 있습니다. – mdsumner
네 말이 맞아. 이미 패키지 이름을 편집했습니다. 이렇게 돼서 미안하다. –
** rgdal **에는'readShapePoints()'함수가 없으므로, 여러분이 한 것과 당신이 무엇을 요구하고 있는지 명확하지 않습니다. –