7.131 SDO_GEOR.setGCPGeorefModel

Format

SDO_GEOR.setGCPGeorefModel(
     inGeoraster     IN OUT SDO_GEORASTER 
     gcpGeorefModel  IN SDO_GEOR_GCPGEOREFTYPE);

Description

Sets the GCP-based georeferencing model information for a GeoRaster object.

Parameters

inGeoraster

GeoRaster object.

gcpGeorefModel

Object containing the following: FFMethodType, nGCP, GCPs, solutionAccuracy.

Usage Notes

For an explanation of georeferencing using GCPs, see Ground Control Point (GCP) Georeferencing Model.

The SDO_GEOR_GCPGEOREFTYPE object type is defined in SDO_GEOR_GCPGEOREFTYPE Object Type.

This procedure stores the GCP information in the GeoRaster SRS metadata component. If gcpGeorefModel is null and if the GeoRaster object has a georeferencing model, this model information will be deleted.

If there are not enough GCPs specified in gcpGeorefModel for the geometric model specified, the function will still succeed, but an exception will be raised if the SDO_GEOR.georeference is called specifying this GeoRaster object.

Examples

The following example sets the GCP-based georeferencing model information in a specified GeoRaster object.

DECLARE
   gr1          sdo_georaster;
   georefModel  SDO_GEOR_GCPGEOREFTYPE;
   GCPs         SDO_GEOR_GCP_COLLECTION;
   rms          sdo_number_array;
BEGIN
   SELECT georaster INTO gr1 from herman.georaster_table WHERE georid=10 FOR UPDATE;
 
   GCPs:=SDO_GEOR_GCP_COLLECTION(
                    SDO_GEOR_GCP('21', '', 1, 
                            2, sdo_number_array(25.625000, 73.875000),
                            2, sdo_number_array(237036.937500, 897987.187500),
                            NULL, NULL),
                     SDO_GEOR_GCP('22', '', 1, 
                            2, sdo_number_array(100.625000, 459.125000),
                            2, sdo_number_array(237229.562500, 897949.687500),
                            NULL, NULL),
                      SDO_GEOR_GCP('23', '', 1, 
                            2, sdo_number_array(362.375000, 77.875000),
                            2, sdo_number_array(237038.937500, 897818.812500),
                                NULL, NULL),
                       SDO_GEOR_GCP('24', '', 1, 
                             2, sdo_number_array(478.875000, 402.125000),
                             2, sdo_number_array(237201.062500, 897760.562500),
                             NULL, NULL),
                        SDO_GEOR_GCP('25', '', 2, 
                             2, sdo_number_array(167.470583,  64.030686),
                             2, sdo_number_array(237032.015343, 897916.264708),
                             NULL, NULL),
                         SDO_GEOR_GCP('26', '', 2, 
                             2, sdo_number_array(101.456177,  257.915534),
                             2, sdo_number_array(237128.957767, 897949.271912),
                             NULL, NULL)
               );
 
   georefModel := SDO_GEOR_GCPGEOREFTYPE('Affine',
                                                                             GCPs.count, GCPs, rms);
   sdo_geor.setGCPGeorefModel(gr1, georefModel);
   UPDATE georaster_table SET georaster=gr1 WHERE georid=10;
 
   COMMIT;
END;
/