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:
Stephen Gilbert 2014-06-23 15:27:49 -04:00
parent 91528c474c
commit f78323b17c
151 changed files with 8493 additions and 7786 deletions

View file

@ -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 \

View file

@ -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++; }

View file

@ -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);

View file

@ -37,6 +37,7 @@ struct _parcel {
float cape3km;
float cape6km;
float wm10c;
float wm20c;
float wm30c;
float li5;
float li3;

View file

@ -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;
}
}

View file

@ -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;

View file

@ -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 ----- */

View file

@ -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

View file

@ -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

View file

@ -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); */

View file

@ -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();

View file

@ -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);

View file

@ -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

View file

@ -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>

View file

@ -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>

View file

@ -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()
// );
// }
}
/**

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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

View file

@ -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

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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