RPC es un racionales coeficientes polinómicos (Rational Polynomial coeficiente), para las coordenadas de pixel de imagen (número de fila) se calcula entre cada punto el mismo nombre que las coordenadas (longitud, latitud, altitud) y el lado homólogo preprocesamiento de imagen de teledetección. archivo RPC, por definición, es un archivo de texto que contiene los coeficientes polinómicos racionales. archivos RPC por lo general tienen dos formatos:. un tipo se muestra en la Figura 1, el formato de archivo llamado RPC, otro se muestra en la figura 2, se hace referencia al formato de archivo RPB.
En el procedimiento de procesamiento, los coeficientes necesarios archivo RPC / PRB contenida en la estructura definida de lectura, o una estructura GDALRPCInfo GDAL definidas en la biblioteca, y el otro procesamiento subsiguiente para el cálculo de coordenadas. estructura gdal.h GDALRPCInfo se define en el archivo de cabecera:
typedef struct {
double dfLINE_OFF;
double dfSAMP_OFF;
double dfLAT_OFF;
double dfLONG_OFF;
double dfHEIGHT_OFF;
double dfLINE_SCALE;
double dfSAMP_SCALE;
double dfLAT_SCALE;
double dfLONG_SCALE;
double dfHEIGHT_SCALE;
double adfLINE_NUM_COEFF[20];
double adfLINE_DEN_COEFF[20];
double adfSAMP_NUM_COEFF[20];
double adfSAMP_DEN_COEFF[20];
double dfMIN_LONG;
double dfMIN_LAT;
double dfMAX_LONG;
double dfMAX_LAT;
} GDALRPCInfo;
librería GDAL define una lectura RPC / RPB función de la API de archivos, () y GDALLoadRPBFile (), con el fin de RPC leído correctamente / RPB contenidos del archivo son GDALLoadRPCFile, también necesitará utilizar la función GDALExtractRPCInfo (). Esta interfaz de tres gdal.h funciones se definen en el archivo de cabecera:
char CPL_DLL ** CPL_STDCALL GDALLoadRPBFile( const char *pszFilename,
char **papszSiblingFiles );
char CPL_DLL ** CPL_STDCALL GDALLoadRPCFile( const char *pszFilename,
char **papszSiblingFiles );
int CPL_DLL CPL_STDCALL GDALExtractRPCInfo( char **, GDALRPCInfo * );
biblioteca RPC GDAL usando las necesidades de archivo de contenido de lectura / RPB que se dividirá en dos etapas: primero usando GDALLoadRPBFile () o GDALLoadRPCFile (), respectivamente, obteniendo una lista de par clave-valor que comprende una cadena de archivo de RPB coeficiente de RPC RPC o archivos (char **) ; se obtiene entonces en el paso anterior como char * lista de cadenas GDALExtractRPCInfo () la función del primer argumento, el segundo argumento de GDALRPCInfo estructura RPC puede adquirido con éxito la información, la función devuelve un valor de tipo int y vuelve 0 ejecutará en nombre de la función fallo devuelve 1 para una operación exitosa.
En el primer paso, la función GDALLoadRPBFile () y GDALLoadRPCFile (), el nombre del archivo RPC / RPB primer argumento, el segundo parámetro pasado a NULL. Se requiere una atención especial, si el archivo es RPB, se requiere la función GDALLoadRPBFile (), pero la extensión del archivo debe ser RPB .rpb o .RPB trabajo, el caso no importa, (por ejemplo RPBFileName.rpb / .RPB); si RPC archivo, se requiere GDALLoadRPCFile () es un sufijo, a continuación, los archivos RPC no pueden ser .rpc o .RPC , y debe ser _rpc.txt o _RPC.TXT trabajo, el caso no importa, (por ejemplo RPCFileName_rpc.txt / _RPC.TXT ).
Sobre GDALLoadRPBFile () y GDALLoadRPCFile () la función se puede encontrar en el paquete de instalación de GDAL código fuente, el camino específico para archivo / gcore / gdal_rpcimdio.cpp GDAL_Package, si la compilación e instalación de GDAL, compilarlo en versión de depuración de GDAL (./configure --enable-debug), durante la depuración del software puede entrar en la función GDALLoadRPBFile () o GDALLoadRPCFile () para ver su fuente.