VLab Issue #4003 - NCEP CAVE Plugins delivery for 14.2.1-n
Many bug fixes and configuration changes. Disabled inventory use on all Resource Definitions except grids/ensembles Change-Id: I6d287b4a562fdfbf32aeb1565166523bebebcafe Former-commit-id:929305ce1d
[formerly f4d0f593c29efbd4a959be0176d2562e6ba7db82] Former-commit-id:183039bb5e
This commit is contained in:
parent
91528c474c
commit
f78323b17c
151 changed files with 8493 additions and 7786 deletions
Binary file not shown.
|
@ -19,7 +19,8 @@ FFLAGS = -fno-second-underscore -I$(OS_INC) -I$(GEMINC)
|
|||
CFLAGS_G = -DUNDERSCORE -DLinux
|
||||
CFLAGS = $(CFLAGS_G) -I. -I./Sndglib -I$(OS_INC) -I$(GEMINC) \
|
||||
-I$(NWX) -I$(NSHARP) \
|
||||
-I/usr/include/X11R6 -I/usr/X11R6/include/Xm
|
||||
-I/usr/include/X11R6 -I/usr/X11R6/include/Xm \
|
||||
-I/awips2/python/include/python2.7
|
||||
|
||||
LFLAGS =$(LFLAGS_G) $(LFLAGS_R)
|
||||
|
||||
|
@ -32,7 +33,7 @@ LIBS = -L./Sndglib -lsndg \
|
|||
-lgemlib -lprmcnvlib -lgridlib -lgplt -lgridlib -lcgemlib \
|
||||
-ldevice -lxwp -lxw -lps -lgn -lgemlib $(OS_LIB)/libnetcdf.a \
|
||||
-ltextlib -lxml2 -lxslt -liconv -lbz2 \
|
||||
$(XLIBS) -lz -lm
|
||||
$(XLIBS) -lz -lm -L/awips2/python/lib -lpython2.7
|
||||
|
||||
NOBJS = xinitd.o xwvid1.o xwvid3.o xwvid6.o xwvid2.o \
|
||||
xwvid5.o decoder.o readdata.o sharp95.o \
|
||||
|
|
|
@ -361,6 +361,7 @@ float parcel(float lower, float upper, float pres, float temp,
|
|||
pcl->cape3km = RMISSD;
|
||||
pcl->cape6km = RMISSD;
|
||||
pcl->wm10c = RMISSD;
|
||||
pcl->wm20c = RMISSD;
|
||||
pcl->wm30c = RMISSD;
|
||||
pcl->li5 = RMISSD;
|
||||
pcl->li3 = RMISSD;
|
||||
|
@ -634,7 +635,11 @@ float parcel(float lower, float upper, float pres, float temp,
|
|||
else
|
||||
pcl->bfzl = totp;
|
||||
|
||||
if (qc(pe2 = temp_lvl(0, &pe2))) {
|
||||
/* error check for LCL temp colder than 0 C by Patrick Marsh and RLT 1/6/12 */
|
||||
pe2 = temp_lvl(0, &pe2);
|
||||
if (pe2 > pcl->lclpres) {
|
||||
pcl->bfzl = 0.0; }
|
||||
else if (qc(pe2)) {
|
||||
h2 = i_hght(pe2, I_PRES);
|
||||
te2 = i_vtmp(pe2, I_PRES);
|
||||
tp2 = wetlift(pe3, tp3, pe2);
|
||||
|
@ -661,7 +666,11 @@ float parcel(float lower, float upper, float pres, float temp,
|
|||
else
|
||||
pcl->wm10c = totp;
|
||||
|
||||
if (qc(pe2 = temp_lvl( -10.0, &pe2))) {
|
||||
/* error check for LCL temp colder than -10 C by Patrick Marsh and RLT 1/6/12 */
|
||||
pe2 = temp_lvl(-10.0, &pe2);
|
||||
if (pe2 > pcl->lclpres) {
|
||||
pcl->wm10c = 0.0; }
|
||||
else if (qc(pe2)) {
|
||||
h2 = i_hght(pe2, I_PRES);
|
||||
te2 = i_vtmp(pe2, I_PRES);
|
||||
tp2 = wetlift(pe3, tp3, pe2);
|
||||
|
@ -675,6 +684,39 @@ float parcel(float lower, float upper, float pres, float temp,
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/* ----- Is this the -20c level ----- */
|
||||
if ((te2 <= -20.0) && (!qc(pcl->wm20c))) {
|
||||
pe3 = pelast;
|
||||
h3 = i_hght(pe3, I_PRES);
|
||||
te3 = i_vtmp(pe3, I_PRES);
|
||||
tp3 = wetlift(pe1, tp1, pe3);
|
||||
lyrf = lyre;
|
||||
|
||||
if (lyrf > 0.0)
|
||||
pcl->wm20c = totp - lyrf;
|
||||
else
|
||||
pcl->wm20c = totp;
|
||||
|
||||
/* error check for LCL temp colder than -20 C by Patrick Marsh and RLT 1/6/12 */
|
||||
pe2 = temp_lvl(-20.0, &pe2);
|
||||
if (pe2 > pcl->lclpres) {
|
||||
pcl->wm20c = 0.0; }
|
||||
else if (qc(pe2)) {
|
||||
h2 = i_hght(pe2, I_PRES);
|
||||
te2 = i_vtmp(pe2, I_PRES);
|
||||
tp2 = wetlift(pe3, tp3, pe2);
|
||||
tdef3 = (virtemp(pe3, tp3, tp3) - te3) /
|
||||
(te3 + 273.15);
|
||||
tdef2 = (virtemp(pe2, tp2, tp2) - te2) /
|
||||
(te2 + 273.15);
|
||||
lyrf = 9.8 * (tdef3 + tdef2) / 2.0 * (h2 - h3);
|
||||
if (lyrf > 0.0)
|
||||
pcl->wm20c += lyrf;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* ----- Is this the -30c level ----- */
|
||||
if ((te2 <= -30.0) && (!qc(pcl->wm30c))) {
|
||||
pe3 = pelast;
|
||||
|
@ -688,7 +730,11 @@ float parcel(float lower, float upper, float pres, float temp,
|
|||
else
|
||||
pcl->wm30c = totp;
|
||||
|
||||
if (qc(pe2 = temp_lvl( -30.0, &pe2))) {
|
||||
/* error check for LCL temp colder than -30 C by Patrick Marsh and RLT 1/6/12 */
|
||||
pe2 = temp_lvl(-30.0, &pe2);
|
||||
if (pe2 > pcl->lclpres) {
|
||||
pcl->wm30c = 0.0; }
|
||||
else if (qc(pe2)) {
|
||||
h2 = i_hght(pe2, I_PRES);
|
||||
te2 = i_vtmp(pe2, I_PRES);
|
||||
tp2 = wetlift(pe3, tp3, pe2);
|
||||
|
@ -1360,14 +1406,8 @@ float unstbl_lvl(float *param, float lower, float upper)
|
|||
if (upper == -1) { upper = sndg[sfc()][idxp] - 300.0; }
|
||||
|
||||
/* ----- Make sure this is a valid layer ----- */
|
||||
while (!qc(i_dwpt(upper, I_PRES))) {
|
||||
upper += 50.0;
|
||||
if (upper >= 1000 ){
|
||||
return RMISSD;
|
||||
}
|
||||
}
|
||||
if (!qc(i_temp(lower, I_PRES))) { lower = sndg[sfc()][idxp];} //Chin fixed 8/30/2011 was i_pres(sfc()); }
|
||||
|
||||
while (!qc(i_dwpt(upper, I_PRES))) { upper += 50.0; }
|
||||
if (!qc(i_temp(lower, I_PRES))) { lower = i_pres(sfc()); }
|
||||
/* Find lowest observation in layer ----- */
|
||||
i = 0;
|
||||
while(sndg[i][idxp] > lower) { i++; }
|
||||
|
|
|
@ -33,6 +33,7 @@ float sweat_index(float *param);
|
|||
void define_parcel(short flag, float pres);
|
||||
short grab_level(float pres);
|
||||
float ThetaE_diff(float *param);
|
||||
float ThetaE_diff2(float *param);
|
||||
float Mean_WBtemp(float *param, float lower, float upper);
|
||||
float Rogash_QPF(float *param);
|
||||
float Mean_thetae(float *param, float lower, float upper);
|
||||
|
|
|
@ -37,6 +37,7 @@ struct _parcel {
|
|||
float cape3km;
|
||||
float cape6km;
|
||||
float wm10c;
|
||||
float wm20c;
|
||||
float wm30c;
|
||||
float li5;
|
||||
float li3;
|
||||
|
|
|
@ -248,13 +248,13 @@ void mean_wind_npw(float pbot, float ptop, float *mnu, float *mnv,
|
|||
w1 = 1;
|
||||
usum = usum + i_wndu(i, I_PRES);
|
||||
vsum = vsum + i_wndv(i, I_PRES);
|
||||
//wgt = wgt + w1;
|
||||
wgt = wgt + w1;
|
||||
num++;
|
||||
}
|
||||
}
|
||||
|
||||
*mnu = (usum / num);
|
||||
*mnv = (vsum / num);
|
||||
*mnu = (usum / wgt);
|
||||
*mnv = (vsum / wgt);
|
||||
|
||||
if (qc(*mnu) && qc(*mnv)) {
|
||||
*wdir = angle(*mnu, *mnv);
|
||||
|
@ -458,8 +458,8 @@ float helicity(float lower, float upper, float sdir, float sspd,
|
|||
if (upper == -1 || lower == -1) {
|
||||
ix1 = i_hght(esfc(50.0), I_PRES);
|
||||
if (!qc(ix1)) {
|
||||
//fprintf(stderr,
|
||||
// "helicity: effective surface not found in sounding.\n");
|
||||
fprintf(stderr,
|
||||
"helicity: effective surface not found in sounding.\n");
|
||||
return RMISSD;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -266,8 +266,8 @@ void posneg_wetbulb(float start, float *pos, float *neg, float *top, float *bot)
|
|||
}
|
||||
tote += lyre;
|
||||
|
||||
printf("%4.0f - %4.0f E=%6.0f TOT=%6.0f Top=%6.0f Bot=%6.0f\n",
|
||||
pe1, pe2, lyre, tote, ptop, pbot);
|
||||
// printf("%4.0f - %4.0f E=%6.0f TOT=%6.0f Top=%6.0f Bot=%6.0f\n",
|
||||
// pe1, pe2, lyre, tote, ptop, pbot);
|
||||
}
|
||||
|
||||
pelast = pe1;
|
||||
|
@ -283,12 +283,12 @@ void posneg_wetbulb(float start, float *pos, float *neg, float *top, float *bot)
|
|||
*neg = totn;
|
||||
*top = ptop;
|
||||
*bot = pbot;
|
||||
printf("Tot= %.0f J/kg Pos= %.0f J/kg Neg= %.0f J/kg\n",
|
||||
tote, totp, totn);
|
||||
printf("Top= %.0f Bot= %.0f\n", ptop, pbot);
|
||||
//printf("Tot= %.0f J/kg Pos= %.0f J/kg Neg= %.0f J/kg\n",
|
||||
// tote, totp, totn);
|
||||
//printf("Top= %.0f Bot= %.0f\n", ptop, pbot);
|
||||
}
|
||||
else {
|
||||
printf("Warm/Cold Layers not found.\n" );
|
||||
//printf("Warm/Cold Layers not found.\n" );
|
||||
*pos = 0;
|
||||
*neg = 0;
|
||||
*top = 0;
|
||||
|
@ -404,8 +404,8 @@ void posneg_temperature(float start, float *pos, float *neg, float *top,
|
|||
|
||||
tote += lyre;
|
||||
|
||||
printf("%4.0f - %4.0f E=%6.0f TOT=%6.0f Top=%6.0f Bot=%6.0f\n",
|
||||
pe1, pe2, lyre, tote, ptop, pbot);
|
||||
// printf("%4.0f - %4.0f E=%6.0f TOT=%6.0f Top=%6.0f Bot=%6.0f\n",
|
||||
//pe1, pe2, lyre, tote, ptop, pbot);
|
||||
}
|
||||
|
||||
pelast = pe1;
|
||||
|
@ -421,12 +421,12 @@ void posneg_temperature(float start, float *pos, float *neg, float *top,
|
|||
*neg = totn;
|
||||
*top = ptop;
|
||||
*bot = pbot;
|
||||
printf("Tot= %.0f J/kg Pos= %.0f J/kg Neg= %.0f J/kg\n",
|
||||
tote, totp, totn);
|
||||
printf("Top= %.0f Bot= %.0f\n", ptop, pbot);
|
||||
// printf("Tot= %.0f J/kg Pos= %.0f J/kg Neg= %.0f J/kg\n",
|
||||
// tote, totp, totn);
|
||||
//printf("Top= %.0f Bot= %.0f\n", ptop, pbot);
|
||||
}
|
||||
else {
|
||||
printf ("Warm/Cold Layers not found.\n" );
|
||||
//printf ("Warm/Cold Layers not found.\n" );
|
||||
*pos = 0;
|
||||
*neg = 0;
|
||||
*top = 0;
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#include "Sndglib/sndglib.h"
|
||||
#define cavesars cavesars_
|
||||
#define cavespnsharp cavespnsharp_
|
||||
#define sars sars_
|
||||
#define hailcast1 hailcast1_
|
||||
void cavesars(float *, float *, float * , float *, float *, float *, float *, float *, float *, int *, float *, float *, float *, float *, char *[15], float *[15], char *[80],int *);
|
||||
void cavespnsharp(float *, float *, float * , float *, float *, float *, int *, float *, float *, char *[15], float *[15], char *[80],
|
||||
|
@ -152,15 +153,22 @@ typedef struct sarsInfoStr
|
|||
int numHailstr; //max=12
|
||||
char hailStr[SARS_STRING_LINES][SARS_STRING_LEN];
|
||||
int hailStrColor[SARS_STRING_LINES];
|
||||
//char sighailStr[2][SARS_STRING_LEN];
|
||||
//int sighailStrColor;
|
||||
int numsupcellstr; //max=12
|
||||
char supcellStr[SARS_STRING_LINES][SARS_STRING_LEN];
|
||||
int supcellStrColor[SARS_STRING_LINES];
|
||||
//char torStr[2][SARS_STRING_LEN];
|
||||
//int torStrColor;
|
||||
} SarsInfoStr;
|
||||
|
||||
#define HAIL_STRING_LEN 80
|
||||
#define HAIL_STRING_LINES 8
|
||||
typedef struct hailInfoStr
|
||||
{
|
||||
char reportHailStr[10];
|
||||
int matches;// 0 means no match
|
||||
int member; // 0 means No Convecting members
|
||||
char hailStr[HAIL_STRING_LINES][HAIL_STRING_LEN];
|
||||
int hailStrColor[HAIL_STRING_LINES];
|
||||
} HailInfoStr;
|
||||
|
||||
struct Sounding staticSounding;
|
||||
|
||||
float * dataPtr[NLEVEL];
|
||||
|
@ -267,7 +275,6 @@ int populateSndgDataStatic(CaveSndgParms snDataArray[], int arraySize, int data
|
|||
s = getSoundingAndInit( minArraySize);
|
||||
s->datatype = datatype;
|
||||
|
||||
|
||||
/* Populate data*/
|
||||
for (i=0;i<minArraySize;i++)
|
||||
{
|
||||
|
@ -1452,7 +1459,7 @@ void getWinterInfo( WinterInfoStr * winterInfo )
|
|||
short phase;
|
||||
char st[100];
|
||||
struct _ptype ptype1;
|
||||
//char pt[80];
|
||||
memset(winterInfo,0, sizeof(WinterInfoStr));
|
||||
|
||||
tIndex = getParmIndex("TEMP");
|
||||
pIndex = getParmIndex("PRES");
|
||||
|
@ -1721,14 +1728,17 @@ void getFireInfo(FireInfoStr * fireInfo)
|
|||
* All original BigNsharp plotting are removed.
|
||||
*************************************************************/
|
||||
{
|
||||
float ix1, ix2, ix3, ix4, pres, h2, p1, p2, sfctemp, sfcdwpt, sfcpres, sfcrh;
|
||||
short oldlplchoice, pIndex, zIndex, tIndex;
|
||||
float ix1, ix2, ix3, ix4, pres, h2, p1, p2, sfctemp, sfcdwpt, sfcpres, sfcrh,ws,wd;
|
||||
short oldlplchoice, pIndex, zIndex, tIndex, wsIndex, wdIndex;
|
||||
Parcel pcl;
|
||||
|
||||
memset(fireInfo,0, sizeof(FireInfoStr));
|
||||
oldlplchoice = lplvals.flag;
|
||||
tIndex = getParmIndex("TEMP");
|
||||
pIndex = getParmIndex("PRES");
|
||||
zIndex = getParmIndex("HGHT");
|
||||
wsIndex = getParmIndex("SPED");
|
||||
wdIndex = getParmIndex("DRCT");
|
||||
|
||||
|
||||
define_parcel(1, 0);
|
||||
|
@ -1781,8 +1791,16 @@ void getFireInfo(FireInfoStr * fireInfo)
|
|||
if ((ix1 < 0.5) && (pcl.bplus > 50) && (sfcrh < 35)){
|
||||
fireInfo->pwColor = 2;
|
||||
}
|
||||
else
|
||||
fireInfo->pwColor = 31;
|
||||
sprintf( fireInfo->pw, "PW = %s", qc2( ix1, "in", 2 ));
|
||||
max_wind(&ix1, &ix2, &ix3, -1, p2);
|
||||
//Chin:06062014 max_wind() will crash if sfc layer wind not available, therefore add the following checking
|
||||
wd = sndg[sfc()][wdIndex];
|
||||
ws = sndg[sfc()][wsIndex];
|
||||
if(wd<0 || ws < 0)
|
||||
ix3 = -1;
|
||||
else
|
||||
max_wind(&ix1, &ix2, &ix3, -1, p2);
|
||||
if (ix3 < 0)
|
||||
strcpy( fireInfo->blMax, "BL max = M");
|
||||
else{
|
||||
|
@ -1794,6 +1812,7 @@ void getFireInfo(FireInfoStr * fireInfo)
|
|||
else fireInfo->blMaxColor =8;
|
||||
sprintf( fireInfo->blMax, "BL max = %4.0f/%.0f", ix2, ix3);
|
||||
}
|
||||
|
||||
ix3 = fosberg(&ix4);
|
||||
if (ix3 < 0)
|
||||
strcpy( fireInfo->fosberg, "Fosberg FWI = M");
|
||||
|
@ -1840,16 +1859,17 @@ void getSarsInfo(SarsInfoStr * sarsInfo)
|
|||
float srh3, matches, p1, p2, haillist[15], suplist[15], oldlplpres;
|
||||
float mucp, mlcp, mllcl, srh1, shr3k, shr6k, shr9k;
|
||||
short txtlin, txtrow, oldlplchoice, pIndex, zIndex, tIndex, trow2, i;
|
||||
short tdIndex, nsndgs, trx, j, temp_mark, y, totalsndgs;
|
||||
short tdIndex, nsndgs, trx, j, temp_mark, y;
|
||||
int totalsndgs;
|
||||
char st[100], st1[20], st2[20], sndglist[15][15], tempStr[16];
|
||||
char tortags[3][10] = { "NONTOR", "WEAKTOR", "SIGTOR" };
|
||||
Parcel pcl;
|
||||
Parcel pcl2;
|
||||
|
||||
//initialize SarsInfoStr
|
||||
memset(sarsInfo,0, sizeof(SarsInfoStr));
|
||||
sarsInfo->numHailstr =SARS_STRING_LINES;
|
||||
sarsInfo->numsupcellstr=SARS_STRING_LINES;
|
||||
//memset(sarsInfo->hailStr,'\0', 600);
|
||||
|
||||
tIndex = getParmIndex("TEMP");
|
||||
pIndex = getParmIndex("PRES");
|
||||
|
@ -2065,13 +2085,13 @@ void getSarsInfo(SarsInfoStr * sarsInfo)
|
|||
}
|
||||
/*************************************************************
|
||||
* Chin Note: this function is derived from show_skewtpage1()
|
||||
* plus show_hail_new() of xwvid3.c
|
||||
* and show_hail_new() of xwvid3.c
|
||||
* of BigNsharp by John Hart NSSFC KCMO
|
||||
* Chin: Rewrite code to get all computed parameters/string for
|
||||
* CAVE.
|
||||
* All original BigNsharp gui functions are removed.
|
||||
*************************************************************/
|
||||
void getHailInfo(){
|
||||
void getHailInfo(HailInfoStr * hailInfo){
|
||||
float hvars[30], h2[100];
|
||||
float ix1, ix2, ix3, ix4, mumixr,esicat;
|
||||
float T0, Td0, el, pbot, ptop, base, depth, effdep, ebs;
|
||||
|
@ -2082,17 +2102,17 @@ void getHailInfo(){
|
|||
float srh3, matches, matches2, avsize, p1, haillist[15];
|
||||
short txtlin, txtrow, oldlplchoice, trow2, i, j;
|
||||
short nsndgs, trx, temp_mark, y;
|
||||
char st[100], st1[20], sndglist[15][15];
|
||||
char st1[20], sndglist[15][15];
|
||||
int totalsndgs;
|
||||
Parcel pcl;
|
||||
Parcel pcl2;
|
||||
|
||||
// Chin: use memset() instead
|
||||
memset(hailInfo, 0, sizeof(HailInfoStr));
|
||||
write_hail_file("HAIL");
|
||||
memset(h2, 0, sizeof(h2));
|
||||
memset(hvars,0, sizeof(hvars));
|
||||
//was::for (i=0;i<100;i++) {h2[i] = 0.0;}
|
||||
//was::for (i=0;i<30;i++) {hvars[i] = 0.0;}
|
||||
|
||||
/* Compute Effective Vertical Shear. Default to 6km if not available */
|
||||
|
||||
//Compute Effective Vertical Shear. Default to 6km if not available */
|
||||
ix1 = parcel( -1, -1, lplvals.pres, lplvals.temp, lplvals.dwpt, &pcl);
|
||||
pIndex = getParmIndex("PRES");
|
||||
tIndex = getParmIndex("TEMP");
|
||||
|
@ -2102,8 +2122,8 @@ void getHailInfo(){
|
|||
el = 12000.0;
|
||||
if (pcl.bplus >= 100) {
|
||||
el = agl(i_hght(pcl.elpres, I_PRES));
|
||||
/* 24 Mar 2008 */
|
||||
/* effective_inflow_layer(100, -250, &pbot, &ptop);*/
|
||||
// 24 Mar 2008 */
|
||||
// effective_inflow_layer(100, -250, &pbot, &ptop);*/
|
||||
}
|
||||
base = agl(i_hght(p_bot, I_PRES));
|
||||
depth = (el - base);
|
||||
|
@ -2113,14 +2133,16 @@ void getHailInfo(){
|
|||
//printf("Shear = %.1f kt %.1f mps\nEBS = %.6f\nDepth = %.1f m\n", ix4, kt_to_mps(ix4), ebs, effdep);
|
||||
T0 = sndg[sfc()][tIndex];
|
||||
Td0 = sndg[sfc()][tdIndex];
|
||||
mumixr = mixratio(lplvals.pres, lplvals.dwpt);
|
||||
hailcast1(&T0, &Td0, &ebs, &hvars, &mumixr, &esicat);
|
||||
|
||||
h2[0]=1;
|
||||
h2[1]=0;
|
||||
for (i=0;i<=30;i++)
|
||||
for (i=0;i<30;i++)
|
||||
{
|
||||
printf( "HVARS[%d] = %f\n", i, hvars[i]);
|
||||
//printf( "HVARS[%d] = %f\n", i, hvars[i]);
|
||||
h2[i+2] = hvars[i];
|
||||
//printf( "h2[%d] = %f\n", i, h2[i]);
|
||||
}
|
||||
//CHin Note::: Above code are from show_skewtpage1(). It does some parameters setting before calling show_hail_new().
|
||||
//Chin note::: From here down are rewriting code of show_hail_new(&h2);
|
||||
|
@ -2139,75 +2161,43 @@ void getHailInfo(){
|
|||
ix1 = parcel( -1, -1, sfcpres, sfctemp, sfcdwpt, &pcl);
|
||||
|
||||
// ----- Hail Model Output -----
|
||||
// Chin:: resume work from here...
|
||||
set_font(4);
|
||||
setcolor(31);
|
||||
sprintf(st, "Hailcast1 --> (%.0f convecting) T/Td= %.0fF/%.0fF Storm Cat: %.0f of 4", h2[18], ctof(h2[2]), ctof(h2[3]),h2[25]);
|
||||
outgtext ( st, txtlin, txtrow );
|
||||
sprintf(hailInfo->hailStr[0], "Hailcast1 --> (%.0f convecting) T/Td= %.0fF/%.0fF Storm Cat: %.0f of 4", h2[18], ctof(h2[2]), ctof(h2[3]),h2[25]);
|
||||
hailInfo->hailStrColor[0] = 31;
|
||||
|
||||
if (h2[24] >= 1.00 && h2[18] >= 1) setcolor(3);
|
||||
if (h2[24] >= 1.95) setcolor(2);
|
||||
if (h2[24] >= 1.00 && h2[18] >= 1) hailInfo->hailStrColor[1] = 3;
|
||||
if (h2[24] >= 1.95) hailInfo->hailStrColor[1] = 2;
|
||||
sprintf(hailInfo->hailStr[1], "Avg: %.1f in. Max: %.1f in. Min: %.1f in. SIG = %.0f SVR = %.0f ", h2[19], h2[20],h2[21],h2[22], h2[23]);
|
||||
|
||||
txtrow += 15;
|
||||
sprintf(st, "Avg: %.1f in. Max: %.1f in. Min: %.1f in. SIG = %.0f SVR = %.0f ", h2[19], h2[20],h2[21],h2[22], h2[23]);
|
||||
outgtext ( st, txtlin, txtrow );
|
||||
|
||||
txtrow +=20;
|
||||
set_font(4);
|
||||
setcolor(31);
|
||||
if(h2[4] == 0) setcolor(31);
|
||||
sprintf(st, "Hailcast2 --> (%.0f convecting) T/Td= %.0fF/%.0fF Storm Cat: %.0f of 4", h2[4], ctof(h2[2]), ctof(h2[3]),h2[17]);
|
||||
outgtext ( st, txtlin, txtrow );
|
||||
|
||||
if (h2[15] >= 1.00 && h2[4] >= 1) setcolor(3);
|
||||
if (h2[15] >= 1.95) setcolor(2);
|
||||
hailInfo->hailStrColor[2] = 31;//setcolor(31);
|
||||
sprintf(hailInfo->hailStr[2], "Hailcast2 --> (%.0f convecting) T/Td= %.0fF/%.0fF Storm Cat: %.0f of 4", h2[4], ctof(h2[2]), ctof(h2[3]),h2[17]);
|
||||
|
||||
if (h2[15] >= 1.00 && h2[4] >= 1) hailInfo->hailStrColor[3] = 3;
|
||||
if (h2[15] >= 1.95) hailInfo->hailStrColor[3] = 2;
|
||||
if(h2[4] == 0) h2[15] = 0;
|
||||
sprintf(st, "Avg: %.1f in. Max: %.1f in. Min: %.1f in. SIG = %.0f SVR = %.0f ", h2[5], h2[6],h2[7],h2[8], h2[9]);
|
||||
txtrow += 14;
|
||||
outgtext ( st, txtlin, txtrow );
|
||||
|
||||
|
||||
|
||||
txtrow += 15;
|
||||
setcolor(31);
|
||||
moveto(txtlin, txtrow);
|
||||
lineto(txtlin+340, txtrow);
|
||||
|
||||
|
||||
|
||||
setcolor(31);
|
||||
set_font(6);
|
||||
sprintf(hailInfo->hailStr[3], "Avg: %.1f in. Max: %.1f in. Min: %.1f in. SIG = %.0f SVR = %.0f ", h2[5], h2[6],h2[7],h2[8], h2[9]);
|
||||
if (h2[4] == 0 && h2[18] == 0) {
|
||||
sprintf(st, "No Convecting Members");
|
||||
txtrow += 6;
|
||||
ix1 = (350 - getgtextextent(st))/2;
|
||||
outgtext(st, txtlin + ix1 - 5, txtrow);
|
||||
hailInfo->hailStrColor[4] = 31;
|
||||
sprintf(hailInfo->hailStr[4], "No Convecting Members");
|
||||
hailInfo->member = 0;
|
||||
hailInfo->hailStrColor[5] = 31;
|
||||
sprintf(hailInfo->hailStr[5], "");
|
||||
}else{
|
||||
// If convecting members then...........
|
||||
txtrow +=4;
|
||||
if (h2[24] < 1.00) setcolor(31);
|
||||
if (h2[24] >= 1.00 && h2[18] >= 1) setcolor(3);
|
||||
if (h2[24] >= 1.95) setcolor(2);
|
||||
sprintf(st, "Hailcast1---> %.1f", h2[24]);
|
||||
ix1 = (350 - getgtextextent(st))/2;
|
||||
outgtext(st, txtlin + ix1 - 85, txtrow);
|
||||
hailInfo->member = 1;
|
||||
if (h2[24] < 1.00) hailInfo->hailStrColor[4] = 31;
|
||||
if (h2[24] >= 1.00 && h2[18] >= 1) hailInfo->hailStrColor[4] = 3;
|
||||
if (h2[24] >= 1.95) hailInfo->hailStrColor[4] = 2;
|
||||
sprintf(hailInfo->hailStr[4], "Hailcast1---> %.1f", h2[24]);
|
||||
|
||||
if (h2[15] < 1.00) setcolor(31);
|
||||
if (h2[15] >= 1.00 && h2[4] >= 1) setcolor(3);
|
||||
if (h2[15] >= 1.95) setcolor(2);
|
||||
sprintf(st, "Hailcast2---> %.1f",h2[15]);
|
||||
ix1 = (350 - getgtextextent(st))/2;
|
||||
outgtext(st, txtlin + ix1 + 70, txtrow);
|
||||
if (h2[15] < 1.00) hailInfo->hailStrColor[5] = 31;
|
||||
if (h2[15] >= 1.00 && h2[4] >= 1) hailInfo->hailStrColor[5] = 3;
|
||||
if (h2[15] >= 1.95) hailInfo->hailStrColor[5] = 2;
|
||||
sprintf(hailInfo->hailStr[5], "Hailcast2---> %.1f",h2[15]);
|
||||
|
||||
}
|
||||
|
||||
txtrow += 18;
|
||||
setcolor(31);
|
||||
moveto(txtlin, txtrow);
|
||||
lineto(txtlin+340, txtrow);
|
||||
// Compute SARS Data
|
||||
|
||||
/* Compute SARS Data */
|
||||
define_parcel(4, 100);
|
||||
mlcape = parcel( -1, -1, lplvals.pres, lplvals.temp, lplvals.dwpt, &pcl);
|
||||
define_parcel(3, 400);
|
||||
|
@ -2232,363 +2222,95 @@ void getHailInfo(){
|
|||
srh3 = helicity(p_bot, p_top, st_dir, st_spd, &ix2, &ix3);
|
||||
}
|
||||
|
||||
|
||||
sars(&mumixr, &mucape, &t500, &lr75, &shr6, &shr9, &shr3, &ship, &srh3, &nsndgs, &matches, &p1, &avsize, &matches2, sndglist, &haillist, &sars_filename);
|
||||
|
||||
for (i=0; i < 15; i++) sndglist[i][14] = '\0';
|
||||
printf( "%d High Quality HAIL Matches were found.\n", nsndgs);
|
||||
for (i=0;i<nsndgs;i++) { printf( "HAIL match = %s %.2f\n", sndglist[i], haillist[i]); }
|
||||
printf( "%.0f Total matches were found.\n", matches);
|
||||
printf( "%.0f Percent were SIG HAIL.\n", p1);
|
||||
cavesars(&mumixr, &mucape, &t500, &lr75, &shr6, &shr9, &shr3, &ship, &srh3, &nsndgs, &matches, &p1, &avsize, &matches2, sndglist, &haillist, &sars_filename,&totalsndgs);
|
||||
|
||||
|
||||
/* ----- SARS matches ----- */
|
||||
/* SARS hail size */
|
||||
txtrow += 6;
|
||||
set_font(4);
|
||||
setcolor(5);
|
||||
strcpy( st, "* * * SARS HAIL SIZE * * *" );
|
||||
ix1 = (350 - getgtextextent(st))/2;
|
||||
outgtext(st, txtlin + ix1 - 5, txtrow);
|
||||
|
||||
txtrow += 15;
|
||||
set_font(6);
|
||||
// ----- SARS matches -----
|
||||
// SARS hail size
|
||||
hailInfo->matches= matches2;
|
||||
if (matches2 == 0) {
|
||||
setcolor(31);
|
||||
sprintf(st, "No Matches");
|
||||
ix1 = (350 - getgtextextent(st))/2;
|
||||
outgtext ( st, txtlin + ix1 - 5, txtrow );
|
||||
hailInfo->hailStrColor[6] = 31;
|
||||
sprintf(hailInfo->hailStr[6], "No Matches");
|
||||
hailInfo->hailStrColor[7] = 31;
|
||||
sprintf(hailInfo->hailStr[7], "");
|
||||
}
|
||||
if (matches2 == 1 || avsize <= 1.49) {
|
||||
hailInfo->hailStrColor[6] = 31;
|
||||
hailInfo->hailStrColor[7] = 31;
|
||||
}
|
||||
if (matches2 >= 2 && (avsize < 2.06 && avsize > 1.49)){
|
||||
hailInfo->hailStrColor[6] = 3;
|
||||
hailInfo->hailStrColor[7] = 3;
|
||||
}
|
||||
if (matches2 >= 2 && avsize >= 2.06) {
|
||||
hailInfo->hailStrColor[6] = 2;
|
||||
hailInfo->hailStrColor[7] = 2;
|
||||
}
|
||||
if (matches2 == 1 || avsize <= 1.49) setcolor(31);
|
||||
if (matches2 >= 2 && (avsize < 2.06 && avsize > 1.49)) setcolor(3);
|
||||
if (matches2 >= 2 && avsize >= 2.06) setcolor(2);
|
||||
if (matches2 >= 1) {
|
||||
set_font(6);
|
||||
if (avsize <= 1.49) {
|
||||
sprintf(st, "Best guess from SARS = < 1 inch");
|
||||
ix1 = (350 - getgtextextent(st))/2;
|
||||
outgtext ( st, txtlin + ix1 - 5, txtrow );
|
||||
sprintf(hailInfo->hailStr[6], "Best guess from SARS = < 1 inch");
|
||||
}
|
||||
if ((avsize > 1.49) && (avsize <= 1.68)) {
|
||||
sprintf(st, "Best guess from SARS = 1 - 1.5 inch");
|
||||
ix1 = (350 - getgtextextent(st))/2;
|
||||
outgtext ( st, txtlin + ix1 - 5, txtrow );
|
||||
sprintf(hailInfo->hailStr[6], "Best guess from SARS = 1 - 1.5 inch");
|
||||
}
|
||||
if ((avsize > 1.68) && (avsize <= 2.06)) {
|
||||
sprintf(st, "Best guess from SARS = 1.75 inch");
|
||||
ix1 = (350 - getgtextextent(st))/2;
|
||||
outgtext ( st, txtlin + ix1 - 5, txtrow );
|
||||
sprintf(hailInfo->hailStr[6], "Best guess from SARS = 1.75 inch");
|
||||
}
|
||||
if ((avsize > 2.06) && (avsize <= 2.39)) {
|
||||
sprintf(st, "Best guess from SARS = 2 inch");
|
||||
ix1 = (350 - getgtextextent(st))/2;
|
||||
outgtext ( st, txtlin + ix1 - 5, txtrow );
|
||||
sprintf(hailInfo->hailStr[6], "Best guess from SARS = 2 inch");
|
||||
}
|
||||
if ((avsize > 2.39) && (avsize <= 2.52)) {
|
||||
sprintf(st, "Best guess from SARS = 2.5 inch");
|
||||
ix1 = (350 - getgtextextent(st))/2;
|
||||
outgtext ( st, txtlin + ix1 - 5, txtrow );
|
||||
sprintf(hailInfo->hailStr[6], "Best guess from SARS = 2.5 inch");
|
||||
}
|
||||
if ((avsize > 2.52) && (avsize <= 2.56)) {
|
||||
sprintf(st, "Best guess from SARS = 2.75 inch");
|
||||
ix1 = (350 - getgtextextent(st))/2;
|
||||
outgtext ( st, txtlin + ix1 - 5, txtrow );
|
||||
sprintf(hailInfo->hailStr[6], "Best guess from SARS = 2.75 inch");
|
||||
}
|
||||
if ((avsize > 2.56) && (avsize <= 2.64)) {
|
||||
sprintf(st, "Best guess from SARS = 3 - 4 inch");
|
||||
ix1 = (350 - getgtextextent(st))/2;
|
||||
outgtext ( st, txtlin + ix1 - 5, txtrow );
|
||||
sprintf(hailInfo->hailStr[6], "Best guess from SARS = 3 - 4 inch");
|
||||
}
|
||||
if (avsize > 2.64) {
|
||||
sprintf(st, "Best guess from SARS = > 4 inch");
|
||||
ix1 = (350 - getgtextextent(st))/2;
|
||||
outgtext ( st, txtlin + ix1 - 5, txtrow );
|
||||
sprintf(hailInfo->hailStr[6], "Best guess from SARS = > 4 inch");
|
||||
}
|
||||
txtrow += 18;
|
||||
set_font(4);
|
||||
sprintf(st, "AVG size = %.2f (based on %.0f matches)", avsize, matches2);
|
||||
ix1 = (350 - getgtextextent(st))/2;
|
||||
outgtext(st, txtlin + ix1 - 5, txtrow);
|
||||
sprintf(hailInfo->hailStr[7], "AVG size = %.2f (based on %.0f matches)", avsize, matches2);
|
||||
}
|
||||
|
||||
txtrow += 18;
|
||||
setcolor(31);
|
||||
moveto(txtlin, txtrow);
|
||||
lineto(txtlin+340, txtrow);
|
||||
if (matches2 > 0) {
|
||||
txtrow += 7;
|
||||
set_font(4);
|
||||
setcolor(31);
|
||||
strcpy( st, "SARS output ranges for reported sizes (white)");
|
||||
ix1 = (350 - getgtextextent(st))/2;
|
||||
outgtext(st, txtlin + ix1 - 5, txtrow);
|
||||
|
||||
txtrow += 18;
|
||||
/* SARS for reported < 1" hail */
|
||||
// SARS for reported < 1" hail
|
||||
if (avsize <= 1.49) {
|
||||
setcolor(31);
|
||||
set_font(6);
|
||||
strcpy(st, "<1");
|
||||
outgtext(st, txtlin + 60, txtrow);
|
||||
set_font(4);
|
||||
strcpy(st, "1-1.5");
|
||||
outgtext(st, txtlin + 95, txtrow);
|
||||
strcpy(st, "1.75");
|
||||
outgtext(st, txtlin + 130, txtrow);
|
||||
strcpy(st, "2");
|
||||
outgtext(st, txtlin + 165, txtrow);
|
||||
strcpy(st, "2.5");
|
||||
outgtext(st, txtlin + 200, txtrow);
|
||||
strcpy(st, "2.75");
|
||||
outgtext(st, txtlin + 235, txtrow);
|
||||
strcpy(st, "3-4");
|
||||
outgtext(st, txtlin + 270, txtrow);
|
||||
strcpy(st, ">4");
|
||||
outgtext(st, txtlin + 305, txtrow);
|
||||
setcolor(27);
|
||||
rectangle(0, txtlin + 56, txtrow - 5, txtlin + 91, txtrow + 60);
|
||||
//Chin: only report the size was set to font6 (larger font) for plotting larger font at GUI
|
||||
strcpy(hailInfo->reportHailStr, "<1");
|
||||
}
|
||||
/* SARS for reported 1-1.5" hail */
|
||||
if ((avsize > 1.49) && (avsize <= 1.68)) {
|
||||
setcolor(31);
|
||||
set_font(4);
|
||||
strcpy(st, "<1");
|
||||
outgtext(st, txtlin + 60, txtrow);
|
||||
set_font(6);
|
||||
strcpy(st, "1-1.5");
|
||||
outgtext(st, txtlin + 95, txtrow);
|
||||
set_font(4);
|
||||
strcpy(st, "1.75");
|
||||
outgtext(st, txtlin + 130, txtrow);
|
||||
strcpy(st, "2");
|
||||
outgtext(st, txtlin + 165, txtrow);
|
||||
strcpy(st, "2.5");
|
||||
outgtext(st, txtlin + 200, txtrow);
|
||||
strcpy(st, "2.75");
|
||||
outgtext(st, txtlin + 235, txtrow);
|
||||
strcpy(st, "3-4");
|
||||
outgtext(st, txtlin + 270, txtrow);
|
||||
strcpy(st, ">4");
|
||||
outgtext(st, txtlin + 305, txtrow);
|
||||
setcolor(27);
|
||||
rectangle(0, txtlin + 91, txtrow - 5, txtlin + 126, txtrow + 60);
|
||||
// SARS for reported 1-1.5" hail
|
||||
else if ((avsize > 1.49) && (avsize <= 1.68)) {
|
||||
strcpy(hailInfo->reportHailStr, "1-1.5");
|
||||
}
|
||||
/* SARS for reported 1.75" hail */
|
||||
if ((avsize > 1.68) && (avsize <= 2.06)) {
|
||||
setcolor(31);
|
||||
set_font(4);
|
||||
strcpy(st, "<1");
|
||||
outgtext(st, txtlin + 60, txtrow);
|
||||
strcpy(st, "1-1.5");
|
||||
outgtext(st, txtlin + 95, txtrow);
|
||||
set_font(6);
|
||||
strcpy(st, "1.75");
|
||||
outgtext(st, txtlin + 130, txtrow);
|
||||
set_font(4);
|
||||
strcpy(st, "2");
|
||||
outgtext(st, txtlin + 165, txtrow);
|
||||
strcpy(st, "2.5");
|
||||
outgtext(st, txtlin + 200, txtrow);
|
||||
strcpy(st, "2.75");
|
||||
outgtext(st, txtlin + 235, txtrow);
|
||||
strcpy(st, "3-4");
|
||||
outgtext(st, txtlin + 270, txtrow);
|
||||
strcpy(st, ">4");
|
||||
outgtext(st, txtlin + 305, txtrow);
|
||||
setcolor(27);
|
||||
rectangle(0, txtlin + 126, txtrow - 5, txtlin + 161, txtrow + 60);
|
||||
// SARS for reported 1.75" hail
|
||||
else if ((avsize > 1.68) && (avsize <= 2.06)) {
|
||||
strcpy(hailInfo->reportHailStr, "1.75");
|
||||
}
|
||||
/* SARS for reported 2" hail */
|
||||
if ((avsize > 2.06) && (avsize <= 2.39)) {
|
||||
setcolor(31);
|
||||
set_font(4);
|
||||
strcpy(st, "<1");
|
||||
outgtext(st, txtlin + 60, txtrow);
|
||||
strcpy(st, "1-1.5");
|
||||
outgtext(st, txtlin + 95, txtrow);
|
||||
strcpy(st, "1.75");
|
||||
outgtext(st, txtlin + 130, txtrow);
|
||||
set_font(6);
|
||||
strcpy(st, "2");
|
||||
outgtext(st, txtlin + 165, txtrow);
|
||||
set_font(4);
|
||||
strcpy(st, "2.5");
|
||||
outgtext(st, txtlin + 200, txtrow);
|
||||
strcpy(st, "2.75");
|
||||
outgtext(st, txtlin + 235, txtrow);
|
||||
strcpy(st, "3-4");
|
||||
outgtext(st, txtlin + 270, txtrow);
|
||||
strcpy(st, ">4");
|
||||
outgtext(st, txtlin + 305, txtrow);
|
||||
setcolor(27);
|
||||
rectangle(0, txtlin + 161, txtrow - 5, txtlin + 196, txtrow + 60);
|
||||
// SARS for reported 2" hail
|
||||
else if ((avsize > 2.06) && (avsize <= 2.39)) {
|
||||
strcpy(hailInfo->reportHailStr, "2");
|
||||
}
|
||||
/* SARS for reported 2.5" hail */
|
||||
if ((avsize > 2.39) && (avsize <= 2.52)) {
|
||||
setcolor(31);
|
||||
set_font(4);
|
||||
strcpy(st, "<1");
|
||||
outgtext(st, txtlin + 60, txtrow);
|
||||
strcpy(st, "1-1.5");
|
||||
outgtext(st, txtlin + 95, txtrow);
|
||||
strcpy(st, "1.75");
|
||||
outgtext(st, txtlin + 130, txtrow);
|
||||
strcpy(st, "2");
|
||||
outgtext(st, txtlin + 165, txtrow);
|
||||
set_font(6);
|
||||
strcpy(st, "2.5");
|
||||
outgtext(st, txtlin + 200, txtrow);
|
||||
set_font(4);
|
||||
strcpy(st, "2.75");
|
||||
outgtext(st, txtlin + 235, txtrow);
|
||||
strcpy(st, "3-4");
|
||||
outgtext(st, txtlin + 270, txtrow);
|
||||
strcpy(st, ">4");
|
||||
outgtext(st, txtlin + 305, txtrow);
|
||||
setcolor(27);
|
||||
rectangle(0, txtlin + 196, txtrow - 5, txtlin + 231, txtrow + 60);
|
||||
}
|
||||
/* SARS for reported 2.75" hail */
|
||||
if ((avsize > 2.52) && (avsize <= 2.56)) {
|
||||
setcolor(31);
|
||||
set_font(4);
|
||||
strcpy(st, "<1");
|
||||
outgtext(st, txtlin + 60, txtrow);
|
||||
strcpy(st, "1-1.5");
|
||||
outgtext(st, txtlin + 95, txtrow);
|
||||
strcpy(st, "1.75");
|
||||
outgtext(st, txtlin + 130, txtrow);
|
||||
strcpy(st, "2");
|
||||
outgtext(st, txtlin + 165, txtrow);
|
||||
strcpy(st, "2.5");
|
||||
outgtext(st, txtlin + 200, txtrow);
|
||||
set_font(6);
|
||||
strcpy(st, "2.75");
|
||||
outgtext(st, txtlin + 235, txtrow);
|
||||
set_font(4);
|
||||
strcpy(st, "3-4");
|
||||
outgtext(st, txtlin + 270, txtrow);
|
||||
strcpy(st, ">4");
|
||||
outgtext(st, txtlin + 305, txtrow);
|
||||
setcolor(27);
|
||||
rectangle(0, txtlin + 231, txtrow - 5, txtlin + 266, txtrow + 60);
|
||||
}
|
||||
/* SARS for reported 3-4" hail */
|
||||
if ((avsize > 2.56) && (avsize <= 2.64)) {
|
||||
setcolor(31);
|
||||
set_font(4);
|
||||
strcpy(st, "<1");
|
||||
outgtext(st, txtlin + 60, txtrow);
|
||||
strcpy(st, "1-1.5");
|
||||
outgtext(st, txtlin + 95, txtrow);
|
||||
strcpy(st, "1.75");
|
||||
outgtext(st, txtlin + 130, txtrow);
|
||||
strcpy(st, "2");
|
||||
outgtext(st, txtlin + 165, txtrow);
|
||||
strcpy(st, "2.5");
|
||||
outgtext(st, txtlin + 200, txtrow);
|
||||
strcpy(st, "2.75");
|
||||
outgtext(st, txtlin + 235, txtrow);
|
||||
set_font(6);
|
||||
strcpy(st, "3-4");
|
||||
outgtext(st, txtlin + 270, txtrow);
|
||||
set_font(4);
|
||||
strcpy(st, ">4");
|
||||
outgtext(st, txtlin + 305, txtrow);
|
||||
setcolor(27);
|
||||
rectangle(0, txtlin + 266, txtrow - 5, txtlin + 301, txtrow + 60);
|
||||
}
|
||||
/* SARS for reported >4" hail */
|
||||
if (avsize > 2.64) {
|
||||
setcolor(31);
|
||||
set_font(4);
|
||||
strcpy(st, "<1");
|
||||
outgtext(st, txtlin + 60, txtrow);
|
||||
strcpy(st, "1-1.5");
|
||||
outgtext(st, txtlin + 95, txtrow);
|
||||
strcpy(st, "1.75");
|
||||
outgtext(st, txtlin + 130, txtrow);
|
||||
strcpy(st, "2");
|
||||
outgtext(st, txtlin + 165, txtrow);
|
||||
strcpy(st, "2.5");
|
||||
outgtext(st, txtlin + 200, txtrow);
|
||||
strcpy(st, "2.75");
|
||||
outgtext(st, txtlin + 235, txtrow);
|
||||
strcpy(st, "3-4");
|
||||
outgtext(st, txtlin + 270, txtrow);
|
||||
set_font(6);
|
||||
strcpy(st, ">4");
|
||||
outgtext(st, txtlin + 305, txtrow);
|
||||
setcolor(27);
|
||||
rectangle(0, txtlin + 301, txtrow - 5, txtlin + 336, txtrow + 60);
|
||||
// SARS for reported 2.5" hail
|
||||
else if ((avsize > 2.39) && (avsize <= 2.52)) {
|
||||
strcpy(hailInfo->reportHailStr, "2.5");
|
||||
}
|
||||
//* SARS for reported 2.75" hail
|
||||
else if ((avsize > 2.52) && (avsize <= 2.56)) {
|
||||
|
||||
txtrow += 15;
|
||||
setcolor(31);
|
||||
set_font(4);
|
||||
strcpy(st, "+1 STD");
|
||||
outgtext(st, txtlin, txtrow);
|
||||
setcolor(27);
|
||||
strcpy(st, "1.9");
|
||||
outgtext(st, txtlin + 60, txtrow);
|
||||
strcpy(st, "2.0");
|
||||
outgtext(st, txtlin + 95, txtrow);
|
||||
strcpy(st, "2.3");
|
||||
outgtext(st, txtlin + 130, txtrow);
|
||||
strcpy(st, "2.8");
|
||||
outgtext(st, txtlin + 165, txtrow);
|
||||
strcpy(st, "2.9");
|
||||
outgtext(st, txtlin + 200, txtrow);
|
||||
strcpy(st, "3.0");
|
||||
outgtext(st, txtlin + 235, txtrow);
|
||||
strcpy(st, "3.0");
|
||||
outgtext(st, txtlin + 270, txtrow);
|
||||
strcpy(st, "3.0");
|
||||
outgtext(st, txtlin + 305, txtrow);
|
||||
strcpy(hailInfo->reportHailStr, "2.75");
|
||||
|
||||
txtrow += 15;
|
||||
setcolor(31);
|
||||
strcpy(st, "AVG");
|
||||
outgtext(st, txtlin, txtrow);
|
||||
setcolor(27);
|
||||
strcpy(st, "1.5");
|
||||
outgtext(st, txtlin + 60, txtrow);
|
||||
strcpy(st, "1.5");
|
||||
outgtext(st, txtlin + 95, txtrow);
|
||||
strcpy(st, "1.8");
|
||||
outgtext(st, txtlin + 130, txtrow);
|
||||
strcpy(st, "2.3");
|
||||
outgtext(st, txtlin + 165, txtrow);
|
||||
strcpy(st, "2.5");
|
||||
outgtext(st, txtlin + 200, txtrow);
|
||||
strcpy(st, "2.5");
|
||||
outgtext(st, txtlin + 235, txtrow);
|
||||
strcpy(st, "2.6");
|
||||
outgtext(st, txtlin + 270, txtrow);
|
||||
strcpy(st, "2.7");
|
||||
outgtext(st, txtlin + 305, txtrow);
|
||||
}
|
||||
//* SARS for reported 3-4" hail
|
||||
else if ((avsize > 2.56) && (avsize <= 2.64)) {
|
||||
strcpy(hailInfo->reportHailStr, "3-4");
|
||||
}
|
||||
//* SARS for reported >4" hail
|
||||
else if (avsize > 2.64) {
|
||||
|
||||
txtrow += 15;
|
||||
setcolor(31);
|
||||
strcpy(st, "-1 STD");
|
||||
outgtext(st, txtlin, txtrow);
|
||||
setcolor(27);
|
||||
strcpy(st, "1.1");
|
||||
outgtext(st, txtlin + 60, txtrow);
|
||||
strcpy(st, "1.1");
|
||||
outgtext(st, txtlin + 95, txtrow);
|
||||
strcpy(st, "1.3");
|
||||
outgtext(st, txtlin + 130, txtrow);
|
||||
strcpy(st, "1.7");
|
||||
outgtext(st, txtlin + 165, txtrow);
|
||||
strcpy(st, "2.1");
|
||||
outgtext(st, txtlin + 200, txtrow);
|
||||
strcpy(st, "2.1");
|
||||
outgtext(st, txtlin + 235, txtrow);
|
||||
strcpy(st, "2.2");
|
||||
outgtext(st, txtlin + 270, txtrow);
|
||||
strcpy(st, "2.4");
|
||||
outgtext(st, txtlin + 305, txtrow);
|
||||
strcpy(hailInfo->reportHailStr, ">4");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/* ----- Set Parcel Back ----- */
|
||||
|
|
|
@ -14,11 +14,12 @@
|
|||
# 5. Deploy the SL and add the path, e.g., AWIPS2/lib, to LD_LIBRARY_PATH
|
||||
# (in ~/.alias)
|
||||
#
|
||||
|
||||
echo $NAWIPS
|
||||
$RM *.o glibnsharp.so Sndglib/*.o
|
||||
|
||||
# CHIN was::set myLinkflags = "-L$AWIPS2/tools/lib -shared -Wl,-soname,libbignsharp.so -o libbignsharp.so"
|
||||
set myLinkflags = "-L$AWIPS2/tools/lib -L/usr1/cchen/awips2/tools/lib -shared -Wl,-soname,libbignsharp.so -o libbignsharp.so"
|
||||
#set myLinkflags = "-L$AWIPS2/tools/lib -L/usr1/cchen/awips2/tools/lib -shared -Wl,-soname,libbignsharp.so -o libbignsharp.so"
|
||||
set myLinkflags = "-L$AWIPS2/tools/lib -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6/ -shared -Wl,-soname,libbignsharp.so -o libbignsharp.so"
|
||||
set myLinktail = "-lg2c -lc $XLIBS -lz -lm"
|
||||
|
||||
#
|
||||
|
@ -74,7 +75,7 @@ echo " "
|
|||
if ( $check == "libbignsharp.so") then
|
||||
echo "****** Shared library is created ******\n "
|
||||
echo " "
|
||||
cp libbignsharp.so $DEV_BASE/workspace/gov.noaa.nws.ncep.ui.nsharp.linux32
|
||||
cp libbignsharp.so $DEV_BASE/workspace/gov.noaa.nws.ncep.ui.nsharp.linux64
|
||||
else
|
||||
echo "****** Houston, we got problems ******\n "
|
||||
endif
|
||||
|
|
|
@ -38,12 +38,9 @@
|
|||
/* WW_TYPE */
|
||||
/***************************************************************/
|
||||
|
||||
#ifndef _WIN32
|
||||
#include "xwcmn.h"
|
||||
#endif
|
||||
#include "sharp95.h"
|
||||
|
||||
#ifndef _WIN32
|
||||
short switch_modes(short mode)
|
||||
/*************************************************************/
|
||||
/* SWITCH_MODES */
|
||||
|
@ -118,7 +115,6 @@ void disp_param(char *value, short rcol, short rlin)
|
|||
outgtext(value, (rcol - getgtextextent(value)), rlin);
|
||||
}
|
||||
|
||||
#endif
|
||||
/*
|
||||
|
||||
grab_level should return an error as needed
|
||||
|
@ -159,7 +155,7 @@ short grab_level(float pres)
|
|||
}
|
||||
|
||||
|
||||
#ifndef _WIN32
|
||||
|
||||
/*NP*/
|
||||
void skewt_cursor_data( short x, short y )
|
||||
/*************************************************************/
|
||||
|
@ -171,7 +167,7 @@ void skewt_cursor_data( short x, short y )
|
|||
{
|
||||
float pres, temp, hght, ix1;
|
||||
short ii, x1, y1;
|
||||
char st[20];
|
||||
char st[80];
|
||||
short pIndex, zIndex, tIndex, tdIndex, dIndex, sIndex;
|
||||
|
||||
pIndex = getParmIndex("PRES");
|
||||
|
@ -211,12 +207,13 @@ void skewt_cursor_data( short x, short y )
|
|||
outtext( st, skv.tlx+150, y);
|
||||
/*sprintf( st, "RH = %s", qc2( relh(pres, &ix1), "%", 0 ));
|
||||
outgtext( st, skv.tlx+150, y);*/
|
||||
}
|
||||
|
||||
/* Plot a point on the hodograph for this level */
|
||||
hodo_to_pix(i_wdir(pres, I_PRES), i_wspd(pres, I_PRES), &x1, &y1);
|
||||
sprintf( st, "x -- %.0fm %4.0f/%.0f kt", agl(i_hght(pres, I_PRES)), i_wdir(pres, I_PRES), i_wspd(pres, I_PRES));
|
||||
outtext( st, x1, y1-3 );
|
||||
/* Plot a point on the hodograph for this level */
|
||||
hodo_to_pix(i_wdir(pres, I_PRES), i_wspd(pres, I_PRES), &x1, &y1);
|
||||
sprintf( st, "x -- %.0fm %4.0f/%.0f kt", agl(i_hght(pres, I_PRES)), i_wdir(pres, I_PRES), i_wspd(pres, I_PRES));
|
||||
// printf("HODO DIR/SPD , X/Y = %f/%f , %d/%d \n", i_wdir(pres, I_PRES), i_wspd(pres, I_PRES), x1, y1);
|
||||
outtext( st, x1, y1 );
|
||||
}
|
||||
|
||||
setcolor( 31 );
|
||||
sprintf( st, "%5.0fmb ", pres );
|
||||
|
@ -310,7 +307,7 @@ void hodo_cursor_data( short x, short y )
|
|||
sprintf( st, "%3.0f", ix4 );
|
||||
outtext( st, skv.brx+315, skv.tly+60 );
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
|
||||
|
@ -354,12 +351,12 @@ short get_level_pointer(float pres)
|
|||
|
||||
void bunkers_storm_motion(float *u, float *v, float *dir, float *spd)
|
||||
/*************************************************************/
|
||||
/* EFFECTIVE BUNKERS_STORM_MOTION */
|
||||
/* BUNKERS_STORM_MOTION */
|
||||
/* Rich Thompson and John Hart SPC OUN */
|
||||
/* */
|
||||
/* Calculates the motion of a right-moving supercell using */
|
||||
/* a method developed by Bunkers et. al. (2000), */
|
||||
/* modified to account for storm depth */
|
||||
/* modified to account for clearly elevated storms */
|
||||
/* */
|
||||
/* *u, *v - Storm motion vector (kt) */
|
||||
/*************************************************************/
|
||||
|
@ -370,7 +367,7 @@ void bunkers_storm_motion(float *u, float *v, float *dir, float *spd)
|
|||
/* 24 Mar 2008 */
|
||||
/* float base, el, depth, p_bot, p_top, oldlplpres, pres, mucp;*/
|
||||
|
||||
float base, el, depth, oldlplpres, pres, mucp;
|
||||
float base, el, depth, oldlplpres, pres, mucp, mucn;
|
||||
struct _parcel pcl;
|
||||
|
||||
short pIndex, oldlplchoice;
|
||||
|
@ -385,25 +382,24 @@ void bunkers_storm_motion(float *u, float *v, float *dir, float *spd)
|
|||
if (!sndg || pIndex == -1)
|
||||
return;
|
||||
|
||||
/*printf("\n beginning storm dir = %0f\n", *dir);
|
||||
printf("\n beggining storm spd = %0f\n", *spd);*/
|
||||
|
||||
/* printf("\n beginning storm dir = %0f\n", *dir);
|
||||
printf("\n beggining storm spd = %0f\n", *spd);
|
||||
*/
|
||||
oldlplchoice = lplvals.flag;
|
||||
/* printf("bunkers_storm_motion 1 calling define_parcel flag=3-pres=400...oldlplchoice=%d------------------------->\n", oldlplchoice);*/
|
||||
define_parcel(3, 400);
|
||||
mucp = parcel( -1, -1, lplvals.pres, lplvals.temp, lplvals.dwpt, &pcl);
|
||||
mucn = pcl.bminus;
|
||||
el = agl(i_hght(pcl.elpres, I_PRES));
|
||||
|
||||
if (mucp >= 100 && el > 0)
|
||||
if (mucp >= 100 && mucn > -250 && el > 0)
|
||||
{
|
||||
|
||||
/* 24 Mar 2008 */
|
||||
/* effective_inflow_layer(100,-250, &p_bot, &p_top);
|
||||
/* 8 April 2012 - need effective inflow base prior to if statements below */
|
||||
effective_inflow_layer(100,-250, &p_bot, &p_top);
|
||||
|
||||
printf("\nBunkers R inflow base = %0.1f", agl(i_hght(p_bot, I_PRES)));
|
||||
/* printf("\nBunkers R inflow base = %0.1f", agl(i_hght(p_bot, I_PRES)));
|
||||
printf("\nBunkers R inflow top = %0.1f\n", agl(i_hght(p_top, I_PRES)));
|
||||
*/
|
||||
|
||||
base = agl(i_hght(p_bot, I_PRES));
|
||||
if (base >= 750){
|
||||
depth = (el - base);
|
||||
|
@ -418,6 +414,7 @@ void bunkers_storm_motion(float *u, float *v, float *dir, float *spd)
|
|||
/* printf("\n end elayer storm dir = %0f\n", *dir);
|
||||
printf("\n end elayer storm spd = %0f\n", *spd);
|
||||
*/
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -436,7 +433,6 @@ void bunkers_storm_motion(float *u, float *v, float *dir, float *spd)
|
|||
}
|
||||
}
|
||||
*/
|
||||
|
||||
if (mucp < 100 || base < 750 || el < 0) {
|
||||
/* default to standard 0-6 km layer if cape > 100 but EL height is missing */
|
||||
/* Sfc-6km mean wind */
|
||||
|
@ -454,8 +450,7 @@ void bunkers_storm_motion(float *u, float *v, float *dir, float *spd)
|
|||
|
||||
}
|
||||
}
|
||||
if(oldlplchoice < 1 || oldlplchoice>6)
|
||||
return;
|
||||
|
||||
/* set parcel back to user selection */
|
||||
if (oldlplchoice == 1)
|
||||
pres = 0;
|
||||
|
@ -469,23 +464,21 @@ void bunkers_storm_motion(float *u, float *v, float *dir, float *spd)
|
|||
pres = user_level;
|
||||
else if (oldlplchoice == 6)
|
||||
pres = mu_layer;
|
||||
// printf("bunkers_storm_motion 2 calling define_parcel flag=%d-pres=%f------------------------->\n", oldlplchoice, pres);
|
||||
|
||||
define_parcel(oldlplchoice, pres);
|
||||
|
||||
/*printf("\n ending storm dir = %0f\n", *dir);
|
||||
printf("\n ending storm spd = %0f\n", *spd);*/
|
||||
|
||||
/* printf("\n ending storm dir = %0f\n", *dir);
|
||||
printf("\n ending storm spd = %0f\n", *spd);
|
||||
*/
|
||||
}
|
||||
|
||||
void bunkers_left_motion(float *ul, float *vl, float *dirl, float *spdl)
|
||||
/*************************************************************/
|
||||
/* EFFECTIVE BUNKERS_STORM_MOTION */
|
||||
/* BUNKERS_LEFT_MOTION */
|
||||
/* Rich Thompson and John Hart SPC OUN */
|
||||
/* */
|
||||
/* Calculates the motion of a right-moving supercell using */
|
||||
/* Calculates the motion of a left-moving supercell using */
|
||||
/* a method developed by Bunkers et. al. (2000), */
|
||||
/* modified to account for storm depth */
|
||||
/* modified to account for clearly elevated storms */
|
||||
/* */
|
||||
/* *u, *v - Storm motion vector (kt) */
|
||||
/*************************************************************/
|
||||
|
@ -496,7 +489,7 @@ void bunkers_left_motion(float *ul, float *vl, float *dirl, float *spdl)
|
|||
/* 24 Mar 2008 */
|
||||
/* float base, el, depth, p_bot, p_top, oldlplpres, pres, mucp; */
|
||||
|
||||
float base, el, depth, oldlplpres, pres, mucp;
|
||||
float base, el, depth, oldlplpres, pres, mucp, mucn;
|
||||
struct _parcel pcl;
|
||||
|
||||
short pIndex, oldlplchoice;
|
||||
|
@ -515,14 +508,14 @@ void bunkers_left_motion(float *ul, float *vl, float *dirl, float *spdl)
|
|||
|
||||
define_parcel(3, 400);
|
||||
mucp = parcel( -1, -1, lplvals.pres, lplvals.temp, lplvals.dwpt, &pcl);
|
||||
|
||||
mucn = pcl.bminus;
|
||||
el = agl(i_hght(pcl.elpres, I_PRES));
|
||||
|
||||
if (pcl.bplus >= 100 && el > 0)
|
||||
if (mucp >= 100 && mucn > -250 && el > 0)
|
||||
{
|
||||
/* 24 Mar 2008 */
|
||||
/* effective_inflow_layer(100,-250, &p_bot, &p_top);
|
||||
*/
|
||||
/* effective_inflow_layer(100,-250, &p_bot, &p_top);*/
|
||||
|
||||
|
||||
/* printf("\nBunkers L inflow base = %0.1f", agl(i_hght(p_bot, I_PRES)));
|
||||
printf("\nBunkers L inflow top = %0.1f\n", agl(i_hght(p_top, I_PRES)));
|
||||
|
@ -586,7 +579,6 @@ void bunkers_left_motion(float *ul, float *vl, float *dirl, float *spdl)
|
|||
pres = user_level;
|
||||
else if (oldlplchoice == 6)
|
||||
pres = mu_layer;
|
||||
// printf("5 calling define_parcel flag=%d-pres=%f------------------------->\n", oldlplchoice, pres);
|
||||
define_parcel(oldlplchoice, pres);
|
||||
|
||||
/* printf("\n ending storm dir = %0f\n", *dir);
|
||||
|
@ -605,105 +597,98 @@ void bunkers_left_motion(float *ul, float *vl, float *dirl, float *spdl)
|
|||
/* */
|
||||
/******************************************************************/
|
||||
{
|
||||
short i, j, tIndex, tdIndex, pIndex, oldlplchoice, ok;
|
||||
float ix1, mucape, mucin, pres, mucp, mucn;
|
||||
Parcel pcl;
|
||||
short i, j, tIndex, tdIndex, pIndex, oldlplchoice, ok;
|
||||
float ix1, mucape, mucin, pres, mucp, mucn;
|
||||
Parcel pcl;
|
||||
|
||||
oldlplchoice = lplvals.flag;
|
||||
oldlplchoice = lplvals.flag;
|
||||
|
||||
define_parcel(3, 300);
|
||||
mucp = parcel(-1, -1, lplvals.pres, lplvals.temp, lplvals.dwpt, &pcl);
|
||||
mucn = pcl.bminus;
|
||||
define_parcel(3, 300);
|
||||
mucp = parcel(-1, -1, lplvals.pres, lplvals.temp, lplvals.dwpt, &pcl);
|
||||
mucn = pcl.bminus;
|
||||
|
||||
define_parcel(3, 400);
|
||||
parcel(-1, -1, lplvals.pres, lplvals.temp, lplvals.dwpt, &pcl);
|
||||
mucape = pcl.bplus;
|
||||
mucin = pcl.bminus;
|
||||
|
||||
define_parcel(3, 400);
|
||||
parcel(-1, -1, lplvals.pres, lplvals.temp, lplvals.dwpt, &pcl);
|
||||
mucape = pcl.bplus;
|
||||
mucin = pcl.bminus;
|
||||
/* scenario where shallow buoyancy present for lesser theta parcel near ground */
|
||||
if (mucp > mucape){
|
||||
mucape = mucp;
|
||||
mucin = mucn;
|
||||
}
|
||||
|
||||
/* scenario where shallow buoyancy present for lesser theta parcel near ground */
|
||||
if (mucp > mucape){
|
||||
mucape = mucp;
|
||||
mucin = mucn;
|
||||
}
|
||||
/* set parcel back to user selection */
|
||||
if (oldlplchoice == 1)
|
||||
pres = 0;
|
||||
else if (oldlplchoice == 2)
|
||||
pres = 0;
|
||||
else if (oldlplchoice == 3)
|
||||
pres = mu_layer;
|
||||
else if (oldlplchoice == 4)
|
||||
pres = mml_layer;
|
||||
else if (oldlplchoice == 5)
|
||||
pres = user_level;
|
||||
else if (oldlplchoice == 6)
|
||||
pres = mu_layer;
|
||||
define_parcel(oldlplchoice, pres);
|
||||
|
||||
/* set parcel back to user selection */
|
||||
if (oldlplchoice == 1)
|
||||
pres = 0;
|
||||
else if (oldlplchoice == 2)
|
||||
pres = 0;
|
||||
else if (oldlplchoice == 3)
|
||||
pres = mu_layer;
|
||||
else if (oldlplchoice == 4)
|
||||
pres = mml_layer;
|
||||
else if (oldlplchoice == 5)
|
||||
pres = user_level;
|
||||
else if (oldlplchoice == 6)
|
||||
pres = mu_layer;
|
||||
//printf("6 calling define_parcel flag=%d-pres=%f------------------------->\n", oldlplchoice, pres);
|
||||
*bot = RMISSD;
|
||||
*top = RMISSD;
|
||||
|
||||
define_parcel(oldlplchoice, pres);
|
||||
if (!sndg) { return; }
|
||||
|
||||
*bot = RMISSD;
|
||||
*top = RMISSD;
|
||||
pIndex = getParmIndex("PRES");
|
||||
tIndex = getParmIndex("TEMP");
|
||||
tdIndex = getParmIndex("DWPT");
|
||||
|
||||
if (!sndg) { return; }
|
||||
if (pIndex == -1 || tIndex == -1 || tdIndex == -1) { return; }
|
||||
|
||||
pIndex = getParmIndex("PRES");
|
||||
tIndex = getParmIndex("TEMP");
|
||||
tdIndex = getParmIndex("DWPT");
|
||||
if (mucape >= 100 && mucin >= -250)
|
||||
{
|
||||
|
||||
if (pIndex == -1 || tIndex == -1 || tdIndex == -1) { return; }
|
||||
|
||||
if (mucape >= 100 && mucin >= -250)
|
||||
{
|
||||
|
||||
// printf( "Determining Effective Surface\n");
|
||||
// ----- Begin at surface and search upward for "Effective Surface" -----
|
||||
for(i=sfc();i<=numlvl-1;i++)
|
||||
{
|
||||
ix1 = parcel( -1, -1, sndg[i][pIndex], sndg[i][tIndex], sndg[i][tdIndex], &pcl);
|
||||
if((pcl.bplus >= ecape) && (pcl.bminus >= ecinh))
|
||||
{
|
||||
*bot = sndg[i][pIndex];
|
||||
// printf( "EFFSFC = %f\n", *bot);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (*bot == RMISSD) return;
|
||||
|
||||
// printf( "Determining Effective Top\n");
|
||||
// ----- Keep searching upward for the "Effective Top" -----
|
||||
for(i=sfc();i<=numlvl-1;i++)
|
||||
{
|
||||
if (sndg[i][pIndex] <= *bot)
|
||||
{
|
||||
if ((sndg[i][tIndex] != RMISSD) && (sndg[i][tdIndex] != RMISSD)) {
|
||||
ix1 = parcel( -1, -1, sndg[i][pIndex], sndg[i][tIndex], sndg[i][tdIndex], &pcl);
|
||||
//printf("%.2f %.2f %.2f - %.2f %.2f\n", sndg[i][pIndex], sndg[i][tIndex], sndg[i][tdIndex], pcl.bplus, pcl.bminus);
|
||||
if((pcl.bplus <= ecape) || (pcl.bminus <= ecinh))
|
||||
//check for missing T/Td data with significant wind levels in obs soundings
|
||||
{
|
||||
ok = 0;
|
||||
j=1;
|
||||
|
||||
while (!ok && i-j >=0 && i-j <= numlvl-1) {
|
||||
if ((sndg[i-j][tIndex] != RMISSD) && (sndg[i-j][tdIndex] != RMISSD)) { ok=1; } else { j++; }
|
||||
}
|
||||
if(i-j >=0 && i-j <= numlvl-1)
|
||||
*top = sndg[i-j][pIndex];
|
||||
//printf("inflow top = %f\n", *top);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
// printf( "EIL - %f\n", *bot);
|
||||
/* printf( "Determining Effective Surface\n"); */
|
||||
/* ----- Begin at surface and search upward for "Effective Surface" ----- */
|
||||
for(i=sfc();i<=numlvl-1;i++)
|
||||
{
|
||||
ix1 = parcel( -1, -1, sndg[i][pIndex], sndg[i][tIndex], sndg[i][tdIndex], &pcl);
|
||||
if((pcl.bplus >= ecape) && (pcl.bminus >= ecinh))
|
||||
{
|
||||
*bot = sndg[i][pIndex];
|
||||
/* printf( "EFFSFC = %f\n", *bot); */
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (*bot == RMISSD) return;
|
||||
|
||||
/* printf( "Determining Effective Top\n"); */
|
||||
/* ----- Keep searching upward for the "Effective Top" ----- */
|
||||
for(i=sfc();i<=numlvl-1;i++)
|
||||
{
|
||||
if (sndg[i][pIndex] <= *bot)
|
||||
{
|
||||
if ((sndg[i][tIndex] != RMISSD) && (sndg[i][tdIndex] != RMISSD)) {
|
||||
ix1 = parcel( -1, -1, sndg[i][pIndex], sndg[i][tIndex], sndg[i][tdIndex], &pcl);
|
||||
/*printf("%.2f %.2f %.2f - %.2f %.2f\n", sndg[i][pIndex], sndg[i][tIndex], sndg[i][tdIndex], pcl.bplus, pcl.bminus);*/
|
||||
if((pcl.bplus <= ecape) || (pcl.bminus <= ecinh))
|
||||
/* check for missing T/Td data with significant wind levels in obs soundings */
|
||||
{
|
||||
ok = 0;
|
||||
j=1;
|
||||
while (!ok) {
|
||||
if ((sndg[i-j][tIndex] != RMISSD) && (sndg[i-j][tdIndex] != RMISSD)) { ok=1; } else { j++; }
|
||||
}
|
||||
*top = sndg[i-j][pIndex];
|
||||
/*printf("inflow top = %f\n", *top);*/
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/* printf( "EIL - %f\n", *bot);
|
||||
*/ }
|
||||
|
||||
float scp(float stdir, float stspd)
|
||||
/***************************************************************/
|
||||
|
@ -723,7 +708,7 @@ float scp(float stdir, float stspd)
|
|||
|
||||
short oldlplchoice;
|
||||
struct _parcel pcl;
|
||||
//fprintf(stderr,"scp called wdir=%f, wspd=%f\n", stdir, stspd);
|
||||
|
||||
idxp = getParmIndex("PRES");
|
||||
|
||||
oldlplchoice = lplvals.flag;
|
||||
|
@ -795,8 +780,6 @@ float scp(float stdir, float stspd)
|
|||
pres = user_level;
|
||||
else if (oldlplchoice == 6)
|
||||
pres = mu_layer;
|
||||
//printf("7 calling define_parcel flag=%d-pres=%f------------------------->\n", oldlplchoice, pres);
|
||||
|
||||
define_parcel(oldlplchoice, pres);
|
||||
|
||||
return scp_new;
|
||||
|
@ -805,7 +788,7 @@ float scp(float stdir, float stspd)
|
|||
float sigtorn_fixed(float stdir, float stspd)
|
||||
/***************************************************************/
|
||||
/* */
|
||||
/* WAF 2003 Significant Tornado Parameter (fixed layer) */
|
||||
/* Significant Tornado Parameter (fixed layer) */
|
||||
/* Rich Thompson SPC OUN */
|
||||
/* Adapted to sbCAPE and fixed layer shear terms */
|
||||
/***************************************************************/
|
||||
|
@ -858,8 +841,6 @@ float sigtorn_fixed(float stdir, float stspd)
|
|||
pres = user_level;
|
||||
else if (oldlplchoice == 6)
|
||||
pres = mu_layer;
|
||||
//printf("8 calling define_parcel flag=%d-pres=%f------------------------->\n", oldlplchoice, pres);
|
||||
|
||||
define_parcel(oldlplchoice, pres);
|
||||
|
||||
return stpf;
|
||||
|
@ -962,13 +943,66 @@ float sigtorn(float stdir, float stspd)
|
|||
pres = user_level;
|
||||
else if (oldlplchoice == 6)
|
||||
pres = mu_layer;
|
||||
// printf("9 calling define_parcel flag=%d-pres=%f------------------------->\n", oldlplchoice, pres);
|
||||
|
||||
define_parcel(oldlplchoice, pres);
|
||||
|
||||
return stp;
|
||||
}
|
||||
|
||||
|
||||
float sigtorn_tc(float stdir, float stspd)
|
||||
/****************************************************************/
|
||||
/* */
|
||||
/* Eastin et al. (2012) Tropical Cyclone Tornado Parameter */
|
||||
/* Rich Thompson SPC OUN */
|
||||
/* */
|
||||
/* TCTP - modeled after WAF 2003 version of STP */
|
||||
/* uses 0-1 km SRH, 0-3 km bulk shear, and MLLCL height */
|
||||
/* in areas with MLCAPE > 0 */
|
||||
/****************************************************************/
|
||||
{
|
||||
float ix1, ix2, ix3, ix4, srh1, shr3, mlcp, mllclh, pres, tctp;
|
||||
short pIndex, oldlplchoice;
|
||||
struct _parcel pcl;
|
||||
|
||||
oldlplchoice = lplvals.flag;
|
||||
|
||||
pIndex = getParmIndex("PRES");
|
||||
tctp = 0.0;
|
||||
|
||||
/* mlCAPE and LCL */
|
||||
define_parcel(4,100);
|
||||
ix1 = parcel( -1, -1, lplvals.pres, lplvals.temp, lplvals.dwpt, &pcl);
|
||||
mlcp = pcl.bplus;
|
||||
mllclh = agl(i_hght(pcl.lclpres, I_PRES));
|
||||
|
||||
/* 0-3 km bulk shear and 0-1 km SRH */
|
||||
wind_shear(sndg[sfc()][pIndex], i_pres(msl(3000)), &ix1, &ix2, &ix3, &shr3);
|
||||
srh1 = helicity(0, 1000, st_dir, st_spd, &ix2, &ix3);
|
||||
|
||||
if (mlcp > 0) {
|
||||
tctp = (srh1/40) * (shr3/23) * ((2000-mllclh)/1400);
|
||||
}
|
||||
if (tctp < 0) tctp = 0;
|
||||
|
||||
/* set parcel back to user selection */
|
||||
if (oldlplchoice == 1)
|
||||
pres = 0;
|
||||
else if (oldlplchoice == 2)
|
||||
pres = 0;
|
||||
else if (oldlplchoice == 3)
|
||||
pres = mu_layer;
|
||||
else if (oldlplchoice == 4)
|
||||
pres = mml_layer;
|
||||
else if (oldlplchoice == 5)
|
||||
pres = user_level;
|
||||
else if (oldlplchoice == 6)
|
||||
pres = mu_layer;
|
||||
define_parcel(oldlplchoice, pres);
|
||||
|
||||
return tctp;
|
||||
}
|
||||
|
||||
|
||||
float sigtorn_test(float stdir, float stspd)
|
||||
/***************************************************************/
|
||||
/* */
|
||||
|
@ -1055,8 +1089,6 @@ float sigtorn_test(float stdir, float stspd)
|
|||
pres = user_level;
|
||||
else if (oldlplchoice == 6)
|
||||
pres = mu_layer;
|
||||
// printf("10 calling define_parcel flag=%d-pres=%f------------------------->\n", oldlplchoice, pres);
|
||||
|
||||
define_parcel(oldlplchoice, pres);
|
||||
|
||||
return stp;
|
||||
|
@ -1166,8 +1198,6 @@ float sigtorn_cin(float stdir, float stspd)
|
|||
pres = user_level;
|
||||
else if (oldlplchoice == 6)
|
||||
pres = mu_layer;
|
||||
//printf("11 calling define_parcel flag=%d-pres=%f------------------------->\n", oldlplchoice, pres);
|
||||
|
||||
define_parcel(oldlplchoice, pres);
|
||||
|
||||
return stp_cin;
|
||||
|
@ -1230,8 +1260,6 @@ float CB_sigtor(void)
|
|||
pres = user_level;
|
||||
else if (oldlplchoice == 6)
|
||||
pres = mu_layer;
|
||||
// printf("12 calling define_parcel flag=%d-pres=%f------------------------->\n", oldlplchoice, pres);
|
||||
|
||||
define_parcel(oldlplchoice, pres);
|
||||
|
||||
return cbt;
|
||||
|
@ -1281,8 +1309,6 @@ float esp(void)
|
|||
pres = user_level;
|
||||
else if (oldlplchoice == 6)
|
||||
pres = mu_layer;
|
||||
// printf("13 calling define_parcel flag=%d-pres=%f------------------------->\n", oldlplchoice, pres);
|
||||
|
||||
define_parcel(oldlplchoice, pres);
|
||||
|
||||
return esp_1;
|
||||
|
@ -1337,8 +1363,6 @@ float damaging_wind(void)
|
|||
pres = user_level;
|
||||
else if (oldlplchoice == 6)
|
||||
pres = mu_layer;
|
||||
// printf("14 calling define_parcel flag=%d-pres=%f------------------------->\n", oldlplchoice, pres);
|
||||
|
||||
define_parcel(oldlplchoice, pres);
|
||||
|
||||
return wndg;
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1201,7 +1201,7 @@ short ww_type(short *wwtype, short *dcp)
|
|||
/* all "p_bot" below were changed from "pbot" */
|
||||
|
||||
/* Decision tree below is identical to the operational "ww_type" flow chart documentation 9/23/09 RLT */
|
||||
if ((sig_tor >= 3.0) && (sig_tor_winter >= 3.0) && (srh1 >= 150) && (esrh >= 150) && (sr46_spd >= 15.0) && (shr8 >= 40.0) && (sblcl < 1000) && (mllcl < 1100) && (lr1 >= 5.0) && (bot == 0.0)) {
|
||||
if ((sig_tor >= 3.0) && (sig_tor_winter >= 4.0) && (srh1 >=200) && (esrh >= 200) && (sr46_spd >= 15.0) && (shr8 >= 45.0) && (sblcl < 1000) && (mllcl < 1200) && (lr1 >= 5.0) && (mlcn > -50.0) && (bot == 0.0)) {
|
||||
*dcp = 1;
|
||||
*wwtype = 5;
|
||||
ww_choice = 5;
|
||||
|
@ -1222,7 +1222,7 @@ short ww_type(short *wwtype, short *dcp)
|
|||
}
|
||||
*/
|
||||
else
|
||||
if (((sig_tor >= 3.0) || (sig_tor_winter >= 4.0)) && (bot == 0.0)) {
|
||||
if (((sig_tor >= 3.0) || (sig_tor_winter >= 4.0)) && (mlcn > -125.0) && (bot == 0.0)) {
|
||||
*dcp = 3;
|
||||
*wwtype = 4;
|
||||
ww_choice = 4;
|
||||
|
@ -1233,7 +1233,7 @@ short ww_type(short *wwtype, short *dcp)
|
|||
}
|
||||
|
||||
else
|
||||
if (((sig_tor >= 1.0) || (sig_tor_winter >= 1.0)) && ((sr46_spd >= 15.0) || (shr8 >= 40.0)) && (bot == 0.0)) {
|
||||
if (((sig_tor >= 1.0) || (sig_tor_winter >= 1.0)) && ((sr46_spd >= 15.0) || (shr8 >= 40.0)) && (mlcn > -75.0) && (bot == 0.0)) {
|
||||
*dcp = 4;
|
||||
*wwtype = 4;
|
||||
ww_choice = 4;
|
||||
|
@ -1244,7 +1244,7 @@ short ww_type(short *wwtype, short *dcp)
|
|||
}
|
||||
|
||||
else
|
||||
if (((sig_tor >= 1.0) || (sig_tor_winter >= 1.0)) && (low_mid_rh >= 60) && (lr1 >= 5.0) && (bot == 0.0)) {
|
||||
if (((sig_tor >= 1.0) || (sig_tor_winter >= 1.0)) && (low_mid_rh >= 60) && (lr1 >= 5.0) && (mlcn > -50.0) && (bot == 0.0)) {
|
||||
*dcp = 5;
|
||||
*wwtype = 4;
|
||||
ww_choice = 4;
|
||||
|
@ -1255,7 +1255,7 @@ short ww_type(short *wwtype, short *dcp)
|
|||
}
|
||||
|
||||
else
|
||||
if ((( sig_tor >= 1.0) || (sig_tor_winter >= 1.0)) && (bot == 0.0)) {
|
||||
if ((( sig_tor >= 1.0) || (sig_tor_winter >= 1.0)) && (mlcn > -150.0) && (bot == 0.0)) {
|
||||
*dcp = 6;
|
||||
*wwtype = 3;
|
||||
ww_choice = 3;
|
||||
|
@ -1266,7 +1266,7 @@ short ww_type(short *wwtype, short *dcp)
|
|||
}
|
||||
|
||||
else
|
||||
if (((( sig_tor >= 0.5) && (esrh >= 150)) || ((sig_tor_winter >= 0.5) && (srh1 >= 150))) && (bot == 0.0)) {
|
||||
if (((( sig_tor >= 0.5) && (esrh >= 150)) || ((sig_tor_winter >= 0.5) && (srh1 >= 150))) && (mlcn > -50.0) && (bot == 0.0)) {
|
||||
*dcp = 7;
|
||||
*wwtype = 3;
|
||||
ww_choice = 3;
|
||||
|
@ -1331,8 +1331,6 @@ short ww_type(short *wwtype, short *dcp)
|
|||
setcolor(19);
|
||||
outgtext( "NONE", tlx + 50, tly + 60 );
|
||||
}
|
||||
//printf("sig_tor=%f sig_tor_winter=%f srh1=%f esrh=%f sr46_spd=%f shr8=%f sblcl=%f\n mllcl=%f lr1=%f bot=%f low_mid_rh=%f rm_scp=%f\n mucn=%f dncp=%f sighail=%f cbsig=%f wind_dmg=%f",
|
||||
// sig_tor,sig_tor_winter,srh1,esrh,sr46_spd,shr8, sblcl, mllcl, lr1, bot, low_mid_rh, rm_scp,mucn, dncp, sighail, cbsig, wind_dmg);
|
||||
|
||||
/* define_parcel(oldlplchoice, oldlplpres); */
|
||||
|
||||
|
|
|
@ -221,6 +221,7 @@
|
|||
float sigtorn(float stdir, float stspd);
|
||||
float sigtorn_cin(float stdir, float stspd);
|
||||
float sigtorn_fixed(float stdir, float stspd);
|
||||
float sigtorn_tc(float stdir, float stspd);
|
||||
float sigtorn_test(float stdir, float stspd);
|
||||
float CB_sigtor(void);
|
||||
void prob_sigt_esrh();
|
||||
|
|
|
@ -225,9 +225,9 @@ public class NsharpConstants {
|
|||
|
||||
public static RGB color_green = new RGB(0, 255, 0);// green
|
||||
|
||||
public static RGB color_darkgreen = new RGB(0x2f, 0x4f, 0x2f);// green
|
||||
public static RGB color_darkgreen = new RGB(0, 153, 0);// green
|
||||
|
||||
public static RGB color_mdgreen = new RGB(0x34, 0x80, 0x17);// green
|
||||
public static RGB color_mdgreen = new RGB(0, 204, 0);// green
|
||||
|
||||
public static RGB color_coral = new RGB(0xf0, 0x80, 0x80);
|
||||
|
||||
|
@ -310,6 +310,7 @@ public class NsharpConstants {
|
|||
*/
|
||||
private static final long serialVersionUID = 1L;
|
||||
{
|
||||
put(0, NsharpConstants.color_white);
|
||||
put(1, NsharpConstants.color_vanilla);
|
||||
put(2, NsharpConstants.color_red);
|
||||
put(3, NsharpConstants.color_green);
|
||||
|
|
|
@ -987,6 +987,7 @@ public class NsharpResourceHandler {
|
|||
// update active sounding layer and picked stn info
|
||||
// re-populate snd data to nsharp native code lib for later calculating
|
||||
nsharpNative.populateSndgData(soundingLys);
|
||||
|
||||
if (skewtPaneRsc != null)
|
||||
skewtPaneRsc.resetData(soundingLys, previousSoundingLys);
|
||||
if (hodoPaneRsc != null)
|
||||
|
@ -1049,6 +1050,12 @@ public class NsharpResourceHandler {
|
|||
insetPaneRsc.createInsetWireFrameShapes();
|
||||
if (witoPaneRsc != null)
|
||||
witoPaneRsc.createAllWireFrameShapes();
|
||||
if (spcGraphsPaneRsc != null) {
|
||||
// Chin: SPC graphs performance concern, as it need to call get
|
||||
// info functions from bigSharo.so and cause long delay.
|
||||
// Therefore, do it once only when reset data.
|
||||
spcGraphsPaneRsc.getSpcGraphsInfo();
|
||||
}
|
||||
}
|
||||
|
||||
private class NsharpOperationElementComparator implements
|
||||
|
@ -3396,6 +3403,7 @@ public class NsharpResourceHandler {
|
|||
// elementColorMap.put(NsharpConstants.ActState.OVERLAY,NsharpConstants.color_red);
|
||||
// elementColorMap.put(NsharpConstants.LoadState.AVAIL.name(),NsharpConstants.color_yellow);
|
||||
nsharpNative = new NsharpNative();
|
||||
|
||||
// System.out.println("NsharpResourceHandler constructed"+this.toString()
|
||||
// + " nsharpNative="+nsharpNative.toString());
|
||||
// based on BigNsharp storm slinky color used and gempak color
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -898,6 +898,21 @@
|
|||
</Text>
|
||||
</DrawableElement>
|
||||
</DECollection>
|
||||
<DECollection collectionName="ContourLine">
|
||||
<DrawableElement>
|
||||
<Line flipSide="false" fillPattern="SOLID" filled="false" closed="false" smoothFactor="2" sizeScale="1.0" lineWidth="2.0" pgenCategory="Lines" pgenType="LINE_DASHED_2">
|
||||
<Color alpha="255" blue="0" green="0" red="255"/>
|
||||
<Point Lon="-93.17081927650509" Lat="40.87516972680109"/>
|
||||
<Point Lon="-85.02701620703793" Lat="42.02491213499612"/>
|
||||
<Point Lon="-80.75710539213382" Lat="41.75491730938651"/>
|
||||
</Line>
|
||||
<Text auto="false" hide="false" xOffset="0" yOffset="0" displayType="NORMAL" mask="true" rotationRelativity="SCREEN_RELATIVE" rotation="0.0" justification="CENTER" style="REGULAR" fontName="Courier" fontSize="14.0" pgenType="General Text" pgenCategory="Text">
|
||||
<Color alpha="255" blue="0" green="0" red="255"/>
|
||||
<Point Lon="-100.62891386216378" Lat="40.527972367697075"/>
|
||||
<textLine>0</textLine>
|
||||
</Text>
|
||||
</DrawableElement>
|
||||
</DECollection>
|
||||
<DECollection collectionName="ContourMinmax">
|
||||
<DrawableElement>
|
||||
<Symbol pgenCategory="Symbol" pgenType="FILLED_HIGH_PRESSURE_H" lineWidth="2.0" sizeScale="2.0" clear="true">
|
||||
|
@ -977,6 +992,20 @@
|
|||
</Text>
|
||||
</DrawableElement>
|
||||
</DECollection>
|
||||
<DECollection collectionName="ContourCircle">
|
||||
<DrawableElement>
|
||||
<Text auto="false" hide="false" xOffset="0" yOffset="0" displayType="NORMAL" mask="true" rotationRelativity="SCREEN_RELATIVE" rotation="0.0" justification="CENTER" style="REGULAR" fontName="Courier" fontSize="14.0" pgenType="General Text" pgenCategory="Text">
|
||||
<Color alpha="255" blue="0" green="255" red="0"/>
|
||||
<Point Lon="-100.82145703284284" Lat="36.710993353045694"/>
|
||||
<textLine>0</textLine>
|
||||
</Text>
|
||||
<Arc fillPattern="SOLID" filled="false" closed="false" smoothFactor="2" sizeScale="1.0" lineWidth="3.0" axisRatio="1.0" startAngle="0.0" endAngle="360.0" pgenType="Circle" pgenCategory="Arc">
|
||||
<Color alpha="255" blue="255" green="0" red="0"/>
|
||||
<Point Lon="-104.23734546074009" Lat="37.99632151589769"/>
|
||||
<Point Lon="-100.37082103093299" Lat="36.47725770318215"/>
|
||||
</Arc>
|
||||
</DrawableElement>
|
||||
</DECollection>
|
||||
</Contours>
|
||||
</DrawableElement>
|
||||
</Layer>
|
||||
|
|
|
@ -846,6 +846,21 @@
|
|||
</Text>
|
||||
</DrawableElement>
|
||||
</DECollection>
|
||||
<DECollection collectionName="ContourLine">
|
||||
<DrawableElement>
|
||||
<Line flipSide="false" fillPattern="SOLID" filled="false" closed="false" smoothFactor="2" sizeScale="1.0" lineWidth="2.0" pgenCategory="Lines" pgenType="LINE_DASHED_2">
|
||||
<Color alpha="255" blue="0" green="0" red="255"/>
|
||||
<Point Lon="-93.17081927650509" Lat="40.87516972680109"/>
|
||||
<Point Lon="-85.02701620703793" Lat="42.02491213499612"/>
|
||||
<Point Lon="-80.75710539213382" Lat="41.75491730938651"/>
|
||||
</Line>
|
||||
<Text auto="false" hide="false" xOffset="0" yOffset="0" displayType="NORMAL" mask="true" rotationRelativity="SCREEN_RELATIVE" rotation="0.0" justification="CENTER" style="REGULAR" fontName="Courier" fontSize="14.0" pgenType="General Text" pgenCategory="Text">
|
||||
<Color alpha="255" blue="0" green="0" red="255"/>
|
||||
<Point Lon="-100.62891386216378" Lat="40.527972367697075"/>
|
||||
<textLine>0</textLine>
|
||||
</Text>
|
||||
</DrawableElement>
|
||||
</DECollection>
|
||||
<DECollection collectionName="ContourMinmax">
|
||||
<DrawableElement>
|
||||
<Symbol pgenCategory="Symbol" pgenType="FILLED_HIGH_PRESSURE_H" lineWidth="2.0" sizeScale="2.0" clear="true">
|
||||
|
@ -924,6 +939,20 @@
|
|||
</Text>
|
||||
</DrawableElement>
|
||||
</DECollection>
|
||||
<DECollection collectionName="ContourCircle">
|
||||
<DrawableElement>
|
||||
<Text auto="false" hide="false" xOffset="0" yOffset="0" displayType="NORMAL" mask="true" rotationRelativity="SCREEN_RELATIVE" rotation="0.0" justification="CENTER" style="REGULAR" fontName="Courier" fontSize="14.0" pgenType="General Text" pgenCategory="Text">
|
||||
<Color alpha="255" blue="0" green="255" red="0"/>
|
||||
<Point Lon="-100.82145703284284" Lat="36.710993353045694"/>
|
||||
<textLine>0</textLine>
|
||||
</Text>
|
||||
<Arc fillPattern="SOLID" filled="false" closed="false" smoothFactor="2" sizeScale="1.0" lineWidth="3.0" axisRatio="1.0" startAngle="0.0" endAngle="360.0" pgenType="Circle" pgenCategory="Arc">
|
||||
<Color alpha="255" blue="255" green="0" red="0"/>
|
||||
<Point Lon="-104.23734546074009" Lat="37.99632151589769"/>
|
||||
<Point Lon="-100.37082103093299" Lat="36.47725770318215"/>
|
||||
</Arc>
|
||||
</DrawableElement>
|
||||
</DECollection>
|
||||
</Contours>
|
||||
</DrawableElement>
|
||||
</Layer>
|
||||
|
|
|
@ -18,10 +18,6 @@ import gov.noaa.nws.ncep.ui.pgen.contours.IContours;
|
|||
import gov.noaa.nws.ncep.ui.pgen.display.FillPatternList.FillPattern;
|
||||
import gov.noaa.nws.ncep.ui.pgen.display.IAttribute;
|
||||
import gov.noaa.nws.ncep.ui.pgen.display.ILine;
|
||||
import gov.noaa.nws.ncep.ui.pgen.display.IText.DisplayType;
|
||||
import gov.noaa.nws.ncep.ui.pgen.display.IText.FontStyle;
|
||||
import gov.noaa.nws.ncep.ui.pgen.display.IText.TextJustification;
|
||||
import gov.noaa.nws.ncep.ui.pgen.display.IText.TextRotation;
|
||||
import gov.noaa.nws.ncep.ui.pgen.elements.AbstractDrawableComponent;
|
||||
import gov.noaa.nws.ncep.ui.pgen.elements.Arc;
|
||||
import gov.noaa.nws.ncep.ui.pgen.elements.DECollection;
|
||||
|
@ -118,6 +114,7 @@ import com.vividsolutions.jts.geom.Coordinate;
|
|||
* windows could be created with no way to remove,
|
||||
* should now be fixed.
|
||||
* 05/14 TTR1008 J. Wu Set default contour parameters through settings_tbl.xml.
|
||||
* 05/14 TTR990 J. Wu Set default attributes for different contour labels.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -140,6 +137,8 @@ public class ContoursAttrDlg extends AttrDlg implements IContours,
|
|||
DRAW_LINE, DRAW_SYMBOL, DRAW_CIRCLE, SELECT
|
||||
}
|
||||
|
||||
private static String labelSuffix = "|label";
|
||||
|
||||
private ContourDrawingStatus drawingStatus = ContourDrawingStatus.DRAW_LINE;
|
||||
|
||||
private String contourParm = "HGMT";
|
||||
|
@ -996,10 +995,8 @@ public class ContoursAttrDlg extends AttrDlg implements IContours,
|
|||
}
|
||||
} else {
|
||||
|
||||
if (labelTemplate == null) {
|
||||
labelTemplate = (gov.noaa.nws.ncep.ui.pgen.elements.Text) contoursAttrSettings
|
||||
.get("General Text");
|
||||
}
|
||||
labelTemplate = (gov.noaa.nws.ncep.ui.pgen.elements.Text) contoursAttrSettings
|
||||
.get(getLabelTempKey());
|
||||
|
||||
labelAttrDlg.setAttrForDlg((IAttribute) labelTemplate);
|
||||
|
||||
|
@ -1843,15 +1840,34 @@ public class ContoursAttrDlg extends AttrDlg implements IContours,
|
|||
* @return the labelTemplate
|
||||
*/
|
||||
public IAttribute getLabelTemplate() {
|
||||
|
||||
if (labelAttrDlg != null && labelAttrDlg.getShell() != null) {
|
||||
return labelAttrDlg;
|
||||
} else if (labelTemplate != null) {
|
||||
return labelTemplate;
|
||||
} else {
|
||||
return (IAttribute) contoursAttrSettings.get("General Text");
|
||||
return (IAttribute) contoursAttrSettings.get(getLabelTempKey());
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* @param key to retrieve the label template
|
||||
*/
|
||||
private String getLabelTempKey() {
|
||||
|
||||
String tempKey = "General Text";
|
||||
if (drawSymbol() && activeQuickSymbolBtn != null) {
|
||||
tempKey = new String(activeQuickSymbolBtn.getData().toString()
|
||||
+ labelSuffix);
|
||||
} else if (drawContourLine() && activeQuickLineBtn != null) {
|
||||
tempKey = new String(activeQuickLineBtn.getData().toString()
|
||||
+ labelSuffix);
|
||||
} else if (drawCircle()) {
|
||||
tempKey = new String("Circle" + labelSuffix);
|
||||
}
|
||||
|
||||
return tempKey;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @param labelTemplate
|
||||
* the labelTemplate to set
|
||||
|
@ -1987,6 +2003,9 @@ public class ContoursAttrDlg extends AttrDlg implements IContours,
|
|||
.create(DrawableType.TEXT, this, "Text", "General Text",
|
||||
(Coordinate) null, null);
|
||||
|
||||
String lblKey = new String(getLabelTempKey());
|
||||
contoursAttrSettings.put(lblKey, labelTemplate);
|
||||
|
||||
labelTemplate.setText(new String[] { getLabel() });
|
||||
|
||||
/*
|
||||
|
@ -3533,32 +3552,35 @@ public class ContoursAttrDlg extends AttrDlg implements IContours,
|
|||
}
|
||||
|
||||
// Get Default for Circle.
|
||||
// contoursAttrSettings.put( "Circle", retrieveDefaultSettings(
|
||||
// "Circle" ) );
|
||||
contoursAttrSettings.put("Circle",
|
||||
retrieveDefaultSettings("Circle"));
|
||||
|
||||
// Get Default for label.
|
||||
contoursAttrSettings.put("General Text",
|
||||
retrieveDefaultSettings("General Text"));
|
||||
|
||||
/*
|
||||
* Get line, text, symbols/markers, circles found in the Contours in
|
||||
* "settings.tbl"
|
||||
*/
|
||||
AbstractDrawableComponent adc = retrieveDefaultSettings("Contours");
|
||||
boolean lineFound = false;
|
||||
boolean labelFound = false;
|
||||
boolean circleFound = false;
|
||||
if (adc != null && adc instanceof Contours) {
|
||||
List<ContourLine> cline = ((Contours) adc).getContourLines();
|
||||
if (cline != null && cline.size() > 0) {
|
||||
Line ln = cline.get(0).getLine();
|
||||
if (ln != null) {
|
||||
contoursAttrSettings.put(ln.getPgenType(), ln.copy());
|
||||
lineFound = true;
|
||||
}
|
||||
for (ContourLine cln : cline) {
|
||||
Line ln = cln.getLine();
|
||||
if (ln != null) {
|
||||
contoursAttrSettings.put(ln.getPgenType(),
|
||||
ln.copy());
|
||||
|
||||
if (cline.get(0).getLabels() != null
|
||||
&& cline.get(0).getLabels().size() > 0) {
|
||||
labelFound = true;
|
||||
contoursAttrSettings.put(cline.get(0).getLabels()
|
||||
.get(0).getPgenType(), cline.get(0).getLabels()
|
||||
.get(0).copy());
|
||||
if (cln.getLabels() != null
|
||||
&& cln.getLabels().size() > 0) {
|
||||
String lblKey = new String(ln.getPgenType()
|
||||
+ labelSuffix);
|
||||
contoursAttrSettings.put(lblKey, cln
|
||||
.getLabels().get(0).copy());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3568,10 +3590,11 @@ public class ContoursAttrDlg extends AttrDlg implements IContours,
|
|||
for (ContourMinmax cmx : csymbols) {
|
||||
contoursAttrSettings.put(cmx.getSymbol().getPgenType(),
|
||||
cmx.getSymbol().copy());
|
||||
if (!labelFound) {
|
||||
contoursAttrSettings.put(cmx.getLabel()
|
||||
.getPgenType(), cmx.getLabel());
|
||||
labelFound = true;
|
||||
|
||||
if (cmx.getLabel() != null) {
|
||||
String lblKey = new String(cmx.getSymbol()
|
||||
.getPgenType() + labelSuffix);
|
||||
contoursAttrSettings.put(lblKey, cmx.getLabel());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3582,48 +3605,16 @@ public class ContoursAttrDlg extends AttrDlg implements IContours,
|
|||
Arc cc = (Arc) ccircles.get(0).getCircle();
|
||||
if (cc != null) {
|
||||
contoursAttrSettings.put(cc.getPgenType(), cc.copy());
|
||||
circleFound = true;
|
||||
}
|
||||
|
||||
if (!labelFound) {
|
||||
if (ccircles.get(0).getLabel() != null) {
|
||||
labelFound = true;
|
||||
contoursAttrSettings.put(ccircles.get(0).getLabel()
|
||||
.getPgenType(), ccircles.get(0).getLabel()
|
||||
.copy());
|
||||
}
|
||||
if (ccircles.get(0).getLabel() != null) {
|
||||
String lblKey = new String(cc.getPgenType()
|
||||
+ labelSuffix);
|
||||
contoursAttrSettings.put(lblKey, ccircles.get(0)
|
||||
.getLabel().copy());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Build a default line, text, circle as template
|
||||
if (!lineFound) {
|
||||
Line dln = new Line(null, new Color[] { Color.red }, 2.0f, 2.0,
|
||||
false, false, null, 2, FillPattern.SOLID, "Lines",
|
||||
"LINE_SOLID");
|
||||
|
||||
contoursAttrSettings.put("LINE_SOLID", dln);
|
||||
}
|
||||
|
||||
if (!labelFound) {
|
||||
gov.noaa.nws.ncep.ui.pgen.elements.Text txt = new gov.noaa.nws.ncep.ui.pgen.elements.Text(
|
||||
null, "Courier", 14.0f, TextJustification.CENTER, null,
|
||||
0.0, TextRotation.SCREEN_RELATIVE,
|
||||
new String[] { "text" }, FontStyle.REGULAR,
|
||||
Color.GREEN, 0, 0, true, DisplayType.NORMAL, "Text",
|
||||
"General Text");
|
||||
|
||||
contoursAttrSettings.put("General Text", txt);
|
||||
}
|
||||
|
||||
if (!circleFound) {
|
||||
|
||||
Arc ccr = new Arc(null, Color.red, 2.0f, 2.0, false, false, 2,
|
||||
FillPattern.SOLID, "Circle", null, null, "Arc", 1.0,
|
||||
0.0, 360.0);
|
||||
|
||||
contoursAttrSettings.put("Circle", ccr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3709,27 +3700,12 @@ public class ContoursAttrDlg extends AttrDlg implements IContours,
|
|||
* backspace to clean up the existing value.
|
||||
*/
|
||||
public void setLabelFocus() {
|
||||
// try {
|
||||
if (!labelTxt.isDisposed()) {
|
||||
labelTxt.setFocus();
|
||||
labelTxt.setSelection(labelTxt.getText().length());
|
||||
|
||||
updateLabelBtnsSelection(labelTxt.getText());
|
||||
}
|
||||
// } catch (NullPointerException npe) {
|
||||
// System.err.println(this.getClass().getCanonicalName()
|
||||
// + ":\n--writeADescriptiveErrorMsgHere--\n"
|
||||
// + npe.getMessage());
|
||||
// npe.printStackTrace();
|
||||
// minmaxTemplate = new Symbol(
|
||||
// null,
|
||||
// new Color[] { Color.green },
|
||||
// 2.0F,
|
||||
// 2.0,
|
||||
// true, null, "Symbol",
|
||||
// getActiveSymbolObjType()
|
||||
// );
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<AttributeSetGroup xmlns:ns2="http://www.example.org/productType" xmlns:ns3="group">
|
||||
<resource>FIREWX</resource>
|
||||
<attrSetGroupName>standard</attrSetGroupName>
|
||||
<attrSetNames>100mb_hght_wind,200mb_hght_wind,250mb_hght_wind,300mb_hght_wind</attrSetNames>
|
||||
</AttributeSetGroup>
|
|
@ -2,5 +2,5 @@
|
|||
<AttributeSetGroup xmlns:ns2="http://www.example.org/productType">
|
||||
<resource>HIRESW_ARW_AK</resource>
|
||||
<attrSetGroupName>standard</attrSetGroupName>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind</attrSetNames>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind,simulated_radar</attrSetNames>
|
||||
</AttributeSetGroup>
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
<AttributeSetGroup xmlns:ns2="http://www.example.org/productType">
|
||||
<resource>HIRESW_ARW_E</resource>
|
||||
<attrSetGroupName>standard</attrSetGroupName>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind</attrSetNames>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind,simulated_radar</attrSetNames>
|
||||
</AttributeSetGroup>
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
<AttributeSetGroup xmlns:ns2="http://www.example.org/productType">
|
||||
<resource>HIRESW_ARW_GU</resource>
|
||||
<attrSetGroupName>standard</attrSetGroupName>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind</attrSetNames>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind,simulated_radar</attrSetNames>
|
||||
</AttributeSetGroup>
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
<AttributeSetGroup xmlns:ns2="http://www.example.org/productType">
|
||||
<resource>HIRESW_ARW_HI</resource>
|
||||
<attrSetGroupName>standard</attrSetGroupName>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind</attrSetNames>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind,simulated_radar</attrSetNames>
|
||||
</AttributeSetGroup>
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
<AttributeSetGroup xmlns:ns2="http://www.example.org/productType">
|
||||
<resource>HIRESW_ARW_SJU</resource>
|
||||
<attrSetGroupName>standard</attrSetGroupName>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind</attrSetNames>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind,simulated_radar</attrSetNames>
|
||||
</AttributeSetGroup>
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
<AttributeSetGroup xmlns:ns2="http://www.example.org/productType">
|
||||
<resource>HIRESW_ARW_W</resource>
|
||||
<attrSetGroupName>standard</attrSetGroupName>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind</attrSetNames>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind,simulated_radar</attrSetNames>
|
||||
</AttributeSetGroup>
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
<AttributeSetGroup xmlns:ns2="http://www.example.org/productType">
|
||||
<resource>HIRESW_NMM_AK</resource>
|
||||
<attrSetGroupName>standard</attrSetGroupName>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind</attrSetNames>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind,simulated_radar</attrSetNames>
|
||||
</AttributeSetGroup>
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
<AttributeSetGroup xmlns:ns2="http://www.example.org/productType">
|
||||
<resource>HIRESW_NMM_E</resource>
|
||||
<attrSetGroupName>standard</attrSetGroupName>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind</attrSetNames>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind,simulated_radar</attrSetNames>
|
||||
</AttributeSetGroup>
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
<AttributeSetGroup xmlns:ns2="http://www.example.org/productType">
|
||||
<resource>HIRESW_NMM_GU</resource>
|
||||
<attrSetGroupName>standard</attrSetGroupName>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind</attrSetNames>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind,simulated_radar</attrSetNames>
|
||||
</AttributeSetGroup>
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
<AttributeSetGroup xmlns:ns2="http://www.example.org/productType">
|
||||
<resource>HIRESW_NMM_HI</resource>
|
||||
<attrSetGroupName>standard</attrSetGroupName>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind</attrSetNames>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind,simulated_radar</attrSetNames>
|
||||
</AttributeSetGroup>
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
<AttributeSetGroup xmlns:ns2="http://www.example.org/productType">
|
||||
<resource>HIRESW_NMM_SJU</resource>
|
||||
<attrSetGroupName>standard</attrSetGroupName>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind</attrSetNames>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind,simulated_radar</attrSetNames>
|
||||
</AttributeSetGroup>
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
<AttributeSetGroup xmlns:ns2="http://www.example.org/productType">
|
||||
<resource>HIRESW_NMM_W</resource>
|
||||
<attrSetGroupName>standard</attrSetGroupName>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind</attrSetNames>
|
||||
<attrSetNames>500mb_hght_absv,500mb_hght_color,500mb_hght_wind,simulated_radar</attrSetNames>
|
||||
</AttributeSetGroup>
|
||||
|
|
|
@ -11,8 +11,8 @@ FILTER=y
|
|||
SCALE=0
|
||||
GDPFUN=mag(kntv(wnd)) !mag(kntv(wnd)) !sm5s(sm5s(pmsl)) !kntv(wnd)
|
||||
TYPE=c/f !c !c !b
|
||||
CINT=5/10/20 !5/25 !0
|
||||
LINE=6//1/0 !32//1/0 !0
|
||||
CINT=5/10/20 !5/25 !4
|
||||
LINE=6//1/0 !32//1/0 !5
|
||||
FINT=20;35;65
|
||||
FLINE=0;25;17;2
|
||||
HILO=! !;31/;L#1//3//yes
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
!
|
||||
! Restore File : simulated_radar
|
||||
!
|
||||
! Log:
|
||||
! T. Lee/NCO 6/14 Initial creation
|
||||
!
|
||||
GLEVEL = 1000
|
||||
GVCORD = hght
|
||||
SKIP = 0
|
||||
FILTER = y
|
||||
SCALE = 0
|
||||
GDPFUN = refd
|
||||
TYPE = f
|
||||
CINT =
|
||||
LINE =
|
||||
FINT = 5;10;15;20;25;30;35;40;45;50;55;60;65;70
|
||||
FLINE = 0;27;26;4;21;22;23;5;20;17;16;15;14;7;29
|
||||
HILO =
|
||||
HLSYM =
|
||||
CLRBAR = 1
|
||||
WIND = 18/1/1
|
||||
TITLE = 1/-1/~ @ height simulated radar echo
|
||||
COLORS = 2
|
||||
MARKER = 2
|
||||
GRDLBL = 5
|
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="http://www.example.org/productType">
|
||||
<resourceDefnName>FIREWX</resourceDefnName>
|
||||
<resourceCategory>GRID</resourceCategory>
|
||||
<rscImplementation>ModelFcstGridContours</rscImplementation>
|
||||
<subTypeGenerator></subTypeGenerator>
|
||||
<rscTypeGenerator></rscTypeGenerator>
|
||||
<timeMatchMethod>CLOSEST_BEFORE_OR_AFTER</timeMatchMethod>
|
||||
<frameSpan>60</frameSpan>
|
||||
<timelineGenMethod>USE_CYCLE_TIME_FCST_HOURS</timelineGenMethod>
|
||||
<dfltFrameCount>999</dfltFrameCount>
|
||||
<dfltTimeRange>84</dfltTimeRange>
|
||||
<dfltGeogArea>BasicWX_US</dfltGeogArea>
|
||||
<resourceParameters>
|
||||
pluginName=grid
|
||||
GDFILE=fireWxNAM
|
||||
|
||||
</resourceParameters>
|
||||
<inventoryEnabled>true</inventoryEnabled>
|
||||
</ResourceDefinition>
|
|
@ -15,6 +15,6 @@ eventName=%
|
|||
<frameSpan>60</frameSpan>
|
||||
<timelineGenMethod>USE_CYCLE_TIME_FCST_HOURS</timelineGenMethod>
|
||||
<dfltFrameCount>999</dfltFrameCount>
|
||||
<dfltTimeRange>48</dfltTimeRange>
|
||||
<dfltTimeRange>126</dfltTimeRange>
|
||||
<dfltGeogArea>BasicWX_US</dfltGeogArea>
|
||||
</ResourceDefinition>
|
||||
|
|
|
@ -15,6 +15,6 @@ eventName=%
|
|||
<frameSpan>60</frameSpan>
|
||||
<timelineGenMethod>USE_CYCLE_TIME_FCST_HOURS</timelineGenMethod>
|
||||
<dfltFrameCount>999</dfltFrameCount>
|
||||
<dfltTimeRange>48</dfltTimeRange>
|
||||
<dfltTimeRange>126</dfltTimeRange>
|
||||
<dfltGeogArea>BasicWX_US</dfltGeogArea>
|
||||
</ResourceDefinition>
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<inventoryEnabled>true</inventoryEnabled>
|
||||
<resourceDefnName>ATCF</resourceDefnName>
|
||||
<resourceCategory>MISC</resourceCategory>
|
||||
<resourceParameters>
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<inventoryEnabled>true</inventoryEnabled>
|
||||
<resourceDefnName>ENS_CYC</resourceDefnName>
|
||||
<resourceCategory>MISC</resourceCategory>
|
||||
<resourceParameters>
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<inventoryEnabled>true</inventoryEnabled>
|
||||
<resourceDefnName>ENS_CYC_FCST</resourceDefnName>
|
||||
<resourceCategory>MISC</resourceCategory>
|
||||
<resourceParameters>
|
||||
|
|
|
@ -12,8 +12,8 @@ legendColor=RGB {200, 200, 200}
|
|||
<subTypeGenerator></subTypeGenerator>
|
||||
<rscTypeGenerator></rscTypeGenerator>
|
||||
<timeMatchMethod>BEFORE_OR_EQUAL</timeMatchMethod>
|
||||
<frameSpan>0</frameSpan>
|
||||
<timelineGenMethod>USE_MANUAL_TIMELINE</timelineGenMethod>
|
||||
<frameSpan>10</frameSpan>
|
||||
<timelineGenMethod>USE_FRAME_INTERVAL</timelineGenMethod>
|
||||
<dfltFrameCount>10</dfltFrameCount>
|
||||
<dfltTimeRange>6</dfltTimeRange>
|
||||
<dfltGeogArea>BasicWX_US</dfltGeogArea>
|
||||
|
|
|
@ -12,7 +12,7 @@ legendColor=RGB {200, 200, 200}
|
|||
<subTypeGenerator></subTypeGenerator>
|
||||
<rscTypeGenerator></rscTypeGenerator>
|
||||
<timeMatchMethod>CLOSEST_BEFORE_OR_AFTER</timeMatchMethod>
|
||||
<frameSpan>30</frameSpan>
|
||||
<frameSpan>10</frameSpan>
|
||||
<timelineGenMethod>USE_FRAME_INTERVAL</timelineGenMethod>
|
||||
<dfltFrameCount>10</dfltFrameCount>
|
||||
<dfltTimeRange>6</dfltTimeRange>
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<inventoryEnabled>true</inventoryEnabled>
|
||||
<resourceDefnName>SGWH</resourceDefnName>
|
||||
<resourceCategory>MISC</resourceCategory>
|
||||
<resourceParameters>
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>CMCE_AVGSPR_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>CMCE_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>CMCVER_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>CMC_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>CPC_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>DGEX_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>ECENS_AVGSPR_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>ECENS_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>ECMWFVER_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>ECMWF_HR_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>ECMWF_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>ENSVER_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>FNMOCWAVE_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>GDAS_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>GEFS_AVGSPR_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>GEFS_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>GFSP_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>GFSVERP_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>GFSVER_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>GFS_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>GHM_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>HPCQPF_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>HPCVER_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>HWRF_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>ICEACCR_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>JMAP_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>MEDRT_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>NAEFS_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>NAM20_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>NAM44_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>NAMVER_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>NAM_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>NAVGEM_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>NOGAPS_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>NWW3P_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>NWW3_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>OPC_ENS_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>OTHER_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>RAPP_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>RAP_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>SREFX_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>SST_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>UKMETVER_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>UKMET_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>VAFTAD_NT</resourceDefnName>
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceCategory>NTRANS</resourceCategory>
|
||||
<resourceParameters>
|
||||
pluginName=ntrans
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<inventoryEnabled>false</inventoryEnabled>
|
||||
<resourceDefnName>LocalRadar</resourceDefnName>
|
||||
<resourceCategory>RADAR</resourceCategory>
|
||||
<resourceParameters>
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<inventoryEnabled>true</inventoryEnabled>
|
||||
<resourceDefnName>NatlMosaic</resourceDefnName>
|
||||
<resourceCategory>RADAR</resourceCategory>
|
||||
<resourceParameters>
|
||||
|
|
|
@ -1110,6 +1110,9 @@
|
|||
<ResourceDefinitionFilter isEnabled="true" rscDefnName="NAM">
|
||||
<filters>Forecast,Regional</filters>
|
||||
</ResourceDefinitionFilter>
|
||||
<ResourceDefinitionFilter isEnabled="true" rscDefnName="FIREWX">
|
||||
<filters>Forecast,Regional,NSBN</filters>
|
||||
</ResourceDefinitionFilter>
|
||||
<ResourceDefinitionFilter isEnabled="true" rscDefnName="UKMET_ASIA">
|
||||
<filters>Forecast,SBN</filters>
|
||||
</ResourceDefinitionFilter>
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="http://www.example.org/productType" xmlns:ns3="group">
|
||||
<inventoryEnabled>true</inventoryEnabled>
|
||||
<resourceDefnName>DPD</resourceDefnName>
|
||||
<resourceCategory>SATELLITE</resourceCategory>
|
||||
<rscImplementation>McidasSatellite</rscImplementation>
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<resourceDefnName>GINI_Composite</resourceDefnName>
|
||||
<resourceCategory>SATELLITE</resourceCategory>
|
||||
<inventoryEnabled>true</inventoryEnabled>
|
||||
<resourceParameters>
|
||||
! This must match the "creatingEntity" in the
|
||||
! satellite DB table valid values are
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<inventoryEnabled>true</inventoryEnabled>
|
||||
<resourceDefnName>GINI_GOES10</resourceDefnName>
|
||||
<resourceCategory>SATELLITE</resourceCategory>
|
||||
<resourceParameters>
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<inventoryEnabled>true</inventoryEnabled>
|
||||
<resourceDefnName>GINI_GOES11</resourceDefnName>
|
||||
<resourceCategory>SATELLITE</resourceCategory>
|
||||
<resourceParameters>
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<inventoryEnabled>true</inventoryEnabled>
|
||||
<resourceDefnName>GINI_GOES12</resourceDefnName>
|
||||
<resourceCategory>SATELLITE</resourceCategory>
|
||||
<resourceParameters>
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<inventoryEnabled>true</inventoryEnabled>
|
||||
<resourceDefnName>GINI_GOES13</resourceDefnName>
|
||||
<resourceCategory>SATELLITE</resourceCategory>
|
||||
<resourceParameters>
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ResourceDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<inventoryEnabled>true</inventoryEnabled>
|
||||
<resourceDefnName>GINI_GOES14</resourceDefnName>
|
||||
<resourceCategory>SATELLITE</resourceCategory>
|
||||
<resourceParameters>
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue