Skip to content

Commit

Permalink
raster: Add library function to ask for mask presence (OSGeo#4402)
Browse files Browse the repository at this point in the history
To avoid asking about presence of the MASK raster, add a library function which checks for presence of the raster hiding its name in the library. Motivation for this is a greater mask abstraction.

Some code needs to link to newly raster library (which was previously used transitively).
  • Loading branch information
wenzeslaus authored Sep 30, 2024
1 parent e82663c commit 108e5e4
Show file tree
Hide file tree
Showing 17 changed files with 44 additions and 30 deletions.
1 change: 1 addition & 0 deletions include/grass/defs/raster.h
Original file line number Diff line number Diff line change
Expand Up @@ -393,6 +393,7 @@ int Rast_option_to_interp_type(const struct Option *);
/* mask_info.c */
char *Rast_mask_info(void);
int Rast__mask_info(char *, char *);
bool Rast_mask_is_present(void);

/* maskfd.c */
int Rast_maskfd(void);
Expand Down
10 changes: 10 additions & 0 deletions lib/raster/mask_info.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,3 +70,13 @@ int Rast__mask_info(char *name, char *mapset)

return 1;
}

/**
* @brief Check presence of 2D raster mask
*
* @return true if mask is present, false otherwise
*/
bool Rast_mask_is_present(void)
{
return G_find_raster("MASK", G_mapset()) != NULL;
}
4 changes: 2 additions & 2 deletions raster/r.mfilter/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,8 @@ int main(int argc, char **argv)
"threads setting."));
nprocs = 1;
#endif
if (nprocs > 1 && G_find_raster("MASK", G_mapset()) != NULL) {
G_warning(_("Parallel processing disabled due to active MASK."));
if (nprocs > 1 && Rast_mask_is_present()) {
G_warning(_("Parallel processing disabled due to active mask."));
nprocs = 1;
}
out_name = opt2->answer;
Expand Down
4 changes: 2 additions & 2 deletions raster/r.neighbors/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -310,8 +310,8 @@ int main(int argc, char *argv[])
"threads setting."));
ncb.threads = 1;
#endif
if (ncb.threads > 1 && G_find_raster("MASK", G_mapset()) != NULL) {
G_warning(_("Parallel processing disabled due to active MASK."));
if (ncb.threads > 1 && Rast_mask_is_present()) {
G_warning(_("Parallel processing disabled due to active mask."));
ncb.threads = 1;
}
if (strcmp(parm.weighting_function->answer, "none") && flag.circle->answer)
Expand Down
4 changes: 2 additions & 2 deletions raster/r.patch/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,8 @@ int main(int argc, char *argv[])
"threads setting."));
nprocs = 1;
#endif
if (nprocs > 1 && G_find_raster("MASK", G_mapset()) != NULL) {
G_warning(_("Parallel processing disabled due to active MASK."));
if (nprocs > 1 && Rast_mask_is_present()) {
G_warning(_("Parallel processing disabled due to active mask."));
nprocs = 1;
}

Expand Down
4 changes: 2 additions & 2 deletions raster/r.resamp.filter/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -494,8 +494,8 @@ int main(int argc, char *argv[])
"threads setting."));
nprocs = 1;
#endif
if (nprocs > 1 && G_find_raster("MASK", G_mapset()) != NULL) {
G_warning(_("Parallel processing disabled due to active MASK."));
if (nprocs > 1 && Rast_mask_is_present()) {
G_warning(_("Parallel processing disabled due to active make."));
nprocs = 1;
}
if (parm.radius->answer) {
Expand Down
4 changes: 2 additions & 2 deletions raster/r.resamp.interp/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,8 @@ int main(int argc, char *argv[])
"threads setting."));
threads = 1;
#endif
if (threads > 1 && G_find_raster("MASK", G_mapset()) != NULL) {
G_warning(_("Parallel processing disabled due to active MASK."));
if (threads > 1 && Rast_mask_is_present()) {
G_warning(_("Parallel processing disabled due to active mask."));
threads = 1;
}
bufrows = atoi(memory->answer) * (((1 << 20) / sizeof(DCELL)) / dst_w.cols);
Expand Down
4 changes: 2 additions & 2 deletions raster/r.series/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -227,8 +227,8 @@ int main(int argc, char *argv[])
"threads setting."));
nprocs = 1;
#endif
if (nprocs > 1 && G_find_raster("MASK", G_mapset()) != NULL) {
G_warning(_("Parallel processing disabled due to active MASK."));
if (nprocs > 1 && Rast_mask_is_present()) {
G_warning(_("Parallel processing disabled due to active mask."));
nprocs = 1;
}
lo = -INFINITY;
Expand Down
4 changes: 2 additions & 2 deletions raster/r.sim/r.sim.sediment/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ PGM=r.sim.sediment

EXTRA_CLEAN_DIRS=doxygenhtml

LIBES = $(SIMLIB) $(GMATHLIB) $(GISLIB) $(OPENMP_LIBPATH) $(OPENMP_LIB)
DEPENDENCIES = $(SIMDEP) $(GMATHDEP) $(GISDEP)
LIBES = $(SIMLIB) $(GMATHLIB) $(GISLIB) $(RASTERLIB) $(OPENMP_LIBPATH) $(OPENMP_LIB)
DEPENDENCIES = $(SIMDEP) $(GMATHDEP) $(GISDEP) $(RASTERDEP)
EXTRA_INC = $(OPENMP_INCPATH) $(VECT_INC)
EXTRA_CFLAGS = -I ../simlib $(VECT_CFLAGS) $(OPENMP_CFLAGS)

Expand Down
5 changes: 3 additions & 2 deletions raster/r.sim/r.sim.sediment/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@
#endif
#include <grass/gis.h>
#include <grass/vector.h>
#include <grass/raster.h>
#include <grass/linkm.h>
#include <grass/bitmap.h>
#include <grass/glocale.h>
Expand Down Expand Up @@ -380,8 +381,8 @@ int main(int argc, char *argv[])
#else
threads = 1;
#endif
if (threads > 1 && G_find_raster("MASK", G_mapset()) != NULL) {
G_warning(_("Parallel processing disabled due to active MASK."));
if (threads > 1 && Rast_mask_is_present()) {
G_warning(_("Parallel processing disabled due to active mask."));
threads = 1;
}
G_message(_("Number of threads: %d"), threads);
Expand Down
4 changes: 2 additions & 2 deletions raster/r.sim/r.sim.water/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ PGM=r.sim.water

EXTRA_CLEAN_DIRS=doxygenhtml

LIBES = $(SIMLIB) $(GMATHLIB) $(GISLIB) $(OPENMP_LIBPATH) $(OPENMP_LIB)
DEPENDENCIES = $(SIMDEP) $(GMATHDEP) $(GISDEP)
LIBES = $(SIMLIB) $(GMATHLIB) $(GISLIB) $(RASTERLIB) $(OPENMP_LIBPATH) $(OPENMP_LIB)
DEPENDENCIES = $(SIMDEP) $(GMATHDEP) $(GISDEP) $(RASTERDEP)
EXTRA_INC = $(VECT_INC) $(OPENMP_INCPATH)
EXTRA_CFLAGS = -I ../simlib $(VECT_CFLAGS) $(OPENMP_CFLAGS)

Expand Down
5 changes: 3 additions & 2 deletions raster/r.sim/r.sim.water/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@
#endif
#include <grass/gis.h>
#include <grass/vector.h>
#include <grass/raster.h>
#include <grass/linkm.h>
#include <grass/bitmap.h>
#include <grass/glocale.h>
Expand Down Expand Up @@ -407,8 +408,8 @@ int main(int argc, char *argv[])
#else
threads = 1;
#endif
if (threads > 1 && G_find_raster("MASK", G_mapset()) != NULL) {
G_warning(_("Parallel processing disabled due to active MASK."));
if (threads > 1 && Rast_mask_is_present()) {
G_warning(_("Parallel processing disabled due to active mask."));
threads = 1;
}
G_message(_("Number of threads: %d"), threads);
Expand Down
4 changes: 2 additions & 2 deletions raster/r.slope.aspect/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -305,8 +305,8 @@ int main(int argc, char *argv[])
"threads setting."));
nprocs = 1;
#endif
if (nprocs > 1 && G_find_raster("MASK", G_mapset()) != NULL) {
G_warning(_("Parallel processing disabled due to active MASK."));
if (nprocs > 1 && Rast_mask_is_present()) {
G_warning(_("Parallel processing disabled due to active mask."));
nprocs = 1;
}
radians_to_degrees = 180.0 / M_PI;
Expand Down
4 changes: 2 additions & 2 deletions raster/r.sun/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -591,8 +591,8 @@ int main(int argc, char *argv[])
#else
threads = 1;
#endif
if (threads > 1 && G_find_raster("MASK", G_mapset()) != NULL) {
G_warning(_("Parallel processing disabled due to active MASK."));
if (threads > 1 && Rast_mask_is_present()) {
G_warning(_("Parallel processing disabled due to active mask."));
threads = 1;
}
G_message(_("Number of threads <%d>"), threads);
Expand Down
4 changes: 2 additions & 2 deletions raster/r.univar/r.univar_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -192,8 +192,8 @@ int main(int argc, char *argv[])
sscanf(param.nprocs->answer, "%d", &nprocs);
if (nprocs < 1)
G_fatal_error(_("<%d> is not valid number of nprocs."), nprocs);
if (nprocs > 1 && G_find_raster("MASK", G_mapset()) != NULL) {
G_warning(_("Parallel processing disabled due to active MASK."));
if (nprocs > 1 && Rast_mask_is_present()) {
G_warning(_("Parallel processing disabled due to active mask."));
nprocs = 1;
}
#if defined(_OPENMP)
Expand Down
4 changes: 2 additions & 2 deletions vector/v.surf.rst/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ PGM=v.surf.rst

EXTRA_CLEAN_DIRS=doxygenhtml

LIBES = $(INTERPFLLIB) $(QTREELIB) $(INTERPDATALIB) $(GMATHLIB) $(VECTORLIB) $(DBMILIB) $(GISLIB) $(MATHLIB)
LIBES = $(INTERPFLLIB) $(QTREELIB) $(INTERPDATALIB) $(GMATHLIB) $(RASTERLIB) $(VECTORLIB) $(DBMILIB) $(GISLIB) $(MATHLIB)
EXTRA_LIBS = $(OPENMP_LIBPATH) $(OPENMP_LIB)
DEPENDENCIES = $(INTERPFLDEP) $(QTREEDEP) $(INTERPDATADEP) $(GMATHDEP) $(VECTORDEP) $(DBMIDEP) $(GISDEP)
DEPENDENCIES = $(INTERPFLDEP) $(QTREEDEP) $(INTERPDATADEP) $(GMATHDEP) $(RASTERDEP) $(VECTORDEP) $(DBMIDEP) $(GISDEP)
EXTRA_INC = $(VECT_INC) $(OPENMP_INCPATH)
EXTRA_CFLAGS = $(VECT_CFLAGS) $(OPENMP_CFLAGS)

Expand Down
5 changes: 3 additions & 2 deletions vector/v.surf.rst/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@

#include <grass/gis.h>
#include <grass/vector.h>
#include <grass/raster.h>
#include <grass/dbmi.h>
#include <grass/glocale.h>
#include <grass/linkm.h>
Expand Down Expand Up @@ -419,8 +420,8 @@ int main(int argc, char *argv[])
G_warning(_("GRASS GIS is not compiled with OpenMP support, parallel "
"computation is disabled."));
#endif
if (threads > 1 && G_find_raster("MASK", G_mapset()) != NULL) {
G_warning(_("Parallel processing disabled due to active MASK."));
if (threads > 1 && Rast_mask_is_present()) {
G_warning(_("Parallel processing disabled due to active mask."));
threads = 1;
}
if (devi) {
Expand Down

0 comments on commit 108e5e4

Please sign in to comment.