CONVERT

From ICE Enterprises
Jump to navigation Jump to search

Converts Midas file data and or header to other formats

<IN>   - Input file, table or other object
<CONV> - Type of conversion to perform (see list of functions below)
<OUT>  - Output file or object
<FORM> - Format list for the T2B option
<SKIP> - Records to skip for the T2B option

Keyword Only Parameters:
  [IMGOPTS]   - Table of options that may be used to alter the appearance of a
                PNG/JPG/GIF Image file. Used in BLUE2IMG conversion. See
                BLUE2IMG below for more details of IMGOPTS.

  [OPTIONS]   - Table of keys and their values that extend additional options to
                the user for CONVERT methods. Options may specify anything from
                an icon color to how to format the output data. Options are
                autonomous to the CONVERT method being used. Reference the
                explanation section for the desired method below for further
                information.

  [EPOCH]     - Reference epoch for output file.

  [QUADWORDS] - Reference frame quadwords for output file. This supports:
                  ALT=      - Altitude  (meters)
                  LAT=      - Latitude  (deg)
                  LON=      - Longitude (deg)
                  AZIM=     - Azimuth   (deg)
                  ELEV=     - Elevation (deg)
                  ROLL=     - Roll      (deg)

  [TIMES]     - File containing timecode reference for SVINTERP function.

  [TIMESPEC]  - Table containing start/stop/delta for SVINTERP function.
                {START=<start_time>,STOP=<stop_time>,DELTA=<time_delta>}

This routine converts Midas files or other objects to different formats.

NOTE: Unlike X-Midas, which has a 26 subrecord limit, there is NO restriction on
the number of subrecords in type 3000 files.  So if you are trying to create a
file readable by X-Midas you must create items, like XML or CSV, that fit within
these constraints.

Since NeXtMidas 2.5.0, the FILE command provides some facilities for copying
between different file formats (e.g. CSV to BLUE and BLUE to CSV). See FILE
for more details.


FUNCTIONS:
  EEEI, IEEE, VAX
    Convert a Midas data file (BLUE) header and data the numeric representation
    given. This overwrites the current file unless <OUT> is given.

  PACKED, BYTE, INT, LONG, FLOAT, DOUBLE
    Convert the Midas data file to the given format type.

  ECI, ECR, TOP, TOPOCENT                                [Since NeXtMidas 3.3.0]
    Converts the reference frame in a Type 5000 and the associated POS, VEL, and
    ACC values to:
      ECI      - Earth-centered inertial
      ECR      - Earth-centered rotational (also known as Earth-Centered,
                 Earth-Fixed, ECEF or ECF)
      TOP      - Modified topocentric
      TOPOCENT - Topocentric
    The [EPOCH] and [QUADWORDS] parameters can be used to configure the
    output reference frame.

    If a TIME column is specified in the input file, it will be assumed to
    contain the time of the entry in J1950 seconds (i.e. overriding the normal
    computation that assumes all entries are evenly spaced based on xdelta). In
    this case, output file will also include a TIME column which corresponding
    to the time of the entry and matching the input value.

  CARTESIAN, SPHERICAL, CYLINDRIC, ELLIPSOID, GEODETIC   [Since NeXtMidas 3.3.0]
    Converts POS, VEL, and ACC values in a Type 5000 file to the given
    coordinate system. The [EPOCH] and [QUADWORDS] parameters can be used to
    provide limited adjustments to the output reference frame.

  BLUE2XML[/S]  <Beta Version>                           [Since NeXtMidas 3.5.4]
    Convert BLUE Midas file (any type) into an XML file.

    Syntax:
       CONVERT <IN> BLUE2XML <OUT> OPTIONS={...}

    Modifiers:
      /S  - Indicates output to string instead of a XML text file.

    OPTIONS:
      VERSION   - Version for the converted output. [DEF="1.0"]
      OUTER_TAG - The desired outer XML tag. [DEF="MidasXML"]
      NEWLINES  - Should the XML be generated in a more readable format with
                  newlines and indentation? If this is false no extra
                  whitespace will be added. [DEF=true]
      BLOCKDATA - Should the Type 1000 and Type 2000 data be written as a block?
                  [DEF=false if format type is 'A', otherwise true]


    NOTE: Per the BLUE file format, non-printable characters are not recommended
          in type 'A' (ASCII) keyword data values. If encountered, the behavior
          during conversion and the reverse conversion is undefined.

    Example:
      nM> CONVERT apenny.prm BLUE2XML apenny.xml

  XML2BLUE[/S]  <Beta Version>                           [Since NeXtMidas 3.5.4]
    Convert XML file into a BLUE Midas file.  This is the reverse of BLUE2XML.

    Modifiers:
      /S  - Indicates input from string instead of a XML text file.

    Syntax:
       CONVERT <IN> XML2BLUE <OUT> OPTIONS={...}

    OPTIONS:
      WARN   - Show warnings. [DEF=true]

    WARN: There is a known issue converting an XML file (of a previously
          converted Type 6000 file where num_elts > 1 in the subrecord
          definition) back to BLUE (see Bug 2959).

  BBDEF2JAVA
    Translates a ByteBuffer wrapper definition at the top of a Java file to
    actual Java methods. This is safe to run multiple times on the same file
    to update the code to match any changes to the definitions.

    Example:
      nM> CONVERT nxm.sys.libxm.Mc.java BBDEF2JAVA

  CSV2TBL
    Convert Comma-separated values (CSV) into a table.

  CSV2XML
    Convert Comma-separated values (CSV) into an XML File.

    Since NeXtMidas 2.9.0, this conversion will add the '.xml' extension to the
    output file if the user does not specify any extension.

  FILE2XML[/S]  <Beta Version>                           [Since NeXtMidas 3.5.4]
    Convert a file (BLUE, CSV, e.g. any file that implements ListFile or
    PlotFile interface) to XML (file or results String). See XML2BLUE function
    for options.

    Syntax:
       CONVERT <IN> FILE2XML <OUT> OPTIONS={...}

    Modifiers:
      /S  - Indicates output to string instead of a XML text file.

  FSTRUCT2JAVA
    Converts a Fortran structure definition in an include file into a wrapped
    ByteBuffer in Java where <FORM> is the name of the structure to wrap (case
    sensitive). If a single static structure is being wrapped use the /VARIABLE=
    switch to specify the variable name (case sensitive). This can also be used
    to just convert all of the parameter constants to Java (in this case the
    structure name is the empty string).

    Syntax:
      CONVERT <IN> FSTRUCT2JAVA <OUT> <struct_name>

    Example:
      nM> CONVERT/INCLUDE="<midas.h>"/VARIABLE="Mc" &
                    midas.inc FSTRUCT2JAVA nxm.sys.libxm.Mc.java "MCOMMON"

      nM> CONVERT/CLASSSUB="TypeClass" &
                    header.inc FSTRUCT2JAVA nxm.sys.libxm.Header.java "HEADER"

      nM> CONVERT /home/xmmgr/xm-3_8_3/xm/host/xgeoplot.inc &
                  FSTRUCT2JAVA nxm.ucl.inc.Params.java ""

  KWCONV       <Beta Version>                            [Since NeXtMidas 3.7.0]
    Converts the incoming file's keywords to new keywords using the specified
    conversion table.

    Syntax:
       CONVERT <IN> KWCONV <OUT> [OPTIONS={keyword_conversion_table}]

    Example:
    1. Use the general Keyword conversion command KWCONV to convert (select) 
       Platinum Keywords to BLUE Keywords.
       nM> table converttable LOAD kwconv_plat2blue.tbl
       nM> CONVERT testplat4plat2blue.cdif KWCONV testbluefromplat.tmp &
                    options=converttable

  LLA2ECI                                                [Since NeXtMidas 3.3.0]
    Converts a static LON/LAT/ALT position to an ECI state vector. If [OPTIONS]
    is not specified the default values will be used (START=<epoch>,DELTA=60,
    ELEM=1440). Note that [EPOCH] is required for ECI conversions.

      nM> CONVERT {LON=<lon>,LAT=<lat>,ALT=<alt>} LLA2ECI <OUT> &
                   OPTIONS={START=<start_time>,DELTA=<time_delta>,&
                            ELEM=<num_points>} &
                   EPOCH=<epoch>

  LLA2ECR                                                [Since NeXtMidas 3.3.0]
    Converts a static LON/LAT/ALT position to an ECR state vector. If [OPTIONS]
    is not specified the default values will be used (START=<epoch>,DELTA=60,
    ELEM=1440). Note that [EPOCH] is only required for ECR conversions if the
    start time is omitted.

      nM> CONVERT {LON=<lon>,LAT=<lat>,ALT=<alt>} LLA2ECR <OUT> &
                   OPTIONS={START=<start_time>,DELTA=<time_delta>,&
                            ELEM=<num_points>} &
                   EPOCH=<epoch>

  MSGCFG2TBL
    Converts an X-Midas messages.cfg file to a table file which is used when
    converting between X-Midas messages and NeXtMidas messages. (This is only
    used when using the XBC option tree or running NeXtMidas as an X-Midas
    option tree.) Expects <IN> to be the option tree being used, output files
    are automatically named.

    Example (for XBC):
       nM> CONVERT XBC MSGCFG2TBL

    Example (for NeXtMidas as an X-Midas option tree):
       nM> IMPORT XMDISK  XMDISK
       nM> IMPORT XM_PATH XM_PATH
       nM> CONVERT/XMDISK="^{XMDISK}"/PATH="^{XM_PATH}" SYS MSGCFG2TBL

  MSGCFG2INC
    Similar to MSGCFG2TBL, converts an X-Midas messages.cfg file to the Fortran
    include files and C/C++ header files used by XBC (these files match those
    X-Midas generates with GENMSGINC).

    Example:
       nM> CONVERT XBC MSGCFG2INC

  MSGCFG2XML (Not Implemented)
    Similar to MSGCFG2XML, converts an X-Midas messages.cfg file to the XML
    definition file.

    Example:
       nM> CONVERT XBC MSGCFG2XML


  PLAT2BLUE    <Beta Version>                            [Since NeXtMidas 3.7.0]
    Converts the incoming file's Platinum keywords to the corresponding BLUE
    keywords (as defined by the JICD 4.2 ICD). The default behavior is to NOT
    copy over the Platinum keywords to the new file, as that might result in
    inconsistencies if the file is modified.

    Syntax:
       CONVERT <IN> PLAT2BLUE <OUT> [OPTIONS={table_of_additions_and_overrides}]

    Examples:

    1. Convert (select) Platinum Keywords to BLUE keywords, specifying TOA_SIGMA
       and FOA_SIGMA to enable covariance keywords to be converted. Keep the 
       existing Platinum keywords.
       nM> CONVERT testplat4plat2blue_cov.cdif PLAT2BLUE testbluefromplat.tmp &
                   options={_OPTIONS_={KEEP_EXISTING=true}, &
                   TOA_SIGMA={VALUE=0.0},FOA_SIGMA={VALUE=0.0}}

    2. Convert (select) Platinum Keywords to BLUE keywords, specifying TOA_SIGMA
       and FOA_SIGMA to enable covariance keywords to be converted. Do not copy
       over the Platinum keywords.
       nM> CONVERT testplat4plat2blue_cov.cdif PLAT2BLUE testbluefromplat.tmp &
                   options={TOA_SIGMA={VALUE=0.0},FOA_SIGMA={VALUE=0.0}}

    3. Convert (select) Platinum Keywords to BLUE Keywords.  Since there are no
       covariance keyword, SYSTEM_TOA_SIGMA and SYSTEM_FOA_SIGMA should be
       specified, but it is not required.
       nM> CONVERT  testplat4plat2blue.cdif PLAT2BLUE testbluefromplat.tmp

  POLY2KML[/S] - (type 1999 only)                        [Since NeXtMidas 3.3.2]
    Convert a Type 1999 Poly file to a KML File. The lines in the 1999 file
    become KML <LineString> segments. The color of the <LineString> is denoted
    by the color index given in the file, unless a ColorMap is specified in
    the OPTIONS table.

    Syntax:
       CONVERT <IN> POLY2KML <OUT> [OPTIONS]

    Modifiers:
      /S  - Indicates output to string instead of a text file; to results
            specified by <OUT>, otherwise to the terminal.

    OPTIONS:
      CMAP       - Alternate ColorMap to use
      LINEWIDTH  - Width of the line segments, in pixels [DEF=2]

    Examples:
      1. Convert the world.prm file to KML
        nM> convert world.prm poly2kml worldkml.kml

      2. Convert the world.prm to a RESULT String instead of a file
        nM> convert world.prm poly2kml/s worldkmlstring


  T2B - Text-to-Blue (type 1000 or 3000)
    Takes a text file with the extension .TXT and converts it to a BLUE Midas
    file of the same name with a .TMP extension.  The conversion is handled
    according to the format string <FORM>.  If there are multiple fields,
    the data is written to a Type 3000 record oriented file.  The format is
    specified by Midas format codes with an added field length as shown here:

    <FORM> =  F10|A6|X4|B3|2L5|2X|A32

    This example reads the first 10 characters of each record as a Float value,
    the next 6 characters as an ASCII value, skips 4 spaces, the next 3 chars as
    a Byte value, the next 5 as a Long, the next 5 as a Long, skips 2 spaces,
    and the last 32 characters as an ASCII value.  Also the first <SKIP> records
    of the input file may be skipped in this mode.

    If the /PARSE switch is present, the input lines are parsed using white
    space or commas as delimiters.  The field lengths are ignored.  This is
    useful for CSV files.

  TBL2B - (type 3000 only) Converts a table into a blue type-3000 file.
    By default, formats are SD or SA as determined by the first row in the
    table.  If the field can be converted into a double that column is deemed
    SD, otherwise the column is SA.  Any column's format may be overridden on
    the command line with:

      FORM=<field1=format1>|<field2=format2>...|<fieldn=formatn>

    where field<x> is the name of the field in the table, NOT the record name
    in the type-3000 file.  Formats are the usual SA, 3A, SD, SF, SI, SB, ...
    NOT those used for the T2B option.

    The input table must conform to the type-3000 file structure; that is, it
    must be a table with 1..n rows of sub-tables of the same structure.  If
    there are tables in the sub-tables it can not be converted.

    NOTE: The order of the type-3000 columns will most-likely NOT match the
    order of the table fields.

  BLUE2IMG - (type 2000 only)                            [Since NeXtMidas 2.7.3]
    Converts a Type 2000 file to an image file. The original file is not
    altered. Adjustments are made to the produced image based on the data in the
    IMGOPTS table, if provided. If the output file name is not specified, the
    file will be called "<input_file_name>.<out_image_format>", where 
    "<input_file_name>" does not include the path or extension, and
    <out_image_format> is PNG, GIF, or JPG.

    Syntax:
       CONVERT <IN> BLUE2IMG <OUT> FORM=<out_image_format> IMGOPTS={...}

    IMGOPTS:
      ALPHA     - (int) Adjust the Alpha (Transparency) on the image. This is a
                  value between 0 (transparent) and 255 (opaque). A value of  -1
                  indicates no change. [DEF=-1]
      BRT       - (int) Adjust the Brightness on the image. This is a value
                  between 0 and 100, which correlates to percentage Contrast. A
                  value of  -1 or 50 indicates no change. [DEF=50]
      CMAP      - (String) Defined ColorMap, such as TERRAIN, MULTI, etc.
                  See MColor API for list of defined ColorMaps. [DEF=RAMP]
      CNT       - (int) Adjust the Contrast on the image. This is a value
                  between 0 and 100, which correlates to percentage Contrast.
                  A value of -1 or 50 indicates no change. [DEF=50]
      COLORS    - (String) Comma-separated list of colors which will be used to
                  create a custom ColorMap. If present, this will override CMAP.
      CTHRU     - (boolean) Whether or not to transform the color for Zero (0)
                  values, which is usually the absence of data (the background),
                  totally transparent. [DEF=FALSE]
                  NOTE: As of 3.1.0, this no longer does anything. Use a custom
                  color map if a transparent color is required.
      CXMODE    - (String) Complex Mode. Used when the input file contains
                  complex data. Must be in MAG [DEF], PHASE, REAL, IMAG, 10LOG,
                  20LOG. (Since 3.1.0)
      GRAYSCALE - (boolean) Whether or not to produce the image in GreyScale.
      NC        - (int) Number of colors to use in the ColorMap. [DEF=256]
      ZMAX      - (double) Maximum data value to accept / draw. No default.
      ZMIN      - (double) Minumum data value to accept / draw. No default.

    Examples:

      1. Use a custom colormap with 13 colors.
         nM> res colors "black,blue,cyan,darkGray,gray,green,yellow,lightGray,&
             magenta,orange,pink,red,white"
         nM> convert altitude blue2img "testAlt1.png" png IMGOPTS={nc=13,&
             colors="^colors"}

      2. Create the image in grayscale, using the TERRAIN ColorMap.
         nM> convert altitude blue2img "testAlt2.gif" gif &
             IMGOPTS={cmap=terrain,grayscale=TRUE}

      3. Adjust the contrast and brightness on the output file to 100%.
         nM> convert altitude blue2img "testAlt3.jpg" jpg &
             IMGOPTS={cmap=terrain,cnt=100,brt=100}

      4. Adjust the contrast and brightness on the output file to 100%, make the
         image semi-transparent, and use the TERRAIN ColorMap with 1024 colors.
         nM> convert altitude blue2img "testAlt4.jpeg" jpeg &
             IMGOPTS={cmap=terrain,nc=1024,cnt=100,brt=100,alpha=128}

      5. Simply create the image using the TERRAIN ColorMap.
         nM> convert altitude blue2img "testAlt5" IMGOPTS={cmap=terrain}

      6. Create the image only from a specified data range.
         nM> convert altitude blue2img "testAlt6.gif" GIF &
             IMGOPTS={cmap=terrain,z1=-1000,zmax=1000,cthru}

      7. Create an image from a datafile containing complex PHASE data
         nM> convert myComplexDataFile blue2img "myCXImg.jpg" jpg &
             IMGOPTS={CXMODE=PHASE}

  SV2BLUE                                                [Since NeXtMidas 3.3.2]
    Converts a state vector to a Type 5001 BLUE file. This will take in any of
    the state vector forms supported by StateVector and outputs a Type 5001
    file.

    Syntax:
       CONVERT <IN> SV2BLUE <OUT> OPTIONS={INTERPOLATIONORDER=<order>}

    The OPTIONS table can be used to override options of the StateVector class
    used prior to interpolation. Typically this will include setting the
    InterpolationOrder used to one of the following:
      "Linear"         - Linear  Interpolation
      "CubicHermite"   - Cubic   Hermite Spline
      "QuinticHermite" - Quintic Hermite Spline

    By default this will output only the POS, VEL, and ACC columns (omitting ACC
    if not available in the input file). If a TIME column is desired this can
    be indicated by adding the "TIME_NAME=TIME" qualifier to the output file
    (this qualifier matches the FILE command, except that the value must be
    "TIME" in this usage). This will always "auto SVINTERP" the input data such
    that it is evenly spaced as is required in a typical Type 5001 file.

    Examples:
        1. Convert vehicle #4 in a given SP3 file to a BLUE file and plot it:
            nM> convert nga17212.sp3{SELECTED=4} sv2blue ram:temp
            nM> plot world.prm|ram:temp


  SV2KML[/S] - (type 5000 only)                          [Since NeXtMidas 3.1.1]
    Converts Type 5000 state vectors to a KML file.

        ** THE SV2KML FUNCTION IS EXPERIMENTAL AND HAS KNOWN ISSUES **

    The original file is not altered and the output file is created based on
    the OPTIONS table and the times provided. If the output file name is not
    specified, the file will be called "<input_file_name>.kml", where
    "<input_file_name>" does not include the path or extension. State vectors
    are identified by times given by user. These are relative times to the
    file given. If the user does not provide specific times, the entire file
    will be outputted. The OPTIONS table gives the user various controls to
    influence the KML output with style information or format preferences.
    A list of supported options can be found below along with examples.

    Syntax:
       CONVERT <IN> SV2KML <OUT> [OPTIONS]

    Modifiers:
      /S  - Indicates output to string instead of a text file; to results
            specified by <OUT>, otherwise to the terminal.

    OPTIONS:
      ALTMODE    - (String) Specifies how altitude components in the
                   <coordinates> element are interpreted.  [DEF=clampToGround]
                  * clampToGround: Indicates to ignore an altitude specification
                  * relativeToGround: Sets the altitude of the element relative
                                      to the actual ground elevation of a
                                      particular location
                  * absolute: Sets the altitude of the coordinate relative to
                              sea level, regardless of the actual elevation of
                              the terrain beneath the element.
      BEGIN      - (long) Start time for TimeSpan purposes.    [DEF=TIMESTAMP]
      DELTA      - (long) Delta to be used.           [DEF=input file's delta]
      END        - (long) Start time for time-span purposes.   [DEF=TIMESTAMP]
      EXTRUDE    - (long) A boolean that decides whether to connect the point/
                          line/ring to the ground. Given as a num.     [DEF=0]
      FORMAT     - (String) KML format to use for output:          [DEF=POINT]
                  * Point: Geographic location defined by lon, lat, & (opt) alt
                  * LineString: Defines a connected set of line segments
                  * Model: A 3D object described in a COLLADA file
                  * gx:Track: Currently not supported
      HEADING    - (long) Azimuth of the camera, in deg.    [DEF=0,true North]
      HREF       - (String) HTTP address or local file for icon.    [DEF=None]
      ICONCOLOR  - (String) Hex value for icon color.           [DEF=FFFFFFFF]
      ICONSCALE  - (long) Resizes the icon.                            [DEF=1]
      LABELSCALE - (long) Resizes the label                            [DEF=1]
      LABELCOLOR - (String) Hex value for label color.          [DEF=FFFFFFFF]
      LINECOLOR  - (String) Hex value for line color.           [DEF=FFFF0000]
      LINEWIDTH  - (long) Width of the line, in pixels.                [DEF=1]
      PERSIST    - (long) A boolean that specifies whether to maintain
                          previously plotted points.  BEGIN and ENG must be
                          define for this to be applied.               [DEF=0]
      PREPEND    - (String) User-option to specify color, scale and width in
                   style section of a point or line string format.[See Option]
      ROLL       - (long) Rotation, in degrees, of the camera around the Z axis.
                          Values range from -180 to +180               [DEF=0]
      STYLEID    - (String) Name of KML style section.           [DEF=STYLEID]
      TESSELLATE - (long) A boolean that specifies whether to allow the line/
                          ring to follow the terrain.                  [DEF=0]
      TILT       - (long) Rotation, in degrees, of the camera around the
                          X axis.                                      [DEF=0]
      TIME       - (Data) Specific times given for a Type 5000 file.  These
                   times will be translated into lat,lon and alt, and they are
                   treated as absolute.  Times should be given as comma
                   separated doubles within parentheses.  This is not necessary
                   for a single time. If no times are given and if the 'begin'
                   and 'end' options have not been specified for a TimeSpan,
                   then all points from the input file will be converted to
                   coordinates for the output.      [DEF=all elements in file]
      XSCALE     - (long) Scales a model along the X axes.             [DEF=1]
      YSCALE     - (long) Scales a model along the Y axes.             [DEF=1]
      ZSCALE     - (long) Scales a model along the X axes.             [DEF=1]

    Examples:
       1. Create a KML file with a KML Point at a position equating to the
          position of sv3.prm at a time offset of 3000
            nM> CONVERT sv3.prm SV2KML output.kml OPTIONS={time=3000}

       2. Display a KML formatted String in the terminal that contains
          two KML Points from sv3.prm at time offsets 8000 and 9000. Also,
          use a Collada model for the icon image.
            nM> CONVERT sv3.prm SV2KML/S OPTIONS={format="MODEL",&
                time=(8000,9000),xscale=4000,yscale=4000,zscale=4000,&
                href="http://alice.techma.com/nextmidas/erc/35a.dae"}

       3. Create a KML file with a KML LineString connecting  points
          from data in sv3.prm between time offset 3000 and 4300.
            nM> CONVERT sv3.prm SV2KML output.kml OPTIONS={format=linestring,&
                iconscale=4,iconcolor=#FF0000,begin=3000,end=4300}

  SVINTERP                                               [Since NeXtMidas 3.3.0]
    Creates a Type 5000 state vector by interpolating values from an existing
    Type 5000 with given time indices. The time indices are specified via the
    TIME column in a Type 3000/5000/6000 file. This function takes the place of
    X-Midas commands like SVINTERP_TC.

    Syntax:
       CONVERT <IN> SVINTERP <OUT> TIMES=<time_file> &
               OPTIONS={INTERPOLATIONORDER=<order>}
       -or-
       CONVERT <IN> SVINTERP <OUT> &
               TIMESPEC={START=<start_time>,STOP=<stop_time>,DELTA=<time_delta>}

    The OPTIONS table can be used to override options of the StateVector class
    used prior to interpolation. Typically this will include setting the
    InterpolationOrder used to one of the following:
      "Linear"         - Linear  Interpolation
      "CubicHermite"   - Cubic   Hermite Spline
      "QuinticHermite" - Quintic Hermite Spline

    The TIMES=<time_file> parameter may be either a Type 3000/5000/6000 file
    with a TIME column or a file with TCWS and TCFS columns (such as an
    ICEPacket file, which matches the input to the X-Midas SVINTERP_TC). If all
    three columns (TIME,TCWS, and TCFS) are given, the TIME column will be used.

    If a TIME column is specified in the <IN> file, it will be assumed to
    contain the time of the entry in J1950 seconds (i.e. overriding the normal
    computation that assumes all entries are evenly spaced based on xdelta).

    Time, when not available in a file, can also be specified using the TIMESPEC
    parameter. TIMESPEC is a table containing START, STOP, and DELTA times.


  TBL2HTML - Converts a NeXtMidas results table into an HTML text file.
    If an extension is not included, the output file will be named
    <out>.html.

    NOTE: This conversion was designed to be part of the NeXtMidas macro test
    suite.  As such, any table values that are equal to "1" or startWith
    "PASSED ALL TESTS" will have table cells with a background color of green
    ("009900").  Any table values that are equal to "-1" or start with
    "FAILED SOME TESTS" will have table calls with a background color of red
    ("F00000").  All other cells will have a background of light grey.  Custom
    cell colors require editing nxm.sys.prim.convert.java with the desired
    cellColor and recompiling.


  TAB2XML[/S] - Converts a table into an XML text file or string
     Since NeXtMidas 2.9.0, this command will add a '.xml' extension if the
     user does not specify a different one.
     The newlines option under the FLAGS switch can be used to control
     indentation and new line insertion. The /DELIM switch is used to control
     how XML tags with the same name are handled (tables must have unique key
     names).  For example,
       '<XML><ROW>A=1</ROW><ROW>A=2</ROW><XML>'
     becomes a table with keys

    Tables with inner tables take the XML form:
      <XML><INNER ATTR1="..." ATTR2="..." ... /></XML>

    Tables WITHOUT inner tables take the XML form:
      <XML ATTR1="..." ATTR2="..." ... />

    Modifiers:
      /S  - Indicates output to string instead of a text file

  TBL2XML[/S] - DEPRECATED. Use TAB2XML

  TEMPLATE2TBL[/F] - Converts the X-Midas template in a given file to a
    table that can be used as a template with LIST2. (See Example 9)

    Modifiers:
      /F  - Indicates output to Table (.tbl) file rather than a result.

  XML2B - Converts an XML text file into a BLUE file.

    The /XMLKEY switch is used to indicate the table to be converted.  The
    record names are gleaned from the XML field names, with a limit of 4
    characters.  So lookout for duplicate field names - a fix is TBD!

    XML2B is essentially a combination of the XML2TBL and TBL2B conversions,
    thus see these for more information.

  XML2TAB   - Converts an XML text file into a Table object.
  XML2TAB/S - Converts an XML  string into a Table object.

    By default this does a "FAST" conversion which means that most XML validity
    checks are skipped. If an error occurs (likely due to malformed XML input)
    a warning will be printed and no output result will be set. Note that the
    warning message will rarely indicate the real reason the conversion failed,
    in many cases the exception is not seen until some time after the initial
    error. In a few rare cases errors may go undetected.  The "FAST" conversion
    assumes that there will only be one root level element. If multiple top
    level elements exist, only the last root element will be returned.
    For example:
      <ROOT1><DATA>Hello</DATA></ROOT1> <ROOT2><DATA>World</DATA></ROOT2>
    only returns a table representing
      <ROOT2><DATA>World</DATA></ROOT2>

    Examples:
      nM> convert airports.xml XML2TAB tab

    Switches:
      /BASE  -- See documentation on switches below and in TAB2XML
      /COMP  -- See documentation on switches below and in TAB2XML
      /DELIM -- See documentation on switches below and in TAB2XML
      /USEROOTFORRES -- See documentation on switches below (Since 3.3.3)

  XML2TBL[/S] - DEPRECATED. Use XML2TAB


EXAMPLES:
  1. Convert a table to XML and show the output on the screen.
       nM> convert {SNR=1,FREQ=2} tbl2xml
       <XML SNR="1" FREQ="2" />

  2. Convert a table with an inner table to XML
       nM> convert {INNER={SNR=1,FREQ=2}} tbl2xml
       <XML><INNER SNR="1" FREQ="2" /></XML>

  3. Convert the table to XML and write the output to a text file
       nM> convert {SNR=1,FREQ=2} tbl2xml temp.txt

  4. Convert an XML string to a table (no inner tables)
       nM> convert "<XML SNR="1" FREQ="2" />" xml2tbl/s tabout
         T: TABOUT          = Table of 2 entries
        1S:  SNR            = 1
        1S:  FREQ           = 2

  5. Convert an XML string to a table (with inner tables)
       nM> convert "<XML> <DATA SNR="1" FREQ="2" /> </XML>" xml2tbl/s tabout
         T: TABOUT          = Table of 1 entries
         T:  DATA           = Table of 2 entries
        1S:   SNR           = 1
        1S:   FREQ          = 2

  6. Convert an XML text file to a table
       nM> convert temp.xml xml2tbl tabout

  7. Convert the following XML text file (test.xml) into a type-3000 file:
       <XML>
         <PERSDATA>
           <LOC NAME="HOMER" SSN="123-45-6789" CITY="SPRINGFIELD" ZIP="12321"/>
           <LOC NAME="MARGE" SSN="123-45-6780" CITY="SPRINGFIELD" ZIP="12321"/>
         </PERSDATA>
       </XML>

       nM> convert/xmlkey="xml|persdata" test.xml XML2B tempfile

  8. Create a HTML file named "myhtmlfile.html" in the user's write AUX.
       nM> CONVERT myNxmTable TBL2HTML myhtmlfile.html

  9. Convert the X-Midas template to a NeXtMidas template for use with LIST2.
       nM> CONVERT xmtemplate TEMPLATE2TBL mytbl

  10. Convert a CSV file into a table skipping the first row and naming the
      columns
       nM> set qualifiers {HEADERROWS=1,ROWNAME=AIRPORT,&
                           COLUMNNAMES="NAME|CODE|SF:LAT|SF:LON"}
       nM> CONVERT airports.csv^qualifiers csv2tbl tab

  11. Convert an XML from a web server to a Table (mytable) with connect timeout
      and read timeout of 5 and 30 seconds, respectively.
        nM> set urlstr "http://host/file.xml{CONNECTTIMEOUT=5,TIMEOUT=30}"
        nM> CONVERT urlstr XML2TAB mytable

  12. Convert a subset of data from a Type 5000 StateVector, designated by a
      given time offset, to a KML file
        nM> CONVERT sv3.prm sv2kml "outfile.kml" OPTIONS={time=3000}

  13. Convert (select) Platinum Keywords to BLUE keywords, specifying TOA_SIGMA
      and FOA_SIGMA to enable covariance keywords to be converted. Keep the 
      existing Platinum keywords.
        nM> CONVERT testplat4plat2blue_cov.cdif PLAT2BLUE testbluefromplat.tmp &
                    options={_OPTIONS_={KEEP_EXISTING=true}, &
                    TOA_SIGMA={VALUE=0.0},FOA_SIGMA={VALUE=0.0}}

  13. Convert (select) Platinum Keywords to BLUE Keywords.  Since there are no
      covariance keyword, SYSTEM_TOA_SIGMA and SYSTEM_FOA_SIGMA should be
      specified, but it is not required. Use default of NOT copying over the
      Platinum Keywords.
        nM> CONVERT  testplat4plat2blue.cdif PLAT2BLUE testbluefromplat.tmp

  14. Use the general Keyword conversion command KWCONV to convert (select) 
      Platinum Keywords to BLUE Keywords.
        nM> table converttable LOAD kwconv_plat2blue.tbl
        nM> CONVERT testplat4plat2blue.cdif KWCONV testbluefromplat.tmp &
                    options=converttable


SWITCHES:
  /BASE=     - Indicates if the counter for duplicate tags is ZeroBased
               (/BASE=0) or OneBased (/BASE=1). Use -1 to duplicate the
               unusual of XML2TBL; use -2 for ZeroBased but with a counter
               on every entry (even those without duplicates). [DEF=1]
  /CLASSSUB= - Substitute name to use for "class" used with FSTRUCT2JAVA
               since "getClass" is reserved in Java. [DEF="Class_"]
  /COMP      - (TBL2XML,TAB2XML) Turns on character data compression for tags
               with ZERO  params.  [DEF=FALSE]
               Compression is off by default to prevent the table structure
               from changing if parameters are added to tag.
               Without compression:
                 "<XML><GREETING>Hello</GREETING></XML>"
               becomes
                 {GREETING={CDATA="Hello"}}.
               With compression it becomes
                 {GREETING="Hello"}.
  /DEFAULTNAMES - Indicates that file record names of the form TR01 - TR26
                  be used instead of gleaning the names from the XML field
                  tags (XML2B and TBL2B only).
  /DELIM=    - For TBL2B and XML2B: Sets the delimiter character between record
               formats [DEF="|"].
               For XML2TAB and XML2TBL: Sets the delimiter String used when
               indicating duplicate tags.
               DEF=["_"] for XML2TAB, DEF=["__"] for XML2TBL
  /HTMLKEY=  - Main HTML key. TBL2HTML [DEF=HTML]
  /INCLUDE=  - Comma separated list of #include files to include at the top
               of the native JNI code generated by FSTRUCT2JAVA.
  /PACKAGE   - State switch used with FSTRUCT2JAVA to indicate that the
               generated class should be package-private rather than public.
  /PARSE     - Use parser in T2B option [DEF=FALSE]
  /PATH=     - Overrides path for MSGCFG2TBL, MSGCFG2INC or MSGCFG2XML. This
               should always be quoted. [DEF="^{OPT.PATH}"]
  /TL=       - Transfer length in elements [EEEI, IEEE and VAX only]
  /USEROOTFORRES - (XML2TAB) Overrides OUT= for using the root level element
                   name for the result name. (Since NeXtMidas 3.3.3)
                   With /USEROOTFORRES:
                     "<XML><GREETING>Hello</GREETING></XML>"
                   will be accessible as
                     say "^xml"
  /VARIABLE= - Name of the static variable to warp for FSTRUCT2JAVA.
               If not specified FSTRUCT2JAVA assumes non-static wrapping.
  /XMDISK=   - Specifies X-Midas installation directory when generating
               message configuration for X-Midas using MSGCFG2TBL.
  /XMLKEY=   - (TBL2XML, XML2TBL) Main XML key. [DEF=XML]
               (XML2B) Used to access sub-tables (e.g. "XML|SUBTABLE")
               [DEF=XML]

SEE ALSO: FILE nxm.sys.lib.Convert, nxm.sys.lib.Transform