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