1 #include <stdlib.h>
2
3 #include <grass/raster.h>
4 #include <grass/imagery.h>
5 #include <grass/glocale.h>
6
7 #include "bouman.h"
8 #include "local_proto.h"
9
10
openfiles(struct parms * parms,struct files * files)11 int openfiles(struct parms *parms, struct files *files)
12 {
13 struct Ref Ref; /* subgroup reference list */
14 int n;
15
16
17 if (!I_get_subgroup_ref(parms->group, parms->subgroup, &Ref))
18 G_fatal_error(_("Unable to read REF file for subgroup <%s> in group <%s>"),
19 parms->subgroup, parms->group);
20
21 if (Ref.nfiles <= 0)
22 G_fatal_error(_("Subgroup <%s> in group <%s> contains no raster maps"),
23 parms->subgroup, parms->group);
24
25 /* allocate file descriptors, and io buffer */
26 files->cellbuf = Rast_allocate_d_buf();
27 files->outbuf = Rast_allocate_c_buf();
28
29 files->isdata = G_malloc(Rast_window_cols());
30
31 files->nbands = Ref.nfiles;
32 files->band_fd = (int *)G_calloc(Ref.nfiles, sizeof(int));
33
34 /* open all group maps for reading */
35 for (n = 0; n < Ref.nfiles; n++)
36 files->band_fd[n] =
37 open_cell_old(Ref.file[n].name, Ref.file[n].mapset);
38
39 /* open output map */
40 files->output_fd = open_cell_new(parms->output_map);
41
42 if (parms->goodness_map)
43 files->goodness_fd = Rast_open_new(parms->goodness_map, FCELL_TYPE);
44 else
45 files->goodness_fd = -1;
46
47 return 0;
48 }
49