File: libharp_geometry.html

package info (click to toggle)
harp 1.29-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 57,028 kB
  • sloc: xml: 475,954; ansic: 175,442; sh: 4,898; yacc: 2,186; javascript: 1,510; python: 1,148; makefile: 656; lex: 591
file content (243 lines) | stat: -rw-r--r-- 19,557 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
<!DOCTYPE html>
<html class="writer-html5" lang="en">
<head>
  <meta charset="utf-8" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Geometry &mdash; HARP 1.29 documentation</title>
      <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
      <link rel="stylesheet" type="text/css" href="_static/css/theme.css" />
      <link rel="stylesheet" type="text/css" href="_static/custom.css" />

  
  <!--[if lt IE 9]>
    <script src="_static/js/html5shiv.min.js"></script>
  <![endif]-->
  
        <script src="_static/jquery.js"></script>
        <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
        <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
        <script src="_static/doctools.js"></script>
        <script src="_static/sphinx_highlight.js"></script>
    <script src="_static/js/theme.js"></script>
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="next" title="Product" href="libharp_product.html" />
    <link rel="prev" title="General" href="libharp_general.html" /> 
</head>

<body class="wy-body-for-nav"> 
  <div class="wy-grid-for-nav">
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >

          
          
          <a href="index.html" class="icon icon-home">
            HARP
          </a>
              <div class="version">
                1.29
              </div>
        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
              <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="install.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="conventions/index.html">Conventions</a></li>
<li class="toctree-l1"><a class="reference internal" href="algorithms/index.html">Algorithms</a></li>
<li class="toctree-l1"><a class="reference internal" href="operations.html">Operations</a></li>
<li class="toctree-l1"><a class="reference internal" href="ingestions/index.html">Ingestion definitions</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="libharp.html">C library</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="libharp.html#introduction">Introduction</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="libharp.html#modules">Modules</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="libharp_collocation.html">Collocation</a></li>
<li class="toctree-l3"><a class="reference internal" href="libharp_dataset.html">Dataset</a></li>
<li class="toctree-l3"><a class="reference internal" href="libharp_documentation.html">Documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="libharp_error.html">Error</a></li>
<li class="toctree-l3"><a class="reference internal" href="libharp_general.html">General</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">Geometry</a></li>
<li class="toctree-l3"><a class="reference internal" href="libharp_product.html">Product</a></li>
<li class="toctree-l3"><a class="reference internal" href="libharp_product_metadata.html">Product Metadata</a></li>
<li class="toctree-l3"><a class="reference internal" href="libharp_variable.html">Variable</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="idl.html">IDL interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="matlab.html">MATLAB interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="python.html">Python interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="R.html">R interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="tools.html">Command line tools</a></li>
</ul>

        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="index.html">HARP</a>
      </nav>

      <div class="wy-nav-content">
        <div class="rst-content">
          <div role="navigation" aria-label="Page navigation">
  <ul class="wy-breadcrumbs">
      <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
          <li class="breadcrumb-item"><a href="libharp.html">C library</a></li>
      <li class="breadcrumb-item active">Geometry</li>
      <li class="wy-breadcrumbs-aside">
      </li>
  </ul>
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
             
  <section id="geometry">
<h1>Geometry</h1>
<dl>
<dt class="sig sig-object cpp">
<span class="target" id="group__harp__geometry"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">harp_geometry</span></span></dt>
<dd><p>The HARP Geometry module contains public functions for dealing with polygons and points on a spherical surface. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv432harp_geometry_get_point_distanceddddPd">
<span id="_CPPv332harp_geometry_get_point_distanceddddPd"></span><span id="_CPPv232harp_geometry_get_point_distanceddddPd"></span><span id="harp_geometry_get_point_distance__double.double.double.double.doubleP"></span><span class="target" id="group__harp__geometry_1ga6b52fe91c049f7313e7688039aa04cc5"></span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">harp_geometry_get_point_distance</span></span></span><span class="sig-paren">(</span><span class="kt"><span class="pre">double</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">latitude_a</span></span>, <span class="kt"><span class="pre">double</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">longitude_a</span></span>, <span class="kt"><span class="pre">double</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">latitude_b</span></span>, <span class="kt"><span class="pre">double</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">longitude_b</span></span>, <span class="kt"><span class="pre">double</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">distance</span></span><span class="sig-paren">)</span><br /></dt>
<dd><p>Calculate the distance between two points on the surface of the Earth in meters</p>
<p>This function assumes a spherical earth </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>latitude_a</strong> – Latitude of first point </p></li>
<li><p><strong>longitude_a</strong> – Longitude of first point </p></li>
<li><p><strong>latitude_b</strong> – Latitude of second point </p></li>
<li><p><strong>longitude_b</strong> – Longitude of second point </p></li>
<li><p><strong>distance</strong> – Pointer to the C variable where the surface distance in [m] between the two points will be stored. </p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">0</span></code>, Success. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">-1</span></code>, Error occurred (check <a class="reference internal" href="libharp_error.html#group__harp__error_1gab2eeb46528306c6799632d1e800c4c36"><span class="std std-ref">harp_errno</span></a>). </p></li>
</ul>
</p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv431harp_geometry_has_point_in_areaddiPdPdPi">
<span id="_CPPv331harp_geometry_has_point_in_areaddiPdPdPi"></span><span id="_CPPv231harp_geometry_has_point_in_areaddiPdPdPi"></span><span id="harp_geometry_has_point_in_area__double.double.i.doubleP.doubleP.iP"></span><span class="target" id="group__harp__geometry_1ga3b02dad2aafb8f28c84963e47ea1ea91"></span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">harp_geometry_has_point_in_area</span></span></span><span class="sig-paren">(</span><span class="kt"><span class="pre">double</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">latitude_point</span></span>, <span class="kt"><span class="pre">double</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">longitude_point</span></span>, <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">num_vertices</span></span>, <span class="kt"><span class="pre">double</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">latitude_bounds</span></span>, <span class="kt"><span class="pre">double</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">longitude_bounds</span></span>, <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">in_area</span></span><span class="sig-paren">)</span><br /></dt>
<dd><p>Determine whether a point is in an area on the surface of the Earth</p>
<p>This function assumes a spherical earth.</p>
<p>The latitude/longitude bounds can be either vertices of a polygon (num_vertices&gt;=3) or represent corner points that define a bounding rect (num_vertices==2).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>latitude_point</strong> – Latitude of the point </p></li>
<li><p><strong>longitude_point</strong> – Longitude of the point </p></li>
<li><p><strong>num_vertices</strong> – The number of vertices of the bounding polygon/rect of the area </p></li>
<li><p><strong>latitude_bounds</strong> – Latitude values of the bounds of the area polygon/rect </p></li>
<li><p><strong>longitude_bounds</strong> – Longitude values of the bounds of the area polygon/rect </p></li>
<li><p><strong>in_area</strong> – Pointer to the C variable where the result will be stored (1 if point is in the area, 0 otherwise). </p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">0</span></code>, Success. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">-1</span></code>, Error occurred (check <a class="reference internal" href="libharp_error.html#group__harp__error_1gab2eeb46528306c6799632d1e800c4c36"><span class="std std-ref">harp_errno</span></a>). </p></li>
</ul>
</p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv430harp_geometry_has_area_overlapiPdPdiPdPdPiPd">
<span id="_CPPv330harp_geometry_has_area_overlapiPdPdiPdPdPiPd"></span><span id="_CPPv230harp_geometry_has_area_overlapiPdPdiPdPdPiPd"></span><span id="harp_geometry_has_area_overlap__i.doubleP.doubleP.i.doubleP.doubleP.iP.doubleP"></span><span class="target" id="group__harp__geometry_1gab800d2e7bbc465b2b1ce0028187e3601"></span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">harp_geometry_has_area_overlap</span></span></span><span class="sig-paren">(</span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">num_vertices_a</span></span>, <span class="kt"><span class="pre">double</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">latitude_bounds_a</span></span>, <span class="kt"><span class="pre">double</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">longitude_bounds_a</span></span>, <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">num_vertices_b</span></span>, <span class="kt"><span class="pre">double</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">latitude_bounds_b</span></span>, <span class="kt"><span class="pre">double</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">longitude_bounds_b</span></span>, <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">has_overlap</span></span>, <span class="kt"><span class="pre">double</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">fraction</span></span><span class="sig-paren">)</span><br /></dt>
<dd><p>Determine the amount of overlap of two areas on the surface of the Earth</p>
<p>This function assumes a spherical earth. The overlap fraction is calculated as area(intersection)/min(area(A),area(B)).</p>
<p>The latitude/longitude bounds for A and B can be either vertices of a polygon (num_vertices&gt;=3), or represent corner points that define a bounding rect (num_vertices==2).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>num_vertices_a</strong> – The number of vertices of the bounding polygon/rect of the first area </p></li>
<li><p><strong>latitude_bounds_a</strong> – Latitude values of the bounds of the area of the first polygon/rect </p></li>
<li><p><strong>longitude_bounds_a</strong> – Longitude values of the bounds of the area of the first polygon/rect </p></li>
<li><p><strong>num_vertices_b</strong> – The number of vertices of the bounding polygon/rect of the second area </p></li>
<li><p><strong>latitude_bounds_b</strong> – Latitude values of the bounds of the area of the second polygon/rect </p></li>
<li><p><strong>longitude_bounds_b</strong> – Longitude values of the bounds of the area of the second polygon/rect </p></li>
<li><p><strong>has_overlap</strong> – Pointer to the C variable where the result will be stored (1 if there is overlap, 0 otherwise). </p></li>
<li><p><strong>fraction</strong> – Pointer to the C variable where the overlap fraction will be stored (use NULL if not needed). </p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">0</span></code>, Success. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">-1</span></code>, Error occurred (check <a class="reference internal" href="libharp_error.html#group__harp__error_1gab2eeb46528306c6799632d1e800c4c36"><span class="std std-ref">harp_errno</span></a>). </p></li>
</ul>
</p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv422harp_geometry_get_areaiPdPdPd">
<span id="_CPPv322harp_geometry_get_areaiPdPdPd"></span><span id="_CPPv222harp_geometry_get_areaiPdPdPd"></span><span id="harp_geometry_get_area__i.doubleP.doubleP.doubleP"></span><span class="target" id="group__harp__geometry_1ga1250d3e91ad26764d8e0b5e318f61dce"></span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">harp_geometry_get_area</span></span></span><span class="sig-paren">(</span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">num_vertices</span></span>, <span class="kt"><span class="pre">double</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">latitude_bounds</span></span>, <span class="kt"><span class="pre">double</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">longitude_bounds</span></span>, <span class="kt"><span class="pre">double</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">area</span></span><span class="sig-paren">)</span><br /></dt>
<dd><p>Calculate the area size for a polygon on the surface of the Earth</p>
<p>This function assumes a spherical earth.</p>
<p>The latitude/longitude bounds for A and B can be either vertices of a polygon (num_vertices&gt;=3), or represent corner points that define a bounding rect (num_vertices==2).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>num_vertices</strong> – The number of vertices of the bounding polygon/rect </p></li>
<li><p><strong>latitude_bounds</strong> – Latitude values of the bounds of the polygon/rect </p></li>
<li><p><strong>longitude_bounds</strong> – Longitude values of the bounds of the polygon/rect </p></li>
<li><p><strong>area</strong> – Pointer to the C variable where the area size will be stored (in [m2]). </p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">0</span></code>, Success. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">-1</span></code>, Error occurred (check <a class="reference internal" href="libharp_error.html#group__harp__error_1gab2eeb46528306c6799632d1e800c4c36"><span class="std std-ref">harp_errno</span></a>). </p></li>
</ul>
</p>
</dd>
</dl>
</dd></dl>

</div>
</dd></dl>

</section>


           </div>
          </div>
          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
        <a href="libharp_general.html" class="btn btn-neutral float-left" title="General" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
        <a href="libharp_product.html" class="btn btn-neutral float-right" title="Product" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
    </div>

  <hr/>

  <div role="contentinfo">
    <p>&#169; Copyright 2015-2025 S[&amp;]T, The Netherlands.</p>
  </div>

   

</footer>
        </div>
      </div>
    </section>
  </div>
  <script>
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script> 

</body>
</html>