gfe pull latest for edex: ncep_14.2.1
This commit is contained in:
parent
0ca7aa3091
commit
ac9164fd3f
15 changed files with 238 additions and 252 deletions
|
@ -25,6 +25,7 @@ import java.io.FileNotFoundException;
|
|||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.text.DateFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
|
@ -34,6 +35,7 @@ import java.util.Scanner;
|
|||
import com.raytheon.edex.plugin.gfe.config.IFPServerConfig;
|
||||
import com.raytheon.edex.plugin.gfe.config.IFPServerConfigManager;
|
||||
import com.raytheon.edex.plugin.gfe.exception.GfeConfigurationException;
|
||||
import com.raytheon.edex.plugin.gfe.server.IFPServer;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.GridDataHistory;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.GridDataHistory.OriginType;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.RemapGrid;
|
||||
|
@ -46,6 +48,7 @@ import com.raytheon.uf.common.dataplugin.gfe.db.objects.GridParmInfo;
|
|||
import com.raytheon.uf.common.dataplugin.gfe.db.objects.ParmID;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.db.objects.TimeConstraints;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.discrete.DiscreteKey;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.exception.GfeException;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.grid.Grid2DByte;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.grid.Grid2DFloat;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.slice.DiscreteGridSlice;
|
||||
|
@ -72,6 +75,7 @@ import com.vividsolutions.jts.geom.Coordinate;
|
|||
* Apr 13, 2011 #8393 dgilling Initial creation
|
||||
* 02/19/13 #1637 randerso Added exception handling for Discrete and Weather
|
||||
* 10/31/2013 #2508 randerso Change to use DiscreteGridSlice.getKeys()
|
||||
* 04/22/2014 #3050 randerso Allow exceptions to propagate to caller from readASCIIGridData
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -353,12 +357,14 @@ public class ASCIIGrid {
|
|||
}
|
||||
|
||||
public String readASCIIGridData(File aGridData)
|
||||
throws FileNotFoundException {
|
||||
throws FileNotFoundException, GfeException, ParseException {
|
||||
List<IGridSlice> gridSlices = new ArrayList<IGridSlice>();
|
||||
Scanner inputStream = new Scanner(aGridData, "US-ASCII");
|
||||
|
||||
while (true) {
|
||||
try {
|
||||
Scanner inputStream = null;
|
||||
try {
|
||||
inputStream = new Scanner(aGridData, "US-ASCII");
|
||||
|
||||
while (true) {
|
||||
// read the ASCIIGRID keyword
|
||||
// if we have an ASCIIGRID to read
|
||||
if (!inputStream.next().equals("ASCIIGRID")) {
|
||||
|
@ -421,8 +427,12 @@ public class ASCIIGrid {
|
|||
float yExtent = inputStream.nextFloat();
|
||||
|
||||
// make the GridLocation
|
||||
IFPServerConfig config = IFPServerConfigManager
|
||||
.getServerConfig(dbSiteId);
|
||||
IFPServer ifpServer = IFPServer.getActiveServer(dbSiteId);
|
||||
if (ifpServer == null) {
|
||||
throw new GfeException("No active IFPServer for site: "
|
||||
+ dbSiteId);
|
||||
}
|
||||
IFPServerConfig config = ifpServer.getConfig();
|
||||
GridLocation baseGLoc = config.dbDomain();
|
||||
ProjectionData projData = config.getProjectionData(projId);
|
||||
GridLocation gLocation = new GridLocation(dbSiteId, projData,
|
||||
|
@ -600,14 +610,12 @@ public class ASCIIGrid {
|
|||
if (!inputStream.hasNext()) {
|
||||
break;
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
statusHandler.handle(Priority.PROBLEM,
|
||||
"Caught exception in readASCIIGridData()", e);
|
||||
break;
|
||||
}
|
||||
} finally {
|
||||
if (inputStream != null) {
|
||||
inputStream.close();
|
||||
}
|
||||
}
|
||||
inputStream.close();
|
||||
this.gridSlices = gridSlices;
|
||||
|
||||
return "";
|
||||
|
|
|
@ -113,6 +113,7 @@ import com.raytheon.uf.edex.database.DataAccessLayerException;
|
|||
* 09/12/2013 #2348 randerso Removed code that called getDb from getD2DDatabaseIdsFromDb
|
||||
* Added function to create a D2DGridDatabase object only if there is
|
||||
* data in postgres for the desired model/reftime
|
||||
* 04/17/2014 #2934 dgilling Change getGridParmInfo to use D2DParm's GridParmInfo.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -623,98 +624,14 @@ public class D2DGridDatabase extends VGridDatabase {
|
|||
|
||||
@Override
|
||||
public ServerResponse<GridParmInfo> getGridParmInfo(ParmID id) {
|
||||
|
||||
ServerResponse<GridParmInfo> sr = new ServerResponse<GridParmInfo>();
|
||||
GridParmInfo gpi = null;
|
||||
String mappedModel = config.d2dModelNameMapping(id.getDbId()
|
||||
.getModelName());
|
||||
|
||||
if (id.getParmName().equalsIgnoreCase("wind")) {
|
||||
List<TimeRange> modelTimes = GridParamInfoLookup
|
||||
.getInstance()
|
||||
.getParameterTimes(mappedModel, id.getDbId().getModelDate());
|
||||
TimeConstraints tc = getTimeConstraints(modelTimes);
|
||||
|
||||
// first try getting u-component attributes
|
||||
ParameterInfo atts = GridParamInfoLookup.getInstance()
|
||||
.getParameterInfo(mappedModel, "uw");
|
||||
|
||||
// if not found try wind speed
|
||||
if (atts == null) {
|
||||
atts = GridParamInfoLookup.getInstance().getParameterInfo(
|
||||
mappedModel, "ws");
|
||||
}
|
||||
float minV = 0;
|
||||
float maxV = atts.getValid_range()[1];
|
||||
int precision = calcPrecision(minV, maxV);
|
||||
gpi = new GridParmInfo(id, this.outputGloc, GridType.VECTOR,
|
||||
atts.getUnits(), "wind", minV, maxV, precision, false, tc,
|
||||
false);
|
||||
sr.setPayload(gpi);
|
||||
return sr;
|
||||
|
||||
}
|
||||
|
||||
ParameterInfo atts = GridParamInfoLookup.getInstance()
|
||||
.getParameterInfo(mappedModel, id.getParmName());
|
||||
|
||||
if (atts == null) {
|
||||
if (gpi == null) {
|
||||
TimeConstraints tc = new TimeConstraints(
|
||||
TimeUtil.SECONDS_PER_HOUR, TimeUtil.SECONDS_PER_HOUR, 0);
|
||||
gpi = new GridParmInfo(id, this.outputGloc, GridType.SCALAR,
|
||||
"", "", ParameterInfo.MIN_VALUE,
|
||||
ParameterInfo.MAX_VALUE, 0, false, tc, false);
|
||||
}
|
||||
|
||||
D2DParm parm = gfeParms.get(id);
|
||||
if (parm != null) {
|
||||
gpi = parm.getGpi();
|
||||
} else {
|
||||
boolean accParm = false;
|
||||
List<String> accumParms = config.accumulativeD2DElements(dbId
|
||||
.getModelName());
|
||||
if (accumParms != null) {
|
||||
if (accumParms.contains(atts.getShort_name())) {
|
||||
accParm = true;
|
||||
}
|
||||
}
|
||||
|
||||
boolean rateParm = false;
|
||||
// List<TimeRange> times = this.getGridInventory(id).getPayload();
|
||||
List<TimeRange> times = GridParamInfoLookup
|
||||
.getInstance()
|
||||
.getParameterTimes(mappedModel, id.getDbId().getModelDate());
|
||||
TimeConstraints tc = getTimeConstraints(times);
|
||||
if (accParm) {
|
||||
tc = new TimeConstraints(tc.getRepeatInterval(),
|
||||
tc.getRepeatInterval(), tc.getStartTime());
|
||||
rateParm = true;
|
||||
}
|
||||
|
||||
float minV = -30;
|
||||
float maxV = 10000;
|
||||
|
||||
if (atts.getValid_range() != null) {
|
||||
minV = atts.getValid_range()[0];
|
||||
maxV = atts.getValid_range()[1];
|
||||
} else {
|
||||
// This is the CDF convention. But we can't use
|
||||
// it or the GFE will attempt to create billions and
|
||||
// billions of contours.
|
||||
// min = MINFLOAT;
|
||||
// max = MAXFLOAT;
|
||||
minV = 0;
|
||||
maxV = 10000;
|
||||
if (!GridPathProvider.STATIC_PARAMETERS.contains(id
|
||||
.getParmName())) {
|
||||
statusHandler.handle(Priority.VERBOSE,
|
||||
"[valid_range] or [valid_min] or [valid_max] "
|
||||
+ "not found for " + id.toString());
|
||||
}
|
||||
}
|
||||
|
||||
int precision = calcPrecision(minV, maxV);
|
||||
gpi = new GridParmInfo(id, this.outputGloc, GridType.SCALAR,
|
||||
atts.getUnits(), atts.getLong_name(), minV, maxV,
|
||||
precision, false, tc, rateParm);
|
||||
sr.addMessage("Unknown PID: " + id.toString());
|
||||
}
|
||||
|
||||
sr.setPayload(gpi);
|
||||
|
|
|
@ -61,6 +61,9 @@ import com.raytheon.uf.common.status.UFStatus;
|
|||
* Apr 21, 2011 dgilling Initial creation
|
||||
* Apr 23, 2013 1949 rjpeter Removed extra lock table look up
|
||||
* Jun 13, 2013 #2044 randerso Refactored to use IFPServer
|
||||
* Apr 21, 2014 #3050 randerso Get the IFPServer instance based on the
|
||||
* site in the ParmID
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author dgilling
|
||||
|
@ -83,9 +86,6 @@ public class SaveASCIIGridsHandler extends BaseGfeRequestHandler implements
|
|||
@Override
|
||||
public ServerResponse<String> handleRequest(SaveASCIIGridsRequest request)
|
||||
throws Exception {
|
||||
IFPServer ifpServer = getIfpServer(request);
|
||||
GridParmManager gridParmMgr = ifpServer.getGridParmMgr();
|
||||
LockManager lockMgr = ifpServer.getLockMgr();
|
||||
|
||||
ServerResponse<String> sr = new ServerResponse<String>();
|
||||
|
||||
|
@ -97,10 +97,23 @@ public class SaveASCIIGridsHandler extends BaseGfeRequestHandler implements
|
|||
sr.addMessage(msg);
|
||||
}
|
||||
|
||||
String prevSiteID = null;
|
||||
int ngrids = agrid.getGridSlices().size();
|
||||
for (int i = 0; i < ngrids; i++) {
|
||||
ParmID pid = agrid.getGridSlices().get(i).getGridInfo().getParmID();
|
||||
|
||||
// get the server for this site
|
||||
String siteID = pid.getDbId().getSiteId();
|
||||
IFPServer ifpServer = IFPServer.getActiveServer(siteID);
|
||||
if (ifpServer == null && !siteID.equals(prevSiteID)) {
|
||||
sr.addMessage("No active IFPServer for site: " + siteID);
|
||||
continue;
|
||||
}
|
||||
prevSiteID = siteID;
|
||||
|
||||
GridParmManager gridParmMgr = ifpServer.getGridParmMgr();
|
||||
LockManager lockMgr = ifpServer.getLockMgr();
|
||||
|
||||
// get a list of available databases, see if the grid is part of an
|
||||
// existing database.
|
||||
ServerResponse<List<DatabaseID>> srDbInv = gridParmMgr
|
||||
|
|
|
@ -51,7 +51,7 @@ class Procedure (SmartScript.SmartScript):
|
|||
tr = self.createTimeRange(0, 168, "Database", dbID)
|
||||
self.copyCmd(elements, dbID, tr)
|
||||
#
|
||||
dbID = self.findDatabase("NAM-12km")
|
||||
dbID = self.findDatabase("NAM12")
|
||||
tr = self.createTimeRange(0, 60, "Database", dbID)
|
||||
self.copyCmd(elements, dbID, tr)
|
||||
#Copy
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
<alias base="NGM213">ngm213</alias>
|
||||
<alias base="NGM202">ngm202</alias>
|
||||
<alias base="AVN211">avn211</alias>
|
||||
<alias base="NAM-40km">NAM-40km</alias>
|
||||
<alias base="mesoEta212">mesoEta212</alias>
|
||||
<alias base="mesoEta215">mesoEta215</alias>
|
||||
<alias base="ETA212">eta212</alias>
|
||||
<alias base="AVN203">avn203</alias>
|
||||
|
|
|
@ -37,6 +37,8 @@
|
|||
# to get correct offsets for Alaska
|
||||
# 01/17/2014 #2719 randerso Added NHA domain
|
||||
# 03/20/2014 #2418 dgilling Remove unneeded D2D source PHISH.
|
||||
# 04/17/14 2934 dgilling Remove alias for TPCSurgeProb D2D database.
|
||||
# 05/09/2014 3148 randerso Add tpHPCndfd to D2DAccumulativeElements for HPCERP
|
||||
#
|
||||
########################################################################
|
||||
|
||||
|
@ -961,8 +963,8 @@ ISC = ('ISC', GRID, '', YES, NO, 1, 12)
|
|||
LAPS = ('LAPS', GRID, '', YES, NO, 1, 30)
|
||||
SAT = ('SAT', GRID, '', YES, NO, 1, 12)
|
||||
HPCGuide = ('HPCGuide', GRID, '', NO, NO, 2, 0)
|
||||
NAM-12km = ('NAM-12km', GRID, '', NO, NO, 2, 0)
|
||||
NAM-40km = ('NAM-40km', GRID, '', NO, NO, 2, 0)
|
||||
NAM12 = ('NAM12', GRID, '', NO, NO, 2, 0)
|
||||
NAM40 = ('NAM40', GRID, '', NO, NO, 2, 0)
|
||||
NAM80 = ('NAM80', GRID, '', NO, NO, 2, 0)
|
||||
NAM95 = ('NAM95', GRID, '', NO, NO, 2, 0)
|
||||
NGM80 = ('NGM80', GRID, '', NO, NO, 2, 0)
|
||||
|
@ -1032,14 +1034,14 @@ D2DDBVERSIONS = {
|
|||
#---------------------------------------------------------------------------
|
||||
# Alaska OCONUS
|
||||
if SID in ALASKA_SITES:
|
||||
D2DMODELS = [('mesoEta216', 'NAM-40km'),
|
||||
D2DMODELS = [('mesoEta216', 'NAM40'),
|
||||
('mesoEta217', 'NAM20'),
|
||||
('AVN203', 'GFS190'),
|
||||
('MRF203', 'gfsLR'),
|
||||
('NGM207', 'NGM95'),
|
||||
('ETA207', 'NAM95'),
|
||||
'GWW233',
|
||||
('ETA242', 'NAM-12km'),
|
||||
('ETA242', 'NAM12'),
|
||||
'ECMWF-LowRes','ECMWF',
|
||||
'UKMET-NorthernHemisphere', 'UKMET',
|
||||
'ENSEMBLE',
|
||||
|
@ -1115,7 +1117,7 @@ elif SID in CONUS_EAST_SITES:
|
|||
('MRF', 'gfsLR'),
|
||||
('RUC130', 'RUC13'),
|
||||
('RUC', 'RUC80'),
|
||||
('NAM-40km', 'NAM-40km'),
|
||||
('mesoEta212', 'NAM40'),
|
||||
('mesoEta215', 'NAM20'),
|
||||
'MSAS',
|
||||
('LAPS', 'LAPS'),
|
||||
|
@ -1126,7 +1128,7 @@ elif SID in CONUS_EAST_SITES:
|
|||
#DR3511 'HPCdelta',
|
||||
'GLERL',
|
||||
'WNAWAVE238',
|
||||
('TPCSurgeProb','TPCStormSurge'), # DCS3462
|
||||
'TPCSurgeProb',
|
||||
'GlobalWave',
|
||||
'EPwave10',
|
||||
'AKwave10',
|
||||
|
@ -1137,7 +1139,7 @@ elif SID in CONUS_EAST_SITES:
|
|||
'WNAwave4',
|
||||
'HurWind226',
|
||||
('DGEX185', 'DGEX'),
|
||||
('ETA218', 'NAM-12km'),
|
||||
('ETA218', 'NAM12'),
|
||||
'HPCGuide',
|
||||
('OPCWave180', 'OPCTAFBE'),
|
||||
('OPCWave181', 'OPCTAFBNW'),
|
||||
|
@ -1164,7 +1166,7 @@ else: #######DCS3501 WEST_CONUS
|
|||
('MRF', 'gfsLR'),
|
||||
('RUC130', 'RUC13'),
|
||||
('RUC', 'RUC80'),
|
||||
('NAM-40km', 'NAM-40km'),
|
||||
('mesoEta212', 'NAM40'),
|
||||
('mesoEta215', 'NAM20'),
|
||||
'MSAS',
|
||||
('LAPS', 'LAPS'),
|
||||
|
@ -1175,7 +1177,7 @@ else: #######DCS3501 WEST_CONUS
|
|||
#DR3511 'HPCdelta',
|
||||
'GLERL',
|
||||
'WNAWAVE238',
|
||||
('TPCSurgeProb','TPCStormSurge'), # DCS3462
|
||||
'TPCSurgeProb',
|
||||
'GlobalWave',
|
||||
'EPwave10',
|
||||
'WCwave10',
|
||||
|
@ -1187,7 +1189,7 @@ else: #######DCS3501 WEST_CONUS
|
|||
'AKWAVE',
|
||||
'HurWind226',
|
||||
('DGEX185', 'DGEX'),
|
||||
('ETA218', 'NAM-12km'),
|
||||
('ETA218', 'NAM12'),
|
||||
'HPCGuide',
|
||||
('OPCWave180', 'OPCTAFBE'),
|
||||
('OPCWave181', 'OPCTAFBNW'),
|
||||
|
@ -1321,7 +1323,7 @@ if SID in RFC_SITES:
|
|||
# Alaska OCONUS
|
||||
elif SID in ALASKA_SITES:
|
||||
INITMODULES = {
|
||||
# "AKNAM-40km" : ["NAM-40km", "NAM20"],
|
||||
# "AKNAM40" : ["NAM40", "NAM20"],
|
||||
"AKWAVE" : ['AKWAVE'],
|
||||
# "AKwave4" : ['AKwave4'],
|
||||
# "AKwave10" : ['AKwave10'],
|
||||
|
@ -1329,7 +1331,7 @@ elif SID in ALASKA_SITES:
|
|||
# "NAM95" : ["NAM95"],
|
||||
# "NGM95" : ["NGM95"],
|
||||
# "gfsLR" : ["gfsLR"],
|
||||
"NAM-12km" : ["NAM-12km"],
|
||||
"NAM12" : ["NAM12"],
|
||||
"GFS80" : ["GFS80"],
|
||||
# "GFS190" : ["GFS190"],
|
||||
#DCS3501
|
||||
|
@ -1370,13 +1372,13 @@ elif SID == "HFO":
|
|||
elif SID == "SJU":
|
||||
#initialization module to model mappings
|
||||
INITMODULES = {
|
||||
# "NAM-40km" : ["NAM-40km", "NAM20"],
|
||||
# "NAM40" : ["NAM40", "NAM20"],
|
||||
# "NAM80" : ["NAM80"],
|
||||
"RUC13" : ["RUC13"],
|
||||
"RUC80" : ["RUC80"],
|
||||
# "gfsLR" : ["gfsLR"],
|
||||
# "NGM80" : ["NGM80"],
|
||||
"NAM-12km" : ["NAM-12km"],
|
||||
"NAM12" : ["NAM12"],
|
||||
"GFS80" : ["GFS80"],
|
||||
"GFS40" : ["GFS40"],
|
||||
#####DCS3501
|
||||
|
@ -1413,7 +1415,7 @@ else:
|
|||
INITMODULES = {
|
||||
"RUC13" : ["RUC13"],
|
||||
"RUC80" : ["RUC80"],
|
||||
"NAM-12km" : ["NAM-12km"],
|
||||
"NAM12" : ["NAM12"],
|
||||
"GFS40" : ["GFS40"],
|
||||
"GFS80" : ["GFS80"],
|
||||
"LAPS" : ["LAPS"],
|
||||
|
@ -1464,9 +1466,9 @@ D2DAccumulativeElements= {
|
|||
"GFS190": ["tp", "cp"],
|
||||
"NAM95": ["tp", "cp"],
|
||||
"NAM80": ["tp", "cp"],
|
||||
"NAM-40km": ["tp", "cp"],
|
||||
"NAM40": ["tp", "cp"],
|
||||
"NAM20": ["tp", "cp"],
|
||||
"NAM-12km": ["tp", "cp", "crain", "csnow", "cfrzr", "cicep"],
|
||||
"NAM12": ["tp", "cp", "crain", "csnow", "cfrzr", "cicep"],
|
||||
"NGM80": ["tp", "cp"],
|
||||
"NGM95": ["tp", "cp"],
|
||||
"gfsLR": ["tp", "cp"],
|
||||
|
@ -1484,6 +1486,7 @@ D2DAccumulativeElements= {
|
|||
"HIRESWarw": ["tp"],
|
||||
"HIRESWnmm": ["tp"],
|
||||
"RTMA": ["tp"],
|
||||
"HPCERP": ["tpHPCndfd"],
|
||||
#DR20634 "SPC": ["tp"],
|
||||
|
||||
#Dummy ones for the transition from Eta to NAM. These are ignored.
|
||||
|
@ -1557,8 +1560,8 @@ AUTO_CONFIGURE_NOTIFYTEXTPROD = 1 #0=off,1=on
|
|||
# DO NOT CHANGE THE FOLLOWING SECTION
|
||||
#------------------------------------
|
||||
# import the local config file
|
||||
localParms = localNAM-12kmParms = localRUC13Parms = localRUC80Parms = localNGM80Parms = []
|
||||
localGFS80Parms = localgfsLRParms = localNAM-40kmParms = localDBs = []
|
||||
localParms = localNAM12Parms = localRUC13Parms = localRUC80Parms = localNGM80Parms = []
|
||||
localGFS80Parms = localgfsLRParms = localNAM40Parms = localDBs = []
|
||||
localOPCWavEParms = localOPCWavNWParms = localOPCWavSWParms = []
|
||||
localMOSGuideParms = localGFS40Parms = []
|
||||
localNAM80Parms = localLAPSParms = localISCParms = localGWWParms = []
|
||||
|
@ -1592,13 +1595,13 @@ if not BASELINE and siteImport('localConfig'):
|
|||
myOfficeType = SITES[GFESUITE_SITEID] #probably from localConfig
|
||||
|
||||
localParms = getattr(localConfig, 'parms', localParms)
|
||||
localNAM-12kmParms = getattr(localConfig, 'parmsNAM-12km', localNAM-12kmParms)
|
||||
localNAM12Parms = getattr(localConfig, 'parmsNAM12', localNAM12Parms)
|
||||
localOPCWavEParms = getattr(localConfig, 'parmsOPCWavE', localOPCWavEParms)
|
||||
localOPCWavSWParms = getattr(localConfig, 'parmsOPCWavSW',
|
||||
localOPCWavSWParms)
|
||||
localOPCWavNWParms = getattr(localConfig, 'parmsOPCWavNW',
|
||||
localOPCWavNWParms)
|
||||
localNAM-40kmParms = getattr(localConfig, 'parmsNAM-40km', localNAM-40kmParms)
|
||||
localNAM40Parms = getattr(localConfig, 'parmsNAM40', localNAM40Parms)
|
||||
localNAM80Parms = getattr(localConfig, 'parmsNAM80', localNAM80Parms)
|
||||
localNAM95Parms = getattr(localConfig, 'parmsNAM95', localNAM95Parms)
|
||||
localRUC13Parms = getattr(localConfig, 'parmsRUC13', localRUC13Parms)
|
||||
|
@ -1820,7 +1823,7 @@ TPCProbPARMS = [([prob34, prob50, prob64], TC1),
|
|||
]
|
||||
|
||||
# Cobb snow tool
|
||||
parmsNAM-12km = [([SnowRatio], TC1)]
|
||||
parmsNAM12 = [([SnowRatio], TC1)]
|
||||
parmsGFS40 = [([SnowRatio], TC1)]
|
||||
|
||||
ENPwave_parms = [([WindWaveHeight, WaveHeight, SurfHeight, Wind], TC6),
|
||||
|
@ -1843,8 +1846,8 @@ DATABASES = [(Official, OFFICIALDBS + localParms),
|
|||
(GFS80, STD6_MODEL + localGFS80Parms),
|
||||
(GFS75, STD6_MODEL + localGFS75Parms),
|
||||
(GFS190, STD6_MODEL + localGFS190Parms),
|
||||
(NAM-40km, STD3_MODEL + localNAM-40kmParms),
|
||||
(NAM-12km, STD3_MODEL + localNAM-12kmParms),
|
||||
(NAM40, STD3_MODEL + localNAM40Parms),
|
||||
(NAM12, STD3_MODEL + localNAM12Parms),
|
||||
(gfsLR, STD12_MODEL + localgfsLRParms),
|
||||
(GWW, WAVEPARMS + localGWWParms),
|
||||
(WNAWAVE, WAVEPARMS + localWNAWAVEParms),
|
||||
|
@ -1989,4 +1992,4 @@ def doIt():
|
|||
IFPConfigServer.requestedISCparms = requestedISCparms
|
||||
IFPConfigServer.transmitScript = transmitScript
|
||||
|
||||
doIt()
|
||||
doIt()
|
||||
|
|
|
@ -903,13 +903,12 @@ class IscMosaic:
|
|||
|
||||
if self.__dbGrid is None or tr != self.__dbGrid[2]:
|
||||
self.__dbGrid = None
|
||||
#grid = self.__dbwe.getGridAndHist(tr)
|
||||
grid = self._wec[tr]
|
||||
if grid is not None:
|
||||
destGrid, history = grid
|
||||
self.__dbGrid = (destGrid, history, tr)
|
||||
else:
|
||||
logger.error("Unable to access grid for "+self.__printTR(tr) +" for " + self.__parmName)
|
||||
logger.error("Unable to access grid for %s for %s", printTR(tr), self.__parmName)
|
||||
return None
|
||||
|
||||
return (self.__dbGrid[0], self.__dbGrid[1])
|
||||
|
|
|
@ -302,8 +302,8 @@ def getLogger(scriptName, logName=None, logLevel=logging.INFO):
|
|||
os.makedirs(logPath)
|
||||
except OSError as e:
|
||||
import errno
|
||||
if e.errno != errno.EEXIST:
|
||||
raise e
|
||||
if e.errno != errno.EEXIST:
|
||||
raise e
|
||||
|
||||
theLog = logging.getLogger(scriptName)
|
||||
theLog.setLevel(logLevel)
|
||||
|
|
|
@ -4,9 +4,7 @@
|
|||
<fcst>21600</fcst>
|
||||
<fcst>43200</fcst>
|
||||
<fcst>64800</fcst>
|
||||
<fcst>75600</fcst>
|
||||
<fcst>86400</fcst>
|
||||
<fcst>97200</fcst>
|
||||
<fcst>108000</fcst>
|
||||
<fcst>129600</fcst>
|
||||
<fcst>151200</fcst>
|
||||
|
@ -15,7 +13,22 @@
|
|||
<fcst>216000</fcst>
|
||||
<fcst>237600</fcst>
|
||||
<fcst>259200</fcst>
|
||||
<fcst>280800</fcst>
|
||||
<fcst>302400</fcst>
|
||||
<fcst>324000</fcst>
|
||||
<fcst>345600</fcst>
|
||||
<fcst>367200</fcst>
|
||||
<fcst>388800</fcst>
|
||||
<fcst>410400</fcst>
|
||||
<fcst>432000</fcst>
|
||||
<fcst>453600</fcst>
|
||||
<fcst>475200</fcst>
|
||||
<fcst>496800</fcst>
|
||||
<fcst>518400</fcst>
|
||||
<fcst>540000</fcst>
|
||||
<fcst>561600</fcst>
|
||||
<fcst>583200</fcst>
|
||||
<fcst>604800</fcst>
|
||||
</valtimeMINUSreftime>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>tp48hr</short_name>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Mar 20, 2014 #2934 dgilling Added new parameters for PHISH/pSurge 2.0.
|
||||
Apr 17, 2014 #2934 dgilling Fix fillValue and valid_range values.
|
||||
-->
|
||||
<gridParamInfo xmlns:ns2="group">
|
||||
<valtimeMINUSreftime>
|
||||
|
@ -28,7 +29,7 @@
|
|||
<uiname>SURGE10pct</uiname>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -44,7 +45,7 @@
|
|||
<uiname>SURGE20pct</uiname>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -60,7 +61,7 @@
|
|||
<uiname>SURGE30pct</uiname>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -76,7 +77,7 @@
|
|||
<uiname>SURGE40pct</uiname>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -92,7 +93,7 @@
|
|||
<uiname>SURGE50pct</uiname>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -107,9 +108,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge25c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
|
@ -122,9 +123,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge24c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
|
@ -137,9 +138,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge23c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
|
@ -152,9 +153,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge22c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
|
@ -167,9 +168,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge21c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
|
@ -182,9 +183,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge20c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -198,9 +199,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge19c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -214,9 +215,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge18c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -230,9 +231,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge17c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -246,9 +247,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge16c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -262,9 +263,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge15c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -278,9 +279,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge14c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -294,9 +295,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge13c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -310,9 +311,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge12c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -326,9 +327,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge11c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -342,9 +343,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge10c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -358,9 +359,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge09c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -374,9 +375,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge08c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -390,9 +391,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge07c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -406,9 +407,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge06c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -422,9 +423,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge05c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -438,9 +439,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge04c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -454,9 +455,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge03c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -470,9 +471,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge02c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC 0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -486,9 +487,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge01c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -501,9 +502,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge00c</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -519,7 +520,7 @@
|
|||
<uiname>SURGE10pct_incr</uiname>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -534,7 +535,7 @@
|
|||
<uiname>SURGE20pct_incr</uiname>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -549,7 +550,7 @@
|
|||
<uiname>SURGE30pct_incr</uiname>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -564,7 +565,7 @@
|
|||
<uiname>SURGE40pct_incr</uiname>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -579,7 +580,7 @@
|
|||
<uiname>SURGE50pct_incr</uiname>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -592,9 +593,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge20c_incr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -607,9 +608,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge19c_incr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -622,9 +623,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge18c_incr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -637,9 +638,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge17c_incr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -652,9 +653,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge16c_incr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -667,9 +668,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge15c_incr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -682,9 +683,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge14c_incr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -697,9 +698,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge13c_incr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -712,9 +713,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge12c_incr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -727,9 +728,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge11c_incr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -742,9 +743,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge10c_incr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -757,9 +758,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge09c_incr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -772,9 +773,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge08c_incr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -787,9 +788,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge07c_incr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -802,9 +803,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge06c_incr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -817,9 +818,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge05c_incr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -832,9 +833,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge04c_incr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -847,9 +848,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge03c_incr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -862,9 +863,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge02c_incr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -877,9 +878,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge01c_incr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
@ -892,9 +893,9 @@
|
|||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>ProbSurge00c_incr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>-100.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-9999.0</fillValue>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>0 FHAG</levelsDesc>
|
||||
<levels>
|
||||
|
|
|
@ -601,8 +601,8 @@ class Forecaster(GridUtilities):
|
|||
#--------------------------------------------------------------------------
|
||||
def _getLatest(self, client, srcNames, fcstName=None):
|
||||
# ryu: Added/modified code to allow multiple sources. The srcdb is
|
||||
# now an MDB. This is needed for (AK)NAM-40km init, which sources
|
||||
# from both NAM-40km and NAM20.
|
||||
# now an MDB. This is needed for (AK)NAM40 init, which sources
|
||||
# from both NAM40 and NAM20.
|
||||
|
||||
srcdbs = []
|
||||
modelName = DatabaseID.databaseID(self.__dbName).modelName()
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
# further licensing information.
|
||||
##
|
||||
#
|
||||
# NAM-12km SmartInit
|
||||
# NAM12 SmartInit
|
||||
#
|
||||
# Comments below for each algorithm.
|
||||
#
|
||||
|
@ -59,9 +59,9 @@ USE_WETBULB = 1
|
|||
#
|
||||
#============================================================================
|
||||
from Init import *
|
||||
class NAM-12kmForecaster(Forecaster):
|
||||
class NAM12Forecaster(Forecaster):
|
||||
def __init__(self):
|
||||
Forecaster.__init__(self, "NAM-12km", "NAM-12km")
|
||||
Forecaster.__init__(self, "NAM12", "NAM12")
|
||||
self.BLcubeTime = (None, None)
|
||||
|
||||
def levels(self):
|
||||
|
@ -1687,4 +1687,4 @@ class NAM-12kmForecaster(Forecaster):
|
|||
return value
|
||||
|
||||
def main():
|
||||
NAM-12kmForecaster().run()
|
||||
NAM12Forecaster().run()
|
||||
|
|
|
@ -99,7 +99,7 @@ import com.vividsolutions.jts.simplify.TopologyPreservingSimplifier;
|
|||
* made init method public for use in GFEDao
|
||||
* 09/30/13 #2333 mschenke Added method to construct from {@link IGridGeometryProvider}
|
||||
* 10/22/13 #2361 njensen Remove XML annotations
|
||||
*
|
||||
* 05/06/14 #3118 randerso Added clone() method
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -110,7 +110,7 @@ import com.vividsolutions.jts.simplify.TopologyPreservingSimplifier;
|
|||
@Table(name = "gfe_gridlocation", uniqueConstraints = { @UniqueConstraint(columnNames = { "dbId_id" }) })
|
||||
@DynamicSerialize
|
||||
public class GridLocation extends PersistableDataObject<String> implements
|
||||
ISpatialObject {
|
||||
ISpatialObject, Cloneable {
|
||||
private static final transient IUFStatusHandler statusHandler = UFStatus
|
||||
.getHandler(GridLocation.class);
|
||||
|
||||
|
@ -246,6 +246,37 @@ public class GridLocation extends PersistableDataObject<String> implements
|
|||
init();
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy constructor
|
||||
*
|
||||
* @param gridLocation
|
||||
*/
|
||||
public GridLocation(GridLocation other) {
|
||||
// don't copy id or dbId
|
||||
this.siteId = other.siteId;
|
||||
this.nx = other.nx;
|
||||
this.ny = other.ny;
|
||||
this.timeZone = other.timeZone;
|
||||
this.projection = other.projection;
|
||||
this.origin = other.origin == null ? null : (Coordinate) other.origin
|
||||
.clone();
|
||||
this.extent = other.extent == null ? null : (Coordinate) other.extent
|
||||
.clone();
|
||||
this.geometry = (Polygon) other.geometry.clone();
|
||||
this.crsWKT = other.crsWKT;
|
||||
this.crsObject = other.crsObject;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see java.lang.Object#clone()
|
||||
*/
|
||||
@Override
|
||||
public GridLocation clone() {
|
||||
return new GridLocation(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize the object. Must be called after database retrieval
|
||||
*/
|
||||
|
|
|
@ -67,6 +67,7 @@ import com.raytheon.uf.common.status.UFStatus.Priority;
|
|||
* 04/02/2013 #1774 randerso Improved error message in validCheck
|
||||
* 08/06/13 #1571 randerso Added hibernate annotations, javadoc cleanup
|
||||
* 10/22/2013 #2361 njensen Remove ISerializableObject
|
||||
* 05/06/2014 #3118 randerso Changed clone() to also clone gridLoc
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -196,7 +197,7 @@ public class GridParmInfo implements Cloneable {
|
|||
*/
|
||||
public GridParmInfo(GridParmInfo orig) {
|
||||
this.parmID = orig.parmID;
|
||||
this.gridLoc = orig.gridLoc;
|
||||
this.gridLoc = orig.gridLoc.clone();
|
||||
this.gridType = orig.gridType;
|
||||
this.unitString = orig.unitString;
|
||||
this.descriptiveName = orig.descriptiveName;
|
||||
|
|
|
@ -114,7 +114,7 @@ public class WEGroup {
|
|||
// The modified ParmID string is the ParmID with the model time striped
|
||||
// (ex: Temp:DEN_type_Fcst_00000000_0000). The relative cycle number for a
|
||||
// parameter of a singleton database (Fcst, LAPS) is -1. For a parameter in
|
||||
// a version database (NAM-12km), the relative cycle number is 0 for the
|
||||
// a version database (NAM12), the relative cycle number is 0 for the
|
||||
// latest,
|
||||
// 1 for the previous, 2 for the second previous, etc.
|
||||
// ---------------------------------------------------------------------------
|
||||
|
@ -142,7 +142,7 @@ public class WEGroup {
|
|||
// Bundle::getRelCycleNo()
|
||||
// Private function called to get the relative cycle number for a ParmID.
|
||||
// The relative cycle number for a parameter of a singleton database (Fcst,
|
||||
// LAPS) is -1. For a parameter in a version database (NAM-12km), the relative
|
||||
// LAPS) is -1. For a parameter in a version database (NAM12), the relative
|
||||
// cycle number is 0 for the latest, 1 for the previous, 2 for the second
|
||||
// previous, etc.
|
||||
// The relative order of the current ParmID is computed by determining its
|
||||
|
@ -243,7 +243,7 @@ public class WEGroup {
|
|||
* The modified ParmID string is the ParmID with the model time striped (ex:
|
||||
* Temp:DEN_type_Fcst_00000000_0000). The relative cycle number for a
|
||||
* parameter of a singleton database (Fcst, LAPS) is -1. For a parameter in
|
||||
* a version database (NAM-12km), the relative cycle number is 0 for the
|
||||
* a version database (NAM12), the relative cycle number is 0 for the
|
||||
* latest, 1 for the previous, 2 for the second previous, etc.
|
||||
*
|
||||
* @param siteID
|
||||
|
|
Loading…
Add table
Reference in a new issue