1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
typedef struct ScalingFactors ScalingFactors;
struct ScalingFactors
{
float altitude;
float rough;
float zon_wind;
float merr_wind;
float atm_pres;
float ozone;
float rel_hum;
float *rad;
unsigned char *gain_set;
unsigned long samp_rate;
float *sun_spec_flux;
char spare_1;
};
ScalingFactors scalFact;
void readInfoScalFact(char* filename, DataSetDescription dsd)
{
FILE *file = fopen(filename,"rb");
if(file != NULL)
{
fseek(file,dsd.offset,SEEK_SET);
fread(&scalFact.altitude,sizeof(float),1,file);
fread(&scalFact.rough,sizeof(float),1,file);
fread(&scalFact.zon_wind,sizeof(float),1,file);
fread(&scalFact.merr_wind,sizeof(float),1,file);
fread(&scalFact.atm_pres,sizeof(float),1,file);
fread(&scalFact.ozone,sizeof(float),1,file);
fread(&scalFact.rel_hum,sizeof(float),1,file);
scalFact.rad = (float*)malloc(sizeof(float)*15);
fread(scalFact.rad,sizeof(float),15,file);
scalFact.gain_set = (unsigned char*)malloc(sizeof(unsigned char)*16*5);
fread(scalFact.gain_set,sizeof(unsigned char),16*5,file);
fread(&scalFact.samp_rate,sizeof(unsigned long),1,file);
scalFact.sun_spec_flux = (float*)malloc(sizeof(float)*15);
fread(scalFact.sun_spec_flux,sizeof(float),15,file);
fread(&scalFact.spare_1,sizeof(char),1,file);
fclose(file);
}
else
{
printf("Error while opening %s in binary mode",filename);
}
}
void displayScalFact()
{
int i;
printf("Scaling Factors : \n\taltitude : %lf\n\troughness : %f\n\tzonal wind : %f\n\tmeridional wind : %f\n\tAtmospherique pressure : %f\n\tOzone : %f\n\tRadiances :",scalFact.altitude,scalFact.rough,scalFact.zon_wind,scalFact.merr_wind,scalFact.atm_pres,scalFact.ozone);
for(i=0;i<15;i++)
{
printf("\n\t\tRadiance (%i) : %lf",(i+1),scalFact.rad[i]);
}
printf("\n\tGain Set : ");
for(i=0;i<16*5;i++)
{
printf("\n\t\tGain Set (%i) : %i",(i+1),scalFact.gain_set[i]);
}
printf("\n\tsampling rate = %ld",scalFact.samp_rate);
printf("\n\tSpectral Flux : ");
for(i=0;i<15;i++)
{
printf("\n\t\tSpectral Flux (%i) : %f",(i+1),scalFact.sun_spec_flux[i]);
}
printf("\n\tSpare : %i",scalFact.spare_1);
} |
Partager