removed batch processing (easier done on command line) and changed interactive question for filename to cmd argument
This commit is contained in:
parent
131c9ac93e
commit
3816adac27
|
@ -1,17 +1,12 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
using namespace std;
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
float phi1, Phi, phi2;
|
|
||||||
float ci, iq, fit, avgIQ;
|
|
||||||
int phase, ds;
|
|
||||||
} data[3000][3000];
|
|
||||||
|
|
||||||
int round2( double x )
|
int myRound( double x )
|
||||||
{
|
{
|
||||||
double fl, ce;
|
double fl, ce;
|
||||||
|
|
||||||
|
@ -30,25 +25,25 @@ int ReadFileInfo(FILE *oimStream, int *xmax, int *ymax, double *stepSize )
|
||||||
double x, y, dxmax;
|
double x, y, dxmax;
|
||||||
long count;
|
long count;
|
||||||
|
|
||||||
*stepSize = 0;
|
*stepSize = 0.0;
|
||||||
dxmax = 0;
|
dxmax = 0.0;
|
||||||
*xmax = 0;
|
*xmax = 0;
|
||||||
|
|
||||||
while( fgets( lineBuffer, 200, oimStream ) != NULL )
|
while(fgets(lineBuffer, 200, oimStream ) != NULL)
|
||||||
{
|
{
|
||||||
if( lineBuffer[0] == '#' )
|
if( lineBuffer[0] == '#' )
|
||||||
{
|
{
|
||||||
if( strcmp( lineBuffer, "# GRID: SqrGrid" ) == 0 )
|
if( strcmp( lineBuffer, "# GRID: SqrGrid" ) == 0 )
|
||||||
{
|
{
|
||||||
printf("\nThe file is already a square grid file.\nProgram terminated.");
|
printf("The file is already a square grid file.\nProgram terminated.\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
count = 0;
|
count = 0;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if( sscanf( lineBuffer, "%*lf %*lf %*lf %lf %lf %*lf %*lf %*i %*i %*lf %*lf", &x, &y ) != 2 )
|
if( sscanf( lineBuffer, "%*lf %*lf %*lf %lf %lf %*lf %*lf %*i %*i %*lf", &x, &y ) != 2 )
|
||||||
return 0;
|
return 0;
|
||||||
if( *stepSize == 0 && x != 0 )
|
if( *stepSize == 0.0 && x != 0.0 )
|
||||||
*stepSize = x;
|
*stepSize = x;
|
||||||
if( x > dxmax )
|
if( x > dxmax )
|
||||||
{
|
{
|
||||||
|
@ -64,49 +59,47 @@ int ReadFileInfo(FILE *oimStream, int *xmax, int *ymax, double *stepSize )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int xx, yy, zz, xlimit, ylimit, zlimit, xlimitOut, xOut;
|
struct
|
||||||
|
{
|
||||||
|
float phi1, Phi, phi2;
|
||||||
|
float float1, float2, float3, float4;
|
||||||
|
int int1, int2;
|
||||||
|
} data[3000][3000];
|
||||||
|
int xx, yy, xlimit, ylimit, xlimitOut, xOut;
|
||||||
double stepSize;
|
double stepSize;
|
||||||
char zFilename[50], zOutFilename[50], filename[50];
|
char outFilename[50], filename[50];
|
||||||
FILE *inStream, *outStream;
|
FILE *inStream, *outStream;
|
||||||
int zStartNumber, zEndNumber;
|
|
||||||
|
|
||||||
printf( "\nFilenames must have the format ""root_xxx.ang"""
|
sprintf( filename, "%s", argv[1]);
|
||||||
"\nwith xxx indicating a 3-digit integer"
|
|
||||||
"\nEnter oim map filename-root, the start integer and the end integer number of the files: " );
|
|
||||||
|
|
||||||
scanf( "%s %i %i", filename, &zStartNumber, &zEndNumber );
|
printf("Hex2Cub\n");
|
||||||
zlimit = zEndNumber-zStartNumber+1;
|
|
||||||
|
|
||||||
//read the first data file and get all necessary start data
|
|
||||||
sprintf( zFilename, "%s_%03i.ang", filename, zStartNumber );
|
if( (inStream = fopen(filename, "r" )) == NULL )
|
||||||
if( (inStream = fopen( zFilename, "r" )) == NULL )
|
|
||||||
{
|
{
|
||||||
printf( "\nCan't open %s", zFilename );
|
printf( "Can't open %s\n", filename );
|
||||||
exit( 1 );
|
exit( 1 );
|
||||||
}
|
}
|
||||||
|
printf("Reading %s\n", filename);
|
||||||
if( ReadFileInfo( inStream, &xlimit, &ylimit, &stepSize ) == 0 )
|
if( ReadFileInfo( inStream, &xlimit, &ylimit, &stepSize ) == 0 )
|
||||||
{
|
{
|
||||||
printf( "\nWrong file format in %s", filename );
|
printf( "Wrong file format in %s\n", filename);
|
||||||
exit( 1 );
|
exit( 1 );
|
||||||
}
|
}
|
||||||
fclose( inStream );
|
fclose( inStream );
|
||||||
|
sprintf( outFilename, "cub_%s", filename);
|
||||||
|
|
||||||
for( zz=0; zz<zlimit; zz++ )
|
if( (inStream = fopen( filename, "r" )) != NULL )
|
||||||
{
|
{
|
||||||
printf("\nReading");
|
outStream = fopen( outFilename, "w" );
|
||||||
sprintf( zFilename, "%s_%03i.ang", filename, zz+zStartNumber );
|
|
||||||
sprintf( zOutFilename, "%s_cub_%03i.ang", filename, zz+zStartNumber );
|
|
||||||
if( (inStream = fopen( zFilename, "r" )) != NULL )
|
|
||||||
{
|
|
||||||
outStream = fopen( zOutFilename, "w" );
|
|
||||||
//read file header
|
//read file header
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if( fscanf( inStream, "%[^\n]\n", lineBuffer ) == EOF )
|
if( fscanf( inStream, "%[^\n]\n", lineBuffer ) == EOF )
|
||||||
{
|
{
|
||||||
printf( "\nEarly end of file encountered in ANG file" );
|
printf( "Early end of file encountered in ANG file\n" );
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
//write the file header
|
//write the file header
|
||||||
|
@ -123,22 +116,19 @@ int main(int argc, char* argv[])
|
||||||
|
|
||||||
for( yy=0; yy<ylimit; yy++)
|
for( yy=0; yy<ylimit; yy++)
|
||||||
{
|
{
|
||||||
printf(".");
|
|
||||||
for( xx=0; xx<xlimit; xx++)
|
for( xx=0; xx<xlimit; xx++)
|
||||||
{
|
{
|
||||||
//t1: pattern quality, iq: confidence index, avgIQ: average Image Quality
|
if( sscanf( lineBuffer, "%f %f %f %*f %*f %f %f %i %i %f",
|
||||||
if( sscanf( lineBuffer, "%f %f %f %*f %*f %f %f %i %i %f %f",
|
|
||||||
&data[xx][yy].phi1,
|
&data[xx][yy].phi1,
|
||||||
&data[xx][yy].Phi,
|
&data[xx][yy].Phi,
|
||||||
&data[xx][yy].phi2,
|
&data[xx][yy].phi2,
|
||||||
&data[xx][yy].iq,
|
&data[xx][yy].float1,
|
||||||
&data[xx][yy].ci,
|
&data[xx][yy].float2,
|
||||||
&data[xx][yy].phase,
|
&data[xx][yy].int1,
|
||||||
&data[xx][yy].ds,
|
&data[xx][yy].int2,
|
||||||
&data[xx][yy].fit,
|
&data[xx][yy].float3) != 8 )
|
||||||
&data[xx][yy].avgIQ ) != 9 )
|
|
||||||
{
|
{
|
||||||
printf( "\nWrong file format in %s", filename );
|
printf( "\nWrong file format in %s \n \n", filename);
|
||||||
exit( 1 );
|
exit( 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -149,12 +139,11 @@ int main(int argc, char* argv[])
|
||||||
data[xx][yy].phi1 = data[xx-1][yy].phi1;
|
data[xx][yy].phi1 = data[xx-1][yy].phi1;
|
||||||
data[xx][yy].Phi = data[xx-1][yy].Phi;
|
data[xx][yy].Phi = data[xx-1][yy].Phi;
|
||||||
data[xx][yy].phi2 = data[xx-1][yy].phi2;
|
data[xx][yy].phi2 = data[xx-1][yy].phi2;
|
||||||
data[xx][yy].iq = data[xx-1][yy].iq;
|
data[xx][yy].float1 = data[xx-1][yy].float1;
|
||||||
data[xx][yy].ci = data[xx-1][yy].ci;
|
data[xx][yy].float2 = data[xx-1][yy].float2;
|
||||||
data[xx][yy].phase = data[xx-1][yy].phase;
|
data[xx][yy].float3 = data[xx-1][yy].float3;
|
||||||
data[xx][yy].ds = data[xx-1][yy].ds;
|
data[xx][yy].int1 = data[xx-1][yy].int1;
|
||||||
data[xx][yy].fit = data[xx-1][yy].fit;
|
data[xx][yy].int2 = data[xx-1][yy].int2;
|
||||||
data[xx][yy].avgIQ = data[xx-1][yy].avgIQ;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -167,38 +156,35 @@ int main(int argc, char* argv[])
|
||||||
}//end for(x...
|
}//end for(x...
|
||||||
}//end for(y...
|
}//end for(y...
|
||||||
fclose( inStream );
|
fclose( inStream );
|
||||||
printf("\nWriting");
|
printf("Writing %s\n", outFilename);
|
||||||
//the step size in y-direction (=0.866*stepSizeX)
|
//the step size in y-direction (=0.866*stepSizeX)
|
||||||
//is the new step size for x and y
|
//is the new step size for x and y
|
||||||
xlimitOut = round2( (double)xlimit/0.866);
|
xlimitOut = myRound( (double)xlimit/0.866);
|
||||||
for( yy=0; yy<ylimit; yy++)
|
for( yy=0; yy<ylimit; yy++)
|
||||||
{
|
{
|
||||||
printf(".");
|
|
||||||
for( xx=0; xx<xlimitOut; xx++)
|
for( xx=0; xx<xlimitOut; xx++)
|
||||||
{
|
{
|
||||||
xOut = round2( (double)xx * 0.866 );
|
xOut = myRound( (double)xx * 0.866 );
|
||||||
fprintf( outStream, "%f %f %f %f %f %f %f %i %i %f %f\n",
|
fprintf( outStream, "%f %f %f %f %f %f %f %i %i %f\n",
|
||||||
data[xOut][yy].phi1,
|
data[xOut][yy].phi1,
|
||||||
data[xOut][yy].Phi,
|
data[xOut][yy].Phi,
|
||||||
data[xOut][yy].phi2,
|
data[xOut][yy].phi2,
|
||||||
xx * stepSize * 0.866,
|
xx * stepSize * 0.866,
|
||||||
yy * stepSize * 0.866,
|
yy * stepSize * 0.866,
|
||||||
data[xOut][yy].iq,
|
data[xOut][yy].float1,
|
||||||
data[xOut][yy].ci,
|
data[xOut][yy].float2,
|
||||||
data[xOut][yy].phase,
|
data[xOut][yy].int1,
|
||||||
data[xOut][yy].ds,
|
data[xOut][yy].int2,
|
||||||
data[xOut][yy].fit,
|
data[xOut][yy].float3 );
|
||||||
data[xOut][yy].avgIQ );
|
|
||||||
}//end for( xx...
|
}//end for( xx...
|
||||||
}//end for( yy...
|
}//end for( yy...
|
||||||
fclose( outStream );
|
fclose( outStream );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf( "\nExpected file %s does not exist", zFilename );
|
printf( "\nExpected file %s does not exist", filename );
|
||||||
exit( 1 );
|
exit( 1 );
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue