看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 這筆資料為2010年全球的降雨資料,資料可從這裡取得:http://0rz.tw/JI056,下面的程 式碼是已經取特定的經緯度範圍(東亞)做月平均的降雨計算所畫出來的圖,我想請教的是 要怎麼做才能畫出經緯度範圍只有東亞這塊(也就是把旁邊地圖空白的部分都去除)?? 我試過改image的經緯度範圍,但是會出現變數(precip1)的長度不等於經度乘上緯度的錯 誤訊息,而把變數(precip1)的長度設成跟經緯度一樣或是在計算月平均時就放進跟選取 特定經緯度的範圍一樣大的矩陣裡也不行,還是一開始在讀降雨這個變數時就只讀進特定 的區域也不行,下面加上#號的程式碼是我上述試的方法,如果這些方法是有可行的,只 是程式碼寫的不對,還煩請各位大大給予指點,謝謝。 [程式範例]: rm(list=ls()) library(ncdf4) library(data.table) TRMM_data <- "C:\\Users\\TOM\\Desktop\\R(資料庫)\\TRMM資料\\trmm_2010.nc" obs <- nc_open(TRMM_data) print(obs) lon <- ncvar_get(obs,"lon") nlon <- dim(lon) lat <- ncvar_get(obs,"lat",verbose = F) nlat <- dim(lat) #lon <- seq(60,150,by=0.25) #lat <- seq(-15,60,by=0.25) time <- ncvar_get(obs,"time") tunits <- ncatt_get(obs, "time", "units") precip <- ncvar_get(obs,"r") #precip <- ncvar_get(obs,"r",start=c(240,140,1),count=c(361,261,365)) nc_close(obs) time <- as.Date(time / 24, format = "%Y-%m-%d", origin = "2010-01-01") #precip1 <- matrix(NA_real_,361,261) precip1 <- matrix(NA_real_,1440,400) for(i in c(240:600)){ for(j in c(140:400)){ precip1[i,j] <- mean(precip[i,j,time=(1:31)]) } } library(sp) library(RColorBrewer) library(maps) #lon <- seq(60,150,by=0.25) #lat <- seq(-15,60,by=0.25) #nlon <- 361L #nlat <- 261L image(lon,lat,precip1,col=rev(brewer.pal(10,"RdBu"))) #image(lon=c(60,150),lat=c(-15,60),precip1,col=rev(brewer.pal(10,"RdBu"))) #precip2 <- matrix(precip1,ncol=length(lat),nrow=length(lon),byrow=F) #image(lon,lat,precip2,col=rev(brewer.pal(10,"RdBu"))) map(database='world2',add= TRUE) #map(database='world2',xlim=c(60,150),ylim=c(-15,60),add= TRUE) [環境敘述]: https://imgur.com/a/RW1YjV0 [關鍵字]: 畫圖 特定區域 nc檔 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.136.193.182 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1541664493.A.4EE.html
andrew43: 看一下image()中xlim和ylim這二個參數怎麼用 11/08 16:43
andrew43: 簡單來說,你不用預先為了特定區域而改變計算任何code 11/08 16:44
andrew43: 只要限制image()的xlim和ylim就好了。或許再加上asp=1。 11/08 16:46
AndrewShi: andrew大~好像畫不出來,畫出來是下圖這樣子,且有等了 11/08 18:35
AndrewShi: 超過10分鐘,圖還是這樣(空白)。 11/08 18:35
AndrewShi: https://imgur.com/pzSSKip 11/08 18:36
andrew43: 我在image()中加了xlim和ylim後,直到map()都一切正常 11/08 18:39
AndrewShi: 阿...我知道了,lon和lat不能刪掉,xlim和ylim加在後 11/08 18:41
AndrewShi: 面就好,謝謝andrew大^^ 11/08 18:41