diff --git a/.dockerignore b/.dockerignore index d09a4d1166a..c8563e3e96d 100644 --- a/.dockerignore +++ b/.dockerignore @@ -3,8 +3,6 @@ docker !docker/alpine/grass_tests.sh .gitignore .github -.travis -.travis.yml # Do not copy files from previous compilations dist.* diff --git a/.github/labeler.yml b/.github/labeler.yml index 8a9a307d29f..42b7cd38e0f 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -84,9 +84,7 @@ CI: - changed-files: - any-glob-to-any-file: - .github/** - - .travis/** - binder/** - - .travis.yml - renovate.json - .pre-commit-config.yaml Windows: diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 435d0013de8..00000000000 --- a/.travis.yml +++ /dev/null @@ -1,45 +0,0 @@ ---- -# Author: Ivan Mincik, ivan.mincik@gmail.com (linux) -# Rainer M. Krug, Rainer@krugs.de (osx) - -os: linux -dist: jammy -language: c -cache: ccache - -# safelist -branches: - only: - - main - - releasebranch* - -jobs: - include: - - os: linux - compiler: gcc - env: CC=gcc CXX=g++ - - - os: linux - compiler: clang - env: CC=clang CXX=clang++ - -env: - global: - - CFLAGS="-Werror=implicit-function-declaration" - - CXXFLAGS="-std=c++17" - - GRASS_EXTRA_CFLAGS="-Werror -fPIC -Wfatal-errors" - - GRASS_EXTRA_CXXFLAGS="-Werror -fPIC -Wfatal-errors" - -before_install: - # Show available versions if ever pyenv global fails - - pyenv versions - - pyenv global 3.10 - # Show that the selected version is correctly set - - pyenv versions - - ./.travis/$TRAVIS_OS_NAME.before_install.sh - -install: - - ./.travis/$TRAVIS_OS_NAME.install.sh - -script: - - ./.travis/$TRAVIS_OS_NAME.script.sh diff --git a/.travis/linux.before_install.sh b/.travis/linux.before_install.sh deleted file mode 100755 index d01f54eff06..00000000000 --- a/.travis/linux.before_install.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash -# Author: Ivan Mincik, ivan.mincik@gmail.com - -set -e - -# build dependencies -sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable -y -sudo apt-get update -qq diff --git a/.travis/linux.install.sh b/.travis/linux.install.sh deleted file mode 100755 index ebf905dfc5d..00000000000 --- a/.travis/linux.install.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash -# Author: Ivan Mincik, ivan.mincik@gmail.com - -set -e - -sudo apt-get update -y - sudo apt-get install -y wget git gawk findutils - xargs -a <(awk '! /^ *(#|$)/' ".github/workflows/apt.txt") -r -- \ - sudo apt-get install -y --no-install-recommends --no-install-suggests diff --git a/.travis/linux.script.sh b/.travis/linux.script.sh deleted file mode 100755 index f2ab000dfc3..00000000000 --- a/.travis/linux.script.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env bash -# Author: Ivan Mincik, ivan.mincik@gmail.com - -set -e - -export CC="ccache $CC" -export CXX="ccache $CXX" -export MAKEFLAGS="-j $(nproc) --no-keep-going" - -echo "MAKEFLAGS is '$MAKEFLAGS'" - -./configure --host=x86_64-linux-gnu \ - --build=x86_64-linux-gnu \ - --enable-largefile \ - --enable-shared \ - --prefix=/usr/lib \ - --sharedstatedir=/var \ - --sysconfdir=/etc \ - --with-blas \ - --with-cairo \ - --with-cxx \ - --with-freetype \ - --with-freetype-includes=/usr/include/freetype2/ \ - --with-gdal \ - --with-geos \ - --with-lapack \ - --with-netcdf \ - --with-nls \ - --with-odbc \ - --with-pdal \ - --with-postgres \ - --with-postgres-includes=/usr/include/postgresql/ \ - --with-proj-share=/usr/share/proj \ - --with-readline \ - --with-sqlite \ - --with-zstd - -make CFLAGS="$CFLAGS $GRASS_EXTRA_CFLAGS" CXXFLAGS="$CXXFLAGS $GRASS_EXTRA_CXXFLAGS" diff --git a/Dockerfile b/Dockerfile index bd32f38acee..5da5f473938 100644 --- a/Dockerfile +++ b/Dockerfile @@ -295,13 +295,13 @@ RUN ./configure $GRASS_CONFIG \ mv module_items.xml /usr/local/grass85/gui/wxpython/xml/module_items.xml; # Build the GDAL-GRASS plugin -RUN git clone https://github.com/OSGeo/gdal-grass \ +# renovate: datasource=github-tags depName=OSGeo/gdal-grass +ARG GDAL_GRASS_VERSION=1.0.3 +RUN git clone --branch $GDAL_GRASS_VERSION --depth 1 https://github.com/OSGeo/gdal-grass.git \ && cd "gdal-grass" \ - && ./configure \ - --with-gdal=/usr/bin/gdal-config \ - --with-grass=/usr/local/grass85 \ - && make -j $NUMTHREADS \ - && make install -j $NUMTHREADS \ + && cmake -B build -DAUTOLOAD_DIR=/usr/lib/gdalplugins -DBUILD_TESTING=OFF \ + && cmake --build build \ + && cmake --install build \ && cd /src \ && rm -rf "gdal-grass" diff --git a/README.md b/README.md index ef39e640721..c148eb29fcd 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,5 @@ # GRASS GIS Repository -[![Build Status](https://api.travis-ci.com/OSGeo/grass.svg?branch=main)](https://travis-ci.com/OSGeo/grass) [![GCC C/C++ standards check](https://github.com/OSGeo/grass/workflows/GCC%20C/C++%20standards%20check/badge.svg)](https://github.com/OSGeo/grass/actions?query=workflow%3A%22GCC+C%2FC%2B%2B+standards+check%22) [![Python code quality check](https://github.com/OSGeo/grass/workflows/Python%20code%20quality%20check/badge.svg)](https://github.com/OSGeo/grass/actions?query=workflow%3A%22Python+code+quality+check%22) [![General linting](https://github.com/OSGeo/grass/workflows/General%20linting/badge.svg)](https://github.com/OSGeo/grass/actions?query=workflow%3A%22General+linting%22) diff --git a/display/d.geodesic/d.geodesic.md b/display/d.geodesic/d.geodesic.md index 80d78ae6461..36107bb92e7 100644 --- a/display/d.geodesic/d.geodesic.md +++ b/display/d.geodesic/d.geodesic.md @@ -32,8 +32,7 @@ d.geodesic coordinates=55:58W,33:18S,26:43E,60:37N \ line_color=yellow text_color=red units=kilometers ``` - +![Geodesic line (great circle line)](d_geodesic.png) *Geodesic line (great circle line)* ## NOTES diff --git a/display/d.grid/d.grid.md b/display/d.grid/d.grid.md index 2453b79cfa5..35064189a9d 100644 --- a/display/d.grid/d.grid.md +++ b/display/d.grid/d.grid.md @@ -39,8 +39,7 @@ or d.grid -g size=0.5 color=255:0:0 ``` - +![d.grid red grid example](d_grid_red_grid.png) *Figure: Showing a geographic grid in red line color* To draw a blue standard rectangular grid at a 500 (meter) spacing run @@ -50,8 +49,7 @@ the following: d.grid size=500 color=blue ``` - +![d.grid blue grid example](d_grid_blue_grid.png) *Figure: Showing a rectangular grid in blue line color* ## SEE ALSO diff --git a/display/d.histogram/d.histogram.md b/display/d.histogram/d.histogram.md index e5798b9437d..23a00503bd6 100644 --- a/display/d.histogram/d.histogram.md +++ b/display/d.histogram/d.histogram.md @@ -26,8 +26,7 @@ d.mon wx0 d.histogram map=elevation ``` - +![d.histogram bar graph example](d_histogram_bar.png) *Figure: Bar graph histogram for elevation map* Running the command below will generate the pie graph shown in the @@ -38,8 +37,7 @@ g.region raster=landuse96_28m -p d.histogram map=landuse96_28m style=pie ``` - +![d.histogram pie graph example](d_histogram_pie.png) *Figure: Pie graph histogram for landuse map* ## SEE ALSO diff --git a/display/d.legend/d.legend.md b/display/d.legend/d.legend.md index 773ffb9b88d..9b729739c89 100644 --- a/display/d.legend/d.legend.md +++ b/display/d.legend/d.legend.md @@ -111,8 +111,7 @@ d.rast elevation d.legend -d elevation ``` - +![Elevation map with legend](d_legend.png) Displaying the legend with custom labels and background: @@ -122,8 +121,7 @@ d.rast elevation d.legend raster=elevation -t label_step=20 label_values=108 title=Legend -b bgcolor=255:255:204 border_color=gray ``` - +![Elevation map with custom legend](d_legend_custom_labels_and_background.png) Displaying the legend with logarithmic scale: @@ -134,8 +132,7 @@ d.rast flowacc d.legend raster=flowacc -t -l label_step=1 ``` - +![Flow accumulation map with logarithmic legend](d_legend_logarithmic.png) ## SEE ALSO diff --git a/display/d.mon/d.mon.md b/display/d.mon/d.mon.md index b34c7b58d5d..a45771d5bc6 100644 --- a/display/d.mon/d.mon.md +++ b/display/d.mon/d.mon.md @@ -64,7 +64,7 @@ display](wxGUI.md#map-display-window)*, run d.mon start=wx0 ``` -Blank wx0 display +![Blank wx0 display](d_mon_wx0.png) *Figure: The initialization of display monitor wx0* All subsequently displayed data will be rendered on monitor `wx0`. @@ -74,8 +74,7 @@ g.region raster=elevation -p d.rast map=elevation ``` - +![Display wx0 with raster map](d_mon_wx0_raster.png) *Figure: The display wx0 showing an elevation raster map* ### CAIRO file renderer monitor diff --git a/display/d.rast.num/d.rast.num.md b/display/d.rast.num/d.rast.num.md index 68226128b82..50198bf2826 100644 --- a/display/d.rast.num/d.rast.num.md +++ b/display/d.rast.num/d.rast.num.md @@ -31,8 +31,7 @@ r.grow.distance input=streams_derived distance=dist_from_streams d.rast.num dist_from_streams -a ``` - +![Euclidean distance from the streams network in meters](d_rast_num_zoom.png) *Euclidean distance from the streams network in meters (detail, numbers shown with d.rast.num)* diff --git a/display/d.rast/d.rast.md b/display/d.rast/d.rast.md index 81942f5083b..2cb3b9dcf87 100644 --- a/display/d.rast/d.rast.md +++ b/display/d.rast/d.rast.md @@ -11,8 +11,7 @@ Display raster map "elevation": d.rast map=elevation ``` - +![d.rast elevation](d_rast_elevation.png) *Figure: elevation raster map visualization* Display raster map "elevation" but only the raster cells with values @@ -22,8 +21,7 @@ between 75 and 80 meters: d.rast map=elevation values=75-80 ``` - +![d.rast elevation with values](d_rast_elevation_values.png) *Figure: elevation raster map showing values between 75 and 80 meters* Display raster map "landuse96_28m" but only categories 1 and 2: @@ -32,7 +30,7 @@ Display raster map "landuse96_28m" but only categories 1 and 2: d.rast landuse96_28m values=1,2 ``` -d.rast landuse +![d.rast landuse](d_rast_landuse.png) *Figure: landuse raster map showing categories 1 and 2* ## SEE ALSO diff --git a/display/d.rgb/d.rgb.md b/display/d.rgb/d.rgb.md index 1cd26feec53..c8ebe3cfffa 100644 --- a/display/d.rgb/d.rgb.md +++ b/display/d.rgb/d.rgb.md @@ -49,7 +49,7 @@ g.region raster=lsat7_2002_10 -p d.rgb blue=lsat7_2002_10 green=lsat7_2002_20 red=lsat7_2002_30 ``` -d.rgb example +![d.rgb example](d_rgb.png) *Figure: Visual color composite of a LANDSAT scene (North Carolina sample dataset)* diff --git a/display/d.vect.thematic/d.vect.thematic.md b/display/d.vect.thematic/d.vect.thematic.md index 3af53e82f7c..4039388c7b4 100644 --- a/display/d.vect.thematic/d.vect.thematic.md +++ b/display/d.vect.thematic/d.vect.thematic.md @@ -78,8 +78,7 @@ d.vect.thematic map=schools_wake@PERMANENT column=CORECAPACI algorithm=std \ d.legend.vect -b at=2,80 font=Sans symbol_size=25 ``` -[](d_vect_thematic.png) +![d_vect_thematic example](d_vect_thematic.png) *Thematic map of average elevation and school capacity* ## SEE ALSO diff --git a/doc/infrastructure.md b/doc/infrastructure.md index e5b59eee73b..465bc46681c 100644 --- a/doc/infrastructure.md +++ b/doc/infrastructure.md @@ -228,8 +228,7 @@ Maintainer: Vaclav Petras - Details: - CI workflow with: - A build job which is not parallelized and is meant for clear & relatively fast - check of compilation and building in general. (Duplicating what is running - on Travis) + check of compilation and building in general. - A test job which of course needs to build, but the main focus is to run tests, so the compilation is parallelized (depending on nproc) and thus potentially less readable. This runs the whole test suite. (You need to run it locally to diff --git a/docker/alpine/Dockerfile b/docker/alpine/Dockerfile index a552a744a8a..9f2eb4cb551 100644 --- a/docker/alpine/Dockerfile +++ b/docker/alpine/Dockerfile @@ -123,6 +123,7 @@ ENV GRASS_BUILD_PACKAGES="\ build-base \ bzip2-dev \ cairo-dev \ + cmake \ fftw-dev \ freetype-dev \ geos-dev \ @@ -178,13 +179,13 @@ RUN cp /usr/local/grass/gui/wxpython/xml/module_items.xml module_items.xml; \ mkdir -p /usr/local/grass/gui/wxpython/xml/; \ mv module_items.xml /usr/local/grass/gui/wxpython/xml/module_items.xml; -RUN git clone https://github.com/OSGeo/gdal-grass /src/gdal-grass +# renovate: datasource=github-tags depName=OSGeo/gdal-grass +ARG GDAL_GRASS_VERSION=1.0.3 +RUN git clone --branch $GDAL_GRASS_VERSION --depth 1 https://github.com/OSGeo/gdal-grass.git src/gdal-grass WORKDIR /src/gdal-grass -RUN ./configure \ - --with-gdal=/usr/bin/gdal-config \ - --with-grass=/usr/local/grass && \ - make -j $NUMTHREADS && \ - make install -j $NUMTHREADS +RUN cmake -B build -DAUTOLOAD_DIR=/usr/lib/gdalplugins -DBUILD_TESTING=OFF && \ + cmake --build build && \ + cmake --install build FROM common as grass diff --git a/docker/ubuntu/Dockerfile b/docker/ubuntu/Dockerfile index bd32f38acee..5da5f473938 100644 --- a/docker/ubuntu/Dockerfile +++ b/docker/ubuntu/Dockerfile @@ -295,13 +295,13 @@ RUN ./configure $GRASS_CONFIG \ mv module_items.xml /usr/local/grass85/gui/wxpython/xml/module_items.xml; # Build the GDAL-GRASS plugin -RUN git clone https://github.com/OSGeo/gdal-grass \ +# renovate: datasource=github-tags depName=OSGeo/gdal-grass +ARG GDAL_GRASS_VERSION=1.0.3 +RUN git clone --branch $GDAL_GRASS_VERSION --depth 1 https://github.com/OSGeo/gdal-grass.git \ && cd "gdal-grass" \ - && ./configure \ - --with-gdal=/usr/bin/gdal-config \ - --with-grass=/usr/local/grass85 \ - && make -j $NUMTHREADS \ - && make install -j $NUMTHREADS \ + && cmake -B build -DAUTOLOAD_DIR=/usr/lib/gdalplugins -DBUILD_TESTING=OFF \ + && cmake --build build \ + && cmake --install build \ && cd /src \ && rm -rf "gdal-grass" diff --git a/general/g.region/g.region.md b/general/g.region/g.region.md index 54fb7b4a2b7..bc6c84b7ee8 100644 --- a/general/g.region/g.region.md +++ b/general/g.region/g.region.md @@ -396,7 +396,7 @@ g.region -l format=json *[g.access](g.access.md), [g.mapsets](g.mapsets.md), [g.proj](g.proj.md) Environment variables: [GRASS_REGION and -WIND_OVERRIDE](variables.md#internal)* +WIND_OVERRIDE](variables.md#list-of-selected-internal-grass-environment-variables)* ## AUTHOR diff --git a/gui/wxpython/docs/wxGUI.iscatt.md b/gui/wxpython/docs/wxGUI.iscatt.md index e1d8d6961cb..5564a13b845 100644 --- a/gui/wxpython/docs/wxGUI.iscatt.md +++ b/gui/wxpython/docs/wxGUI.iscatt.md @@ -1,7 +1,7 @@ ## KEYWORDS [display](display.md), [GUI](topic_GUI.md), -[imagery](keywords.md#imagery), [scatterplot](keywords.md#scatterplot), +[imagery](keywords.md#imagery), [scatterplot](keywords.md), [plot](keywords.md#plot) ## DESCRIPTION diff --git a/imagery/i.atcorr/i.atcorr.md b/imagery/i.atcorr/i.atcorr.md index 41e060942c0..452ff8adbcd 100644 --- a/imagery/i.atcorr/i.atcorr.md +++ b/imagery/i.atcorr/i.atcorr.md @@ -882,8 +882,7 @@ To apply atmospheric correction to the remaining bands, only the last line in the 6S parameters file (i.e., the sensor band) needs to be changed. The other parameters will remain the same. -[i.atcorr example](i_atcorr_B02_atcorr.png) +![i.atcorr example](i_atcorr_B02_atcorr.png) *Figure: Sentinel-2A Band 02 with applied atmospheric correction (histogram equalization grayscale color scheme)* diff --git a/imagery/i.gensigset/i.gensigset.md b/imagery/i.gensigset/i.gensigset.md index b745df66196..70493a8871c 100644 --- a/imagery/i.gensigset/i.gensigset.md +++ b/imagery/i.gensigset/i.gensigset.md @@ -151,7 +151,7 @@ then the user should check for: ## SEE ALSO -*[r.support](r.support), [i.group](i.group.md), [i.smap](i.smap.md), +*[r.support](r.support.md), [i.group](i.group.md), [i.smap](i.smap.md), [r.info](r.info.md), [r.univar](r.univar.md), [wxGUI vector digitizer](wxGUI.vdigit.md)* diff --git a/imagery/i.ortho.photo/i.ortho.photo/i.ortho.photo.md b/imagery/i.ortho.photo/i.ortho.photo/i.ortho.photo.md index eae184a99cb..11a9cc1fa05 100644 --- a/imagery/i.ortho.photo/i.ortho.photo/i.ortho.photo.md +++ b/imagery/i.ortho.photo/i.ortho.photo/i.ortho.photo.md @@ -49,8 +49,7 @@ Five groups of input parameters are required for ortho-rectification: points and/or, - Coordinates of ground control points in the target coordinate system. -[i.ortho.photo example](i_ortho_photo_step1.png) +![i.ortho.photo example](i_ortho_photo_step1.png) *Example of an input oblique image in a source project* To ortho-rectify aerial images the user has to follow the menu options @@ -188,8 +187,7 @@ The steps to follow are described below: 2728 0.0 0.0 -7.7 1 ``` - [i.ortho.photo example](i_ortho_photo_step5.png) + ![i.ortho.photo example](i_ortho_photo_step5.png) *Step 5: Image-to-photo transformation of an oblique image* 6. *Initialize parameters of camera: [i.ortho.init](i.ortho.init.md)* @@ -210,8 +208,7 @@ The steps to follow are described below: north: needs to be denoted as +90° for clockwise turn and -90° for a counter-clockwise turn. - [i.ortho.photo example](i_ortho_photo_step6.png) + ![i.ortho.photo example](i_ortho_photo_step6.png) *Principle of pitch and yaw* In Step 6, a new file *mapset/group/name_of_group/**INIT_EXP*** is @@ -265,8 +262,7 @@ The steps to follow are described below: 1570.09788497 2790.06537829 0.0 3.0 11.0 100.0 1 ``` - [i.ortho.photo example](i_ortho_photo_step7.png) + ![i.ortho.photo example](i_ortho_photo_step7.png) *Step 7: Detail of ground control points matching in an oblique image and terrain model* @@ -281,8 +277,7 @@ The steps to follow are described below: current window in the target project or the minimal bounding window for the ortho-rectified image. - [i.ortho.photo example](i_ortho_photo_step8.png) + ![i.ortho.photo example](i_ortho_photo_step8.png) *Step 8: Ortho-rectified oblique image* As a result, the ortho-rectified raster map is available for diff --git a/imagery/imageryintro.md b/imagery/imageryintro.md index 6ed5f67ea05..5116ef90ead 100644 --- a/imagery/imageryintro.md +++ b/imagery/imageryintro.md @@ -102,8 +102,7 @@ signature files of imagery classification tools. Therefore, signature files of one imagery or raster group can be used to classify a different group with identical semantic labels. -GRASS GIS band references scheme +![GRASS GIS band references scheme](band_references_scheme.png) *New enhanced classification workflow involving semantic labels.* With [r.support](r.support.md) any sort of semantic label the user diff --git a/misc/m.measure/m.measure.md b/misc/m.measure/m.measure.md index c2cc36a972f..922acf3abc7 100644 --- a/misc/m.measure/m.measure.md +++ b/misc/m.measure/m.measure.md @@ -17,10 +17,8 @@ m.measure coordinates="$Bonn_DE,$Philadelphia_US" units=kilometers Length: 6217.916452 kilometers ``` -[ -](m_measure_distance.png) *Visualization (with d.geodesic) of m.measure +![Visualization (with d.geodesic) of m.measure distance example](m_measure_distance.png) +*Visualization (with d.geodesic) of m.measure distance example* As an example for the North Carolina sample dataset, here four points diff --git a/ps/ps.map/ps.map.md b/ps/ps.map/ps.map.md index f414022baed..2e26ec8fa11 100644 --- a/ps/ps.map/ps.map.md +++ b/ps/ps.map/ps.map.md @@ -1491,7 +1491,6 @@ ps.map input=simple_map.txt output=simple_map.ps ``` ![](ps_map_basic.png) - *Figure: Result of for the a simple Wake county terrain and roads example* @@ -1570,7 +1569,6 @@ ps.map input=elevation_map.txt output=elevation.ps ``` ![](ps_map.png) - *Figure: Result of for the more complicated Wake county, NC example* More examples can be found on the [GRASS diff --git a/python/grass/docs/src/gunittest_testing.rst b/python/grass/docs/src/gunittest_testing.rst index 20df0245e7e..5b7ded09ee7 100644 --- a/python/grass/docs/src/gunittest_testing.rst +++ b/python/grass/docs/src/gunittest_testing.rst @@ -672,8 +672,8 @@ For C/C++ code we additionally use the third party solution `Coverity Scan`_ where GRASS GIS is registered as project number `1038`_. Also you can use `Cppcheck`_ which will show a lot of errors which compilers do not check. In any case, set your compiler to high error and warning levels, -check them and fix them in your code. Furthermore, `Travis-CI`_ is used -to check if the source code can still be compiled after submitting changes +check them and fix them in your code. Furthermore, continuous integrations is +used to check if the source code can still be compiled after submitting changes to the repository. For Python, we recommend pylint and then for style issues pep8 tool @@ -718,7 +718,6 @@ Further reading .. _unittest: https://docs.python.org/2/library/unittest.html .. _doctest: https://docs.python.org/2/library/doctest.html .. _Coverity Scan: https://scan.coverity.com/ -.. _Travis-CI: https://travis-ci.org/github/OSGeo/grass .. _1038: https://scan.coverity.com/projects/1038 .. _Cppcheck: http://cppcheck.sourceforge.net/ .. _sandbox: https://svn.osgeo.org/grass/sandbox/wenzeslaus/grass_py_static_check.py diff --git a/raster/Makefile b/raster/Makefile index a571f47f1e2..37847c4ec4d 100644 --- a/raster/Makefile +++ b/raster/Makefile @@ -44,6 +44,7 @@ SUBDIRS = \ r.latlong \ r.lake \ r.li \ + r.mapcalc \ r.mask.status \ r.mfilter \ r.mode \ @@ -139,7 +140,6 @@ PGM = rasterintro include $(MODULE_TOPDIR)/include/Make/Dir.make default: - $(MAKE) -C r.mapcalc $(MAKE) htmldir htmldir: parsubdirs @@ -153,3 +153,5 @@ $(HTMLDIR)/r.out.png: # no-op - override Html.make rule for .png image files $(MDDIR)/source/r.out.png: # no-op - override Html.make rule for .png image files + +r.colors: r.mapcalc diff --git a/raster/r.colors/Makefile b/raster/r.colors/Makefile index 7d691dbbc28..85ff60fc095 100644 --- a/raster/r.colors/Makefile +++ b/raster/r.colors/Makefile @@ -24,7 +24,4 @@ $(HTMLDIR)/colortables: $(HTMLDIR) $(MDDIR)/source/colortables: $(MDDIR) $(MKDIR) $@ -$(BIN)/r.mapcalc$(EXE): - $(MAKE) -C ../r.mapcalc - .PHONY: thumbnails diff --git a/raster/r.resamp.filter/r.resamp.filter.md b/raster/r.resamp.filter/r.resamp.filter.md index 7b1ec74b89a..e4d87048ef1 100644 --- a/raster/r.resamp.filter/r.resamp.filter.md +++ b/raster/r.resamp.filter/r.resamp.filter.md @@ -43,10 +43,10 @@ infinite kernel along with a finite window. To smooth a map, keeping its resolution, a good starting point is to use the filters **gauss,box** with the radii *0.5 \* input resolution*, *2 -\* input resolution*. See also [r.neighbors](r.neighbors.html) +\* input resolution*. See also [r.neighbors](r.neighbors.md) When resampling a map to a higher resolution (alternative to -interpolation, e.g. [r.resamp.interp](r.resamp.interp.html)), a good +interpolation, e.g. [r.resamp.interp](r.resamp.interp.md)), a good starting point is to use the filters **gauss,box** with the radii *1.5 \* input resolution*, *3 \* input resolution*. diff --git a/raster/r.surf.idw/r.surf.idw.md b/raster/r.surf.idw/r.surf.idw.md index f86fb0463f3..43c61579bd0 100644 --- a/raster/r.surf.idw/r.surf.idw.md +++ b/raster/r.surf.idw/r.surf.idw.md @@ -13,7 +13,7 @@ values. The search procedure for the selection of nearest neighboring points will consider all input data, without regard to the mask. The **-e** flag is the error analysis option that interpolates values only for those cells of the input raster map which have non-zero values and -outputs the difference (see [NOTES](#minuse) below). +outputs the difference (see [NOTES](#surface-generation-error-analysis) below). The **npoints** parameter defines the number of nearest data points used to determine the interpolated value of an output raster cell. diff --git a/scripts/d.correlate/d.correlate.md b/scripts/d.correlate/d.correlate.md index 24382f65f5c..4af2f5187a1 100644 --- a/scripts/d.correlate/d.correlate.md +++ b/scripts/d.correlate/d.correlate.md @@ -23,9 +23,8 @@ g.region raster=lsat7_2002_30 -p d.correlate map=lsat7_2002_30,lsat7_2002_40 ``` - -Scatterplot of two LANDSAT TM7 channels +![Scatterplot of two LANDSAT TM7 channels](d_correlate_plot.png) +*Scatterplot of two LANDSAT TM7 channels* ## SEE ALSO diff --git a/scripts/d.rast.edit/d.rast.edit.md b/scripts/d.rast.edit/d.rast.edit.md index ca969864a8a..520e8f327e9 100644 --- a/scripts/d.rast.edit/d.rast.edit.md +++ b/scripts/d.rast.edit/d.rast.edit.md @@ -77,8 +77,7 @@ r.univar -g elev_lid792_1m r.univar -g elev_lid792_1m_modified ``` -[](d_rast_edit.png) +![d.rast.edit example](d_rast_edit.png) *Figure: Editing of pixels in an elevation raster map using d.rast.edit* ## TODO diff --git a/scripts/i.pansharpen/i.pansharpen.md b/scripts/i.pansharpen/i.pansharpen.md index 56bed9b98ba..c80f0d82e4a 100644 --- a/scripts/i.pansharpen/i.pansharpen.md +++ b/scripts/i.pansharpen/i.pansharpen.md @@ -181,32 +181,17 @@ d.rgb b=ihs542_blue g=ihs542_green r=ihs542_red ***Results:*** - ---- - - - - - - - - - - -
 
-R, G, B composite of Landsat at 30m
 
-R, G, B composite of Brovey sharpened image at 15m
 
-R, G, B composite of IHS sharpened image at 15m
 
-R, G, B composite of PCA sharpened image at 15m"
+![R, G, B composite of Landsat at 30m](i_pansharpen_rgb_landsat542.jpg) +*R, G, B composite of Landsat at 30m* + +![R, G, B composite of Brovey sharpened image at 15m](i_pansharpen_rgb_brovey542.jpg) +*R, G, B composite of Brovey sharpened image at 15m* + +![R, G, B composite of IHS sharpened image at 15m](i_pansharpen_rgb_ihs542.jpg) +*R, G, B composite of IHS sharpened image at 15m* + +![R, G, B composite of PCA sharpened image at 15m](i_pansharpen_rgb_pca542.jpg) +*R, G, B composite of PCA sharpened image at 15m* ## REFERENCES diff --git a/scripts/i.tasscap/i.tasscap.md b/scripts/i.tasscap/i.tasscap.md index ebf7a9682cc..75789df62c8 100644 --- a/scripts/i.tasscap/i.tasscap.md +++ b/scripts/i.tasscap/i.tasscap.md @@ -35,30 +35,17 @@ i.tasscap sensor=landsat7_etm \ Results: - ---- - - - - - - - - - - -
 
-'Brightness' Tasseled Cap component 1
 
-'Greenness' Tasseled Cap component 2
 
-'Wetness' Tasseled Cap component 3
 
-'Atmospheric haze' Tasseled Cap component 4
+![Brightness Tasseled Cap component 1](i_tasscap_brightness.jpg) +*'Brightness' Tasseled Cap component 1* + +![Greenness Tasseled Cap component 2](i_tasscap_greenness.jpg) +*'Greenness' Tasseled Cap component 2* + +![Wetness Tasseled Cap component 3](i_tasscap_wetness.jpg) +*'Wetness' Tasseled Cap component 3* + +![Atmospheric haze Tasseled Cap component 4](i_tasscap_haze.jpg) +*'Atmospheric haze' Tasseled Cap component 4* ## REFERENCES diff --git a/scripts/r.blend/r.blend.md b/scripts/r.blend/r.blend.md index 34710736dd8..3d26f000377 100644 --- a/scripts/r.blend/r.blend.md +++ b/scripts/r.blend/r.blend.md @@ -14,8 +14,7 @@ r.relief input=elevation output=relief zscale=10 r.blend -c first=elevation second=relief output=blend percent=75 ``` -[](r_blend.png) +![r.blend example](r_blend.png) *Figure: Elevation blended with shaded relief* ## SEE ALSO diff --git a/scripts/r.colors.stddev/r.colors.stddev.md b/scripts/r.colors.stddev/r.colors.stddev.md index 39a5ce89fc2..553433d2fd2 100644 --- a/scripts/r.colors.stddev/r.colors.stddev.md +++ b/scripts/r.colors.stddev/r.colors.stddev.md @@ -23,8 +23,7 @@ g.region raster=elevation -p r.colors.stddev elevation ``` -[](r_colors_stddev.png) +![r.colors.stddev example](r_colors_stddev.png) *Figure: Standard deviations from mean elevation* ## SEE ALSO diff --git a/scripts/r.drain/r.drain.md b/scripts/r.drain/r.drain.md index 3ec37f82897..13ea781ddc1 100644 --- a/scripts/r.drain/r.drain.md +++ b/scripts/r.drain/r.drain.md @@ -215,8 +215,7 @@ d.vect map=start color=none fill_color=224:0:0 icon=basic/circle size=15 legend_ d.legend.vect -b ``` -[](r_drain.png) +![drainage using r.watershed](r_drain.png) *Figure: Drainage paths from two points flowing into the points with lowest values* @@ -255,8 +254,7 @@ r.drain -d input=const1 direction=drain_deg output=drain_path_2 drain=drain_2 st We visualize the result in the same way as in the previous example. -[drainage using r.watershed](r_drain_with_r_watershed_direction.png) +![drainage using r.watershed](r_drain_with_r_watershed_direction.png) *Figure: Drainage paths from two points where directions from r.watershed were used* diff --git a/scripts/r.plane/r.plane.md b/scripts/r.plane/r.plane.md index 89fbbf5ac52..36038700fa4 100644 --- a/scripts/r.plane/r.plane.md +++ b/scripts/r.plane/r.plane.md @@ -39,8 +39,7 @@ r.plane myplane30 dip=30 az=75 east=638650.0 north=220375.0 \ elev=116.7734 type=FCELL ``` -[](r_plane_3d.png) +![r.plane example](r_plane_3d.png) *Figure: Tilted plane shown in NVIZ along with elevation map* ## AUTHORS diff --git a/scripts/v.centroids/v.centroids.md b/scripts/v.centroids/v.centroids.md index 462537c3135..e895219dcf5 100644 --- a/scripts/v.centroids/v.centroids.md +++ b/scripts/v.centroids/v.centroids.md @@ -28,8 +28,7 @@ v.type input=busroute11 output=busroute11_boundary from_type=line to_type=bounda v.centroids input=busroute11_boundary output=busroute11_area ``` -[](v_centroids.png) +![v.centroids example](v_centroids.png) *Figure: Creating area from closed line* ## SEE ALSO diff --git a/scripts/v.clip/v.clip.md b/scripts/v.clip/v.clip.md index 2debcb6127d..0f984d8da0e 100644 --- a/scripts/v.clip/v.clip.md +++ b/scripts/v.clip/v.clip.md @@ -33,8 +33,7 @@ v.extract input=boundary_county where="NAME='WAKE' OR NAME='JOHNSTON'" output=co v.clip input=railroads clip=county_WAKE_JOHNSTON output=railroads_WAKE_JOHNSTON ``` - +![v.clip example](v_clip_poly.png) *Figure: v.clip example - basic use* ### Retain boundaries of clip map @@ -55,8 +54,7 @@ v.extract input=boundary_county where="NAME='WAKE' OR NAME='JOHNSTON'" output=co v.clip -r input=hospitals output=hospitals_clip ``` - +![v.clip example](v_clip_region.png) *Figure: v.clip example - clip by computational region* ## SEE ALSO diff --git a/utils/mkdocs.py b/utils/mkdocs.py index ecbca5f4a0f..956a2bbfc5a 100644 --- a/utils/mkdocs.py +++ b/utils/mkdocs.py @@ -404,8 +404,9 @@ def get_addon_path(base_url, pgm, major_version): ] ) shutil.move(tmp_clone_path, grass_addons_dir) - except shutil.Error: - pass # Another process created it first; proceed normally + except (shutil.Error, OSError): + if not grass_addons_dir.exists(): + raise addons_file_list = popen( ["git", "ls-tree", "--name-only", "-r", addons_branch], cwd=grass_addons_dir, diff --git a/vector/v.label.sa/v.label.sa.md b/vector/v.label.sa/v.label.sa.md index e13ebf8c2c6..e6ea719a1a4 100644 --- a/vector/v.label.sa/v.label.sa.md +++ b/vector/v.label.sa/v.label.sa.md @@ -36,7 +36,7 @@ Labeling Algorithm, Cartographica, Vol. 33, No. 4, Winter 1996, pp. ## SEE ALSO -*[d.label](v.labels.md) +*[v.label](v.label.md) [d.labels](d.labels.md) [ps.map](ps.map.md) [Wikipedia article on simulated annealing](https://en.wikipedia.org/wiki/Simulated_Annealing)* diff --git a/vector/v.random/v.random.md b/vector/v.random/v.random.md index 41b58358365..7bfcfafbc11 100644 --- a/vector/v.random/v.random.md +++ b/vector/v.random/v.random.md @@ -28,7 +28,7 @@ generated in total. Attributes attached to **restrict** vector map are also transferred if the **layer** parameter is defined \> 0, see -*[example](#stratified-random-sampling:-random-sampling-from-vector-map-by-attribute)* +*[example](#stratified-random-sampling-random-sampling-from-vector-map-by-attribute)* below. ## NOTES