12.8 SDO_GEOR_RA.stack
Format (SDO_GEORASTER_ARRAY input)
SDO_GEOR_RA.stack( georArray IN SDO_GEORASTER_ARRAY, cropArea IN SDO_NUMBER_ARRAY, layerList IN SDO_NUMBER_ARRAY, method IN VARCHAR2, 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.stack( georArray IN SDO_GEORASTER_ARRAY, cropArea IN SDO_GEOMETRY, layerList IN SDO_NUMBER_ARRAY, method IN VARCHAR2, storageParam IN VARCHAR2 DEFAULT NULL, outGeoRaster IN OUT SDO_GEORASTER, nodata IN VARCHAR2 DEFAULT 'FALSE', nodataValue IN NUMBER DEFAULT 0, polygonClip IN VARCHAR2 DEFAULT 'FALSE', parallelParam IN VARCHAR2 DEFAULT NULL);
or
DO_GEOR_RA.stack( georArray IN SDO_GEORASTER_ARRAY, cropArea IN SDO_NUMBER_ARRAY, layerList IN SDO_NUMBER_ARRAY, method IN VARCHAR2, storageParam IN VARCHAR2 DEFAULT NULL, rasterBlob IN OUT NOCOPY BLOB, outArea OUT SDO_GEOMETRY, outWindow OUT SDO_NUMBER_ARRAY, nodata IN VARCHAR2 DEFAULT ‘FALSE’, nodataValue IN NUMBER default 0,;
SDO_GEOR_RA.stack( georArray IN SDO_GEORASTER_ARRAY, cropArea IN SDO_GEOMETRY, layerList IN SDO_NUMBER_ARRAY, method IN VARCHAR2, storageParam IN VARCHAR2 DEFAULT NULL, rasterBlob IN OUT NOCOPY 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’);
Format (SYS_REFCURSOR input)
SDO_GEOR_RA.stack( inGeoRasters IN SYS_REFCURSOR, cropArea IN SDO_NUMBER_ARRAY, bandNumber IN NUMBER, method IN VARCHAR2, 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.stack( inGeoRasters IN SYS_REFCURSOR, cropArea IN SDO_GEOMETRY, bandNumber IN NUMBER, method IN VARCHAR2, storageParam IN VARCHAR2 DEFAULT NULL, outGeoRaster IN OUT SDO_GEORASTER, nodata IN VARCHAR2 DEFAULT 'FALSE', nodataValue IN NUMBER DEFAULT 0, polygonClip IN VARCHAR2 DEFAULT 'FALSE', parallelParam IN VARCHAR2 DEFAULT NULL);
or
DO_GEOR_RA.stack( inGeoRasters IN SYS_REFCURSOR, cropArea IN SDO_NUMBER_ARRAY, bandNumber IN NUMBER, method IN VARCHAR2, storageParam IN VARCHAR2 DEFAULT NULL, rasterBlob IN OUT NOCOPY BLOB, outArea OUT SDO_GEOMETRY, outWindow OUT SDO_NUMBER_ARRAY, nodata IN VARCHAR2 DEFAULT 'FALSE', nodataValue IN NUMBER default 0,;
SDO_GEOR_RA.stack( inGeoRasters IN SYS_REFCURSOR, cropArea IN SDO_GEOMETRY, bandNumber IN NUMBER, method IN VARCHAR2, storageParam IN VARCHAR2 DEFAULT NULL, rasterBlob IN OUT NOCOPY 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 single-layer raster either in a GeoRaster object or a single BLOB whose cell values are a local statistics value of a list of layers or bands of the input GeoRaster objects. The input layers are specified by the layerList
parameter (or input bands by the bandNumber
parameter), and the statistics method is specified by the method
parameter.
Parameters
- georArray
-
An array of GeoRaster objects. The data type is SDO_GEOR_ARRAY, which is defined as
VARRAY(10485760) OF SDO_GEORASTER
. - inGeoRasters
-
Cursor (SYS_REFCURSOR type) for the input GeoRaster objects.
- cropArea
-
Crop area definition. If the SDO_GEOMETRY object has a non-null SRID, the source GeoRaster objects must be georeferenced; otherwise, the source GeoRaster objects can be georeferenced or non-georeferenced. If
polygonClip
isFALSE
, the MBR of thecropArea
is used to crop the data. IfpolygonClip
isTRUE
, the geometry of thecropArea
is used to crop the data.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.
- layerList
-
A number array to specify which bands of the input GeoRaster objects are used to compute statistics value for output. For example, if
georArray
specifies three GeoRaster objectsgeor1
,geor2
,geor3
, which have 2,3,4 bands respectively, a layer list {0,3,7} is used to specify three bands as follows:-
The first band of the first GeoRaster object
geor1
-
The second band of the second GeoRaster object
geor2
-
The third band of the third GeoRaster object
geor3
-
- bandNumber
-
If null, then all bands of the input GeoRaster objects are involved in the statistics calculation; otherwise, the specified band of the input GeoRaster objects is involved in the statistics calculation. For example, if
bandNumber
is0
(zero), then all of the first band of the input GeoRaster objects are involved in the statistics calculation. - method
-
A string to specify what local statistics value should be returned. It should be one of the following values:
max
,min
,median
,mean
,std
,sum
,minority
,majority
,diversity
. - 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 if there are any NODATA cells in the specifiedlayerList
parameter, the corresponding cells in the output GeoRaster object are to be set to the value specified for thenodataValue
parameter. The stringFALSE
(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 stringTRUE
. - 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
All of the input GeoRaster objects must have same dimension size; 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.
Examples
The following example performs the stack operation on two input GeoRaster objects. The output is a GeoRaster object.
DECLARE geor SDO_GEORASTER; geor1 SDO_GEORASTER; geor2 SDO_GEORASTER; geom mdsys.sdo_geometry; BEGIN geom:= sdo_geometry(2003,82394, NULL, sdo_elem_info_array(1, 1003, 1), sdo_ordinate_array(20283.775, 1011087.9, 18783.775, 1008687.9, 21783.775, 1008687.9, 22683.775+0.001, 1009587.9+0.001, 20283.775, 1011087.9)); select georaster into geor from georaster_table where georid = 100; select georaster into geor2 from georaster_table where georid = 102; select georaster into geor1 from georaster_table where georid = 101 for update; sdo_geor_ra.stack(SDO_GEORASTER_ARRAY(geor,geor2),geom,SDO_NUMBER_ARRAY(3,5),'max',null,geor1,'false',0,'TRUE'); update georaster_table set georaster = geor1 where georid = 101; END; /
The following example performs the stack operation on two input GeoRaster objects. The output is a BLOB.
DECLARE geor SDO_GEORASTER; geor2 SDO_GEORASTER; geom sdo_geometry; out_lob BLOB; outArea sdo_geometry; outWindow sdo_number_array; BEGIN geom:= null; select georaster into geor from georaster_table where georid = 100; select georaster into geor2 from georaster_table where georid = 102; dbms_lob.create_temporary(out_lob, TRUE); sdo_geor_ra.stack(SDO_GEORASTER_ARRAY(geor,geor2),geom,SDO_NUMBER_ARRAY(3,5),'max',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; /
The following example performs the stack operation on the first band of the two input GeoRaster objects in a cursor. The output is a GeoRaster object.
DECLARE geor1 SDO_GEORASTER; mycur SYS_REFCURSOR; geom mdsys.sdo_geometry; BEGIN geom:= sdo_geometry(2003,82394, NULL, sdo_elem_info_array(1, 1003, 1), sdo_ordinate_array(20283.775, 1011087.9, 18783.775, 1008687.9, 21783.775, 1008687.9, 22683.775+0.001, 1009587.9+0.001, 20283.775, 1011087.9)); open mycur for 'select georaster from georaster_table where georid in (100, 102)'; select georaster into geor1 from georaster_table where georid = 101 for update; sdo_geor_ra.stack(mycur,geom,0,'max',null,geor1,'false',0,'TRUE'); update georaster_table set georaster = geor1 where georid = 101; END; /
Parent topic: SDO_GEOR_RA Package Reference