<!DOCTYPE html>
<!-- Generated by pkgdown: do not edit by hand --><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Add a Direction Field to an Existing Map (TRIAL VERSION as of 2024-03-21) — mapDirectionFieldNEW • oce</title><!-- jquery --><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script><!-- Bootstrap --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha256-bZLfwXAP04zRMK2BjiO8iu9pf4FbLqX6zitd+tIvLhE=" crossorigin="anonymous"><script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha256-nuL8/2cJ5NDSSwnKD8VqreErSWHtnEP9E7AySL+1ev4=" crossorigin="anonymous"></script><!-- bootstrap-toc --><link rel="stylesheet" href="../bootstrap-toc.css"><script src="../bootstrap-toc.js"></script><!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous"><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- pkgdown --><link href="../pkgdown.css" rel="stylesheet"><script src="../pkgdown.js"></script><meta property="og:title" content="Add a Direction Field to an Existing Map (TRIAL VERSION as of 2024-03-21) — mapDirectionFieldNEW"><meta property="og:description" content="Plot a direction field on a existing map, either using arrows,
which is the oceanographic convention, or using wind barbs, which
is a meteorological convention."><!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]--></head><body data-spy="scroll" data-target="#toc">
    

    <div class="container template-reference-topic">
      <header><div class="navbar navbar-default navbar-fixed-top" role="navigation">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <span class="navbar-brand">
        <a class="navbar-link" href="../index.html">oce</a>
        <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="">1.8-3</span>
      </span>
    </div>

    <div id="navbar" class="navbar-collapse collapse">
      <ul class="nav navbar-nav"><li>
  <a href="../reference/index.html">Reference</a>
</li>
<li class="dropdown">
  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
    Articles
     
    <span class="caret"></span>
  </a>
  <ul class="dropdown-menu" role="menu"><li>
      <a href="../articles/A_oce.html">1. Introduction to Oce</a>
    </li>
    <li>
      <a href="../articles/B_ctd.html">2. Analysis of CTD data</a>
    </li>
    <li>
      <a href="../articles/C_adp.html">3. Analysis of acoustic-Doppler data</a>
    </li>
    <li>
      <a href="../articles/D_map_projections.html">4. Using map projections</a>
    </li>
    <li>
      <a href="../articles/E_flags.html">5. Dealing with data-quality flags</a>
    </li>
    <li>
      <a href="../articles/F_subclassing.html">6. Subclassing oce objects</a>
    </li>
    <li>
      <a href="../articles/G_altering_defaults.html">7. Altering oce Defaults</a>
    </li>
  </ul></li>
<li>
  <a href="../news/index.html">Changelog</a>
</li>
      </ul><ul class="nav navbar-nav navbar-right"><li>
  <a href="https://github.com/dankelley/oce/" class="external-link">
    <span class="fab fa-github fa-lg"></span>
     
  </a>
</li>
      </ul></div><!--/.nav-collapse -->
  </div><!--/.container -->
</div><!--/.navbar -->

      

      </header><div class="row">
  <div class="col-md-9 contents">
    <div class="page-header">
    <h1>Add a Direction Field to an Existing Map (TRIAL VERSION as of 2024-03-21)</h1>
    <small class="dont-index">Source: <a href="https://github.com/dankelley/oce/blob/HEAD/R/mapDirectionFieldNEW.R" class="external-link"><code>R/mapDirectionFieldNEW.R</code></a></small>
    <div class="hidden name"><code>mapDirectionFieldNEW.Rd</code></div>
    </div>

    <div class="ref-description">
    <p>Plot a direction field on a existing map, either using arrows,
which is the oceanographic convention, or using wind barbs, which
is a meteorological convention.</p>
    </div>

    <div id="ref-usage">
    <div class="sourceCode"><pre class="sourceCode r"><code><span><span class="fu">mapDirectionFieldNEW</span><span class="op">(</span></span>
<span>  <span class="va">longitude</span>,</span>
<span>  <span class="va">latitude</span>,</span>
<span>  <span class="va">u</span>,</span>
<span>  <span class="va">v</span>,</span>
<span>  scale <span class="op">=</span> <span class="fl">1</span>,</span>
<span>  <span class="va">length</span>,</span>
<span>  code <span class="op">=</span> <span class="fl">2</span>,</span>
<span>  lwd <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/graphics/par.html" class="external-link">par</a></span><span class="op">(</span><span class="st">"lwd"</span><span class="op">)</span>,</span>
<span>  col <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/graphics/par.html" class="external-link">par</a></span><span class="op">(</span><span class="st">"fg"</span><span class="op">)</span>,</span>
<span>  debug <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/options.html" class="external-link">getOption</a></span><span class="op">(</span><span class="st">"oceDebug"</span><span class="op">)</span></span>
<span><span class="op">)</span></span></code></pre></div>
    </div>

    <div id="arguments">
    <h2>Arguments</h2>
    <dl><dt>longitude, latitude</dt>
<dd><p>numeric vectors of the starting points
for arrows, or the locations of grid cells.</p></dd>


<dt>u, v</dt>
<dd><p>numeric vectors or matrices holding the components of a
vector to be shown as a direction field.</p></dd>


<dt>scale</dt>
<dd><p>an indication of the length of the arrows or lines.
For the "arrow" style, this is arrow length in latitude degrees per
unit of velocity.  For the "barb" style, this is the length of all
lines, regardless of the velocity, because in this style velocity
is indicated with barbs and pennants.</p></dd>


<dt>length</dt>
<dd><p>an indication of the size of arrow heads, for "arrow"
style, or of the barbs, for "barb" style. If not provided, 0.05
will be used for the "arrow" style, and 0.2 for the "barb" style.</p></dd>


<dt>code</dt>
<dd><p>an indication of the style of arrow heads or barbs. For
the arrow style, this is a number that is passed to <code><a href="https://rdrr.io/r/graphics/arrows.html" class="external-link">arrows()</a></code>,
with reasonable values being 0, 1 and 2. For the wind-barb style,
this is the string <code>"barb"</code>.</p></dd>


<dt>lwd</dt>
<dd><p>line width of symbols.</p></dd>


<dt>col</dt>
<dd><p>color of symbols.</p></dd>


<dt>debug</dt>
<dd><p>an integer specifying whether debugging information is
to be printed during the processing. This is a general parameter that
is used by many <code>oce</code> functions. Generally, setting <code>debug=0</code>
turns off the printing, while higher values suggest that more information
be printed. If one function calls another, it usually reduces the value of
<code>debug</code> first, so that a user can often obtain deeper debugging
by specifying higher <code>debug</code> values.</p></dd>

</dl></div>
    <div id="details">
    <h2>Details</h2>
    <p>As noted in the “Description”, there are two styles. 1.
<em>Arrow Style:</em> arrows are drawn from the stated locations in the
direction of the flow defined by the (u,v) vector. This is the
usual convention in oceanographic work. 2. <em>Barb Style:</em> to create
"wind barbs", according to a convention used in meteorological
charts. Unlike arrows, which indicate speed by the arrow length,
barbs indicate speed by angled lines and possibly triangles located
at the upstream end. Note that the meanings of the function
parameters vary across the two styles.</p>
<p>The "arrow" style is quite common in the oceanographic literature.
Arrows point in the direction of the velocity defined by <code>(u,v)</code>,
and the length of those arrows is proportional to the speed,
<code>sqrt(u^2+v^2)</code>.</p>
<p>By contrast, in the "barb" notation, the lines are of equal length
(compared with distance on the ground), with speed being indicated
with barbs. Many sources explain the notation, e.g.
https://www.weather.gov/hfo/windbarbinfo. The lines extend from the
observation longitude and latitude in the direction opposite to the
velocity. Velocities are indicated by barbs, i.e. short line
segments that extend at an angle to the main line and with pennants
(triangles). Speed is given by a combination of pennants and barbs.
A pennant represents 50 speed units, a long barb 10 units, and a
short barb 5 units.  Summing these values gives the speed, rounded
to 5 units.</p>
<p>See “Details” for a comparison of the "arrow" and "barb"
styles for some made-up velocity data.</p>
<p>There are two possibilities for how <code>longitude</code>, <code>latitude</code> are
combined with <code>u</code> and <code>v</code>.</p><ol><li><p>All four are vectors, and the matching is one-to-one. This is
useful for showing velocities at particular individual locations,
as in the “Examples”.</p></li>
<li><p><code>longitude</code> and <code>latitude</code> are vectors, while <code>u</code> and <code>v</code> are
matrices.  In this case, the lengths of <code>longitude</code> and <code>latitude</code>
must equal the number of rows and columns in <code>u</code> and <code>v</code>,
respectively.</p></li>
</ol></div>
    <div id="see-also">
    <h2>See also</h2>
    <div class="dont-index"><p>A map must first have been created with <code><a href="mapPlot.html">mapPlot()</a></code>.</p>
<p>Other functions related to maps: 
<code><a href="formatPosition.html">formatPosition</a>()</code>,
<code><a href="lonlat2map.html">lonlat2map</a>()</code>,
<code><a href="lonlat2utm.html">lonlat2utm</a>()</code>,
<code><a href="map2lonlat.html">map2lonlat</a>()</code>,
<code><a href="mapArrows.html">mapArrows</a>()</code>,
<code><a href="mapAxis.html">mapAxis</a>()</code>,
<code><a href="mapContour.html">mapContour</a>()</code>,
<code><a href="mapCoordinateSystem.html">mapCoordinateSystem</a>()</code>,
<code><a href="mapDirectionField.html">mapDirectionField</a>()</code>,
<code><a href="mapGrid.html">mapGrid</a>()</code>,
<code><a href="mapImage.html">mapImage</a>()</code>,
<code><a href="mapLines.html">mapLines</a>()</code>,
<code><a href="mapLocator.html">mapLocator</a>()</code>,
<code><a href="mapLongitudeLatitudeXY.html">mapLongitudeLatitudeXY</a>()</code>,
<code><a href="mapPlot.html">mapPlot</a>()</code>,
<code><a href="mapPoints.html">mapPoints</a>()</code>,
<code><a href="mapPolygon.html">mapPolygon</a>()</code>,
<code><a href="mapScalebar.html">mapScalebar</a>()</code>,
<code><a href="mapText.html">mapText</a>()</code>,
<code><a href="mapTissot.html">mapTissot</a>()</code>,
<code><a href="oceCRS.html">oceCRS</a>()</code>,
<code><a href="oceProject.html">oceProject</a>()</code>,
<code><a href="shiftLongitude.html">shiftLongitude</a>()</code>,
<code><a href="usrLonLat.html">usrLonLat</a>()</code>,
<code><a href="utm2lonlat.html">utm2lonlat</a>()</code></p></div>
    </div>
    <div id="author">
    <h2>Author</h2>
    <p>Dan Kelley</p>
    </div>

    <div id="ref-examples">
    <h2>Examples</h2>
    <div class="sourceCode"><pre class="sourceCode r"><code><span class="r-in"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://dankelley.github.io/oce/" class="external-link">oce</a></span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="fu"><a href="https://rdrr.io/r/utils/data.html" class="external-link">data</a></span><span class="op">(</span><span class="va">coastlineWorld</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="fu"><a href="https://rdrr.io/r/graphics/par.html" class="external-link">par</a></span><span class="op">(</span>mar <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/rep.html" class="external-link">rep</a></span><span class="op">(</span><span class="fl">2</span>, <span class="fl">4</span><span class="op">)</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="fu"><a href="mapPlot.html">mapPlot</a></span><span class="op">(</span><span class="va">coastlineWorld</span>,</span></span>
<span class="r-in"><span>    border <span class="op">=</span> <span class="st">"black"</span>,</span></span>
<span class="r-in"><span>    col <span class="op">=</span> <span class="st">"grey95"</span>,</span></span>
<span class="r-in"><span>    projection <span class="op">=</span> <span class="st">"+proj=lcc +lat_1=40 +lat_2=60 +lon_0=-60"</span>,</span></span>
<span class="r-in"><span>    longitudelim <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="op">-</span><span class="fl">70</span>, <span class="op">-</span><span class="fl">50</span><span class="op">)</span>, latitudelim <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="fl">45</span>, <span class="fl">50</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="co"># Invent wind data for three locations in eastern Canada</span></span></span>
<span class="r-in"><span><span class="va">dataText</span> <span class="op">&lt;-</span> <span class="st">"</span></span></span>
<span class="r-in"><span><span class="st">lat,lon,u,v,location</span></span></span>
<span class="r-in"><span><span class="st">44.6476,-63.5728,15,0,Halifax</span></span></span>
<span class="r-in"><span><span class="st">49.5495,-62.9555,20,20,Anticosti Island</span></span></span>
<span class="r-in"><span><span class="st">47.5556,-52.7453,0,55,St. John's"</span></span></span>
<span class="r-in"><span><span class="va">data</span> <span class="op">&lt;-</span> <span class="fu"><a href="https://rdrr.io/r/utils/read.table.html" class="external-link">read.csv</a></span><span class="op">(</span>text <span class="op">=</span> <span class="va">dataText</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="co"># Dots at observation locations, for reference</span></span></span>
<span class="r-in"><span><span class="fu"><a href="mapPoints.html">mapPoints</a></span><span class="op">(</span><span class="va">data</span><span class="op">$</span><span class="va">lon</span>, <span class="va">data</span><span class="op">$</span><span class="va">lat</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="co"># Red: arrows that extend downwind from the location</span></span></span>
<span class="r-in"><span><span class="fu"><a href="mapDirectionField.html">mapDirectionField</a></span><span class="op">(</span><span class="va">data</span><span class="op">$</span><span class="va">lon</span>, <span class="va">data</span><span class="op">$</span><span class="va">lat</span>,</span></span>
<span class="r-in"><span>    u <span class="op">=</span> <span class="va">data</span><span class="op">$</span><span class="va">u</span>, v <span class="op">=</span> <span class="va">data</span><span class="op">$</span><span class="va">v</span>, scale <span class="op">=</span> <span class="fl">0.05</span>,</span></span>
<span class="r-in"><span>    length <span class="op">=</span> <span class="fl">.08</span>, code <span class="op">=</span> <span class="fl">2</span>, col <span class="op">=</span> <span class="fl">2</span>, lwd <span class="op">=</span> <span class="fl">2</span></span></span>
<span class="r-in"><span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="co"># Blue: barbs that extend upwind from the location</span></span></span>
<span class="r-in"><span><span class="fu">mapDirectionFieldNEW</span><span class="op">(</span><span class="va">data</span><span class="op">$</span><span class="va">lon</span>, <span class="va">data</span><span class="op">$</span><span class="va">lat</span>,</span></span>
<span class="r-in"><span>    u <span class="op">=</span> <span class="va">data</span><span class="op">$</span><span class="va">u</span>, v <span class="op">=</span> <span class="va">data</span><span class="op">$</span><span class="va">v</span>, scale <span class="op">=</span> <span class="fl">2</span>, code <span class="op">=</span> <span class="st">"barb"</span>, lwd <span class="op">=</span> <span class="fl">2</span>, col <span class="op">=</span> <span class="fl">4</span></span></span>
<span class="r-in"><span><span class="op">)</span></span></span>
<span class="r-plt img"><img src="mapDirectionFieldNEW-1.png" alt="" width="700" height="433"></span>
<span class="r-in"><span></span></span>
</code></pre></div>
    </div>
  </div>
  <div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar">
    <nav id="toc" data-toggle="toc" class="sticky-top"><h2 data-toc-skip>Contents</h2>
    </nav></div>
</div>


      <footer><div class="copyright">
  <p></p><p>Developed by Dan Kelley, Clark Richards.</p>
</div>

<div class="pkgdown">
  <p></p><p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.0.7.</p>
</div>

      </footer></div>

  


  

  </body></html>

