<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing with OASIS Tables v3.0 20080202//EN" "journalpub-oasis3.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:oasis="http://docs.oasis-open.org/ns/oasis-exchange/table" xml:lang="en" dtd-version="3.0">
  <front>
    <journal-meta><journal-id journal-id-type="publisher">ASCMO</journal-id><journal-title-group>
    <journal-title>Advances in Statistical Climatology, Meteorology and Oceanography</journal-title>
    <abbrev-journal-title abbrev-type="publisher">ASCMO</abbrev-journal-title><abbrev-journal-title abbrev-type="nlm-ta">Adv. Stat. Clim. Meteorol. Oceanogr.</abbrev-journal-title>
  </journal-title-group><issn pub-type="epub">2364-3587</issn><publisher>
    <publisher-name>Copernicus Publications</publisher-name>
    <publisher-loc>Göttingen, Germany</publisher-loc>
  </publisher></journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.5194/ascmo-5-147-2019</article-id><title-group><article-title>Automated detection of weather fronts using a deep learning neural network</article-title><alt-title>DLNN front detection</alt-title>
      </title-group><?xmltex \runningtitle{DLNN front detection}?><?xmltex \runningauthor{J. C. Biard and K. E. Kunkel}?>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes">
          <name><surname>Biard</surname><given-names>James C.</given-names></name>
          <email>jcbiard@ncsu.edu</email>
        <ext-link>https://orcid.org/0000-0002-2952-2828</ext-link></contrib>
        <contrib contrib-type="author" corresp="no">
          <name><surname>Kunkel</surname><given-names>Kenneth E.</given-names></name>
          
        </contrib>
        <aff id="aff1"><institution>North Carolina Institute for Climate Studies, North Carolina State
University, Asheville, <?xmltex \hack{\break}?> North Carolina, 28001, USA</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">James C. Biard (jcbiard@ncsu.edu)</corresp></author-notes><pub-date><day>21</day><month>November</month><year>2019</year></pub-date>
      
      <volume>5</volume>
      <issue>2</issue>
      <fpage>147</fpage><lpage>160</lpage>
      <history>
        <date date-type="received"><day>28</day><month>March</month><year>2019</year></date>
           <date date-type="rev-recd"><day>6</day><month>September</month><year>2019</year></date>
           <date date-type="accepted"><day>2</day><month>October</month><year>2019</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2019 James C. Biard</copyright-statement>
        <copyright-year>2019</copyright-year>
      <license license-type="open-access"><license-p>This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this licence, visit <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</ext-link></license-p></license></permissions><self-uri xlink:href="https://ascmo.copernicus.org/articles/5/147/2019/ascmo-5-147-2019.html">This article is available from https://ascmo.copernicus.org/articles/5/147/2019/ascmo-5-147-2019.html</self-uri><self-uri xlink:href="https://ascmo.copernicus.org/articles/5/147/2019/ascmo-5-147-2019.pdf">The full text article is available as a PDF file from https://ascmo.copernicus.org/articles/5/147/2019/ascmo-5-147-2019.pdf</self-uri>
      <abstract><title>Abstract</title>
    <p id="d1e85">Deep learning (DL) methods were used to develop an algorithm to
automatically detect weather fronts in fields of atmospheric surface
variables. An algorithm (DL-FRONT) for the automatic detection of fronts was
developed by training a two-dimensional convolutional neural network (2-D CNN)
with 5 years (2003–2007) of manually analyzed fronts and surface fields
of five atmospheric variables: temperature, specific humidity, mean sea
level pressure, and the two components of the wind vector. An analysis of
the period 2008–2015 indicates that DL-FRONT detects nearly 90 % of the
manually analyzed fronts over North America and adjacent coastal ocean
areas. An analysis of fronts associated with extreme precipitation events
shows that the detection rate may be substantially higher for important
weather-producing fronts. Since DL-FRONT was trained on a North American
dataset, its extensibility to other parts of the globe has not been tested,
but the basic frontal structure of extratropical cyclones has been applied
to global daily weather maps for decades. On that basis, we expect that
DL-FRONT will detect most fronts, and certainly most fronts with significant
weather. However, where complex terrain plays a role in frontal orientation
or other characteristics, it might be less successful.</p>
  </abstract>
    </article-meta>
  </front>
<body>
      

<sec id="Ch1.S1" sec-type="intro">
  <label>1</label><title>Introduction</title>
      <p id="d1e97">Fronts are defined as the interface or transition zone between two air
masses of different density (American Meteorological Society, 2018). Almost
invariably, these air masses are characterized by contrasting temperature,
pressure, moisture, and wind fields. The canonical structure of an
extratropical cyclone (ETC) is distinguished by fronts demarcating the
different air masses that provide the potential energy for such systems.</p>
      <p id="d1e100">Fronts are centrally important because they are usually formed by lower
tropospheric horizontal convergence and associated upward vertical motion
arising from large-scale dynamical pressure forces in the atmosphere. The
upward vertical motion is associated with a variety of significant weather
events, including severe thunderstorms and a wide spectrum of precipitation
types and amounts. Thus, front locations are also areas of enhanced
probability of significant weather. Kunkel et al. (2012) found that in the
US more than half of extreme precipitation events exceeding the threshold
for a 1-in-5-year average recurrence interval occurred in the vicinity of
fronts.</p>
      <p id="d1e103">Manual front identification by weather map analysis is a labor-intensive
process. This provides a strong motivation for developing accurate automated
approaches for operational applications. When considering the analysis of
climate model simulations, such as the Coupled Model Intercomparison Project
Phase 5 (CMIP5) and upcoming Phase 6 (CMIP6) suites, manual analysis is not
feasible because of the large number of simulated days (requiring analysis
of hundreds of thousands of individual days or hours). Automated approaches
are essential. The immediate motivation for this work was the need to
evaluate frontal occurrences in CMIP5 climate model simulations with a
specific interest in extreme precipitation events related to fronts.</p>
      <p id="d1e106">Fronts are elongated in one dimension. Thus, the simple representation of a
front often used by meteorologists is a curved line. As such, the
development of automated methods differs from those of certain other
important phenomena such as ETC centers and tropical cyclones, where a<?pagebreak page148?> point
minimum in pressure is a suitable simplification of location. Several
automated methods have been developed to identify fronts with varying
degrees of success. In this paper we describe a novel approach using a deep
learning neural network (DLNN). Section 2 is a discussion of previously
published automated algorithms. Section 3 is a description of our algorithm.
Section 4 is a presentation of the training results and the results of
comparing fronts detected using the algorithm with fronts that were manually
identified by National Weather Service (NWS) meteorologists as part of their
operational forecasting activities. Section 5 describes climatological
information derived from the application of the algorithm. In Sect. 6 we
discuss the effective use of the algorithm.</p>
</sec>
<sec id="Ch1.S2">
  <label>2</label><title>Previous work</title>
      <p id="d1e117">Previous efforts to develop automated front detection algorithms have
generally calculated horizontal fields of the Laplacian of a surface
parameter. Fronts are associated with high values of the Laplacian, i.e., areas where the parameter gradient is changing rapidly in space. In most
cases, the parameter includes a thermal element, but not always. Hewson (1998) used the wet bulb potential temperature, <inline-formula><mml:math id="M1" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, which
incorporates atmospheric water vapor content along with temperature. Berry
et al. (2011) and Catto et al. (2012) also used <inline-formula><mml:math id="M2" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. Jenkner et al. (2010) and Schemm et al. (2015) used equivalent potential temperature,
<inline-formula><mml:math id="M3" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, which incorporates atmospheric water vapor differently. It is
not clear on first principles whether there would be substantial differences
between <inline-formula><mml:math id="M4" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M5" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in frontal detection. Since
atmospheric water vapor content is usually directly correlated with
temperature (e.g., higher absolute moisture associated with higher
temperature) in the vast majority of atmospheric conditions at the surface,
the use of potential temperature metrics that incorporate moisture will lead
to higher numeric differences between cold and warm air masses. By contrast,
Simmonds et al. (2012), Schemm et al. (2015), and Huang et al. (2017)
examined the use of surface wind as the sole variable. They found this
approach to be successful, although such an approach would be more
vulnerable to labeling areas with no density gradients as fronts. Parfitt et al. (2017) defined a parameter as the product of the relative vorticity
(<inline-formula><mml:math id="M6" display="inline"><mml:mi mathvariant="italic">ζ</mml:mi></mml:math></inline-formula>) and potential temperature (<inline-formula><mml:math id="M7" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula>). In this case, the
identification of a front is more stringent, requiring both a wind shift and
a temperature change.</p>
      <p id="d1e190">In each of these previous studies, it was necessary to choose a single
parameter, which can be a combination of individual state variables, on
which to perform the analysis. The parameter can be chosen/constructed to
best reflect a physical understanding of the characteristics of fronts, but
there is no obvious flexible way to incorporate other atmospheric fields to
improve performance. Wong et al. (2008) used a genetic algorithm to identify
a set of weather system types; this approach in principal can incorporate a
large set of fields, although as they applied it, a limited choice of
variables is still necessary to identify a feature as a particular type of
meteorological system. Also, the performance of an algorithm was typically
evaluated based on qualitative comparisons of the objectively identified
fronts with manually drawn fronts, usually for a small number of situations.
Quantitative performance metrics were not provided in any of these studies.</p>
      <p id="d1e193">It should be noted that Sanders and Hoffman (2002) draw a distinction
between the fronts that are analyzed on surface weather maps and baroclinic
zones, showing that the former are often not characterized by a density
difference. Sanders (2005) argues that it is not acceptable to label such
areas as fronts since density differences are required to produce key
dynamical characteristics of ETCs. However, the drawing of fronts where
there are wind shifts and/or pressure troughs, but no temperature
difference, remains common practice among national meteorological services
because of the accompanying weather changes, e.g., winds, sky conditions.</p>
</sec>
<sec id="Ch1.S3">
  <label>3</label><title>Methods</title>
<sec id="Ch1.S3.SS1">
  <label>3.1</label><title>Deep learning neural network (DLNN)</title>
      <p id="d1e211">In operational meteorological analysis, fronts are identified visually based
on the approximate spatial coincidence of a number of quasi-linear localized
features: a trough (relative minimum) in air pressure in combination with
gradients in air temperature and/or humidity and a shift in wind direction
(Stull, 2015). Fronts are categorized as cold, warm, stationary, or
occluded, with each type exhibiting somewhat different characteristics. The
DLNN described herein is designed to mimic
the visual fronts recognition task performed by meteorologists.</p>
      <p id="d1e214">The goal for the DLNN front detection algorithm (DL-FRONT) differs from that
in many visual recognition problems. Front detection does not involve
identification of whole-image characteristics or distinct, bounded regions.
Instead, the goal is to estimate the likelihood that each cell in a
geospatial data grid lies within a frontal zone of a particular
category – cold, warm, stationary, occluded, or none. The “none” category
allows the algorithm to positively identify cells that do not appear to lie
within any front region. These results are then used to identify paths along
which there is a maximum likelihood that a front of a particular type is
present in order to produce front lines similar to those drawn by
meteorologists.</p>
      <p id="d1e217">As explained by Goodfellow et al. (2016), “deep learning” (DL) refers to
machine learning algorithms that use multiple layers of non-linear
transformations to derive features from input fields. Each successive layer
learns to transform the output from one or more previous layers into ever
more abstract, conceptual representations of the original inputs. The
outputs of a layer are called feature maps in recognition of<?pagebreak page149?> their
conceptual character. Most of these DL algorithms are composed of artificial
neural networks (NNs), with 2-D convolutional neural networks (CNNs) in
common use for learning to detect features in image arrays. Our network uses
a technique known as supervised learning, where a “labeled” dataset
containing the desired network outputs for each input is compared with the
network outputs, and the differences between them are used to modify the
non-linear transformations in the different layers (Deng and Yu, 2014).</p>
      <p id="d1e220">Our DL-FRONT network is built using five different types of layers, which
are described below. They are: 2-D convolution layers, rectified linear unit
(ReLU) layers, 2-D dropout layers, 2-D zero-padding layers, and a softmax
layer. A network layer operates on a data grid composed of a set of 2-D
spatial arrays (dimensions indicated by the indices <inline-formula><mml:math id="M8" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M9" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> in the equations that follow), where each spatial array in the set contains values for a different measurement type or feature (indicated by the indices <inline-formula><mml:math id="M10" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> and/or <inline-formula><mml:math id="M11" display="inline"><mml:mrow><mml:mi>l</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. This third dimension is the “feature” dimension in the discussion below.</p>
      <p id="d1e255">The 2-D convolution layer is a core component of most 2-D CNNs. Spatial
filters are convolved with an input data grid to produce an output data grid
as shown in Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>).
            <disp-formula id="Ch1.E1" content-type="numbered"><label>1</label><mml:math id="M12" display="block"><mml:mrow><mml:msub><mml:mi>O</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mo>∑</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>L</mml:mi></mml:msubsup><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:mrow><mml:mo>∘</mml:mo></mml:msubsup><mml:msub><mml:mi>I</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:math></disp-formula>
          The <inline-formula><mml:math id="M13" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula>th feature map of the output data grid, <inline-formula><mml:math id="M14" display="inline"><mml:mrow><mml:msub><mml:mi>O</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, is produced by summing
the convolutions of a set of filter kernels, <inline-formula><mml:math id="M15" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, with the feature
maps, <inline-formula><mml:math id="M16" display="inline"><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, of the input data grid and adding a bias, <inline-formula><mml:math id="M17" display="inline"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, to each
cell of the result. Each filter kernel, <inline-formula><mml:math id="M18" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, is an <inline-formula><mml:math id="M19" display="inline"><mml:mrow><mml:mi>M</mml:mi><mml:mo>×</mml:mo><mml:mi>N</mml:mi></mml:mrow></mml:math></inline-formula> grid of convolution
weights. The number of input feature maps, <inline-formula><mml:math id="M20" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula>, is not usually mentioned when
describing 2-D convolution layers, so a layer is described as having an <inline-formula><mml:math id="M21" display="inline"><mml:mrow><mml:mi>M</mml:mi><mml:mo>×</mml:mo><mml:mi>N</mml:mi></mml:mrow></mml:math></inline-formula>
kernel and <inline-formula><mml:math id="M22" display="inline"><mml:mi>K</mml:mi></mml:math></inline-formula> filters.</p>
      <p id="d1e415">The ReLU layer and the softmax layer are examples of activation layers. An
activation layer produces an output by applying a nonlinear function to an
input, and it is critical to the function of any NN. A NN without nonlinear
activation layers would be limited to producing linear superpositions of its
inputs. The introduction of nonlinearity makes it possible for a NN to
approximate any continuous real function of multiple variables (Kolmogorov,
1957) (Cybenko, 1989). Neilsen (2015) describes how activation functions
allow the different elements, or neurons, within a NN to interact with one
another to produce arbitrary functions of the inputs.</p>
      <p id="d1e418">The ReLU layer function in Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>) is piecewise continuous. It produces
nonlinearity by setting the output to zero when the input value is negative
and setting the output value to the input value when the input value is
positive. The ReLU layer applies this function element-wise to the input data
grid.
            <disp-formula id="Ch1.E2" content-type="numbered"><label>2</label><mml:math id="M23" display="block"><mml:mrow><mml:msub><mml:mi>O</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfenced open="{" close=""><mml:mtable class="array" columnalign="left"><mml:mtr><mml:mtd><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>≥</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:math></disp-formula>
          The softmax layer function in Eq. (<xref ref-type="disp-formula" rid="Ch1.E3"/>), unlike the ReLU layer function, is
applied to each feature vector in an input data grid, <inline-formula><mml:math id="M24" display="inline"><mml:mi>I</mml:mi></mml:math></inline-formula>, producing an
output data grid, <inline-formula><mml:math id="M25" display="inline"><mml:mi>O</mml:mi></mml:math></inline-formula>, of the same dimensions.
            <disp-formula id="Ch1.E3" content-type="numbered"><label>3</label><mml:math id="M26" display="block"><mml:mrow><mml:msub><mml:mi>O</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:msubsup><mml:mo>∑</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>L</mml:mi></mml:msubsup><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>
          The softmax function transforms the elements of a feature vector from
activation intensities into probability estimates for each feature. It
scales the elements of each feature vector to a range of zero to one,
increases the dynamic range between the largest and smallest values, and
makes the elements sum to a value of 1. The softmax layer is typically
used as the last layer in a network when the desired output is category
labels instead of continuous function values.</p>
      <p id="d1e572">The 2-D dropout layer is used to help prevent overfitting (Hinton et al.,
2012). An overfit network will show high accuracy on the training set, but
it will perform poorly on data it has not seen during training. The 2-D
dropout layer function transforms an input data grid into an output data
grid by setting a fraction of the feature maps to zero. The feature maps to
set to zero are chosen at random in each training iteration. The feature
maps that have been set to zero make no contribution to the next layer,
which forces the network as a whole to find a more general solution that is
robust to missing information. Dropout layers make it more difficult for the
network to encode an exact response to each training input and are only
functional during network training. No feature maps are set to zero when the
network is not being trained.</p>
      <p id="d1e575">The zero-padding layer transfers an input data grid to an output data grid
that has the same size in the feature dimension but is larger by some number
of rows and columns of cells in the spatial dimensions. The unfilled cells
in the output data grid contain values of zero. The input data grid is
usually centered within the output data grid. A zero-padding layer is often
used to counteract the spatial shrinking effect produced by a 2-D convolution
layer, which produces an output data grid that is <inline-formula><mml:math id="M27" display="inline"><mml:mrow><mml:mi>M</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> rows and <inline-formula><mml:math id="M28" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>
columns smaller than its input, where <inline-formula><mml:math id="M29" display="inline"><mml:mi>M</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M30" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> are the spatial dimensions of
the 2-D convolution filter. The zero-valued elements make no contribution to
the next layer.</p>
      <p id="d1e616">The DL-FRONT 2-D CNN is trained by iteratively optimizing the values of the
weights and biases in the convolution filters to minimize the difference
between a labeled dataset and a “predicted” dataset produced by the network
from a corresponding input dataset. The difference is measured using a cost,
or loss, function. We use the categorical cross-entropy loss function (Eq. <xref ref-type="disp-formula" rid="Ch1.E4"/>) for training the network, which has the form
            <disp-formula id="Ch1.E4" content-type="numbered"><label>4</label><mml:math id="M31" display="block"><mml:mrow><mml:mi>H</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfenced><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msubsup><mml:mo>∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>I</mml:mi></mml:msubsup><mml:msubsup><mml:mo>∑</mml:mo><mml:mrow><mml:mi>c</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>C</mml:mi></mml:msubsup><mml:msub><mml:mi>w</mml:mi><mml:mi>c</mml:mi></mml:msub><mml:mi>log⁡</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfenced><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
          where <inline-formula><mml:math id="M32" display="inline"><mml:mrow><mml:mi>H</mml:mi><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is the magnitude of the loss, <inline-formula><mml:math id="M33" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> is a set of category vectors
taken from the network output, <inline-formula><mml:math id="M34" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula> is a corresponding set of category
vectors from the labeled dataset, <inline-formula><mml:math id="M35" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula> is a per-category weight, <inline-formula><mml:math id="M36" display="inline"><mml:mi>I</mml:mi></mml:math></inline-formula> is the
number of vectors, and <inline-formula><mml:math id="M37" display="inline"><mml:mi>C</mml:mi></mml:math></inline-formula> is the number of categories. Each predicted and
label vector has five elements, one for each of the five possible<?pagebreak page150?> cold,
warm, stationary, occluded, and none categories. Each label vector is
assigned one and only one category by giving the appropriate element a value
of 1 and the others a value of 0. The elements of each predicted vector
contain values between 0 and 1, inclusive, which are the estimated category
likelihoods for that cell. The lower the likelihood value in the predicted
vector for the category marked as correct in the label vector, the larger
the contribution to the loss. The per-category weights are used to adjust
the relative significance of the contributions from the different
categories. Approximately 88 % of our data grid cells have no front
present, so the loss function is at risk of being dominated by the
contribution of the none category. Reducing the weight for the none
category relative to the weights for the other categories will make the loss
function less sensitive to that category. Similarly, increasing the weight
for a seldom-seen category will make the loss function more sensitive to
that category.</p>
      <p id="d1e745">The Adam adaptive moment estimation technique (Kingma and Ba, 2015) is the
loss minimization strategy used when training the network. Adam is a form of
stochastic gradient descent (SGD) that has been shown to perform well in a
variety of networks. As with most SGD techniques, Adam has a primary initial
learning rate parameter. The learning rate sets the initial magnitude range
of the changes to the network weights and biases.</p>
      <p id="d1e748">We implemented the DL-FRONT network in Python using numpy (van der Walt et
al., 2011) and the Keras deep learning library (Chollet, 2015) on both
Tensorflow (Abadi et al., 2015) and The Theano Development Team et al. (2016) (Bergstra, 2010)
computational backends. The training application made use of the
scikit-learn package (Pedregosa et al., 2011) to provide <inline-formula><mml:math id="M38" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula>-fold cross-validation
and hyperparameter search. The “outer” network parameters such as learning
rate, number of layers, etc. are referred to as hyperparameters. A
significant part of the time spent developing a NN is devoted to optimizing
the hyperparameters.</p>
      <p id="d1e758">We initially chose a network based on 2-D convolution layers with <inline-formula><mml:math id="M39" display="inline"><mml:mrow><mml:mn mathvariant="normal">5</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> kernels
because of the structural similarity we saw between a layer of this sort and
a finite-difference second-order spatial derivative function. The visual
front detection task described at the beginning of this section, if
expressed mathematically, can be thought of as synthesizing the results of
various spatial derivatives of the different input measurements at each
point in the data grid.</p>
      <p id="d1e773">We experimented with the basic architecture with a series of hyperparameter
searches using training runs of 100–200 epochs over a 1-year batch of
data. An epoch is one full pass through the training data. The experiments
used the scikit-learn GridSearchCV function to perform multiple training
runs, each with a different combination of learning rate, category weights,
number of 2-D convolution layers, sizes of layer kernels, and numbers of
filters in layer kernels. The hyperparameter combination from these
experiments that produced the best validation accuracy and loss was chosen
for training for 1200 epochs over 5 years of data. The details of these
experiments are outside the scope of this paper. The amount of time required
to do an exhaustive search of all hyperparameter combinations and ranges
makes such a task impractical. The highest accuracy and lowest loss in
training and validation out of the experiments we performed was with the
network described below.</p>
      <p id="d1e776">Figure 1 shows a schematic of the resulting DL-FRONT 2-D CNN architecture. At
the far left of the figure is the input data grid, which is composed of five
“feature maps” of 2-D meteorological fields (as compared to three feature
maps of 2-D color fields for an RGB image) on a 1<inline-formula><mml:math id="M40" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> geospatial grid.
These meteorological fields are 3-hourly instantaneous values of air
temperature at 2 m, specific humidity at 2 m, air pressure reduced
to mean sea level, the east–west (<inline-formula><mml:math id="M41" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>) component of wind velocity at 10 m,
and the north–south (<inline-formula><mml:math id="M42" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>) component of wind velocity at 10 m. The
meteorological fields were obtained from the Modern-Era Retrospective
Analysis for Research and Applications, Version 2 (MERRA-2; Gelaro et al.,
2017) and were sampled on a 1<inline-formula><mml:math id="M43" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> latitude–longitude grid over a
domain of 10–77<inline-formula><mml:math id="M44" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> N and 171–31<inline-formula><mml:math id="M45" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> W. We obtained 37 984 sets of grids for the time span 2003–2015.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F1"><?xmltex \currentcnt{1}?><label>Figure 1</label><caption><p id="d1e833">Schematic of the DL-FRONT 2-D CNN architecture. The five category
input data grid on the left contains the five input surface meteorological
2-D fields (temperature, humidity, pressure, <inline-formula><mml:math id="M46" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>-component of wind, <inline-formula><mml:math id="M47" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>-component of wind). The five-category output data grid on the right contains five 2-D likelihood estimates for the five front categories (cold, warm, stationary, occluded, and none).</p></caption>
          <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="https://ascmo.copernicus.org/articles/5/147/2019/ascmo-5-147-2019-f01.png"/>

        </fig>

      <p id="d1e856">The first network layer is a composite of a 2-D zero-padding layer, a <?xmltex \hack{\mbox\bgroup}?>2-D<?xmltex \hack{\egroup}?>
convolution layer with a <inline-formula><mml:math id="M48" display="inline"><mml:mrow><mml:mn mathvariant="normal">5</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> kernel and 80 filters, a ReLU activation layer,
and a 50 % 2-D dropout layer. The output of this layer is a data grid that
has the same spatial extent and 80 abstract feature maps. The next two
layers have the same basic structure, producing output data grids with 80
feature maps that have the same spatial extent as the original input data grid.</p>
      <p id="d1e875">The fourth network layer is different from the other three. This layer is a
composite of a 2-D zero-padding layer, a 2-D convolution layer with a <inline-formula><mml:math id="M49" display="inline"><mml:mrow><mml:mn mathvariant="normal">5</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula>
kernel and 5 filters, and a softmax activation layer. The output is a data
grid with 5<?pagebreak page151?> categories (cold, warm, stationary, occluded, and none) that has
the same spatial extent as the original input data grid.</p>
      <p id="d1e890">We found through our experiments that, compared to no weighting, setting the
category weight for the none category to 0.35 and the other weights to 1.0
improved the network accuracy for the other four categories without reducing
the performance for the none category. Inverse weighting based on category
frequency produced results that were worse than that for no weighting. We
also found that learning rates in the range of 0.00005 to 0.0005 produced
nearly identical network loss and accuracy. The final learning rate chosen
was 0.0001.</p>
</sec>
<sec id="Ch1.S3.SS2">
  <label>3.2</label><title>Front polyline extraction</title>
      <p id="d1e901">The output of the DL-FRONT 2-D CNN is a set of spatial grids that are, in
essence, maps of likelihood of the presence of the five different front
categories (cold, warm, stationary, occluded, and none). In order to use
these results in follow-on studies, we needed to obtain polylines describing
the locations of the front boundaries. We developed an application using
numpy (van der Walt et al., 2011) and scikit-image (van der Walt et al.,
2014) that traces out “ridgelines” of the likelihood fields for the
different front types and reduces them to a set of latitude–longitude
polylines labeled by front type.</p>
      <p id="d1e904">The extraction of front polylines from a front likelihood data grid was
initiated by creating a “one-hot” version of the data grid and an “any
front” likelihood data grid. The one-hot data grid is of the same
dimensions as the front likelihood data grid where each category vector in
the data grid is altered to set the largest likelihood value to 1 and the
other likelihood values to 0. This assigns a single front type (or “no
front”) to each cell of the data grid. The 2-D “any front” likelihood data
grid has the same spatial dimensions as the front likelihood data grid. The
value for a cell in the “any front” data grid is the maximum likelihood
value from the cold, warm, stationary, and occluded front elements of the
corresponding category vector. Cells where the maximum likelihood in the
corresponding category vector is for “no front” are set to 0. The “any
front” likelihood data grid describes networks of fronts which are often
connected and is used in the steps that follow because it helps ensure
continuity in cases where the front category may change along a continuous
boundary. For example, it is not uncommon for a front boundary to oscillate
between cold and stationary.</p>
      <p id="d1e907">Next, the divergence of the “any front” data grid at each cell in the grid
is calculated using multiple applications of the numpy gradient function.
All values in the divergence data grid greater than <inline-formula><mml:math id="M50" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.005</mml:mn></mml:mrow></mml:math></inline-formula> are then set to
zero, and a “mask” data grid is created that has a value of 1 wherever the
modified divergence data grid is non-zero. The resulting divergence data
grid has narrower features than the original data grid and tends to have
sharp minima lines running down the centers of the front boundary regions.</p>
      <p id="d1e920"><?xmltex \hack{\newpage}?>The scikit-image medial_axis function from the morphology
module is applied to produce a data grid of skeletonized front
networks. The skeletonized front networks have the same structure
as seen in the mask data grid, but they have been reduced to a width of one cell.</p>
      <p id="d1e925">At this point, the one-hot data grid is used to segment the skeletonized
front networks and divergence data grids, producing a pair of 3-D data grids
with a category dimension. Each skeletonized front network cell and
divergence value is now, in effect, labeled as belonging to a particular
front type.</p>
      <p id="d1e928">Each front type is processed in turn. For a given front type we use the
scikit-image label function from the measure module to identify each
separate contiguous piece of the skeletonized front network. For each piece
just found we find the endpoints of the segment and then find the set of
least-cost paths between those endpoints in the segmented divergence data
grid using scikit-image minimum cost path (MCP) functions from the graph
module. The result in each instance is a raster representation of a
polyline. We then convert the raster to a polyline with the minimum number
of vertices needed to reproduce the raster. Finally, the latitude and
longitude values for the vertices are obtained to produce latitude–longitude
polylines.</p>
      <p id="d1e931">Once this process is completed for the front likelihood data grid for a
single time step, we have a set of front boundary polylines for each front
in that data grid. We write the polylines for each time step into a separate
JSON file, identifying the time and organizing by front type. We now have a
dataset similar to the original form of our labeled dataset, which is
described in Sect. 3.3.</p>
</sec>
<sec id="Ch1.S3.SS3">
  <label>3.3</label><title>Labeled dataset</title>
      <p id="d1e942">Our labeled dataset was extracted from an archive of NWS Coded Surface
Bulletin (CSB) messages (National Weather Service, 2019). Each CSB message
contains lists of latitudes and longitudes that specify the locations of
pressure centers, fronts, and troughs identified by NWS meteorologists as
part of the 3-hourly operational North American surface analysis they
perform at the Weather Prediction Center (WPC). Each front or trough is
represented by a polyline. We obtained a nearly complete archive of 37 709 CSBs for 2003–2015 from the WPC and produced a data grid for each time step
by drawing the front lines into latitude–longitude grids that matched the
resolution and spatial extents of the MERRA-2 input data grids with one grid
per front category. Each front was drawn with a transverse extent of
3<inline-formula><mml:math id="M51" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> (3 grid cells) to account for the fact that a front is not a
zero-width line, and to add tolerances for possible transverse differences
in position between the CSB polylines and front signatures in the MERRA-2
dataset. The training, validation, and evaluation described in the Results
section were restricted to a region around North America (Fig. 2) where the
rate of front crossings recorded by the CSBs was at least 40 per year in
order to account for the focal nature of the WPC surface analyses.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F2"><?xmltex \currentcnt{2}?><label>Figure 2</label><caption><p id="d1e956">The mask applied to the data grids during training and evaluation.
The area in dark red is the envelope of the areas where the CSB dataset
shows that there are more than 40 front boundary crossings on average in
each spatial grid cell each year over the 2003–2015 time span of the CSB
dataset.</p></caption>
          <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="https://ascmo.copernicus.org/articles/5/147/2019/ascmo-5-147-2019-f02.png"/>

        </fig>

      <?pagebreak page152?><p id="d1e965">Initial algorithm development was done using the North American Regional
Reanalysis (NARR; Mesinger et al., 2006) data with a resolution of
<inline-formula><mml:math id="M52" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">32</mml:mn></mml:mrow></mml:math></inline-formula> km on a Lambert conformal conic coordinate reference
system (CRS) grid centered on North America. Because fronts are inherently
characterized by large spatial gradients normal to the front, our initial
hypothesis was that the best results would be achieved with the highest
available spatial resolution data. However, tests indicated that better
results were obtained by using a subset of grid points at a coarser
resolution of <inline-formula><mml:math id="M53" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">96</mml:mn></mml:mrow></mml:math></inline-formula> km (three NARR grid cells). We speculate
that the analysis of a larger spatial region is better able to detect the
differences between the two air masses demarcated by a front, particularly
when state variables change gradually across a frontal boundary. In such
cases, the natural spatial heterogeneity may mask the frontal signal at the
96 km (three NARR grid cells) spatial scale. We then trained with the MERRA-2 dataset, and
found that the validation accuracy and loss when training were better than
what we found with the NARR dataset. As a result, we switched to using
MERRA-2. We continued to use the NARR projected CRS grid for some later
analyses because the grid is centered on North America where the CSB data
coincide and the grid cells vary less in area.</p>
</sec>
<sec id="Ch1.S3.SS4">
  <label>3.4</label><title>Front crossing rate determination</title>
      <p id="d1e996">Frontal boundary crossing rates (the frequency of days on which fronts pass
a point location) were used as practical metrics for determining how well
DL-FRONT performs in comparison to the CSB labeled dataset. Comparisons of
monthly or seasonal front crossing rates over a spatial grid are much less
subject to minor differences in front location than comparisons of polylines
at individual time steps. These comparisons can also be used to analyze any
variations in results that depend on geographic location or time. The rates
were calculated for each front type and for the aggregate case of all front types.</p>
      <p id="d1e999">The monthly front crossing rate for a given front type and month was
calculated by selecting the appropriate front polylines from the 3-hourly
time steps for the month and accumulating front crossing counts in a spatial
grid with cells of approximately 96 km in size (three NARR grid cells). At each
time step, we determined which grid cells were intersected by the selected
front polylines and incremented counts for those grid cells. To keep slow-moving or stationary frontal boundaries from exaggerating the counts, we
implemented a 24 h blanking period. When the count in a grid cell was
incremented in a time step, any following intersections for that grid cell
were ignored for the next seven 3-hourly timesteps, the counts thus
representing “front days”. Once the month of counts was accumulated, the
rate in crossings per day for each grid cell was determined by dividing the
count by the number of time steps used and multiplying by 8. We
calculated “all fronts” rates by selecting the front polylines for all
types in each time step. We followed the same overall process to calculate
seasonal rates as well, using the standard meteorological seasons of
December–January–February, March–April–May, June–July–August, and
September–October–November.</p>
      <p id="d1e1002">By studying initial results using the CSB front polylines, we determined
that grid cells were regularly skipped when the polylines from successive
time steps were rasterized with a width of one grid cell. The rate at which
frontal boundaries move transverse to their length is often high enough that
two sets of width-one rasterized polylines from adjacent 3 h time
steps do not cover adjacent grid cells. This led to coverage gaps when
accumulating the front crossings for a single day where it was clear that
the fronts should be sweeping out contiguous regions. These gaps produced
spatial striping in the monthly and seasonal front crossing rate data grids,
with repeated bands of lower rate values visible in various locations across
the data grid. We found that if we rasterized our polylines with a width of
three grid cells the spatial striping effect disappeared. The 24 h
blanking period in our counting algorithm prevents overcounting if fronts
are moving slowly enough that the wider rasterized polylines overlap.</p>
</sec>
</sec>
<sec id="Ch1.S4">
  <label>4</label><title>Results</title>
<sec id="Ch1.S4.SS1">
  <label>4.1</label><title>Training</title>
      <p id="d1e1021">The final DL-FRONT network was trained with 14 353 input and labeled data
grid pairs (the number of time steps over the period with available CSB
data) covering the years 2003–2007 using 3-fold cross-validation. Each of
the three folds used 9568 (two-thirds of total) data grid pairs randomly
chosen from the full set and randomly ordered in time. Training stopped when
the loss did not improve for 100 epochs (passes through the training dataset), leading to training that lasted 1141, 1142, and 1136 epochs,
respectively. Figure 3 shows<?pagebreak page153?> loss and accuracy results of the training. The
training and accuracy curves indicate that the network training appears to
be converging on solutions that are not overfit to data and have an overall
categorical accuracy of near 90 % (percentage of CSB fronts identified by
DL-FRONT). Fold 3 produced the lowest loss and highest accuracy so those
weights were selected as the final result. We used the final result network
to generate 37 984 3-hourly front likelihood data grids covering the entire
2003–2015 time span.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F3"><?xmltex \currentcnt{3}?><label>Figure 3</label><caption><p id="d1e1026">The training loss <bold>(a)</bold> and training accuracy <bold>(b)</bold> for each training
epoch of the DL-FRONT NN over three cross-validation folds.</p></caption>
          <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="https://ascmo.copernicus.org/articles/5/147/2019/ascmo-5-147-2019-f03.png"/>

        </fig>

      <p id="d1e1041">A sample output of the DL-FRONT algorithm and the corresponding CSB front
locations for 1 August 2009 at noon UTC (a period not used in training)
is shown in Fig. 4. The DL-FRONT results are very similar to the CSB fronts
in terms of the general locations. There are spatial discrepancies that are
sometimes large enough that the front locations do not overlap, and there
are several discrepancies regarding the type of front. The DL-FRONT results
are missing a Pacific coast cold front and a western mountains stationary
front from the CSB observations. DL-FRONT identifies additional fronts in
the Pacific Ocean and on Baffin Island in the Arctic; these are beyond the
areas regularly analyzed for fronts by the National Weather Service shown in Fig. 2.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F4"><?xmltex \currentcnt{4}?><label>Figure 4</label><caption><p id="d1e1047">Side-by-side comparison of CSB <bold>(a)</bold> and DL-FRONT <bold>(b)</bold> front
boundaries for 1 August 2009 12:00:00. The CSB fronts were drawn three grid
cells wide. The intensities of the colors for the different front types in
the DL-FRONT image represents the likelihood value (from 0.0 to 1.0)
associated with each grid cell.</p></caption>
          <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="https://ascmo.copernicus.org/articles/5/147/2019/ascmo-5-147-2019-f04.png"/>

        </fig>

</sec>
<sec id="Ch1.S4.SS2">
  <label>4.2</label><title>Metrics</title>
      <p id="d1e1070">The trained network was evaluated by calculating the metrics discussed below
for both the 2003–2007 training data and the 2008–2015 validation data. We
combined the results for the four different front types to produce a
two-category front/no-front dataset and produced metrics for the same two
date ranges. The same region mask used for training was used when
calculating the metrics.</p>
<sec id="Ch1.S4.SS2.SSS1">
  <label>4.2.1</label><title>Actual and predicted grid cell counts</title>
      <p id="d1e1080">The percentage of grid cells in the five different types is shown in Table 1
for the CSB and DL-FRONT. In the CSB, the percentage of grid cells
categorized as front is in the range of 12.3 %–12.6 % for the training and
validation periods. The DL-FRONTS algorithm identifies fronts in
11.7 %–11.9 % of the grid cells. Thus, there is a slight undercount but
little difference between the training and validation periods. The
percentage of the different frontal types is similar between the CSB and
DL-FRONT except for warm fronts, which are undercounted by DL-FRONT. Table 1
also shows that there is a major asymmetry between the front type
categories, with <inline-formula><mml:math id="M54" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">88</mml:mn></mml:mrow></mml:math></inline-formula> % of the grid cells falling into the
no-front category.</p>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T1" specific-use="star"><?xmltex \currentcnt{1}?><label>Table 1</label><caption><p id="d1e1096">Counts of CSB and DL-FRONT grid cells within the region mask over
the training and validation time ranges and fraction of grid cells occupied
by different front types.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="5">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:colspec colnum="5" colname="col5" align="right"/>
     <oasis:thead>
       <oasis:row>

         <oasis:entry colname="col1"/>

         <oasis:entry colname="col2"/>

         <oasis:entry rowsep="1" colname="col3">2003–2007</oasis:entry>

         <oasis:entry rowsep="1" colname="col4">2008–2015</oasis:entry>

         <oasis:entry rowsep="1" colname="col5">2003–2015</oasis:entry>

       </oasis:row>
       <oasis:row rowsep="1">

         <oasis:entry colname="col1">Total</oasis:entry>

         <oasis:entry colname="col2"/>

         <oasis:entry colname="col3">65 679 328</oasis:entry>

         <oasis:entry colname="col4">106 877 056</oasis:entry>

         <oasis:entry colname="col5">172 556 384</oasis:entry>

       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>

         <oasis:entry rowsep="1" colname="col1" morerows="1">Cold</oasis:entry>

         <oasis:entry colname="col2">CSB</oasis:entry>

         <oasis:entry colname="col3">3.71 %</oasis:entry>

         <oasis:entry colname="col4">3.94 %</oasis:entry>

         <oasis:entry colname="col5">3.85 %</oasis:entry>

       </oasis:row>
       <oasis:row rowsep="1">

         <oasis:entry colname="col2">DL-FRONT</oasis:entry>

         <oasis:entry colname="col3">3.81 %</oasis:entry>

         <oasis:entry colname="col4">3.75 %</oasis:entry>

         <oasis:entry colname="col5">3.77 %</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry rowsep="1" colname="col1" morerows="1">Warm</oasis:entry>

         <oasis:entry colname="col2">CSB</oasis:entry>

         <oasis:entry colname="col3">1.65 %</oasis:entry>

         <oasis:entry colname="col4">1.82 %</oasis:entry>

         <oasis:entry colname="col5">1.75 %</oasis:entry>

       </oasis:row>
       <oasis:row rowsep="1">

         <oasis:entry colname="col2">DL-FRONT</oasis:entry>

         <oasis:entry colname="col3">1.16 %</oasis:entry>

         <oasis:entry colname="col4">1.17 %</oasis:entry>

         <oasis:entry colname="col5">1.16 %</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry rowsep="1" colname="col1" morerows="1">Stationary</oasis:entry>

         <oasis:entry colname="col2">CSB</oasis:entry>

         <oasis:entry colname="col3">5.34 %</oasis:entry>

         <oasis:entry colname="col4">5.23 %</oasis:entry>

         <oasis:entry colname="col5">5.27 %</oasis:entry>

       </oasis:row>
       <oasis:row rowsep="1">

         <oasis:entry colname="col2">DL-FRONT</oasis:entry>

         <oasis:entry colname="col3">5.31 %</oasis:entry>

         <oasis:entry colname="col4">5.20 %</oasis:entry>

         <oasis:entry colname="col5">5.24 %</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry rowsep="1" colname="col1" morerows="1">Occluded</oasis:entry>

         <oasis:entry colname="col2">CSB</oasis:entry>

         <oasis:entry colname="col3">1.59 %</oasis:entry>

         <oasis:entry colname="col4">1.60 %</oasis:entry>

         <oasis:entry colname="col5">1.60 %</oasis:entry>

       </oasis:row>
       <oasis:row rowsep="1">

         <oasis:entry colname="col2">DL-FRONT</oasis:entry>

         <oasis:entry colname="col3">1.61 %</oasis:entry>

         <oasis:entry colname="col4">1.58 %</oasis:entry>

         <oasis:entry colname="col5">1.59 %</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry rowsep="1" colname="col1" morerows="1">Any</oasis:entry>

         <oasis:entry colname="col2">CSB</oasis:entry>

         <oasis:entry colname="col3">12.29 %</oasis:entry>

         <oasis:entry colname="col4">12.58 %</oasis:entry>

         <oasis:entry colname="col5">12.47 %</oasis:entry>

       </oasis:row>
       <oasis:row rowsep="1">

         <oasis:entry colname="col2">DL-FRONT</oasis:entry>

         <oasis:entry colname="col3">11.89 %</oasis:entry>

         <oasis:entry colname="col4">11.70 %</oasis:entry>

         <oasis:entry colname="col5">11.77 %</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col1" morerows="1">None</oasis:entry>

         <oasis:entry colname="col2">CSB</oasis:entry>

         <oasis:entry colname="col3">87.713 %</oasis:entry>

         <oasis:entry colname="col4">87.42 %</oasis:entry>

         <oasis:entry colname="col5">87.53 %</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col2">DL-FRONT</oasis:entry>

         <oasis:entry colname="col3">88.11 %</oasis:entry>

         <oasis:entry colname="col4">88.30 %</oasis:entry>

         <oasis:entry colname="col5">88.23 %</oasis:entry>

       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

</sec>
<sec id="Ch1.S4.SS2.SSS2">
  <label>4.2.2</label><title>Categorical accuracy</title>
      <p id="d1e1362">The categorical accuracy is a measure of the fraction of instances where the
neural network predicted category matches the actual category for some set
of samples. This is the sum of the diagonal elements of the confusion matrix
(see below) divided by the total number of cells. The results for the full
output and front/no-front output for the two time ranges are shown in Table 2. The results appear to indicate that there is no appreciable reduction in
neural network performance with the validation dataset compared to the
training dataset.</p>
      <p id="d1e1365">The large asymmetry between the no-front category and the other categories
reduces the utility of this metric, since a<?pagebreak page154?> network that identified all grid
cells as falling in the no-front category would achieve a categorical
accuracy of <inline-formula><mml:math id="M55" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">87.7</mml:mn></mml:mrow></mml:math></inline-formula> % (the same values seen in the “None”
column in Table 1). Comparison of the per-category counts in Table 1 shows
that this is not the case.</p>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T2"><?xmltex \currentcnt{2}?><label>Table 2</label><caption><p id="d1e1381">Categorical accuracy values over the training and validation time
ranges for the case where all categories are considered independent and the
simplified front/no-front case.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="3">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Year range</oasis:entry>
         <oasis:entry colname="col2">All categories</oasis:entry>
         <oasis:entry colname="col3">Front/no-front</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">2008–2015</oasis:entry>
         <oasis:entry colname="col2">88.00 %</oasis:entry>
         <oasis:entry colname="col3">89.85 %</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">2003–2007</oasis:entry>
         <oasis:entry colname="col2">88.53 %</oasis:entry>
         <oasis:entry colname="col3">90.15 %</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

</sec>
<sec id="Ch1.S4.SS2.SSS3">
  <label>4.2.3</label><title>Confusion matrices</title>
      <p id="d1e1445">Confusion matrix statistics were collected for both date ranges for the full
results and the simplified front/no-front results. Table 3a and b show the
full results presented as fractions of total cells for each front category
and both date ranges. Table 4a and b show the front/no-front results as
fractions of total cells for both date ranges.</p>
      <p id="d1e1448">The confusion matrices confirm the results found in Tables 1 and 2. The most
prominent type of confusion is identifying a cell which is an actual front
cell as no-front. This occurs at a similar frequency as the correct
identification of an actual front cell. While this level of
misidentification seems high, further analysis indicates that many of these
erroneous classifications are due to differences in the location of fronts
rather than not detecting the front. In addition, in those cases in which
an actual front cell is identified as a front but of the wrong type, the
mistyping is found in two clusters: confusion between stationary fronts and
warm fronts and between stationary fronts and cold fronts.</p>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T3" specific-use="star"><?xmltex \currentcnt{3}?><label>Table 3</label><caption><p id="d1e1454"><bold>(a)</bold> The confusion matrix as percentages of total grid cells for all
front categories over the 2008–2015 validation time range. <bold>(b)</bold> The confusion matrix as percentages of total grid cells for all front categories over the 2003–2007 training time range.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="7">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:colspec colnum="5" colname="col5" align="right"/>
     <oasis:colspec colnum="6" colname="col6" align="right"/>
     <oasis:colspec colnum="7" colname="col7" align="right"/>
     <oasis:thead>
       <oasis:row>
         <oasis:entry colname="col1"><bold>(a)</bold></oasis:entry>
         <oasis:entry colname="col2"/>
         <oasis:entry rowsep="1" namest="col3" nameend="col7" align="center">Predicted </oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2"/>
         <oasis:entry colname="col3">Cold</oasis:entry>
         <oasis:entry colname="col4">Warm</oasis:entry>
         <oasis:entry colname="col5">Stationary</oasis:entry>
         <oasis:entry colname="col6">Occluded</oasis:entry>
         <oasis:entry colname="col7">None</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">Cold</oasis:entry>
         <oasis:entry colname="col3">1.87 %</oasis:entry>
         <oasis:entry colname="col4">0.03 %</oasis:entry>
         <oasis:entry colname="col5">0.43 %</oasis:entry>
         <oasis:entry colname="col6">0.07 %</oasis:entry>
         <oasis:entry colname="col7">1.54 %</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">Warm</oasis:entry>
         <oasis:entry colname="col3">0.11 %</oasis:entry>
         <oasis:entry colname="col4">0.50 %</oasis:entry>
         <oasis:entry colname="col5">0.28 %</oasis:entry>
         <oasis:entry colname="col6">0.12 %</oasis:entry>
         <oasis:entry colname="col7">0.80 %</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Actual</oasis:entry>
         <oasis:entry colname="col2">Stationary</oasis:entry>
         <oasis:entry colname="col3">0.38 %</oasis:entry>
         <oasis:entry colname="col4">0.15 %</oasis:entry>
         <oasis:entry colname="col5">2.11 %</oasis:entry>
         <oasis:entry colname="col6">0.06 %</oasis:entry>
         <oasis:entry colname="col7">2.53 %</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">Occluded</oasis:entry>
         <oasis:entry colname="col3">0.10 %</oasis:entry>
         <oasis:entry colname="col4">0.04 %</oasis:entry>
         <oasis:entry colname="col5">0.06 %</oasis:entry>
         <oasis:entry colname="col6">0.74 %</oasis:entry>
         <oasis:entry colname="col7">0.64 %</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">None</oasis:entry>
         <oasis:entry colname="col3">1.29 %</oasis:entry>
         <oasis:entry colname="col4">0.44 %</oasis:entry>
         <oasis:entry colname="col5">2.31 %</oasis:entry>
         <oasis:entry colname="col6">0.59 %</oasis:entry>
         <oasis:entry colname="col7">82.79 %</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><bold>(b)</bold></oasis:entry>
         <oasis:entry colname="col2"/>
         <oasis:entry rowsep="1" namest="col3" nameend="col7" align="center">Predicted </oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2"/>
         <oasis:entry colname="col3">Cold</oasis:entry>
         <oasis:entry colname="col4">Warm</oasis:entry>
         <oasis:entry colname="col5">Stationary</oasis:entry>
         <oasis:entry colname="col6">Occluded</oasis:entry>
         <oasis:entry colname="col7">None</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">Cold</oasis:entry>
         <oasis:entry colname="col3">1.86 %</oasis:entry>
         <oasis:entry colname="col4">0.03 %</oasis:entry>
         <oasis:entry colname="col5">0.34 %</oasis:entry>
         <oasis:entry colname="col6">0.07 %</oasis:entry>
         <oasis:entry colname="col7">1.41 %</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">Warm</oasis:entry>
         <oasis:entry colname="col3">0.09 %</oasis:entry>
         <oasis:entry colname="col4">0.51 %</oasis:entry>
         <oasis:entry colname="col5">0.23 %</oasis:entry>
         <oasis:entry colname="col6">0.11 %</oasis:entry>
         <oasis:entry colname="col7">0.72 %</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Actual</oasis:entry>
         <oasis:entry colname="col2">Stationary</oasis:entry>
         <oasis:entry colname="col3">0.38 %</oasis:entry>
         <oasis:entry colname="col4">0.12 %</oasis:entry>
         <oasis:entry colname="col5">2.42 %</oasis:entry>
         <oasis:entry colname="col6">0.06 %</oasis:entry>
         <oasis:entry colname="col7">2.37 %</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">Occluded</oasis:entry>
         <oasis:entry colname="col3">0.11 %</oasis:entry>
         <oasis:entry colname="col4">0.04 %</oasis:entry>
         <oasis:entry colname="col5">0.06 %</oasis:entry>
         <oasis:entry colname="col6">0.75 %</oasis:entry>
         <oasis:entry colname="col7">0.63 %</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">None</oasis:entry>
         <oasis:entry colname="col3">1.37 %</oasis:entry>
         <oasis:entry colname="col4">0.45 %</oasis:entry>
         <oasis:entry colname="col5">2.27 %</oasis:entry>
         <oasis:entry colname="col6">0.63 %</oasis:entry>
         <oasis:entry colname="col7">82.99 %</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T4"><?xmltex \currentcnt{4}?><label>Table 4</label><caption><p id="d1e1806"><bold>(a)</bold> The confusion matrix as percentages of total grid cells for the
simplified front/no-front categories over the 2008–2015 validation time
range. <bold>(b)</bold> The confusion matrix as percentages of total grid cells for the
simplified front/no-front categories over the 2003–2007 training time
range.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="4">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:thead>
       <oasis:row>

         <oasis:entry colname="col1"><bold>(a)</bold></oasis:entry>

         <oasis:entry colname="col2"/>

         <oasis:entry rowsep="1" namest="col3" nameend="col4" align="center">Predicted </oasis:entry>

       </oasis:row>
       <oasis:row rowsep="1">

         <oasis:entry colname="col1"/>

         <oasis:entry colname="col2"/>

         <oasis:entry colname="col3">Front</oasis:entry>

         <oasis:entry colname="col4">None</oasis:entry>

       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>

         <oasis:entry rowsep="1" colname="col1" morerows="1">Actual</oasis:entry>

         <oasis:entry colname="col2">Front</oasis:entry>

         <oasis:entry colname="col3">7.06 %</oasis:entry>

         <oasis:entry colname="col4">5.52 %</oasis:entry>

       </oasis:row>
       <oasis:row rowsep="1">

         <oasis:entry colname="col2">None</oasis:entry>

         <oasis:entry colname="col3">4.63 %</oasis:entry>

         <oasis:entry colname="col4">82.79 %</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col1"><bold>(b)</bold></oasis:entry>

         <oasis:entry colname="col2"/>

         <oasis:entry rowsep="1" namest="col3" nameend="col4" align="center">Predicted </oasis:entry>

       </oasis:row>
       <oasis:row rowsep="1">

         <oasis:entry colname="col1"/>

         <oasis:entry colname="col2"/>

         <oasis:entry colname="col3">Front</oasis:entry>

         <oasis:entry colname="col4">None</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col1" morerows="1">Actual</oasis:entry>

         <oasis:entry colname="col2">Front</oasis:entry>

         <oasis:entry colname="col3">7.16 %</oasis:entry>

         <oasis:entry colname="col4">5.13 %</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col2">None</oasis:entry>

         <oasis:entry colname="col3">4.72 %</oasis:entry>

         <oasis:entry colname="col4">82.99 %</oasis:entry>

       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

</sec>
<sec id="Ch1.S4.SS2.SSS4">
  <label>4.2.4</label><title>Receiver operating characteristic (ROC) and precision–recall curves</title>
      <p id="d1e1948">The receiver operating characteristic (ROC) curve is a plot of the true
positive rate (TPR) as a function of the false positive rate (FPR) as the
threshold for a network output to qualify as positive is varied. The TPR is
the number of correctly predicted positives divided by the number of actual
positives, and the FPR is the number of incorrectly predicted positives
divided by the number of actual negatives. ROC curves were developed for
binary solutions, ones where there are only two categories, so the curves
displayed here were produced using the simplified front/no-front categories.</p>
      <p id="d1e1951">Figure 5a shows the ROC curve for the DL-FRONT network for both the
2003–2007 training and 2008–2015 validation periods. The curves were
produced by multiplying the no-front category likelihood values by a factor
that varied from 0 to large enough that all grid cells were labeled as
no-front. The multiplying factor is displayed next to the corresponding
points on the curves.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F5"><?xmltex \currentcnt{5}?><label>Figure 5</label><caption><p id="d1e1956">Receiver operating characteristic curves <bold>(a)</bold> and precision–recall
curves <bold>(b)</bold> for the simplified front/no-front categories over the 2008–2015
validation and 2003–2007 training time ranges.</p></caption>
            <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="https://ascmo.copernicus.org/articles/5/147/2019/ascmo-5-147-2019-f05.png"/>

          </fig>

      <p id="d1e1972">An ideal ROC curve would rise with near infinite slope from the origin to a
true positive value of 1 as the threshold is reduced from infinite (which
causes all cells to be marked as no-front) to any finite value, then
changing immediately to a slope of zero and remaining at a true positive
rate value of 1 as the threshold is reduced to zero (which causes all cells
to be marked as front). Such a curve has an area under the curve (AUC) of 1.
The closer an ROC curve comes to that ideal, the better the overall
performance of the network. A network producing random results would have an
ROC<?pagebreak page155?> curve like the blue dashed line in Fig. 5a, with the number of false
positives matching the number of true positives for all threshold values.</p>
      <p id="d1e1975">The ROC curves (Fig. 5a) again confirm that the performance of the network
on the validation dataset is quite similar to the performance on the
training dataset. They also show that the native performance of the network
(threshold value of 1.0) lies on the conservative side of the ROC curves,
with a true positive rate that is relatively high while maintaining a small
false positive rate. The AUC value of 0.90 is considered to indicate good
system performance.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F6"><?xmltex \currentcnt{6}?><label>Figure 6</label><caption><p id="d1e1980">Maps of seasonal front crossing rate climatologies (2003–2015)
for the CSB and DL-FRONT datasets.</p></caption>
            <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="https://ascmo.copernicus.org/articles/5/147/2019/ascmo-5-147-2019-f06.png"/>

          </fig>

      <p id="d1e1989">Precision–recall curves are another way to characterize the performance of
binary machine learning solutions. In this case, the precision (the number
of correctly predicted positives divided by the number of predicted
positives) is plotted against the recall (the number of correctly predicted
positives divided by the number of actual positives) as the threshold for
marking a grid cell as positive is varied. The precision for the infinite
threshold case cannot be measured, as the denominator will go to zero, so
the precision for the largest practical threshold is typically reused for
the infinite threshold case. An ideal precision–recall curve would have a
precision value of 1 for all recall values. Precision–recall curves are
considered to be less biased by large asymmetry between the categories, as
opposed to ROC curves, which tend to present overly optimistic views of
system performance when the categories are asymmetric.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F7"><?xmltex \currentcnt{7}?><label>Figure 7</label><caption><p id="d1e1994">Scatter plots comparing the DL-FRONT and CSB seasonal front rate
climatologies over the CONUS-centered ROI.</p></caption>
            <?xmltex \igopts{width=241.848425pt}?><graphic xlink:href="https://ascmo.copernicus.org/articles/5/147/2019/ascmo-5-147-2019-f07.png"/>

          </fig>

      <p id="d1e2004">Figure 5b shows the precision–recall curves for the validation and training
datasets for the simplified front/no-front categories. The dashed blue line
indicates the “no skill” random performance curve. If the categories were
symmetric, the “no skill” level would be at a precision of 0.5. The curves
are, again, almost identical, and the native network solution (threshold of
1) is in the region of the curve that maximizes both precision and recall.
The network appears to be performing well.</p>
</sec>
</sec>
</sec>
<sec id="Ch1.S5">
  <label>5</label><title>Climatological analysis</title>
      <p id="d1e2018">The polyline extraction application was run to obtain front polylines from
the full DL-FRONT front likelihoods dataset. The result was a front polyline
dataset covering the same 2003–2015 time span as the CSB dataset. The CSB
and DL-FRONT polylines were then used to calculate corresponding sets of
monthly front crossing rates on the NARR Lambert Conformal Conic CRS 96 km <inline-formula><mml:math id="M56" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 96 km spatial grid. Monthly and seasonal front crossing rates were
calculated for both datasets for each front type and for the simplified
front/no-front case. The front crossing rates were used to calculate monthly
and seasonal climatologies using the entire 13-year<?pagebreak page156?> span. Figure 6 shows
maps of the CSB and DL-FRONT MERRA-2 seasonal front/no-front rate
climatologies for a rectangular region of interest (ROI) centered over the
contiguous United States (CONUS). The use of this region minimizes edge
effects produced by the uneven spatial coverage of the CSB dataset. The
regions of zero rate in the southwest and southeast corners of the maps are
the result of applying the mask shown in Fig. 2. The maps show a large
degree of similarity between the seasonal front crossing rates calculated
using the human-created and DLNN-generated fronts.</p>
      <p id="d1e2028">Figure 7 shows scatter plots comparing the values shown in each pair of maps
in Fig. 6. Each scatter plot displays the one-to-one correlation line, a
line displaying the mean of the differences between the paired DL-FRONT and
CSB front crossing rate values, and a pair of lines that delineate <inline-formula><mml:math id="M57" display="inline"><mml:mrow><mml:mo>±</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula>
standard deviations of the differences. The Pearson's correlation
coefficient for each distribution is greater than 0.94 in every case,
indicating a high degree of correlation. While most paired grid point values
are within 10 % of each other, some pairs differ by considerably more. The
<inline-formula><mml:math id="M58" display="inline"><mml:mrow><mml:mo>±</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> standard deviation limits, which encompass 98 % of DL-FRONT
MERRA-2 grid point climatology values, are <inline-formula><mml:math id="M59" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">0.5</mml:mn></mml:mrow></mml:math></inline-formula> front
crossings every week, compared to CSB climatology values centered around 2–3
fronts every week, indicating that some grid point pairs differ by about
20 % or more.</p>
      <p id="d1e2061">Kunkel et al. (2012) performed an analysis of the meteorological causes of
daily extreme precipitation events at individual stations. One of their
categories was fronts. Trained meteorologists categorized each event
visually from a set of weather maps. They found that about half of all
events occurred near fronts. In that study (led by the second author of this
paper), the distance from event to front was not quantified because the
judgments were all made visually. However, we estimate that an event within
300 km of a front would have usually been classified as a frontal event.
There were 3191 frontal events for the period of overlap between that study
and the MERRA-2 DL-FRONT data generated here: 1980–2013. For each of the
3191 events, the distance to the nearest MERRA-2 event was determined.
Figure 8 shows the cumulative distribution function of the distances to
fronts. Approximately 97 % of the events are within 200 km of a MERRA-2
front. The results are very similar for all seasons. While these results are
not purely quantitative because of the<?pagebreak page157?> “expert judgment” nature of the
Kunkel et al. (2012) study, they do suggest that DL-FRONT is effective at
identifying the “weather-producing” fronts.</p>
      <p id="d1e2064">Figure 9 compares the results of taking spatial averages of the CSB and
DL-FRONT MERRA-2 monthly front/no-front rate climatologies over the CONUS
ROI of Fig. 6. The spatial averages track each other quite closely, with the
values always falling within <inline-formula><mml:math id="M60" display="inline"><mml:mrow><mml:mo>±</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> standard deviation of each other.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F8"><?xmltex \currentcnt{8}?><label>Figure 8</label><caption><p id="d1e2080">The cumulative distribution of the number of extreme precipitation
events caused by fronts from Kunkel et al. (2012) as a function of the
distance to the nearest front identified by DL-FRONT in MERRA-2 for
1980–2013.</p></caption>
        <?xmltex \igopts{width=241.848425pt}?><graphic xlink:href="https://ascmo.copernicus.org/articles/5/147/2019/ascmo-5-147-2019-f08.png"/>

      </fig>

      <?xmltex \floatpos{t}?><fig id="Ch1.F9"><?xmltex \currentcnt{9}?><label>Figure 9</label><caption><p id="d1e2091">Comparison of the front/no-front CSB and DL-FRONT MERRA-2 monthly
front crossing rate climatologies spatially averaged across the entire CONUS
ROI.</p></caption>
        <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="https://ascmo.copernicus.org/articles/5/147/2019/ascmo-5-147-2019-f09.png"/>

      </fig>

      <p id="d1e2100">Temporal variability was assessed by averaging the monthly front/no-front
crossing rates over the entire CONUS ROI. Monthly crossing rates were
expressed as anomalies from the monthly climatology values. A comparison of
the time series of monthly crossing rates (Fig. 10) indicates good agreement
with an <inline-formula><mml:math id="M61" display="inline"><mml:mi>r</mml:mi></mml:math></inline-formula> value of 0.70 (<inline-formula><mml:math id="M62" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">0.01</mml:mn></mml:mrow></mml:math></inline-formula>). Both time series have relatively
low values during 2008–2010 with higher values on either side of that time
period. However, the CSB time series has a statistically significant (<inline-formula><mml:math id="M63" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">0.01</mml:mn></mml:mrow></mml:math></inline-formula>) upward trend while the MERRA-2 trend is essentially zero.
Since 2012, the CSB has been higher than MERRA-2 in most months. The reasons
for this are not known and beyond the scope of this study.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F10"><?xmltex \currentcnt{10}?><label>Figure 10</label><caption><p id="d1e2136">Monthly time series of the domain-average frontal crossing rate
anomalies for CSB and for MERRA-2 analyzed by DL-FRONT.</p></caption>
        <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="https://ascmo.copernicus.org/articles/5/147/2019/ascmo-5-147-2019-f10.png"/>

      </fig>

</sec>
<sec id="Ch1.S6" sec-type="conclusions">
  <label>6</label><title>Discussion and conclusions</title>
      <p id="d1e2153">A two-dimensional convolutional neural network (CNN) was trained with 5 years
(2003–2007) of manually analyzed fronts to develop an algorithm (DL-FRONT)
for the automatic detection of fronts from surface fields of five atmospheric
variables: temperature, specific humidity, pressure, and the two components
of the wind vector. An analysis of the period 2003–2015 indicates that
DL-FRONT detects nearly 90 % of the manually analyzed fronts over North
America and adjacent coastal ocean areas. An analysis of fronts associated
with extreme precipitation events suggests that the detection rate may be
higher for important weather-producing fronts. Our immediate application for
this algorithm is the detection of fronts that are associated with<?pagebreak page158?> extreme
precipitation. The superior performance for that subset of fronts gives us
confidence that it is appropriate for application to our project needs.</p>
      <p id="d1e2156">One advantage of using deep learning methods to develop a fronts detection
algorithm is that it is straightforward to add additional fields. Training
the algorithm is computationally intensive, making it impractical to change
the input fields often, but it does not require any fundamental
restructuring of the problem. An additional advantage is that this approach
can capitalize on future advances in the field of deep learning. One
potential disadvantage is that the algorithm does not explicitly incorporate
a physical understanding in the form of an equation, as most previous
methods do. Thus, it is difficult to diagnose poor performance from
fundamental principles.</p>
      <p id="d1e2159">Since DL-FRONT was trained on a North American dataset, its level of
suitability for global applications is untested. However, the basic frontal
structure of extratropical cyclones is global. On that basis, we expect that
DL-FRONT will detect most fronts, and certainly most fronts accompanied by
significant weather. However, where local topography plays a role in frontal
orientation or other characteristics, its performance may be worse. An
example of topographic influence is the front range of the Rocky Mountains
where fronts often “hang up”. Noteworthy in this regard, our training
dataset contains this region and it performs quite well in detecting these
(Fig. 6). However, in other parts of the globe where topography affects
front characteristics in other ways, this may not be the case. Early
attempts to include a static elevation map in each input data grid did not
provide any improvement in training, so its use was abandoned.</p>
      <p id="d1e2162">As noted earlier, Sanders (2005) argues that the identification of features
with no horizontal density difference as fronts is not acceptable since
density differences are required to produce key dynamical characteristics of
ETCs. Since CSB will include some unknown percentage of such fronts and
since our input fields include wind and pressure, DL-FRONT will not exclude
the detection of such boundaries.</p>
      <p id="d1e2166">A comparison of the results of this method with one or more of the other
methods that have been proposed and developed was beyond the scope of this
project. The expanding number of approaches suggests that an intercomparison
project of different algorithms would be potentially fruitful. A barrier to
such a project is the lack of a curated labeled dataset that is global in
extent. While users should be
cognizant of its potential limitations, the CSB could serve that purpose for North America.</p>
</sec>

      
      </body>
    <back><notes notes-type="dataavailability"><title>Data availability</title>

      <p id="d1e2173">The data used in this study can be obtained through a few different
channels. The MERRA-2 datasets used may be obtained from the NASA Goddard Earth
Sciences (GES) Data and Information Services Center (DISC). The URL for the
GES DISC is <uri>https://disc.gsfc.nasa.gov/</uri> (last access: April 2019; Global Modeling and Assimilation Office, 2019). The specific subset of
MERRA-2 used is the 2d, 1-Hourly, Instantaneous, Single-Level, Assimilation,
Single-Level Diagnostics V5.12.4. We used the variables QV2M, SLP, T2M,
U10M, and V10M remapped by bicubic interpolation to a 1<inline-formula><mml:math id="M64" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> <inline-formula><mml:math id="M65" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 1<inline-formula><mml:math id="M66" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> latitude–longitude grid.</p>

      <p id="d1e2204">The CSB dataset that we obtained from the NWS has been deposited in Zenodo
in three different forms. It is available in its original ASCII form at
<ext-link xlink:href="https://doi.org/10.5281/zenodo.2642801" ext-link-type="DOI">10.5281/zenodo.2642801</ext-link>, in JSON format at <ext-link xlink:href="https://doi.org/10.5281/zenodo.2646544" ext-link-type="DOI">10.5281/zenodo.2646544</ext-link> (Biard, 2019a),
and as rasterized data grids in netCDF format at <ext-link xlink:href="https://doi.org/10.5281/zenodo.2651361" ext-link-type="DOI">10.5281/zenodo.2651361</ext-link> (Biard, 2019b).
This dataset is available under the Creative Commons Attribution-ShareAlike
4.0 international license.</p>

      <p id="d1e2216">The fronts dataset produced by applying the trained DL-FRONT NN to the
MERRA-2 dataset has been deposited in Zenodo. It is available in a number of
different forms in multiple deposits. The front likelihood data grids and
the one-hot version of the data grids in netCDF format are available at
<ext-link xlink:href="https://doi.org/10.5281/zenodo.2641072" ext-link-type="DOI">10.5281/zenodo.2641072</ext-link> (Biard and Kunkel, 2019a), the front polylines in JSON format at
<ext-link xlink:href="https://doi.org/10.5281/zenodo.2669180" ext-link-type="DOI">10.5281/zenodo.2669180</ext-link> (Biard and Kunkel, 2019b), and the front polylines as rasterized data grids
in netCDF format at <ext-link xlink:href="https://doi.org/10.5281/zenodo.2669505" ext-link-type="DOI">10.5281/zenodo.2669505</ext-link> (Biard and Kunkel, 2019c). These datasets are available
under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0
international license.</p>

      <p id="d1e2228">Various front processing and analysis artifacts, such as spreadsheets
containing the values used to produce various graphs, have also been
deposited in Zenodo. They are available at <ext-link xlink:href="https://doi.org/10.5281/zenodo.2712481" ext-link-type="DOI">10.5281/zenodo.2712481</ext-link> (Biard and Kunkel, 2019d). This
includes a movie showing the rasterized CSB fronts side-by-side with
DL-FRONT front likelihoods for each 3-hourly time step in the year 2009.
This dataset is available under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 international license.</p>
  </notes><notes notes-type="authorcontribution"><title>Author contributions</title>

      <p id="d1e2237">KEK conceived the research goal of developing an automated
means to find front boundaries and provided management and scientific
supervision with support from Michael<?pagebreak page159?> Wehner. JCB developed the
software and carried out the bulk of the
data processing, analysis, and visualization. JCB and KEK
prepared the paper.</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

      <p id="d1e2243">The authors declare that they have no conflict of interest.</p>
  </notes><ack><title>Acknowledgements</title><p id="d1e2249">This project took advantage of netCDF software developed by
UCAR/Unidata (<ext-link xlink:href="https://doi.org/10.5065/D6H70CW6" ext-link-type="DOI">10.5065/D6H70CW6</ext-link>). The work
benefited from discussions with Evan Racah, Mr Prahbat, and
Michael Wehner. Scott Stevens also provided valuable assistance.</p></ack><notes notes-type="financialsupport"><title>Financial support</title>

      <p id="d1e2257">This research has been supported by the
Strategic Environmental Research and Development Program
(grant no. W912HQ-15-C-0010) and by NOAA
through the Cooperative Institute for Climate and Satellites –
North Carolina under cooperative agreement NA14NES432003.</p>
  </notes><notes notes-type="reviewstatement"><title>Review statement</title>

      <p id="d1e2263">This paper was edited by William Hsieh and reviewed by Orhun Aydin and one anonymous referee.</p>
  </notes><ref-list>
    <title>References</title>

      <ref id="bib1.bib1"><label>1</label><?label 1?><mixed-citation>Abadi, M., Agarwal, A., Barham, P., Brevdo, E., Chen, Z., Citro, C.,
Corrado, G. S., Davis, A., Dean, J., Devin, M., and Ghemawat, S.: TensorFlow:
Large-scale machine learning on heterogeneous systems, available at: <uri>https://www.tensorflow.org/</uri> (last access: April 2019), 2015.</mixed-citation></ref>
      <ref id="bib1.bib2"><label>2</label><?label 1?><mixed-citation>American Meteorological Society Glossary of Meteorology: Front, available at:  <uri>http://glossary.ametsoc.org/wiki/Fronts</uri>, last access: 27 March 2019.</mixed-citation></ref>
      <ref id="bib1.bib3"><label>3</label><?label 1?><mixed-citation>Biard, J. C.: Coded Surface Bulletin (JSON format), Zenodo,
<ext-link xlink:href="https://doi.org/10.5281/zenodo.2646544" ext-link-type="DOI">10.5281/zenodo.2646544</ext-link>, 2019a.</mixed-citation></ref>
      <ref id="bib1.bib4"><label>4</label><?label 1?><mixed-citation>Biard, J. C.: Coded Surface Bulletin (netCDF format), Zenodo,
<ext-link xlink:href="https://doi.org/10.5281/zenodo.2651361" ext-link-type="DOI">10.5281/zenodo.2651361</ext-link>, 2019b.</mixed-citation></ref>
      <ref id="bib1.bib5"><label>5</label><?label 1?><mixed-citation>Biard, J. C. and Kunkel, K. E.: DL-FRONT MERRA-2 weather front probability
maps over North America, Zenodo, <ext-link xlink:href="https://doi.org/10.5281/zenodo.2641072" ext-link-type="DOI">10.5281/zenodo.2641072</ext-link>, 2019a.</mixed-citation></ref>
      <ref id="bib1.bib6"><label>6</label><?label 1?><mixed-citation>Biard, J. C. and Kunkel, K. E.: DL-FRONT MERRA-2 vectorized weather fronts
over North America (JSON format), Zenodo, <ext-link xlink:href="https://doi.org/10.5281/zenodo.2669180" ext-link-type="DOI">10.5281/zenodo.2669180</ext-link>, 2019b.</mixed-citation></ref>
      <ref id="bib1.bib7"><label>7</label><?label 1?><mixed-citation>Biard, J. C. and Kunkel, K. E.: DL-FRONT MERRA-2 vectorized weather fronts
over North America (netCDF format), Zenodo, <ext-link xlink:href="https://doi.org/10.5281/zenodo.2669505" ext-link-type="DOI">10.5281/zenodo.2669505</ext-link>,
2019c.</mixed-citation></ref>
      <ref id="bib1.bib8"><label>8</label><?label 1?><mixed-citation>Biard, J. C. and Kunkel, K. E.: DL-FRONT MERRA-2 weather front processing and
analysis artifacts, Zenodo, <ext-link xlink:href="https://doi.org/10.5281/zenodo.2712481" ext-link-type="DOI">10.5281/zenodo.2712481</ext-link>, 2019d.</mixed-citation></ref>
      <ref id="bib1.bib9"><label>9</label><?label 1?><mixed-citation>
Bergstra, J., Breuleux, O., Bastien, F., Lamblin, P., Pascanu, R.,
Desjardins, G., Turian, J., Warde-Farley, D., and Bengio, Y.: Theano: A CPU
and GPU Math Expression Compiler. Proceedings of the Python for Scientific
Computing Conference (SciPy) 2010, 2010.</mixed-citation></ref>
      <ref id="bib1.bib10"><label>10</label><?label 1?><mixed-citation>Berry, G., Reeder, M. J., and Jakob, C.: A global climatology of atmospheric
fronts, Geophys. Res. Lett., 38, L04809, <ext-link xlink:href="https://doi.org/10.1029/2010GL046451" ext-link-type="DOI">10.1029/2010GL046451</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bib11"><label>11</label><?label 1?><mixed-citation>Catto, J. L., Jakob, C., Berry, G., and Nicholls, N.: Relating global
precipitation to atmospheric fronts, Geophys. Res. Lett., 39, L10805,
<ext-link xlink:href="https://doi.org/10.1029/2012GL051736" ext-link-type="DOI">10.1029/2012GL051736</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bib12"><label>12</label><?label 1?><mixed-citation>Chollet, F.: Keras: The Python Deep Learning library, available at: <uri>https://keras.io</uri> (last access: April 2019), 2015.</mixed-citation></ref>
      <ref id="bib1.bib13"><label>13</label><?label 1?><mixed-citation>Cybenko, G.: Approximation by Superpositions of a Sigmoidal Function, Math.
Control Sig. Syst., 2, 303–314, <ext-link xlink:href="https://doi.org/10.1007/BF02551274" ext-link-type="DOI">10.1007/BF02551274</ext-link>, 1989.</mixed-citation></ref>
      <ref id="bib1.bib14"><label>14</label><?label 1?><mixed-citation>Deng, L. and Yu, D.: Deep learning: methods and applications, Found.
Trends<sup>®</sup> Sig. Process., 7, 197–387,
<ext-link xlink:href="https://doi.org/10.1561/2000000039" ext-link-type="DOI">10.1561/2000000039</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bib15"><label>15</label><?label 1?><mixed-citation>Gelaro, R., McCarty, W., Suárez, M. J., Todling, R., Molod, A., Takacs,
L., Randles, C. A., Darmenov, A., Bosilovich, M. G., Reichle, R., Wargan, K.,
Coy, L., Cullather, R., Draper, C., Akella, S., Buchard, V., Conaty, A., da
Silva, A. M., Gu, W., Kim, G., Koster, R., Lucchesi, R., Merkova, D.,
Nielsen, J. E., Partyka, G., Pawson, S., Putman, W., Rienecker, M., Schubert,
S. D., Sienkiewicz, M., and Zhao, B.: The Modern-Era Retrospective Analysis
for Research and Applications, Version 2 (MERRA-2), J. Climate, 30,
5419–5454, <ext-link xlink:href="https://doi.org/10.1175/JCLI-D-16-0758.1" ext-link-type="DOI">10.1175/JCLI-D-16-0758.1</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bib16"><label>16</label><?label 1?><mixed-citation>Global Modeling and Assimilation Office: MERRA-2 inst1_2d_asm_Nx:
2d,1-Hourly,Instantaneous,Single-Level,Assimilation,Single-Level Diagnostics
V5.12.4, Goddard Earth Sciences Data and Information Services Center,
<ext-link xlink:href="https://doi.org/10.5067/3Z173KIE2TPD" ext-link-type="DOI">10.5067/3Z173KIE2TPD</ext-link>,  2019.</mixed-citation></ref>
      <ref id="bib1.bib17"><label>17</label><?label 1?><mixed-citation>
Goodfellow, I., Bengio, Y., and Courville, A.: Deep Learning, MIT press,
Cambridge, MA, USA, 2016.</mixed-citation></ref>
      <ref id="bib1.bib18"><label>18</label><?label 1?><mixed-citation>Hewson, T. D.: Objective Fronts, Meteorol. Appl., 5, 37–65, <ext-link xlink:href="https://doi.org/10.1017/S1350482798000553" ext-link-type="DOI">10.1017/S1350482798000553</ext-link>, 1998,</mixed-citation></ref>
      <ref id="bib1.bib19"><label>19</label><?label 1?><mixed-citation>
Hinton, G. E., Srivastava, N., Krizhevsky, A., Sutskever, I., and
Salakhutdinov, R. R.: Improving neural networks by preventing
co-adaptation of feature detectors, arXiv preprint, arXiv:1207.0580v1
[cs.NE], 2012.</mixed-citation></ref>
      <ref id="bib1.bib20"><label>20</label><?label 1?><mixed-citation>
Huang, Y., Li, Q., Fan, Y., and Dai, X.: Objective Identification of Trough
Lines Using Gridded Wind Field Data, Atmosphere, 8, 121, 2017.</mixed-citation></ref>
      <ref id="bib1.bib21"><label>21</label><?label 1?><mixed-citation>Jenkner, J., Sprenger, M., Schwenk, I., Schwierz, C., Dierer, S., and
Leuenberger, D.: Detection and climatology of fronts in a high-resolution
model reanalysis over the Alps, Meteorol. Appl., 17, 1–18,
<ext-link xlink:href="https://doi.org/10.1002/met.142" ext-link-type="DOI">10.1002/met.142</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bib22"><label>22</label><?label 1?><mixed-citation>
Kingma, D. and Ba, J.: Adam: a method for stochastic optimization, arXiv
preprint, arXiv:1412.6980, 15, 2015.</mixed-citation></ref>
      <ref id="bib1.bib23"><label>23</label><?label 1?><mixed-citation>
Kolmogorov, A. N.: On the representation of continuous functions of many
variables by superposition of continuous functions of one variable and
addition, Dokl. Akad. Nauk SSSR, 114. 953–956, 1957.</mixed-citation></ref>
      <ref id="bib1.bib24"><label>24</label><?label 1?><mixed-citation>
Kunkel, K. E., Easterling, D. R., Kristovich, D. A. R., Gleason, B., Stoecker,
L., and Smith, R.: Meteorological causes of the secular variations in
observed extreme precipitation events for the conterminous United States, J.
Hydromet., 13, 1131–1141, 2012.</mixed-citation></ref>
      <ref id="bib1.bib25"><label>25</label><?label 1?><mixed-citation>Mesinger, F., DiMego, G., Kalnay, E., Mitchell, K., Shafran, P. C.,
Ebisuzaki, W., Jović, D., Woollen, J., Rogers, E., Berbery, E. H., Ek,
M. B., Fan, Y., Grumbin, R., Higgins, W., Li, H., Lin, Y., Manikin, G.,
Parrish, D., and Shi, W.: Nort<?pagebreak page160?>h American Regional Reanalysis, B.
Am. Meteorol. Soc., 87, 343–360,
<ext-link xlink:href="https://doi.org/10.1175/BAMS-87-3-343" ext-link-type="DOI">10.1175/BAMS-87-3-343</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bib26"><label>26</label><?label 1?><mixed-citation>National Weather Service: Coded Surface Bulletin, Zenodo,
<ext-link xlink:href="https://doi.org/10.5281/zenodo.2642801" ext-link-type="DOI">10.5281/zenodo.2642801</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bib27"><label>27</label><?label 1?><mixed-citation>Neilsen, M. A.: Neural Networks and Deep Learning, Determination Press,
available at: <uri>http://neuralnetworksanddeeplearning.com</uri> (last access: 7 July 2019), 2015.</mixed-citation></ref>
      <ref id="bib1.bib28"><label>28</label><?label 1?><mixed-citation>Parfitt, R., Czaja, A., and Seo, H.: A simple diagnostic for the detection
of atmospheric fronts, Geophys. Res. Lett., 44, 4351–4358,
<ext-link xlink:href="https://doi.org/10.1002/2017GL073662" ext-link-type="DOI">10.1002/2017GL073662</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bib29"><label>29</label><?label 1?><mixed-citation>
Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel,
O., Blondel, M., Prettenhofer, P., Weiss, R., Dubourg, V., Vanderplas, J.,
Passos, A., Cournapeau, D., Perrot, M., and Duchesnay, É.: Scikit-learn:
Machine Learning in Python, J. Machine Learn. Res., 12,
2825–2830, 2011.</mixed-citation></ref>
      <ref id="bib1.bib30"><label>30</label><?label 1?><mixed-citation>Sanders, F. and Hoffman, E. G.: A Climatology of Surface Baroclinic Zones,
Weather Forecast., 17, 774–782, <ext-link xlink:href="https://doi.org/10.1175/1520-0434(2002)017&lt;0774:ACOSBZ&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0434(2002)017&lt;0774:ACOSBZ&gt;2.0.CO;2</ext-link>, 2002.</mixed-citation></ref>
      <ref id="bib1.bib31"><label>31</label><?label 1?><mixed-citation>Sanders, F.: Real Front or Baroclinic Trough?, Weather Forecast., 20,
647–651, <ext-link xlink:href="https://doi.org/10.1175/WAF846.1" ext-link-type="DOI">10.1175/WAF846.1</ext-link>, 2005.</mixed-citation></ref>
      <ref id="bib1.bib32"><label>32</label><?label 1?><mixed-citation>Schemm, S., Rudeva, I., and Simmonds, I.: Extratropical fronts in the lower
troposphere – global perspectives obtained from two automated methods,
Q. J. Roy. Meteorol. Soc., 141, 1686–1698, 2015.
 </mixed-citation></ref><?xmltex \hack{\newpage}?>
      <ref id="bib1.bib33"><label>33</label><?label 1?><mixed-citation>Simmonds, I., Keay, K., and Bye, J. A. T.: Identification and climatology of
Southern Hemisphere mobile fronts in a modern reanalysis, J.
Climate, 25, 1945–1962, <ext-link xlink:href="https://doi.org/10.1175/JCLI-D-11-00100.1" ext-link-type="DOI">10.1175/JCLI-D-11-00100.1</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bib34"><label>34</label><?label 1?><mixed-citation>
Stull, R.: Practical Meteorology: An Algebra-based Survey of Atmospheric
Science, University of British Columbia, Vancouver, British Columbia,
Canada, 2015.</mixed-citation></ref>
      <ref id="bib1.bib35"><label>35</label><?label 1?><mixed-citation>
The Theano Development Team, Al-Rfou, R., Alain, G., Almahairi, A.,
Angermueller, C., Bahdanau, D., Ballas, N., Bastien, F., Bayer, J., Belikov,
A., and Belopolsky, A.: Theano: A Python framework for fast computation of
mathematical expressions, arXiv preprint, arXiv:1605.02688, 2016.</mixed-citation></ref>
      <ref id="bib1.bib36"><label>36</label><?label 1?><mixed-citation>van der Walt S. S., Chris Colbert, S. C., and Varoquaux, G.: The NumPy Array:
A Structure for Efficient Numerical Computation, Comput. Sci.
Eng., 13, 22–30, <ext-link xlink:href="https://doi.org/10.1109/MCSE.2011.37" ext-link-type="DOI">10.1109/MCSE.2011.37</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bib37"><label>37</label><?label 1?><mixed-citation>van der Walt, S., Schönberger, J. L., Nunez-Iglesias, J., Boulogne, F.,
Warner, J. D., Yager, N., Gouillart, E., and Yu, T.: scikit-image: image
processing in Python, PeerJ, 2, e453, <ext-link xlink:href="https://doi.org/10.7717/peerj.453" ext-link-type="DOI">10.7717/peerj.453</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bib38"><label>38</label><?label 1?><mixed-citation>Wong, K. Y., Yip, C. L., and Li, P. W.: Automatic identification of weather
systems from numerical weather prediction data using genetic algorithm,
Expert Syst. Appl., 35, 542–555,
<ext-link xlink:href="https://doi.org/10.1016/j.eswa.2007.07.032" ext-link-type="DOI">10.1016/j.eswa.2007.07.032</ext-link>, 2008.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>Automated detection of weather fronts using a deep learning neural network</article-title-html>
<abstract-html><p>Deep learning (DL) methods were used to develop an algorithm to
automatically detect weather fronts in fields of atmospheric surface
variables. An algorithm (DL-FRONT) for the automatic detection of fronts was
developed by training a two-dimensional convolutional neural network (2-D CNN)
with 5 years (2003–2007) of manually analyzed fronts and surface fields
of five atmospheric variables: temperature, specific humidity, mean sea
level pressure, and the two components of the wind vector. An analysis of
the period 2008–2015 indicates that DL-FRONT detects nearly 90&thinsp;% of the
manually analyzed fronts over North America and adjacent coastal ocean
areas. An analysis of fronts associated with extreme precipitation events
shows that the detection rate may be substantially higher for important
weather-producing fronts. Since DL-FRONT was trained on a North American
dataset, its extensibility to other parts of the globe has not been tested,
but the basic frontal structure of extratropical cyclones has been applied
to global daily weather maps for decades. On that basis, we expect that
DL-FRONT will detect most fronts, and certainly most fronts with significant
weather. However, where complex terrain plays a role in frontal orientation
or other characteristics, it might be less successful.</p></abstract-html>
<ref-html id="bib1.bib1"><label>1</label><mixed-citation>
Abadi, M., Agarwal, A., Barham, P., Brevdo, E., Chen, Z., Citro, C.,
Corrado, G. S., Davis, A., Dean, J., Devin, M., and Ghemawat, S.: TensorFlow:
Large-scale machine learning on heterogeneous systems, available at: <a href="https://www.tensorflow.org/" target="_blank"/> (last access: April 2019), 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>2</label><mixed-citation>
American Meteorological Society Glossary of Meteorology: Front, available at:  <a href="http://glossary.ametsoc.org/wiki/Fronts" target="_blank"/>, last access: 27 March 2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>3</label><mixed-citation>
Biard, J. C.: Coded Surface Bulletin (JSON format), Zenodo,
<a href="https://doi.org/10.5281/zenodo.2646544" target="_blank">https://doi.org/10.5281/zenodo.2646544</a>, 2019a.
</mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>4</label><mixed-citation>
Biard, J. C.: Coded Surface Bulletin (netCDF format), Zenodo,
<a href="https://doi.org/10.5281/zenodo.2651361" target="_blank">https://doi.org/10.5281/zenodo.2651361</a>, 2019b.
</mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>5</label><mixed-citation>
Biard, J. C. and Kunkel, K. E.: DL-FRONT MERRA-2 weather front probability
maps over North America, Zenodo, <a href="https://doi.org/10.5281/zenodo.2641072" target="_blank">https://doi.org/10.5281/zenodo.2641072</a>, 2019a.
</mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>6</label><mixed-citation>
Biard, J. C. and Kunkel, K. E.: DL-FRONT MERRA-2 vectorized weather fronts
over North America (JSON format), Zenodo, <a href="https://doi.org/10.5281/zenodo.2669180" target="_blank">https://doi.org/10.5281/zenodo.2669180</a>, 2019b.
</mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>7</label><mixed-citation>
Biard, J. C. and Kunkel, K. E.: DL-FRONT MERRA-2 vectorized weather fronts
over North America (netCDF format), Zenodo, <a href="https://doi.org/10.5281/zenodo.2669505" target="_blank">https://doi.org/10.5281/zenodo.2669505</a>,
2019c.
</mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>8</label><mixed-citation>
Biard, J. C. and Kunkel, K. E.: DL-FRONT MERRA-2 weather front processing and
analysis artifacts, Zenodo, <a href="https://doi.org/10.5281/zenodo.2712481" target="_blank">https://doi.org/10.5281/zenodo.2712481</a>, 2019d.
</mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>9</label><mixed-citation>
Bergstra, J., Breuleux, O., Bastien, F., Lamblin, P., Pascanu, R.,
Desjardins, G., Turian, J., Warde-Farley, D., and Bengio, Y.: Theano: A CPU
and GPU Math Expression Compiler. Proceedings of the Python for Scientific
Computing Conference (SciPy) 2010, 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>10</label><mixed-citation>
Berry, G., Reeder, M. J., and Jakob, C.: A global climatology of atmospheric
fronts, Geophys. Res. Lett., 38, L04809, <a href="https://doi.org/10.1029/2010GL046451" target="_blank">https://doi.org/10.1029/2010GL046451</a>, 2011.
</mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>11</label><mixed-citation>
Catto, J. L., Jakob, C., Berry, G., and Nicholls, N.: Relating global
precipitation to atmospheric fronts, Geophys. Res. Lett., 39, L10805,
<a href="https://doi.org/10.1029/2012GL051736" target="_blank">https://doi.org/10.1029/2012GL051736</a>, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>12</label><mixed-citation>
Chollet, F.: Keras: The Python Deep Learning library, available at: <a href="https://keras.io" target="_blank"/> (last access: April 2019), 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>13</label><mixed-citation>
Cybenko, G.: Approximation by Superpositions of a Sigmoidal Function, Math.
Control Sig. Syst., 2, 303–314, <a href="https://doi.org/10.1007/BF02551274" target="_blank">https://doi.org/10.1007/BF02551274</a>, 1989.
</mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>14</label><mixed-citation>
Deng, L. and Yu, D.: Deep learning: methods and applications, Found.
Trends<span style="position:relative; bottom:0.5em; " class="text">®</span> Sig. Process., 7, 197–387,
<a href="https://doi.org/10.1561/2000000039" target="_blank">https://doi.org/10.1561/2000000039</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>15</label><mixed-citation>
Gelaro, R., McCarty, W., Suárez, M. J., Todling, R., Molod, A., Takacs,
L., Randles, C. A., Darmenov, A., Bosilovich, M. G., Reichle, R., Wargan, K.,
Coy, L., Cullather, R., Draper, C., Akella, S., Buchard, V., Conaty, A., da
Silva, A. M., Gu, W., Kim, G., Koster, R., Lucchesi, R., Merkova, D.,
Nielsen, J. E., Partyka, G., Pawson, S., Putman, W., Rienecker, M., Schubert,
S. D., Sienkiewicz, M., and Zhao, B.: The Modern-Era Retrospective Analysis
for Research and Applications, Version 2 (MERRA-2), J. Climate, 30,
5419–5454, <a href="https://doi.org/10.1175/JCLI-D-16-0758.1" target="_blank">https://doi.org/10.1175/JCLI-D-16-0758.1</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>16</label><mixed-citation>
Global Modeling and Assimilation Office: MERRA-2 inst1_2d_asm_Nx:
2d,1-Hourly,Instantaneous,Single-Level,Assimilation,Single-Level Diagnostics
V5.12.4, Goddard Earth Sciences Data and Information Services Center,
<a href="https://doi.org/10.5067/3Z173KIE2TPD" target="_blank">https://doi.org/10.5067/3Z173KIE2TPD</a>,  2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>17</label><mixed-citation>
Goodfellow, I., Bengio, Y., and Courville, A.: Deep Learning, MIT press,
Cambridge, MA, USA, 2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>18</label><mixed-citation>
Hewson, T. D.: Objective Fronts, Meteorol. Appl., 5, 37–65, <a href="https://doi.org/10.1017/S1350482798000553" target="_blank">https://doi.org/10.1017/S1350482798000553</a>, 1998,
</mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>19</label><mixed-citation>
Hinton, G. E., Srivastava, N., Krizhevsky, A., Sutskever, I., and
Salakhutdinov, R. R.: Improving neural networks by preventing
co-adaptation of feature detectors, arXiv preprint, arXiv:1207.0580v1
[cs.NE], 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>20</label><mixed-citation>
Huang, Y., Li, Q., Fan, Y., and Dai, X.: Objective Identification of Trough
Lines Using Gridded Wind Field Data, Atmosphere, 8, 121, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>21</label><mixed-citation>
Jenkner, J., Sprenger, M., Schwenk, I., Schwierz, C., Dierer, S., and
Leuenberger, D.: Detection and climatology of fronts in a high-resolution
model reanalysis over the Alps, Meteorol. Appl., 17, 1–18,
<a href="https://doi.org/10.1002/met.142" target="_blank">https://doi.org/10.1002/met.142</a>, 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>22</label><mixed-citation>
Kingma, D. and Ba, J.: Adam: a method for stochastic optimization, arXiv
preprint, arXiv:1412.6980, 15, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>23</label><mixed-citation>
Kolmogorov, A. N.: On the representation of continuous functions of many
variables by superposition of continuous functions of one variable and
addition, Dokl. Akad. Nauk SSSR, 114. 953–956, 1957.
</mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>24</label><mixed-citation>
Kunkel, K. E., Easterling, D. R., Kristovich, D. A. R., Gleason, B., Stoecker,
L., and Smith, R.: Meteorological causes of the secular variations in
observed extreme precipitation events for the conterminous United States, J.
Hydromet., 13, 1131–1141, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>25</label><mixed-citation>
Mesinger, F., DiMego, G., Kalnay, E., Mitchell, K., Shafran, P. C.,
Ebisuzaki, W., Jović, D., Woollen, J., Rogers, E., Berbery, E. H., Ek,
M. B., Fan, Y., Grumbin, R., Higgins, W., Li, H., Lin, Y., Manikin, G.,
Parrish, D., and Shi, W.: North American Regional Reanalysis, B.
Am. Meteorol. Soc., 87, 343–360,
<a href="https://doi.org/10.1175/BAMS-87-3-343" target="_blank">https://doi.org/10.1175/BAMS-87-3-343</a>, 2006.
</mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>26</label><mixed-citation>
National Weather Service: Coded Surface Bulletin, Zenodo,
<a href="https://doi.org/10.5281/zenodo.2642801" target="_blank">https://doi.org/10.5281/zenodo.2642801</a>, 2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>27</label><mixed-citation>
Neilsen, M. A.: Neural Networks and Deep Learning, Determination Press,
available at: <a href="http://neuralnetworksanddeeplearning.com" target="_blank"/> (last access: 7 July 2019), 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib28"><label>28</label><mixed-citation>
Parfitt, R., Czaja, A., and Seo, H.: A simple diagnostic for the detection
of atmospheric fronts, Geophys. Res. Lett., 44, 4351–4358,
<a href="https://doi.org/10.1002/2017GL073662" target="_blank">https://doi.org/10.1002/2017GL073662</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>29</label><mixed-citation>
Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel,
O., Blondel, M., Prettenhofer, P., Weiss, R., Dubourg, V., Vanderplas, J.,
Passos, A., Cournapeau, D., Perrot, M., and Duchesnay, É.: Scikit-learn:
Machine Learning in Python, J. Machine Learn. Res., 12,
2825–2830, 2011.
</mixed-citation></ref-html>
<ref-html id="bib1.bib30"><label>30</label><mixed-citation>
Sanders, F. and Hoffman, E. G.: A Climatology of Surface Baroclinic Zones,
Weather Forecast., 17, 774–782, <a href="https://doi.org/10.1175/1520-0434(2002)017&lt;0774:ACOSBZ&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0434(2002)017&lt;0774:ACOSBZ&gt;2.0.CO;2</a>, 2002.
</mixed-citation></ref-html>
<ref-html id="bib1.bib31"><label>31</label><mixed-citation>
Sanders, F.: Real Front or Baroclinic Trough?, Weather Forecast., 20,
647–651, <a href="https://doi.org/10.1175/WAF846.1" target="_blank">https://doi.org/10.1175/WAF846.1</a>, 2005.
</mixed-citation></ref-html>
<ref-html id="bib1.bib32"><label>32</label><mixed-citation>
Schemm, S., Rudeva, I., and Simmonds, I.: Extratropical fronts in the lower
troposphere – global perspectives obtained from two automated methods,
Q. J. Roy. Meteorol. Soc., 141, 1686–1698, 2015.

</mixed-citation></ref-html>
<ref-html id="bib1.bib33"><label>33</label><mixed-citation>
Simmonds, I., Keay, K., and Bye, J. A. T.: Identification and climatology of
Southern Hemisphere mobile fronts in a modern reanalysis, J.
Climate, 25, 1945–1962, <a href="https://doi.org/10.1175/JCLI-D-11-00100.1" target="_blank">https://doi.org/10.1175/JCLI-D-11-00100.1</a>, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib34"><label>34</label><mixed-citation>
Stull, R.: Practical Meteorology: An Algebra-based Survey of Atmospheric
Science, University of British Columbia, Vancouver, British Columbia,
Canada, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib35"><label>35</label><mixed-citation>
The Theano Development Team, Al-Rfou, R., Alain, G., Almahairi, A.,
Angermueller, C., Bahdanau, D., Ballas, N., Bastien, F., Bayer, J., Belikov,
A., and Belopolsky, A.: Theano: A Python framework for fast computation of
mathematical expressions, arXiv preprint, arXiv:1605.02688, 2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib36"><label>36</label><mixed-citation>
van der Walt S. S., Chris Colbert, S. C., and Varoquaux, G.: The NumPy Array:
A Structure for Efficient Numerical Computation, Comput. Sci.
Eng., 13, 22–30, <a href="https://doi.org/10.1109/MCSE.2011.37" target="_blank">https://doi.org/10.1109/MCSE.2011.37</a>, 2011.
</mixed-citation></ref-html>
<ref-html id="bib1.bib37"><label>37</label><mixed-citation>
van der Walt, S., Schönberger, J. L., Nunez-Iglesias, J., Boulogne, F.,
Warner, J. D., Yager, N., Gouillart, E., and Yu, T.: scikit-image: image
processing in Python, PeerJ, 2, e453, <a href="https://doi.org/10.7717/peerj.453" target="_blank">https://doi.org/10.7717/peerj.453</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib38"><label>38</label><mixed-citation>
Wong, K. Y., Yip, C. L., and Li, P. W.: Automatic identification of weather
systems from numerical weather prediction data using genetic algorithm,
Expert Syst. Appl., 35, 542–555,
<a href="https://doi.org/10.1016/j.eswa.2007.07.032" target="_blank">https://doi.org/10.1016/j.eswa.2007.07.032</a>, 2008.
</mixed-citation></ref-html>--></article>
