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:
parent
bbba4b39ec
commit
55ba6aad6b
22 changed files with 1953 additions and 841 deletions
158
deltaScripts/14.2.1-n3/addNcepNwxAdminMessageGpTable.sql
Normal file
158
deltaScripts/14.2.1-n3/addNcepNwxAdminMessageGpTable.sql
Normal 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');
|
||||
|
5
deltaScripts/14.2.1-n3/updateNcepNwxAdminTables.sh
Normal file
5
deltaScripts/14.2.1-n3/updateNcepNwxAdminTables.sh
Normal file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/bash
|
||||
|
||||
PSQL=/awips2/psql/bin/psql
|
||||
DIR=`dirname $0`
|
||||
${PSQL} -U awips -d ncep -f ${DIR}/addNcepNwxAdminMessageGpTable.sql
|
|
@ -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>
|
||||
|
|
|
@ -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;
|
||||
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
\.
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* __________ _______ __________ __________________________
|
||||
* 06/28/2011 F. J. Yen Initial creation for OB11.5
|
||||
* 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>
|
|
@ -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');
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -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>
|
||||
*
|
||||
|
@ -63,20 +64,41 @@ public class NctextSeparator extends AbstractRecordSeparator {
|
|||
public static final String R_TYPE_SEPARATOR2 = "00///";
|
||||
|
||||
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;
|
||||
|
||||
stnidEnd = strRcd.substring(rsPos + 1).indexOf(ASCII_SP) + 1; //Chin fix mos stnid bug
|
||||
|
||||
String stnId = strRcd.substring(rsPos + 1,
|
||||
rsPos + stnidEnd);
|
||||
int stnidEnd;
|
||||
|
||||
stnidEnd = strRcd.substring(rsPos + 1).indexOf(
|
||||
ASCII_SP) + 1; // Chin fix mos stnid bug
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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>
|
|
@ -20,4 +20,5 @@
|
|||
-->
|
||||
<requestPatterns xmlns:ns2="group">
|
||||
<regex>^UB.... KWBC.*</regex>
|
||||
<regex>^YIXX84 KAWN.*</regex>
|
||||
</requestPatterns>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue