Example of POST vpz/input in R language

For the simulator ‘wwdm.vpz’ whose Id is 266, enter the R code/instructions in a R interpreter.

Example illustrating :

  • modifying begin,

  • modifying duration,

  • modifying some parameters by ‘cname.pname’,

  • value ‘all’ as ‘parselect’,

  • tree’ as style of presentation,

  • json’ as format,

  • with ‘application/json’ as ‘Content-Type’

    Memo

    # R code :
    
    library('rjson')
    
    # content of simulation input information in 'tree' style of presentation
    # (vpzinput)
    content_simulation_inputs_tree <- function(vpzinput){
    
        # duration
        vleduration = vpzinput$vleduration
        #vleduration
        duration_value = vleduration$value
        duration_verbose_name = vleduration$verbose_name
        duration_id = vleduration$id
        cat("duration value :", duration_value, "\n")
    
        # begin
        vlebegin = vpzinput$vlebegin
        vlebegin
        begin_value = vlebegin$value
        begin_verbose_name = vlebegin$verbose_name
        begin_id = vlebegin$id
        cat("begin value :", begin_value, "\n")
    
        # conditions and parameters
        conds = vpzinput$vlecond_list
        for (cond in conds){
            #print(cond)
            cond_verbose_name = cond$verbose_name
            cond_id = cond$id
            cond_name = cond$name
            cat("\nCondition (id, name, verbose_name) : ", cond_id, cond_name, cond_verbose_name, "\n")
            cat("List of its parameters (id, cname, pname, type, selected, verbose_name, value) :", "\n")
            pars = cond$vlepar_list
            for (par in pars){
                #print(par)
                par_verbose_name = par$verbose_name
                par_id = par$id
                par_cname = par$cname
                par_pname = par$pname
                par_type = par$type
                par_value = fromJSON(par$value)
                par_selected = par$selected
                cat("- ", par_id, par_cname, par_pname, par_type, par_selected, par_verbose_name, "\n")
                print(par_value)
            }
        }
    
        # views and output datas identity
        views = vpzinput$vleview_list
        for (view in views){
            #print(view)
            view_verbose_name = view$verbose_name
            view_id = view$id
            view_name = view$name
            view_type = view$type
            view_timestep = view$timestep
            view_output_format = view$output_format
            view_output_location = view$output_location
            view_output_name = view$output_name
            view_output_plugin = view$output_plugin
            cat("\nView (id, name, type, timestep, output_format, output_location, output_name, output_plugin, verbose_name) : ", view_id, view_name, view_type, view_timestep, view_output_format, view_output_location, view_output_name, view_output_plugin, view_verbose_name, "\n")
            cat("List of its output datas (id, vname, oname, shortname, selected, verbose_name) :", "\n")
            outs = view$vleout_list
            for (out in outs){
                #print(out)
                out_verbose_name = out$verbose_name
                out_id = out$id
                out_vname = out$vname
                out_oname = out$oname
                out_shortname = out$shortname
                out_selected = out$selected
                cat("- ", out_id, out_vname, out_oname, out_shortname, out_selected, out_verbose_name, "\n")
            }
        }
    }
    
    
    # R code :
    
    library('RCurl')
    library('rjson')
    
    #######################
    # request and response
    #######################
    
    header = c('Content-Type'='application/json', Accept='application/json')
    
    options(RCurlOptions=list(followlocation=TRUE))
    
    postfields = toJSON(list(
        vpz=266,
        duration=6,
        begin=2453982.0,
        cond_wwdm.A=0.0064,
        cond_wwdm.Eb=1.86,
        mode="tree",
        parselect="all",
        format="json"))
    
    res = postForm(uri="http://erecord.toulouse.inra.fr:8000/vpz/input/",
        .opts=list(postfields=postfields, httpheader=header))
    
    responsedata = fromJSON(res)
    #responsedata
    
    #######################################################
    # responsedata in case of 'tree' style of presentation 
    #######################################################
    
    # id as VpzInput
    id = responsedata$id
    cat("id :", id, "\n")
    
    content_simulation_inputs_tree(vpzinput=responsedata)