VLab Issue #4001 - NCEP EDEX and EDEX Common delivery for 14.2.1-n

NcText decoder updates and other ingest config changes

Change-Id: I1dca245ff36c565c924a494eae3f1a2b834f43ac

Former-commit-id: c16e83f25a [formerly 9e47362ce407ea03c0ede8884baa7e8129d2d646]
Former-commit-id: f94a3aadf4
This commit is contained in:
Stephen Gilbert 2014-07-23 15:51:27 -04:00
parent bbba4b39ec
commit 55ba6aad6b
22 changed files with 1953 additions and 841 deletions

View file

@ -0,0 +1,158 @@
-- create nwx.adminmessages table
DROP TABLE IF EXISTS nwx.adminmessages CASCADE;
CREATE TABLE nwx.adminmessages(
id SERIAL PRIMARY KEY,
productname varchar(60) NOT NULL,
producttablename varchar(30) NOT NULL,
producttype varchar(20) NOT NULL
);
-- create nwx.cmcam table
DROP TABLE IF EXISTS nwx.cmcam CASCADE;
CREATE TABLE nwx.cmcam(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
-- create nwx.ncfam table
DROP TABLE IF EXISTS nwx.ncfam CASCADE;
CREATE TABLE nwx.ncfam(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
-- create nwx.nesdisam table
DROP TABLE IF EXISTS nwx.nesdisam CASCADE;
CREATE TABLE nwx.nesdisam(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
-- create nwx.nesdispm table
DROP TABLE IF EXISTS nwx.nesdispm CASCADE;
CREATE TABLE nwx.nesdispm(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
-- create nwx.snwstgam table
DROP TABLE IF EXISTS nwx.nwstgam CASCADE;
CREATE TABLE nwx.nwstgam(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
-- Drop nwx.sdm table
DROP TABLE IF EXISTS nwx.sdm CASCADE;
-- create nwx.sdmam table
DROP TABLE IF EXISTS nwx.sdmam CASCADE;
CREATE TABLE nwx.sdmam(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
-- create nwx.sdmim table
DROP TABLE IF EXISTS nwx.sdmim CASCADE;
CREATE TABLE nwx.sdmim(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
-- create nwx.sdmdhm table
DROP TABLE IF EXISTS nwx.sdmdhm CASCADE;
CREATE TABLE nwx.sdmdhm(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
INSERT INTO nwx.datatypegrouplist (datatypegroupname,datatypegrouptablename) values ('Admin Messages','nwx.adminmessages');
INSERT INTO nwx.adminmessages(productname,producttablename,producttype) values ('SDM Administrative Messages','nwx.sdmam','sdmam');
INSERT INTO nwx.sdmam (productid,stnid,stnname,state,country,latitude,longitude,elevation) values ('NOUS42','KWNO','NMC','MD','US',38.82,-76.87,86);
INSERT INTO nwx.adminmessages(productname,producttablename,producttype) values ('SDM International Messages','nwx.sdmim','sdmim');
INSERT INTO nwx.sdmim (productid,stnid,stnname,state,country,latitude,longitude,elevation) values ('NPXX10','KWNO','NMC','MD','US',38.82,-76.87,86);
INSERT INTO nwx.adminmessages(productname,producttablename,producttype) values ('SDM DHS Hazards Messages','nwx.sdmdhm','sdmdhm');
INSERT INTO nwx.sdmdhm (productid,stnid,stnname,state,country,latitude,longitude,elevation) values ('NOUS71','KWNO','NMC','MD','US',38.82,-76.87,86);
INSERT INTO nwx.adminmessages(productname,producttablename,producttype) values ('CMC Administrative Messages','nwx.cmcam','cmcam');
INSERT INTO nwx.cmcam (productid,stnid,stnname,state,country,latitude,longitude,elevation) values ('NOCN05', 'CWAO','MONTREAL_VAAC','CN','CN',45.47,-73.75,-9999);
INSERT INTO nwx.cmcam (productid,stnid,stnname,state,country,latitude,longitude,elevation) values ('AACN01', 'CWAO','MONTREAL_VAAC','CN','CN',45.47,-73.75,-9999);
INSERT INTO nwx.adminmessages(productname,producttablename,producttype) values ('NWSTG Administrative Messages','nwx.nwstgam','nwstgam');
INSERT INTO nwx.nwstgam (productid,stnid,stnname,state,country,latitude,longitude,elevation) values ('NOXX01', 'KWBC','NMC','MD','US',38.82,-76.87,86);
INSERT INTO nwx.adminmessages(productname,producttablename,producttype) values ('NCF Administrative Messages','nwx.ncfam','ncfam');
INSERT INTO nwx.ncfam (productid,stnid,stnname,state,country,latitude,longitude,elevation) values ('NOUS72', 'KNCF','NMC','MD','US',38.82,-76.87,86);
INSERT INTO nwx.adminmessages(productname,producttablename,producttype) values ('NESDIS Product Anomaly Messages','nwx.nesdispm','nesdispm');
INSERT INTO nwx.nesdispm (productid,stnid,stnname,state,country,latitude,longitude,elevation) values ('NOUS71', 'KNES','NESDIS','MD','US',38.82,-76.87,86);
INSERT INTO nwx.adminmessages(productname,producttablename,producttype) values ('NESDIS Administrative Messages','nwx.nesdisam','nesdisam');
INSERT INTO nwx.nesdisam (productid,stnid,stnname,state,country,latitude,longitude,elevation) values ('NOUS72', 'KNES','NESDIS','MD','US',38.82,-76.87,86);
DELETE from nwx.hpcproducts where productname='SDM Messages';
DELETE from nwx.hpcproducts where productname='International Messages';
DROP TABLE nwx.sdm;
DROP TABLE nwx.intl;
\connect metadata awips
INSERT INTO awips.nctext_inputfile_type VALUES (181,'sdmdhm','W');
INSERT INTO awips.nctext_inputfile_type VALUES (182,'cmcam','W');
INSERT INTO awips.nctext_inputfile_type VALUES (183,'nwstgam','W');
INSERT INTO awips.nctext_inputfile_type VALUES (184,'ncfam','W');
INSERT INTO awips.nctext_inputfile_type VALUES (185,'nesdispm','W');
INSERT INTO awips.nctext_inputfile_type VALUES (186,'nesdisam','W');
INSERT INTO awips.nctext_inputfile_type VALUES (185,'sdmam','B');
INSERT INTO awips.nctext_inputfile_type VALUES (186,'sdmim','W');

View file

@ -0,0 +1,5 @@
#!/bin/bash
PSQL=/awips2/psql/bin/psql
DIR=`dirname $0`
${PSQL} -U awips -d ncep -f ${DIR}/addNcepNwxAdminMessageGpTable.sql

View file

@ -114,6 +114,10 @@
<param name="feature"
value="com.raytheon.uf.edex.dataprovideragent.feature" />
</antcall>
<antcall target="build">
<param name="feature"
value="com.raytheon.uf.edex.remote.script.feature" />
</antcall>
<!-- SPECIAL CASE -->
<if>

View file

@ -0,0 +1,157 @@
-- create nwx.adminmessages table
DROP TABLE IF EXISTS nwx.adminmessages CASCADE;
CREATE TABLE nwx.adminmessages(
id SERIAL PRIMARY KEY,
productname varchar(60) NOT NULL,
producttablename varchar(30) NOT NULL,
producttype varchar(20) NOT NULL
);
-- create nwx.cmcam table
DROP TABLE IF EXISTS nwx.cmcam CASCADE;
CREATE TABLE nwx.cmcam(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
-- create nwx.ncfam table
DROP TABLE IF EXISTS nwx.ncfam CASCADE;
CREATE TABLE nwx.ncfam(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
-- create nwx.nesdisam table
DROP TABLE IF EXISTS nwx.nesdisam CASCADE;
CREATE TABLE nwx.nesdisam(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
-- create nwx.nesdispm table
DROP TABLE IF EXISTS nwx.nesdispm CASCADE;
CREATE TABLE nwx.nesdispm(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
-- create nwx.snwstgam table
DROP TABLE IF EXISTS nwx.nwstgam CASCADE;
CREATE TABLE nwx.nwstgam(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
-- Drop nwx.sdm table
DROP TABLE IF EXISTS nwx.sdm CASCADE;
-- create nwx.sdmam table
DROP TABLE IF EXISTS nwx.sdmam CASCADE;
CREATE TABLE nwx.sdmam(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
-- create nwx.sdmim table
DROP TABLE IF EXISTS nwx.sdmim CASCADE;
CREATE TABLE nwx.sdmim(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
-- create nwx.sdmdhm table
DROP TABLE IF EXISTS nwx.sdmdhm CASCADE;
CREATE TABLE nwx.sdmdhm(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
INSERT INTO nwx.datatypegrouplist (datatypegroupname,datatypegrouptablename) values ('Admin Messages','nwx.adminmessages');
INSERT INTO nwx.adminmessages(productname,producttablename,producttype) values ('SDM Administrative Messages','nwx.sdmam','sdmam');
INSERT INTO nwx.sdmam (productid,stnid,stnname,state,country,latitude,longitude,elevation) values ('NOUS42','KWNO','NMC','MD','US',38.82,-76.87,86);
INSERT INTO nwx.adminmessages(productname,producttablename,producttype) values ('SDM International Messages','nwx.sdmim','sdmim');
INSERT INTO nwx.sdmim (productid,stnid,stnname,state,country,latitude,longitude,elevation) values ('NPXX10','KWNO','NMC','MD','US',38.82,-76.87,86);
INSERT INTO nwx.adminmessages(productname,producttablename,producttype) values ('SDM DHS Hazards Messages','nwx.sdmdhm','sdmdhm');
INSERT INTO nwx.sdmdhm (productid,stnid,stnname,state,country,latitude,longitude,elevation) values ('NOUS71','KWNO','NMC','MD','US',38.82,-76.87,86);
INSERT INTO nwx.adminmessages(productname,producttablename,producttype) values ('CMC Administrative Messages','nwx.cmcam','cmcam');
INSERT INTO nwx.cmcam (productid,stnid,stnname,state,country,latitude,longitude,elevation) values ('NOCN05', 'CWAO','MONTREAL_VAAC','CN','CN',45.47,-73.75,-9999);
INSERT INTO nwx.cmcam (productid,stnid,stnname,state,country,latitude,longitude,elevation) values ('AACN01', 'CWAO','MONTREAL_VAAC','CN','CN',45.47,-73.75,-9999);
INSERT INTO nwx.adminmessages(productname,producttablename,producttype) values ('NWSTG Administrative Messages','nwx.nwstgam','nwstgam');
INSERT INTO nwx.nwstgam (productid,stnid,stnname,state,country,latitude,longitude,elevation) values ('NOXX01', 'KWBC','NMC','MD','US',38.82,-76.87,86);
INSERT INTO nwx.adminmessages(productname,producttablename,producttype) values ('NCF Administrative Messages','nwx.ncfam','ncfam');
INSERT INTO nwx.ncfam (productid,stnid,stnname,state,country,latitude,longitude,elevation) values ('NOUS72', 'KNCF','NMC','MD','US',38.82,-76.87,86);
INSERT INTO nwx.adminmessages(productname,producttablename,producttype) values ('NESDIS Product Anomaly Messages','nwx.nesdispm','nesdispm');
INSERT INTO nwx.nesdispm (productid,stnid,stnname,state,country,latitude,longitude,elevation) values ('NOUS71', 'KNES','NESDIS','MD','US',38.82,-76.87,86);
INSERT INTO nwx.adminmessages(productname,producttablename,producttype) values ('NESDIS Administrative Messages','nwx.nesdisam','nesdisam');
INSERT INTO nwx.nesdisam (productid,stnid,stnname,state,country,latitude,longitude,elevation) values ('NOUS72', 'KNES','NESDIS','MD','US',38.82,-76.87,86);
INSERT INTO awips.nctext_inputfile_type VALUES (181,'sdmdhm','W');
INSERT INTO awips.nctext_inputfile_type VALUES (182,'cmcam','W');
INSERT INTO awips.nctext_inputfile_type VALUES (183,'nwstgam','W');
INSERT INTO awips.nctext_inputfile_type VALUES (184,'ncfam','W');
INSERT INTO awips.nctext_inputfile_type VALUES (185,'nesdispm','W');
INSERT INTO awips.nctext_inputfile_type VALUES (186,'nesdisam','W');
INSERT INTO awips.nctext_inputfile_type VALUES (185,'sdmam','B');
INSERT INTO awips.nctext_inputfile_type VALUES (186,'sdmim','W');
DELETE from nwx.hpcproducts where productname='SDM Messages';
DELETE from nwx.hpcproducts where productname='International Messages';
DROP TABLE nwx.sdm;
DROP TABLE nwx.intl;

View file

@ -195,6 +195,15 @@ producttablename varchar(30) NOT NULL,
producttype varchar(20) NOT NULL
);
-- create nwx.adminmessages table
DROP TABLE IF EXISTS nwx.adminmessages CASCADE;
CREATE TABLE nwx.adminmessages(
id SERIAL PRIMARY KEY,
productname varchar(60) NOT NULL,
producttablename varchar(30) NOT NULL,
producttype varchar(20) NOT NULL
);
-------------------------------------------------
-- create nwx bulletin tables
-- ---------------------------------------------
@ -355,6 +364,20 @@ id SERIAL PRIMARY KEY,
elevation int NOT NULL
);
-- create nwx.cmcam table
DROP TABLE IF EXISTS nwx.cmcam CASCADE;
CREATE TABLE nwx.cmcam(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
--create nwx.consig table
DROP TABLE IF EXISTS nwx.consig CASCADE;
CREATE TABLE nwx.consig(
@ -1016,6 +1039,48 @@ id SERIAL PRIMARY KEY,
elevation int NOT NULL
);
-- create nwx.ncfam table
DROP TABLE IF EXISTS nwx.ncfam CASCADE;
CREATE TABLE nwx.ncfam(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
-- create nwx.nesdisam table
DROP TABLE IF EXISTS nwx.nesdisam CASCADE;
CREATE TABLE nwx.nesdisam(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
-- create nwx.nesdispam table
DROP TABLE IF EXISTS nwx.nesdispam CASCADE;
CREATE TABLE nwx.nesdispam(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
-- create nwx.ngmgd table
DROP TABLE IF EXISTS nwx.ngmgd CASCADE;
CREATE TABLE nwx.ngmgd(
@ -1058,6 +1123,20 @@ id SERIAL PRIMARY KEY,
elevation int NOT NULL
);
-- create nwx.snwstgam table
DROP TABLE IF EXISTS nwx.nwstgam CASCADE;
CREATE TABLE nwx.nwstgam(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
-- create nwx.off table
DROP TABLE IF EXISTS nwx.off CASCADE;
CREATE TABLE nwx.off(
@ -1400,9 +1479,37 @@ id SERIAL PRIMARY KEY,
elevation int NOT NULL
);
-- create nwx.sdm table
DROP TABLE IF EXISTS nwx.sdm CASCADE;
CREATE TABLE nwx.sdm(
-- create nwx.sdmam table
DROP TABLE IF EXISTS nwx.sdmam CASCADE;
CREATE TABLE nwx.sdmam(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
-- create nwx.sdmim table
DROP TABLE IF EXISTS nwx.sdmim CASCADE;
CREATE TABLE nwx.sdmim(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,
stnname varchar(32) NOT NULL,
state varchar(2) NOT NULL,
country varchar(2) NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
elevation int NOT NULL
);
-- create nwx.sdmdhm table
DROP TABLE IF EXISTS nwx.sdmdhm CASCADE;
CREATE TABLE nwx.sdmdhm(
id SERIAL PRIMARY KEY,
productid varchar(6) NOT NULL,
stnid varchar(8) NOT NULL,

View file

@ -25,3 +25,4 @@ ${1}/bin/psql -d ncep -U ${3} -q -p ${2} -f ${4}/loadNwxReconCARCAHBulletinTable
${1}/bin/psql -d ncep -U ${3} -q -p ${2} -f ${4}/loadNwxSPCProductsBulletinTables.sql >> ${5} 2>&1
${1}/bin/psql -d ncep -U ${3} -q -p ${2} -f ${4}/loadNwxTropicalPacificBulletinTables.sql >> ${5} 2>&1
${1}/bin/psql -d ncep -U ${3} -q -p ${2} -f ${4}/loadNwxVolcanoProductsBulletinTables.sql >> ${5} 2>&1
${1}/bin/psql -d ncep -U ${3} -q -p ${2} -f ${4}/loadNwxAdminMessagesBulletinTables.sql >> ${5} 2>&1

View file

@ -0,0 +1,40 @@
-- load nwx.sdmam table
copy nwx.sdmam (productid,stnid,stnname,state,country,latitude,longitude,elevation) FROM stdin with delimiter as ',';
NOUS42,KWNO,NMC,MD,US,38.82,-76.87,86
\.
-- load nwx.sdmim table
copy nwx.sdmim (productid,stnid,stnname,state,country,latitude,longitude,elevation) FROM stdin with delimiter as ',';
NPXX10,KWNO,NMC,MD,US,38.82,-76.87,86
\.
-- load nwx.sdmdhm table
copy nwx.sdmdhm (productid,stnid,stnname,state,country,latitude,longitude,elevation) FROM stdin with delimiter as ',';
NOUS71,KWNO,NMC,MD,US,38.82,-76.87,86
\.
-- load nwx.nwstgam table
copy nwx.nwstgam (productid,stnid,stnname,state,country,latitude,longitude,elevation) FROM stdin with delimiter as ',';
NOXX01,KWBC,NMC,MD,US,38.82,-76.87,86
\.
-- load nwx.ncfam table
copy nwx.ncfam (productid,stnid,stnname,state,country,latitude,longitude,elevation) FROM stdin with delimiter as ',';
NOUS72,KNCF,NMC,MD,US,38.82,-76.87,86
\.
-- load nwx.nesdispm table
copy nwx.nesdispm (productid,stnid,stnname,state,country,latitude,longitude,elevation) FROM stdin with delimiter as ',';
NOUS71,KNES,NMC,MD,US,38.82,-76.87,86
\.
-- load nwx.nesdisam table
copy nwx.nesdisam (productid,stnid,stnname,state,country,latitude,longitude,elevation) FROM stdin with delimiter as ',';
NOUS72,KNES,NMC,MD,US,38.82,-76.87,86
\.
-- load nwx.cmcam table
copy nwx.cmcam (productid,stnid,stnname,state,country,latitude,longitude,elevation) FROM stdin with delimiter as ',';
NOCN05,CWAO,MONTREAL_VAAC,CN,CN,45.47,-73.75,-9999
AACN01,CWAO,MONTREAL_VAAC,CN,CN,45.47,-73.75,-9999
\.

View file

@ -64,6 +64,19 @@ HPC Heat Index,nwx.hpcheatindex
CPC Products,nwx.cpcproducts
Volcano Products,nwx.volcanoproducts
Fire Weather Products,nwx.fireweatherproducts
Admin Messages,nwx.adminmessages
\.
--load nwx.adminmessages table
copy nwx.adminmessages (productname,producttablename,producttype) FROM stdin with delimiter as ',' ;
SDM Administrative Messages,nwx.sdmam,sdm
SDM International Messages,nwx.sdmim,intl
SDM DHS Hazards Messages,nwx.sdmdhm
CMC Administrative Messages,nwx.cmcam
NWSTG Administrative Messages,nwx.nwstgam
NCF Administrative Messages,nwx.ncfam
NESDIS Product Anomaly Messages,nwx.nesdispam
NESDIS Administrative Messages,nwx.nesdisam
\.
--load nwx.observeddataproducts table
@ -135,8 +148,6 @@ Hawaii Discussion,nwx.pmdhi,PMDHI
Alaska Discussion,nwx.pmdak,PMDAK
S Amer Discussion,nwx.pmdsa,PMDSA
Caribbean Discussion,nwx.pmdca,PMDCA
SDM Messages,nwx.sdm,sdm
International Messages,nwx.intl,intl
Storm Summaries,nwx.stations,storm
Model Diag Discussion,nwx.pmdhmd,PMDHMD
Selected Cities,nwx.scs,SCS

View file

@ -8658,7 +8658,7 @@ copy nwx.sfstns (productid,stnid,stnname,state,country,latitude,longitude,elevat
085010;LPFL;FLORES_ISLAND;--;AZ;39.45;-31.13;29
999999;M97;TUNICA;MS;US;34.86;-90.35;59
999999;MDD;MIDLAND;TX;US;32.04;-102.10;854
890090;NZSP;AMUNDSEN-SCOTT_SOUTH_POLE_STN;--;NZ;-90.00;0.00;2830
890090;NZSP;AMUNDSEN-SCOTT_SOUTH_POLE_STN;--;NZ;-89.99;0.01;2830
999999;PCZ;WAUPACA;WI;US;44.33;-89.01;252
999999;RCX;LADYSMITH;WI;US;45.50;-91.00;377
800630;SKMR;MONTERIA/LOS_GARZON;--;CO;8.82;-75.85;26
@ -10043,7 +10043,7 @@ copy nwx.snstns (productid,stnid,stnname,state,country,latitude,longitude,elevat
87860;SAVC;COMODORO_RIVADAVIA_AERO;--;AG;-45.78;-67.50;46
88889;EGYP;MOUNT_PLEASANT_AIRPORT;--;FK;-51.81;-58.45;73
89002;--;NEUMAYER;--;AA;-70.66;-8.25;50
89009;--;AMUNDSEN-SCOTT;--;AA;-90.00;0.00;2835
89009;--;AMUNDSEN-SCOTT;--;AA;-89.99;0.01;2835
89022;--;HALLEY;--;AA;-75.50;-26.65;30
89050;--;BELLINGSHAUSEN_AWS;--;AA;-62.20;-58.93;14
89055;--;BASE_MARAMBIO;--;AA;-64.23;-56.71;198

View file

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<latLonGridCoverage>
<name>ECMWF-wave-0p25deg</name>
<description>Global Latitude/Longitude 0.25 deg Resolution</description>
<la1>90.0</la1>
<lo1>-180.0</lo1>
<firstGridPointCorner>UpperLeft</firstGridPointCorner>
<nx>1441</nx>
<ny>685</ny>
<dx>0.25</dx>
<dy>0.25</dy>
<spacingUnit>degree</spacingUnit>
<la2>-81.0</la2>
<lo2>180.0</lo2>
</latLonGridCoverage>

View file

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<latLonGridCoverage>
<name>1440721001</name>
<description>High Resolution (0.25 by 0.25) CED grids</description>
<la1>90.0</la1>
<lo1>0.0</lo1>
<firstGridPointCorner>UpperLeft</firstGridPointCorner>
<nx>1440</nx>
<ny>721</ny>
<dx>.25</dx>
<dy>.25</dy>
<spacingUnit>degree</spacingUnit>
</latLonGridCoverage>

View file

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<latLonGridCoverage>
<name>193</name>
<description>Global Latitude/Longitude 0.25 deg Resolution</description>
<la1>90.0</la1>
<lo1>0.0</lo1>
<firstGridPointCorner>UpperLeft</firstGridPointCorner>
<nx>1440</nx>
<ny>721</ny>
<dx>.25</dx>
<dy>.25</dy>
<spacingUnit>degree</spacingUnit>
<la2>-90.0</la2>
<lo2>359.75</lo2>
</latLonGridCoverage>

View file

@ -26,10 +26,10 @@
</model>
<model>
<name>ecmwfP25</name>
<name>ecmwf0p25</name>
<center>98</center>
<subcenter>0</subcenter>
<grid>144072101</grid>
<grid>193</grid>
<process>
<id>141</id>
<id>142</id>
@ -39,6 +39,20 @@
</process>
</model>
<model>
<name>ecmwf0p25wave</name>
<center>98</center>
<subcenter>0</subcenter>
<grid>ECMWF-wave-0p25deg</grid>
<process>
<id>108</id>
<id>109</id>
<id>110</id>
<id>111</id>
<id>112</id>
</process>
</model>
<model>
<name>ecmwf</name>
<center>98</center>

View file

@ -19,14 +19,17 @@
further_licensing_information.
-->
<requestPatterns xmlns:ns2="group">
<regex>^S(HV|HXX|S[^X]).*</regex>
<regex>^S[IMN]W[^KZ].*</regex>
<regex>^SIV[A-FJX].*</regex>
<regex>^SMUS.*</regex>
<regex>^SMCN.*</regex>
<regex>^SMMX.*</regex>
<regex>^SMV[DCE].*</regex>
<regex>^SIV[DCE].*</regex>
<regex>^SNV[DCE].*</regex>
<regex>^SMV[A-FJX].*</regex>
<regex>^SNV[A-FXZ].*</regex>
<regex>^SSV[DCE].*</regex>
<regex>^SSVX.*</regex>
<regex>^SXUS2[0123] KWNB.*</regex>
<regex>^SXUS2[0123].*</regex>
<regex>^VHVD2[89] KWNB.*</regex>
<regex>^Y[HO]XX84.*</regex>
</requestPatterns>

View file

@ -4,6 +4,7 @@
* Date Ticket# Engineer Description
* __________ _______ __________ __________________________
* 06/28/2011 F. J. Yen Initial creation for OB11.5
* 07/14/2014 B. Hebbard Add refTime parameter
-->
<pointDataDbDescription>
<parameter name="latitude" queryName="location.latitude" type="FLOAT" unit="°" />
@ -11,4 +12,5 @@
<parameter name="stationId" queryName="location.stationId" type="STRING" />
<parameter name="reportType" queryName="reportType" type="STRING" />
<parameter name="dataURI" queryName="dataURI" type="STRING" />
<parameter name="refTime" queryName="dataTime.refTime" numDims="1" type="LONG" unit="ms"/>
</pointDataDbDescription>

View file

@ -177,3 +177,10 @@ INSERT INTO awips.nctext_inputfile_type VALUES (177,'warwatch','W');
INSERT INTO awips.nctext_inputfile_type VALUES (178,'warnsumm','W');
INSERT INTO awips.nctext_inputfile_type VALUES (179,'coutlook','W');
INSERT INTO awips.nctext_inputfile_type VALUES (180,'fwddy38','W');
INSERT INTO awips.nctext_inputfile_type VALUES (181,'sdmdhm','W');
INSERT INTO awips.nctext_inputfile_type VALUES (182,'cmcam','W');
INSERT INTO awips.nctext_inputfile_type VALUES (183,'nwstgam','W');
INSERT INTO awips.nctext_inputfile_type VALUES (184,'ncfam','W');
INSERT INTO awips.nctext_inputfile_type VALUES (185,'nesdispm','W');
INSERT INTO awips.nctext_inputfile_type VALUES (186,'nesdisam','W');

View file

@ -10,6 +10,7 @@
* Date Ticket# Engineer Description
* ------- ------- -------- -----------
* 10/23/2009 TBD Chin Chen Initial coding
* 07/10/2014 Chin Chen .fixed month adjustment
*
* </pre>
*
@ -64,20 +65,41 @@ public class NctextSeparator extends AbstractRecordSeparator {
public static final String R_TYPE_SEPARATOR3 = "[A-Z]{3,4}";
public static String [][] gdStnGp= {{"PWM","BGR","CAR","CON","AFA"},{"ALB","BOS","PHL","BTV","LGA","IPT"},{"DCA","RDU","ILM","ORF","HAT"},
{"CAE","MIA","TLH","SAV","LAL"},{"BUF","CLE","CRW","PIT","DAY","IND"},{"STL","MEM","TYS","SDF","BNA","ATL"},{"BHM","JAN","SHV","MOB","MSY","LIT"},
{"DTW","MKE","INL","SSM","MSP","ORD"},{"DSM","DDC","LBF","TOP","OMA","BFF"},{"OKC","SAT","BRO","DFW","IAH","DRT"},{"BIS","RAP","BIL","FSD","GTF","MSO"},
{"LBB","ABQ","DEN","ELP","PHX","CYS"},{"SEA","PDX","BOI","GEG","MFR","PIH"},{"SFO","LAX","SLC","FAT","RNO","CDC"},{"YQB","YOW","YYB","YQT","YMW","YLH"},
{"YWG","YQR","YYC","YQD","YPA","YEG"},{"MCD","YXC","YVR","YRV","YCG","YXS"}, {"X68","EDW","LWS","UCC","BTNM","LGIN"}, {"SYR","ROA","ZZV","AOO","AVL"},
{"SGF","GRB","GJT","JKL","MLI","FAR","LND"},{"MAF","LCH","TUL","DHT","DHN","DAB"},{"GGW","RDD","LAS","PDT","EKO","FLG"},
{"AKN","CZF","EDF","EHM","SVW","TLJ"},{"EIL","GAL","LUR","TNC","UTO"},{"ANC","ANN","CDV","JNU","ORT","YAK"},{"ADQ","BET","CDB","MCG","SNP"},
{"BRW","BTI","BTT","FAI","OME","OTZ"},{"TJSJ","TJMZ","TJPS","TJBQ","TJGU","TJAD"},{"TIST","TISX","TNCM","TKPK","TJNR","TISJ"},{"PHNL","PHLI","PHOG","PHTO","HIB1","HIB4"}};
public static String[][] gdStnGp = { { "PWM", "BGR", "CAR", "CON", "AFA" },
{ "ALB", "BOS", "PHL", "BTV", "LGA", "IPT" },
{ "DCA", "RDU", "ILM", "ORF", "HAT" },
{ "CAE", "MIA", "TLH", "SAV", "LAL" },
{ "BUF", "CLE", "CRW", "PIT", "DAY", "IND" },
{ "STL", "MEM", "TYS", "SDF", "BNA", "ATL" },
{ "BHM", "JAN", "SHV", "MOB", "MSY", "LIT" },
{ "DTW", "MKE", "INL", "SSM", "MSP", "ORD" },
{ "DSM", "DDC", "LBF", "TOP", "OMA", "BFF" },
{ "OKC", "SAT", "BRO", "DFW", "IAH", "DRT" },
{ "BIS", "RAP", "BIL", "FSD", "GTF", "MSO" },
{ "LBB", "ABQ", "DEN", "ELP", "PHX", "CYS" },
{ "SEA", "PDX", "BOI", "GEG", "MFR", "PIH" },
{ "SFO", "LAX", "SLC", "FAT", "RNO", "CDC" },
{ "YQB", "YOW", "YYB", "YQT", "YMW", "YLH" },
{ "YWG", "YQR", "YYC", "YQD", "YPA", "YEG" },
{ "MCD", "YXC", "YVR", "YRV", "YCG", "YXS" },
{ "X68", "EDW", "LWS", "UCC", "BTNM", "LGIN" },
{ "SYR", "ROA", "ZZV", "AOO", "AVL" },
{ "SGF", "GRB", "GJT", "JKL", "MLI", "FAR", "LND" },
{ "MAF", "LCH", "TUL", "DHT", "DHN", "DAB" },
{ "GGW", "RDD", "LAS", "PDT", "EKO", "FLG" },
{ "AKN", "CZF", "EDF", "EHM", "SVW", "TLJ" },
{ "EIL", "GAL", "LUR", "TNC", "UTO" },
{ "ANC", "ANN", "CDV", "JNU", "ORT", "YAK" },
{ "ADQ", "BET", "CDB", "MCG", "SNP" },
{ "BRW", "BTI", "BTT", "FAI", "OME", "OTZ" },
{ "TJSJ", "TJMZ", "TJPS", "TJBQ", "TJGU", "TJAD" },
{ "TIST", "TISX", "TNCM", "TKPK", "TJNR", "TISJ" },
{ "PHNL", "PHLI", "PHOG", "PHTO", "HIB1", "HIB4" } };
public static final byte ASCII_RS = 0x1E; // record separator "^^"
public static final byte ASCII_SP = 0x20; // SPACE
// private static final int DTGROUP_SIZE = 6;
private String cccc = null;
@ -143,6 +165,8 @@ public class NctextSeparator extends AbstractRecordSeparator {
*/
public NctextSeparator(String traceId) {
this.traceId = traceId;
System.out.println("NctextSeparator constructed with traceId="
+ traceId);
nctextInputFileTypeDao = new NctextInputFileTypeDao();
int ind = traceId.indexOf('.');
if (ind > 0)
@ -335,299 +359,164 @@ public class NctextSeparator extends AbstractRecordSeparator {
*/
@Override
public void setData(byte[] rawMessage, Headers headers) {
/*
currentReport = -1;
// Now check for some binary data types, Stop decoding, if it is binary
String sRawMessage = new String(rawMessage);
int pos = sRawMessage.indexOf("BUFR");
boolean notStored = false;
notStored = notStored || ((pos >= 0) && (pos < 20));
pos = sRawMessage.indexOf("GRIB");
notStored = notStored || ((pos >= 0) && (pos < 20));
pos = sRawMessage.indexOf("JPG");
notStored = notStored || ((pos >= 0) && (pos < 20));
pos = sRawMessage.indexOf("PNG");
notStored = notStored || ((pos >= 0) && (pos < 20));
pos = sRawMessage.indexOf("GIF87");
notStored = notStored || ((pos >= 0) && (pos < 20));
int rawMsglength = rawMessage.length; //
// * start from this, and
// * decremented when each bulletin
// * found
//
int rawMsgPointer = 0;//*
// * start from 0 and incremented when each bulletin
// * found
//
int recordId = 1; ///* to record number of records with same AWIPS header
reports = new ArrayList<NctextRecord>();
String sRawMsgInProcessing = null;
int endPos;
int rsPos, nextRsPos, curPos;
if (!notStored) {
String fileType = nctextInputFileTypeDao
.getFiletypeType(ingestFileExt);
while (rawMsglength > 0) {
sRawMsgInProcessing = sRawMessage.substring(rawMsgPointer);
// Parsing record header and find a "section" A section may
// contain more than one record for some data type, e.g. M type
// (MOS).
if (parseHeader(sRawMsgInProcessing)) {
// Start of a "section" found after a Ctl-A,
endPos = sRawMsgInProcessing
.indexOf(IDecoderConstants.ASCII_ETX); // Ctl-C
// set data to record
if (endPos > messageDataStart) {
// handle special type of data, e.g M,etc.. type
if (fileType.equals("M")) {
// M type data has several records in one "section".
// They are separated by Record Separator "^^".
rsPos = sRawMsgInProcessing.indexOf(ASCII_RS); // find
// first
// RS
// testCount++;
// if((testCount %50) == 0){
// System.out.println("M type data: " + testCount+
// " enterred! end position = "+ endPos+
// "1st rs pos = "+rsPos);
// }
// cumRsPos = rsPos;
if ((rsPos >= 0) && (rsPos < endPos)) {
// String sMRawMsg =
// sRawMsgInProcessing.substring(rsPos+1);//move
// string to after first RS
// get stnid=xxxx which is 4 chars right after
// RS, like this ^^XXXX
// String stnId = sMRawMsg.substring(0, 4);
String stnId = sRawMsgInProcessing.substring(
rsPos + 1, rsPos + 5);
// nextRsPos = sMRawMsg.indexOf(ASCII_RS); //2nd
// RS
curPos = rsPos + 1;
nextRsPos = sRawMsgInProcessing.indexOf(
ASCII_RS, curPos); // 2nd RS
// cumRsPos = cumRsPos + nextRsPos;
int testCount1 = 0;
while ((nextRsPos >= 0)
&& (nextRsPos < endPos)) {
// find record(s) within the section, store
// it
testCount1++;
// if((testCount1 %50) == 1)
// System.out.println(" number RS = "+
// testCount);
// System.out.println("cur pos = "+curPos+
// " next rs pos = "+ nextRsPos);
NctextRecord nctextrecord = new NctextRecord();
setNctextRecord(nctextrecord);
// nctextrecord.setRawRecord(sMRawMsg.substring(0,
// nextRsPos-1));
nctextrecord
.setRawRecord(sRawMsgInProcessing
.substring(curPos,
nextRsPos - 1));
nctextrecord.setRecordId(recordId++);
nctextrecord.setIssueSite(stnId); // replace
// cccc
// with
// stndId
// found
// for
// this
// record
reports.add(nctextrecord);
// sMRawMsg =
// sMRawMsg.substring(nextRsPos+1);//move
// string to after current next RS
// nextRsPos =
// sMRawMsg.indexOf(ASCII_RS);//new next RS
stnId = sRawMsgInProcessing.substring(
nextRsPos + 1, nextRsPos + 5);
// cumRsPos = cumRsPos + nextRsPos;
curPos = nextRsPos + 1;
nextRsPos = sRawMsgInProcessing.indexOf(
ASCII_RS, nextRsPos + 1);// new next
// RS
// stnId = sMRawMsg.substring(0, 4);
}
// Handle the last record which is NOT saved in
// the while loop
NctextRecord nctextrecord = new NctextRecord();
setNctextRecord(nctextrecord);
// nctextrecord.setRawRecord(sMRawMsg);
nctextrecord.setRawRecord(sRawMsgInProcessing
.substring(curPos, endPos - 1));
nctextrecord.setRecordId(recordId++);
nctextrecord.setIssueSite(stnId); // replace
// cccc with
// stndId
// found for
// this record
reports.add(nctextrecord);
// System.out.println(" number RS = "+
// testCount);
} else {
// Chin debug
System.out
.println("setData for M type: find wmoHeader "
+ (recordId - 1)
+ ": "
+ WMOId
+ " "
+ cccc
+ " "
+ YYGGgg
+ " "
+ awipsId
+ " BUT, no RS ^^ found!");
rawMsglength = 0; ///* get out of here
}
// System.out.println("M type report size : "+
// reports.size());
} else {
// other data type - I.e. B,Z,R,O,F, W type
int recordEndPos = endPos;
recordEndPos--; // exclude Ctl-C
// Adjust record end position by skipping CR and LN
// at end of record
while (recordEndPos > 0) {
if ((sRawMsgInProcessing.charAt(recordEndPos) == IDecoderConstants.ASCII_LF)
|| (sRawMsgInProcessing
.charAt(recordEndPos) == IDecoderConstants.ASCII_CR)) {
recordEndPos--;
} else {
break;
}
}
NctextRecord nctextrecord = new NctextRecord();
setNctextRecord(nctextrecord);
nctextrecord.setReportData(sRawMsgInProcessing
.substring(messageDataStart,
recordEndPos + 1));
nctextrecord.setRawRecord(sRawMsgInProcessing
.substring(recordStart, recordEndPos + 1));
nctextrecord.setRecordId(recordId++);
reports.add(nctextrecord);
}
// adjust pointers for next possible section/record
rawMsglength = rawMsglength - (endPos + 1); // string
// index
// start
// with 0
rawMsgPointer = rawMsgPointer + (endPos + 1);
// Chin debug
// logger.info("setData : find wmoHeader "
// +(recordId-1)+ ": "
// + WMOId + " " + cccc + " " + YYGGgg+ " " + awipsId +
// " " + proType
// /*+"\n rawMsgLn " + rawMsglength + "rawMsgPointer " +
// rawMsgPointer + "endPos " + endPos);
resetVaraable();
} else {
// Chin debug
logger.info("setData : find wmoHeader "
+ (recordId - 1) + ": " + WMOId + " " + cccc
+ " " + YYGGgg + " " + awipsId
+ " BUT, no message data end Ctl-C found! "//*
// * +
// * " rawMsgLn "
// * +
// * rawMsglength
/// * +
// * " rawMsgPointer "
// * +
// * rawMsgPointer
// * +
// * " endPos "
// * +
// * endPos
// );
rawMsglength = 0; ///* get out of here
}
}
// Chin debug
else {
int ePos;
switch (parseErr) {
case NO_AWIPS_HDR:
logger.info("setData : no header found. Stop here! ");
rawMsglength = 0;// get out of here
logErrToFile("No AWIPS header found in this file. Stop Parsing!\n");
break;
case NO_AWIPS_HDR_IN_BULLETIN:
logger.info("setData : no header found in a bulletin. ");
// Skip this part of data. adjust buffer to next
// possible bulletin
ePos = sRawMsgInProcessing
.indexOf(IDecoderConstants.ASCII_ETX); // Ctl-C
rawMsglength = rawMsglength - (ePos + 1); // string
// index start
// with 0
rawMsgPointer = rawMsgPointer + (ePos + 1);
logErrToFile("A Bulletin without good AWIPS header found. Skip it!\n");
break;
case NO_CTLA_IN_BULLETIN:
logger.info("setData : no ctl-A found in a bulletin. ");
// Skip this part of data. adjust buffer to next
// possible bulletin
ePos = sRawMsgInProcessing
.indexOf(IDecoderConstants.ASCII_ETX); // Ctl-C
rawMsglength = rawMsglength - (ePos + 1); // string
// index start
// with 0
rawMsgPointer = rawMsgPointer + (ePos + 1);
logErrToFile("A Bulletin without ctl-A found. Skip it!\n");
break;
case NO_CTLA_TO_END:
logger.info("setData : no ctl-A found from this point down. Stop here! ");
// Skip this part of data. adjust buffer to next
// possible bulletin
rawMsglength = 0;// get out of here
logErrToFile("No ctl-A found from this point down. Stop here!\n");
break;
case NO_CTLC_TO_END:
logger.info("setData : no ctl-C found from this point down. Stop here! ");
// Skip this part of data. adjust buffer to next
// possible bulletin
rawMsglength = 0;// get out of here
logErrToFile("No ctl-C found from this point down. Stop here!\n");
break;
case NO_ERR:
logger.info("setData : end of file. Stop here! ");
rawMsglength = 0;// get out of here
break;
default:
logger.info("setData : general error! Stop here! ");
logErrToFile("Unknow parsing error. Stop here!\n");
rawMsglength = 0;// get out of here
break;
}
}
}// While loop
}
if ((reports != null) && (reports.size() > 0)) {
currentReport = 0;
} else {
// Chin debug
logger.info(traceId + " - setData():No reports found in data.");
}
*/
/*
* currentReport = -1;
*
* // Now check for some binary data types, Stop decoding, if it is
* binary String sRawMessage = new String(rawMessage); int pos =
* sRawMessage.indexOf("BUFR"); boolean notStored = false; notStored =
* notStored || ((pos >= 0) && (pos < 20)); pos =
* sRawMessage.indexOf("GRIB"); notStored = notStored || ((pos >= 0) &&
* (pos < 20)); pos = sRawMessage.indexOf("JPG"); notStored = notStored
* || ((pos >= 0) && (pos < 20)); pos = sRawMessage.indexOf("PNG");
* notStored = notStored || ((pos >= 0) && (pos < 20)); pos =
* sRawMessage.indexOf("GIF87"); notStored = notStored || ((pos >= 0) &&
* (pos < 20));
*
* int rawMsglength = rawMessage.length; // // * start from this, and //
* * decremented when each bulletin // * found // int rawMsgPointer =
* 0;//* // * start from 0 and incremented when each bulletin // * found
* // int recordId = 1; ///* to record number of records with same AWIPS
* header reports = new ArrayList<NctextRecord>(); String
* sRawMsgInProcessing = null; int endPos; int rsPos, nextRsPos, curPos;
* if (!notStored) { String fileType = nctextInputFileTypeDao
* .getFiletypeType(ingestFileExt); while (rawMsglength > 0) {
* sRawMsgInProcessing = sRawMessage.substring(rawMsgPointer); //
* Parsing record header and find a "section" A section may // contain
* more than one record for some data type, e.g. M type // (MOS). if
* (parseHeader(sRawMsgInProcessing)) { // Start of a "section" found
* after a Ctl-A, endPos = sRawMsgInProcessing
* .indexOf(IDecoderConstants.ASCII_ETX); // Ctl-C // set data to record
* if (endPos > messageDataStart) { // handle special type of data, e.g
* M,etc.. type if (fileType.equals("M")) {
*
* // M type data has several records in one "section". // They are
* separated by Record Separator "^^". rsPos =
* sRawMsgInProcessing.indexOf(ASCII_RS); // find // first // RS //
* testCount++; // if((testCount %50) == 0){ //
* System.out.println("M type data: " + testCount+ //
* " enterred! end position = "+ endPos+ // "1st rs pos = "+rsPos); // }
*
* // cumRsPos = rsPos; if ((rsPos >= 0) && (rsPos < endPos)) { //
* String sMRawMsg = // sRawMsgInProcessing.substring(rsPos+1);//move //
* string to after first RS // get stnid=xxxx which is 4 chars right
* after // RS, like this ^^XXXX // String stnId = sMRawMsg.substring(0,
* 4); String stnId = sRawMsgInProcessing.substring( rsPos + 1, rsPos +
* 5); // nextRsPos = sMRawMsg.indexOf(ASCII_RS); //2nd // RS curPos =
* rsPos + 1; nextRsPos = sRawMsgInProcessing.indexOf( ASCII_RS,
* curPos); // 2nd RS // cumRsPos = cumRsPos + nextRsPos; int testCount1
* = 0; while ((nextRsPos >= 0) && (nextRsPos < endPos)) { // find
* record(s) within the section, store // it testCount1++; //
* if((testCount1 %50) == 1) // System.out.println(" number RS = "+ //
* testCount); // System.out.println("cur pos = "+curPos+ //
* " next rs pos = "+ nextRsPos); NctextRecord nctextrecord = new
* NctextRecord(); setNctextRecord(nctextrecord); //
* nctextrecord.setRawRecord(sMRawMsg.substring(0, // nextRsPos-1));
* nctextrecord .setRawRecord(sRawMsgInProcessing .substring(curPos,
* nextRsPos - 1)); nctextrecord.setRecordId(recordId++);
* nctextrecord.setIssueSite(stnId); // replace // cccc // with //
* stndId // found // for // this // record reports.add(nctextrecord);
*
* // sMRawMsg = // sMRawMsg.substring(nextRsPos+1);//move // string to
* after current next RS // nextRsPos = //
* sMRawMsg.indexOf(ASCII_RS);//new next RS stnId =
* sRawMsgInProcessing.substring( nextRsPos + 1, nextRsPos + 5); //
* cumRsPos = cumRsPos + nextRsPos; curPos = nextRsPos + 1;
*
* nextRsPos = sRawMsgInProcessing.indexOf( ASCII_RS, nextRsPos + 1);//
* new next // RS // stnId = sMRawMsg.substring(0, 4);
*
* } // Handle the last record which is NOT saved in // the while loop
* NctextRecord nctextrecord = new NctextRecord();
* setNctextRecord(nctextrecord); //
* nctextrecord.setRawRecord(sMRawMsg);
* nctextrecord.setRawRecord(sRawMsgInProcessing .substring(curPos,
* endPos - 1)); nctextrecord.setRecordId(recordId++);
* nctextrecord.setIssueSite(stnId); // replace // cccc with // stndId
* // found for // this record reports.add(nctextrecord); //
* System.out.println(" number RS = "+ // testCount); } else { // Chin
* debug System.out .println("setData for M type: find wmoHeader " +
* (recordId - 1) + ": " + WMOId + " " + cccc + " " + YYGGgg + " " +
* awipsId + " BUT, no RS ^^ found!");
*
* rawMsglength = 0; ///* get out of here } //
* System.out.println("M type report size : "+ // reports.size());
*
* } else { // other data type - I.e. B,Z,R,O,F, W type int recordEndPos
* = endPos; recordEndPos--; // exclude Ctl-C // Adjust record end
* position by skipping CR and LN // at end of record while
* (recordEndPos > 0) { if ((sRawMsgInProcessing.charAt(recordEndPos) ==
* IDecoderConstants.ASCII_LF) || (sRawMsgInProcessing
* .charAt(recordEndPos) == IDecoderConstants.ASCII_CR)) {
* recordEndPos--;
*
* } else { break; } } NctextRecord nctextrecord = new NctextRecord();
* setNctextRecord(nctextrecord);
* nctextrecord.setReportData(sRawMsgInProcessing
* .substring(messageDataStart, recordEndPos + 1));
* nctextrecord.setRawRecord(sRawMsgInProcessing .substring(recordStart,
* recordEndPos + 1)); nctextrecord.setRecordId(recordId++);
*
* reports.add(nctextrecord); } // adjust pointers for next possible
* section/record rawMsglength = rawMsglength - (endPos + 1); // string
* // index // start // with 0 rawMsgPointer = rawMsgPointer + (endPos +
* 1); // Chin debug // logger.info("setData : find wmoHeader " //
* +(recordId-1)+ ": " // + WMOId + " " + cccc + " " + YYGGgg+ " " +
* awipsId + // " " + proType // /*+"\n rawMsgLn " + rawMsglength +
* "rawMsgPointer " + // rawMsgPointer + "endPos " + endPos);
* resetVaraable();
*
* } else { // Chin debug logger.info("setData : find wmoHeader " +
* (recordId - 1) + ": " + WMOId + " " + cccc + " " + YYGGgg + " " +
* awipsId + " BUT, no message data end Ctl-C found! "//* // * + // *
* " rawMsgLn " // * + // * rawMsglength /// * + // * " rawMsgPointer "
* // * + // * rawMsgPointer // * + // * " endPos " // * + // * endPos
* // );
*
* rawMsglength = 0; ///* get out of here } } // Chin debug else { int
* ePos; switch (parseErr) { case NO_AWIPS_HDR:
* logger.info("setData : no header found. Stop here! "); rawMsglength =
* 0;// get out of here
* logErrToFile("No AWIPS header found in this file. Stop Parsing!\n");
* break; case NO_AWIPS_HDR_IN_BULLETIN:
* logger.info("setData : no header found in a bulletin. "); // Skip
* this part of data. adjust buffer to next // possible bulletin ePos =
* sRawMsgInProcessing .indexOf(IDecoderConstants.ASCII_ETX); // Ctl-C
* rawMsglength = rawMsglength - (ePos + 1); // string // index start //
* with 0 rawMsgPointer = rawMsgPointer + (ePos + 1);
* logErrToFile("A Bulletin without good AWIPS header found. Skip it!\n"
* ); break; case NO_CTLA_IN_BULLETIN:
* logger.info("setData : no ctl-A found in a bulletin. "); // Skip this
* part of data. adjust buffer to next // possible bulletin ePos =
* sRawMsgInProcessing .indexOf(IDecoderConstants.ASCII_ETX); // Ctl-C
* rawMsglength = rawMsglength - (ePos + 1); // string // index start //
* with 0 rawMsgPointer = rawMsgPointer + (ePos + 1);
* logErrToFile("A Bulletin without ctl-A found. Skip it!\n"); break;
* case NO_CTLA_TO_END:
* logger.info("setData : no ctl-A found from this point down. Stop here! "
* ); // Skip this part of data. adjust buffer to next // possible
* bulletin rawMsglength = 0;// get out of here
* logErrToFile("No ctl-A found from this point down. Stop here!\n");
* break; case NO_CTLC_TO_END:
* logger.info("setData : no ctl-C found from this point down. Stop here! "
* ); // Skip this part of data. adjust buffer to next // possible
* bulletin rawMsglength = 0;// get out of here
* logErrToFile("No ctl-C found from this point down. Stop here!\n");
* break; case NO_ERR:
* logger.info("setData : end of file. Stop here! "); rawMsglength =
* 0;// get out of here break; default:
* logger.info("setData : general error! Stop here! ");
* logErrToFile("Unknow parsing error. Stop here!\n"); rawMsglength =
* 0;// get out of here break; } }
*
* }// While loop
*
* }
*
* if ((reports != null) && (reports.size() > 0)) { currentReport = 0; }
* else { // Chin debug logger.info(traceId +
* " - setData():No reports found in data."); }
*/
}
private synchronized boolean parseRcdHeader(String sInputMessageData) {
@ -719,15 +608,16 @@ public class NctextSeparator extends AbstractRecordSeparator {
}
return isValid;
}
private String[] getGdStnGp(String stnId){
for(String[] stnGp: gdStnGp){
for(int i=0; i < stnGp.length; i++){
if(stnId.equals(stnGp[i])){
return stnGp;
}
}
}
return null;
private String[] getGdStnGp(String stnId) {
for (String[] stnGp : gdStnGp) {
for (int i = 0; i < stnGp.length; i++) {
if (stnId.equals(stnGp[i])) {
return stnGp;
}
}
}
return null;
}
/**
@ -743,9 +633,10 @@ public class NctextSeparator extends AbstractRecordSeparator {
// Now check for some binary data types, Stop decoding, if it is binary
String sRawMessage = new String(rawMessage);
//some reports contains null char which will cause DB persistence error. Replace all null with
// some reports contains null char which will cause DB persistence
// error. Replace all null with
// Space.
sRawMessage = sRawMessage.replace((char)0x0, (char)0x20);
sRawMessage = sRawMessage.replace((char) 0x0, (char) 0x20);
int pos = sRawMessage.indexOf("BUFR");
boolean notStored = false;
notStored = notStored || ((pos >= 0) && (pos < 20));
@ -780,12 +671,13 @@ public class NctextSeparator extends AbstractRecordSeparator {
// They are separated by Record Separator "^^".
rsPos = strRcd.indexOf(ASCII_RS); // find first RS
if ((rsPos >= 0) && (rsPos < endPos)) {
int stnidEnd;
int stnidEnd;
stnidEnd = strRcd.substring(rsPos + 1).indexOf(ASCII_SP) + 1; //Chin fix mos stnid bug
stnidEnd = strRcd.substring(rsPos + 1).indexOf(
ASCII_SP) + 1; // Chin fix mos stnid bug
String stnId = strRcd.substring(rsPos + 1,
rsPos + stnidEnd);
String stnId = strRcd.substring(rsPos + 1, rsPos
+ stnidEnd);
curPos = rsPos + 1;
nextRsPos = strRcd.indexOf(ASCII_RS, curPos); // 2nd
// RS
@ -800,9 +692,15 @@ public class NctextSeparator extends AbstractRecordSeparator {
// stndId
// found for
// this record
if(stnId.length() <= 8) //Chin : to make sure we do not get unwanted/bad record with longer than 8 chars stnid
reports.add(nctextrecord);
stnidEnd = strRcd.substring(nextRsPos + 1).indexOf(ASCII_SP) + 1; //Chin fix mos stnid bug
if (stnId.length() <= 8) // Chin : to make sure
// we do not get
// unwanted/bad record
// with longer than 8
// chars stnid
reports.add(nctextrecord);
stnidEnd = strRcd.substring(nextRsPos + 1)
.indexOf(ASCII_SP) + 1; // Chin fix mos
// stnid bug
stnId = strRcd.substring(nextRsPos + 1,
nextRsPos + stnidEnd);
curPos = nextRsPos + 1;
@ -821,8 +719,8 @@ public class NctextSeparator extends AbstractRecordSeparator {
// with stndId
// found for this
// record
if(stnId.length() <= 8)
reports.add(nctextrecord);
if (stnId.length() <= 8)
reports.add(nctextrecord);
} else {
// Chin debug
System.out
@ -837,57 +735,64 @@ public class NctextSeparator extends AbstractRecordSeparator {
+ " "
+ awipsId + " BUT, no RS ^^ found!");
}
}
else if (fileType.equals("R")){
Pattern p = Pattern.compile(R_TYPE_SEPARATOR);
Matcher m =p.matcher(strRcd);
String stnIdFound="NA", subStr;
String[] stnGp=null;
boolean saveit = false;
if (m.find()) {
stnIdFound = m.group();
stnIdFound = stnIdFound.substring(0, stnIdFound.length()-2);
stnGp = getGdStnGp(stnIdFound);
if(stnGp !=null)
saveit =true;
} else { //This record may have different format, Its Stn ID is one line before "00///"
p = Pattern.compile(R_TYPE_SEPARATOR2);
m = p.matcher(strRcd);
if (m.find()) {
subStr = strRcd.substring(m.start());
// find the first "00///" and move str to here
//from subStr, find a first stn id of this gp stns
//this stn is actually not the first stn in the record. but it is ok, we only need one stn id in the gp.
p = Pattern.compile(R_TYPE_SEPARATOR3);
m = p.matcher(subStr);
if (m.find()){
stnIdFound = m.group();
stnGp = getGdStnGp(stnIdFound);
if(stnGp !=null)
saveit = true;
} else {
logger.info("Could not find stn id in RGD file record !!!");
}
} else {
logger.info("Could not find stn id in RGD file record!" );
}
}
if(saveit == true && stnGp != null) {
//For consistent with all other text record, we have to save smae record for each stn in the gp,
// so appication can query record based on stnId
for(String stn: stnGp){
NctextRecord nctextrecord = new NctextRecord();
setNctextRecord(nctextrecord);
nctextrecord.setRawRecord(strRcd.substring(recordStart,endPos-1));
nctextrecord.setRecordId(recordId++);
nctextrecord.setIssueSite(stn);
// replace cccc with group stndId found for this record
reports.add(nctextrecord);
}
} else
logger.info("stn id "+ stnIdFound + " But gp Stn is not found");
}
else if (fileType.equals("O")) {
} else if (fileType.equals("R")) {
Pattern p = Pattern.compile(R_TYPE_SEPARATOR);
Matcher m = p.matcher(strRcd);
String stnIdFound = "NA", subStr;
String[] stnGp = null;
boolean saveit = false;
if (m.find()) {
stnIdFound = m.group();
stnIdFound = stnIdFound.substring(0,
stnIdFound.length() - 2);
stnGp = getGdStnGp(stnIdFound);
if (stnGp != null)
saveit = true;
} else { // This record may have different format, Its
// Stn ID is one line before "00///"
p = Pattern.compile(R_TYPE_SEPARATOR2);
m = p.matcher(strRcd);
if (m.find()) {
subStr = strRcd.substring(m.start());
// find the first "00///" and move str to here
// from subStr, find a first stn id of this gp
// stns
// this stn is actually not the first stn in the
// record. but it is ok, we only need one stn id
// in the gp.
p = Pattern.compile(R_TYPE_SEPARATOR3);
m = p.matcher(subStr);
if (m.find()) {
stnIdFound = m.group();
stnGp = getGdStnGp(stnIdFound);
if (stnGp != null)
saveit = true;
} else {
logger.info("Could not find stn id in RGD file record !!!");
}
} else {
logger.info("Could not find stn id in RGD file record!");
}
}
if (saveit == true && stnGp != null) {
// For consistent with all other text record, we
// have to save smae record for each stn in the gp,
// so appication can query record based on stnId
for (String stn : stnGp) {
NctextRecord nctextrecord = new NctextRecord();
setNctextRecord(nctextrecord);
nctextrecord.setRawRecord(strRcd.substring(
recordStart, endPos - 1));
nctextrecord.setRecordId(recordId++);
nctextrecord.setIssueSite(stn);
// replace cccc with group stndId found for this
// record
reports.add(nctextrecord);
}
} else
logger.info("stn id " + stnIdFound
+ " But gp Stn is not found");
} else if (fileType.equals("O")) {
logger.info("Observer data is not supported now!!!");
} else {
// other data types - I.e. B, W, Z, F types
@ -958,7 +863,8 @@ public class NctextSeparator extends AbstractRecordSeparator {
currentReport = 0;
} else {
// Chin debug
logger.info(traceId + " - setRecordData():No reports found in data.");
logger.info(traceId
+ " - setRecordData():No reports found in data.");
}
}
@ -984,24 +890,28 @@ public class NctextSeparator extends AbstractRecordSeparator {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (traceId.length() >= YYYYMMDD_LENGTH) {
try {
// Adjust year and month from ingest file name
String date = traceId.substring(0, YYYYMMDD_LENGTH);
int iDay = Integer.parseInt(date.substring(6, 8).trim());
int iMonth = Integer.parseInt(date.substring(4, 6).trim());
int iYear = Integer.parseInt(date.substring(0, 4).trim());
// Note: month's index starts from 0
cal.set(iYear, iMonth - 1, iDay);
} catch (NumberFormatException n) {
// do nothing, if can't get yy/mon/day info from file name, just
// use current date
}
// Chin:: call to Util.findCurrentTime(YYGGgg); already takes care of
// year/month adjustment.
// if (traceId.length() >= YYYYMMDD_LENGTH) {
// try {
// // Adjust year and month from ingest file name
// String date = traceId.substring(0, YYYYMMDD_LENGTH);
// int iDay = Integer.parseInt(date.substring(6, 8).trim());
// int iMonth = Integer.parseInt(date.substring(4, 6).trim());
// int iYear = Integer.parseInt(date.substring(0, 4).trim());
// // Note: month's index starts from 0
// cal.set(iYear, iMonth - 1, iDay);
// } catch (NumberFormatException n) {
// // do nothing, if can't get yy/mon/day info from file name, just
// // use current date
// }
//
// }
}
nctextrecord.setIssueTime(cal);
nctextrecord.setDataTime(new DataTime(cal));
System.out.println("YYGGgg=" + YYGGgg + " traceId=" + traceId);
System.out.println("refTime= issueTime=" + cal.getTime().toGMTString());
// set data productType,
// String proType = nctextProductDao.getProductType(WMOId);
nctextrecord.setProductType(ingestFileExt);
@ -1021,6 +931,7 @@ public class NctextSeparator extends AbstractRecordSeparator {
*/
public void setTraceId(String traceId) {
this.traceId = traceId;
System.out.println("NctextSeparator set traceId=" + traceId);
}
}

View file

@ -0,0 +1,16 @@
<?xml version='1.0' encoding='UTF-8'?>
<!--
* SOFTWARE HISTORY
* Date Ticket# Engineer Description
* __________ _______ __________ __________________________
* 06/28/2011 F. J. Yen Initial creation for OB11.5
* 07/14/2014 B. Hebbard Add refTime parameter
-->
<pointDataDbDescription>
<parameter name="latitude" queryName="location.latitude" type="FLOAT" unit="°" />
<parameter name="longitude" queryName="location.longitude" type="FLOAT" unit="°" />
<parameter name="stationId" queryName="location.stationId" type="STRING" />
<parameter name="reportType" queryName="reportType" type="STRING" />
<parameter name="dataURI" queryName="dataURI" type="STRING" />
<parameter name="refTime" queryName="dataTime.refTime" numDims="1" type="LONG" unit="ms"/>
</pointDataDbDescription>

View file

@ -20,4 +20,5 @@
-->
<requestPatterns xmlns:ns2="group">
<regex>^UB.... KWBC.*</regex>
<regex>^YIXX84 KAWN.*</regex>
</requestPatterns>

View file

@ -2,6 +2,6 @@
<requestPatterns xmlns:ns2="group">
<regex>^WT(NT|PZ)[23][1-5]</regex>
<regex>^WTPA[23][1-5]</regex>
<regex>^WTPN[23][1-5]</regex>
<regex>^WTPN[235][1-5]</regex>
<regex>^W[HT]PS01</regex>
</requestPatterns>

View file

@ -294,6 +294,7 @@ rm -rf ${RPM_BUILD_ROOT}
%dir /awips2/database/sqlScripts/share/sql
%dir /awips2/database/sqlScripts/share/sql/ncep
%attr(777,root,root) /awips2/database/sqlScripts/share/sql/ncep/ncep_sql_install.log
%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/addNcepNwxAdminMessageGpTable.sql
%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/createNcepConfigTables.sql
%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/createNcepDb.sh
%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/createNcepDb.sql
@ -336,6 +337,7 @@ rm -rf ${RPM_BUILD_ROOT}
%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNcStnsCountyclust.sql
%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNexrad.sql
%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNgmmos.sql
%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNwxAdminMessagesBulletinTables.sql
%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNwxAviationforecastsBulletinTables.sql
%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNwxCPCProductsBulletinTables.sql
%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNwxFlashFloodBulletinTables.sql