cdtMainContextMenu <- function(){
xml.menu <- file.path(.cdtDir$dirLocal, "languages", "cdt_menu_bar.xml")
lang.menu <- cdtLanguageParse.menu(xml.menu, .cdtData$Config$lang.iso)
top.menu <- tkmenu(.cdtEnv$tcl$main$win, tearoff = FALSE)
tkconfigure(.cdtEnv$tcl$main$win, menu = top.menu)
####################################
menu.file <- tkmenu(top.menu, tearoff = FALSE, relief = "flat")
tkadd(top.menu, "cascade", label = lang.menu[["file"]][["0"]], menu = menu.file, activebackground = 'lightblue')
##########
tkadd(menu.file, "command", label = lang.menu[["file"]][["1"]],
command = function()
{
on.exit({
tkconfigure(.cdtEnv$tcl$main$win, cursor = '')
tcl('update')
})
tkconfigure(.cdtEnv$tcl$main$win, cursor = 'watch')
tcl('update')
## refresh to avoid the errors
## Error in try(<environment>()) : attempt to apply non-function
## Error in (function () : 'rho' must be an environment not language: detected in C-level eval
## Error in try(NULL()) : attempt to apply non-function
refreshCDT(staterun = "disabled")
dat.opfiles <- getOpenFiles(.cdtEnv$tcl$main$win)
if(!is.null(dat.opfiles)) update.OpenFiles('ascii', dat.opfiles)
})
##########
tkadd(menu.file, "command", label = lang.menu[["file"]][["2"]],
command = function()
{
on.exit({
tkconfigure(.cdtEnv$tcl$main$win, cursor = '')
tcl('update')
})
tkconfigure(.cdtEnv$tcl$main$win, cursor = 'watch')
tcl('update')
refreshCDT(staterun = "disabled")
nc.opfiles <- getOpenNetcdf(.cdtEnv$tcl$main$win)
if(!is.null(nc.opfiles)) update.OpenFiles('netcdf', nc.opfiles)
})
##########
tkadd(menu.file, "command", label = lang.menu[["file"]][["3"]],
command = function()
{
on.exit({
tkconfigure(.cdtEnv$tcl$main$win, cursor = '')
tcl('update')
})
tkconfigure(.cdtEnv$tcl$main$win, cursor = 'watch')
tcl('update')
refreshCDT(staterun = "disabled")
shp.opfiles <- getOpenShp(.cdtEnv$tcl$main$win)
if(!is.null(shp.opfiles)) update.OpenFiles('shp', shp.opfiles)
})
##########
tkadd(menu.file, "separator")
##########
tkadd(menu.file, "command", label = lang.menu[["file"]][["4"]],
command = function()
{
if(length(.cdtData$OpenTab$Type) == 0) return(NULL)
tabid <- as.integer(tclvalue(tkindex(.cdtEnv$tcl$main$tknotes, 'current'))) + 1
arrTypes <- c("arr", "chkcrds", "falsezero", "outqc", "outhom")
if(!.cdtData$OpenTab$Type[[tabid]] %in% arrTypes) return(NULL)
tab2sav <- try(Save_Notebook_Tab_Array(), silent = TRUE)
if(!inherits(tab2sav, "try-error")){
if(!is.null(tab2sav))
Insert.Messages.Out(.cdtEnv$tcl$lang$global[['message']][['3']], TRUE, "s")
}else{
Insert.Messages.Out(.cdtEnv$tcl$lang$global[['message']][['2']], TRUE, 'e')
Insert.Messages.Out(gsub('[\r\n]', '', tab2sav[1]), TRUE, 'e')
}
})
##########
tkadd(menu.file, "command", label = lang.menu[["file"]][["5"]],
command = function()
{
Save_Table_As()
})
##########
tkadd(menu.file, "command", label = lang.menu[["file"]][["6"]],
command = function()
{
if(length(.cdtData$OpenTab$Type)){
tabid <- as.integer(tclvalue(tkindex(.cdtEnv$tcl$main$tknotes, 'current'))) + 1
if(.cdtData$OpenTab$Type[[tabid]] == "img") SavePlot()
tkfocus(.cdtEnv$tcl$main$win)
}
})
##########
tkadd(menu.file, "separator")
##########
tkadd(menu.file, "command", label = lang.menu[["file"]][["7"]],
command = function()
{
refreshCDT(staterun = "disabled")
cdtConfiguration(.cdtEnv$tcl$main$win)
})
##########
tkadd(menu.file, "separator")
##########
tkadd(menu.file, "command", label = lang.menu[["file"]][["8"]],
command = function()
{
on.exit({
rm(list = ls(envir = .cdtData), envir = .cdtData)
.cdtEnv$tcl <- NULL
options(warn = 0)
})
## stop openFiles listener
tcl("after", "cancel", .cdtEnv$tcl$task_openFiles$id)
refreshCDT()
tkdestroy(.cdtEnv$tcl$main$win)
})
####################################
menu.dataprep <- tkmenu(top.menu, tearoff = FALSE, relief = "flat")
tkadd(top.menu, "cascade", label = lang.menu[["data.preparation"]][["0"]], menu = menu.dataprep, activebackground = 'lightblue')
##########
tkadd(menu.dataprep, "command", label = lang.menu[["data.preparation"]][["1"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('cdtInput.stn', 'daily')
Format_CDT_Input_Station_Data()
})
##########
tkadd(menu.dataprep, "separator")
##########
menu.cdt.data <- tkmenu(top.menu, tearoff = FALSE)
tkadd(menu.dataprep, "cascade", label = lang.menu[["data.preparation"]][["2"]], menu = menu.cdt.data)
##########
tkadd(menu.cdt.data, "command", label = lang.menu[["data.preparation"]][["2-1"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('combineCDT.stn', 'daily')
merge2CDTdata_getParams()
})
########
tkadd(menu.cdt.data, "separator")
##########
tkadd(menu.cdt.data, "command", label = lang.menu[["data.preparation"]][["2-2"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('filter.data', 'daily')
filterCDTData_getParams()
})
########
tkadd(menu.cdt.data, "separator")
##########
tkadd(menu.cdt.data, "command", label = lang.menu[["data.preparation"]][["2-3"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('selectCDT.data', 'daily')
selectCDTData_getParams()
})
##########
tkadd(menu.dataprep, "separator")
##########
tkadd(menu.dataprep, "command", label = lang.menu[["data.preparation"]][["3"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
AssessDataPanelCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
##########
tkadd(menu.dataprep, "separator")
##########
menu.dataDown <- tkmenu(top.menu, tearoff = FALSE)
tkadd(menu.dataprep, "cascade", label = lang.menu[["data.preparation"]][["6"]], menu = menu.dataDown)
##########
tkadd(menu.dataDown, "command", label = lang.menu[["data.preparation"]][["6-1"]],
command = function()
{
refreshCDT(staterun = "disabled")
initialize.parameters('down.DEM')
download_DEM()
})
########
tkadd(menu.dataDown, "separator")
##########
tkadd(menu.dataDown, "command", label = lang.menu[["data.preparation"]][["6-2"]],
command = function()
{
refreshCDT(staterun = "disabled")
initialize.parameters('down.SHP')
download_CountryShapefile()
})
########
tkadd(menu.dataDown, "separator")
##########
tkadd(menu.dataDown, "command", label = lang.menu[["data.preparation"]][["6-3"]],
command = function()
{
refreshCDT(staterun = "disabled")
initialize.parameters('down.RFE')
download_RFE()
})
########
tkadd(menu.dataDown, "separator")
##########
tkadd(menu.dataDown, "command", label = lang.menu[["data.preparation"]][["6-4"]],
command = function()
{
refreshCDT(staterun = "disabled")
initialize.parameters('down.Reanal')
download_Reanalysis()
})
########
tkadd(menu.dataDown, "separator")
##########
tkadd(menu.dataDown, "command", label = lang.menu[["data.preparation"]][["6-5"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('exGRIB.JRA.NRT')
extractGRIB_JRA_NRT()
})
########
tkadd(menu.dataDown, "separator")
##########
tkadd(menu.dataDown, "command", label = lang.menu[["data.preparation"]][["6-6"]],
command = function()
{
refreshCDT(staterun = "disabled")
initialize.parameters('downElv.Reanal')
download_Elevation_Reanalysis()
})
########
tkadd(menu.dataDown, "separator")
##########
tkadd(menu.dataDown, "command", label = lang.menu[["data.preparation"]][["6-7"]],
command = function()
{
refreshCDT(staterun = "disabled")
initialize.parameters('build.wgrib')
build_wgrib_info()
})
##########
tkadd(menu.dataprep, "separator")
########
menu.AggrData <- tkmenu(top.menu, tearoff = FALSE)
tkadd(menu.dataprep, "cascade", label = lang.menu[["data.preparation"]][["7"]], menu = menu.AggrData)
##########
tkadd(menu.AggrData, "command", label = lang.menu[["data.preparation"]][["7-1"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('aggregate.ts', 'daily')
AggregateTS_GetInfo()
})
###########
tkadd(menu.AggrData, "separator")
##########
tkadd(menu.AggrData, "command", label = lang.menu[["data.preparation"]][["7-4"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('aggregate.minmax', 'daily')
AggregateTS_minmax_GetInfo()
})
###########
tkadd(menu.AggrData, "separator")
##########
tkadd(menu.AggrData, "command", label = lang.menu[["data.preparation"]][["7-3"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('aggregate.rf', 'daily')
AggregateMWin_GetInfo()
})
##########
tkadd(menu.dataprep, "separator")
##########
tkadd(menu.dataprep, "command", label = lang.menu[["data.preparation"]][["7-2"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('aggregate.nc')
AggregateNcdf_GetInfo()
})
##########
tkadd(menu.dataprep, "separator")
##########
tkadd(menu.dataprep, "command", label = lang.menu[["data.preparation"]][["4"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('create.CdtDataset', 'dekadal')
cdtDataset_getParams()
})
##########
tkadd(menu.dataprep, "separator")
#########
tkadd(menu.dataprep, "command", label = lang.menu[["data.preparation"]][["10"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
ExtractDataPanelCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
##########
tkadd(menu.dataprep, "separator")
##########
tkadd(menu.dataprep, "command", label = lang.menu[["data.preparation"]][["13"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('data.Operation')
dataOperation_GetInfo()
})
##########
tkadd(menu.dataprep, "separator")
##########
tkadd(menu.dataprep, "command", label = lang.menu[["data.preparation"]][["5"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('split.NetCDF')
split_3d.netcdf_getParams()
})
##########
tkadd(menu.dataprep, "separator")
##########
tkadd(menu.dataprep, "command", label = lang.menu[["data.preparation"]][["12"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('combine.NetCDF')
combine.netcdf_getParams()
})
##########
tkadd(menu.dataprep, "separator")
##########
tkadd(menu.dataprep, "command", label = lang.menu[["data.preparation"]][["11"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('blank.NetCDF')
blankNcdf_GetInfo()
})
##########
tkadd(menu.dataprep, "separator")
##########
menu.dataConv <- tkmenu(top.menu, tearoff = FALSE)
tkadd(menu.dataprep, "cascade", label = lang.menu[["data.preparation"]][["9"]], menu = menu.dataConv)
########
tkadd(menu.dataConv, "command", label = lang.menu[["data.preparation"]][["9-1"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('convert.CPTdata', 'daily')
CPT.convert_getParams()
})
########
tkadd(menu.dataConv, "separator")
########
tkadd(menu.dataConv, "command", label = lang.menu[["data.preparation"]][["9-2"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('convert.nc.tif.bil', 'daily')
rasterData.convert_getParams()
})
########
tkadd(menu.dataConv, "separator")
########
tkadd(menu.dataConv, "command", label = lang.menu[["data.preparation"]][["9-3"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('grads.ctl', 'daily')
grads_create.ctl_getParams()
})
####################################
menu.qchom <- tkmenu(top.menu, tearoff = FALSE, relief = "flat")
tkadd(top.menu, "cascade", label = lang.menu[["quality.control"]][["0"]], menu = menu.qchom, activebackground = 'lightblue')
##########
tkadd(menu.qchom, "command", label = lang.menu[["quality.control"]][["1"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
StnChkCoordsPanelCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
##########
tkadd(menu.qchom, "separator")
##########
tkadd(menu.qchom, "command", label = lang.menu[["quality.control"]][["2"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
qcRRZeroCheckPanelCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
##########
tkadd(menu.qchom, "separator")
##########
tkadd(menu.qchom, "command", label = lang.menu[["quality.control"]][["3"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
qcRROutlierCheckPanelCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
##########
tkadd(menu.qchom, "separator")
##########
tkadd(menu.qchom, "command", label = lang.menu[["quality.control"]][["4"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
qcTTOutlierCheckPanelCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
##########
tkadd(menu.qchom, "separator")
##########
tkadd(menu.qchom, "command", label = lang.menu[["quality.control"]][["5"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
testHomogeneityPanelCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
####################################
menu.mrg <- tkmenu(top.menu, tearoff = FALSE, relief = "flat")
tkadd(top.menu, "cascade", label = lang.menu[["merging.data"]][["0"]], menu = menu.mrg, activebackground = 'lightblue')
##########
tkadd(menu.mrg, "command", label = lang.menu[["merging.data"]][["1"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
SpatialInterpPanelCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
##########
tkadd(menu.mrg, "separator")
###########
menu.mrg.var <- tkmenu(top.menu, tearoff = FALSE)
tkadd(menu.mrg, "cascade", label = lang.menu[["merging.data"]][["2"]], menu = menu.mrg.var)
###########
menu.mrg.rain <- tkmenu(menu.mrg, tearoff = FALSE)
tkadd(menu.mrg.var, "cascade", label = lang.menu[["merging.data"]][["2-1"]], menu = menu.mrg.rain)
##########
tkadd(menu.mrg.rain, "command", label = lang.menu[["merging.data"]][["3-2"]], background = 'lightblue',
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('coefbias.rain', 'dekadal')
biasCoeffGetInfoClimData()
})
########
tkadd(menu.mrg.rain, "separator")
##########
tkadd(menu.mrg.rain, "command", label = lang.menu[["merging.data"]][["3-3"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('rmbias.rain', 'dekadal')
removeBiasGetInfoClimData()
})
########
tkadd(menu.mrg.rain, "separator")
##########
tkadd(menu.mrg.rain, "command", label = lang.menu[["merging.data"]][["3-4"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('merge.rain', 'dekadal')
mergeGetInfoClimData()
})
##########
tkadd(menu.mrg.var, "separator")
###########
menu.mrg.temp <- tkmenu(menu.mrg, tearoff = FALSE)
tkadd(menu.mrg.var, "cascade", label = lang.menu[["merging.data"]][["2-2"]], menu = menu.mrg.temp)
##########
tkadd(menu.mrg.temp, "command", label = lang.menu[["merging.data"]][["2-2-1"]], background = 'lightblue',
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('coefdown.temp', 'dekadal')
Temp_coefDownGetInfo()
})
########
tkadd(menu.mrg.temp, "separator")
##########
tkadd(menu.mrg.temp, "command", label = lang.menu[["merging.data"]][["3-1"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('down.temp', 'dekadal')
Temp_reanalDownGetInfo()
})
########
tkadd(menu.mrg.temp, "separator")
##########
tkadd(menu.mrg.temp, "command", label = lang.menu[["merging.data"]][["3-2"]], background = 'lightblue',
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('coefbias.temp', 'dekadal')
biasCoeffGetInfoClimData()
})
########
tkadd(menu.mrg.temp, "separator")
##########
tkadd(menu.mrg.temp, "command", label = lang.menu[["merging.data"]][["3-3"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('rmbias.temp', 'dekadal')
removeBiasGetInfoClimData()
})
########
tkadd(menu.mrg.temp, "separator")
##########
tkadd(menu.mrg.temp, "command", label = lang.menu[["merging.data"]][["3-4"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('merge.temp', 'dekadal')
mergeGetInfoClimData()
})
##########
tkadd(menu.mrg.var, "separator")
###########
menu.mrg.rh <- tkmenu(menu.mrg, tearoff = FALSE)
tkadd(menu.mrg.var, "cascade", label = lang.menu[["merging.data"]][["2-3"]], menu = menu.mrg.rh)
##########
tkadd(menu.mrg.rh, "command", label = lang.menu[["merging.data"]][["3-1"]],
command = function()
{
refreshCDT(staterun = "normal")
# initialize.parameters('down.rh', 'dekadal')
# down()
})
########
tkadd(menu.mrg.rh, "separator")
##########
tkadd(menu.mrg.rh, "command", label = lang.menu[["merging.data"]][["3-2"]], background = 'lightblue',
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('coefbias.rh', 'daily')
biasCoeffGetInfoClimData()
})
########
tkadd(menu.mrg.rh, "separator")
##########
tkadd(menu.mrg.rh, "command", label = lang.menu[["merging.data"]][["3-3"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('rmbias.rh', 'daily')
removeBiasGetInfoClimData()
})
########
tkadd(menu.mrg.rh, "separator")
##########
tkadd(menu.mrg.rh, "command", label = lang.menu[["merging.data"]][["3-4"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('merge.rh', 'daily')
mergeGetInfoClimData()
})
##########
tkadd(menu.mrg.var, "separator")
###########
menu.mrg.pres <- tkmenu(menu.mrg, tearoff = FALSE)
tkadd(menu.mrg.var, "cascade", label = lang.menu[["merging.data"]][["2-4"]], menu = menu.mrg.pres)
##########
tkadd(menu.mrg.pres, "command", label = lang.menu[["merging.data"]][["3-1"]],
command = function()
{
refreshCDT(staterun = "normal")
# initialize.parameters('down.pres', 'daily')
# down()
})
########
tkadd(menu.mrg.pres, "separator")
##########
tkadd(menu.mrg.pres, "command", label = lang.menu[["merging.data"]][["3-2"]], background = 'lightblue',
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('coefbias.pres', 'daily')
biasCoeffGetInfoClimData()
})
########
tkadd(menu.mrg.pres, "separator")
##########
tkadd(menu.mrg.pres, "command", label = lang.menu[["merging.data"]][["3-3"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('rmbias.pres', 'daily')
removeBiasGetInfoClimData()
})
########
tkadd(menu.mrg.pres, "separator")
##########
tkadd(menu.mrg.pres, "command", label = lang.menu[["merging.data"]][["3-4"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('merge.pres', 'daily')
mergeGetInfoClimData()
})
##########
tkadd(menu.mrg.var, "separator")
###########
menu.mrg.rad <- tkmenu(menu.mrg, tearoff = FALSE)
tkadd(menu.mrg.var, "cascade", label = lang.menu[["merging.data"]][["2-6"]], menu = menu.mrg.rad)
##########
tkadd(menu.mrg.rad, "command", label = lang.menu[["merging.data"]][["3-1"]],
command = function()
{
refreshCDT(staterun = "normal")
# initialize.parameters('down.rad', 'dekadal')
# down()
})
########
tkadd(menu.mrg.rad, "separator")
##########
tkadd(menu.mrg.rad, "command", label = lang.menu[["merging.data"]][["3-2"]], background = 'lightblue',
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('coefbias.rad', 'daily')
biasCoeffGetInfoClimData()
})
########
tkadd(menu.mrg.rad, "separator")
##########
tkadd(menu.mrg.rad, "command", label = lang.menu[["merging.data"]][["3-3"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('rmbias.rad', 'daily')
removeBiasGetInfoClimData()
})
########
tkadd(menu.mrg.rad, "separator")
##########
tkadd(menu.mrg.rad, "command", label = lang.menu[["merging.data"]][["3-4"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('merge.rad', 'daily')
mergeGetInfoClimData()
})
##########
tkadd(menu.mrg.var, "separator")
###########
menu.mrg.wind <- tkmenu(menu.mrg, tearoff = FALSE)
tkadd(menu.mrg.var, "cascade", label = lang.menu[["merging.data"]][["2-5"]], menu = menu.mrg.wind)
##########
tkadd(menu.mrg.wind, "command", label = lang.menu[["merging.data"]][["3-1"]],
command = function()
{
refreshCDT(staterun = "normal")
# initialize.parameters('down.wind', 'dekadal')
# down()
})
########
tkadd(menu.mrg.wind, "separator")
##########
tkadd(menu.mrg.wind, "command", label = lang.menu[["merging.data"]][["3-2"]], background = 'lightblue',
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('coefbias.wind', 'daily')
biasCoeffGetInfoWind()
})
########
tkadd(menu.mrg.wind, "separator")
##########
tkadd(menu.mrg.wind, "command", label = lang.menu[["merging.data"]][["3-3"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('rmbias.wind', 'daily')
removeBiasGetInfoWind()
})
########
tkadd(menu.mrg.wind, "separator")
##########
tkadd(menu.mrg.wind, "command", label = lang.menu[["merging.data"]][["3-4"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('merge.wind', 'daily')
mergeGetInfoWind()
})
##########
tkadd(menu.mrg, "separator")
##########
tkadd(menu.mrg, "command", label = lang.menu[["merging.data"]][["5"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('scale.merged', 'daily')
Merging_ScaleDataInfo()
})
##########
tkadd(menu.mrg, "separator")
###########
menu.mrg.loocv <- tkmenu(top.menu, tearoff = FALSE)
tkadd(menu.mrg, "cascade", label = lang.menu[["merging.data"]][["6"]], menu = menu.mrg.loocv)
########
tkadd(menu.mrg.loocv, "command", label = lang.menu[["merging.data"]][["2-1"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('crossv.rain', 'dekadal')
crossValidationInfoClimData()
})
########
tkadd( menu.mrg.loocv, "separator")
########
tkadd(menu.mrg.loocv, "command", label = lang.menu[["merging.data"]][["2-2"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('crossv.temp', 'dekadal')
crossValidationInfoClimData()
})
########
tkadd( menu.mrg.loocv, "separator")
########
tkadd(menu.mrg.loocv, "command", label = lang.menu[["merging.data"]][["2-3"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('crossv.rh', 'dekadal')
crossValidationInfoClimData()
})
########
tkadd( menu.mrg.loocv, "separator")
########
tkadd(menu.mrg.loocv, "command", label = lang.menu[["merging.data"]][["2-4"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('crossv.pres', 'dekadal')
crossValidationInfoClimData()
})
########
tkadd( menu.mrg.loocv, "separator")
########
tkadd(menu.mrg.loocv, "command", label = lang.menu[["merging.data"]][["2-6"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('crossv.rad', 'dekadal')
crossValidationInfoClimData()
})
########
tkadd( menu.mrg.loocv, "separator")
########
tkadd(menu.mrg.loocv, "command", label = lang.menu[["merging.data"]][["2-5"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('crossv.wind', 'dekadal')
crossValidationInfoWind()
})
# ##########
# tkadd(menu.mrg, "separator")
# ##########
# tkadd(menu.mrg, "command", label = lang.menu[["merging.data"]][["7"]],
# command = function()
# {
# refreshCDT()
# spinbox.state(state = 'normal')
# if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
# # PlotSeqNetCDFFilesCmd()
# .cdtEnv$tcl$data$lcmd.frame <- 1
# }
# })
# ##########
# tkadd(menu.mrg, "separator")
# tkadd(menu.mrg, "command", label = lang.menu[["merging.data"]][["8"]],
# command = function()
# {
# refreshCDT()
# spinbox.state(state = 'normal')
# if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
# # PlotSeqNetCDFFilesCmd()
# .cdtEnv$tcl$data$lcmd.frame <- 1
# }
# })
# ##########
# tkadd(menu.mrg, "separator")
# tkadd(menu.mrg, "command", label = lang.menu[["merging.data"]][["9"]],
# command = function()
# {
# refreshCDT()
# spinbox.state(state = 'normal')
# if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
# # PlotSeqNetCDFFilesCmd()
# .cdtEnv$tcl$data$lcmd.frame <- 1
# }
# })
####################################
menu.valid <- tkmenu(top.menu, tearoff = FALSE, relief = "flat")
tkadd(top.menu, "cascade", label = lang.menu[["validation"]][["0"]], menu = menu.valid, activebackground = 'lightblue')
##########
menu.valid.spts <- tkmenu(top.menu, tearoff = FALSE)
tkadd(menu.valid, "cascade", label = lang.menu[["validation"]][["1"]], menu = menu.valid.spts)
########
tkadd(menu.valid.spts, "command", label = lang.menu[["validation"]][["4-1"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
Validation.STAT.PanelCmd("RR")
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
########
tkadd(menu.valid.spts, "separator")
########
tkadd(menu.valid.spts, "command", label = lang.menu[["validation"]][["4-2"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
Validation.STAT.PanelCmd("TT")
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
##########
tkadd(menu.valid, "separator")
##########
menu.valid.grd <- tkmenu(top.menu, tearoff = FALSE)
tkadd(menu.valid, "cascade", label = lang.menu[["validation"]][["2"]], menu = menu.valid.grd)
########
tkadd(menu.valid.grd, "command", label = lang.menu[["validation"]][["4-1"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
Validation.GriddedData.PanelCmd('RR')
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
########
tkadd(menu.valid.grd, "separator")
########
tkadd(menu.valid.grd, "command", label = lang.menu[["validation"]][["4-2"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
Validation.GriddedData.PanelCmd('TT')
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
# ##########
# tkadd(menu.valid, "separator")
# ##########
# menu.valid.grd <- tkmenu(top.menu, tearoff = FALSE)
# tkadd(menu.valid, "cascade", label = lang.menu[["validation"]][["2-old"]], menu = menu.valid.grd)
# ########
# tkadd(menu.valid.grd, "command", label = lang.menu[["validation"]][["4-1"]],
# command = function()
# {
# refreshCDT(staterun = "disabled")
# spinbox.state(state = 'normal')
# if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
# Validation.HOV.PanelCmd('RR')
# .cdtEnv$tcl$data$lcmd.frame <- 1
# }
# })
# ########
# tkadd(menu.valid.grd, "separator")
# ########
# tkadd(menu.valid.grd, "command", label = lang.menu[["validation"]][["4-2"]],
# command = function()
# {
# refreshCDT(staterun = "disabled")
# spinbox.state(state = 'normal')
# if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
# Validation.HOV.PanelCmd('TT')
# .cdtEnv$tcl$data$lcmd.frame <- 1
# }
# })
##########
tkadd(menu.valid, "separator")
##########
menu.valid.stats <- tkmenu(top.menu, tearoff = FALSE)
tkadd(menu.valid, "cascade", label = lang.menu[["validation"]][["3"]], menu = menu.valid.stats)
########
tkadd(menu.valid.stats, "command", label = lang.menu[["validation"]][["4-1"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
Validation.MultiData.PanelCmd('RR')
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
########
tkadd(menu.valid.stats, "separator")
########
tkadd(menu.valid.stats, "command", label = lang.menu[["validation"]][["4-2"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
Validation.MultiData.PanelCmd('TT')
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
####################################
menu.dataproc <- tkmenu(top.menu, tearoff = FALSE, relief = "flat")
tkadd(top.menu, "cascade", label = lang.menu[["data.analysis"]][["0"]], menu = menu.dataproc, activebackground = 'lightblue')
##########
tkadd(menu.dataproc, "command", label = lang.menu[["data.analysis"]][["1"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
summariesDataPanelCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
##########
tkadd(menu.dataproc, "separator")
##########
menu.ClimVars <- tkmenu(top.menu, tearoff = FALSE)
tkadd(menu.dataproc, "cascade", label = lang.menu[["data.analysis"]][["2"]], menu = menu.ClimVars)
########
tkadd(menu.ClimVars, "command", label = lang.menu[["data.analysis"]][["2-1"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('compute.dervTemp', 'daily')
computeTvars_getParams()
})
########
tkadd(menu.ClimVars, "separator")
########
tkadd(menu.ClimVars, "command", label = lang.menu[["data.analysis"]][["2-2"]],
command = function()
{
refreshCDT(staterun = "normal")
# initialize.parameters('compute.Wind', 'daily')
# computeWind_getParams()
})
########
tkadd(menu.ClimVars, "separator")
########
tkadd(menu.ClimVars, "command", label = lang.menu[["data.analysis"]][["2-3"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('compute.PET', 'daily')
computePET_getParams()
})
########
tkadd(menu.ClimVars, "separator")
########
tkadd(menu.ClimVars, "command", label = lang.menu[["data.analysis"]][["2-4"]],
command = function()
{
refreshCDT(staterun = "normal")
initialize.parameters('compute.WB', 'daily')
computeWB_getParams()
})
########
tkadd(menu.ClimVars, "separator")
########
tkadd(menu.ClimVars, "command", label = lang.menu[["data.analysis"]][["2-5"]],
command = function()
{
refreshCDT(staterun = "normal")
# initialize.parameters('compute.WRSI', 'daily')
# computeWRSI_getParams()
})
##########
tkadd(menu.dataproc, "separator")
##########
menu.ClimCalc <- tkmenu(top.menu, tearoff = FALSE)
tkadd(menu.dataproc, "cascade", label = lang.menu[["data.analysis"]][["3"]], menu = menu.ClimCalc)
########
tkadd(menu.ClimCalc, "command", label = lang.menu[["data.analysis"]][["3-1"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
climatologiesCalcPanelCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
########
tkadd(menu.ClimCalc, "separator")
########
tkadd(menu.ClimCalc, "command", label = lang.menu[["data.analysis"]][["3-2"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
anomaliesCalcPanelCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
##########
tkadd(menu.dataproc, "separator")
##########
tkadd(menu.dataproc, "command", label = lang.menu[["data.analysis"]][["4"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
spatialAnalysisPanelCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
##########
tkadd(menu.dataproc, "separator")
##########
tkadd(menu.dataproc, "command", label = lang.menu[["data.analysis"]][["5"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
dailyRainAnalysisPanelCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
tkadd(menu.dataproc, "command", label = lang.menu[["data.analysis"]][["5-1"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
# if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
# seasonalRainAnalysisPanelCmd()
# .cdtEnv$tcl$data$lcmd.frame <- 1
# }
})
##########
tkadd(menu.dataproc, "separator")
##########
menu.rainySeas <- tkmenu(top.menu, tearoff = FALSE)
tkadd(menu.dataproc, "cascade", label = lang.menu[["data.analysis"]][["6"]], menu = menu.rainySeas)
########
tkadd(menu.rainySeas, "command", label = lang.menu[["data.analysis"]][["6-1"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
OnsetCalcPanelCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
########
tkadd(menu.rainySeas, "separator")
########
tkadd(menu.rainySeas, "command", label = lang.menu[["data.analysis"]][["6-2"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
CessationCalcPanelCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
########
tkadd(menu.rainySeas, "separator")
########
tkadd(menu.rainySeas, "command", label = lang.menu[["data.analysis"]][["6-3"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
SeasonLengthCalcPanelCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
##########
tkadd(menu.dataproc, "command", label = lang.menu[["data.analysis"]][["7"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
SeasonAnalysisPanelCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
##########
tkadd(menu.dataproc, "separator")
##########
menu.climdex <- tkmenu(top.menu, tearoff = FALSE)
tkadd(menu.dataproc, "cascade", label = lang.menu[["data.analysis"]][["8"]], menu = menu.climdex)
########
tkadd(menu.climdex, "command", label = lang.menu[["data.analysis"]][["8-1"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
climdexPanelCmd.RR()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
########
tkadd(menu.climdex, "separator")
########
tkadd(menu.climdex, "command", label = lang.menu[["data.analysis"]][["8-2"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
climdexPanelCmd.TT()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
##########
tkadd(menu.dataproc, "separator")
##########
menu.drought <- tkmenu(top.menu, tearoff = FALSE)
tkadd(menu.dataproc, "cascade", label = lang.menu[["data.analysis"]][["9"]], menu = menu.drought)
########
## Standardized Precipitation Index (SPI)
## https://climatedataguide.ucar.edu/climate-data/standardized-precipitation-index-spi
tkadd(menu.drought, "command", label = lang.menu[["data.analysis"]][["9-1"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
SPICalcPanelCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
##########
tkadd(menu.drought, "separator")
#########
## Standardized Precipitation Evapotranspiration Index (SPEI)
## https://climatedataguide.ucar.edu/climate-data/standardized-precipitation-evapotranspiration-index-spei
tkadd(menu.drought, "command", label = lang.menu[["data.analysis"]][["9-2"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
SPEICalcPanelCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
##########
tkadd(menu.drought, "separator")
#########
tkadd(menu.drought, "command", label = lang.menu[["data.analysis"]][["9-3"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
DecilesCalcPanelCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
# ##########
# tkadd(menu.dataproc, "separator")
# ##########
# tkadd(menu.dataproc, "command", label = "Crop Probabilities Tables",
# command = function()
# {
# refreshCDT(staterun = "disabled")
# spinbox.state(state = 'normal')
# # if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
# # CropProbaPanelCmd()
# # .cdtEnv$tcl$data$lcmd.frame <- 1
# # }
# })
###################################
menu.plot <- tkmenu(top.menu, tearoff = FALSE, relief = "flat")
tkadd(top.menu, "cascade", label = lang.menu[["plot.data"]][["0"]], menu = menu.plot, activebackground = 'lightblue')
##########
tkadd(menu.plot, "command", label = lang.menu[["plot.data"]][["1"]],
command = function()
{
refreshCDT(staterun = "disabled")
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
PlotCDTStationCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
##########
tkadd(menu.plot, "separator")
##########
tkadd(menu.plot, "command", label = lang.menu[["plot.data"]][["2"]],
command = function()
{
refreshCDT()
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
PlotCDTDatasetCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
##########
tkadd(menu.plot, "separator")
##########
tkadd(menu.plot, "command", label = lang.menu[["plot.data"]][["3"]],
command = function()
{
refreshCDT()
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
PlotOneNetCDFFileCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
##########
tkadd(menu.plot, "separator")
##########
tkadd(menu.plot, "command", label = lang.menu[["plot.data"]][["4"]],
command = function()
{
refreshCDT()
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
PlotSeqNetCDFFilesCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
##########
tkadd(menu.plot, "separator")
##########
tkadd(menu.plot, "command", label = lang.menu[["plot.data"]][["5"]],
command = function()
{
refreshCDT()
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
PlotVarNetCDFFilesCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
##########
tkadd(menu.plot, "separator")
##########
tkadd(menu.plot, "command", label = lang.menu[["plot.data"]][["6"]],
command = function()
{
refreshCDT()
spinbox.state(state = 'normal')
if(is.null(.cdtEnv$tcl$data$lcmd.frame)){
PlotMulitpleDataCmd()
.cdtEnv$tcl$data$lcmd.frame <- 1
}
})
###################################
menu.aide <- tkmenu(top.menu, tearoff = FALSE, relief = "flat")
tkadd(top.menu, "cascade", label = lang.menu[["help"]][["0"]], menu = menu.aide, activebackground = 'lightblue')
##########
tkadd(menu.aide, "command", label = lang.menu[["help"]][["1"]], command = function(){
# start help server ifnot
# utils::browseURL(paste0('file://',file.path(.cdtDir$Root, 'help', 'index.html')))
msg <- "You will be able to download from <https://iri.columbia.edu/our-expertise/climate/tools/cdt> CDT user guide and technical documentation, hopefully soon."
Insert.Messages.Out(msg, TRUE, 'i')
utils::browseURL("https://iri.columbia.edu/our-expertise/climate/tools/cdt/")
})
##########
tkadd(menu.aide, "separator")
##########
tkadd(menu.aide, "command", label = lang.menu[["help"]][["2"]], command = function(){
Insert.Messages.Out(.cdtEnv$tcl$lang$global[['message']][['11']], TRUE, 'i')
tkconfigure(.cdtEnv$tcl$main$win, cursor = 'watch')
tcl('update')
on.exit({
tkconfigure(.cdtEnv$tcl$main$win, cursor = '')
tcl('update')
})
if(testConnection()){
if(Sys.getenv("TAR")[1] == "") Sys.setenv("TAR" = "internal")
if(utils::packageVersion("devtools") >= "2.0.0"){
devtools::install_github("rijaf-iri/CDT", dependencies = FALSE,
upgrade = FALSE, force = TRUE)
}else{
devtools::install_github("rijaf-iri/CDT", dependencies = FALSE,
upgrade_dependencies = FALSE, force = TRUE)
}
Insert.Messages.Out(.cdtEnv$tcl$lang$global[['message']][['12']], TRUE, 's')
Insert.Messages.Out(.cdtEnv$tcl$lang$global[['message']][['13']], TRUE, 'i')
}else{
Insert.Messages.Out(.cdtEnv$tcl$lang$global[['message']][['14']], TRUE, 'e')
return(NULL)
}
})
##########
tkadd(menu.aide, "separator")
##########
tkadd(menu.aide, "command", label = lang.menu[["help"]][["3"]], command = function() aboutCDT())
#################################################################################
tkbind(top.menu, "<ButtonPress-1>", function(){
tclvalue(.cdtEnv$tcl$status$pbLab) <- ""
tclvalue(.cdtEnv$tcl$status$pbBar) <- 0
tclvalue(.cdtEnv$tcl$status$pbnmax) <- 1
})
invisible()
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.