Changes between Version 6 and Version 7 of WKTRaster/SeamlessArchitecture


Ignore:
Timestamp:
Jul 18, 2011, 1:34:13 PM (13 years ago)
Author:
bnordgren
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • WKTRaster/SeamlessArchitecture

    v6 v7  
    2222To handle raster and vector data seamlessly, it is first necessary to declare the types of information potentially handled by spatial operations. It is then necessary to define how each type of object may be used to communicate that information. The two categories of information addressed by this architecture are:
    2323
    24 # Purely spatial information
    25 # Spatial information with associated numeric value
     24 1. Purely spatial information
     25 1. Spatial information with associated numeric value
    2626
    2727The fundamental premise of this architecture is that there is a legitimate distinction between these types of information, but that ''both'' types of information may be conveyed using either raster or vector constructs. Operations may specify that they handle one or both types of information, and they are not required to handle the different information types evenhandedly. However, operations they should accept or produce ''all representations'' of the information they claim to handle (i.e. raster or vector.)
     
    315315Ideally, the iteration engine itself should not care about the information type of the inputs. For each output raster cell, a two input engine needs to determine:
    316316
    317 * Spatial information
    318 ** Does "Input 1" contain (or intersect) the output cell?
    319 ** Does "Input 2" contain (or intersect) the output cell?
    320 ** Is the output cell included in the result?
    321 * Value information
    322 ** Is "Input 1" Spatial Only or Spatial Value?
    323 *** If Spatial Value and "Input 1" contains the output cell, what is the value?
    324 ** Is "Input 2" Spatial Only or Spatial Value?
    325 *** If Spatial Value and "Input 2" contains the output cell, what is the value?
    326 ** Given spatial information, and potentially value information, for "Input 1" and "Input 2", what is the value to store in the result cell?
     317 * Spatial information
     318  * Does "Input 1" contain (or intersect) the output cell?
     319  * Does "Input 2" contain (or intersect) the output cell?
     320  * Is the output cell included in the result?
     321 * Value information
     322  * Is "Input 1" Spatial Only or Spatial Value?
     323    * If Spatial Value and "Input 1" contains the output cell, what is the value?
     324  * Is "Input 2" Spatial Only or Spatial Value?
     325    * If Spatial Value and "Input 2" contains the output cell, what is the value?
     326  * Given spatial information, and potentially value information, for "Input 1" and "Input 2", what is the value to store in the result cell?
    327327
    328328These determinations can be factored out of the main iteration engine as "extension points". Potential extension points may be defined as follows:
    329329
    330 * Input
    331 ** Does input contain a point?
    332 ** Is input spatial only or Spatial Value?
    333 ** What is the value of input at the specified point?
    334 * Spatial operation (is the output cell included in the result?)
    335 * Value computation (what is the value to store in the result?)
     330 * Input
     331  * Does input contain a point?
     332  * Is input spatial only or Spatial Value?
     333  * What is the value of input at the specified point?
     334 * Spatial operation (is the output cell included in the result?)
     335 * Value computation (what is the value to store in the result?)
    336336
    337337A very generic core utility could be provided with the definition of:
    338338
    339 # Input extension points defined for <code>geometry</code>, <code>geomval</code>, and <code>raster</code> data types.
    340 # Spatial operation extension points defined for common operations: difference, intersection, symmetric difference, and union.
    341 # Value computation extension points defined for: mask value, copy value from input 1 (preferred) or input 2 (if necessary), expression evaluation.
     339 1. Input extension points defined for <code>geometry</code>, <code>geomval</code>, and <code>raster</code> data types.
     340 1. Spatial operation extension points defined for common operations: difference, intersection, symmetric difference, and union.
     341 1. Value computation extension points defined for: mask value, copy value from input 1 (preferred) or input 2 (if necessary), expression evaluation.
    342342
    343343Such a core utility would be called with different arguments in order to handle different combinations of input arguments, spatial operations, and value computations. Each extension point represents a well-encapsulated, reusable module which can be combined in many ways with other extension points. There is only one grid iteration engine (for the two input case), and it contains only the basic iteration logic; as the logic for other necessary pieces has been factored out to separate modules.
     
    345345== See also ==
    346346
    347 * [http://www.cef-cfr.ca/uploads/Membres/WKTRasterSpecifications1.0.pdf Original WKT Raster presentation] (now Postgis Raster)
    348 * [http://trac.osgeo.org/postgis/wiki/WKTRaster Postgis Raster Home Page]
    349 * [http://docs.codehaus.org/download/attachments/31212/ISO19123 Primer.pdf ISO 19123 Primer]
     347 * [http://www.cef-cfr.ca/uploads/Membres/WKTRasterSpecifications1.0.pdf Original WKT Raster presentation] (now Postgis Raster)
     348 * [http://trac.osgeo.org/postgis/wiki/WKTRaster Postgis Raster Home Page]
     349 * [http://docs.codehaus.org/download/attachments/31212/ISO19123 Primer.pdf ISO 19123 Primer]