# new version
library(rbokeh)
library(data.table)
ymdhmStr <- '201607180000'
elenm <- 'PRE_1h'
elenms <- c("PRS", "PRS_Sea", "TEM", "DPT", "RHU", "VAP", "PRE_1h", "WIN_D_Avg_2mi", "WIN_S_Avg_2mi",
"GST", "T_5cm", "T_10cm", "T_15cm", "T_20cm", "T_40cm", "U", "V", "QSE",
"GTEM","VISM","DDDMAX","FFMAX","PRE_10m","PRE_5mprev","PRE_5mpost")
vnms <- c("V1","V2","V3","V4","V5","V6","V7","V8","V9","V10",
"V11","V12","V13","V14","V15","V16","V17","V18","V19","V20",
"V21","V22","V23","V24","V25","V26","V27","V28","V29","V30")
csvnms <- c("ymdhm","sta","lat","lon","alt",elenms)
ssnms <- c("ymdhm","cnm","bias","rmse","cor","nsamp")
ymdhms <- c(substr(ymdhmStr,1,4),substr(ymdhmStr,1,8))
eleIdx <- match(elenm,elenms)
vnm <- vnms[match(elenm,csvnms)]
fnmReal <- sprintf("/data/calf/csv/eleh/csvreal/%s/%s/%s.csv",
ymdhms[1],ymdhms[2],ymdhmStr)
fnmFit <- sprintf("/data/calf/csv/eleh/csvfit/%s/%s/%s.csv",
ymdhms[1],ymdhms[2],ymdhmStr)
fnmStats<- sprintf("/data/calf/logs/RMSE/%s/%s/%s.txt",
ymdhms[1],ymdhms[2],ymdhmStr)
if (file.exists(fnmReal) & file.exists(fnmFit) & file.exists(fnmStats) ){
print('all file exists')
} else {
stop('some file not exists !')
}
dReal <- fread(fnmReal,select=c('V2',vnm))
names(dReal) <- c('sta','V2')
dFit <- fread(fnmFit,select=c('V2',vnm))
names(dFit) <- c('sta','V2')
ss0 <- read.csv(fnmStats,header = F)
ss1 <- ss0[eleIdx,] #提取统计向量
std <- ss1[4] #均方根误擦
names(ss1) <- ssnms
rf0 <- merge(dReal,dFit,by='sta')
rf <- subset(rf0, !is.nan(rf0$V2.x) & !is.nan(rf0$V2.y) )
tReal <- rf$V2.x
tFit <- rf$V2.y
tmm <- c(min(tFit,na.rm = T),max(tFit,na.rm = T))
m <- sprintf("%s,%s,%s=%s,%s=%s,%s=%s,%s=%s,"
,ss1[1],elenm,ssnms[3],ss1[3],ssnms[4],ss1[4],ssnms[5],ss1[5],ssnms[6],ss1[6])
# z <- lm(tReal ~ tFit)
figure(width = 800, height = 600,title=m,xlab=elenm,ylab='拟合') %>%
ly_points(tReal, tFit,size=2) %>%
ly_lines(tmm, tmm, type = 1, legend = "理想线",color = "black")
##########################################################
# install.packages('ROCR')
library(gplots)
library(ROCR)
lb <- as.integer(tReal >= 0.1)
pred <- prediction(tFit, lb)
perf <- performance(pred,"tpr","fpr")
plot(perf,colorize=TRUE)
评论