Skip to content

Commit

Permalink
[skip ci] Updates
Browse files Browse the repository at this point in the history
  • Loading branch information
ci-build committed Jan 14, 2025
1 parent db4f7af commit 7967fff
Show file tree
Hide file tree
Showing 358 changed files with 471,622 additions and 471,399 deletions.
Binary file modified _downloads/029881e221949484b26146d507a804ad/example_depth.zip
Binary file not shown.
Binary file modified _downloads/033af0d93f9b09e836d807ac3b9561f7/example_relative.zip
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 modified _downloads/1e965db755ac760751848acdb71bc467/example_oil_ice.zip
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 modified _downloads/2f279a49c6164050f7f6f735325d2c2c/example_plast.zip
Binary file not shown.
Binary file not shown.
Binary file modified _downloads/36debc3f4a32a890e68397fb8f9a3de4/example_grid.zip
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 modified _downloads/455f4a0d6f55d57bec7b1548941dfe56/example_plot.zip
Binary file not shown.
Binary file modified _downloads/46b4cb42d5bb56cc39e2b5b2b520b38d/gallery_python.zip
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified _downloads/540eb5641f8ad1d8bbba63da7a6f1b55/example_openberg.zip
Binary file not shown.
Binary file not shown.
Binary file modified _downloads/55c56f11981bc8994b23dd67ccffd4ea/example_larvae.zip
Binary file not shown.
Binary file not shown.
Binary file modified _downloads/57d7c3a68ca90906235269c0c377050a/example_compare.zip
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 modified _downloads/80232020e698aa1c3db016afe427fe84/example_openoil.zip
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified _downloads/838aeedbd6bf9f4ea6ea3789d94e546a/example_fjord.zip
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified _downloads/9279195b7d521d2dd58211cf2d1ee7e2/example_codegg.zip
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 modified _downloads/a5e54d5079281985180311aeb584726e/example_map.zip
Binary file not shown.
Binary file modified _downloads/a724e3e7d25baaaa1d358c1bd5c2dd60/example_fvcom.zip
Binary file not shown.
Binary file modified _downloads/a799cfc3e2163a9601d1a00e61d10a39/example_trajan.zip
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified _downloads/b5b04944cba9e81b9a5872791330760c/example_ensemble.zip
Binary file not shown.
Binary file not shown.
Binary file modified _downloads/bb890d8fc18f9a21787029b6675af744/example_cone.zip
Binary file not shown.
Binary file not shown.
Binary file modified _downloads/c0a3a846dd7c6d6aa449fdf8fd813796/example_macondo.zip
Binary file not shown.
Binary file not shown.
Binary file modified _downloads/c121897cbb882ba2326dd7f0f3f9a5c6/example_drifter.zip
Binary file not shown.
Binary file modified _downloads/c53354a1383dae63edfb5fe0bcbb4be6/example_windblow.zip
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 modified _downloads/ed4c48daa486e7b41db355dc85b3fe89/example_generic.zip
Binary file not shown.
Binary file not shown.
Binary file modified _downloads/f301a4c979f22b9b7478e10e32a3e4dc/example_leeway.zip
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 modified _downloads/f93abdd76951294346e6f02f09086575/example_2d.zip
Binary file not shown.
Binary file not shown.
Binary file modified _downloads/fcaddee3a42ae2e2c41e00ae08d70347/gallery_jupyter.zip
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified _images/example_2d_0.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_biodegradation_0.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_chemicaldrift_0.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_chemicaldrift_1.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_coastline_options_0.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_coastline_options_1.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_coastline_options_2.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_coastline_options_3.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_codegg_0.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_codegg_1.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_cone_0.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_depth_0.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_dominating_0.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_ensemble_0.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_entrainment_rate_oil_types_0.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_entrainment_rate_oil_types_1.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_huge_output_0.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_huge_output_1.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_leeway_capsizing_0.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_manual_aggregate_0.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_mixed_layer_depth_0.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_mixed_layer_depth_1.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_mixed_layer_depth_2.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_oil_ice_0.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_oil_thickness_0.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified _images/example_oil_thickness_1.gif
Binary file modified _images/example_oil_verticalmixing_0.gif
Binary file modified _images/example_oil_verticalmixing_1.gif
Binary file modified _images/example_oilspill_seafloor_biodegradation_0.gif
Binary file modified _images/example_oilspill_seafloor_biodegradation_1.gif
Binary file modified _images/example_plast_0.gif
Binary file modified _images/example_plot_0.gif
Binary file modified _images/example_river_runoff_0.gif
Binary file modified _images/example_sediments_0.gif
Binary file modified _images/example_sediments_resuspension_0.gif
Binary file modified _images/example_seed_from_shapefile_0.gif
Binary file modified _images/example_shipdrift_0.gif
Binary file modified _images/example_shipdrift_leeway_0.gif
Binary file modified _images/example_static_2d_current_0.gif
Binary file modified _images/example_windblow_0.gif
Binary file modified _images/sphx_glr_example_2d_001.png
Binary file modified _images/sphx_glr_example_2d_thumb.png
Binary file modified _images/sphx_glr_example_advection_schemes_eddy_001.png
Binary file modified _images/sphx_glr_example_advection_schemes_eddy_thumb.png
Binary file modified _images/sphx_glr_example_biodegradation_001.png
Binary file modified _images/sphx_glr_example_biodegradation_thumb.png
Binary file modified _images/sphx_glr_example_chemicaldrift_001.png
Binary file modified _images/sphx_glr_example_chemicaldrift_thumb.png
Binary file modified _images/sphx_glr_example_codegg_001.png
Binary file modified _images/sphx_glr_example_codegg_thumb.png
Binary file modified _images/sphx_glr_example_cone_001.png
Binary file modified _images/sphx_glr_example_cone_thumb.png
Binary file modified _images/sphx_glr_example_depth_001.png
Binary file modified _images/sphx_glr_example_depth_thumb.png
Binary file modified _images/sphx_glr_example_ensemble_001.png
Binary file modified _images/sphx_glr_example_ensemble_thumb.png
Binary file modified _images/sphx_glr_example_entrainment_rate_oil_types_001.png
Binary file modified _images/sphx_glr_example_entrainment_rate_oil_types_002.png
Binary file modified _images/sphx_glr_example_entrainment_rate_oil_types_thumb.png
Binary file modified _images/sphx_glr_example_huge_output_001.png
Binary file modified _images/sphx_glr_example_huge_output_thumb.png
Binary file modified _images/sphx_glr_example_oil_ice_001.png
Binary file modified _images/sphx_glr_example_oil_ice_thumb.png
Binary file modified _images/sphx_glr_example_oil_thickness_001.png
Binary file modified _images/sphx_glr_example_oil_thickness_002.png
Binary file modified _images/sphx_glr_example_oil_thickness_thumb.png
Binary file modified _images/sphx_glr_example_oil_verticalmixing_001.png
Binary file modified _images/sphx_glr_example_oil_verticalmixing_002.png
Binary file modified _images/sphx_glr_example_oil_verticalmixing_003.png
Binary file modified _images/sphx_glr_example_oil_verticalmixing_thumb.png
Binary file modified _images/sphx_glr_example_oilspill_seafloor_biodegradation_001.png
Binary file modified _images/sphx_glr_example_oilspill_seafloor_biodegradation_002.png
Binary file modified _images/sphx_glr_example_oilspill_seafloor_biodegradation_thumb.png
Binary file modified _images/sphx_glr_example_openberg_001.png
Binary file modified _images/sphx_glr_example_openberg_002.png
Binary file modified _images/sphx_glr_example_openberg_thumb.png
Binary file modified _images/sphx_glr_example_openoil_sample_output_002.png
Binary file modified _images/sphx_glr_example_river_runoff_001.png
Binary file modified _images/sphx_glr_example_river_runoff_002.png
Binary file modified _images/sphx_glr_example_river_runoff_thumb.png
Binary file modified _images/sphx_glr_example_sediments_001.png
Binary file modified _images/sphx_glr_example_sediments_resuspension_001.png
Binary file modified _images/sphx_glr_example_sediments_resuspension_thumb.png
Binary file modified _images/sphx_glr_example_sediments_thumb.png
Binary file modified _images/sphx_glr_example_seed_from_shapefile_001.png
Binary file modified _images/sphx_glr_example_seed_from_shapefile_thumb.png
Binary file modified _images/sphx_glr_example_shipdrift_001.png
Binary file modified _images/sphx_glr_example_shipdrift_leeway_001.png
Binary file modified _images/sphx_glr_example_shipdrift_leeway_thumb.png
Binary file modified _images/sphx_glr_example_shipdrift_thumb.png
Binary file modified _images/sphx_glr_example_windblow_001.png
Binary file modified _images/sphx_glr_example_windblow_thumb.png
47 changes: 46 additions & 1 deletion _modules/opendrift/readers/reader_global_landmask.html
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,11 @@ <h1>Source code for opendrift.readers.reader_global_landmask</h1><div class="hig
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">import</span> <span class="nn">cartopy.crs</span> <span class="k">as</span> <span class="nn">ccrs</span>
<span class="kn">import</span> <span class="nn">cartopy.feature</span> <span class="k">as</span> <span class="nn">cfeature</span>
<span class="kn">import</span> <span class="nn">cartopy.io.shapereader</span> <span class="k">as</span> <span class="nn">shapereader</span>
<span class="kn">import</span> <span class="nn">shapely.geometry</span> <span class="k">as</span> <span class="nn">sgeom</span>
<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>
<span class="kn">import</span> <span class="nn">logging</span>
<span class="kn">import</span> <span class="nn">roaring_landmask</span>

<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>

Expand Down Expand Up @@ -160,13 +164,54 @@ <h1>Source code for opendrift.readers.reader_global_landmask</h1><div class="hig
<div class="viewcode-block" id="LandmaskFeature.intersecting_geometries">
<a class="viewcode-back" href="../../../autoapi/opendrift/readers/reader_global_landmask/index.html#opendrift.readers.reader_global_landmask.LandmaskFeature.intersecting_geometries">[docs]</a>
<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>
<span class="k">global</span> <span class="n">__polys__</span>

<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>
<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>
<span class="k">else</span><span class="p">:</span>
<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>

<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>
<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>
<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>
<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>
<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>
<span class="k">if</span> <span class="n">geoms</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<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>
<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>
<span class="k">if</span> <span class="n">geoms</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<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>
<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>
<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>
<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>
<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>
<span class="n">geoms</span> <span class="o">=</span> <span class="n">__polys__</span><span class="o">.</span><span class="n">geoms</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="p">[</span><span class="s1">&#39;ROARING&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">geoms</span>
<span class="k">else</span><span class="p">:</span>
<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>
<span class="k">else</span><span class="p">:</span>
<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>
<span class="c1"># Load GSHHS geometries from appropriate shape file.</span>
<span class="c1"># TODO selective load based on bbox of each geom in file.</span>
<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>
<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>

<span class="c1"># Unlike Caropy.GSHHSFeature, we clip the polygons to plot extent</span>
<span class="c1">#geoms = [g.intersection(extent_geom) for g in geoms if g.intersects(extent_geom)]</span>
<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>
<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>
<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>

<span class="c1"># Due to the above, the cache is also depending on extent</span>
<span class="c1"># Note: if plotting several extents within same session, it would be benefitial</span>
<span class="c1"># with another cache independent of extent</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="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>

<span class="k">for</span> <span class="n">geom</span> <span class="ow">in</span> <span class="n">geoms</span><span class="p">:</span>
<span class="k">yield</span> <span class="n">geom</span>

<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="k">return</span> <span class="c1"># Only a single (combined) level with full resolution troaring_landmask</span>

<span class="c1"># # If scale is full use the geometries from roaring landmask, otherwise</span>
<span class="c1"># # fall back to Cartopy provider.</span>
<span class="c1"># if scale == &#39;f&#39;:</span>
Expand Down
Loading

0 comments on commit 7967fff

Please sign in to comment.