El uso de GDAL propias funciones para leer el método de archivo RPC

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.


Figura archivo 1 RPC
Figura archivo 2 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.

Liberadas dos artículos originales · ganado elogios 0 · Vistas 103

Supongo que te gusta

Origin blog.csdn.net/maybcsdn/article/details/105006523
Recomendado
Clasificación