[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[LDM #RQD-888533]: pqact errors after upgrade to 6.13.0

Hi Dave,

First, I'm glad that the test of wrapping netCDF Perl decoders with a
shell script worked/is working!  This gives us (Steve actually) another
clue as to what may be happening in the 6.13.x version of 'pqact'.

> The mos script is trickier because I have to deal with the replacements 
> strings and parenthetical subexpressions:
> WMO     ^FOUS11 KWNO ([0-3][0-9])([0-2][0-9][0-5][0-9]) PIPE    mos2nc -l 
> logs/lamp2nc.%Y%m%d.asc etc/lamp_mos.cdl 
> data/dec_data/mos/lamp_mos/(\1:yyyy)(\1:mm)\1/lamp_mos.(\1:yyyy)(\1:mm)\1.\2.nc

Yup, the sketchy script that I sent can be a LOT more generic and handle
all of your netCDF Perl decoder invocations in a single script.  What
I mean by this is that all of the command line arguments to the various
netCDF Perl decoders AND the name of the decoder to run could be passed
into the script.  This would keep the onus of evaluating parenthetical
references like the ones in:


in 'pqact' so you wouldn't have to do it in your script (which would
be nasty at best).

Quick example of what I have in mind:

WMO ^S[AP].* .... ([0-3][0-9])([0-2][0-9][0-5][0-9])
   PIPE     metar2nc.sh metar2nc -t 30 -l logs -d data/dec_data/obs/metar 

The command line options that would need to be picked up in 'metar2nc.sh' are:

$1 - metar2nc
$2 - -t
$3 - 30
$4 - -l
$5 - logs
$6 - -d
$7 - data/dec_data/obs/metar
$8 - etc/metar.cdl

One could, of course hard code all of the command line options in a script 
for the particular netCDF Perl decoder and then only deal with the items that
need to be evaluated/expanded by 'pqact'.  Here is what I have in mind for 

WMO     ^FOUS11 KWNO ([0-3][0-9])([0-2][0-9][0-5][0-9])
     PIPE    mos2nc.sh logs/lamp2nc.%Y%m%d.asc etc/lamp_mos.cdl 

$1 - the full log file name expanded from ogs/lamp2nc.%Y%m%d.asc 
$2 - the CDL file to use
$3 - the fully qualified name of the netCDF file containing the decoded data 

The invocation of 'mos2nc' inside of the 'mos2nc.sh' script would look like:

cat | mos2nc -l $1 $2 $3

One small aside:

- it is not necessary to 'cat' STDIN to the decoder inside the shell script 
  each of the decoders reads from STDIN anyway

  So, the 'mos2nc' decoder invocation can be written as:

mos2nc -l $1 $2 $3

  I included the 'cat' so that the input product could be written to disk
  and then used if there were any hiccups in running the wrapped decoder.


Unidata User Support                                    UCAR Unidata Program
(303) 497-8642                                                 P.O. Box 3000
address@hidden                                   Boulder, CO 80307
Unidata HomePage                       http://www.unidata.ucar.edu

Ticket Details
Ticket ID: RQD-888533
Department: Support LDM
Priority: Normal
Status: Closed

NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.