Changes between Version 4 and Version 5 of Grass7/RPCInterface


Ignore:
Timestamp:
Apr 23, 2014, 2:02:33 AM (10 years ago)
Author:
huhabla
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Grass7/RPCInterface

    v4 v5  
    1515 * Support for parallel reading of raster and vector maps using several server processes in parallel
    1616 * Providing a well designed object oriented interface to GRASS that will not change in case the underlying GRASS core libraries change
     17 * The possibility that none-GPL applications can directly access GRASS library functions without suffering from the viral Gnu Public License that is used in GRASS (well that depends on the licensing of the RPC interface as well)
    1718
    1819== Implementation ==
     
    4041pool of GRASS server processes.
    4142
     43=== Data Exchange ==
     44
     45First it must be determinate what data structures should be exchanged between server and client applications (this proposal is thrift specific):
     46
     47 * Strings, integer, double and boolean types as argument for functions and return values
     48 * Map metadata (raster, vector, voxel), region information, projection information as specific thrift structures using strings internally
     49 * Time stamps as specific thrift  structure using integers, strings and double types
     50 * Raster data (single row and whole map) as byte array (RGB map), integer array (CELL type), double array (FCELL and DCELL)
     51 * Vector data (single line/feature) as specific thrift structure with metadata (line type, ...), integer array for line_cats and double array for line_points
     52 * Several vector lines as ordered list using the specific thrift structure
     53 * Vector data  (single line/feature) as well known binary format stored in a binary array
     54 * Vector data  (whole map) as well known binary format (wkb) stored in a binary array
     55 * Voxel data (single value, tile and whole map) as byte array (RGB map) and double array (FCELL and DCELL)
     56 * A hash table (map) structure with internal string, integer and double arrays that represent single columns of a database table
     57
     58== Higher level API ==
     59
     60The server process should be able to keep maps open in read only mode, to allow fast access to raster and vector data for analysis. Maps are identified by their name@mapset id, hence a hash table will be used to store the file descriptors and map structures in the server process. Hence open and close map functions must be provided by the RPC interface.
     61
     62A single vector map should be kept open in editing mode for vector editing purposes.
     63
     64Proposed higher level functions:
     65 * Read a whole raster map as RGB array, integer array or double array using a specific extent and resolution informations
     66 * Read a whole vector map as wkb
     67 * Read a portion or a whole vector map attribute table
     68 * Get all metadata for vector, raster and voxel maps (spatio-temporal extent, resolution, ...) using a single function call
     69 * Call a GRASS module, using the server process specific location/mapset and region settings
     70 * List all available maps (raster, vector and voxel)
     71
     72 
    4273[1] https://thrift.apache.org/