11.3 SDO_GEOR_IP.filter
Format
SDO_GEOR_IP.filter( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER DEFAULT 0, cropArea IN SDO_NUMBER_ARRAY DEFAULT NULL, bandNumbers IN VARCHAR2, filterParam IN VARCHAR2, filterKernel IN SDO_NUMBER_ARRAY DEFAULT NULL, storageParam IN VARCHAR2 DEFAULT NULL, outGeoraster IN OUT SDO_GEORASTER, parallelParam IN VARCHAR2 DEFAULT NULL);
or
SDO_GEOR_IP.filter( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER DEFAULT 0, cropArea IN SDO_GEOMETRY DEFAULT NULL, layerNumbers IN VARCHAR2, filterParam IN VARCHAR2, filterKernel IN SDO_NUMBER_ARRAY DEFAULT NULL, storageParam IN VARCHAR2 DEFAULT NULL, outGeoraster IN OUT SDO_GEORASTER, parallelParam IN VARCHAR2 DEFAULT NULL);
or
SDO_GEOR_IP.filter( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER DEFAULT 0, cropArea IN SDO_NUMBER_ARRAY DEFAULT NULL, bandNumbers IN VARCHAR2, filterParam IN VARCHAR2, filterKernel IN SDO_NUMBER_ARRAY DEFAULT NULL, storageParam IN VARCHAR2 DEFAULT NULL, rasterBlob IN OUT BLOB, outArea OUT SDO_GEOMETRY, outWindow OUT SDO_NUMBER_ARRAY);
or
SDO_GEOR_IP.filter( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER DEFAULT 0, cropArea IN SDO_GEOMETRY DEFAULT NULL, layerNumbers IN VARCHAR2, filterParam IN VARCHAR2, filterKernel IN SDO_NUMBER_ARRAY DEFAULT NULL, storageParam IN VARCHAR2 DEFAULT NULL, rasterBlob IN OUT BLOB, outArea OUT SDO_GEOMETRY, outWindow OUT SDO_NUMBER_ARRAY);
Description
Applies the convolution filter on the input GeoRaster object. The processed image is stored in the output GeoRaster object or in a BLOB.
Parameters
- inGeoRaster
-
The SDO_GEORASTER object for the filter operation.
- pyramidLevel
-
A number specifying the pyramid level for the filter operation in the source GeoRaster object. If null, the default is 0.
- cropArea
-
Crop area definition. If
cropAreais of type SDO_GEOMETRY, use thelayerNumbersparameter to specify one or more layer numbers; ifcropAreais of type SDO_NUMBER_ARRAY, use thebandNumbersparameter to specify one or more band numbers.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 crop area; see also the Usage Notes for SDO_SRID requirements.
- bandNumbers
-
A string identifying the physical band numbers on which the operation is to be performed. Use commas to delimit the values, and a hyphen to indicate a range (for example,
1-3for bands 1, 2, and 3). - layerNumbers
-
A string identifying the logical layer numbers on which the operation is to be performed. Use commas to delimit the values, and a hyphen to indicate a range (for example,
2-4for layers 2, 3, and 4). - filterParam
-
The type of the filter to be applied on the input GeoRaster. It is in the format
‘filterType=value’where value can be one of the following:LPF(low-pass filter, the default),HPF(high-pass filter),HBF(high-boost filter),MIN(minimum filter),MAX(maximum filter),MEDIAN(median filter),MODE(mode filter), orCUSTOM(user-provided filter kernel).filterParamcan also include:-
‘kernelSize=(kx, ky)’where kx, ky are the size of the kernel on the x and y direction. For a filter type other thanCUSTOM, thekxandkyshould be odd numbers greater than or equal to 3. -
‘p1 =value’, used by theHBFfilter to indicate the degree of boost.
-
- filterKernel
-
Required only when
filterType=CUSTOM. It is thekx * kynumbers in an SDO_NUMBER_ARRAY object. - storageParam
-
A string specifying storage parameters, as explained in Storage Parameters.
- outGeoRaster
-
The output SDO_GEORASTER object that reflects the results of the operation. Must be either a valid existing GeoRaster object or an empty GeoRaster object. (Empty GeoRaster objects are explained in Blank and Empty GeoRaster Objects.) Cannot be the same GeoRaster object as
inGeoRaster. - 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.)If parallelism is specified, the procedure performs an internal commit while the process is running. Therefore, you cannot roll back the results of this procedure. If an error occurs (even if it is raised by the Oracle parallel server), you must delete the resulting output GeoRaster object explicitly in order to roll back the operation.
- 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.
Usage Notes
For an introduction to image filtering, see Image Filtering.
The following are filterKernel values for some of the predefined 3x3 filters:
-
LPF: (1, 1, 1, 1, 1, 1, 1, 1, 1)*1/9
-
HPF: (-1, -1, -1, -1, 8, -1, -1, -1, -1)*1/9
-
HBF: (-k, -k, -k, -k, 8k, -k, -k, -k, -k)*1/9, where k is the boost factor specified by parameter
p1
For kernelSize, kx * ky must be less than 10000.
If the cropArea 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
cropAreaparameter geometry and the model space are different, thecropAreaparameter 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.)
Color map in the input GeoRaster object is not supported.
The output GeoRaster object has no pyramid or mask.
Examples
The following example creates a GeoRaster object that is the result of using the default low-pass filter on the input GeoRaster object. The filter kernel size is 3 by 3. (It refers to a table named GEORASTER_TABLE, whose definition is presented after Example 1-1 in Storage Parameters.)
DECLARE
gr1 sdo_georaster;
gr2 sdo_georaster;
cropArea sdo_geometry := null;
BEGIN
INSERT INTO georaster_table (georid, georaster)
VALUES (41, sdo_geor.init('RDT_1'))
RETURNING georaster INTO gr2;
SELECT georaster INTO gr1 FROM georaster_table WHERE georid=4;
sdo_geor_ip.filter(gr1, 0, cropArea, null, ‘filtertype=LPF, kernelsize=(3, 3)’, null, null, gr2);
UPDATE georaster_table SET georaster=gr2 WHERE georid=41;
COMMIT;
END;
/
The following example applies a custom (user–provided) 3 by 3 filter on the input GeoRaster object; the output is in a temporary BLOB. (It refers to a table named GEORASTER_TABLE, whose definition is presented after Example 1-1 in Storage Parameters.)
DECLARE
gr1 sdo_georaster;
gr2 sdo_georaster;
cropArea sdo_geometry := null;
out_lob BLOB;
outArea sdo_geometry := null;
outWindow sdo_geometry := null;
BEGIN
dbms_lob.create_temporary(out_lob, TRUE);
SELECT georaster INTO gr1 FROM georaster_table WHERE georid=4;
sdo_geor_ip.filter(gr1, 0, cropArea, null, ‘filtertype=CUSTOM, kernelsize=(3,3)’, sdo_number_array(1/4, 1/2, 1/4, 1/2, 1, 1/2, 1/4, 1.2, 1/4 ), 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_IP Package Reference