xLine = xBr.readLine(); //skip header description
xLine = xBr.readLine();
xSt = new StringTokenizer(xLine, " ");
if (xSt.countTokens() > 8) {
throw new FactoryException(Errors.format(ErrorKeys.HEADER_UNEXPECTED_LENGTH_$1,
String.valueOf(xSt.countTokens())));
}
int nc = Integer.parseInt(xSt.nextToken());
int nr = Integer.parseInt(xSt.nextToken());
int nz = Integer.parseInt(xSt.nextToken());
float xStart = Float.parseFloat(xSt.nextToken());
float xStep = Float.parseFloat(xSt.nextToken());
float yStart = Float.parseFloat(xSt.nextToken());
float yStep = Float.parseFloat(xSt.nextToken());
// float angle = Float.parseFloat(latSt.nextToken());
float xmax = xStart + ((nc - 1) * xStart);
float ymax = yStart + ((nr - 1) * yStep);
//now read long shift grid
longLine = longBr.readLine(); //skip header description
longLine = longBr.readLine();
longSt = new StringTokenizer(longLine, " ");
if (longSt.countTokens() > 8) {
throw new FactoryException(Errors.format(ErrorKeys.HEADER_UNEXPECTED_LENGTH_$1,
String.valueOf(longSt.countTokens())));
}
//check that latitude grid header is the same as for latitude grid
if ((nc != Integer.parseInt(longSt.nextToken()))
|| (nr != Integer.parseInt(longSt.nextToken()))
|| (nz != Integer.parseInt(longSt.nextToken()))
|| (xStart != Float.parseFloat(longSt.nextToken()))
|| (xStep != Float.parseFloat(longSt.nextToken()))
|| (yStart != Float.parseFloat(longSt.nextToken()))
|| (yStep != Float.parseFloat(longSt.nextToken()))) {
// || (angle != Float.parseFloat(longSt.nextToken()))) {
throw new FactoryException(Errors.format(ErrorKeys.GRID_LOCATIONS_UNEQUAL));
}
////////////////////////
//read grid shift data into LocalizationGrid
////////////////////////