package hydroScalingAPI.io; /** * * @author Ricardo Mantilla */ public class BilToHSJ { private java.io.File headerInputFile,geoInputFile,dataInputFile; public String[] parameters= { "[Name]", "[Southernmost Latitude]", "[Westernmost Longitude]", "[Longitudinal Resolution (ArcSec)]", "[Latitudinal Resolution (ArcSec)]", "[# Columns]", "[# Rows]", "[Format]", "[Missing]", "[Temporal Resolution]", "[Units]", "[Information]" }; /** Creates a new instance of BillToHSJ */ public BilToHSJ(java.io.File inputDirectory, java.io.File outputFile) throws java.io.IOException { if(!checkDirectoryContents(inputDirectory)) return; java.io.BufferedReader headerBuffer = new java.io.BufferedReader(new java.io.FileReader(headerInputFile)); java.io.BufferedReader geoBuffer = new java.io.BufferedReader(new java.io.FileReader(geoInputFile)); java.io.DataInputStream dataBuffer = new java.io.DataInputStream(new java.io.BufferedInputStream(new java.io.FileInputStream(dataInputFile))); int nCols,nRows,nBytes; headerBuffer.readLine(); headerBuffer.readLine(); nRows=Integer.parseInt(String.valueOf(headerBuffer.readLine().substring(5).trim())); nCols=Integer.parseInt(String.valueOf(headerBuffer.readLine().substring(5).trim())); headerBuffer.readLine(); nBytes=Integer.parseInt(String.valueOf(headerBuffer.readLine().substring(5).trim())); headerBuffer.close(); double minLat,minLon,latRes,lonRes; String minLatStr,minLonStr; latRes=Math.abs(Float.parseFloat(String.valueOf(geoBuffer.readLine().trim()))*3600.0f); geoBuffer.readLine(); geoBuffer.readLine(); lonRes=Math.abs(Float.parseFloat(String.valueOf(geoBuffer.readLine().trim()))*3600.0f); minLon=Double.parseDouble(String.valueOf(geoBuffer.readLine().trim()))+lonRes/3600.; minLat=Double.parseDouble(String.valueOf(geoBuffer.readLine().trim()))-nRows*latRes/3600.0; minLonStr=hydroScalingAPI.tools.DegreesToDMS.getprettyString(minLon,1); minLatStr=hydroScalingAPI.tools.DegreesToDMS.getprettyString(minLat,0); geoBuffer.close(); float[][] data=new float[nRows][nCols]; if (nBytes == 16){ for (int i=0;i