7.156 SDO_GEOR.updateRaster

Format

SDO_GEOR.updateRaster(
     targetGeoRaster     IN OUT SDO_GEORASTER, 
     targetPyramidLevel  IN NUMBER, 
     targetLayerNumbers  IN VARCHAR2, 
     targetArea          IN SDO_GEOMETRY, 
     sourceGeoRaster     IN SDO_GEORASTER, 
     sourcePyramidLevel  IN NUMBER, 
     sourceLayerNumbers  IN VARCHAR2, 
     updateUpperPyramids IN VARCHAR2, 
     bgValues            IN SDO_NUMBER_ARRAY DEFAULT NULL);

or

SDO_GEOR.updateRaster(
     targetGeoRaster     IN OUT SDO_GEORASTER, 
     targetPyramidLevel  IN NUMBER, 
     targetBandNumbers   IN VARCHAR2, 
     targetArea          IN SDO_NUMBER_ARRAY, 
     sourceGeoRaster     IN SDO_GEORASTER, 
     sourcePyramidLevel  IN NUMBER, 
     sourceBandNumbers   IN VARCHAR2, 
     updateUpperPyramids IN VARCHAR2, 
     bgValues            IN SDO_NUMBER_ARRAY DEFAULT NULL);

Description

Updates a specified pyramid of a specified area or the overlapping parts of one GeoRaster object with selected pyramid and selected bands or layers of another GeoRaster object.

Parameters

targetGeoRaster

GeoRaster object to be updated. (Be sure to make a copy of this object before you update it.)

targetPyramidLevel

Number specifying the pyramid level of the target GeoRaster object to be updated.

targetLayerNumbers

String specifying one or more layer numbers of layers in targetGeoRaster to be updated. Use commas to delimit numbers or ranges, and use a hyphen to indicate a range. Example: '1,3-5,7' for layers 1, 3, 4, 5, and 7.

targetBandNumbers

String specifying one or more band numbers of bands in targetGeoRaster to be updated. Use commas to delimit numbers or ranges, and use a hyphen to indicate a range. Example: '0,3-5,7' for bands 0, 3, 4, 5, and 7. Any bands that you specify for this parameter must be compatible with the bands to be updated in the target GeoRaster object.

targetArea

Area to be updated in targetGeoRaster: a rectangular window, specified either as a numeric array with the lower-left and upper-right coordinates or as an SDO_GEOMETRY object. The SDO_NUMBER_ARRAY type is defined as VARRAY(1048576) OF NUMBER.

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. If the data type is SDO_GEOMETRY, the minimum bounding rectangle (MBR) of the geometry object is used as the target area; see also the Usage Notes for SDO_SRID requirements.

If targetArea is of type SDO_GEOMETRY, use the targetLayerNumbers and sourceLayerNumbers parameters to specify one or more layer numbers; if targetArea is of type SDO_NUMBER_ARRAY, use the targetBandNumbers and sourceBandNumbers parameters to specify one or more band numbers.

If the specified area does not intersect with the spatial extent of targetGeoRaster, no update is performed. If this parameter is specified as null, all of the overlapping area is updated.

For more information about using this parameter, see Image Pyramiding: Parallel Generation and Partial Update.

sourceGeoRaster

GeoRaster object in which specified layers are to be used to update targetGeoRaster.

sourcePyramidLevel

Number specifying the pyramid level of the sourceGeoRaster object.

sourceLayerNumbers

String specifying one or more layer numbers of layers in sourceGeoRaster to be used to update targetGeoRaster. Use commas to delimit numbers or ranges, and use a hyphen to indicate a range. Example: '1,3-5,7' for layers 1, 3, 4, 5, and 7.

Any layers that you specify for this parameter must be compatible with the layers to be updated in the target GeoRaster object.

sourceBandNumbers

String specifying one or more band numbers of bands in sourceGeoRaster to be used to update targetGeoRaster. Use commas to delimit numbers or ranges, and use a hyphen to indicate a range. Example: '0,3-5,7' for bands 0, 3, 4, 5, and 7.

Any bands that you specify for this parameter must be compatible with the bands to be updated in the target GeoRaster object.

updateUpperPyramids

String (TRUE or FALSE) specifying whether to update upper-level pyramids. (This parameter has no default value; you should always specify it.) For more information about using this parameter, see Image Pyramiding: Parallel Generation and Partial Update.

bgValues

Background values for filling partially empty raster blocks. It is only useful when the source GeoRaster object has empty raster blocks and the current operation leads to partially empty raster blocks (see Empty Raster Blocks). The number of elements in the SDO_NUMBER_ARRAY object must be either one (same filling value used for all bands) or the band dimension size (a different filling value for each band, respectively). For example, SDO_NUMBER_ARRAY(1,5,10) fills the first band with 1, the second band with 5, and the third band with 10. The default bgValues are zero (0).

The filling values must be valid cell values as specified by the target cell depth background values for filling sparse data.

Usage Notes

Note:

Be sure to make a copy of the targetGeoRaster object before you call this procedure, because the changes made to this GeoRaster object might not be reversible after the procedure completes.

If both GeoRaster objects are georeferenced, they must use the same coordinate system, have the same cell depth, and have the same spatial resolutions at the specified pyramid levels; however, the targetPyramidLevel and sourcePyramidLevel values can be different. If both GeoRaster objects are not georeferenced, the ULTCoordinates will be considered to co-locate them into each other.

The two GeoRaster objects can have different dimensions and sizes.

If the targetArea parameter data type is SDO_GEOMETRY, the SDO_SRID value must be one of the following:

  • Null, to specify raster space

  • A value from the SRID column of the MDSYS.CS_SRS table

    If the SDO_SRID values for the window parameter geometry and the model space are different, the window parameter geometry is automatically transformed to the coordinate system of the model space before the operation is performed. (Raster space and model space are explained in GeoRaster Data Model.)

If the targetArea parameter specifies a geodetic MBR, it cannot cross the date line meridian. For information about geodetic MBRs, see Oracle Spatial Developer's Guide.

Any existing bitmap masks are not updated.

If the source GeoRaster object is not large enough to fill in the target area, the uncovered area will not be updated.

If the target GeoRaster object has pyramids or is compressed, or both, the updates will be reflected in the pyramids and the compression.

To update upper-level pyramids, you must specify the updateUpperPyramids parameter as 'TRUE'. (This parameter has no default value; you should always specify 'TRUE' or 'FALSE'.)

Examples

The following example updates a specified area in band 1 of the specified target GeoRaster object with band 0 of the same area of another GeoRaster object.

DECLARE
  gr1 sdo_georaster;
  gr2 sdo_georaster;
  area sdo_number_array := sdo_number_array(-200,-50,201,162);
BEGIN
  SELECT georaster INTO gr2 FROM georaster_table WHERE georid=0 FOR UPDATE;
  SELECT georaster INTO gr1 FROM georaster_table WHERE georid=1;
  SDO_GEOR.updateRaster(gr2, 0, '1', area, gr1, 0, '0', 'true');
  UPDATE GEORASTER_TABLE SET georaster=gr2 WHERE georid=0;
  COMMIT;
END;
/