main.c 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /****************************************************************************
  2. *
  3. * MODULE: i.gensigset
  4. * AUTHOR(S): Charles Bouman, Purdue University and
  5. * Michael Shapiro, USACERL (original contributors)
  6. * Markus Neteler <neteler itc.it>
  7. * Roberto Flor <flor itc.it>,
  8. * Bernhard Reiter <bernhard intevation.de>,
  9. * Glynn Clements <glynn gclements.plus.com>,
  10. * Jan-Oliver Wagner <jan intevation.de>
  11. * PURPOSE: non-interactive method for generating image signature files
  12. * COPYRIGHT: (C) 1999-2006 by the GRASS Development Team
  13. *
  14. * This program is free software under the GNU General Public
  15. * License (>=v2). Read the file COPYING that comes with GRASS
  16. * for details.
  17. *
  18. *****************************************************************************/
  19. #include <stdlib.h>
  20. #include <grass/gis.h>
  21. #include <grass/imagery.h>
  22. #include <grass/glocale.h>
  23. #include "files.h"
  24. #include "parms.h"
  25. #include "local_proto.h"
  26. int main(int argc, char *argv[])
  27. {
  28. struct parms parms; /* command line parms */
  29. struct files files; /* file descriptors, io, buffers */
  30. struct SigSet S;
  31. int i;
  32. int junk;
  33. struct GModule *module;
  34. G_gisinit(argv[0]);
  35. module = G_define_module();
  36. G_add_keyword(_("imagery"));
  37. G_add_keyword(_("classification"));
  38. G_add_keyword(_("supervised classification"));
  39. G_add_keyword(_("SMAP"));
  40. G_add_keyword(_("signatures"));
  41. module->description =
  42. _("Generates statistics for i.smap from raster map.");
  43. parse(argc, argv, &parms);
  44. openfiles(&parms, &files);
  45. read_training_labels(&parms, &files);
  46. get_training_classes(&parms, &files, &S);
  47. read_data(&files, &S);
  48. for (i = 0; i < S.nclasses; i++) {
  49. G_message(_("Clustering class %d (%d pixels)..."),
  50. i + 1, S.ClassSig[i].ClassData.npixels);
  51. subcluster(&S, i, &junk, parms.maxsubclasses);
  52. G_message(_("Number of subclasses is %d"),
  53. S.ClassSig[i].nsubclasses);
  54. }
  55. write_sigfile(&parms, &S);
  56. G_done_msg(" ");
  57. exit(EXIT_SUCCESS);
  58. }