Package cpod
Class FPODReader
java.lang.Object
cpod.FPODReader
Functions for importing FPOD files.
 
Note this class should be independent of any PAMGuard functionality.
Although some anming has changed a lot of the variable names are consistent with Pascal code used in FPOD.exe software from whihc this is absed.
- Author:
 - Jamie Macaulay
 
- 
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classHolds an FPOD detection.static classHolds an FPOD header informationstatic classHolds FPOD wav data. - 
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe length of a standard FPOD entrystatic final intThe click length for FP3 files.static final intLength of the FPOD header in bytes.static final floatstatic final doubleScale factor to convert waveform measurements to PAMGuard -1 to 1 measurements. - 
Constructor Summary
Constructors - 
Method Summary
Modifier and TypeMethodDescriptionstatic voidstatic intimportFile(File cpFile, ArrayList<FPODReader.FPODdata> fpodData, int from, int maxNum) Import an FPOD file.importFPODFile(File cpFile, int from, int maxNum) Import FPOD data and return a structure of CPOD clicks.static intIPItoKhz(int IPI) Convert IPI to KHz.static voidTest the programstatic int[]Reconstructs sinusoidal waveform from the peaks which have been sampled at 4MHzstatic voidPpulate the IPI arraystatic intRawToRealPk(int Pk, int IPI, boolean UseExtendedAmps) Convert a raw binary peak to true linear peak.static FPODReader.FPODHeaderreadHeader(File cpFile) static double[]scaleWavData(int[] wavData) Scale wave data so it is returned as a doublestatic shorttoUnsigned(byte signedByte) Java will only have read signed bytes. 
- 
Field Details
- 
FPOD_HEADER
public static final int FPOD_HEADERLength of the FPOD header in bytes.- See Also:
 
 - 
FP1_FPOD_DATA_LEN
public static final int FP1_FPOD_DATA_LENThe length of a standard FPOD entry- See Also:
 
 - 
FP3_FPOD_DATA_LEN
public static final int FP3_FPOD_DATA_LENThe click length for FP3 files.- See Also:
 
 - 
WAV_SCALE_FACTOR
public static final double WAV_SCALE_FACTORScale factor to convert waveform measurements to PAMGuard -1 to 1 measurements.- See Also:
 
 - 
FPOD_WAV_SAMPLERATE
public static final float FPOD_WAV_SAMPLERATE- See Also:
 
 
 - 
 - 
Constructor Details
- 
FPODReader
public FPODReader() 
 - 
 - 
Method Details
- 
readHeader
 - 
importFPODFile
public static ArrayList<CPODClick> importFPODFile(File cpFile, int from, int maxNum) throws IOException Import FPOD data and return a structure of CPOD clicks.- Parameters:
 cpFile- - the FP1 file.from- - the click index to save from. e.g. 100 means that only click 100 + in the file is savedmaxNum- - the maximum number of data units to import.- Returns:
 - an array of CPOD clicks.
 - Throws:
 IOException
 - 
importFile
public static int importFile(File cpFile, ArrayList<FPODReader.FPODdata> fpodData, int from, int maxNum) throws IOException Import an FPOD file.- Parameters:
 cpFile- - the FP1 file.from- - the click index to save from. e.g. 100 means that only click 100 + in the file is savedmaxNum- - the maximum number of data units to import.- Returns:
 - the total number of clicks in the file.
 - Throws:
 IOException
 - 
RawToRealPk
public static int RawToRealPk(int Pk, int IPI, boolean UseExtendedAmps) Convert a raw binary peak to true linear peak.- Parameters:
 Pk- - the raw maximum peakIPI- - the inter pulse intervalUseExtendedAmps- - true to use extended amps- Returns:
 - the real linear peak of he wave
 
 - 
IPItoKhz
public static int IPItoKhz(int IPI) Convert IPI to KHz.- Parameters:
 IPI- - the IPI- Returns:
 - the kHz value
 
 - 
populateIPIArray
public static void populateIPIArray()Ppulate the IPI array - 
toUnsigned
public static short toUnsigned(byte signedByte) Java will only have read signed bytes. Nick clearly uses a lot of unsigned data, so convert and inflate to int16.- Parameters:
 signedByte-- Returns:
 - unsigned version as int16.
 
 - 
BuildSineArray
public static void BuildSineArray() - 
scaleWavData
public static double[] scaleWavData(int[] wavData) Scale wave data so it is returned as a double- Parameters:
 wavData- - the wavdata- Returns:
 - the scaled wav data between -1 and 1;
 
 - 
makeResampledWaveform
Reconstructs sinusoidal waveform from the peaks which have been sampled at 4MHz- Parameters:
 click- - FPOD click with waveform information.
 - 
main
Test the program- Parameters:
 args-
 
 -