2017-04-24 6 views
0

나는 내가 그린지도 위에 해안선과 국경을 오버레이하려고합니다.어떻게 R을 사용하여 worldHires를 해안선을 정확하게 플롯 할 수 있습니까?

worldHires 기능을 간단하게 사용하려고하지만 내지도가 올바르게 조정되지 않았습니다. 나는 https://www.esrl.noaa.gov/psd/data/gridded/data.UDel_AirT_Precip.html에서 내 데이터를 다운로드하고 파일 이름은 precip.mon.total.v401입니다

내가 (R에 처음 몇 읽기 데이터 라인과 변수 제외) 내지도 플롯 할 때이 내 코드입니다 :

>image.plot(lon,lat,precip[,ncol(precip):1,8], 
     main="Precipitation (August, 2001)", 
     xlab=expression(paste("Longitude(",degree,"E)")), 
     ylab=expression(paste("Latitude(",degree,"N)")), 
     zlim=c(0,15),xlim = c(min(lon),max(lon)), 
     ylim = c(min(lat),max(lat)),cex=0.5) 
> map('world2Hires', fill=FALSE, add=T) 

world2Hires의 경계 레이어는 Latitude의 경우 -90 ~ 90, 경도의 경우 0 ~ 360의 비율로 매우 작습니다.

내 데이터의 범위는 Latitude -180 ~ 180, 경도 0 ~ 720입니다. 그렇다면 world2Hires를 데이터와 일치하도록 확장하려면 어떻게해야합니까? 아니면 불가능한가요? See image in link

답변

0

질문에 위도 값 (-90 : 90)도 매트릭스 인덱스와 혼합하는 것 같습니다. 맵의 해상도는 0.5도이기 때문에 0 : 360으로 실행됩니다. 경도에 대해서도 마찬가지입니다.

귀하의 질문에서, 나는 문제가 귀하의 벡터 "lon"과 "lat"가 올바르지 않은지 확신 할 수 없습니다 (그들은 아마도 lon=seq(0,360,by=0.5); lat=seq(-90,90,by=0.5)과 같아야합니다). 분명히 map() 명령은 좌표가도 단위가 될 것으로 예상합니다.

하지만 제공된 링크의 그림은 worldHires의 데이터가 [-180,180] 인 동안 데이터가 경도 [0,360]에 있음을 보여줍니다. 가장 간단한 해결책은 동일한지도이지만 경도가 [0,360]으로 변경된 "world2Hires"를 사용하는 것이고 이는지도에 적합해야한다고 생각합니다.

worldhires를 사용하면 세계지도를 선택하는 것이 최선의 방법은 아닙니다. 세계 일부 지역의 국경은 시대에 뒤쳐져 있으며, 전세계적인 차원에서 고해상도가 그렇게 중요하지 않습니다. "world2"("2"는 [0,360]으로의 이동을위한 것임)를 사용하는 것은 아마도 글로벌지도 에서처럼 잘 보일 것입니다.

아주 가까운 장래에 "지도"의 다음 버전으로 추가 데이터 세트가 필요없는 위도의 이동이 훨씬 쉬워 질 것이라고 덧붙일 수 있습니다.

관련 문제