R_Language 板


LINE

#ncfile 读出是一个多维矩阵,你用temp[1:4]当然只会读出4笔 以下供参 #你可以针对每一次 (1:4)都画一次,在这里我不确定你要的操作,我取平均 #OB library(ncdf4) #library(magrittr) #library(lubridate) #library(units) infile <- "D:/Env/air/air.2m.mon.mean.nc" nx0 <- nc_open(infile) print(nx0) air <- ncvar_get(nx0, "air") latx0<- ncvar_get(nx0, "lat") lngx0<- ncvar_get(nx0, "lon") #time<- ncvar_get(nx0, "time") #tattr <- ncatt_get(nx0, "time") #get attributes #units(time) <- make_unit(tattr$units) #datex<- as.POSIXct(time) %>% as.Date(origin="1800-01-01 00:00") #:0.0") #lvl <- ncvar_get(nx0, "level") mair <- apply(air[,,1:4],c(1,2),function(x) mean(x-273.15, na.rm=T)) zt=matrix(mair,ncol=length(latx0),nrow=length(lngx0),byrow=F) image(x=lngx0-180,y=rev(latx0),z=zt[,ncol(zt):1], col = colorRamps::blue2red(128)) #rainbow(128)[50:128]) ※ 引述《AndrewShi (没有你的我)》之铭言: : ※ 引述《AndrewShi (没有你的我)》之铭言: : : [问题类型]: : : 程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来) : : [软体熟悉度]: : : 入门(写过其他程式,只是对语法不熟悉) : : [问题叙述]: : : 这是一个全球温度的资料(nc档),时间总共有467笔,我想利用R画出前4笔的全球温度图 : : ,所以 写了一个简单的while回圈,但到了要image的时候就跑出了这个error,所以想请问大大 : : 们这个error是什麽意思,以及我该如何解决??谢谢~ : : [程式范例]: : : https://i.imgur.com/JlqAFxw.jpg : : https://i.imgur.com/fLzCmiC.jpg : 以下为资料来源与程式码: : 资料来源: : https://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanalysis2.pressure.html : Air Temperature - Monthly Mean - 按图示 -->里面的最後一笔资料 : 程式码: : rm(list=ls()) : library(ncdf4) : air.nc<-nc_open("C:\\Users\\TOM\\Desktop\\R(资料库)\\air.2m.mon.mean.nc") : air.nc : "file C:\\Users\\TOM\\Desktop\\R(资料库)\\air.2m.mon.mean.nc has 5 : dimensions:" : "lon Size:144" : "lat Size:73" : "level Size:17" : "nbnds Size:2" : "time Size:467" : "file C:\\Users\\TOM\\Desktop\\R(资料库)\\air.2m.mon.mean.nc has 2 variables" : "short air[lon,lat,level,time] Longname:Air temperature Missval:-32767" : "short head[level,time] Longname:Missing Missval:NA" : temp.nc<-nc_open("C:\\Users\\TOM\\Desktop\\R(资料库)\\air.2m.mon.mean.nc") : temp<-ncvar_get(temp.nc,"air") : temp[temp=="-32767"]<-NA : temp.nc$dim$lon$vals -> lon : temp.nc$dim$lat$vals -> lat : temp.nc$dim$level$vals -> lev : temp.nc$dim$nbnds$vals -> nbnds : temp.nc$dim$time$vals -> time : lat<-rev(lat) : i<-1 : while(i<5){ : print(temp[i]) : i<-i+1 : } : time="i"<-temp[i] : lon<-lon-180 : temp<-(time="i") : temp<-matrix(c("i"=1:4)) : image(lon,lat,matrix(temp,ncol=length(lat),nrow=length(lon),byrow=F)) : library(sp) : library(maptools) : gpclibPermit() : data(wrld_simpl) : plot(wrld_simpl,add=TRUE) --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.65.48
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1526354622.A.065.html
1F:推 AndrewShi: cywhale大~非常谢谢你,想请问你是把前4笔时间的温度去 05/15 15:04
2F:→ AndrewShi: 做平均再画出图的吗?!可以请教你如果我想画出前四笔时 05/15 15:04
3F:→ AndrewShi: 间各别的温度图(4张图)的话,时间的部分我该怎麽写呢?? 05/15 15:04
4F:→ AndrewShi: 谢谢~ 05/15 15:04
5F:→ cywhale: 被我mark的就是时间 datex[i]就可以抓到你要的日期不是? 05/15 16:28
6F:→ cywhale: 我顺手做了一版data.table + ggplot.. 如果需要可以参考 05/15 16:30
7F:→ cywhale: https://goo.gl/5jdY7t 05/15 16:31
8F:推 AndrewShi: 了解~不过我在设定时间(写回圈)的时候,还是有出现erro 05/16 17:30
9F:→ AndrewShi: r,不写回圈是可以画出4张图,但是我不知道怎麽在image 05/16 17:30
10F:→ AndrewShi: 里加上时间的指定,所以画出来的4张图感觉都是同一笔 05/16 17:30
11F:→ AndrewShi: 资料,抱歉,cywhale大,我是因为研究需要用到R,所以 05/16 17:30
12F:→ AndrewShi: 现在才开始学R(新手),以下是我修改的程式码和出现的er 05/16 17:30
13F:→ AndrewShi: ror,如果你有空也愿意的话烦请你再帮我看看罗,谢谢你 05/16 17:30
14F:→ AndrewShi: 真的帮助我很多(已跪XD 05/16 17:30
15F:推 AndrewShi: https://i.imgur.com/JKidXzW.jpg 05/16 17:32
16F:→ AndrewShi: https://i.imgur.com/xB8yhpP.jpg 05/16 17:32
17F:→ cywhale: 在R打? image可以看到此指令参数,并无mfrow,你还多传 05/16 20:26
18F:→ cywhale: 一个datex,你要给image哪个参数? datex若是vector 没有 05/16 20:27
19F:→ cywhale: datex["i"=1]这种写法..你必须去看R基础中关於vector取值 05/16 20:28
20F:→ cywhale: 我写的程式应该可以直接run 你可以把值print出来 datex和 05/16 20:29
21F:→ cywhale: air[,,]第三个维度是相同size, 所以你要哪个日期,比如在 05/16 20:30
22F:→ cywhale: datex[5]这个日期,取air[,,5]即是所有经纬度当次日期的 05/16 20:31
23F:→ cywhale: 温度值... 05/16 20:32
24F:推 AndrewShi: cywhale大~像是改成这样(到for回圈结束)吗?!不过我改 05/19 02:36
25F:→ AndrewShi: 成这样它画出来的4张图都是画在同一个位置... 05/19 02:36
26F:→ AndrewShi: https://i.imgur.com/hh69JQW.jpg 05/19 02:37
27F:→ cywhale: https://goo.gl/5jdY7t 最末更新 par设定画布要在loop外 05/19 11:20
28F:→ cywhale: 你单画一张,不用取平均 air[,,i]取值即可 05/19 11:21
29F:→ cywhale: 画地图的方式用你原来的即可 我只是用我惯用的 05/19 11:21
30F:→ cywhale: 要给code时最好还是有文字连结 有很多免费资源可以贴code 05/19 11:22
31F:→ cywhale: 只贴图档,只怕许多版上朋友看了也懒得重打难以测试 05/19 11:23
32F:→ cywhale: 另外连结ggplot 也更新加上地图 效果就跟你要的for-loop 05/19 11:36
33F:→ cywhale: 一样,不考虑跳ggplot吗XD 05/19 11:37
34F:推 AndrewShi: 了解~不过cywhale大,不取平均画出来的全球温度图色调 05/19 19:11
35F:→ AndrewShi: 都是一样的,感觉怪怪的,那个mean(x-273)是指把第一 05/19 19:11
36F:→ AndrewShi: 笔时间的温度扣掉所有时间的平均还是指其他意思呢??另 05/19 19:11
37F:→ AndrewShi: 外我只知道ggplot2是R里面的一个绘图套件,它跟R内建 05/19 19:11
38F:→ AndrewShi: 的绘图功能有什麽差别吗 :)??谢谢~ 05/19 19:11
39F:→ cywhale: 范例用i in 1:4 时间相近 画出来当然都很像>< ..如果你 05/19 20:03
40F:→ cywhale: 随意找几个时间点画就不会像了比如i in c(1,101,224,455) 05/19 20:04
41F:→ cywhale: nc档给的是degree K 我改成degree C 所以-273不是? R是以 05/19 20:06
42F:→ cywhale: 向量操作为思维,所以x是向量就会全减,你若怀疑就自己 05/19 20:07
43F:→ cywhale: print值debug看看,就画图而言也不一定要减,配色是相对 05/19 20:08
44F:→ cywhale: 值区段去配..ggplot2太多教学,我就不赘言,有兴趣网路找 05/19 20:09
45F:推 AndrewShi: cywhale大~我的意思是有加mean(x-273)时,画出来的前四 05/19 23:04
46F:→ AndrewShi: 笔时间的图是有差别的,但如果把mean(x-273)去掉後,画 05/19 23:04
47F:→ AndrewShi: 出来的前四笔时间的图色调都一样(全球都单一色调),所 05/19 23:04
48F:→ AndrewShi: 以我不太懂mean是做什麽的平均@@,以及不加mean全球的 05/19 23:04
49F:→ AndrewShi: 温度应该也不可能是单一温度(色调),而至於ggplot2, 05/19 23:04
50F:→ AndrewShi: 我不是伸手要教学,只是好奇一样都是画出一样的图但却 05/19 23:04
51F:→ AndrewShi: 要打更多的程式码,是因为它的绘图功能比较强大能把图 05/19 23:04
52F:→ AndrewShi: 画的更精细吗?!只是好奇它跟R内建的绘图功能有什麽差别 05/19 23:04
53F:→ AndrewShi: 而已~谢谢 05/19 23:04







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP