2013-02-05 2 views
2

매트릭스 (temp_matrix)를 래스터 오브젝트 (tempMap)로 변환 한 다음 플롯하려고합니다. 또한 동일한 플롯 창에서 위도와 경도 위치를 사용할 수있는 점을 몇 개 추가하고 싶습니다. 몇 가지 접근법을 시도했지만 사용 가능한 점은 lat/long의 특정 위치에 있기 때문에 아무 것도 작동하지 않는 반면 래스터 객체는 다른 정도를 갖기 때문에 작동하지 않는 것으로 보입니다. 이 문제를 도와주세요. 다음은 문제의 샘플 데이터입니다.래스터 레이어에 공간 점을 그릴 때

library(raster) 
temp_matrix<-array(NA,c(11,11)) 
temp_matrix[1,]<-c(NA,NA,NA,NA,NA,NA,NA,0,0,-6,-6) 
temp_matrix[2,]<-c(0,0,0,0,NA,NA,1,0,0,0,0) 
temp_matrix[3,]<-c(1,0,0,-1,-1,0,0,0,1,0,0) 
temp_matrix[4,]<-c(1,1,0,0,0,0,-1,-1,0,0,0) 
temp_matrix[5,]<-c(1,NA,NA,NA,NA,-1,-1,-1,0,-1,-1) 
temp_matrix[6,]<-c(NA,NA,NA,NA,NA,NA,-1,-1,-1,0,0) 
temp_matrix[7,]<-c(NA,NA,NA,NA,NA,NA,NA,0,-1,0,0) 
temp_matrix[8,]<-c(NA,NA,NA,NA,NA,NA,NA,0,0,0,-1) 
temp_matrix[9,]<-c(NA,NA,NA,NA,NA,NA,NA,-1,0,0,0) 
temp_matrix[10,]<-c(NA,NA,NA,NA,NA,NA,NA,NA,-1,-1,-2) 
temp_matrix[11,]<-c(NA,NA,NA,NA,NA,NA,NA,NA,-2,-3,-2) 
plot(raster(temp_matrix),axes = FALSE,legend=FALSE) 
tempMap <- raster(temp_matrix) 

# plot the points over this raster layer 
point_1<-c(10,10) # should appear on 2nd row from top i.e. over temp_matrix[2,10] 
point_2<-c(9,10) # should appear on 3rd row from top i.e. over temp_matrix[3,10] 
point_3<-c(1,10) # should appear on lowermost row i.e.over temp_matrix[11,10] 

답변

5

기본값에 의존하지 않고 원하는 범위를 설정해야합니다. 도움으로

raster에 대한 상태를 잘

  • xmn :: 최소 X 좌표 (왼쪽 테두리)

  • xmx :: 최대 X 좌표와

    ## S4 method for signature 'matrix' 
    raster(x, xmn=0, xmx=1, ymn=0, ymx=1, crs=NA, template=NULL) 
    

    (국경)

  • ymn :: y 좌표 최소 (하단 테두리)

  • ymx :: 최대 Y 좌표 당신은에 xmn, xmx, ymnymx 설정할 수

(상단 테두리) 원하는 값 (이 경우 1, 11, 1, 11)

tempMap <- raster(temp_matrix, xmn = 1, xmx = 11, ymn = 1, ymx=11) 
plot(tempMap,axes = FALSE,legend=FALSE) 
points(c(10,9,1), c(10,10,10)) 

+0

그러나 샘플 코드에서는 원래의 행렬의 크기가 37,72이고 크기를 변경하려고하면 원래의 플롯이 변경되고 변형됩니다. 기본 해상도는 0.01388889, 0.02702703 (x, y) 이며 새 해상도는 0.5138889, 1.945946 (x, y)입니다. 어떻게하면 해상도를 동일하게 유지할 수 있으며 범위를 변경하는 동안 재설정 할 수 있습니다. 미리 감사드립니다. tempMap <- 래스터 (diffMat, xmn = -14.5, xmx = 22.5, ymn = -36, ymx = 36) – Munish

+0

나는'x'와'y'가 반대라고 생각합니다. (m, ymn = -14.5, ymx = 22.5, xmn = -36, xmx = 36)'더미 '데이터 (37 행, 72 행 매트릭스'm')를 사용하면' 1' – mnel

+0

x 축을 72 부분으로 나누는 경도에 대해 위도와 유사한 논리를 나타내지 만 37 행이 y 축의 37 파티션에 해당해야한다는 가정하에 이들을 역순으로 사용했습니다. 이론 및 해상도 문제에 대한 적절한 설명을 여전히 생각하고 있지만 내 컴퓨터에도 문제가 있지만 래스터 범위의 개념을 이해하고 원하는 위치에 점을 표시하는 데 도움이되었습니다. 고맙습니다 :) – Munish

관련 문제