Changes between Version 43 and Version 44 of GSoC/2018


Ignore:
Timestamp:
Mar 10, 2018, 3:12:52 PM (6 years ago)
Author:
wenzeslaus
Comment:

typos and clarifications

Legend:

Unmodified
Added
Removed
Modified
  • GSoC/2018

    v43 v44  
    298298  * Reasonable defaults for things like region.
    299299  * CLI and API still allows user to specify any of the above.
    300  * GRASS GIS requires GRASS GIS Database, Location and Mapset to be set up to maintain data consistency, efficiency and security. Unfortunately, this is cumbersome when GRASS GIS is not the primary tools one is using.
     300 * GRASS GIS requires GRASS GIS Database, Location and Mapset to be set up to maintain data consistency, efficiency and security. Unfortunately, this is cumbersome when GRASS GIS is not the primary tool user is using.
    301301 * There are different ways for calling GRASS modules without starting iterative GRASS session:
    302302  * Modules executed with the `--exec` interface (see [https://grass.osgeo.org/grass74/manuals/grass7.html#batch-jobs-with-the-exec-interface the grass7 manual page] >=7.2)
     
    305305  * Use the standalone `grass_session` package (new)
    306306  * Set up environmental variables and "RC file" yourself (the classic method).
    307  * None of these allows one to skip the database setup phase. This leads to the need for constant reimplementing of setup, import and export steps in various environments including ''user scripts'' (in Bash, Python, R), QGIS Processing, gvSIG/SEXTANTE, uDig/JGrassTools, and all the web/server/cloud tools and applications which use GRASS GIS as a processing backend (e.g. PyWPS server).
     307 * None of these allows the user to skip the database setup phase. This leads to the need for constant reimplementing of setup, import and export steps in various software and environments including ''user scripts'' (in Bash, Python, R), QGIS Processing, gvSIG/SEXTANTE, uDig/JGrassTools, and all the web/server/cloud tools and applications which use GRASS GIS as a processing backend (e.g. PyWPS server).
    308308 * GRASS GIS itself can make it easier for the callers (at least in most cases) by implementing an interface which would allow to use GRASS GIS modules without explicit dealing with GRASS GIS database.
    309309 * The command line call using the proposed interface would look like these:
     
    315315}}}
    316316
    317  * The `grass` command would have to parse the command line, find the files which should be maps (either using `file://` or perhaps anything would work) and import/export/link them, and then call the actual command.
     317 * The `grass` command would have to parse the command line, compare it with the module XML interface description, find the files which should be maps (either using `file://` and ideally anything else), potentially uncompress, and import/export/link them, and then call the actual command (GRASS module).
    318318  * The input maps could be linked (external) rather than imported (except for the cases when projection differs) which should be faster than import.
    319319  * Doing the work in GRASS rather than in the other software would allow GRASS to make the decision about the details, for example the data exchange (r.external vs r.import vs r.in.gdal - see [https://github.com/qgis/QGIS/pull/5426#issuecomment-345067457 comment from MarkusN for QGIS Processing issue] or [https://lists.osgeo.org/pipermail/grass-dev/2017-November/086598.html mailing list]).
    320  * GRASS Database would be created with an appropriate Location (projection based on input or additional CLI input).
     320 * GRASS Database would be created with an appropriate Location (projection based on input files or additional CLI input).
    321321  * The GRASS GIS Database, Location and Mapset should be created on the fly and deleted afterwards (the `.grassrc` wouldn't be used).
    322322 * Computational region would be set based on input file(s) or additional CLI input.
    323323 * The output maps could be be also linked (e.g. r.external.out) with projection same as input which is should be faster then export.
    324324  * Ideally this should work also with PostGIS and databases provided through GDAL/OGR.
    325  * Proposal should discuss and address how advanced things such raster algebra, multi-map inputs and outputs, temporal framework, cartography and visualization tools will work.
     325 * Proposal should discuss and address how advanced things such raster algebra, multi-map inputs and outputs, temporal framework, cartography and visualization tools will work (or what are the limits).
    326326 * Use should be able to always specify the details manually:
    327327
     
    330330grass run --region="s=55600 n=60500..." --mask=some/mask.tiff r.lake elevation=some/file.tiff ...
    331331grass run --crs=EPSG:3358 --mask=some/mask.tiff r.lake elevation=some/file.tiff ...
     332grass run --use=some/file_a.tiff --get=some/file_b.tiff r.slope.aspect elevation=file_a aspect=file_b
    332333}}}
    333334
     
    364365   * Similar complex command line interfaces to learn from: !GeoGig, !ImageMagic (compare new and old CLI), Git, Docker
    365366 * Test and training tasks:
    366   * Tests and extent `--exec` functionality:
     367  * Tests and extend `--exec` functionality:
    367368   * Add `--tmp-location` which runs `--exec` in a database/location/mapset which are created at the beginning and deleted at the end.
    368369   * Add `-c XY` and `-c LL` for simple unprojected and latitude-longitude Locations (compare options in the current CLI to wxGUI Location Wizard).
    369370   * Add `--clean` (current default) and `--no-clean` which say if `--exec` should clean the `.tmp` directory in the Mapset (for parallel execution).
    370371   * Add `--lock` (current default) and `--no-lock` which say if `--exec` should lock the Mapset (for parallel execution).
    371    * Add `--region` to set a temporary computational region for the execution.
     372   * Add `--region` to set a temporary computational region for the execution, e.g. `--region="raster=raster_name"`
    372373   * Add `--import-raster=some/file.tiff` which imports (r.in.gdal or r.import) a raster file (same for vector).
    373374   * Add `--link-raster=some/file.tiff` which links (r.external) a raster file (same for vector).