Skip to content

Commit 7967fff

Browse files
author
ci-build
committed
[skip ci] Updates
1 parent db4f7af commit 7967fff

File tree

358 files changed

+471622
-471399
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

358 files changed

+471622
-471399
lines changed
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

_images/example_2d_0.gif

1.46 KB

_images/example_biodegradation_0.gif

4.07 KB

_images/example_chemicaldrift_0.gif

-6.11 KB

_images/example_chemicaldrift_1.gif

-150 KB
-69.2 KB
516 Bytes
37.1 KB
6.83 KB

_images/example_codegg_0.gif

-41.2 KB

_images/example_codegg_1.gif

-8.78 KB

_images/example_cone_0.gif

56.4 KB

_images/example_depth_0.gif

-674 KB

_images/example_dominating_0.gif

60 KB

_images/example_ensemble_0.gif

619 KB
2.74 KB
14.1 KB

_images/example_huge_output_0.gif

-446 Bytes

_images/example_huge_output_1.gif

-83 KB
0 Bytes
-57.8 KB
-2.85 KB
7.82 KB
22.3 KB

_images/example_oil_ice_0.gif

73.2 KB

_images/example_oil_thickness_0.gif

57.1 KB

_images/example_oil_thickness_1.gif

-94.7 KB
-269 KB
73.5 KB

_images/example_plast_0.gif

-27 Bytes

_images/example_plot_0.gif

-570 KB

_images/example_river_runoff_0.gif

4.8 KB

_images/example_sediments_0.gif

-238 KB
-3.35 KB
-2.71 KB

_images/example_shipdrift_0.gif

-122 KB
12.2 KB
14.9 KB

_images/example_windblow_0.gif

-652 Bytes

_images/sphx_glr_example_2d_001.png

-13 Bytes

_images/sphx_glr_example_2d_thumb.png

165 Bytes
-139 Bytes
-11 Bytes
-106 Bytes
-701 Bytes
-37.7 KB
-2.33 KB

_images/sphx_glr_example_cone_001.png

3.64 KB
2.96 KB
-143 KB
-21.7 KB
4.54 KB
2.33 KB
-197 Bytes
-15 Bytes
4.51 KB
1.74 KB
-319 Bytes
-169 Bytes
-12 Bytes
127 Bytes
-209 Bytes
570 Bytes
647 Bytes
-161 Bytes
280 Bytes
30.6 KB
7.73 KB
-31.6 KB
-37 Bytes
-3.75 KB
-11 Bytes
0 Bytes

_modules/opendrift/readers/reader_global_landmask.html

+46-1
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,11 @@ <h1>Source code for opendrift.readers.reader_global_landmask</h1><div class="hig
118118
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
119119
<span class="kn">import</span> <span class="nn">cartopy.crs</span> <span class="k">as</span> <span class="nn">ccrs</span>
120120
<span class="kn">import</span> <span class="nn">cartopy.feature</span> <span class="k">as</span> <span class="nn">cfeature</span>
121+
<span class="kn">import</span> <span class="nn">cartopy.io.shapereader</span> <span class="k">as</span> <span class="nn">shapereader</span>
122+
<span class="kn">import</span> <span class="nn">shapely.geometry</span> <span class="k">as</span> <span class="nn">sgeom</span>
123+
<span class="kn">from</span> <span class="nn">shapely</span> <span class="kn">import</span> <span class="n">wkb</span><span class="p">,</span> <span class="n">clip_by_rect</span>
121124
<span class="kn">import</span> <span class="nn">logging</span>
125+
<span class="kn">import</span> <span class="nn">roaring_landmask</span>
122126

123127
<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span>
124128

@@ -160,13 +164,54 @@ <h1>Source code for opendrift.readers.reader_global_landmask</h1><div class="hig
160164
<div class="viewcode-block" id="LandmaskFeature.intersecting_geometries">
161165
<a class="viewcode-back" href="../../../autoapi/opendrift/readers/reader_global_landmask/index.html#opendrift.readers.reader_global_landmask.LandmaskFeature.intersecting_geometries">[docs]</a>
162166
<span class="k">def</span> <span class="nf">intersecting_geometries</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">extent</span><span class="p">):</span>
163-
<span class="k">global</span> <span class="n">__polys__</span>
164167

165168
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scale</span> <span class="o">==</span> <span class="s1">&#39;auto&#39;</span><span class="p">:</span>
166169
<span class="n">scale</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scale_from_extent</span><span class="p">(</span><span class="n">extent</span><span class="p">)</span>
167170
<span class="k">else</span><span class="p">:</span>
168171
<span class="n">scale</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scale</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
169172

173+
<span class="k">if</span> <span class="n">extent</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
174+
<span class="n">extent_geom</span> <span class="o">=</span> <span class="n">sgeom</span><span class="o">.</span><span class="n">box</span><span class="p">(</span><span class="n">extent</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">extent</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span>
175+
<span class="n">extent</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">extent</span><span class="p">[</span><span class="mi">3</span><span class="p">])</span>
176+
<span class="k">for</span> <span class="n">level</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_levels</span><span class="p">:</span>
177+
<span class="n">geoms</span> <span class="o">=</span> <span class="n">cfeature</span><span class="o">.</span><span class="n">GSHHSFeature</span><span class="o">.</span><span class="n">_geometries_cache</span><span class="o">.</span><span class="n">get</span><span class="p">((</span><span class="n">scale</span><span class="p">,</span> <span class="n">level</span><span class="p">,</span> <span class="n">extent_geom</span><span class="p">))</span>
178+
<span class="k">if</span> <span class="n">geoms</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
179+
<span class="k">if</span> <span class="n">scale</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;f&#39;</span><span class="p">,</span> <span class="s1">&#39;full&#39;</span><span class="p">]:</span> <span class="c1"># Getting fullres polygons from roaring_landmask</span>
180+
<span class="n">geoms</span> <span class="o">=</span> <span class="n">cfeature</span><span class="o">.</span><span class="n">GSHHSFeature</span><span class="o">.</span><span class="n">_geometries_cache</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;ROARING&#39;</span><span class="p">)</span>
181+
<span class="k">if</span> <span class="n">geoms</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
182+
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s1">&#39;Getting fullres shapes from roaring landmask&#39;</span><span class="p">)</span>
183+
<span class="n">provider</span> <span class="o">=</span> <span class="n">roaring_landmask</span><span class="o">.</span><span class="n">LandmaskProvider</span><span class="o">.</span><span class="n">Gshhg</span>
184+
<span class="n">shapes</span> <span class="o">=</span> <span class="n">roaring_landmask</span><span class="o">.</span><span class="n">Shapes</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="n">provider</span><span class="p">)</span>
185+
<span class="n">polys</span> <span class="o">=</span> <span class="n">roaring_landmask</span><span class="o">.</span><span class="n">Shapes</span><span class="o">.</span><span class="n">wkb</span><span class="p">(</span><span class="n">provider</span><span class="p">)</span>
186+
<span class="n">__polys__</span> <span class="o">=</span> <span class="n">wkb</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">polys</span><span class="p">)</span>
187+
<span class="n">geoms</span> <span class="o">=</span> <span class="n">__polys__</span><span class="o">.</span><span class="n">geoms</span>
188+
<span class="n">cfeature</span><span class="o">.</span><span class="n">GSHHSFeature</span><span class="o">.</span><span class="n">_geometries_cache</span><span class="p">[</span><span class="s1">&#39;ROARING&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">geoms</span>
189+
<span class="k">else</span><span class="p">:</span>
190+
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s1">&#39;Getting fullres shapes from roaring landmask cache&#39;</span><span class="p">)</span>
191+
<span class="k">else</span><span class="p">:</span>
192+
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s1">&#39;Loading shapes with Cartopy shapereader...&#39;</span><span class="p">)</span>
193+
<span class="c1"># Load GSHHS geometries from appropriate shape file.</span>
194+
<span class="c1"># TODO selective load based on bbox of each geom in file.</span>
195+
<span class="n">path</span> <span class="o">=</span> <span class="n">shapereader</span><span class="o">.</span><span class="n">gshhs</span><span class="p">(</span><span class="n">scale</span><span class="p">,</span> <span class="n">level</span><span class="p">)</span>
196+
<span class="n">geoms</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">shapereader</span><span class="o">.</span><span class="n">Reader</span><span class="p">(</span><span class="n">path</span><span class="p">)</span><span class="o">.</span><span class="n">geometries</span><span class="p">())</span>
197+
198+
<span class="c1"># Unlike Caropy.GSHHSFeature, we clip the polygons to plot extent</span>
199+
<span class="c1">#geoms = [g.intersection(extent_geom) for g in geoms if g.intersects(extent_geom)]</span>
200+
<span class="n">delta</span> <span class="o">=</span> <span class="mf">.1</span> <span class="c1"># Adding small delta to avoid segments along map borders</span>
201+
<span class="n">geoms</span> <span class="o">=</span> <span class="p">[</span><span class="n">clip_by_rect</span><span class="p">(</span><span class="n">g</span><span class="p">,</span> <span class="n">extent</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">-</span><span class="n">delta</span><span class="p">,</span> <span class="n">extent</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">-</span><span class="n">delta</span><span class="p">,</span> <span class="n">extent</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">+</span><span class="n">delta</span><span class="p">,</span> <span class="n">extent</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span><span class="o">+</span><span class="n">delta</span><span class="p">)</span>
202+
<span class="k">for</span> <span class="n">g</span> <span class="ow">in</span> <span class="n">geoms</span> <span class="k">if</span> <span class="n">g</span><span class="o">.</span><span class="n">intersects</span><span class="p">(</span><span class="n">extent_geom</span><span class="p">)]</span>
203+
204+
<span class="c1"># Due to the above, the cache is also depending on extent</span>
205+
<span class="c1"># Note: if plotting several extents within same session, it would be benefitial</span>
206+
<span class="c1"># with another cache independent of extent</span>
207+
<span class="n">cfeature</span><span class="o">.</span><span class="n">GSHHSFeature</span><span class="o">.</span><span class="n">_geometries_cache</span><span class="p">[(</span><span class="n">scale</span><span class="p">,</span> <span class="n">level</span><span class="p">,</span> <span class="n">extent_geom</span><span class="p">)]</span> <span class="o">=</span> <span class="n">geoms</span>
208+
209+
<span class="k">for</span> <span class="n">geom</span> <span class="ow">in</span> <span class="n">geoms</span><span class="p">:</span>
210+
<span class="k">yield</span> <span class="n">geom</span>
211+
212+
<span class="k">if</span> <span class="n">scale</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;f&#39;</span><span class="p">,</span> <span class="s1">&#39;full&#39;</span><span class="p">]:</span>
213+
<span class="k">return</span> <span class="c1"># Only a single (combined) level with full resolution troaring_landmask</span>
214+
170215
<span class="c1"># # If scale is full use the geometries from roaring landmask, otherwise</span>
171216
<span class="c1"># # fall back to Cartopy provider.</span>
172217
<span class="c1"># if scale == &#39;f&#39;:</span>

0 commit comments

Comments
 (0)