
<section type='appendix' id='NMGF_Introduction_id'
webfilename='introductiontonmgf'>
    <title>
        Introduction to the Noise Model Grid Format
    </title>
    <para>
        The Noise Model Grid Format (NMGF) is a well-documented standard
        way of representing a <link
        target='#NMPlot_IntroductionToGrids_id'>grid</link> and its auxiliary
        information.
    </para>
    <para>
        Internally, NMPlot processes all grids using NMGF, as shown in
        the <link target='#NMPlot_GridDocumentWindowSummaryPane_id'>Details
        pane of the Grid Document window</link>.
    </para>
    <para>
        The NMGF standard includes a format for storing grids in files.
        Many third-party applications communicate with NMPlot using NMGF
        grid files. Writing a NMGF file is the easiest ways to import
        third-party data into NMPlot. For a quick-start guide to creating
        NMGF files for this purpose, see <iref
        target='NMPlot_QuickStartGuideToImportingData_id'/>.
    </para>
    <section>
        <title>
            Full Documentation for NMGF
        </title>
        <para>
            The NMPlot\NMGF directory contains the NMGF standard documentation,
            C and C++ libraries for creating NMGF files, and several sample
            NMGF files.
        </para>
    </section>
    <section>
        <title>
            Why Was NMGF Developed?
        </title>
        <para>
            There are a number of computer models in use that calculate the
            noise impacts of installations, such as airports and railroads,
            upon the surrounding community. Examples of such models include
            the United States Air Force's (USAF) NOISEMAP and the United States
            Federal Aviation Administration's (US FAA) Integrated Noise Model
            (INM).
        </para>
        <para>
            In the early 1990's, each model defined its own output file format.
            This resulted in duplicate effort developing post-processing utilities
            that performed essentially the same tasks. For example, both the
            USAF and the US FAA independently developed contour plotting utilities
            for use with their respective noise models.
        </para>
        <para>
            To promote the development of shared post-processing utilities,
            the USAF and the US FAA sponsored the development of a standard
            grid file format that met the needs of both models. This format
            is known as the Noise Model Grid Format (NMGF). Version 1.0 of
            this format was released in September 1993.
        </para>
    </section>
    <section>
        <title>
            NMGF: Not Just For Environmental Noise Models
        </title>
        <para>
            While NMGF was originally developed to support noise models, it
            is neutral to any particular application domain. A NMGF grid can
            just as easily contain data from other types of models (for example,
            air pollution models) or from sources other than computer models
            (for example, measured data).
        </para>
    </section>
    <section>
        <title>
            NMGF Sections
        </title>
        <para>
            Data is stored in the NMGF format as a list of <termtext>sections</termtext>.
            There are more than 30 types of sections, each with a specific
            purpose. For example, a CART section defines a coordinate system
            used to specify geographic locations in a grid.
        </para>
        <para>
            Section types are defined that specify data points (both on rectangular
            grids and as lists of location-value pairs), information about
            data points (the physical units, the range of valid data point
            values, etc.), geographic annotations (for example, the locations
            of roads and buildings), and bookkeeping information (where the
            data came from, who created the data, etc.).
        </para>
    </section>
    <section>
        <title>
            Child Sections
        </title>
        <para>
            The NMGF data structure is hierarchical. That is, sections can
            have subsections, called <termtext>child sections</termtext>.
            A child section specifies an attributes of its parent section.
        </para>
        <para>
            As an example, consider the ZCRD section, which specifies an altitude
            or height. A ZCRD section by itself is meaningless: you do not
            know what the altitude refers to. The ZCRD section is always used
            as a child of the section it refers to.
        </para>
        <para>
            Consider the PNTS section, which specifies information about a
            point geographic feature (for example, the location of a house).
            This section has several required parameters, such as the geographic
            coordinates of the point. The altitude of the point is not a required
            parameter. However, the ZCRD section can optionally appear as
            a child of the PNTS section to specify the altitude of the point.
        </para>
    </section>
    <section>
        <title>
            Types of NMGF Sections
        </title>
        <section>
            <title>
                Geographic Coordinate System Specification
            </title>
            <para>
                This NMGF section defines a geographic coordinate system used
                to specify locations in the grid. If a grid does not contain a
                CART or UTMC section, longitude and latitude are assumed.
            </para>
            <unorderedlist>
                <listitem>
                    <para>
                        <bold>CART</bold> - Define a local flat-Earth Cartesian coordinate
                        system for specifying geographic coordinates
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>UTMC</bold> - Define a Universal Transverse Mecator (UTM)
                        coordinate system for specifying geographic coordinates
                    </para>
                </listitem>
            </unorderedlist>
        </section>
        <section>
            <title>
                Data Point Specification
            </title>
            <para>
                These NMGF sections specify information about the data points
                in a grid.
            </para>
            <unorderedlist>
                <listitem>
                    <para>
                        <bold>DAPY</bold> - Specify the grid's defined area polygon: i.e.,
                        the geographic area where data is known. See <iref
                        target='NMPlot_GridDefinedAreaPolygon_id'/>.
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>DPAL</bold> - Specify a group of data points as a list of
                        location-value pairs.
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>GRID</bold> - Specify a group of data point arranged on
                        a regular rectangular grid
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>GTSH</bold> - Specify the range of data point values that
                        is considered valid
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>MTRC</bold> - Specify what is being measured by the data
                        points, and what units of measurement are used
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>SUBG</bold> - Specify a <termtext>nested subgrid</termtext>:
                        i.e., a set of data points that doubles the resolution of a portion
                        of a grid
                    </para>
                </listitem>
            </unorderedlist>
        </section>
        <section>
            <title>
                Geographic Annotations
            </title>
            <para>
                These NMGF sections specify map data stored in a grid.
            </para>
            <unorderedlist>
                <listitem>
                    <para>
                        <bold>AREM</bold> - Define a geographic feature consisting of
                        one or more closed polygons
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>ARES</bold> - Define a geographic feature consisting of
                        a single closed polygon
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>BKMP</bold> - Define information about a background map
                        that is stored in an external file
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>LINC</bold> - Define a geographic feature consisting of
                        a series of (possibly non-contiguous) lines and arcs, described
                        by a series of commands that move a hypothetical cursor
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>LINM</bold> - Define a geographic feature consisting of
                        one or more continuous lines
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>LINS</bold> - Define a geographic feature consisting of
                        a single continuous line
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>PNTM</bold> - Define a geographic feature consisting of
                        one or more points
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>PNTS</bold> - Define a geographic feature consisting of
                        a single point
                    </para>
                </listitem>
            </unorderedlist>
        </section>
        <section>
            <title>
                Audit Trail
            </title>
            <para>
                This NMGF section is used to record the creation and modification
                history of a grid.
            </para>
            <unorderedlist>
                <listitem>
                    <para>
                        <bold>SORC</bold> - Specify audit trail information about a grid:
                        how, why, when, where, and by whom it was created
                    </para>
                </listitem>
            </unorderedlist>
        </section>
        <section>
            <title>
                Predefined Optional Attributes
            </title>
            <para>
                These NMGF sections allow predefined optional attributes to be
                specified. They are used only as child sections.
            </para>
            <unorderedlist>
                <listitem>
                    <para>
                        <bold>DATE</bold> - Specify a date
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>DESL</bold> - Specify a detailed multiple-line description
                        of an object
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>DESS</bold> - Specify the proper name or a short one-line
                        description of an object
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>HEAD</bold> - Specify the direction (i.e., the heading)
                        of an object
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>PERS</bold> - Specify information about a person: name,
                        telephone number, etc.
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>PROG</bold> - Specify the name and version of a computer
                        program
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>TIME</bold> - Specify a time
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>WARN</bold> - Specify a problem or limitation of the data
                        in a NMGF grid
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>ZCRD</bold> - Specify the height or altitude of an object
                    </para>
                </listitem>
            </unorderedlist>
        </section>
        <section>
            <title>
                Arbitrary Optional Attributes
            </title>
            <para>
                These NMGF sections allow grids to store information that was
                not anticipated by the designers of the NMGF format: arbitrary
                attributes can be specified as name-value pairs. These sections
                are used only as child sections.
            </para>
            <unorderedlist>
                <listitem>
                    <para>
                        <bold>ATRC</bold> - Specify a coordinate as an arbitrary attribute
                        of a NMGF section
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>ATRF</bold> - Specify a floating point number as an arbitrary
                        attribute of a NMGF section
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>ATRI</bold> - Specify an integer as an arbitrary attribute
                        of a NMGF section
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>ATRS</bold> - Specify text as an arbitrary attribute of
                        a NMGF section
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>ATRT</bold> - Specify a table of information as an attribute
                        of a NMGF section
                    </para>
                </listitem>
            </unorderedlist>
        </section>
        <section>
            <title>
                File Control
            </title>
            <para>
                These NMGF sections control the processing of a NMGF grid when
                it is stored in a file.
            </para>
            <unorderedlist>
                <listitem>
                    <para>
                        <bold>ENDF</bold> - Mark the end of a NMGF grid file
                    </para>
                </listitem>
                <listitem>
                    <para>
                        <bold>TITL</bold> - Mark the beginning of a NMGF grid file, and
                        specify the NMGF version number
                    </para>
                </listitem>
            </unorderedlist>
        </section>
    </section>
    <!-- The Simple Rectangular Grid Optimization is no longer used.  See the notes in NMPlot source file NMBGF_SectionTreeUtil_GetGridScalarField.cpp
     <section>
        <title>
            Simple Rectangular Grid Optimization
        </title>
        <para>
            If a grid meets the following conditions, &app_name; can use alternative
            interpolation and contouring algorithms that are faster and use
            less memory.
        </para>
        <unorderedlist>
            <listitem>
                <para>
                    The grid contains a single GRID section, and does not contain
                    any DPAL or SUBG sections.
                </para>
            </listitem>
            <listitem>
                <para>
                    The grid either a) does not contain a GTSH section, or b) does
                    not contain any invalid data points (i.e., data points whose values
                    are outside the valid range specified by the GTSH section).
                </para>
            </listitem>
        </unorderedlist>
        <para>
            For large grids, the time and memory savings can be substantial.
            Therefore, if your data points are arranged on a regular, rectangular
            lattice of locations, they should be specified using a GRID section
            instead of a DPAL section.
        </para>
    </section>
-->
</section>
