package com.meteogroup.grib2geotiff;
import com.meteogroup.grib2geotiff.geotiff.GeoTiffExporter;
import com.meteogroup.grib2geotiff.grib.GribFileAccess;
import com.meteogroup.grib2geotiff.grib.GribMetadataReader;
import ucar.grib.grib2.Grib2Record;
import ucar.unidata.io.RandomAccessFile;
import java.io.File;
import java.util.List;
/**
* Created by danielt on 14.09.15.
*/
public class GribAtomizer {
GribFileAccess gribAccessor = new GribFileAccess();
GribMetadataReader metadataReader = new GribMetadataReader();
GeoTiffExporter geoTiffExporter = new GeoTiffExporter();
/**
* @param inDirectory
* @param outDirectory
* @throws Exception
*/
public GribAtomizer(File inDirectory, File outDirectory) throws Exception {
this.gribAccessor.setInputDirectory(inDirectory);
this.geoTiffExporter.setOutDirectory(outDirectory);
}
/**
* @throws Exception
*/
public void atomize() throws Exception {
List<RandomAccessFile> gfsFiles = gribAccessor.getRafFiles();
for (RandomAccessFile gfsFile : gfsFiles) {
List<Grib2Record> records = gribAccessor.getRecords(gfsFile);
for (Grib2Record record : records) {
RecordMetadata metadata = GribMetadataReader.getGfsRecordMetadata(record);
float[] data = gribAccessor.getGfsRecordData(gfsFile, record);
geoTiffExporter.createGeoTiff(data, metadata);
}
}
}
}