diff --git a/INSTALL.md b/INSTALL.md index ae5e7e3c043..45816816d29 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -39,6 +39,7 @@ The install order matters. GRASS needs at least two libraries which have to be installed before installing/compiling GRASS: <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD For links to the software, see [REQUIREMENTS.md](REQUIREMENTS.md) in this directory. ======= @@ -49,6 +50,10 @@ directory: For links to the software, see ./REQUIREMENTS.html in this directory: >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +For links to the software, see [REQUIREMENTS.md](REQUIREMENTS.md) in this +directory. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Installation order: @@ -101,6 +106,7 @@ The command, explains the options used to disable the compilation of non-mandatory <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD GRASS modules. See [REQUIREMENTS.md](REQUIREMENTS.md) for details on dependencies. ======= GRASS modules. See REQUIREMENTS.html for details on dependencies. @@ -108,6 +114,9 @@ GRASS modules. See REQUIREMENTS.html for details on dependencies. ======= GRASS modules. See REQUIREMENTS.html for details on dependencies. >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +GRASS modules. See [REQUIREMENTS.md](REQUIREMENTS.md) for details on dependencies. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Detailed Wiki notes for various operating systems (MS-Windows, GNU/Linux distributions, FreeBSD, AIX, etc) are available at: diff --git a/Makefile b/Makefile index c359bcebaec..4969aaa0448 100644 --- a/Makefile +++ b/Makefile @@ -63,12 +63,15 @@ DIRS = \ SUBDIRS = $(DIRS) +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD FILES = AUTHORS CITING COPYING GPL.TXT INSTALL.md REQUIREMENTS.md contributors.csv contributors_extra.csv translators.csv ======= ======= >>>>>>> b5acd78515 (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 10cb905c76 (r.horizon manual - fix typo (#2794)) <<<<<<< HEAD FILES = AUTHORS CHANGES CITING COPYING GPL.TXT INSTALL.md REQUIREMENTS.md contributors.csv contributors_extra.csv translators.csv ======= @@ -80,7 +83,13 @@ FILES = AUTHORS CHANGES CITING COPYING GPL.TXT INSTALL.md REQUIREMENTS.html cont ======= FILES = AUTHORS CHANGES CITING COPYING GPL.TXT INSTALL.md REQUIREMENTS.html contributors.csv contributors_extra.csv translators.csv >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +<<<<<<< HEAD >>>>>>> b5acd78515 (wxpyimgview: explicit conversion to int (#2704)) +======= +======= +FILES = AUTHORS CHANGES CITING COPYING GPL.TXT INSTALL.md REQUIREMENTS.md contributors.csv contributors_extra.csv translators.csv +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) +>>>>>>> 10cb905c76 (r.horizon manual - fix typo (#2794)) FILES_DST = $(patsubst %,$(ARCH_DISTDIR)/%,$(FILES)) default: diff --git a/REQUIREMENTS.md b/REQUIREMENTS.md index 7b2757d38f5..99a6f1b15e0 100644 --- a/REQUIREMENTS.md +++ b/REQUIREMENTS.md @@ -65,15 +65,21 @@ Note: also the respective development packages (commonly named `xxx-dev` or [https://mesa3d.org/](https://mesa3d.org/) - **libpng** (for `r.out.png` and the PNG driver), usually already installed. [http://www.libpng.org/pub/png/libpng.html](http://www.libpng.org/pub/png/libpng.html) +<<<<<<< HEAD - **LIBSVM** (for SVM classification modules `i.svm.train` and `i.svm.predict`) [https://www.csie.ntu.edu.tw/~cjlin/libsvm/](https://www.csie.ntu.edu.tw/~cjlin/libsvm/) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) - **libtiff** (for `r.out.tiff`), usually already installed. [https://gitlab.com/libtiff/libtiff](https://gitlab.com/libtiff/libtiff) - **readline** for extra command prompt functionality [https://tiswww.case.edu/~chet/readline/rltop.html](https://tiswww.case.edu/~chet/readline/rltop.html) [ftp://ftp.gnu.org/gnu/readline](ftp://ftp.gnu.org/gnu/readline) +<<<<<<< HEAD - **PDAL** ( for LAS import modules `r.in.pdal` and `v.in.pdal`) [https://pdal.io](https://pdal.io) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) - **PostgreSQL libraries** (for the PostgreSQL database interface and PostGIS support) [https://www.postgresql.org](https://www.postgresql.org) - **MariaDB/MySQL libraries** (for the MySQL database interface) @@ -86,6 +92,13 @@ Note: also the respective development packages (commonly named `xxx-dev` or [https://cran.r-project.org](https://cran.r-project.org) - **FreeType2** (for TrueType font support and `d.text.freetype`) [https://freetype.org/](https://freetype.org/) +<<<<<<< HEAD +======= +- **Ctypes** (for ctypes interface) + Ctypes can be added as a third-party module in Python 2.3 and + 2.4 - [https://pypi.org/project/ctypes/1.0.2/](https://pypi.org/project/ctypes/1.0.2/) + [https://docs.python.org/library/ctypes.html](https://docs.python.org/library/ctypes.html) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) - **wxPython >= 2.8.10.1** (for wxGUI) [https://www.wxpython.org](https://www.wxpython.org) - **NumPy >= 1.0.4** (for various wxGUI components and pyGRASS) @@ -107,6 +120,13 @@ Note: also the respective development packages (commonly named `xxx-dev` or [https://matplotlib.org/](https://matplotlib.org/) - **python-termcolor** (recommended for `g.search.modules`) [https://pypi.org/project/termcolor/](https://pypi.org/project/termcolor/) +<<<<<<< HEAD +======= +- **six** (`python-six`, needed for Python API and for cross-version Python + compatibility) + [https://pypi.python.org/pypi/six](https://pypi.python.org/pypi/six) + [https://github.com/benjaminp/six](https://github.com/benjaminp/six) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) - **FFMPEG or alternative** (for wxGUI Animation tool - `g.gui.module`), specifically ffmpeg tool [https://ffmpeg.org](https://ffmpeg.org) @@ -135,7 +155,11 @@ MacOSX users may go here to download precompiled libraries etc.: --- +<<<<<<< HEAD © _GRASS Development Team 1997-2024_ +======= +© _GRASS Development Team 1997-2023_ +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Please report bugs here: [https://grass.osgeo.org/contribute/](https://grass.osgeo.org/contribute/) diff --git a/aclocal.m4 b/aclocal.m4 index 03532af0d00..ef8e25be429 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -217,12 +217,16 @@ CPPFLAGS="$5 $CPPFLAGS" AC_RUN_IFELSE([AC_LANG_SOURCE([[ <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD #include ======= ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) #include >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +#include +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) #include <$1> int main(void) { FILE *fp = fopen("conftestdata","w"); @@ -607,6 +611,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ #LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-Wl,-rpath-link,${LIB_RUNTIME_DIR} -Wl,-rpath,${INST_DIR}/lib' <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD # TODO: add optional pthread support with any combination of: # CFLAGS="$CFLAGS -pthread" @@ -617,6 +622,9 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) # TODO: add optional pthread support with any combination of: +======= + # TODO: add optional pthread support with any combination of: +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) # CFLAGS="$CFLAGS -pthread" # LDFLAGS="$LDFLAGS -lpthread" # AC_DEFINE(_REENTRANT, 1, [define _REENTRANT flag (for SunOS)]) @@ -801,6 +809,7 @@ AC_DEFUN([LOC_OPENMP], dnl -------------------- / OpenMP --------------------------------------------- +<<<<<<< HEAD dnl -------------------- OpenMP ----------------------------------------------- dnl OpenMP code borrowed and modified from Autoconf 2.71 (AC_OPENMP) dnl to enable Clang detection @@ -939,6 +948,8 @@ fi]) dnl -------------------- / OpenMP --------------------------------------------- +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) dnl XXXX Begin Stolen from cdrtools-2.01 dnl XXXX by Joerg Schilling et al. XXXXXXXXX diff --git a/db/drivers/dbf/table.c b/db/drivers/dbf/table.c index 5a2ae6c8ea3..0c169be4ec7 100644 --- a/db/drivers/dbf/table.c +++ b/db/drivers/dbf/table.c @@ -59,6 +59,7 @@ int add_table(char *table, char *name) res = snprintf(db.tables[db.ntables].file, buf_s, "%s/%s", db.name, name); #endif <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (res < 0 || (size_t)res >= buf_s) { ======= @@ -67,6 +68,9 @@ int add_table(char *table, char *name) ======= if (res >= buf_s) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (res < 0 || (size_t)res >= buf_s) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) db_d_append_error(_("Unable to add table %s to %s. " "The file path is too long."), name, db.name); diff --git a/db/drivers/mysql/grass-mysql.html b/db/drivers/mysql/grass-mysql.html index 2478ca3a0f7..905f0bb05fb 100644 --- a/db/drivers/mysql/grass-mysql.html +++ b/db/drivers/mysql/grass-mysql.html @@ -71,6 +71,7 @@

Indexes

Privileges

+<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD Because MySQL does not support groups of users and because @@ -79,6 +80,9 @@

Privileges

>>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) Because MySQL does not support groups of users and because >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +Because MySQL does not support groups of users and because +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) only MySQL 'root' can grant privileges to other users GRASS cannot automatically grant select privileges on created tables to group of users. @@ -95,6 +99,7 @@

Privileges

Schemas

+<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD Because MySQL does not support database schemas the parameter @@ -103,6 +108,9 @@

Schemas

>>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) Because MySQL does not support database schemas the parameter >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +Because MySQL does not support database schemas the parameter +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) 'schema' of module db.connect should never be set to any value. If you set that parameter for MySQL driver GRASS will try to write tables to the specified schema which will result @@ -110,6 +118,7 @@

Schemas

Groups

+<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD MySQL does not support user groups. Any settings specified @@ -118,6 +127,9 @@

Groups

>>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) MySQL does not support user groups. Any settings specified >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +MySQL does not support user groups. Any settings specified +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) by 'group' parameter of module db.connect are ignored by GRASS for MySQL driver. @@ -136,6 +148,7 @@

SEE ALSO

Credits

+<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD Development of the driver was sponsored by @@ -144,6 +157,9 @@

Credits

>>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) Development of the driver was sponsored by >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +Development of the driver was sponsored by +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Faunalia (Italy) as part of a project for ATAC. diff --git a/display/d.geodesic/d.geodesic.html b/display/d.geodesic/d.geodesic.html index d419b099c53..d7dda403741 100644 --- a/display/d.geodesic/d.geodesic.html +++ b/display/d.geodesic/d.geodesic.html @@ -39,7 +39,11 @@

EXAMPLE

NOTES

+<<<<<<< HEAD This program works only with longitude/latitude +======= +This program works only in GRASS locations with longitude/latitude +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) coordinate system.

SEE ALSO

diff --git a/display/d.grid/d.grid.html b/display/d.grid/d.grid.html index acd7373fb3f..4e4d10cea92 100644 --- a/display/d.grid/d.grid.html +++ b/display/d.grid/d.grid.html @@ -83,6 +83,7 @@

AUTHORS

Border support: Markus Neteler
Text and RGB support: Hamish Bowman
<<<<<<< HEAD +<<<<<<< HEAD Background color implemented as part of GSoC 2016 by Adam Laza, CTU in Prague ======= Background color implemented as part of GSoC 2016 by Adam Laza, CTU in Prague @@ -90,3 +91,6 @@

AUTHORS

>>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +Background color implemented as part of GSoC 2016 by Adam Laza, CTU in Prague +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/display/d.labels/d.labels.html b/display/d.labels/d.labels.html index 61a9f94052e..5c9d3395ec2 100644 --- a/display/d.labels/d.labels.html +++ b/display/d.labels/d.labels.html @@ -6,7 +6,11 @@

DESCRIPTION

size, and the background for the text. This file can be generated with the v.label program or simply created by the user as an ASCII file (using a text editor) and placed in the +<<<<<<< HEAD appropriate directory under the user's current mapset and project +======= +appropriate directory under the user's current mapset and location +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) (i.e. $MAPSET/paint/labels/).

NOTES

diff --git a/display/d.legend/draw.c b/display/d.legend/draw.c index beaa41d7968..08b4de3f65d 100644 --- a/display/d.legend/draw.c +++ b/display/d.legend/draw.c @@ -292,6 +292,7 @@ void draw(const char *map_name, int maptype, int color, int thin, int lines, size_t b_s = sizeof(DispFormat); int log_maxCat = (int)(log10(fabs(maxCat))) + 1; <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (snprintf(DispFormat, b_s, "%%%dd", log_maxCat) >= (int)b_s) ======= @@ -300,6 +301,9 @@ void draw(const char *map_name, int maptype, int color, int thin, int lines, ======= if (snprintf(DispFormat, b_s, "%%%dd", log_maxCat) >= b_s) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (snprintf(DispFormat, b_s, "%%%dd", log_maxCat) >= (int)b_s) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error( _("Failed to create format string with maxCat=%f."), maxCat); diff --git a/display/d.mon/start.c b/display/d.mon/start.c index 1e6db74e7fe..859a10d1336 100644 --- a/display/d.mon/start.c +++ b/display/d.mon/start.c @@ -187,6 +187,7 @@ int start_mon(const char *name, const char *output, int select, int width, sprintf(buf, "GRASS_RENDER_IMMEDIATE=default\n"); /* TODO: read settings from wxGUI */ <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (write(fd, buf, strlen(buf)) != (ssize_t)strlen(buf)) G_fatal_error(_("Failed to write to file <%s>"), env_file); @@ -248,33 +249,36 @@ int start_mon(const char *name, const char *output, int select, int width, G_fatal_error(_("Failed to write to file <%s>"), env_file); ======= if (write(fd, buf, strlen(buf)) != strlen(buf)) +======= + if (write(fd, buf, strlen(buf)) != (ssize_t)strlen(buf)) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Failed to write to file <%s>"), env_file); sprintf(buf, "GRASS_RENDER_FILE_READ=FALSE\n"); - if (write(fd, buf, strlen(buf)) != strlen(buf)) + if (write(fd, buf, strlen(buf)) != (ssize_t)strlen(buf)) G_fatal_error(_("Failed to write to file <%s>"), env_file); sprintf(buf, "GRASS_RENDER_TRANSPARENT=TRUE\n"); - if (write(fd, buf, strlen(buf)) != strlen(buf)) + if (write(fd, buf, strlen(buf)) != (ssize_t)strlen(buf)) G_fatal_error(_("Failed to write to file <%s>"), env_file); } else { sprintf(buf, "GRASS_RENDER_IMMEDIATE=%s\n", name); - if (write(fd, buf, strlen(buf)) != strlen(buf)) + if (write(fd, buf, strlen(buf)) != (ssize_t)strlen(buf)) G_fatal_error(_("Failed to write to file <%s>"), env_file); sprintf(buf, "GRASS_RENDER_FILE_READ=TRUE\n"); - if (write(fd, buf, strlen(buf)) != strlen(buf)) + if (write(fd, buf, strlen(buf)) != (ssize_t)strlen(buf)) G_fatal_error(_("Failed to write to file <%s>"), env_file); } sprintf(buf, "GRASS_RENDER_FILE=%s\n", out_file); - if (write(fd, buf, strlen(buf)) != strlen(buf)) + if (write(fd, buf, strlen(buf)) != (ssize_t)strlen(buf)) G_fatal_error(_("Failed to write to file <%s>"), env_file); sprintf(buf, "GRASS_RENDER_WIDTH=%d\n", width); - if (write(fd, buf, strlen(buf)) != strlen(buf)) + if (write(fd, buf, strlen(buf)) != (ssize_t)strlen(buf)) G_fatal_error(_("Failed to write to file <%s>"), env_file); sprintf(buf, "GRASS_RENDER_HEIGHT=%d\n", height); - if (write(fd, buf, strlen(buf)) != strlen(buf)) + if (write(fd, buf, strlen(buf)) != (ssize_t)strlen(buf)) G_fatal_error(_("Failed to write to file <%s>"), env_file); sprintf(buf, "GRASS_LEGEND_FILE=%s\n", leg_file); - if (write(fd, buf, strlen(buf)) != strlen(buf)) + if (write(fd, buf, strlen(buf)) != (ssize_t)strlen(buf)) G_fatal_error(_("Failed to write to file <%s>"), env_file); >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) @@ -284,6 +288,7 @@ int start_mon(const char *name, const char *output, int select, int width, else sprintf(buf, "GRASS_RENDER_BACKGROUNDCOLOR=%s\n", bgcolor); <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (write(fd, buf, strlen(buf)) != (ssize_t)strlen(buf)) ======= @@ -292,11 +297,15 @@ int start_mon(const char *name, const char *output, int select, int width, ======= if (write(fd, buf, strlen(buf)) != strlen(buf)) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (write(fd, buf, strlen(buf)) != (ssize_t)strlen(buf)) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Failed to write to file <%s>"), env_file); } if (truecolor) { sprintf(buf, "GRASS_RENDER_TRUECOLOR=TRUE\n"); <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (write(fd, buf, strlen(buf)) != (ssize_t)strlen(buf)) ======= @@ -305,6 +314,9 @@ int start_mon(const char *name, const char *output, int select, int width, ======= if (write(fd, buf, strlen(buf)) != strlen(buf)) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (write(fd, buf, strlen(buf)) != (ssize_t)strlen(buf)) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Failed to write to file <%s>"), env_file); } close(fd); diff --git a/display/d.rhumbline/d.rhumbline.html b/display/d.rhumbline/d.rhumbline.html index e0c6abd6974..ba43f24fd3e 100644 --- a/display/d.rhumbline/d.rhumbline.html +++ b/display/d.rhumbline/d.rhumbline.html @@ -40,7 +40,11 @@

EXAMPLE

NOTES

+<<<<<<< HEAD This program works only with longitude/latitude +======= +This program works only in GRASS locations with longitude/latitude +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) coordinate system.

SEE ALSO

diff --git a/display/d.text/d.text.html b/display/d.text/d.text.html index 85a482066ff..c16bcf92012 100644 --- a/display/d.text/d.text.html +++ b/display/d.text/d.text.html @@ -114,6 +114,7 @@

SEE ALSO

AUTHORS

+<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD James Westervelt, @@ -124,5 +125,9 @@

AUTHORS

James Westervelt, U.S. Army Construction Engineering >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +James Westervelt, +U.S. Army Construction Engineering +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Research Laboratory

Updates by Huidae Cho diff --git a/display/d.title/d.title.html b/display/d.title/d.title.html index 315704acaa0..514ba8731d1 100644 --- a/display/d.title/d.title.html +++ b/display/d.title/d.title.html @@ -15,11 +15,15 @@

DESCRIPTION

NOTES

<<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) The text created with d.text will not necessarily fit within the active display frame on the graphics monitor; the user should choose a text size appropriate to this frame. +<<<<<<< HEAD ======= The text created with d.text @@ -30,6 +34,8 @@

NOTES

>>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))

EXAMPLES

@@ -61,6 +67,7 @@

SEE ALSO

AUTHOR

+<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD James Westervelt, @@ -71,4 +78,8 @@

AUTHOR

James Westervelt, U.S. Army Construction Engineering >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +James Westervelt, +U.S. Army Construction Engineering +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Research Laboratory diff --git a/display/d.vect/d.vect.html b/display/d.vect/d.vect.html index 4ba8494c41f..47532884cc1 100644 --- a/display/d.vect/d.vect.html +++ b/display/d.vect/d.vect.html @@ -10,6 +10,7 @@

NOTES

which allow the user to specify vector type, colors, data fields, SQL queries, label size and justification, etc. +<<<<<<< HEAD

When d.vect is used with where parameter on MS Windows Command Prompt, it is important to use ˆ carret symbol for escaping special characters < > ( ) & | , ; ". @@ -17,6 +18,8 @@

NOTES

d.vect map=vector_map where="cat ˆ> 10 AND cat ˆ< 20" +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))

By default d.vect areas are filled with fill_color and outlined with color. Area outlines can be suppressed with

diff --git a/doc/development/submitting/docs.md b/doc/development/submitting/docs.md
new file mode 100644
index 00000000000..c0dfa55d8f4
--- /dev/null
+++ b/doc/development/submitting/docs.md
@@ -0,0 +1,217 @@
+# Submitting Documentation
+
+There are three types of documentation
+
+- **Library programmer's manual**: we [​use doxygen and document the functions](https://grass.osgeo.org/programming8/)
+  directly in the source code. See lib/gis/\*.c and lib/gis/gislib.dox for examples
+
+- **User manual**: each command ("module") comes with its own page. We write it
+  in simple HTML, storing the manual in a file `'.html'` within the
+  subdirectory of the module. See below for details on the structure.
+
+- **Python documentation**: written in Markdown which is compiled with Sphinx
+  (see [​PyGRASS documentation](https://grass.osgeo.org/grass-stable/manuals/libpython/pygrass_index.html))
+
+## HTML Pages
+
+The manual pages are not only fundamental for the users but also the
+"business card" of the respective module. An ideal page comes with clear
+descriptions, hints on the implemented algorithm and example(s).
+
+- Note: Do not upload broken or even empty HTML manual pages. This breaks things
+  in various places.
+- To avoid the insertion of overly complicated HTML tags (see also below), we
+  strongly suggest to use a plain text editor rather than a HTML editor for
+  editing.
+
+Important: The HTML file contains **no header nor footer**. The complete HTML
+file is autogenerated during the compilation process (indeed, it is generated
+in a virtual session directly after compilation of the module). In this virtual
+session the module is called internally with --html-description which generates
+the parameters/flags list in HTML format, along with `'.html'`, HTML
+header and footer the final HTML manual page is created and stored in the target
+binaries directory. In a separate process, the MAN format is generated from the
+complete HTML files. In order to make sure that manuals build without issues, it
+can be useful to validate the HTML before submitting, e.g. here:
+[​https://validator.w3.org/](https://validator.w3.org/)
+
+### Module Manual Pages
+
+Place the documentation in HTML format into `'.html'`, where ``
+is the name of the module. E.g. if the module is named r.example, the
+documentation file should be named r.example.html.
+
+The easiest way to do this is to study an existing HTML page (to get the page
+style, e.g. [​vector/v.to.db/v.to.db.html](https://github.com/OSGeo/grass/blob/main/vector/v.to.db/v.to.db.html)
+[manual](https://grass.osgeo.org/grass-stable/manuals/v.to.db.html)). With a few
+exceptions, header and footer are NOT allowed. You can add figures (PNG format);
+the figure name prefix should be the module name. See
+[​raster/r.terraflow/r.terraflow.html](https://github.com/OSGeo/grass/blob/main/raster/r.terraflow/r.terraflow.html)
+([manual](https://grass.osgeo.org/grass-stable/manuals/r.terraflow.html)) for
+an example.
+
+A number of major sections should be present in each help page.
+
+R = Required
+S = Suggested
+O = Optional
+
+In recommended order (in bold the required entries):
+
+```html
+**R: 

DESCRIPTION

** +S:

NOTE

,

NOTES

+S:

EXAMPLE

,

EXAMPLES

+O:

TODO

+O:

KNOWN ISSUES

+O:

REFERENCE

,

REFERENCES

+**R:

SEE ALSO

** +**R:

AUTHOR

,

AUTHORS

** +``` + +Note that the parameter manual section is auto-generated upon compilation. This +is done by running the module in a virtual session after compilation (see the +output of 'make'). To subsequently verify the final HTML page, check the +resulting HTML pages which will be stored with the name of the module. + +Examples (please add some more) should be coded like this: + +```html +
+v.to.db map=soils type=area option=area column=area_size unit=h
+
+``` + +The [​online WWW manual pages](https://grass.osgeo.org/grass-stable/manuals/) are +updated daily (from GitHub repository). + +### Supported HTML Tags + +Since the MAN conversion of g.html2man is limited, please use no other HTML +tags than: + +```html +
+


    1. +

        
      <tr> <ul> +``` + +- Note that all tags have a closing tag except for `<hr>`, `<br>` and `<p>`. +- Use lower case forms. +- Do not insert `<p>` after `<h2>...</h2>` or `<h3>...</h3>` + +Note that HTML is converted to MAN pages by [tools/g.html2man/](https://trac.osgeo.org/grass/browser/grass/trunk/tools/g.html2man) + +### Markup style guide + +- Module names (i.e., v.category) should be emphasized with `<em>module</em>`. +- Flags and parameter names written in boldface like `<b>-f</b>` and `<b>input</b>`. +- Shell commands, names, values, etc. should use `<tt>42</tt>`. +- Emphasized phrases `<i>should use italics</i>`. + +The `<h2>SEE ALSO</h2>` section of each page should also be alphabetized. + +### Footer + +No footer to be added, since it will be added automatically during compilation. + +### Break long lines + +In order to minimize potential git merge conflicts, please break a line +at approximately 70-80 chars. + +Hints: + +- "geany" editor can format a paragraph with CTRL-j +- "atom" can do that as well +- "kate": activate it in Settings -> Kate -> Editing -> General -> enable static + word-wrap, set 72 + +## Images + +Naming convention: `module_name.png` or `module_name_keyword.png` (in both +cases, dots in module name are replaced by underscores) + +Examples: + +- `d_geodesic.png` +- `r_resamp_stats_6m_20m.png` +- `g_gui_rlisetup_8.png` +- `v_clean_rmsa.png` + +Image size: ideally **600 pixel width** (height depends on that), use +e.g. ImageMagic: + +```bash +mogrify -resize 600x file.png +``` + +Smaller images are also possible when appropriate, e.g. when a lot of images +are included or they are something special, e.g. equations, icons or simple +diagrams. Larger images are supported, too, see below for an optimal inclusion +into the HTML page. + +Please **compress** PNG images with: + +```bash +# color quantization +# optional, but usually worth it +# note: may change colors +pngnq -n 128 -s 3 file.png + +# shuffle original and quantitized image names +mv file.png file_ORIG.png +mv file-nq8.png file.png + +# compress better (lossless) +optipng -o5 file.png +``` + +See helper script +[source:grass-addons/tools/svn-image.sh](https://trac.osgeo.org/grass/browser/grass-addons/tools/svn-image.sh). + +Format: Images should be ideally in PNG (well, JPG and GIF is allowed as well +when appropriate but usually it is not!). Vector graphics should be included in +pages as raster images (i.e. PNGs) for portability but the original format +(preferably SVG) should be committed to the repository as well. + +Adding the image to the HTML page (r.viewshed example, the screenshot is shown +with a width of 600 pixel but it is clickable in the manual page). If a larger +<<<<<<< HEAD +image is displayed as shrunk, both **width** and **height** HTML parameters +======= +image is displayed as shrinked, both **width** and **height** HTML parameters +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) +(values must be calculated according to the picture size!) should be set: + +```html +<div align="center" style="margin: 10px"> +<a href="r_viewshed.png"> +<img src="r_viewshed.png" width="600" height="600" alt="r.viewshed example" border="0"> +</a><br> +<i>Figure: Viewshed shown on shaded terrain (observer position in the north-east +quadrant with white dot; 5m above ground)</i> +</div> +``` + +## Wording + +When writing documentation, honor existing terminologies, names, and wording +as they are used in GRASS GIS. Obviously, the current state is not perfect or +completely consistent, so if you identify problems, discuss them with the +community and provide suggestions and reasoning for the new wording. If you +are an experienced GRASS GIS user, keep in mind new users and their first-time +experience with GRASS GIS and their experience with other software. If you are +a new user of GRASS GIS, keep in mind current users and stability of "GRASS GIS +approach." If new terminologies, not used in GRASS GIS before are needed, please +refer first to OGC and OSGeo projects, especially GDAL and PROJ. + +For example, use "module" not "function" (means something different in +programming), "tool" (OK, but too general), "program" (does not cover usage +from GUI where it is a dialog), "script" (implementation detail), or "procedure" +(uncommon in this context and similar to workflow) when talking about the +individual executables. The word "command" is applicable when talking about +what is being executed in the command line. + +To applicable extent, this applies also to source code comments, user-visible +messages and strings, debug messages, APIs, and naming of concepts in general. diff --git a/doc/development/submitting/general.md b/doc/development/submitting/general.md new file mode 100644 index 00000000000..3a732f6dc7a --- /dev/null +++ b/doc/development/submitting/general.md @@ -0,0 +1,274 @@ +# Submitting General Notes + +## Module behaviour: computational region settings + +The current region or [​computational region](https://grasswiki.osgeo.org/wiki/Computational_region) +is the actual setting of the region boundaries and the actual raster resolution. +It can be considered as region of interest (ROI). + +As a general rule in GRASS GIS (new module implementations should follow this!): + +- **Raster maps** are always imported completely at their own resolution + (exception: WMS imported layers). +- **Vector maps** are always imported completely. +- In computations, + - raster input maps are automatically cropped/padded and rescaled (using + nearest neighbour resampling) to match the current region in order to + produce the output raster map or to query values. + - Raster output maps have their bounds and resolution equal to those of the + current computational region. + - Vector maps are always considered completely. + +## Submitting code + +Be sure to develop on top of the _latest_ GRASS GIS code which is in a Git +repository on GitHub. See [​CONTRIBUTING](https://github.com/OSGeo/grass/blob/master/CONTRIBUTING.md) +file there. + +### Commit messages + +Generally, the commit message (log message) should give an information about +_what changed in the code_ and _how the change affects the functionality_. +Additionally, the change of dependencies and changes of functionality of depended +code should be discussed if applicable. + +The general format of a message is: + +```txt +module or library: description (possible Trac ticket, merge commit or related commit) +``` + +**Good examples** (of single line commit messages): + +```txt +r.to.vect: corrected x in the crowded message +g.mremove: Changed the interface to that of g.mlist and added exclude= (ticket #2228) +libraster: Added raster name and row info to get/put\_row error messages +vlib/pg: column check must be case-insensitive +wxGUI/lmgr: add measuring of distances also to Layer Manager +wxGUI: workaround for not visible toolbars on Mac with wxPython 3 +``` + +Include ticket using hash mark and ticket number, e.g. `#2228`, and another commit +(revision) using letter r and revision number, e.g. `r60975`. This will allow Trac +(and perhaps other systems) to create a link to the ticket or commit (or revision). +However, do not rely on this and always include the information about what and why +the commit is changing and how (consider browsing commit messages in command line). + +It is possible and allowed to do multiline commit messages but you should consider +the following. First, multiline commit messages should be used to provide further +details about the commit. They should not be used to describe large changes of +code. Instead, these large changes should be split into the separate commits with +shorted commit messages. Note that this not only simplifies writing of good, +simple and readable commit messages but it also makes code review and regression +testing easier. Second, if you have a lot to say about the commit you should +perhaps include this in the comments or documentation (you can refer there to +tickets or other commits too in the same way as in commit messages, although they +will not be automatically linked). + +Write the commit messages in the way that they can be used to create/update +change logs, [release](https://github.com/OSGeo/grass/releases) pages and +news in general. + +Don't include your name (or id) to commit message, this is stored separately and +automatically. However, if you are committing someone's code (e.g. path) or you +are writing the code together with someone, include his or her name. + +Include the module, library or component name as a prefix separated by colon, +e.g. `libraster:`. You don't have to include file names in the commit message, +they are managed by SVN itself. + +If you are not sure if your style is correct, ask on mailing list. + +Some **bad examples** (of single line commit messages): + +```txt +r.slope.aspect: fix compilation +(missing information what exactly was broken and reasoning behind the fix; it's +clear that we are not trying to break something by the commit) + +wxGUI/render: attempt to fix #560 +(missing information what is #560 and how we are trying to fix it) + +Add tests for Table and Columns classes +(we don't know where the classes belongs to, prefix pygrass: or +pythonlib/pygrass would tell us in this case) + +fix bug introduced in r60216 +(missing information how the bug was fixed and which bug it was) + +fix r60216 (i18n) +(it should probably say something like: wxGUI: fix insufficient handling of i18n +(introduced in r60216)) + +libraster:Added raster name and row info to get/put\_row error messages +(missing space after colon) + +d.histogram launched from map display toolbar doesn't work +(this is description of what is wrong, not how it is fixed) + +fixed loading from a file, should I backport it? +(commit messages are not for opening discussions or general communication) +``` + +### Creating (legacy) diffs + +Be sure to create unified (`diff -u`) format. "Plain" diffs (the default format) +are risky, because they will apply without warning to code which has been +substantially changed; they are also harder to read than unified. + +Such diffs should be made from the top-level directory, e.g. +`git diff display/d.vect/main.c`; that way, the diff will include the pathname +rather than just an ambiguous `main.c`. + +### Comments + +PLEASE take the time to add comments throughout your code explaining what the +code is doing. It will save a HUGE amount of time and frustration for other +programmers that may have to change your code in the future. + +### End Of Line + +Make sure a new line is at the end of each file and UNIX style newlines are +used (`\n`). + +### Branches and backports + +The GRASS GIS repository on GitHub has the "main" and several release branches. +All the development should happen in "main" (the development branch). All the other +branches are usually associated with releases and should contain stable code +which is being prepared towards the given release. + +When a bug is fixed the fix should be committed to "main", tested there, and then +backported to the release branch or branches, if appropriate. The testing before +doing a backport should include user testing, running of automated test (if +available), and compilation of the whole source tree (ideally after the +`make distclean` step). Note that testing should already be done also prior to +the original commit to "main". Also note that not all these steps have to be +done manually, you can take an advantage of our [​CI](https://github.com/OSGeo/grass/actions). + +<<<<<<< HEAD +Often there is more than one active release branch. You can also choose to backport +only to the closest branch. If you are backporting to other release branches than +just the closets one, make sure you always backport to all the branches between +"main" and the furthest branch you are backporting to. For example, let's say we +have release branches 3.6 and 3.5, if you backport to 3.5, you should backport to +3.6, too. +======= +Often there is more than one active release branch, if you are backporting, make +sure you always backport to all the branches between "main" and the furthest +branch you are backporting to. For example, let's say we have "main" and branches +8.2 and 7.8, if you backport to 8.2, you should also consider to backport to 7.8. +You can also choose to backport only to the closest branch, in our example 8.2. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) + +Backport only complete fixes. When you are not sure if the fix is complete or if +there is an possibility that some details such as wording will change, wait with +the backport for a little while and backport all the changes together to reduce +number of commits which needs to be reviewed (right now or in the future). You +can also backport multiple commits from "main" as one commit if you think it is +appropriate. + +Include the number of the pull request when you are backporting, into the commit +message, for example: `less verbose messages (backport of PR #1234)`. This will help +matching the file content in between branches and tracking if the commits were +backported. + +## Makefiles + +When writing Makefiles, use the current standard. + +If you have to use commands, please check for: + +| avoid | use instead | +|-------------------|-------------------------------| +| make target | $(MAKE) target | +| mkdir target | $(MKDIR) target | +| cp (executable) | $(INSTALL) -m 755 file target | +| cp (normal file) | $(INSTALL) -m 644 file target | +| ar | $(AR) | + + `rm`: be VERY careful with recursive remove. Also beware of removing + `$(FOO)*` if `$(FOO)` has any chance of being empty. + +Examples: see below examples or others + +[raster/r.info/Makefile](https://github.com/OSGeo/grass/blob/main/raster/r.info/Makefile) +[vector/v.edit/Makefile](https://github.com/OSGeo/grass/blob/main/vector/v.info/Makefile) + +If you are unsure, please ask on the GRASS Developers list. + +### AutoConf + +If you need to add support for a different library in the 'configure' script, you +should first seek consent in the grass-dev mailing list (see below), then you need +<<<<<<< HEAD +to expand 'configure.ac' and subsequently run `autoconf-2.71` (later versions +======= +to expand 'configure.in' and run subsequently `autoconf-2.69` (later versions +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) +will not work) to re-generate 'configure'. + +## Naming Conventions + +Have a look at the [INSTALL](https://github.com/OSGeo/grass/blob/main/INSTALL.md) +file. + +For consistency, use `README.md` rather than `README.txt` for any `README` files. + +### Variables + +GRASS/Environment variables: + +If you add a new variable, please follow the naming convention. All variables +are described in +the [variables](https://grass.osgeo.org/grass-stable/manuals/variables.html) file. + +### Modules + +Try to use module names which describe shortly the intended purpose of the module. + +The first letters for module name should be: + +```text +d. - display commands +db. - database commands +g. - general GIS management commands +i. - imagery commands +m. - miscellaneous tool commands +ps. - postscript commands +r. - raster commands +r3. - raster3D commands +v. - vector commands +``` + +Some additional naming conventions + +- export modules: (type).out.(format) eg: `r.out.arc`, `v.out.ascii` +- import module: (type).in.(format) eg: `r.in.arc`, `v.in.ascii` +- conversion modules: (type).to.(type) eg: `r.to.vect`, `v.to.rast`, `r3.to.rast` + +Avoid module names with more than two dots in the name. Example: instead of +`r.to.rast3.elev` use `r.to.rast3elev` + +## Code Quality + +Follow the best writing practices specified by GRASS +[contributing rules](https://github.com/OSGeo/grass/blob/main/CONTRIBUTING.md) +for a given language. + +Write tests for your code. See the [testing guide](https://grass.osgeo.org/grass-stable/manuals/libpython/gunittest_testing.html) +or existing examples ([g.list](https://github.com/OSGeo/grass/tree/main/general/g.list/testsuite)). + +## Contact us + +Tell the other developers about the new code using the following e-mail: + +grass-dev@… + +To subscribe to this mailing list, see +[​https://lists.osgeo.org/mailman/listinfo/grass-dev](https://lists.osgeo.org/mailman/listinfo/grass-dev) + +In case of questions feel free to contact the developers at the above mailing list. + +[​https://grass.osgeo.org/contribute/development/](https://grass.osgeo.org/contribute/development/) diff --git a/doc/development/submitting/python.md b/doc/development/submitting/python.md new file mode 100644 index 00000000000..a104e7d5a14 --- /dev/null +++ b/doc/development/submitting/python.md @@ -0,0 +1,438 @@ +# Submitting Python Code + +When submitting Python code to GRASS GIS GitHub repository +([​https://github.com/OSGeo/grass/pulls](https://github.com/OSGeo/grass/pulls)), +please take care of following rules: + +## File structure + +### GRASS module + +Instructions for the GRASS script parser can be found in the +[​g.parser](https://grass.osgeo.org/grass-stable/manuals/g.parser.html) module's +help page. + +Use the directory structure to place your script appropriately into the source +tree: scripts go into `scripts` directory. + +Also add a `Makefile` and a `<module>.html` file into this directory. See existing +Python scripts for examples. + +Add a header section to the script you submit and make sure you include the +copyright. The purpose section is meant to contain a general over view of the +code in the file to assist other programmers that will need to make changes to +your code. For this purpose use a comment and [​Python docstring](https://www.python.org/dev/peps/pep-0257/). + +Example (fictitious header for a script called _g.myscript_): + +```py +#!/usr/bin/env python + +############################################################################## +# MODULE: g.myscript +# +# AUTHOR(S): Alice Doe <email AT some domain> +# +# PURPOSE: Describe your script here from maintainer perspective +# +# COPYRIGHT: (C) 2022 Alice Doe and the GRASS Development Team +# +# This program is free software under the GNU General Public +# License (>=v2). Read the file COPYING that comes with GRASS +# for details. +############################################################################## + +"""Describe your script here from Python user perspective""" +``` + +The copyright protects your rights according to GNU General Public License +([​https://www.gnu.org/licenses/](https://www.gnu.org/licenses/)). + +You can easily autogenerate the header and parameters from an existing module +using the `--script` flag. Example: + +```bash +d.rast --script +``` + +Just select an existing module which is close to your application to save efforts. + +### Python library + +Files are placed in `lib/python`. This directory becomes a package `grass` after +compilation. Each subdirectory is a subpackage. + +## Style + +### Indentation + +Use 4-space indentation (GNU Emacs python-mode default). **Do not use tabs +(tabulators) at all**. Note that Python determines nesting based upon indentation, +so it is quite crucial to be consistent, i.e. use given rules. + +### Automation + +Use Black to format new files: + +```bash +black python_file.py +``` + +Use Flake8 to check formatting of all files: + +```bash +flake8 --extend-ignore=E203,E266,E501 --max-line-length=88 python_file.py +``` + +If the file you changed gives too many error in lines you did not change, see +if the directory or any parent directory contains a file called .flake8 which +contains a less strict configuration for this legacy code. Use it with the +`--config` pararameter: + +```bash +flake8 --config {path_to_flake8_file} {path_to_python_file} +``` + +For example like this: + +```bash +flake8 --config lib/python/.flake8 lib/python/temporal/register.py +``` + +<<<<<<< HEAD +:exclamation: +It is very convenient and recommended to [use pre-commit](./submitting.md#use-pre-commit) +to do both Black formatting and Flake8 file validation. + +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) +### Editor settings for 4-space indentation + +The correct editor settings for Python indentation + +- [​Geany](https://www.geany.org/) editor: +<<<<<<< HEAD + - Edit > Preferences > Editor > Indentation tab > Type: Spaces +======= + - Edit > Preferences > Editor > Intentation tab > Type: Spaces +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) +- [​PyCharm](https://www.jetbrains.com/pycharm/) IDE: + - already fine and includes code-linting +- [​atom](https://atom.io/) IDE: + - ... +- [​GNU Emacs](https://www.gnu.org/software/emacs/) editor: + - python-mode default +- [​spyder](https://www.spyder-ide.org/) editor: + - ... + +For the usage of editors for GRASS GIS Python programming, see +[​https://grasswiki.osgeo.org/wiki/Tools\_for\_Python\_programming#PyCharm\_IDE](https://grasswiki.osgeo.org/wiki/Tools_for_Python_programming#PyCharm_IDE) + +### PEP8 standard Style + +Follow PEP8 standard and use the `pep8` tool to check compliance of your code to +this standard. You can either install it with `pip3` or it is offered for your +operating system as package `python3-pep8` `python3-pycodestyle`. + +Update 2020: + +- `pep8` has been renamed to `pycodestyle-3` + - Use of the `pep8` tool will be removed in future, please install and use + `pycodestyle-3` instead. + +Note that not all code is currently compliant to complete PEP8, so we are using +a custom configuration stored in `tools/pep8config.txt` +([​here](https://github.com/OSGeo/grass/blob/master/tools/pep8config.txt) shipped +within the GRASS GIS source code), so use: + +```bash +pycodestyle-3 --config=grass_master/tools/pep8config.txt directory_to_check +``` + +Alternatively, you can use `pycodestyle-3` with `--diff` option to check just +the parts of the code you have changed: + +```bash +git diff | pycodestyle-3 --diff --config=grass_master/tools/pep8config.txt +``` + +The best practice is to use `pycodestyle-3` with default configuration (i.e., +without custom configuration file) for new files and new code in old files. + +Do not fix (intentionally or unintentionally) existing style issues in code +(at lines) you are not changing. If you are fixing style issues, do it in a +separate commit. + +Summary of the most important rules: + +- Make sure a new line is at the end of each file. + +- Use three double quotes for docstrings (`"""..."""`). Use double quotes for + translatable (user visible) strings, single quotes for the rest. +- Remove trailing whitespace from the end of lines. Empty lines should not contain + any spaces. +- Put space between operators: + +```py +# use this: +angle = angle * pi / 180 +# not this: +angle = angle*pi/180 +``` + +- Do not use space around parentheses: + +```py +# use this: +grass.run_command('g.region', raster='myrast') +# not this: +grass.run_command( 'g.region', raster='myrast' ) +``` + +- Do not use space around '=' in a keyword argument: + +```py +# use this: +grass.run_command('g.region', raster='myrast') +# not this: +grass.run_command( 'g.region', raster = 'myrast' ) +``` + +- Use space after comma: + +```py +# use this: +a = [1, 2, 3] +# not this: +a = [1,2,3] +``` + +- Good practice is to use named parameters in functions: + +```py +# use this: +dlg = wx.FileDialog(parent=self, message=_("Choose file to save current workspace"), + wildcard=_("GRASS Workspace File (*.gxw)|*.gxw"), style=wx.FD_SAVE) +# not this: +dlg = wx.FileDialog(self, _("Choose file to save current workspace"), + _("GRASS Workspace File (*.gxw)|*.gxw"), wx.FD_SAVE) +``` + +## Writing the code + +### Temporary files + +Create and use secure temporary files and directories. Use the grass.tempfile() +or grass.tempdir() functions to do this. e.g. + +```py +# setup temporary file +TMP = grass.tempfile() +if TMP is None: + grass.fatal("Unable to create temporary files") +``` + +TODO: this needs to be fixed, it's more complicated + +### Temporary region + +If your script needs to modify computational region, use the following functions: + +```py +grass.use_temp_region() +# now you can safely modify the region +grass.run_command('g.region', raster='input') +# and when you are done: +grass.del_temp_region() +``` + +Note that changing computational region is usually not necessary and not even +expected. Typically, user sets region before running the script and expects all +computations to be done within this region. + +### Checking inputs of a module + +Use grass.findfile() when there is a need to test if a map exists. + +```py +# test for input raster map +result = grass.find_file(name=map_name, element='cell', quiet=True) +if not result['file'] + grass.fatal("Raster map <%s> not found" % map_name) + +# test for input vector map +result = grass.find_file(name=map_name, element='vector', quiet=True) +if not result['file'] + grass.fatal("Vector map <%s> not found" % map_name) +``` + +... and so forth. See 'g.manual g.findfile' for details. + +### Overwrite maps + +Do not use `overwrite=True` when calling a module from a Python script, if to +overwrite or not should be automatically detected based on calling of the script +with `--o` or without. + +### Messages + +For any informational output, use the grass.message() function. For error +messages should be used grass.fatal\_error() or grass.error() and for warnings +grass.warning(). For debugging purposes grass.debug(). + +```py +# normal message: +grass.message(_("Done")) + +# verbose message: +grass.verbose(_("Computation finished successfully")) + +# warning: +grass.warning(_("No input values found, using default values")) + +# error: +grass.error(_("No map found")) + +# fatal error: +# prints error and exits or raises exception (use set_raise_on_error to set the behavior) +grass.fatal_error("No map found, exiting") + +# debug output (use g.gisenv to enable/disable) +# debug level is 1 to 5 (5 is most detailed) +grass.debug(_("Our calculated value is: %d" % value), 3) +``` + +Do not use the `print` statement (print function in Python 3) for informational +output. This is reserved for standard module output if it has one. + +### Translations + +To enable translating of messages to other languages (than English), use full +<<<<<<< HEAD +strings, e.g. (good example): +======= +strings, e.g. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) + +```py +if ...: + win.SetLabel(_("Name for new 3D raster map to create")) +else: + win.SetLabel(_("Name for new raster map to create")) +``` + +<<<<<<< HEAD +instead of constructing string from several parts (bad example): +======= +instead of constructing string from several parts: +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) + +```py +if ...: + maplabel = 'raster map' +else: + maplabel = '3D raster map' +win.SetLabel(_("Name for new %s to create") % maplabel) +``` + +Sometimes the string might have different translation depending on the context +(is it a verb or a noun? matching ending of a word for particular gender; etc). +To help translators, it is suggested to add a comment explaining the context of +string. The comment must start with GTC keyword and must be on a line before +string: + +```py +self.bwizard = wx.Button(..., + # GTC New location + label = _("N&ew")) + +# GTC %s will be replaced with name of current shell +grass.message(_("Running through %s") % shellname) +``` + +See also locale/README for more information on translation process and related +issues. + +### Adding description and keywords + +Each module needs to have a description and at least 3 keywords. Here an example +from scripts/g.extension/g.extension.py: + +<!-- markdownlint-disable line-length --> +```py +\# %module +# % label: Maintains GRASS Addons extensions in local GRASS installation. +# % description: Downloads and installs extensions from GRASS Addons repository or other source into the local GRASS installation or removes installed extensions. +# % keyword: general +# % keyword: installation +# % keyword: extensions +# % keyword: addons +# % keyword: download +# %end +``` +<!-- markdownlint-enable line-length --> + +Notes: + +- the **first** keyword is the module family (**g**.list belongs to "general") + which go to the [module family index](https://grass.osgeo.org/grass74/manuals/general.html) + in the manual +- the **second** keyword is the overall topic which go to the + [topic index](https://grass.osgeo.org/grass74/manuals/topics.html) in the manual +- the **third\* (and more) keyword is describing further keywords which go to + the [keyword index](https://grass.osgeo.org/grass74/manuals/keywords.html) in + the manual** + +These index manual pages are autogenerated during the build process of GRASS GIS. + +### Dependencies on external Python libraries + +With dependencies on external, non-standard modules should use lazy imports: +[​https://lists.osgeo.org/pipermail/grass-dev/2018-October/090321.html](https://lists.osgeo.org/pipermail/grass-dev/2018-October/090321.html) + +## Documentation and comments + +Comment your classes and functions with docstrings. Use Sphinx (reStructuredText) +syntax. + +Comment also the code itself such as the meaning of variables, conditions etc. + +Take the time to add comments throughout your code explaining what the code is +doing. It will save a huge amount of time and frustration for other programmers +that may have to change your code in the future. + +## Checking the code + +Use tools such as [​pylint](https://www.pylint.org/) and pep8 to check your code +(both style and correctness). Just note that default settings of these tools is +not fully compatible with wxGUI/wxPython style and that some of the reported +errors may not apply to your code. + +## Testing + +[​https://grass.osgeo.org/grass-stable/manuals/libpython/](https://grass.osgeo.org/grass-stable/manuals/libpython/) + +## See also + +### Related submitting rules + +- [General](./general.md) general GRASS and git instructions +- [Docs](./docs.md) user documentation of modules and GUI +- [wxGUI](./wxGUI.md) wxPython-based GUI has its own rules + +### GRASS GIS documentation + +- GRASS Programming manual for C API and existing classes: + [​https://grass.osgeo.org/programming8/](https://grass.osgeo.org/programming8/) + (add more specific link) +- GRASS scripts in Python: [​https://grasswiki.osgeo.org/wiki/GRASS\_and\_Python](https://grasswiki.osgeo.org/wiki/GRASS_and_Python) +- GRASS scripts in PyGRASS: [​https://grass.osgeo.org/grass-stable/manuals/libpython/](https://grass.osgeo.org/grass-stable/manuals/libpython/) +- Python based wxGUI: [​https://grass.osgeo.org/grass-stable/manuals/wxgui/](https://grass.osgeo.org/grass-stable/manuals/wxgui/) + +### External documentation + +- Style Guide for Python Code: [​https://peps.python.org/pep-0008/](https://peps.python.org/pep-0008/) +- Python Style Guide by Guido van Rossum: + [​https://www.python.org/doc/essays/styleguide/](https://www.python.org/doc/essays/styleguide/) +- Additional info on Python docstrings: + [​https://epydoc.sourceforge.net/docstrings.html](https://epydoc.sourceforge.net/docstrings.html) diff --git a/doc/development/submitting/submitting.md b/doc/development/submitting/submitting.md new file mode 100644 index 00000000000..6d61a08bc66 --- /dev/null +++ b/doc/development/submitting/submitting.md @@ -0,0 +1,136 @@ +# GRASS GIS development + +GRASS - Geographic Resources Analysis Support System has been under continual +development since 1982. The strength and success of GRASS GIS relies on the user +community. With this in mind, the philosophy of the GRASS Development Team is to +encourage users to develop their own unique tools and applications for GRASS. If +you develop tools and techniques that you feel would benefit other GRASS users, +please see below how to structure code and documentation for the benefit of all. + +## Submitting rules + +Be sure to check your code against these rules: + +- [General notes](./general.md) +- [C code](./submitting_c.md) +- [Python code](./python.md) +- [wxGUI code](./wxGUI.md) (wxPython-based GUI code) +- [Documentation-related notes](./docs.md) (HTML, MAN) +- [User message standardization](./message_standardization.md): formatting, + standard phrases, i18N etc. + +<<<<<<< HEAD +### Use pre-commit + +It is highly recommended to install and use [pre-commit](https://pre-commit.com) +before submitting any new or modified code or any other content. The pre-commit +Git hooks set checks validity and executes automated formatting for +a range of file formats, including C/C++ and Python. Pre-commit installs +all necessary tools in a virtual environment upon first use. + +If you never used pre-commit before, you must start by installing it on your +system. You only do it once: + +```bash +python -m pip install pre-commit +``` + +Pre-commit must then be activated in the code repository. Change the directory +to the root folder and use the `install` command: + +```bash +cd <grass_source_dir> + +# once per repo +pre-commit install +``` + +Pre-commit will then be automatically triggered by the `git commit` command. If +it finds any problem it will abort the commit and try to solve it automatically. +In that case review the changes and run again `git add` and +`git commit`. + +It is also possible to run pre-commit manually, e.g: + +```bash +pre-commit run clang-format --all-files +pre-commit run black --all-files +``` + +Or to target a specific set of files: + +```bash +pre-commit run --files raster/r.somemodule/* +``` + +The pre-commit hooks set is defined in +[.pre-commit-config.yaml](../../../.pre-commit-config.yaml). + +It is possible to temporally disable the pre-commit hooks in the repo, e.g. while +working on older branches: + +```bash +# backporting... +pre-commit uninstall +``` + +And to reactivate pre-commit again: + +```bash +git switch main +pre-commit install +``` + +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) +## GRASS GIS programming best practice + +There are many unwritten rules how GRASS modules should work, what they should +do and what they shouldn't do. There is always some reason why some things are +considered as "good" or "bad", still they are just noted in some long GRASS +developer mailing list conversations. These pages here aim at collecting such +ideas which are floating around in the +[​GRASS-dev](https://lists.osgeo.org/mailman/listinfo/grass-dev) mailing list (and +other places) to help new module developers/bugfixers to understand many little +tricks how GRASS modules should work. + +### New list item adding guide + +List items should be short and general. Add only things that are relevant to all +modules or module groups. There should be reason why such rule/hint exists - add +reference to ML archive thread or short description why such rule is important. +Look into the documentation above for already existing specific rules. Feel free +to add code/pseudocode samples, if they apply. + +## GRASS best practice list (unsorted) + +- Read the rules above +- All GRASS modules should accept map names in format "map@mapset". [​https://lists.osgeo.org/pipermail/grass-dev/2008-February/035629.html](https://lists.osgeo.org/pipermail/grass-dev/2008-February/035629.html) +- Module should **not** write/change maps in other mapsets than current mapset. [​https://lists.osgeo.org/pipermail/grass-dev/2008-February/035637.html](https://lists.osgeo.org/pipermail/grass-dev/2008-February/035637.html) + +## GRASS GIS Addons + +- Check your code against the **Submitting rules** (see above) +- Upload your code with the git client ([git usage](https://trac.osgeo.org/grass/wiki/HowToGit)) +- Once uploaded to the GRASS GIS Addons GitHub repository: + - Addons appear in the [​Addons manual pages](https://grass.osgeo.org/grass-stable/manuals/addons/) + when being registered in the parent Makefile + - note to devs only: the addons are created via cronjobs on the server (user + can install them via g.extension) + +- GRASS GIS Python Addons + - with dependencies on external, non-standard modules should use lazy imports: + [​https://lists.osgeo.org/pipermail/grass-dev/2018-October/090321.html](https://lists.osgeo.org/pipermail/grass-dev/2018-October/090321.html) + - that represent sets of modules and eventually also share functions across + modules can be grouped into one addon directory, like e.g.: + - [​https://github.com/OSGeo/grass-addons/tree/master/grass7/gui/wxpython/wx.metadata](https://github.com/OSGeo/grass-addons/tree/master/grass7/gui/wxpython/wx.metadata) + or + - [​https://github.com/OSGeo/grass-addons/tree/master/grass7/raster/r.green](https://github.com/OSGeo/grass-addons/tree/master/grass7/raster/r.green) + +## Submitting code to GitHub + +See [HowToGit](https://trac.osgeo.org/grass/wiki/HowToGit) + +## See also + +- [​https://grass.osgeo.org/contribute/development/](https://grass.osgeo.org/contribute/development/) diff --git a/doc/development/submitting/submitting_c.md b/doc/development/submitting/submitting_c.md new file mode 100644 index 00000000000..9d9348b4484 --- /dev/null +++ b/doc/development/submitting/submitting_c.md @@ -0,0 +1,513 @@ +# Submitting C code + +When submitting C code to GRASS GIS GitHub repository, please take care of +following rules (see also +[RFC/7_LanguageStandardsSupport](https://trac.osgeo.org/grass/wiki/RFC/7_LanguageStandardsSupport#CLanguage)): + +## API Manual + +Get and read the GRASS Programmer's Manual here: + +<https://grass.osgeo.org/programming8/> + +Or generate it from this source code (the programmer's manual is integrated in +the source code in doxygen style): + +```bash +make htmldocs +make pdfdocs +``` + +## Directory Conventions + +Use the directory structure to place your module appropriately into the source tree + +- libraries go into `lib/` +- raster modules go into `raster/` +- vector modules go into `vector/` +- ... + +Consider to take a look at "GNU Coding Standards": +<https://www.gnu.org/prep/standards/> + +## Headers + +Add a header section to file main.c of your module and make sure you include the +copyright. The purpose section is meant to contain a general overview of the code +in the file to assist other programmers that will need to make changes to your +code. If you are modifying an existing file you may under no circumstances remove +prior copyright or licensing text that is not your own, even for a major rewrite. +If any original code or code that is in part derived from another's original work +remains, it must be properly cited. + +Example: + +```c +/**************************************************************************** + * + * MODULE: g.foo + * AUTHOR(S): John Doe <jdoe at somewhere org> + * PURPOSE: Provide short description of module here... + * COPYRIGHT: (C) 2010 by John Doe, and the GRASS Development Team + * + * This program is free software under the GNU General Public + * License (>=v2). Read the COPYING file that comes with GRASS + * for details. + * + *****************************************************************************/ +``` + +The copyright protects your rights according to GNU General Public License +<https://www.gnu.org>. + +### GRASS Config Header + +To ensure that the software system continues to work, please include + +`#include <grass/config.h>` + +in your files and make use of the various system dependencies contained therein. +As one example of this, see [lib/gmath/fft.c​](../../../lib/gmath/fft.c). Please +refrain from declaring system functions within the software; include the proper +header files (conditionally dependent on config.h macros if necessary) instead. + +### Other Headers + +Order of include headers + +In general, headers should be included in the order: + +1. Core system headers (stdio.h, ctype.h, ...) +2. Headers for non-core system components (X11, libraries). +3. Headers for core systems of the package being compiled + (grass/gis.h, grass/glocale.h, ...) +4. Headers for the specific library/program being compiled (geodesic.h, ...) + +Each class of header has an obligation to be compatible with those above it in +the list, but not those below it. + +## Functions + +### Void + +Always specify the return type for ALL functions including those that return type +"void", and insert return statements for any function which returns a value. + +Also, use ANSI C prototypes to declare your functions. For module return values, +see "Exit status" below. + +Examples: + +```c +void G_something(void); +int G_something_else(int, int); + +void G_something(void) +{ + /* Snipped out code */ + + return; +} + +int G_something_else(int x, int y) +{ + /* Snipped out code */ + + return 0; +} +``` + +### G_asprintf() + +Use the GRASS library function G_asprintf() instead of the standard C functions +asprintf(), vsnprintf() and snprintf(). These functions are not portable or have +other issues. Example: + +```c +char *msg; + +G_asprintf(&msg, "%s", parameters); +do_something_with_msg(); +G_free(msg); +``` + +Note that you should free memory when G_asprintf() is used. + +### Memory Allocations + +Use the following GRASS library functions instead of the standard C functions. +The reason for this is that the following functions ensure good programming +practice (e.g. always checking if memory was allocated) and/or improves +portability. PLEASE refer to the programmers manual for the proper use (e.g. +determining if any casts are needed for arguments or return values) of these +library functions. They may perform a task slightly different from their +corresponding C library function, and thus, their use may not be the same. + +```c +G_malloc(); // instead of malloc() +G_calloc(); // instead of calloc() +G_realloc(); // instead of realloc() +G_free(); // instead of free() +G_getenv(); // instead of getenv() +G_setenv(); // instead of setenv() +G_unsetenv(); // instead of unsetenv() +G_sleep(); // instead of sleep() +``` + +Could somebody please add others (please verify that they are useful and safe +first) + +### Naming Conventions + +Use function names which fulfill the official GNU naming convention: +<https://www.gnu.org/prep/standards/html_node/Names.html#Names> + +<<<<<<< HEAD +Instead of naming a function like: MyNewFunction() use underscores for separation +======= +Instead of naming a function like: MyNewFunction() use underscores for seperation +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) +and lower case letters: my_new_function()`. + +### Comments + +If you want to comment code portions, use + +```c +#ifdef notdef + portion_to_be_commented; +#endif +``` + +This is safe comparing to nested `/* comments */` + +Functions in the library must be documented in doxygen style to get them into the +programmer's manual (generate with make pdfdocs or make htmldocs). See +[lib/gis/](../../../lib/gis/) for examples. + +### Documentation in Doxygen + +Use doxygen style for source code documentation. It is required for GRASS libraries, +but also recommended for GRASS modules. + +Do not use structural command inside documentation block since it leads to some +duplication of information (e.g. do not use \fn command in comment blocks). The +exception is \file command for documenting a file, in this case structural command +is required. + +For files + +```c +/*! + \file snap.c + + \brief Vector library - Clean vector map (snap lines) + + (C) 2001-2008 by the GRASS Development Team + + This program is free software under the GNU General Public + License (>=v2). Read the file COPYING that comes with GRASS + for details. + + \author Radim Blazek +*/ +``` + +For functions + +<!-- markdownlint-disable line-length --> +```c +/*! + \brief Snap lines in vector map to existing vertex in threshold + + For details see Vect_snap_lines_list() + + \param Map pointer to input vector map + \param type filter features of given type to be snap + \param thresh threshold value for snapping + \param[out] Err pointer to vector map where lines representing snap are written or NULL + \param[out] msgout file pointer where messages will be written or NULL + + \return 1 +*/ +``` +<!-- markdownlint-enable line-length --> + +## Modules + +### Returning Value Of Main function + +Module exit status is defined as EXIT_SUCCESS or EXIT_FAILURE (declared in +stdlib.h), e.g. + +```c +{ + ... + if (G_parser (argc, argv)) + exit (EXIT_FAILURE); + + ... + exit (EXIT_SUCCESS); +} +``` + +### Messages + +Use fprintf() instead of printf(). For errors and warnings please use the +G_fatal_error() and G_warning() functions. General messages for the user should +use G_message() while debug messages should use G_debug() whenever possible. + +There are two variants to G_message(): G_verbose_message() which will only display +the message if in --verbose mode, and G_important_message() which will always +show the message unless the module is running in --quiet mode. G_fatal_error() and +G_warning() will always be displayed regardless of verbosity setting. Messages +sent to any of these functions will be printed to stderr. + +G_message() output is not expected to be sent to pipe or file. + +<<<<<<< HEAD +Messages aiming at the user should be marked for translation. Output meant for +automatic parsing by other software should not be marked for translation. +Generally all modules producing output should include localisation header: + +```c +#include "glocale.h" +``` + +Afterwards mark all user visible strings with the gettext macro \_("message"): +======= +Always use the gettext macros with _("") for user messages, example: +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) + +```c +G_fatal_error(_("Vector map <%s> not found"), name); +``` + +It is suggested to add a comment line before translatable user message to give a +hint to translators about meaning or use of cumbersome or obscure message. First +<<<<<<< HEAD +word in the comment must be GTC: GRASS translation comment, +======= +word in the comment must be GTC - GRASS translation comment, +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) + +Example: + +```c +<<<<<<< HEAD +/* GTC: Name of a projection */ +======= +/* GTC A name of a projection */ +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) +G_message(_("State Plane")); +``` + +Any message with a noun in plural form has to pass `n_()` macro, even if for the +<<<<<<< HEAD +English language is not required! The syntax is +`n_("English singular", "English plural", count)` + +```c +G_message( n_("%d map from mapset <%s> removed", + "%d maps from mapset <%s> removed", count), count, mapset); +/* Notice double use of "count" - as an argument for both functions + - n_() and G_message() */ + +G_message( n_("%d map selected", "%d maps selected", count), count); +G_message( n_("One file removed", "%d files removed", count) count); +/* Both of forms of singular case "%d file" or "One file" are correct. + The choice between them is purely stylistic one. */ + +/* Although in English it is not necessary to provide a separate + text if "n" always is >1, other languages do have a difference if "n" + is i.e. 2-4, or n==10 etc. */ +G_message( n_("Remove map", "Remove maps", count)); +/* Number it self doesn't have to be used in the output text */ +``` + +======= +English language it is not required! + +```c +G_message(n_("One map", "%d maps", number), number); +``` + +See [locale/README](../../../locale/README) for details. + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) +Pipe/file data output: For data output redirected to pipe or file, please use +fprintf() and specify the stdout stream as follows: + +```c +fprintf(stdout, ...); +fflush(stdout); + +fflush(stdout); /* always required when using fprintf(stdout, ...). */ +``` + +### Map History + +Have a function included in your module which writes to the history file of the +map (e.g. command line, parameters etc.). See e.g. +[raster/r.patch/main.c​](../../../raster/r.patch/main.c) (the same applies to +vector and raster3d modules!) + +### Standardized Options and Flags + +Standard parser options: use G_define_standard_option() whenever possible to +define standard module command line options. This will save you time, create fewer +bugs, and make things easier on the translators. See +[lib/gis/parser_standard_options.c]​(../../../lib/gis/parser_standard_options.c) +for details of the function definition. + +### Adding description and keywords + +Each module needs to have a description and at least 3 keywords. Here an example +from general/g.list/main.c: + +```c +G_gisinit(argv[0]); + +module = G_define_module(); +G_add_keyword(_("general")); +G_add_keyword(_("map management")); +G_add_keyword(_("list")); +G_add_keyword(_("search")); +module->description = + _("Lists available GRASS data base files of " + "the user-specified data type optionally using the search pattern."); +``` + +Notes: + +- the **first** keyword is the module family (**g**.list belongs to "general") + which go to the + [module family index](https://grass.osgeo.org/grass74/manuals/general.html) + in the manual +- the **second** keyword is the overall topic which go to the + [topic index](https://grass.osgeo.org/grass74/manuals/topics.html) in the manual +- the **third\* (and more) keyword is describing further keywords which go to the + [keyword index](https://grass.osgeo.org/grass74/manuals/keywords.html) + in the manual** + +These index manual pages are autogenerated during the build process of GRASS GIS. + +<<<<<<< HEAD +## Source Code Formatting + +C and C++ code is formatted with [ClangFormat](https://clang.llvm.org/docs/ClangFormat.html). +Contributions to main branch (and grass8 branch for grass-addons) are expected +to be formatted with `clang-format` (currently with version 15+). The most +convenient method to install clang-format and format files is +[using pre-commit](./submitting.md#use-pre-commit). + +Alternatively, using separately installed clang-format on modified files: + +```bash +clang-format -i <new_or_modified_file.c> +``` + +The ClangFormat settings for the repo are defined in +[.clang-format](../../../.clang-format). + +If using pre-commit is not an option, for whatever reason, there is a helper +script [grass_clang_format.sh](./utils/grass_clang_format.sh), which simplifies +bulk reformatting. Before using this script you need to install `clang-format` +and make sure it is available on PATH. + +```bash +# Simple way to install clang-format (optional) +python -m pip install 'clang-format==15.0.6' + +# Run script to format all files in source repo +./utils/grass_clang_format.sh + +# It is also possible to format the content in a (one) given directory (faster) +./utils/grass_clang_format.sh ./lib/raster + +# Setting GRASS_CLANG_FORMAT enables use of clang-format by other name/path +GRASS_CLANG_FORMAT="clang-format-15" ./utils/grass_clang_format.sh +``` +======= +## Indentation + +To promote a consistent coding style for whitespace (spaces, tabs, newlines), +please use the `indent` tool on all new C files using the following switches: + +```bash +-bad -bap -bbb -br -bli0 -bls -cli0 -ncs -fc1 -hnl -i4 +-nbbo -nbc -nbfda -nbfde -ncdb -ncdw -nce -nfca -npcs -nprs +-npsl -nsc -nsob -saf -sai -saw -sbi0 -ss --no-tabs +``` + +Existing code should not be re-indented as this will make "diff" comparisons with +older versions impossible. In extreme cases, when run of `indent` tool is necessary +do not commit (check in) any changes other than the indentation in the same commit. +Additionally, add the `indent` tool switches and any indent warning messages to the +commit message (`git log`). Any change or fix mixed in with an indentation is very +hard to track making it hard for others to follow the change, fix any new bugs or +track the origin of particular lines (`git diff --ignore-space-change` is helpful +in this case, but does not solve the problem). + +For your convenience use the +[grass_indent.sh](https://github.com/OSGeo/grass/blob/main/utils/grass_indent.sh) +script available in GRASS source code. + +See ​[GRASS Wiki](https://grasswiki.osgeo.org/wiki/Development#Explanation_of_C_indentation_rules) +or `man indent` for explanation of individual switches. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) + +## Compilation + +Platform dependent code: + +Do not remove `#ifdef __CYGWIN__` and/or `#ifndef __CYGWIN__` lines and their +encapsulated lines from source code (one example was that someone removed +drand48 definition.) + +### Compiler Flags + +Suggested compiler flags: We suggest to use very strict compiler flags to capture +errors at the very beginning. Here our list of flags, please use them to configure +you development version of GRASS GIS. + +See also <https://grasswiki.osgeo.org/wiki/Compile_and_Install> + +#### GNU/Linux + +```bash +MYCFLAGS="-g -Wall -Werror-implicit-function-declaration -Wreturn-type \ + -fno-common -fexceptions" +MYCXXFLAGS="-g -Wall" +MYLDFLAGS="-Wl,--no-undefined -Wl,-z,relro" + +CFLAGS="$MYCFLAGS" CXXFLAGS="$MYCXXFLAGS" LDFLAGS="$MYLDFLAGS" ./configure ... +``` + +#### MacOSX + +(to be suggested, see ​macosx/ReadMe.rtf) + +#### MS-Windows + +(to be suggested, see CompileOnWindows) + +#### FreeBSD / NetBSD + +(to be suggested) + +See also <https://grasswiki.osgeo.org/wiki/Compile_and_Install#FreeBSD_.2F_NetBSD> + +#### IBM/AIX + +(to be suggested) + +See also <https://grasswiki.osgeo.org/wiki/Compile_and_Install#AIX> + +#### Solaris + +(to be suggested) + +See also <https://grasswiki.osgeo.org/wiki/Compile_and_Install#AIX> + +... diff --git a/doc/gui/wxpython/example/README b/doc/gui/wxpython/example/README index 1e619486943..a08ebbfd453 100644 --- a/doc/gui/wxpython/example/README +++ b/doc/gui/wxpython/example/README @@ -24,9 +24,18 @@ or it can be launched from the console. 3. Edit ./gui/wxpython/Makefile: +<<<<<<< HEAD SUBDIRS: Add example SRCFILES: Add example/*py PYDSTDIRS: Add example +======= + SRCFILES := $(wildcard icons/*.* scripts/* xml/*) \ +- $(wildcard core/* dbmgr/* gcp/* gmodeler/* ... \ ++ $(wildcard core/* dbmgr/* example/* gcp/* gmodeler/* ... \ + +-PYDSTDIRS := $(patsubst %,$(ETCDIR)/%,core dbmgr gcp gmodeler ... \ ++PYDSTDIRS := $(patsubst %,$(ETCDIR)/%,core dbmgr example gcp gmodeler ... \ +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) 4. Run make (in ./gui/wxpython) diff --git a/doc/howto_release.md b/doc/howto_release.md index 2ae4ebe6660..bee0130ee0e 100644 --- a/doc/howto_release.md +++ b/doc/howto_release.md @@ -732,6 +732,7 @@ eval $(ssh-agent) && ssh-add ssh $USER@$SERVER1 "mkdir -p $SERVER1DIR" scp -p grass-$VERSION.* AUTHORS COPYING ChangeLog_$VERSION.gz \ <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD INSTALL.md REQUIREMENTS.md CONTRIBUTING.md $USER@$SERVER1:$SERVER1DIR @@ -747,9 +748,12 @@ scp -p grass-$VERSION.* AUTHORS COPYING ChangeLog_$VERSION.gz \ ======= INSTALL.md REQUIREMENTS.html CONTRIBUTING.md $USER@$SERVER1:$SERVER1DIR +======= + INSTALL.md REQUIREMENTS.md CONTRIBUTING.md $USER@$SERVER1:$SERVER1DIR +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) scp -p grass-$VERSION.* AUTHORS COPYING ChangeLog_$VERSION.gz \ - INSTALL.md REQUIREMENTS.html CONTRIBUTING.md $USER@$SERVER2:$SERVER2DIR + INSTALL.md REQUIREMENTS.md CONTRIBUTING.md $USER@$SERVER2:$SERVER2DIR >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) # Only at full release (i.e., not for RCs)! diff --git a/doc/projectionintro.html b/doc/projectionintro.html index f85416640d3..2553f72f57f 100644 --- a/doc/projectionintro.html +++ b/doc/projectionintro.html @@ -19,9 +19,15 @@ <h3>Reprojecting raster maps</h3> <h3>Raster map transformation</h3> +<<<<<<< HEAD To transform an unprojected map from a XY project into a projected project (or another XY project), a forward transformation is performed. The unreferenced map is geocoded within the XY project by defining +======= +To transform an unprojected map from a XY location into a projected +location (or another XY location), a forward transformation is performed. +The unreferenced map is geocoded within the XY location by defining +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) four corner points or by seeking several ground control points (<a href="i.group.html">i.group</a>, <a href="i.target.html">i.target</a>, <a href="g.gui.gcp.html">g.gui.gcp</a>) and then transformed into the @@ -46,10 +52,17 @@ <h3>Vector map transformation</h3> To transform an unprojected map (e.g. CAD map) into projected coordinates, a forward transformation is performed. The unreferenced map is imported +<<<<<<< HEAD into the project with projection and geocoded within this project by defining four corner points or by seeking several ground control points. These points are stored into an ASCII file and then transformed within the same project (<a href="v.transform.html">v.transform</a>). +======= +into the location with projection and geocoded within this location by +defining four corner points or by seeking several ground control points. +These points are stored into an ASCII file and then transformed within +the same location (<a href="v.transform.html">v.transform</a>). +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Alternatively, <a href="v.rectify.html">v.rectify</a> rectifies a vector by computing a coordinate transformation for each object in the vector diff --git a/docker/README.md b/docker/README.md index c92941431cb..cfa4aa0f483 100644 --- a/docker/README.md +++ b/docker/README.md @@ -36,16 +36,16 @@ docker pull osgeo/grass-gis:<tag> <!-- markdownlint-disable line-length --> | Base image | Docker tag | GRASS GIS | PROJ | GDAL | PDAL | Python | Image size | |--------------|---------------|------------|-------|-------|-------|--------|------------| -| Ubuntu 20.04 | latest-ubuntu | 8.3.dev | 6.3.1 | 3.0.4 | 2.2.0 | 3.8.10 | 1.20 GB | -| Debian 10.1 | latest-debian | 8.3.dev | 5.2.0 | 2.4.0 | 1.8.0 | 3.7.3 | 1.16 GB | +| Ubuntu 22.04 | latest-ubuntu | 8.3.dev | 8.2.1 | 3.4.1 | 2.4.3 | 3.10.6 | 2.89 GB | +| Debian 11 | latest-debian | 8.3.dev | 7.2.1 | 3.2.2 | 2.4.3 | 3.9.2 | 2.93 GB | | Alpine 3.12 | latest-alpine | 8.3.dev | 7.0.1 | 3.1.4 | 2.1.0 | 3.8.10 | 186 MB | |--------------|---------------|------------|-------|-------|-------|--------|------------| -| Ubuntu 20.04 | stable-ubuntu | 8.2 branch | 6.3.1 | 3.0.4 | 2.2.0 | 3.8.10 | 1.20 GB | -| Debian 10.1 | stable-debian | 8.2 branch | 5.2.0 | 2.4.0 | 1.8.0 | 3.7.3 | 1.16 GB | +| Ubuntu 22.04 | stable-ubuntu | 8.2 branch | 8.2.1 | 3.4.1 | 2.4.3 | 3.10.6 | 2.89 GB | +| Debian 11 | stable-debian | 8.2 branch | 7.2.1 | 3.2.2 | 2.4.3 | 3.9.2 | 2.93 GB | | Alpine 3.12 | stable-alpine | 8.2 branch | 7.0.1 | 3.1.4 | 2.1.0 | 3.8.10 | 186 MB | <!-- markdownlint-enable line-length --> -Last update: 27 Apr 2022 (source: <https://github.com/OSGeo/grass/actions/workflows/docker.yml> +Last update: 22 Jan 2023 (source: <https://github.com/OSGeo/grass/actions/workflows/docker.yml> and <https://hub.docker.com/r/mundialis/grass-py3-pdal/tags>) ## Requirements diff --git a/docker/debian/Dockerfile b/docker/debian/Dockerfile index 29d92711419..366d0670a2c 100644 --- a/docker/debian/Dockerfile +++ b/docker/debian/Dockerfile @@ -1,14 +1,19 @@ <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD FROM debian:bookworm-20240612-slim@sha256:67f3931ad8cb1967beec602d8c0506af1e37e8d73c2a0b38b181ec5d8560d395 ======= ======= >>>>>>> 3ab4f90615 (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> ab7a7d8f0a (r.horizon manual - fix typo (#2794)) <<<<<<< HEAD FROM debian:stable@sha256:82f8da149d6d567c74564cccd6f355fb5ade42a958e4cde10a1100eaeb24d42e ======= ======= >>>>>>> 67fc38245a (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> e77ca8abf8 (r.horizon manual - fix typo (#2794)) <<<<<<< HEAD FROM debian:stable@sha256:84725fb1debbf461f54a23030be0bcde8449f2fa4eba8adf857b1a4c707fec8d >>>>>>> 5c730e3bfc (wxpyimgview: explicit conversion to int (#2704)) @@ -22,12 +27,20 @@ FROM debian:10.1 ======= FROM debian:10.1 >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +FROM debian:stable +# currently Debian 11 + +# docker run -it --rm debian:stable bash +# apt-get update && apt-get install lsb-release -y && lsb_release -a +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) LABEL authors="Carmen Tawalika,Markus Neteler,Anika Weinmann" LABEL maintainer="tawalika@mundialis.de,neteler@mundialis.de,weinmann@mundialis.de" ENV DEBIAN_FRONTEND noninteractive +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD # define versions to be used (PDAL is not available on Debian, so we compile it here) @@ -58,8 +71,19 @@ ARG LAZ_PERF_VERSION=1.3.0 ======= ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +<<<<<<< HEAD >>>>>>> 3ab4f90615 (wxpyimgview: explicit conversion to int (#2704)) +<<<<<<< HEAD >>>>>>> dad8f82179 (wxpyimgview: explicit conversion to int (#2704)) +======= +======= +======= +# define versions to be used (PDAL is not available on Debian, so we compile it here) +# https://github.com/PDAL/PDAL/releases +ARG PDAL_VERSION=2.4.3 +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) +>>>>>>> ab7a7d8f0a (r.horizon manual - fix typo (#2794)) +>>>>>>> b2351aab26 (r.horizon manual - fix typo (#2794)) SHELL ["/bin/bash", "-c"] @@ -123,12 +147,16 @@ RUN apt-get update && apt-get upgrade -y && \ libpnglite-dev \ libpq-dev \ <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD libproj-dev \ ======= >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + libproj-dev \ +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) libpython3-all-dev \ libsqlite3-dev \ libtiff-dev \ @@ -140,6 +168,7 @@ RUN apt-get update && apt-get upgrade -y && \ ncurses-bin \ netcdf-bin \ <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD proj-bin \ proj-data \ @@ -153,7 +182,14 @@ RUN apt-get update && apt-get upgrade -y && \ ======= ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +<<<<<<< HEAD >>>>>>> 3ab4f90615 (wxpyimgview: explicit conversion to int (#2704)) +======= +======= + proj-bin \ + proj-data \ +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) +>>>>>>> ab7a7d8f0a (r.horizon manual - fix typo (#2794)) python3 \ python3-dateutil \ python3-dev \ @@ -185,6 +221,7 @@ RUN apt-get update && apt-get upgrade -y && \ RUN echo LANG="en_US.UTF-8" > /etc/default/locale RUN echo en_US.UTF-8 UTF-8 >> /etc/locale.gen && locale-gen +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD ======= @@ -219,6 +256,8 @@ RUN wget -q https://github.com/hobu/laz-perf/archive/${LAZ_PERF_VERSION}.tar.gz >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) ## fetch vertical datums for PDAL and store into PROJ dir WORKDIR /src RUN mkdir vdatum && \ @@ -235,6 +274,7 @@ RUN mkdir vdatum && \ cd .. && \ rm -rf vdatum +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD ## compile and install PDAL (not available on Debian/Ubuntu) with laz-perf enabled @@ -244,6 +284,9 @@ RUN mkdir vdatum && \ ======= ## install pdal >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +## compile and install PDAL (not available on Debian/Ubuntu) with laz-perf enabled +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) ENV NUMTHREADS=4 WORKDIR /src RUN wget -q \ @@ -267,6 +310,7 @@ RUN wget -q \ -DBUILD_PLUGIN_NITF=OFF \ -DBUILD_PLUGIN_ICEBRIDGE=ON \ <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD -DBUILD_PLUGIN_PGPOINTCLOUD=OFF \ -DBUILD_PGPOINTCLOUD_TESTS=OFF \ @@ -283,6 +327,12 @@ RUN wget -q \ >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + -DBUILD_PLUGIN_PGPOINTCLOUD=OFF \ + -DBUILD_PGPOINTCLOUD_TESTS=OFF \ + -DBUILD_PLUGIN_SQLITE=ON \ + -DWITH_LASZIP=OFF \ +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) -DWITH_LAZPERF=ON \ -DWITH_TESTS=ON && \ make -j $NUMTHREADS && \ @@ -294,12 +344,17 @@ COPY . /src/grass_build/ WORKDIR /src/grass_build <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD # Cleanup potentially leftover GISRC file with wrong path to "demolocation" RUN rm -f /src/grass_build/dist.*/demolocation/.grassrc* ======= >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +# Cleanup potentially leftover GISRC file with wrong path to "demolocation" +RUN rm -f /src/grass_build/dist.*/demolocation/.grassrc* +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) # Set environmental variables for GRASS GIS compilation, without debug symbols # Set gcc/g++ environmental variables for GRASS GIS compilation, without debug symbols @@ -471,8 +526,11 @@ RUN grass --tmp-project EPSG:25832 --exec r.in.pdal input="/tmp/simple.laz" outp <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD:docker/debian/Dockerfile <<<<<<< HEAD:docker/debian/Dockerfile +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) # test LAZ file RUN grass --tmp-location EPSG:25832 --exec r.in.pdal input="/tmp/simple.laz" output="count_1" method="n" resolution=1 -g ======= diff --git a/docker/ubuntu/Dockerfile b/docker/ubuntu/Dockerfile index 160ded0bc33..5d75d47d5cf 100644 --- a/docker/ubuntu/Dockerfile +++ b/docker/ubuntu/Dockerfile @@ -48,16 +48,18 @@ LABEL maintainer="tawalika@mundialis.de,neteler@mundialis.de,weinmann@mundialis. ENV DEBIAN_FRONTEND noninteractive +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD ======= ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) # define versions to be used +======= +# define versions to be used (PDAL is not available on Ubuntu/Debian, so we compile it here) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) # https://github.com/PDAL/PDAL/releases ARG PDAL_VERSION=2.4.3 -# https://github.com/hobuinc/laz-perf/releases -ARG LAZ_PERF_VERSION=3.2.0 <<<<<<< HEAD >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) @@ -403,18 +405,6 @@ WORKDIR /src/grass_build RUN echo LANG="en_US.UTF-8" > /etc/default/locale RUN echo en_US.UTF-8 UTF-8 >> /etc/locale.gen && locale-gen -## install laz-perf (missing from https://packages.ubuntu.com/) -RUN apt-get install cmake -WORKDIR /src -RUN wget -q https://github.com/hobu/laz-perf/archive/${LAZ_PERF_VERSION}.tar.gz -O laz-perf-${LAZ_PERF_VERSION}.tar.gz && \ - tar -zxf laz-perf-${LAZ_PERF_VERSION}.tar.gz && \ - cd laz-perf-${LAZ_PERF_VERSION} && \ - mkdir build && \ - cd build && \ - cmake .. && \ - make && \ - make install - ## fetch vertical datums for PDAL and store into PROJ dir WORKDIR /src RUN mkdir vdatum && \ @@ -431,7 +421,7 @@ RUN mkdir vdatum && \ cd .. && \ rm -rf vdatum -## install pdal +## compile and install PDAL (not available on Debian/Ubuntu) with laz-perf enabled ENV NUMTHREADS=4 WORKDIR /src RUN wget -q \ @@ -454,10 +444,10 @@ RUN wget -q \ -DHEXER_INCLUDE_DIR=/usr/include/ \ -DBUILD_PLUGIN_NITF=OFF \ -DBUILD_PLUGIN_ICEBRIDGE=ON \ - -DBUILD_PLUGIN_PGPOINTCLOUD=ON \ + -DBUILD_PLUGIN_PGPOINTCLOUD=OFF \ -DBUILD_PGPOINTCLOUD_TESTS=OFF \ -DBUILD_PLUGIN_SQLITE=ON \ - -DWITH_LASZIP=ON \ + -DWITH_LASZIP=OFF \ -DWITH_LAZPERF=ON \ -DWITH_TESTS=ON && \ make -j $NUMTHREADS && \ @@ -654,6 +644,7 @@ COPY docker/testdata/test_grass_session.py . ## just scan the LAZ file # Not yet ready for GRASS GIS 8: #RUN /usr/bin/python3 /scripts/test_grass_session.py +# test LAZ file RUN grass --tmp-location EPSG:25832 --exec r.in.pdal input="/tmp/simple.laz" output="count_1" method="n" resolution=1 -g WORKDIR /grassdb diff --git a/docker/ubuntu_wxgui/Dockerfile b/docker/ubuntu_wxgui/Dockerfile index 01f12fb13e6..b1bd7918eb9 100644 --- a/docker/ubuntu_wxgui/Dockerfile +++ b/docker/ubuntu_wxgui/Dockerfile @@ -35,6 +35,7 @@ LABEL maintainer="tawalika@mundialis.de,neteler@mundialis.de,weinmann@mundialis. ENV DEBIAN_FRONTEND noninteractive +<<<<<<< HEAD <<<<<<< HEAD # define versions to be used (PDAL is not available on Ubuntu/Debian, so we compile it here) # https://github.com/PDAL/PDAL/releases @@ -50,7 +51,15 @@ ARG PDAL_VERSION=2.4.3 # https://github.com/hobuinc/laz-perf/releases ARG LAZ_PERF_VERSION=3.2.0 >>>>>>> 498a331298 (Fix missing function prototypes (#2727)) +<<<<<<< HEAD >>>>>>> 95125e7509 (Fix missing function prototypes (#2727)) +======= +======= +# define versions to be used (PDAL is not available on Ubuntu/Debian, so we compile it here) +# https://github.com/PDAL/PDAL/releases +ARG PDAL_VERSION=2.4.3 +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) +>>>>>>> ab7a7d8f0a (r.horizon manual - fix typo (#2794)) SHELL ["/bin/bash", "-c"] @@ -182,6 +191,7 @@ ENV NO_AT_BRIDGE=1 RUN echo LANG="en_US.UTF-8" > /etc/default/locale RUN echo en_US.UTF-8 UTF-8 >> /etc/locale.gen && locale-gen +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD:docker/ubuntu_wxgui/Dockerfile <<<<<<< HEAD:docker/ubuntu_wxgui/Dockerfile @@ -228,6 +238,8 @@ RUN wget -q https://github.com/hobu/laz-perf/archive/${LAZ_PERF_VERSION}.tar.gz >>>>>>> c875f035a5 (Dockerfile: fix broken lib link (#1625)):docker/debian/Dockerfile_debian_pdal ======= >>>>>>> 498a331298 (Fix missing function prototypes (#2727)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) ## fetch vertical datums for PDAL and store into PROJ dir WORKDIR /src RUN mkdir vdatum && \ @@ -244,11 +256,15 @@ RUN mkdir vdatum && \ cd .. && \ rm -rf vdatum +<<<<<<< HEAD <<<<<<< HEAD ## compile and install PDAL (not available on Debian/Ubuntu) with laz-perf enabled ======= ## install pdal >>>>>>> 498a331298 (Fix missing function prototypes (#2727)) +======= +## compile and install PDAL (not available on Debian/Ubuntu) with laz-perf enabled +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) ENV NUMTHREADS=4 WORKDIR /src RUN wget -q \ @@ -271,6 +287,7 @@ RUN wget -q \ -DHEXER_INCLUDE_DIR=/usr/include/ \ -DBUILD_PLUGIN_NITF=OFF \ -DBUILD_PLUGIN_ICEBRIDGE=ON \ +<<<<<<< HEAD <<<<<<< HEAD -DBUILD_PLUGIN_PGPOINTCLOUD=OFF \ -DBUILD_PGPOINTCLOUD_TESTS=OFF \ @@ -282,6 +299,12 @@ RUN wget -q \ -DBUILD_PLUGIN_SQLITE=ON \ -DWITH_LASZIP=ON \ >>>>>>> 498a331298 (Fix missing function prototypes (#2727)) +======= + -DBUILD_PLUGIN_PGPOINTCLOUD=OFF \ + -DBUILD_PGPOINTCLOUD_TESTS=OFF \ + -DBUILD_PLUGIN_SQLITE=ON \ + -DWITH_LASZIP=OFF \ +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) -DWITH_LAZPERF=ON \ -DWITH_TESTS=ON && \ make -j $NUMTHREADS && \ @@ -433,8 +456,11 @@ RUN grass --tmp-project EPSG:25832 --exec r.in.pdal input="/tmp/simple.laz" outp # Not yet ready for GRASS GIS 8: #RUN /usr/bin/python3 /scripts/test_grass_session.py <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD:docker/ubuntu_wxgui/Dockerfile <<<<<<< HEAD:docker/ubuntu_wxgui/Dockerfile +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) # test LAZ file RUN grass --tmp-location EPSG:25832 --exec r.in.pdal input="/tmp/simple.laz" output="count_1" method="n" resolution=1 -g ======= diff --git a/general/g.gisenv/g.gisenv.html b/general/g.gisenv/g.gisenv.html index 6f96b81b23d..8e51399ab24 100644 --- a/general/g.gisenv/g.gisenv.html +++ b/general/g.gisenv/g.gisenv.html @@ -184,9 +184,16 @@ <h3>Number of threads for parallel computing</h3> >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) variables are stored in <tt><gisdbase>/<location>/<mapset>/VAR</tt> after the current GRASS session is closed. +<<<<<<< HEAD >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +<<<<<<< HEAD >>>>>>> bc7152a288 (wxpyimgview: explicit conversion to int (#2704)) +======= +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) +>>>>>>> 10cb905c76 (r.horizon manual - fix typo (#2794)) <h3>GRASS Debugging</h3> To print debugging messages, the variable <em>DEBUG</em> must be set to level diff --git a/general/g.mkfontcap/g.mkfontcap.html b/general/g.mkfontcap/g.mkfontcap.html index d047e9825af..435403ae9fa 100644 --- a/general/g.mkfontcap/g.mkfontcap.html +++ b/general/g.mkfontcap/g.mkfontcap.html @@ -45,6 +45,7 @@ <h2>DESCRIPTION</h2> <h2>SEE ALSO</h2> +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD @@ -53,6 +54,9 @@ <h2>SEE ALSO</h2> >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <em> <a href="d.font.html">d.font</a> </em> diff --git a/general/g.proj/g.proj.html b/general/g.proj/g.proj.html index 1d9b843e766..563cd866674 100644 --- a/general/g.proj/g.proj.html +++ b/general/g.proj/g.proj.html @@ -11,6 +11,7 @@ <h2>DESCRIPTION</h2> If compiled without <a href="https://gdal.org/">OGR</a> present, the functionality is limited to: <ul> +<<<<<<< HEAD <li>Reporting the CRS information for the current project (previously called location), either in conventional GRASS (-p flag) or PROJ (-j flag) format</li> @@ -24,6 +25,20 @@ <h2>DESCRIPTION</h2> <em>wkt</em>, <em>proj4</em> or <em>epsg</em> is specified, rather than being read from the current project, the CRS information is imported from an external source as follows: +======= +<li>Reporting the projection information for the current location, +either in conventional GRASS (-p flag) or PROJ (-j flag) format</li> +<li>Changing the datum, or reporting and modifying the datum transformation +parameters, for the current location</li> +</ul> + +<p>When compiled with OGR, functionality is increased and allows output of +the projection information in the Well-Known Text (WKT) format popularised +by proprietary GIS. In addition, if one of the parameters <em>georef</em>, +<em>wkt</em>, <em>proj4</em> or <em>epsg</em> is specified, rather than the +projection information being read from the current location it is imported +from an external source as follows: +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <dl> <dt>georef=<em>filename</em></dt> @@ -39,7 +54,11 @@ <h2>DESCRIPTION</h2> file.</dd> <dt>proj4=<em>description</em> or <em>-</em></dt> +<<<<<<< HEAD <dd><em>description</em> should be a CRS description in +======= +<dd><em>description</em> should be a projection description in +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <a href="https://proj.org/">PROJ</a> format, enclosed in quotation marks if there are any spaces. If <em>-</em> is given for <em>description</em>, the PROJ description will be read from stdin rather @@ -72,10 +91,17 @@ <h2>DESCRIPTION</h2> format. <p>In addition however, if the -c flag is specified, <em>g.proj</em> will +<<<<<<< HEAD create new GRASS CRS files (PROJ_INFO, PROJ_UNITS, WIND and DEFAULT_WIND) based on the imported information. If the <em>project</em> parameter is specified in addition to -c, then a new project will be created. Otherwise the CRS information files in the current project will be +======= +create new GRASS projection files (PROJ_INFO, PROJ_UNITS, WIND and +DEFAULT_WIND) based on the imported information. If the <em>location</em> +parameter is specified in addition to -c, then a new location will be created. +Otherwise the projection information files in the current location will be +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) overwritten. The program will <strong>not</strong> warn before doing this. <p>The final mode of operation of g.proj is to report on the datum @@ -93,7 +119,11 @@ <h2>NOTES</h2> <strong>-1:</strong> List available parameter sets in a GUI-parsable (but also human-readable) format and exit.<br> <strong>0 (default):</strong> Continue without specifying parameters - if +<<<<<<< HEAD used when creating a project, other GRASS modules will use the "default" +======= +used when creating a location, other GRASS modules will use the "default" +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) (likely non-optimum) parameters for this datum if necessary in the future.<br> <strong>Any other number less than or equal to the number of parameter sets available for this datum:</strong> Choose this parameter set and add it to the @@ -104,7 +134,11 @@ <h2>NOTES</h2> input co-ordinate system. This can be useful to change the datum information for an existing project. +<<<<<<< HEAD <p>Output is simply based on the input CRS information. g.proj does +======= +<p>Output is simply based on the input projection information. g.proj does +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <strong>not</strong> attempt to verify that the co-ordinate system thus described matches an existing system in use in the world. In particular, this means there are no EPSG Authority codes in the WKT output. @@ -235,6 +269,7 @@ <h2>REFERENCES</h2> <h2>SEE ALSO</h2> +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD @@ -243,6 +278,9 @@ <h2>SEE ALSO</h2> >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <em> <a href="m.proj.html">m.proj</a>, <a href="r.proj.html">r.proj</a>, diff --git a/general/g.setproj/g.setproj.html b/general/g.setproj/g.setproj.html index 5a7337d11a7..357f8cd3423 100644 --- a/general/g.setproj/g.setproj.html +++ b/general/g.setproj/g.setproj.html @@ -25,8 +25,13 @@ <h2>SYNOPSIS</h2> <h2>DESCRIPTION</h2> Allows a user to create a PROJ_INFO file in the PERMANENT mapset of the +<<<<<<< HEAD current project. PROJ_INFO file is used to record the CRS information associated with the specified project. +======= +current location. PROJ_INFO file is used to record the projection information +associated with the specified mapset. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <h2>NOTES</h2> @@ -59,6 +64,7 @@ <h2>NOTES</h2> <p> <<<<<<< HEAD +<<<<<<< HEAD The projections of aea, lcc, merc, leae, leac, and tmerc will generate a request to the user for the prime meridian and standard parallel for the output map. @@ -70,6 +76,11 @@ <h2>NOTES</h2> >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +The projections of aea, lcc, merc, leae, leac, and +tmerc will generate a request to the user for the prime meridian and standard +parallel for the output map. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <h2>SEE ALSO</h2> diff --git a/grasslib.dox b/grasslib.dox index f46c19bfd36..e010ae8135d 100644 --- a/grasslib.dox +++ b/grasslib.dox @@ -216,7 +216,11 @@ href="https://grass.osgeo.org">https://grass.osgeo.org</a> \subsection misclibs Miscellaneous Libraries - datetime: \ref datetime (DateTime library) +<<<<<<< HEAD - external: \ref external (External libraries from other projects such as shapelib, parson and \ref ccmathlib) +======= + - external: \ref external (External libraries from other projects such as shapelib and \ref ccmathlib) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) - fonts: \ref fonts (GRASS fonts library) - init: \ref init (GRASS initialization code + scripts) - iostream: \ref iostream (fast I/O library) diff --git a/gui/wxpython/docs/wxGUI.nviz.html b/gui/wxpython/docs/wxGUI.nviz.html index 0fead7d7d3a..52a06a36945 100644 --- a/gui/wxpython/docs/wxGUI.nviz.html +++ b/gui/wxpython/docs/wxGUI.nviz.html @@ -439,9 +439,12 @@ <h2>AUTHORS</h2> CERL, 1990-1995 and from the NVIZ Motif version written by Bill Brown with contributions by Terrance McGhee. <<<<<<< HEAD +<<<<<<< HEAD ======= <<<<<<< HEAD >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/gui/wxpython/image2target/g.gui.image2target.html b/gui/wxpython/image2target/g.gui.image2target.html index dd1344b504e..1024f255268 100644 --- a/gui/wxpython/image2target/g.gui.image2target.html +++ b/gui/wxpython/image2target/g.gui.image2target.html @@ -312,9 +312,12 @@ <h2>AUTHORS</h2> <em>Based on the Georectifier (GRASS 6.4.0)</em> by Michael Barton<br> Martin Landa, Czech Technical University in Prague, Czech Republic <<<<<<< HEAD +<<<<<<< HEAD ======= <<<<<<< HEAD >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/gui/wxpython/psmap/g.gui.psmap.html b/gui/wxpython/psmap/g.gui.psmap.html index 68dd5c630dd..3b90ca6b136 100644 --- a/gui/wxpython/psmap/g.gui.psmap.html +++ b/gui/wxpython/psmap/g.gui.psmap.html @@ -196,9 +196,14 @@ <h3>CARTOGRAPHIC COMPOSER TOOLBAR</h3> <dd> Generates hardcopy map output in PostScript/EPS file.</dd> <dt><img src="icons/pdf-export.png" alt="icon">  <em>Generate hardcopy map output in PDF</em></dt> +<<<<<<< HEAD <dd> Generates hardcopy map output in PDF using ps2pdf or <a href="https://www.ghostscript.com/releases/gsdnld.html">Ghostscript gswin32c/gswin64c</a> (OS MS Windows platform only).</dd> <<<<<<< HEAD +======= + <dd> Generates hardcopy map output in PDF using ps2pdf.</dd> + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) </dl> <<<<<<< HEAD diff --git a/gui/wxpython/rlisetup/g.gui.rlisetup.html b/gui/wxpython/rlisetup/g.gui.rlisetup.html index 2ae87a9cab9..b4555da4bda 100644 --- a/gui/wxpython/rlisetup/g.gui.rlisetup.html +++ b/gui/wxpython/rlisetup/g.gui.rlisetup.html @@ -56,6 +56,7 @@ <h3>Usage details</h3> <li><em><b>View/Edit</b></em> (Load a file) from the shown list: the configuration is shown in a small text editor window. <!-- only in GRASS GIS 6 version +<<<<<<< HEAD is printed using rectangles with different colors (green for the raster map, red for the sample frame and blue for the sample areas), and other notes (disposition of sample areas etc). @@ -82,6 +83,20 @@ <h3>Usage details</h3> >>>>>>> 73a1a8ce38 (Programmer's manual: update GRASS GIS arch drawing (#1610)) ======= >>>>>>> 227cbcebbf (Programmer's manual: update GRASS GIS arch drawing (#1610)) +======= + is printed using rectangles with differents colors (green for the + raster map, red for the sample frame and blue for the sample areas), + and other notes (disposition of sample areas etc). +--> + Configuration files are saved in the folder + <tt>C:\Users\userxy\AppData\Roaming\GRASS8\r.li\</tt> (MS-Windows) or + <tt>$HOME/.r.li/</tt> (GNU/Linux) (the file name can be + defined by the user). The output or an analysis can either be a new raster + map (in case of using a "moving window" analysis) or be an ASCII text file + (when not performing a "moving window" analysis) containing the result. + Such text file will be saved in the folder + <tt>C:\Users\userxy\AppData\Roaming\GRASS8\r.li\output\</tt> +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) (MS-Windows) or <tt>$HOME/.grass8/r.li/output/</tt> (GNU/Linux). <br> <!-- TODO: applies to all output or only ASCII output?? --> diff --git a/gui/wxpython/vdigit/g.gui.vdigit.html b/gui/wxpython/vdigit/g.gui.vdigit.html index 63f2226b15a..17693a2d2aa 100644 --- a/gui/wxpython/vdigit/g.gui.vdigit.html +++ b/gui/wxpython/vdigit/g.gui.vdigit.html @@ -87,12 +87,16 @@ <h3>DIGITIZER TOOLBAR</h3> attributes (Ctrl+P).</dd> <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD ======= ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <dt><img src="icons/line-create.png" alt="icon">  <em>Digitize new line</em></dt> <dd>Add new line to vector map and optionally define its @@ -104,12 +108,16 @@ <h3>DIGITIZER TOOLBAR</h3> attributes (Ctrl+B).</dd> <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD ======= ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <dt><img src="icons/centroid-create.png" alt="icon">  <em>Digitize new centroid</em></dt> <dd>Add new centroid to vector map and optionally define its @@ -121,12 +129,16 @@ <h3>DIGITIZER TOOLBAR</h3> map and optionally define its attributes (Ctrl+A).</dd> <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD ======= ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <dt><img src="icons/vertex-move.png" alt="icon">  <em>Move vertex</em></dt> <dd>Move selected vertex of linear feature. Thus shape of linear diff --git a/imagery/i.albedo/i.albedo.html b/imagery/i.albedo/i.albedo.html index 5db69be416d..7ebd4e4311c 100644 --- a/imagery/i.albedo/i.albedo.html +++ b/imagery/i.albedo/i.albedo.html @@ -15,6 +15,7 @@ <h2>NOTES</h2> <h2>EXAMPLE</h2> +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD The following example creates the raster map "albedo_lsat7_1987" from the @@ -23,6 +24,9 @@ <h2>EXAMPLE</h2> >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) The following example creates the raster map "albedo_lsat7_1987" from the >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +The following example creates the raster map "albedo_lsat7_1987" from the +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) LANDSAT-TM5 bands in the North Carolina dataset: <div class="code"><pre> g.region raster=lsat5_1987_10 -p diff --git a/imagery/i.atcorr/create_iwave.py b/imagery/i.atcorr/create_iwave.py index 21faa21ac2c..74ba708880c 100644 --- a/imagery/i.atcorr/create_iwave.py +++ b/imagery/i.atcorr/create_iwave.py @@ -20,10 +20,15 @@ Updated by: Anne Ghisla, 2010 Bug fix (9/12/2010) by Daniel: +<<<<<<< HEAD 1) function interpolate_band was not generating the spectral response for the last value in the filter function. Fixed 2) function pretty_print was not printing the 8th value of every line, cutting the filter function short. +======= + 1) function interpolate_band was not generating the spectral response for the last value in the filter function. Fixed + 2) function pretty_print was not printing the 8th value of every line, cutting the filter function short. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) """ import os diff --git a/imagery/i.atcorr/i.atcorr.html b/imagery/i.atcorr/i.atcorr.html index 0acd094e4fd..a0c2542da8a 100644 --- a/imagery/i.atcorr/i.atcorr.html +++ b/imagery/i.atcorr/i.atcorr.html @@ -820,13 +820,21 @@ <h2>EXAMPLES</h2> <h3>Atmospheric correction of a Sentinel-2 band</h3> <p>This example illustrates how to perform atmospheric correction of a +<<<<<<< HEAD Sentinel-2 scene in the North Carolina project. +======= +Sentinel-2 scene in the North Carolina location. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <p>Let's assume that the Sentinel-2 L1C scene <em>S2A_OPER_PRD_MSIL1C_PDMC_20161029T092602_R054_V20161028T155402_20161028T155402</em> was downloaded and imported with region cropping (see <a href="r.import.html">r.import</a>) +<<<<<<< HEAD into the <em>PERMANENT</em> mapset of the North Carolina project. The +======= +into the <em>PERMANENT</em> mapset of the North Carolina location. The +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) computational region was set to the extent of the <em>elevation</em> map in the North Carolina dataset. Now, we have 13 individual bands (<em>B01-B12</em>) that we want to apply the atmospheric correction to. @@ -1184,6 +1192,7 @@ <h2>AUTHORS</h2> <p><em>Worldview4 addition 12/2018:</em> <br>Markus Neteler, mundialis.de, Germany +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD @@ -1193,3 +1202,5 @@ <h2>AUTHORS</h2> >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/imagery/i.biomass/i.biomass.html b/imagery/i.biomass/i.biomass.html index 06ffa091876..cc1478e86ba 100644 --- a/imagery/i.biomass/i.biomass.html +++ b/imagery/i.biomass/i.biomass.html @@ -24,6 +24,7 @@ <h2>TODO</h2> <h2>REFERENCES</h2> +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <p>[1] Bastiaanssen, W.G.M., Ali, S., 2002. A new crop yield @@ -47,6 +48,15 @@ <h2>REFERENCES</h2> >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +<p>[1] Bastiaanssen, W.G.M., Ali, S., 2002. A new crop yield +forecasting model based on satellite measurements applied across the +Indus Basin, Pakistan. Agriculture, Ecosystems and Environment, +94(3):321-340. (<a href="http://edepot.wur.nl/206553">PDF</a>) + +<p>[2] Chemin, Y., Platonov, A., Abdullaev, I., Ul-Hassan, M. 2005. +Supplementing farm level water productivity assessment by remote +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) sensing in transition economies. Water International. 30(4):513-521. <h2>SEE ALSO</h2> diff --git a/imagery/i.cca/i.cca.html b/imagery/i.cca/i.cca.html index f2fb5184cd8..971965d6773 100644 --- a/imagery/i.cca/i.cca.html +++ b/imagery/i.cca/i.cca.html @@ -113,6 +113,7 @@ <h2>AUTHORS</h2> <br> <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD Ali R. Vali, University of Texas <br> @@ -122,6 +123,9 @@ <h2>AUTHORS</h2> ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) Ali R. Vali, +======= +Ali R. Vali, +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) University of Texas <br> Semantic label support: Maris Nartiss, diff --git a/imagery/i.eb.netrad/i.eb.netrad.html b/imagery/i.eb.netrad/i.eb.netrad.html index 768f3571aaf..8c50d546b01 100644 --- a/imagery/i.eb.netrad/i.eb.netrad.html +++ b/imagery/i.eb.netrad/i.eb.netrad.html @@ -26,6 +26,7 @@ <h2>REFERENCES</h2> <ul> <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD <li>Bastiaanssen, W.G.M., 1995. Regionalization of surface flux densities and moisture indicators in composite terrain; a remote sensing approach under clear skies in mediterranean climates. PhD @@ -49,6 +50,16 @@ <h2>REFERENCES</h2> >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +<li>Bastiaanssen, W.G.M., 1995. Regionalization of surface flux +densities and moisture indicators in composite terrain; a remote +sensing approach under clear skies in mediterranean climates. PhD +thesis, Wageningen Agricultural Univ., The Netherland, 271 pp. +(<a href="http://edepot.wur.nl/206553">PDF</a>)</li> + +<li>Chemin, Y., 2012. +A Distributed Benchmarking Framework for Actual ET Models, +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) in: Irmak, A. (Ed.), Evapotranspiration - Remote Sensing and Modeling. InTech. (<a href="http://www.intechopen.com/books/evapotranspiration-remote-sensing-and-modeling/a-distributed-benchmarking-framework-for-actual-et-models">PDF</a>)</li> </ul> diff --git a/imagery/i.eb.soilheatflux/i.eb.soilheatflux.html b/imagery/i.eb.soilheatflux/i.eb.soilheatflux.html index 03f9dd899ea..2ffaee5bd10 100644 --- a/imagery/i.eb.soilheatflux/i.eb.soilheatflux.html +++ b/imagery/i.eb.soilheatflux/i.eb.soilheatflux.html @@ -39,6 +39,7 @@ <h2>EXAMPLE</h2> <h2>REFERENCES</h2> <p>Bastiaanssen, W.G.M., 1995. +<<<<<<< HEAD <<<<<<< HEAD Estimation of Land surface parameters by remote sensing under clear-sky conditions. PhD thesis, Wageningen University, Wageningen, The Netherlands. @@ -56,20 +57,28 @@ <h2>REFERENCES</h2> A Distributed Benchmarking Framework for Actual ET Models, ======= Estimation of Land surface parameters by remote sensing under clear-sky +======= + Estimation of Land surface parameters by remote sensing under clear-sky +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) conditions. PhD thesis, Wageningen University, Wageningen, The Netherlands. (<a href="http://edepot.wur.nl/206553">PDF</a>) - + <p>Chemin Y., Alexandridis T.A., 2001. Improving spatial resolution of ET seasonal - for irrigated rice in Zhanghe, China. Asian Journal of Geoinformatics. 5(1):3-11,2004. + for irrigated rice in Zhanghe, China. Asian Journal of Geoinformatics. 5(1):3-11,2004. <p>Alexandridis T.K., Cherif I., Chemin Y., Silleos N.G., Stavrinos E., Zalidis G.C. Integrated methodology for estimating water use in Mediterranean -agricultural areas. Remote Sensing. 2009, 1, 445-465. +agricultural areas. Remote Sensing. 2009, 1, 445-465. (<a href="http://www.mdpi.com/2072-4292/1/3/445">PDF</a>) +<<<<<<< HEAD <p>Chemin, Y., 2012. A Distributed Benchmarking Framework for Actual ET Models, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +<p>Chemin, Y., 2012. +A Distributed Benchmarking Framework for Actual ET Models, +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) in: Irmak, A. (Ed.), Evapotranspiration - Remote Sensing and Modeling. InTech. (<a href="http://www.intechopen.com/books/evapotranspiration-remote-sensing-and-modeling/a-distributed-benchmarking-framework-for-actual-et-models">PDF</a>) diff --git a/imagery/i.evapo.mh/i.evapo.mh.html b/imagery/i.evapo.mh/i.evapo.mh.html index 56b8130ffc2..d694112d3c9 100644 --- a/imagery/i.evapo.mh/i.evapo.mh.html +++ b/imagery/i.evapo.mh/i.evapo.mh.html @@ -4,6 +4,7 @@ <h2>DESCRIPTION</h2> Hargreaves et al. (1985), Hargreaves and Samani (1985) and the Modified <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD Hargreaves version found in Droogers and Allen (2002). ======= Hargreaves version found in Droogers and Allen (2002). @@ -11,6 +12,9 @@ <h2>DESCRIPTION</h2> ======= Hargreaves version found in Droogers and Allen (2002). >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +Hargreaves version found in Droogers and Allen (2002). +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <h2>REFERENCES</h2> diff --git a/imagery/i.evapo.pm/i.evapo.pm.html b/imagery/i.evapo.pm/i.evapo.pm.html index 63b0ab61c17..cc96a13b3c2 100644 --- a/imagery/i.evapo.pm/i.evapo.pm.html +++ b/imagery/i.evapo.pm/i.evapo.pm.html @@ -48,6 +48,7 @@ <h2>REFERENCES</h2> <p>[1] Cannata M., 2006. <a href="http://istgis.ist.supsi.ch:8001/geomatica/index.php?id=1"> GIS embedded approach for Free & Open Source Hydrological Modelling</a>. PhD thesis, Department of Geodesy and Geomatics, Polytechnic of Milan, Italy. +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <p>[2] Allen, R.G., L.S. Pereira, D. Raes, and M. Smith. 1998. @@ -69,6 +70,14 @@ <h2>REFERENCES</h2> >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + <p>[2] Allen, R.G., L.S. Pereira, D. Raes, and M. Smith. 1998. + Crop Evapotranspiration: Guidelines for computing crop water requirements. + Irrigation and Drainage Paper 56, Food and Agriculture Organization of the + United Nations, Rome, pp. 300 + + <p>[3] Penman, H. L. 1948. Natural evaporation from open water, +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) bare soil and grass. Proc. Roy. Soc. London, A193, pp. 120-146. <h2>SEE ALSO</h2> @@ -86,6 +95,7 @@ <h2>SEE ALSO</h2> <h2>AUTHORS</h2> +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD @@ -94,6 +104,9 @@ <h2>AUTHORS</h2> >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <p>Original version of program: The <a href="http://istgis.ist.supsi.ch:8001/geomatica/index.php?id=1">HydroFOSS</a> project, 2006, IST-SUPSI. (http://istgis.ist.supsi.ch:8001/geomatica/index.php?id=1) <i> <br>Massimiliano Cannata, Scuola Universitaria Professionale della Svizzera Italiana - Istituto Scienze della Terra diff --git a/imagery/i.gensig/i.gensig.html b/imagery/i.gensig/i.gensig.html index 16116c088b2..a1cb10ac018 100644 --- a/imagery/i.gensig/i.gensig.html +++ b/imagery/i.gensig/i.gensig.html @@ -143,6 +143,7 @@ <h2>NOTES</h2> 10 0.530339 2.40757 5.52857 22.433 11 0.561184 2.30762 5.18846 20.5364 20.4926 12 0.393218 1.2184 2.63628 9.61528 9.36025 5.85314 +<<<<<<< HEAD ======= 3 Band_reference1 ======= @@ -166,6 +167,8 @@ <h2>NOTES</h2> >>>>>>> 268d757b7d (ci: Ignore paths in CodeQL (#1778)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) </pre></div> <ul> diff --git a/imagery/i.ifft/i.ifft.html b/imagery/i.ifft/i.ifft.html index e5ef6a613b4..5859c137955 100644 --- a/imagery/i.ifft/i.ifft.html +++ b/imagery/i.ifft/i.ifft.html @@ -53,14 +53,14 @@ <h2>SEE ALSO</h2> >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) <ul> -<li> M. Frigo and S. G. Johnson (1998): "FFTW: An Adaptive Software +<li> M. Frigo and S. G. Johnson (1998): "FFTW: An Adaptive Software Architecture for the FFT". See <a href="http://www.fftw.org/">www.fftw.org</a>: -FFTW is a C subroutine library for computing the Discrete Fourier -Transform (DFT) in one or more dimensions, of both real and complex +FFTW is a C subroutine library for computing the Discrete Fourier +Transform (DFT) in one or more dimensions, of both real and complex data, and of arbitrary input size.</li> -<li> Richards, J.A (1986): <b>Remote Sensing Digital Image +<li> Richards, J.A (1986): <b>Remote Sensing Digital Image Analysis</b>, Springer-Verlag, 1986.</li> -<li> Personal communication, between program author and Ali R. Vali, +<li> Personal communication, between program author and Ali R. Vali, Space Research Center, University of Texas, Austin, 1990.</li> </ul> @@ -76,8 +76,12 @@ <h2>SEE ALSO</h2> </em> +<<<<<<< HEAD >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <h2>AUTHORS</h2> David Satnik, GIS Laboratory, diff --git a/imagery/i.landsat.toar/i.landsat.toar.html b/imagery/i.landsat.toar/i.landsat.toar.html index 41045a23f77..3d6e6731648 100644 --- a/imagery/i.landsat.toar/i.landsat.toar.html +++ b/imagery/i.landsat.toar/i.landsat.toar.html @@ -27,12 +27,16 @@ <h2>DESCRIPTION</h2> <p> <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <b>Attention</b>: This module does <b>not</b> respect the current region settings, in order to have the largest possible sample of pixels from where to get the darkest one of the scene and perform the DOS correction. To limit the results to a custom region, the user is advised to clip the results (with <a href="r.clip.html">r.clip</a>, for instance) or to define the region first, import the images with region +<<<<<<< HEAD ======= ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) @@ -46,6 +50,8 @@ <h2>DESCRIPTION</h2> >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) cropping, and then running the module. <h2>Uncorrected at-sensor values (method=uncorrected, default)</h2> diff --git a/imagery/i.modis.qc/i.modis.qc.html b/imagery/i.modis.qc/i.modis.qc.html index 4ba358db5e9..32f5fe774d8 100644 --- a/imagery/i.modis.qc/i.modis.qc.html +++ b/imagery/i.modis.qc/i.modis.qc.html @@ -516,10 +516,14 @@ <h2>REFERENCES</h2> <ul> <li> <a href="https://lpdaac.usgs.gov/dataset_discovery/modis/modis_products_table">MODIS Products</a> <<<<<<< HEAD +<<<<<<< HEAD <li> Vermote E.F., Kotchenova S.Y., Ray J.P. MODIS Surface Reflectance User's Guide. ======= <li> Vermote E.F., Kotchenova S.Y., Ray J.P. MODIS Surface Reflectance User's Guide. >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +<li> Vermote E.F., Kotchenova S.Y., Ray J.P. MODIS Surface Reflectance User's Guide. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Version 1.2. June 2008. MODIS Land Surface Reflectance Science Computing Facility. <a href="http://modis-sr.ltdri.org">Homepage</a> </ul> diff --git a/imagery/i.ortho.photo/i.ortho.camera/i.ortho.camera.html b/imagery/i.ortho.photo/i.ortho.camera/i.ortho.camera.html index 29aaa926b87..4acddb34d72 100644 --- a/imagery/i.ortho.photo/i.ortho.camera/i.ortho.camera.html +++ b/imagery/i.ortho.photo/i.ortho.camera/i.ortho.camera.html @@ -92,6 +92,7 @@ <h2>DESCRIPTION</h2> (OR <Ctrl-C> TO CANCEL) </pre> <<<<<<< HEAD +<<<<<<< HEAD The input display is repeated until the number of MAXIMUM FIDUCIALS is reached. ======= @@ -101,6 +102,10 @@ <h2>DESCRIPTION</h2> >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +The input display is repeated until the number of MAXIMUM FIDUCIALS +is reached. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <h2>SEE ALSO</h2> diff --git a/imagery/i.ortho.photo/i.ortho.photo/i.ortho.photo.html b/imagery/i.ortho.photo/i.ortho.photo/i.ortho.photo.html index b2217793900..efc1227d7df 100644 --- a/imagery/i.ortho.photo/i.ortho.photo/i.ortho.photo.html +++ b/imagery/i.ortho.photo/i.ortho.photo/i.ortho.photo.html @@ -77,10 +77,17 @@ <h2>EXAMPLE</h2> step by step. Alternatively, all the steps can be performed separately by running the corresponding modules. <p> +<<<<<<< HEAD The aerial photos shall be stored in a <b>source project</b> - a general Cartesian coordinate system (XY). Digital elevation model and a map reference (topo sheet or other map used for ground control point matching) shall be stored in a <b>target project</b> in a real-world coordinate system +======= +The aerial photos shall be stored in a <b>source location</b> - a general +Cartesian coordinate system (XY). Digital elevation model and a map reference +(topo sheet or other map used for ground control point matching) shall +be stored in a <b>target location</b> in a real-world coordinate system +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) (e.g. ETRS33). <p> The steps to follow are described below: @@ -88,7 +95,11 @@ <h2>EXAMPLE</h2> <li><em>Create/Modify imagery group to be orthorectified: <a href="i.group.html">i.group</a></em> <p> +<<<<<<< HEAD This step is to be run in the <b>source project</b>. +======= +This step is to be run in the <b>source location</b>. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <p> In this first step an imagery group of aerial images for ortho-rectification is created or modified. The current imagery group is displayed at the top @@ -129,7 +140,11 @@ <h2>EXAMPLE</h2> <p> This step is to be run in the <b>source project</b>. <p> +<<<<<<< HEAD Step 3 allows you to select the raster map from the target project to be +======= +Step 3 allows you to select the raster map from the target location to be +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) used as the elevation model. The elevation model is required for both the computation of photo-to-target parameters (Step 6) and for the ortho-rectification of the imagery group files (Step 8). @@ -220,14 +235,22 @@ <h2>EXAMPLE</h2> <li><em> Initialize parameters of camera: <a href="i.ortho.init.html">i.ortho.init</a></em> <p> +<<<<<<< HEAD This step is to be run in the <b>source project</b>. +======= +This step is to be run in the <b>source location</b>. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <p> In Step 6, initial camera exposure station parameters and initial variances may be selected or modified. <ul> <li><b>X</b>: East aircraft position;</li> <li><b>Y</b>: North aircraft position;</li> +<<<<<<< HEAD <li><b>Z</b>: Flight height above surface;</li> +======= + <li><b>Z</b>: Flight heigh above surface;</li> +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <li><b>Omega (pitch)</b>: Raising or lowering of the aircraft's front (turning around the wings' axis);</li> <li><b>Phi (roll)</b>: Raising or lowering of the wings (turning @@ -328,6 +351,7 @@ <h2>EXAMPLE</h2> <h2>REFERENCES</h2> +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD Wolf P.R. (1983). <i>Elements of Photogrammetry: With Air Photo @@ -336,6 +360,9 @@ <h2>REFERENCES</h2> >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) Wolf P.R. (1983). <i>Elements of Photogrammetry: With Air Photo >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +Wolf P.R. (1983). <i>Elements of Photogrammetry: With Air Photo +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Interpretation and Remote Sensing</i> <b>McGraw Hill Higher Education</b> ISBN-10: 0070713456, ISBN-13: 978-0070713451 <br> diff --git a/imagery/i.ortho.photo/i.ortho.rectify/i.ortho.rectify.html b/imagery/i.ortho.photo/i.ortho.rectify/i.ortho.rectify.html index 96a649d8b8e..a26c484cf70 100644 --- a/imagery/i.ortho.photo/i.ortho.rectify/i.ortho.rectify.html +++ b/imagery/i.ortho.photo/i.ortho.rectify/i.ortho.rectify.html @@ -57,7 +57,11 @@ <H4>Interactive mode</H4> produced and if yes, what should be its name. <p> After that you are asked if overwriting existing maps in the target +<<<<<<< HEAD project and mapset should be allowed. +======= +location and mapset should be allowed. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <p> The next prompt asks you to select one of two windows: <p> diff --git a/imagery/i.ortho.photo/i.ortho.transform/i.ortho.transform.html b/imagery/i.ortho.photo/i.ortho.transform/i.ortho.transform.html index a0e7d5f6c40..d2809d5a7f4 100644 --- a/imagery/i.ortho.photo/i.ortho.transform/i.ortho.transform.html +++ b/imagery/i.ortho.photo/i.ortho.transform/i.ortho.transform.html @@ -18,6 +18,7 @@ <h2>DESCRIPTION</h2> <h2>NOTES</h2> +<<<<<<< HEAD <<<<<<< HEAD Ortho-transformation is a 2-step transformation. First, source coordinates are transformed to sensor coordinates, then sensor @@ -30,6 +31,11 @@ <h2>NOTES</h2> >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +Ortho-transformation is a 2-step transformation. First, source +coordinates are transformed to sensor coordinates, then sensor +coordinates are transformed to target coordinates. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <h2>SEE ALSO</h2> diff --git a/imagery/i.rgb.his/i.rgb.his.html b/imagery/i.rgb.his/i.rgb.his.html index 8deaa8ce4f8..7aa9480792a 100644 --- a/imagery/i.rgb.his/i.rgb.his.html +++ b/imagery/i.rgb.his/i.rgb.his.html @@ -22,6 +22,7 @@ <h2>AUTHOR</h2> <br> with acknowledgements to Ali Vali, Space Research <<<<<<< HEAD +<<<<<<< HEAD Center, for the core routine. ======= Center, for the core routine. @@ -29,3 +30,6 @@ <h2>AUTHOR</h2> >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +Center, for the core routine. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/imagery/i.segment/i.segment.html b/imagery/i.segment/i.segment.html index fa0a4e2c542..0023ed7bef8 100644 --- a/imagery/i.segment/i.segment.html +++ b/imagery/i.segment/i.segment.html @@ -2,6 +2,9 @@ <h2>DESCRIPTION</h2> <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Image segmentation or object recognition is the process of grouping similar pixels into unique segments, also referred to as objects. Boundary and region based algorithms are described in the literature, @@ -12,6 +15,7 @@ <h2>DESCRIPTION</h2> other are assigned to the same class and do not need to be contiguous. The image segmentation results can be useful on their own, or used as a preprocessing step for image classification. The segmentation +<<<<<<< HEAD ======= ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) @@ -26,6 +30,8 @@ <h2>DESCRIPTION</h2> The image segmentation results can be useful on their own, or used as a preprocessing step for image classification. The segmentation >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) preprocessing step can reduce noise and speed up the classification. <h2>NOTES</h2> @@ -282,6 +288,7 @@ <h3>Speed</h3> <h2>REFERENCES</h2> +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD This project was first developed during GSoC 2012. Project documentation, @@ -292,6 +299,10 @@ <h2>REFERENCES</h2> This project was first developed during GSoC 2012. Project documentation, Image Segmentation references, and other information is at the >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +This project was first developed during GSoC 2012. Project documentation, +Image Segmentation references, and other information is at the +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <a href="https://grasswiki.osgeo.org/wiki/GRASS_GSoC_2012_Image_Segmentation">project wiki</a>. <p> Information about @@ -313,9 +324,12 @@ <h2>AUTHORS</h2> Eric Momsen - North Dakota State University<br> Markus Metz (GSoC Mentor) <<<<<<< HEAD +<<<<<<< HEAD ======= <<<<<<< HEAD >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/imagery/i.vi/i.vi.html b/imagery/i.vi/i.vi.html index 2672edf1d72..9153c490e89 100644 --- a/imagery/i.vi/i.vi.html +++ b/imagery/i.vi/i.vi.html @@ -80,6 +80,7 @@ <h3>Vegetation Indices</h3> ( nirchan + (2.0*redchan - bluechan)) </pre></div> +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <b>CI: Crust Index</b> @@ -89,6 +90,9 @@ <h3>Vegetation Indices</h3> ======= <b>CI: Crust Index</b> >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +<b>CI: Crust Index</b> +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <p> Advantage is taken of a unique spectral feature of soil biogenic crust containing cyanobacteria. It has been shown that the special phycobilin @@ -101,6 +105,7 @@ <h3>Vegetation Indices</h3> <div class="code"><pre> ci ( bluechan, redchan ) +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD CI = 1 - (redchan - bluechan) / @@ -110,6 +115,9 @@ <h3>Vegetation Indices</h3> ======= CI = 1 - (redchan - bluechan) / >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +CI = 1 - (redchan - bluechan) / +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) (redchan + bluechan) </pre></div> @@ -610,6 +618,7 @@ <h2>REFERENCES</h2> <ul> <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD <li>Bastiaanssen, W.G.M., 1995. Regionalization of surface flux densities and moisture indicators in composite terrain; a remote sensing approach under clear skies in mediterranean climates. PhD @@ -623,6 +632,11 @@ <h2>REFERENCES</h2> densities and moisture indicators in composite terrain; a remote sensing approach under clear skies in mediterranean climates. PhD >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +<li>Bastiaanssen, W.G.M., 1995. Regionalization of surface flux +densities and moisture indicators in composite terrain; a remote +sensing approach under clear skies in mediterranean climates. PhD +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) thesis, Wageningen Agricultural Univ., The Netherland, 271 pp. (<a href="http://edepot.wur.nl/206553">PDF</a>)</li> <li> <a href="http://www.indexdatabase.de/db/i.php">Index DataBase: List of available Indices</a></li> diff --git a/imagery/i.zc/main.c b/imagery/i.zc/main.c index 455c0adb028..fcbd4c88c8b 100644 --- a/imagery/i.zc/main.c +++ b/imagery/i.zc/main.c @@ -37,11 +37,15 @@ int main(int argc, char *argv[]) <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) size_t i, j; /* Loop control variables */ unsigned int or, oc; /* Original dimensions of image */ int rows, cols; /* Smallest powers of 2 >= number of rows & columns */ size_t size; /* the length of one side */ size_t totsize; /* the Total number of data points */ +<<<<<<< HEAD ======= ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) @@ -54,6 +58,8 @@ int main(int argc, char *argv[]) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) double *data[2]; /* Data structure containing real & complex values of FFT */ struct GModule *module; diff --git a/imagery/imageryintro.html b/imagery/imageryintro.html index a81be6dd25d..336b1d65311 100644 --- a/imagery/imageryintro.html +++ b/imagery/imageryintro.html @@ -96,6 +96,7 @@ <h3>Semantic label information</h3> <a href="i.band.library.html">i.band.library</a>. Semantic labels are <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD also used in signature files of imagery classification tools. Therefore, ======= also used in signature files of imagery classification tools. Therefore, @@ -103,6 +104,9 @@ <h3>Semantic label information</h3> ======= also used in signature files of imagery classification tools. Therefore, >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +also used in signature files of imagery classification tools. Therefore, +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) signature files of one imagery or raster group can be used to classify a different group with identical semantic labels. @@ -116,6 +120,7 @@ <h3>Semantic label information</h3> With <a href="r.support.html">r.support</a> any sort of semantic label <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD the user wishes may be added (i.e., not only those registered in ======= the user wishes may be added (i.e., not only those registered in @@ -123,6 +128,9 @@ <h3>Semantic label information</h3> ======= the user wishes may be added (i.e., not only those registered in >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +the user wishes may be added (i.e., not only those registered in +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <em>i.band.library</em>). Semantic labels are supported also by the <a href="temporalintro.html">temporal</a> GRASS modules. diff --git a/lib/cairodriver/cairodriver.html b/lib/cairodriver/cairodriver.html index bce4c441cb8..37a2d320774 100644 --- a/lib/cairodriver/cairodriver.html +++ b/lib/cairodriver/cairodriver.html @@ -147,6 +147,7 @@ <h3>SVG Example</h3> d.vect map=roadsmajor -c </pre></div> +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <h2>NOTES</h2> @@ -155,6 +156,9 @@ <h2>NOTES</h2> >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) <h2>NOTES</h2> >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +<h2>NOTES</h2> +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) The driver is still in development. Enable it by specifying <code>--with-cairo</code> when configuring GRASS. This diff --git a/lib/cairodriver/read_bmp.c b/lib/cairodriver/read_bmp.c index 88c13776fc4..183a497a32e 100644 --- a/lib/cairodriver/read_bmp.c +++ b/lib/cairodriver/read_bmp.c @@ -54,6 +54,7 @@ static int read_bmp_header(const unsigned char *p) if (*p++ != 'M') return 0; +<<<<<<< HEAD <<<<<<< HEAD if (get_4(&p) != (unsigned int)HEADER_SIZE + ca.width * ca.height * 4) ======= @@ -62,6 +63,9 @@ static int read_bmp_header(const unsigned char *p) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (get_4(&p) != (unsigned int)HEADER_SIZE + ca.width * ca.height * 4) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) return 0; get_4(&p); @@ -72,6 +76,7 @@ static int read_bmp_header(const unsigned char *p) if (get_4(&p) != 40) return 0; +<<<<<<< HEAD <<<<<<< HEAD if (get_4(&p) != (unsigned int)ca.width) return 0; @@ -84,6 +89,11 @@ static int read_bmp_header(const unsigned char *p) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (get_4(&p) != (unsigned int)ca.width) + return 0; + if (get_4(&p) != (unsigned int)-ca.height) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) return 0; get_2(&p); @@ -93,6 +103,7 @@ static int read_bmp_header(const unsigned char *p) if (get_4(&p) != 0) return 0; <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (get_4(&p) != (unsigned int)ca.width * ca.height * 4) ======= @@ -101,6 +112,9 @@ static int read_bmp_header(const unsigned char *p) ======= if (get_4(&p) != ca.width * ca.height * 4) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (get_4(&p) != (unsigned int)ca.width * ca.height * 4) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) return 0; get_4(&p); @@ -126,6 +140,7 @@ void cairo_read_bmp(void) if (!read_bmp_header(header)) G_fatal_error(_("Cairo: Invalid BMP header for <%s>"), ca.file_name); +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD if (fread(ca.grid, ca.stride, ca.height, input) != @@ -136,6 +151,10 @@ void cairo_read_bmp(void) ======= if (fread(ca.grid, ca.stride, ca.height, input) != ca.height) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (fread(ca.grid, ca.stride, ca.height, input) != + (unsigned int)ca.height) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) if (feof(input)) G_fatal_error(_("Cairo: error reading BMP file <%s>: " "unexpected end of file"), diff --git a/lib/calc/xrand.c b/lib/calc/xrand.c index 08a1f06fdac..399c1823c4e 100644 --- a/lib/calc/xrand.c +++ b/lib/calc/xrand.c @@ -36,6 +36,7 @@ int f_rand(int argc, const int *argt, void **args) hi = tmp; } <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD res[i] = (lo == hi) ? lo : (int)(lo + x % (unsigned int)(hi - lo)); ======= @@ -44,6 +45,9 @@ int f_rand(int argc, const int *argt, void **args) ======= res[i] = (lo == hi) ? lo : lo + x % (unsigned int)(hi - lo); >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + res[i] = (lo == hi) ? lo : (int)(lo + x % (unsigned int)(hi - lo)); +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) } return 0; } diff --git a/lib/db/dbmi_driver/d_error.c b/lib/db/dbmi_driver/d_error.c index 6676bdc3e07..32657f050ec 100644 --- a/lib/db/dbmi_driver/d_error.c +++ b/lib/db/dbmi_driver/d_error.c @@ -76,6 +76,7 @@ void db_d_append_error(const char *fmt, ...) if (count >= 0 && (work = G_calloc(count + 1, 1))) { rewind(fp); <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (fread(work, 1, count, fp) != (size_t)count) { ======= @@ -84,6 +85,9 @@ void db_d_append_error(const char *fmt, ...) ======= if (fread(work, 1, count, fp) != count) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (fread(work, 1, count, fp) != (size_t)count) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) if (ferror(fp)) G_fatal_error(_("DBMI-%s driver file reading error: %s"), st->driver_name, strerror(errno)); diff --git a/lib/db/sqlp/sql.html b/lib/db/sqlp/sql.html index 6525fbfcc13..41939dae081 100644 --- a/lib/db/sqlp/sql.html +++ b/lib/db/sqlp/sql.html @@ -18,6 +18,7 @@ <h2>Database drivers</h2> +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD The default database driver used by GRASS GIS 8 is SQLite. GRASS GIS @@ -27,6 +28,9 @@ <h2>Database drivers</h2> ======= The default database driver used by GRASS GIS 8 is SQLite. GRASS GIS >>>>>>> 227cbcebbf (Programmer's manual: update GRASS GIS arch drawing (#1610)) +======= +The default database driver used by GRASS GIS 8 is SQLite. GRASS GIS +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) handles multiattribute vector data by default. The <em>db.*</em> set of commands provides basic SQL support for attribute management, while the <em>v.db.*</em> set of commands operates on vector maps. diff --git a/lib/driver/font2.c b/lib/driver/font2.c index 73d158cc4c9..1ae4883164d 100644 --- a/lib/driver/font2.c +++ b/lib/driver/font2.c @@ -69,6 +69,7 @@ static void read_hersh(const char *filename) struct glyph *glyph; int coords; <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD unsigned int i, idx, count; int c; @@ -80,6 +81,10 @@ static void read_hersh(const char *filename) unsigned int idx, count; int c, i; >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + unsigned int i, idx, count; + int c; +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) switch (c = fgetc(fp)) { case '\r': diff --git a/lib/dspf/dspf_header.c b/lib/dspf/dspf_header.c index dc138cfca52..69138697f85 100644 --- a/lib/dspf/dspf_header.c +++ b/lib/dspf/dspf_header.c @@ -41,6 +41,7 @@ int dfwrite_header(file_info *headp) if (1 != fwrite(&linep->nthres, isize, 1, fp)) return (-1); /* write the array of thresholds out */ +<<<<<<< HEAD <<<<<<< HEAD if ((fwrite(linep->tvalue, flsize, linep->nthres, fp)) != (size_t)linep->nthres) { @@ -50,6 +51,10 @@ int dfwrite_header(file_info *headp) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if ((fwrite(linep->tvalue, flsize, linep->nthres, fp)) != + (size_t)linep->nthres) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) fprintf(stderr, "ERROR: fwrite in dspf_header.c\n"); return (-1); } diff --git a/lib/gis/asprintf.c b/lib/gis/asprintf.c index c5f5c1e21a0..9dc2e98015e 100644 --- a/lib/gis/asprintf.c +++ b/lib/gis/asprintf.c @@ -114,6 +114,7 @@ int G_rasprintf(char **out, size_t *size, const char *fmt, ...) count = vsnprintf(buf, osize, fmt, ap); va_end(ap); <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (count >= 0 && (size_t)count < osize) ======= @@ -122,6 +123,9 @@ int G_rasprintf(char **out, size_t *size, const char *fmt, ...) ======= if (count >= 0 && count < osize) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (count >= 0 && (size_t)count < osize) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) break; if (count > -1) osize = count + 1; diff --git a/lib/gis/cmprbzip.c b/lib/gis/cmprbzip.c index 676ffd756e4..cb7f6540a58 100644 --- a/lib/gis/cmprbzip.c +++ b/lib/gis/cmprbzip.c @@ -212,6 +212,7 @@ int G_bz2_expand(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz) * updated buffer size */ +<<<<<<< HEAD <<<<<<< HEAD if (dst_sz < 0 || nbytes != (unsigned int)dst_sz) { ======= @@ -220,6 +221,9 @@ int G_bz2_expand(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (dst_sz < 0 || nbytes != (unsigned int)dst_sz) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) /* TODO: it is not an error if destination is larger than needed */ G_warning(_("Got uncompressed size %d, expected %d"), (int)nbytes, dst_sz); diff --git a/lib/gis/cmprzlib.c b/lib/gis/cmprzlib.c index 76c37d8c622..5f4e8f9009c 100644 --- a/lib/gis/cmprzlib.c +++ b/lib/gis/cmprzlib.c @@ -115,6 +115,7 @@ int G_zlib_compress(unsigned char *src, int src_sz, unsigned char *dst, /* Output buffer should be large enough for single pass compression */ buf = dst; buf_sz = G_zlib_compress_bound(src_sz); +<<<<<<< HEAD <<<<<<< HEAD if (dst_sz < 0 || buf_sz > (unsigned int)dst_sz) { ======= @@ -123,6 +124,9 @@ int G_zlib_compress(unsigned char *src, int src_sz, unsigned char *dst, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (dst_sz < 0 || buf_sz > (unsigned int)dst_sz) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_warning( "G_zlib_compress(): programmer error, destination is too small"); if (NULL == @@ -151,6 +155,7 @@ int G_zlib_compress(unsigned char *src, int src_sz, unsigned char *dst, } /* updated buf_sz is bytes of compressed data */ +<<<<<<< HEAD <<<<<<< HEAD if (src_sz < 0 || nbytes >= (unsigned int)src_sz) { ======= @@ -159,6 +164,9 @@ int G_zlib_compress(unsigned char *src, int src_sz, unsigned char *dst, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (src_sz < 0 || nbytes >= (unsigned int)src_sz) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) /* compression not possible */ if (buf != dst) G_free(buf); @@ -218,6 +226,7 @@ int G_zlib_expand(unsigned char *src, int src_sz, unsigned char *dst, * updated buffer size */ +<<<<<<< HEAD <<<<<<< HEAD if (dst_sz < 0 || nbytes != (unsigned int)dst_sz) { ======= @@ -226,6 +235,9 @@ int G_zlib_expand(unsigned char *src, int src_sz, unsigned char *dst, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (dst_sz < 0 || nbytes != (unsigned int)dst_sz) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) /* TODO: it is not an error if destination is larger than needed */ G_warning(_("Got uncompressed size %d, expected %d"), (int)nbytes, dst_sz); diff --git a/lib/gis/ls.c b/lib/gis/ls.c index 120cd792ea9..3561bf6e289 100644 --- a/lib/gis/ls.c +++ b/lib/gis/ls.c @@ -184,6 +184,7 @@ void G_ls_format(char **list, int num_items, int perline, FILE *stream) if (perline == 0) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD unsigned int max_len = 0; ======= @@ -192,6 +193,9 @@ void G_ls_format(char **list, int num_items, int perline, FILE *stream) ======= int max_len = 0; >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + unsigned int max_len = 0; +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) for (i = 0; i < num_items; i++) { /* Find maximum filename length */ diff --git a/lib/gis/parser_dependencies.c b/lib/gis/parser_dependencies.c index 23da0b05fa7..66badf13322 100644 --- a/lib/gis/parser_dependencies.c +++ b/lib/gis/parser_dependencies.c @@ -566,6 +566,7 @@ void G__describe_option_rules_xml(FILE *fp) for (i = 0; i < rules.count; i++) { const struct rule *rule = &((const struct rule *)rules.data)[i]; +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD if (rule->count < 0) @@ -581,6 +582,13 @@ void G__describe_option_rules_xml(FILE *fp) fprintf(fp, "\t\t<rule type=\"%s\">\n", rule_types[rule->type]); for (j = 0; j < rule->count; j++) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (rule->count < 0) + G_fatal_error(_("Internal error: the number of options is < 0")); + + fprintf(fp, "\t\t<rule type=\"%s\">\n", rule_types[rule->type]); + for (j = 0; j < (unsigned int)rule->count; j++) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) void *p = rule->opts[j]; if (is_flag(p)) { diff --git a/lib/gis/snprintf.c b/lib/gis/snprintf.c index d71247866b8..c8f18bcf019 100644 --- a/lib/gis/snprintf.c +++ b/lib/gis/snprintf.c @@ -51,6 +51,7 @@ int G_snprintf(char *str, size_t size, const char *fmt, ...) <<<<<<< HEAD ======= /* Windows' vsnprintf() doesn't always NUL-terminate the buffer */ +<<<<<<< HEAD <<<<<<< HEAD if (count >= 0 && (unsigned int)count == size) ======= @@ -59,6 +60,9 @@ int G_snprintf(char *str, size_t size, const char *fmt, ...) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (count >= 0 && (unsigned int)count == size) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) str[--count] = '\0'; >>>>>>> 3ecb21a9ab (wxpyimgview: explicit conversion to int (#2704)) diff --git a/lib/gis/user_config.c b/lib/gis/user_config.c index cbd941d6096..b246eb1c536 100644 --- a/lib/gis/user_config.c +++ b/lib/gis/user_config.c @@ -163,6 +163,7 @@ static int _elem_count_split(char *elems) assert(*elems != '/'); begin = elems; +<<<<<<< HEAD <<<<<<< HEAD for (i = 0; begin != NULL && (ptrdiff_t)len > begin - elems; i++) { ======= @@ -171,6 +172,9 @@ static int _elem_count_split(char *elems) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + for (i = 0; begin != NULL && (ptrdiff_t)len > begin - elems; i++) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) /* check '.' condition */ if (*begin == '.') return 0; diff --git a/lib/gmath/solvers_classic_iter.c b/lib/gmath/solvers_classic_iter.c index e3ba331b672..3e667e39287 100644 --- a/lib/gmath/solvers_classic_iter.c +++ b/lib/gmath/solvers_classic_iter.c @@ -65,6 +65,7 @@ int G_math_solver_sparse_jacobi(G_math_spvector **Asp, double *x, double *b, { if (k == 0) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD for (j = 0; j < (unsigned int)rows; j++) { Enew[j] = x[j]; @@ -83,6 +84,13 @@ int G_math_solver_sparse_jacobi(G_math_spvector **Asp, double *x, double *b, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + for (j = 0; j < (unsigned int)rows; j++) { + Enew[j] = x[j]; + } + } + for (i = 0; i < (unsigned int)rows; i++) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) E = 0; center = 0; for (j = 0; j < Asp[i]->cols; j++) { @@ -93,6 +101,7 @@ int G_math_solver_sparse_jacobi(G_math_spvector **Asp, double *x, double *b, Enew[i] = x[i] - sor * (E - b[i]) / Asp[i]->values[center]; } <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD for (j = 0; j < (unsigned int)rows; j++) { ======= @@ -101,6 +110,9 @@ int G_math_solver_sparse_jacobi(G_math_spvector **Asp, double *x, double *b, ======= for (j = 0; j < rows; j++) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + for (j = 0; j < (unsigned int)rows; j++) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) err += (x[j] - Enew[j]) * (x[j] - Enew[j]); x[j] = Enew[j]; @@ -163,6 +175,7 @@ int G_math_solver_sparse_gs(G_math_spvector **Asp, double *x, double *b, { if (k == 0) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD for (j = 0; j < (unsigned int)rows; j++) { Enew[j] = x[j]; @@ -181,6 +194,13 @@ int G_math_solver_sparse_gs(G_math_spvector **Asp, double *x, double *b, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + for (j = 0; j < (unsigned int)rows; j++) { + Enew[j] = x[j]; + } + } + for (i = 0; i < (unsigned int)rows; i++) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) E = 0; center = 0; for (j = 0; j < Asp[i]->cols; j++) { @@ -191,6 +211,7 @@ int G_math_solver_sparse_gs(G_math_spvector **Asp, double *x, double *b, Enew[i] = x[i] - sor * (E - b[i]) / Asp[i]->values[center]; } <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD for (j = 0; j < (unsigned int)rows; j++) { ======= @@ -199,6 +220,9 @@ int G_math_solver_sparse_gs(G_math_spvector **Asp, double *x, double *b, ======= for (j = 0; j < rows; j++) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + for (j = 0; j < (unsigned int)rows; j++) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) err += (x[j] - Enew[j]) * (x[j] - Enew[j]); x[j] = Enew[j]; diff --git a/lib/gmath/solvers_krylov.c b/lib/gmath/solvers_krylov.c index 74221de4219..8f432372829 100644 --- a/lib/gmath/solvers_krylov.c +++ b/lib/gmath/solvers_krylov.c @@ -776,6 +776,7 @@ G_math_spvector **create_diag_precond_matrix(double **A, G_math_spvector **Asp, #pragma omp parallel for schedule(static) private(i, j, sum) \ shared(A, Msp, rows, cols, prec) <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD for (i = 0; i < (unsigned int)rows; i++) { ======= @@ -784,6 +785,9 @@ G_math_spvector **create_diag_precond_matrix(double **A, G_math_spvector **Asp, ======= for (i = 0; i < rows; i++) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + for (i = 0; i < (unsigned int)rows; i++) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_math_spvector *spvect = G_math_alloc_spvector(1); switch (prec) { @@ -815,6 +819,7 @@ G_math_spvector **create_diag_precond_matrix(double **A, G_math_spvector **Asp, #pragma omp parallel for schedule(static) private(i, j, sum) \ shared(Asp, Msp, rows, cols, prec) <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD for (i = 0; i < (unsigned int)rows; i++) { ======= @@ -823,6 +828,9 @@ G_math_spvector **create_diag_precond_matrix(double **A, G_math_spvector **Asp, ======= for (i = 0; i < rows; i++) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + for (i = 0; i < (unsigned int)rows; i++) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_math_spvector *spvect = G_math_alloc_spvector(1); switch (prec) { diff --git a/lib/gmath/sparse_matrix.c b/lib/gmath/sparse_matrix.c index 3ea2e06fc54..0fdc2460ec1 100644 --- a/lib/gmath/sparse_matrix.c +++ b/lib/gmath/sparse_matrix.c @@ -162,6 +162,7 @@ void G_math_print_spmatrix(G_math_spvector **Asp, int rows) out = 0; for (k = 0; k < Asp[i]->cols; k++) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (Asp[i]->index[k] == (unsigned int)j) { ======= @@ -170,6 +171,9 @@ void G_math_print_spmatrix(G_math_spvector **Asp, int rows) ======= if (Asp[i]->index[k] == j) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (Asp[i]->index[k] == (unsigned int)j) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) fprintf(stdout, "%4.5f ", Asp[i]->values[k]); out = 1; } @@ -248,6 +252,7 @@ double **G_math_Asp_to_sband_matrix(G_math_spvector **Asp, int rows, A = G_alloc_matrix(rows, bandwidth); +<<<<<<< HEAD <<<<<<< HEAD for (i = 0; i < (unsigned int)rows; i++) { ======= @@ -256,6 +261,9 @@ double **G_math_Asp_to_sband_matrix(G_math_spvector **Asp, int rows, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + for (i = 0; i < (unsigned int)rows; i++) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) for (j = 0; j < Asp[i]->cols; j++) { if (Asp[i]->index[j] == i) { A[i][0] = Asp[i]->values[j]; diff --git a/lib/gpde/gpdelib.dox b/lib/gpde/gpdelib.dox index d6030871305..0d499874f23 100644 --- a/lib/gpde/gpdelib.dox +++ b/lib/gpde/gpdelib.dox @@ -632,7 +632,11 @@ The gradient of one cell to there neighbours in each direction has the following \verbatim +<<<<<<< HEAD The two dimensional gradient consists of 4 values between the neighbour cells +======= +The two dimensional gradient consits of 4 values between the neighbour cells +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) ______________ | | | | | | | | diff --git a/lib/gpde/n_les.c b/lib/gpde/n_les.c index 424ae3ca5f9..139f973c846 100644 --- a/lib/gpde/n_les.c +++ b/lib/gpde/n_les.c @@ -263,6 +263,7 @@ void N_print_les(N_les *les) for (j = 0; j < les->cols; j++) { out = 0; <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD for (k = 0; (unsigned int)k < les->Asp[i]->cols; k++) { if (les->Asp[i]->index[k] == (unsigned int)j) { @@ -274,6 +275,10 @@ void N_print_les(N_les *les) for (k = 0; k < les->Asp[i]->cols; k++) { if (les->Asp[i]->index[k] == j) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + for (k = 0; (unsigned int)k < les->Asp[i]->cols; k++) { + if (les->Asp[i]->index[k] == (unsigned int)j) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) fprintf(stdout, "%4.5f ", les->Asp[i]->values[k]); out = 1; } diff --git a/lib/gpde/n_les_assemble.c b/lib/gpde/n_les_assemble.c index 6a41b97cab4..ed55290ef97 100644 --- a/lib/gpde/n_les_assemble.c +++ b/lib/gpde/n_les_assemble.c @@ -895,6 +895,7 @@ int N_les_integrate_dirichlet_2d(N_les *les, N_geom_data *geom, if (les->type == N_SPARSE_LES) { /*set the rows to zero */ <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD for (i = 0; (unsigned int)i < les->Asp[count]->cols; i++) les->Asp[count]->values[i] = 0.0; @@ -915,6 +916,14 @@ int N_les_integrate_dirichlet_2d(N_les *les, N_geom_data *geom, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + for (i = 0; (unsigned int)i < les->Asp[count]->cols; i++) + les->Asp[count]->values[i] = 0.0; + /*set the cols to zero */ + for (i = 0; i < les->rows; i++) { + for (j = 0; (unsigned int)j < les->Asp[i]->cols; j++) { + if (les->Asp[i]->index[j] == (unsigned int)count) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) les->Asp[i]->values[j] = 0.0; } } @@ -1371,6 +1380,7 @@ int N_les_integrate_dirichlet_3d(N_les *les, N_geom_data *geom, if (les->type == N_SPARSE_LES) { /*set the rows to zero */ <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD for (i = 0; (unsigned int)i < les->Asp[count]->cols; i++) @@ -1394,6 +1404,17 @@ int N_les_integrate_dirichlet_3d(N_les *les, N_geom_data *geom, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + for (i = 0; (unsigned int)i < les->Asp[count]->cols; + i++) + les->Asp[count]->values[i] = 0.0; + /*set the cols to zero */ + for (i = 0; i < les->rows; i++) { + for (j = 0; (unsigned int)j < les->Asp[i]->cols; + j++) { + if (les->Asp[i]->index[j] == + (unsigned int)count) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) les->Asp[i]->values[j] = 0.0; } } diff --git a/lib/htmldriver/README b/lib/htmldriver/README index 0c249f6cb19..7aa3ad107a6 100644 --- a/lib/htmldriver/README +++ b/lib/htmldriver/README @@ -75,7 +75,11 @@ that exists in a vector file will have the same HREF tag. export GRASS_RENDER_HTMLMAXPOINTS GRASS_RENDER_HTMLMAXPOINTS=xx +<<<<<<< HEAD specifies the maximum number of vertices that a polygon can +======= + specifies the maxiumum number of vertices that a polygon can +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) have. The default is 99. Some browser can only handle image map polygons of less that 100 vertices. diff --git a/lib/imagery/iscatt_core.c b/lib/imagery/iscatt_core.c index 37e201141af..3ab17403f95 100644 --- a/lib/imagery/iscatt_core.c +++ b/lib/imagery/iscatt_core.c @@ -519,6 +519,7 @@ static int compute_scatts_from_chunk_row(struct scCats *scatt_conds, return -1; } <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (n_pixs != (row_size) / (int)sizeof(unsigned char)) { ======= @@ -527,6 +528,9 @@ static int compute_scatts_from_chunk_row(struct scCats *scatt_conds, ======= if (n_pixs != (row_size) / sizeof(unsigned char)) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (n_pixs != (row_size) / (int)sizeof(unsigned char)) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_free(rast_pixs); G_free(belongs_pix); G_warning( diff --git a/lib/imagery/sig.c b/lib/imagery/sig.c index 7dbff4a89e3..d8adfcf0a35 100644 --- a/lib/imagery/sig.c +++ b/lib/imagery/sig.c @@ -774,6 +774,9 @@ char **I_sort_signatures_by_semantic_label(struct Signature *S, total = 1; <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) for (unsigned int i = 0; i < (unsigned int)S->nbands; i++) { if (!match1[i]) { if (S->semantic_labels[i]) @@ -838,6 +841,9 @@ char **I_sort_signatures_by_semantic_label(struct Signature *S, total = 1; <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) for (unsigned int j = 0; j < (unsigned int)R->nfiles; j++) { if (!match2[j]) { if (group_semantic_labels[j]) @@ -905,6 +911,9 @@ char **I_sort_signatures_by_semantic_label(struct Signature *S, for (unsigned int c = S->nsigs; c--;) { <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) for (unsigned int b1 = 0; b1 < (unsigned int)S->nbands; b1++) { new_means[c][new_order[b1]] = S->sig[c].mean[b1]; for (unsigned int b2 = 0; b2 <= b1; b2++) { diff --git a/lib/imagery/sigset.c b/lib/imagery/sigset.c index d589aa31ed2..757cd91544d 100644 --- a/lib/imagery/sigset.c +++ b/lib/imagery/sigset.c @@ -942,6 +942,9 @@ char **I_SortSigSetBySemanticLabel(struct SigSet *S, const struct Ref *R) total = 1; <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) for (unsigned int i = 0; i < (unsigned int)S->nbands; i++) { if (!match1[i]) { if (S->semantic_labels[i]) @@ -1006,6 +1009,9 @@ char **I_SortSigSetBySemanticLabel(struct SigSet *S, const struct Ref *R) total = 1; <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) for (unsigned int j = 0; j < (unsigned int)R->nfiles; j++) { if (!match2[j]) { if (group_semantic_labels[j]) @@ -1073,6 +1079,7 @@ char **I_SortSigSetBySemanticLabel(struct SigSet *S, const struct Ref *R) for (unsigned int c = S->nclasses; c--;) { for (unsigned int s = S->ClassSig[c].nsubclasses; s--;) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD for (unsigned int b1 = 0; b1 < (unsigned int)S->nbands; b1++) { new_means[c][s][new_order[b1]] = @@ -1093,6 +1100,13 @@ char **I_SortSigSetBySemanticLabel(struct SigSet *S, const struct Ref *R) new_vars[c][s][new_order[b1]][new_order[b2]] = S->ClassSig[c].SubSig[s].R[b1][b2]; >>>>>>> 268d757b7d (ci: Ignore paths in CodeQL (#1778)) ======= +======= + for (unsigned int b1 = 0; b1 < (unsigned int)S->nbands; b1++) { + new_means[c][s][new_order[b1]] = + S->ClassSig[c].SubSig[s].means[b1]; + for (unsigned int b2 = 0; b2 < (unsigned int)S->nbands; + b2++) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) new_vars[c][s][new_order[b1]][new_order[b2]] = S->ClassSig[c].SubSig[s].R[b1][b2]; >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) diff --git a/lib/init/grass.html b/lib/init/grass.html index 119c8de5387..a1ecd43bcbe 100644 --- a/lib/init/grass.html +++ b/lib/init/grass.html @@ -765,6 +765,7 @@ <h4>Using temporary mapset</h4> <h4>Troubleshooting</h4> <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD Importantly, to avoid an <tt>"[Errno 8] Exec format error"</tt> there must be a <a href="https://en.wikipedia.org/wiki/Shebang_%28Unix%29">shebang</a> line at the top of the script (like <tt>#!/bin/sh</tt>, <tt>#!/bin/bash</tt>, or <tt>#!/usr/bin/env python3</tt>) @@ -782,6 +783,13 @@ <h4>Troubleshooting</h4> >>>>>>> 73a1a8ce38 (Programmer's manual: update GRASS GIS arch drawing (#1610)) ======= >>>>>>> 227cbcebbf (Programmer's manual: update GRASS GIS arch drawing (#1610)) +======= +Importantly, to avoid an <tt>"[Errno 8] Exec format error"</tt> there must be a +<a href="https://en.wikipedia.org/wiki/Shebang_%28Unix%29">shebang</a> line at the top of +the script (like <tt>#!/bin/sh</tt>, <tt>#!/bin/bash</tt>, or <tt>#!/usr/bin/env python3</tt>) +indicating which interpreter to be used for the script. The script file must +have its executable bit set. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <h2>CAVEAT</h2> diff --git a/lib/init/variables.html b/lib/init/variables.html index 9fad9330756..6b318b1bfdf 100644 --- a/lib/init/variables.html +++ b/lib/init/variables.html @@ -101,12 +101,16 @@ <h2>List of selected (GRASS related) shell environment variables</h2> Windows <tt>%APPDATA%\Roaming\GRASS8\addons</tt>.</dd> <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD ======= ======= >>>>>>> 227cbcebbf (Programmer's manual: update GRASS GIS arch drawing (#1610)) >>>>>>> 73a1a8ce38 (Programmer's manual: update GRASS GIS arch drawing (#1610)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <dt>GRASS_ADDON_ETC</dt> <dd>[libgis, g.findetc]<br> specify paths where support files (etc/) may be found external to @@ -129,10 +133,17 @@ <h2>List of selected (GRASS related) shell environment variables</h2> environment variable GRASS_COMPRESSOR. Supported methods are RLE, ZLIB, LZ4, BZIP2, and ZSTD. The default is ZSTD if available, otherwise ZLIB, which can be changed with e.g. +<<<<<<< HEAD <tt>GRASS_COMPRESSOR=ZSTD</tt>, granted that GRASS has been compiled with the requested compressor. Compressors that are always available are RLE, ZLIB, and LZ4. The compressors BZIP2 and ZSTD must be enabled when configuring GRASS for compilation.</dd> +======= + <tt>GRASS_COMPRESSOR=ZSTD</tt></dd>, granted that GRASS has been + compiled with the requested compressor. Compressors that are always + available are RLE, ZLIB, and LZ4. The compressors BZIP2 and ZSTD + must be enabled when configuring GRASS for compilation. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <dt>GRASS_CONFIG_DIR</dt> <dd>[grass startup script]<br> @@ -549,10 +560,17 @@ <h2>List of selected GRASS gisenv variables</h2> <dd>See <tt>GRASS_GUI</tt> environmental variable for details.</dd> <dt>LOCATION</dt> +<<<<<<< HEAD <dd>full path to project (previously called location) directory</dd> <dt>LOCATION_NAME</dt> <dd>initial project name</dd> +======= + <dd>full path to location directory</dd> + + <dt>LOCATION_NAME</dt> + <dd>initial location name</dd> +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <dt>MAPSET</dt> <dd>initial mapset</dd> @@ -564,7 +582,7 @@ <h2>List of selected GRASS gisenv variables</h2> # set to 6 GB (default: 300 MB) g.gisenv set="MEMORYMB=6000" </pre></div> - + <dt>NPROCS</dt> <dd>sets the number of threads for parallel computing <div class="code"><pre> @@ -609,6 +627,7 @@ <h2>GRASS-related Files</h2> <dt><tt>$HOME/.grass8/env.bat</tt></dt> <dd>stores the shell environment variables (MS Windows only)</dd> <<<<<<< HEAD +<<<<<<< HEAD ======= @@ -616,6 +635,9 @@ <h2>GRASS-related Files</h2> >>>>>>> 73a1a8ce38 (Programmer's manual: update GRASS GIS arch drawing (#1610)) ======= >>>>>>> 227cbcebbf (Programmer's manual: update GRASS GIS arch drawing (#1610)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <dt><tt>$HOME/.grass8/login</tt></dt> <dd>stores the DBMI passwords in this hidden file. Only the file owner can access this file.</dd> diff --git a/lib/ogsf/TODO b/lib/ogsf/TODO index ba2365a9933..0f177aab0d2 100644 --- a/lib/ogsf/TODO +++ b/lib/ogsf/TODO @@ -27,7 +27,11 @@ Helena wrote: You are right that there is a problem with normals for surfaces with values <0-1>- I have already reported it, it seems that it is also causing parts of +<<<<<<< HEAD the surface to disappear for larger values of z for higher resolution/higher +======= +the surface to disapear for larger values of z for higher resolution/higher +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) zscale case. Bill fixed it for the SGI-GL version - if the GL version is available it would be good to compare them. I will check with Bill, but I would like him to finish the legends first. diff --git a/lib/pngdriver/draw_bitmap.c b/lib/pngdriver/draw_bitmap.c index bf9da7c6d32..c9302a5f8b0 100644 --- a/lib/pngdriver/draw_bitmap.c +++ b/lib/pngdriver/draw_bitmap.c @@ -49,6 +49,7 @@ void PNG_draw_bitmap(int ncols, int nrows, int threshold, unsigned int k = buf[j * ncols + i]; unsigned int *p = &png.grid[y * png.width + x]; +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD if (k > (unsigned int)threshold) @@ -58,6 +59,9 @@ void PNG_draw_bitmap(int ncols, int nrows, int threshold, ======= if (k > threshold) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (k > (unsigned int)threshold) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) *p = png.current_color; } } diff --git a/lib/pngdriver/read_bmp.c b/lib/pngdriver/read_bmp.c index ab51c1d3a9b..05f37260f2a 100644 --- a/lib/pngdriver/read_bmp.c +++ b/lib/pngdriver/read_bmp.c @@ -43,6 +43,7 @@ static int read_bmp_header(const unsigned char *p) if (*p++ != 'M') return 0; +<<<<<<< HEAD <<<<<<< HEAD if (get_4(&p) != (unsigned int)HEADER_SIZE + png.width * png.height * 4) ======= @@ -51,6 +52,9 @@ static int read_bmp_header(const unsigned char *p) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (get_4(&p) != (unsigned int)HEADER_SIZE + png.width * png.height * 4) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) return 0; get_4(&p); @@ -61,6 +65,7 @@ static int read_bmp_header(const unsigned char *p) if (get_4(&p) != 40) return 0; +<<<<<<< HEAD <<<<<<< HEAD if (get_4(&p) != (unsigned int)png.width) return 0; @@ -73,6 +78,11 @@ static int read_bmp_header(const unsigned char *p) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (get_4(&p) != (unsigned int)png.width) + return 0; + if (get_4(&p) != (unsigned int)-png.height) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) return 0; get_2(&p); @@ -82,6 +92,7 @@ static int read_bmp_header(const unsigned char *p) if (get_4(&p) != 0) return 0; <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (get_4(&p) != (unsigned int)png.width * png.height * 4) ======= @@ -90,6 +101,9 @@ static int read_bmp_header(const unsigned char *p) ======= if (get_4(&p) != png.width * png.height * 4) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (get_4(&p) != (unsigned int)png.width * png.height * 4) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) return 0; get_4(&p); diff --git a/lib/psdriver/draw_bitmap.c b/lib/psdriver/draw_bitmap.c index a03231e3216..d1e40af4003 100644 --- a/lib/psdriver/draw_bitmap.c +++ b/lib/psdriver/draw_bitmap.c @@ -13,6 +13,7 @@ void PS_Bitmap(int ncols, int nrows, int threshold, const unsigned char *buf) for (i = 0; i < ncols; i++) { unsigned int k = buf[j * ncols + i]; +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD if (k > (unsigned int)threshold) @@ -22,6 +23,9 @@ void PS_Bitmap(int ncols, int nrows, int threshold, const unsigned char *buf) ======= if (k > threshold) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (k > (unsigned int)threshold) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) acc |= bit; bit >>= 1; diff --git a/lib/raster/format.c b/lib/raster/format.c index 2706e2b160f..2db676c6e6c 100644 --- a/lib/raster/format.c +++ b/lib/raster/format.c @@ -108,6 +108,7 @@ static int read_row_ptrs(int nrows, int old, off_t *row_ptr, int fd) if (old) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD n = ((unsigned int)nrows + 1) * sizeof(off_t); ======= @@ -116,6 +117,9 @@ static int read_row_ptrs(int nrows, int old, off_t *row_ptr, int fd) ======= n = (nrows + 1) * sizeof(off_t); >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + n = ((unsigned int)nrows + 1) * sizeof(off_t); +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) if (read(fd, row_ptr, n) != n) goto badread; return 1; @@ -138,6 +142,7 @@ static int read_row_ptrs(int nrows, int old, off_t *row_ptr, int fd) if (read(fd, buf, n) != n) goto badread; +<<<<<<< HEAD <<<<<<< HEAD for (row = 0, b = buf; row <= (unsigned int)nrows; row++) { off_t v = 0; @@ -152,6 +157,12 @@ static int read_row_ptrs(int nrows, int old, off_t *row_ptr, int fd) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + for (row = 0, b = buf; row <= (unsigned int)nrows; row++) { + off_t v = 0; + + for (n = 0; n < nbytes; n++) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) unsigned char c = *b++; if (nbytes > sizeof(off_t) && n < nbytes - sizeof(off_t) && c != 0) diff --git a/lib/raster/get_row.c b/lib/raster/get_row.c index 2abfa952425..f8edb0304dd 100644 --- a/lib/raster/get_row.c +++ b/lib/raster/get_row.c @@ -164,6 +164,7 @@ static void read_data_compressed(int fd, int row, unsigned char *data_buf, /* pre 3.0 compression */ n = *nbytes = fcb->nbytes; +<<<<<<< HEAD <<<<<<< HEAD bufsize = (size_t)n * fcb->cellhd.cols; if (fcb->cellhd.compressed < 0 || (size_t)readamount < bufsize) { @@ -180,18 +181,27 @@ static void read_data_compressed(int fd, int row, unsigned char *data_buf, ======= bufsize = n * fcb->cellhd.cols; if (fcb->cellhd.compressed < 0 || readamount < bufsize) { +======= + bufsize = (size_t)n * fcb->cellhd.cols; + if (fcb->cellhd.compressed < 0 || (size_t)readamount < bufsize) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) if (fcb->cellhd.compressed == 1) rle_decompress(data_buf, cmp, n, readamount); else { - if (G_expand(cmp, readamount, data_buf, bufsize, - fcb->cellhd.compressed) != bufsize) + if ((n = G_expand(cmp, readamount, data_buf, bufsize, + fcb->cellhd.compressed)) < 0 || + (unsigned int)n != bufsize) { G_fatal_error( _("Error uncompressing raster data for row %d of <%s>"), row, fcb->name); <<<<<<< HEAD +<<<<<<< HEAD >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + } +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) } } else @@ -1106,6 +1116,7 @@ static int read_null_bits_compressed(int null_fd, unsigned char *flags, int row, if (readamount == size) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if ((res = read(null_fd, flags, size)) < 0 || (unsigned int)res != size) { @@ -1115,6 +1126,10 @@ static int read_null_bits_compressed(int null_fd, unsigned char *flags, int row, ======= if (read(null_fd, flags, size) != size) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if ((res = read(null_fd, flags, size)) < 0 || + (unsigned int)res != size) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error( _("Error reading compressed null data for row %d of <%s>"), row, fcb->name); @@ -1124,6 +1139,7 @@ static int read_null_bits_compressed(int null_fd, unsigned char *flags, int row, compressed_buf = G_malloc(readamount); +<<<<<<< HEAD <<<<<<< HEAD if ((res = read(null_fd, compressed_buf, readamount)) < 0 || (unsigned int)res != readamount) { @@ -1133,6 +1149,10 @@ static int read_null_bits_compressed(int null_fd, unsigned char *flags, int row, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if ((res = read(null_fd, compressed_buf, readamount)) < 0 || + (unsigned int)res != readamount) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_free(compressed_buf); G_fatal_error( _("Error reading compressed null data for row %d of <%s>"), row, diff --git a/lib/raster/open.c b/lib/raster/open.c index 64ae7201c9b..00146eca8c8 100644 --- a/lib/raster/open.c +++ b/lib/raster/open.c @@ -467,6 +467,7 @@ void Rast_set_cell_format(int n) if (R__.nbytes <= 0) R__.nbytes = 1; <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (R__.nbytes > (int)sizeof(CELL)) ======= @@ -475,6 +476,9 @@ void Rast_set_cell_format(int n) ======= if (R__.nbytes > sizeof(CELL)) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (R__.nbytes > (int)sizeof(CELL)) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) R__.nbytes = sizeof(CELL); } diff --git a/lib/raster/put_row.c b/lib/raster/put_row.c index 43ce245efeb..550c859e12b 100644 --- a/lib/raster/put_row.c +++ b/lib/raster/put_row.c @@ -550,6 +550,7 @@ static void write_null_bits_compressed(const unsigned char *flags, int row, /* compress null bits file with LZ4, see lib/gis/compress.h */ nwrite = G_compress((unsigned char *)flags, size, compressed_buf, cmax, 3); +<<<<<<< HEAD <<<<<<< HEAD if (nwrite > 0 && (size_t)nwrite < size) { if ((res = write(fcb->null_fd, compressed_buf, nwrite)) < 0 || @@ -561,12 +562,18 @@ static void write_null_bits_compressed(const unsigned char *flags, int row, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (nwrite > 0 && (size_t)nwrite < size) { + if ((res = write(fcb->null_fd, compressed_buf, nwrite)) < 0 || + (unsigned int)res != nwrite) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error( _("Error writing compressed null data for row %d of <%s>: %s"), row, fcb->name, strerror(errno)); } else { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if ((res = write(fcb->null_fd, flags, size)) < 0 || (unsigned int)res != size) @@ -576,6 +583,10 @@ static void write_null_bits_compressed(const unsigned char *flags, int row, ======= if (write(fcb->null_fd, flags, size) != size) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if ((res = write(fcb->null_fd, flags, size)) < 0 || + (unsigned int)res != size) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error( _("Error writing compressed null data for row %d of <%s>: %s"), row, fcb->name, strerror(errno)); @@ -614,6 +625,7 @@ void Rast__write_null_bits(int fd, const unsigned char *flags) if (lseek(fcb->null_fd, offset, SEEK_SET) < 0) G_fatal_error(_("Error writing null row %d of <%s>"), row, fcb->name); +<<<<<<< HEAD <<<<<<< HEAD if ((res = write(fcb->null_fd, flags, size)) < 0 || (unsigned int)res != size) @@ -623,6 +635,10 @@ void Rast__write_null_bits(int fd, const unsigned char *flags) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if ((res = write(fcb->null_fd, flags, size)) < 0 || + (unsigned int)res != size) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Error writing null row %d of <%s>: %s"), row, fcb->name, strerror(errno)); } diff --git a/lib/raster/range.c b/lib/raster/range.c index 51181f436d0..a5bf17e1129 100644 --- a/lib/raster/range.c +++ b/lib/raster/range.c @@ -329,6 +329,7 @@ int Rast_read_rstats(const char *name, const char *mapset, if (nbytes == 0) return 1; +<<<<<<< HEAD <<<<<<< HEAD if (nbytes < 1 || (unsigned char)nbytes > sizeof(grass_int64)) { ======= @@ -337,6 +338,9 @@ int Rast_read_rstats(const char *name, const char *mapset, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (nbytes < 1 || (unsigned char)nbytes > sizeof(grass_int64)) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) close(fd); G_debug(1, "Invalid byte count in stats file for <%s>", G_fully_qualified_name(name, mapset)); diff --git a/lib/raster3d/cache.c b/lib/raster3d/cache.c index 8029ece390b..297cb79c579 100644 --- a/lib/raster3d/cache.c +++ b/lib/raster3d/cache.c @@ -84,6 +84,7 @@ static int cacheWrite_readFun(int tileIndex, void *tileBuf, void *closure) Rast3d_error("cacheWrite_readFun: can't position file"); return 0; } +<<<<<<< HEAD <<<<<<< HEAD if ((res = read(map->cacheFD, tileBuf, nBytes)) < 0 || (size_t)res != nBytes) { @@ -93,6 +94,10 @@ static int cacheWrite_readFun(int tileIndex, void *tileBuf, void *closure) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if ((res = read(map->cacheFD, tileBuf, nBytes)) < 0 || + (size_t)res != nBytes) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Rast3d_error("cacheWrite_readFun: can't read file"); return 0; } @@ -118,6 +123,7 @@ static int cacheWrite_readFun(int tileIndex, void *tileBuf, void *closure) Rast3d_error("cacheWrite_readFun: can't position file"); return 0; } +<<<<<<< HEAD <<<<<<< HEAD if ((res = read(map->cacheFD, xdr, nBytes + sizeof(int))) < 0 || (size_t)res != nBytes + sizeof(int)) { @@ -127,6 +133,10 @@ static int cacheWrite_readFun(int tileIndex, void *tileBuf, void *closure) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if ((res = read(map->cacheFD, xdr, nBytes + sizeof(int))) < 0 || + (size_t)res != nBytes + sizeof(int)) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Rast3d_error("cacheWrite_readFun: can't read file"); return 0; } @@ -135,6 +145,7 @@ static int cacheWrite_readFun(int tileIndex, void *tileBuf, void *closure) Rast3d_error("cacheWrite_readFun: can't position file"); return 0; } +<<<<<<< HEAD <<<<<<< HEAD if ((res = write(map->cacheFD, xdr, nBytes + sizeof(int))) < 0 || (size_t)res != nBytes + sizeof(int)) { @@ -145,6 +156,10 @@ static int cacheWrite_readFun(int tileIndex, void *tileBuf, void *closure) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if ((res = write(map->cacheFD, xdr, nBytes + sizeof(int))) < 0 || + (size_t)res != nBytes + sizeof(int)) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Rast3d_error("cacheWrite_readFun: can't write file"); return 0; } @@ -178,6 +193,7 @@ static int cacheWrite_writeFun(int tileIndex, const void *tileBuf, Rast3d_error("cacheWrite_writeFun: can't position file"); return 0; } +<<<<<<< HEAD <<<<<<< HEAD if ((res = write(map->cacheFD, tileBuf, nBytes)) < 0 || (size_t)res != nBytes) { @@ -187,6 +203,10 @@ static int cacheWrite_writeFun(int tileIndex, const void *tileBuf, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if ((res = write(map->cacheFD, tileBuf, nBytes)) < 0 || + (size_t)res != nBytes) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Rast3d_error("cacheWrite_writeFun: can't write file"); return 0; } diff --git a/lib/raster3d/doubleio.c b/lib/raster3d/doubleio.c index e623f3c48fd..ceb780cca06 100644 --- a/lib/raster3d/doubleio.c +++ b/lib/raster3d/doubleio.c @@ -16,6 +16,7 @@ int Rast3d_write_doubles(int fd, int useXdr, const double *i, int nofNum) if (useXdr == RASTER3D_NO_XDR) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (write(fd, i, sizeof(double) * nofNum) != (int)sizeof(double) * nofNum) { @@ -25,6 +26,10 @@ int Rast3d_write_doubles(int fd, int useXdr, const double *i, int nofNum) ======= if (write(fd, i, sizeof(double) * nofNum) != sizeof(double) * nofNum) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (write(fd, i, sizeof(double) * nofNum) != + (int)sizeof(double) * nofNum) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Rast3d_error("Rast3d_write_doubles: writing to file failed"); return 0; } @@ -35,6 +40,7 @@ int Rast3d_write_doubles(int fd, int useXdr, const double *i, int nofNum) do { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD unsigned int j; ======= @@ -43,6 +49,9 @@ int Rast3d_write_doubles(int fd, int useXdr, const double *i, int nofNum) ======= int j; >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + unsigned int j; +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) n = nofNum % 1024; if (n == 0) @@ -76,6 +85,7 @@ int Rast3d_read_doubles(int fd, int useXdr, double *i, int nofNum) if (useXdr == RASTER3D_NO_XDR) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (read(fd, i, sizeof(double) * nofNum) != (int)sizeof(double) * nofNum) { @@ -85,6 +95,10 @@ int Rast3d_read_doubles(int fd, int useXdr, double *i, int nofNum) ======= if (read(fd, i, sizeof(double) * nofNum) != sizeof(double) * nofNum) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (read(fd, i, sizeof(double) * nofNum) != + (int)sizeof(double) * nofNum) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Rast3d_error("Rast3d_read_doubles: reading from file failed"); return 0; } @@ -95,6 +109,7 @@ int Rast3d_read_doubles(int fd, int useXdr, double *i, int nofNum) do { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD unsigned int j; ======= @@ -103,6 +118,9 @@ int Rast3d_read_doubles(int fd, int useXdr, double *i, int nofNum) ======= int j; >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + unsigned int j; +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) n = nofNum % 1024; if (n == 0) diff --git a/lib/raster3d/fpcompress.c b/lib/raster3d/fpcompress.c index 57bb17765b8..43408b235b3 100644 --- a/lib/raster3d/fpcompress.c +++ b/lib/raster3d/fpcompress.c @@ -163,6 +163,7 @@ static void G_fpcompress_rearrangeEncodeFloats(unsigned char *src, int size, /*printf ("%d\n", ((*src & mask) >> nBits) << nBits); */ +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD if (8 - nBits < (unsigned int)precision) { @@ -172,6 +173,9 @@ static void G_fpcompress_rearrangeEncodeFloats(unsigned char *src, int size, ======= if (8 - nBits < precision) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (8 - nBits < (unsigned int)precision) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) cp1++; /*printf ("%d %d\n", *cp1, (*src & mask) << (8 - nBits)); */ @@ -346,6 +350,7 @@ static void G_fpcompress_rearrangeEncodeDoubles(unsigned char *src, int size, if (nBits && precision) { *cp1 |= (unsigned char)((unsigned char)(*src & mask) >> nBits); <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (8 - nBits < (unsigned int)precision) { ======= @@ -354,6 +359,9 @@ static void G_fpcompress_rearrangeEncodeDoubles(unsigned char *src, int size, ======= if (8 - nBits < precision) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (8 - nBits < (unsigned int)precision) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) cp1++; *cp1 = (unsigned char)(((unsigned char)(*src & mask)) << (8 - nBits)); @@ -507,6 +515,7 @@ static void G_fpcompress_rearrangeDecodeFloats(unsigned char *src, int size, if (nBits && precision) { *dst = (unsigned char)((*cp1 << nBits) & mask); +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD if (8 - nBits < (unsigned int)precision) { @@ -516,6 +525,9 @@ static void G_fpcompress_rearrangeDecodeFloats(unsigned char *src, int size, ======= if (8 - nBits < precision) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (8 - nBits < (unsigned int)precision) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) cp1++; *dst |= (unsigned char)((*cp1 >> (8 - nBits)) & mask); nBits += precision - 8; @@ -682,6 +694,7 @@ static void G_fpcompress_rearrangeDecodeDoubles(unsigned char *src, int size, if (nBits && precision) { *dst = (unsigned char)((*cp1 << nBits) & mask); +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD if (8 - nBits < (unsigned int)precision) { @@ -691,6 +704,9 @@ static void G_fpcompress_rearrangeDecodeDoubles(unsigned char *src, int size, ======= if (8 - nBits < precision) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (8 - nBits < (unsigned int)precision) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) cp1++; *dst |= (unsigned char)((*cp1 >> (8 - nBits)) & mask); nBits += precision - 8; diff --git a/lib/raster3d/fpxdr.c b/lib/raster3d/fpxdr.c index aefc8e877ea..30bd47f9a1f 100644 --- a/lib/raster3d/fpxdr.c +++ b/lib/raster3d/fpxdr.c @@ -143,6 +143,7 @@ static int xdr_put(const void *src) { if (isFloat) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (xdr_off + RASTER3D_XDR_FLOAT_LENGTH > (size_t)xdrLength) ======= @@ -151,12 +152,16 @@ static int xdr_put(const void *src) ======= if (xdr_off + RASTER3D_XDR_FLOAT_LENGTH > xdrLength) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (xdr_off + RASTER3D_XDR_FLOAT_LENGTH > (size_t)xdrLength) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) return 0; G_xdr_put_float((char *)xdr + xdr_off, src); xdr_off += RASTER3D_XDR_FLOAT_LENGTH; } else { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (xdr_off + RASTER3D_XDR_DOUBLE_LENGTH > (size_t)xdrLength) ======= @@ -165,6 +170,9 @@ static int xdr_put(const void *src) ======= if (xdr_off + RASTER3D_XDR_DOUBLE_LENGTH > xdrLength) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (xdr_off + RASTER3D_XDR_DOUBLE_LENGTH > (size_t)xdrLength) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) return 0; G_xdr_put_double((char *)xdr + xdr_off, src); xdr_off += RASTER3D_XDR_DOUBLE_LENGTH; @@ -241,6 +249,7 @@ static int xdr_get(void *src) { if (isFloat) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (xdr_off + RASTER3D_XDR_FLOAT_LENGTH > (size_t)xdrLength) ======= @@ -249,12 +258,16 @@ static int xdr_get(void *src) ======= if (xdr_off + RASTER3D_XDR_FLOAT_LENGTH > xdrLength) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (xdr_off + RASTER3D_XDR_FLOAT_LENGTH > (size_t)xdrLength) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) return 0; G_xdr_get_float(src, (char *)xdr + xdr_off); xdr_off += RASTER3D_XDR_FLOAT_LENGTH; } else { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (xdr_off + RASTER3D_XDR_DOUBLE_LENGTH > (size_t)xdrLength) ======= @@ -263,6 +276,9 @@ static int xdr_get(void *src) ======= if (xdr_off + RASTER3D_XDR_DOUBLE_LENGTH > xdrLength) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (xdr_off + RASTER3D_XDR_DOUBLE_LENGTH > (size_t)xdrLength) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) return 0; G_xdr_get_double(src, (char *)xdr + xdr_off); xdr_off += RASTER3D_XDR_DOUBLE_LENGTH; diff --git a/lib/raster3d/index.c b/lib/raster3d/index.c index 7b67dc3c7ea..472ab047a7e 100644 --- a/lib/raster3d/index.c +++ b/lib/raster3d/index.c @@ -46,6 +46,7 @@ static int Rast3d_readIndex(RASTER3D_Map *map) if (indexLength < map->indexLongNbytes * map->nTiles) { /* RLE encoded? */ +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD if (indexLength > (int)sizeof(long) * map->nTiles) { @@ -55,6 +56,9 @@ static int Rast3d_readIndex(RASTER3D_Map *map) ======= if (indexLength > sizeof(long) * map->nTiles) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (indexLength > (int)sizeof(long) * map->nTiles) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) /*->index large enough? */ tmp2 = Rast3d_malloc(indexLength); @@ -75,6 +79,7 @@ static int Rast3d_readIndex(RASTER3D_Map *map) map->indexLongNbytes * map->nTiles, 1, &dummy1, &dummy2); +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD if (indexLength > (int)sizeof(long) * map->nTiles) @@ -84,6 +89,9 @@ static int Rast3d_readIndex(RASTER3D_Map *map) ======= if (indexLength > sizeof(long) * map->nTiles) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (indexLength > (int)sizeof(long) * map->nTiles) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Rast3d_free(tmp2); } /* END RLE */ diff --git a/lib/raster3d/intio.c b/lib/raster3d/intio.c index 415ec44dc2a..8a18b1859da 100644 --- a/lib/raster3d/intio.c +++ b/lib/raster3d/intio.c @@ -16,6 +16,7 @@ int Rast3d_write_ints(int fd, int useXdr, const int *i, int nofNum) if (useXdr == RASTER3D_NO_XDR) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (write(fd, i, sizeof(int) * nofNum) != (int)sizeof(int) * nofNum) { ======= @@ -24,6 +25,9 @@ int Rast3d_write_ints(int fd, int useXdr, const int *i, int nofNum) ======= if (write(fd, i, sizeof(int) * nofNum) != sizeof(int) * nofNum) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (write(fd, i, sizeof(int) * nofNum) != (int)sizeof(int) * nofNum) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Rast3d_error("Rast3d_write_ints: writing to file failed"); return 0; } @@ -34,6 +38,7 @@ int Rast3d_write_ints(int fd, int useXdr, const int *i, int nofNum) do { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD unsigned int j; ======= @@ -42,6 +47,9 @@ int Rast3d_write_ints(int fd, int useXdr, const int *i, int nofNum) ======= int j; >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + unsigned int j; +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) n = nofNum % 1024; if (n == 0) @@ -75,6 +83,7 @@ int Rast3d_read_ints(int fd, int useXdr, int *i, int nofNum) if (useXdr == RASTER3D_NO_XDR) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (read(fd, i, sizeof(int) * nofNum) != (int)sizeof(int) * nofNum) { ======= @@ -83,6 +92,9 @@ int Rast3d_read_ints(int fd, int useXdr, int *i, int nofNum) ======= if (read(fd, i, sizeof(int) * nofNum) != sizeof(int) * nofNum) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (read(fd, i, sizeof(int) * nofNum) != (int)sizeof(int) * nofNum) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Rast3d_error("Rast3d_read_ints: reading from file failed"); return 0; } @@ -93,6 +105,7 @@ int Rast3d_read_ints(int fd, int useXdr, int *i, int nofNum) do { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD unsigned int j; ======= @@ -101,6 +114,9 @@ int Rast3d_read_ints(int fd, int useXdr, int *i, int nofNum) ======= int j; >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + unsigned int j; +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) n = nofNum % 1024; if (n == 0) diff --git a/lib/raster3d/long.c b/lib/raster3d/long.c index 694eba5097c..811aee17a3a 100644 --- a/lib/raster3d/long.c +++ b/lib/raster3d/long.c @@ -50,6 +50,7 @@ void Rast3d_long_decode(unsigned char *source, long *dst, int nofNums, while (source != srcStop) { *dest = *source--; <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if ((eltLength >= (int)RASTER3D_LONG_LENGTH) && (*dest != 0)) ======= @@ -58,6 +59,9 @@ void Rast3d_long_decode(unsigned char *source, long *dst, int nofNums, ======= if ((eltLength >= RASTER3D_LONG_LENGTH) && (*dest != 0)) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if ((eltLength >= (int)RASTER3D_LONG_LENGTH) && (*dest != 0)) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Rast3d_fatal_error("Rast3d_long_decode: decoded long too long"); dest--; } @@ -70,6 +74,7 @@ void Rast3d_long_decode(unsigned char *source, long *dst, int nofNums, *dest *= 256; *dest += *source--; <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if ((eltLength >= (int)RASTER3D_LONG_LENGTH) && (*dest != 0)) ======= @@ -78,6 +83,9 @@ void Rast3d_long_decode(unsigned char *source, long *dst, int nofNums, ======= if ((eltLength >= RASTER3D_LONG_LENGTH) && (*dest != 0)) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if ((eltLength >= (int)RASTER3D_LONG_LENGTH) && (*dest != 0)) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Rast3d_fatal_error("Rast3d_long_decode: decoded long too long"); dest--; } diff --git a/lib/raster3d/open.c b/lib/raster3d/open.c index 96a171b41b7..53edd87c1d5 100644 --- a/lib/raster3d/open.c +++ b/lib/raster3d/open.c @@ -141,6 +141,7 @@ void *Rast3d_open_cell_old(const char *name, const char *mapset, /* if our long is to short to store offsets we can't read the file */ <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (map->indexNbytesUsed > (int)sizeof(long)) ======= @@ -149,6 +150,9 @@ void *Rast3d_open_cell_old(const char *name, const char *mapset, ======= if (map->indexNbytesUsed > sizeof(long)) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (map->indexNbytesUsed > (int)sizeof(long)) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Rast3d_fatal_error( _("Rast3d_open_cell_old: index does not fit into long")); diff --git a/lib/raster3d/tilemath.c b/lib/raster3d/tilemath.c index 109177004de..525245c5790 100644 --- a/lib/raster3d/tilemath.c +++ b/lib/raster3d/tilemath.c @@ -344,6 +344,7 @@ void Rast3d_compute_optimal_tile_dimension(RASTER3D_Region *region, int type, "%li z %li\n", tileSize, x, y, z); +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD if (maxSize < 0 || tileSize <= (unsigned int)maxSize * 1024) @@ -353,6 +354,9 @@ void Rast3d_compute_optimal_tile_dimension(RASTER3D_Region *region, int type, ======= if (tileSize <= maxSize * 1024) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (maxSize < 0 || tileSize <= (unsigned int)maxSize * 1024) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) break; /* Compute weighted tile sizes. Take care that the tile size is computed diff --git a/lib/raster3d/tileread.c b/lib/raster3d/tileread.c index dd34f056e0c..f2714778fdd 100644 --- a/lib/raster3d/tileread.c +++ b/lib/raster3d/tileread.c @@ -98,6 +98,7 @@ static int Rast3d_readTileUncompressed(RASTER3D_Map *map, int tileIndex, nofBytes = RASTER3D_MIN(nofBytes, (size_t)map->fileEndPtr - map->index[tileIndex]); +<<<<<<< HEAD <<<<<<< HEAD if ((res = read(map->data_fd, xdr, nofBytes)) < 0 || (size_t)res != nofBytes) { @@ -107,6 +108,10 @@ static int Rast3d_readTileUncompressed(RASTER3D_Map *map, int tileIndex, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if ((res = read(map->data_fd, xdr, nofBytes)) < 0 || + (size_t)res != nofBytes) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Rast3d_error("Rast3d_readTileUncompressed: can't read file"); return 0; } diff --git a/lib/rst/interp_float/output2d.c b/lib/rst/interp_float/output2d.c index 44f7696c439..758cc6219a9 100644 --- a/lib/rst/interp_float/output2d.c +++ b/lib/rst/interp_float/output2d.c @@ -141,6 +141,7 @@ int IL_output_2d(struct interp_params *params, 0); if (fread(cell1, sizeof(FCELL), params->nsizc, params->Tmp_fd_z) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD (size_t)params->nsizc) ======= @@ -149,6 +150,9 @@ int IL_output_2d(struct interp_params *params, ======= params->nsizc) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + (size_t)params->nsizc) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("RST library temporary file reading error: %s"), strerror(errno)); Rast_put_f_row(cf1, cell1); @@ -165,6 +169,7 @@ int IL_output_2d(struct interp_params *params, 0); if (fread(cell1, sizeof(FCELL), params->nsizc, params->Tmp_fd_dx) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD (size_t)params->nsizc) ======= @@ -173,6 +178,9 @@ int IL_output_2d(struct interp_params *params, ======= params->nsizc) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + (size_t)params->nsizc) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("RST library temporary file reading error: %s"), strerror(errno)); Rast_put_f_row(cf2, cell1); @@ -189,6 +197,7 @@ int IL_output_2d(struct interp_params *params, 0); if (fread(cell1, sizeof(FCELL), params->nsizc, params->Tmp_fd_dy) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD (size_t)params->nsizc) ======= @@ -197,6 +206,9 @@ int IL_output_2d(struct interp_params *params, ======= params->nsizc) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + (size_t)params->nsizc) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("RST library temporary file reading error: %s"), strerror(errno)); Rast_put_f_row(cf3, cell1); @@ -213,6 +225,7 @@ int IL_output_2d(struct interp_params *params, 0); if (fread(cell1, sizeof(FCELL), params->nsizc, params->Tmp_fd_xx) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD (size_t)params->nsizc) ======= @@ -221,6 +234,9 @@ int IL_output_2d(struct interp_params *params, ======= params->nsizc) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + (size_t)params->nsizc) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("RST library temporary file reading error: %s"), strerror(errno)); Rast_put_f_row(cf4, cell1); @@ -237,6 +253,7 @@ int IL_output_2d(struct interp_params *params, 0); if (fread(cell1, sizeof(FCELL), params->nsizc, params->Tmp_fd_yy) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD (size_t)params->nsizc) ======= @@ -245,6 +262,9 @@ int IL_output_2d(struct interp_params *params, ======= params->nsizc) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + (size_t)params->nsizc) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("RST library temporary file reading error: %s"), strerror(errno)); Rast_put_f_row(cf5, cell1); @@ -261,6 +281,7 @@ int IL_output_2d(struct interp_params *params, 0); if (fread(cell1, sizeof(FCELL), params->nsizc, params->Tmp_fd_xy) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD (size_t)params->nsizc) ======= @@ -269,6 +290,9 @@ int IL_output_2d(struct interp_params *params, ======= params->nsizc) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + (size_t)params->nsizc) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("RST library temporary file reading error: %s"), strerror(errno)); Rast_put_f_row(cf6, cell1); diff --git a/lib/rst/interp_float/resout2d.c b/lib/rst/interp_float/resout2d.c index a5c4bcf6547..7e332f801e9 100644 --- a/lib/rst/interp_float/resout2d.c +++ b/lib/rst/interp_float/resout2d.c @@ -136,6 +136,7 @@ int IL_resample_output_2d( 0); if (fread(cell1, sizeof(FCELL), params->nsizc, params->Tmp_fd_z) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD (size_t)params->nsizc) ======= @@ -144,6 +145,9 @@ int IL_resample_output_2d( ======= params->nsizc) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + (size_t)params->nsizc) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("RST library temporary file reading error: %s"), strerror(errno)); Rast_put_f_row(cf1, cell1); @@ -160,6 +164,7 @@ int IL_resample_output_2d( 0); if (fread(cell1, sizeof(FCELL), params->nsizc, params->Tmp_fd_dx) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD (size_t)params->nsizc) ======= @@ -168,6 +173,9 @@ int IL_resample_output_2d( ======= params->nsizc) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + (size_t)params->nsizc) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("RST library temporary file reading error: %s"), strerror(errno)); Rast_put_f_row(cf2, cell1); @@ -184,6 +192,7 @@ int IL_resample_output_2d( 0); if (fread(cell1, sizeof(FCELL), params->nsizc, params->Tmp_fd_dy) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD (size_t)params->nsizc) ======= @@ -192,6 +201,9 @@ int IL_resample_output_2d( ======= params->nsizc) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + (size_t)params->nsizc) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("RST library temporary file reading error: %s"), strerror(errno)); Rast_put_f_row(cf3, cell1); @@ -208,6 +220,7 @@ int IL_resample_output_2d( 0); if (fread(cell1, sizeof(FCELL), params->nsizc, params->Tmp_fd_xx) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD (size_t)params->nsizc) ======= @@ -216,6 +229,9 @@ int IL_resample_output_2d( ======= params->nsizc) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + (size_t)params->nsizc) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("RST library temporary file reading error: %s"), strerror(errno)); Rast_put_f_row(cf4, cell1); @@ -232,6 +248,7 @@ int IL_resample_output_2d( 0); if (fread(cell1, sizeof(FCELL), params->nsizc, params->Tmp_fd_yy) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD (size_t)params->nsizc) ======= @@ -240,6 +257,9 @@ int IL_resample_output_2d( ======= params->nsizc) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + (size_t)params->nsizc) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("RST library temporary file reading error: %s"), strerror(errno)); Rast_put_f_row(cf5, cell1); @@ -256,6 +276,7 @@ int IL_resample_output_2d( 0); if (fread(cell1, sizeof(FCELL), params->nsizc, params->Tmp_fd_xy) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD (size_t)params->nsizc) ======= @@ -264,6 +285,9 @@ int IL_resample_output_2d( ======= params->nsizc) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + (size_t)params->nsizc) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("RST library temporary file reading error: %s"), strerror(errno)); Rast_put_f_row(cf6, cell1); diff --git a/lib/segment/format.c b/lib/segment/format.c index b4b4b19cef6..b561ddd8004 100644 --- a/lib/segment/format.c +++ b/lib/segment/format.c @@ -235,6 +235,7 @@ static int zero_fill(int fd, off_t nbytes) while (nbytes > 0) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD n = nbytes > (int)sizeof(buf) ? (int)sizeof(buf) : nbytes; ======= @@ -243,6 +244,9 @@ static int zero_fill(int fd, off_t nbytes) ======= n = nbytes > sizeof(buf) ? sizeof(buf) : nbytes; >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + n = nbytes > (int)sizeof(buf) ? (int)sizeof(buf) : nbytes; +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) errno = 0; if (write(fd, buf, n) != n) { int err = errno; diff --git a/lib/segment/segmentlib.dox b/lib/segment/segmentlib.dox index f5c59aba716..b58a375e0d9 100644 --- a/lib/segment/segmentlib.dox +++ b/lib/segment/segmentlib.dox @@ -245,7 +245,11 @@ memory: <I>int Segment_close (SEGMENT *seg)</I>, close segment structure <P> Deletes the segment file and uses Segment_release() to release the +<<<<<<< HEAD allocated memory. No further cleaning up is required. +======= + allocated memory. No further cleaing up is required. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <P> diff --git a/lib/temporal/SQL/raster_views.sql b/lib/temporal/SQL/raster_views.sql index 41ecfc6db87..76b51e9a82b 100644 --- a/lib/temporal/SQL/raster_views.sql +++ b/lib/temporal/SQL/raster_views.sql @@ -18,6 +18,7 @@ CREATE VIEW raster_view_abs_time AS SELECT A4.nsres, A4.ewres, A4.min, A4.max, A4.number_of_cells, A4.semantic_label, A5.registered_stds <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD FROM raster_base A1, raster_absolute_time A2, ======= @@ -25,6 +26,9 @@ CREATE VIEW raster_view_abs_time AS SELECT >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) FROM raster_base A1, raster_absolute_time A2, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= + FROM raster_base A1, raster_absolute_time A2, +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) raster_spatial_extent A3, raster_metadata A4, raster_stds_register A5 WHERE A1.id = A2.id AND A1.id = A3.id AND @@ -41,6 +45,7 @@ CREATE VIEW raster_view_rel_time AS SELECT A4.nsres, A4.ewres, A4.min, A4.max, A4.number_of_cells, A4.semantic_label, A5.registered_stds <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD FROM raster_base A1, raster_relative_time A2, ======= @@ -48,6 +53,9 @@ CREATE VIEW raster_view_rel_time AS SELECT >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) FROM raster_base A1, raster_relative_time A2, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= + FROM raster_base A1, raster_relative_time A2, +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) raster_spatial_extent A3, raster_metadata A4, raster_stds_register A5 WHERE A1.id = A2.id AND A1.id = A3.id AND diff --git a/lib/temporal/SQL/update_stds_spatial_temporal_extent_template.sql b/lib/temporal/SQL/update_stds_spatial_temporal_extent_template.sql index 5c0967dee05..5c6d4de0766 100644 --- a/lib/temporal/SQL/update_stds_spatial_temporal_extent_template.sql +++ b/lib/temporal/SQL/update_stds_spatial_temporal_extent_template.sql @@ -1,6 +1,10 @@ --############################################################################# -- This SQL script is to update the spatial and temporal extent as well as +<<<<<<< HEAD -- the modification time and revision of a space time dataset. This script +======= +-- the modifcation time and revision of a space time dataset. This script +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) -- should be called when maps inserted or deleted in a space time dataset. -- -- @@ -20,6 +24,7 @@ UPDATE STDS_metadata SET number_of_maps = (SELECT count(id) FROM SPACETIME_REGISTER_TABLE) WHERE id = 'SPACETIME_ID'; +<<<<<<< HEAD -- Update the temporal extent UPDATE STDS_absolute_time @@ -77,3 +82,51 @@ UPDATE STDS_spatial_extent SPACETIME_REGISTER_TABLE.id = GRASS_MAP_spatial_extent.id ) AS new_stats WHERE STDS_spatial_extent.id = 'SPACETIME_ID'; +======= +-- Update the temporal extent +UPDATE STDS_absolute_time SET start_time = + (SELECT min(start_time) FROM GRASS_MAP_absolute_time WHERE GRASS_MAP_absolute_time.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE STDS_absolute_time SET end_time = + (SELECT max(end_time) FROM GRASS_MAP_absolute_time WHERE GRASS_MAP_absolute_time.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE STDS_relative_time SET start_time = + (SELECT min(start_time) FROM GRASS_MAP_relative_time WHERE GRASS_MAP_relative_time.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE STDS_relative_time SET end_time = + (SELECT max(end_time) FROM GRASS_MAP_relative_time WHERE GRASS_MAP_relative_time.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +-- Update the spatial extent +UPDATE STDS_spatial_extent SET north = + (SELECT max(north) FROM GRASS_MAP_spatial_extent WHERE GRASS_MAP_spatial_extent.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE STDS_spatial_extent SET south = + (SELECT min(south) FROM GRASS_MAP_spatial_extent WHERE GRASS_MAP_spatial_extent.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE STDS_spatial_extent SET east = + (SELECT max(east) FROM GRASS_MAP_spatial_extent WHERE GRASS_MAP_spatial_extent.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE STDS_spatial_extent SET west = + (SELECT min(west) FROM GRASS_MAP_spatial_extent WHERE GRASS_MAP_spatial_extent.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE STDS_spatial_extent SET top = + (SELECT max(top) FROM GRASS_MAP_spatial_extent WHERE GRASS_MAP_spatial_extent.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE STDS_spatial_extent SET bottom = + (SELECT min(bottom) FROM GRASS_MAP_spatial_extent WHERE GRASS_MAP_spatial_extent.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE STDS_spatial_extent SET proj = + (SELECT min(proj) FROM GRASS_MAP_spatial_extent WHERE GRASS_MAP_spatial_extent.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/lib/temporal/SQL/update_str3ds_metadata_template.sql b/lib/temporal/SQL/update_str3ds_metadata_template.sql index 54e66859212..551e1dd92f3 100644 --- a/lib/temporal/SQL/update_str3ds_metadata_template.sql +++ b/lib/temporal/SQL/update_str3ds_metadata_template.sql @@ -8,6 +8,7 @@ -- SPACETIME_REGISTER_TABLE is a placeholder for specific stds map register table name (SQL compliant) -- SPACETIME_ID is a placeholder for specific stds id: name@mapset +<<<<<<< HEAD UPDATE str3ds_metadata SET -- Update the min and max values @@ -40,3 +41,47 @@ UPDATE str3ds_metadata SPACETIME_REGISTER_TABLE.id = raster3d_metadata.id ) AS new_stats WHERE str3ds_metadata.id = 'SPACETIME_ID'; +======= +-- Update the min and max values +UPDATE str3ds_metadata SET min_min = + (SELECT min(min) FROM raster3d_metadata WHERE raster3d_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE str3ds_metadata SET min_max = + (SELECT max(min) FROM raster3d_metadata WHERE raster3d_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE str3ds_metadata SET max_min = + (SELECT min(max) FROM raster3d_metadata WHERE raster3d_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE str3ds_metadata SET max_max = + (SELECT max(max) FROM raster3d_metadata WHERE raster3d_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +-- Update the resolution +UPDATE str3ds_metadata SET nsres_min = + (SELECT min(nsres) FROM raster3d_metadata WHERE raster3d_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE str3ds_metadata SET nsres_max = + (SELECT max(nsres) FROM raster3d_metadata WHERE raster3d_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE str3ds_metadata SET ewres_min = + (SELECT min(ewres) FROM raster3d_metadata WHERE raster3d_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE str3ds_metadata SET ewres_max = + (SELECT max(ewres) FROM raster3d_metadata WHERE raster3d_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE str3ds_metadata SET tbres_min = + (SELECT min(tbres) FROM raster3d_metadata WHERE raster3d_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE str3ds_metadata SET tbres_max = + (SELECT max(tbres) FROM raster3d_metadata WHERE raster3d_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/lib/temporal/SQL/update_strds_metadata_template.sql b/lib/temporal/SQL/update_strds_metadata_template.sql index 2f521b7807e..bbaf044566f 100644 --- a/lib/temporal/SQL/update_strds_metadata_template.sql +++ b/lib/temporal/SQL/update_strds_metadata_template.sql @@ -43,37 +43,37 @@ UPDATE strds_metadata WHERE strds_metadata.id = 'SPACETIME_ID'; ======= -- Update the min and max values -UPDATE strds_metadata SET min_min = - (SELECT min(min) FROM raster_metadata WHERE raster_metadata.id IN +UPDATE strds_metadata SET min_min = + (SELECT min(min) FROM raster_metadata WHERE raster_metadata.id IN (SELECT id FROM SPACETIME_REGISTER_TABLE) ) WHERE id = 'SPACETIME_ID'; -UPDATE strds_metadata SET min_max = - (SELECT max(min) FROM raster_metadata WHERE raster_metadata.id IN +UPDATE strds_metadata SET min_max = + (SELECT max(min) FROM raster_metadata WHERE raster_metadata.id IN (SELECT id FROM SPACETIME_REGISTER_TABLE) ) WHERE id = 'SPACETIME_ID'; -UPDATE strds_metadata SET max_min = - (SELECT min(max) FROM raster_metadata WHERE raster_metadata.id IN +UPDATE strds_metadata SET max_min = + (SELECT min(max) FROM raster_metadata WHERE raster_metadata.id IN (SELECT id FROM SPACETIME_REGISTER_TABLE) ) WHERE id = 'SPACETIME_ID'; -UPDATE strds_metadata SET max_max = - (SELECT max(max) FROM raster_metadata WHERE raster_metadata.id IN +UPDATE strds_metadata SET max_max = + (SELECT max(max) FROM raster_metadata WHERE raster_metadata.id IN (SELECT id FROM SPACETIME_REGISTER_TABLE) ) WHERE id = 'SPACETIME_ID'; -- Update the resolution -UPDATE strds_metadata SET nsres_min = - (SELECT min(nsres) FROM raster_metadata WHERE raster_metadata.id IN +UPDATE strds_metadata SET nsres_min = + (SELECT min(nsres) FROM raster_metadata WHERE raster_metadata.id IN (SELECT id FROM SPACETIME_REGISTER_TABLE) ) WHERE id = 'SPACETIME_ID'; -UPDATE strds_metadata SET nsres_max = - (SELECT max(nsres) FROM raster_metadata WHERE raster_metadata.id IN +UPDATE strds_metadata SET nsres_max = + (SELECT max(nsres) FROM raster_metadata WHERE raster_metadata.id IN (SELECT id FROM SPACETIME_REGISTER_TABLE) ) WHERE id = 'SPACETIME_ID'; -UPDATE strds_metadata SET ewres_min = - (SELECT min(ewres) FROM raster_metadata WHERE raster_metadata.id IN +UPDATE strds_metadata SET ewres_min = + (SELECT min(ewres) FROM raster_metadata WHERE raster_metadata.id IN (SELECT id FROM SPACETIME_REGISTER_TABLE) ) WHERE id = 'SPACETIME_ID'; -UPDATE strds_metadata SET ewres_max = - (SELECT max(ewres) FROM raster_metadata WHERE raster_metadata.id IN +UPDATE strds_metadata SET ewres_max = + (SELECT max(ewres) FROM raster_metadata WHERE raster_metadata.id IN (SELECT id FROM SPACETIME_REGISTER_TABLE) ) WHERE id = 'SPACETIME_ID'; <<<<<<< HEAD diff --git a/lib/temporal/SQL/update_stvds_metadata_template.sql b/lib/temporal/SQL/update_stvds_metadata_template.sql index 92b07864f85..ac23cacafd8 100644 --- a/lib/temporal/SQL/update_stvds_metadata_template.sql +++ b/lib/temporal/SQL/update_stvds_metadata_template.sql @@ -10,6 +10,7 @@ -- SPACETIME_ID is a placeholder for specific stds id: name@mapset -- Update the vector features and topology +<<<<<<< HEAD UPDATE stvds_metadata SET points = new_stats.points_new, @@ -44,3 +45,53 @@ UPDATE stvds_metadata SPACETIME_REGISTER_TABLE.id = vector_metadata.id ) AS new_stats WHERE stvds_metadata.id = 'SPACETIME_ID'; +======= +UPDATE stvds_metadata SET points = + (SELECT sum(points) FROM vector_metadata WHERE vector_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE stvds_metadata SET lines = + (SELECT sum(lines) FROM vector_metadata WHERE vector_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE stvds_metadata SET boundaries = + (SELECT sum(boundaries) FROM vector_metadata WHERE vector_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE stvds_metadata SET centroids = + (SELECT sum(centroids) FROM vector_metadata WHERE vector_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE stvds_metadata SET faces = + (SELECT sum(faces) FROM vector_metadata WHERE vector_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE stvds_metadata SET kernels = + (SELECT sum(kernels) FROM vector_metadata WHERE vector_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE stvds_metadata SET primitives = + (SELECT sum(primitives) FROM vector_metadata WHERE vector_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE stvds_metadata SET nodes = + (SELECT sum(nodes) FROM vector_metadata WHERE vector_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE stvds_metadata SET areas = + (SELECT sum(areas) FROM vector_metadata WHERE vector_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE stvds_metadata SET islands = + (SELECT sum(islands) FROM vector_metadata WHERE vector_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE stvds_metadata SET holes = + (SELECT sum(holes) FROM vector_metadata WHERE vector_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +UPDATE stvds_metadata SET volumes = + (SELECT sum(volumes) FROM vector_metadata WHERE vector_metadata.id IN + (SELECT id FROM SPACETIME_REGISTER_TABLE) + ) WHERE id = 'SPACETIME_ID'; +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/lib/vector/Vlib/write_pg.c b/lib/vector/Vlib/write_pg.c index 23f7e07ab98..3b20287bf3a 100644 --- a/lib/vector/Vlib/write_pg.c +++ b/lib/vector/Vlib/write_pg.c @@ -2737,6 +2737,7 @@ int delete_face(const struct Map_info *Map, int area) - isolated edges <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD next left edge: -edge ======= @@ -2745,6 +2746,9 @@ int delete_face(const struct Map_info *Map, int area) ======= next left edge: -edge >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + next left edge: -edge +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) next right edge: edge - connected edges @@ -2753,6 +2757,7 @@ int delete_face(const struct Map_info *Map, int area) \param Map pointer to Map_info struct <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD \param line feature id ======= @@ -2761,6 +2766,9 @@ int delete_face(const struct Map_info *Map, int area) ======= \param line feature id >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + \param line feature id +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) \return 0 on success \return -1 on error diff --git a/lib/vector/diglib/plus_struct.c b/lib/vector/diglib/plus_struct.c index 09be965159b..5971740ce3f 100644 --- a/lib/vector/diglib/plus_struct.c +++ b/lib/vector/diglib/plus_struct.c @@ -772,6 +772,7 @@ int dig_Rd_Plus_head(struct gvfile *fp, struct Plus_head *ptr) else ptr->off_t_size = 4; +<<<<<<< HEAD <<<<<<< HEAD if (sizeof(off_t) < (size_t)ptr->off_t_size) { ======= @@ -780,6 +781,9 @@ int dig_Rd_Plus_head(struct gvfile *fp, struct Plus_head *ptr) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (sizeof(off_t) < (size_t)ptr->off_t_size) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_warning(_("Vector exceeds supported file size limit")); return (-1); } diff --git a/lib/vector/diglib/portable.c b/lib/vector/diglib/portable.c index 0d3bf42b205..1d24a1de435 100644 --- a/lib/vector/diglib/portable.c +++ b/lib/vector/diglib/portable.c @@ -173,6 +173,7 @@ int dig__fread_port_O(off_t *buf, size_t cnt, struct gvfile *fp, if (Cur_Head->off_t_quick) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if ((size_t)nat_off_t == port_off_t_size) { ======= @@ -181,11 +182,15 @@ int dig__fread_port_O(off_t *buf, size_t cnt, struct gvfile *fp, ======= if (nat_off_t == port_off_t_size) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if ((size_t)nat_off_t == port_off_t_size) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) ret = dig_fread(buf, port_off_t_size, cnt, fp); if (ret != (int)cnt) return 0; } <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD else if ((size_t)nat_off_t > port_off_t_size) { ======= @@ -194,6 +199,9 @@ int dig__fread_port_O(off_t *buf, size_t cnt, struct gvfile *fp, ======= else if (nat_off_t > port_off_t_size) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + else if ((size_t)nat_off_t > port_off_t_size) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) /* read into buffer */ buf_alloc(cnt * port_off_t_size); ret = dig_fread(buffer, port_off_t_size, cnt, fp); @@ -222,6 +230,7 @@ int dig__fread_port_O(off_t *buf, size_t cnt, struct gvfile *fp, } } <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD else if ((size_t)nat_off_t < port_off_t_size) { ======= @@ -230,12 +239,16 @@ int dig__fread_port_O(off_t *buf, size_t cnt, struct gvfile *fp, ======= else if (nat_off_t < port_off_t_size) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + else if ((size_t)nat_off_t < port_off_t_size) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) /* should never happen */ G_fatal_error(_("Vector exceeds supported file size limit")); } } else { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if ((size_t)nat_off_t >= port_off_t_size) { ======= @@ -244,6 +257,9 @@ int dig__fread_port_O(off_t *buf, size_t cnt, struct gvfile *fp, ======= if (nat_off_t >= port_off_t_size) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if ((size_t)nat_off_t >= port_off_t_size) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) /* read into buffer */ buf_alloc(cnt * port_off_t_size); ret = dig_fread(buffer, port_off_t_size, cnt, fp); @@ -271,6 +287,7 @@ int dig__fread_port_O(off_t *buf, size_t cnt, struct gvfile *fp, } } <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD else if ((size_t)nat_off_t < port_off_t_size) { ======= @@ -279,6 +296,9 @@ int dig__fread_port_O(off_t *buf, size_t cnt, struct gvfile *fp, ======= else if (nat_off_t < port_off_t_size) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + else if ((size_t)nat_off_t < port_off_t_size) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) /* should never happen */ G_fatal_error(_("Vector exceeds supported file size limit")); } @@ -681,6 +701,7 @@ int dig__fwrite_port_O(const off_t *buf, size_t cnt, struct gvfile *fp, if (Cur_Head->off_t_quick) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if ((size_t)nat_off_t == port_off_t_size) { if (dig_fwrite(buf, port_off_t_size, cnt, fp) == cnt) @@ -699,6 +720,13 @@ int dig__fwrite_port_O(const off_t *buf, size_t cnt, struct gvfile *fp, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if ((size_t)nat_off_t == port_off_t_size) { + if (dig_fwrite(buf, port_off_t_size, cnt, fp) == cnt) + return 1; + } + else if ((size_t)nat_off_t > port_off_t_size) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) buf_alloc(cnt * port_off_t_size); c1 = (unsigned char *)buf; c2 = (unsigned char *)buffer; @@ -715,6 +743,7 @@ int dig__fwrite_port_O(const off_t *buf, size_t cnt, struct gvfile *fp, return 1; } <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD else if ((size_t)nat_off_t < port_off_t_size) { ======= @@ -723,12 +752,16 @@ int dig__fwrite_port_O(const off_t *buf, size_t cnt, struct gvfile *fp, ======= else if (nat_off_t < port_off_t_size) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + else if ((size_t)nat_off_t < port_off_t_size) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) /* should never happen */ G_fatal_error("Vector exceeds supported file size limit"); } } else { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if ((size_t)nat_off_t >= port_off_t_size) { ======= @@ -737,6 +770,9 @@ int dig__fwrite_port_O(const off_t *buf, size_t cnt, struct gvfile *fp, ======= if (nat_off_t >= port_off_t_size) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if ((size_t)nat_off_t >= port_off_t_size) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) buf_alloc(cnt * port_off_t_size); c1 = (unsigned char *)buf; c2 = (unsigned char *)buffer; @@ -750,6 +786,7 @@ int dig__fwrite_port_O(const off_t *buf, size_t cnt, struct gvfile *fp, return 1; } <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD else if ((size_t)nat_off_t < port_off_t_size) { ======= @@ -758,6 +795,9 @@ int dig__fwrite_port_O(const off_t *buf, size_t cnt, struct gvfile *fp, ======= else if (nat_off_t < port_off_t_size) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + else if ((size_t)nat_off_t < port_off_t_size) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) /* should never happen */ G_fatal_error(_("Vector exceeds supported file size limit")); } @@ -1054,6 +1094,7 @@ void dig_init_portable(struct Port_info *port, int byte_order) else port->off_t_quick = FALSE; +<<<<<<< HEAD <<<<<<< HEAD for (i = 0; i < (size_t)nat_off_t; i++) { ======= @@ -1062,6 +1103,9 @@ void dig_init_portable(struct Port_info *port, int byte_order) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + for (i = 0; i < (size_t)nat_off_t; i++) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) if (port->byte_order == ENDIAN_BIG) port->off_t_cnvrt[i] = off_t_cnvrt[i]; else diff --git a/lib/vector/rtree/docs/README.grass b/lib/vector/rtree/docs/README.grass index 92feb4edf56..e5fc95e5768 100644 --- a/lib/vector/rtree/docs/README.grass +++ b/lib/vector/rtree/docs/README.grass @@ -13,7 +13,11 @@ Changes done in GRASS: - added mail from Daniel Green is in 'MAILS' - few modifications to get rid of compiler warnings, but warnings like: index.c:277: warning: `tmp_nptr' might be used uninitialized in this function +<<<<<<< HEAD were left because need deeper revision if may cause problems, instead of blindly init to 0/NULL +======= + were left because need deeper revision if may cause problems, insetad of blindly init to 0/NULL +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) - '//' comments -> '/* */' - printf() - > fprintf(stdout,) - NUMDIMS set to 3 diff --git a/locale/README b/locale/README index 676a3d08411..179e8f993bd 100644 --- a/locale/README +++ b/locale/README @@ -9,7 +9,7 @@ This file contains following sections: [ Web page: https://grass.osgeo.org/devel/i18n.php ] -Updating the message catalogs currently only works on +Updating the message catalogs currently only works on unix-like systems and requires xgettext. ------------------------------------------------------ @@ -55,7 +55,7 @@ NOTE2: Also the parameters/flags of each module needs the NOTE3: Notices to translators can be added by placing a comment line starting with GTC tag just above message to be translated: - /* GTC A comma separated keyword list. + /* GTC A comma separated keyword list. Should not contain spaces! */ keywords = _("first,second,third"); @@ -63,26 +63,26 @@ NOTE4: Any string containing a number that requires a correct plural form of a noun, has to pass trough ngettext function implemented in GRASS as a n_() macro. n_("Message in English for singular case", "Message in English for - plural case", number) + plural case", number) Examples of messages with plural forms. Wrong: G_message( _("%d map(s) from mapset <%s> removed"), n, ms); G_message( n == 1 ? _("One file removed") : _("%d files removed"), n); - G_warning( _("%d %s without geometry skipped"), n, - n == 1 ? "feature" : "features"); + G_warning( _("%d %s without geometry skipped"), n, + n == 1 ? "feature" : "features"); G_message( _("%d maps selected"), n); G_message( n == 1 ? _("Remove map") : _("Remove maps")); Correct: - G_message( n_("%d map from mapset <%s> removed", + G_message( n_("%d map from mapset <%s> removed", "%d maps from mapset <%s> removed", n), n, ms); - /* Notice double use of number "n" - as an argument for + /* Notice double use of number "n" - as an argument for both functions - n_() and G_message() */ G_message( n_("One file removed", "%d files removed", n) n); - /* Both of forms of singular case "%d file" or "One file" are correct. + /* Both of forms of singular case "%d file" or "One file" are correct. The choice between them is purely stylistic one. */ - G_warning( n_("One feature without geometry skipped", + G_warning( n_("One feature without geometry skipped", "%d features without geometry skipped", n), n); G_message( n_("%d map selected", "%d maps selected", n), n); /* Although in English it is not necessary to provide a separate @@ -90,9 +90,9 @@ Correct: is i.e. 2-4, or n==10 etc. */ G_message( n_("Remove map", "Remove maps", n)); /* Number it self doesn't have to be used in the output text */ - - -All these messages strings will be then automatically + + +All these messages strings will be then automatically extracted into the message files. See for example ./vector/v.what.rast/main.c @@ -103,7 +103,7 @@ NOTE4: Such lines A detailed example of adapting code for use in multiple languages can be found in gettext manual. -How to prepare program source: +How to prepare program source: https://www.gnu.org/software/gettext/manual/gettext.html#Sources More advanced tricks like resolving ambiguties and handling of plural forms: @@ -126,12 +126,12 @@ GENERAL TRANSLATION PROCEDURE (no programming required) stored in https://grass.osgeo.org/grass-devel/binary/linux/snapshot/transifex/ --> cronjob (on grasslxd container): /home/neteler/cronjobs/cron_grass8_main_src_snapshot.sh -[2] Transifex job copies daily from [1] to here: +[2] Transifex job copies daily from [1] to here: https://www.transifex.com/grass-gis/grass7/dashboard/ [3] Translators work in Transifex, -[4] Updated po files are taken from Transifex and merged into GRASS GIS source repo +[4] Updated po files are taken from Transifex and merged into GRASS GIS source repo (MO files are generated when compiling GRASS GIS) Script: https://github.com/OSGeo/grass-addons/blob/grass8/utils/transifex_merge.sh @@ -143,7 +143,7 @@ GENERAL TRANSLATION PROCEDURE (no programming required) Semi-automated procedure: 1. In the main GRASS source code directory, run: - + ./configured --with-nls [...further options...] make @@ -153,12 +153,12 @@ TODO OLD make pot creates grass.pot (containing original messages) TODO OLD make update-po merges new messages into existing *.po files - 3. Now translate the messages in the po/*.po files (using kbabel or + 3. Now translate the messages in the po/*.po files (using kbabel or other editor). Just open the .po file(s) in your preferred translation software. 4. In the locale/ directory, run: - + make mo creates the mo files (containing translated messages as binary file) @@ -203,7 +203,7 @@ DETAILED PROCEDURE : 2. CREATE POT FILES run make pot - + This will create ./templates/grasslibs.pot ./templates/grassmods.pot @@ -216,14 +216,14 @@ DETAILED PROCEDURE : a) Messages have not yet been translated to your language. b) Some messages have already been translated to your language, so you want to merge your efforts into the existing translation. - + 3.a) First CASE: Messages have not yet been translated to your language. No .po file is present for your language in the ./po/ directory. - + Run: make pot make update-po - + Move the generated file from the ./template/ directory to the ./po/ directory (for example German language): mv ./template/grasslibs.pot ./po/grasslibs_de.po @@ -236,28 +236,28 @@ DETAILED PROCEDURE : Then continue with 4. below. - 3.b) Second CASE: Some messages have already been translated to + 3.b) Second CASE: Some messages have already been translated to your language (files present in ./po/ directory), and you want to continue with translating new and still untranslated messages. - First we have to merge new messages into existing .po files + First we have to merge new messages into existing .po files (which contain already translated messages) as new messages - might have been added into the GRASS system. + might have been added into the GRASS system. To do so, run: - + make pot make update-po - - This will update the messages in all existing files in + + This will update the messages in all existing files in the .po/ directory. - + 4. TRANSLATE MESSAGES In the links section at bottom of this page you find references to the 'kbabel' and 'poEdit' software to easily translate the message files. - + Run 'kbabel' or equivalent program kbabel ./po/grasslibs_<LANGUAGE>.po kbabel ./po/grassmods_<LANGUAGE>.po @@ -273,15 +273,15 @@ DETAILED PROCEDURE : For Asian, Indian and other keymaps, see [footnote 3]. NOTES: - * Pay attention to keep '%s', '\n' and other stuff also + * Pay attention to keep '%s', '\n' and other stuff also in the translated messages! - + * Please use 'ISO-8859-1' or 'ISO-8859-15' for western languages. See https://en.wikipedia.org/wiki/ISO_8859 for details. - + After finishing the translation, save the files. - + 5. CREATE MO FILES run @@ -304,12 +304,12 @@ DETAILED PROCEDURE : If you updated .c files with _() macros as explained above, please send C file diffs against git: - + git diff file.c > file.diff - + Thanks for submitting. - + PLEASE HELP TO TRANSLATE GRASS MESSAGES! ---------------------------------------------- diff --git a/ps/ps.map/ps.map.html b/ps/ps.map/ps.map.html index c78d3dd208a..f9097d00378 100644 --- a/ps/ps.map/ps.map.html +++ b/ps/ps.map/ps.map.html @@ -7,6 +7,7 @@ <h2>DESCRIPTION</h2> <p>A file of mapping instructions that describes the various spatial and textual information to be printed must be prepared prior to running <em>ps.map</em>. +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <h2>NOTES</h2> @@ -15,6 +16,9 @@ <h2>NOTES</h2> >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) <h2>NOTES</h2> >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +<h2>NOTES</h2> +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) The order of commands is generally unimportant but may affect how some layers are drawn. For example to plot <b>vpoints</b> above <b>vareas</b> list the diff --git a/python/grass/temporal/abstract_space_time_dataset.py b/python/grass/temporal/abstract_space_time_dataset.py index c6c675d42f7..b42fd38a192 100644 --- a/python/grass/temporal/abstract_space_time_dataset.py +++ b/python/grass/temporal/abstract_space_time_dataset.py @@ -1416,6 +1416,7 @@ def get_registered_maps_as_objects_with_gaps( :param where: The SQL where statement to select a subset of the registered maps without "WHERE" :param dbif: The database interface to be used +<<<<<<< HEAD :param spatial_extent: Spatial extent dict and projection information e.g. from g.region -ug3 with GRASS GIS region keys "n", "s", "e", "w", "b", "t", and "projection". @@ -1425,6 +1426,14 @@ def get_registered_maps_as_objects_with_gaps( within the provided spatial extent "is_contained": maps that are fully within the provided spatial extent "contains": maps that contain (fully cover) the provided spatial extent +======= + :param spatial_extent: Return only maps with the provided spatial + relation to the given spatial extent (requires + spatial_relation parameter) + :param spatial_relation: Return only maps with the given spatial + relation to the provided spatial extent (requires + spatial_extent parameter) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) :return: ordered object list, in case nothing found None is returned """ @@ -1494,6 +1503,7 @@ def get_registered_maps_as_objects_with_temporal_topology( :param order: The SQL order statement to be used to order the objects in the list without "ORDER BY" :param dbif: The database interface to be used +<<<<<<< HEAD :param spatial_extent: Spatial extent dict and projection information e.g. from g.region -ug3 with GRASS GIS region keys "n", "s", "e", "w", "b", "t", and "projection". @@ -1503,6 +1513,14 @@ def get_registered_maps_as_objects_with_temporal_topology( within the provided spatial extent "is_contained": maps that are fully within the provided spatial extent "contains": maps that contain (fully cover) the provided spatial extent +======= + :param spatial_extent: Return only maps with the provided spatial + relation to the given spatial extent (requires + spatial_relation parameter) + :param spatial_relation: Return only maps with the given spatial + relation to the provided spatial extent (requires + spatial_extent parameter) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) :return: The ordered map object list, In case nothing found None is returned @@ -1548,6 +1566,7 @@ def get_registered_maps_as_objects( :param order: The SQL order statement to be used to order the objects in the list without "ORDER BY" :param dbif: The database interface to be used +<<<<<<< HEAD :param spatial_extent: Spatial extent dict and projection information e.g. from g.region -ug3 with GRASS GIS region keys "n", "s", "e", "w", "b", "t", and "projection". @@ -1557,6 +1576,14 @@ def get_registered_maps_as_objects( within the provided spatial extent "is_contained": maps that are fully within the provided spatial extent "contains": maps that contain (fully cover) the provided spatial extent +======= + :param spatial_extent: Return only maps with the provided spatial + relation to the given spatial extent (requires + spatial_relation parameter) + :param spatial_relation: Return only maps with the given spatial + relation to the provided spatial extent (requires + spatial_extent parameter) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) :return: The ordered map object list, In case nothing is found, an empty list is returned @@ -1630,7 +1657,9 @@ def get_registered_maps_as_objects( ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) # use all columns - rows = self.get_registered_maps(None, where, order, dbif) + rows = self.get_registered_maps( + None, where, order, dbif, spatial_extent, spatial_relation + ) if rows is not None: has_bt_columns = False @@ -1778,7 +1807,11 @@ def _update_where_statement_by_spatial_extent( :param str where: SQL WHERE statement to be updated :param dict spatial_extent: Spatial extent dict and projection information e.g. from g.region -ug3 +<<<<<<< HEAD :param str spatial_relation: Spatial relation to the provided +======= + :param dict spatial_relation: Spatial relation to the provided +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) spatial extent as a string with one of the following values: "overlaps": maps that spatially overlap ("intersect") within the provided spatial extent @@ -1791,9 +1824,13 @@ def _update_where_statement_by_spatial_extent( >>> import grass.script as gs >>> where = None >>> spatial_extent = gs.parse_command("g.region", flags="ug3") +<<<<<<< HEAD >>> _update_where_statement_by_spatial_extent( ... where, spatial_extent, "overlaps" ... ) +======= + >>> _update_where_statement_by_spatial_extent(where, spatial_extent, "overlaps") +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) ((north > 0 AND south < 1 AND east > 0 AND west < 1)) """ @@ -1809,8 +1846,12 @@ def _update_where_statement_by_spatial_extent( self.msgr.error( _( "Invalid spatial relation <{}> requested." +<<<<<<< HEAD "Only values 'overlaps', 'is_contained', and 'contains' are \ allowed." +======= + "Only values 'overlaps', 'is_contained', and 'contains' are allowed." +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) ).format(spatial_relation) ) raise @@ -1838,11 +1879,26 @@ def _update_where_statement_by_spatial_extent( if self.get_type() == "str3ds": if spatial_relation == "overlaps": +<<<<<<< HEAD spatial_where_template += " AND top > {b} AND bottom < {t}" +======= + spatial_where_template += " AND top > {b}" " AND bottom < {t}" +<<<<<<< HEAD +>>>>>>> b2351aab26 (r.horizon manual - fix typo (#2794)) elif spatial_relation == "is_contained": spatial_where_template += " AND top <= {t} AND bottom >= {b}" elif spatial_relation == "contains": +<<<<<<< HEAD spatial_where_template += " AND top >= {t} AND bottom <= {b}" +======= + spatial_where_template += " AND top >= {t}" " AND bottom <= {b}" +======= + elif spatial_relation == "is_contained": + spatial_where_template += " AND top <= {t}" " AND bottom >= {b}" + elif spatial_relation == "contains": + spatial_where_template += " AND top >= {t}" " AND bottom <= {b}" +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) +>>>>>>> b2351aab26 (r.horizon manual - fix typo (#2794)) spatial_where_template += ")" spatial_where_list = [spatial_where_template.format(**spatial_extent)] @@ -1901,9 +1957,17 @@ def get_registered_maps( :param columns: Columns to be selected as SQL compliant string, default is "*" or "id" if group is given. :param where: The SQL where statement to select a subset +<<<<<<< HEAD of the registered maps without "WHERE" :param group: The columns to be used in the SQL GROUP BY statement as SQL compliant string without "GROUP BY" +======= + of the registered maps without "WHERE" + :param order: The SQL order statement to be used to order the + objects in the list without "ORDER BY" + :param dbif: The database interface to be used +<<<<<<< HEAD +>>>>>>> ab7a7d8f0a (r.horizon manual - fix typo (#2794)) :param spatial_extent: Spatial extent dict and projection information e.g. from g.region -ug3 with GRASS GIS region keys "n", "s", "e", "w", "b", "t", and "projection". @@ -1913,7 +1977,18 @@ def get_registered_maps( within the provided spatial extent "is_contained": maps that are fully within the provided spatial extent "contains": maps that contain (fully cover) the provided spatial extent +<<<<<<< HEAD :param dbif: The database interface to be used +======= +======= + :param spatial_extent: Return only maps with the provided spatial + relation to the given spatial extent (requires + spatial_relation parameter) + :param spatial_relation: Return only maps with the given spatial + relation to the provided spatial extent (requires + spatial_extent parameter) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) +>>>>>>> ab7a7d8f0a (r.horizon manual - fix typo (#2794)) :return: SQL rows of all registered maps grouped by the columns given in the group option, in case no maps are found, None is returned @@ -1966,12 +2041,20 @@ def get_registered_maps( ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +<<<<<<< HEAD sql = "SELECT %s FROM %s WHERE %s.id IN (SELECT id FROM %s)" % ( columns, map_view, map_view, self.get_map_register(), ) +======= + # filter by semantic label identifier + if spatial_extent: + where = self._update_where_statement_by_spatial_extent( + where, spatial_extent, spatial_relation + ) +>>>>>>> ab7a7d8f0a (r.horizon manual - fix typo (#2794)) if where is not None and where != "": sql += " AND (%s)" % (where.split(";")[0]) diff --git a/python/libgrass_interface_generator/Makefile b/python/libgrass_interface_generator/Makefile index 350a6116682..4c2df788015 100644 --- a/python/libgrass_interface_generator/Makefile +++ b/python/libgrass_interface_generator/Makefile @@ -39,6 +39,7 @@ proj_HDRS = gprojects.h defs/gprojects.h imagery_HDRS = imagery.h defs/imagery.h <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD vector_HDRS = vector.h defs/vector.h vect/dig_structs.h vect/dig_defines.h vect/dig_externs.h ======= vector_HDRS = vector.h defs/vector.h vect/dig_structs.h vect/dig_defines.h vect/dig_externs.h @@ -46,6 +47,9 @@ vector_HDRS = vector.h defs/vector.h vect/dig_structs.h vect/dig_defines.h v ======= vector_HDRS = vector.h defs/vector.h vect/dig_structs.h vect/dig_defines.h vect/dig_externs.h >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +vector_HDRS = vector.h defs/vector.h vect/dig_structs.h vect/dig_defines.h vect/dig_externs.h +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) rtree_HDRS = rtree.h display_HDRS = display.h defs/display.h stats_HDRS = stats.h defs/stats.h diff --git a/raster/r.basins.fill/r.basins.fill.html b/raster/r.basins.fill/r.basins.fill.html index 9fea7281e47..660424dff5f 100644 --- a/raster/r.basins.fill/r.basins.fill.html +++ b/raster/r.basins.fill/r.basins.fill.html @@ -51,6 +51,7 @@ <h2>AUTHORS</h2> Pennsylvania State University <br> <<<<<<< HEAD +<<<<<<< HEAD Larry Band, Dept. of Geography, University of Toronto, Canada ======= Larry Band, Dept. of Geography, University of Toronto, Canada @@ -58,3 +59,6 @@ <h2>AUTHORS</h2> >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +Larry Band, Dept. of Geography, University of Toronto, Canada +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/raster/r.coin/format.c b/raster/r.coin/format.c index 5bc89018402..ffd38fdd06c 100644 --- a/raster/r.coin/format.c +++ b/raster/r.coin/format.c @@ -27,6 +27,7 @@ int format_double(double v, char *buf, int n) sprintf(fmt, "%%%d.2lf", n); sprintf(buf, fmt, v); +<<<<<<< HEAD <<<<<<< HEAD for (k = n; (ssize_t)strlen(buf) > n; k--) { ======= @@ -35,6 +36,9 @@ int format_double(double v, char *buf, int n) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + for (k = n; (ssize_t)strlen(buf) > n; k--) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) sprintf(fmt, "%%%d.%dg", n, k); sprintf(buf, fmt, v); } diff --git a/raster/r.compress/r.compress.html b/raster/r.compress/r.compress.html index b15752beb00..0a9cca05368 100644 --- a/raster/r.compress/r.compress.html +++ b/raster/r.compress/r.compress.html @@ -129,11 +129,15 @@ <h3>COMPRESSION ALGORITHM DETAILS</h3> </dd> <dt><strong>ZLIB</strong></dt> <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <dd>ZLIB's deflate is the default compression method for all raster maps, if ZSTD is not available. GRASS GIS 8 uses by default 1 as ZLIB compression level which is the best compromise between speed and compression ratio, also when compared to other available compression methods. Valid levels are in the range [1, 9] and can be set with the +<<<<<<< HEAD ======= <dd>ZLIB's deflate is the default compression method for all raster maps, if ZSTD is not available. GRASS GIS 8 uses by default 1 as ZLIB @@ -141,6 +145,8 @@ <h3>COMPRESSION ALGORITHM DETAILS</h3> compression ratio, also when compared to other available compression methods. Valid levels are in the range [1, 9] and can be set with the >>>>>>> 73a1a8ce38 (Programmer's manual: update GRASS GIS arch drawing (#1610)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) environment variable <tt>GRASS_ZLIB_LEVEL</tt>.</dd> <dt><strong>LZ4</strong></dt> <dd>LZ4 is a very fast compression method, about as fast as no diff --git a/raster/r.contour/r.contour.html b/raster/r.contour/r.contour.html index 722f8494cb9..1120f1a9e04 100644 --- a/raster/r.contour/r.contour.html +++ b/raster/r.contour/r.contour.html @@ -27,7 +27,11 @@ <h2>NOTES</h2> <h2>EXAMPLES</h2> +<<<<<<< HEAD In the Spearfish dataset, produce a vector contour map from input raster <i>elevation.dem</i> +======= +In the Spearfish location, produce a vector contour map from input raster <i>elevation.dem</i> +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) with contour levels from 1000m to 2000m, 100m contour step, and a minimum of 200 input raster points contributing to the contour line: diff --git a/raster/r.contour/testsuite/testrc.py b/raster/r.contour/testsuite/testrc.py index 1cb97fa3821..89e1b685c67 100644 --- a/raster/r.contour/testsuite/testrc.py +++ b/raster/r.contour/testsuite/testrc.py @@ -1,7 +1,7 @@ """ Name: r.contour test Purpose: Tests r.contour and its flags/options. - + Author: Sunveer Singh, Google Code-in 2018 Copyright: (C) 2018 by Sunveer Singh and the GRASS Development Team Licence: This program is free software under the GNU General Public diff --git a/raster/r.cost/r.cost.html b/raster/r.cost/r.cost.html index e5118d98aea..f75f61d53e6 100644 --- a/raster/r.cost/r.cost.html +++ b/raster/r.cost/r.cost.html @@ -123,7 +123,11 @@ <h2>OPTIONS</h2> <li>Invert the sign of the distances with <b>r.mapcalc</b> because for the solver smaller is better, and here we want to get the center of an area with multiple directions</li> +<<<<<<< HEAD <li>Use these negative distances as solver for a second pass of +======= + <li>Use thise negative distances as solver for a second pass of +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <b>r.cost</b></li> <li>Extract paths again with <b>r.path</b> to get a geometrically optimized solution</li> diff --git a/raster/r.cross/r.cross.html b/raster/r.cross/r.cross.html index b13712c22bc..7264f3c3436 100644 --- a/raster/r.cross/r.cross.html +++ b/raster/r.cross/r.cross.html @@ -9,6 +9,7 @@ <h2>DESCRIPTION</h2> <h2>OPTIONS</h2> +<<<<<<< HEAD <p> With the <b>-z</b> flag NULL values are not crossed. This means that if a NULL value occurs in any input data layer, @@ -18,6 +19,21 @@ <h2>OPTIONS</h2> would cause 3 categories to be generated instead of 5. <p> +======= +The program will be run non-interactively if the user specifies +the names of between 2-10 raster map layers be used as <em>input</em>, +and the name of a raster map layer to hold program <em>output</em>. + +<p> +With the <b>-z</b> flag NULL values are not crossed. +This means that if a NULL value occurs in any input data layer, +this combination is ignored, +even if other data layers contain non-NULL data. +In the example given below, use of the <b>-z</b> option +would cause 3 categories to be generated instead of 5. + +<p> +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) If the <b>-z</b> flag is not specified, then map layer combinations in which some values are NULL will be assigned a unique category value in the resulting output map. diff --git a/raster/r.external/testsuite/data/generate_data.sh b/raster/r.external/testsuite/data/generate_data.sh index d97324e0d8f..419f776d2f7 100755 --- a/raster/r.external/testsuite/data/generate_data.sh +++ b/raster/r.external/testsuite/data/generate_data.sh @@ -19,9 +19,12 @@ r.to.rast3 input=elevation output=elevation3d r3.out.netcdf input=elevation3d output=elevation3d.nc <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD ======= >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/raster/r.fill.stats/main.c b/raster/r.fill.stats/main.c index d3c9170339a..a2be2b023ef 100644 --- a/raster/r.fill.stats/main.c +++ b/raster/r.fill.stats/main.c @@ -163,11 +163,15 @@ long int estimate_mem_needed(long int cols, char *mode) void print_weights_matrix(long int rows, long int cols) { int i, j; +<<<<<<< HEAD <<<<<<< HEAD char weight_matrix_line_buf[WEIGHT_MATRIX_LINE_LENGTH + 1]; char weight_matrix_weight_buf[WEIGHT_MATRIX_LINE_LENGTH + 1]; ======= int weight_matrix_line_length = 80; +======= + size_t weight_matrix_line_length = 80; +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) char weight_matrix_line_buf[weight_matrix_line_length + 1]; char weight_matrix_weight_buf[weight_matrix_line_length + 1]; >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) diff --git a/raster/r.fill.stats/r.fill.stats.html b/raster/r.fill.stats/r.fill.stats.html index b3555ff1741..e6cb22fb030 100644 --- a/raster/r.fill.stats/r.fill.stats.html +++ b/raster/r.fill.stats/r.fill.stats.html @@ -515,9 +515,12 @@ <h2>AUTHOR</h2> Benjamin Ducke <<<<<<< HEAD +<<<<<<< HEAD ======= <<<<<<< HEAD >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/raster/r.grow.distance/r.grow.distance.html b/raster/r.grow.distance/r.grow.distance.html index bc2788aae44..fce066992b7 100644 --- a/raster/r.grow.distance/r.grow.distance.html +++ b/raster/r.grow.distance/r.grow.distance.html @@ -60,7 +60,11 @@ <h2>NOTES</h2> <p> The <i>Geodesic metric</i> is calculated as geodesic distance, to +<<<<<<< HEAD be used only in latitude-longitude coordinate reference system. It is recommended +======= +be used only in latitude-longitude locations. It is recommended +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) to use it along with the <em>-m</em> flag in order to output distances in meters instead of map units. diff --git a/raster/r.gwflow/r.gwflow.html b/raster/r.gwflow/r.gwflow.html index 2dbef39f74a..5eae1359f02 100644 --- a/raster/r.gwflow/r.gwflow.html +++ b/raster/r.gwflow/r.gwflow.html @@ -4,7 +4,11 @@ <h2>DESCRIPTION</h2> unconfined groundwater flow in two dimensions based on raster maps and the current region settings. All initial and boundary conditions must be provided as +<<<<<<< HEAD raster maps. The unit of the current project's coordinate reference system must be meters. +======= +raster maps. The unit in the location must be meters. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <p>This module is sensitive to mask settings. All cells which are outside the mask are ignored and handled as no flow boundaries. <p><center> diff --git a/raster/r.horizon/TODO b/raster/r.horizon/TODO new file mode 100644 index 00000000000..e31cd59d614 --- /dev/null +++ b/raster/r.horizon/TODO @@ -0,0 +1,11 @@ +TODO + +Probably the sun position calculation should be replaced +with + + G_calc_solar_position() + +currently used in r.sunmask. G_calc_solar_position() is based on +solpos.c from NREL and very precise. + +MN 4/2001 diff --git a/raster/r.horizon/r.horizon.html b/raster/r.horizon/r.horizon.html index f9a832400ee..413da970f60 100644 --- a/raster/r.horizon/r.horizon.html +++ b/raster/r.horizon/r.horizon.html @@ -5,8 +5,13 @@ <h2>DESCRIPTION</h2> outline in one of two modes: <ul> +<<<<<<< HEAD <li> point: as a series of horizon heights in the specified directions from the given point(s). The results are +======= +<li> single point: as a series of horizon +heights in the specified directions from the given point. The results are +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) written to the stdout. <li> raster: in this case the output is one or more raster maps, with each point in a raster giving the horizon @@ -107,7 +112,11 @@ <h3>Input parameters:</h3> horizon raster maps. The raster name of each horizon direction raster will be constructed as <i>basename_</i>ANGLE, where ANGLE is the angle in degrees with the direction. If you use <b>r.horizon</b> +<<<<<<< HEAD in the point mode this option will be ignored. +======= +in the single point mode this option will be ignored. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <p>The <i>file</i> parameter allows saving the resulting horizon angles in a comma separated ASCII file with option <b>format=plain</b> @@ -115,10 +124,14 @@ <h3>Input parameters:</h3> you use <b>r.horizon</b> in the raster map mode this option will be ignored. <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <p>At the moment the elevation and maximum distance must be measured in meters, even if you use geographical coordinates (longitude/latitude). If your projection is based on distance (easting and northing), these too must be in meters. The buffer parameters must be in the same units as the +<<<<<<< HEAD raster coordinates (e.g., for latitude-longitude buffers are measured in degrees). ======= @@ -126,6 +139,8 @@ <h3>Input parameters:</h3> even if you use geographical coordinates (longitude/latitude). If your projection is based on distance (easting and northing), these too must be in meters. The buffer parameters must be in the same units as the +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) raster coordinates (e.g., for latitude-longitude locations buffers are measured in degree unit). <<<<<<< HEAD @@ -296,12 +311,16 @@ <h2>AUTHORS</h2> Thomas Huld, Joint Research Centre of <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD the European Commission, Ispra, Italy ======= ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) the European Commission, Ispra, Italy >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +the European Commission, Ispra, Italy +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <br> <p>Tomas Cebecauer, Joint Research Centre of the European Commission, Ispra, Italy @@ -315,6 +334,7 @@ <h2>AUTHORS</h2> <a href="mailto:Tomas.Cebecauer@jrc.it">Tomas.Cebecauer@jrc.it</a> <a href="mailto:hofi@geomodel.sk">hofierka@geomodel.sk</a> <<<<<<< HEAD +<<<<<<< HEAD <a href="mailto:Marcel.Suri@jrc.it">Marcel.Suri@jrc.it</a> ======= <a href="mailto:Marcel.Suri@jrc.it">Marcel.Suri@jrc.it</a> @@ -322,3 +342,6 @@ <h2>AUTHORS</h2> >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +<a href="mailto:Marcel.Suri@jrc.it">Marcel.Suri@jrc.it</a> +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/raster/r.in.ascii/main.c b/raster/r.in.ascii/main.c index edc6f8760c5..45ca8539d7c 100644 --- a/raster/r.in.ascii/main.c +++ b/raster/r.in.ascii/main.c @@ -233,6 +233,7 @@ int main(int argc, char *argv[]) for (row = 0; row < nrows; row += 1) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (fread(rast, Rast_cell_size(data_type), ncols, ft) != (size_t)ncols) ======= @@ -241,6 +242,9 @@ int main(int argc, char *argv[]) ======= if (fread(rast, Rast_cell_size(data_type), ncols, ft) != ncols) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (fread(rast, Rast_cell_size(data_type), ncols, ft) != (size_t)ncols) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Read from file error: %s"), strerror(errno)); Rast_put_row(cf, rast, data_type); G_fseek(ft, sz, SEEK_CUR); diff --git a/raster/r.in.bin/main.c b/raster/r.in.bin/main.c index 73b2ebdf4e3..9c8d540003d 100644 --- a/raster/r.in.bin/main.c +++ b/raster/r.in.bin/main.c @@ -663,6 +663,7 @@ int main(int argc, char *argv[]) SEEK_SET); } +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD if (fread(in_buf, bytes, ncols, fp) != (size_t)ncols) @@ -672,6 +673,9 @@ int main(int argc, char *argv[]) ======= if (fread(in_buf, bytes, ncols, fp) != ncols) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (fread(in_buf, bytes, ncols, fp) != (size_t)ncols) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Error reading data")); convert_row(out_buf, in_buf, ncols, is_fp, is_signed, bytes, diff --git a/raster/r.in.gdal/r.in.gdal.html b/raster/r.in.gdal/r.in.gdal.html index f21f5682226..2724afbe760 100644 --- a/raster/r.in.gdal/r.in.gdal.html +++ b/raster/r.in.gdal/r.in.gdal.html @@ -2,8 +2,12 @@ <h2>DESCRIPTION</h2> <em>r.in.gdal</em> allows a user to create a GRASS GIS raster map layer, or imagery group, from any GDAL supported raster map format, with an optional +<<<<<<< HEAD title. The imported file may also be used to create a new project (previously called location). +======= +title. The imported file may also be optionally used to create a new location. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <!-- Extended explanations: @@ -128,18 +132,32 @@ <h3>GDAL supported raster formats</h3> <h3>Project Creation</h3> +<<<<<<< HEAD <em>r.in.gdal</em> attempts to preserve coordinate reference system (CRS) information when importing datasets if the source format includes CRS information, and if the GDAL driver supports it. If the CRS of the source dataset does not match the CRS of the current project <em>r.in.gdal</em> will report an error message (<tt>Coordinate reference system of dataset does not appear to match current project</tt>) and then report the PROJ_INFO parameters of +======= +<em>r.in.gdal</em> attempts to preserve projection information when importing +datasets if the source format includes projection information, and if +the GDAL driver supports it. If the projection of the source dataset does +not match the projection of the current location <em>r.in.gdal</em> will +report an error message (<tt>Projection of dataset does not appear to +match current location</tt>) and then report the PROJ_INFO parameters of +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) the source dataset. <p> If the user wishes to ignore the difference between the apparent coordinate +<<<<<<< HEAD system of the source data and the current project, they may pass the <b>-o</b> flag to override the CRS check. +======= +system of the source data and the current location, they may pass the +<b>-o</b> flag to override the projection check. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <p> If the user wishes to import the data with the full CRS definition, @@ -159,9 +177,15 @@ <h3>Support for Ground Control Points</h3> from their own CRS into another CRS read from the PROJ_INFO file of the project name <b>target</b>. <p> +<<<<<<< HEAD If the <b>target</b> project does not exist, a new project will be created matching the CRS definition of the GCPs. The target of the output group will be set to the new project, and +======= +If the <b>target</b> location does not exist, a new location will be +created matching the projection definition of the GCPs. The target of +the output group will be set to the new location, and +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <a href=i.rectify.html>i.rectify</a> can now be used without any further preparation. <p> @@ -212,9 +236,15 @@ <h2>NOTES</h2> to set the north, south, east and west edges. Rotational coefficients will be ignored, resulting in incorrect positioning for rotated datasets.<br> +<<<<<<< HEAD <dt> Coordinate reference system <dd> The dataset's CRS will be used to compare to the current project or to define a new project. Internally GDAL represents CRS in +======= +<dt> Projection +<dd> The dataset's projection will be used to compare to the current location +or to define a new location. Internally GDAL represents projections in +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) OpenGIS Well Known Text format. A large subset of the total set of GRASS CRSs are supported.<br> @@ -231,7 +261,11 @@ <h2>NOTES</h2> band that would otherwise have been translated as a simple raster map will also have an associated imagery group if there are ground control points. The coordinate system of the ground control points is reported by r.in.gdal +<<<<<<< HEAD but not preserved. It is up to the user to ensure that the project +======= +but not preserved. It is up to the user to ensure that the location +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) established with i.target has a compatible coordinate system before using the points with i.rectify.<br> @@ -375,6 +409,27 @@ <h3>Raster file import over network</h3> r.colors srtmgl1_v003_30m color=srtm_plus </pre></div> +<<<<<<< HEAD +======= +<h3>Worldclim.org data</h3> + +To import the BIL data from <a href="http://www.worldclim.org">Worldclim</a>, the following +line has to be added to each .hdr file: +<div class="code"><pre> +PIXELTYPE SIGNEDINT +</pre></div> +<p> + +To import the ESRI Grd data from <a href="http://www.worldclim.org">Worldclim</a>, the +broken spatial extent (exceeding the boundaries) needs to be fixed prior to import: + +<div class="code"><pre> +# example: tmean dataset +gdal_translate -a_ullr -180 90 180 -60 tmean_1 tmean_1_fixed.tif +r.in.gdal input=tmean_1_fixed.tif output=tmean_1 +</pre></div> + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) <h3>HDF</h3> The import of HDF bands requires the specification of the individual bands diff --git a/raster/r.in.lidar/r.in.lidar.html b/raster/r.in.lidar/r.in.lidar.html index 6cff187c089..4fe876e9721 100644 --- a/raster/r.in.lidar/r.in.lidar.html +++ b/raster/r.in.lidar/r.in.lidar.html @@ -501,7 +501,11 @@ <h3>Height above ground</h3> <h3>Multiple file input</h3> +<<<<<<< HEAD The file option requires a file that contains a list of file names with the full +======= +The file option requres a file that contains a list of file names with the full +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) path. For example, a list of files in the directory /home/user/data: <div class="code"><pre> points1.laz diff --git a/raster/r.in.mat/main.c b/raster/r.in.mat/main.c index cf663cb785e..10eda166dd4 100644 --- a/raster/r.in.mat/main.c +++ b/raster/r.in.mat/main.c @@ -213,6 +213,7 @@ int main(int argc, char *argv[]) if (data_format == 5) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (fread(&map_name, sizeof(char), ncols, fp1) != (size_t)ncols) G_fatal_error(_("Error reading data")); @@ -232,6 +233,14 @@ int main(int argc, char *argv[]) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (fread(&map_name, sizeof(char), ncols, fp1) != (size_t)ncols) + G_fatal_error(_("Error reading data")); + } + else if (data_format == 0) { /* sigh.. */ + if (fread(&map_name_d, sizeof(double), ncols, fp1) != + (size_t)ncols) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Error reading data")); for (i = 0; i < ncols; i++) map_name[i] = (char)map_name_d[i]; @@ -287,6 +296,7 @@ int main(int argc, char *argv[]) if (data_format == 5) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (fread(&map_title, sizeof(char), ncols, fp1) != (size_t)ncols) @@ -296,11 +306,16 @@ int main(int argc, char *argv[]) ======= if (fread(&map_title, sizeof(char), ncols, fp1) != ncols) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (fread(&map_title, sizeof(char), ncols, fp1) != + (size_t)ncols) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Error reading data")); } else if (data_format == 0) { /* sigh.. */ if (fread(&map_name_d, sizeof(double), ncols, fp1) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD (size_t)ncols) /* note reusing variable */ ======= @@ -309,6 +324,9 @@ int main(int argc, char *argv[]) ======= ncols) /* note reusing variable */ >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + (size_t)ncols) /* note reusing variable */ +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Error reading data")); for (i = 0; i < ncols; i++) map_title[i] = (char)map_name_d[i]; @@ -339,6 +357,7 @@ int main(int argc, char *argv[]) G_calloc(mrows * (ncols + 1), Rast_cell_size(map_type)); if (fread(array_data, sizeof(double), (size_t)mrows * ncols, <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD fp1) != (size_t)(mrows * ncols)) ======= @@ -347,6 +366,9 @@ int main(int argc, char *argv[]) ======= fp1) != (mrows * ncols)) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + fp1) != (size_t)(mrows * ncols)) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Error reading data")); break; case 1: @@ -356,6 +378,7 @@ int main(int argc, char *argv[]) G_calloc(mrows * (ncols + 1), Rast_cell_size(map_type)); if (fread(array_data, sizeof(float), (size_t)mrows * ncols, <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD fp1) != (size_t)(mrows * ncols)) ======= @@ -364,6 +387,9 @@ int main(int argc, char *argv[]) ======= fp1) != (mrows * ncols)) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + fp1) != (size_t)(mrows * ncols)) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Error reading data")); break; case 2: @@ -373,6 +399,7 @@ int main(int argc, char *argv[]) G_calloc(mrows * (ncols + 1), Rast_cell_size(map_type)); if (fread(array_data, sizeof(int), (size_t)mrows * ncols, <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD fp1) != (size_t)(mrows * ncols)) ======= @@ -381,6 +408,9 @@ int main(int argc, char *argv[]) ======= fp1) != (mrows * ncols)) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + fp1) != (size_t)(mrows * ncols)) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Error reading data")); break; default: diff --git a/raster/r.in.mat/r.in.mat.html b/raster/r.in.mat/r.in.mat.html index b0bba2cb478..2e5d38aac29 100644 --- a/raster/r.in.mat/r.in.mat.html +++ b/raster/r.in.mat/r.in.mat.html @@ -30,7 +30,11 @@ <h2>DESCRIPTION</h2> <br> <br> The '<b>map_northern_edge</b>' and like variables are mandatory unless the +<<<<<<< HEAD user is importing to a "XY" non-georeferenced project +======= +user is importing to a "XY" non-georeferenced location +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) (e.g. imagery data). Latitude and longitude values should be in decimal form. <h2>NOTES</h2> diff --git a/raster/r.in.pdal/r.in.pdal.html b/raster/r.in.pdal/r.in.pdal.html index 28024c3ab24..edc33e51184 100644 --- a/raster/r.in.pdal/r.in.pdal.html +++ b/raster/r.in.pdal/r.in.pdal.html @@ -388,6 +388,7 @@ <h3>Transformation</h3> output value independently of its dimension. Thus if <em>zrange</em> and <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD <em>dscale</em> are set for Z output dimension, filtering by <em>zrange</em> ======= <em>dscale</em> are set for Z output dimension, filtering by <em>zrange</em> @@ -395,6 +396,9 @@ <h3>Transformation</h3> ======= <em>dscale</em> are set for Z output dimension, filtering by <em>zrange</em> >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +<em>dscale</em> are set for Z output dimension, filtering by <em>zrange</em> +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) will be done with unscaled values but output will be scaled by <em>dscale</em>. <em>dscale</em> takes precedence over <em>zscale</em> and <em>iscale</em> if more than one parameter is provided. diff --git a/raster/r.in.png/main.c b/raster/r.in.png/main.c index f2e844bd702..ed3cfb8cf56 100644 --- a/raster/r.in.png/main.c +++ b/raster/r.in.png/main.c @@ -347,6 +347,7 @@ static void read_png(void) linesize = png_get_rowbytes(png_ptr, info_ptr); +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD png_buffer = G_malloc((size_t)interlace ? (size_t)height * linesize @@ -357,6 +358,10 @@ static void read_png(void) ======= png_buffer = G_malloc(interlace ? height * linesize : linesize); >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + png_buffer = G_malloc((size_t)interlace ? (size_t)height * linesize + : (size_t)linesize); +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) if (interlace) { png_rows = G_malloc(height * sizeof(png_bytep)); diff --git a/raster/r.info/r.info.html b/raster/r.info/r.info.html index 250743d9fd3..7ef4ca1b158 100644 --- a/raster/r.info/r.info.html +++ b/raster/r.info/r.info.html @@ -4,8 +4,12 @@ <h2>DESCRIPTION</h2> user-specified raster map layer. This map layer must exist in the user's current mapset search path. Information about the map's boundaries, resolution, projection, data +<<<<<<< HEAD type, category number, project, mapset, project parent directory (database directory), +======= +type, category number, data base location and mapset, +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) the timestamp and history are put into a table and written to standard output. The types of information listed can also be found in the <i>cats</i>, <i>cellhd</i>, and <i>hist</i> diff --git a/raster/r.li/TODO b/raster/r.li/TODO index 3065e4f3902..fe09b92209e 100644 --- a/raster/r.li/TODO +++ b/raster/r.li/TODO @@ -57,9 +57,12 @@ r.li.shannon input=lsat7_2002_40 conf=landsat_test output=landsat_shannon --> Result written to ASCII file <$HOME/.grass8/r.li/output/landsat_shannon> <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD ======= ======= >>>>>>> 227cbcebbf (Programmer's manual: update GRASS GIS arch drawing (#1610)) >>>>>>> 73a1a8ce38 (Programmer's manual: update GRASS GIS arch drawing (#1610)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/raster/r.li/r.li.cwed/utility.c b/raster/r.li/r.li.cwed/utility.c index c24d5872b39..507f6764da0 100644 --- a/raster/r.li/r.li.cwed/utility.c +++ b/raster/r.li/r.li.cwed/utility.c @@ -35,6 +35,7 @@ char **split_arg(char *linea, char separatore, long *numerotoken) char **argv; /* token array */ char *copialinea; /* line copy */ +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD long i; /* find token number */ @@ -47,6 +48,10 @@ char **split_arg(char *linea, char separatore, long *numerotoken) long i; /* find token number */ long it; /* iterator */ >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + long i; /* find token number */ + size_t it; /* iterator */ +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) long num; int term; /* =0 if last token has not /0 */ diff --git a/raster/r.li/r.li.daemon/daemon.c b/raster/r.li/r.li.daemon/daemon.c index 6124cc4db3b..0a8d990c491 100644 --- a/raster/r.li/r.li.daemon/daemon.c +++ b/raster/r.li/r.li.daemon/daemon.c @@ -769,6 +769,7 @@ int error_Output(int out, msg m) sprintf(s, "ERROR %i", m.f.f_d.aid); +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD if (write(out, s, strlen(s)) == (ssize_t)strlen(s)) @@ -778,6 +779,9 @@ int error_Output(int out, msg m) ======= if (write(out, s, strlen(s)) == strlen(s)) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (write(out, s, strlen(s)) == (ssize_t)strlen(s)) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) return 1; else return 0; diff --git a/raster/r.li/r.li.html b/raster/r.li/r.li.html index 757cc07ed82..583eef6e9b6 100644 --- a/raster/r.li/r.li.html +++ b/raster/r.li/r.li.html @@ -3,6 +3,7 @@ <head> <title>r.li - GRASS GIS manual <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD ======= @@ -11,6 +12,9 @@ ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/raster/r.li/r.li.shape/r.li.shape.html b/raster/r.li/r.li.shape/r.li.shape.html index 6557c883fda..860e20eefbe 100644 --- a/raster/r.li/r.li.shape/r.li.shape.html +++ b/raster/r.li/r.li.shape/r.li.shape.html @@ -73,6 +73,7 @@

      REFERENCES

      AUTHORS

      +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD Claudio Porta and Lucio Davide Spano, students of Computer Science @@ -81,5 +82,8 @@

      AUTHORS

      >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) Claudio Porta and Lucio Davide Spano, students of Computer Science >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +Claudio Porta and Lucio Davide Spano, students of Computer Science +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) University of Pisa (Italy).
      Commission from Faunalia Pontedera (PI) (www.faunalia.it)
      diff --git a/raster/r.mapcalc/r3.mapcalc.html b/raster/r.mapcalc/r3.mapcalc.html index 906d204a19a..7d3e014f3a1 100644 --- a/raster/r.mapcalc/r3.mapcalc.html +++ b/raster/r.mapcalc/r3.mapcalc.html @@ -256,6 +256,7 @@

      Functions

      null() NULL value <<<<<<< HEAD +<<<<<<< HEAD Note, that the row(), col() and depth() indexing starts with 1. ======= Note, that the row(), col() and depth() indexing starts with 1. @@ -263,6 +264,9 @@

      Functions

      >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +Note, that the row(), col() and depth() indexing starts with 1. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))

      Floating point values in the expression

      @@ -600,6 +604,7 @@

      REFERENCES

      Construction Engineering Research Laboratory (March/1991). <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD

      =======

      @@ -607,6 +612,9 @@

      REFERENCES

      =======

      >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +

      +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Performing Map Calculations on GRASS Data: r.mapcalc Program Tutorial, by Marji Larson, Michael Shapiro and Scott Tweddale, U.S. Army Construction Engineering Research Laboratory (December @@ -614,6 +622,7 @@

      REFERENCES

      <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD Neteler, M. (2001): Volume modelling of soils using GRASS GIS 3D tools. - in: ======= Neteler, M. (2001): Volume modelling of soils using GRASS GIS 3D tools. - in: @@ -621,6 +630,9 @@

      REFERENCES

      ======= Neteler, M. (2001): Volume modelling of soils using GRASS GIS 3D tools. - in: >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +Neteler, M. (2001): Volume modelling of soils using GRASS GIS 3D tools. - in: +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Brovelli, M. (ed.)(2001): The Geomatics Workbook N. 2. Politecnico di Milano, Italy (ISSN 1591-092X) (PDF) diff --git a/raster/r.mfilter/testsuite/test_r_mfilter.py b/raster/r.mfilter/testsuite/test_r_mfilter.py index 0b85ae67fc1..506fa30d795 100644 --- a/raster/r.mfilter/testsuite/test_r_mfilter.py +++ b/raster/r.mfilter/testsuite/test_r_mfilter.py @@ -174,6 +174,7 @@ class TestNeighbors(TestCase): MATRIX 3 <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD 1 1 1 1 1 1 @@ -188,6 +189,11 @@ class TestNeighbors(TestCase): 1 1 1 1 1 1 >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + 1 1 1 + 1 1 1 + 1 1 1 +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) DIVISOR 9 TYPE P""", } diff --git a/raster/r.object.geometry/r.object.geometry.html b/raster/r.object.geometry/r.object.geometry.html index 5ae1b9fff47..67812698830 100644 --- a/raster/r.object.geometry/r.object.geometry.html +++ b/raster/r.object.geometry/r.object.geometry.html @@ -6,6 +6,7 @@

      DESCRIPTION

      (or standard output if no output filename or '-' is given), with fields separated by the chosen separator. Objects are defined <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD as clumps of adjacent cells with the same category value (e.g. output of ======= @@ -14,6 +15,9 @@

      DESCRIPTION

      ======= as clumps of adjacent cells with the same category value (e.g. output of >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + as clumps of adjacent cells with the same category value (e.g. output of +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) r.clump or i.segment). @@ -21,6 +25,7 @@

      DESCRIPTION

      By default, values are in pixels. If values in meters is desired, the user <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD can set the -m flag. If the current working region is in lat-long or ======= can set the -m flag. If the current working region is in lat-long or @@ -28,12 +33,16 @@

      DESCRIPTION

      ======= can set the -m flag. If the current working region is in lat-long or >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +can set the -m flag. If the current working region is in lat-long or +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) has non-square pixels, using meters is recommended.

      Statistics currently calculated are exactly the same as in <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD v.to.db (except for compact_square and ======= v.to.db (except for compact_square and @@ -41,6 +50,9 @@

      DESCRIPTION

      ======= v.to.db (except for compact_square and >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +v.to.db (except for compact_square and +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) mean coordinates):
        @@ -48,6 +60,7 @@

        DESCRIPTION

      • perimeter
      • <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD
      • compact_square (compactness compared to a square: compact_square = 4 * sqrt(area) / perimeter)
      • compact_circle (compactness compared to a circle: @@ -61,6 +74,11 @@

        DESCRIPTION

        compact_square = 4 * sqrt(area) / perimeter)
      • compact_circle (compactness compared to a circle: >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +
      • compact_square (compactness compared to a square: + compact_square = 4 * sqrt(area) / perimeter) +
      • compact_circle (compactness compared to a circle: +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) compact_circle = perimeter / ( 2 * sqrt(PI * area) ))
      • fractal dimension ( fd = 2 * ( log(perimeter) / log(area + 0.001) ) )
      • mean x coordinate of object (in map units)
      • @@ -159,9 +177,12 @@

        AUTHORS

        Markus Metz (diagonal clump tracing) <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD ======= >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/raster/r.out.bin/main.c b/raster/r.out.bin/main.c index cb594926cae..97732d1afba 100644 --- a/raster/r.out.bin/main.c +++ b/raster/r.out.bin/main.c @@ -485,6 +485,7 @@ int main(int argc, char *argv[]) convert_row(out_buf, in_buf, ncols, is_fp, bytes, swap_flag, null_val); +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD if (fwrite(out_buf, bytes, ncols, fp) != (size_t)ncols) @@ -494,6 +495,9 @@ int main(int argc, char *argv[]) ======= if (fwrite(out_buf, bytes, ncols, fp) != ncols) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (fwrite(out_buf, bytes, ncols, fp) != (size_t)ncols) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Error writing data")); } diff --git a/raster/r.out.vtk/r.out.vtk.html b/raster/r.out.vtk/r.out.vtk.html index 993b39471b5..72edc3d3b5c 100644 --- a/raster/r.out.vtk/r.out.vtk.html +++ b/raster/r.out.vtk/r.out.vtk.html @@ -30,6 +30,7 @@

        DESCRIPTION

        NOTES

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD This filter generates: @@ -38,6 +39,9 @@

        NOTES

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) This filter generates: >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +This filter generates: +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))
        • structured points with celldata or pointdata if no elevationfile is given
        • @@ -77,7 +81,11 @@

          Difference between point- and celldata

        • celldata -- is only provided if no elevation map is given. +<<<<<<< HEAD The cells are created with the same height and width as in GRASS. Each cell +======= + The cells are created with the same hight and width as in GRASS. Each cell +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) can hold different values, but the user can only visualize one value at a time.
        diff --git a/raster/r.param.scale/disp_matrix.c b/raster/r.param.scale/disp_matrix.c index c8126a32887..9a6be21b45e 100644 --- a/raster/r.param.scale/disp_matrix.c +++ b/raster/r.param.scale/disp_matrix.c @@ -13,6 +13,7 @@ void disp_matrix(double **a, double *x, double *z, int n) <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD /* Displays matrices used to solve a set of linear equations in the form @@ -34,8 +35,12 @@ void disp_matrix(double **a, double *x, double *z, int n) ======= /* Displays matrices used to solve a set of linear equations in the form +======= + /* Displays matrices used to solve a + set of linear equations in the form +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) - _ _ _ _ _ _ + _ _ _ _ _ _ | a(0,0) a(0,1) ... a(0,n) | | x0 | | z0 | | a(1,0) a(1,1) ... a(1,n) | | x1 | | z1 | | : : ... : | . | : | = | : | diff --git a/raster/r.path/main.c b/raster/r.path/main.c index a0bfa5d41dd..86575b090bc 100644 --- a/raster/r.path/main.c +++ b/raster/r.path/main.c @@ -388,6 +388,7 @@ int main(int argc, char **argv) Rast_get_d_row(fd, map_buf, i); if (write(val_fd, map_buf, ncols * sizeof(DCELL)) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD ncols * (int)sizeof(DCELL)) { ======= @@ -396,6 +397,9 @@ int main(int argc, char **argv) ======= ncols * sizeof(DCELL)) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + ncols * (int)sizeof(DCELL)) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Unable to write to tempfile")); } } @@ -467,6 +471,7 @@ int main(int argc, char **argv) Rast_get_c_row(dir_id, dir_buf, i); if (write(dir_fd, dir_buf, ncols * sizeof(CELL)) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD ncols * (int)sizeof(CELL)) { ======= @@ -475,6 +480,9 @@ int main(int argc, char **argv) ======= ncols * sizeof(CELL)) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + ncols * (int)sizeof(CELL)) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Unable to write to tempfile")); } } @@ -492,6 +500,7 @@ int main(int argc, char **argv) } if (write(dir_fd, dir_buf, ncols * sizeof(DCELL)) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD ncols * (int)sizeof(DCELL)) { ======= @@ -500,6 +509,9 @@ int main(int argc, char **argv) ======= ncols * sizeof(DCELL)) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + ncols * (int)sizeof(DCELL)) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Unable to write to tempfile")); } } @@ -779,6 +791,7 @@ int dir_bitmask(int dir_fd, int val_fd, struct point *startp, SEEK_SET); if (read(val_fd, val_buf, window->cols * sizeof(DCELL)) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD window->cols * (int)sizeof(DCELL)) { ======= @@ -787,6 +800,9 @@ int dir_bitmask(int dir_fd, int val_fd, struct point *startp, ======= window->cols * sizeof(DCELL)) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + window->cols * (int)sizeof(DCELL)) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Unable to read from temp file")); } val_row = stackp->row; @@ -818,6 +834,7 @@ int dir_bitmask(int dir_fd, int val_fd, struct point *startp, SEEK_SET); if (read(dir_fd, dir_buf, window->cols * sizeof(CELL)) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD window->cols * (int)sizeof(CELL)) { ======= @@ -826,6 +843,9 @@ int dir_bitmask(int dir_fd, int val_fd, struct point *startp, ======= window->cols * sizeof(CELL)) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + window->cols * (int)sizeof(CELL)) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Unable to read from temp file")); } dir_row = next_row; @@ -955,6 +975,7 @@ int dir_bitmask(int dir_fd, int val_fd, struct point *startp, if (read(val_fd, val_buf, window->cols * sizeof(DCELL)) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD window->cols * (int)sizeof(DCELL)) { ======= @@ -963,6 +984,9 @@ int dir_bitmask(int dir_fd, int val_fd, struct point *startp, ======= window->cols * sizeof(DCELL)) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + window->cols * (int)sizeof(DCELL)) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error( _("Unable to read from temp file")); } @@ -1074,6 +1098,7 @@ int dir_degree(int dir_fd, int val_fd, struct point *startp, SEEK_SET); if (read(val_fd, val_buf, window->cols * sizeof(DCELL)) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD window->cols * (int)sizeof(DCELL)) { ======= @@ -1082,6 +1107,9 @@ int dir_degree(int dir_fd, int val_fd, struct point *startp, ======= window->cols * sizeof(DCELL)) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + window->cols * (int)sizeof(DCELL)) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Unable to read from temp file")); } val_row = next_row; @@ -1108,6 +1136,7 @@ int dir_degree(int dir_fd, int val_fd, struct point *startp, SEEK_SET); if (read(dir_fd, dir_buf, window->cols * sizeof(DCELL)) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD window->cols * (int)sizeof(DCELL)) { ======= @@ -1116,6 +1145,9 @@ int dir_degree(int dir_fd, int val_fd, struct point *startp, ======= window->cols * sizeof(DCELL)) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + window->cols * (int)sizeof(DCELL)) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Unable to read from temp file")); } dir_row = next_row; @@ -1215,6 +1247,7 @@ int dir_degree(int dir_fd, int val_fd, struct point *startp, if (read(val_fd, val_buf, window->cols * sizeof(DCELL)) != <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD window->cols * (int)sizeof(DCELL)) { ======= @@ -1223,6 +1256,9 @@ int dir_degree(int dir_fd, int val_fd, struct point *startp, ======= window->cols * sizeof(DCELL)) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + window->cols * (int)sizeof(DCELL)) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Unable to read from temp file")); } val_row = next_row; diff --git a/raster/r.path/r.path.html b/raster/r.path/r.path.html index b955032e970..0b2ec2228ab 100644 --- a/raster/r.path/r.path.html +++ b/raster/r.path/r.path.html @@ -60,6 +60,7 @@

        DESCRIPTION

        NOTES

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD The directions are recorded as degrees CCW from East, the Knight's move @@ -68,6 +69,9 @@

        NOTES

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) The directions are recorded as degrees CCW from East, the Knight's move >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +The directions are recorded as degrees CCW from East, the Knight's move +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) of r.cost and r.walk is considered:
                112.5     67.5
        diff --git a/raster/r.profile/r.profile.html b/raster/r.profile/r.profile.html
        index b5801a28055..669ddf269e8 100644
        --- a/raster/r.profile/r.profile.html
        +++ b/raster/r.profile/r.profile.html
        @@ -33,7 +33,11 @@ 

        OUTPUT FORMAT

        other programs. The output can be piped (|) directly into other programs or saved to a file for later use. Output with geographic coordinates (-g) is compatible with v.in.ascii and can +<<<<<<< HEAD be piped directly into this program. +======= +be piped direcly into this program. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))
         r.profile -g input=elevation coordinates=... | v.in.ascii output=elevation_profile separator=space
        diff --git a/raster/r.proj/r.proj.html b/raster/r.proj/r.proj.html
        index 74d45e3187e..cdebb1a90e8 100644
        --- a/raster/r.proj/r.proj.html
        +++ b/raster/r.proj/r.proj.html
        @@ -263,12 +263,21 @@ 

        v.in.region method

        v.in.region -d output=bounds type=area +<<<<<<< HEAD # Now switch to the target project and import the vector bounding box # (you can run v.proj -l to get a list of vector maps in the source project): +======= +# Now switch to the target location and import the vector bounding box +# (you can run v.proj -l to get a list of vector maps in the source location): +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) v.proj input=bounds project=source_project_name output=bounds_reprojected +<<<<<<< HEAD # Set the region in the target project with that of the newly-imported vector +======= +# Set the region in the target location with that of the newly-imported vector +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) # bounds map, and align the resolution to the desired cell resolution of the # final, reprojected raster map: @@ -323,6 +332,7 @@

        SEE ALSO

        AUTHORS

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD @@ -331,6 +341,9 @@

        AUTHORS

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Martin Schroeder, University of Heidelberg, Germany
        Man page text from S.J.D. Cox, AGCRC, CSIRO Exploration & Mining, Nedlands, WA
        Updated by Morten Hulden
        diff --git a/raster/r.quantile/r.quantile.html b/raster/r.quantile/r.quantile.html index 283c8d9f01e..620548d4c20 100644 --- a/raster/r.quantile/r.quantile.html +++ b/raster/r.quantile/r.quantile.html @@ -30,6 +30,7 @@

        REFERENCES

        diff --git a/raster/r.regression.line/r.regression.line.html b/raster/r.regression.line/r.regression.line.html index 3c6de3ae7e5..12b5b2d7cb5 100644 --- a/raster/r.regression.line/r.regression.line.html +++ b/raster/r.regression.line/r.regression.line.html @@ -21,6 +21,7 @@

        DESCRIPTION

        NOTES

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD The results for offset/intercept (a) and gain/slope (b) are @@ -31,6 +32,10 @@

        NOTES

        The results for offset/intercept (a) and gain/slope (b) are identical to that obtained from R-stats's lm() function. >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +The results for offset/intercept (a) and gain/slope (b) are +identical to that obtained from R-stats's lm() function. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))

        EXAMPLE

        diff --git a/raster/r.regression.multi/main.c b/raster/r.regression.multi/main.c index 1e42fe858ca..7fa0b3fd6dd 100644 --- a/raster/r.regression.multi/main.c +++ b/raster/r.regression.multi/main.c @@ -321,6 +321,7 @@ int main(int argc, char *argv[]) } G_percent(rows, rows, 2); +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD if (count < (unsigned int)n_predictors + 1) @@ -330,6 +331,9 @@ int main(int argc, char *argv[]) ======= if (count < n_predictors + 1) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (count < (unsigned int)n_predictors + 1) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error(_("Not enough valid cells available")); for (k = 0; k <= n_predictors; k++) { diff --git a/raster/r.report/format.c b/raster/r.report/format.c index fa88e6761d8..2c06ae802dd 100644 --- a/raster/r.report/format.c +++ b/raster/r.report/format.c @@ -24,6 +24,7 @@ int format_parms(double v, int *n, int *dp, int *eformat, int e_option) else scient_format(v, buf, *n, *dp); +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD if ((int)strlen(buf) <= *n) @@ -33,6 +34,9 @@ int format_parms(double v, int *n, int *dp, int *eformat, int e_option) ======= if (strlen(buf) <= *n) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if ((int)strlen(buf) <= *n) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) break; if (*dp) { diff --git a/raster/r.resamp.rst/main.c b/raster/r.resamp.rst/main.c index a1356930aee..c2e34e93320 100644 --- a/raster/r.resamp.rst/main.c +++ b/raster/r.resamp.rst/main.c @@ -546,6 +546,7 @@ static FILE *create_temp_file(const char *name, char **tmpname) for (i = 0; i < nsizr; i++) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (fwrite(zero_array_cell, sizeof(FCELL), nsizc, fp) != (size_t)nsizc) { @@ -555,6 +556,10 @@ static FILE *create_temp_file(const char *name, char **tmpname) ======= if (fwrite(zero_array_cell, sizeof(FCELL), nsizc, fp) != nsizc) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (fwrite(zero_array_cell, sizeof(FCELL), nsizc, fp) != + (size_t)nsizc) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) clean(); G_fatal_error(_("Error writing temporary file <%s>"), *tmpname); } diff --git a/raster/r.sim/r.sim.sediment/r.sim.sediment.html b/raster/r.sim/r.sim.sediment/r.sim.sediment.html index 5318d801ba8..1cd3742bf67 100644 --- a/raster/r.sim/r.sim.sediment/r.sim.sediment.html +++ b/raster/r.sim/r.sim.sediment/r.sim.sediment.html @@ -64,10 +64,14 @@

        REFERENCES

        <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD >>>>>>> 196338e256 (wxpyimgview: explicit conversion to int (#2704)) ======= <<<<<<< HEAD >>>>>>> 49258e3437 (wxpyimgview: explicit conversion to int (#2704)) +======= +<<<<<<< HEAD +>>>>>>> 28bb012175 (r.horizon manual - fix typo (#2794)) Mitasova H, Mitas, L., 2000, Modeling spatial processes in multiscale framework: ======= Mitasova H, Mitas, L., 2000, Modeling spatial processes in multiscale framework: @@ -75,6 +79,9 @@

        REFERENCES

        ======= Mitasova H, Mitas, L., 2000, Modeling spatial processes in multiscale framework: >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +Mitasova H, Mitas, L., 2000, Modeling spatial processes in multiscale framework: +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) exploring duality between particles and fields,
        plenary talk at GIScience2000 conference, Savannah, GA.

        diff --git a/raster/r.slope.aspect/r.slope.aspect.html b/raster/r.slope.aspect/r.slope.aspect.html index d039a9bc056..23bb1f413fb 100644 --- a/raster/r.slope.aspect/r.slope.aspect.html +++ b/raster/r.slope.aspect/r.slope.aspect.html @@ -181,6 +181,7 @@

        PERFORMANCE

        used with the nprocs parameter (default 1). The memory parameter <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD (default 300) can also be provided to determine the size of the buffer for ======= (default 300) can also be provided to determine the size of the buffer for @@ -188,6 +189,9 @@

        PERFORMANCE

        ======= (default 300) can also be provided to determine the size of the buffer for >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +(default 300) can also be provided to determine the size of the buffer for +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) computation.
        diff --git a/raster/r.solute.transport/r.solute.transport.html b/raster/r.solute.transport/r.solute.transport.html index 168998ca655..423a348943c 100644 --- a/raster/r.solute.transport/r.solute.transport.html +++ b/raster/r.solute.transport/r.solute.transport.html @@ -157,9 +157,12 @@

        AUTHOR

        here at Technical University Berlin in Germany. <<<<<<< HEAD +<<<<<<< HEAD ======= <<<<<<< HEAD >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/raster/r.stats.quantile/r.stats.quantile.html b/raster/r.stats.quantile/r.stats.quantile.html index 67953c35f2d..c14743af4d3 100644 --- a/raster/r.stats.quantile/r.stats.quantile.html +++ b/raster/r.stats.quantile/r.stats.quantile.html @@ -46,6 +46,7 @@

        REFERENCES

        diff --git a/raster/r.sun/TODO b/raster/r.sun/TODO index 3e54873977e..4af573283e7 100644 --- a/raster/r.sun/TODO +++ b/raster/r.sun/TODO @@ -1,7 +1,11 @@ TODO ------- +<<<<<<< HEAD Probably the sun position calculation should be replaced +======= +Probably the sun position calculation shouldbe replaced +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) with G_calc_solar_position() diff --git a/raster/r.sun/r.sun.html b/raster/r.sun/r.sun.html index 5e68f58358b..66767ff69eb 100644 --- a/raster/r.sun/r.sun.html +++ b/raster/r.sun/r.sun.html @@ -151,6 +151,7 @@

        DESCRIPTION

        day to compute radiation for some time interval within the year (e.g. vegetation or winter period). Elevation, aspect and slope input values should not be <<<<<<< HEAD +<<<<<<< HEAD reclassified into coarser categories. This could lead to incorrect results. ======= reclassified into coarser categories. This could lead to incorrect results. @@ -158,6 +159,9 @@

        DESCRIPTION

        >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +reclassified into coarser categories. This could lead to incorrect results. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))

        OPTIONS

        diff --git a/raster/r.sunmask/r.sunmask.html b/raster/r.sunmask/r.sunmask.html index 6ec6680d21c..a39f14c55a3 100644 --- a/raster/r.sunmask/r.sunmask.html +++ b/raster/r.sunmask/r.sunmask.html @@ -44,10 +44,16 @@

        NOTES

        Standard Time, which is generally defined as an offset from GMT. So the key is the offset from GMT, which is the solpos Time Zone parameter. If the user specifies clock time (different for +<<<<<<< HEAD winter and summer), s/he would have to change the Time Zone parameter in r.sunmask (timezone parameter) seasonally. See also Daylight saving time by region and country.

        +======= +winter and summer), s/he would have to change the Time Zone +parameter seasonally in r.sunmask (timezone parameter). See also +Daylight saving time by region and country. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))

        Note: In latitude/longitude projects the position coordinates pair diff --git a/raster/r.support/main.c b/raster/r.support/main.c index 6602e8e3ac2..7ff7d7a32e4 100644 --- a/raster/r.support/main.c +++ b/raster/r.support/main.c @@ -302,6 +302,7 @@ int main(int argc, char *argv[]) /* Should be RECORD_LEN, but r.info truncates at > 71 chars */ if (strlen(history_opt->answer) > 71) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD for (unsigned int i = 0; i < strlen(history_opt->answer); i += 71) { char buf[72]; @@ -319,6 +320,9 @@ int main(int argc, char *argv[]) int i; for (i = 0; i < strlen(history_opt->answer); i += 71) { +======= + for (unsigned int i = 0; i < strlen(history_opt->answer); i += 71) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) char buf[72]; strncpy(buf, &history_opt->answer[i], sizeof(buf) - 1); diff --git a/raster/r.support/r.support.html b/raster/r.support/r.support.html index 473e0c3e62e..76944a515a3 100644 --- a/raster/r.support/r.support.html +++ b/raster/r.support/r.support.html @@ -1,5 +1,6 @@

        DESCRIPTION

        +<<<<<<< HEAD <<<<<<< HEAD r.support allows the user to create and/or edit raster map support information. Editing of raster map color tables, category labels, header, @@ -15,6 +16,10 @@

        Raster band management

        ======= r.support allows the user to create and/or edit raster map support information. Editing of raster map color tables, category labels, header, +======= +r.support allows the user to create and/or edit raster map support +information. Editing of raster map color tables, category labels, header, +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) history, semantic label elements and title is supported. Category labels can also be copied from another raster map. @@ -123,6 +128,7 @@

        AUTHORS

        <<<<<<< HEAD <<<<<<< HEAD Maris Nartiss: semantic label management +<<<<<<< HEAD ======= Maris Nartiss: band reference management ======= @@ -133,3 +139,5 @@

        AUTHORS

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) >>>>>>> da7f79c3f9 (libpython: Save and load benchmark results (#1711)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/raster/r.surf.idw/r.surf.idw.html b/raster/r.surf.idw/r.surf.idw.html index 77a31f2c4fd..5aeaa41435b 100644 --- a/raster/r.surf.idw/r.surf.idw.html +++ b/raster/r.surf.idw/r.surf.idw.html @@ -124,6 +124,7 @@

        AUTHOR

        U.S. EPA Environmental Research Laboratory
        200 S.W. 35th Street, JSB
        <<<<<<< HEAD +<<<<<<< HEAD Corvallis, OR 97333 ======= Corvallis, OR 97333 @@ -131,3 +132,6 @@

        AUTHOR

        >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +Corvallis, OR 97333 +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/raster/r.texture/r.texture.html b/raster/r.texture/r.texture.html index 67834621766..deaadf1fb9f 100644 --- a/raster/r.texture/r.texture.html +++ b/raster/r.texture/r.texture.html @@ -51,6 +51,7 @@

        NOTES

        i.maxlik or i.smap, or for the identification of objects in i.segment, <<<<<<< HEAD +<<<<<<< HEAD and/or for the characterization of these objects and thus, for example, as one of the raster inputs of the i.segment.stats @@ -58,6 +59,10 @@

        NOTES

        ======= and/or for the characterization of these objects and thus, for example, as one of the raster inputs of the +======= +and/or for the characterization of these objects and thus, for example, as one +of the raster inputs of the +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) i.segment.stats addon. >>>>>>> 73a1a8ce38 (Programmer's manual: update GRASS GIS arch drawing (#1610)) @@ -75,6 +80,7 @@

        NOTES

        is a two-dimensional histogram of grey levels for a pair of pixels which are separated by a fixed spatial relationship. The matrix approximates the joint probability distribution of a pair of pixels. Several texture measures are +<<<<<<< HEAD directly computed from the Grey Level Co-occurrence Matrix (GLCM). The provided measures can be categorized under first-order and @@ -84,6 +90,9 @@

        NOTES

        second-order statistics, particularly those derived from the Grey Level Co-occurrence Matrix (GLCM), consider the spatial relationship of pixels. +======= +directly computed from the grey level co-occurrence matrix. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))

        The following part offers brief explanations of the Haralick et al texture @@ -249,7 +258,11 @@

        EXAMPLE

        # extract grey levels r.mapcalc "ortho_2001_t792_1m.greylevel = ortho_2001_t792_1m" # texture analysis +<<<<<<< HEAD r.texture ortho_2001_t792_1m.greylevel output=ortho_texture method=asm -s +======= +r.texture ortho_2001_t792_1m.greylevel prefix=ortho_texture method=asm -s +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) # display g.region n=221461 s=221094 w=638279 e=638694 d.shade color=ortho_texture_ASM_0 shade=ortho_2001_t792_1m @@ -319,6 +332,7 @@

        EXAMPLE

        =======

        KNOWN ISSUES

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD The program can run incredibly slow for large raster maps and large @@ -327,6 +341,9 @@

        KNOWN ISSUES

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) The program can run incredibly slow for large raster maps and large >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +The program can run incredibly slow for large raster maps and large +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) moving windows (size option). >>>>>>> ebc6d3f683 (wxpyimgview: explicit conversion to int (#2704)) diff --git a/raster/r.to.rast3/test_suite/test.r.to.rast3.sh b/raster/r.to.rast3/test_suite/test.r.to.rast3.sh index 05b58af481e..35b2243cc91 100755 --- a/raster/r.to.rast3/test_suite/test.r.to.rast3.sh +++ b/raster/r.to.rast3/test_suite/test.r.to.rast3.sh @@ -19,7 +19,11 @@ r.mapcalc --o expr="elev_5 = 45" # We @test several methods to generate @raster3d maps from raster maps # For validation a @precision=0 should be used. We start with 5 raster maps, # then 3 raster maps then using single float and double raster maps +<<<<<<< HEAD # with different tile sizes and null data +======= +# with differen tile sizes and null data +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) r.to.rast3 --o input=elev_1,elev_2,elev_3,elev_4,elev_5 output=test_volume_6_raster tilesize=1 r.to.rast3 --o input=elev_1,elev_2,elev_3 output=test_volume_3_raster tilesize=1 r.to.rast3 --o input=elev_float output=test_volume_float_raster tilesize=2 diff --git a/raster/r.to.rast3elev/r.to.rast3elev.html b/raster/r.to.rast3elev/r.to.rast3elev.html index 2a3e51da68c..8133f130c30 100644 --- a/raster/r.to.rast3elev/r.to.rast3elev.html +++ b/raster/r.to.rast3elev/r.to.rast3elev.html @@ -15,6 +15,7 @@

        DESCRIPTION

        NOTES

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD The height of the 2D elevation maps will be used to verify the position @@ -25,6 +26,10 @@

        NOTES

        The hight of the 2D elevation maps will be used to verify the position within the 3D region. If the cell value of the elevation raster maps is located within the 3D region, the >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +The hight of the 2D elevation maps will be used to verify the position +within the 3D region. If the cell value of the elevation raster maps is located within the 3D region, the +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) cell value of the appropriate 2D input raster maps will be written to the associated 3D cell. There are flags and options to fill the upper and lower 3D cells with a specific value, or the input raster maps values. diff --git a/raster/r.univar/r.univar.html b/raster/r.univar/r.univar.html index 770e3438762..3ac70df7e38 100644 --- a/raster/r.univar/r.univar.html +++ b/raster/r.univar/r.univar.html @@ -81,6 +81,7 @@

        PERFORMANCE

        nprocs parameters are used. However, since the work allocation among threads <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD is static, users should expect to have the same results when run with the same ======= is static, users should expect to have the same results when run with the same @@ -88,6 +89,9 @@

        PERFORMANCE

        ======= is static, users should expect to have the same results when run with the same >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +is static, users should expect to have the same results when run with the same +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) number of threads.
        diff --git a/raster/r.univar/r3.univar_main.c b/raster/r.univar/r3.univar_main.c index 5ec8f1ea323..de0eeb124b2 100644 --- a/raster/r.univar/r3.univar_main.c +++ b/raster/r.univar/r3.univar_main.c @@ -231,6 +231,7 @@ int main(int argc, char *argv[]) n_zones = 1; stats = create_univar_stat_struct(map_type, i); +<<<<<<< HEAD <<<<<<< HEAD for (i = 0; i < (unsigned int)n_zones; i++) { ======= @@ -239,6 +240,9 @@ int main(int argc, char *argv[]) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + for (i = 0; i < (unsigned int)n_zones; i++) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) unsigned int j; for (j = 0; j < stats[i].n_perc; j++) { diff --git a/raster/r.uslek/r.uslek.html b/raster/r.uslek/r.uslek.html index 73fbae35997..27cff4dc3bd 100644 --- a/raster/r.uslek/r.uslek.html +++ b/raster/r.uslek/r.uslek.html @@ -65,9 +65,12 @@

        AUTHOR

        Yann Chemin, SIC-ISDC, Turkmenistan <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD ======= >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/raster/rasterintro.html b/raster/rasterintro.html index 5a6605283c8..66ff3a6b124 100644 --- a/raster/rasterintro.html +++ b/raster/rasterintro.html @@ -319,11 +319,15 @@

        Raster compression

        ZLIB
        <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))
        ZLIB's deflate is the default compression method for all raster maps, if ZSTD is not available. GRASS GIS 8 uses by default 1 as ZLIB compression level which is the best compromise between speed and compression ratio, also when compared to other available compression methods. Valid levels are in the range [1, 9] and can be set with the +<<<<<<< HEAD =======
        ZLIB's deflate is the default compression method for all raster maps, if ZSTD is not available. GRASS GIS 8 uses by default 1 as ZLIB @@ -331,6 +335,8 @@

        Raster compression

        compression ratio, also when compared to other available compression methods. Valid levels are in the range [1, 9] and can be set with the >>>>>>> 73a1a8ce38 (Programmer's manual: update GRASS GIS arch drawing (#1610)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) environment variable GRASS_ZLIB_LEVEL.
        LZ4
        LZ4 is a very fast compression method, about as fast as no diff --git a/raster3d/r3.in.ascii/r3.in.ascii.html b/raster3d/r3.in.ascii/r3.in.ascii.html index d2b8652a55e..54fa7bcd971 100644 --- a/raster3d/r3.in.ascii/r3.in.ascii.html +++ b/raster3d/r3.in.ascii/r3.in.ascii.html @@ -103,6 +103,7 @@

        SEE ALSO

        AUTHORS

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD Roman Waupotitsch, Michael Shapiro, @@ -112,4 +113,7 @@

        AUTHORS

        ======= Roman Waupotitsch, Michael Shapiro, >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +Roman Waupotitsch, Michael Shapiro, +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Helena Mitasova, Bill Brown, Lubos Mitas, Jaro Hofierka, Sören Gebbert diff --git a/raster3d/r3.info/r3.info.html b/raster3d/r3.info/r3.info.html index 8aa50b28142..0357c1690d3 100644 --- a/raster3d/r3.info/r3.info.html +++ b/raster3d/r3.info/r3.info.html @@ -10,6 +10,7 @@

        SEE ALSO

        AUTHORS

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD Roman Waupotitsch, Michael Shapiro, @@ -18,5 +19,8 @@

        AUTHORS

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) Roman Waupotitsch, Michael Shapiro, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +Roman Waupotitsch, Michael Shapiro, +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Helena Mitasova, Bill Brown, Lubos Mitas, Jaro Hofierka diff --git a/raster3d/r3.mask/r3.mask.html b/raster3d/r3.mask/r3.mask.html index 9fdf54e2eb5..d8a2d2ee6e2 100644 --- a/raster3d/r3.mask/r3.mask.html +++ b/raster3d/r3.mask/r3.mask.html @@ -14,6 +14,7 @@

        SEE ALSO

        AUTHORS

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD Roman Waupotitsch, Michael Shapiro, @@ -22,5 +23,8 @@

        AUTHORS

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) Roman Waupotitsch, Michael Shapiro, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +Roman Waupotitsch, Michael Shapiro, +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Helena Mitasova, Bill Brown, Lubos Mitas, Jaro Hofierka diff --git a/raster3d/r3.mkdspf/r3.mkdspf.html b/raster3d/r3.mkdspf/r3.mkdspf.html index 18c6f07301e..1d0e8857cad 100644 --- a/raster3d/r3.mkdspf/r3.mkdspf.html +++ b/raster3d/r3.mkdspf/r3.mkdspf.html @@ -53,6 +53,7 @@

        NOTES

        EXAMPLES

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD With grid3 data (phdata) in the range 3-7, @@ -63,6 +64,10 @@

        EXAMPLES

        With grid3 data (phdata) in the range 3-7, we only want to see isosurface values for the range 4-6. >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +With grid3 data (phdata) in the range 3-7, +we only want to see isosurface values for the range 4-6. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Any of these commands will produce the same results:
         r3.mkdspf phdata dspf=iso min=4.0 max=6.0 tnum=5
        diff --git a/raster3d/r3.null/r3.null.html b/raster3d/r3.null/r3.null.html
        index a0ecf33103c..aeefe61ac0e 100644
        --- a/raster3d/r3.null/r3.null.html
        +++ b/raster3d/r3.null/r3.null.html
        @@ -10,6 +10,7 @@ 

        SEE ALSO

        AUTHORS

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD Roman Waupotitsch, Michael Shapiro, @@ -18,5 +19,8 @@

        AUTHORS

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) Roman Waupotitsch, Michael Shapiro, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +Roman Waupotitsch, Michael Shapiro, +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Helena Mitasova, Bill Brown, Lubos Mitas, Jaro Hofierka diff --git a/raster3d/r3.out.ascii/r3.out.ascii.html b/raster3d/r3.out.ascii/r3.out.ascii.html index c58e6e28835..001b026393e 100644 --- a/raster3d/r3.out.ascii/r3.out.ascii.html +++ b/raster3d/r3.out.ascii/r3.out.ascii.html @@ -192,6 +192,7 @@

        SEE ALSO

        AUTHORS

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD Roman Waupotitsch, Michael Shapiro, @@ -201,4 +202,7 @@

        AUTHORS

        ======= Roman Waupotitsch, Michael Shapiro, >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +Roman Waupotitsch, Michael Shapiro, +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Helena Mitasova, Bill Brown, Lubos Mitas, Jaro Hofierka, Sören Gebbert diff --git a/raster3d/r3.out.netcdf/main.c b/raster3d/r3.out.netcdf/main.c index 2f87101e63c..7ef763f557c 100644 --- a/raster3d/r3.out.netcdf/main.c +++ b/raster3d/r3.out.netcdf/main.c @@ -507,6 +507,7 @@ static void write_netcdf_header(int ncid, RASTER3D_Region *region, int *varid, * dimensions * */ +<<<<<<< HEAD <<<<<<< HEAD for (i = 0; i < (unsigned int)region->cols; i++) { ======= @@ -515,10 +516,14 @@ static void write_netcdf_header(int ncid, RASTER3D_Region *region, int *varid, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + for (i = 0; i < (unsigned int)region->cols; i++) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) c = region->west + i * region->ew_res + 0.5 * region->ew_res; nc_put_var1_float(ncid, lon_varid, &i, &c); } +<<<<<<< HEAD <<<<<<< HEAD for (i = 0; i < (unsigned int)region->rows; i++) { ======= @@ -527,11 +532,15 @@ static void write_netcdf_header(int ncid, RASTER3D_Region *region, int *varid, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + for (i = 0; i < (unsigned int)region->rows; i++) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) /* c = region->south + i * region->ns_res + 0.5 * region->ns_res; */ c = region->north - i * region->ns_res - 0.5 * region->ns_res; nc_put_var1_float(ncid, lat_varid, &i, &c); } +<<<<<<< HEAD <<<<<<< HEAD for (i = 0; i < (unsigned int)region->depths; i++) { ======= @@ -540,6 +549,9 @@ static void write_netcdf_header(int ncid, RASTER3D_Region *region, int *varid, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + for (i = 0; i < (unsigned int)region->depths; i++) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) if (is_time) { c = i * region->tb_res; time = (int)c; diff --git a/raster3d/r3.support/main.c b/raster3d/r3.support/main.c index 8db942c0cc2..6621d13e098 100644 --- a/raster3d/r3.support/main.c +++ b/raster3d/r3.support/main.c @@ -194,6 +194,7 @@ int main(int argc, char *argv[]) /* Should be RECORD_LEN, but r.info truncates at > 71 chars */ if (strlen(history_opt->answer) > 71) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD for (unsigned int i = 0; i < strlen(history_opt->answer); i += 71) { char buf[72]; @@ -211,6 +212,9 @@ int main(int argc, char *argv[]) int i; for (i = 0; i < strlen(history_opt->answer); i += 71) { +======= + for (unsigned int i = 0; i < strlen(history_opt->answer); i += 71) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) char buf[72]; strncpy(buf, &history_opt->answer[i], sizeof(buf) - 1); diff --git a/raster3d/r3.to.rast/r3.to.rast.html b/raster3d/r3.to.rast/r3.to.rast.html index 5ff3af32525..f756287815a 100644 --- a/raster3d/r3.to.rast/r3.to.rast.html +++ b/raster3d/r3.to.rast/r3.to.rast.html @@ -27,6 +27,7 @@

        Map type conversions

        map stores categories (which need to be stored as floating point numbers) and the 2D raster map should be also categorical, i.e. use integers. <<<<<<< HEAD +<<<<<<< HEAD The type is set to CELL in this case. ======= The type is set to CELL in this case. @@ -34,6 +35,9 @@

        Map type conversions

        >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +The type is set to CELL in this case. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))

        Modifying the values

        diff --git a/renovate.json b/renovate.json new file mode 100644 index 00000000000..a407838676a --- /dev/null +++ b/renovate.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ +<<<<<<< HEAD + "config:best-practices", +<<<<<<< HEAD + ":semanticCommits", +======= +======= + "config:base", +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) +>>>>>>> 28bb012175 (r.horizon manual - fix typo (#2794)) + ":semanticCommitTypeAll(CI)" + ] +} diff --git a/rpm/grass-pkgconfig.patch b/rpm/grass-pkgconfig.patch index 61476279009..0b81a8f0ee9 100644 --- a/rpm/grass-pkgconfig.patch +++ b/rpm/grass-pkgconfig.patch @@ -18,11 +18,15 @@ Index: grass-7.8.6/grass.pc.in @@ -2,13 +2,13 @@ # # See also: grass@GRASS_VERSION_MAJOR@@GRASS_VERSION_MINOR@ --config +<<<<<<< HEAD <<<<<<< HEAD >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) -prefix=@prefix@/grass-@GRASS_VERSION_MAJOR@.@GRASS_VERSION_MINOR@.@GRASS_VERSION_RELEASE@ -exec_prefix=@prefix@/grass-@GRASS_VERSION_MAJOR@.@GRASS_VERSION_MINOR@.@GRASS_VERSION_RELEASE@ -libdir=@prefix@/grass-@GRASS_VERSION_MAJOR@.@GRASS_VERSION_MINOR@.@GRASS_VERSION_RELEASE@/lib @@ -33,6 +37,7 @@ Index: grass-7.8.6/grass.pc.in +includedir=@libdir@/grass-@GRASS_VERSION_MAJOR@.@GRASS_VERSION_MINOR@.@GRASS_VERSION_RELEASE@/include <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD ======= @@ -40,6 +45,9 @@ Index: grass-7.8.6/grass.pc.in ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Name: GRASS Description: GRASS GIS Version: @GRASS_VERSION_MAJOR@.@GRASS_VERSION_MINOR@.@GRASS_VERSION_RELEASE@ diff --git a/scripts/d.frame/d.frame.html b/scripts/d.frame/d.frame.html index 45ae685f69b..3512b38396d 100644 --- a/scripts/d.frame/d.frame.html +++ b/scripts/d.frame/d.frame.html @@ -81,6 +81,7 @@

        SEE ALSO

        GRASS environment variables for rendering (GRASS_RENDER_FRAME) <<<<<<< HEAD +<<<<<<< HEAD ======= @@ -88,6 +89,9 @@

        SEE ALSO

        >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))

        AUTHORS

        Martin Landa, Czech Technical University in Prague, Czech Republic diff --git a/scripts/d.out.file/d.out.file.html b/scripts/d.out.file/d.out.file.html index f4825c58341..9025f71afdd 100644 --- a/scripts/d.out.file/d.out.file.html +++ b/scripts/d.out.file/d.out.file.html @@ -7,6 +7,7 @@

        DESCRIPTION

        SEE ALSO

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD @@ -15,6 +16,9 @@

        SEE ALSO

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) d.redraw, d.erase, diff --git a/scripts/d.redraw/d.redraw.html b/scripts/d.redraw/d.redraw.html index 069a405ed94..497a599ae95 100644 --- a/scripts/d.redraw/d.redraw.html +++ b/scripts/d.redraw/d.redraw.html @@ -6,6 +6,7 @@

        DESCRIPTION

        SEE ALSO

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD @@ -14,6 +15,9 @@

        SEE ALSO

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) d.erase, d.rast, diff --git a/scripts/d.to.rast/d.to.rast.html b/scripts/d.to.rast/d.to.rast.html index 337f7e9ee59..8b4d2e7c504 100644 --- a/scripts/d.to.rast/d.to.rast.html +++ b/scripts/d.to.rast/d.to.rast.html @@ -35,6 +35,7 @@

        EXAMPLE

        SEE ALSO

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD @@ -43,6 +44,9 @@

        SEE ALSO

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) d.out.file, d.erase, diff --git a/scripts/d.what.rast/d.what.rast.html b/scripts/d.what.rast/d.what.rast.html index 1203cece19d..b7ac05e51ce 100644 --- a/scripts/d.what.rast/d.what.rast.html +++ b/scripts/d.what.rast/d.what.rast.html @@ -6,6 +6,7 @@

        DESCRIPTION

        SEE ALSO

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD @@ -14,6 +15,9 @@

        SEE ALSO

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) d.what.vect, d.redraw, diff --git a/scripts/d.what.vect/d.what.vect.html b/scripts/d.what.vect/d.what.vect.html index 7cb985bb169..6009738fb96 100644 --- a/scripts/d.what.vect/d.what.vect.html +++ b/scripts/d.what.vect/d.what.vect.html @@ -6,6 +6,7 @@

        DESCRIPTION

        SEE ALSO

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD @@ -14,6 +15,9 @@

        SEE ALSO

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) d.what.rast, d.redraw, diff --git a/scripts/g.extension/g.extension.html b/scripts/g.extension/g.extension.html index f23e94dd67f..4327c45252d 100644 --- a/scripts/g.extension/g.extension.html +++ b/scripts/g.extension/g.extension.html @@ -36,6 +36,7 @@

        Where the extensions are installed

        directory. The default is a directory for application data and settings inside <<<<<<< HEAD +<<<<<<< HEAD the user's home directory. ======= the user's home directory. @@ -43,6 +44,9 @@

        Where the extensions are installed

        >>>>>>> 73a1a8ce38 (Programmer's manual: update GRASS GIS arch drawing (#1610)) ======= >>>>>>> 227cbcebbf (Programmer's manual: update GRASS GIS arch drawing (#1610)) +======= +the user's home directory. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) On GNU/Linux it is $HOME/.grass8/addons, on MS-Windows it is %APPDATA%\Roaming\GRASS8\addons. The name of the directory is stored in the GRASS_ADDON_BASE @@ -93,12 +97,19 @@

        Online repositories: GitHub, GitLab and Bitbucket

        g.extension supports the download of a repository. Here the user only needs to provide a base URL to the repository web page (with or without the https:// part). +<<<<<<< HEAD For GitHub, GitLab and Bitbucket, the latest source code in the default branch is downloaded, unless a specific branch is requested in the branch option. Of course, a user can still specify the full URL of a ZIP file e.g. for a specific release and install the archived code in this way (ZIP file mechanism +======= +For GitLab and Bitbucket, the latest source code in the default branch is +downloaded, for GitHub, the latest source code in the master branch is downloaded. +Of course, a user can still specify the full URL of a ZIP file +and install a specific branch or release in this way (ZIP file mechanism +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) will be applied).

        diff --git a/scripts/i.band.library/landsat.json b/scripts/i.band.library/landsat.json index eb473bb15e7..0e5146656f6 100644 --- a/scripts/i.band.library/landsat.json +++ b/scripts/i.band.library/landsat.json @@ -144,6 +144,7 @@ "spatial resolution (meters)": 30, "tag": "Cirrus" <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD }, ======= @@ -152,6 +153,9 @@ ======= }, >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + }, +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) "10": { "wavelength (µm)": "10.6-11.19", "spatial resolution (meters)": 100, diff --git a/scripts/i.band.library/sentinel.json b/scripts/i.band.library/sentinel.json index a316b4168d1..9bb173bedaa 100644 --- a/scripts/i.band.library/sentinel.json +++ b/scripts/i.band.library/sentinel.json @@ -8,6 +8,7 @@ "bands": { "1": { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD "Sentinel 2A": { "central wavelength (nm)": 443.9, @@ -26,6 +27,13 @@ >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + "Sentinel 2A": { + "central wavelength (nm)": 443.9, + "bandwidth (nm)": 27 + }, + "Sentinel 2B": { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) "central wavelength (nm)": 442.3, "bandwidth (nm)": 45 }, @@ -34,6 +42,7 @@ }, "2": { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD "Sentinel 2A": { "central wavelength (nm)": 496.6, @@ -52,6 +61,13 @@ >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + "Sentinel 2A": { + "central wavelength (nm)": 496.6, + "bandwidth (nm)": 98 + }, + "Sentinel 2B": { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) "central wavelength (nm)": 492.1, "bandwidth (nm)": 98 }, @@ -60,6 +76,7 @@ }, "3": { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD "Sentinel 2A": { "central wavelength (nm)": 560.0, @@ -78,6 +95,13 @@ >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + "Sentinel 2A": { + "central wavelength (nm)": 560.0, + "bandwidth (nm)": 45 + }, + "Sentinel 2B": { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) "central wavelength (nm)": 559.0, "bandwidth (nm)": 46 }, @@ -86,6 +110,7 @@ }, "4": { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD "Sentinel 2A": { "central wavelength (nm)": 664.5, @@ -104,6 +129,13 @@ >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + "Sentinel 2A": { + "central wavelength (nm)": 664.5, + "bandwidth (nm)": 38 + }, + "Sentinel 2B": { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) "central wavelength (nm)": 665.0, "bandwidth (nm)": 39 }, @@ -112,6 +144,7 @@ }, "5": { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD "Sentinel 2A": { "central wavelength (nm)": 703.9, @@ -130,6 +163,13 @@ >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + "Sentinel 2A": { + "central wavelength (nm)": 703.9, + "bandwidth (nm)": 19 + }, + "Sentinel 2B": { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) "central wavelength (nm)": 703.8, "bandwidth (nm)": 20 }, @@ -138,6 +178,7 @@ }, "6": { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD "Sentinel 2A": { "central wavelength (nm)": 740.2, @@ -156,6 +197,13 @@ >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + "Sentinel 2A": { + "central wavelength (nm)": 740.2, + "bandwidth (nm)": 18 + }, + "Sentinel 2B": { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) "central wavelength (nm)": 739.1, "bandwidth (nm)": 18 }, @@ -164,6 +212,7 @@ }, "7": { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD "Sentinel 2A": { "central wavelength (nm)": 782.5, @@ -182,6 +231,13 @@ >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + "Sentinel 2A": { + "central wavelength (nm)": 782.5, + "bandwidth (nm)": 28 + }, + "Sentinel 2B": { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) "central wavelength (nm)": 779.7, "bandwidth (nm)": 28 }, @@ -190,6 +246,7 @@ }, "8": { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD "Sentinel 2A": { "central wavelength (nm)": 835.1, @@ -208,6 +265,13 @@ >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + "Sentinel 2A": { + "central wavelength (nm)": 835.1, + "bandwidth (nm)": 145 + }, + "Sentinel 2B": { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) "central wavelength (nm)": 833.0, "bandwidth (nm)": 133 }, @@ -216,6 +280,7 @@ }, "8A": { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD "Sentinel 2A": { "central wavelength (nm)": 864.8, @@ -234,6 +299,13 @@ >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + "Sentinel 2A": { + "central wavelength (nm)": 864.8, + "bandwidth (nm)": 33 + }, + "Sentinel 2B": { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) "central wavelength (nm)": 864.0, "bandwidth (nm)": 32 }, @@ -242,6 +314,7 @@ }, "9": { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD "Sentinel 2A": { "central wavelength (nm)": 945.0, @@ -260,6 +333,13 @@ >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + "Sentinel 2A": { + "central wavelength (nm)": 945.0, + "bandwidth (nm)": 26 + }, + "Sentinel 2B": { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) "central wavelength (nm)": 943.2, "bandwidth (nm)": 27 }, @@ -268,6 +348,7 @@ }, "10": { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD "Sentinel 2A": { "central wavelength (nm)": 1373.5, @@ -286,6 +367,13 @@ >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + "Sentinel 2A": { + "central wavelength (nm)": 1373.5, + "bandwidth (nm)": 75 + }, + "Sentinel 2B": { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) "central wavelength (nm)": 1376.9, "bandwidth (nm)": 76 }, @@ -294,6 +382,7 @@ }, "11": { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD "Sentinel 2A": { "central wavelength (nm)": 1613.7, @@ -312,6 +401,13 @@ >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + "Sentinel 2A": { + "central wavelength (nm)": 1613.7, + "bandwidth (nm)": 143 + }, + "Sentinel 2B": { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) "central wavelength (nm)": 1610.4, "bandwidth (nm)": 141 }, @@ -320,6 +416,7 @@ }, "12": { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD "Sentinel 2A": { "central wavelength (nm)": 2202.4, @@ -338,6 +435,13 @@ >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + "Sentinel 2A": { + "central wavelength (nm)": 2202.4, + "bandwidth (nm)": 242 + }, + "Sentinel 2B": { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) "central wavelength (nm)": 2185.7, "bandwidth (nm)": 238 }, diff --git a/scripts/i.spectral/README b/scripts/i.spectral/README index f45245092e6..28a4f98145c 100644 --- a/scripts/i.spectral/README +++ b/scripts/i.spectral/README @@ -1,4 +1,8 @@ +<<<<<<< HEAD This GRASS module calculates the spectral response +======= + This GRASS module calculates the spectral resonse +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) for raster images at a user specified point (by mouse). Requirement: diff --git a/scripts/m.proj/m.proj.html b/scripts/m.proj/m.proj.html index b67f6c1fa6f..e24c2927622 100644 --- a/scripts/m.proj/m.proj.html +++ b/scripts/m.proj/m.proj.html @@ -155,7 +155,11 @@

        Custom projection parameter usage

        the coordinate list to the target projection.

        Datum conversions are automatically handled by the PROJ library if +<<<<<<< HEAD +datum settings are specified on both the input and output +======= ++datum setings are specified on both the input and output +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) projections on the command line. The +towgs84 parameter can be used to define either 3 or 7 term datum transform coefficients, satisfying this requirement.

        If a datum is specified there is no need for the +ellps= or underlying diff --git a/scripts/r.in.aster/r.in.aster.html b/scripts/r.in.aster/r.in.aster.html index 531442527a2..24c7e493c48 100644 --- a/scripts/r.in.aster/r.in.aster.html +++ b/scripts/r.in.aster/r.in.aster.html @@ -1,13 +1,22 @@

        DESCRIPTION

        r.in.aster rectifies, georeferences, and imports Terra-ASTER imagery +<<<<<<< HEAD to current project using gdalwarp, hdf 4, and r.in.gdal, using projection parameters from g.proj. It can import Level 1A, Level 1B, their relative DEM products, and Level 1T. +======= +to current location using gdalwarp, hdf 4, and r.in.gdal, using projection parameters +from g.proj. It can import Level 1A, Level 1B, and relative DEM products. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))

        The program may be run interactively or non-interactively from the command line. In either case, the user must specify an input *.hdf file name, the type of processing used, the image band to import, and an output GRASS raster map name. +<<<<<<< HEAD

        The type parameter can take values of L1A, L1B, L1T or DEM. +======= +

        The type parameter can take values of L1A, L1B, or DEM. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))

        The band parameter can take values of 1, 2, 3n, 3b, 4-14

        NOTES

        @@ -17,6 +26,7 @@

        NOTES

        AUTHORS

        +<<<<<<< HEAD <<<<<<< HEAD Michael Barton, Arizona State University and Paul Kelly ======= @@ -25,3 +35,6 @@

        AUTHORS

        >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +Michael Barton, Arizona State University and Paul Kelly +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/scripts/r.in.wms/r.in.wms.html b/scripts/r.in.wms/r.in.wms.html index ff95f3851ea..486263c28da 100644 --- a/scripts/r.in.wms/r.in.wms.html +++ b/scripts/r.in.wms/r.in.wms.html @@ -16,7 +16,11 @@

        NOTES

        request (see examples)

        +<<<<<<< HEAD If possible, the EPSG code of the current project should be used with the +======= +If possible, the EPSG code of the current location should be used with the +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) srs option to avoid unnecessary reprojection.

        diff --git a/scripts/r.mask/r.mask.html b/scripts/r.mask/r.mask.html index 40a7d1a3059..f2d83cc73d2 100644 --- a/scripts/r.mask/r.mask.html +++ b/scripts/r.mask/r.mask.html @@ -7,10 +7,14 @@

        DESCRIPTION

        The MASK is applied when reading an existing GRASS raster map, <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) for example when used as an input map in a module. The MASK will block out certain areas of a raster map from analysis and/or display, by "hiding" them from sight of other GRASS modules. Data falling within the boundaries of the MASK can be modified and operated upon by other GRASS raster modules; data +<<<<<<< HEAD falling outside the MASK is treated as if it were NULL.

        By default, r.mask converts any non-NULL value in the input map, @@ -43,16 +47,18 @@

        DESCRIPTION

        certain areas of a raster map from analysis and/or display, by "hiding" them from sight of other GRASS modules. Data falling within the boundaries of the MASK can be modified and operated upon by other GRASS raster modules; data +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) falling outside the MASK is treated as if it were NULL.

        -By default, r.mask converts any non-NULL value in the input map, -including zero, to 1. All these areas will be part of the MASK (see the notes -for more details). To only convert specific values (or range of values) to 1 -and the rest to NULL, use the maskcats parameter. +By default, r.mask converts any non-NULL value in the input map, +including zero, to 1. All these areas will be part of the MASK (see the notes +for more details). To only convert specific values (or range of values) to 1 +and the rest to NULL, use the maskcats parameter.

        -Because the MASK created with r.mask is actually only a reclass map -named "MASK", it can be copied, renamed, removed, and used in analyses, just -like other GRASS raster map layers. +Because the MASK created with r.mask is actually only a reclass map +named "MASK", it can be copied, renamed, removed, and used in analyses, just +like other GRASS raster map layers.

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) The user should be aware that a MASK remains in place until a user renames it @@ -61,6 +67,7 @@

        DESCRIPTION

        MASK by setting the -r remove MASK flag (r.mask -r). <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD Alternatively, a mask can be removed using g.remove or by renaming it ======= Alternatively, a mask can be removed using g.remove or by renaming it @@ -68,10 +75,14 @@

        DESCRIPTION

        ======= Alternatively, a mask can be removed using g.remove or by renaming it >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +Alternatively, a mask can be removed using g.remove or by renaming it +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) to any other name with g.rename.

        NOTES

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD The above method for specifying a "mask" may seem counterintuitive. Areas @@ -88,14 +99,19 @@

        NOTES

        ======= The above method for specifying a "mask" may seem counterintuitive. Areas inside the MASK are not hidden; areas outside the MASK will be ignored until +======= +The above method for specifying a "mask" may seem counterintuitive. Areas +inside the MASK are not hidden; areas outside the MASK will be ignored until +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) the MASK file is removed.

        r.mask uses r.reclass to create a reclassification of an -existing raster map and name it MASK. A reclass map takes up less -space, but is affected by any changes to the underlying map from which it was +existing raster map and name it MASK. A reclass map takes up less +space, but is affected by any changes to the underlying map from which it was created. The user can select category values from the input raster to use in the MASK with the maskcats parameter; if r.mask is run from the command line, the category values listed in maskcats must be quoted +<<<<<<< HEAD (see example below). Note that the maskcats can only be used if the >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= @@ -111,10 +127,14 @@

        NOTES

        command line, the category values listed in maskcats must be quoted (see example below). Note that the maskcats can only be used if the >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +(see example below). Note that the maskcats can only be used if the +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) input map is an integer map.

        Different ways to create a MASK

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD The r.mask function creates a MASK with values 1 and NULL. But note @@ -132,18 +152,27 @@

        Different ways to create a MASK

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) The r.mask function creates a MASK with values 1 and NULL. But note that a MASK can also be created using other functions that have a raster as +======= +The r.mask function creates a MASK with values 1 and NULL. But note +that a MASK can also be created using other functions that have a raster as +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) output, by naming the output raster 'MASK'. Such layers could have other -values than 1 and NULL. The user should therefore be aware that grid cells +values than 1 and NULL. The user should therefore be aware that grid cells in the MASK map containing NULL or 0 will replace data with -NULL, while cells containing other values will allow data to pass through +NULL, while cells containing other values will allow data to pass through unaltered. This means that:

        +<<<<<<< HEAD If a binary map with [0,1] values is used as input in r.mask, all raster cells with 0 and 1 will be part of the MASK. This is because <<<<<<< HEAD >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +If a binary map with [0,1] values is used as input in r.mask, all +raster cells with 0 and 1 will be part of the MASK. This is because +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) r.mask converts all non-NULL cells to 1.

        @@ -151,6 +180,7 @@ 

        Different ways to create a MASK

        r.mask raster=map1
        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD On the other hand, if a binary map is used as an input in g.copy to create a MASK, @@ -160,6 +190,9 @@

        Different ways to create a MASK

        ======= On the other hand, if a binary map is used as an input in g.copy to create a MASK, >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +On the other hand, if a binary map is used as an input in g.copy to create a MASK, +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) only the raster cells with value 1 will be part of the MASK.
        @@ -172,6 +205,7 @@ 

        Handling of floating-point maps

        r.mask treats floating-point maps the same as integer maps (except that <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD floating maps are not allowed in combination with the maskcats parameter); all non-NULL values of the input raster map are converted to 1 and are thus part of the MASK. In the example below, all raster cells are part of @@ -185,6 +219,11 @@

        Handling of floating-point maps

        parameter); all non-NULL values of the input raster map are converted to 1 and are thus part of the MASK. In the example below, all raster cells are part of >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +floating maps are not allowed in combination with the maskcats +parameter); all non-NULL values of the input raster map are converted to 1 and +are thus part of the MASK. In the example below, all raster cells are part of +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) the MASK, i.e., nothing is blocked out from analysis and/or display.
        @@ -198,6 +237,7 @@ 

        Handling of floating-point maps

        the map's quantisation rules (this defaults to round-to-nearest, but can be <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD changed with r.quant). ======= changed with r.quant). @@ -205,12 +245,16 @@

        Handling of floating-point maps

        ======= changed with r.quant). >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +changed with r.quant). +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))
         r.mapcalc -s "map4 = rand(0.0,1.0)"
         g.copy raster=map4,MASK
         
        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD In the example above, raster cells with a rounded value of 1 are part of @@ -223,6 +267,10 @@

        Handling of floating-point maps

        In the example above, raster cells with a rounded value of 1 are part of the MASK, while raster cells with a rounded value of 0 are converted to NULL >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +In the example above, raster cells with a rounded value of 1 are part of +the MASK, while raster cells with a rounded value of 0 are converted to NULL +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) and consequently blocked out from analysis and/or display.

        EXAMPLES

        diff --git a/scripts/v.db.reconnect.all/v.db.reconnect.all.html b/scripts/v.db.reconnect.all/v.db.reconnect.all.html index 79a8bb33f80..b8bbd4a3fe1 100644 --- a/scripts/v.db.reconnect.all/v.db.reconnect.all.html +++ b/scripts/v.db.reconnect.all/v.db.reconnect.all.html @@ -1,5 +1,6 @@

        DESCRIPTION

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD @@ -8,6 +9,9 @@

        DESCRIPTION

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) v.db.reconnect.all changes database connection of all layers of all vector maps in the current mapset from the source (old_database) to the target (new_database) database. If @@ -28,6 +32,7 @@

        DESCRIPTION

        NOTES

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD @@ -36,6 +41,9 @@

        NOTES

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) The value of the old_database option needs to be the exact string which appears as the fourth field printed by v.db.connect -g. diff --git a/scripts/v.import/v.import.html b/scripts/v.import/v.import.html index e7fae88dde0..1e6a58294e9 100644 --- a/scripts/v.import/v.import.html +++ b/scripts/v.import/v.import.html @@ -78,9 +78,12 @@

        AUTHORS

        Markus Metz
        Improvements: Martin Landa, Anna Petrasova <<<<<<< HEAD +<<<<<<< HEAD ======= <<<<<<< HEAD >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/scripts/v.what.vect/v.what.vect.html b/scripts/v.what.vect/v.what.vect.html index 0a4a88cca49..e6f01998f30 100644 --- a/scripts/v.what.vect/v.what.vect.html +++ b/scripts/v.what.vect/v.what.vect.html @@ -20,7 +20,11 @@

        NOTES

        When transferring attributes from a point map into a polygon map, dmax has to be larger than zero, i.e., it will be determined by the distance between query points and polygon centroids. Importantly, distance +<<<<<<< HEAD is in meters for latitude-longitude projects. +======= +is in meters for latitude-longitude locations. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))

        In case that one or both input vector maps are 3D, features need to touch also in the 3rd dimension (z coordinate) in order to transfer attributes. diff --git a/temporal/t.copy/t.copy.html b/temporal/t.copy/t.copy.html index e4aca7111f9..74d0bebb91b 100644 --- a/temporal/t.copy/t.copy.html +++ b/temporal/t.copy/t.copy.html @@ -45,9 +45,12 @@

        AUTHOR

        --> <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD ======= >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/temporal/t.rast.accumulate/t.rast.accumulate.html b/temporal/t.rast.accumulate/t.rast.accumulate.html index 71a8446e6c8..47a8bb664b2 100644 --- a/temporal/t.rast.accumulate/t.rast.accumulate.html +++ b/temporal/t.rast.accumulate/t.rast.accumulate.html @@ -285,6 +285,7 @@

        REFERENCES

        • Jones, G.V., Duff, A.A., Hall, A., Myers, J.W., 2010. <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD Spatial Analysis of Climate in Winegrape Growing Regions in the ======= @@ -293,6 +294,9 @@

          REFERENCES

          ======= Spatial Analysis of Climate in Winegrape Growing Regions in the >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + Spatial Analysis of Climate in Winegrape Growing Regions in the +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Western United States. Am. J. Enol. Vitic. 61, 313-326.
        diff --git a/temporal/t.rast.algebra/t.rast.algebra.html b/temporal/t.rast.algebra/t.rast.algebra.html index aff38d1fde5..56608fa747b 100644 --- a/temporal/t.rast.algebra/t.rast.algebra.html +++ b/temporal/t.rast.algebra/t.rast.algebra.html @@ -5,12 +5,16 @@

        DESCRIPTION

        <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD The module expects an expression as input parameter in the ======= ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) The module expects an expression as input parameter in the >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +The module expects an expression as input parameter in the +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) following form:

        "result = expression" @@ -457,8 +461,12 @@

        Temporal neighbourhood modifier

        The neighbourhood modifier of r.mapcalc is extended for the temporal raster algebra with the temporal dimension. The format is strds[t,r,c], where t is the temporal offset, r is the row offset and c is the column +<<<<<<< HEAD offset. A single neighborhood modifier is interpreted as temporal offset [t], while two neighborhood modifiers are interpreted as row and column offsets [r,c]. +======= +offset. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))
         strds[2]
        diff --git a/temporal/t.rast.list/testsuite/test_t_rast_list.sh b/temporal/t.rast.list/testsuite/test_t_rast_list.sh
        index 3313b7713e5..a747551ab2c 100755
        --- a/temporal/t.rast.list/testsuite/test_t_rast_list.sh
        +++ b/temporal/t.rast.list/testsuite/test_t_rast_list.sh
        @@ -17,6 +17,7 @@ r.mapcalc expr="prec_4 = rand(0, 510)" -s
         r.mapcalc expr="prec_5 = rand(0, 300)" -s
         r.mapcalc expr="prec_6 = rand(0, 650)" -s
         
        +<<<<<<< HEAD
         <<<<<<< HEAD
         <<<<<<< HEAD
         n1=`g.tempfile pid=1 -d`
        @@ -26,6 +27,9 @@ n1=`g.tempfile pid=1 -d`
         =======
         n1=`g.tempfile pid=1 -d` 
         >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704))
        +=======
        +n1=`g.tempfile pid=1 -d`
        +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))
         n2=`g.tempfile pid=2 -d`
         n3=`g.tempfile pid=3 -d`
         n4=`g.tempfile pid=4 -d`
        diff --git a/temporal/t.rast.series/t.rast.series.html b/temporal/t.rast.series/t.rast.series.html
        index 80a1c87cad0..57a3693bff3 100644
        --- a/temporal/t.rast.series/t.rast.series.html
        +++ b/temporal/t.rast.series/t.rast.series.html
        @@ -11,18 +11,18 @@ 

        DESCRIPTION

        t.rast.series is a simple wrapper for the raster module r.series. It supports a subset of the aggregation methods of r.series. - +

        NOTES

        -To avoid problems with too many open files, by default, the maximum -number of open files is set to 1000. If the number of input raster -files exceeds this number, the -z flag will be invoked. Because this -will slow down processing, the user can set a higher limit with the -file_limit parameter. Note that file_limit limit should not exceed the -user-specific limit on open files set by your operating system. See the -Wiki -for more information. +To avoid problems with too many open files, by default, the maximum +number of open files is set to 1000. If the number of input raster +files exceeds this number, the -z flag will be invoked. Because this +will slow down processing, the user can set a higher limit with the +file_limit parameter. Note that file_limit limit should not exceed the +user-specific limit on open files set by your operating system. See the +Wiki +for more information.

        Performance

        To enable parallel processing, the user can specify the number of threads to be diff --git a/temporal/t.register/test.t.register.raster.file.sh b/temporal/t.register/test.t.register.raster.file.sh new file mode 100755 index 00000000000..ce23b19f1fe --- /dev/null +++ b/temporal/t.register/test.t.register.raster.file.sh @@ -0,0 +1,83 @@ +#!/bin/sh +# This is a test to register and unregister raster maps in +# space time raster input. +# The raster maps will be registered in different space time raster +# inputs + +# We need to set a specific region in the +# @preprocess step of this test. We generate +# raster with r.mapcalc and create two space time raster inputs +# with absolute time +# The region setting should work for UTM and LL test locations +g.region s=0 n=80 w=0 e=120 b=0 t=50 res=10 res3=10 -p3 + +# Generate data +r.mapcalc --o expr="prec_1 = rand(0, 550)" -s +r.mapcalc --o expr="prec_2 = rand(0, 450)" -s +r.mapcalc --o expr="prec_3 = rand(0, 320)" -s +r.mapcalc --o expr="prec_4 = rand(0, 510)" -s +r.mapcalc --o expr="prec_5 = rand(0, 300)" -s +r.mapcalc --o expr="prec_6 = rand(0, 650)" -s + +n1=`g.tempfile pid=1 -d` # Only map names +n2=`g.tempfile pid=2 -d` # Map names and start time +n3=`g.tempfile pid=3 -d` # Map names start time and increment + +cat > "${n1}" << EOF +prec_1 +prec_2 +prec_3 +prec_4 +prec_5 +prec_6 +EOF +cat "${n1}" + +cat > "${n2}" << EOF +prec_1|2001-01-01 +prec_2|2001-02-01 +prec_3|2001-03-01 +prec_4|2001-04-01 +prec_5|2001-05-01 +prec_6|2001-06-01 +EOF +cat "${n2}" + +cat > "${n3}" << EOF +prec_1|2001-01-01|2001-04-01 +prec_2|2001-04-01|2001-07-01 +prec_3|2001-07-01|2001-10-01 +prec_4|2001-10-01|2002-01-01 +prec_5|2002-01-01|2002-04-01 +prec_6|2002-04-01|2002-07-01 +EOF +cat "${n3}" + +# The first @test +# We create the space time raster inputs and register the raster maps with absolute time interval +t.create --o type=strds temporaltype=absolute output=precip_abs8 title="A test with input files" descr="A test with input files" + +# Test with input files +# File 1 +t.register --o -i input=precip_abs8 file="${n1}" start="2001-01-01" increment="1 months" +t.info type=strds input=precip_abs8 +t.rast.list input=precip_abs8 +# File 1 +t.register --o input=precip_abs8 file="${n1}" start="2001-01-01" +t.info type=strds input=precip_abs8 +t.rast.list input=precip_abs8 +# File 2 +t.register --o input=precip_abs8 file="${n2}" +t.info type=strds input=precip_abs8 +t.rast.list input=precip_abs8 +# File 2 +t.register --o input=precip_abs8 file="${n2}" increment="1 months" +t.info type=strds input=precip_abs8 +t.rast.list input=precip_abs8 +# File 3 +t.register --o -i input=precip_abs8 file="${n3}" +t.info type=strds input=precip_abs8 +t.rast.list input=precip_abs8 + +t.remove --v type=strds input=precip_abs8 +t.unregister --v type=raster file="${n1}" diff --git a/temporal/t.rename/test.t.rename.sh b/temporal/t.rename/test.t.rename.sh new file mode 100755 index 00000000000..4bce9725255 --- /dev/null +++ b/temporal/t.rename/test.t.rename.sh @@ -0,0 +1,52 @@ +#!/bin/sh +# Tests the rename module of space time datasets + +# We need to set a specific region in the +# @preprocess step of this test. +# The region setting should work for UTM and LL test locations +g.region s=0 n=80 w=0 e=120 b=0 t=50 res=10 res3=10 -p3 + +# Generate data +r.mapcalc --o expr="prec_1 = rand(0, 550)" -s +r.mapcalc --o expr="prec_2 = rand(0, 450)" -s + +# We need to create three space time dataset +t.create --v --o type=strds temporaltype=absolute output=precip_abs1 \ + title="Test" descr="This is the 1 test strds" semantictype=sum +t.register -i --o input=precip_abs1 maps=prec_1,prec_2 \ + start="2001-01-01" increment="1 seconds" + +t.create --v --o type=strds temporaltype=absolute output=precip_abs2 \ + title="Test" descr="This is the 2 test strds" semantictype=sum +t.register --o input=precip_abs2 maps=prec_1,prec_2 + +t.create --v --o type=strds temporaltype=absolute output=precip_abs3 \ + title="Test" descr="This is the 3 test strds" semantictype=sum +t.register --o input=precip_abs3 maps=prec_1,prec_2 + + +t.info precip_abs1 +t.info precip_abs2 +t.info precip_abs3 + +# @test Rename the space time raster dataset by overwritung an old one +t.rename --o type=strds input=precip_abs1 output=precip_abs2 +t.info precip_abs2 + +t.info type=raster input=prec_1 +t.info type=raster input=prec_2 + +t.rename --o type=strds input=precip_abs2 output=precip_abs4 +t.info precip_abs4 + +t.info type=raster input=prec_1 +t.info type=raster input=prec_2 + +# Error checking, new dataset has the wrong mapset +t.rename type=strds input=precip_abs4 output=precip_abs3@BLABLA +# Error checking, no overwrite flag set +t.rename type=strds input=precip_abs4 output=precip_abs3 + +t.remove --v type=strds input=precip_abs3,precip_abs4 +t.unregister type=raster maps=prec_1,prec_2 +g.remove -f type=raster name=prec_1,prec_2 diff --git a/temporal/t.shift/t.shift.html b/temporal/t.shift/t.shift.html index 5be13917118..31515c12a4e 100644 --- a/temporal/t.shift/t.shift.html +++ b/temporal/t.shift/t.shift.html @@ -15,6 +15,9 @@

        NOTES

        <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Be careful when shifting space time datasets with absolute time. The temporal granularity may change if you shift a space time dataset with a unit that is different from the space time dataset granularity. Be @@ -22,6 +25,7 @@

        NOTES

        days per month. Shifting the date 20012-03-31 with a granularity of one month will result in 2012-04-31 which is incorrect. In this case an error will raise and the shifting will not performed for the whole +<<<<<<< HEAD ======= ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) @@ -33,6 +37,8 @@

        NOTES

        month will result in 2012-04-31 which is incorrect. In this case an error will raise and the shifting will not performed for the whole >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) dataset.

        You can use the extraction module to shift only a subset of maps from a diff --git a/utils/grass_indent.sh b/utils/grass_indent.sh index 34d42a11898..aa4ee9f16ba 100755 --- a/utils/grass_indent.sh +++ b/utils/grass_indent.sh @@ -15,7 +15,7 @@ # TODO: replace short flags by long ones to improve readability -case "$(uname)" in +case "$(uname)" in Darwin | *BSD*) INDENT=$(which gindent) ;; diff --git a/utils/release.yml b/utils/release.yml index 2dc83ad1c16..9d6164fdde2 100644 --- a/utils/release.yml +++ b/utils/release.yml @@ -128,6 +128,7 @@ notes: ======= - title: Continuous Integration, Tests, Code Quality, and Checks <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD regexp: '(CI|ci|CI\(deps\)|ci\(deps\)|[Tt]ests|[Cc]hecks|pytest): ' >>>>>>> 12b43eb397 (wxpyimgview: explicit conversion to int (#2704)) @@ -146,6 +147,9 @@ notes: ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) regexp: '(CI|ci|[Tt]ests|[Cc]hecks|pytest): ' +======= + regexp: '(CI|ci|CI\(deps\)|ci\(deps\)|[Tt]ests|[Cc]hecks|pytest): ' +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) - title: Contributing and Management regexp: '(contributing|CONTRIBUTING.md|contributors.csv): ' diff --git a/vector/v.buffer/main.c b/vector/v.buffer/main.c index efa3e0380b4..96c48054178 100644 --- a/vector/v.buffer/main.c +++ b/vector/v.buffer/main.c @@ -352,6 +352,7 @@ int main(int argc, char *argv[]) if (bufcol_opt->answer && field == -1) <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD G_fatal_error(_("The column option requires a valid layer.")); ======= @@ -360,6 +361,9 @@ int main(int argc, char *argv[]) ======= G_fatal_error(_("The bufcol option requires a valid layer.")); >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + G_fatal_error(_("The column option requires a valid layer.")); +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) tolerance = 0.01; if (tol_opt->answer) { diff --git a/vector/v.build.polylines/v.build.polylines.html b/vector/v.build.polylines/v.build.polylines.html index cae0dc3e9aa..31c88699217 100644 --- a/vector/v.build.polylines/v.build.polylines.html +++ b/vector/v.build.polylines/v.build.polylines.html @@ -80,6 +80,7 @@

        SEE ALSO

        AUTHORS

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD Mark Lake, Institute of Archaeology, University College London.
        @@ -88,6 +89,9 @@

        AUTHORS

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) Mark Lake, Institute of Archaeology, University College London.
        >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +Mark Lake, Institute of Archaeology, University College London.
        +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Major rewrite by Radim Blazek, October 2002
        Category mode added by Martin Landa, FBK-irst, Trento, Italy, October 2007
        Support for categories, attributes, and different line types by Markus Metz diff --git a/vector/v.clean/v.clean.html b/vector/v.clean/v.clean.html index 6da10283703..111ec385559 100644 --- a/vector/v.clean/v.clean.html +++ b/vector/v.clean/v.clean.html @@ -49,7 +49,11 @@

        Remove dangles or change boundary dangles to type line

        is deleted.

        Threshold has to be given as maximum line/boundary length in map units; +<<<<<<< HEAD for latitude-longitude projects in degrees. Dangles shorter than +======= +for latitude-longitude locations in degree. Dangles shorter than +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) thresh are removed sequentially. All dangles will be removed if thresh < 0.

        @@ -107,7 +111,11 @@

        Snap lines to vertex in threshold

        can severely damage area topology, beyond repair.

        Threshold gives maximum distance to another vertex in map units, +<<<<<<< HEAD for latitude-longitude projects in degrees. +======= +for latitude-longitude locations in degree. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))

        Snapped boundaries may need to be cleaned with break,rmdupl,rmsa. If the -c flag is used with v.clean tool=snap, the @@ -161,7 +169,11 @@

        Remove small areas

        area is merged with a larger area.

        Threshold must always be in square meters, also for latitude-longitude +<<<<<<< HEAD projects or projects with units other than meters. +======= +locations or locations with units other than meters. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))

        Remove all lines or boundaries of zero length

        tool=rmline diff --git a/vector/v.delaunay/v.delaunay.html b/vector/v.delaunay/v.delaunay.html index 259c00e8016..fbad9c1ae7d 100644 --- a/vector/v.delaunay/v.delaunay.html +++ b/vector/v.delaunay/v.delaunay.html @@ -18,6 +18,7 @@

        EXAMPLE

        REFERENCES

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD Leonid Guibas and Jorge Stolfi, (1985). Primitives for the @@ -26,6 +27,9 @@

        REFERENCES

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) Leonid Guibas and Jorge Stolfi, (1985). Primitives for the >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +Leonid Guibas and Jorge Stolfi, (1985). Primitives for the +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Manipulation of General Subdivisions and the Computation of Voronoi Diagrams, ACM Transactions on Graphics, Vol 4, No. 2, April 1985, Pages 74-123 diff --git a/vector/v.generalize/v.generalize.html b/vector/v.generalize/v.generalize.html index c157f2db5e0..bc3ba9bc7f4 100644 --- a/vector/v.generalize/v.generalize.html +++ b/vector/v.generalize/v.generalize.html @@ -17,6 +17,7 @@

        DESCRIPTION

        NOTES

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD (Line) simplification is a process of reducing the complexity of vector @@ -29,6 +30,11 @@

        NOTES

        features. The module transforms a line into another line consisting of fewer vertices, that still approximate the original line. Most of the >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +(Line) simplification is a process of reducing the complexity of vector +features. The module transforms a line into another line consisting of +fewer vertices, that still approximate the original line. Most of the +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) algorithms described below select a subset of points on the original line.

        (Line) smoothing is a "reverse" process which takes as input a line and @@ -286,7 +292,11 @@

        NETWORK GENERALIZATION

        All three parameters above can be presented at the same time. In that case, the algorithm selects only the lines which meet each criterion. +<<<<<<< HEAD

        Also, the outputted network may not be connected if the value of +======= +

        Also, the outputed network may not be connected if the value of +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) betweeness_thresh is too large.

        EXAMPLES

        diff --git a/vector/v.in.ascii/v.in.ascii.html b/vector/v.in.ascii/v.in.ascii.html index 34fcdfc0d01..10dc059601c 100644 --- a/vector/v.in.ascii/v.in.ascii.html +++ b/vector/v.in.ascii/v.in.ascii.html @@ -20,6 +20,7 @@

        DESCRIPTION

        NOTES

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD @@ -28,6 +29,9 @@

        NOTES

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) The input is read from the file specified by the input option or from standard input. diff --git a/vector/v.in.lidar/v.in.lidar.html b/vector/v.in.lidar/v.in.lidar.html index 5deb9322bb4..7ba7b2aa433 100644 --- a/vector/v.in.lidar/v.in.lidar.html +++ b/vector/v.in.lidar/v.in.lidar.html @@ -92,15 +92,21 @@

        Location Creation

        v.in.lidar attempts to preserve projection information when importing datasets if the source format includes projection information, and if the LAS driver supports it. If the projection of the source dataset does -not match the projection of the current location v.in.lidar will -report an error message ("Projection of dataset does not appear to +not match the projection of the current location v.in.lidar will +report an error message ("Projection of dataset does not appear to match current location") and then report the PROJ_INFO parameters of >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) the source dataset. +<<<<<<< HEAD

        If the user wishes to ignore the difference between the coordinate system of the source data and the current project, they may pass the -o flag to override the CRS check. +======= +

        If the user wishes to ignore the difference between the apparent coordinate +system of the source data and the current location, they may pass the +-o flag to override the projection check. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))

        If the user wishes to import the data with the full CRS definition, it is possible to have v.in.lidar automatically create a new project based @@ -112,6 +118,7 @@

        Location Creation

        NOTES

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD The typical file extensions for the LAS format are .las and .laz (compressed). @@ -124,6 +131,11 @@

        NOTES

        The typical file extensions for the LAS format are .las and .laz (compressed). The compressed LAS (.laz) format can be imported only if libLAS has been compiled with laszip support. It is also recommended to compile libLAS with GDAL, +======= +The typical file extensions for the LAS format are .las and .laz (compressed). +The compressed LAS (.laz) format can be imported only if libLAS has been compiled +with laszip support. It is also recommended to compile libLAS with GDAL, +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) needed to test for matching projections. >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) diff --git a/vector/v.in.ogr/testsuite/data/precip_30ynormals_3d.prj b/vector/v.in.ogr/testsuite/data/precip_30ynormals_3d.prj index 9c34fd8a91a..4f174148127 100644 --- a/vector/v.in.ogr/testsuite/data/precip_30ynormals_3d.prj +++ b/vector/v.in.ogr/testsuite/data/precip_30ynormals_3d.prj @@ -1,5 +1,6 @@ <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD PROJCS["NAD_1983_HARN_StatePlane_North_Carolina_FIPS_3200",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609601.22],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",36.1666666666667],PARAMETER["Standard_Parallel_2",34.3333333333333],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Meter",1.0]] ======= PROJCS["NAD_1983_HARN_StatePlane_North_Carolina_FIPS_3200",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609601.22],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",36.1666666666667],PARAMETER["Standard_Parallel_2",34.3333333333333],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Meter",1.0]] @@ -7,3 +8,6 @@ PROJCS["NAD_1983_HARN_StatePlane_North_Carolina_FIPS_3200",GEOGCS["GCS_North_Ame ======= PROJCS["NAD_1983_HARN_StatePlane_North_Carolina_FIPS_3200",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609601.22],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",36.1666666666667],PARAMETER["Standard_Parallel_2",34.3333333333333],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Meter",1.0]] >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +PROJCS["NAD_1983_HARN_StatePlane_North_Carolina_FIPS_3200",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609601.22],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",36.1666666666667],PARAMETER["Standard_Parallel_2",34.3333333333333],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Meter",1.0]] +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/vector/v.in.region/v.in.region.html b/vector/v.in.region/v.in.region.html index 887e1adebec..8fb47dc8e60 100644 --- a/vector/v.in.region/v.in.region.html +++ b/vector/v.in.region/v.in.region.html @@ -11,7 +11,11 @@

        DESCRIPTION

        EXAMPLE

        +<<<<<<< HEAD The example is based on the North Carolina sample data. +======= +The example is based on the North Carolina sample data location. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) To create a bounding box vector map based on a raster map, the computational region is first set to the raster map. Then a vector bounding box is created based on the actual computational diff --git a/vector/v.kernel/v.kernel.html b/vector/v.kernel/v.kernel.html index fd959465820..785139886d5 100644 --- a/vector/v.kernel/v.kernel.html +++ b/vector/v.kernel/v.kernel.html @@ -44,6 +44,7 @@

        EXAMPLES

        KNOWN ISSUES

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD The module only considers the presence of points, but not @@ -52,6 +53,9 @@

        KNOWN ISSUES

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) The module only considers the presence of points, but not >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +The module only considers the presence of points, but not +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) (yet) any attribute values.

        REFERENCES

        diff --git a/vector/v.label.sa/annealing.c b/vector/v.label.sa/annealing.c index a40c30496b7..62eb0744004 100644 --- a/vector/v.label.sa/annealing.c +++ b/vector/v.label.sa/annealing.c @@ -153,6 +153,7 @@ void simulate_annealing(label_t *labels, int n_labels, struct params *p) } /* decrease immediately */ <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (consec_successes > (unsigned int)(5 * n_labels)) { ======= @@ -161,6 +162,9 @@ void simulate_annealing(label_t *labels, int n_labels, struct params *p) ======= if (consec_successes > (5 * n_labels)) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (consec_successes > (unsigned int)(5 * n_labels)) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) consec_successes = 0; break; } diff --git a/vector/v.lidar.correction/v.lidar.correction.html b/vector/v.lidar.correction/v.lidar.correction.html index d70282bad49..c2c10120408 100644 --- a/vector/v.lidar.correction/v.lidar.correction.html +++ b/vector/v.lidar.correction/v.lidar.correction.html @@ -66,6 +66,7 @@

        Second correction procedure

        REFERENCES

        +<<<<<<< HEAD <<<<<<< HEAD Antolin, R. et al., 2006. Digital terrain models determination by LiDAR technology: Po basin experimentation. Bolletino di Geodesia e Scienze @@ -90,36 +91,49 @@

        REFERENCES

        ======= Antolin, R. et al., 2006. Digital terrain models determination by LiDAR technology: Po basin experimentation. Bolletino di Geodesia e Scienze +======= +Antolin, R. et al., 2006. Digital terrain models determination by LiDAR +technology: Po basin experimentation. Bolletino di Geodesia e Scienze +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Affini, anno LXV, n. 2, pp. 69-89.

        -Brovelli M. A., Cannata M., Longoni U.M., 2004. LIDAR Data Filtering and -DTM Interpolation Within GRASS, Transactions in GIS, April 2004, vol. 8, +Brovelli M. A., Cannata M., Longoni U.M., 2004. LIDAR Data Filtering and +DTM Interpolation Within GRASS, Transactions in GIS, April 2004, vol. 8, iss. 2, pp. 155-174(20), Blackwell Publishing Ltd.

        -Brovelli M. A., Cannata M., 2004. Digital Terrain model reconstruction in -urban areas from airborne laser scanning data: the method and an example +Brovelli M. A., Cannata M., 2004. Digital Terrain model reconstruction in +urban areas from airborne laser scanning data: the method and an example for Pavia (Northern Italy). Computers and Geosciences 30 (2004) pp.325-331

        -Brovelli M. A. and Longoni U.M., 2003. Software per il filtraggio di dati +Brovelli M. A. and Longoni U.M., 2003. Software per il filtraggio di dati LIDAR, Rivista dell'Agenzia del Territorio, n. 3-2003, pp. 11-22 (ISSN 1593-2192).

        +<<<<<<< HEAD Brovelli M. A., Cannata M. and Longoni U.M., 2002. DTM LIDAR in area urbana, >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +Brovelli M. A., Cannata M. and Longoni U.M., 2002. DTM LIDAR in area urbana, +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Bollettino SIFET N.2, pp. 7-26.

        Performances of the filter can be seen in the <<<<<<< HEAD +<<<<<<< HEAD ISPRS WG III/3 Comparison of Filters report by Sithole, G. and Vosselman, G., 2003. ======= ISPRS WG III/3 Comparison of Filters report by Sithole, G. and Vosselman, G., 2003. >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +ISPRS WG III/3 Comparison of Filters +report by Sithole, G. and Vosselman, G., 2003. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))

        SEE ALSO

        diff --git a/vector/v.lidar.growing/v.lidar.growing.html b/vector/v.lidar.growing/v.lidar.growing.html index 5265b6a7af7..f22a9081982 100644 --- a/vector/v.lidar.growing/v.lidar.growing.html +++ b/vector/v.lidar.growing/v.lidar.growing.html @@ -49,6 +49,7 @@

        Basic region growing procedure

        REFERENCES

        +<<<<<<< HEAD <<<<<<< HEAD Antolin, R. et al., 2006. Digital terrain models determination by LiDAR technology: Po basin experimentation. Bolletino di Geodesia e Scienze @@ -73,28 +74,36 @@

        REFERENCES

        ======= Antolin, R. et al., 2006. Digital terrain models determination by LiDAR technology: Po basin experimentation. Bolletino di Geodesia e Scienze +======= +Antolin, R. et al., 2006. Digital terrain models determination by LiDAR +technology: Po basin experimentation. Bolletino di Geodesia e Scienze +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Affini, anno LXV, n. 2, pp. 69-89.

        -Brovelli M. A., Cannata M., Longoni U.M., 2004. LIDAR Data Filtering and -DTM Interpolation Within GRASS, Transactions in GIS, April 2004, vol. 8, +Brovelli M. A., Cannata M., Longoni U.M., 2004. LIDAR Data Filtering and +DTM Interpolation Within GRASS, Transactions in GIS, April 2004, vol. 8, iss. 2, pp. 155-174(20), Blackwell Publishing Ltd.

        -Brovelli M. A., Cannata M., 2004. Digital Terrain model reconstruction in -urban areas from airborne laser scanning data: the method and an example +Brovelli M. A., Cannata M., 2004. Digital Terrain model reconstruction in +urban areas from airborne laser scanning data: the method and an example for Pavia (Northern Italy). Computers and Geosciences 30 (2004) pp.325-331

        -Brovelli M. A. and Longoni U.M., 2003. Software per il filtraggio di dati +Brovelli M. A. and Longoni U.M., 2003. Software per il filtraggio di dati LIDAR, Rivista dell?Agenzia del Territorio, n. 3-2003, pp. 11-22 (ISSN 1593-2192).

        -Brovelli M. A., Cannata M. and Longoni U.M., 2002. DTM LIDAR in area urbana, +Brovelli M. A., Cannata M. and Longoni U.M., 2002. DTM LIDAR in area urbana, Bollettino SIFET N.2, pp. 7-26.

        Performances of the filter can be seen in the +<<<<<<< HEAD ISPRS WG III/3 Comparison of Filters <<<<<<< HEAD >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +ISPRS WG III/3 Comparison of Filters +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) report by Sithole, G. and Vosselman, G., 2003.

        SEE ALSO

        diff --git a/vector/v.mkgrid/v.mkgrid.html b/vector/v.mkgrid/v.mkgrid.html index 7df6fc505b8..a58d4a836e5 100644 --- a/vector/v.mkgrid/v.mkgrid.html +++ b/vector/v.mkgrid/v.mkgrid.html @@ -191,6 +191,7 @@

        AUTHORS

        <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD Update for new vectors Radim Blazek 10/2004 ======= Update for new vectors Radim Blazek 10/2004 @@ -198,3 +199,6 @@

        AUTHORS

        ======= Update for new vectors Radim Blazek 10/2004 >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +Update for new vectors Radim Blazek 10/2004 +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/vector/v.net.bridge/v.net.bridge.html b/vector/v.net.bridge/v.net.bridge.html index c3c3e5efe2d..9a2e6211a94 100644 --- a/vector/v.net.bridge/v.net.bridge.html +++ b/vector/v.net.bridge/v.net.bridge.html @@ -4,6 +4,7 @@

        DESCRIPTION

        NOTES

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD Bridge in a network is an edge/line whose removal would disconnect @@ -16,6 +17,11 @@

        NOTES

        the (sub-)network. A node is an articulation point if its removal would disconnect the (sub-)network. For more information and formal >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +Bridge in a network is an edge/line whose removal would disconnect +the (sub-)network. A node is an articulation point if its removal +would disconnect the (sub-)network. For more information and formal +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) definitions check the wikipedia entries: bridge and articulation diff --git a/vector/v.net.centrality/v.net.centrality.html b/vector/v.net.centrality/v.net.centrality.html index 6e9ad644b8e..ae3f22713ed 100644 --- a/vector/v.net.centrality/v.net.centrality.html +++ b/vector/v.net.centrality/v.net.centrality.html @@ -27,6 +27,7 @@

        NOTES

        EXAMPLES

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD Compute closeness and betweenness centrality measures for each node @@ -37,6 +38,10 @@

        EXAMPLES

        Compute closeness and betweenness centrality measures for each node and produce a map containing not only points already present in the >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +Compute closeness and betweenness centrality measures for each node +and produce a map containing not only points already present in the +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) input map but a map with point on every node.
        diff --git a/vector/v.net.components/v.net.components.html b/vector/v.net.components/v.net.components.html
        index 4ba89b32d67..b1db0ecebf4 100644
        --- a/vector/v.net.components/v.net.components.html
        +++ b/vector/v.net.components/v.net.components.html
        @@ -7,10 +7,14 @@ 

        NOTES

        <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Two nodes, u and v are in the same strongly connected component if there are directed paths from u to v and from v to u. The nodes are in the same weakly connected component if, ignoring edge directions, there is a path +<<<<<<< HEAD ======= ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) @@ -19,6 +23,8 @@

        NOTES

        from v to u. The nodes are in the same weakly connected component if, ignoring edge directions, there is a path >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) between them.

        The type of components is specified by method parameter. diff --git a/vector/v.net.connectivity/v.net.connectivity.html b/vector/v.net.connectivity/v.net.connectivity.html index c139ce6c784..ecfff5d3018 100644 --- a/vector/v.net.connectivity/v.net.connectivity.html +++ b/vector/v.net.connectivity/v.net.connectivity.html @@ -18,6 +18,7 @@

        EXAMPLE

        The following command finds the minimum number of intersections separating <<<<<<< HEAD +<<<<<<< HEAD roads on the left bank from roads on the right bank. ======= roads on the left bank from roads on the right bank. @@ -25,6 +26,9 @@

        EXAMPLE

        >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +roads on the left bank from roads on the right bank. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))
         v.net.connectivity input=roads output=roads_conn set1_where="bank=left" \
        diff --git a/vector/v.net.distance/v.net.distance.html b/vector/v.net.distance/v.net.distance.html
        index c98f0e3498f..fb4bf08c8d7 100644
        --- a/vector/v.net.distance/v.net.distance.html
        +++ b/vector/v.net.distance/v.net.distance.html
        @@ -15,7 +15,11 @@ 

        NOTES

        feature, category of the nearest to feature and the distance between them respectively.

        +<<<<<<< HEAD Furthermore, the output map contains the shortest path between +======= +Furthemore, the output map contains the shortest path between +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) each cat, tcat pair. Each path consists of several lines. If a line is on the shortest path from a point then the category of this point is assigned to the line. Note that every line may contain diff --git a/vector/v.net.flow/v.net.flow.html b/vector/v.net.flow/v.net.flow.html index da1149b0693..8f5062c27b5 100644 --- a/vector/v.net.flow/v.net.flow.html +++ b/vector/v.net.flow/v.net.flow.html @@ -7,6 +7,9 @@

        NOTES

        <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) The two sets of nodes are called sources and sink and v.net.flow finds the maximum flow from the former to the latter ones. Edge capacities can be specified by arc_column @@ -23,6 +26,7 @@

        NOTES

        consists of two columns: cat and flow and stores the flow along each line. Negative flow means that "water" is flowing in the backward direction. Cut map contains the edges +<<<<<<< HEAD ======= ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) @@ -43,6 +47,8 @@

        NOTES

        the flow along each line. Negative flow means that "water" is flowing in the backward direction. Cut map contains the edges >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) in the minimum cut.
        A famous
        result diff --git a/vector/v.net.path/v.net.path.html b/vector/v.net.path/v.net.path.html index a28fbff6690..9dd44014624 100644 --- a/vector/v.net.path/v.net.path.html +++ b/vector/v.net.path/v.net.path.html @@ -84,6 +84,7 @@

        DESCRIPTION

        NOTES

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD Nodes and arcs can be closed using cost = -1. @@ -92,6 +93,9 @@

        NOTES

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) Nodes and arcs can be closed using cost = -1. >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +Nodes and arcs can be closed using cost = -1. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))

        If the cost columns arc_column, arc_backward_column and node_column are not specified, the length of network segments is measured and zero costs are assumed for nodes. diff --git a/vector/v.net.salesman/v.net.salesman.html b/vector/v.net.salesman/v.net.salesman.html index 646c16b88e5..951b49d1733 100644 --- a/vector/v.net.salesman/v.net.salesman.html +++ b/vector/v.net.salesman/v.net.salesman.html @@ -35,6 +35,7 @@

        DESCRIPTION

        NOTES

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD Arcs can be closed using cost = -1. @@ -43,6 +44,9 @@

        NOTES

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) Arcs can be closed using cost = -1. >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +Arcs can be closed using cost = -1. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Turns support: The costs of turns on visiting nodes are not taken in account.

        EXAMPLE

        @@ -171,6 +175,7 @@

        TURNS SUPPORT

        The turns support was implemnented as part of GRASS GIS turns cost project <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD at Czech Technical University in Prague, Czech Republic.
        ======= at Czech Technical University in Prague, Czech Republic.
        @@ -178,6 +183,9 @@

        TURNS SUPPORT

        ======= at Czech Technical University in Prague, Czech Republic.
        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +at Czech Technical University in Prague, Czech Republic.
        +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Eliska Kyzlikova, Stepan Turek, Lukas Bocan and Viera Bejdova participated in the project.

        diff --git a/vector/v.net.spanningtree/v.net.spanningtree.html b/vector/v.net.spanningtree/v.net.spanningtree.html index 0d601989d5e..50aaa72ae2b 100644 --- a/vector/v.net.spanningtree/v.net.spanningtree.html +++ b/vector/v.net.spanningtree/v.net.spanningtree.html @@ -7,6 +7,9 @@

        NOTES

        <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) A spanning tree is a minimum cost subnetwork connecting all nodes in an undirected network (same forward and backward costs). If a network is disconnected then the module computes the minimum spanning tree for @@ -16,6 +19,7 @@

        NOTES

        is, it contains no cycles and if a component has N nodes then the tree has N-1 edges connecting all nodes. Accol is used to specify the costs of the edges. The output consists of the edges in the +<<<<<<< HEAD ======= ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) @@ -29,6 +33,8 @@

        NOTES

        has N-1 edges connecting all nodes. Accol is used to specify the costs of the edges. The output consists of the edges in the >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) spanning tree.

        EXAMPLES

        diff --git a/vector/v.net.timetable/v.net.timetable.html b/vector/v.net.timetable/v.net.timetable.html index e990ca5d8f1..78ab7c7d689 100644 --- a/vector/v.net.timetable/v.net.timetable.html +++ b/vector/v.net.timetable/v.net.timetable.html @@ -105,7 +105,11 @@

        NOTES

        100|35|50
        Note that stop_time is an integer and so you can use any +<<<<<<< HEAD units and offset to specify arrival times.
        Also, walking +======= +units and offest to specify arrival times.
        Also, walking +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) connections between stops can be given by a table linked to walking layer of the input map. If this parameter is -1 then walking between stops is not allowed. The table must contain diff --git a/vector/v.net.visibility/v.net.visibility.html b/vector/v.net.visibility/v.net.visibility.html index 9141a88e215..683abeb9f38 100644 --- a/vector/v.net.visibility/v.net.visibility.html +++ b/vector/v.net.visibility/v.net.visibility.html @@ -70,6 +70,7 @@

        Example 1

        d.vect areas_7_11_25 color=red type=boundary
        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD

        Example 2

        @@ -79,6 +80,9 @@

        Example 2

        =======

        Example 2

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +

        Example 2

        +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) An example on how to use v.buffer along with the module: @@ -202,6 +206,7 @@

        Example 6

        KNOWN ISSUES

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD In some cases when 3 points or nodes are collinear, some wrong edges @@ -214,6 +219,11 @@

        KNOWN ISSUES

        are added. This happens only really rarly and shouldn't be a big problem. When two points have the exact same x coordinate and are >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +In some cases when 3 points or nodes are collinear, some wrong edges +are added. This happens only really rarly and shouldn't be a big +problem. When two points have the exact same x coordinate and are +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) visible, some wrong edges are added.

        SEE ALSO

        diff --git a/vector/v.net/v.net.html b/vector/v.net/v.net.html index f2d434f5b42..6c1e7a5cd9e 100644 --- a/vector/v.net/v.net.html +++ b/vector/v.net/v.net.html @@ -94,6 +94,7 @@

        DESCRIPTION

        Turntable name consists of output vector map name + "_turntable_" + "t" + "_" + turn_layer + "_" + "tuc" + "_" + turn_cat_layer + "_" + "a" + "_" + arc_layer e. g. roads_turntable_t_3_tuc_4_a_1 +<<<<<<< HEAD <<<<<<< HEAD

        These modules are able to work with the turntable: ======= @@ -102,6 +103,9 @@

        DESCRIPTION

        >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +

        These modules are able to work with the turntable: +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) v.net.alloc, @@ -132,6 +136,7 @@

        DESCRIPTION

        In addition to the modules listed above, the GRASS vector networking suite <<<<<<< HEAD +<<<<<<< HEAD includes numerous other modules for analysis of network costs and connectivity. These include: @@ -150,22 +155,29 @@

        DESCRIPTION

        ======= includes numerous other modules for analysis of network costs and +======= +includes numerous other modules for analysis of network costs and +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) connectivity. These include: -v.net.allpairs, -v.net.bridge, -v.net.centrality, -v.net.components, -v.net.distance, -v.net.flow, -v.net.spanningtree, -v.net.steiner, -v.net.timetable, +v.net.allpairs, +v.net.bridge, +v.net.centrality, +v.net.components, +v.net.distance, +v.net.flow, +v.net.spanningtree, +v.net.steiner, +v.net.timetable, v.net.visibility +<<<<<<< HEAD >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= + +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))

        NOTES

        For a vector map prepared for network analysis in GRASS, nodes are diff --git a/vector/v.overlay/v.overlay.html b/vector/v.overlay/v.overlay.html index 2ea3700499f..538682ce348 100644 --- a/vector/v.overlay/v.overlay.html +++ b/vector/v.overlay/v.overlay.html @@ -33,6 +33,7 @@

        DESCRIPTION

        NOTES

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD Currently only areas in ainput are supported for the operators @@ -41,6 +42,9 @@

        NOTES

        >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) Currently only areas in ainput are supported for the operators >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) +======= +Currently only areas in ainput are supported for the operators +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) or and xor! See also v.select. The operator defines what kind of operation will be done. Features are diff --git a/vector/v.proj/v.proj.html b/vector/v.proj/v.proj.html index 62d32bbd958..39620097804 100644 --- a/vector/v.proj/v.proj.html +++ b/vector/v.proj/v.proj.html @@ -33,7 +33,11 @@

        NOTES

        v.proj supports general datum transformations, making use of the PROJ co-ordinate system translation library. +<<<<<<< HEAD

        When projecting into a latlon project, east coordinates are wrapped +======= +

        When projecting into a latlon location, east coordinates are wrapped +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) by the proj4 library to fit into the range -180,180. This is in most cases appropriate, but can cause errors the input vector crosses the datum line at 180E/W. In this case wrapping of east coordinates to -180,180 needs diff --git a/vector/v.qcount/findquads.c b/vector/v.qcount/findquads.c index a6658215194..a06d3ffa0c7 100644 --- a/vector/v.qcount/findquads.c +++ b/vector/v.qcount/findquads.c @@ -56,6 +56,7 @@ COOR *find_quadrats(int n, double r, struct Cell_head window) } } <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (k == (unsigned int)n * n) G_warning("Having difficulties fitting that many circles with " @@ -72,6 +73,12 @@ COOR *find_quadrats(int n, double r, struct Cell_head window) >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (k == (unsigned int)n * n) + G_warning("Having difficulties fitting that many circles with " + "that radius"); + if (k == (unsigned int)2 * n * n) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) G_fatal_error("Maximum number of iterations exceeded\nTry " "smaller radius or smaller number of quads"); } diff --git a/vector/v.random/main.c b/vector/v.random/main.c index 73b6fee7fad..fe528f57016 100644 --- a/vector/v.random/main.c +++ b/vector/v.random/main.c @@ -375,6 +375,7 @@ int main(int argc, char *argv[]) count = 0; +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD for (i = 1; i <= (unsigned int)nareas; i++) { @@ -384,6 +385,9 @@ int main(int argc, char *argv[]) ======= for (i = 1; i <= nareas; i++) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + for (i = 1; i <= (unsigned int)nareas; i++) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) if (!Vect_get_area_centroid(&In, i)) continue; @@ -506,6 +510,7 @@ int main(int argc, char *argv[]) if (field > 0) { if (cat_list) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD for (i = 0; i < (unsigned int)Cats->n_cats; i++) { ======= @@ -514,6 +519,9 @@ int main(int argc, char *argv[]) ======= for (i = 0; i < Cats->n_cats; i++) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + for (i = 0; i < (unsigned int)Cats->n_cats; i++) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) if (Cats->field[i] == field && Vect_cat_in_cat_list(Cats->cat[i], cat_list)) { cat_area = Cats->cat[i]; diff --git a/vector/v.random/v.random.html b/vector/v.random/v.random.html index e998d2a50f1..65e3b717c51 100644 --- a/vector/v.random/v.random.html +++ b/vector/v.random/v.random.html @@ -275,6 +275,7 @@

        AUTHOR

        James Darrell McCauley <darrell@mccauley-usa.com>, <<<<<<< HEAD +<<<<<<< HEAD
        when he was at: =======
        when he was at: @@ -282,5 +283,8 @@

        AUTHOR

        >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +
        when he was at: +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) Agricultural Engineering Purdue University diff --git a/vector/v.rectify/v.rectify.html b/vector/v.rectify/v.rectify.html index 6bfb8e628bf..0fd129d3074 100644 --- a/vector/v.rectify/v.rectify.html +++ b/vector/v.rectify/v.rectify.html @@ -40,7 +40,11 @@

        DESCRIPTION

        If no group is given, the rectified vector will be written to the current mapset. If a group is given and a target has been set for this group with i.target, +<<<<<<< HEAD the rectified vector will be written to the target project and mapset. +======= +the rectified vector will be written to the target location and mapset. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))

        Coordinate transformation and RMSE

        The desired order of transformation (1, 2, or 3) is selected with the diff --git a/vector/v.select/v.select.html b/vector/v.select/v.select.html index b9bd4e0d0d8..56dd1df4cb2 100644 --- a/vector/v.select/v.select.html +++ b/vector/v.select/v.select.html @@ -283,6 +283,7 @@

        Extraction of areas overlapping with a line

        diff --git a/vector/v.surf.rst/main.c b/vector/v.surf.rst/main.c index ab21939256d..7325bae5a70 100644 --- a/vector/v.surf.rst/main.c +++ b/vector/v.surf.rst/main.c @@ -910,6 +910,7 @@ static FILE *create_temp_file(const char *name, char **tmpname) for (i = 0; i < n_rows; i++) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (fwrite(zero_array_cell, sizeof(FCELL), n_cols, fp) != (size_t)n_cols) { @@ -919,6 +920,10 @@ static FILE *create_temp_file(const char *name, char **tmpname) ======= if (fwrite(zero_array_cell, sizeof(FCELL), n_cols, fp) != n_cols) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (fwrite(zero_array_cell, sizeof(FCELL), n_cols, fp) != + (size_t)n_cols) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) clean(); G_fatal_error(_("Error writing temporary file <%s>"), *tmpname); } diff --git a/vector/v.univar/v.univar.html b/vector/v.univar/v.univar.html index 5a272877189..db16e838a18 100644 --- a/vector/v.univar/v.univar.html +++ b/vector/v.univar/v.univar.html @@ -174,6 +174,7 @@

        AUTHORS

        extended by:
        Hamish Bowman, University of Otago, New Zealand
        <<<<<<< HEAD +<<<<<<< HEAD Martin Landa ======= Martin Landa @@ -181,3 +182,6 @@

        AUTHORS

        >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +Martin Landa +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) diff --git a/vector/v.vol.rst/user1.c b/vector/v.vol.rst/user1.c index b9b6ab99dae..912b483b730 100644 --- a/vector/v.vol.rst/user1.c +++ b/vector/v.vol.rst/user1.c @@ -414,6 +414,7 @@ int OUTGR(void) ((off_t)(nsizr - 1 - i) * nsizc * sizeof(FCELL)), 0); read_val = fread(cell, sizeof(FCELL), nsizc, Tmp_fd_cell); <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (read_val != (size_t)nsizc) { ======= @@ -422,6 +423,9 @@ int OUTGR(void) ======= if (read_val != nsizc) { >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (read_val != (size_t)nsizc) { +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) clean(); G_fatal_error(_("Unable to read data from temp file")); } diff --git a/vector/v.vol.rst/v.vol.rst.html b/vector/v.vol.rst/v.vol.rst.html index e6d3afbbb64..d6ab1f43b8f 100644 --- a/vector/v.vol.rst/v.vol.rst.html +++ b/vector/v.vol.rst/v.vol.rst.html @@ -60,6 +60,7 @@

        DESCRIPTION

        must be larger than segmax and less than 700. This limit of 700 was selected to ensure the numerical stability and efficiency of the <<<<<<< HEAD +<<<<<<< HEAD algorithm. ======= algorithm. @@ -67,6 +68,9 @@

        DESCRIPTION

        >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +algorithm. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))

        SQL support

        @@ -166,6 +170,7 @@

        NOTES

        The user must run g.region before the program to set the <<<<<<< HEAD +<<<<<<< HEAD 3D region for interpolation. ======= 3D region for interpolation. @@ -173,6 +178,9 @@

        NOTES

        >>>>>>> 6cf60c76a4 (wxpyimgview: explicit conversion to int (#2704)) ======= >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= +3D region for interpolation. +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794))

        EXAMPLES

        diff --git a/vector/v.what.rast3/test_suite/random_points.txt b/vector/v.what.rast3/test_suite/random_points.txt new file mode 100644 index 00000000000..b40d4ba9d55 --- /dev/null +++ b/vector/v.what.rast3/test_suite/random_points.txt @@ -0,0 +1,40 @@ +ORGANIZATION: +DIGIT DATE: +DIGIT NAME: soeren +MAP NAME: +MAP DATE: Sun May 13 00:35:59 2012 +MAP SCALE: 1 +OTHER INFO: +ZONE: 0 +MAP THRESH: 0.000000 +VERTI: +P 1 1 + 15.98122828 27.60680488 39.15496119 + 1 1 +P 1 1 + 20.15599665 63.81531506 9.87756846 + 1 2 +P 1 1 + 66.47772443 53.77607164 13.88873554 + 1 3 +P 1 1 + 44.60300442 33.41779363 31.44354624 + 1 4 +P 1 1 + 63.52155272 35.93806371 47.61148626 + 1 5 +P 1 1 + 8.3804932 44.49982096 35.86484647 + 1 6 +P 1 1 + 85.83974446 42.48782134 0.81502858 + 1 7 +P 1 1 + 75.71132294 9.60621038 40.20883771 + 1 8 +P 1 1 + 84.33209107 28.0661076 6.48952234 + 1 9 +P 1 1 + 89.1191198 69.92471626 10.91284527 + 1 10 diff --git a/vector/vectorintro.html b/vector/vectorintro.html index a6a331d61a0..13dda3c5fae 100644 --- a/vector/vectorintro.html +++ b/vector/vectorintro.html @@ -12,6 +12,7 @@

        Vector maps in general

        Attribute management

        +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD The default database driver used by GRASS GIS 8 is SQLite. GRASS GIS @@ -21,6 +22,9 @@

        Attribute management

        ======= The default database driver used by GRASS GIS 8 is SQLite. GRASS GIS >>>>>>> 227cbcebbf (Programmer's manual: update GRASS GIS arch drawing (#1610)) +======= +The default database driver used by GRASS GIS 8 is SQLite. GRASS GIS +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) handles multiattribute vector data by default. The db.* set of commands provides basic SQL support for attribute management, while the v.db.* set of commands operates on vector maps. diff --git a/visualization/ximgview/main.c b/visualization/ximgview/main.c index c02df5cae47..192b8ba7b1d 100644 --- a/visualization/ximgview/main.c +++ b/visualization/ximgview/main.c @@ -239,6 +239,7 @@ static int read_bmp_header(const unsigned char *p) if (get_4(&p) != 0) return 0; <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD if (get_4(&p) != (unsigned int)i_width * i_height * 4) ======= @@ -247,6 +248,9 @@ static int read_bmp_header(const unsigned char *p) ======= if (get_4(&p) != i_width * i_height * 4) >>>>>>> 8422103f4c (wxpyimgview: explicit conversion to int (#2704)) +======= + if (get_4(&p) != (unsigned int)i_width * i_height * 4) +>>>>>>> 7f32ec0a8d (r.horizon manual - fix typo (#2794)) return 0; if (size != HEADER_SIZE + i_width * i_height * 4)