edu.wisc.ssec.mcidas.adde
Class AddePointDataReader

java.lang.Object
  extended by edu.wisc.ssec.mcidas.adde.AddePointDataReader

public class AddePointDataReader
extends Object

AddePointDataReader interface for McIDAS ADDE point data sets. Simulates a McIDAS PTLIST output using an ADDE URL if toString() method is used. Note that units are ignored by this client, default units are used.

 URLs must all have the following format   
   adde://host/point?keyword_1=value_1&keyword_2=value_2

 there can be any valid combination of the following supported keywords:

   group=<groupname>         ADDE group name
   descr=<descriptor>        ADDE descriptor name
   pos=<position>            request an absolute or relative ADDE 
                               position number
   select=<select clause>    to specify which data is required
   param=<param list>        what parameters to return
   num=<max>                 maximum number of obs to return
   user=<user_id>            ADDE user identification
   proj=<proj #>             a valid ADDE project number
   trace=<0/1>               setting to 1 tells server to write debug 
                               trace file (imagedata, imagedirectory)
   version=1                 ADDE version number, currently 1 
   
 the following keywords are required:

   group
   descr

 an example URL might look like:
   adde://rtds/point?group=neons&type=metar
 

Author:
Don Murray - Unidata and James Kelly - BoM

Field Summary
static int MAXNUMPARM
          Maximum number of parameters - used as a sanity check
static int OB_ORDER
          Key for getting data in obs order [numObs][numParams]
static int PARAM_ORDER
          Key for getting data in param order [numParams][numObs]
 
Constructor Summary
AddePointDataReader(String request)
          creates an AddePointDataReader object that allows reading ADDE point datasets.
 
Method Summary
 int[][] getData()
          Return the data sent by the server
 int[][] getData(int order)
          Return the data sent by the server in a particular order (PARAM_ORDER, OB_ORDER).
 Object[] getData(String parameter)
          Return an array of data for the particular parameter.
 int getNumParams()
          return the number of parameters
 String[] getParams()
          Get the list of parameters
 int[] getScales()
          Get the list of scaling factors
 String[] getUnits()
          Get the list of units
static void main(String[] args)
          test by running 'java edu.wisc.ssec.mcidas.adde.AddePointDataReader'
 String toString()
          Return a formated string of the returned data
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

PARAM_ORDER

public static final int PARAM_ORDER
Key for getting data in param order [numParams][numObs]

See Also:
Constant Field Values

OB_ORDER

public static final int OB_ORDER
Key for getting data in obs order [numObs][numParams]

See Also:
Constant Field Values

MAXNUMPARM

public static final int MAXNUMPARM
Maximum number of parameters - used as a sanity check

See Also:
Constant Field Values
Constructor Detail

AddePointDataReader

public AddePointDataReader(String request)
                    throws AddeException
creates an AddePointDataReader object that allows reading ADDE point datasets.

Parameters:
request - ADDE URL to read from. See class javadoc.
 an example URL might look like:
   adde://rtds.ho.bom.gov.au/point?group=neons&descr=metar
 
Throws:
AddeException - if there are no datasets of the particular type or there is an error reading data
Method Detail

getData

public int[][] getData()
                throws AddeException
Return the data sent by the server

Returns:
array of the data. Data is in the format of an integer array of unscaled integers as returned from the server in parameter order ([numParams][numObs]).
Throws:
AddeException - if there was an error reading data

getData

public int[][] getData(int order)
                throws AddeException
Return the data sent by the server in a particular order (PARAM_ORDER, OB_ORDER).

Parameters:
order - order of the data. (PARAM_ORDER, OB_ORDER)
Returns:
array of the data. Data is in the format of an integer array of unscaled integers in the specified order (PARAM_ORDER = [numParams][numObs], OB_ORDER = [numObs][numParams])
Throws:
AddeException - if there was an error reading data

getParams

public String[] getParams()
                   throws AddeException
Get the list of parameters

Returns:
array of the parameter names. The names will be in the same order as the array of data values in the getData() method.
Throws:
AddeException - if there was an error reading data

getUnits

public String[] getUnits()
                  throws AddeException
Get the list of units

Returns:
array of the unit names. The names will be in the same order as the array of data values in the getData() method.
Throws:
AddeException - if there was an error reading data

getScales

public int[] getScales()
                throws AddeException
Get the list of scaling factors

Returns:
array of the scaling factors (powers of 10). The scaling factors will be in the same order as the array of data values in the getData() method.
Throws:
AddeException - if there was an error reading data

getNumParams

public int getNumParams()
                 throws AddeException
return the number of parameters

Returns:
number of parameters returned from the server
Throws:
AddeException

getData

public Object[] getData(String parameter)
                 throws AddeException
Return an array of data for the particular parameter.

Returns:
array of values for the particular parameter or null if an invalid parameter was entered. This will return String[] for parameters with units of CHAR, float[1][] for an array of non scaled data, and double[1][] for
Throws:
AddeException

toString

public String toString()
Return a formated string of the returned data

Overrides:
toString in class Object
Returns:
formatted representation of the data ala McIDAS PTLIST command.

main

public static void main(String[] args)
                 throws Exception
test by running 'java edu.wisc.ssec.mcidas.adde.AddePointDataReader'

Throws:
Exception