= List of new features in GRASS 7 = [[TOC]] == Graphical User Interface == * wxGUI improved (see [http://grass.osgeo.org/wiki/wxGUI here]) * Advanced GRASS command console * [wiki:wxGUIDevelopment/Modeler Graphical modeler] * Improved [http://grass.osgeo.org/wiki/WxNviz wxNviz] * wxWidgets version of ximgview * !Tcl/Tk stuff dropped in favour of wxPython == Display modules == * old display architecture removed including related modules * new display architecture based on CAIRO and wxPython * ximgview: new == General modules == * g.cairocomp: new * g.ppmtopng: new * g.region: new flag to export region bounding box in WMS style * g.mapset: new flag to print current mapset == Image processing == * i.albedo: new * i.biomass: new * i.cca: supports now much more raster maps for canonical analyses (multi-spectral (8) -> hyper-spectral (thousands)), converted from Fortran style to C-style * i.eb.eta: new * i.eb.evapfr: new * i.eb.h_SEBAL01: new * i.eb.soilheatflux: new * i.emissivity: new * i.evapo.time_integration: new * i.fft and i.ifft: In GRASS 6.x, the only operation which can be performed upon the FFT data is a binary mask; a given component can be included or excluded, but not scaled. In GRASS 7.0, the frequency coefficients are saved as raster maps, so they can be manipulated with e.g. r.mapcalc. The main constraint is that both i.fft and i.ifft require the data to fit into memory. Eliminating this requirement boils down to transposing a large array efficiently. * i.latlong: new * i.fusion.brovey: removed, functionality provided by i.pansharpen * i.landsat.toar: new (from addons) * i.landsat.acca: new (from addons) * i.modis.qc: new * i.pansharpen: new * i.sunhours: new * i.vi: new == Raster modules == * r.colors.out: new * r.external.out: new * r.cost faster by orders of magnitude (10x - 100x) * r.neighbours: added new option to process only marked cells (i.e: selective elevation map improvement) * r.walk faster by orders of magnitude (10x - 1000x) * r.mapcalc: white space is needed before/after the = sign (r.mapcalc "outmap = inmap"); use pthreads for parsing * r.resamp.filter: new - resamples raster map layers using an analytic kernel * r.solute.transport: new; New module to compute the solute transport of groundwater in porous media using an implicit finite volume approach * r.statistics2: new * r.statistics3: new * r.uslek: new * r.usler: new * r.watershed improved from G6.3 to G6.4 to G6.5 to G7: faster, less memory, floating point DEM support, MFD, clean stream extraction from MFD, segmented mode in G7 faster than in G6 by orders of magnitude. * r.gwflow/!r3.gwflow: Groundwater flow module update * Large File Support (LFS) globally enabled * r.pack, r.unpack: new * r.in.lidar: new * r.in.wms: new implementation * r.fillnulls: fill each hole separately thus improving quality and speed == Vector modules == * v.krige: new * v.net.distance: new * v.net.bridge: new * v.net.spanningtree: new * v.net.flow: new * v.net.connectivity: new * v.net.timetable: new * v.net.components: new * v.net.allpairs: new * v.net.centrality: new * v.in.ogr faster for polygon-import, cleaner output. * v.out.ogr: reversed functionality of -c flag to preserve island by default. * Large File Support (LFS) globally enabled * v.in.lidar: new * v.colors: rewrite in C, support for vector color tables * v.colors.out: new * v.overlay: up to 40x faster for large vectors (40,000+ lines in ainput) * v.out.postgis: new * v.mkgrid: breaks are breaks not number of segments; significant speedup == 3D raster modules == * !r3.colors: new * !r3.colors.out: new == Scripts == * All Bash scripts converted to Python * Initialization scripts also based on Python == Libccmath == * new library for numerical functions == Libdbmi == * SQLite is now default database driver * Added support for OFTDate, OFTTime, OFTDateTime == Libgis == * WPS support implemented in parser (c, c++, python, shell) * Libraster separated out into own library * Store metadata in $HOME/.grass7 directory == Libgmath == * Implementation of blas level 1,2 and 3 functions which are in use by all gmath solver, the gpde library and many modules. * ATLAS wrapper for blas level 1 functions (level 2, and 3 are work in progress) == Libosgf == * WIP in OGSF - feature styling rewrite that will allow to assign custom (e.g. attribute based) style to points AND lines in NVIZ (might be extended to polys and any 3D vectors too). == Libraster == * Libraster separated out from libgis, refactored == Libvector == * Large File Support (LFS) added * New topology, requires rebuilding topology with v.build(.all) when switching between GRASS 6.x and GRASS 7 * New spatial index, and spatial index kept in file: faster queries (>10x for large vectors), less memory for opening an existing vector * New main topology: reduced memory and disk space requirements, generally faster processing * Cleaning function 'break polygons' faster, less memory * Cleaning function 'snap lines' faster and modifications are minimized: a vertex is snapped to the closest anchor vertex, not to the first anchor vertex found which might not be the closest anchor vertex. * Simple Features API/OGR read/write support (ongoing) * Support for color tables (see lib/vector/Vlib/color_*.c files) == Documentation == * Use Python to generate HTML docs == API == * Programmer's manual cleanup: http://grass.osgeo.org/programming7 * Improved Python API * read/write GRASS rasters to/from !NumPy * libgis supports the automatic generation of a WPS 1.0.0 process description XML document for each module (c, c++, python, shell) * Function name changes from GRASS 6 to GRASS 7: See [wiki:Grass7/RasterLib/ListOfFunctions] etc. == Portability == * All shell scripts have been rewritten in Python * MS-Windows portability improved, new spawn functions (backported to 6.5 and 6.4), global LFS available by default * MacOSX portability improved == Removed modules == Some modules present in GRASS 6 have been removed due to architecture changes or replacements: * d.ask, d.colors, d.extend, d.extract, d.frame, d.mapgraph, d.measure, d.menu, d.save, d.what.rast, d.what.vect, d.zoom (old display architecture decommissioned) * d.histogram: integrated in wxGUI * g.ask: use g.findfile * g.setproj: use Location Wizard or 'g.proj -c' ('''state plane by county selection needs to be ported''') * i.points: new graphical version in wxGUI * i.class, i.ortho.photo, i.vpoints ('''need to be ported'''; old display architecture decommissioned) * raster: * r.average, r.median, r.sum merged into r.statistics, r.statistics2, r.statistics3 * r.bilinear merged into r.resamp.interp * r.digit ('''needs to be ported'''; old display architecture decommissioned) * r.le.patch, r.le.pixel, r.le.setup, r.le.trace: replaced by r.li.* * r.terraflow.short (FP version is sufficient) * v.digit (new wxPython digitizer) == Renamed modules == * '''nviz_cmd''' -> ''m.nviz.image'' * '''d.nviz''' -> ''m.nviz.script'' * '''g.transform''' -> ''m.transform'' == Renamed options == Some parameter names (options) have been renamed to achieve greater consistency. User scripts from GRASS 6 may need minor updates to run with GRASS 7 according to the changes listed below: === Overall changes === * fs= (field separator) -> separator= === Display module changes === * d.correlate * layers -> map * d.erase * color -> bgcolor * background -> bgcolor * d.rast * catlist and vallist options merged into new values option * overlay flag inverted to new opaque flag * d.rast.leg * rast -> raster * d.vect * wcolumn -> width_column * wscale -> width_scale * rot_column -> rotation_column === Database management module changes === * db.out.ogr * db_table -> table === General map management module changes === * g.mapsets * addmapset,removemapset -> operation * measure -> method * g.pnmcomp * background -> bgcolor * g.region * n -> north * s -> south * e -> east * w -> west * t -> top * b -> bottom === Image processing module changes === * i.atcorr * iimg -> input * iscl -> range * ialt -> elevation * ivis -> visibility * icnd -> parameters * oimg -> output * oscl -> rescale * input -> map * input -> map * i.fusion.brovey * outputprefix -> output_prefix * i.image.mosaic * images -> input * i.in.spotvgt * file -> input * rast -> output * i.in.gns * file -> input * vect -> output * i.spectral * raster -> input * coord -> east_north * i.tasscap * outprefix -> output_prefix === Raster module changes === * r.basins.fill * c_map -> cnetwork * t_map -> tnetwork * result -> output * r.blend * output -> output_prefix * r.colors.stddev * input -> map * r.external * the -r flag has been removed, approximate range is not ok * r.fill.dir * input -> elevation * elevation -> depressionless * r.flow * elevin -> elevation * aspin -> aspect * barin -> barrier * flout -> flowline * lgout -> flowpath * dsout -> density * r.li.* * map -> input * r.out.tiff * -t flag -> -w * r.plane * name -> output * r.reclass * use of rules parameter is mandatory in grass 7.0, also the reclass rules are piped through another program (use rules=-) * r.topmodel * belevation -> basin_elevation * r.sim.sediment * elevin -> elevation * dxin -> dx * dyin -> dy * detin -> det * tranin -> tran * tauin -> tau * manin -> man * maninval -> man_value * r.sim.water * elevin -> elevation * dxin -> dx * dyin -> dy * rain_val -> rain_value * infil -> infil * infil_val -> infil_value * manin -> man * manin_val -> man_value * r.surf.area * input -> map * input -> map * r.texture * measure -> method * r.to.vect * feature -> type * r.uslek * usle_k -> output * r.water.outlet * drainage -> input * basin -> output * r.what * east_north -> coordinates * r.distance * maps -> map === Vector module changes === * v.edit * t -> b * measure -> method * v.info * layer=integer -> layer=string * v.in.e00 * file -> input * vect -> output * v.in.wfs * wfs -> url * input -> map * v.out.ogr: the meaning of the -c flag has been reverted in GRASS 7 because the default must be to export only features with categories in the selected layer (the user needs to select a GRASS vector layer for v.out.ogr which will be translated to an OGR layer). If features without category are exported, the logic of matching a GRASS vector layer to a OGR layer is violated. This is particularly true for areas with islands which are in simple feature terminology polygons with holes. * v.rast.stats * colprefix -> column_prefix * input -> map * v.what.vect * vector -> map * qvector -> qmap