12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #include <stdlib.h>
- #include <grass/gis.h>
- #include <grass/raster.h>
- #include <grass/raster3d.h>
- #include <grass/glocale.h>
- #include "local_proto.h"
- /*
- * check_stats() - Check and update statistics
- *
- * RETURN: EXIT_SUCCESS / EXIT_FAILURE
- */
- int check_stats(const char *name)
- {
- struct Categories cats;
- struct FPRange fprange;
- int cats_ok;
- G_message(_("Updating statistics for <%s>"), name);
-
- /* Get category status and max */
- cats_ok = (Rast3d_read_cats(name, "", &cats) >= 0);
- Rast3d_read_range(name, "", &fprange);
- /* Further category checks */
- if (!cats_ok)
- Rast_init_cats("", &cats);
- else if (cats.num != fprange.max) {
- cats.num = fprange.max;
- cats_ok = 0;
- }
- /* Update categories if needed */
- if (!cats_ok) {
- G_message(_("Updating the number of categories for <%s>"), name);
- Rast3d_write_cats(name, &cats);
- }
- Rast_free_cats(&cats);
- return 0;
- }
|