VLab Issue #4001 - NCEP EDEX and EDEX Common delivery for 14.2.1-n
Fixes for Vors, Ncuair, and pressure change Change-Id: I11d77f5b359e3f73317a46ecf9addf81079c1616 Former-commit-id: a05e1a8190d28f3d09e373b8d8c5f46829bbc9e8
This commit is contained in:
parent
929305ce1d
commit
11d21bbe95
14 changed files with 3435 additions and 2708 deletions
|
@ -313,7 +313,7 @@ COPY stns.VORS(PKEY, STATION_ID, STATION_NUM, NAME, STATE, COUNTRY, LATITUDE, LO
|
|||
312,RBL,225,RED_BLUFF,CA,US,40.1,-122.24
|
||||
313,SEA,243,SEATTLE,WA,US,47.44,-122.31
|
||||
314,HUH,35,WHATCOM,WA,US,48.95,-122.58
|
||||
315,PDX,208,PORTLAND,OR,US,45.58,-122.6
|
||||
315,BTG,208,BATTLE_GROUND,WA,US,45.75,-122.59
|
||||
316,PYE,371,POINT_REYES,CA,US,38.08,-122.87
|
||||
317,OED,362,MEDFORD,OR,US,42.48,-122.91
|
||||
318,EUG,93,EUGENE,OR,US,44.12,-123.22
|
||||
|
|
|
@ -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.
|
||||
-->
|
||||
<lambertConformalGridCoverage>
|
||||
<name>14731025001</name>
|
||||
<description>HIRES - 5 km Western US</description>
|
||||
<la1>12.19</la1>
|
||||
<lo1>-133.459</lo1>
|
||||
<firstGridPointCorner>LowerLeft</firstGridPointCorner>
|
||||
<nx>1473</nx>
|
||||
<ny>1025</ny>
|
||||
<dx>5.079</dx>
|
||||
<dy>5.079</dy>
|
||||
<spacingUnit>km</spacingUnit>
|
||||
<minorAxis>6371229.0</minorAxis>
|
||||
<majorAxis>6371229.0</majorAxis>
|
||||
<lov>-95.0</lov>
|
||||
<latin1>25.</latin1>
|
||||
<latin2>25.</latin2>
|
||||
</lambertConformalGridCoverage>
|
|
@ -1435,6 +1435,26 @@
|
|||
</process>
|
||||
</model>
|
||||
|
||||
<model>
|
||||
<name>HiResW-NMM-US</name>
|
||||
<center>7</center>
|
||||
<subcenter>0</subcenter>
|
||||
<grid>14731025001</grid>
|
||||
<process>
|
||||
<id>112</id>
|
||||
</process>
|
||||
</model>
|
||||
|
||||
<model>
|
||||
<name>HiResW-ARW-US</name>
|
||||
<center>7</center>
|
||||
<subcenter>0</subcenter>
|
||||
<grid>14731025001</grid>
|
||||
<process>
|
||||
<id>116</id>
|
||||
</process>
|
||||
</model>
|
||||
|
||||
<model>
|
||||
<name>HiResW-NMM-East</name>
|
||||
<center>7</center>
|
||||
|
|
|
@ -41,7 +41,7 @@ return query.execute()'''
|
|||
|
||||
if not ch.isGoodStatus():
|
||||
print ch.formatResponse()
|
||||
exit(1)
|
||||
exit(1)
|
||||
|
||||
return self.__generateMap( ch.getContents() )
|
||||
|
||||
|
@ -147,19 +147,19 @@ query.addReturnedField("dataTime.refTime")
|
|||
return query.execute()'''.format(atype,label)
|
||||
|
||||
|
||||
service = '/services/pyproductjaxb'
|
||||
host = os.getenv("DEFAULT_HOST", "localhost")
|
||||
port = os.getenv("DEFAULT_PORT", "9581")
|
||||
connection=str(host+":"+port)
|
||||
ch = CH.CommHandler(connection,service)
|
||||
ch.process(script)
|
||||
service = '/services/pyproductjaxb'
|
||||
host = os.getenv("DEFAULT_HOST", "localhost")
|
||||
port = os.getenv("DEFAULT_PORT", "9581")
|
||||
connection=str(host+":"+port)
|
||||
ch = CH.CommHandler(connection,service)
|
||||
ch.process(script)
|
||||
|
||||
if not ch.isGoodStatus():
|
||||
if not ch.isGoodStatus():
|
||||
print ch.formatResponse()
|
||||
exit(1)
|
||||
|
||||
logger.debug( ch.getContents() )
|
||||
return __parseResponse( ch.getContents() )
|
||||
logger.debug( ch.getContents() )
|
||||
return __parseResponse( ch.getContents() )
|
||||
|
||||
#
|
||||
# Parses the XML response from the uEngine and extracts
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
* remove xml serialization as well *
|
||||
* 10/2011 S. Gurung Added changes related to getting stid/lat/lon/elev
|
||||
* from database instead of snstns.xml file
|
||||
*
|
||||
* 6/2014 T.Lee Added support XXAA, XXBB, XXCC, XXDD
|
||||
* </pre>
|
||||
*
|
||||
* This code has been developed by the SIB for use in the AWIPS2 system.
|
||||
|
@ -26,6 +26,12 @@
|
|||
|
||||
package gov.noaa.nws.ncep.common.dataplugin.ncuair.dao;
|
||||
|
||||
import gov.noaa.nws.ncep.common.dataplugin.ncuair.NcUairLiftedIndex;
|
||||
import gov.noaa.nws.ncep.common.dataplugin.ncuair.NcUairMaxWind;
|
||||
import gov.noaa.nws.ncep.common.dataplugin.ncuair.NcUairObsLevels;
|
||||
import gov.noaa.nws.ncep.common.dataplugin.ncuair.NcUairRecord;
|
||||
import gov.noaa.nws.ncep.common.dataplugin.ncuair.NcUairTropopause;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
|
@ -37,109 +43,213 @@ import com.raytheon.uf.common.pointdata.PointDataContainer;
|
|||
import com.raytheon.uf.common.pointdata.PointDataDescription;
|
||||
import com.raytheon.uf.common.pointdata.PointDataView;
|
||||
|
||||
import gov.noaa.nws.ncep.common.dataplugin.ncuair.NcUairLiftedIndex;
|
||||
import gov.noaa.nws.ncep.common.dataplugin.ncuair.NcUairMaxWind;
|
||||
import gov.noaa.nws.ncep.common.dataplugin.ncuair.NcUairObsLevels;
|
||||
import gov.noaa.nws.ncep.common.dataplugin.ncuair.NcUairTropopause;
|
||||
import gov.noaa.nws.ncep.common.dataplugin.ncuair.NcUairRecord;
|
||||
|
||||
public class NcUairToPointData {
|
||||
private static final String RAW_DATA = "RAWDATA";
|
||||
private static final String RAW_DATA = "RAWDATA";
|
||||
|
||||
private static final String UTC = "UTC";
|
||||
|
||||
private static final String REPORT_TYPE = "REPORTTYPE";
|
||||
|
||||
private static final String STATION_ID = "STATIONID";
|
||||
|
||||
private static final String ISSUE_TIME = "ISSUETIME";
|
||||
private static final String OBS_TIME = "OBSTIME";
|
||||
|
||||
private static final String OBS_TIME = "OBSTIME";
|
||||
|
||||
private static final String SYNOPTIC_TIME = "SYNOPTIME";
|
||||
|
||||
private static final String DATAURI = "DATAURI";
|
||||
private static final String DATA_TYPE = "DATATYPE";
|
||||
|
||||
private static final String DATA_TYPE = "DATATYPE";
|
||||
|
||||
private static final String CORRECTION_INDICATOR = "CORR";
|
||||
|
||||
private static final String WMO_HEADER = "WMOHEADER";
|
||||
|
||||
private static final String STATION_NUMBER = "STNUM";
|
||||
|
||||
private static final String LATITUDE = "LATITUDE";
|
||||
|
||||
private static final String LONGITUDE = "LONGITUDE";
|
||||
|
||||
private static final String ELEVATION = "ELEVATION";
|
||||
|
||||
private static final String NIL = "NIL";
|
||||
|
||||
private static final String TTAA_PRES = "TTAA_PRES";
|
||||
|
||||
private static final String TTAA_TEMP = "TTAA_TEMP";
|
||||
|
||||
private static final String TTAA_DWPT = "TTAA_DWPT";
|
||||
|
||||
private static final String TTAA_DRCT = "TTAA_DRCT";
|
||||
|
||||
private static final String TTAA_SPED = "TTAA_SPED";
|
||||
|
||||
private static final String TTAA_HGHT = "TTAA_HGHT";
|
||||
|
||||
private static final String TTBB_PRES = "TTBB_PRES";
|
||||
|
||||
private static final String TTBB_TEMP = "TTBB_TEMP";
|
||||
|
||||
private static final String TTBB_DWPT = "TTBB_DWPT";
|
||||
|
||||
private static final String TTCC_PRES = "TTCC_PRES";
|
||||
|
||||
private static final String TTCC_TEMP = "TTCC_TEMP";
|
||||
|
||||
private static final String TTCC_DWPT = "TTCC_DWPT";
|
||||
|
||||
private static final String TTCC_DRCT = "TTCC_DRCT";
|
||||
|
||||
private static final String TTCC_SPED = "TTCC_SPED";
|
||||
|
||||
private static final String TTCC_HGHT = "TTCC_HGHT";
|
||||
|
||||
private static final String TTDD_PRES = "TTDD_PRES";
|
||||
|
||||
private static final String TTDD_TEMP = "TTDD_TEMP";
|
||||
|
||||
private static final String TTDD_DWPT = "TTDD_DWPT";
|
||||
|
||||
private static final String PPAA_PRES = "PPAA_PRES";
|
||||
|
||||
private static final String PPAA_TEMP = "PPAA_TEMP";
|
||||
|
||||
private static final String PPAA_DWPT = "PPAA_DWPT";
|
||||
private static final String PPAA_DRCT = "PPAA_DRCT";
|
||||
private static final String PPAA_SPED = "PPAA_SPED";
|
||||
|
||||
private static final String PPAA_DRCT = "PPAA_DRCT";
|
||||
|
||||
private static final String PPAA_SPED = "PPAA_SPED";
|
||||
|
||||
private static final String PPAA_HGHT = "PPAA_HGHT";
|
||||
|
||||
private static final String PPBB_DRCT = "PPBB_DRCT";
|
||||
|
||||
private static final String PPBB_SPED = "PPBB_SPED";
|
||||
|
||||
private static final String PPBB_HGHT = "PPBB_HGHT";
|
||||
|
||||
private static final String PPCC_PRES = "PPCC_PRES";
|
||||
|
||||
private static final String PPCC_TEMP = "PPCC_TEMP";
|
||||
|
||||
private static final String PPCC_DWPT = "PPCC_DWPT";
|
||||
|
||||
private static final String PPCC_DRCT = "PPCC_DRCT";
|
||||
|
||||
private static final String PPCC_SPED = "PPCC_SPED";
|
||||
|
||||
private static final String PPCC_HGHT = "PPCC_HGHT";
|
||||
|
||||
private static final String PPDD_DRCT = "PPDD_DRCT";
|
||||
|
||||
private static final String PPDD_SPED = "PPDD_SPED";
|
||||
|
||||
private static final String PPDD_HGHT = "PPDD_HGHT";
|
||||
|
||||
private static final String TROP_PRES = "TROP_PRES";
|
||||
|
||||
private static final String TROP_TEMP = "TROP_TEMP";
|
||||
|
||||
private static final String TROP_DWPT = "TROP_DWPT";
|
||||
|
||||
private static final String TROP_DRCT = "TROP_DRCT";
|
||||
|
||||
private static final String TROP_SPED = "TROP_SPED";
|
||||
|
||||
private static final String WMAX_PRES = "WMAX_PRES";
|
||||
|
||||
private static final String WMAX_DRCT = "WMAX_DRCT";
|
||||
|
||||
private static final String WMAX_SPED = "WMAX_SPED";
|
||||
|
||||
private static final String WMAX_LO_SHEAR = "WMAX_LO_SHEAR";
|
||||
|
||||
private static final String WMAX_HI_SHEAR = "WMAX_HI_SHEAR";
|
||||
|
||||
private static final String TTAA_LIFT = "TTAA_LIFT";
|
||||
|
||||
private static final String TTAA_LO_MEAN_DRCT = "TTAA_LO_MEAN_DRCT";
|
||||
|
||||
private static final String TTAA_LO_MEAN_SPED = "TTAA_LO_MEAN_SPED";
|
||||
|
||||
private static final String TTAA_HI_MEAN_DRCT = "TTAA_HI_MEAN_DRCT";
|
||||
|
||||
private static final String TTAA_HI_MEAN_SPED = "TTAA_HI_MEAN_SPED";
|
||||
|
||||
private static final String TTBB_LIFT = "TTBB_LIFT";
|
||||
|
||||
private static final String TTBB_LO_MEAN_DRCT = "TTBB_LO_MEAN_DRCT";
|
||||
|
||||
private static final String TTBB_LO_MEAN_SPED = "TTBB_LO_MEAN_SPED";
|
||||
|
||||
private static final String TTBB_HI_MEAN_DRCT = "TTBB_HI_MEAN_DRCT";
|
||||
|
||||
private static final String TTBB_HI_MEAN_SPED = "TTBB_HI_MEAN_SPED";
|
||||
|
||||
private enum REPORTTYPE {TTAA, TTBB, TTCC, TTDD, PPAA, PPBB, PPCC, PPDD,
|
||||
UUAA, UUBB, UUCC, UUDD, XXAA, XXBB, XXCC, XXDD};
|
||||
|
||||
private static final String XXAA_PRES = "XXAA_PRES";
|
||||
|
||||
private static final String XXAA_TEMP = "XXAA_TEMP";
|
||||
|
||||
private static final String XXAA_DWPT = "XXAA_DWPT";
|
||||
|
||||
private static final String XXAA_DRCT = "XXAA_DRCT";
|
||||
|
||||
private static final String XXAA_SPED = "XXAA_SPED";
|
||||
|
||||
private static final String XXAA_HGHT = "XXAA_HGHT";
|
||||
|
||||
private static final String XXBB_PRES = "XXBB_PRES";
|
||||
|
||||
private static final String XXBB_TEMP = "XXBB_TEMP";
|
||||
|
||||
private static final String XXBB_DWPT = "XXBB_DWPT";
|
||||
|
||||
private static final String XXCC_PRES = "XXCC_PRES";
|
||||
|
||||
private static final String XXCC_TEMP = "XXCC_TEMP";
|
||||
|
||||
private static final String XXCC_DWPT = "XXCC_DWPT";
|
||||
|
||||
private static final String XXCC_DRCT = "XXCC_DRCT";
|
||||
|
||||
private static final String XXCC_SPED = "XXCC_SPED";
|
||||
|
||||
private static final String XXCC_HGHT = "XXCC_HGHT";
|
||||
|
||||
private static final String XXDD_PRES = "XXDD_PRES";
|
||||
|
||||
private static final String XXDD_TEMP = "XXDD_TEMP";
|
||||
|
||||
private static final String XXDD_DWPT = "XXDD_DWPT";
|
||||
|
||||
private enum REPORTTYPE {
|
||||
TTAA, TTBB, TTCC, TTDD, PPAA, PPBB, PPCC, PPDD, UUAA, UUBB, UUCC, UUDD, XXAA, XXBB, XXCC, XXDD
|
||||
};
|
||||
|
||||
/**
|
||||
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! It is important to
|
||||
* keep this up to date or risk breaking backwards compatibility
|
||||
* uu
|
||||
* keep this up to date or risk breaking backwards compatibility uu
|
||||
*/
|
||||
private static final String[] ALL_PARAMS = { RAW_DATA, UTC, REPORT_TYPE, STATION_ID,
|
||||
ISSUE_TIME, OBS_TIME, SYNOPTIC_TIME, DATAURI, DATA_TYPE, CORRECTION_INDICATOR,
|
||||
WMO_HEADER, STATION_NUMBER, LATITUDE, LONGITUDE, ELEVATION, NIL,
|
||||
TTAA_PRES, TTAA_TEMP, TTAA_DWPT, TTAA_DRCT, TTAA_SPED, TTAA_HGHT,
|
||||
TTBB_PRES, TTBB_TEMP, TTBB_DWPT,
|
||||
TTCC_PRES, TTCC_TEMP, TTCC_DWPT, TTCC_DRCT, TTCC_SPED, TTCC_HGHT,
|
||||
TTDD_PRES, TTDD_TEMP, TTDD_DWPT,
|
||||
PPAA_PRES, PPAA_TEMP, PPAA_DWPT, PPAA_DRCT, PPAA_SPED, PPAA_HGHT,
|
||||
PPBB_DRCT, PPBB_SPED, PPBB_HGHT,
|
||||
PPCC_PRES, PPCC_TEMP, PPCC_DWPT, PPCC_DRCT, PPCC_SPED, PPCC_HGHT,
|
||||
PPDD_DRCT, PPDD_SPED, PPDD_HGHT,
|
||||
TROP_PRES, TROP_TEMP, TROP_DWPT, TROP_DRCT, TROP_SPED, WMAX_PRES,
|
||||
WMAX_DRCT, WMAX_SPED, WMAX_LO_SHEAR, WMAX_HI_SHEAR,
|
||||
TTAA_LIFT, TTAA_LO_MEAN_DRCT, TTAA_LO_MEAN_SPED, TTAA_HI_MEAN_DRCT, TTAA_HI_MEAN_SPED,
|
||||
TTBB_LIFT, TTBB_LO_MEAN_DRCT, TTBB_LO_MEAN_SPED, TTBB_HI_MEAN_DRCT, TTAA_HI_MEAN_SPED,};
|
||||
private static final String[] ALL_PARAMS = { RAW_DATA, UTC, REPORT_TYPE,
|
||||
STATION_ID, ISSUE_TIME, OBS_TIME, SYNOPTIC_TIME, DATAURI,
|
||||
DATA_TYPE, CORRECTION_INDICATOR, WMO_HEADER, STATION_NUMBER,
|
||||
LATITUDE, LONGITUDE, ELEVATION, NIL, TTAA_PRES, TTAA_TEMP,
|
||||
TTAA_DWPT, TTAA_DRCT, TTAA_SPED, TTAA_HGHT, TTBB_PRES, TTBB_TEMP,
|
||||
TTBB_DWPT, TTCC_PRES, TTCC_TEMP, TTCC_DWPT, TTCC_DRCT, TTCC_SPED,
|
||||
TTCC_HGHT, TTDD_PRES, TTDD_TEMP, TTDD_DWPT, PPAA_PRES, PPAA_TEMP,
|
||||
PPAA_DWPT, PPAA_DRCT, PPAA_SPED, PPAA_HGHT, PPBB_DRCT, PPBB_SPED,
|
||||
PPBB_HGHT, PPCC_PRES, PPCC_TEMP, PPCC_DWPT, PPCC_DRCT, PPCC_SPED,
|
||||
PPCC_HGHT, PPDD_DRCT, PPDD_SPED, PPDD_HGHT, TROP_PRES, TROP_TEMP,
|
||||
TROP_DWPT, TROP_DRCT, TROP_SPED, WMAX_PRES, WMAX_DRCT, WMAX_SPED,
|
||||
WMAX_LO_SHEAR, WMAX_HI_SHEAR, TTAA_LIFT, TTAA_LO_MEAN_DRCT,
|
||||
TTAA_LO_MEAN_SPED, TTAA_HI_MEAN_DRCT, TTAA_HI_MEAN_SPED, TTBB_LIFT,
|
||||
TTBB_LO_MEAN_DRCT, TTBB_LO_MEAN_SPED, TTBB_HI_MEAN_DRCT,
|
||||
TTAA_HI_MEAN_SPED, XXAA_PRES, XXAA_TEMP, XXAA_DWPT, XXAA_DRCT,
|
||||
XXAA_SPED, XXAA_HGHT, XXBB_PRES, XXBB_TEMP, XXBB_DWPT, XXCC_PRES,
|
||||
XXCC_TEMP, XXCC_DWPT, XXCC_DRCT, XXCC_SPED, XXCC_HGHT, XXDD_PRES,
|
||||
XXDD_TEMP, XXDD_DWPT };
|
||||
|
||||
public static final String ALL_PARAMS_LIST;
|
||||
static {
|
||||
|
@ -171,8 +281,9 @@ public class NcUairToPointData {
|
|||
}
|
||||
|
||||
public PluginDataObject[] toPointData(PluginDataObject[] pdo) {
|
||||
//long curTime = System.currentTimeMillis();
|
||||
//System.out.println("H5 uair toPointData entered, pdo size = "+ pdo.length);
|
||||
// long curTime = System.currentTimeMillis();
|
||||
// System.out.println("H5 uair toPointData entered, pdo size = "+
|
||||
// pdo.length);
|
||||
if (pdo.length > 0) {
|
||||
Map<File, PointDataContainer> pointMap = new HashMap<File, PointDataContainer>();
|
||||
|
||||
|
@ -181,7 +292,7 @@ public class NcUairToPointData {
|
|||
continue;
|
||||
File f = this.dao.getFullFilePath(p);
|
||||
PointDataContainer pdc = pointMap.get(f);
|
||||
|
||||
|
||||
if (pdc == null) {
|
||||
pdc = PointDataContainer.build(this.pdd);
|
||||
pointMap.put(f, pdc);
|
||||
|
@ -189,310 +300,389 @@ public class NcUairToPointData {
|
|||
NcUairRecord mr = (NcUairRecord) p;
|
||||
PointDataView pdv = buildView(pdc, mr);
|
||||
mr.setPointDataView(pdv);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
//long enqueueTime = System.currentTimeMillis();
|
||||
//double latency = (enqueueTime-curTime) ;
|
||||
//System.out.println("H5 uair toPointData spend "+ latency);
|
||||
// long enqueueTime = System.currentTimeMillis();
|
||||
// double latency = (enqueueTime-curTime) ;
|
||||
// System.out.println("H5 uair toPointData spend "+ latency);
|
||||
return pdo;
|
||||
}
|
||||
|
||||
|
||||
private PointDataView buildView(PointDataContainer container,
|
||||
NcUairRecord record) {
|
||||
|
||||
PointDataView pdv = container.append();
|
||||
pdv.setString(STATION_ID, record.getStationId());
|
||||
|
||||
|
||||
int maxManLevel = -1;
|
||||
int maxSigTempLevel = -1;
|
||||
int maxSigWindLevel = -1;
|
||||
int maxWmaxLevel = -1;
|
||||
int maxTropLevel = -1;
|
||||
int maxMiscLevel = -1;
|
||||
|
||||
Dimension [] dims = pdd.dimensions;
|
||||
for(Dimension d : dims) {
|
||||
|
||||
if("maxManLevel".equals(d.getDimensionName())) {
|
||||
Dimension[] dims = pdd.dimensions;
|
||||
for (Dimension d : dims) {
|
||||
|
||||
if ("maxManLevel".equals(d.getDimensionName())) {
|
||||
maxManLevel = d.getDimensionLength();
|
||||
}
|
||||
|
||||
if("maxSigTempLevel".equals(d.getDimensionName())) {
|
||||
|
||||
if ("maxSigTempLevel".equals(d.getDimensionName())) {
|
||||
maxSigTempLevel = d.getDimensionLength();
|
||||
}
|
||||
|
||||
if("maxSigWindLevel".equals(d.getDimensionName())) {
|
||||
|
||||
if ("maxSigWindLevel".equals(d.getDimensionName())) {
|
||||
maxSigWindLevel = d.getDimensionLength();
|
||||
}
|
||||
|
||||
if("maxWmaxLevel".equals(d.getDimensionName())) {
|
||||
|
||||
if ("maxWmaxLevel".equals(d.getDimensionName())) {
|
||||
maxWmaxLevel = d.getDimensionLength();
|
||||
}
|
||||
|
||||
if("maxTropLevel".equals(d.getDimensionName())) {
|
||||
|
||||
if ("maxTropLevel".equals(d.getDimensionName())) {
|
||||
maxTropLevel = d.getDimensionLength();
|
||||
}
|
||||
|
||||
if("maxMiscLevel".equals(d.getDimensionName())) {
|
||||
|
||||
if ("maxMiscLevel".equals(d.getDimensionName())) {
|
||||
maxMiscLevel = d.getDimensionLength();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (record.getCorr() != null) {
|
||||
pdv.setString(CORRECTION_INDICATOR,record.getCorr());
|
||||
pdv.setString(CORRECTION_INDICATOR, record.getCorr());
|
||||
} else {
|
||||
pdv.setString(CORRECTION_INDICATOR, "");
|
||||
}
|
||||
|
||||
if (record.getLocation()!=null) {
|
||||
pdv.setFloat(LATITUDE, (float) record.getLatitude());
|
||||
pdv.setFloat(LONGITUDE, (float) record.getLongitude());
|
||||
if(record.getElevation()!=null)
|
||||
pdv.setFloat(ELEVATION, (float) record.getElevation());
|
||||
if (record.getLocation() != null) {
|
||||
pdv.setFloat(LATITUDE, (float) record.getLatitude());
|
||||
pdv.setFloat(LONGITUDE, (float) record.getLongitude());
|
||||
if (record.getElevation() != null)
|
||||
pdv.setFloat(ELEVATION, (float) record.getElevation());
|
||||
}
|
||||
if(record.getObsTime()!=null)
|
||||
pdv.setLong(OBS_TIME, record.getObsTime().getTime().getTime());
|
||||
if(record.getSynopticTime()!=null)
|
||||
pdv.setLong(SYNOPTIC_TIME, record.getSynopticTime().getTime().getTime());
|
||||
if(record.getIssueTime()!=null)
|
||||
pdv.setLong(ISSUE_TIME, record.getIssueTime().getTime().getTime());
|
||||
pdv.setString(DATAURI, record.getDataURI());
|
||||
pdv.setString(DATA_TYPE, record.getDataType());
|
||||
if (record.getObsTime() != null)
|
||||
pdv.setLong(OBS_TIME, record.getObsTime().getTime().getTime());
|
||||
if (record.getSynopticTime() != null)
|
||||
pdv.setLong(SYNOPTIC_TIME, record.getSynopticTime().getTime()
|
||||
.getTime());
|
||||
if (record.getIssueTime() != null)
|
||||
pdv.setLong(ISSUE_TIME, record.getIssueTime().getTime().getTime());
|
||||
pdv.setString(DATAURI, record.getDataURI());
|
||||
pdv.setString(DATA_TYPE, record.getDataType());
|
||||
pdv.setString(REPORT_TYPE, record.getReportType());
|
||||
pdv.setString(WMO_HEADER, record.getWmoHeader());
|
||||
pdv.setString(STATION_NUMBER, record.getStnum());
|
||||
if(record.getNil()!=null)
|
||||
pdv.setString(NIL, record.getNil().toString());
|
||||
if (record.getNil() != null)
|
||||
pdv.setString(NIL, record.getNil().toString());
|
||||
pdv.setInt(UTC, record.getUTC());
|
||||
pdv.setString(RAW_DATA, record.getBullMessage());
|
||||
int index;
|
||||
|
||||
if ( record.getObsLevels() != null ) {
|
||||
|
||||
if (record.getObsLevels() != null) {
|
||||
Iterator<NcUairObsLevels> sls = record.getObsLevels().iterator();
|
||||
switch ( REPORTTYPE.valueOf(record.getDataType()) ) {
|
||||
|
||||
switch (REPORTTYPE.valueOf(record.getDataType())) {
|
||||
|
||||
case TTAA:
|
||||
case UUAA:
|
||||
case XXAA:
|
||||
|
||||
index = 0;
|
||||
if (sls !=null ) {
|
||||
while (sls.hasNext()) {
|
||||
NcUairObsLevels sl = sls.next();
|
||||
if ( sl.getPres() > 0 && index < maxManLevel ) {
|
||||
pdv.setFloat(TTAA_PRES, sl.getPres(), index);
|
||||
pdv.setFloat(TTAA_HGHT, sl.getHght(), index);
|
||||
pdv.setFloat(TTAA_TEMP, sl.getTemp(), index);
|
||||
pdv.setFloat(TTAA_DWPT, sl.getDwpt(), index);
|
||||
pdv.setFloat(TTAA_DRCT, sl.getDrct(), index);
|
||||
pdv.setFloat(TTAA_SPED, sl.getSped(), index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
pdv.setInt("numTTAA", index);
|
||||
if (sls != null) {
|
||||
while (sls.hasNext()) {
|
||||
NcUairObsLevels sl = sls.next();
|
||||
if (sl.getPres() > 0 && index < maxManLevel) {
|
||||
pdv.setFloat(TTAA_PRES, sl.getPres(), index);
|
||||
pdv.setFloat(TTAA_HGHT, sl.getHght(), index);
|
||||
pdv.setFloat(TTAA_TEMP, sl.getTemp(), index);
|
||||
pdv.setFloat(TTAA_DWPT, sl.getDwpt(), index);
|
||||
pdv.setFloat(TTAA_DRCT, sl.getDrct(), index);
|
||||
pdv.setFloat(TTAA_SPED, sl.getSped(), index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
pdv.setInt("numTTAA", index);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case TTBB:
|
||||
case XXAA:
|
||||
index = 0;
|
||||
if (sls != null) {
|
||||
while (sls.hasNext()) {
|
||||
NcUairObsLevels sl = sls.next();
|
||||
if (sl.getPres() > 0 && index < maxManLevel) {
|
||||
pdv.setFloat(XXAA_PRES, sl.getPres(), index);
|
||||
pdv.setFloat(XXAA_HGHT, sl.getHght(), index);
|
||||
pdv.setFloat(XXAA_TEMP, sl.getTemp(), index);
|
||||
pdv.setFloat(XXAA_DWPT, sl.getDwpt(), index);
|
||||
pdv.setFloat(XXAA_DRCT, sl.getDrct(), index);
|
||||
pdv.setFloat(XXAA_SPED, sl.getSped(), index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
pdv.setInt("numXXAA", index);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case TTBB:
|
||||
case UUBB:
|
||||
|
||||
index = 0;
|
||||
if (sls != null) {
|
||||
while (sls.hasNext()) {
|
||||
NcUairObsLevels sl = sls.next();
|
||||
if (sl.getPres() > 0 && index < maxSigTempLevel) {
|
||||
pdv.setFloat(TTBB_PRES, sl.getPres(), index);
|
||||
pdv.setFloat(TTBB_TEMP, sl.getTemp(), index);
|
||||
pdv.setFloat(TTBB_DWPT, sl.getDwpt(), index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
pdv.setInt("numTTBB", index);
|
||||
}
|
||||
break;
|
||||
case XXBB:
|
||||
index = 0;
|
||||
if ( sls != null ) {
|
||||
while (sls.hasNext() ) {
|
||||
NcUairObsLevels sl = sls.next();
|
||||
if ( sl.getPres() > 0 && index < maxSigTempLevel ) {
|
||||
pdv.setFloat(TTBB_PRES, sl.getPres(), index);
|
||||
pdv.setFloat(TTBB_TEMP, sl.getTemp(), index);
|
||||
pdv.setFloat(TTBB_DWPT, sl.getDwpt(), index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
pdv.setInt("numTTBB", index);
|
||||
}
|
||||
break;
|
||||
|
||||
index = 0;
|
||||
if (sls != null) {
|
||||
while (sls.hasNext()) {
|
||||
NcUairObsLevels sl = sls.next();
|
||||
if (sl.getPres() > 0 && index < maxSigTempLevel) {
|
||||
pdv.setFloat(XXBB_PRES, sl.getPres(), index);
|
||||
pdv.setFloat(XXBB_TEMP, sl.getTemp(), index);
|
||||
pdv.setFloat(XXBB_DWPT, sl.getDwpt(), index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
pdv.setInt("numXXBB", index);
|
||||
}
|
||||
break;
|
||||
|
||||
case TTCC:
|
||||
case UUCC:
|
||||
case XXCC:
|
||||
index = 0;
|
||||
if ( sls != null ) {
|
||||
while (sls.hasNext() ) {
|
||||
NcUairObsLevels sl = sls.next();
|
||||
if ( sl.getPres() > 0 && index < maxManLevel ) {
|
||||
|
||||
pdv.setFloat(TTCC_PRES, sl.getPres(), index);
|
||||
pdv.setFloat(TTCC_HGHT, sl.getHght(), index);
|
||||
pdv.setFloat(TTCC_TEMP, sl.getTemp(), index);
|
||||
pdv.setFloat(TTCC_DWPT, sl.getDwpt(), index);
|
||||
pdv.setFloat(TTCC_DRCT, sl.getDrct(), index);
|
||||
pdv.setFloat(TTCC_SPED, sl.getSped(), index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
pdv.setInt("numTTCC",index);
|
||||
}
|
||||
break;
|
||||
index = 0;
|
||||
if (sls != null) {
|
||||
while (sls.hasNext()) {
|
||||
NcUairObsLevels sl = sls.next();
|
||||
if (sl.getPres() > 0 && index < maxManLevel) {
|
||||
|
||||
pdv.setFloat(TTCC_PRES, sl.getPres(), index);
|
||||
pdv.setFloat(TTCC_HGHT, sl.getHght(), index);
|
||||
pdv.setFloat(TTCC_TEMP, sl.getTemp(), index);
|
||||
pdv.setFloat(TTCC_DWPT, sl.getDwpt(), index);
|
||||
pdv.setFloat(TTCC_DRCT, sl.getDrct(), index);
|
||||
pdv.setFloat(TTCC_SPED, sl.getSped(), index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
pdv.setInt("numTTCC", index);
|
||||
}
|
||||
break;
|
||||
case XXCC:
|
||||
index = 0;
|
||||
if (sls != null) {
|
||||
while (sls.hasNext()) {
|
||||
NcUairObsLevels sl = sls.next();
|
||||
if (sl.getPres() > 0 && index < maxManLevel) {
|
||||
|
||||
pdv.setFloat(XXCC_PRES, sl.getPres(), index);
|
||||
pdv.setFloat(XXCC_HGHT, sl.getHght(), index);
|
||||
pdv.setFloat(XXCC_TEMP, sl.getTemp(), index);
|
||||
pdv.setFloat(XXCC_DWPT, sl.getDwpt(), index);
|
||||
pdv.setFloat(XXCC_DRCT, sl.getDrct(), index);
|
||||
pdv.setFloat(XXCC_SPED, sl.getSped(), index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
pdv.setInt("numXXCC", index);
|
||||
}
|
||||
break;
|
||||
|
||||
case TTDD:
|
||||
case UUDD:
|
||||
|
||||
index = 0;
|
||||
if (sls != null) {
|
||||
while (sls.hasNext()) {
|
||||
NcUairObsLevels sl = sls.next();
|
||||
if (sl.getPres() > 0 && index < maxSigTempLevel) {
|
||||
pdv.setFloat(TTDD_PRES, sl.getPres(), index);
|
||||
pdv.setFloat(TTDD_TEMP, sl.getTemp(), index);
|
||||
pdv.setFloat(TTDD_DWPT, sl.getDwpt(), index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
pdv.setInt("numTTDD", index);
|
||||
}
|
||||
break;
|
||||
case XXDD:
|
||||
index = 0;
|
||||
if ( sls != null ) {
|
||||
while (sls.hasNext() ) {
|
||||
NcUairObsLevels sl = sls.next();
|
||||
if ( sl.getPres() > 0 && index < maxSigTempLevel ) {
|
||||
pdv.setFloat(TTDD_PRES, sl.getPres(), index);
|
||||
pdv.setFloat(TTDD_TEMP, sl.getTemp(), index);
|
||||
pdv.setFloat(TTDD_DWPT, sl.getDwpt(), index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
pdv.setInt("numTTDD", index);
|
||||
}
|
||||
break;
|
||||
|
||||
index = 0;
|
||||
if (sls != null) {
|
||||
while (sls.hasNext()) {
|
||||
NcUairObsLevels sl = sls.next();
|
||||
if (sl.getPres() > 0 && index < maxSigTempLevel) {
|
||||
pdv.setFloat(XXDD_PRES, sl.getPres(), index);
|
||||
pdv.setFloat(XXDD_TEMP, sl.getTemp(), index);
|
||||
pdv.setFloat(XXDD_DWPT, sl.getDwpt(), index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
pdv.setInt("numXXDD", index);
|
||||
}
|
||||
break;
|
||||
|
||||
case PPAA:
|
||||
index = 0;
|
||||
if ( sls != null ) {
|
||||
while (sls.hasNext()) {
|
||||
NcUairObsLevels sl = sls.next();
|
||||
if ( sl.getPres() > 0 && index < maxManLevel ) {
|
||||
pdv.setFloat(PPAA_PRES, sl.getPres(), index);
|
||||
pdv.setFloat(PPAA_HGHT, sl.getHght(), index);
|
||||
pdv.setFloat(PPAA_TEMP, sl.getTemp(), index);
|
||||
pdv.setFloat(PPAA_DWPT, sl.getDwpt(), index);
|
||||
pdv.setFloat(PPAA_DRCT, sl.getDrct(), index);
|
||||
pdv.setFloat(PPAA_SPED, sl.getSped(), index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
pdv.setInt("numPPAA", index);
|
||||
}
|
||||
break;
|
||||
index = 0;
|
||||
if (sls != null) {
|
||||
while (sls.hasNext()) {
|
||||
NcUairObsLevels sl = sls.next();
|
||||
if (sl.getPres() > 0 && index < maxManLevel) {
|
||||
pdv.setFloat(PPAA_PRES, sl.getPres(), index);
|
||||
pdv.setFloat(PPAA_HGHT, sl.getHght(), index);
|
||||
pdv.setFloat(PPAA_TEMP, sl.getTemp(), index);
|
||||
pdv.setFloat(PPAA_DWPT, sl.getDwpt(), index);
|
||||
pdv.setFloat(PPAA_DRCT, sl.getDrct(), index);
|
||||
pdv.setFloat(PPAA_SPED, sl.getSped(), index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
pdv.setInt("numPPAA", index);
|
||||
}
|
||||
break;
|
||||
case PPBB:
|
||||
index = 0;
|
||||
if ( sls != null ) {
|
||||
while (sls.hasNext()) {
|
||||
NcUairObsLevels sl = sls.next();
|
||||
if ( sl.getHght() > 0 && index < maxSigWindLevel ) {
|
||||
pdv.setFloat(PPBB_HGHT, sl.getHght(), index);
|
||||
pdv.setFloat(PPBB_DRCT, sl.getDrct(), index);
|
||||
pdv.setFloat(PPBB_SPED, sl.getSped(), index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
pdv.setInt ("numPPBB", index);
|
||||
}
|
||||
break;
|
||||
|
||||
index = 0;
|
||||
if (sls != null) {
|
||||
while (sls.hasNext()) {
|
||||
NcUairObsLevels sl = sls.next();
|
||||
if (sl.getHght() > 0 && index < maxSigWindLevel) {
|
||||
pdv.setFloat(PPBB_HGHT, sl.getHght(), index);
|
||||
pdv.setFloat(PPBB_DRCT, sl.getDrct(), index);
|
||||
pdv.setFloat(PPBB_SPED, sl.getSped(), index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
pdv.setInt("numPPBB", index);
|
||||
}
|
||||
break;
|
||||
|
||||
case PPCC:
|
||||
index = 0;
|
||||
if (sls !=null ) {
|
||||
while (sls.hasNext()) {
|
||||
NcUairObsLevels sl = sls.next();
|
||||
if ( (sl.getPres() > 0 || sl.getHght() > 0 ) && index < maxManLevel ) {
|
||||
pdv.setFloat(PPCC_PRES, sl.getPres(), index);
|
||||
pdv.setFloat(PPCC_HGHT, sl.getHght(), index);
|
||||
pdv.setFloat(PPCC_TEMP, sl.getTemp(), index);
|
||||
pdv.setFloat(PPCC_DWPT, sl.getDwpt(), index);
|
||||
pdv.setFloat(PPCC_DRCT, sl.getDrct(), index);
|
||||
pdv.setFloat(PPCC_SPED, sl.getSped(), index);
|
||||
index++;
|
||||
index = 0;
|
||||
if (sls != null) {
|
||||
while (sls.hasNext()) {
|
||||
NcUairObsLevels sl = sls.next();
|
||||
if ((sl.getPres() > 0 || sl.getHght() > 0)
|
||||
&& index < maxManLevel) {
|
||||
pdv.setFloat(PPCC_PRES, sl.getPres(), index);
|
||||
pdv.setFloat(PPCC_HGHT, sl.getHght(), index);
|
||||
pdv.setFloat(PPCC_TEMP, sl.getTemp(), index);
|
||||
pdv.setFloat(PPCC_DWPT, sl.getDwpt(), index);
|
||||
pdv.setFloat(PPCC_DRCT, sl.getDrct(), index);
|
||||
pdv.setFloat(PPCC_SPED, sl.getSped(), index);
|
||||
index++;
|
||||
|
||||
}
|
||||
}
|
||||
pdv.setInt("numPPCC", index);
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
pdv.setInt ("numPPCC", index);
|
||||
}
|
||||
break;
|
||||
|
||||
case PPDD:
|
||||
index = 0;
|
||||
if (sls !=null ) {
|
||||
while (sls.hasNext()) {
|
||||
NcUairObsLevels sl = sls.next();
|
||||
if ( sl.getHght() > 0 && index < maxSigWindLevel ) {
|
||||
pdv.setFloat(PPDD_HGHT, sl.getHght(), index);
|
||||
pdv.setFloat(PPDD_DRCT, sl.getDrct(), index);
|
||||
pdv.setFloat(PPDD_SPED, sl.getSped(), index);
|
||||
index++;
|
||||
}
|
||||
index = 0;
|
||||
if (sls != null) {
|
||||
while (sls.hasNext()) {
|
||||
NcUairObsLevels sl = sls.next();
|
||||
if (sl.getHght() > 0 && index < maxSigWindLevel) {
|
||||
pdv.setFloat(PPDD_HGHT, sl.getHght(), index);
|
||||
pdv.setFloat(PPDD_DRCT, sl.getDrct(), index);
|
||||
pdv.setFloat(PPDD_SPED, sl.getSped(), index);
|
||||
index++;
|
||||
}
|
||||
|
||||
}
|
||||
pdv.setInt ("numPPDD", index);
|
||||
}
|
||||
}
|
||||
pdv.setInt("numPPDD", index);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if ( record.getTropopause () != null ) {
|
||||
Iterator<NcUairTropopause> trops = record.getTropopause().iterator();
|
||||
index = 0;
|
||||
if (trops != null) {
|
||||
while (trops.hasNext()) {
|
||||
NcUairTropopause trop = trops.next();
|
||||
if ( trop.getPres() > 0 && index < maxTropLevel ) {
|
||||
pdv.setFloat(TROP_PRES, trop.getPres(), index);
|
||||
pdv.setFloat(TROP_TEMP, trop.getTemp(), index);
|
||||
pdv.setFloat(TROP_DWPT, trop.getDwpt(), index);
|
||||
pdv.setFloat(TROP_DRCT, trop.getDrct(), index);
|
||||
pdv.setFloat(TROP_SPED, trop.getSped(), index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
pdv.setInt ("numTrop", index);
|
||||
}
|
||||
}
|
||||
if (record.getTropopause() != null) {
|
||||
Iterator<NcUairTropopause> trops = record.getTropopause()
|
||||
.iterator();
|
||||
index = 0;
|
||||
if (trops != null) {
|
||||
while (trops.hasNext()) {
|
||||
NcUairTropopause trop = trops.next();
|
||||
if (trop.getPres() > 0 && index < maxTropLevel) {
|
||||
pdv.setFloat(TROP_PRES, trop.getPres(), index);
|
||||
pdv.setFloat(TROP_TEMP, trop.getTemp(), index);
|
||||
pdv.setFloat(TROP_DWPT, trop.getDwpt(), index);
|
||||
pdv.setFloat(TROP_DRCT, trop.getDrct(), index);
|
||||
pdv.setFloat(TROP_SPED, trop.getSped(), index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
pdv.setInt("numTrop", index);
|
||||
}
|
||||
}
|
||||
|
||||
if (record.getMaxWind() != null ) {
|
||||
Iterator<NcUairMaxWind> wmaxs = record.getMaxWind().iterator();
|
||||
index = 0;
|
||||
if (wmaxs != null) {
|
||||
while (wmaxs.hasNext()) {
|
||||
NcUairMaxWind wmax = wmaxs.next();
|
||||
if ( wmax.getPres() > 0 && index < maxWmaxLevel ) {
|
||||
pdv.setFloat(WMAX_PRES, wmax.getPres(), index);
|
||||
pdv.setFloat(WMAX_DRCT, wmax.getDrct(), index);
|
||||
pdv.setFloat(WMAX_SPED, wmax.getSped(), index);
|
||||
pdv.setFloat(WMAX_LO_SHEAR, wmax.getLoShear(), index);
|
||||
pdv.setFloat(WMAX_HI_SHEAR, wmax.getHiShear(), index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
pdv.setInt ("numWmax", index);
|
||||
}
|
||||
}
|
||||
if (record.getMaxWind() != null) {
|
||||
Iterator<NcUairMaxWind> wmaxs = record.getMaxWind().iterator();
|
||||
index = 0;
|
||||
if (wmaxs != null) {
|
||||
while (wmaxs.hasNext()) {
|
||||
NcUairMaxWind wmax = wmaxs.next();
|
||||
if (wmax.getPres() > 0 && index < maxWmaxLevel) {
|
||||
pdv.setFloat(WMAX_PRES, wmax.getPres(), index);
|
||||
pdv.setFloat(WMAX_DRCT, wmax.getDrct(), index);
|
||||
pdv.setFloat(WMAX_SPED, wmax.getSped(), index);
|
||||
pdv.setFloat(WMAX_LO_SHEAR, wmax.getLoShear(), index);
|
||||
pdv.setFloat(WMAX_HI_SHEAR, wmax.getHiShear(), index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
pdv.setInt("numWmax", index);
|
||||
}
|
||||
}
|
||||
|
||||
if (record.getLiftedIndex() != null) {
|
||||
Iterator<NcUairLiftedIndex> miscs = record.getLiftedIndex().iterator();
|
||||
index = 0;
|
||||
if ( miscs != null) {
|
||||
while (miscs.hasNext()) {
|
||||
NcUairLiftedIndex misc = miscs.next();
|
||||
if ( index < maxMiscLevel ) {
|
||||
if ( record.getDataType().equals("TTAA") ) {
|
||||
pdv.setFloat(TTAA_LIFT, misc.getLiTemp(), index);
|
||||
pdv.setFloat(TTAA_LO_MEAN_DRCT, misc.getLoDrct(), index);
|
||||
pdv.setFloat(TTAA_LO_MEAN_SPED, misc.getLoSped(), index);
|
||||
pdv.setFloat(TTAA_HI_MEAN_DRCT, misc.getHiDrct(), index);
|
||||
pdv.setFloat(TTAA_HI_MEAN_SPED, misc.getHiSped(), index);
|
||||
} else {
|
||||
pdv.setFloat(TTBB_LIFT, misc.getLiTemp(), index);
|
||||
pdv.setFloat(TTBB_LO_MEAN_DRCT, misc.getLoDrct(), index);
|
||||
pdv.setFloat(TTBB_LO_MEAN_SPED, misc.getLoSped(), index);
|
||||
pdv.setFloat(TTBB_HI_MEAN_DRCT, misc.getHiDrct(), index);
|
||||
pdv.setFloat(TTBB_HI_MEAN_SPED, misc.getHiSped(), index);
|
||||
}
|
||||
index++;
|
||||
}
|
||||
}
|
||||
if ( record.getDataType().equals ("TTAA")) {
|
||||
pdv.setInt ("numMiscTTAA", index);
|
||||
} else {
|
||||
pdv.setInt ("numMiscTTBB", index);
|
||||
}
|
||||
}
|
||||
}
|
||||
return pdv;
|
||||
if (record.getLiftedIndex() != null) {
|
||||
Iterator<NcUairLiftedIndex> miscs = record.getLiftedIndex()
|
||||
.iterator();
|
||||
index = 0;
|
||||
if (miscs != null) {
|
||||
while (miscs.hasNext()) {
|
||||
NcUairLiftedIndex misc = miscs.next();
|
||||
if (index < maxMiscLevel) {
|
||||
if (record.getDataType().equals("TTAA")) {
|
||||
pdv.setFloat(TTAA_LIFT, misc.getLiTemp(), index);
|
||||
pdv.setFloat(TTAA_LO_MEAN_DRCT, misc.getLoDrct(),
|
||||
index);
|
||||
pdv.setFloat(TTAA_LO_MEAN_SPED, misc.getLoSped(),
|
||||
index);
|
||||
pdv.setFloat(TTAA_HI_MEAN_DRCT, misc.getHiDrct(),
|
||||
index);
|
||||
pdv.setFloat(TTAA_HI_MEAN_SPED, misc.getHiSped(),
|
||||
index);
|
||||
} else {
|
||||
pdv.setFloat(TTBB_LIFT, misc.getLiTemp(), index);
|
||||
pdv.setFloat(TTBB_LO_MEAN_DRCT, misc.getLoDrct(),
|
||||
index);
|
||||
pdv.setFloat(TTBB_LO_MEAN_SPED, misc.getLoSped(),
|
||||
index);
|
||||
pdv.setFloat(TTBB_HI_MEAN_DRCT, misc.getHiDrct(),
|
||||
index);
|
||||
pdv.setFloat(TTBB_HI_MEAN_SPED, misc.getHiSped(),
|
||||
index);
|
||||
}
|
||||
index++;
|
||||
}
|
||||
}
|
||||
if (record.getDataType().equals("TTAA")) {
|
||||
pdv.setInt("numMiscTTAA", index);
|
||||
} else {
|
||||
pdv.setInt("numMiscTTBB", index);
|
||||
}
|
||||
}
|
||||
}
|
||||
return pdv;
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load diff
|
@ -51,12 +51,26 @@ public class PressChange3Hr extends AbstractMetParameter implements javax.measur
|
|||
Number n = (Number) new Integer(ptsy.getStringValue());
|
||||
Amount ptsyAmount = new Amount(n, Unit.ONE);
|
||||
Amount theP03CAmount = PRLibrary.prP03CAbsVal(p, ptsyAmount);
|
||||
this.setAssociatedMetParam(copyDerivedPTSY(ptsy));
|
||||
this.setValue(theP03CAmount);
|
||||
|
||||
} else {
|
||||
this.setValueToMissing();
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
private PressureTendencySymbol copyDerivedPTSY(PressureTendencySymbol ptsy) {
|
||||
|
||||
PressureTendencySymbol cptsy = new PressureTendencySymbol();
|
||||
|
||||
cptsy.setDataTime(ptsy.getDataTime());
|
||||
cptsy.setStringValue(ptsy.getStringValue());
|
||||
cptsy.setUnit(ptsy.getUnit());
|
||||
cptsy.setValidTime(ptsy.getValidTime());
|
||||
|
||||
return cptsy;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -38,17 +38,8 @@ public class PressureChange3HrAndTendency extends AbstractMetParameter implement
|
|||
Number n = (Number) new Integer(ptsy.getStringValue());
|
||||
Amount ptsyAmount = new Amount(n, Unit.ONE);
|
||||
Amount theP03CAmount = PRLibrary.prP03CAbsVal(p, ptsyAmount);
|
||||
|
||||
this.setValue(theP03CAmount);
|
||||
this.setAssociatedMetParam(copyDerivedPTSY(ptsy));
|
||||
|
||||
// Works, ptsy values can be seen form here
|
||||
// System.out.print("==> derive called: ptsy: " + ptsy.toString());
|
||||
if (this.getAssociatedMetParam() == null) {
|
||||
// System.out.print(": BUT assoc metparm IS NULL");
|
||||
} else {
|
||||
// System.out.println(": ASSOC metparm to string: " + this.getAssociatedMetParam().toString());
|
||||
}
|
||||
this.setValue(theP03CAmount);
|
||||
|
||||
} else {
|
||||
this.setValueToMissing();
|
||||
|
|
|
@ -865,12 +865,23 @@ public final class PRLibrary {
|
|||
|
||||
ptsyValue = ptsy.getValue().intValue();
|
||||
|
||||
// Make into a negative value
|
||||
if (ptsyValue > 0 && ptsyValue < 4) {
|
||||
p03c = Math.abs(p03cavValue) * -1;
|
||||
} // Positive value
|
||||
else if (ptsyValue > 4 && ptsyValue < 8) {
|
||||
// No sign
|
||||
if (p03cavValue == 0.0) {
|
||||
return new Amount(p03cavValue, SI.PASCAL);
|
||||
}
|
||||
|
||||
// No sign
|
||||
if (ptsyValue == 4) {
|
||||
return new Amount(p03cavValue, SI.PASCAL);
|
||||
}
|
||||
|
||||
// Make into positive value
|
||||
if (ptsyValue >= 0 && ptsyValue <= 4) {
|
||||
p03c = Math.abs(p03cavValue);
|
||||
|
||||
} // Make into a negative value
|
||||
else if (ptsyValue > 4 && ptsyValue <= 8) {
|
||||
p03c = Math.abs(p03cavValue) * -1;
|
||||
}
|
||||
|
||||
return new Amount(p03c, SI.PASCAL);
|
||||
|
|
|
@ -154,6 +154,7 @@ public class NcSoundingLayer implements ISerializableObject, Cloneable {
|
|||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param pressure
|
||||
* @param geoHeight
|
||||
* @param temperature
|
||||
|
@ -164,8 +165,7 @@ public class NcSoundingLayer implements ISerializableObject, Cloneable {
|
|||
* @param windV
|
||||
* @param omega
|
||||
* @param specHumidity
|
||||
* @param dewDepression
|
||||
* @param dataType
|
||||
* @param dpd
|
||||
*/
|
||||
public NcSoundingLayer(float pressure, float geoHeight, float temperature,
|
||||
float dewpoint, float windSpeed, float windDirection, float windU,
|
||||
|
@ -187,6 +187,25 @@ public class NcSoundingLayer implements ISerializableObject, Cloneable {
|
|||
|
||||
}
|
||||
|
||||
public NcSoundingLayer(float pressure, float geoHeight, float temperature,
|
||||
float dewpoint, float windSpeed, float windDirection, float windU,
|
||||
float windV, float omega, float specHumidity, float relativeHumidity) {
|
||||
super();
|
||||
this.pressure = pressure;
|
||||
this.geoHeight = geoHeight;
|
||||
this.temperature = temperature;
|
||||
this.dewpoint = dewpoint;
|
||||
this.windSpeed = windSpeed;
|
||||
this.windDirection = windDirection;
|
||||
this.windU = windU;
|
||||
this.windV = windV;
|
||||
this.omega = omega;
|
||||
this.specHumidity = specHumidity;
|
||||
this.relativeHumidity = relativeHumidity;
|
||||
this.dpd = MISSING;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* public String getDataType() { return dataType; }
|
||||
*
|
||||
|
@ -246,6 +265,24 @@ public class NcSoundingLayer implements ISerializableObject, Cloneable {
|
|||
this.temperature = temperature;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the dpd
|
||||
*/
|
||||
public float getDpd() {
|
||||
return dpd;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param dpd
|
||||
* the dpd to set
|
||||
*/
|
||||
public void setDpd(float dpd) {
|
||||
if (dpd == LEGACY_MISSING)
|
||||
this.dpd = MISSING;
|
||||
else
|
||||
this.dpd = dpd;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the dewpoint in Celsius
|
||||
*/
|
||||
|
@ -368,14 +405,6 @@ public class NcSoundingLayer implements ISerializableObject, Cloneable {
|
|||
this.relativeHumidity = relativeHumidity;
|
||||
}
|
||||
|
||||
public float getDpd() {
|
||||
return dpd;
|
||||
}
|
||||
|
||||
public void setDpd(float dpd) {
|
||||
this.dpd = dpd;
|
||||
}
|
||||
|
||||
private void computeUV() {
|
||||
if (windSpeed > MISSING && windDirection > MISSING) {
|
||||
Coordinate uv = uvComp(windSpeed, windDirection);
|
||||
|
@ -460,6 +489,7 @@ public class NcSoundingLayer implements ISerializableObject, Cloneable {
|
|||
|
||||
@Override
|
||||
public String toString() {
|
||||
|
||||
return "Pressure=" + getPressure() + "mb:Z=" + getGeoHeight() + "m:T="
|
||||
+ getTemperature() + "\u00B0C:Td=" + getDewpoint()
|
||||
+ "\u00B0C:WS=" + getWindSpeed() + "m/s:WD="
|
||||
|
|
|
@ -3951,6 +3951,18 @@
|
|||
<wfo></wfo>
|
||||
</station>
|
||||
<station>
|
||||
<stid>BTG</stid>
|
||||
<stnnum>000208</stnnum>
|
||||
<stnname>BATTLE_GROUND</stnname>
|
||||
<state>WA</state>
|
||||
<country>US</country>
|
||||
<latitude>45.75</latitude>
|
||||
<longitude>-122.59</longitude>
|
||||
<elevation>0</elevation>
|
||||
<priority>0</priority>
|
||||
<wfo></wfo>
|
||||
</station>
|
||||
<station> <!-- REPLACED BY BTG (ABOVE); KEEP PDX ENTRY ONLY AS LONG AS NEEDED TO DECODE LEGACY PRODUCTS, THEN DISCARD -->
|
||||
<stid>PDX</stid>
|
||||
<stnnum>000208</stnnum>
|
||||
<stnname>PORTLAND</stnname>
|
||||
|
|
|
@ -104,6 +104,13 @@
|
|||
<regex>^FXCA20 KWBC (0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]).*PMDCA.*</regex>
|
||||
<regex>^FXAK02 KWNH (0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]).*PMDAK.*</regex>
|
||||
<regex>^NOUS42 KWBC (0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]).+</regex>
|
||||
<regex>^AACN01 CWAO (0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]).+</regex>
|
||||
<regex>^NOUS71 KWNO (0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]).+</regex>
|
||||
<regex>^NOUS71 KNES (0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]).+</regex>
|
||||
<regex>^NOUS72 KNES (0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]).+</regex>
|
||||
<regex>^NOUS72 KNCF (0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]).+</regex>
|
||||
<regex>^NOCN05 CWAO (0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]).+</regex>
|
||||
<regex>^NOXX01 KWBC (0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]).+</regex>
|
||||
<regex>^NOUS42 KWNO (0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]).+</regex>
|
||||
<regex>^NPXX10 KWBC (0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]).+</regex>
|
||||
<regex>^NPXX10 KWNO (0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]).+</regex>
|
||||
|
|
|
@ -111,4 +111,31 @@
|
|||
<parameter name="TTBB_LO_MEAN_SPED" numDims="2" type="FLOAT" unit="m/s" dimension="maxMiscLevel"/>
|
||||
<parameter name="TTBB_HI_MEAN_DRCT" numDims="2" type="FLOAT" unit="degrees" dimension="maxMiscLevel"/>
|
||||
<parameter name="TTBB_HI_MEAN_SPED" numDims="2" type="FLOAT" unit="m/s" dimension="maxMiscLevel"/>
|
||||
|
||||
<parameter name="numXXAA" numDims="1" type="INT" />
|
||||
<parameter name="XXAA_PRES" numDims="2" type="FLOAT" unit="hPa" dimension="maxManLevel"/>
|
||||
<parameter name="XXAA_TEMP" numDims="2" type="FLOAT" unit="Celsius" dimension="maxManLevel"/>
|
||||
<parameter name="XXAA_DWPT" numDims="2" type="FLOAT" unit="Celsius" dimension="maxManLevel"/>
|
||||
<parameter name="XXAA_DRCT" numDims="2" type="FLOAT" unit="degrees" dimension="maxManLevel"/>
|
||||
<parameter name="XXAA_SPED" numDims="2" type="FLOAT" unit="m/s" dimension="maxManLevel"/>
|
||||
<parameter name="XXAA_HGHT" numDims="2" type="FLOAT" unit="m" dimension="maxManLevel"/>
|
||||
|
||||
<parameter name="numXXCC" numDims="1" type="INT" />
|
||||
<parameter name="XXCC_PRES" numDims="2" type="FLOAT" unit="hPa" dimension="maxManLevel"/>
|
||||
<parameter name="XXCC_TEMP" numDims="2" type="FLOAT" unit="Celsius" dimension="maxManLevel"/>
|
||||
<parameter name="XXCC_DWPT" numDims="2" type="FLOAT" unit="Celsius" dimension="maxManLevel"/>
|
||||
<parameter name="XXCC_DRCT" numDims="2" type="FLOAT" unit="degrees" dimension="maxManLevel"/>
|
||||
<parameter name="XXCC_SPED" numDims="2" type="FLOAT" unit="m/s" dimension="maxManLevel"/>
|
||||
<parameter name="XXCC_HGHT" numDims="2" type="FLOAT" unit="m" dimension="maxManLevel"/>
|
||||
|
||||
<parameter name="numXXBB" numDims="1" type="INT" />
|
||||
<parameter name="XXBB_PRES" numDims="2" type="FLOAT" unit="hPa" dimension="maxSigTempLevel"/>
|
||||
<parameter name="XXBB_TEMP" numDims="2" type="FLOAT" unit="Celsius" dimension="maxSigTempLevel"/>
|
||||
<parameter name="XXBB_DWPT" numDims="2" type="FLOAT" unit="Celsius" dimension="maxSigTempLevel"/>
|
||||
|
||||
<parameter name="numXXDD" numDims="1" type="INT" />
|
||||
<parameter name="XXDD_PRES" numDims="2" type="FLOAT" unit="hPa" dimension="maxSigTempLevel"/>
|
||||
<parameter name="XXDD_TEMP" numDims="2" type="FLOAT" unit="Celsius" dimension="maxSigTempLevel"/>
|
||||
<parameter name="XXDD_DWPT" numDims="2" type="FLOAT" unit="Celsius" dimension="maxSigTempLevel"/>
|
||||
|
||||
</pointDataDescription>
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue