checkpt.c 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include <grass/gis.h>
  2. #include <grass/glocale.h>
  3. #include "global.h"
  4. #include "local_proto.h"
  5. int checkpoint(struct Cluster *X, int n)
  6. {
  7. time_t elapsed_time, cur_time;
  8. int c, band;
  9. switch (n) {
  10. case 1:
  11. print_band_means(report, X);
  12. if (insigfile) {
  13. fprintf(report, _("using seed means (%d files)\n"), ref.nfiles);
  14. for (c = 0; c < in_sig.nsigs; c++)
  15. for (band = 0; band < ref.nfiles; band++)
  16. X->mean[band][c] = in_sig.sig[c].mean[band];
  17. }
  18. print_seed_means(report, X);
  19. break;
  20. case 2:
  21. print_class_means(report, X);
  22. print_distribution(report, X);
  23. break;
  24. case 3:
  25. fprintf(report, _("\n######## iteration %d ###########\n"),
  26. X->iteration);
  27. fprintf(report, _("%d classes, %.2f%% points stable\n"),
  28. I_cluster_nclasses(X, 1), (double)X->percent_stable);
  29. /*
  30. I_cluster_sum2 (X);
  31. print_class_means(report,X);
  32. */
  33. print_distribution(report, X);
  34. if (G_verbose() > G_verbose_std()) {
  35. cur_time = time(NULL);
  36. elapsed_time = cur_time - start_time;
  37. G_message(_("Iteration %.2d: convergence %.2f%% (%s elapsed, %s left)"),
  38. X->iteration, (double)X->percent_stable,
  39. print_time(elapsed_time),
  40. print_time(iters * elapsed_time / (X->iteration + 1) -
  41. elapsed_time));
  42. }
  43. break;
  44. case 4:
  45. /*
  46. fprintf (report, _("\nmerging class %d into %d\n"),
  47. X->merge2+1, X->merge1+1);
  48. */
  49. break;
  50. }
  51. fflush(report);
  52. return 1;
  53. }