40
data_type = G_raster_map_type(name, mapset);
41
data_type = Rast_map_type(name, "");
42
43
G_message(_("Updating statistics for [%s]..."), name);
44
if (!do_histogram(name, mapset))
45
if (!do_histogram(name))
46
if (G_read_histogram(name, mapset, &histogram) <= 0)
47
if (Rast_read_histogram(name, "", &histogram) <= 0)
49
50
/* Init histogram range */
50
51
if (data_type == CELL_TYPE)
52
Rast_init_range(&range);
53
G_init_fp_range(&fprange);
54
Rast_init_fp_range(&fprange);
55
56
G_message(_("Updating histogram range..."));
56
i = histo_num = G_get_histogram_num(&histogram);
57
i = histo_num = Rast_get_histogram_num(&histogram);
58
59
G_percent(i, histo_num, 2);
60
61
if (data_type == CELL_TYPE)
61
G_update_range(G_get_histogram_cat(i--, &histogram), &range);
62
Rast_update_range(Rast_get_histogram_cat(i--, &histogram), &range);
63
G_update_fp_range((DCELL) G_get_histogram_cat(i--, &histogram),
64
Rast_update_fp_range((DCELL) Rast_get_histogram_cat(i--, &histogram),
67
68
/* Write histogram range */
68
69
if (data_type == CELL_TYPE)
69
G_write_range(name, &range);
70
Rast_write_range(name, &range);
71
G_write_fp_range(name, &fprange);
72
Rast_write_fp_range(name, &fprange);
73
74
/* Get category status and max */
74
cats_ok = (G_read_cats(name, mapset, &cats) >= 0);
75
cats_ok = (Rast_read_cats(name, "", &cats) >= 0);
75
76
max = (data_type == CELL_TYPE ? range.max : fprange.max);
77
78
/* Further category checks */
79
G_init_cats(max, "", &cats);
80
Rast_init_cats("", &cats);
80
81
else if (cats.num != max) {
85
86
/* Update categories if needed */
87
88
G_message(_("Updating the number of categories for [%s]..."), name);
88
G_write_cats(name, &cats);
89
Rast_write_cats(name, &cats);
91
G_free_histogram(&histogram);
92
Rast_free_histogram(&histogram);
93
Rast_free_cats(&cats);