shapefiles            package:shapefiles            R Documentation

_R_e_a_d _a_n_d _w_r_i_t_e _E_S_R_I _s_h_a_p_e_f_i_l_e_s

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

     This package includes functions to read and write ESRI shapefiles.

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

     read.shapefile(shape.name)
     read.shp(shp.name)
     read.shx(shx.name) 
     read.dbf(dbf.name) 
     write.shapefile(shapefile, out.name, arcgis=FALSE)
     write.shp(shp, out.name)
     write.shx(shx, out.name)
     write.dbf(dbf, out.name, arcgis=FALSE)
     calc.header(shapefile)
     add.xy(shapefile)
     scaleXY(shapefile, scale.factor)
     emme2.shp(nodes, links, file.name="d211.in")

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

shape.name: String of the shapefile file name without an extension

shp.name: String of the shp file name with an extension

shx.name: String of the shx file name with an extension

dbf.name: String of the dbf file name with an extension

shapefile: The shapefile object of lists created by read.shapefile

out.name: Filename to write the data to

     shp: shp portion (list) of the shapefile object of lists

     shx: shx portion (list) of the shapefile object of lists

     dbf: dbf portion (list) of the shapefile object of lists

scale.factor: Number to divide the shapefile geography by

   nodes: Points shapefile object of lists

   links: Lines shapefile object of lists

file.name: String of EMME/2 d211 import file to save to

  arcgis: Replace "." with "_" in column names for ArcGIS

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

     ESRI shapefiles consist of three files.  The first file (*.shp)
     contains the geography of each  shape.  The second file (*.shx) is
     an index file which contains record offsets.  The  third file
     (*.dbf) contains feature attributes with one record per feature.   

      'read.shapefile' calls 'read.shp, read.shx', and 'read.dbf' to
     read in an entire shapefile.  The result of 'read.shapefile' is a
     list of many more lists.  The sublists are 'shp, shx', and 'dbf'. 
     Each sublist contains a header list and some sort of data list. 
     The shp list is a list of  '$shp$header' and '$shp$shp'.  The shx
     list is a list of  '$shx$header' and '$shx$index'.  The dbf list
     is a list of  '$dbf$header' and '$dbf$dbf'.   

      Currently only the read functions are really that useful.  The
     write functions work fine,  but building the necessary data in R
     to write out all the appropriate data in the shp and dbf files is
     absent at this point. 

      For details about the ESRI shapefile structure refer to  <URL:
     http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf>.  A
     detailed description of DBF files can be found at <URL:
     http://www.e-bachmann.dk/docs/xbase.htm>.  The 'arcgis' argument
     to 'write.dbf' replaces "." with "_" in field names since ArcGIS
     does not allow the former.  Note that the 'RODBC' package function
     'odbcConnectDbase' is  faster than 'read.dbf'.

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


       'read.shapefile'   list  shapefile list object
       'read.shp'         list  shp list object
       'read.shx'         list  shx list object
       'read.dbf'         list  DBF list object
       'write.shapefile'  NA    Nothing returned
       'write.shp'        NA    Nothing returned
       'write.shx'        NA    Nothing returned
       'write.dbf'        NA    Nothing returned
       'calc.header'      list  shapefile list object
       'add.xy'           list  shapefile list object
       'scaleXY'          list  shapefile list object
       'emme2.shp'        NA    Nothing returned

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

     Ben Stabler <benjamin.stabler@odot.state.or.us> 
      <URL: http://www.odot.state.or.us/tddtpau/R.html>

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

     ## Not run: 
     #Read entire shapefile
     shapefile <- read.shapefile("links")

     #Write entire shapefile
     write.shapefile(shapefile, "temp", T)

     #Read shp, shx, or dbf file
     dbf <- read.dbf("links.dbf")

     #Write shp, shx, or dbf file
     write.dbf(dbf, "links.dbf", T)

     #Calculate header (to clean up GeoMedia shapefile exports)
     shapefile <- calc.header(shapefile)

     #Add the X and Y coordinates to the dbf list of the shapefile list object
     shapefile <- add.xy(shapefile)

     #Scale the shapefile by scale.factor
     shapefile <- scaleXY(shapefile, scale.factor)

     #Create an EMME/2 network batch-in file
     emme2.shp(nodes, links, "d211.in")
     ## End(Not run)

