If you are working with data files that do not use FreeForm ND naming
conventions, you need to more explicitly define the context. For
example, the files lldat1.ll, lldat2.ll, lldat3.ll,
lldat4.ll, and lldat5.ll all have latitude and longitude
values in the ASCII format given in the format description file
lldat.fmt. If you wanted to archive these files in binary
format, you could not use a command of the form used in the previous
examples, i.e., newform datafile.dat -o datafile.bin
with datafile.fmt as the default format description file.
First, the ASCII data files do not have the extension .dat,
which identifies them as ASCII files. Second, you would need five
separate format description files, all with the same content:
lldat1.fmt, lldat2.fmt, lldat3.fmt,
lldat4.fmt, and lldat5.fmt. Creating the format
description file ll.fmt solves both problems.
Here is the ll.fmt file:
/ This is the format description file that describes latlon / data in files with the extension .ll ASCII_input_data "ASCII format for .ll latlon data" latitude 1 10 double 6 longitude 12 22 double 6 binary_output_data "binary format for .ll latlon data" latitude 1 4 long 6 longitude 5 8 long 6
The name used for the format description file, ll.fmt, follows
the FreeForm ND convention that one format description file can be
utilized for multiple data files, all with the same extension, if the
format description file is named ext.fmt. Also, the read/write
type (input or output) is made explicit by including it in the format
descriptors ASCII_input_data and binary_output_data.
This provides the context needed for FreeForm ND programs to determine
which format to use for input and which for output.
Use the following commands to produce binary versions of the ASCII input files:
newform lldat1.ll -o llbin1.ll newform lldat2.ll -o llbin2.ll newform lldat3.ll -o llbin3.ll newform lldat4.ll -o llbin4.ll newform lldat5.ll -o llbin5.ll
If you want to convert back to ASCII, you can switch the words input
and output in the format description file ll.fmt. You could then
use the following commands to convert back to native ASCII format with
output written to the screen:
newform llbin1.ll newform llbin2.ll newform llbin3.ll newform llbin4.ll newform llbin5.ll
It is also possible to convert back to ASCII without switching the
read/write types input and output in ll.fmt. You can specify
input and output formats by title instead. In this case, you want to
use the output format in ll.fmt as the input format and the
input format in ll.fmt as the output format. Use the following
command to convert llbin1.ll back to ASCII:
newform llbin1.ll -ift "binary format for .ll latlon data"
-oft "ASCII format for .ll latlon data"
Notice that newform reports back the read/write type actually
used. Since ASCII_input_data was used as the output format,
newform reports it as ASCII_output_data.
Now assume that you want to convert the ASCII data file
llvals.asc (not included in the example file set) to the binary
file latlon3.bin, and the input and output data formats are
described in latlon.fmt. The data file names do not provide the
context allowing newform to find latlon.fmt by default, so
you must include all file names on the command line:
newform llvals.asc -f latlon.fmt -o latlon3.bin