Changes between Initial Version and Version 1 of rfc22_rpc


Ignore:
Timestamp:
Mar 28, 2008, 5:24:21 PM (16 years ago)
Author:
warmerdam
Comment:

preliminary

Legend:

Unmodified
Added
Removed
Modified
  • rfc22_rpc

    v1 v1  
     1= RFC 22: RPC Georeferencing =
     2
     3Author: Frank Warmerdam[[BR]]
     4Contact: warmerdam@pobox.com[[BR]]
     5Status: Proposed
     6
     7== Summary ==
     8
     9It is proposed that GDAL support an additional mechanism for geolocation
     10of imagery based on rational polynomial coefficients (RPCs) represented
     11as metadata.
     12
     13Many modern raw satellite products are distributed with RPCs, including
     14products from !GeoEye, and !DigitalGlobe.   RPCs provide a higher systematic
     15description of georeferencing over an image, and also contain information
     16on the viewing geometry that in theory makes orthocorrection (given
     17a DEM) and some 3D operations like building height computation possible.
     18
     19== RPC Domain Metadata ==
     20
     21Datasets with RPCs will include the following dataset level
     22metadata items in the "RPC" domain to identify the rational polynomials.
     23
     24* ERR_BIAS: Error - Bias. The RMS bias error in meters per horizontal axis of all points in the image (-1.0 if unknown)
     25* ERR_RAND: Error - Random. RMS random error in meters per horizontal axis of each point in the image (-1.0 if unknown)
     26* LINE_OFF: Line Offset
     27* SAMP_OFF: Sample Offset
     28* LAT_OFF: Geodetic Latitude Offset
     29* LONG_OFF: Geodetic Longitude Offset
     30* HEIGHT_OFF: Geodetic Height Offset
     31* LINE_SCALE: Line Scale
     32* SAMP_SCALE: Sample Scale
     33* LAT_SCALE: Geodetic Latitude Scale
     34* LONG_SCALE: Geodetic Longitude Scale
     35* HEIGHT_SCALE: Geodetic Height Scale
     36* LINE_NUM_COEFF (1-20): Line Numerator Coefficients. Twenty coefficients for the polynomial in the Numerator of the rn equation. (space separated)
     37* LINE_DEN_COEFF (1-20): Line Denominator Coefficients. Twenty coefficients for the polynomial in the Denominator of the rn equation. (space separated)
     38* SAMP_NUM_COEFF (1-20): Sample Numerator Coefficients. Twenty coefficients for the polynomial in the Numerator of the cn equation. (space separated)
     39* SAMP_DEN_COEFF (1-20): Sample Denominator Coefficients. Twenty coefficients for the polynomial in the Denominator of the cn equation. (space separated)
     40
     41These fields are directly derived from the document prospective GeoTIFF RPC document at:
     42 
     43  http://geotiff.maptools.org/rpc_prop.html
     44
     45== Updating Drivers ==
     46
     47# NITF: Already supports RPCs in this model, but will be modified to put them in the RPC domain instead of the primary metadata domain.  Add support for .RPB files.
     48# GTiff: Will be upgraded to support reading Digital Globe .RPB files, and possibly support for Space Imaging rpc.txt files.
     49
     50== Changes to !GenImgProj Transformer ==
     51
     52Currently it is difficult to reliably create a warp transformer based on RPCs
     53using GDALGenImgProjTransformer() as it will use a geotransform in preference
     54to RPCs if available.  Many images with useful RPC information also include
     55a geotransform (approximate or accurate).  It is therefore proposed to modify
     56the GDALCreateGenImgProjTransformer() function to make it practical to provide
     57more direction in the creation of the transformer.  The proposed new function
     58is:
     59
     60{{{
     61void *
     62GDALCreateGenImgProjTransformer2( GDALDatasetH hSrcDS, GDALDatasetH hDstDS,
     63                                  char **papszOptions );
     64}}}
     65
     66Supported Options:
     67
     68 * SRC_SRS: WKT SRS to be used as an override for hSrcDS.
     69 * DST_SRS: WKT SRS to be used as an override for hDstDS.
     70 * GCPS_OK: If false, GCPs will not be used, default is TRUE.
     71 * MAX_GCP_ORDER: the maximum order to use for GCP derived polynomials if possible.  The default is to autoselect based on the number of GCPs.  A value of -1 triggers use of Thin Plate Spline instead of polynomials.
     72 * METHOD: may have a value which is one of GEOTRANSFORM, GCP_POLYNOMIAL, GCP_TPS, GEOLOC_ARRAY, RPC to force only one geolocation method to be considered on the source dataset.
     73* RPC_HEIGHT: A fixed height to be used with RPC calculations.
     74
     75This replaces the older function which did not include support for
     76passing arbitrary options, and was thus not easily extended.  The old
     77function will be re-implemented with a call to the new functions.
     78
     79The most important addition is the METHOD option which can be set to
     80specifically use one of the image to georeferenced coordinate system
     81methods instead of leaving it up to the code to pick the one it thinks
     82is best.
     83
     84== Changes to gdalwarp and gdaltransform ==
     85
     86In order to facilitate passing transformer options into the updated
     87GDALCreateGenImgProjTransformer2(), the gdalwarp and gdaltransform
     88programs (built on this function) will be updated to include a -to (transformer
     89option) switch, and to use the new function.
     90
     91== Preserving Geolocation Through Translation ==
     92
     93The RPC information needs to be copied and preserved through translations
     94that do not alter the spatial arrangement of the data.  To that end RPC
     95metadata copying will be added to:
     96
     97 * VRT driver's !CreateCopy().
     98 * GDALDriver's default !CreateCopy().
     99 * GDALPamDataset::!CopyInfo()
     100 * gdal_translate will be updated to copy RPC metadata to the intermediate internal VRT if, and only if, no resizing or subsetting is being done.
     101
     102== Backward Compatability Issues ==
     103
     104Previously the NITF driver returned RPC metadata in the default domain.  With the implementation of this RFC for GDAL 1.6.0 any applications using this metadata would need to consult the RPC domain instead.
     105
     106== SWIG Bindings Issues ==
     107
     108 * The raw access is by the established metadata api, so no changes are needed for this.
     109 * The Warp API is only bound at a high level, so there should be no changes in this regard.
     110
     111== Implementation ==
     112
     113This work will be implemented by Frank Warmerdam with support from the Canadian Nuclear Safety Commission.
     114