Skip to content

Commit 9b5b2e7

Browse files
Update documentation
1 parent 94eebd5 commit 9b5b2e7

5 files changed

Lines changed: 476 additions & 385 deletions
55.2 KB
Loading
Binary file not shown.

_sources/notebooks/xarray_raster_styling_analysis.ipynb

Lines changed: 430 additions & 379 deletions
Large diffs are not rendered by default.

notebooks/xarray_raster_styling_analysis.html

Lines changed: 45 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -501,6 +501,35 @@ <h2>Setup and Data Download<a class="headerlink" href="#setup-and-data-download"
501501
</pre></div>
502502
</div>
503503
</div>
504+
<div class="cell_output docutils container">
505+
<div class="output stderr highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>/usr/local/lib/python3.11/dist-packages/cudf/utils/_ptxcompiler.py:64: UserWarning: Error getting driver and runtime versions:
506+
507+
stdout:
508+
509+
510+
511+
stderr:
512+
513+
Traceback (most recent call last):
514+
File &quot;&lt;string&gt;&quot;, line 4, in &lt;module&gt;
515+
File &quot;/usr/local/lib/python3.11/dist-packages/numba_cuda/numba/cuda/cudadrv/driver.py&quot;, line 314, in __getattr__
516+
raise CudaSupportError(&quot;Error at driver init: \n%s:&quot; %
517+
numba.cuda.cudadrv.error.CudaSupportError: Error at driver init:
518+
519+
CUDA driver library cannot be found.
520+
If you are sure that a CUDA driver is installed,
521+
try setting environment variable NUMBA_CUDA_DRIVER
522+
with the file path of the CUDA driver shared library.
523+
:
524+
525+
526+
Not patching Numba
527+
warnings.warn(msg, UserWarning)
528+
/usr/local/lib/python3.11/dist-packages/cudf/utils/gpu_utils.py:62: UserWarning: Failed to dlopen libcuda.so.1
529+
warnings.warn(str(e))
530+
</pre></div>
531+
</div>
532+
</div>
504533
</div>
505534
<div class="cell docutils container">
506535
<div class="cell_input docutils container">
@@ -613,7 +642,7 @@ <h2>Procedure<a class="headerlink" href="#procedure" title="Link to this heading
613642
<li><p><strong>Growth</strong>: Small Positive Change between 100 to 1000.</p></li>
614643
<li><p><strong>High Growth</strong>: Large Positive Change greater than 1000.</p></li>
615644
</ul>
616-
<p>We use XArray Spatial’s <a class="reference external" href="https://xarray-spatial.org/reference/_autosummary/xrspatial.classify.reclassify.html"><code class="docutils literal notranslate"><span class="pre">reclassify()</span></code></a> method to perform the reclassification from continuous values to 4 discrete classes.</p>
645+
<p>We use XArray Spatial’s <a class="reference external" href="https://xarray-spatial.readthedocs.io/en/stable/reference/_autosummary/xrspatial.classify.reclassify.html"><code class="docutils literal notranslate"><span class="pre">reclassify()</span></code></a> method to perform the reclassification from continuous values to 4 discrete classes.</p>
617646
<div class="cell docutils container">
618647
<div class="cell_input docutils container">
619648
<div class="highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="n">class_bins</span> <span class="o">=</span> <span class="p">[</span><span class="o">-</span><span class="mi">100</span><span class="p">,</span> <span class="mi">100</span><span class="p">,</span> <span class="mi">1000</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">inf</span><span class="p">]</span>
@@ -624,20 +653,31 @@ <h2>Procedure<a class="headerlink" href="#procedure" title="Link to this heading
624653
</div>
625654
</div>
626655
</div>
627-
<p>The result is a 2D array of reclassified values. We can visualize it the same way as before. The <code class="docutils literal notranslate"><span class="pre">imshow</span></code> method supports only a colorbar legend which is not appropriate for a discrete classified raster such as ours. We use Matplotlib’s <a class="reference external" href="https://matplotlib.org/stable/api/_as_gen/matplotlib.patches.Patch.html"><code class="docutils literal notranslate"><span class="pre">Patch()</span></code></a> method to create a patch with appropriate labels and colors as described in Matplotlib’s <a class="reference external" href="https://matplotlib.org/stable/tutorials/intermediate/legend_guide.html">Legend guide</a>.</p>
656+
<p>The result is a 2D array of reclassified values. We can visualize it the same way as before.</p>
657+
<p>Since we have discrete pixel values, we can assign a specific color to each class using the <code class="docutils literal notranslate"><span class="pre">levels</span></code> parameter. The <code class="docutils literal notranslate"><span class="pre">levels</span></code> list defines the boundary of each interval and the <code class="docutils literal notranslate"><span class="pre">colors</span></code> list defines the colors assigned to each interval.</p>
658+
<ul class="simple">
659+
<li><p>Interval 1: Values between 1 and 2 (Decline)</p></li>
660+
<li><p>Interval 2: Values between 2 and 3 (Neutral)</p></li>
661+
<li><p>Interval 3: Values between 3 and 4 (Growth)</p></li>
662+
<li><p>Interval 4: Values between 4 and 5 (High Growth)</p></li>
663+
</ul>
664+
<p>The <code class="docutils literal notranslate"><span class="pre">imshow</span></code> method supports only a colorbar legend which is not appropriate for a discrete classified raster such as ours. We use Matplotlib’s <a class="reference external" href="https://matplotlib.org/stable/api/_as_gen/matplotlib.patches.Patch.html"><code class="docutils literal notranslate"><span class="pre">Patch()</span></code></a> method to create a patch with appropriate labels and colors as described in Matplotlib’s <a class="reference external" href="https://matplotlib.org/stable/tutorials/intermediate/legend_guide.html">Legend guide</a>.</p>
628665
<div class="cell docutils container">
629666
<div class="cell_input docutils container">
630667
<div class="highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
631668
<span class="n">fig</span><span class="o">.</span><span class="n">set_size_inches</span><span class="p">(</span><span class="mi">15</span><span class="p">,</span><span class="mi">7</span><span class="p">)</span>
632669

633-
<span class="n">levels</span> <span class="o">=</span> <span class="n">class_values</span>
670+
<span class="n">levels</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span>
671+
<span class="nb">min</span><span class="p">(</span><span class="n">class_values</span><span class="p">),</span> <span class="nb">max</span><span class="p">(</span><span class="n">class_values</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">class_values</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
672+
634673
<span class="n">colors</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;#3288bd&#39;</span><span class="p">,</span> <span class="s1">&#39;#e0e0e0&#39;</span><span class="p">,</span> <span class="s1">&#39;#fdae61&#39;</span><span class="p">,</span> <span class="s1">&#39;#d7191c&#39;</span><span class="p">]</span>
635674
<span class="n">labels</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;Decline&#39;</span><span class="p">,</span> <span class="s1">&#39;Neutral&#39;</span><span class="p">,</span> <span class="s1">&#39;Growth&#39;</span><span class="p">,</span> <span class="s1">&#39;High Growth&#39;</span><span class="p">]</span>
636675

637676
<span class="n">change_class</span><span class="o">.</span><span class="n">plot</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span>
638677
<span class="n">ax</span><span class="o">=</span><span class="n">ax</span><span class="p">,</span>
639678
<span class="n">add_colorbar</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
640-
<span class="n">levels</span><span class="o">=</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">],</span>
679+
<span class="n">levels</span><span class="o">=</span><span class="n">levels</span><span class="p">,</span>
680+
<span class="n">vmin</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
641681
<span class="n">colors</span><span class="o">=</span><span class="n">colors</span><span class="p">)</span>
642682

643683

@@ -654,7 +694,7 @@ <h2>Procedure<a class="headerlink" href="#procedure" title="Link to this heading
654694
</div>
655695
</div>
656696
<div class="cell_output docutils container">
657-
<img alt="../_images/43dff7fffad3067d916eb2b8fbb072cf93a0e6d5a630d371b7ef84259669e674.png" src="../_images/43dff7fffad3067d916eb2b8fbb072cf93a0e6d5a630d371b7ef84259669e674.png" />
697+
<img alt="../_images/1e11784ad3b12a6d90fa016c327bfa1dd66386e2615f36cb2b47f5b09d0b29e9.png" src="../_images/1e11784ad3b12a6d90fa016c327bfa1dd66386e2615f36cb2b47f5b09d0b29e9.png" />
658698
</div>
659699
</div>
660700
<p>Last step is to save the results to disk as a GeoTiff file.</p>

searchindex.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)