12.2 SDO_GEOR_RA.diff

Format

SDO_GEOR_RA.diff(
     geor          IN SDO_GEORASTER, 
     geor1         IN SDO_GEORASTER, 
     cropArea      IN SDO_NUMBER_ARRAY, 
     storageParam  IN VARCHAR2 DEFAULT NULL, 
     outGeoRaster  IN OUT SDO_GEORASTER, 
     nodata        IN VARCHAR2 DEFAULT 'FALSE', 
     nodataValue   IN NUMBER DEFAULT 0, 
     parallelParam IN VARCHAR2 DEFAULT NULL);
SDO_GEOR_RA.diff(
     geor          IN SDO_GEORASTER, 
     geor1         IN SDO_GEORASTER, 
     cropArea      IN SDO_GEOMETRY, 
     storageParam  IN VARCHAR2 DEFAULT NULL, 
     outGeoRaster  IN OUT SDO_GEORASTER, 
     nodata        IN VARCHAR2 DEFAULT 'FALSE', 
     nodataValue   IN NUMBER DEFAULT 0, 
     ploygonClip   IN VARCHAR2 DEFAULT 'FALSE',
     parallelParam IN VARCHAR2 DEFAULT NULL);

or

SDO_GEOR_RA.diff(
     geor          IN SDO_GEORASTER,
     geor1         IN SDO_GEORASTER,
     cropArea      IN SDO_GEOMETRY,
     storageParam  IN VARCHAR2 DEFAULT NULL,
     rasterBlob    IN OUT BLOB,
     outArea       OUT SDO_GEOMETRY,
     outWindow     OUT SDO_NUMBER_ARRAY,
     nodata        IN VARCHAR2 DEFAULT 'FALSE',
     nodataValue   IN NUMBER default 0;
SDO_GEOR_RA.diff(
     geor          IN SDO_GEORASTER,
     geor1         IN SDO_GEORASTER,
     cropArea      IN SDO_GEOMETRY,
     storageParam  IN VARCHAR2 DEFAULT NULL,
     rasterBlob    IN OUT BLOB,
     outArea       OUT SDO_GEOMETRY,
     outWindow     OUT SDO_NUMBER_ARRAY,
     nodata        IN VARCHAR2 DEFAULT 'FALSE',
     nodataValue   IN NUMBER default 0,
     polygonClip   IN VARCHAR2 DEFAULT 'FALSE');

Description

Generates a new GeoRaster object by performing the diff operation (explained in the Usage Notes). The new raster is either in a GeoRaster object or a single BLOB.

Parameters

geor

First input GeoRaster object.

geor1

Second input GeoRaster object.

cropArea

Crop area definition. If the data type is SDO_GEOMETRY, the minimum bounding rectangle (MBR) of the geometry object is used as a rectangular crop area to generate the output GeoRaster object. If the parameter polygonClip is TRUE, then only cells within the crop area geometry are processed, and all cells outside the crop area geometry are set to zero (0). See also the Usage Notes for SDO_GEOR.reproject for SDO_SRID requirements.

If the data type is SDO_NUMBER_ARRAY, the parameter identifies the upper-left (row, column) and lower-right (row, column) coordinates of a rectangular window, and raster space is assumed.

storageParam

A string specifying storage parameters, as explained in Storage Parameters.

outGeoRaster

Output GeoRaster object.

rasterBlob

BLOB to hold the output of the processing result. It must exist or have been initialized before the operation.

outArea

An SDO_GEOMETRY object containing the MBR (minimum bounding rectangle) in the model coordinate system of the resulting object.

outWindow

An SDO_NUMBER_ARRAY object identifying the coordinates of the upper-left and lower-right corners of the output window in the cell space.

nodata

The string TRUE specifies that for any NODATA cells in an input GeoRaster object, the corresponding cells in the output GeoRaster object are to be set to the value specified for the nodataValue parameter. The string FALSE (the default) causes cells with NODATA values to be considered as regular data. NODATA values and value ranges are discussed in NODATA Values and Value Ranges.

nodataValue

The value used to set NODATA cells if the nodata parameter value is the string TRUE.

polygonClip

Ignored if cropArea is null. Otherwise, the string TRUE causes the cropArea value to be used to crop the mosaicked data; the string FALSE or a null value causes the MBR of cropArea to be used to crop the output image.

parallelParam

Specifies the degree of parallelism for the operation. If specified, must be in the form parallel=n, where n is greater than 1. The database optimizer uses the degree of parallelism specified by this parameter. If not specified, then by default there is no parallel processing. (For more information, see Parallel Processing in GeoRaster.)

Specifying parallelParam means that you cannot roll back the results of this procedure, as explained in the Usage Notes.

Usage Notes

This procedure generates a new GeoRaster object by taking two input GeoRaster objects and applying the over operation: specifically, for each cell value in each layer, if the values in the two input objects are different, the value on the first input is output, but if the values in the two input objects are the same, the output is zero.

The two input GeoRaster objects must have same dimension size and same number of bands; otherwise, the ORA-13397 error is generated.

If you specify parallelParam, some execution units of the procedure run as autonomous transactions, which means that some changes are committed while the procedure is running and therefore you cannot roll back those changes. If you do not specify this parameter, you can roll back all changes.

For more information, see Logical Operations.

Examples

The following example performs the diff operation on the two input GeoRaster objects. The output is a GeoRaster object.

declare
  geor       SDO_GEORASTER;
  geor1      SDO_GEORASTER;
  geor2      SDO_GEORASTER;
  geom       sdo_geometry;
begin
  select georaster into geor from georaster_table where georid = 100;
  select georaster into geor1 from georaster_table where georid = 101;
  select georaster into geor2 from georaster_table where georid = 102 for update;
  geom:=null;
  sdo_geor_ra.diff(geor,geor1,geom,null,geor2);
  update georaster_table set georaster = geor2 where georid = 102;
end;
/

The following example performs the diff operation on the two input GeoRaster objects. The output is a GeoRaster object. The output is a BLOB.

DECLARE 
  geor       SDO_GEORASTER;
  geor1      SDO_GEORASTER;
  out_lob    BLOB;
  outArea    sdo_geometry;
  outWindow  sdo_number_array;  
  geom       sdo_geometry;
BEGIN
  select georaster into geor from georaster_table where georid = 100;
  select georaster into geor1 from georaster_table where georid = 101;
  dbms_lob.create_temporary(out_lob, TRUE);
  geom:=null;
  sdo_geor_ra.diff(geor,geor1,geom,null,out_lob, outArea, outWindow);
  if outWindow is not null then
     dbms_output.put_line('output window: (' || outWindow(1) || ',' ||
                           outWindow(2) || ',' || outWindow(3) || ',' || outWindow(4) || ')');
  end if;
  dbms_lob.freeTemporary(out_lob);
END;
/