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.jdom2.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 FmrcCoordSys
public FmrcCoordSys.VertCoord findVertCoordForVariable(String searchName)
findVertCoordForVariable
in interface FmrcCoordSys
public FmrcCoordSys.TimeCoord findTimeCoordForVariable(String searchName, Date runTime)
findTimeCoordForVariable
in interface FmrcCoordSys
public FmrcDefinition.RunSeq findSeqForVariable(String name)
public String writeDefinitionXML()
public void writeDefinitionXML(OutputStream os) throws IOException
IOException
public org.jdom2.Document makeDefinitionXML()
public boolean readDefinitionXML(String xmlLocation) throws IOException
IOException
public void makeFromCollectionInventory(FmrcInventory fmrc)
public void addVertCoordsFromCollectionInventory(FmrcInventory fmrc)
fmrc
- the collection inventorypublic static String[] getDefinitionFiles()
public static void main(String[] args) throws IOException
IOException
Copyright © 1999–2015 UCAR/Unidata. All rights reserved.