Version 42 (modified by wenzeslaus, 3 years ago) (diff)

v.mapcalc addon (map-focused Python implementtaion)


New features in GRASS 7



Stable Release

  • tbd

Release Candidate 1 (RC1)

SVN Source Code

  • Milestone: 7.2.0
  • SVN Checkout latest 7.2 release branch (including yet unpublished bugfixes):
      svn checkout

Overview of changes

A series of stability fixes, manual improvements and a few language translations have been added.

The GRASS GIS 7.2.0RC1 release provides more than XXX fixes and improvements with respect to GRASS GIS 7.2.0.

New modules

  • G72:d.frame - Manages display frames on the user's graphics monitor.
  • G72:r3.flow - Computes 3D flow lines and 3D flow accumulation.
  • G72:r3.gradient - Computes gradient of a 3D raster map and outputs gradient components as three 3D raster maps.
  • G72:t.rast.algebra - Apply temporal and spatial operations on space time raster datasets using temporal raster algebra.
  • G72:t.rast3d.algebra - Apply temporal and spatial operations on space time 3D raster datasets using temporal 3D raster algebra.
  • G72:t.rast.contour - Produces a space time vector dataset of specified contours from a space time raster dataset.
  • - Converts a space time raster dataset into a space time vector dataset.
  • G72:t.rast.what - Sample a space time raster dataset at specific vector point coordinates and write the output to stdout using different layouts.
  • G72:t.vect.algebra - Apply temporal and spatial operations on space time vector datasets using temporal vector algebra.
  • G72:v.decimate - Decimates a point cloud.
  • G72:v.out.lidar - Export point vector map as a point cloud.
  • G72:g.gui.datacatalog - The Data Catalog is a wxGUI component for browsing, modifying and managing GRASS maps.
  • - Search for a GRASS GIS module based on keywords (searches descriptions or manuals).
  • G72:d.legend.vect - Displays a vector legend in the active graphics frame.

Experimental modules:

  • - perform 3D binning and statistics on a point cloud (lacks some standard GRASS GIS module features)
  • - import point clouds as vector points using PDAL library and its filters such as ground classification (not included in binaries and distributions)

Major module changes

    • base_raster option which allows for the conversion to LAS file Z values to height above ground using an existing elevation raster. Additionally, with -d a base_raster is used in its native resolution to enable performing statistics on with coarse resolution while reducing the heights of point using the base_raster in its full resolution.
    • -j option which allows the use of Z values for filtering of points, yet performs statistical analysis on the intensity values
    • intensity_range and intensity_scale to filter and modify intensity values
    • file option to specify list of files (file paths) in a text file (merges multiple LAS files on input as if it would be one file)
  • G72:r.mapcalc - fixed bug when some uses of neighborhood modifier gave wrong result (#3067)
    • point cloud decimation (skip, preserve) and subset import (offset, limit)
    • vector mask to limit import to given areas (mask, mask_layer, -i for mask inversion)
  • G72:d.legend - added option to show background, show ticks, more control over labels, added title, possible to switch to logarithmic (done within GSoC 2016)
  • G72:d.barscale - new option to specify length and units, custom label possible (done within GSoC 2016)
  • G72:d.northarrow - added rotation option, more symbols available (done within GSoC 2016)
  • G72:d.vect - Legend tab with number of legend-related options (icon_area to represent areas in legend, icon_line to represent lines in legend, legend_label for label to be displayed in legend, -l flag to do not show anything in the legend)
  • G72:d.vect.thematic - Legend tab with number of legend-related options (icon_area to represent areas in legend, icon_line to represent lines in legend, legend_title for heading of the section in the legend)
  • G72:g.extension - downloads, compiles and installs modules using simplified URLs to GitHub?, GitLab? and similar services, local directories, remote and local ZIP and TAR files and GRASS GIS Trac, does not require Subversion (svn) anymore for standard GRASS GIS addons (applies to Linux, Mac OS X and other systems with build environment), svnurl option renamed to url (svnurl can still be used)

All display modules for vector maps, namely G72:d.vect and G72:d.vect.thematic, now produce a legend file with instructions for G72:d.legend.vect if GRASS_LEGEND_FILE environmental variable is specified (applied in GUI in the background, can be used directly in the command line or scripts).

Minor module changes

  • G72:r.patch - speed optimization (approximately 10% faster than previous version)
  • G72:r.random.cells - ncells to generate only limited number of cells
    • -n flag to set region according to the newly created raster (useful with -e flag)
    • bug fix for low memory processing option
    • bug fix for extremely large rasters
    • -v to import use only valid points. This is a change of behavior. Previously, invalid points were always ignored. The behavior was removed because of unclear definition of invalid point in libLAS library. No invalid points are filtered out only when requested which makes it consistent with other filters. However, if invalid points are present, user gets a warning message.
    • id_layer, return_layer, class_layer, rgb_layer to store point attributes as layers and categories
    • -c flag to not add unique IDs as category to each point. More points than the category number limit can be imported. This also requires less space on disk and time during import.
    • general improvements to handle large amounts of points
    • zrange option to filter out points based on height
    • -v to use only valid points. This is a change of behavior. Previously, invalid points were always ignored. The behavior was removed because of unclear definition of invalid point in libLAS library. No invalid points are filtered out only when requested which makes it consistent with other filters. However, if invalid points are present, user gets a warning message.
  • G72:v.patch - -z and -n flags to work without topology but with z coordinate
  • G72:v.random - now accepts much larger numbers as the number of requested points
  • G72:v.distance - fix bug when 3D point inside a 2D area was classified as being outside
  • G72:d.northarrow - describe arrows in the same way as barscales
  • G72:r.fillnulls - add lambda parameter of G7:r.resamp.bspline
  • G72:r.rgb - better error message when none of the required options is provided
  • G72:v.outlier - added missing 6.4 compatibility option for lambda (lambda_i in 6.4)

GUI changes

  • G7:wxGUI + G7:d.mon: new multi-threaded implementation
  • new Data tab in Layer Manager for browsing and editing locations and mapsets
    • delete, rename and copy raster, 3D raster and vector maps
    • add map to display if it is from current mapset
    • switch mapset
    • search by name with regular expressions
  • new Raster digitizer - draw points, lines, polygons, you can launch it from Map Display drop down selection
  • shorter names for Layer Manager tabs
    • Map layers -> Layers, Command console -> Console, Search modules -> Modules, Python shell -> Shell
  • GRASS GIS Simple Python editor (accessible from Python tab or toolbar)
  • Python editor in modeler has monospaced font and shows white space
  • font selection in settings has now preview
  • cartography in Map Display:
    • add multiple overlays (legends, scale bars, north arrows, text)
    • new vector legend
    • text is now rendered with G7:d.text instead of wxpython text
    • new color tables which are perceptually uniform: viridis and grass
    • viridis color table is the new default replacing rainbow
  • keyboard shortcuts and mouse actions for font size in Console tab
  • shorter toolbar for Map Display

PyGRASS changes

  • pygrass: ...

Library changes

  • libraster: support for new raster data compression methods: NONE, ZLIB, LZ4, BZIP2. Overview:
    • Raster map compression set by export GRASS_COMPRESSOR=XXX, with XXX be
      • NONE (uncompressed)
      • RLE (generic Run-Length Encoding of single bytes)
      • ZLIB (DEFLATE, good speed and compression)
        • with zlib compression levels (export GRASS_ZLIB_LEVEL=X): -1..9 (-1 is default which is level 6)
        • Notes: ZLIB level = 0 tells ZLIB to copy the data as-is from source to destination. In case of CELL maps, the rasterlib itself will then still trim high zero bytes with trim_bytes() which can already reduce the data size considerably, but ZLIB will not compress the data.
      • LZ4 (fastest, low compression)
      • BZIP2 (slowest, high compression)
    • NULL file compression: At time it must be explicitly turned on with export GRASS_COMPRESS_NULLS=1
  • vlib: 2D version of Vect_point_in_box() function called Vect_point_in_box_2d()
  • color table chanages:
    • DEFAULT_COLOR_TABLE macro which is a string literal with the name of default color table
    • added viridis and grass color tables to lib/gis/colors (visible in G72:r.colors, G72:r3.colors and G72:v.colors)
    • default color table changed from rainbow to viridis
  • improvements for standard options and flags description (English in examples, more details about topology and layers)

Map projection changes

  • ...

Portability changes

  • libiostream uses exception specifiers only for C++ versions older than C++11, so it compiles with C++98, C++11 and C++14 (version dependent exception specifier macros)
  • G72:r.viewshed, G72:r.terraflow and G72:i.atcorr now compile with C++11 and C++14 as well as C++98 strict setting thanks to libiostream changes
  • G72:r.terraflow now complies with clang++ and strict C++11 syntax (string literal and macro combination syntax)
MS Windows

Manual pages

Message translation updates

  • ...

New Addons

New addons since GRASS GIS 7.0.0 (for a total of over 230 GRASS GIS 7 addons by this date !):

  • G7A:i.gcp: Manages Ground Control Points (GCPs) non-interactively.
  • G7A:i.image.bathymetry: Satellite Derived Bathymetry (SDB) from multispectral images
  • G7A:i.landsat8.qc: Reclass Landsat8 QA band according to acceptable pixel quality as defined by the user
  • G7A:i.landsat8.swlst: Practical split-window algorithm estimating Land Surface Temperature from Landsat 8 OLI/TIRS imagery
  • G7A:i.lswt: Compute LSWT from TOA Brightness Temperatures
  • G7A:i.ortho.corr: Correct orthophoto taking part of the near orthophotos using the camera angle map
  • G7A:i.segment.stats: Calculates statistics describing raster areas
  • G7A:i.segment.uspo: Unsupervised segmentation parameter optimization
  • Landscape change assessment
  • G7A:r.colors.cubehelix: Create or apply a cubehelix color table to a GRASS raster map
  • G7A:r.colors.matplotlib: Convert or apply a Matplotlib color table to a GRASS raster map
  • G7A:r.euro.ecosystem: Sets colors and categories of European ecosystem raster data set
  • G7A:r.jpdf: From two series of input raster maps, calculates the joint probability function and outputs the probabilities of occurrence in the specified bins.
  • G7A:r.mcda.promethee: Multicirtieria decision analysis based on PROMETHEE method
  • G7A:r.neighborhoodmatrix: Calculates a neighborhood matrix for a raster map with regions
  • G7A:r.object.geometry: Calculates geometry parameters for raster objects.
  • G7A:r.out.legend: Create and export image file with legend of a raster map
  • G7A:r.quantile.ref: Determines quantile for input value from reference raster map layers.
  • G7A:r.randomforest: Provides supervised random forest classification
  • G7A:r.series.decompose: Program calculates decomposition of time series X
  • G7A:r.terrain.texture: Pit and peak density
  • G7A:r.tri: Terrain Ruggedness Index
  • G7A:r.vector.ruggedness: Vector Ruggedness Measure
  • G7A:r3.what: Queries 3D raster in specified 2D or 3D coordinates.
  • G7A:v.class.mlR: Provides supervised support vector machine classification
  • G7A:v.clip: Extracts features of input map which overlay features of clip map.
  • G7A:v.explode: Explode polylines, splitting them to separate lines (uses v.split + v.category)
  • importing of GBIF species distribution data
  • importing of Natura 2000 spatial data of protected areas
  • Imports OpenStreetMap data into GRASS GIS.
  • importing of IUCN Red List Spatial Data
  • G7A:v.mapcalc: Overlay and buffer vector maps using vector algebra calculator
  • G7A:v.maxent.swd: Export raster values at given point locations as text file in SWD format for input in Maxent
  • G7A:v.mrmr: Perform Minimum Redundancy Maximum Relevance Feature Selection on a GRASS Attribute Table
  • G7A:v.sort.points: Sorts a vector point map according to a numeric column
  • G7A:v.strds.stats: Calculates univariate statistics from given space-time raster datasets based on a vector map
  • Compute the stream order of stream networks stored in a vector map at specific outlet vector points
  • Performs thin plate spline interpolation with regularization and covariables
  • Converts (rasterize) a TIN map into a raster map
  • G7A:v.what.spoly: Queries vector map with overlaping spaghetti polygons (e.g. Landsat footprints) at given location. Polygons must have not intersected boundaries.

Closed tickets

Closed bugs since the last release

wxModeler: r.mapcalc action should allow to insert maps
error in r.walk help page
gcpmanager fails to list source mapsets if non-ascii characters in grass data dir path
g.parser does call the with full path
Unicode unequal comparison in location wizard when title contains non-ascii letters
GRASS 7: -d produces empty raster when used on areas
g.mlist warnings for layers found in other mapsets
failed pygrass doctest
#2298 hack= generates order 1 single pixels
Problems with add category to all features workflow
PyGRASS points read from map are always 2D although they have z coordinate
browse button in import vector/raster wrapper for and crashes entire GUI
G7: t.* modules unclear -s flag
r.diversity = Illegal areas disposition
wxGUI.Nviz flickering
GRASS 7: "inf" values break insert statements in v.rast.stats
#2357 segfaults or reports incorrect values on Windows
#2359 with a large map
Error in gunittest get_svn_info()
gunittest test local input file failure
d.legend "use" argument makes legend disappear
lighting/shading for vector objects backward in nviz
#2385 doesn't use information from dblogin file about external PostgreSQL server
Python ScriptError
t.vect.export using no compression argument results in creation of an archive
r.series.interp missing in wxGUI menu
g.gui.iclass crashes
np.float128 does not always exist
#2443 add-on updates for 7.1svn
r.mask -r removal not working in GRASS 7.1 svn r.62210
#2472 gives negative point count on large las files
query raster/vector map(s) does not work with vector layers
yet another problem with GUI toolbox menu
Dotted line guiding digitization tool disappeared
g.gui.metadata not functioning
#2574 - not working with the last version of grass7
i.segment threshold error message should be updated
osx - wxpython 3 64 bit - v.digit gui freeze when digitizing new vector
mac OSX - wxpython 3 (64 bit) profile surface map fails to start
mac OSX - wxpython 3 (64 bit) create histogram of raster map fails to start
mac OSX - wxpython 3 (64 bit) - fails to generate map preiew
#2650 - dropdown menu - gui components doesn't get update
#2671 won't make interpolation
mapswipe add raster map doesn't work with wxPython 3
d.mon: input file has incorrect dimensions
#2687 picks map from current Mapset instead of PERMANENT
Rendering failed: Error reading PPM file
rendering command layer and adding 3d raster layer broken
data catalog does not show all raster layers, while showing some non-existing
WARNING: Unable to rename null file
GUI hangs when adding vector map from cli
t.rast.aggregate: ValueError: too many values to unpack
#2741 fails
#2743 core dump
g.gui.vdigit fails to start with "PyAssertionError: C++ assertion "GetEventHandler() == this" failed at ../src/common/wincmn.cpp(478) in ~wxWindowBase(): any pushed event handlers must have been removed"
i.gensigset error G_calloc: unable to allocate 115671215 * 8 bytes of memory at lib/imagery/sigset.c:24
added "_1" to attribute table's name when working with v.overlay
#2771 gives error for multiple pass processing
v.rast.stats: ERROR: Input window changed while maps are open for read.
Manual: Overly long description lines
wxplot tools fails with wxPython 3
g.gui fails to import set_gui_path
Default locale not found
lib/iostream/mm.cpp:Fails to build with GCC 6: declaration of ... has a different exception specifier
grass.script.array cannot read raster on Windows
r.external wizzard shows "projection match: no" although location was created by one of the dataset
d.histogram launched from map display toolbar doesn't work
"query raster/vector map(s)" tool does not work for raster maps
query tool does not work in wx display
z values read instead of intensity in
Absolute path in TGIS connection can make db inaccessible in a (mixed) multi-user environment
MD5sum for WinGRASS-7.1.svn-r67975-87-Setup-x86_64.exe does not match md5sum file
db.login port parameter
Patch for spelling errors
python editor refuses to run script with UI after closing GUI dialog
i.gensig overwrites signature file without warning
PyGRASS fails to write vector map with attributes
OSGeo4W-winGRASS71 r68376: starting wxgui fails
Make N with arrow optional in d.barscale styles
d.polar ends with ValueError: could not convert string to float: dimensions:
#3035 sets wrong map title
d.northarrow: transparent color does not work
unexpected behavior/error message in r.diversity?
wxGUI: error when profiling a raster map
problems with legend with categorical data and smooth gradient option
Transparent legend background does not work with categorical legend
Some modules fail to compile
d.barscale and northarrow positioning problem when off-screen rendering
d.legend.vect: wrong handling of spaces in legend_label
d.vect: Accents in legend_label cause encoding error
d.legend.vect workspace file flag problem
d.mon + d.vect: ERROR: Option <map> does not accept multiple answers
g.gui.animation issues with stvds and list of vector maps
r.watershed: PredictorSetup:Horizontal differencing "Predictor" not supported with 64-bit samples
different results by --ui and vector import wizzard (data shift)
Behavior of t.register when r.timestamp was used
v.what: does not take into account layer information
g.gui.tplot AttributeError: 'module' object has no attribute 'EVT_COMBOBOX_CLOSEUP'
i.segment watershed method available but not implemented
v.vect.stats: errors in counts and statistics
Maps display differently 7.0.x vs 7.2.svn and 7.3.svn
workspace - layers are in inverted order after loading saved workspace file
wxGUI nviz: resolution settings widget broken in wxPython 3
Create histogram of raster map fails
Create bivariare scatterplot of raster maps fails
#3212 crashes if server does not exist
#3213 - Segmentation fault
t.rast.mapcalc: TypeError: object of type 'NoneType' has no len()

Closed wishes since the last release

g.version: new flag for citation info
layertree to be compatible with DataCatalog
explain command mapping to wxGUI menus
MapSwipe query maps
Command functions in grass.script.core miss a correct error reporting
parallelize r.horizon
change r.horizon output names from "angle index" to "angle"
CELL raster format: make ZLIB level 3 standard compression instead of RLE
v.univar says type not supported instead of column does not exist
g.mlist add parameter to check region
Force reading of VAR and GISRC files in libgis
testsuite: cosmetics for percentage output
store map elements in workspace file
add parameter for transformation of input data to
#2507 accepts multiple bands in band option
Enhancement request - i.segment handle large images above 2 billion pixels
r.grow.distance: define max distance
Specify command to be exectued as parameter of grass command
r.mapcalc: add -l flag
add stream power index to GRASS GIS
option in context menu to export vector attribute table
#2638 ignore Null cells
Increase maximum number of vector points available
Add test for r.watershed module
"Browse" button v.external
wish: logarithmic legend for raster maps
availability of and without compiling
t.rast.what: allow stdin and add to GRASS 7.0
Add link to source code in the documentation pages.
Let r.import specify "title"
First r.grow.distance test
r.neighbors explain count in manual
support background and border for d.legend
Add ticks to continuous raster legend
Add legend title
Add option to set scalebar length
Specify custom label for d.northarrow
Add other existing symbols to d.northarrow
correction and enhancement of description
Rotate symbol for north arrow in d.northarrow
Add images to the d.northarrow manual page
Change default color table
]PATCH] r.patch: disable creation of support files
#3078 unicode support
d.correlate: add plotting of axes
r.out.gdal: add alpha channel support

Closed tasks since the last release

standardize DEG2RAD() etc
Missing guidelines for testing
Change the layer options in to flag or flags with predefined categories
Decide if validity check in should be an additional filter or a filter enabled by default
move v.krige to addons

Attachments (5)

Download all attachments as: .zip