Merge tag 'OB_14.4.1-6m' into omaha_14.4.1
14.4.1-6 Former-commit-id:d0a1514ece
[formerly80dae4bc15
] [formerlydb185ed16c
] [formerlyb684848820
[formerlydb185ed16c
[formerly 6873606777f0c7c18928b0b0814050742c256dc2]]] Former-commit-id:b684848820
Former-commit-id: abe5b26a9420a557ed9d91527aa7c8b4f60ad64c [formerly40f44c9e15
] Former-commit-id:b971724d20
This commit is contained in:
commit
f2dd38f246
125 changed files with 7271 additions and 470 deletions
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>edu.wisc.ssec.cimss.common.dataplugin.convectprob</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -0,0 +1,18 @@
|
|||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: NOAA/CIMSS Prob Severe (dataplugin.convectprob)
|
||||
Bundle-SymbolicName: edu.wisc.ssec.cimss.common.dataplugin.convectprob
|
||||
Bundle-Version: 1.14.4.qualifier
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Export-Package: edu.wisc.ssec.cimss.common.dataplugin.convectprob,
|
||||
edu.wisc.ssec.cimss.common.dataplugin.convectprob.impl
|
||||
Require-Bundle: com.raytheon.uf.common.serialization,
|
||||
com.raytheon.edex.common,
|
||||
javax.persistence,
|
||||
javax.measure,
|
||||
com.raytheon.uf.common.dataplugin,
|
||||
com.raytheon.uf.common.datastorage,
|
||||
com.raytheon.uf.common.status
|
||||
Import-Package: com.raytheon.uf.edex.decodertools.core,
|
||||
com.raytheon.uf.edex.decodertools.time
|
||||
Bundle-Vendor: CIMSS/SSEC
|
|
@ -0,0 +1,4 @@
|
|||
source.. = src/
|
||||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.
|
|
@ -0,0 +1,344 @@
|
|||
package edu.wisc.ssec.cimss.common.dataplugin.convectprob;
|
||||
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.SequenceGenerator;
|
||||
import javax.persistence.Table;
|
||||
import javax.persistence.Transient;
|
||||
import javax.persistence.UniqueConstraint;
|
||||
|
||||
import org.hibernate.annotations.Index;
|
||||
|
||||
import com.raytheon.uf.common.dataplugin.PluginDataObject;
|
||||
import com.raytheon.uf.common.dataplugin.persist.IPersistable;
|
||||
import com.raytheon.uf.common.dataplugin.persist.PersistablePluginDataObject;
|
||||
import com.raytheon.uf.common.datastorage.IDataStore;
|
||||
import com.raytheon.uf.common.datastorage.records.IDataRecord;
|
||||
import com.raytheon.uf.common.datastorage.records.IntegerDataRecord;
|
||||
import com.raytheon.uf.common.datastorage.records.StringDataRecord;
|
||||
import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
|
||||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||
import com.raytheon.uf.common.status.UFStatus;
|
||||
import com.vividsolutions.jts.geom.Geometry;
|
||||
import com.vividsolutions.jts.io.WKTReader;
|
||||
|
||||
import edu.wisc.ssec.cimss.common.dataplugin.convectprob.impl.ShapeObject;
|
||||
|
||||
/**
|
||||
* NOAA/CIMSS Prob Severe Model Data Record Definition
|
||||
*
|
||||
* Data record that stores attributes of NOAA/CIMSS Prob Severe Model shapes
|
||||
*
|
||||
* <pre>
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Mar 27, 2014 DCS 15298 lcronce Initial Creation.
|
||||
*
|
||||
* </pre
|
||||
*
|
||||
* @author Lee Cronce
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
@Entity
|
||||
@SequenceGenerator(initialValue = 1, name = PluginDataObject.ID_GEN, sequenceName = "convectprobseq")
|
||||
@Table(name = ConvectProbRecord.PLUGIN_NAME, uniqueConstraints = { @UniqueConstraint(columnNames = { "refTime" }) })
|
||||
/*
|
||||
* Both refTime and forecastTime are included in the refTimeIndex since
|
||||
* forecastTime is unlikely to be used.
|
||||
*/
|
||||
@org.hibernate.annotations.Table(appliesTo = ConvectProbRecord.PLUGIN_NAME, indexes = { @Index(name = "convectprob_refTimeIndex", columnNames = {
|
||||
"refTime", "forecastTime" }) })
|
||||
@DynamicSerialize
|
||||
public class ConvectProbRecord extends PersistablePluginDataObject implements
|
||||
IPersistable {
|
||||
|
||||
/** Serializable id * */
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public static final String PLUGIN_NAME = "convectprob";
|
||||
|
||||
// Data store data item names
|
||||
@Transient
|
||||
private static final String[] DATA_NAMES = { "types", "probabilities", "mucapes", "ebshears", "meshes", "rcemisses", "rcicecfs", "polygons", "objectids" };
|
||||
|
||||
private final static transient IUFStatusHandler statusHandler = UFStatus.getHandler(ConvectProbRecord.class);
|
||||
|
||||
@Transient
|
||||
private String[] types = null;
|
||||
|
||||
@Transient
|
||||
private int[] probabilities = null;
|
||||
|
||||
@Transient
|
||||
private String[] mucapes = null;
|
||||
|
||||
@Transient
|
||||
private String[] ebshears = null;
|
||||
|
||||
@Transient
|
||||
private String[] meshes = null;
|
||||
|
||||
@Transient
|
||||
private String[] rcemisses = null;
|
||||
|
||||
@Transient
|
||||
private String[] rcicecfs = null;
|
||||
|
||||
@Transient
|
||||
private String[] polygons = null;
|
||||
|
||||
@Transient
|
||||
private String[] objectids = null;
|
||||
|
||||
@Transient
|
||||
private Object[] dataArrays = null;
|
||||
|
||||
@Transient
|
||||
private int insertIndex = 0;
|
||||
|
||||
// Used to track
|
||||
@Transient
|
||||
long persistTime = 0L;
|
||||
|
||||
/**
|
||||
* Required empty constructor.
|
||||
*/
|
||||
public ConvectProbRecord() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a data record from a dataURI
|
||||
*
|
||||
* @param data URI
|
||||
*/
|
||||
public ConvectProbRecord(String uri) {
|
||||
super(uri);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a convectprob record with a
|
||||
* given amount of shapes
|
||||
*
|
||||
* @param size of arrays based on number of shapes
|
||||
*/
|
||||
public ConvectProbRecord(int arraysSize) {
|
||||
types = new String[arraysSize];
|
||||
probabilities = new int[arraysSize];
|
||||
mucapes = new String[arraysSize];
|
||||
ebshears = new String[arraysSize];
|
||||
meshes = new String[arraysSize];
|
||||
rcemisses = new String[arraysSize];
|
||||
rcicecfs = new String[arraysSize];
|
||||
polygons = new String[arraysSize];
|
||||
objectids = new String[arraysSize];
|
||||
dataArrays = new Object[] { types, probabilities, mucapes, ebshears, meshes, rcemisses, rcicecfs, polygons, objectids };
|
||||
insertIndex = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a convectprob shape to the record collection.
|
||||
*
|
||||
* @param shape to add
|
||||
*/
|
||||
public void addShape(ShapeObject shape) {
|
||||
try {
|
||||
types[insertIndex] = shape.getType();
|
||||
probabilities[insertIndex] = shape.getProbability();
|
||||
mucapes[insertIndex] = shape.getMucape();
|
||||
ebshears[insertIndex] = shape.getEbshear();
|
||||
meshes[insertIndex] = shape.getMesh();
|
||||
rcemisses[insertIndex] = shape.getRcemiss();
|
||||
rcicecfs[insertIndex] = shape.getRcicecf();
|
||||
polygons[insertIndex] = shape.getPolygon();
|
||||
objectids[insertIndex] = shape.getObjectid();
|
||||
insertIndex++;
|
||||
} catch (Exception e) {
|
||||
statusHandler.error("insertIndex is out of bounds: " + Integer.toString(insertIndex), e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve names of data contained in data record
|
||||
*
|
||||
* @return string array of data record field names
|
||||
*/
|
||||
public String[] getDataNames() {
|
||||
return DATA_NAMES;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve data contained within the data record
|
||||
*
|
||||
* @return array of data objects stored in record
|
||||
*/
|
||||
public Object[] getDataArrays() {
|
||||
return dataArrays;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set data to be contained within the data record
|
||||
*
|
||||
* @param array of data objects to be set
|
||||
*/
|
||||
public void setDataArrays(Object[] dataArrays) {
|
||||
this.dataArrays = dataArrays;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the shape types
|
||||
*
|
||||
* @return shape types
|
||||
*/
|
||||
public String[] getTypes() {
|
||||
return types;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the shape probabilities
|
||||
*
|
||||
* @return shape probabilities of severe
|
||||
*/
|
||||
public int[] getProbabilities() {
|
||||
return probabilities;
|
||||
}
|
||||
|
||||
/**
|
||||
*Retrieves the MUCAPE associated with shapes
|
||||
*
|
||||
* @return shape MUCAPEs
|
||||
*/
|
||||
public String[] getMucapes() {
|
||||
return mucapes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the EB shear associated with shapes
|
||||
*
|
||||
* @return shape EB Shears
|
||||
*/
|
||||
public String[] getEbshears() {
|
||||
return ebshears;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the MESH associated with the shapes
|
||||
*
|
||||
* @return shape MESHes
|
||||
*/
|
||||
public String[] getMeshes() {
|
||||
return meshes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the emissivities associated with the shapes
|
||||
*
|
||||
* @return shape top of troposphere emissivities
|
||||
*/
|
||||
public String[] getRcemisses() {
|
||||
return rcemisses;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the ice cloud fractions associated with the shapes
|
||||
*
|
||||
* @return rates of change of ice cloud fraction
|
||||
*/
|
||||
public String[] getRcicecfs() {
|
||||
return rcicecfs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the shape polygons
|
||||
*
|
||||
* @return polygons defining the data record shapes
|
||||
*/
|
||||
public String[] getPolygons() {
|
||||
return polygons;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the shape objectids
|
||||
*
|
||||
* @return objectids specifying the objectids of the shapes
|
||||
*/
|
||||
public String[] getObjectids() {
|
||||
return objectids;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creating Geometry objects from String representation
|
||||
* of shape polygons
|
||||
*
|
||||
* @return Geometry objects of shape polygons
|
||||
*/
|
||||
public Geometry[] getPolyGeoms() {
|
||||
Geometry[] polyGeoms = new Geometry[polygons.length];
|
||||
WKTReader reader = new WKTReader();
|
||||
int i = 0;
|
||||
for (String poly : polygons) {
|
||||
try {
|
||||
polyGeoms[i] = reader.read(poly);
|
||||
i++;
|
||||
} catch (Exception e) {
|
||||
statusHandler.error("Well Known Text reader could not read selected text: " + poly, e);
|
||||
}
|
||||
}
|
||||
return polyGeoms;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the data arrays from the store.
|
||||
*
|
||||
* @param dataStore
|
||||
*/
|
||||
public void retrieveFromDataStore(IDataStore dataStore) {
|
||||
try {
|
||||
IDataRecord[] dataRec = dataStore.retrieve(getDataURI());
|
||||
dataArrays = new Object[dataRec.length];
|
||||
for (int i = 0; i < dataRec.length; i++) {
|
||||
if (dataRec[i].getName().equals("types")) {
|
||||
types = ((StringDataRecord) dataRec[i]).getStringData();
|
||||
dataArrays[i] = types;
|
||||
} else if (dataRec[i].getName().equals("probabilities")) {
|
||||
probabilities = ((IntegerDataRecord) dataRec[i]).getIntData();
|
||||
dataArrays[i] = probabilities;
|
||||
} else if (dataRec[i].getName().equals("mucapes")) {
|
||||
mucapes = ((StringDataRecord) dataRec[i]).getStringData();
|
||||
dataArrays[i] = mucapes;
|
||||
} else if (dataRec[i].getName().equals("ebshears")) {
|
||||
ebshears = ((StringDataRecord) dataRec[i]).getStringData();
|
||||
dataArrays[i] = ebshears;
|
||||
} else if (dataRec[i].getName().equals("meshes")) {
|
||||
meshes = ((StringDataRecord) dataRec[i]).getStringData();
|
||||
dataArrays[i] = meshes;
|
||||
} else if (dataRec[i].getName().equals("rcemisses")) {
|
||||
rcemisses = ((StringDataRecord) dataRec[i]).getStringData();
|
||||
dataArrays[i] = rcemisses;
|
||||
} else if (dataRec[i].getName().equals("rcicecfs")) {
|
||||
rcicecfs = ((StringDataRecord) dataRec[i]).getStringData();
|
||||
dataArrays[i] = rcicecfs;
|
||||
} else if (dataRec[i].getName().equals("polygons")) {
|
||||
polygons = ((StringDataRecord) dataRec[i]).getStringData();
|
||||
dataArrays[i] = polygons;
|
||||
} else if (dataRec[i].getName().equals("objectids")) {
|
||||
objectids = ((StringDataRecord) dataRec[i]).getStringData();
|
||||
dataArrays[i] = objectids;
|
||||
}
|
||||
}
|
||||
setDataArrays(dataArrays);
|
||||
|
||||
} catch (Exception e) {
|
||||
statusHandler.error("Error retrieving data from the convectprob data store", e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @see com.raytheon.uf.common.dataplugin.PluginDataObject#getPluginName()
|
||||
*/
|
||||
@Override
|
||||
public String getPluginName() {
|
||||
return PLUGIN_NAME;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,208 @@
|
|||
package edu.wisc.ssec.cimss.common.dataplugin.convectprob.impl;
|
||||
|
||||
/**
|
||||
* NOAA/CIMSS Prob Severe Model Shape Object Definition
|
||||
*
|
||||
* Data object that defines attributes of a NOAA/CIMSS Prob Severe Model shape
|
||||
*
|
||||
* <pre>
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Mar 27, 2014 DCS 15298 lcronce Initial Creation.
|
||||
*
|
||||
* </pre
|
||||
*
|
||||
* @author Lee Cronce
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
public class ShapeObject {
|
||||
|
||||
private String type;
|
||||
|
||||
private int probability;
|
||||
|
||||
private String mucape;
|
||||
|
||||
private String ebshear;
|
||||
|
||||
private String mesh;
|
||||
|
||||
private String rcemiss;
|
||||
|
||||
private String rcicecf;
|
||||
|
||||
private String polygon;
|
||||
|
||||
private String objectid;
|
||||
|
||||
/**
|
||||
* Default empty constructor
|
||||
*/
|
||||
public ShapeObject() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve type of a shape
|
||||
*
|
||||
* @return shape type
|
||||
*/
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve shape probability of severe
|
||||
*
|
||||
* @return shape probability of severe
|
||||
*/
|
||||
public int getProbability() {
|
||||
return probability;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve MUCAPE associated with a shape
|
||||
*
|
||||
* @return shape MUCAPE
|
||||
*/
|
||||
public String getMucape() {
|
||||
return mucape;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve EB Shear associated with a shape
|
||||
*
|
||||
* @return shape EB Shear
|
||||
*/
|
||||
public String getEbshear() {
|
||||
return ebshear;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve MESH associated with a shape
|
||||
*
|
||||
* @return shape MESH
|
||||
*/
|
||||
public String getMesh() {
|
||||
return mesh;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve rate of change of emissivity of a shape
|
||||
*
|
||||
* @return shape emissivity rate of change
|
||||
*/
|
||||
public String getRcemiss() {
|
||||
return rcemiss;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve rate of change of ice cloud fraction of a shape
|
||||
*
|
||||
* @return shape ice cloud fraction rate of change
|
||||
*/
|
||||
public String getRcicecf() {
|
||||
return rcicecf;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the polygon defining a shape
|
||||
*
|
||||
* @return shape polygon
|
||||
*/
|
||||
public String getPolygon() {
|
||||
return polygon;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retried the object ID of a shape
|
||||
*
|
||||
* @return shape objectID
|
||||
*/
|
||||
public String getObjectid() {
|
||||
return objectid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set type of a shape
|
||||
*
|
||||
* @param shape type
|
||||
*/
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set shape probability of severe
|
||||
*
|
||||
* @param shape probability of severe
|
||||
*/
|
||||
public void setProbability(int probability) {
|
||||
this.probability = probability;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set MUCAPE associated with a shape
|
||||
*
|
||||
* @param shape MUCAPE
|
||||
*/
|
||||
public void setMucape(String mucape) {
|
||||
this.mucape = mucape;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set EB Shear associated with a shape
|
||||
*
|
||||
* @param shape EB Shear
|
||||
*/
|
||||
public void setEbshear(String ebshear) {
|
||||
this.ebshear = ebshear;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set MESH associated with a shape
|
||||
*
|
||||
* @param shape MESH
|
||||
*/
|
||||
public void setMesh(String mesh) {
|
||||
this.mesh = mesh;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set rate of change of emissivity of a shape
|
||||
*
|
||||
* @param shape emissivity rate of change
|
||||
*/
|
||||
public void setRcemiss(String rcemiss) {
|
||||
this.rcemiss = rcemiss;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set rate of change of ice cloud fraction of a shape
|
||||
*
|
||||
* @param shape ice cloud fraction rate of change
|
||||
*/
|
||||
public void setRcicecf(String rcicecf) {
|
||||
this.rcicecf = rcicecf;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the polygon defining a shape
|
||||
*
|
||||
* @param shape polygon
|
||||
*/
|
||||
public void setPolygon(String polygon) {
|
||||
this.polygon = polygon;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the object ID of a shape
|
||||
*
|
||||
* @param shape objectID
|
||||
*/
|
||||
public void setObjectid(String objectid) {
|
||||
this.objectid = objectid;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,259 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<colorMap xmlns:ns2="http://www.example.org/productType">
|
||||
<color r="0.3529412" g="0.3529412" b="0.3529412" a="1.0"/>
|
||||
<color r="0.35686275" g="0.35686275" b="0.35686275" a="1.0"/>
|
||||
<color r="0.36078432" g="0.36078432" b="0.36078432" a="1.0"/>
|
||||
<color r="0.36862746" g="0.36862746" b="0.36862746" a="1.0"/>
|
||||
<color r="0.37254903" g="0.37254903" b="0.37254903" a="1.0"/>
|
||||
<color r="0.3764706" g="0.3764706" b="0.3764706" a="1.0"/>
|
||||
<color r="0.38039216" g="0.38039216" b="0.38039216" a="1.0"/>
|
||||
<color r="0.3882353" g="0.3882353" b="0.3882353" a="1.0"/>
|
||||
<color r="0.39215687" g="0.39215687" b="0.39215687" a="1.0"/>
|
||||
<color r="0.39607844" g="0.39607844" b="0.39607844" a="1.0"/>
|
||||
<color r="0.4" g="0.4" b="0.4" a="1.0"/>
|
||||
<color r="0.40784314" g="0.40784314" b="0.40784314" a="1.0"/>
|
||||
<color r="0.4117647" g="0.4117647" b="0.4117647" a="1.0"/>
|
||||
<color r="0.41568628" g="0.41568628" b="0.41568628" a="1.0"/>
|
||||
<color r="0.41960785" g="0.41960785" b="0.41960785" a="1.0"/>
|
||||
<color r="0.42745098" g="0.42745098" b="0.42745098" a="1.0"/>
|
||||
<color r="0.43137255" g="0.43137255" b="0.43137255" a="1.0"/>
|
||||
<color r="0.43529412" g="0.43529412" b="0.43529412" a="1.0"/>
|
||||
<color r="0.4392157" g="0.4392157" b="0.4392157" a="1.0"/>
|
||||
<color r="0.44705883" g="0.44705883" b="0.44705883" a="1.0"/>
|
||||
<color r="0.4509804" g="0.4509804" b="0.4509804" a="1.0"/>
|
||||
<color r="0.45490196" g="0.45490196" b="0.45490196" a="1.0"/>
|
||||
<color r="0.45882353" g="0.45882353" b="0.45882353" a="1.0"/>
|
||||
<color r="0.4627451" g="0.4627451" b="0.4627451" a="1.0"/>
|
||||
<color r="0.47058824" g="0.47058824" b="0.47058824" a="1.0"/>
|
||||
<color r="0.4745098" g="0.4745098" b="0.4745098" a="1.0"/>
|
||||
<color r="0.48235294" g="0.48235294" b="0.48235294" a="1.0"/>
|
||||
<color r="0.4745098" g="0.47843137" b="0.49411765" a="1.0"/>
|
||||
<color r="0.46666667" g="0.47843137" b="0.5019608" a="1.0"/>
|
||||
<color r="0.45882353" g="0.4745098" b="0.5137255" a="1.0"/>
|
||||
<color r="0.4509804" g="0.47058824" b="0.52156866" a="1.0"/>
|
||||
<color r="0.44313726" g="0.46666667" b="0.53333336" a="1.0"/>
|
||||
<color r="0.43529412" g="0.46666667" b="0.5411765" a="1.0"/>
|
||||
<color r="0.42745098" g="0.4627451" b="0.5529412" a="1.0"/>
|
||||
<color r="0.41960785" g="0.45882353" b="0.5647059" a="1.0"/>
|
||||
<color r="0.4117647" g="0.45490196" b="0.57254905" a="1.0"/>
|
||||
<color r="0.40392157" g="0.45490196" b="0.58431375" a="1.0"/>
|
||||
<color r="0.39607844" g="0.4509804" b="0.5921569" a="1.0"/>
|
||||
<color r="0.3882353" g="0.44705883" b="0.6039216" a="1.0"/>
|
||||
<color r="0.38039216" g="0.44705883" b="0.6156863" a="1.0"/>
|
||||
<color r="0.37254903" g="0.44313726" b="0.62352943" a="1.0"/>
|
||||
<color r="0.3647059" g="0.4392157" b="0.63529414" a="1.0"/>
|
||||
<color r="0.35686275" g="0.43529412" b="0.6431373" a="1.0"/>
|
||||
<color r="0.34901962" g="0.43529412" b="0.654902" a="1.0"/>
|
||||
<color r="0.34117648" g="0.43137255" b="0.6627451" a="1.0"/>
|
||||
<color r="0.33333334" g="0.42745098" b="0.6745098" a="1.0"/>
|
||||
<color r="0.3254902" g="0.42352942" b="0.6862745" a="1.0"/>
|
||||
<color r="0.31764707" g="0.42352942" b="0.69411767" a="1.0"/>
|
||||
<color r="0.30980393" g="0.41960785" b="0.7058824" a="1.0"/>
|
||||
<color r="0.3019608" g="0.41568628" b="0.7137255" a="1.0"/>
|
||||
<color r="0.29411766" g="0.41568628" b="0.7254902" a="1.0"/>
|
||||
<color r="0.28627452" g="0.4117647" b="0.7372549" a="1.0"/>
|
||||
<color r="0.2784314" g="0.40784314" b="0.74509805" a="1.0"/>
|
||||
<color r="0.27058825" g="0.40392157" b="0.75686276" a="1.0"/>
|
||||
<color r="0.2627451" g="0.40392157" b="0.7647059" a="1.0"/>
|
||||
<color r="0.25490198" g="0.4" b="0.7764706" a="1.0"/>
|
||||
<color r="0.24705882" g="0.39607844" b="0.78431374" a="1.0"/>
|
||||
<color r="0.23921569" g="0.39215687" b="0.79607844" a="1.0"/>
|
||||
<color r="0.23137255" g="0.39215687" b="0.80784315" a="1.0"/>
|
||||
<color r="0.22352941" g="0.3882353" b="0.8156863" a="1.0"/>
|
||||
<color r="0.21568628" g="0.38431373" b="0.827451" a="1.0"/>
|
||||
<color r="0.20784314" g="0.38039216" b="0.8352941" a="1.0"/>
|
||||
<color r="0.2" g="0.38039216" b="0.84705883" a="1.0"/>
|
||||
<color r="0.19215687" g="0.3764706" b="0.85882354" a="1.0"/>
|
||||
<color r="0.18431373" g="0.37254903" b="0.8666667" a="1.0"/>
|
||||
<color r="0.1764706" g="0.37254903" b="0.8784314" a="1.0"/>
|
||||
<color r="0.16862746" g="0.36862746" b="0.8862745" a="1.0"/>
|
||||
<color r="0.16078432" g="0.3647059" b="0.8980392" a="1.0"/>
|
||||
<color r="0.15294118" g="0.36078432" b="0.90588236" a="1.0"/>
|
||||
<color r="0.14509805" g="0.36078432" b="0.91764706" a="1.0"/>
|
||||
<color r="0.13725491" g="0.35686275" b="0.92941177" a="1.0"/>
|
||||
<color r="0.12941177" g="0.3529412" b="0.9372549" a="1.0"/>
|
||||
<color r="0.12156863" g="0.34901962" b="0.9490196" a="1.0"/>
|
||||
<color r="0.11372549" g="0.34901962" b="0.95686275" a="1.0"/>
|
||||
<color r="0.105882354" g="0.34509805" b="0.96862745" a="1.0"/>
|
||||
<color r="0.09803922" g="0.34117648" b="0.9764706" a="1.0"/>
|
||||
<color r="0.09019608" g="0.34117648" b="0.9882353" a="1.0"/>
|
||||
<color r="0.078431375" g="0.33333334" b="0.99607843" a="1.0"/>
|
||||
<color r="0.09411765" g="0.34509805" b="0.99607843" a="1.0"/>
|
||||
<color r="0.105882354" g="0.35686275" b="0.99607843" a="1.0"/>
|
||||
<color r="0.12156863" g="0.37254903" b="0.99607843" a="1.0"/>
|
||||
<color r="0.13333334" g="0.38431373" b="0.99215686" a="1.0"/>
|
||||
<color r="0.14901961" g="0.39607844" b="0.99215686" a="1.0"/>
|
||||
<color r="0.16078432" g="0.40784314" b="0.99215686" a="1.0"/>
|
||||
<color r="0.1764706" g="0.41960785" b="0.99215686" a="1.0"/>
|
||||
<color r="0.1882353" g="0.43137255" b="0.99215686" a="1.0"/>
|
||||
<color r="0.20392157" g="0.44705883" b="0.99215686" a="1.0"/>
|
||||
<color r="0.21568628" g="0.45882353" b="0.9882353" a="1.0"/>
|
||||
<color r="0.23137255" g="0.47058824" b="0.9882353" a="1.0"/>
|
||||
<color r="0.24705882" g="0.48235294" b="0.9882353" a="1.0"/>
|
||||
<color r="0.25882354" g="0.49411765" b="0.9882353" a="1.0"/>
|
||||
<color r="0.27450982" g="0.5058824" b="0.9882353" a="1.0"/>
|
||||
<color r="0.28627452" g="0.52156866" b="0.9882353" a="1.0"/>
|
||||
<color r="0.3019608" g="0.53333336" b="0.9843137" a="1.0"/>
|
||||
<color r="0.3137255" g="0.54509807" b="0.9843137" a="1.0"/>
|
||||
<color r="0.32941177" g="0.5568628" b="0.9843137" a="1.0"/>
|
||||
<color r="0.34117648" g="0.5686275" b="0.9843137" a="1.0"/>
|
||||
<color r="0.35686275" g="0.5803922" b="0.9843137" a="1.0"/>
|
||||
<color r="0.36862746" g="0.59607846" b="0.9843137" a="1.0"/>
|
||||
<color r="0.38431373" g="0.60784316" b="0.9843137" a="1.0"/>
|
||||
<color r="0.4" g="0.61960787" b="0.98039216" a="1.0"/>
|
||||
<color r="0.4117647" g="0.6313726" b="0.98039216" a="1.0"/>
|
||||
<color r="0.42745098" g="0.6431373" b="0.98039216" a="1.0"/>
|
||||
<color r="0.4392157" g="0.654902" b="0.98039216" a="1.0"/>
|
||||
<color r="0.45490196" g="0.67058825" b="0.98039216" a="1.0"/>
|
||||
<color r="0.46666667" g="0.68235296" b="0.98039216" a="1.0"/>
|
||||
<color r="0.48235294" g="0.69411767" b="0.9764706" a="1.0"/>
|
||||
<color r="0.49411765" g="0.7058824" b="0.9764706" a="1.0"/>
|
||||
<color r="0.50980395" g="0.7176471" b="0.9764706" a="1.0"/>
|
||||
<color r="0.5254902" g="0.73333335" b="0.9764706" a="1.0"/>
|
||||
<color r="0.5372549" g="0.74509805" b="0.9764706" a="1.0"/>
|
||||
<color r="0.5529412" g="0.75686276" b="0.9764706" a="1.0"/>
|
||||
<color r="0.5647059" g="0.76862746" b="0.972549" a="1.0"/>
|
||||
<color r="0.5803922" g="0.78039217" b="0.972549" a="1.0"/>
|
||||
<color r="0.5921569" g="0.7921569" b="0.972549" a="1.0"/>
|
||||
<color r="0.60784316" g="0.80784315" b="0.972549" a="1.0"/>
|
||||
<color r="0.61960787" g="0.81960785" b="0.972549" a="1.0"/>
|
||||
<color r="0.63529414" g="0.83137256" b="0.972549" a="1.0"/>
|
||||
<color r="0.64705884" g="0.84313726" b="0.972549" a="1.0"/>
|
||||
<color r="0.6627451" g="0.85490197" b="0.96862745" a="1.0"/>
|
||||
<color r="0.6784314" g="0.8666667" b="0.96862745" a="1.0"/>
|
||||
<color r="0.6901961" g="0.88235295" b="0.96862745" a="1.0"/>
|
||||
<color r="0.7058824" g="0.89411765" b="0.96862745" a="1.0"/>
|
||||
<color r="0.7176471" g="0.90588236" b="0.96862745" a="1.0"/>
|
||||
<color r="0.73333335" g="0.91764706" b="0.96862745" a="1.0"/>
|
||||
<color r="0.74509805" g="0.92941177" b="0.9647059" a="1.0"/>
|
||||
<color r="0.7607843" g="0.9411765" b="0.9647059" a="1.0"/>
|
||||
<color r="0.77254903" g="0.95686275" b="0.9647059" a="1.0"/>
|
||||
<color r="0.78431374" g="0.9647059" b="0.9647059" a="1.0"/>
|
||||
<color r="0.7882353" g="0.95686275" b="0.9647059" a="1.0"/>
|
||||
<color r="0.7882353" g="0.94509804" b="0.9647059" a="1.0"/>
|
||||
<color r="0.7921569" g="0.9372549" b="0.9647059" a="1.0"/>
|
||||
<color r="0.7921569" g="0.9254902" b="0.9647059" a="1.0"/>
|
||||
<color r="0.79607844" g="0.91764706" b="0.9647059" a="1.0"/>
|
||||
<color r="0.79607844" g="0.90588236" b="0.9647059" a="1.0"/>
|
||||
<color r="0.8" g="0.8980392" b="0.9647059" a="1.0"/>
|
||||
<color r="0.8" g="0.8901961" b="0.9647059" a="1.0"/>
|
||||
<color r="0.8039216" g="0.8784314" b="0.9647059" a="1.0"/>
|
||||
<color r="0.8039216" g="0.87058824" b="0.9647059" a="1.0"/>
|
||||
<color r="0.80784315" g="0.85882354" b="0.96862745" a="1.0"/>
|
||||
<color r="0.8117647" g="0.8509804" b="0.96862745" a="1.0"/>
|
||||
<color r="0.8117647" g="0.8392157" b="0.96862745" a="1.0"/>
|
||||
<color r="0.8156863" g="0.83137256" b="0.96862745" a="1.0"/>
|
||||
<color r="0.8156863" g="0.8235294" b="0.96862745" a="1.0"/>
|
||||
<color r="0.81960785" g="0.8117647" b="0.96862745" a="1.0"/>
|
||||
<color r="0.81960785" g="0.8039216" b="0.96862745" a="1.0"/>
|
||||
<color r="0.8235294" g="0.7921569" b="0.96862745" a="1.0"/>
|
||||
<color r="0.8235294" g="0.78431374" b="0.96862745" a="1.0"/>
|
||||
<color r="0.827451" g="0.7764706" b="0.96862745" a="1.0"/>
|
||||
<color r="0.827451" g="0.7647059" b="0.96862745" a="1.0"/>
|
||||
<color r="0.83137256" g="0.75686276" b="0.96862745" a="1.0"/>
|
||||
<color r="0.83137256" g="0.74509805" b="0.96862745" a="1.0"/>
|
||||
<color r="0.8352941" g="0.7372549" b="0.96862745" a="1.0"/>
|
||||
<color r="0.8392157" g="0.7254902" b="0.96862745" a="1.0"/>
|
||||
<color r="0.8392157" g="0.7176471" b="0.96862745" a="1.0"/>
|
||||
<color r="0.84313726" g="0.70980394" b="0.96862745" a="1.0"/>
|
||||
<color r="0.84313726" g="0.69803923" b="0.96862745" a="1.0"/>
|
||||
<color r="0.84705883" g="0.6901961" b="0.96862745" a="1.0"/>
|
||||
<color r="0.84705883" g="0.6784314" b="0.96862745" a="1.0"/>
|
||||
<color r="0.8509804" g="0.67058825" b="0.972549" a="1.0"/>
|
||||
<color r="0.8509804" g="0.65882355" b="0.972549" a="1.0"/>
|
||||
<color r="0.85490197" g="0.6509804" b="0.972549" a="1.0"/>
|
||||
<color r="0.85490197" g="0.6431373" b="0.972549" a="1.0"/>
|
||||
<color r="0.85882354" g="0.6313726" b="0.972549" a="1.0"/>
|
||||
<color r="0.8627451" g="0.62352943" b="0.972549" a="1.0"/>
|
||||
<color r="0.8627451" g="0.6117647" b="0.972549" a="1.0"/>
|
||||
<color r="0.8666667" g="0.6039216" b="0.972549" a="1.0"/>
|
||||
<color r="0.8666667" g="0.5921569" b="0.972549" a="1.0"/>
|
||||
<color r="0.87058824" g="0.58431375" b="0.972549" a="1.0"/>
|
||||
<color r="0.87058824" g="0.5764706" b="0.972549" a="1.0"/>
|
||||
<color r="0.8745098" g="0.5647059" b="0.972549" a="1.0"/>
|
||||
<color r="0.8745098" g="0.5568628" b="0.972549" a="1.0"/>
|
||||
<color r="0.8784314" g="0.54509807" b="0.972549" a="1.0"/>
|
||||
<color r="0.8784314" g="0.5372549" b="0.972549" a="1.0"/>
|
||||
<color r="0.88235295" g="0.5294118" b="0.972549" a="1.0"/>
|
||||
<color r="0.88235295" g="0.5176471" b="0.972549" a="1.0"/>
|
||||
<color r="0.8862745" g="0.50980395" b="0.972549" a="1.0"/>
|
||||
<color r="0.8901961" g="0.49803922" b="0.972549" a="1.0"/>
|
||||
<color r="0.8901961" g="0.49019608" b="0.972549" a="1.0"/>
|
||||
<color r="0.89411765" g="0.47843137" b="0.9764706" a="1.0"/>
|
||||
<color r="0.89411765" g="0.47058824" b="0.9764706" a="1.0"/>
|
||||
<color r="0.8980392" g="0.4627451" b="0.9764706" a="1.0"/>
|
||||
<color r="0.8980392" g="0.4509804" b="0.9764706" a="1.0"/>
|
||||
<color r="0.9019608" g="0.44313726" b="0.9764706" a="1.0"/>
|
||||
<color r="0.9019608" g="0.43137255" b="0.9764706" a="1.0"/>
|
||||
<color r="0.90588236" g="0.42352942" b="0.9764706" a="1.0"/>
|
||||
<color r="0.90588236" g="0.4117647" b="0.9764706" a="1.0"/>
|
||||
<color r="0.9098039" g="0.40392157" b="0.9764706" a="1.0"/>
|
||||
<color r="0.9137255" g="0.39607844" b="0.9764706" a="1.0"/>
|
||||
<color r="0.9137255" g="0.38431373" b="0.9764706" a="1.0"/>
|
||||
<color r="0.91764706" g="0.3764706" b="0.9764706" a="1.0"/>
|
||||
<color r="0.91764706" g="0.3647059" b="0.9764706" a="1.0"/>
|
||||
<color r="0.92156863" g="0.35686275" b="0.9764706" a="1.0"/>
|
||||
<color r="0.92156863" g="0.34509805" b="0.9764706" a="1.0"/>
|
||||
<color r="0.9254902" g="0.3372549" b="0.9764706" a="1.0"/>
|
||||
<color r="0.9254902" g="0.32941177" b="0.9764706" a="1.0"/>
|
||||
<color r="0.92941177" g="0.31764707" b="0.9764706" a="1.0"/>
|
||||
<color r="0.92941177" g="0.30980393" b="0.9764706" a="1.0"/>
|
||||
<color r="0.93333334" g="0.29803923" b="0.9764706" a="1.0"/>
|
||||
<color r="0.93333334" g="0.2901961" b="0.9764706" a="1.0"/>
|
||||
<color r="0.9372549" g="0.2784314" b="0.98039216" a="1.0"/>
|
||||
<color r="0.9411765" g="0.27058825" b="0.98039216" a="1.0"/>
|
||||
<color r="0.9411765" g="0.2627451" b="0.98039216" a="1.0"/>
|
||||
<color r="0.94509804" g="0.2509804" b="0.98039216" a="1.0"/>
|
||||
<color r="0.94509804" g="0.24313726" b="0.98039216" a="1.0"/>
|
||||
<color r="0.9490196" g="0.23137255" b="0.98039216" a="1.0"/>
|
||||
<color r="0.9490196" g="0.22352941" b="0.98039216" a="1.0"/>
|
||||
<color r="0.9529412" g="0.21568628" b="0.98039216" a="1.0"/>
|
||||
<color r="0.9529412" g="0.20392157" b="0.98039216" a="1.0"/>
|
||||
<color r="0.95686275" g="0.19607843" b="0.98039216" a="1.0"/>
|
||||
<color r="0.95686275" g="0.18431373" b="0.98039216" a="1.0"/>
|
||||
<color r="0.9607843" g="0.1764706" b="0.98039216" a="1.0"/>
|
||||
<color r="0.9647059" g="0.16470589" b="0.98039216" a="1.0"/>
|
||||
<color r="0.9647059" g="0.15686275" b="0.98039216" a="1.0"/>
|
||||
<color r="0.96862745" g="0.14901961" b="0.98039216" a="1.0"/>
|
||||
<color r="0.96862745" g="0.13725491" b="0.98039216" a="1.0"/>
|
||||
<color r="0.972549" g="0.12941177" b="0.98039216" a="1.0"/>
|
||||
<color r="0.972549" g="0.11764706" b="0.98039216" a="1.0"/>
|
||||
<color r="0.9764706" g="0.10980392" b="0.98039216" a="1.0"/>
|
||||
<color r="0.9764706" g="0.09803922" b="0.98039216" a="1.0"/>
|
||||
<color r="0.98039216" g="0.09019608" b="0.9843137" a="1.0"/>
|
||||
<color r="0.98039216" g="0.08235294" b="0.9843137" a="1.0"/>
|
||||
<color r="0.9843137" g="0.07058824" b="0.9843137" a="1.0"/>
|
||||
<color r="0.9843137" g="0.0627451" b="0.9843137" a="1.0"/>
|
||||
<color r="0.9882353" g="0.050980393" b="0.9843137" a="1.0"/>
|
||||
<color r="0.99215686" g="0.043137256" b="0.9843137" a="1.0"/>
|
||||
<color r="0.99215686" g="0.03137255" b="0.9843137" a="1.0"/>
|
||||
<color r="0.99607843" g="0.023529412" b="0.9843137" a="1.0"/>
|
||||
<color r="0.99607843" g="0.015686275" b="0.9843137" a="1.0"/>
|
||||
<color r="1.0" g="0.003921569" b="0.9843137" a="1.0"/>
|
||||
<color r="1.0" g="0.0" b="0.9843137" a="1.0"/>
|
||||
<color r="0.99607843" g="0.019607844" b="0.9843137" a="1.0"/>
|
||||
<color r="0.99607843" g="0.019607844" b="0.9843137" a="1.0"/>
|
||||
<color r="0.99607843" g="0.019607844" b="0.9843137" a="1.0"/>
|
||||
<color r="0.99607843" g="0.019607844" b="0.9843137" a="1.0"/>
|
||||
<color r="0.99607843" g="0.015686275" b="0.9843137" a="1.0"/>
|
||||
<color r="0.99607843" g="0.015686275" b="0.9843137" a="1.0"/>
|
||||
<color r="0.99607843" g="0.015686275" b="0.9843137" a="1.0"/>
|
||||
<color r="0.99607843" g="0.015686275" b="0.9843137" a="1.0"/>
|
||||
<color r="0.99607843" g="0.015686275" b="0.9843137" a="1.0"/>
|
||||
<color r="0.99607843" g="0.011764706" b="0.9843137" a="1.0"/>
|
||||
<color r="0.99607843" g="0.011764706" b="0.9843137" a="1.0"/>
|
||||
<color r="0.99607843" g="0.011764706" b="0.9843137" a="1.0"/>
|
||||
<color r="0.99607843" g="0.011764706" b="0.9843137" a="1.0"/>
|
||||
<color r="1.0" g="0.011764706" b="0.9843137" a="1.0"/>
|
||||
<color r="1.0" g="0.007843138" b="0.9843137" a="1.0"/>
|
||||
<color r="1.0" g="0.007843138" b="0.9843137" a="1.0"/>
|
||||
<color r="1.0" g="0.007843138" b="0.9843137" a="1.0"/>
|
||||
<color r="1.0" g="0.007843138" b="0.9843137" a="1.0"/>
|
||||
<color r="1.0" g="0.003921569" b="0.9843137" a="1.0"/>
|
||||
<color r="1.0" g="0.003921569" b="0.9843137" a="1.0"/>
|
||||
<color r="1.0" g="0.003921569" b="0.9843137" a="1.0"/>
|
||||
<color r="1.0" g="0.003921569" b="0.9843137" a="1.0"/>
|
||||
<color r="1.0" g="0.003921569" b="0.9843137" a="1.0"/>
|
||||
<color r="1.0" g="0.0" b="0.9843137" a="1.0"/>
|
||||
<color r="1.0" g="0.0" b="0.9843137" a="1.0"/>
|
||||
</colorMap>
|
17
CIMSS/edu.wisc.ssec.cimss.edex.convectprob.feature/.project
Normal file
17
CIMSS/edu.wisc.ssec.cimss.edex.convectprob.feature/.project
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>edu.wisc.ssec.cimss.edex.convectprob.feature</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.FeatureBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.pde.FeatureNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -0,0 +1 @@
|
|||
bin.includes = feature.xml
|
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<feature
|
||||
id="edu.wisc.ssec.cimss.edex.convectprob.feature"
|
||||
label="Convectprob EDEX Feature"
|
||||
version="1.0.0.qualifier"
|
||||
provider-name="CIMSS/SSEC">
|
||||
|
||||
<description url="http://www.example.com/description">
|
||||
[Enter Feature Description here.]
|
||||
</description>
|
||||
|
||||
<copyright url="http://www.example.com/copyright">
|
||||
[Enter Copyright Description here.]
|
||||
</copyright>
|
||||
|
||||
<license url="http://www.example.com/license">
|
||||
[Enter License Description here.]
|
||||
</license>
|
||||
|
||||
<plugin
|
||||
id="edu.wisc.ssec.cimss.common.dataplugin.convectprob"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="edu.wisc.ssec.cimss.edex.plugin.convectprob"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
</feature>
|
13
CIMSS/edu.wisc.ssec.cimss.edex.plugin.convectprob/.classpath
Normal file
13
CIMSS/edu.wisc.ssec.cimss.edex.plugin.convectprob/.classpath
Normal file
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="src" path="/com.raytheon.edex.common"/>
|
||||
<classpathentry kind="src" path="/edu.wisc.ssec.cimss.common.dataplugin.convectprob"/>
|
||||
<classpathentry kind="src" path="/com.raytheon.uf.common.dataplugin"/>
|
||||
<classpathentry kind="src" path="/com.raytheon.uf.common.time"/>
|
||||
<classpathentry kind="src" path="/org.geotools"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/com.raytheon.uf.edex.core"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
28
CIMSS/edu.wisc.ssec.cimss.edex.plugin.convectprob/.project
Normal file
28
CIMSS/edu.wisc.ssec.cimss.edex.plugin.convectprob/.project
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>edu.wisc.ssec.cimss.edex.plugin.convectprob</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -0,0 +1,16 @@
|
|||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: NOAA/CIMSS Prob Severe (plugin.convectprob)
|
||||
Bundle-SymbolicName: edu.wisc.ssec.cimss.edex.plugin.convectprob
|
||||
Bundle-Version: 1.14.4.qualifier
|
||||
Bundle-Vendor: CIMSS/SSEC
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Require-Bundle: com.raytheon.uf.edex.decodertools;bundle-version="1.0.0",
|
||||
javax.persistence,
|
||||
com.raytheon.uf.common.status;bundle-version="1.12.1174"
|
||||
Import-Package: com.raytheon.uf.common.datastorage,
|
||||
com.raytheon.uf.common.datastorage.records,
|
||||
com.raytheon.uf.edex.database.plugin,
|
||||
edu.wisc.ssec.cimss.common.dataplugin.convectprob,
|
||||
edu.wisc.ssec.cimss.common.dataplugin.convectprob.impl
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
source.. = src/
|
||||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.,\
|
||||
res/
|
|
@ -0,0 +1,22 @@
|
|||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
|
||||
|
||||
<bean id="convectprobPluginName" class="java.lang.String">
|
||||
<constructor-arg type="java.lang.String" value="convectprob" />
|
||||
</bean>
|
||||
|
||||
<bean id="convectprobProperties" class="com.raytheon.uf.common.dataplugin.PluginProperties"
|
||||
depends-on="convectprobPluginName">
|
||||
<property name="pluginName" ref="convectprobPluginName" />
|
||||
<property name="pluginFQN" value="edu.wisc.ssec.cimss.common.dataplugin.convectprob" />
|
||||
<property name="dao" value="edu.wisc.ssec.cimss.edex.plugin.convectprob.dao.ConvectProbDao" />
|
||||
<property name="record" value="edu.wisc.ssec.cimss.common.dataplugin.convectprob.ConvectProbRecord" />
|
||||
</bean>
|
||||
|
||||
<bean id="convectprobRegistered" factory-bean="pluginRegistry" factory-method="register">
|
||||
<constructor-arg value="convectprob"/>
|
||||
<constructor-arg ref="convectprobProperties"/>
|
||||
</bean>
|
||||
|
||||
</beans>
|
|
@ -0,0 +1,39 @@
|
|||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
|
||||
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
|
||||
|
||||
<bean id="convectprobDecoder"
|
||||
class="edu.wisc.ssec.cimss.edex.plugin.convectprob.ConvectProbDecoder" />
|
||||
|
||||
<bean id="convectprobDistRegistry" factory-bean="distributionSrv"
|
||||
factory-method="register">
|
||||
<constructor-arg value="convectprob" />
|
||||
<constructor-arg value="jms-durable:queue:Ingest.convectprob"/>
|
||||
</bean>
|
||||
|
||||
<camelContext id="convectprob-camel"
|
||||
xmlns="http://camel.apache.org/schema/spring"
|
||||
errorHandlerRef="errorHandler"
|
||||
autoStartup="false">
|
||||
|
||||
<!-- Begin convectprob routes -->
|
||||
<route id="convectprobIngestRoute">
|
||||
<from uri="jms-durable:queue:Ingest.convectprob"/>
|
||||
<setHeader headerName="pluginName">
|
||||
<constant>convectprob</constant>
|
||||
</setHeader>
|
||||
<doTry>
|
||||
<pipeline>
|
||||
<bean ref="stringToFile" />
|
||||
<bean ref="convectprobDecoder" method="decode" />
|
||||
<to uri="direct-vm:persistIndexAlert" />
|
||||
</pipeline>
|
||||
<doCatch>
|
||||
<exception>java.lang.Throwable</exception>
|
||||
<to uri="log:convectprob?level=ERROR"/>
|
||||
</doCatch>
|
||||
</doTry>
|
||||
</route>
|
||||
</camelContext>
|
||||
</beans>
|
|
@ -0,0 +1,115 @@
|
|||
package edu.wisc.ssec.cimss.edex.plugin.convectprob;
|
||||
|
||||
import java.io.File;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
|
||||
import com.raytheon.edex.plugin.AbstractDecoder;
|
||||
import com.raytheon.uf.common.dataplugin.PluginDataObject;
|
||||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||
import com.raytheon.uf.common.status.UFStatus;
|
||||
import com.raytheon.uf.common.time.DataTime;
|
||||
import com.raytheon.uf.common.time.util.TimeUtil;
|
||||
|
||||
import edu.wisc.ssec.cimss.common.dataplugin.convectprob.ConvectProbRecord;
|
||||
import edu.wisc.ssec.cimss.common.dataplugin.convectprob.impl.ShapeObject;
|
||||
import edu.wisc.ssec.cimss.edex.plugin.convectprob.impl.ConvectProbParser;
|
||||
|
||||
/**
|
||||
* NOAA/CIMSS Prob Severe Model Data Decoder
|
||||
*
|
||||
* Data decoder that reads shapefile records of NOAA/CIMSS Prob Severe Model
|
||||
*
|
||||
* <pre>
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Mar 27, 2014 DCS 15298 lcronce Initial Creation.
|
||||
*
|
||||
* </pre
|
||||
*
|
||||
* @author Lee Cronce
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
public class ConvectProbDecoder extends AbstractDecoder {
|
||||
|
||||
private final IUFStatusHandler statusHandler = UFStatus.getHandler(ConvectProbDecoder.class);
|
||||
|
||||
private String traceId = null;
|
||||
|
||||
/**
|
||||
* Default empty constructor
|
||||
*/
|
||||
public ConvectProbDecoder() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the data object that will be persisted to the database and
|
||||
* hdf5 repository
|
||||
*
|
||||
* @param File object passed by EDEX
|
||||
* @return PluginDataObject[] object of shape data
|
||||
* @throws Throwable
|
||||
*/
|
||||
public PluginDataObject[] decode(File file) throws Throwable {
|
||||
ArrayList<ShapeObject> shapes = new ArrayList<ShapeObject>();
|
||||
ConvectProbParser parser = new ConvectProbParser(file);
|
||||
|
||||
ShapeObject token;
|
||||
while (parser.hasNext()) {
|
||||
token = parser.next();
|
||||
try {
|
||||
if (token != null) {
|
||||
shapes.add(token);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
statusHandler.error("Problem creating new convectprob object from file" + file.getName(), e);
|
||||
return new PluginDataObject[0];
|
||||
}
|
||||
}
|
||||
ConvectProbRecord record = null;
|
||||
|
||||
if (shapes.size() > 0) {
|
||||
record = new ConvectProbRecord(shapes.size());
|
||||
for (ShapeObject shape : shapes) {
|
||||
record.addShape(shape);
|
||||
}
|
||||
} else {
|
||||
return new PluginDataObject[0];
|
||||
}
|
||||
|
||||
String validTime = parser.getValidTime();
|
||||
if (validTime != null) {
|
||||
Calendar c = TimeUtil.newCalendar();
|
||||
record.setInsertTime(c);
|
||||
try {
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd_HHmmss");
|
||||
record.setDataTime(new DataTime(dateFormat.parse(validTime)));
|
||||
} catch (Exception e) {
|
||||
statusHandler.error("Problem defining valid convectprob file time information using: " + validTime, e);
|
||||
return new PluginDataObject[0];
|
||||
}
|
||||
} else {
|
||||
return new PluginDataObject[0];
|
||||
}
|
||||
|
||||
if (record != null) {
|
||||
record.setTraceId(traceId);
|
||||
}
|
||||
|
||||
return new PluginDataObject[] { record };
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a trace identifier for the source data.
|
||||
*
|
||||
* @param traceId
|
||||
* A unique identifier associated with the input data.
|
||||
*/
|
||||
public void setTraceId(String traceId) {
|
||||
this.traceId = traceId;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
package edu.wisc.ssec.cimss.edex.plugin.convectprob.dao;
|
||||
|
||||
import edu.wisc.ssec.cimss.common.dataplugin.convectprob.ConvectProbRecord;
|
||||
import com.raytheon.uf.common.dataplugin.PluginException;
|
||||
import com.raytheon.uf.common.dataplugin.persist.IPersistable;
|
||||
import com.raytheon.uf.common.datastorage.DataStoreFactory;
|
||||
import com.raytheon.uf.common.datastorage.IDataStore;
|
||||
import com.raytheon.uf.common.datastorage.records.IDataRecord;
|
||||
import com.raytheon.uf.edex.database.plugin.PluginDao;
|
||||
|
||||
/**
|
||||
* NOAA/CIMSS Prob Severe Model Data Acquisition Object
|
||||
*
|
||||
* Defines access to persisted data from NOAA/CIMSS Prob Severe Model
|
||||
*
|
||||
* <pre>
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Mar 27, 2014 DCS 15298 jgerth Initial Creation.
|
||||
*
|
||||
* </pre
|
||||
*
|
||||
* @author Jordan Gerth
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
|
||||
public class ConvectProbDao extends PluginDao {
|
||||
|
||||
/**
|
||||
* ConvectProbDao constructor
|
||||
* @param Plugin name
|
||||
* @throws PluginException
|
||||
*/
|
||||
public ConvectProbDao(String pluginName) throws PluginException {
|
||||
super(pluginName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy data from a Persistable object into a given DataStore container.
|
||||
* @param dataStore DataStore instance to receive the Persistable data.
|
||||
* @param obj The Persistable object to be stored.
|
||||
* @throws Exception Any general exception thrown in this method.
|
||||
*/
|
||||
protected IDataStore populateDataStore(IDataStore dataStore,
|
||||
IPersistable obj) throws Exception {
|
||||
ConvectProbRecord cpRec = (ConvectProbRecord) obj;
|
||||
|
||||
for (int i = 0; i < cpRec.getDataArrays().length; i++) {
|
||||
IDataRecord record = DataStoreFactory.createStorageRecord(
|
||||
cpRec.getDataNames()[i], cpRec.getDataURI(), cpRec.getDataArrays()[i]);
|
||||
record.setCorrelationObject(cpRec);
|
||||
dataStore.addDataRecord(record);
|
||||
}
|
||||
|
||||
return dataStore;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,242 @@
|
|||
package edu.wisc.ssec.cimss.edex.plugin.convectprob.impl;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||
import com.raytheon.uf.common.status.UFStatus;
|
||||
|
||||
import edu.wisc.ssec.cimss.common.dataplugin.convectprob.impl.ShapeObject;
|
||||
|
||||
/**
|
||||
* NOAA/CIMSS Prob Severe Model Data Parser
|
||||
*
|
||||
* Data parser that parses shapefile records of NOAA/CIMSS Prob Severe Model
|
||||
*
|
||||
* <pre>
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Mar 27, 2014 DCS 15298 lcronce Initial Creation.
|
||||
*
|
||||
* </pre
|
||||
*
|
||||
* @author Lee Cronce
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
public class ConvectProbParser {
|
||||
|
||||
private final IUFStatusHandler statusHandler = UFStatus.getHandler(ConvectProbParser.class);
|
||||
|
||||
int currentShape = -1;
|
||||
|
||||
private List<ShapeObject> shapes;
|
||||
|
||||
private String validTime;
|
||||
|
||||
private List<String> fileLines;
|
||||
|
||||
/**
|
||||
* Default empty constructor
|
||||
*/
|
||||
public ConvectProbParser() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls setData method for defining shape data
|
||||
*
|
||||
* @param File object passed on from EDEX
|
||||
*/
|
||||
public ConvectProbParser(File file) {
|
||||
setData(file);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls findShapes method to define shape data
|
||||
*
|
||||
* @param File object passed on from EDEX
|
||||
*/
|
||||
private void setData(File file) {
|
||||
currentShape = -1;
|
||||
fileLines = separateLines(file);
|
||||
validTime = findTime(fileLines, file);
|
||||
shapes = findShapes(fileLines);
|
||||
if((shapes != null) && (shapes.size() > 0)) {
|
||||
currentShape = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns convectprob data file valid time reference
|
||||
*
|
||||
* @return String object defining valid time reference
|
||||
*/
|
||||
public String getValidTime() {
|
||||
return validTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if parser contains any more reports
|
||||
*
|
||||
* @return Boolean object defining "Does this parser contain any more reports?"
|
||||
*/
|
||||
public boolean hasNext() {
|
||||
boolean next = (shapes != null);
|
||||
if(next) {
|
||||
next = ((currentShape >= 0) && (currentShape < shapes.size()));
|
||||
}
|
||||
if(!next) {
|
||||
shapes = null;
|
||||
currentShape = -1;
|
||||
}
|
||||
return next;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the next available report and returns a null reference if no
|
||||
* more reports are available.
|
||||
*
|
||||
* @return Next available shape object
|
||||
*/
|
||||
public ShapeObject next() {
|
||||
|
||||
ShapeObject shape = null;
|
||||
if(currentShape < 0) {
|
||||
return shape;
|
||||
}
|
||||
if(currentShape >= shapes.size()) {
|
||||
shapes = null;
|
||||
currentShape = -1;
|
||||
} else {
|
||||
shape = shapes.get(currentShape++);
|
||||
}
|
||||
return shape;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Parses out the data from the passed file object
|
||||
*
|
||||
* @param ArrayList of String type containing individual lines of a convectprob data file
|
||||
* @return String object containing convectprob data valid time
|
||||
*/
|
||||
private String findTime(List<String> fileLines, File file) {
|
||||
String validTime = null;
|
||||
|
||||
if (fileLines != null) {
|
||||
try {
|
||||
String vTime = fileLines.get(0);
|
||||
if (!vTime.substring(0,5).equals("Valid")) {
|
||||
if (file.getName().substring(0,4).equals("SSEC")) {
|
||||
validTime = file.getName().substring(23,38);
|
||||
} else {
|
||||
validTime = null;
|
||||
}
|
||||
} else{
|
||||
validTime = vTime.split(" ")[1];
|
||||
}
|
||||
} catch (Exception e) {
|
||||
statusHandler.error("Problem acquiring convectprob data valid date and time", e);
|
||||
}
|
||||
}
|
||||
|
||||
return validTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses out the data from the passed file object
|
||||
*
|
||||
* @param File object passed on from EDEX
|
||||
* @return ArrayList containing the shape data
|
||||
*/
|
||||
private List<ShapeObject> findShapes(List<String> fileLines) {
|
||||
List<ShapeObject> shapes = new ArrayList<ShapeObject>();
|
||||
|
||||
if (fileLines != null) {
|
||||
for (String line : fileLines) {
|
||||
if (!line.substring(0,5).equals("Valid")) {
|
||||
try {
|
||||
ShapeObject shape = new ShapeObject();
|
||||
String[] shapeAttributes = line.split(":");
|
||||
String type = shapeAttributes[0];
|
||||
shape.setType(type);
|
||||
int probability = Integer.parseInt(shapeAttributes[1].replaceAll("\\D", ""));
|
||||
shape.setProbability(probability);
|
||||
String mucape = shapeAttributes[2];
|
||||
shape.setMucape(mucape);
|
||||
String ebshear = shapeAttributes[3];
|
||||
shape.setEbshear(ebshear);
|
||||
String mesh = shapeAttributes[4];
|
||||
shape.setMesh(mesh);
|
||||
String rcemiss = shapeAttributes[5];
|
||||
shape.setRcemiss(rcemiss);
|
||||
String rcicecf = shapeAttributes[6];
|
||||
shape.setRcicecf(rcicecf);
|
||||
String[] points = shapeAttributes[7].split(",");
|
||||
float[] latitudes = new float[points.length/2];
|
||||
float[] longitudes = new float[points.length/2];
|
||||
for (int i=0; i < points.length; i++) {
|
||||
if ((i == 0) || ((i%2) == 0)) {
|
||||
latitudes[i/2] = Float.parseFloat(points[i]);
|
||||
} else {
|
||||
longitudes[(i-1)/2] = Float.parseFloat(points[i]);
|
||||
}
|
||||
}
|
||||
StringBuffer strbuf = new StringBuffer();
|
||||
strbuf.append("POLYGON((");
|
||||
for (int j=0; j < latitudes.length; j++) {
|
||||
strbuf.append(Float.toString(longitudes[j]));
|
||||
strbuf.append(" ");
|
||||
strbuf.append(Float.toString(latitudes[j]));
|
||||
if (j < latitudes.length-1) {
|
||||
strbuf.append(",");
|
||||
strbuf.append(" ");
|
||||
}
|
||||
}
|
||||
strbuf.append("))");
|
||||
shape.setPolygon(strbuf.toString());
|
||||
String objectid = shapeAttributes[8];
|
||||
shape.setObjectid(objectid);
|
||||
if (latitudes.length >= 4 || longitudes.length >= 4) {
|
||||
shapes.add(shape);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
statusHandler.error("Problem defining convectprob shape object from read line: " + line, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return shapes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Separates out lines of data from the input data file
|
||||
*
|
||||
* @param File passed on by EDEX
|
||||
* @return ArrayList of lines of data from data file
|
||||
*/
|
||||
private List<String> separateLines(File file) {
|
||||
List<String> fileLines = null;
|
||||
|
||||
try {
|
||||
if (file != null) {
|
||||
BufferedReader reader = new BufferedReader(new FileReader(file));
|
||||
fileLines = new ArrayList<String>();
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
fileLines.add(line);
|
||||
}
|
||||
reader.close();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
statusHandler.error("Problem with reading lines of the convectprob input file: " + file.getName(), e);
|
||||
}
|
||||
return fileLines;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<purgeRuleSet>
|
||||
<defaultRule>
|
||||
<versionsToKeep>60</versionsToKeep>
|
||||
</defaultRule>
|
||||
</purgeRuleSet>
|
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
||||
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
|
||||
This_software_product_contains_export-restricted_data_whose
|
||||
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
|
||||
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
|
||||
an_export_license_or_other_authorization.
|
||||
|
||||
Contractor_Name:________Raytheon_Company
|
||||
Contractor_Address:_____6825_Pine_Street,_Suite_340
|
||||
________________________Mail_Stop_B8
|
||||
________________________Omaha,_NE_68106
|
||||
________________________402.291.0100
|
||||
|
||||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<requestPatterns xmlns:ns2="group">
|
||||
<regex>^SSEC_AWIPS_CONVECTPROB_*</regex>
|
||||
</requestPatterns>
|
17
CIMSS/edu.wisc.ssec.cimss.viz.convectprob.feature/.project
Normal file
17
CIMSS/edu.wisc.ssec.cimss.viz.convectprob.feature/.project
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>edu.wisc.ssec.cimss.viz.convectprob.feature</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.FeatureBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.pde.FeatureNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -0,0 +1 @@
|
|||
bin.includes = feature.xml
|
|
@ -0,0 +1,41 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<feature
|
||||
id="edu.wisc.ssec.cimss.viz.convectprob.feature"
|
||||
label="Convectprob CAVE Feature"
|
||||
version="1.0.0.qualifier"
|
||||
provider-name="CIMSS/SSEC">
|
||||
|
||||
<description url="http://www.example.com/description">
|
||||
[Enter Feature Description here.]
|
||||
</description>
|
||||
|
||||
<copyright url="http://www.example.com/copyright">
|
||||
[Enter Copyright Description here.]
|
||||
</copyright>
|
||||
|
||||
<license url="http://www.example.com/license">
|
||||
[Enter License Description here.]
|
||||
</license>
|
||||
|
||||
<requires>
|
||||
<import feature="com.raytheon.uf.viz.common.core.feature" version="1.0.0.qualifier"/>
|
||||
<import feature="com.raytheon.uf.viz.core.feature" version="1.0.0.qualifier"/>
|
||||
<import feature="com.raytheon.uf.viz.cots.feature" version="1.0.0.qualifier"/>
|
||||
<import feature="com.raytheon.uf.viz.d2d.core.feature" version="1.0.0.qualifier"/>
|
||||
</requires>
|
||||
|
||||
<plugin
|
||||
id="edu.wisc.ssec.cimss.common.dataplugin.convectprob"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="edu.wisc.ssec.cimss.viz.convectprob"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
</feature>
|
7
CIMSS/edu.wisc.ssec.cimss.viz.convectprob/.classpath
Normal file
7
CIMSS/edu.wisc.ssec.cimss.viz.convectprob/.classpath
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
28
CIMSS/edu.wisc.ssec.cimss.viz.convectprob/.project
Normal file
28
CIMSS/edu.wisc.ssec.cimss.viz.convectprob/.project
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>edu.wisc.ssec.cimss.viz.convectprob</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -0,0 +1,39 @@
|
|||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: NOAA/CIMSS Prob Severe (viz.convectprob)
|
||||
Bundle-SymbolicName: edu.wisc.ssec.cimss.viz.convectprob;singleton:=true
|
||||
Bundle-Version: 1.14.4.qualifier
|
||||
Require-Bundle: org.eclipse.ui,
|
||||
org.geotools,
|
||||
com.raytheon.uf.common.datastorage,
|
||||
com.raytheon.uf.viz.core,
|
||||
edu.wisc.ssec.cimss.common.dataplugin.convectprob
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Import-Package: com.raytheon.uf.common.colormap,
|
||||
com.raytheon.uf.common.colormap.prefs,
|
||||
com.raytheon.uf.common.dataplugin,
|
||||
com.raytheon.uf.common.geospatial,
|
||||
com.raytheon.uf.common.status,
|
||||
com.raytheon.uf.common.time,
|
||||
com.raytheon.uf.viz.core,
|
||||
com.raytheon.uf.viz.core.drawables,
|
||||
com.raytheon.uf.viz.core.exception,
|
||||
com.raytheon.uf.viz.core.map,
|
||||
com.raytheon.uf.viz.core.procedures,
|
||||
com.raytheon.uf.viz.core.rsc,
|
||||
com.raytheon.uf.viz.core.rsc.capabilities,
|
||||
com.raytheon.uf.viz.core.status,
|
||||
com.raytheon.uf.viz.d2d.core,
|
||||
com.raytheon.uf.viz.productbrowser,
|
||||
com.raytheon.viz.ui,
|
||||
com.raytheon.viz.ui.editor,
|
||||
com.vividsolutions.jts.geom,
|
||||
org.eclipse.core.runtime,
|
||||
org.eclipse.swt.graphics,
|
||||
org.eclipse.ui.plugin,
|
||||
org.opengis.referencing.crs,
|
||||
org.osgi.framework
|
||||
Export-Package: edu.wisc.ssec.cimss.viz.convectprob,
|
||||
edu.wisc.ssec.cimss.viz.convectprob.rsc
|
||||
Bundle-Vendor: CIMSS/SSEC
|
|
@ -0,0 +1,6 @@
|
|||
source.. = src/
|
||||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.,\
|
||||
plugin.xml,\
|
||||
localization/
|
|
@ -0,0 +1,36 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
Affiliate_Name:________Cooperative Institute for Meteorological Satellite Studies
|
||||
Affiliate_Address:_____1225 W. Dayton St.
|
||||
_______________________Madison, WI 53706
|
||||
-->
|
||||
<bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="colorMapCapability">
|
||||
<colorMapParameters colorMapName="prob_severe"/>
|
||||
</capability>
|
||||
<capability xsi:type="colorableCapability" colorAsString="#FFFFFF"/>
|
||||
</capabilities>
|
||||
<resourceType>PLAN_VIEW</resourceType>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false" isMapLayer="false" isHoverOn="false" isVisible="true">
|
||||
</properties>
|
||||
<resourceData xsi:type="convectProbResourceData"
|
||||
isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true" retrieveData="true"
|
||||
showObjectId="false">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="convectprob" constraintType="EQUALS"/>
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
39
CIMSS/edu.wisc.ssec.cimss.viz.convectprob/plugin.xml
Normal file
39
CIMSS/edu.wisc.ssec.cimss.viz.convectprob/plugin.xml
Normal file
|
@ -0,0 +1,39 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
||||
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
|
||||
This_software_product_contains_export-restricted_data_whose
|
||||
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
|
||||
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
|
||||
an_export_license_or_other_authorization.
|
||||
|
||||
Contractor_Name:________Raytheon_Company
|
||||
Contractor_Address:_____6825_Pine_Street,_Suite_340
|
||||
________________________Mail_Stop_B8
|
||||
________________________Omaha,_NE_68106
|
||||
________________________402.291.0100
|
||||
|
||||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<?eclipse version="3.2"?>
|
||||
<plugin>
|
||||
<extension
|
||||
point="com.raytheon.uf.viz.core.resource">
|
||||
<resource
|
||||
class="edu.wisc.ssec.cimss.viz.convectprob.rsc.ConvectProbResource"
|
||||
name="ConvectProb"
|
||||
recordClass="edu.wisc.ssec.cimss.common.dataplugin.convectprob.ConvectProbRecord"
|
||||
renderingOrderId="PLOT"
|
||||
resourceType="PLAN_VIEW"/>
|
||||
</extension>
|
||||
<extension
|
||||
point="com.raytheon.uf.viz.productbrowser.dataDefinition">
|
||||
<dataDefinition
|
||||
name="convectProbProductBrowserDataDefinition"
|
||||
class="edu.wisc.ssec.cimss.viz.convectprob.ConvectProbProductBrowserDataDefinition" >
|
||||
</dataDefinition>
|
||||
</extension>
|
||||
</plugin>
|
|
@ -0,0 +1,102 @@
|
|||
package edu.wisc.ssec.cimss.viz.convectprob;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.raytheon.viz.ui.BundleProductLoader;
|
||||
import com.raytheon.viz.ui.EditorUtil;
|
||||
|
||||
import com.raytheon.uf.common.localization.PathManagerFactory;
|
||||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||
import com.raytheon.uf.common.status.UFStatus;
|
||||
import com.raytheon.uf.common.status.UFStatus.Priority;
|
||||
import com.raytheon.uf.viz.core.exception.VizException;
|
||||
import com.raytheon.uf.viz.core.procedures.Bundle;
|
||||
import com.raytheon.uf.viz.core.rsc.LoadProperties;
|
||||
import com.raytheon.uf.viz.core.rsc.ResourceType;
|
||||
import com.raytheon.uf.viz.productbrowser.AbstractProductBrowserDataDefinition;
|
||||
import com.raytheon.uf.viz.productbrowser.ProductBrowserLabel;
|
||||
import com.raytheon.uf.viz.productbrowser.ProductBrowserPreference;
|
||||
|
||||
import edu.wisc.ssec.cimss.viz.convectprob.rsc.ConvectProbResourceData;
|
||||
|
||||
/**
|
||||
* NOAA/CIMSS Prob Severe Model Product Browser Data Definition
|
||||
*
|
||||
* Defines product browser access to NOAA/CIMSS Prob Severe Model data
|
||||
*
|
||||
* <pre>
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Mar 27, 2014 DCS 15298 jgerth Initial Creation.
|
||||
*
|
||||
* </pre
|
||||
*
|
||||
* @author Jordan Gerth
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
public class ConvectProbProductBrowserDataDefinition extends
|
||||
AbstractProductBrowserDataDefinition<ConvectProbResourceData> {
|
||||
|
||||
IUFStatusHandler statusHandler = UFStatus.getHandler(ConvectProbProductBrowserDataDefinition.class);
|
||||
|
||||
/**
|
||||
* Constructor defining new instance of this class
|
||||
*/
|
||||
public ConvectProbProductBrowserDataDefinition() {
|
||||
displayName = "Prob Severe";
|
||||
loadProperties = new LoadProperties();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see com.raytheon.uf.viz.productbrowser.AbstractProductBrowserDataDefinition#getResourceData()
|
||||
*/
|
||||
@Override
|
||||
public ConvectProbResourceData getResourceData() {
|
||||
return new ConvectProbResourceData();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see com.raytheon.uf.viz.productbrowser.AbstractProductBrowserDataDefinition#populateData(java.lang.String[])
|
||||
*/
|
||||
@Override
|
||||
public List<ProductBrowserLabel> populateData(String[] selection) {
|
||||
List<ProductBrowserLabel> labels = new ArrayList<ProductBrowserLabel>();
|
||||
ProductBrowserLabel label = new ProductBrowserLabel("NOAA/CIMSS Prob Severe Model", "Probability of Severe");
|
||||
label.setProduct(true);
|
||||
labels.add(label);
|
||||
return labels;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see com.raytheon.uf.viz.productbrowser.AbstractProductBrowserDataDefinition#buildProductList(java.util.List)
|
||||
*/
|
||||
@Override
|
||||
public List<String> buildProductList(List<String> historyList) {
|
||||
return historyList;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see com.raytheon.uf.viz.productbrowser.AbstractProductBrowserDataDefinition#constructResource(java.lang.String[], com.raytheon.uf.viz.core.rsc.ResourceType)
|
||||
*/
|
||||
@Override
|
||||
public void constructResource(String[] selection, ResourceType type) {
|
||||
try {
|
||||
Bundle b = Bundle.unmarshalBundle(PathManagerFactory.getPathManager().getStaticFile("bundles/ConvectProb.xml"));
|
||||
new BundleProductLoader(EditorUtil.getActiveVizContainer(),b).run();
|
||||
} catch (VizException e1) {
|
||||
statusHandler.handle(Priority.PROBLEM, "Could not create resource for NOAA/CIMSS Prob Severe Model data", e1);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see com.raytheon.uf.viz.productbrowser.AbstractProductBrowserDataDefinition#configurePreferences()
|
||||
*/
|
||||
@Override
|
||||
public List<ProductBrowserPreference> configurePreferences() {
|
||||
return super.configurePreferences();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,424 @@
|
|||
package edu.wisc.ssec.cimss.viz.convectprob.rsc;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.swt.graphics.RGB;
|
||||
import org.opengis.referencing.crs.CoordinateReferenceSystem;
|
||||
import com.raytheon.uf.common.colormap.Color;
|
||||
import com.raytheon.uf.common.colormap.ColorMapException;
|
||||
import com.raytheon.uf.common.colormap.prefs.ColorMapParameters;
|
||||
import com.raytheon.uf.common.dataplugin.PluginDataObject;
|
||||
import com.raytheon.uf.common.datastorage.DataStoreFactory;
|
||||
import com.raytheon.uf.common.datastorage.IDataStore;
|
||||
import com.raytheon.uf.common.geospatial.ReferencedCoordinate;
|
||||
import com.raytheon.uf.common.time.DataTime;
|
||||
import com.raytheon.uf.viz.core.IGraphicsTarget;
|
||||
import com.raytheon.uf.viz.core.IGraphicsTarget.LineStyle;
|
||||
import com.raytheon.uf.common.colormap.ColorMapLoader;
|
||||
import com.raytheon.uf.viz.core.drawables.IWireframeShape;
|
||||
import com.raytheon.uf.viz.core.drawables.PaintProperties;
|
||||
import com.raytheon.uf.viz.core.exception.VizException;
|
||||
import com.raytheon.uf.viz.core.map.MapDescriptor;
|
||||
import com.raytheon.uf.viz.core.rsc.AbstractVizResource;
|
||||
import com.raytheon.uf.viz.core.rsc.IResourceDataChanged;
|
||||
import com.raytheon.uf.viz.core.rsc.LoadProperties;
|
||||
import com.raytheon.uf.viz.core.rsc.capabilities.ColorMapCapability;
|
||||
import com.vividsolutions.jts.geom.Coordinate;
|
||||
import com.vividsolutions.jts.geom.Geometry;
|
||||
import com.vividsolutions.jts.geom.GeometryFactory;
|
||||
import com.vividsolutions.jts.geom.Point;
|
||||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||
import com.raytheon.uf.common.status.UFStatus;
|
||||
import com.raytheon.uf.common.status.UFStatus.Priority;
|
||||
import com.raytheon.uf.common.dataplugin.HDF5Util;
|
||||
|
||||
import edu.wisc.ssec.cimss.common.dataplugin.convectprob.ConvectProbRecord;
|
||||
|
||||
/**
|
||||
* NOAA/CIMSS Prob Severe Model Visualization Resource
|
||||
*
|
||||
* <pre>
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Mar 27, 2014 DCS 15298 lcronce Initial Creation.
|
||||
*
|
||||
* </pre
|
||||
*
|
||||
* @author Lee Cronce
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
public class ConvectProbResource extends
|
||||
AbstractVizResource<ConvectProbResourceData, MapDescriptor> {
|
||||
|
||||
private final IUFStatusHandler statusHandler = UFStatus
|
||||
.getHandler(ConvectProbResource.class);
|
||||
|
||||
/**
|
||||
* Class defining the attributes of the display frame
|
||||
*
|
||||
* This class holds cached shapes to avoid recalculating everything all
|
||||
* the time
|
||||
*/
|
||||
private class DisplayFrame {
|
||||
Collection<ConvectProbRecord> records = new ArrayList<ConvectProbRecord>();
|
||||
|
||||
IWireframeShape shape;
|
||||
|
||||
protected void dispose() {
|
||||
if (this.shape != null) {
|
||||
this.shape.dispose();
|
||||
this.shape = null;
|
||||
}
|
||||
}
|
||||
|
||||
protected void createShapes(IGraphicsTarget target) {
|
||||
dispose();
|
||||
shape = target.createWireframeShape(false, descriptor);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Place to store records that have not yet been processed
|
||||
private Map<DataTime, Collection<ConvectProbRecord>> unprocessedRecords = new HashMap<DataTime, Collection<ConvectProbRecord>>();
|
||||
|
||||
private Map<DataTime, DisplayFrame> frames = new HashMap<DataTime, DisplayFrame>();
|
||||
|
||||
private DataTime displayedDataTime;
|
||||
|
||||
/**
|
||||
* Constructor to define an instance of this resource
|
||||
*
|
||||
* @param ConvectProb plugin resource data
|
||||
* @param Display load properties
|
||||
*/
|
||||
protected ConvectProbResource(ConvectProbResourceData resourceData,
|
||||
LoadProperties loadProperties) {
|
||||
super(resourceData, loadProperties);
|
||||
resourceData.addChangeListener(new IResourceDataChanged() {
|
||||
@Override
|
||||
public void resourceChanged(ChangeType type, Object object) {
|
||||
if (type == ChangeType.DATA_UPDATE) {
|
||||
PluginDataObject[] pdo = (PluginDataObject[]) object;
|
||||
for (PluginDataObject p : pdo) {
|
||||
if (p instanceof ConvectProbRecord) {
|
||||
addRecord((ConvectProbRecord) p);
|
||||
}
|
||||
}
|
||||
}
|
||||
issueRefresh();
|
||||
}
|
||||
});
|
||||
this.dataTimes = new ArrayList<DataTime>();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @see com.raytheon.uf.viz.core.rsc.AbstractVizResource#disposeInternal()
|
||||
*/
|
||||
@Override
|
||||
protected void disposeInternal() {
|
||||
// Make sure we ditch all the shapes before we go
|
||||
disposeFrames();
|
||||
}
|
||||
|
||||
/**
|
||||
* Disposes of all frames of visualization
|
||||
*/
|
||||
private void disposeFrames() {
|
||||
synchronized (frames) {
|
||||
for (DisplayFrame frame : frames.values()) {
|
||||
frame.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see com.raytheon.uf.viz.core.rsc.AbstractVizResource#getDataTimes()
|
||||
*/
|
||||
@Override
|
||||
public DataTime[] getDataTimes() {
|
||||
if (this.dataTimes == null) {
|
||||
return new DataTime[0];
|
||||
}
|
||||
synchronized (dataTimes) {
|
||||
return this.dataTimes.toArray(new DataTime[0]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see com.raytheon.uf.viz.core.rsc.AbstractVizResource#initInternal(com.raytheon.uf.viz.core.IGraphicsTarget)
|
||||
*/
|
||||
@Override
|
||||
protected void initInternal(IGraphicsTarget target) throws VizException {
|
||||
// Create colormap parameters
|
||||
ColorMapParameters colorMapParams = getCapability(
|
||||
ColorMapCapability.class).getColorMapParameters();
|
||||
if (colorMapParams == null) {
|
||||
colorMapParams = new ColorMapParameters();
|
||||
}
|
||||
String name = "Grid/gridded data";
|
||||
if (colorMapParams.getColorMap() == null) {
|
||||
if (colorMapParams.getColorMapName() != null)
|
||||
name = colorMapParams.getColorMapName();
|
||||
try {
|
||||
colorMapParams.setColorMap(ColorMapLoader.loadColorMap(name));
|
||||
} catch (ColorMapException e) {
|
||||
statusHandler.handle(Priority.ERROR, "Error loading specified colormap: " + name, e);
|
||||
}
|
||||
}
|
||||
|
||||
colorMapParams.setColorMapMax(100.0f);
|
||||
colorMapParams.setColorMapMin(0.0f);
|
||||
float[] cbi = {0.0f, 10.0f, 20.0f, 30.0f, 40.0f, 50.0f, 60.0f, 70.0f, 80.0f, 90.0f, 100.0f};
|
||||
colorMapParams.setColorBarIntervals(cbi);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @see com.raytheon.uf.viz.core.rsc.AbstractVizResource#inspect(com.raytheon.uf.common.geospatial.ReferencedCoordinate)
|
||||
*/
|
||||
@Override
|
||||
public String inspect(ReferencedCoordinate coord) throws VizException {
|
||||
DisplayFrame frame = null;
|
||||
synchronized (frames) {
|
||||
frame = frames.get(this.displayedDataTime);
|
||||
}
|
||||
if (frame == null) {
|
||||
return "";
|
||||
}
|
||||
StringBuilder sample = new StringBuilder();
|
||||
Coordinate latLon = new Coordinate();
|
||||
try {
|
||||
latLon = coord.asLatLon();
|
||||
} catch (Exception e1) {
|
||||
statusHandler.handle(Priority.ERROR, "Error converting ReferencedCoordinate to Lat/Lon", e1);
|
||||
}
|
||||
GeometryFactory geom = new GeometryFactory();
|
||||
Point point = geom.createPoint(latLon);
|
||||
for (ConvectProbRecord record : frame.records) {
|
||||
// Check if we have an area we are rendering
|
||||
if (resourceData.isDisplayShape()) {
|
||||
try {
|
||||
Geometry[] pg = record.getPolyGeoms();
|
||||
for (int i=0; i < pg.length; i++) {
|
||||
if (pg[i].contains(point)) {
|
||||
sample.append("SVR PROB: "+Integer.toString(record.getProbabilities()[i])+"%");
|
||||
sample.append("\n- Env MUCAPE: "+record.getMucapes()[i]);
|
||||
sample.append("\n- Env EBShear: "+record.getEbshears()[i]);
|
||||
sample.append("\n- MRMS MESH: "+record.getMeshes()[i]);
|
||||
sample.append("\n- Norm Vert Growth Rate (Max): "+record.getRcemisses()[i]);
|
||||
sample.append("\n- Glaciation Rate (Max): "+record.getRcicecfs()[i]);
|
||||
if (resourceData.isShowObjectId()) {
|
||||
sample.append("\n- Object ID: "+record.getObjectids()[i]);
|
||||
}
|
||||
return sample.toString();
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
statusHandler.handle(Priority.ERROR, "Error interogating convectprob data", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* Process all records for the displayedDataTime
|
||||
*
|
||||
* @param target
|
||||
* @param paintProps
|
||||
* @throws VizException
|
||||
*/
|
||||
private void updateRecords(IGraphicsTarget target,
|
||||
PaintProperties paintProps) throws VizException {
|
||||
DisplayFrame frame = null;
|
||||
synchronized (frames) {
|
||||
frame = frames.get(this.displayedDataTime);
|
||||
if (frame == null) {
|
||||
frame = new DisplayFrame();
|
||||
frames.put(this.displayedDataTime, frame);
|
||||
}
|
||||
}
|
||||
|
||||
// Add all the new Records
|
||||
Collection<ConvectProbRecord> newRecords = null;
|
||||
synchronized (unprocessedRecords) {
|
||||
newRecords = unprocessedRecords.get(this.displayedDataTime);
|
||||
}
|
||||
for (ConvectProbRecord record : newRecords) {
|
||||
// If we need to draw anything for this record then keep it
|
||||
if (resourceData.isDisplayShape()) {
|
||||
frame.records.add(record);
|
||||
}
|
||||
}
|
||||
newRecords.clear();
|
||||
// Get some new shapes
|
||||
frame.createShapes(target);
|
||||
// Update each record
|
||||
for (ConvectProbRecord record : frame.records) {
|
||||
File f = HDF5Util.findHDF5Location(record);
|
||||
IDataStore ds = DataStoreFactory.getDataStore(f);
|
||||
record.retrieveFromDataStore(ds);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see com.raytheon.uf.viz.core.rsc.AbstractVizResource#paintInternal(com.raytheon.uf.viz.core.IGraphicsTarget, com.raytheon.uf.viz.core.drawables.PaintProperties)
|
||||
*/
|
||||
@Override
|
||||
protected void paintInternal(IGraphicsTarget target,
|
||||
PaintProperties paintProps) throws VizException {
|
||||
|
||||
// Create colormap parameters
|
||||
ColorMapParameters colorMapParams = getCapability(
|
||||
ColorMapCapability.class).getColorMapParameters();
|
||||
|
||||
this.displayedDataTime = paintProps.getDataTime();
|
||||
|
||||
// First check to see if we need to process new data
|
||||
Collection<ConvectProbRecord> unprocessed = null;
|
||||
synchronized (unprocessedRecords) {
|
||||
unprocessed = unprocessedRecords.get(this.displayedDataTime);
|
||||
}
|
||||
if (unprocessed != null && unprocessed.size() > 0) {
|
||||
updateRecords(target, paintProps);
|
||||
}
|
||||
|
||||
// Hopefully we now have some data to display, if not bail
|
||||
DisplayFrame frame = null;
|
||||
synchronized (frames) {
|
||||
frame = frames.get(this.displayedDataTime);
|
||||
}
|
||||
if (frame == null) {
|
||||
this.displayedDataTime = null;
|
||||
return;
|
||||
}
|
||||
|
||||
if (frame.records != null && frame.shape != null) {
|
||||
boolean drawShape = false;
|
||||
Color color;
|
||||
float a, thick;
|
||||
RGB shapeColor = new RGB(255, 255, 255);
|
||||
for (ConvectProbRecord rec : frame.records) {
|
||||
if (rec.getPolyGeoms() != null) {
|
||||
Geometry[] polyGeoms = rec.getPolyGeoms();
|
||||
int[] probabilities = rec.getProbabilities();
|
||||
for (int j=0; j < 101; j++) {
|
||||
frame.shape.reset();
|
||||
drawShape = false;
|
||||
for (int i=0; i < polyGeoms.length; i++) {
|
||||
if (probabilities[i] == j) {
|
||||
frame.shape.addLineSegment(polyGeoms[i].getCoordinates());
|
||||
drawShape = true;
|
||||
}
|
||||
}
|
||||
if (drawShape) {
|
||||
color = colorMapParams.getColorByValue((float) j);
|
||||
shapeColor.red = (int) (color.getRed() * 255);
|
||||
shapeColor.green = (int) (color.getGreen() * 255);
|
||||
shapeColor.blue = (int) (color.getBlue() * 255);
|
||||
a = color.getAlpha() * paintProps.getAlpha();
|
||||
thick = 7.0f;
|
||||
if (j < 50) {
|
||||
thick = 4.0f;
|
||||
}
|
||||
target.drawWireframeShape(frame.shape, shapeColor, thick, LineStyle.SOLID, a);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Adds a new record to this resource
|
||||
*
|
||||
* @param new ConvectProb record
|
||||
*/
|
||||
protected void addRecord(ConvectProbRecord obj) {
|
||||
DataTime dataTime = obj.getDataTime();
|
||||
if (dataTime != null) {
|
||||
Collection<ConvectProbRecord> records = null;
|
||||
boolean brandNew = false;
|
||||
synchronized (unprocessedRecords) {
|
||||
records = unprocessedRecords.get(dataTime);
|
||||
if (records == null) {
|
||||
records = new LinkedHashSet<ConvectProbRecord>();
|
||||
unprocessedRecords.put(dataTime, records);
|
||||
brandNew = true;
|
||||
}
|
||||
}
|
||||
if (brandNew) {
|
||||
synchronized (dataTimes) {
|
||||
this.dataTimes.add(dataTime);
|
||||
Collections.sort(this.dataTimes);
|
||||
}
|
||||
}
|
||||
|
||||
records.add(obj);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see com.raytheon.uf.viz.core.rsc.AbstractVizResource#getName()
|
||||
*/
|
||||
@Override
|
||||
public String getName() {
|
||||
return "NOAA/CIMSS Prob Severe Model (%)";
|
||||
}
|
||||
|
||||
/**
|
||||
* @see com.raytheon.uf.viz.core.rsc.AbstractVizResource#project(org.opengis.referencing.crs.CoordinateReferenceSystem)
|
||||
*/
|
||||
@Override
|
||||
public void project(CoordinateReferenceSystem crs) throws VizException {
|
||||
synchronized (frames) {
|
||||
disposeFrames();
|
||||
// add as unprocessed to make sure frames created
|
||||
for (DataTime time : frames.keySet()) {
|
||||
DisplayFrame frame = frames.get(time);
|
||||
if (frame != null) {
|
||||
List<ConvectProbRecord> copyList = new ArrayList<ConvectProbRecord>(
|
||||
frame.records);
|
||||
synchronized (unprocessedRecords) {
|
||||
unprocessedRecords.put(time, copyList);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see com.raytheon.uf.viz.core.rsc.AbstractVizResource#remove(com.raytheon.uf.common.time.DataTime)
|
||||
*/
|
||||
@Override
|
||||
public void remove(DataTime time) {
|
||||
super.remove(time);
|
||||
Collection<ConvectProbRecord> notNeeded = null;
|
||||
synchronized (unprocessedRecords) {
|
||||
notNeeded = unprocessedRecords.remove(time);
|
||||
}
|
||||
if (notNeeded != null) {
|
||||
notNeeded.clear();
|
||||
}
|
||||
|
||||
DisplayFrame frame = null;
|
||||
synchronized (frames) {
|
||||
frame = frames.remove(time);
|
||||
}
|
||||
if (frame != null) {
|
||||
frame.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,130 @@
|
|||
package edu.wisc.ssec.cimss.viz.convectprob.rsc;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlAttribute;
|
||||
|
||||
import com.raytheon.uf.common.dataplugin.PluginDataObject;
|
||||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||
import com.raytheon.uf.common.status.UFStatus;
|
||||
import com.raytheon.uf.common.status.UFStatus.Priority;
|
||||
import com.raytheon.uf.viz.core.exception.VizException;
|
||||
import com.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData;
|
||||
import com.raytheon.uf.viz.core.rsc.AbstractVizResource;
|
||||
import com.raytheon.uf.viz.core.rsc.LoadProperties;
|
||||
|
||||
import edu.wisc.ssec.cimss.common.dataplugin.convectprob.ConvectProbRecord;
|
||||
|
||||
/**
|
||||
* NOAA/CIMSS Prob Severe Model Visualization Resource Data
|
||||
*
|
||||
* <pre>
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Mar 27, 2014 DCS 15298 lcronce Initial Creation.
|
||||
*
|
||||
* </pre
|
||||
*
|
||||
* @author Lee Cronce
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.NONE)
|
||||
public class ConvectProbResourceData extends AbstractRequestableResourceData {
|
||||
|
||||
private static final transient IUFStatusHandler statusHandler = UFStatus
|
||||
.getHandler(ConvectProbResourceData.class);
|
||||
|
||||
// This flag determines if we draw polygons
|
||||
@XmlAttribute
|
||||
private boolean displayShape = true;
|
||||
|
||||
// This flag determines if object IDs are output to screen during inspect
|
||||
@XmlAttribute
|
||||
private boolean showObjectId = false;
|
||||
|
||||
/**
|
||||
* @see com.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData#equals(java.lang.Object)
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (!super.equals(obj)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (obj instanceof ConvectProbResourceData == false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
ConvectProbResourceData other = (ConvectProbResourceData) obj;
|
||||
|
||||
if (other.displayShape != this.displayShape) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (other.showObjectId != this.showObjectId) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see com.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData#constructResource(com.raytheon.uf.viz.core.rsc.LoadProperties, com.raytheon.uf.common.dataplugin.PluginDataObject[])
|
||||
*/
|
||||
@Override
|
||||
protected AbstractVizResource<?, ?> constructResource(
|
||||
LoadProperties loadProperties, PluginDataObject[] objects)
|
||||
throws VizException {
|
||||
ConvectProbResource rsc = new ConvectProbResource(this, loadProperties);
|
||||
for (PluginDataObject o : objects) {
|
||||
if (o instanceof ConvectProbRecord) {
|
||||
ConvectProbRecord rec = (ConvectProbRecord) o;
|
||||
rsc.addRecord(rec);
|
||||
} else {
|
||||
statusHandler.handle(Priority.PROBLEM,
|
||||
"Received wrong type of data. Got: " + o.getClass()
|
||||
+ " Expected: " + ConvectProbRecord.class);
|
||||
}
|
||||
}
|
||||
return rsc;
|
||||
}
|
||||
|
||||
/**
|
||||
* Flag to see if shape should be displayed
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public boolean isDisplayShape() {
|
||||
return displayShape;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set flag for displaying shape
|
||||
*
|
||||
* @param boolean
|
||||
*/
|
||||
public void setDisplayShape(boolean displayShape) {
|
||||
this.displayShape = displayShape;
|
||||
}
|
||||
|
||||
/**
|
||||
* Flag to see if object ID should be displayed
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public boolean isShowObjectId() {
|
||||
return showObjectId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set flag for displaying shape
|
||||
*
|
||||
* @param boolean
|
||||
*/
|
||||
public void setShowObjectId(boolean showObjectId) {
|
||||
this.showObjectId = showObjectId;
|
||||
}
|
||||
|
||||
}
|
5
RadarServer/com.raytheon.rcm.lib/src/com/raytheon/rcm/products/radarInfo.txt
Normal file → Executable file
5
RadarServer/com.raytheon.rcm.lib/src/com/raytheon/rcm/products/radarInfo.txt
Normal file → Executable file
|
@ -154,5 +154,6 @@
|
|||
#???|256 | 0 | 0.25 | 230 | PRE | Inst Precip Rate (PRE) | Radial | y | | | | Z | | | | |63
|
||||
166| 0 | 0 | 0.0 | 230 | ML | Melting Layer (ML) | Graphic | y | | | | Z | | | | |67
|
||||
170|256 | 0 | 0.25 | 230 | DAA | One Hour Unbiased Accum (DAA) | Radial | | | | |0.01S| | | | |69
|
||||
500 | 8 | 0 | 0.463 | 463 | HSR | Hybrid Scan Reflectivity (HSR)| Radial | | | | | | | | | |64
|
||||
550 | 8 | 0 | 0.926 | 111 | HSR | Hybrid Scan Reflectivity (HSR)| Radial | | | | | | | | | |64
|
||||
196| 0 | 0 | 0.0 | 50 | MBA | Microburst AMDA (MBA) | Generic | | | | | | | | | |28
|
||||
500| 8 | 0 | 0.463| 463 | Z | Reflectivity (Z) | Radial | | | | | | | | | |64
|
||||
550| 8 | 0 | 0.926| 111 | Z | Reflectivity (Z) | Radial | | | | | | | | | |64
|
||||
|
|
|
@ -7,6 +7,7 @@ Bundle-Vendor: RAYTHEON
|
|||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Require-Bundle: com.raytheon.uf.viz.core;bundle-version="1.14.0",
|
||||
com.raytheon.viz.core.graphing,
|
||||
com.raytheon.viz.ui;bundle-version="1.14.0",
|
||||
gov.noaa.nws.ncep.ui.nsharp,
|
||||
com.raytheon.uf.common.sounding,
|
||||
|
|
|
@ -24,9 +24,9 @@ import gov.noaa.nws.ncep.ui.nsharp.display.NsharpEditor;
|
|||
import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpResourceHandler;
|
||||
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.LinkedHashMap;
|
||||
|
||||
import com.raytheon.uf.common.time.DataTime;
|
||||
import com.raytheon.uf.viz.core.IDisplayPane;
|
||||
import com.raytheon.uf.viz.core.datastructure.LoopProperties;
|
||||
import com.raytheon.uf.viz.core.exception.VizException;
|
||||
|
@ -40,58 +40,68 @@ import com.raytheon.viz.ui.editor.AbstractEditor;
|
|||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Jul 26, 2006 chammack Initial Creation.
|
||||
* Unknown bsteffen Initial creation
|
||||
* Unknown cchen Modifications
|
||||
* Dec 8, 2014 DR16713 jgerth Incorporate date and time
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author chammack
|
||||
* @author bsteffen
|
||||
* @version 1
|
||||
*/
|
||||
public class NSharpSaveScreenAction extends ExportImageHandler {
|
||||
|
||||
@Override
|
||||
protected BufferedImage captureCurrentFrames(AbstractEditor editor) {
|
||||
return editor.getActiveDisplayPane().getTarget().screenshot();
|
||||
protected LinkedHashMap<DataTime, BufferedImage> captureCurrentFrames(AbstractEditor editor) {
|
||||
NsharpResourceHandler handler = ((NsharpEditor) editor).getRscHandler();
|
||||
LinkedHashMap<DataTime, BufferedImage> dtbiHash = new LinkedHashMap<DataTime, BufferedImage>();
|
||||
DataTime[] dataTimes = handler.getSkewtPaneRsc().getDescriptor().getFramesInfo().getFrameTimes();
|
||||
if (dataTimes == null || dataTimes.length == 0) {
|
||||
dtbiHash.put(buildFakeTime(0), editor.getActiveDisplayPane().getTarget().screenshot());
|
||||
} else {
|
||||
dtbiHash.put(dataTimes[handler.getCurrentIndex()], editor.getActiveDisplayPane().getTarget().screenshot());
|
||||
}
|
||||
return dtbiHash;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<BufferedImage> captureAllFrames(AbstractEditor editor)
|
||||
protected LinkedHashMap<DataTime, BufferedImage> captureAllFrames(AbstractEditor editor)
|
||||
throws VizException {
|
||||
if(!(editor instanceof NsharpEditor)){
|
||||
return super.captureAllFrames(editor);
|
||||
}
|
||||
NsharpResourceHandler handler = ((NsharpEditor) editor).getRscHandler();
|
||||
int startIndex = 0;
|
||||
int endIndex = handler .getFrameCount(); // Chin NsharpFrameIndexUtil.getFrameCount(handler);
|
||||
int endIndex = handler.getFrameCount();
|
||||
return captureFrames(editor, startIndex, endIndex);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<BufferedImage> captureFrames(AbstractEditor editor,
|
||||
protected LinkedHashMap<DataTime, BufferedImage> captureFrames(AbstractEditor editor,
|
||||
int startIndex, int endIndex) throws VizException {
|
||||
if(!(editor instanceof NsharpEditor)){
|
||||
return super.captureFrames(editor, startIndex, endIndex);
|
||||
}
|
||||
LinkedHashMap<DataTime, BufferedImage> dtbiHash = new LinkedHashMap<DataTime, BufferedImage>();
|
||||
IDisplayPane pane = editor.getActiveDisplayPane();
|
||||
NsharpResourceHandler handler = ((NsharpEditor) editor).getRscHandler();
|
||||
// save the frame we are on;
|
||||
int startingIndex = handler.getCurrentIndex(); // Chin NsharpFrameIndexUtil.getCurrentIndex(handler);
|
||||
List<BufferedImage> images = new ArrayList<BufferedImage>();
|
||||
LoopProperties loopProperties = ((AbstractEditor) editor)
|
||||
.getLoopProperties();
|
||||
int startingIndex = handler.getCurrentIndex();
|
||||
LoopProperties loopProperties = ((AbstractEditor) editor).getLoopProperties();
|
||||
renderPane(pane, loopProperties);
|
||||
DataTime[] dataTimes = handler.getSkewtPaneRsc().getDescriptor().getFramesInfo().getFrameTimes();
|
||||
for (int i = startIndex; i < endIndex; i++) {
|
||||
//Chin NsharpFrameIndexUtil.setCurrentIndex(handler, i);
|
||||
if(handler.setCurrentIndex(i)== false)
|
||||
continue;
|
||||
if (handler.setCurrentIndex(i) == false) {
|
||||
continue;
|
||||
}
|
||||
pane.refresh();
|
||||
renderPane(pane, loopProperties);
|
||||
images.add(captureCurrentFrames(editor));
|
||||
dtbiHash.put(dataTimes[i], editor.getActiveDisplayPane().getTarget().screenshot());
|
||||
}
|
||||
handler.setCurrentIndex(startingIndex); // Chin NsharpFrameIndexUtil.setCurrentIndex(handler, startingIndex);
|
||||
handler.setCurrentIndex(startingIndex);
|
||||
pane.refresh();
|
||||
renderPane(pane, loopProperties);
|
||||
return images;
|
||||
return dtbiHash;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -39,6 +39,7 @@ import org.eclipse.swt.widgets.Text;
|
|||
|
||||
import com.raytheon.uf.common.time.util.TimeUtil;
|
||||
import com.raytheon.uf.viz.image.export.options.ImageExportOptions;
|
||||
import com.raytheon.uf.viz.image.export.options.ImageExportOptions.DateTimeSelection;
|
||||
import com.raytheon.uf.viz.image.export.options.ImageExportOptions.FrameSelection;
|
||||
import com.raytheon.uf.viz.image.export.options.ImageExportOptions.ImageFormat;
|
||||
import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
|
||||
|
@ -56,6 +57,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
|
|||
* Mar 10, 2014 2867 bsteffen Better frame range validation.
|
||||
* Oct 28, 2014 3767 bsteffen Automatically change filename if selected
|
||||
* format does not support all options.
|
||||
* Dec 4, 2014 DR16713 jgerth Support for date/time selection
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -69,6 +71,8 @@ public class ImageExportDialog extends CaveSWTDialog {
|
|||
|
||||
protected Text locationText;
|
||||
|
||||
protected Button datetimeButton;
|
||||
|
||||
protected Button selectedFramesButton;
|
||||
|
||||
protected Button currentFramesButton;
|
||||
|
@ -134,6 +138,13 @@ public class ImageExportDialog extends CaveSWTDialog {
|
|||
selectDestinationFile();
|
||||
}
|
||||
});
|
||||
datetimeButton = new Button(group, SWT.CHECK);
|
||||
datetimeButton.setLayoutData(gridData);
|
||||
datetimeButton.setText("Include date and time in file name");
|
||||
datetimeButton
|
||||
.setSelection(options.getDateTimeSelection() == DateTimeSelection.DATETIME);
|
||||
datetimeButton
|
||||
.setToolTipText("Append the date and time to the file name when Animate is not selected.");
|
||||
}
|
||||
|
||||
protected void initializeFramesGroup(Group group) {
|
||||
|
@ -211,6 +222,9 @@ public class ImageExportDialog extends CaveSWTDialog {
|
|||
frameDelayText.setEnabled(animatedButton.getSelection());
|
||||
firstFrameDwellText.setEnabled(animatedButton.getSelection());
|
||||
lastFrameDwellText.setEnabled(animatedButton.getSelection());
|
||||
|
||||
datetimeButton.setEnabled(!animatedButton.getSelection());
|
||||
datetimeButton.setSelection(false);
|
||||
}
|
||||
});
|
||||
gridData = new GridData();
|
||||
|
@ -364,6 +378,9 @@ public class ImageExportDialog extends CaveSWTDialog {
|
|||
} else {
|
||||
options.setImageFormat(ImageFormat.SEQUENCE);
|
||||
}
|
||||
if (datetimeButton.getSelection()) {
|
||||
options.setDateTimeSelection(DateTimeSelection.DATETIME);
|
||||
}
|
||||
if (validate()) {
|
||||
setReturnValue(options);
|
||||
close();
|
||||
|
|
|
@ -20,12 +20,14 @@
|
|||
package com.raytheon.uf.viz.image.export.handler;
|
||||
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Calendar;
|
||||
import java.util.LinkedHashMap;
|
||||
|
||||
import org.eclipse.core.commands.AbstractHandler;
|
||||
import org.eclipse.swt.graphics.Rectangle;
|
||||
|
||||
import com.raytheon.uf.common.time.DataTime;
|
||||
import com.raytheon.uf.common.time.util.TimeUtil;
|
||||
import com.raytheon.uf.viz.core.IDisplayPane;
|
||||
import com.raytheon.uf.viz.core.IDisplayPaneContainer;
|
||||
import com.raytheon.uf.viz.core.IGraphicsTarget;
|
||||
|
@ -53,6 +55,7 @@ import com.raytheon.viz.ui.editor.AbstractEditor;
|
|||
* Date Ticket# Engineer Description
|
||||
* ------------- -------- ----------- --------------------------
|
||||
* Jan 20, 2014 2312 bsteffen Move to image export plugin.
|
||||
* Dec 4, 2014 DR16713 jgerth Incorporate date and time
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -61,11 +64,18 @@ import com.raytheon.viz.ui.editor.AbstractEditor;
|
|||
*/
|
||||
public abstract class AbstractImageCaptureHandler extends AbstractHandler {
|
||||
|
||||
protected BufferedImage captureCurrentFrames(AbstractEditor editor) {
|
||||
return editor.screenshot();
|
||||
protected LinkedHashMap<DataTime, BufferedImage> captureCurrentFrames(AbstractEditor editor) {
|
||||
LinkedHashMap<DataTime, BufferedImage> dtbiHash = new LinkedHashMap<DataTime, BufferedImage>();
|
||||
DataTime[] dataTimes = editor.getActiveDisplayPane().getDescriptor().getFramesInfo().getFrameTimes();
|
||||
if (dataTimes == null || dataTimes.length == 0) {
|
||||
dtbiHash.put(buildFakeTime(0), editor.screenshot());
|
||||
} else {
|
||||
dtbiHash.put(dataTimes[editor.getActiveDisplayPane().getDescriptor().getFramesInfo().getFrameIndex()], editor.screenshot());
|
||||
}
|
||||
return dtbiHash;
|
||||
}
|
||||
|
||||
protected List<BufferedImage> captureAllFrames(AbstractEditor editor)
|
||||
protected LinkedHashMap<DataTime, BufferedImage> captureAllFrames(AbstractEditor editor)
|
||||
throws VizException {
|
||||
int startIndex = 0;
|
||||
int endIndex = editor.getActiveDisplayPane().getDescriptor()
|
||||
|
@ -76,28 +86,31 @@ public abstract class AbstractImageCaptureHandler extends AbstractHandler {
|
|||
return captureFrames(editor, startIndex, endIndex);
|
||||
}
|
||||
|
||||
protected List<BufferedImage> captureFrames(AbstractEditor editor,
|
||||
protected LinkedHashMap<DataTime, BufferedImage> captureFrames(AbstractEditor editor,
|
||||
int startIndex, int endIndex) throws VizException {
|
||||
LinkedHashMap<DataTime, BufferedImage> dtbiHash = new LinkedHashMap<DataTime, BufferedImage>();
|
||||
if (startIndex < 0) {
|
||||
startIndex = 0;
|
||||
}
|
||||
List<BufferedImage> images = new ArrayList<BufferedImage>(endIndex
|
||||
- startIndex);
|
||||
int origIndex = editor.getActiveDisplayPane().getDescriptor()
|
||||
.getFramesInfo().getFrameIndex();
|
||||
int origIndex = editor.getActiveDisplayPane().getDescriptor().getFramesInfo().getFrameIndex();
|
||||
DataTime[] dataTimes = editor.getActiveDisplayPane().getDescriptor().getFramesInfo().getFrameTimes();
|
||||
for (int i = startIndex; i < endIndex; i++) {
|
||||
for (IDisplayPane pane : editor.getDisplayPanes()) {
|
||||
setFrameIndex(pane.getDescriptor(), i);
|
||||
pane.refresh();
|
||||
renderPane(pane, editor.getLoopProperties());
|
||||
}
|
||||
images.add(editor.screenshot());
|
||||
if (dataTimes != null && dataTimes.length > 0) {
|
||||
dtbiHash.put(dataTimes[i], editor.screenshot());
|
||||
} else {
|
||||
dtbiHash.put(buildFakeTime(i), editor.screenshot());
|
||||
}
|
||||
}
|
||||
for (IDisplayPane pane : editor.getDisplayPanes()) {
|
||||
setFrameIndex(pane.getDescriptor(), origIndex);
|
||||
pane.refresh();
|
||||
}
|
||||
return images;
|
||||
return dtbiHash;
|
||||
}
|
||||
|
||||
private void setFrameIndex(IDescriptor desc, int index) {
|
||||
|
@ -136,6 +149,20 @@ public abstract class AbstractImageCaptureHandler extends AbstractHandler {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Build a fake time when a time is not associated with a frame. The fake
|
||||
* time is the number of milliseconds since the Epoch based on the integer
|
||||
* frame number.
|
||||
*
|
||||
* @param the frame number
|
||||
* @return the fake DataTime based on the frame number
|
||||
*/
|
||||
protected DataTime buildFakeTime(int i) {
|
||||
Calendar c = TimeUtil.newGmtCalendar();
|
||||
c.setTimeInMillis(i);
|
||||
return new DataTime(c);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnabled(Object obj) {
|
||||
IDisplayPaneContainer container = EditorUtil.getActiveVizContainer();
|
||||
|
|
|
@ -23,9 +23,16 @@ package com.raytheon.uf.viz.image.export.handler;
|
|||
import java.awt.image.BufferedImage;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.NumberFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.TimeZone;
|
||||
|
||||
import javax.imageio.IIOImage;
|
||||
import javax.imageio.ImageIO;
|
||||
|
@ -53,9 +60,11 @@ import org.w3c.dom.Node;
|
|||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||
import com.raytheon.uf.common.status.UFStatus;
|
||||
import com.raytheon.uf.common.status.UFStatus.Priority;
|
||||
import com.raytheon.uf.common.time.DataTime;
|
||||
import com.raytheon.uf.viz.core.exception.VizException;
|
||||
import com.raytheon.uf.viz.image.export.dialog.ImageExportDialog;
|
||||
import com.raytheon.uf.viz.image.export.options.ImageExportOptions;
|
||||
import com.raytheon.uf.viz.image.export.options.ImageExportOptions.DateTimeSelection;
|
||||
import com.raytheon.uf.viz.image.export.options.ImageExportOptions.FrameSelection;
|
||||
import com.raytheon.uf.viz.image.export.options.ImageExportOptions.ImageFormat;
|
||||
import com.raytheon.viz.ui.EditorUtil;
|
||||
|
@ -70,6 +79,7 @@ import com.raytheon.viz.ui.editor.AbstractEditor;
|
|||
* ------------- -------- ----------- --------------------------
|
||||
* Jul 26, 2006 chammack Initial Creation.
|
||||
* Jan 20, 2014 2312 bsteffen Move to image export plugin, animation.
|
||||
* Dec 4, 2014 DR16713 jgerth Support for date and time in file name
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -80,6 +90,8 @@ public class ExportImageHandler extends AbstractImageCaptureHandler {
|
|||
private static final transient IUFStatusHandler statusHandler = UFStatus
|
||||
.getHandler(ExportImageHandler.class);
|
||||
|
||||
private static final String DATE_TIME_FORMAT = "yyyyMMdd_HHmmss";
|
||||
|
||||
@Override
|
||||
public Object execute(ExecutionEvent event) throws ExecutionException {
|
||||
IEditorPart part = EditorUtil.getActiveEditor();
|
||||
|
@ -138,17 +150,17 @@ public class ExportImageHandler extends AbstractImageCaptureHandler {
|
|||
}
|
||||
}
|
||||
|
||||
List<BufferedImage> images = null;
|
||||
LinkedHashMap<DataTime, BufferedImage> dtbiHash = new LinkedHashMap<DataTime, BufferedImage>();
|
||||
try {
|
||||
switch (options.getFrameSelection()) {
|
||||
case CURRENT:
|
||||
images = Arrays.asList(captureCurrentFrames(editor));
|
||||
dtbiHash = captureCurrentFrames(editor);
|
||||
break;
|
||||
case ALL:
|
||||
images = captureAllFrames(editor);
|
||||
dtbiHash = captureAllFrames(editor);
|
||||
break;
|
||||
case USER:
|
||||
images = captureFrames(editor, options.getFirstFrameIndex(),
|
||||
dtbiHash = captureFrames(editor, options.getFirstFrameIndex(),
|
||||
options.getLastFrameIndex());
|
||||
break;
|
||||
}
|
||||
|
@ -158,8 +170,8 @@ public class ExportImageHandler extends AbstractImageCaptureHandler {
|
|||
return null;
|
||||
}
|
||||
|
||||
if (!images.isEmpty()) {
|
||||
new SaveImageJob(options, images);
|
||||
if (!dtbiHash.isEmpty()) {
|
||||
new SaveImageJob(options, dtbiHash);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
@ -175,10 +187,14 @@ public class ExportImageHandler extends AbstractImageCaptureHandler {
|
|||
}
|
||||
|
||||
public void saveImages(IProgressMonitor monitor,
|
||||
ImageExportOptions options, List<BufferedImage> images) {
|
||||
monitor.beginTask("Saving Images", images.size());
|
||||
ImageExportOptions options, Map<DataTime, BufferedImage> dtbiHash) {
|
||||
monitor.beginTask("Saving Images", dtbiHash.size());
|
||||
|
||||
String path = options.getFileLocation().getAbsolutePath();
|
||||
String ppath = path;
|
||||
SimpleDateFormat sdf = new SimpleDateFormat(DATE_TIME_FORMAT);
|
||||
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
|
||||
NumberFormat twoDigit = new DecimalFormat("00");
|
||||
|
||||
String suffix = path.substring(path.lastIndexOf('.') + 1);
|
||||
String basePath = path.substring(0, path.lastIndexOf('.'));
|
||||
|
@ -192,33 +208,47 @@ public class ExportImageHandler extends AbstractImageCaptureHandler {
|
|||
|
||||
FileImageOutputStream stream = null;
|
||||
try {
|
||||
if (images.size() == 1) {
|
||||
stream = new FileImageOutputStream(options.getFileLocation());
|
||||
writer.setOutput(stream);
|
||||
writer.write(images.get(0));
|
||||
stream.close();
|
||||
stream = null;
|
||||
monitor.worked(1);
|
||||
} else if (options.getImageFormat() == ImageFormat.SEQUENCE) {
|
||||
for (int i = 0; i < images.size(); i++) {
|
||||
BufferedImage bi = images.get(i);
|
||||
/* Allow GC to collect image after write. */
|
||||
images.set(i, null);
|
||||
path = basePath + "-" + (i + 1) + "." + suffix;
|
||||
if (options.getImageFormat() == ImageFormat.SEQUENCE) {
|
||||
int i = 0;
|
||||
for (Map.Entry<DataTime, BufferedImage> entry : dtbiHash.entrySet()) {
|
||||
i++;
|
||||
BufferedImage bi = entry.getValue();
|
||||
if (options.getDateTimeSelection() == DateTimeSelection.DATETIME) {
|
||||
DataTime key = entry.getKey();
|
||||
Date validTime = key.getValidTimeAsDate();
|
||||
if (validTime != null && !isFakeTime(key)) {
|
||||
path = basePath + "-" + sdf.format(validTime) + "." + suffix;
|
||||
if (path.equals(ppath)) {
|
||||
path = basePath + "-" + sdf.format(validTime) + "-" + twoDigit.format(i).toString() + "." + suffix;
|
||||
}
|
||||
} else {
|
||||
path = basePath + "-" + twoDigit.format(i).toString() + "." + suffix;
|
||||
}
|
||||
} else if (dtbiHash.size() > 1) {
|
||||
path = basePath + "-" + twoDigit.format(i).toString() + "." + suffix;
|
||||
} else {
|
||||
path = basePath + "." + suffix;
|
||||
}
|
||||
ppath = path;
|
||||
stream = new FileImageOutputStream(new File(path));
|
||||
writer.setOutput(stream);
|
||||
writer.write(bi);
|
||||
stream.close();
|
||||
stream = null;
|
||||
if (monitor.isCanceled()) {
|
||||
dtbiHash.clear();
|
||||
break;
|
||||
}
|
||||
monitor.worked(1);
|
||||
}
|
||||
dtbiHash.clear();
|
||||
} else if (options.getImageFormat() == ImageFormat.ANIMATION) {
|
||||
stream = new FileImageOutputStream(options.getFileLocation());
|
||||
writer.setOutput(stream);
|
||||
writer.prepareWriteSequence(null);
|
||||
List<BufferedImage> images = new ArrayList<BufferedImage>();
|
||||
images.addAll(dtbiHash.values());
|
||||
dtbiHash.clear();
|
||||
for (int i = 0; i < images.size(); i++) {
|
||||
BufferedImage bi = images.get(i);
|
||||
/* Allow GC to collect image after write. */
|
||||
|
@ -229,14 +259,12 @@ public class ExportImageHandler extends AbstractImageCaptureHandler {
|
|||
if (i == 0) {
|
||||
configureAnimation(metadata,
|
||||
options.getFirstFrameDwell(), true);
|
||||
|
||||
} else if (i == images.size() - 1) {
|
||||
configureAnimation(metadata,
|
||||
options.getLastFrameDwell(), false);
|
||||
} else {
|
||||
configureAnimation(metadata, options.getFrameDelay(),
|
||||
false);
|
||||
|
||||
}
|
||||
IIOImage ii = new IIOImage(bi, null, metadata);
|
||||
writer.writeToSequence(ii, null);
|
||||
|
@ -313,23 +341,36 @@ public class ExportImageHandler extends AbstractImageCaptureHandler {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* There may be cases in which a valid time is not associated with a frame.
|
||||
* In such cases, a valid time is set to a number of milliseconds from the
|
||||
* Epoch time based on the frame number. Here we check if that is one of
|
||||
* those such cases.
|
||||
*
|
||||
* @param a DataTime
|
||||
* @return true if the DataTime is close to the Epoch time
|
||||
*/
|
||||
public boolean isFakeTime(DataTime dt) {
|
||||
return dt.getValidTime().getTimeInMillis() < 1000;
|
||||
}
|
||||
|
||||
protected class SaveImageJob extends Job {
|
||||
|
||||
protected final ImageExportOptions options;
|
||||
|
||||
protected final List<BufferedImage> images;
|
||||
protected final LinkedHashMap<DataTime, BufferedImage> dtbiHash;
|
||||
|
||||
protected SaveImageJob(ImageExportOptions options,
|
||||
List<BufferedImage> images) {
|
||||
LinkedHashMap<DataTime, BufferedImage> dtbiHash) {
|
||||
super("Saving image");
|
||||
this.options = options;
|
||||
this.images = images;
|
||||
this.dtbiHash = dtbiHash;
|
||||
this.schedule();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected IStatus run(IProgressMonitor monitor) {
|
||||
saveImages(monitor, options, images);
|
||||
saveImages(monitor, options, dtbiHash);
|
||||
return Status.OK_STATUS;
|
||||
}
|
||||
|
||||
|
|
|
@ -61,6 +61,7 @@ import com.raytheon.viz.ui.editor.AbstractEditor;
|
|||
* Aug 08, 2008 703 randerso fixed bug, changed to scale to fit paper
|
||||
* and rotate if necessary
|
||||
* Jan 20, 2014 2312 bsteffen Move to image export plugin.
|
||||
* Dec 4, 2014 DR16713 jgerth Support for date and time in file name
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -116,7 +117,7 @@ public class PrintImageCaptureHandler extends AbstractImageCaptureHandler {
|
|||
switch (pd.getScope()) {
|
||||
case PrinterData.ALL_PAGES: {
|
||||
try {
|
||||
for (BufferedImage bi : captureAllFrames(editor)) {
|
||||
for (BufferedImage bi : captureAllFrames(editor).values()) {
|
||||
printImage(printer, display, bi);
|
||||
}
|
||||
} catch (VizException e) {
|
||||
|
@ -128,7 +129,7 @@ public class PrintImageCaptureHandler extends AbstractImageCaptureHandler {
|
|||
case PrinterData.PAGE_RANGE: {
|
||||
try {
|
||||
for (BufferedImage bi : captureFrames(editor,
|
||||
pd.getStartPage() - 1, pd.getEndPage())) {
|
||||
pd.getStartPage() - 1, pd.getEndPage()).values()) {
|
||||
printImage(printer, display, bi);
|
||||
}
|
||||
} catch (VizException e) {
|
||||
|
|
|
@ -38,6 +38,7 @@ import com.raytheon.uf.viz.core.datastructure.LoopProperties;
|
|||
* Jan 20, 2014 2312 bsteffen Initial creation
|
||||
* Mar 10, 2014 2867 bsteffen Better frame range validation.
|
||||
* Oct 28, 2014 3767 bsteffen Change default name to screenCapture.png
|
||||
* Dec 4, 2014 DR16713 jgerth Support for date/time selection
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -47,6 +48,10 @@ import com.raytheon.uf.viz.core.datastructure.LoopProperties;
|
|||
|
||||
public class ImageExportOptions {
|
||||
|
||||
public static enum DateTimeSelection {
|
||||
DATETIME, SEQUENTIAL;
|
||||
}
|
||||
|
||||
public static enum FrameSelection {
|
||||
ALL, CURRENT, USER;
|
||||
}
|
||||
|
@ -86,6 +91,8 @@ public class ImageExportOptions {
|
|||
|
||||
private FrameSelection frameSelection = FrameSelection.CURRENT;
|
||||
|
||||
private DateTimeSelection dateTimeSelection = DateTimeSelection.SEQUENTIAL;
|
||||
|
||||
private int firstFrameIndex = 0;
|
||||
|
||||
private int lastFrameIndex = 0;
|
||||
|
@ -119,6 +126,14 @@ public class ImageExportOptions {
|
|||
this.imageFormat = imageFormat;
|
||||
}
|
||||
|
||||
public DateTimeSelection getDateTimeSelection() {
|
||||
return dateTimeSelection;
|
||||
}
|
||||
|
||||
public void setDateTimeSelection(DateTimeSelection dts) {
|
||||
this.dateTimeSelection = dts;
|
||||
}
|
||||
|
||||
public FrameSelection getFrameSelection() {
|
||||
return frameSelection;
|
||||
}
|
||||
|
|
|
@ -61,6 +61,7 @@
|
|||
<item mne="MD"/>
|
||||
<item mne="DMD"/>
|
||||
<item mne="GFM"/>
|
||||
<item mne="MBA"/>
|
||||
<item mne="MRU"/>
|
||||
<item mne="TVS"/>
|
||||
<item mne="TRU"/>
|
||||
|
|
|
@ -188,7 +188,11 @@
|
|||
<includes
|
||||
id="com.raytheon.uf.viz.datadelivery.feature"
|
||||
version="0.0.0"/>
|
||||
|
||||
|
||||
<includes
|
||||
id="edu.wisc.ssec.cimss.viz.convectprob.feature"
|
||||
version="0.0.0"/>
|
||||
|
||||
<requires>
|
||||
<import feature="com.raytheon.uf.viz.application.feature" version="1.0.0.qualifier"/>
|
||||
</requires>
|
||||
|
|
|
@ -19,6 +19,24 @@
|
|||
<substitute key="elevation" value="0.5" />
|
||||
<substitute key="name" value="0.5 Reflectivity" />
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultRadarMosaic.xml"
|
||||
menuText="0.5 Differential Refl" id="Radar05ZDR">
|
||||
<substitute key="product" value="159,158" />
|
||||
<substitute key="elevation" value="0.5" />
|
||||
<substitute key="name" value="0.5 Diff Reflectivity" />
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultRadarMosaic.xml"
|
||||
menuText="0.5 Specific Diff Phase" id="Radar05KDP">
|
||||
<substitute key="product" value="163,162" />
|
||||
<substitute key="elevation" value="0.5" />
|
||||
<substitute key="name" value="0.5 Specific Diff Phase" />
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultRadarMosaic.xml"
|
||||
menuText="0.5 Correlation Coeff" id="Radar05CC">
|
||||
<substitute key="product" value="161,160" />
|
||||
<substitute key="elevation" value="0.5" />
|
||||
<substitute key="name" value="0.5 Correlation Coefficient" />
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultRadarMosaic.xml"
|
||||
menuText="Hybrid Scan Refl" id="RadarHybridScanRefl">
|
||||
<substitute key="product" value="32,33" />
|
||||
|
|
|
@ -3,16 +3,35 @@
|
|||
<contribute xsi:type="subMenu" menuText="${icao}"
|
||||
id="${icao}RadarARSR4UnitStatus">
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultRadar.xml"
|
||||
menuText="${icao} Z" id="${icao}ARSR4Reflectivity\">
|
||||
menuText="Reflectivity (Z)" id="${icao}ARSR4Reflectivity\">
|
||||
<substitute key="icao" value="${icao}" />
|
||||
<substitute key="product" value="500" />
|
||||
<substitute key="elevation" value="0.0--360.0" />
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultRadar.xml"
|
||||
menuText="One Hour Precip (OHP)" id="${icao}ARSR4OneHourPrecipOHP">
|
||||
<substitute key="icao" value="${icao}" />
|
||||
<substitute key="product" value="78" />
|
||||
<substitute key="elevation" value="0.0--0.0" />
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultRadar.xml"
|
||||
menuText="Storm Total Precip (STP)" id="${icao}ARSR4StormTotalPrecipSTP">
|
||||
<substitute key="icao" value="${icao}" />
|
||||
<substitute key="product" value="80" />
|
||||
<substitute key="elevation" value="0.0--0.0" />
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultRadar.xml"
|
||||
menuText="Hybrid Scan Refl (DHR)" id="${icao}ARSR4HybridScanReflDHR">
|
||||
<substitute key="icao" value="${icao}" />
|
||||
<substitute key="product" value="32" />
|
||||
<substitute key="elevation" value="0.0--0.0" />
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultRadarXY.xml"
|
||||
id="${icao}ARSR4UnitStatus" editorType="com.raytheon.viz.radar.ui.xy.RadarXYEditor" menuText="ARSR-4 Unit Status">
|
||||
id="${icao}ARSR4UnitStatus" editorType="com.raytheon.viz.radar.ui.xy.RadarXYEditor"
|
||||
menuText="ARSR-4 Unit Status">
|
||||
<substitute key="icao" value="${icao}" />
|
||||
<substitute key="product" value="2" />
|
||||
<substitute key="insetMap" value="false"/>
|
||||
<substitute key="insetMap" value="false" />
|
||||
</contribute>
|
||||
</contribute>
|
||||
</menuTemplate>
|
|
@ -3,16 +3,35 @@
|
|||
<contribute xsi:type="subMenu" menuText="${icao}"
|
||||
id="${icao}RadarASR11UnitStatus">
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultRadar.xml"
|
||||
menuText="${icao} Z" id="${icao}ASR11Reflectivity\">
|
||||
menuText="Reflectivity (Z)" id="${icao}ASR11Reflectivity\">
|
||||
<substitute key="icao" value="${icao}" />
|
||||
<substitute key="product" value="550" />
|
||||
<substitute key="elevation" value="0.0--360.0" />
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultRadar.xml"
|
||||
menuText="One Hour Precip (OHP)" id="${icao}ASR11OneHourPrecipOHP">
|
||||
<substitute key="icao" value="${icao}" />
|
||||
<substitute key="product" value="78" />
|
||||
<substitute key="elevation" value="0.0--0.0" />
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultRadar.xml"
|
||||
menuText="Storm Total Precip (STP)" id="${icao}ASR11StormTotalPrecipSTP">
|
||||
<substitute key="icao" value="${icao}" />
|
||||
<substitute key="product" value="80" />
|
||||
<substitute key="elevation" value="0.0--0.0" />
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultRadar.xml"
|
||||
menuText="Hybrid Scan Refl (DHR)" id="${icao}ASR11HybridScanReflDHR">
|
||||
<substitute key="icao" value="${icao}" />
|
||||
<substitute key="product" value="32" />
|
||||
<substitute key="elevation" value="0.0--0.0" />
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultRadarXY.xml"
|
||||
id="${icao}ASR11UnitStatus" editorType="com.raytheon.viz.radar.ui.xy.RadarXYEditor" menuText="ASR-11 Unit Status">
|
||||
id="${icao}ASR11UnitStatus" editorType="com.raytheon.viz.radar.ui.xy.RadarXYEditor"
|
||||
menuText="ASR-11 Unit Status">
|
||||
<substitute key="icao" value="${icao}" />
|
||||
<substitute key="product" value="2" />
|
||||
<substitute key="insetMap" value="false"/>
|
||||
<substitute key="insetMap" value="false" />
|
||||
</contribute>
|
||||
</contribute>
|
||||
</menuTemplate>
|
|
@ -223,6 +223,14 @@
|
|||
<substitute key="latest" value="true" />
|
||||
<substitute key="elevation" value="0.0--360.0" />
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultRadarGraphic.xml"
|
||||
menuText="Microburst AMDA (MBA)" id="${icao}MicroburstAMDA">
|
||||
<substitute key="icao" value="${icao}" />
|
||||
<substitute key="product" value="196" />
|
||||
<substitute key="mode" value="" />
|
||||
<substitute key="latest" value="true" />
|
||||
<substitute key="elevation" value="0.0--360.0" />
|
||||
</contribute>
|
||||
<contribute xsi:type="command"
|
||||
commandId="com.raytheon.viz.radar.ui.RadarDisplayControls" menuText="Radar Display Controls..."
|
||||
id="${icao}GraphicsRadarDisplayControls" />
|
||||
|
|
|
@ -0,0 +1,209 @@
|
|||
/**
|
||||
* This software was developed and / or modified by Raytheon Company,
|
||||
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
*
|
||||
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
* This software product contains export-restricted data whose
|
||||
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
* to non-U.S. persons whether in the United States or abroad requires
|
||||
* an export license or other authorization.
|
||||
*
|
||||
* Contractor Name: Raytheon Company
|
||||
* Contractor Address: 6825 Pine Street, Suite 340
|
||||
* Mail Stop B8
|
||||
* Omaha, NE 68106
|
||||
* 402.291.0100
|
||||
*
|
||||
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
* further licensing information.
|
||||
**/
|
||||
package com.raytheon.viz.radar.interrogators;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.measure.converter.UnitConverter;
|
||||
import javax.measure.unit.NonSI;
|
||||
import javax.measure.unit.SI;
|
||||
|
||||
import org.opengis.referencing.operation.MathTransform;
|
||||
|
||||
import com.raytheon.uf.common.colormap.prefs.ColorMapParameters;
|
||||
import com.raytheon.uf.common.dataplugin.radar.RadarDataKey;
|
||||
import com.raytheon.uf.common.dataplugin.radar.RadarDataPoint;
|
||||
import com.raytheon.uf.common.dataplugin.radar.RadarRecord;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.MBAPacket.MBAAttributeIDs;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.MBAPacket.MBACategory;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.generic.AreaComponent;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.generic.GenericDataComponent;
|
||||
import com.raytheon.uf.common.geospatial.CRSCache;
|
||||
import com.raytheon.viz.radar.ui.RadarDisplayControls;
|
||||
import com.raytheon.viz.radar.ui.RadarDisplayManager;
|
||||
import com.vividsolutions.jts.geom.Coordinate;
|
||||
import com.vividsolutions.jts.geom.Envelope;
|
||||
|
||||
/**
|
||||
* Interrogator class for Radar GFM sampling.
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* 11/06/2014 DCS 16776 zwang Initial creation
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author zwang
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
public class RadarMBAInterrogator extends RadarGraphicInterrogator implements
|
||||
IRadarInterrogator {
|
||||
|
||||
public RadarMBAInterrogator() {
|
||||
super();
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see
|
||||
* com.raytheon.viz.radar.interrogators.IRadarInterrogator#sample(com.raytheon
|
||||
* .edex.plugin.radar.RadarRecord, com.vividsolutions.jts.geom.Coordinate,
|
||||
* com.raytheon.uf.viz.core.drawables.ColorMapParameters)
|
||||
*/
|
||||
@Override
|
||||
public Map<String, String> sample(RadarRecord record, Coordinate latLon,
|
||||
ColorMapParameters params) {
|
||||
Map<String, String> dataMap = new HashMap<String, String>();
|
||||
if (latLon == null) {
|
||||
return null;
|
||||
}
|
||||
double[] input = { latLon.x, latLon.y }; // rr
|
||||
double[] output = new double[2]; // rr
|
||||
try {
|
||||
MathTransform mt = CRSCache.getInstance().getTransformFromLatLon(
|
||||
record.getCRS());
|
||||
|
||||
mt.transform(input, 0, output, 0, 1);
|
||||
dataMap.put("crsLocation", output == null ? "-1,-1" : output[0]
|
||||
+ "," + output[1]);
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
|
||||
dataMap.put("ICAO", record.getIcao());
|
||||
dataMap.put("Mnemonic", record.getMnemonic());
|
||||
addParameters(record, latLon, dataMap);
|
||||
return dataMap;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see
|
||||
* com.raytheon.viz.radar.interrogators.IRadarInterrogator#addParameters
|
||||
* (com.raytheon.uf.common.dataplugin.radar.RadarRecord,
|
||||
* com.vividsolutions.jts.geom.Coordinate, java.util.Map)
|
||||
*/
|
||||
@Override
|
||||
public int addParameters(RadarRecord radarRecord, Coordinate latLon,
|
||||
Map<String, String> dataMap) {
|
||||
dataMap.put("Value", getDataValues(radarRecord, latLon));
|
||||
return 0;
|
||||
}
|
||||
|
||||
private String getDataValues(RadarRecord radarRecord, Coordinate latLon) {
|
||||
StringBuffer rval = new StringBuffer();
|
||||
|
||||
Coordinate c1 = new Coordinate(latLon.x + .025, latLon.y + .025);
|
||||
Coordinate c2 = new Coordinate(latLon.x - .025, latLon.y - .025);
|
||||
Envelope env = new Envelope(c1, c2);
|
||||
|
||||
UnitConverter metersPerSecondToKnots = SI.METERS_PER_SECOND
|
||||
.getConverterTo(NonSI.KNOT);
|
||||
|
||||
// Determine if the feature should be sampled
|
||||
RadarDisplayControls currentSettings = RadarDisplayManager
|
||||
.getInstance().getCurrentSettings();
|
||||
|
||||
if (radarRecord.getProductCode() == 196) {
|
||||
|
||||
for (RadarDataKey key : radarRecord.getSymbologyData().keySet()) {
|
||||
|
||||
Coordinate currStorm = new Coordinate(key.getLon(),
|
||||
key.getLat());
|
||||
|
||||
if (env.contains(currStorm)) {
|
||||
// Get the data for the select feature
|
||||
RadarDataPoint currPoint = radarRecord.getSymbologyData()
|
||||
.get(key);
|
||||
AreaComponent currFeature;
|
||||
HashMap<Integer, HashMap<Integer, GenericDataComponent>> currPointData = currPoint
|
||||
.getDisplayGenericPointData();
|
||||
|
||||
for (Integer type : currPointData.keySet()) {
|
||||
for (GenericDataComponent currComp : currPointData.get(
|
||||
type).values()) {
|
||||
currFeature = (AreaComponent) currComp;
|
||||
|
||||
// Category: CATEGORY
|
||||
String category = currFeature
|
||||
.getValue(MBAAttributeIDs.CATEGORY
|
||||
.toString());
|
||||
|
||||
// if MBA is filtered out by category, do not sample
|
||||
int catValue = category.equals("") ? 0 : Integer
|
||||
.parseInt(category);
|
||||
|
||||
// By default, do not show MBA Wind Shear
|
||||
int minCat = 1;
|
||||
if (currentSettings.isMbaShowWindShear())
|
||||
minCat = 0;
|
||||
|
||||
if (catValue >= minCat) {
|
||||
|
||||
// Microburst strength: DELTAV
|
||||
String strength = currFeature
|
||||
.getValue(MBAAttributeIDs.DELTAV.toString());
|
||||
if ((strength != null) && (strength.length() > 0)) {
|
||||
double strengthValue = metersPerSecondToKnots
|
||||
.convert(new Double(strength));
|
||||
strength = String.format("%dkts", (int) strengthValue);
|
||||
}
|
||||
|
||||
// Maximum wind speed: MAXWINDSPEED
|
||||
String maxSpeed = currFeature
|
||||
.getValue(MBAAttributeIDs.MAXWINDSPEED
|
||||
.toString());
|
||||
if ((maxSpeed != null) && (maxSpeed.length() > 0)) {
|
||||
double spdValue = metersPerSecondToKnots
|
||||
.convert(new Double(maxSpeed));
|
||||
maxSpeed = String.format("%dkts", (int) spdValue);
|
||||
}
|
||||
|
||||
// Maximum shear: MAXSHEAR
|
||||
String maxShear = currFeature
|
||||
.getValue(MBAAttributeIDs.MAXSHEAR
|
||||
.toString());
|
||||
if ((maxShear != null) && (maxShear.length() > 0)) {
|
||||
double shearValue = new Double(maxShear);
|
||||
maxShear = String.format("%.4f/s", shearValue);
|
||||
}
|
||||
|
||||
rval.append(MBACategory.getCatName(catValue));
|
||||
rval.append(" " + maxShear);
|
||||
rval.append(" maxV " + maxSpeed);
|
||||
rval.append(" deltaV " + strength);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return rval.toString();
|
||||
}
|
||||
|
||||
}
|
|
@ -34,6 +34,7 @@ import com.raytheon.viz.radar.interrogators.RadarGFMInterrogator;
|
|||
import com.raytheon.viz.radar.interrogators.RadarDefaultInterrogator;
|
||||
import com.raytheon.viz.radar.interrogators.RadarEETInterrogator;
|
||||
import com.raytheon.viz.radar.interrogators.RadarGraphicInterrogator;
|
||||
import com.raytheon.viz.radar.interrogators.RadarMBAInterrogator;
|
||||
import com.raytheon.viz.radar.interrogators.RadarPrecipInterrogator;
|
||||
import com.raytheon.viz.radar.interrogators.RadarRadialInterrogator;
|
||||
import com.raytheon.viz.radar.interrogators.RadarRasterInterrogator;
|
||||
|
@ -60,6 +61,7 @@ import com.raytheon.viz.radar.ui.xy.RadarXsectXYResource;
|
|||
* Aug 4, 2010 mnash Initial creation
|
||||
* 03/04/2013 DCS51 zwang Handle GFM product
|
||||
* 05/02/2013 DR 14587 D. Friedman Add isVelocityProductCode
|
||||
* 09/26/2014 DCS16776 zwang Add product Microburst AMDA (MBA)
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -99,6 +101,9 @@ public class RadarProductFactory {
|
|||
}
|
||||
else if (productCode == 140) {
|
||||
interrogator = new RadarGFMInterrogator();
|
||||
}
|
||||
else if (productCode == 196) {
|
||||
interrogator = new RadarMBAInterrogator();
|
||||
} else {
|
||||
interrogator = new RadarGraphicInterrogator();
|
||||
}
|
||||
|
|
|
@ -41,6 +41,7 @@ import com.raytheon.uf.common.dataplugin.radar.level3.DMDPacket.DMDAttributeIDs;
|
|||
import com.raytheon.uf.common.dataplugin.radar.level3.GFMPacket;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.HdaHailPacket.HdaHailPoint;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.LinkedVector;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.MBAPacket.MBAAttributeIDs;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.MesocyclonePacket.MesocyclonePoint;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.SCITDataPacket;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.SCITDataPacket.SCITDataCell;
|
||||
|
@ -107,6 +108,7 @@ import com.vividsolutions.jts.geom.LineString;
|
|||
* Aug 11, 2014 3504 mapeters Replaced deprecated IODataPreparer
|
||||
* instances with IRenderedImageCallback.
|
||||
* Sep 03, 2014 3574 njensen Properly dispose objects
|
||||
* Nov 06, 2014 16776 zwang Handle AMDA product MBA
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -443,6 +445,15 @@ public class RadarGraphicsPage implements IRenderable {
|
|||
}
|
||||
}
|
||||
}
|
||||
// MBA
|
||||
else if (type == 196) {
|
||||
// Handle each Feature in the MBA Packet
|
||||
for (GenericDataComponent currComponent : stormData
|
||||
.getDisplayGenericPointData().get(type).values()) {
|
||||
// Handle Graphic portion
|
||||
drawMbaImage(currComponent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Only display storm id if other information is being displayed
|
||||
|
@ -973,6 +984,50 @@ public class RadarGraphicsPage implements IRenderable {
|
|||
return images;
|
||||
}
|
||||
|
||||
// Handle MBA product
|
||||
private void drawMbaImage(GenericDataComponent currPt)
|
||||
throws VizException {
|
||||
|
||||
double x, y;
|
||||
Coordinate point;
|
||||
|
||||
// Determine if the feature should be rendered
|
||||
RadarDisplayControls currentSettings = RadarDisplayManager
|
||||
.getInstance().getCurrentSettings();
|
||||
|
||||
AreaComponent currFeature = (AreaComponent) currPt;
|
||||
String cat = currFeature.getValue(MBAAttributeIDs.CATEGORY
|
||||
.getName());
|
||||
int catValue = cat.equals("") ? 0 : Integer.parseInt(cat);
|
||||
|
||||
// By default, do not show MBA Wind Shear
|
||||
int minCat = 1;
|
||||
if (currentSettings.isMbaShowWindShear())
|
||||
minCat = 0;
|
||||
|
||||
if (catValue >= minCat) {
|
||||
|
||||
int numPoints = currFeature.getPoints().size();
|
||||
Coordinate[] points = new Coordinate[numPoints];
|
||||
|
||||
// Draw Microburst cell
|
||||
try {
|
||||
for (int k = 0; k < numPoints; k++) {
|
||||
x = currFeature.getPoints().get(k).getCoordinate1();
|
||||
y = currFeature.getPoints().get(k).getCoordinate2();
|
||||
// convert xy to latlon
|
||||
point = referencedGfmCoord(x, y).asLatLon();
|
||||
points[k] = point;
|
||||
}
|
||||
wireframeShape.addLineSegment(points);
|
||||
} catch (TransformException e) {
|
||||
throw new VizException(e);
|
||||
} catch (FactoryException e) {
|
||||
throw new VizException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private PlotObject getImage(HdaHailPoint currPt) throws VizException {
|
||||
PlotObject image = null;
|
||||
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
package com.raytheon.viz.radar.textcontributors;
|
||||
|
||||
import com.raytheon.uf.common.dataplugin.radar.RadarRecord;
|
||||
|
||||
/**
|
||||
*
|
||||
* Display "SAILS" at upper text for SAILS products
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* 07/08/2014 DR17356 zwang Initial creation
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author zwang
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
public class SailsTextContributor implements IRadarTextContributor {
|
||||
|
||||
@Override
|
||||
public String contributeText(RadarRecord record) {
|
||||
String sailsStr = "";
|
||||
|
||||
if (record.getPrimaryElevationAngle() <= 0.5 && record.getElevationNumber() > 2)
|
||||
sailsStr = "SAILS";
|
||||
|
||||
return sailsStr;
|
||||
}
|
||||
}
|
|
@ -39,6 +39,7 @@ import javax.xml.bind.annotation.XmlElements;
|
|||
* ------------ ---------- ----------- --------------------------
|
||||
* Sep 7, 2010 bsteffen Initial creation
|
||||
* 03/05/2013 DCS51 zwang Handle GFM product
|
||||
* 07/08/2013 DR17356 zwang Tag SAILS product
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -60,6 +61,7 @@ public class UpperText {
|
|||
@XmlElement(name = "productDependentDate", type = ProdDepDateTextContributor.class),
|
||||
@XmlElement(name = "productDependentUSPMax", type = USPMaxTextContributor.class),
|
||||
@XmlElement(name = "productDependentDVLMax", type = DigitalVilMaxTextContributor.class),
|
||||
@XmlElement(name = "sails", type = SailsTextContributor.class),
|
||||
@XmlElement(name = "gfmCount", type = GfmTextContributor.class),
|
||||
@XmlElement(name = "srmMovement", type = SrmMovementTextContributor.class),
|
||||
@XmlElement(name = "srmSource", type = SrmSourceTextContributor.class) })
|
||||
|
|
|
@ -53,6 +53,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
|
|||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* 04 DEC 2007 373 lvenable Initial creation
|
||||
* 06 Nov 2014 DCS 16776 zwang Add control for MBA
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -127,6 +128,11 @@ public class RadarDisplayControlDlg extends CaveSWTDialog {
|
|||
*/
|
||||
private Scale minFeatureScale;
|
||||
|
||||
/**
|
||||
* Show MBA Wind Shear check box.
|
||||
*/
|
||||
private Button showMbaWindShear;
|
||||
|
||||
/**
|
||||
* Overlap Mesos check box.
|
||||
*/
|
||||
|
@ -224,6 +230,8 @@ public class RadarDisplayControlDlg extends CaveSWTDialog {
|
|||
addSeparator();
|
||||
createDmdControls();
|
||||
addSeparator();
|
||||
createMbaControls();
|
||||
addSeparator();
|
||||
createSrmControls();
|
||||
createCustomStormMotionGroup();
|
||||
createCloseButton();
|
||||
|
@ -273,6 +281,7 @@ public class RadarDisplayControlDlg extends CaveSWTDialog {
|
|||
overlapMesosChk.setSelection(values.isDmdShowOverlapping());
|
||||
dmdTrackToShowCbo.select(dmdTrackToShowCbo.indexOf(values
|
||||
.getDmdTrackType().toString()));
|
||||
showMbaWindShear.setSelection(values.isMbaShowWindShear());
|
||||
stormMotionRdo.setSelection(values.getSrmSource().equals(
|
||||
RadarSRMResource.SRMSource.WARNGEN));
|
||||
averageStormRdo.setSelection(values.getSrmSource().equals(
|
||||
|
@ -660,6 +669,31 @@ public class RadarDisplayControlDlg extends CaveSWTDialog {
|
|||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Create the MBA controls.
|
||||
*/
|
||||
private void createMbaControls() {
|
||||
Composite mbaComp = new Composite(shell, SWT.NONE);
|
||||
GridLayout gl = new GridLayout(2, false);
|
||||
mbaComp.setLayout(gl);
|
||||
|
||||
GridData gd = new GridData(60, SWT.DEFAULT);
|
||||
Label mbaLbl = new Label(mbaComp, SWT.NONE);
|
||||
mbaLbl.setFont(labelFont);
|
||||
mbaLbl.setForeground(getDisplay().getSystemColor(SWT.COLOR_BLUE));
|
||||
mbaLbl.setText("MBA");
|
||||
mbaLbl.setLayoutData(gd);
|
||||
|
||||
showMbaWindShear = new Button(mbaComp, SWT.CHECK);
|
||||
showMbaWindShear.setText("Show Wind Shear");
|
||||
showMbaWindShear.addSelectionListener(new SelectionAdapter() {
|
||||
public void widgetSelected(SelectionEvent event) {
|
||||
values.setMbaShowWindShear(showMbaWindShear.getSelection());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Create the SRM radio button controls.
|
||||
*/
|
||||
|
|
|
@ -29,7 +29,7 @@ import com.raytheon.viz.radar.ui.RadarDisplayManager.TrackTypes;
|
|||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
*
|
||||
* 11/06/2014 DCS 16776 zwang Add control for MBA
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -59,6 +59,8 @@ public class RadarDisplayControls {
|
|||
private boolean dmdShowOverlapping;
|
||||
|
||||
private TrackTypes dmdTrackType = TrackTypes.PAST_AND_FORECAST;
|
||||
|
||||
private boolean mbaShowWindShear;
|
||||
|
||||
private SRMSource srmSource;
|
||||
|
||||
|
@ -201,6 +203,25 @@ public class RadarDisplayControls {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return the mbaShowWindShear
|
||||
*/
|
||||
public boolean isMbaShowWindShear() {
|
||||
return mbaShowWindShear;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mbaShowWindShear
|
||||
* the mbaShowWindShear to set
|
||||
*/
|
||||
public void setMbaShowWindShear(boolean mbaShowWindShear) {
|
||||
if (mbaShowWindShear != this.mbaShowWindShear) {
|
||||
this.mbaShowWindShear = mbaShowWindShear;
|
||||
RadarDisplayManager.getInstance().displayConfigUpdated();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the srmSource
|
||||
*/
|
||||
|
|
|
@ -19,8 +19,32 @@
|
|||
further_licensing_information.
|
||||
-->
|
||||
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<contribute xsi:type="menuItem" menuText="Tstorm Prob"
|
||||
key="ThP" indentText="false" />
|
||||
<contribute xsi:type="menuItem" menuText="Tstorm Occr"
|
||||
key="CTSTM" indentText="false" />
|
||||
</menuTemplate>
|
||||
<contribute xsi:type="menuItem" menuText="Temperature" key="T"
|
||||
indentText="false" />
|
||||
contribute xsi:type="menuItem" menuText="Temp Anl Uncertainty"
|
||||
key="Terranl" indentText="true" />
|
||||
<contribute xsi:type="menuItem" menuText="Dewpoint" key="DpT"
|
||||
indentText="true" />
|
||||
<contribute xsi:type="menuItem" menuText="DpT Anl Uncertainty"
|
||||
key="DpTerranl" indentText="true" />
|
||||
<contribute xsi:type="menuItem" menuText="Wind" key="Wind"
|
||||
indentText="false" />
|
||||
<contribute xsi:type="menuItem" menuText="Wind Speed" key="wSp"
|
||||
indentText="true" />
|
||||
<contribute xsi:type="menuItem" menuText="WSp Anl Uncertainty"
|
||||
key="wSpea" indentText="true" />
|
||||
<contribute xsi:type="menuItem" menuText="Visibility" key="Vis"
|
||||
indentText="false" />
|
||||
<contribute xsi:type="menuItem" menuText="Sky Cover" key="TCC"
|
||||
indentText="false" />
|
||||
<contribute xsi:type="menuItem" menuText="Ceiling Height" key="CC"
|
||||
indentText="false" />
|
||||
<contribute xsi:type="menuItem" menuText="Convection Prob"
|
||||
key="PROCON2hr" indentText="false" />
|
||||
<contribute xsi:type="menuItem" menuText="Convection Occr"
|
||||
key="CONVP2hr" indentText="false" />
|
||||
<contribute xsi:type="menuItem" menuText="Lightning Prob"
|
||||
key="PROLGHT2hr" indentText="false" />
|
||||
<contribute xsi:type="menuItem" menuText="Lightning Occr"
|
||||
key="CLGTN2hr" indentText="false" />
|
||||
</menuTemplate>
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
<vbSource key="GFE" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="GFS199" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="GFSGuide" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="GFSLAMPTstorm" name="GFSLAMP-Grid" category="SfcGrid"
|
||||
<vbSource key="GFSLAMPGrid" name="GFSLAMPGrid" category="SfcGrid"
|
||||
views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="GLERL" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="GlobalWave" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
|
@ -52,6 +52,7 @@
|
|||
<vbSource key="Guam-RTMA" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="GWW233" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="HurWind250" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="HI-MOSGuide" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="HI-NamDNG5" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="HI-RTMA" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="HPCqpfNDFD" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
|
@ -152,4 +153,4 @@
|
|||
<vbSource key="WNAwave10" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="WNAwave4" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="WPHwave10" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
</vbSourceList>
|
||||
</vbSourceList>
|
||||
|
|
|
@ -87,6 +87,7 @@ import com.vividsolutions.jts.geom.prep.PreparedGeometryFactory;
|
|||
* Mar 10, 2014 2832 njensen Moved duplicated subclass's disposeInternal() logic here
|
||||
* Aug 14, 2014 3523 mapeters Updated deprecated {@link DrawableString#textStyle}
|
||||
* assignments.
|
||||
* Dec 5, 2014 DR14944 jgerth Only set outline width when there is no existing capability
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -177,7 +178,9 @@ public abstract class AbstractWWAResource extends
|
|||
super(data, props);
|
||||
this.recordsToLoad = new ArrayList<AbstractWarningRecord>();
|
||||
resourceData.addChangeListener(this);
|
||||
getCapability(OutlineCapability.class).setOutlineWidth(2);
|
||||
if (!hasCapability(OutlineCapability.class)) {
|
||||
getCapability(OutlineCapability.class).setOutlineWidth(2);
|
||||
}
|
||||
color = getCapability((ColorableCapability.class)).getColor();
|
||||
this.entryMap = new ConcurrentHashMap<String, WarningEntry>();
|
||||
}
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
28
crh/gov.noaa.nws.crh.edex.grib.decoderpostprocessor/.project
Normal file
28
crh/gov.noaa.nws.crh.edex.grib.decoderpostprocessor/.project
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>gov.noaa.nws.crh.edex.grib.decoderpostprocessor</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -0,0 +1,15 @@
|
|||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Gribpostprocessor
|
||||
Bundle-SymbolicName: gov.noaa.nws.crh.edex.grib.decoderpostprocessor
|
||||
Bundle-Version: 1.0.0.qualifier
|
||||
Bundle-Vendor: CRH
|
||||
Require-Bundle: com.raytheon.edex.common,
|
||||
com.raytheon.edex.plugin.grib,
|
||||
com.raytheon.uf.common.dataplugin,
|
||||
com.raytheon.uf.common.dataplugin.grid,
|
||||
com.raytheon.uf.common.parameter,
|
||||
com.raytheon.uf.edex.plugin.grid,
|
||||
com.raytheon.uf.common.datastorage,
|
||||
javax.measure
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
|
@ -0,0 +1,4 @@
|
|||
source.. = src/
|
||||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.
|
|
@ -0,0 +1,208 @@
|
|||
package gov.noaa.nws.crh.edex.grib.decoderpostprocessor;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
||||
import com.raytheon.edex.plugin.grib.exception.GribException;
|
||||
import com.raytheon.uf.common.dataplugin.PluginException;
|
||||
import com.raytheon.uf.common.dataplugin.grid.GridConstants;
|
||||
import com.raytheon.uf.common.dataplugin.grid.GridRecord;
|
||||
import com.raytheon.uf.common.dataquery.db.QueryParam.QueryOperand;
|
||||
import com.raytheon.uf.edex.database.DataAccessLayerException;
|
||||
import com.raytheon.uf.edex.database.query.DatabaseQuery;
|
||||
import com.raytheon.uf.edex.plugin.grid.dao.GridDao;
|
||||
|
||||
/**
|
||||
* Grib post processor implementation to generate 1-hr precipitation grids from
|
||||
* the cycling (1-hr, 2-hr, 3-hr, 1-hr, 2-hr, 3-hr, etc.) precip grids in the
|
||||
* NAM Nest output.
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------- -------- ----------- --------------------------
|
||||
* Sep 05, 2014 M. Foster Initial Creation
|
||||
*
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author matthew.foster
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
public class NamNestPostProcessor extends OneHrPrecipGridProcessor {
|
||||
|
||||
@Override
|
||||
public GridRecord[] process(GridRecord record) throws GribException {
|
||||
// Post process the data if this is a Total Precipitation grid
|
||||
if (record.getParameter().getAbbreviation().equals("TP2hr") ||
|
||||
record.getParameter().getAbbreviation().equals("TP3hr")) {
|
||||
return super.process(record);
|
||||
}
|
||||
return new GridRecord[] { record };
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves a grid inventory for the provided datasetid and parameter
|
||||
*
|
||||
* @param datasetid
|
||||
* The datasetid of the model being worked on
|
||||
* @param parm
|
||||
* The parameter being retrieved (e.g. TP3hr)
|
||||
* @param refTime
|
||||
* The refTime (cycle time) of the model
|
||||
* @return A List of GridRecord
|
||||
* @throws GribException
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
protected List<GridRecord> getPrecipInventory(String datasetid,
|
||||
String parm, Date refTime) throws GribException {
|
||||
GridDao dao = null;
|
||||
try {
|
||||
dao = new GridDao();
|
||||
} catch (PluginException e) {
|
||||
throw new GribException("Error instantiating grib dao!", e);
|
||||
}
|
||||
DatabaseQuery query = new DatabaseQuery(GridRecord.class);
|
||||
query.addQueryParam(GridConstants.PARAMETER_ABBREVIATION, parm);
|
||||
query.addQueryParam(GridConstants.DATASET_ID, datasetid);
|
||||
query.addQueryParam("dataTime.refTime", refTime);
|
||||
query.addOrder("dataTime.fcstTime", true);
|
||||
try {
|
||||
return (List<GridRecord>) dao.queryByCriteria(query);
|
||||
} catch (DataAccessLayerException e) {
|
||||
throw new GribException(
|
||||
String.format("Error getting Precip inventory for %s!",
|
||||
datasetid), e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param refTime
|
||||
* The reftime (cycle time) of the model being worked on
|
||||
* @return List of Integer of the fcstTimes of the current 1hr precip
|
||||
* inventory
|
||||
* @throws GribException
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
protected HashSet<Integer> getPrecip1hrInventory(String datasetId, Date refTime)
|
||||
throws GribException {
|
||||
GridDao dao = null;
|
||||
try {
|
||||
dao = new GridDao();
|
||||
} catch (PluginException e) {
|
||||
throw new GribException("Error instantiating grib dao!", e);
|
||||
}
|
||||
DatabaseQuery query = new DatabaseQuery(GridRecord.class);
|
||||
query.addQueryParam(GridConstants.PARAMETER_ABBREVIATION, "TP1hr");
|
||||
query.addQueryParam(GridConstants.DATASET_ID, datasetId,
|
||||
QueryOperand.EQUALS);
|
||||
query.addQueryParam("dataTime.refTime", refTime);
|
||||
query.addReturnedField("dataTime.fcstTime");
|
||||
query.setDistinct(true);
|
||||
try {
|
||||
return new HashSet<Integer>((List<Integer>) dao.queryByCriteria(query));
|
||||
} catch (DataAccessLayerException e) {
|
||||
throw new GribException(
|
||||
"Error getting Precip inventory for NAMNest!", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates the 1 hour accumulated grid from the run accumulated
|
||||
* precipitation grids. This function will look in the inventory and
|
||||
* generate any 1 hr grids that can be generated.
|
||||
*
|
||||
* @param record
|
||||
* The grib record for which to generate the 1 hour accumulated
|
||||
* precipitation grid
|
||||
* @return The generated 1-hr precipitation grids
|
||||
* @throws GribException
|
||||
*/
|
||||
protected synchronized GridRecord[] generate1hrPrecipGrids(GridRecord record)
|
||||
throws GribException {
|
||||
|
||||
List<GridRecord> currInventory;
|
||||
List<GridRecord> prevInventory;
|
||||
HashSet<Integer> precip1hrInventory;
|
||||
|
||||
if (record.getParameter().getAbbreviation().equals("TP3hr")) {
|
||||
// Get an inventory of TP3hr grids
|
||||
currInventory = getPrecipInventory(record.getDatasetId(), "TP3hr",
|
||||
record.getDataTime().getRefTime());
|
||||
|
||||
// Get an inventory of TP2hr grids
|
||||
prevInventory = getPrecipInventory(record.getDatasetId(), "TP2hr",
|
||||
record.getDataTime().getRefTime());
|
||||
|
||||
// The current 1hr precip inventory
|
||||
precip1hrInventory = getPrecip1hrInventory(record.getDatasetId(),
|
||||
record.getDataTime().getRefTime());
|
||||
|
||||
} else if (record.getParameter().getAbbreviation().equals("TP2hr")) {
|
||||
// Get an inventory of TP2hr grids
|
||||
currInventory = getPrecipInventory(record.getDatasetId(), "TP2hr",
|
||||
record.getDataTime().getRefTime());
|
||||
// Get an inventory of TP1hr grids
|
||||
prevInventory = getPrecipInventory(record.getDatasetId(), "TP1hr",
|
||||
record.getDataTime().getRefTime());
|
||||
|
||||
precip1hrInventory = new HashSet<Integer>();
|
||||
for (GridRecord rec : prevInventory) {
|
||||
precip1hrInventory.add(rec.getDataTime().getFcstTime());
|
||||
}
|
||||
} else {
|
||||
throw new GribException("Didn't get TP3hr or TP2hr grid");
|
||||
}
|
||||
|
||||
// Adds the current record to the precip inventory
|
||||
float[] currentData = (float[]) record.getMessageData();
|
||||
record.setMessageData(currentData);
|
||||
currInventory.add(record);
|
||||
|
||||
// Examine each grid in the inventory and generate the 1hr precipitation
|
||||
// grid if possible
|
||||
List<GridRecord> generatedRecords = new ArrayList<GridRecord>();
|
||||
for (GridRecord currRecord : currInventory) {
|
||||
// Check if the 1hr precipitation grid has already been produced
|
||||
if (! precip1hrInventory.contains(currRecord.getDataTime()
|
||||
.getFcstTime())) {
|
||||
List<GridRecord> generated1hrPrecips = generate1hrPrecip(
|
||||
currRecord, prevInventory);
|
||||
for (GridRecord newRecord : generated1hrPrecips) {
|
||||
// Add the generated grid to the current inventory
|
||||
if (newRecord != null) {
|
||||
precip1hrInventory.add(newRecord.getDataTime()
|
||||
.getFcstTime());
|
||||
generatedRecords.add(newRecord);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return generatedRecords.toArray(new GridRecord[] {});
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates the new data by subtracting the previous inventory data from
|
||||
* the current data
|
||||
*
|
||||
* @param inventoryData
|
||||
* The data from the previous precipitation record
|
||||
* @param newData
|
||||
* The data from the current precipitation record
|
||||
*/
|
||||
protected void calculatePrecipValues(float[] inventoryData, float[] newData) {
|
||||
for (int i = 0; i < inventoryData.length; i++) {
|
||||
newData[i] = newData[i] - inventoryData[i];
|
||||
if (newData[i] < 0) {
|
||||
newData[i] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,184 @@
|
|||
package gov.noaa.nws.crh.edex.grib.decoderpostprocessor;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
import com.raytheon.edex.plugin.grib.decoderpostprocessors.IDecoderPostProcessor;
|
||||
import com.raytheon.edex.plugin.grib.exception.GribException;
|
||||
import com.raytheon.uf.common.dataplugin.PluginException;
|
||||
import com.raytheon.uf.common.dataplugin.grid.GridRecord;
|
||||
import com.raytheon.uf.common.datastorage.records.FloatDataRecord;
|
||||
import com.raytheon.uf.common.parameter.Parameter;
|
||||
import com.raytheon.uf.common.time.DataTime;
|
||||
import com.raytheon.uf.common.time.TimeRange;
|
||||
import com.raytheon.uf.edex.plugin.grid.dao.GridDao;
|
||||
|
||||
/**
|
||||
* Abstract class to generate 1-hour precip grids
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------- -------- ------------- --------------------------
|
||||
* Sep 05, 2014 M. Foster Initial creation
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author matthew.foster
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
|
||||
public abstract class OneHrPrecipGridProcessor implements IDecoderPostProcessor {
|
||||
/** The number of seconds in 1 hour */
|
||||
protected static final int SECONDS_IN_1_HR = 3600;
|
||||
|
||||
public GridRecord[] process(GridRecord record) throws GribException {
|
||||
|
||||
// Post process the data if this is a 2hr or 3hr precip accumulation
|
||||
|
||||
GridRecord[] newRecords = generate1hrPrecipGrids(record);
|
||||
GridRecord[] retVal = new GridRecord[newRecords.length + 1];
|
||||
retVal[0] = record;
|
||||
for (int i = 1; i < retVal.length; i++) {
|
||||
retVal[i] = newRecords[i - 1];
|
||||
}
|
||||
return retVal;
|
||||
|
||||
}
|
||||
|
||||
protected abstract GridRecord[] generate1hrPrecipGrids(GridRecord record)
|
||||
throws GribException;
|
||||
|
||||
/**
|
||||
* Generates the 1hr precipitation grid
|
||||
*
|
||||
* @param record
|
||||
* The current record to clone and modify to produce the new 1hr
|
||||
* grid
|
||||
* @param precipInventory
|
||||
* The current run accumulated grid inventory
|
||||
* @return The generated 1hr precipitation grid
|
||||
* @throws GribException
|
||||
*/
|
||||
protected List<GridRecord> generate1hrPrecip(GridRecord record,
|
||||
List<GridRecord> precipInventory)
|
||||
throws GribException {
|
||||
List<GridRecord> tp1hrRecords = new ArrayList<GridRecord>();
|
||||
int currentFcstTime = record.getDataTime().getFcstTime();
|
||||
|
||||
for (GridRecord rec : precipInventory) {
|
||||
if (rec.getDataTime().getFcstTime() == (currentFcstTime - SECONDS_IN_1_HR)) {
|
||||
tp1hrRecords.add(calculate1hrPrecip(rec, record));
|
||||
}
|
||||
}
|
||||
return tp1hrRecords;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates the 1hr precipitation grid from the current grid and the
|
||||
* previous grid
|
||||
*
|
||||
* @param inventoryRecord
|
||||
* The previous grid from the inventory
|
||||
* @param currentRecord
|
||||
* The current grid
|
||||
* @return The generated 1hr precipitation grid
|
||||
* @throws GribException
|
||||
*/
|
||||
protected GridRecord calculate1hrPrecip(GridRecord inventoryRecord,
|
||||
GridRecord currentRecord) throws GribException {
|
||||
|
||||
// Clone the current record and set the ID to 0 so Hibernate will
|
||||
// recognize it as a new record
|
||||
GridRecord tp1hrRecord = new GridRecord(currentRecord);
|
||||
tp1hrRecord.setId(0);
|
||||
if (currentRecord.getMessageData() == null) {
|
||||
GridDao dao = null;
|
||||
try {
|
||||
dao = new GridDao();
|
||||
currentRecord.setMessageData(((FloatDataRecord) dao
|
||||
.getHDF5Data(currentRecord, -1)[0]).getFloatData());
|
||||
} catch (PluginException e) {
|
||||
throw new GribException("Error populating grib data!", e);
|
||||
}
|
||||
}
|
||||
|
||||
// Copy the data to the new record so the data from the original record
|
||||
// does not get modified
|
||||
float[] currentData = (float[]) currentRecord.getMessageData();
|
||||
currentRecord.setMessageData(currentData);
|
||||
float[] newData = new float[currentData.length];
|
||||
System.arraycopy(currentData, 0, newData, 0, currentData.length);
|
||||
tp1hrRecord.setMessageData(newData);
|
||||
|
||||
// Assign the new parameter abbreviation and cache it if necessary
|
||||
|
||||
Parameter param = new Parameter("TP1hr", "Precip Accum 1 hr",
|
||||
currentRecord.getParameter().getUnit());
|
||||
tp1hrRecord.setParameter(param);
|
||||
tp1hrRecord.getInfo().setId(null);
|
||||
// Change the data time to include the 1-hr time range
|
||||
modifyDataTime(tp1hrRecord);
|
||||
|
||||
// Calculate the new data values
|
||||
if (inventoryRecord != null) {
|
||||
if (inventoryRecord.getMessageData() == null) {
|
||||
GridDao dao = null;
|
||||
try {
|
||||
dao = new GridDao();
|
||||
inventoryRecord
|
||||
.setMessageData(((FloatDataRecord) dao.getHDF5Data(
|
||||
inventoryRecord, 0)[0]).getFloatData());
|
||||
} catch (PluginException e) {
|
||||
throw new GribException("Error populating grib data!", e);
|
||||
}
|
||||
}
|
||||
calculatePrecipValues((float[]) inventoryRecord.getMessageData(),
|
||||
(float[]) tp1hrRecord.getMessageData());
|
||||
}
|
||||
return tp1hrRecord;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates the new data by subtracting the previous inventory data from
|
||||
* the current data
|
||||
*
|
||||
* @param inventoryData
|
||||
* The data from the previous precipitation record
|
||||
* @param newData
|
||||
* The data from the current precipitation record
|
||||
*/
|
||||
protected abstract void calculatePrecipValues(float[] messageData,
|
||||
float[] messageData2);
|
||||
|
||||
/**
|
||||
* Modifies the DataTime of the provided record to include a 1hr time range
|
||||
*
|
||||
* @param record
|
||||
* The record to modify the datatime for
|
||||
*/
|
||||
protected void modifyDataTime(GridRecord record) {
|
||||
|
||||
Calendar refTime = record.getDataTime().getRefTimeAsCalendar();
|
||||
int fcstTime = record.getDataTime().getFcstTime();
|
||||
|
||||
// Calculate the start time by subtracting 1 hour from the reference
|
||||
// time + forecast time
|
||||
Calendar startTime = (Calendar) refTime.clone();
|
||||
startTime.add(Calendar.SECOND, fcstTime - SECONDS_IN_1_HR);
|
||||
|
||||
// Calculate the end time by adding the reference time + forecast time
|
||||
Calendar endTime = (Calendar) refTime.clone();
|
||||
endTime.add(Calendar.SECOND, fcstTime);
|
||||
TimeRange validPeriod = new TimeRange(startTime, endTime);
|
||||
DataTime newDataTime = new DataTime(refTime, fcstTime, validPeriod);
|
||||
|
||||
// Reset the datauri since the datauri contains the DataTime
|
||||
record.setDataTime(newDataTime);
|
||||
record.setDataURI(null);
|
||||
}
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
edex.root.directory=/awips2/edex
|
||||
architecture=x86_64
|
||||
|
||||
includegen.filter=raytheon|noaa\.nws|noaa\.gsd
|
||||
includegen.filter=raytheon|noaa\.nws|noaa\.gsd|gov\.nasa\.msfc|edu\.wisc\.ssec\.cimss
|
||||
|
||||
# AWIPSII core repositores required for build
|
||||
# AWIPSII core repositories required for build
|
||||
core.repositories=ufcore,ufcore-foss,AWIPS2_foss
|
||||
|
||||
# Note: currently, there is a limit of 99 plugin directories.
|
||||
|
@ -22,6 +22,8 @@ dir.11=features
|
|||
dir.12=viz
|
||||
# directories from ufcore-foss
|
||||
dir.13=lib
|
||||
# CIMSS plug-in directory
|
||||
dir.14=CIMSS
|
||||
|
||||
|
||||
# the directory that contains the localization projects
|
||||
|
|
|
@ -71,12 +71,12 @@
|
|||
<includes
|
||||
id="com.raytheon.uf.edex.archive.feature"
|
||||
version="0.0.0"/>
|
||||
|
||||
|
||||
<!-- Comment out this include before checking in. This plugin only for debugging. -->
|
||||
<!--
|
||||
<includes
|
||||
id="com.raytheon.uf.edex.archive.feeder.feature"
|
||||
version="0.0.0"/>
|
||||
version="0.0.0"/>
|
||||
-->
|
||||
|
||||
<includes
|
||||
|
@ -107,7 +107,7 @@
|
|||
id="com.raytheon.uf.edex.ncep.feature"
|
||||
version="0.0.0"/>
|
||||
|
||||
<!-- Uncomment to deploy the National Central Operations EDEX plugins locally -->
|
||||
<!-- Uncomment to deploy the National Central Operations EDEX plugins locally -->
|
||||
<!-- includes
|
||||
id="com.raytheon.uf.edex.ncep.nco.feature"
|
||||
version="0.0.0"/-->
|
||||
|
@ -119,7 +119,7 @@
|
|||
<includes
|
||||
id="com.raytheon.uf.edex.ost.feature"
|
||||
version="0.0.0"/>
|
||||
|
||||
|
||||
<includes
|
||||
id="com.raytheon.uf.edex.npp.feature"
|
||||
version="0.0.0"/>
|
||||
|
@ -136,4 +136,12 @@
|
|||
id="com.raytheon.uf.edex.remote.script.feature"
|
||||
version="0.0.0"/>
|
||||
|
||||
<includes
|
||||
id="gov.nasa.msfc.sport.edex.sportlma.feature"
|
||||
version="0.0.0"/>
|
||||
|
||||
<includes
|
||||
id="edu.wisc.ssec.cimss.edex.convectprob.feature"
|
||||
version="0.0.0"/>
|
||||
|
||||
</feature>
|
||||
|
|
|
@ -134,14 +134,15 @@ public class BinLightningDecoder extends AbstractDecoder {
|
|||
private static DecryptedLightningValidator validator = new DecryptedLightningValidator() {
|
||||
@Override
|
||||
public boolean isValid(byte[] decryptedData) {
|
||||
return BinLightningDecoderUtil.isKeepAliveRecord(decryptedData) == false
|
||||
&& BinLightningDecoderUtil
|
||||
.isLightningDataRecords(decryptedData) == false;
|
||||
return BinLightningDecoderUtil.isKeepAliveRecord(decryptedData)
|
||||
|| BinLightningDecoderUtil
|
||||
.isLightningDataRecords(decryptedData);
|
||||
/*
|
||||
* use this if keep-alive record could be mixed with lightning
|
||||
* records
|
||||
*/
|
||||
// return BinLigntningDecoderUtil.isValidMixedRecordData(decryptedData) == false
|
||||
// return
|
||||
// BinLigntningDecoderUtil.isValidMixedRecordData(decryptedData);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<aliasList caseSensitive="true" namespace="gfeParamInfo">
|
||||
<alias base="MOSGuide-HI">mosGuideNDFD</alias>
|
||||
<alias base="GFS217">gfs20km</alias>
|
||||
<alias base="GFS215">gfs20km</alias>
|
||||
<alias base="GFS20-PAC">gfs20km</alias>
|
||||
|
@ -166,7 +167,7 @@
|
|||
<alias base="OPCWave182">opcWave182</alias>
|
||||
<alias base="MOSGuide">mosGuideNDFD</alias>
|
||||
<alias base="MOSGuide-AK">mosGuideNDFD_AK</alias>
|
||||
<alias base="GFSLAMPTstorm">lampNDFD</alias>
|
||||
<alias base="GFSLAMPGrid">lampNDFD</alias>
|
||||
<alias base="TPCSurgeProb">TPCSurgeProb</alias>
|
||||
<alias base="TPCSurgeProb197">TPCSurgeProb</alias>
|
||||
<alias base="TPCSurgeProb-AK">TPCSurgeProb</alias>
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
Jul 03, 2013 #2044 randerso Removed mappings from tpXXX to tp_XXX for RFCQPF
|
||||
Mar 31, 2014 #2934 dgilling Updated params for pSurge2.0/PHISH data.
|
||||
Jul 03, 2014 DR 14068 mfoster Added parameters for 3km AK-RTMA
|
||||
Dec 15, 2014 DR 14024 jwatson Added parameters for 2.5km GFSLAMPGrid
|
||||
-->
|
||||
<aliasList caseSensitive="true" namespace="gfeParamName">
|
||||
<alias base="AV">av</alias>
|
||||
|
@ -132,6 +133,8 @@
|
|||
<alias base="Cigc1">cigc1</alias>
|
||||
<alias base="Cigc2">cigc2</alias>
|
||||
<alias base="Cigc3">cigc3</alias>
|
||||
<alias base="CLGTN">clgtn</alias>
|
||||
<alias base="CONVP">convp</alias>
|
||||
<alias base="CP2hr">cp2hr</alias>
|
||||
<alias base="CPVV">cpvv</alias>
|
||||
<alias base="CRAINc1">crainc1</alias>
|
||||
|
@ -221,6 +224,8 @@
|
|||
<alias base="Prob34">prob34</alias>
|
||||
<alias base="Prob50">prob50</alias>
|
||||
<alias base="Prob64">prob64</alias>
|
||||
<alias base="PROCON">procon</alias>
|
||||
<alias base="PROLGHT">prolght</alias>
|
||||
<alias base="PTAM">ptam</alias>
|
||||
<alias base="PTAN">ptan</alias>
|
||||
<alias base="PTA">pta</alias>
|
||||
|
|
|
@ -390,6 +390,9 @@ ExtraWEPrecision = []
|
|||
AstroTide = ("AstroTide", SCALAR, "ft", "Astro Tide", 20.0, -8.0, 1, NO)
|
||||
StormSurge = ("StormSurge", SCALAR, "ft", "Storm Surge", 30.0, -5.0, 1, NO)
|
||||
|
||||
# Parm for Aviation/GFSLAMPGrid
|
||||
ClgHgt=("ClgHgt",SCALAR,"ft","Ceiling Height",25000.0,-100.0,0,NO)
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
#
|
||||
# Weather configuration section
|
||||
|
@ -1096,6 +1099,7 @@ NamDNG5 = ('NamDNG5', GRID, '', NO, NO, 2, 0)
|
|||
TPCProb = ('TPCProb', GRID, '', NO, NO, 30, 0)
|
||||
SREF = ('SREF', GRID, '', NO, NO, 3, 0)
|
||||
ENPwave = ('ENPwave', GRID, '', NO, NO, 2, 0)
|
||||
GFSLAMPGrid = ('GFSLAMPGrid', GRID, '', NO, NO, 3, 0)
|
||||
#---------------------------------------------------------------------------
|
||||
#
|
||||
# D2D Model Database Version Specification
|
||||
|
@ -1182,6 +1186,7 @@ elif SID == "HFO":
|
|||
'WPHwave10',
|
||||
'NPHwave4',
|
||||
'GLOBHwave',
|
||||
('MOSGuide-HI', 'MOSGuide'),
|
||||
('nwpsCG1', 'nwpsCG1'),
|
||||
('nwpsTrkngCG0', 'nwpsTrkngCG0'),
|
||||
('GFS20-PAC', 'GFS20'),
|
||||
|
@ -1294,6 +1299,7 @@ elif SID in CONUS_EAST_SITES:
|
|||
'GLOBHwave',
|
||||
'URMA25',
|
||||
('GFS215', 'GFS20'),
|
||||
'GFSLAMPGrid',
|
||||
('FFG-ALR', 'FFGALR'),
|
||||
('FFG-FWR', 'FFGFWR'),
|
||||
('FFG-KRF', 'FFGKRF'),
|
||||
|
@ -1369,6 +1375,7 @@ else: #######DCS3501 WEST_CONUS
|
|||
'GLOBHwave',
|
||||
'URMA25',
|
||||
('GFS215', 'GFS20'),
|
||||
'GFSLAMPGrid',
|
||||
('FFG-ALR', 'FFGALR'),
|
||||
('FFG-FWR', 'FFGFWR'),
|
||||
('FFG-KRF', 'FFGKRF'),
|
||||
|
@ -1547,6 +1554,7 @@ elif SID == "HFO":
|
|||
# "gfsLR" : ["gfsLR"],
|
||||
"RTMA": ['RTMA'],
|
||||
"NamDNG5" : ["NamDNG5"],
|
||||
"MOSGuide" : ['MOSGuide'],
|
||||
"nwpsCG1" : ['nwpsCG1'],
|
||||
"nwpsTrkngCG0" : ['nwpsTrkngCG0'],
|
||||
}
|
||||
|
@ -1631,6 +1639,7 @@ else:
|
|||
# "WNAwave4" : ["WNAwave4"],
|
||||
# "ENPwave": ["ENPwave"],
|
||||
"ESTOFS" : ["ESTOFS"],
|
||||
"GFSLAMPGrid" : ["GFSLAMPGrid"],
|
||||
"nwpsCG1" : ['nwpsCG1'],
|
||||
"nwpsTrkngCG0" : ['nwpsTrkngCG0'],
|
||||
}
|
||||
|
@ -1656,7 +1665,7 @@ D2DAccumulativeElements= {
|
|||
"GFS80": ["tp", "cp"],
|
||||
"GFS75": ["tp", "cp"],
|
||||
"GFS190": ["tp", "cp"],
|
||||
"HRRR": ["tp1hr", "crain", "csnow", "cfrzr", "cicep"],
|
||||
"HRRR": ["tp", "crain", "csnow", "cfrzr", "cicep"],
|
||||
"NAM95": ["tp", "cp"],
|
||||
"NAM80": ["tp", "cp"],
|
||||
"NAM40": ["tp", "cp"],
|
||||
|
@ -1774,9 +1783,11 @@ localRTMAParms = []
|
|||
localNamDNG5Parms = []
|
||||
localSREFParms = []
|
||||
localTPCProbParms = []
|
||||
localHRRRParms = localESTOFSParms = []
|
||||
localGFSLAMPGridParms = []
|
||||
localHRRRParms = []
|
||||
localESTOFSParms = []
|
||||
localnwpsCG1Parms = []
|
||||
localnwpsTrkngCG0Parms = []
|
||||
localnwpsTrkngCG0Parms = []
|
||||
localISCExtraParms = []
|
||||
|
||||
myOfficeType = SITES[GFESUITE_SITEID][5]
|
||||
|
@ -1850,6 +1861,7 @@ if not BASELINE and siteImport('localConfig'):
|
|||
localWNAwave10Parms = getattr(localConfig, 'parmsWNAwave10', localWNAwave10Parms)
|
||||
localWNAwave4Parms = getattr(localConfig, 'parmsWNAwave4', localWNAwave4Parms)
|
||||
localENPwaveParms = getattr(localConfig, 'parmsENPwave', localENPwaveParms)
|
||||
localGFSLAMPGridParms = getattr(localConfig, 'parmsGFSLAMPGrid', localGFSLAMPGridParms)
|
||||
#note that extraISCparms are not in the standard format. These
|
||||
#are a list of ([p, p, p, p], officeType)
|
||||
localISCExtraParms = getattr(localConfig, 'extraISCparms', localISCExtraParms)
|
||||
|
@ -2041,6 +2053,10 @@ parmsGFS40 = [([SnowRatio], TC1)]
|
|||
|
||||
ENPwave_parms = [([WindWaveHeight, WaveHeight, SurfHeight, Wind], TC6),
|
||||
([Swell, Swell2, Period, Period2], TC6)]
|
||||
|
||||
# GFSLAMPGrid
|
||||
parmsGFSLAMPGrid=[([Temp, Td, serverConfig.Vis, ClgHgt],TC1)]
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Databases for a site.
|
||||
# list of (Database, [parms])
|
||||
|
@ -2101,6 +2117,7 @@ DATABASES = [(Official, OFFICIALDBS + localParms),
|
|||
(NamDNG5, NamDNG5PARMS + localNamDNG5Parms),
|
||||
(TPCProb, TPCProbPARMS + localTPCProbParms),
|
||||
(ENPwave, ENPwave_parms + localENPwaveParms),
|
||||
(GFSLAMPGrid, GFSLAMPGridPARMS + localGFSLAMPGridParms),
|
||||
(Test, OFFICIALDBS + localParms)] + localDBs
|
||||
|
||||
# Intersite coordination database parameter groupings, based on
|
||||
|
|
|
@ -1,76 +1,304 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<gridParamInfo xmlns:ns2="group">
|
||||
<valtimeMINUSreftime>
|
||||
<fcst>10800</fcst>
|
||||
<fcst>14400</fcst>
|
||||
<fcst>18000</fcst>
|
||||
<fcst>21600</fcst>
|
||||
<fcst>25200</fcst>
|
||||
<fcst>28800</fcst>
|
||||
<fcst>32400</fcst>
|
||||
<fcst>36000</fcst>
|
||||
<fcst>39600</fcst>
|
||||
<fcst>43200</fcst>
|
||||
<fcst>46800</fcst>
|
||||
<fcst>50400</fcst>
|
||||
<fcst>54000</fcst>
|
||||
<fcst>57600</fcst>
|
||||
<fcst>61200</fcst>
|
||||
<fcst>64800</fcst>
|
||||
<fcst>68400</fcst>
|
||||
<fcst>72000</fcst>
|
||||
<fcst>75600</fcst>
|
||||
<fcst>79200</fcst>
|
||||
<fcst>82800</fcst>
|
||||
<fcst>86400</fcst>
|
||||
<fcst>90000</fcst>
|
||||
</valtimeMINUSreftime>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>ctstm</short_name>
|
||||
<long_name>Categorical Thunder Storm</long_name>
|
||||
<units>yn</units>
|
||||
<udunits/>
|
||||
<uiname>CategoricalTSTM</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>staticTopo</short_name>
|
||||
<long_name>Topography</long_name>
|
||||
<units>meters</units>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>thp</short_name>
|
||||
<long_name>Thunderstorm Probability</long_name>
|
||||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>TstrmProb</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>staticSpacing</short_name>
|
||||
<long_name>Grid spacing</long_name>
|
||||
<units>meters</units>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>staticCoriolis</short_name>
|
||||
<long_name>Coriolis parameter</long_name>
|
||||
<units>/s</units>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
</gridParameterInfo>
|
||||
<valtimeMINUSreftime>
|
||||
<fcst>0</fcst>
|
||||
<fcst>3600</fcst>
|
||||
<fcst>7200</fcst>
|
||||
<fcst>10800</fcst>
|
||||
<fcst>14400</fcst>
|
||||
<fcst>18000</fcst>
|
||||
<fcst>21600</fcst>
|
||||
<fcst>25200</fcst>
|
||||
<fcst>28800</fcst>
|
||||
<fcst>32400</fcst>
|
||||
<fcst>36000</fcst>
|
||||
<fcst>39600</fcst>
|
||||
<fcst>43200</fcst>
|
||||
<fcst>46800</fcst>
|
||||
<fcst>50400</fcst>
|
||||
<fcst>54000</fcst>
|
||||
<fcst>57600</fcst>
|
||||
<fcst>61200</fcst>
|
||||
<fcst>64800</fcst>
|
||||
<fcst>68400</fcst>
|
||||
<fcst>72000</fcst>
|
||||
<fcst>75600</fcst>
|
||||
<fcst>79200</fcst>
|
||||
<fcst>82800</fcst>
|
||||
<fcst>86400</fcst>
|
||||
<fcst>90000</fcst>
|
||||
</valtimeMINUSreftime>
|
||||
<gridParameterInfo xsi:type="parameterInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>tcc</short_name>
|
||||
<long_name>Sky Cover</long_name>
|
||||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>totalCldCvr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>vis</short_name>
|
||||
<long_name>visibility</long_name>
|
||||
<units>m</units>
|
||||
<udunits>meter</udunits>
|
||||
<uiname>visibility</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>5000.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>cc</short_name>
|
||||
<long_name>Cloud Ceiling</long_name>
|
||||
<units>m</units>
|
||||
<udunits>meters</udunits>
|
||||
<uiname>cloudCeiling</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>10000.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>CLG</levelsDesc>
|
||||
<levels>
|
||||
<level>CLG</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>procon</short_name>
|
||||
<long_name>Convection Probability</long_name>
|
||||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ConvProb</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>convp</short_name>
|
||||
<long_name>Categorical Convection potential</long_name>
|
||||
<units>yn</units>
|
||||
<udunits/>
|
||||
<uiname>CategoricalCONV</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>8.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>prolght</short_name>
|
||||
<long_name>Lightning Probability</long_name>
|
||||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>LgtnProb</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>clgtn</short_name>
|
||||
<long_name>Categorical Lightning potential</long_name>
|
||||
<units>yn</units>
|
||||
<udunits/>
|
||||
<uiname>CategoricalLGTN</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>8.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>dpt</short_name>
|
||||
<long_name>Dewpoint Temperature</long_name>
|
||||
<units>K</units>
|
||||
<udunits>degree_Kelvin</udunits>
|
||||
<uiname>Td</uiname>
|
||||
<valid_range>180.0</valid_range>
|
||||
<valid_range>330.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>FHAG 2</levelsDesc>
|
||||
<levels>
|
||||
<level>FHAG2</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>dpterranl</short_name>
|
||||
<long_name>Dewpoint Temperature error analysis</long_name>
|
||||
<units>K</units>
|
||||
<udunits>degree_Kelvin</udunits>
|
||||
<uiname>TdErrorAnalysis</uiname>
|
||||
<valid_range>-330.0</valid_range>
|
||||
<valid_range>330.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>FHAG 2</levelsDesc>
|
||||
<levels>
|
||||
<level>FHAG2</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>t</short_name>
|
||||
<long_name>Temperature</long_name>
|
||||
<units>K</units>
|
||||
<udunits>degree_Kelvin</udunits>
|
||||
<uiname>T</uiname>
|
||||
<valid_range>180.0</valid_range>
|
||||
<valid_range>330.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>FHAG 2</levelsDesc>
|
||||
<levels>
|
||||
<level>FHAG2</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>terranl</short_name>
|
||||
<long_name>Temperature error analysis</long_name>
|
||||
<units>K</units>
|
||||
<udunits>degree_Kelvin</udunits>
|
||||
<uiname>ErrorAnalysisT</uiname>
|
||||
<valid_range>-330.0</valid_range>
|
||||
<valid_range>330.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>FHAG 2</levelsDesc>
|
||||
<levels>
|
||||
<level>FHAG2</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>ws</short_name>
|
||||
<long_name>Wind Speed</long_name>
|
||||
<units>m/s</units>
|
||||
<udunits>meter/sec</udunits>
|
||||
<uiname>windSpeed</uiname>
|
||||
<valid_range>-150.0</valid_range>
|
||||
<valid_range>150.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>FHAG 10</levelsDesc>
|
||||
<levels>
|
||||
<level>FHAG10</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>wserranl</short_name>
|
||||
<long_name>wind speed uncertainty</long_name>
|
||||
<units>m/s</units>
|
||||
<udunits>meter/sec</udunits>
|
||||
<uiname>WSerranlind</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>150.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>FHAG 10</levelsDesc>
|
||||
<levels>
|
||||
<level>FHAG10</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>wd</short_name>
|
||||
<long_name>Wind direction (from which blowing)</long_name>
|
||||
<units>deg</units>
|
||||
<udunits>degrees</udunits>
|
||||
<uiname>windDir</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>360.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>FHAG 10</levelsDesc>
|
||||
<levels>
|
||||
<level>FHAG10</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>wderranl</short_name>
|
||||
<long_name>wind dir uncertainty</long_name>
|
||||
<units>deg</units>
|
||||
<udunits>degrees</udunits>
|
||||
<uiname>WDerranlind</uiname>
|
||||
<valid_range>-360.0</valid_range>
|
||||
<valid_range>360.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>FHAG 10</levelsDesc>
|
||||
<levels>
|
||||
<level>FHAG10</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>uw</short_name>
|
||||
<long_name>u-component wind</long_name>
|
||||
<units>m/s</units>
|
||||
<udunits>meter/sec</udunits>
|
||||
<uiname>uWind</uiname>
|
||||
<valid_range>-150.0</valid_range>
|
||||
<valid_range>150.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>FHAG 10</levelsDesc>
|
||||
<levels>
|
||||
<level>FHAG10</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>vw</short_name>
|
||||
<long_name>v-component wind</long_name>
|
||||
<units>m/s</units>
|
||||
<udunits>meter/sec</udunits>
|
||||
<uiname>vWind</uiname>
|
||||
<valid_range>-150.0</valid_range>
|
||||
<valid_range>150.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>FHAG 10</levelsDesc>
|
||||
<levels>
|
||||
<level>FHAG10</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>staticCoriolis</short_name>
|
||||
<long_name>Coriolis parameter</long_name>
|
||||
<units>/s</units>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>staticSpacing</short_name>
|
||||
<long_name>Grid spacing</long_name>
|
||||
<units>m</units>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>staticTopo</short_name>
|
||||
<long_name>Topography</long_name>
|
||||
<units>meters</units>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
</gridParameterInfo>
|
||||
</gridParamInfo>
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
################################################################################
|
||||
# This file contains entries for the 2.5km Gridded LAMP database initialization.
|
||||
#
|
||||
# Author: Joshua Watson Created: 09/28/2011
|
||||
# ERH Last Modified: 12/12/2014
|
||||
#
|
||||
|
||||
################################################################################
|
||||
# Import existing model database initialization parameters
|
||||
from Init import *
|
||||
class GFSLAMPForecaster(Forecaster):
|
||||
def __init__(self):
|
||||
Forecaster.__init__(self, "GFSLAMP","GFSLAMP")
|
||||
|
||||
def calcClgHgt(self, cc_CLG):
|
||||
ceil = cc_CLG * 3.280839
|
||||
ceil = where(less(cc_CLG, 0), -99., ceil)
|
||||
return ceil
|
||||
|
||||
def calcVis(self, vis_SFC):
|
||||
return (vis_SFC * 3.2808) / 5279.85564
|
||||
|
||||
def calcT(self, t_FHAG2):
|
||||
return self.KtoF(t_FHAG2)
|
||||
|
||||
def calcTd(self, dpt_FHAG2):
|
||||
return self.KtoF(dpt_FHAG2)
|
||||
|
||||
################################################################################
|
||||
# Set this file up to run with SmartInitialization
|
||||
|
||||
def main():
|
||||
GFSLAMPForecaster().run()
|
|
@ -133,6 +133,8 @@ logHandler = UFStatusHandler.UFStatusHandler("com.raytheon.edex.plugin.grib", "E
|
|||
# Apr 28, 2014 3084 bsteffen Use full grid for looking up parameter aliases.
|
||||
# Aug 15, 2014 15699 MPorricelli Import GridUtil and update reference
|
||||
# to GRID_FILL_VALUE
|
||||
# Dec 15, 2014 DR16509 Matt Foster Changes in _decodePdsSection to accommodate
|
||||
# EKDMOS
|
||||
#
|
||||
class GribDecoder():
|
||||
|
||||
|
@ -565,17 +567,23 @@ class GribDecoder():
|
|||
#numMissingValues = pdsTemplate[22]
|
||||
#statisticalProcess = pdsTemplate[23]
|
||||
|
||||
elif pdsTemplateNumber == 10:
|
||||
elif pdsTemplateNumber == 6 or pdsTemplateNumber == 10:
|
||||
# pdsTemplate 6 and 10 are used for percentile-based variables
|
||||
# 6 is for instantaneous variables, 10 is for those that span
|
||||
# a time range
|
||||
parameterAbbreviation = parameterAbbreviation + str(pdsTemplate[15]) + "pct"
|
||||
gribDict['parameterName'] = str(pdsTemplate[15]) +"th percentile " + gribDict['parameterName']
|
||||
gribDict['endTime'] = self._convertToCalendar(pdsTemplate, 16)
|
||||
|
||||
#numTimeRanges = pdsTemplate[22]
|
||||
#numMissingValues = pdsTemplate[23]
|
||||
#statisticalProcess = pdsTemplate[24]
|
||||
|
||||
typeOfTimeInterval = pdsTemplate[25]
|
||||
durationSecs = self._convertToSeconds(pdsTemplate[27], pdsTemplate[26])
|
||||
if pdsTemplateNumber == 10:
|
||||
# Add time range information for pdsTemplate 10
|
||||
gribDict['endTime'] = self._convertToCalendar(pdsTemplate, 16)
|
||||
|
||||
#numTimeRanges = pdsTemplate[22]
|
||||
#numMissingValues = pdsTemplate[23]
|
||||
#statisticalProcess = pdsTemplate[24]
|
||||
|
||||
typeOfTimeInterval = pdsTemplate[25]
|
||||
durationSecs = self._convertToSeconds(pdsTemplate[27], pdsTemplate[26])
|
||||
|
||||
|
||||
if durationSecs is not None:
|
||||
|
|
|
@ -912,8 +912,13 @@
|
|||
<dt>3</dt>
|
||||
</info>
|
||||
<info>
|
||||
<title>GFSLAMP-Grid</title>
|
||||
<datasetId>GFSLAMPTstorm</datasetId>
|
||||
<title>HI-GriddedMOS</title>
|
||||
<datasetId>MOSGuide-HI</datasetId>
|
||||
<dt>3</dt>
|
||||
</info>
|
||||
<info>
|
||||
<title>GFSLAMPGrid</title>
|
||||
<datasetId>GFSLAMPGrid</datasetId>
|
||||
<dt>1</dt>
|
||||
</info>
|
||||
<info>
|
||||
|
|
|
@ -52,12 +52,17 @@ TP_T170L42A-NCEP-MDL_1073x689_43200-0 TP12hr
|
|||
ThP_T170L42A-NCEP-MDL_1073x689_43200-0 ThP12hr
|
||||
ThP_T170L42A-NCEP-MDL_1073x689_21600-0 ThP6hr
|
||||
ThP_T170L42A-NCEP-MDL_1073x689_10800-0 ThP3hr
|
||||
// GFSLAMPGrid 2.5km
|
||||
ThP_LAMP-NCEP-MDL_2145x1377_7200-0 PROLGHT2hr
|
||||
// 2.5km MOSGuide
|
||||
TP0.254mm_T170L42A-NCEP-MDL_2145x1377_21600-0 POP6hr
|
||||
TP0.254mm_T170L42A-NCEP-MDL_2145x1377_43200-0 POP12hr
|
||||
// MOSGuide Alaska
|
||||
TP0.254mm_T170L42A-NCEP-MDL_1649x1105_21600-0 POP6hr
|
||||
TP0.254mm_T170L42A-NCEP-MDL_1649x1105_43200-0 POP12hr
|
||||
// MOSGuide Hawaii
|
||||
TP0.254mm_T170L42A-NCEP-MDL_625x561_21600-0 POP6hr
|
||||
TP0.254mm_T170L42A-NCEP-MDL_625x561_43200-0 POP12hr
|
||||
// TPCWindProb wind speed probabilities
|
||||
WS17.491m/s Prob34
|
||||
WS25.722m/s Prob50
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
||||
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
|
||||
This_software_product_contains_export-restricted_data_whose
|
||||
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
|
||||
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
|
||||
an_export_license_or_other_authorization.
|
||||
|
||||
Contractor_Name:________Raytheon_Company
|
||||
Contractor_Address:_____6825_Pine_Street,_Suite_340
|
||||
________________________Mail_Stop_B8
|
||||
________________________Omaha,_NE_68106
|
||||
________________________402.291.0100
|
||||
|
||||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<mercatorGridCoverage>
|
||||
<name>625561001</name>
|
||||
<description>NDGD grid over - Hawaii (Mercator)</description>
|
||||
<la1>14.3515</la1>
|
||||
<lo1>-164.9695</lo1>
|
||||
<firstGridPointCorner>LowerLeft</firstGridPointCorner>
|
||||
<nx>625</nx>
|
||||
<ny>561</ny>
|
||||
<dx>2.5</dx>
|
||||
<dy>2.5</dy>
|
||||
<spacingUnit>km</spacingUnit>
|
||||
<minorAxis>6371200.0</minorAxis>
|
||||
<majorAxis>6371200.0</majorAxis>
|
||||
<latin>20.0</latin>
|
||||
<la2>26.8605</la2>
|
||||
<lo2>-150.0402</lo2>
|
||||
</mercatorGridCoverage>
|
|
@ -3155,7 +3155,7 @@
|
|||
<name>MOSGuide</name>
|
||||
<center>7</center>
|
||||
<subcenter>14</subcenter>
|
||||
<grid>197</grid>
|
||||
<grid>184</grid>
|
||||
<process>
|
||||
<id>96</id>
|
||||
</process>
|
||||
|
@ -3182,10 +3182,30 @@
|
|||
</model>
|
||||
|
||||
<model>
|
||||
<name>GFSLAMPTstorm</name>
|
||||
<name>MOSGuide-HI</name>
|
||||
<center>7</center>
|
||||
<subcenter>14</subcenter>
|
||||
<grid>197</grid>
|
||||
<grid>625561001</grid>
|
||||
<process>
|
||||
<id>96</id>
|
||||
</process>
|
||||
</model>
|
||||
|
||||
<model>
|
||||
<name>GFSLAMP5km</name>
|
||||
<center>7</center>
|
||||
<subcenter>14</subcenter>
|
||||
<grid>197</grid>
|
||||
<process>
|
||||
<id>108</id>
|
||||
</process>
|
||||
</model>
|
||||
|
||||
<model>
|
||||
<name>GFSLAMPGrid</name>
|
||||
<center>7</center>
|
||||
<subcenter>14</subcenter>
|
||||
<grid>184</grid>
|
||||
<process>
|
||||
<id>108</id>
|
||||
</process>
|
||||
|
|
|
@ -19,12 +19,12 @@
|
|||
further_licensing_information.
|
||||
-->
|
||||
<subGridDef>
|
||||
<modelNames>GFSLAMPTstorm</modelNames>
|
||||
<referenceGrid>197</referenceGrid>
|
||||
<nx>1000</nx>
|
||||
<ny>689</ny>
|
||||
<modelNames>GFSLAMPGrid</modelNames>
|
||||
<referenceGrid>184</referenceGrid>
|
||||
<nx>700</nx>
|
||||
<ny>700</ny>
|
||||
<!--
|
||||
<centerLatitude>46.0</centerLatitude>
|
||||
<centerLongitude>-95.5</centerLongitude>
|
||||
-->
|
||||
</subGridDef>
|
||||
</subGridDef>
|
||||
|
|
|
@ -20,11 +20,11 @@
|
|||
-->
|
||||
<subGridDef>
|
||||
<modelNames>MOSGuide</modelNames>
|
||||
<referenceGrid>197</referenceGrid>
|
||||
<nx>350</nx>
|
||||
<ny>350</ny>
|
||||
<referenceGrid>184</referenceGrid>
|
||||
<nx>700</nx>
|
||||
<ny>700</ny>
|
||||
<!--
|
||||
<centerLatitude>46.0</centerLatitude>
|
||||
<centerLongitude>-95.5</centerLongitude>
|
||||
-->
|
||||
</subGridDef>
|
||||
</subGridDef>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
200:200:Significant Tornado probability:%:SIGTRNDPROB
|
||||
201:201:Significant Hail probability:%:SIGHAILPROB
|
||||
202:202:Significant Wind probability:%:SIGWINDPROB
|
||||
203:203:Categorical Thunderstorm (1-yes, 0-no):categorical:CTSTM
|
||||
203:203:Categorical Lightning:categorical:CLGHT
|
||||
204:204:Number of mixed layers next to surface:integer:MIXLY
|
||||
205:205:Flight Category::FLGHT
|
||||
206:206:Confidence - Ceiling::CICEL
|
||||
|
@ -25,12 +25,12 @@
|
|||
214:214:Near IR, White Sky Albedo:%:NWSALB
|
||||
215:215:Total Probability of Severe Thunderstorms (Days 2,3):%:PRSVR
|
||||
216:216:Total Probability of Extreme Severe Thunderstorms (Days 2,3):%:PRSIGSV
|
||||
217:217:Mean Icing Potential:mm:MEI
|
||||
218:218:Maximum Icing Potential:mm:MAIP
|
||||
219:219:Mean in-Cloud Turbulence Potential:mm:MECTP
|
||||
220:220:Max in-Cloud Turbulence Potential:mm:MACTP
|
||||
221:221:Mean Cloud Air Turbulence Potential:mm:MECAT
|
||||
222:222:Maximum Cloud Air Turbulence Potential:mm:MACAT
|
||||
217:217:Supercooled Large Droplet Icing:mm:SIPD
|
||||
218:218:Radiative emissivity:mm:EPSR
|
||||
219:219:Turbulence Potential Forecast Index::TPFI
|
||||
220:220:Categorical Servre Thunderstorm::SVRTS
|
||||
221:221:Probability of Convection:%:PROCON
|
||||
222:222:Categorical Convection :categorical:CONVP
|
||||
223:223:Cumulonimbus Horizontal Exten:%:CBHE
|
||||
224:224:Pressure at Cumulonimbus Bas:Pa:PCBB
|
||||
225:225:Pressure at Cumulonimbus To:Pa:PCBT
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
212:212:Low Cloud Bottom Level::LCBL
|
||||
213:213:Low Cloud Top Level::LCTL
|
||||
214:214:Low Cloud Layer::LCLY
|
||||
215:215:Cloud Ceiling::CEIL
|
||||
215:215:Cloud Ceiling::CLG
|
||||
220:220:Planetary Boundary Layer:: PLBL
|
||||
221:221:Layer Between Two Hybrid Levels::NONE
|
||||
222:222:Middle Cloud Bottom Level::MCBL
|
||||
|
|
5
edexOsgi/com.raytheon.edex.plugin.radar/utility/common_static/base/radarInfo.txt
Normal file → Executable file
5
edexOsgi/com.raytheon.edex.plugin.radar/utility/common_static/base/radarInfo.txt
Normal file → Executable file
|
@ -171,5 +171,6 @@
|
|||
#???|256 | 0 | 0.25 | 230 | PRE | Inst Precip Rate | Radial | y | | | | Z | | | | |63 |
|
||||
166|0 |0 |0.0 |230 |ML |Melting Layer |{S} {T} Melting Layer |{S} {T} ML |Graphic|y | | | |Z | | | | |67 |
|
||||
170|256 |0 |0.25 |230 |DAA |One Hour Unbiased Accum |{S} Dual Pol Unbiased One Hour Accum ({U}) |{S} DAA |Radial | | | | |0.01S| | | | |69 |in/100
|
||||
500|8 |0 |0.463 |463 |HSR |Reflectivity |{S} Hybrid Scan Refl ({U}) |{S} HSR |Radial | | | | | | | | | |64 |dBZ
|
||||
550|8 |0 |0.926 |111 |HSR |Reflectivity |{S} Hybrid Scan Refl ({U}) |{S} HSR |Radial | | | | | | | | | |64 |dBZ
|
||||
196|0 |0 |0.0 | 50 |MBA |Microburst AMDA |{S} Microburst AMDA |{S} MBA |Graphic| | | | | | | | | |28 |
|
||||
500|8 |0 |0.463 |463 | Z |Reflectivity |{S} Reflectivity ({U}) |{S} Z |Radial | | | | | | | | | |64 |dBZ
|
||||
550|8 |0 |0.926 |111 | Z |Reflectivity |{S} Reflectivity ({U}) |{S} Z |Radial | | | | | | | | | |64 |dBZ
|
||||
|
|
|
@ -0,0 +1,259 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<colorMap>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.79607844" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.52156866" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
<color a="1.0" b="0.019607844" g="0.17254902" r="1.0"/>
|
||||
</colorMap>
|
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
||||
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
|
||||
This_software_product_contains_export-restricted_data_whose
|
||||
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
|
||||
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
|
||||
an_export_license_or_other_authorization.
|
||||
|
||||
Contractor_Name:________Raytheon_Company
|
||||
Contractor_Address:_____6825_Pine_Street,_Suite_340
|
||||
________________________Mail_Stop_B8
|
||||
________________________Omaha,_NE_68106
|
||||
________________________402.291.0100
|
||||
|
||||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<DerivedParameter abbreviation="CLGTN" name="Categorical Lightning Potential" unit=""/>
|
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
||||
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
|
||||
This_software_product_contains_export-restricted_data_whose
|
||||
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
|
||||
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
|
||||
an_export_license_or_other_authorization.
|
||||
|
||||
Contractor_Name:________Raytheon_Company
|
||||
Contractor_Address:_____6825_Pine_Street,_Suite_340
|
||||
________________________Mail_Stop_B8
|
||||
________________________Omaha,_NE_68106
|
||||
________________________402.291.0100
|
||||
|
||||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<DerivedParameter abbreviation="CLGTN" name="Categorical Lightning Potential" unit=""/>
|
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
||||
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
|
||||
This_software_product_contains_export-restricted_data_whose
|
||||
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
|
||||
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
|
||||
an_export_license_or_other_authorization.
|
||||
|
||||
Contractor_Name:________Raytheon_Company
|
||||
Contractor_Address:_____6825_Pine_Street,_Suite_340
|
||||
________________________Mail_Stop_B8
|
||||
________________________Omaha,_NE_68106
|
||||
________________________402.291.0100
|
||||
|
||||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<DerivedParameter abbreviation="CONVP" name="Categorical Convection Potential" unit=""/>
|
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
||||
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
|
||||
This_software_product_contains_export-restricted_data_whose
|
||||
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
|
||||
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
|
||||
an_export_license_or_other_authorization.
|
||||
|
||||
Contractor_Name:________Raytheon_Company
|
||||
Contractor_Address:_____6825_Pine_Street,_Suite_340
|
||||
________________________Mail_Stop_B8
|
||||
________________________Omaha,_NE_68106
|
||||
________________________402.291.0100
|
||||
|
||||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<DerivedParameter abbreviation="CONVP2hr" name="2hr Convection potential" unit="%"/>
|
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
||||
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
|
||||
This_software_product_contains_export-restricted_data_whose
|
||||
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
|
||||
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
|
||||
an_export_license_or_other_authorization.
|
||||
|
||||
Contractor_Name:________Raytheon_Company
|
||||
Contractor_Address:_____6825_Pine_Street,_Suite_340
|
||||
________________________Mail_Stop_B8
|
||||
________________________Omaha,_NE_68106
|
||||
________________________402.291.0100
|
||||
|
||||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<DerivedParameter abbreviation="PROCON" name="Probability of convection" unit="%"/>
|
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
||||
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
|
||||
This_software_product_contains_export-restricted_data_whose
|
||||
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
|
||||
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
|
||||
an_export_license_or_other_authorization.
|
||||
|
||||
Contractor_Name:________Raytheon_Company
|
||||
Contractor_Address:_____6825_Pine_Street,_Suite_340
|
||||
________________________Mail_Stop_B8
|
||||
________________________Omaha,_NE_68106
|
||||
________________________402.291.0100
|
||||
|
||||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<DerivedParameter abbreviation="PROCON2hr" name="2hr Convection probability" unit="%"/>
|
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
||||
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
|
||||
This_software_product_contains_export-restricted_data_whose
|
||||
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
|
||||
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
|
||||
an_export_license_or_other_authorization.
|
||||
|
||||
Contractor_Name:________Raytheon_Company
|
||||
Contractor_Address:_____6825_Pine_Street,_Suite_340
|
||||
________________________Mail_Stop_B8
|
||||
________________________Omaha,_NE_68106
|
||||
________________________402.291.0100
|
||||
|
||||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<DerivedParameter abbreviation="PROLGHT" name="Lightning probability" unit="%"/>
|
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
||||
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
|
||||
This_software_product_contains_export-restricted_data_whose
|
||||
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
|
||||
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
|
||||
an_export_license_or_other_authorization.
|
||||
|
||||
Contractor_Name:________Raytheon_Company
|
||||
Contractor_Address:_____6825_Pine_Street,_Suite_340
|
||||
________________________Mail_Stop_B8
|
||||
________________________Omaha,_NE_68106
|
||||
________________________402.291.0100
|
||||
|
||||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<DerivedParameter abbreviation="PROLGHT2hr" name="2hr Lightning probability" unit="%"/>
|
|
@ -352,4 +352,15 @@
|
|||
</list>
|
||||
</constructor-arg>
|
||||
</bean>
|
||||
|
||||
<bean factory-bean="radarPacketFactory" factory-method="registerGenericPacketType">
|
||||
<constructor-arg
|
||||
value="com.raytheon.uf.common.dataplugin.radar.level3.MBAPacket"
|
||||
type="java.lang.Class" />
|
||||
<constructor-arg>
|
||||
<list>
|
||||
<value>196</value>
|
||||
</list>
|
||||
</constructor-arg>
|
||||
</bean>
|
||||
</beans>
|
|
@ -27,6 +27,7 @@ import com.raytheon.uf.common.dataplugin.radar.level3.SymbologyPacket;
|
|||
import com.raytheon.uf.common.dataplugin.radar.level3.SymbologyPoint;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.DMDPacket.DMDAttributeIDs;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.GFMPacket.GFMAttributeIDs;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.MBAPacket.MBAAttributeIDs;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.StormIDPacket.StormIDPoint;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.generic.GenericDataComponent;
|
||||
import com.raytheon.uf.common.serialization.ISerializableObject;
|
||||
|
@ -44,6 +45,7 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
|
|||
* ------------ ---------- ----------- --------------------------
|
||||
* Feb 17, 2009 2000 askripsk Initial creation
|
||||
* 03/04/2013 DCS51 zwang Handle GFM product
|
||||
* 09/26/2014 DCS16776 zwang Handle AMDA product
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -305,6 +307,11 @@ public class RadarDataPoint implements ISerializableObject {
|
|||
stormID += ":";
|
||||
stormID += deltaT;
|
||||
}
|
||||
// MBA
|
||||
else if (type == 196) {
|
||||
stormID = point.getValue(MBAAttributeIDs.DETECT_ID
|
||||
.toString());
|
||||
}
|
||||
|
||||
if (!"".equalsIgnoreCase(stormID)) {
|
||||
this.stormID = stormID;
|
||||
|
|
|
@ -74,6 +74,7 @@ import com.raytheon.uf.common.dataplugin.radar.level3.HdaHailPacket.HdaHailPoint
|
|||
import com.raytheon.uf.common.dataplugin.radar.level3.Layer;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.LinkedContourVectorPacket;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.LinkedVectorPacket;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.MBAPacket;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.MesocyclonePacket;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.MesocyclonePacket.MesocyclonePoint;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.SCITDataPacket;
|
||||
|
@ -135,7 +136,7 @@ import com.vividsolutions.jts.geom.Coordinate;
|
|||
* Dec 18, 2013 16002 kshrestha Added logic to match all dBZ values in
|
||||
* the DHR with AWIPS1
|
||||
* Jun 11, 2014 2061 bsteffen Remove IDecoderGettable
|
||||
*
|
||||
* Nov 06, 2014 16776 zwang Handle AMDA product
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -1192,9 +1193,9 @@ public class RadarRecord extends PersistablePluginDataObject implements
|
|||
if (needToConvert) {
|
||||
Coordinate coor;
|
||||
|
||||
// for MIGFA, i/j unit is 1km, for other radar products, unit is
|
||||
// for MIGFA and AMDA, i/j unit is 1km, for other radar products, unit is
|
||||
// 1/4km
|
||||
if (type == 140) {
|
||||
if (type == 140 || type == 196) {
|
||||
coor = convertStormLatLon(i * 4.0, j * 4.0);
|
||||
} else {
|
||||
coor = convertStormLatLon(i, j);
|
||||
|
@ -1511,6 +1512,42 @@ public class RadarRecord extends PersistablePluginDataObject implements
|
|||
currFeature, convertLatLon);
|
||||
}
|
||||
continue PACKET;
|
||||
} else if (currPacket instanceof MBAPacket) {
|
||||
// Need to get each component/feature out and located the
|
||||
// thing
|
||||
MBAPacket packet = (MBAPacket) currPacket;
|
||||
|
||||
// need to convert x/y to lon/lat
|
||||
convertLatLon = true;
|
||||
|
||||
AreaComponent currFeature;
|
||||
for (GenericDataComponent currComponent : packet
|
||||
.getFeatures().values()) {
|
||||
currFeature = (AreaComponent) currComponent;
|
||||
|
||||
// Calculate the center point of the MBA cell
|
||||
double x, y;
|
||||
double totalX = 0.0;
|
||||
double totalY = 0.0;
|
||||
double centerX = 0.0;
|
||||
double centerY = 0.0;
|
||||
int numP = currFeature.getPoints().size();
|
||||
|
||||
for (int kk = 0; kk < numP; kk++) {
|
||||
x = currFeature.getPoints().get(kk).getCoordinate1();
|
||||
y = currFeature.getPoints().get(kk).getCoordinate2();
|
||||
totalX += x;
|
||||
totalY += y;
|
||||
}
|
||||
|
||||
if (numP != 0) {
|
||||
centerX = totalX / (double)numP;
|
||||
centerY = totalY / (double)numP;
|
||||
}
|
||||
addPacketData(centerX, centerY, type, RadarProductType.GENERIC,
|
||||
currFeature, convertLatLon);
|
||||
}
|
||||
continue PACKET;
|
||||
} else if (currPacket instanceof GenericDataPacket) {
|
||||
// Generic Packet will contain most of the data for the
|
||||
// product, so, in general, nothing probably needs to be
|
||||
|
|
|
@ -0,0 +1,226 @@
|
|||
/**
|
||||
* This software was developed and / or modified by Raytheon Company,
|
||||
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
*
|
||||
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
* This software product contains export-restricted data whose
|
||||
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
* to non-U.S. persons whether in the United States or abroad requires
|
||||
* an export license or other authorization.
|
||||
*
|
||||
* Contractor Name: Raytheon Company
|
||||
* Contractor Address: 6825 Pine Street, Suite 340
|
||||
* Mail Stop B8
|
||||
* Omaha, NE 68106
|
||||
* 402.291.0100
|
||||
*
|
||||
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
* further licensing information.
|
||||
**/
|
||||
package com.raytheon.uf.common.dataplugin.radar.level3;
|
||||
|
||||
import java.io.DataInputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.generic.GenericDataComponent;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.generic.GenericDataParameter;
|
||||
import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
|
||||
import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
|
||||
|
||||
/**
|
||||
* This is a MBA (Microburst AMDA) centric version of the Generic Packet
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* 09/26/2014 DCS 16776 zwang Initial creation
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author zwang
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
@DynamicSerialize
|
||||
public class MBAPacket extends GenericDataPacket {
|
||||
public static enum MBAAttributeIDs {
|
||||
DETECT_ID("detect_num"), DELTAV("deltav"), MAXWINDSPEED("maxWindSpeed"),
|
||||
MAXSHEAR("maxShear"), CATEGORY("category");
|
||||
|
||||
private String name;
|
||||
|
||||
private MBAAttributeIDs(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the name
|
||||
*/
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name
|
||||
* the name to set
|
||||
*/
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public static MBAAttributeIDs getAttribute(String name) {
|
||||
for (MBAAttributeIDs id : MBAAttributeIDs.values()) {
|
||||
if (name.equals(id.getName())) {
|
||||
return id;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
public static enum MBACategory {
|
||||
WindShear(0), Microburst(1), Macroburst(2), SpeedShear(3);
|
||||
|
||||
private final int catValue;
|
||||
|
||||
private MBACategory(int catValue) {
|
||||
this.catValue = catValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the catValue
|
||||
*/
|
||||
public int getCatValue() {
|
||||
return catValue;
|
||||
}
|
||||
|
||||
public static String getCatName(int cat) {
|
||||
for (MBACategory id : MBACategory.values()) {
|
||||
if (cat == id.getCatValue()) {
|
||||
return id.toString();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@DynamicSerializeElement
|
||||
private List<String> featureIDs;
|
||||
|
||||
// Organizes the components/features based on DETECT_ID
|
||||
@DynamicSerializeElement
|
||||
private HashMap<String, GenericDataComponent> features;
|
||||
|
||||
@DynamicSerializeElement
|
||||
private HashMap<String, GenericDataParameter> params;
|
||||
|
||||
public MBAPacket(int packetId, DataInputStream in) throws IOException {
|
||||
super(packetId, in);
|
||||
}
|
||||
|
||||
public MBAPacket() {
|
||||
}
|
||||
|
||||
public String getValue(String featureID, MBAAttributeIDs attributeID) {
|
||||
String rval = "";
|
||||
|
||||
rval = features.get(featureID).getValue(attributeID.toString());
|
||||
|
||||
return rval;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the featureIDs
|
||||
*/
|
||||
public List<String> getFeatureIDs() {
|
||||
return featureIDs;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param featureIDs
|
||||
* the featureIDs to set
|
||||
*/
|
||||
public void setFeatureIDs(List<String> featureIDs) {
|
||||
this.featureIDs = featureIDs;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the features
|
||||
*/
|
||||
public HashMap<String, GenericDataComponent> getFeatures() {
|
||||
return features;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param features
|
||||
* the features to set
|
||||
*/
|
||||
public void setFeatures(HashMap<String, GenericDataComponent> features) {
|
||||
this.features = features;
|
||||
}
|
||||
|
||||
public GenericDataComponent getFeature(String eventID) {
|
||||
GenericDataComponent rval = null;
|
||||
|
||||
rval = this.features.get(eventID);
|
||||
|
||||
return rval;
|
||||
}
|
||||
|
||||
public HashMap<String, GenericDataParameter> getParams() {
|
||||
return params;
|
||||
}
|
||||
|
||||
public void setParams(HashMap<String, GenericDataParameter> params) {
|
||||
this.params = params;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts the components to GFM Features and groups by gfmID
|
||||
*/
|
||||
private void groupFeatures() {
|
||||
features = new HashMap<String, GenericDataComponent>();
|
||||
featureIDs = new ArrayList<String>();
|
||||
params = new HashMap<String, GenericDataParameter>();
|
||||
String detectID = "";
|
||||
|
||||
for (GenericDataParameter param : parameters) {
|
||||
params.put(param.getId(), param);
|
||||
}
|
||||
// Get the DETECT_ID out of each component
|
||||
for (GenericDataComponent currFeature : components) {
|
||||
// Loop through the values for the DETECT_ID
|
||||
for (GenericDataParameter currParam : currFeature.getParameters()) {
|
||||
if (currParam.getId().equalsIgnoreCase(
|
||||
MBAAttributeIDs.DETECT_ID.toString()))
|
||||
detectID = currParam.getValue();
|
||||
}
|
||||
|
||||
features.put(detectID, currFeature);
|
||||
featureIDs.add(detectID);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void init(DataInputStream in) throws IOException {
|
||||
super.init(in);
|
||||
|
||||
// Relates all of the GFM feature based on the gfmID
|
||||
groupFeatures();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,258 @@
|
|||
<colorMap>
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
</colorMap>
|
|
@ -1,258 +1,259 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<colorMap>
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "0.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.611764705882" g = "0.611764705882" b = "0.611764705882" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "0.462745098039" g = "0.462745098039" b = "0.462745098039" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "1.0" g = "0.690196078431" b = "0.690196078431" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "1.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.564705882353" b = "1.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.98431372549" b = "0.564705882353" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.733333333333" b = "0.0" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.81568627451" g = "0.81568627451" b = "0.376470588235" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "0.823529411765" g = "0.517647058824" b = "0.517647058824" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "1.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.905882352941" g = "0.0" b = "1.0" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color r = "0.466666666667" g = "0.0" b = "0.490196078431" a = "1.0" />
|
||||
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.6117647" g="0.6117647" r="0.6117647"/>
|
||||
<color a="1.0" b="0.6117647" g="0.6117647" r="0.6117647"/>
|
||||
<color a="1.0" b="0.6117647" g="0.6117647" r="0.6117647"/>
|
||||
<color a="1.0" b="0.6117647" g="0.6117647" r="0.6117647"/>
|
||||
<color a="1.0" b="0.6117647" g="0.6117647" r="0.6117647"/>
|
||||
<color a="1.0" b="0.6117647" g="0.6117647" r="0.6117647"/>
|
||||
<color a="1.0" b="0.6117647" g="0.6117647" r="0.6117647"/>
|
||||
<color a="1.0" b="0.6117647" g="0.6117647" r="0.6117647"/>
|
||||
<color a="1.0" b="0.6117647" g="0.6117647" r="0.6117647"/>
|
||||
<color a="1.0" b="0.6117647" g="0.6117647" r="0.6117647"/>
|
||||
<color a="1.0" b="0.6117647" g="0.6117647" r="0.6117647"/>
|
||||
<color a="1.0" b="0.6117647" g="0.6117647" r="0.6117647"/>
|
||||
<color a="1.0" b="0.6117647" g="0.6117647" r="0.6117647"/>
|
||||
<color a="1.0" b="0.6117647" g="0.6117647" r="0.6117647"/>
|
||||
<color a="1.0" b="0.6117647" g="0.6117647" r="0.6117647"/>
|
||||
<color a="1.0" b="0.6117647" g="0.6117647" r="0.6117647"/>
|
||||
<color a="1.0" b="0.4627451" g="0.4627451" r="0.4627451"/>
|
||||
<color a="1.0" b="0.4627451" g="0.4627451" r="0.4627451"/>
|
||||
<color a="1.0" b="0.4627451" g="0.4627451" r="0.4627451"/>
|
||||
<color a="1.0" b="0.4627451" g="0.4627451" r="0.4627451"/>
|
||||
<color a="1.0" b="0.4627451" g="0.4627451" r="0.4627451"/>
|
||||
<color a="1.0" b="0.4627451" g="0.4627451" r="0.4627451"/>
|
||||
<color a="1.0" b="0.4627451" g="0.4627451" r="0.4627451"/>
|
||||
<color a="1.0" b="0.4627451" g="0.4627451" r="0.4627451"/>
|
||||
<color a="1.0" b="0.4627451" g="0.4627451" r="0.4627451"/>
|
||||
<color a="1.0" b="0.4627451" g="0.4627451" r="0.4627451"/>
|
||||
<color a="1.0" b="0.4627451" g="0.4627451" r="0.4627451"/>
|
||||
<color a="1.0" b="0.4627451" g="0.4627451" r="0.4627451"/>
|
||||
<color a="1.0" b="0.4627451" g="0.4627451" r="0.4627451"/>
|
||||
<color a="1.0" b="0.4627451" g="0.4627451" r="0.4627451"/>
|
||||
<color a="1.0" b="0.4627451" g="0.4627451" r="0.4627451"/>
|
||||
<color a="1.0" b="0.4627451" g="0.4627451" r="0.4627451"/>
|
||||
<color a="1.0" b="0.6901961" g="0.6901961" r="1.0"/>
|
||||
<color a="1.0" b="0.6901961" g="0.6901961" r="1.0"/>
|
||||
<color a="1.0" b="0.6901961" g="0.6901961" r="1.0"/>
|
||||
<color a="1.0" b="0.6901961" g="0.6901961" r="1.0"/>
|
||||
<color a="1.0" b="0.6901961" g="0.6901961" r="1.0"/>
|
||||
<color a="1.0" b="0.6901961" g="0.6901961" r="1.0"/>
|
||||
<color a="1.0" b="0.6901961" g="0.6901961" r="1.0"/>
|
||||
<color a="1.0" b="0.6901961" g="0.6901961" r="1.0"/>
|
||||
<color a="1.0" b="0.6901961" g="0.6901961" r="1.0"/>
|
||||
<color a="1.0" b="0.6901961" g="0.6901961" r="1.0"/>
|
||||
<color a="1.0" b="0.6901961" g="0.6901961" r="1.0"/>
|
||||
<color a="1.0" b="0.6901961" g="0.6901961" r="1.0"/>
|
||||
<color a="1.0" b="0.6901961" g="0.6901961" r="1.0"/>
|
||||
<color a="1.0" b="0.6901961" g="0.6901961" r="1.0"/>
|
||||
<color a="1.0" b="0.6901961" g="0.6901961" r="1.0"/>
|
||||
<color a="1.0" b="0.6901961" g="0.6901961" r="1.0"/>
|
||||
<color a="1.0" b="1.0" g="1.0" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="1.0" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="1.0" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="1.0" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="1.0" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="1.0" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="1.0" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="1.0" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="1.0" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="1.0" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="1.0" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="1.0" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="1.0" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="1.0" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="1.0" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="1.0" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="0.5647059" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="0.5647059" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="0.5647059" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="0.5647059" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="0.5647059" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="0.5647059" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="0.5647059" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="0.5647059" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="0.5647059" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="0.5647059" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="0.5647059" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="0.5647059" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="0.5647059" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="0.5647059" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="0.5647059" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="0.5647059" r="0.0"/>
|
||||
<color a="1.0" b="0.5647059" g="0.9843137" r="0.0"/>
|
||||
<color a="1.0" b="0.5647059" g="0.9843137" r="0.0"/>
|
||||
<color a="1.0" b="0.5647059" g="0.9843137" r="0.0"/>
|
||||
<color a="1.0" b="0.5647059" g="0.9843137" r="0.0"/>
|
||||
<color a="1.0" b="0.5647059" g="0.9843137" r="0.0"/>
|
||||
<color a="1.0" b="0.5647059" g="0.9843137" r="0.0"/>
|
||||
<color a="1.0" b="0.5647059" g="0.9843137" r="0.0"/>
|
||||
<color a="1.0" b="0.5647059" g="0.9843137" r="0.0"/>
|
||||
<color a="1.0" b="0.5647059" g="0.9843137" r="0.0"/>
|
||||
<color a="1.0" b="0.5647059" g="0.9843137" r="0.0"/>
|
||||
<color a="1.0" b="0.5647059" g="0.9843137" r="0.0"/>
|
||||
<color a="1.0" b="0.5647059" g="0.9843137" r="0.0"/>
|
||||
<color a="1.0" b="0.5647059" g="0.9843137" r="0.0"/>
|
||||
<color a="1.0" b="0.5647059" g="0.9843137" r="0.0"/>
|
||||
<color a="1.0" b="0.5647059" g="0.9843137" r="0.0"/>
|
||||
<color a="1.0" b="0.5647059" g="0.9843137" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.73333335" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.73333335" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.73333335" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.73333335" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.73333335" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.73333335" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.73333335" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.73333335" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.73333335" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.73333335" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.73333335" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.73333335" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.73333335" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.73333335" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.73333335" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.73333335" r="0.0"/>
|
||||
<color a="1.0" b="0.3764706" g="0.8156863" r="0.8156863"/>
|
||||
<color a="1.0" b="0.3764706" g="0.8156863" r="0.8156863"/>
|
||||
<color a="1.0" b="0.3764706" g="0.8156863" r="0.8156863"/>
|
||||
<color a="1.0" b="0.3764706" g="0.8156863" r="0.8156863"/>
|
||||
<color a="1.0" b="0.3764706" g="0.8156863" r="0.8156863"/>
|
||||
<color a="1.0" b="0.3764706" g="0.8156863" r="0.8156863"/>
|
||||
<color a="1.0" b="0.3764706" g="0.8156863" r="0.8156863"/>
|
||||
<color a="1.0" b="0.3764706" g="0.8156863" r="0.8156863"/>
|
||||
<color a="1.0" b="0.3764706" g="0.8156863" r="0.8156863"/>
|
||||
<color a="1.0" b="0.3764706" g="0.8156863" r="0.8156863"/>
|
||||
<color a="1.0" b="0.3764706" g="0.8156863" r="0.8156863"/>
|
||||
<color a="1.0" b="0.3764706" g="0.8156863" r="0.8156863"/>
|
||||
<color a="1.0" b="0.3764706" g="0.8156863" r="0.8156863"/>
|
||||
<color a="1.0" b="0.3764706" g="0.8156863" r="0.8156863"/>
|
||||
<color a="1.0" b="0.3764706" g="0.8156863" r="0.8156863"/>
|
||||
<color a="1.0" b="0.3764706" g="0.8156863" r="0.8156863"/>
|
||||
<color a="1.0" b="0.5176471" g="0.5176471" r="0.8235294"/>
|
||||
<color a="1.0" b="0.5176471" g="0.5176471" r="0.8235294"/>
|
||||
<color a="1.0" b="0.5176471" g="0.5176471" r="0.8235294"/>
|
||||
<color a="1.0" b="0.5176471" g="0.5176471" r="0.8235294"/>
|
||||
<color a="1.0" b="0.5176471" g="0.5176471" r="0.8235294"/>
|
||||
<color a="1.0" b="0.5176471" g="0.5176471" r="0.8235294"/>
|
||||
<color a="1.0" b="0.5176471" g="0.5176471" r="0.8235294"/>
|
||||
<color a="1.0" b="0.5176471" g="0.5176471" r="0.8235294"/>
|
||||
<color a="1.0" b="0.5176471" g="0.5176471" r="0.8235294"/>
|
||||
<color a="1.0" b="0.5176471" g="0.5176471" r="0.8235294"/>
|
||||
<color a="1.0" b="0.5176471" g="0.5176471" r="0.8235294"/>
|
||||
<color a="1.0" b="0.5176471" g="0.5176471" r="0.8235294"/>
|
||||
<color a="1.0" b="0.5176471" g="0.5176471" r="0.8235294"/>
|
||||
<color a="1.0" b="0.5176471" g="0.5176471" r="0.8235294"/>
|
||||
<color a="1.0" b="0.5176471" g="0.5176471" r="0.8235294"/>
|
||||
<color a="1.0" b="0.5176471" g="0.5176471" r="0.8235294"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="1.0"/>
|
||||
<color a="1.0" b="0.078431375" g="0.078431375" r="0.627451"/>
|
||||
<color a="1.0" b="0.078431375" g="0.078431375" r="0.627451"/>
|
||||
<color a="1.0" b="0.078431375" g="0.078431375" r="0.627451"/>
|
||||
<color a="1.0" b="0.078431375" g="0.078431375" r="0.627451"/>
|
||||
<color a="1.0" b="0.078431375" g="0.078431375" r="0.627451"/>
|
||||
<color a="1.0" b="0.078431375" g="0.078431375" r="0.627451"/>
|
||||
<color a="1.0" b="0.078431375" g="0.078431375" r="0.627451"/>
|
||||
<color a="1.0" b="0.078431375" g="0.078431375" r="0.627451"/>
|
||||
<color a="1.0" b="0.078431375" g="0.078431375" r="0.627451"/>
|
||||
<color a="1.0" b="0.078431375" g="0.078431375" r="0.627451"/>
|
||||
<color a="1.0" b="0.078431375" g="0.078431375" r="0.627451"/>
|
||||
<color a="1.0" b="0.078431375" g="0.078431375" r="0.627451"/>
|
||||
<color a="1.0" b="0.078431375" g="0.078431375" r="0.627451"/>
|
||||
<color a="1.0" b="0.078431375" g="0.078431375" r="0.627451"/>
|
||||
<color a="1.0" b="0.078431375" g="0.078431375" r="0.627451"/>
|
||||
<color a="1.0" b="0.078431375" g="0.078431375" r="0.627451"/>
|
||||
<color a="1.0" b="0.0" g="1.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="1.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="1.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="1.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="1.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="1.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="1.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="1.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="1.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="1.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="1.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="1.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="1.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="1.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="1.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="1.0" r="1.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="0.0" g="0.0" r="0.0"/>
|
||||
<color a="1.0" b="1.0" g="0.0" r="0.90588236"/>
|
||||
<color a="1.0" b="1.0" g="0.0" r="0.90588236"/>
|
||||
<color a="1.0" b="1.0" g="0.0" r="0.90588236"/>
|
||||
<color a="1.0" b="1.0" g="0.0" r="0.90588236"/>
|
||||
<color a="1.0" b="1.0" g="0.0" r="0.90588236"/>
|
||||
<color a="1.0" b="1.0" g="0.0" r="0.90588236"/>
|
||||
<color a="1.0" b="1.0" g="0.0" r="0.90588236"/>
|
||||
<color a="1.0" b="1.0" g="0.0" r="0.90588236"/>
|
||||
<color a="1.0" b="1.0" g="0.0" r="0.90588236"/>
|
||||
<color a="1.0" b="1.0" g="0.0" r="0.90588236"/>
|
||||
<color a="1.0" b="1.0" g="0.0" r="0.90588236"/>
|
||||
<color a="1.0" b="1.0" g="0.0" r="0.90588236"/>
|
||||
<color a="1.0" b="1.0" g="0.0" r="0.90588236"/>
|
||||
<color a="1.0" b="1.0" g="0.0" r="0.90588236"/>
|
||||
<color a="1.0" b="1.0" g="0.0" r="0.90588236"/>
|
||||
<color a="1.0" b="1.0" g="0.0" r="0.90588236"/>
|
||||
<color a="1.0" b="0.49019608" g="0.0" r="0.46666667"/>
|
||||
<color a="1.0" b="0.49019608" g="0.0" r="0.46666667"/>
|
||||
<color a="1.0" b="0.49019608" g="0.0" r="0.46666667"/>
|
||||
<color a="1.0" b="0.49019608" g="0.0" r="0.46666667"/>
|
||||
<color a="1.0" b="0.49019608" g="0.0" r="0.46666667"/>
|
||||
<color a="1.0" b="0.49019608" g="0.0" r="0.46666667"/>
|
||||
<color a="1.0" b="0.49019608" g="0.0" r="0.46666667"/>
|
||||
<color a="1.0" b="0.49019608" g="0.0" r="0.46666667"/>
|
||||
<color a="1.0" b="0.49019608" g="0.0" r="0.46666667"/>
|
||||
<color a="1.0" b="0.49019608" g="0.0" r="0.46666667"/>
|
||||
<color a="1.0" b="0.49019608" g="0.0" r="0.46666667"/>
|
||||
<color a="1.0" b="0.49019608" g="0.0" r="0.46666667"/>
|
||||
<color a="1.0" b="0.49019608" g="0.0" r="0.46666667"/>
|
||||
<color a="1.0" b="0.49019608" g="0.0" r="0.46666667"/>
|
||||
<color a="1.0" b="0.49019608" g="0.0" r="0.46666667"/>
|
||||
<color a="1.0" b="0.49019608" g="0.0" r="0.46666667"/>
|
||||
</colorMap>
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue