edu.wisc.ssec.mcidas
Class McIDASUtil

java.lang.Object
  extended by edu.wisc.ssec.mcidas.McIDASUtil

public final class McIDASUtil
extends java.lang.Object

Class for static McIDAS utility methods. In many cases, these methods are the Java equivalents of McIDAS library functions.

See Also:
McIDAS Programmer's Manual

Field Summary
static int MCMISSING
          McIDAS missing value for 4-byte integers
 
Constructor Summary
McIDASUtil()
           
 
Method Summary
static int bytesToInteger(byte[] b, int off)
          convert four consequtive bytes into a (signed) int.
static int[] bytesToIntegerArray(byte[] b, int off, int num)
          convert consequtive bytes into a (signed) int array.
static int doubleLatLonToInteger(double dvalue)
          Converts a double latitude/longitude to a packed integer (SIGN DDD MM SS) Java version of McIDAS ilalo function.
static void flip(int[] array, int first, int last)
          Flip the bytes of an integer array.
static java.lang.String intBitsToString(int value)
          convert signed int to a String representation.
static java.lang.String intBitsToString(int[] values)
          convert signed int array to a String representation.
static double integerLatLonToDouble(int value)
          Converts a packed integer (SIGN DDD MM SS) latitude/longitude to double.
static boolean isChar(int value)
          Check to see if the int value is the representation of a string or not.
static long mcDayTimeToSecs(int yearday, int time)
          Convert day (yyddd or yyyyddd) and time (hhmmss) to seconds since the epoch (January 1, 1970, 00:00GMT).
static int mcDoubleToPackedInteger(double dvalue)
          Converts a double latitude/longitude or time (hours) to a packed integer (SIGN DDD/HH MM SS).
static double mcPackedIntegerToDouble(int value)
          Converts a packed integer (SIGN DDD/HH MM SS) latitude/longitude or time (hours) to double.
static int[] mcSecsToDayTime(long secs)
          Convert seconds since the epoch (January 1, 1970, 00:00GMT) to day (yyyyddd) and time (hhmmss).
static double timdif(int yrday1, int hms1, int yrday2, int hms2)
          Calculate difference in minutes between two dates/times.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MCMISSING

public static final int MCMISSING
McIDAS missing value for 4-byte integers

See Also:
Constant Field Values
Constructor Detail

McIDASUtil

public McIDASUtil()
Method Detail

integerLatLonToDouble

public static double integerLatLonToDouble(int value)
Converts a packed integer (SIGN DDD MM SS) latitude/longitude to double. Java version of McIDAS flalo function except returns a double instead of a float.

Parameters:
value - integer containing the packed data
Returns:
double representation of value

doubleLatLonToInteger

public static int doubleLatLonToInteger(double dvalue)
Converts a double latitude/longitude to a packed integer (SIGN DDD MM SS) Java version of McIDAS ilalo function.

Parameters:
value - double value of lat/lon
Returns:
packed integer representation of value

mcPackedIntegerToDouble

public static double mcPackedIntegerToDouble(int value)
Converts a packed integer (SIGN DDD/HH MM SS) latitude/longitude or time (hours) to double. Java replacements of McIDAS flalo and ftime functions except returns a double instead of a float.

Parameters:
value - integer containing the packed data
Returns:
double representation of value

mcDoubleToPackedInteger

public static int mcDoubleToPackedInteger(double dvalue)
Converts a double latitude/longitude or time (hours) to a packed integer (SIGN DDD/HH MM SS). Java replacements of McIDAS ilalo and m0itime functions.

Parameters:
value - double value of lat/lon or time
Returns:
packed integer representation of value

timdif

public static double timdif(int yrday1,
                            int hms1,
                            int yrday2,
                            int hms2)
Calculate difference in minutes between two dates/times. Java version of timdif.for

Parameters:
yrday1 - Year/day of first time (yyddd or yyyyddd)
hms1 - Hours/minutes/seconds of first time (hhmmss).
yrday2 - Year/day of second time (yyddd).
hms2 - Hours/minutes/seconds of second time (hhmmss).
Returns:
The difference between the two times (time2 - time1), in minutes. If the first time is greater than the second, the result will be negative.

mcDayTimeToSecs

public static long mcDayTimeToSecs(int yearday,
                                   int time)
Convert day (yyddd or yyyyddd) and time (hhmmss) to seconds since the epoch (January 1, 1970, 00:00GMT). Java version of 'mcdaytimetosecs' except it returns a long instead of an int.

Parameters:
yearday - year/day in either yyddd or yyyyddd format. Only works for years > 1900.
time - time in packed integer format (hhmmss)
Returns:
seconds since the epoch

mcSecsToDayTime

public static int[] mcSecsToDayTime(long secs)
Convert seconds since the epoch (January 1, 1970, 00:00GMT) to day (yyyyddd) and time (hhmmss). Java version of 'mcsecstodaytime' except it returns an int array instead of pointers

Parameters:
secs - seconds since the epoch
Returns:
int[2] array with day (yyyyddd) as first element and time (hhmmss - packed integer) as second element.

flip

public static void flip(int[] array,
                        int first,
                        int last)
Flip the bytes of an integer array. Java version of 'm0swbyt4'.

Parameters:
array[] - array of integers to be flipped
first - starting element of the array
last - last element of array to flip

bytesToInteger

public static int bytesToInteger(byte[] b,
                                 int off)
convert four consequtive bytes into a (signed) int. This is useful in dealing with McIDAS data files.

Parameters:
byte[] - array of 4 bytes
off - is the offset into the byte array

bytesToIntegerArray

public static int[] bytesToIntegerArray(byte[] b,
                                        int off,
                                        int num)
convert consequtive bytes into a (signed) int array. This is useful in dealing with McIDAS data files.

Parameters:
byte[] - array of bytes
off - is the offset into the byte array
num - number of integers to create

intBitsToString

public static java.lang.String intBitsToString(int value)
convert signed int to a String representation. This is useful in dealing with McIDAS data files. Java version of 'clit'.

Parameters:
value - - integer representation of a string
Returns:
String representation of the int

intBitsToString

public static java.lang.String intBitsToString(int[] values)
convert signed int array to a String representation. This is useful in dealing with McIDAS data files. Java version of 'movwc'.

Parameters:
values - - integer array representation of a string
Returns:
String representation of the int array

isChar

public static boolean isChar(int value)
Check to see if the int value is the representation of a string or not. Java version of ischar_.c (sort of).

Parameters:
value - integer representation
Returns:
true if the int represents a string