|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectucar.nc2.iosp.gempak.GempakFileReader
public class GempakFileReader
Read a Gempak grid file
Nested Class Summary | |
---|---|
protected class |
GempakFileReader.DMFileHeaderInfo
Class to hold the DM File header info |
protected class |
GempakFileReader.DMHeaders
Class to mimic the DMHDRS common block. |
protected class |
GempakFileReader.DMKeys
Class to mimic the DMKEYS common block. |
protected class |
GempakFileReader.DMLabel
Class to mimic the GEMPAK DMLABL common block |
protected class |
GempakFileReader.DMParam
Class to hold DM Parameter info |
protected class |
GempakFileReader.DMPart
Class to mimic the DMKEYS common block. |
protected class |
GempakFileReader.Key
Class to hold information about a key. |
protected class |
GempakFileReader.PackingInfo
Class to hold DM Integer packing info |
class |
GempakFileReader.RData
A class to hold real (float) data |
Field Summary | |
---|---|
protected GempakFileReader.DMLabel |
dmLabel
The label common param |
protected List<GempakFileReader.DMFileHeaderInfo> |
fileHeaderInfo
header info |
protected long |
fileSize
file size |
protected GempakFileReader.DMHeaders |
headers
headers |
protected GempakFileReader.DMKeys |
keys
key |
protected int |
MTMACH
the machine type byte order |
protected boolean |
mvmst
swap flag |
protected boolean |
needToSwap
swap flag |
protected List<GempakFileReader.DMPart> |
parts
part |
protected RandomAccessFile |
rf
The file |
Fields inherited from interface ucar.nc2.iosp.gempak.GempakConstants |
---|
COL, IMISSD, LLGDHD, LLNANL, LLNNAV, LLSTHL, MBLKSZ, MDCHAR, MDGDEC, MDGDIF, MDGGRB, MDGNMC, MDGNON, MDGRB2, MDGRID, MDINTG, MDREAL, MDRPCK, MFGD, MFSF, MFSN, MTALPH, MTAPOL, MTHP, MTIBM, MTIGPH, MTIRIS, MTLNUX, MTSUN, MTULTX, MTVAX, RDIFFD, RMISSD, ROW |
Method Summary | |
---|---|
GempakFileReader.RData |
DM_RDTR(int irow,
int icol,
String partName)
Read the data |
GempakFileReader.RData |
DM_RDTR(int irow,
int icol,
String partName,
int decimalScale)
Read the real (float) data |
float |
DM_RFLT(int word)
Read a float |
void |
DM_RFLT(int word,
float[] rarray)
Convenience method to fully read into an array of floats |
void |
DM_RFLT(int word,
int num,
float[] rarray,
int start)
Read into an array of ints. |
int |
DM_RINT(int word)
Read an integer |
void |
DM_RINT(int word,
int[] iarray)
Convenience method to fully read into an array of ints |
void |
DM_RINT(int word,
int num,
int[] iarray,
int start)
Read into an array of ints. |
float[] |
DM_RPKG(int isword,
int nword,
int decimalScale)
subclass should implement |
String |
DM_RSTR(int isword)
Read a 4-byte String |
String |
DM_RSTR(int isword,
int nchar)
Read a String |
float[] |
DM_UNPK(GempakFileReader.DMPart part,
int[] ibitst)
Unpack an array of packed integers. |
GempakFileReader.DMFileHeaderInfo |
findFileHeader(String name)
Find the file header with this name |
GempakFileReader.Key |
findKey(String name)
Find a key with the given name |
protected static String |
getBits(int b)
Get a bit string for an integer |
int |
getByteOrder()
Get the byte order for this system |
int |
getByteOrder(int kmachn)
Get the byte order for the machine type. |
int |
getDataPointer(int irow,
int icol,
String partName)
Get the pointer to the data. |
static RandomAccessFile |
getFile(String filename)
Get a RandomAccessFile for the file location |
float[] |
getFileHeader(String name)
Read in the values for the file header |
String |
getFilename()
Get the file name. |
long |
getInitFileSize()
Get initial file size |
static GempakFileReader |
getInstance(RandomAccessFile raf,
boolean fullCheck)
Initialize the file, read in all the metadata (ala DM_OPEN) |
static long |
getOffset(int fortranWord)
Get the byte offset in 0 based space from a 1 based 4 byte FORTRAN word. |
GempakFileReader.DMPart |
getPart(String name)
Find the part with the particular name. |
int |
getPartNumber(String name)
Find the part with the particular name. |
protected boolean |
init()
Initialize this reader. |
protected boolean |
init(boolean fullCheck)
Initialize the file, read in all the metadata (ala DM_OPEN) |
void |
init(RandomAccessFile raf,
boolean fullCheck)
Initialize the file, read in all the metadata (ala DM_OPEN) |
protected void |
logError(String errMsg)
Log an error |
static void |
main(String[] args)
Run the program |
void |
printFileLabel()
Print the file label |
void |
printHeaders()
Print the row and column keys |
void |
printKeys()
Print the row and column keys |
void |
printParts()
Print the part information |
protected void |
readFileHeaderInfo()
Read the file header info (DM_RFIL) |
protected void |
readHeaders()
Read the headers (DM_RHDA) |
protected void |
readKeys()
Read in the row and column keys (DM_KEY) |
protected void |
readParts()
Read the parts (DM_RPRT) |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected RandomAccessFile rf
protected GempakFileReader.DMLabel dmLabel
protected List<GempakFileReader.DMFileHeaderInfo> fileHeaderInfo
protected GempakFileReader.DMHeaders headers
protected GempakFileReader.DMKeys keys
protected List<GempakFileReader.DMPart> parts
protected int MTMACH
protected boolean mvmst
protected boolean needToSwap
protected long fileSize
Method Detail |
---|
public static RandomAccessFile getFile(String filename) throws IOException
filename
- filename to read.
IOException
- problem reading filepublic static GempakFileReader getInstance(RandomAccessFile raf, boolean fullCheck) throws IOException
raf
- RandomAccessFile to read.fullCheck
- if true, check entire structure
IOException
- problem reading filepublic final void init(RandomAccessFile raf, boolean fullCheck) throws IOException
raf
- RandomAccessFile to read.fullCheck
- if true, check entire structure
IOException
- problem reading fileprotected boolean init() throws IOException
IOException
- problem reading the dataprotected boolean init(boolean fullCheck) throws IOException
fullCheck
- if true, check entire structure
IOException
- problem reading filepublic String getFilename()
public long getInitFileSize()
public int getByteOrder()
public int getByteOrder(int kmachn)
kmachn
- maching type
protected void readFileHeaderInfo() throws IOException
IOException
- problem reading fileprotected void readKeys() throws IOException
IOException
- problem reading fileprotected void readHeaders() throws IOException
IOException
- problem reading fileprotected void readParts() throws IOException
IOException
- problem reading filepublic static long getOffset(int fortranWord)
fortranWord
- 1 based word offset
public static void main(String[] args) throws IOException
args
- filename
IOException
- problem reading the filepublic GempakFileReader.Key findKey(String name)
name
- the name of the key
public GempakFileReader.DMFileHeaderInfo findFileHeader(String name)
name
- name of header
public float[] getFileHeader(String name) throws IOException
name
- name of header
IOException
- problem reading fileprotected void logError(String errMsg)
errMsg
- message to logpublic void printFileLabel()
public void printKeys()
public void printHeaders()
public void printParts()
public int getPartNumber(String name)
name
- name of part to find
public GempakFileReader.DMPart getPart(String name)
name
- name of part to find
public int getDataPointer(int irow, int icol, String partName)
irow
- row numbericol
- column numberpartName
- name of the part
public int DM_RINT(int word) throws IOException
word
- word in file (1 based) to read
IOException
- problem reading filepublic void DM_RINT(int word, int[] iarray) throws IOException
word
- word in file (1 based) to readiarray
- array to read into
IOException
- problem reading filepublic void DM_RINT(int word, int num, int[] iarray, int start) throws IOException
word
- word in file (1 based) to readiarray
- array to read intostart
- starting word in the array (0 based)num
- number of words to read
IOException
- problem reading filepublic float DM_RFLT(int word) throws IOException
word
- word in file (1 based) to read
IOException
- problem reading filepublic void DM_RFLT(int word, float[] rarray) throws IOException
word
- word in file (1 based) to readrarray
- array to read into
IOException
- problem reading filepublic void DM_RFLT(int word, int num, float[] rarray, int start) throws IOException
word
- word in file (1 based) to readnum
- number of words to readrarray
- array to read intostart
- starting word in the array (0 based)
IOException
- problem reading filepublic String DM_RSTR(int isword) throws IOException
isword
- offset in file (1 based FORTRAN word)
IOException
- problem reading filepublic String DM_RSTR(int isword, int nchar) throws IOException
isword
- offset in file (1 based FORTRAN word)nchar
- number of characters to read
IOException
- problem reading filepublic GempakFileReader.RData DM_RDTR(int irow, int icol, String partName) throws IOException
irow
- row to readicol
- column to readpartName
- part name
IOException
- problem reading filepublic GempakFileReader.RData DM_RDTR(int irow, int icol, String partName, int decimalScale) throws IOException
irow
- row to readicol
- column to readpartName
- part namedecimalScale
- scaling factor (power of 10);
IOException
- problem reading filepublic float[] DM_UNPK(GempakFileReader.DMPart part, int[] ibitst)
part
- the part with packing infoibitst
- packed integer bit string
protected static String getBits(int b)
b
- the integer
public float[] DM_RPKG(int isword, int nword, int decimalScale) throws IOException
isword
- starting word (1 based)nword
- number of words to readdecimalScale
- decimal scale
IOException
- problem reading data
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |