public class CDMRadarAdapter extends java.lang.Object implements RadarAdapter
AZIMUTH_ANGLE_TYPE, AZIMUTH_TYPE, ELEVATION_ANGLE_TYPE, RANGE_TYPE
AZIMUTH, AZIMUTH_ANGLE, ELEVATION_ANGLE, PROP_2DOR3D, PROP_ANGLE, PROP_ANGLES, PROP_AZIMUTH, PROP_AZIMUTHS, PROP_CAPPI_LEVEL, PROP_CAPPI_LEVELS, PROP_TIMEHEIGHT, PROP_VCS, PROP_VCS_END, PROP_VCS_START, PROP_VOLUMEORSWEEP, PROP_VWP, RADAR_MOST_RECENT, RADIAL_VELOCITY_NAME, RANGE, REFLECTIVITY, REFLECTIVITY_NAME, SPECTRUM_WIDTH, SPECTRUM_WIDTH_NAME, STATION_LOCATION, VALUE_2D, VALUE_3D, VALUE_SWEEP, VALUE_VOLUME, VELOCITY
Constructor and Description |
---|
CDMRadarAdapter()
Zero-argument constructor for construction via unpersistence.
|
CDMRadarAdapter(DataSourceImpl source,
java.lang.String fileName)
Construct a new DORADE adapter.
|
Modifier and Type | Method and Description |
---|---|
void |
clearCachedData()
Clear the rds data
|
void |
doRemove()
Clean up whatever we need to when we are removed.
|
boolean |
equals(java.lang.Object o)
Check to see if this
CDMDataSource is equal to the object
in question. |
protected double[] |
getAngles(java.lang.String vname)
Get the angles for this parameter
|
visad.DateTime |
getBaseTime()
Get the base time for this sweep
|
ucar.unidata.geoloc.Bearing |
getBearing(double lat,
double lon)
calculate the bearing of one location to the radar location
|
visad.FieldImpl |
getCAPPI(int moment,
java.lang.String varName,
visad.Real level)
This api is based on the rsl c library from TRMM Office Radar Software Library.
|
java.lang.Object[] |
getCutIdx(ucar.nc2.dt.RadialDatasetSweep.RadialVariable sweepVar)
get radar sweep index
|
visad.DataImpl |
getData(DataChoice dataChoice,
DataSelection subset,
java.util.Hashtable requestProperties)
Get the data for the given DataChoice and selection criteria.
|
java.lang.String |
getDataFormatName()
Get the data format name (e.g.
|
float[] |
getFloatNaN(int n)
get float array init with NaN
|
float[] |
getIntersectionOfRayAndLine(visad.georef.EarthLocation radarCenter,
float azi,
float lat3,
float lon3,
float lat4,
float lon4)
calculate the intersection of ray and a line
|
float[] |
getIntersectionOfTwoLines(float lat1,
float lon1,
float lat2,
float lon2,
float lat3,
float lon3,
float lat4,
float lon4)
alculate the intersection of two lines
|
java.lang.String |
getName()
Return the name of the file
|
protected visad.RealType[] |
getParams()
Get the parameters for this adapter
|
visad.FieldImpl |
getRadarCrossSection(int moment,
java.lang.String varName,
visad.georef.LatLonPoint p1,
visad.georef.LatLonPoint p2)
Makes a field of all data from one common data model radar adapter;
|
visad.georef.EarthLocation |
getRadarStationInFile()
Get the radar location from the dataset.
|
visad.FlatField |
getRaster(int moment,
java.lang.String varName)
Create the initial spatial domain
|
visad.FieldImpl |
getRHI(int moment,
java.lang.String varName,
double rhiAz)
Makes a field of all data from one common data model radar adapter;
|
visad.FieldImpl |
getRHIOld(int moment,
java.lang.String varName,
double rhiAz)
Makes a field of all data from one common data model radar adapter;
|
visad.FieldImpl |
getRHISweep(int moment,
double azimus,
java.lang.String varName,
int idx,
boolean want3D)
Makes a field of all data from one common data model radar adapter;
|
visad.FlatField |
getRHIVolume(int moment,
java.lang.String varName)
Makes a field of all data from one common data model radar adapter;
|
java.lang.String |
getStationID()
Get the station ID
|
visad.georef.EarthLocation |
getStationLocation()
Get the parameters for this adapter
|
java.lang.String |
getStationName()
Get the parameters for this adapter
|
visad.FlatField |
getSweep(int moment,
double elevation,
java.lang.String varName,
int idx,
boolean want3D)
Makes a field of all data from one common data model radar adapter;
|
int |
getSweepNumber(java.lang.String vname,
double angle)
Get the sweep number for the particular variable and elevation angle
|
protected double |
getVCPAngle(double angle,
short id)
Find the closest angle to the given VCP angles
|
protected double[] |
getVCPAngles(short id,
double[] origAngles)
Get the parameters for this adapter
|
protected short |
getVCPid(java.lang.String vname)
Get the parameters for this adapter
|
visad.FlatField |
getVolume(int moment,
java.lang.String varName)
Makes a field of all data from one common data model radar adapter;
|
int |
hashCode()
Get the hash code for this object.
|
boolean |
isRaster()
Get the parameters for this adapter
|
boolean |
isRHI()
Get the parameters for this adapter
|
boolean |
isVolume()
Get the parameters for this adapter
|
static void |
main(java.lang.String[] args)
main
|
static void |
mainDorade(java.lang.String[] args)
Test main
|
visad.georef.LatLonPoint |
setCrossSectionLinePosition(float azi)
setting the init crosssection line position with azimuth angle
|
void |
setStationLocation(visad.georef.EarthLocation el)
Set the station location
|
java.lang.String |
toString()
to String.
|
public CDMRadarAdapter()
public CDMRadarAdapter(DataSourceImpl source, java.lang.String fileName) throws visad.VisADException
source
- DataSource (may be null)fileName
- name of the DORADE file to readvisad.VisADException
- problem creating datapublic boolean equals(java.lang.Object o)
CDMDataSource
is equal to the object
in question.equals
in class java.lang.Object
o
- object in questionpublic int hashCode()
hashCode
in class java.lang.Object
public visad.georef.EarthLocation getRadarStationInFile()
public java.lang.String toString()
toString
in class java.lang.Object
protected double[] getAngles(java.lang.String vname)
vname
- variable namepublic visad.DateTime getBaseTime()
getBaseTime
in interface RadarAdapter
protected short getVCPid(java.lang.String vname)
vname
- variable nameprotected double[] getVCPAngles(short id, double[] origAngles)
id
- vcp id numberorigAngles
- The original anglesprotected double getVCPAngle(double angle, short id)
angle
- to findid
- of VCPpublic visad.FieldImpl getCAPPI(int moment, java.lang.String varName, visad.Real level) throws visad.VisADException, java.rmi.RemoteException, java.io.IOException
moment
- the momentvarName
- variable namelevel
- the leveljava.io.IOException
- problem reading the filejava.rmi.RemoteException
- problem with Java RMIvisad.VisADException
- problem creating VisAD objectpublic visad.DataImpl getData(DataChoice dataChoice, DataSelection subset, java.util.Hashtable requestProperties) throws visad.VisADException, java.rmi.RemoteException
getData
in interface RadarAdapter
dataChoice
- DataChoice for selectionsubset
- subsetting criteriarequestProperties
- extra request propertiesjava.rmi.RemoteException
- couldn't create a remote data objectvisad.VisADException
- couldn't create the datapublic void clearCachedData()
clearCachedData
in interface RadarAdapter
public java.lang.String getName()
getName
in interface RadarAdapter
protected visad.RealType[] getParams()
public visad.FieldImpl getRHIOld(int moment, java.lang.String varName, double rhiAz) throws visad.VisADException, java.rmi.RemoteException, java.io.IOException
moment
- momentvarName
- variable namerhiAz
- azimuth for RHIjava.io.IOException
- Problem reading datajava.rmi.RemoteException
- Java RMI problemvisad.VisADException
- Couldn't create VisAD Objectpublic visad.FieldImpl getRadarCrossSection(int moment, java.lang.String varName, visad.georef.LatLonPoint p1, visad.georef.LatLonPoint p2) throws visad.VisADException, java.io.IOException
moment
- momentvarName
- variable namep1
- cross lint start pointp2
- cross lint end pointjava.io.IOException
- Problem reading datavisad.VisADException
- Couldn't create VisAD Objectpublic ucar.unidata.geoloc.Bearing getBearing(double lat, double lon)
lat
- input latitudelon
- input longitudepublic visad.georef.LatLonPoint setCrossSectionLinePosition(float azi) throws visad.VisADException, java.rmi.RemoteException
azi
- input azimuth anglejava.rmi.RemoteException
visad.VisADException
public float[] getIntersectionOfRayAndLine(visad.georef.EarthLocation radarCenter, float azi, float lat3, float lon3, float lat4, float lon4)
radarCenter
- earthlocation of radarazi
- ray azimuthlat3
- line latitude of one endlon3
- line longitude of one endlat4
- line latitude of another endlon4
- _more_public float[] getIntersectionOfTwoLines(float lat1, float lon1, float lat2, float lon2, float lat3, float lon3, float lat4, float lon4)
lat1
- latitude of line 1lon1
- longitude of line 1lat2
- latitude of line 1lon2
- longitude of line 1lat3
- latitude of line 2lon3
- longitude of line 2lat4
- latitude of line 2lon4
- longitude of line 2public visad.FieldImpl getRHI(int moment, java.lang.String varName, double rhiAz) throws visad.VisADException, java.rmi.RemoteException, java.io.IOException
moment
- momentvarName
- variable namerhiAz
- azimuth for RHIjava.io.IOException
- Problem reading datajava.rmi.RemoteException
- Java RMI problemvisad.VisADException
- Couldn't create VisAD Objectpublic java.lang.String getStationID()
public visad.georef.EarthLocation getStationLocation()
public void setStationLocation(visad.georef.EarthLocation el) throws visad.VisADException, java.rmi.RemoteException
el
- location of the radarvisad.VisADException
- couldn't create VisAD objectjava.rmi.RemoteException
- couldn't create remote objectpublic java.lang.String getStationName()
public java.lang.String getDataFormatName()
public visad.FlatField getRaster(int moment, java.lang.String varName) throws visad.VisADException, java.rmi.RemoteException, java.io.IOException, ucar.ma2.InvalidRangeException
moment
- varName
- variable namejava.io.IOException
- Problem reading dataucar.ma2.InvalidRangeException
- Problem reading datajava.rmi.RemoteException
- Java RMI problemvisad.VisADException
- problem creating domainpublic visad.FieldImpl getRHISweep(int moment, double azimus, java.lang.String varName, int idx, boolean want3D) throws visad.VisADException, java.rmi.RemoteException, java.io.IOException
moment
- momentazimus
- azimuth anglevarName
- variable nameidx
- indexwant3D
- true if should return a 3D fieldjava.io.IOException
- Problem reading datajava.rmi.RemoteException
- Java RMI problemvisad.VisADException
- Couldn't create VisAD Objectpublic visad.FlatField getSweep(int moment, double elevation, java.lang.String varName, int idx, boolean want3D) throws visad.VisADException, java.rmi.RemoteException, java.io.IOException
moment
- momentelevation
- elevation anglevarName
- variable nameidx
- _more_want3D
- true if should return a 3D fieldjava.io.IOException
- Problem reading datajava.rmi.RemoteException
- Java RMI problemvisad.VisADException
- Couldn't create VisAD Objectpublic int getSweepNumber(java.lang.String vname, double angle)
vname
- variable nameangle
- elevation anglepublic java.lang.Object[] getCutIdx(ucar.nc2.dt.RadialDatasetSweep.RadialVariable sweepVar)
sweepVar
- radar variablepublic visad.FlatField getVolume(int moment, java.lang.String varName) throws visad.VisADException, java.rmi.RemoteException, java.io.IOException
moment
- momentvarName
- variable namejava.io.IOException
- Problem reading datajava.rmi.RemoteException
- Java RMI problemvisad.VisADException
- Couldn't create VisAD Objectpublic visad.FlatField getRHIVolume(int moment, java.lang.String varName) throws visad.VisADException, java.rmi.RemoteException, java.io.IOException
moment
- momentvarName
- variable namejava.io.IOException
- Problem reading datajava.rmi.RemoteException
- Java RMI problemvisad.VisADException
- Couldn't create VisAD Objectpublic float[] getFloatNaN(int n)
n
- 1 D array lengthpublic boolean isRaster()
public boolean isVolume()
public boolean isRHI()
public static void mainDorade(java.lang.String[] args) throws java.lang.Exception
args
- cmd line argsjava.lang.Exception
- when bad things happenpublic static void main(java.lang.String[] args) throws java.lang.Exception
args
- argsjava.lang.Exception
- On badnesspublic void doRemove()
doRemove
in interface RadarAdapter