12.1 SDO_GEOR_RA.classify
Format
Operation on a Single GeoRaster Object
SDO_GEOR_RA.classify( inGeoRaster IN SDO_GEORASTER, expression IN VARCHAR2, rangeArray IN SDO_NUMBER_ARRAY, valueArray 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);
or
SDO_GEOR_RA.classify( inGeoRaster IN SDO_GEORASTER, cropArea IN SDO_NUMBER_ARRAY, expression IN VARCHAR2, rangeArray IN SDO_NUMBER_ARRAY, valueArray 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.classify( inGeoRaster IN SDO_GEORASTER, cropArea IN SDO_GEOMETRY, expression IN VARCHAR2, rangeArray IN SDO_NUMBER_ARRAY, valueArray IN SDO_NUMBER_ARRAY, 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
SDO_GEOR_RA.classify( inGeoRaster IN SDO_GEORASTER, cropArea IN SDO_NUMBER_ARRAY, expression IN VARCHAR2, rangeArray IN SDO_NUMBER_ARRAY, valueArray IN SDO_NUMBER_ARRAY, 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.classify( inGeoRaster IN SDO_GEORASTER, cropArea IN SDO_GEOMETRY, expression IN VARCHAR2, rangeArray IN SDO_NUMBER_ARRAY, valueArray IN SDO_NUMBER_ARRAY, 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');
Operation on an Array of GeoRaster Objects
SDO_GEOR_RA.classify( georArray IN SDO_GEORASTER_ARRAY, expression IN VARCHAR2, rangeArray IN SDO_NUMBER_ARRAY, valueArray 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);
or
SDO_GEOR_RA.classify( georArray IN SDO_GEORASTER_ARRAY, cropArea IN SDO_NUMBER_ARRAY, expression IN VARCHAR2, rangeArray IN SDO_NUMBER_ARRAY, valueArray 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.classify( georArray IN SDO_GEORASTER_ARRAY, cropArea IN SDO_GEOMETRY, expression IN VARCHAR2, rangeArray IN SDO_NUMBER_ARRAY, valueArray IN SDO_NUMBER_ARRAY, 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
SDO_GEOR_RA.classify( georArray IN SDO_GEORASTER_ARRAY, cropArea IN SDO_NUMBER_ARRAY, expression IN VARCHAR2, rangeArray IN SDO_NUMBER_ARRAY, valueArray IN SDO_NUMBER_ARRAY, 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.classify( georArray IN SDO_GEORASTER_ARRAY, cropArea IN SDO_GEOMETRY, expression IN VARCHAR2, rangeArray IN SDO_NUMBER_ARRAY, valueArray IN SDO_NUMBER_ARRAY, 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');
Operation on GeoRaster Objects Specified by a Cursor
SDO_GEOR_RA.classify( inGeoRasters IN SYS_REFCURSOR, expression IN VARCHAR2, rangeArray IN SDO_NUMBER_ARRAY, valueArray 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);
or
SDO_GEOR_RA.classify( inGeoRasters IN SYS_REFCURSOR, cropArea IN SDO_NUMBER_ARRAY, expression IN VARCHAR2, rangeArray IN SDO_NUMBER_ARRAY, valueArray 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.classify( inGeoRasters IN SYS_REFCURSOR, cropArea IN SDO_GEOMETRY, expression IN VARCHAR2, rangeArray IN SDO_NUMBER_ARRAY, valueArray IN SDO_NUMBER_ARRAY, 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
SDO_GEOR_RA.classify( inGeoRasters IN SYS_REFCURSOR, cropArea IN SDO_NUMBER_ARRAY, expression IN VARCHAR2, rangeArray IN SDO_NUMBER_ARRAY, valueArray IN SDO_NUMBER_ARRAY, 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.classify( inGeoRasters IN SYS_REFCURSOR, cropArea IN SDO_GEOMETRY, expression IN VARCHAR2, rangeArray IN SDO_NUMBER_ARRAY, valueArray IN SDO_NUMBER_ARRAY, 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 after applying the specified classification operation on the input GeoRaster object or objects.
There are several formats for each of three input GeoRaster object or objects specification options (SDO_GEORASTER, SDO_GEORASTER_ARRAY, SYS_REEFCURSOR). Within each group of formats, you can specify no crop area or a crop area of SDO_NUMBER_ARRAY or SDO_GEOMETRY. For an SDO_GEOMETRY crop area, you can specify a polygon clip option, and the output can be either a GeoRaster object or a BLOB.
Parameters
- inGeoRaster
-
Input GeoRaster object.
- 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 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
isTRUE
, then only cells within the crop area geometry are processed, and all cells outside the crop area geometry are set to zero (0). If the parameterpolygonClip
isFALSE
, then all cells within the minimum bounding rectangle are processed.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.
- expression
-
An arithmetic expression used to classify cell values. See the Usage Notes for more information about specifying this parameter.
- rangeArray
-
A number array that defines ranges for classifying cell values. The array must contain at least one element.
- valueArray
-
A number array that defines the target cell value for each range. The number of elements must be 1 greater than the elements in
rangeArray
(that is, its length must berangeArray
+1). - 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 if any cell value involved in the expression evaluation has a NODATA value, the expression is evaluated as a NODATA value; thus, 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
. - polygonClip
-
Ignored if
cropArea
is null. Otherwise, the stringTRUE
causes thecropArea
geometry to be used to process the data; the stringFALSE
or a null value causes the minimum bounding rectangle (MBR) of thecropArea
geometry to be used to process the data. - 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 raster either in a GeoRaster object or a single BLOB, based on the input GeoRaster object or objects and the expression
parameter, which is an arithmetic expression string. For each cell in the output GeoRaster object, expression
is evaluated against corresponding cell values in the input GeoRaster object, and the following algorithm is used to calculate cell values of the output GeoRaster object:
if (value of expression < rangeArray[0]) cellValue=valueArray[0] else if (value of expression >= rangeArray[n-1]) cellValue=valueArray[n] else if rangeArray[m-1] <= value of expression < rangeArray[m] cellValue=valueArray[m]
In the expression
calculation:
-
Length of
rangeArray
is n -
Length of
valueArray
is n+1 -
0 < m < n-1
For more information, see Raster Algebra Language.
There are several formats for each of the input GeoRaster object or objects specification options (SDO_GEORASTER, SDO_GEORASTER_ARRAY, SYS_REFCURSOR). Within each group of formats, you can specify no crop area or a crop area of SDO_NUMBER_ARRAY or SDO_GEOMETRY. For an SDO_GEOMETRY crop area, you can specify a polygon clip option, and the output can be either a GeoRaster object or a BLOB.
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 classifies cell values based on the cell values of the first layer. The output is a GeoRaster object.
DECLARE geor SDO_GEORASTER; geor1 SDO_GEORASTER; rangeArray SDO_NUMBER_ARRAY; valueArray SDO_NUMBER_ARRAY; BEGIN rangeArray:=sdo_number_array(70,80,90,100,110,120,130,140,150,160,170,180); valueArray:=sdo_number_array(70,80,90,100,110,120,130,140,150,160,170,180,190); select georaster into geor from georaster_table where georid = 1; insert into georaster_table values (5, sdo_geor.init('rdt_1', 5)) returning georaster into geor1; sdo_geor_ra.classify(geor,'{0}',rangeArray,valueArray,null,geor1); update georaster_table set georaster = geor1 where georid = 5; commit; END; /
The following example classifies cell values based on the cell values of the first layer. The output is a BLOB.
DECLARE geor SDO_GEORASTER; out_lob BLOB; outArea sdo_geometry; outWindow sdo_number_array; rangeArray SDO_NUMBER_ARRAY; valueArray SDO_NUMBER_ARRAY; BEGIN rangeArray:=sdo_number_array(70,80,90,100,110,120,130,140,150,160,170,180); valueArray:=sdo_number_array(70,80,90,100,110,120,130,140,150,160,170,180,190); select georaster into geor from georaster_table where georid = 1; dbms_lob.create_temporary(out_lob, TRUE); sdo_geor_ra.classify(geor,'{0}',rangeArray,valueArray,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; /
Parent topic: SDO_GEOR_RA Package Reference