Toolboxes: Difference between revisions
Jump to navigation
Jump to search
⚠️AnneGhisla (talk | contribs) (→List of toolboxes: new idea: atmospheric toolbox) |
m (moved GRASS repository layout proposal to Toolboxes: more reasonable name) |
(No difference)
|
Revision as of 15:09, 21 May 2011
- Discussion about the suitability of the proposed change on the talk side of this wiki page; discussion of the possible method on this side of the page.
Hi all! That rather radical ideas I present here are rather for future, at least for GRASS 8, but I'd like present it now for long-term reflection. Probably all notice that for over two years there is big increase in add-on repository (including me). There are modules of different quality: from fully GRASS toolsets, to shell or python scripts, from actively developed tools to abandoned, from all-purpose tools to very specialized etc. I also think that that activity will be grown due to substitute shell script by python Similar situation is in main GRASS branch: there are modules for all like conversion tools, interpolation methods, georeferencing etc, and very specialized modules for very limited group of users (like wild fire), there are also some modules out of date. I'm not enthusiastic about moving new modules into main branch. Almost every module has different coding style and it will lasting in future that GRASS would be difficult to maintain. On the other hand some people complains that some interesting modules are only available as add-ons (I assume for some reasons they cannot install it) So my suggestion is to rearrange future GRASS form two layers (main branch/add-on) into three layers architecture: 1) GRASS core layer: much limited limited than now, only GIS environment and basic, all-puropse tools, slow changes, great stability 2) GRASS toolset layer: oficcial GRASS thematic tools and toolsets (like terrain analysis, hydrological analysis, photo-interpretation, landscape analysis etc,) every toolset with its maintainer, rapid development, new ready to use tools after quality control may appear here, also some of current main branch tool shall be moved to that layer 3) GRASS community layer: everything else like experimental, actively development new tools, that what do not pass quality control, simple scripts, etc.... What benefits: for developers and contributors: much clear situation and better publication path. Toolset layer should be much more open for new tools than current GRASS main branch for users: faster access to new tools. There is no doubt that new tools are faster developed (less risk) than GRASS core Binaries with toolsets could be maintained as separate apt/urpmi/pacman/yum/exe etc packages, so it may appear in linux repository separetly form GRASS core. There is only loose ideas. Most of them are of course taken from R (core/toolsets/rest of packages; separate core and package development) but I think it is worth of some discuss ... regards Jarek
Repository layout
Current repository layout
- grass |- trunk |- raster/ |- vector/ |- ... - grass-addons |- raster/ |- vector/ |- ...
Proposed repository layout
- grass |- trunk |- raster/ |- vector/ |- ... - grass-tools |- trunk |- raster/ |- vector/ |- ... - grass-addons |- raster/ |- vector/ |- ...
Proposed toolboxes
Toolbox is a topic-based set of modules used for solving common GIS analysis, like hydrology, networking, LRS, etc. Toolbox should be easily installed by the user using g.extension
- add toolbox
g.extension toolbox=hydrology operation=add
Source code of the selected modules is downloaded from SVN, compiled and afterwards also installed to the user-specified (~/.grass7) or system (/usr/lib/grass7) directory.
Give the possibility with a flag (like -a) to install also modules from addons related that toolbox
g.extension -a toolbox=hydrology operation=add
- remove toolbox
g.extension toolbox=hydrology operation=remove
- list of modules of selected toolbox
g.extension -l toolbox=hydrology
User can also add/remove selected module
g.extension module=r.stream.angle operation=add
List of toolboxes
Toolbox name | Toolbox code | Description | Correlate toolbox |
3D Raster | R3 | All `r3.*` modules | |
3D Visualization | V3 | nviz_cmd | |
Cartography | CA | ps.map, ps.output | |
Database | DB | All `db.*` modules | Vector analysis |
Geostatistcal | GS | v.krige maybe other | |
GUI | GI | wxGUI | |
Hydrology | HY | r.watershed, r.terraflow, `r.stream.*` modules in addons, maybe other, r.flow, r.sim.water, r.sim.sediment | Raster analysis |
Imagery | IM | All `i.*` modules, selected r.* modules | |
Landascape analysis | LA | All `r.li.*` modules, maybe other | Raster analysis |
Lidar analysis | LI | All `v.lidar.*` modules, v.surf.bspline, r.in.xyz | |
Linear Reference Systems | LS | All `v.lrs.*` modules | Vector analysis |
Network analysis | NA | All `v.net.*` modules, maybe other | Vector analysis |
Raster analysis | RA | A lot of basic `r.*` modules (like r.buffer, r.reclass, r.fillnull...) | |
Terrain analysis | TA | Different kind of analysis: soil (r.sun,), terrain (r.slope.aspect, r.los), geomorphometry (r.param.scale) | Raster analysis |
Vector analysis | VA | A lot of basic `v.*` modules (like v.buffer, v.centroid, v.overlay...) | Database |
Atmospheric tools | AT |
HM comment: do we need import/export Toolbox for all of the specialized *.in* and *.out.* commands? gdal/ogr commands should be in core.
List of modules (trunk)
Display
Module | Core/Tools/Addons | Toolbox(es) |
d.barscale | ? | |
d.colorlist | ? | |
d.colortable | ? | |
d.correlate | ? | |
d.erase | ? | |
d.font | ? | |
d.fontlist | ? | |
d.geodesic | ? | |
d.graph | ? | |
d.grid | ? | |
d.his | ? | |
d.histogram | ? | |
d.info | ? | |
d.labels | ? | |
d.legend | ? | |
d.linegraph | ? | |
d.nviz | ? | |
d.path | ? | |
d.polar | ? | |
d.profile | ? | |
d.rast | ? | |
d.rast.arrow | ? | |
d.rast.edit | ? | |
d.rast.leg | ? | |
d.rast.num | ? | |
d.rgb | ? | |
d.rhumbline | ? | |
d.shadedmap | ? | |
d.text | ? | |
d.thematic.area | ? | |
d.title | ? | |
d.vect | ? | |
d.vect.chart | ? | |
d.vect.thematic | ? | |
d.where | ? |
Database
Module | Core/Tools/Addons | Toolbox(es) |
db.columns | ? | |
db.connect | ? | |
db.copy | ? | |
db.createdb | ? | |
db.databases | ? | |
db.describe | ? | |
db.drivers | ? | |
db.dropcolumn | ? | |
db.dropdb | ? | |
db.droptable | ? | |
db.droptable | ? | |
db.execute | ? | |
db.in.ogr | ? | |
db.login | ? | |
db.out.ogr | ? | |
db.select | ? | |
db.tables | ? | |
db.test | ? |
General
Module | Core/Tools/Addons | Toolbox(es) |
g.access | C | |
g.cairocomp | C | |
g.copy | C | |
g.dirseps | C | |
g.extension | C | |
g.filename | C | |
g.findetc | C | |
g.findfile | C | |
g.gisenv | C | |
g.gui | C | |
g.list | C | |
g.manual | C | |
g.mapset | C | |
g.mapsets | C | |
g.message | C | |
g.mkfontcap | C | |
g.mlist | C | |
g.mremove | C | |
g.parser | C | |
g.pnmcomp | C | |
g.ppmtopng | C | |
g.proj | C | |
g.region | C | |
g.remove | C | |
g.rename | C | |
g.tempfile | C | |
g.transform | C | |
g.version | C |
Imagery
Module | Core/Tools/Addons | Toolbox(es) |
i.albedo | ? | |
i.atcorr | ? | |
i.biomass | ? | |
i.cca | ? | |
i.cluster | ? | |
i.eb.eta | ? | |
i.eb.evapfr | ? | |
i.eb.h_SEBAL01 | ? | |
i.eb.soilheatflux | ? | |
i.emissivity | ? | |
i.evapo.time | ? | |
i.fft | ? | |
i.fusion.brovey | ? | |
i.gensig | ? | |
i.gensigset | ? | |
i.group | ? | |
i.his.rgb | ? | |
i.ifft | ? | |
i.image.mosaic | ? | |
i.in.spotvgt | ? | |
i.landsat.rgb | ? | |
i.latlong | ? | |
i.maxlik | ? | |
i.modis.qc | ? | |
i.oif | ? | |
i.pca | ? | |
i.rectify | ? | |
i.rgb.his | ? | |
i.smap | ? | |
i.spectral | ? | |
i.sunhours | ? | |
i.target | ? | |
i.tasscap | ? | |
i.vi | ? | |
i.zc | ? |
Misc
Module | Core/Tools/Addons | Toolbox(es) |
m.cogo | ? | |
m.measure | ? | |
m.proj | ? |
Postscript
Module | Core/Tools/Addons | Toolbox(es) |
ps.map | ? |
Raster
3D raster
Module | Core/Tools/Addons | Toolbox(es) |
r3.cross.rast | T | 3D Raster |
r3.gwflow | T | 3D Raster |
r3.in.ascii | T | 3D Raster |
r3.in.v5d | T | 3D Raster |
r3.info | T | 3D Raster |
r3.mapcalc | T | 3D Raster |
r3.mask | T | 3D Raster |
r3.mkdspf | T | 3D Raster |
r3.null | T | 3D Raster |
r3.out.ascii | T | 3D Raster |
r3.out.v5d | T | 3D Raster |
r3.out.vtk | T | 3D Raster |
r3.stats | T | 3D Raster |
r3.timestamp | T | 3D Raster |
r3.to.rast | T | 3D Raster |
r3.univar | T | 3D Raster |
Vector
Various
Module | Core/Tools/Addons | Toolbox(es) |
nviz | ? | |
nviz_cmd | ? | |
wximgview | ? | |
wxpyimgview | ? | |
xganim | ? | |
ximgview | ? |
List of selected AddOns modules
See GRASS AddOns for full list of available modules. Feel free to extend this list.
Module | Core/Tools/Addons | Toolbox(es) | Note |
r.stream.angle | T | HY | |
r.seg | T | IM | It could be rename to `i.seg` |
i.topocorr | T | IM | |
r.diversity | T | LA | |
Ps.output | ? | ||
... | ? |
How to implement
propose 1
- add html tag <param> in the description.html with these options:
<param name = "core"> for core module <param name = "tool" value="tool_code/codes"> for toolbox <param name = "addons" [value="tool_code/codes"]> for addons, value is optional
- create a script to generate a xml file for each toolbox
- add toolbox option in g.extension to read the xml and install the modules