/
README
263 lines (184 loc) · 9.05 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
RArcInfo - 0.4-6
- INTRODUCTION
This package enables R to import data from Arc/Info V7.x binary
coverages. It uses the wonderful functions written by
Daniel Morissette <damno@videotron.ca> to import/export data
from binary coverages from/to E00 ASCII files.
Please, notice that all the code under the RArcInfo/src/avce00 is
copyright of Daniel Morissette, who is the original writter.
I didn't write any code inside this directory.
Since all the code must be in the RArcInfo/src directory (and Windo$s doesn't allow
symbolic links), I have copied some files from RArcInfo/src/avce00 to it.
The only files I have written are RArcInfo.c and RArcInfo.h. All the other ones
are copyrighted by Daniel Morissette.
- THE CODE
Basically, there is a function to import each type of file (ARC, LAB, etc.) in the
coverage directory.
Please, notice that RArcInfo is a work in progress.
Nowadays, the list of functions RArcInfo provides is:
-get.namesofcoverages(dir)
Provided the name of the directory where the coverage (dir) is, it returns
the names of all the coverages... Well, it really returns all the file and directory
names in the directory 'dir'.
- get.tablenames(dir)
Returns all the table names plus some aditional data, like the number of
records. More information about this can be found in the help.
- get.tablefields(infodir, tablename)
Returns the name of the fields of the given table.
- get.XXXdata(datadir, coverage, filename)
Returns the data of the given filename into a R list. XXX can be:
arc, pal, lab, cnt, tol, txt
- get.bnddata (infodir, tablename)
Returns the boundary coordinates of the geographical data.
- get.tabledata(infodir, coverage, tablename)
There also also another two functions to plot arcs:
- plotarc(arc, new=T)
This plot all the arcs returned by get.arcdata. If we want
to rebuild the limits in the axis we should set new=T. In other case
we should set new=F. This is useful when you want to draw some coverages.
- plotpal(arc, pal, new=T)
Now we only plot the arcs defined by pal (returned from a call to
get.pladata).
* EXAMPLE
Let us suppose we have all the data (in format Arc/Info V7.x) under the directory
/usr/gis/data. We'll have a directory called "info", where some files with information
about all the coverages is stored. We have two coverages called "Lakes" and "Rivers"
under the directories "lakes" and "rivers".
/usr/gis/data--/
|
|
|-----|------|
info lakes rivers
To import the arcs from the lakes coverage we can write and store them in a variable
called arclakes, we can write:
arclakes<-get.arcdata("/usr/gis/data/","lakes","arc.adf")
Notice the final slash in the first argument and the name of the file where the data
are stored. This is the more common name, but it may change.
To import the polygons we write:
pallakes<-get.paldata("/usr/gis/data/","lakes","pal.adf")
To plot all the lakes:
plotpal(arclakes, pallakes)
You can find another example under the directory "tests" in the source package.
* TODO
- Improve the documentation quality.
- Improve the plot functions
- Write functions to perform searches in tables.
- In get.toldata the default filename is "tol.adf", which is the one for single
precision coverages. For double precision coverages it should be "par.adf".
Please, I would like to hear suggestions from the users in order to improve this package.
EXAMPLE DATA
The data under the directory "RArcInfo/exampleData" has been downloaded from
the web of the UNEP/GIRD-Arendal (http://www.grida.no/baltic/index.htm). I would
like to thank Hugo Ahlenius and Sindre Langaas for their help and soon answers.
This site also provides more data about the Baltic Sea Region and the
countries around it. I only took the data from wetlands because of its small
size, but there are many more data available to download for free there.
Another example based on the province of Valencia (Spain) has been added.
The Rate of Unemployment in 1991 for each municipality has been plooted.
Data have been obtained from 'Instituto Valenciano de Estadistica' (several
statistics) and 'Oficina del Catastro' (E00 file, which was generated by
means of R/Shapelib/GRASS from a SVG file).
ABOUT RARCINFO AND ARC/VIEW
Some people have written to me asking whether this package is able to import/export
data from/to Arc/View in the same way that the extension for the S-Plus does.
The answer is no, but I think it can be done using the R-(D)COM server and
writting the code for this (of course ;-) ).
I know ArcView supports, from version 8.1, VB scripts, so it should be easy
to write some connection between R and ArcView...
RARCINFO AT SOURCEFORGE
I have opened a project at www.sourceforge.net in order to keep there all
the source code. When I have more spare time I will make a beatiful web page too...
NEWS
*V 0.4-4
- xratio and yratio have been added to plotpoly to control width
and height of the plot.
- plotpoly have been improved to properly set the plotting
region, etc.
- Makefile has been deleted and a 'PKG_CFLAGS = -fno-strict-aliasing'
has been added to Makevars. This fixes the way numbers are converted
to little endian format in avcelib.
*V 0.4-3
- RArcInfo started to fail when compiling using gcc 3.x due to
the -O3 flag. Two files called Makevars and Makefile have been
added in order to compile thepackage with flag -O.
*V 0.4-2
- 'index' argument added to plotarc to select the arcs to plot.
- 'index' argument added to plotpal to select the polygons to plot.
- New function 'get.nb', which, given a set of polygons, returns
the neighbouring polygons of each one.
- Fixed a bug in 'get_tol_data'. The file to be open was of
type CNT instead of TOL. Now tolerances are read without problems.
- Output messages have been changed in several functions to
be more useful for the user.
- Fixed a bug in 'plotarc' when calculating plot dimensions.
- Example added to RArcInfo documentation file.
*V 0.4-1- 'thinlines' modified to keep the last point of the arcs. Thanks
to Erich Neuwirth for this comment.
*V 0.4 - Two new functions added to convert from/to ArcInfo binary
coverages to/from E00 files: 'e00toavc' and 'avctoe00'.
- 'read.coverage' now reads the polygon definiton file is
there exists just one file for that inside the coverage.
- New function 'thinlines', which reduces the number of
points in the arc definition object (returned by get.arcdata).
Using the thinned 'arc object' will speed up R when plotting.
*V 0.3
- The argument '...' has been added to all the plotting functoins
in order to allow the user more control over the maps.
- The plots are scaled according to the real proportions of
the map.
- Added a configure script in order to proper compile under several
platforms. UPDATE: No longer needed because endianness is tested
and set in the C sources.
- Added the function read.coverage to retrieve whole informtation
- Fixed a bug in plotpoly. If the first polygon Id is 0, then
the function wasn't able to draw a map due to the lack of
x,y coordinates.
- Single and double precision data are correctly imported now. I have
changed the way precision is tested.
* V 0.2-1
- Some bug fixes related reading double and single precision data.
* V 0.2
- Added a new function to plot polygons (plotpoly).
- get.tabledata labels the columns using get.tablefields.
- Added a function to import TXT data (get_txt_data).
- Fixed a bug in the documentation. "infodir" has been changed to
"datadir" in most functions.
- Added a new manual page about the whole package. Try 'help(RArcInfo)'.
* V 0.1
- Function get.bnddata now works properly.
- The data returned by the functions get.XXXdata (XXX=arc, pal, cnt) have been
changed to a data frame (a table with some fields of the data and named columns) and
a list (that stores de coordinates of the points, etc.).
- Besides, the data returned by the functions get.tablenames, get.tablefields,
get.tabledata, get.XXXdata (XXX=lab, tol) has changed too. Now they are
data frames with named columns.
- get.namesofcoverages now returns only the names of the directories where
the data are stored.
- The links to Daniel's code has been deleted and I have copied the files
into the src directory in order to be able to compile the package for
Windows.
* V 0.03
- Added some example data and a test.
- Added some defaults values for the variable "filename" in some get.XXXdata functions.
- Fixed some minor bugs.
- Keywords added.
THANKS
I would like to thank these people their comments and help:
-Daniel Morissette, for writing avcelib.
-Erich Neuwirth, for his comments and providing me with more data to test the
package.
-Hannes Reuter and Robert Denham, for their comments and testing the package on
sun machines.
- All the people in the several R mailing lists, for their valuable comments.
- The R Core Team, for giving us R.
Enjoy!
Virgilio Gómez Rubio
P.S:
If you find this package useful, please, feel free to make suggestions to improve it
and to send (nice) postcards to:
Virgilio Gómez Rubio
Dpto. Estadística e I.O.
Facultad de Matemáticas
Avda. Vicent A. Estellés, 1
46100 Burjassot (València)
Spain