File Exchange Interface (FEI) V2 Tutorial

Finding Out What's in the FEI Server

View the feiinterfaces File

User's should view the feiinterfaces file to know what fileTypes are available from MIPS via FEI. The -i flag allows users to do so:

fei -i (will list out the contents of your feiinterfaces file)
Users select files by fileType and do not need to know the actual locations on the FEI server. They only need to specify the type of data they want (fileType), the file name, and the local file specification (optional - will default to current directory).

Following is a list of fileTypes and brief description of fileTypes currently available in MIPS to SSI Team members (prior to June '96 - these fileTypes are subject to change). FEI also controls access to data by fileType. Not all fileTypes available in MIPS are available to all users.

ascii                   Simple ASCII files.  Currently - all MIPS interface files
ck_ascii                NAIF and MIPS C-kernels in ASCII exchange format
ck_sun                  NAIF and MIPS C-kernels in SunOs/solaris format
misc_spice_ascii        Non-platform-specific SPICE Misc ASCII Kernels
                        (leapseconds, sclk, p_constants)
misc_spice_sun          Non-CK or SPK SPICE files in SunOS/solaris format or specific
                        to SunOs machines
spk_ascii               NAIF SP-Kernels in ASCII exchange format
spk_sun                 NAIF SP-Kernels in SunOs/solaris format
ssifull_pr              Full Resolution Press Released.
ssihiips                Misc. files sent to MIPS from HIIPS.
                        Only fileType HIIPS can get, add & delete.
ssijpeg_pr		JPEG formated version of a Press Released image.
ssijpeg_catb		JPEG formated version of publically released data.
ssimerge		SSI merged UDRs - produced by SSIMERGE2 in special
			cases to replace previous poorer version of a UDR
ssirad			SSI Radiometric Files - GLL calibration files
ssiredr			SSI REDR - radiometrically corrected, photoproducts
ssisnip                 SSI predict/record files - replaced MEK, provided by SDT
ssiudr                  SSI UDRs - raw images. Extention incremented as new pkts
			are merged into the image.  Generally speaking the largest
			.ext number is the most complete image.
vgredr                  Voyager Jupiter EDRs

vgrsedr_alpha           Voyager Jupiter SEDR in Alpha format
                        (a fixed length ascii file)
vgrsedr_sun		Voyager Jupiter SEDR in SunOs/solaris format 
			(a stream ascii file)
vgr2rad_na		Voyager 2 Narrow Angle Calibration files
vgr2rad_wa		Voyager 2 Wide Angle Calibration files
vgr1rad_na		Voyager 1 Narrow Angle Calibration files
vgr1rad_wa		Voyager 1 Wide angle Calibration files
FEI List Option (-l)

Once users are familiar with the fileTypes available to them - or know how to read the feiinterfaces file they can use the fei list flag to list files on the FEI server for a given fileType.

fei -l ck_sun
Will list all the SunOS/Solaris binary C-kernels currently available via fei.

NOTE: Not all files have been made available via FEI. Over the next few months everything will be added to the server.


Basic FEI Get and Add

GLL SSI Team members have get (read only) access to most files and get, add, replace and delete access to the ssihiips fileType.

FEI add/get examples:

fei -a ssihiips/face.txt /usr/local/tutorial/face.txt

Adds the file called face.txt to the remote FEI server under the ssihiips fileType. It gets the file from your local file /usr/local/tutorial/face.txt

fei -a ssihiips/face2.txt face.txt

Adds the file called face2.txt to the remote FEI server under the ssihiips fileType. It gets the file from your local current directory (as no local directory is specified). Also, the file put on the FEI server will be named face2.txt but the input file s called face.txt. This is a handy way to rename a file when sent to the server.

fei -g ck_sun/ckve9.ssi

Gets the SunOS/solaris formated C-kernal named ckve9.ssi from the remote FEI Server and puts it in your current directory (as no local directory was specified) using same filename (as no local filename was specified)

fei -gv -o prompt ck_sun/ckve9.ssi

Gets the same SunOS/solaris formated C-kernal named ckve9.ssi in above example from the remote FEI Server and puts it in your current directory (as no local directory was specified) using same filename (as no local filename was specified). But this time does so in verbose mode (telling you everything it is doing) and FEI will first prompt you before doing anything. By default FEI will write over the file previously transferred - unless -o overwrite option specified. FEI prompts as follows:

Options = prompt
Processing file : ckve9.ssi 
Commencing get file operation for file: 
        Local    : ckve9.ssi 
        Localdir : .
        Remote   : ckve9.ssi 
        Type     : ck_sun 
        Host     : coda4.jpl.nasa.gov
        Server   : mipsFeiGLL
 
 
        accept, skip, exit {a, s, e} [a]: 
Enter a to continue the operation, s to skip this file and go to the next if any, e to exit this FEI operation all together.

fei -g -o compress,overwrite=versions ck_sun/ckve9.ssi

Gets the same SunOS/solaris formated C-kernal named ckve9.ssi in above example from the remote FEI Server and puts it in your current directory, using same filename - ckve9.ssi (as no local filename was specified), will compress it before transferring and uncompress at client site. It will not overwrite previous file and will add a verion number to new file.

fei -g ck_sun/ckve9.ssi /tmp/newname.ck

Gets the same SunOS/solaris formated C-kernal named ckve9.ssi in above example from the remote FEI Server and puts it in directory /tmp, naming the file newname.ck locally.

fei -g -p cat ascii/interfaces.sunos

Gets the SunOs version of the Sybase interfaces file from the remote FEI Server and pipes it directly to UNIX "cat" utility. This is handy if you just want to review the contents of a file on the FEI server and have a viewer for it (e.g. you would not be able to pipe a binary UDR file to "cat").

fei -g -p "xvd s0249221400.27" ssiudr/s0249221400.27

Gets the UDR for SCLK 249221400 (version 27) from the remote FEI Server and pipes it directly to "xvd" for display.


Basic FEI File Transfers from a List

When moving many files to and from a remote server, it is easier to list filename in an ascii file and send that file of filenames to fei.

To be safe, it is best to build your list with fileType/filename combinations, but this is not necessary if you are dealing with a single fileType.

In this example, fei is passed the file demo.list, that contains 2 filenames of different fileTypes, going to different local file specifications:

ck_sun/pred_ev6_2.ssi_ck /usr/local/spice
ssiudr/s0249221800.9 /usr/local/udr

fei -g -f demo.list

If the list of files are all the same fileType, then it is not necessary to specify the fileType within the listFile. The following file, demo2.list, list 5 UDRs for transfer, and specifies the fileType once on the command line - not in the list file:

s0249221800.9 /usr/local/demopace
s0249221800.12 /usr/local/demospace
s0249221400.6 /usr/local/demospace
s0249221400.23 /usr/local/demospace
s0202562478.2 /usr/local/demospace

fei -g -f demo2.list ssiudr


FEI File Transfers by Subscription

Automatic transfer of files is provided via FEI subscription mode.

On Unix, subscriptions are run as background processes. On the Alpha, a batch job must be set up and submitted. FEI subscriptions run and continue to retrieve all new files for a particular file type until the subscription is canceled explicitly by the user, or the FEI server or client crash.

UNIX platforms:

fei -s ssimerge /data6/vicar/tutorial/demospace &

Subscribe to merged UDRs, and write them to local directory /data6/vicar/tutorial/demospace when they come in.

Alpha Platforms:

Currently there is a restriction in the FEI subscription option on the Alpha. The subscription must be made from the directory you want the files to be automatically transferred to.

set def TO_THE_LOCATION_YOUR_WANT
submit subscribe.com (submit the job to batch)

subscribe.com is your batch file containing the subscription to the fileType you're interested in:

fei -s ssimerge (subscribe to merged UDRs)

Recovering from Subscription Crash

If the MIPS FEI server or fei client crash, subscriptions are aborted and need to be restarted. MIPS will include all HIIPS on the Hardware Downtime Notification mailing list. This mailing notifies users when scheduled hardware maintenance is planned. FEI subscription users must pay particular attention to "coda4" downtime as that is the machine running the FEI server.

When regular FEI Server operations is resumed, users on the same mailing will be notified and they can then restart their subscriptions.

New files generated before a subscription was restarted will not be caught by the restarted subscription. A job must be run to query the database for files that have come in over the particular period of interest and retrieve those files after subscriptions are restarted if the user wants to be sure they have not missed anything.

sampleFeiRecover.csh (UNIX) [or that script greatly improved by Brian Carcich at Cornell carcich.script], sample.com (Alpha) provide an example of subscription recovery job the user can run. These jobs incorporate MIPS database query tool dbq as well as fei.


FEI Syntax

fei command line syntax is as follows:
fei -{g|a|r|d|n|s|l|t|i}[v[v]b]
        [-m mailto] [-o optionlist]
        [-p pipe_expression] [-f specification_file]
        [FEI_file_specification [local_file_specification]]
option list:
        compress
        encrypt
        crc
        filenames
        domain=path
        overwrite=replace | versions | prompt
        prompt
Where the first set of flags ( -{g|a|r|d|n|s|l|t|i}[v[v]b] ) indicate the basic action you wish to take. At this inital level, some action must be requested. Optional actions are shown within brackets []:
g       get file(s) from remote FEI Server to your local directory
a       add file(s) from your local directory to the remote FEI Server
r       replace file(s) on the remote FEI Server with file(s) from
                your local directory (if the file is not in FEI it will add it)
d       delete file(s) on the remote FEI Server
n       rename file(s) on the remote FEI Server
                (this option is not available to GLL HIIPS sites)
s       subscribe to a fileType and have the file(s) automatically
                pushed from the remote FEI server to your local directory
l       list the files available for a given fileType on the remote FEI Server
t       list files in time order for a given fileType on the remote FEI Server
i       list the interfaces file showing all fileTypes available on the remote FEI Server
[v]     execute fei in verbose mode (let user know what fei is doing)
[vv]	Very Verbose - tells even more than a single v flag
[b]     Will ring a bell when file is received, 3 bells if fatal error 
Following the basic action to take, the user can request a number of optional actions to be performed as well ( -m -o -p -f):
m       mail file(s) requested to a user or list of users
o       select transfer behavior;
                compress the file before and uncompress after transfer
                encrypt the filei during transfer
                calculate and send a crc with the file
                filenames (TBD)
                domain= (TBD)
                overwrite, if the file is already on your system tell
                        FEI what to do, replace it, version it or prompt user
                request fei to prompt you before taking any action
p       pipe file contents to pipe_expression
f       filename containing a list of file for fei to work on
Following the optional action flags, the user specifies the FEI file_specification which is the combination fileType/filename (forward slash required to delimit fileType from filename), and local filepath and filename (where to get or add the file to on your local machine).


Last Updated June 28, 1996
Pamela Woncik pjw@mipl7.jpl.nasa.gov