public class FmrcDefinition extends Object implements FmrcCoordSys
Data Structures
List VertTimeCoord
double[] values
List TimeCoord
double[] offsetHour
List RunSeq
List Run - runHour dependent TimeCoord
double hour
TimeCoord
List Grid
String name
VertTimeCoord - time dependent vertical coordinate
VertCoord
TimeCoord (optional)
Abstractly, the data is a table:
Run Grid TimeCoord VertCoord
Run Grid TimeCoord VertCoord
Run Grid TimeCoord VertCoord
...
We will use the notation ({} means list)
{Run, Grid, TimeCoord, VertCoord}
The simplest case would be if all runs have the same grids, which all use the same time coord, and each grid always
uses the same vert coord :
(1) {runTime} X {Grid, VertCoord} X TimeCoord (X means product)
The usual case is that there are multiple TimeCoords, but a grid always uses the same one:
(2) {runTime} X {Grid, VertCoord, TimeCoord}
Since all runTimes are the same, the definition only need be:
(2d) {Grid, VertCoord, TimeCoord}
Another case is that different run hours use different TimeCoords. We will call this a RunSeq, and we associate with each
RunSeq the list of grids that use it:
Run = runHour, TimeCoord
RunSeq = {runHour, TimeCoord} X {Grid, VertCoord}
Different grids use different RunSeqs, so we have a list of RunSeq:
(3d) {{runHour, TimeCoord} X {Grid, VertCoord}}
We can recast (2d), when all runHours are the same, as:
(2d') {TimeCoord X {Grid, VertCoord}}
which means that we are grouping grids by unique TimeCoord. (1d) would be the case where there is only one in the list.
Another case is when the VertCoord depends on the TimeCoord, but all run hours are the same:
(4d) {TimeCoord X {Grid, VertCoord(TimeCoord)}}
Which lead us to generalize a VertCoord to a time-dependent one, called VertTimeCoord.
The most general case is then
{{runHour, TimeCoord} X {Grid, VertTimeCoord}}
| Modifier and Type | Class and Description |
|---|---|
static class |
FmrcDefinition.Grid |
class |
FmrcDefinition.RunSeq |
FmrcCoordSys.EnsCoord, FmrcCoordSys.TimeCoord, FmrcCoordSys.VertCoord| Modifier and Type | Field and Description |
|---|---|
static String[] |
fmrcDatasets |
static String[] |
fmrcDatasets_41 |
| Constructor and Description |
|---|
FmrcDefinition() |
| Modifier and Type | Method and Description |
|---|---|
void |
addVertCoordsFromCollectionInventory(FmrcInventory fmrc)
Add just the vertical coord info to the definition
|
FmrcDefinition.RunSeq |
findSeqForVariable(String name) |
FmrcCoordSys.TimeCoord |
findTimeCoordForVariable(String searchName,
Date runTime) |
FmrcCoordSys.VertCoord |
findVertCoordForVariable(String searchName) |
static String[] |
getDefinitionFiles() |
List<FmrcDefinition.RunSeq> |
getRunSequences() |
String |
getSuffixFilter() |
boolean |
hasVariable(String searchName) |
static void |
main(String[] args) |
org.jdom.Document |
makeDefinitionXML()
Create an XML document for the entire collection
|
void |
makeFromCollectionInventory(FmrcInventory fmrc) |
boolean |
readDefinitionXML(String xmlLocation) |
String |
writeDefinitionXML() |
void |
writeDefinitionXML(OutputStream os) |
public static String[] fmrcDatasets
public static String[] fmrcDatasets_41
public String getSuffixFilter()
public List<FmrcDefinition.RunSeq> getRunSequences()
public boolean hasVariable(String searchName)
hasVariable in interface FmrcCoordSyspublic FmrcCoordSys.VertCoord findVertCoordForVariable(String searchName)
findVertCoordForVariable in interface FmrcCoordSyspublic FmrcCoordSys.TimeCoord findTimeCoordForVariable(String searchName, Date runTime)
findTimeCoordForVariable in interface FmrcCoordSyspublic FmrcDefinition.RunSeq findSeqForVariable(String name)
public String writeDefinitionXML()
public void writeDefinitionXML(OutputStream os) throws IOException
IOExceptionpublic org.jdom.Document makeDefinitionXML()
public boolean readDefinitionXML(String xmlLocation) throws IOException
IOExceptionpublic void makeFromCollectionInventory(FmrcInventory fmrc)
public void addVertCoordsFromCollectionInventory(FmrcInventory fmrc)
fmrc - the collection inventorypublic static String[] getDefinitionFiles()
public static void main(String[] args) throws IOException
IOExceptionCopyright © 1999-2013 UCAR/Unidata. All Rights Reserved.