emme2                 package:emme2                 R Documentation

_R_e_a_d _a_n_d _W_r_i_t_e _t_o _a_n _E_M_M_E/_2 _d_a_t_a_b_a_n_k

_D_e_s_c_r_i_p_t_i_o_n:

     This package includes functions to read and write to an EMME/2
     databank.

_U_s_a_g_e:

          read.file0(bank)
          read.file1(bank, file0)
          read.matdir(bank, file0, mmat)
          read.ms(bank, file0) 
          read.mo(numname, bank, file0, mcent, mat.dir)
          read.md(numname, bank, file0, mcent, mat.dir) 
          read.mf(numname, bank, file0, mcent, mat.dir) 
          write.mf(data, numname, bank, file0, mcent, mmat, mat.dir, newname=NULL, newdesc=NULL)
          read.link.data(bank, scen.num, file0, mscen, mlink, mnode)
          read.nodes(bank, scen.num, file0, mscen, mlink, mnode) 
          plotLinks(link.data, nodes, centroids=F, ...)
          ftnode(node.data, outgoing.links, jnode, mlink)
          formatMf(data, file1)

_A_r_g_u_m_e_n_t_s:

    bank: String of the EMME/2 databank file name

   file0: Databank metadata data frame

   file1: Databank global and scenario parameters

    mmat: Maximum number of matrices

 numname: mf name as a string or mf number to read in or write to

 newname: new name of the matrix to write out

 newdesc: new description of the matrix to write out

   mcent: Maximum number of centroids

 mat.dir: matrix directory object

    data: either a vector or matrix of data to write to bank

scen.num: scenario number to read from (in EMME/2 order - not named
          number)

   mscen: Maximum number of scenarios

   mlink: Maximum number of links

   mnode: maximum number of nodes

link.data: EMME/2 link data.frame

   nodes: EMME/2 nodes data.frame

centroids: T/F, Should the centroids be plotted?

node.data: EMME/2 nodes data.frame

outgoing.links: EMME/2 internal file 9 vector from read.link.data

   jnode: EMME/2 internal file 11 vector from read.link.data

     ...: graphical parameters can be given as arguments to plot

_D_e_t_a_i_l_s:

     The EMME/2 databank stores dummy placeholder values for all the
     cells for all the matrices in a databank.  Thus, if a matrix
     consists of 80x80 values and the databank has a maximum number of
     centroids of 100, then the databank is storing the 80x80 values in
     row-major order starting in the upper left corner and padding the
     remaining 20 "columns" with  default values and the remaining 20
     "rows" with default values.  This is important since 'read.mf'
     returns the full matrix - the matrix with  the padding default
     values - and 'write.mf' writes the full matrix -  the data matrix
     plus the padded values.  It is important then to call  'formatMf'
     before 'write.mf' in order to format the matrix that  is to be
     written to the databank.   

      For details about the EMME/2 internal file structure refer to
     Appendix C  of the EMME/2 User's Manual.

_V_a_l_u_e:


       read.file0      data.frame     EMME/2 internal file offsets
       read.file1      list           EMME/2 global and scenario parameters
       read.matdir     data.frame     EMME/2 matrix directory
       read.ms         vector         EMME/2 all ms values
       read.mo         vector         EMME/2 mo values
       read.md         vector         EMME/2 md values
       read.mf         matrix         EMME/2 mf values
       write.mf        NA             Nothing returned
       read.link.data  list           EMME/2 link data
       read.nodes      data.frame     EMME/2 node data
       plotLinks       NA             Plots EMME/2 network
       ftnode          named numeric  EMME/2 link data in from to node format
       formatMf        matrix         EMME/2 matrix with padded default values

_A_u_t_h_o_r(_s):

     Ben Stabler <benstabler@yahoo.com> 

_E_x_a_m_p_l_e_s:

          ## Not run: 
          # Function call to create databank offset file0
          file0 <- read.file0("emme2/emme2ban")
          
          #Function call to create file1 info (global parameters)
          file1 <- read.file1("emme2/emme2ban", file0)
          
          #Function call to read matrix directory
          mat.dir <- read.matdir("emme2/emme2ban", file0, file1$global["mmat"])
          
          #Function call to read all ms from databank
          ms <- read.ms("emme2/emme2ban", file0)
          
          #Function call to read mo2
          mo2 <- read.mo(2, "emme2/emme2ban", file0, file1$global["mcent"], mat.dir)
          
          #Function call to read md2
          md2 <- read.md(2, "emme2/emme2ban", file0, file1$global["mcent"], mat.dir)
          
          #Function call to read mf2
          mf2 <- read.mf(2, "emme2/emme2ban", file0, file1$global["mcent"], mat.dir)
          
          #Function call to read mf "opskim"
          mf2 <- read.mf("opskim", "emme2/emme2ban", file0, file1$global["mcent"], mat.dir)
          mf2 <- mf2[zonesUsed,zonesUsed] #To crop the padded default values
          
          #Function call to write mf2
          x <- matrix(rnorm(mf2), nrow(mf2), ncol(mf2)) #Random generate length(mf) numbers to write dummy data to bank
          x <- formatMf(x, file1) #Append the padded default values to the matrix 
          write.mf(x, 2, "emme2/emme2ban", file0, file1$global["mcent"], file1$global["mmat"], mat.dir, newname="test", newdesc="test matrix")
          
          #Function call to read link data
          link.data <- read.link.data("emme2/emme2ban", 1, file0, file1$global["mscen"], file1$global["mlink"], file1$global["mnode"])
          
          #Function call to create from to node link table
          tofrom <- ftnode(link.data[[1]], link.data[[2]], link.data[[3]], file1$global["mlink"])
          
          #Function call to create node table
          nodes <- read.nodes("emme2/emme2ban", 1, file0, file1$global["mscen"], file1$global["mlink"], file1$global["mnode"])
          
          #Function call to plot network
          plotLinks(link.data, nodes, centroids=F, col="black")
          
          #Function call to format a mf to write to the databank
          mf2 <- formatMf(mf2, file1)
          
     ## End(Not run)

