Changes between Version 5 and Version 6 of Grass7/RPCInterface
- Timestamp:
- 04/23/14 02:08:42 (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Grass7/RPCInterface
v5 v6 26 26 * Map metadata read access as single client function will do on the server side: open map; read metadata; close map; send data 27 27 28 * fast raster and vector map read access as single client function will do on server side: open map; read requested map into memory based on bounding box and render resolution; close map; send data28 * Fast raster and vector map read access as single client function will do on server side: open map; read requested map into memory based on bounding box and render resolution; close map; send data 29 29 30 * vector editing: keep a single vector map in update state open in a dedicated grass vector editing process. In case of a fatal error, this map may be lost or corrupted. It is important that this process will not be used for other purposes than single vector map editing.30 * Vector editing: keep a single vector map in update state open in a dedicated grass vector editing process. In case of a fatal error, this map may be lost or corrupted. It is important that this process will not be used for other purposes than single vector map editing. 31 31 32 * vector analysis functionality that need to keep vector maps open in read only state for fast topological access. Information's about the open vector maps (i. e. the position of the next line to be read) may be lost in case the server process terminates.32 * Vector analysis functionality that need to keep vector maps open in read only state for fast topological access. Information's about the open vector maps (i. e. the position of the next line to be read) may be lost in case the server process terminates. 33 33 34 34 * Same for raster map analysis … … 41 41 pool of GRASS server processes. 42 42 43 === Data Exchange == 43 44 [1] https://thrift.apache.org/ 44 45 45 First it must be determinate what data structures should be exchanged between server and client applications (this proposal is thrift specific): 46 47 === Data Exchange === 48 49 First we must determinate what data structures should be exchanged between server and client applications (this proposal is thrift specific): 46 50 47 51 * Strings, integer, double and boolean types as argument for functions and return values 48 52 * Map metadata (raster, vector, voxel), region information, projection information as specific thrift structures using strings internally 49 53 * 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)54 * Raster data (single row and whole map) as byte array (RGB map), integer array (CELL type) and double array (FCELL and DCELL) 51 55 * 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 56 * Several vector lines as ordered list using the specific thrift structure … … 56 60 * A hash table (map) structure with internal string, integer and double arrays that represent single columns of a database table 57 61 58 == Higher level API==62 === Higher level API === 59 63 60 64 The 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. … … 69 73 * Call a GRASS module, using the server process specific location/mapset and region settings 70 74 * List all available maps (raster, vector and voxel) 71 72 73 [1] https://thrift.apache.org/