Skip to content

Commit 23cf315

Browse files
author
Quarto GHA Workflow Runner
committed
Built site for gh-pages
1 parent 418b4f2 commit 23cf315

File tree

79 files changed

+154529
-155678
lines changed

Some content is hidden

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

79 files changed

+154529
-155678
lines changed

.nojekyll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
73d0068b
1+
43cce459

01-geodata.html

Lines changed: 85 additions & 88 deletions
Large diffs are not rendered by default.

02-geoviz.html

Lines changed: 50 additions & 53 deletions
Large diffs are not rendered by default.

02-geoviz_files/figure-html/cell-10-output-2.svg

Lines changed: 123 additions & 123 deletions
Loading

02-geoviz_files/figure-html/cell-12-output-2.svg

Lines changed: 123 additions & 122 deletions
Loading

02-geoviz_files/figure-html/cell-19-output-2.svg

Lines changed: 3 additions & 3 deletions
Loading

02-geoviz_files/figure-html/cell-20-output-2.svg

Lines changed: 1312 additions & 1303 deletions
Loading

02-geoviz_files/figure-html/cell-21-output-2.svg

Lines changed: 3 additions & 3 deletions
Loading

02-geoviz_files/figure-html/cell-23-output-2.svg

Lines changed: 95 additions & 95 deletions
Loading

03-geoio.html

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
33

44
<meta charset="utf-8">
5-
<meta name="generator" content="quarto-1.5.57">
5+
<meta name="generator" content="quarto-1.6.39">
66

77
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
88

@@ -71,12 +71,12 @@
7171
<script src="site_libs/quarto-html/tippy.umd.min.js"></script>
7272
<script src="site_libs/quarto-html/anchor.min.js"></script>
7373
<link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
74-
<link href="site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" class="quarto-color-scheme" id="quarto-text-highlighting-styles">
75-
<link href="site_libs/quarto-html/quarto-syntax-highlighting-dark.css" rel="prefetch" class="quarto-color-scheme quarto-color-alternate" id="quarto-text-highlighting-styles">
74+
<link href="site_libs/quarto-html/quarto-syntax-highlighting-e26003cea8cd680ca0c55a263523d882.css" rel="stylesheet" class="quarto-color-scheme" id="quarto-text-highlighting-styles">
75+
<link href="site_libs/quarto-html/quarto-syntax-highlighting-dark-d166b450ba5a8e9f7a0ab969bf6592c1.css" rel="prefetch" class="quarto-color-scheme quarto-color-alternate" id="quarto-text-highlighting-styles">
7676
<script src="site_libs/bootstrap/bootstrap.min.js"></script>
7777
<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
78-
<link href="site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" class="quarto-color-scheme" id="quarto-bootstrap" data-mode="light">
79-
<link href="site_libs/bootstrap/bootstrap-dark.min.css" rel="prefetch" class="quarto-color-scheme quarto-color-alternate" id="quarto-bootstrap" data-mode="dark">
78+
<link href="site_libs/bootstrap/bootstrap-348f9480ca2773527746b0ae0a361280.min.css" rel="stylesheet" append-hash="true" class="quarto-color-scheme" id="quarto-bootstrap" data-mode="light">
79+
<link href="site_libs/bootstrap/bootstrap-dark-46f389c8df888532cbd1bee5f85f9066.min.css" rel="prefetch" append-hash="true" class="quarto-color-scheme quarto-color-alternate" id="quarto-bootstrap" data-mode="dark">
8080
<script id="quarto-search-options" type="application/json">{
8181
"location": "sidebar",
8282
"copy-button": false,
@@ -352,7 +352,7 @@ <h1 class="title"><span class="chapter-number">3</span>&nbsp; <span class="chapt
352352
<p>In order to disrupt existing practices and really develop something new in Julia, we had to make some hard decisions along the way. One of these decisions relates to how we are willing to interface our framework with existing GIS standards and workflows.</p>
353353
<p>On the one hand, we could have followed the path that was followed by other communities such as Python and R, and focus our energy interfacing with well-tested GIS libraries written in C/C++ (e.g., <a href="https://gdal.org/index.html">GDAL</a>, <a href="https://libgeos.org">GEOS</a>). This is precisely what the JuliaGeo organization has been doing over the years, and it is an important agenda to bring people from other languages that are used to the <a href="https://www.ogc.org/standards">OGC</a> standards.</p>
354354
<p>On the other hand, we have young geoscientists and first-time programmers who have never studied GIS before, and who <em>really struggle</em> learning the technology as it is today. The widespread emphasis on machine representation and software engineering has created a gap between the developers and the users of GIS software. A typical gap the Julia programming language helps to close.</p>
355-
<p>We decided to limit our interface with existing GIS technology to input and output (IO) of files. This gives users of the framework the chance to</p>
355+
<p>We decided to limit our interface with existing GIS technology to input and output (IO) of files while it matures. This gives users of the framework the chance to</p>
356356
<ol type="1">
357357
<li>Import geospatial data stored as simple features</li>
358358
<li>Perform geospatial data science with a rich set of tools</li>
@@ -375,7 +375,7 @@ <h2 data-number="3.1" class="anchored" data-anchor-id="geoio.jl"><span class="he
375375
<section id="file-formats" class="level2" data-number="3.2">
376376
<h2 data-number="3.2" class="anchored" data-anchor-id="file-formats"><span class="header-section-number">3.2</span> File formats</h2>
377377
<p>Most GIS file formats do <strong>not</strong> preserve topological information. This means that neighborhood information is lost as soon as geometries are saved to disk. To illustrate this issue, we consider a geotable over a grid:</p>
378-
<div id="fb14f52b" class="cell" data-execution_count="2">
378+
<div id="0b6ade95" class="cell" data-execution_count="2">
379379
<div class="sourceCode cell-code" id="cb3"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="im">using</span> <span class="bu">GeoIO</span></span>
380380
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a></span>
381381
<span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a>earth <span class="op">=</span> GeoIO.<span class="fu">load</span>(<span class="st">"data/earth.tif"</span>)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
@@ -387,11 +387,11 @@ <h2 data-number="3.2" class="anchored" data-anchor-id="file-formats"><span class
387387
<th style="text-align: center;" data-quarto-table-cell-role="th">color</th>
388388
<th style="text-align: center;" data-quarto-table-cell-role="th">geometry</th>
389389
</tr>
390-
<tr class="odd subheader">
390+
<tr class="subheader even">
391391
<th style="text-align: center;" data-quarto-table-cell-role="th">Colorful</th>
392392
<th style="text-align: center;" data-quarto-table-cell-role="th">Quadrangle</th>
393393
</tr>
394-
<tr class="header subheader headerLastRow">
394+
<tr class="subheader headerLastRow header">
395395
<th style="text-align: center;" data-quarto-table-cell-role="th">[NoUnits]</th>
396396
<th style="text-align: center;" data-quarto-table-cell-role="th">🖈 GeodeticLatLon{WGS84Latest}</th>
397397
</tr>
@@ -446,7 +446,7 @@ <h2 data-number="3.2" class="anchored" data-anchor-id="file-formats"><span class
446446
</div>
447447
</div>
448448
<p>If we save the geotable to a <code>.geojson</code> file on disk, and then load it back, we observe that the grid gets replaced by a geometry set:</p>
449-
<div id="4a9e4ba2" class="cell" data-execution_count="3">
449+
<div id="fbd33674" class="cell" data-execution_count="3">
450450
<div class="sourceCode cell-code" id="cb4"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a>fname <span class="op">=</span> <span class="fu">tempname</span>() <span class="op">*</span> <span class="st">".geojson"</span></span>
451451
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a></span>
452452
<span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a>GeoIO.<span class="fu">save</span>(fname, earth)</span>
@@ -460,11 +460,11 @@ <h2 data-number="3.2" class="anchored" data-anchor-id="file-formats"><span class
460460
<th style="text-align: center;" data-quarto-table-cell-role="th">color</th>
461461
<th style="text-align: center;" data-quarto-table-cell-role="th">geometry</th>
462462
</tr>
463-
<tr class="odd subheader">
463+
<tr class="subheader even">
464464
<th style="text-align: center;" data-quarto-table-cell-role="th">Unknown</th>
465465
<th style="text-align: center;" data-quarto-table-cell-role="th">PolyArea</th>
466466
</tr>
467-
<tr class="header subheader headerLastRow">
467+
<tr class="subheader headerLastRow header">
468468
<th style="text-align: center;" data-quarto-table-cell-role="th">[NoUnits]</th>
469469
<th style="text-align: center;" data-quarto-table-cell-role="th">🖈 GeodeticLatLon{WGS84Latest}</th>
470470
</tr>
@@ -519,7 +519,7 @@ <h2 data-number="3.2" class="anchored" data-anchor-id="file-formats"><span class
519519
</div>
520520
</div>
521521
<p>Other file formats such as <code>.ply</code> and <code>.msh</code> are widely used in <a href="https://en.wikipedia.org/wiki/Computer_graphics">computer graphics</a> to save geospatial data over meshes, and preserve topological information:</p>
522-
<div id="e213926a" class="cell" data-execution_count="4">
522+
<div id="164a3d1c" class="cell" data-execution_count="4">
523523
<div class="sourceCode cell-code" id="cb5"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a>beethoven <span class="op">=</span> GeoIO.<span class="fu">load</span>(<span class="st">"data/beethoven.ply"</span>)</span>
524524
<span id="cb5-2"><a href="#cb5-2" aria-hidden="true" tabindex="-1"></a></span>
525525
<span id="cb5-3"><a href="#cb5-3" aria-hidden="true" tabindex="-1"></a><span class="fu">viz</span>(beethoven.geometry)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
@@ -543,7 +543,7 @@ <h2 data-number="3.3" class="anchored" data-anchor-id="rationale"><span class="h
543543
<p>Do we gain anything by not adhering to <strong>programming interfaces</strong>?</p>
544544
</blockquote>
545545
<p>The answer is an emphatic <strong>YES</strong>! It means that we have total freedom to innovate and improve the representation of various geometries and geospatial domains with Julia’s amazing type system. To give a simple example, let’s take a look at the <code>Triangle</code> geometry:</p>
546-
<div id="6376eacf" class="cell" data-execution_count="5">
546+
<div id="9be4759a" class="cell" data-execution_count="5">
547547
<div class="sourceCode cell-code" id="cb7"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a>t <span class="op">=</span> <span class="fu">Triangle</span>((<span class="fl">0</span>, <span class="fl">0</span>), (<span class="fl">1</span>, <span class="fl">0</span>), (<span class="fl">1</span>, <span class="fl">1</span>))</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
548548
<div class="cell-output cell-output-display" data-execution_count="6">
549549
<pre><code>Triangle
@@ -553,12 +553,12 @@ <h2 data-number="3.3" class="anchored" data-anchor-id="rationale"><span class="h
553553
</div>
554554
</div>
555555
<p>If we treated this geometry as a generic polygon represented by a vector of vertices in memory, like it is done in <a href="https://github.com/JuliaGeo/GeoInterface.jl">GeoInterface.jl</a> for example, we wouldn’t be able to dispatch optimized code that is only valid for a triangle:</p>
556-
<div id="d1217c8a" class="cell" data-execution_count="6">
556+
<div id="5f812a16" class="cell" data-execution_count="6">
557557
<div class="sourceCode cell-code" id="cb9"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a><span class="pp">@code_llvm</span> <span class="fu">isconvex</span>(t)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
558558
<div class="cell-output cell-output-stdout">
559559
<pre><code>; Function Signature: isconvex(Meshes.Ngon{3, Meshes.𝔼{2}, CoordRefSystems.Cartesian{CoordRefSystems.NoDatum, 2, Unitful.Quantity{Float64, Unitful.Dimensions{(Unitful.Dimension{:Length}(power=Base.Rational{Int64}(num=1, den=1)),)}(), Unitful.FreeUnits{(Unitful.Unit{:Meter, Unitful.Dimensions{(Unitful.Dimension{:Length}(power=Base.Rational{Int64}(num=1, den=1)),)}()}(tens=0, power=Base.Rational{Int64}(num=1, den=1)),), Unitful.Dimensions{(Unitful.Dimension{:Length}(power=Base.Rational{Int64}(num=1, den=1)),)}(), nothing}}}})
560560
; @ /home/runner/.julia/packages/Meshes/tKNCZ/src/predicates/isconvex.jl:57 within `isconvex`
561-
define i8 @julia_isconvex_28968(ptr nocapture readonly %0) #0 {
561+
define i8 @julia_isconvex_30136(ptr nocapture readonly %0) #0 {
562562
top:
563563
ret i8 1
564564
}</code></pre>
@@ -811,8 +811,6 @@ <h2 data-number="3.3" class="anchored" data-anchor-id="rationale"><span class="h
811811
});
812812
clipboard.on('success', onCopySuccess);
813813
if (window.document.getElementById('quarto-embedded-source-code-modal')) {
814-
// For code content inside modals, clipBoardJS needs to be initialized with a container option
815-
// TODO: Check when it could be a function (https://github.com/zenorocha/clipboard.js/issues/860)
816814
const clipboardModal = new window.ClipboardJS('.code-copy-button[data-in-quarto-modal]', {
817815
text: getTextToCopy,
818816
container: window.document.getElementById('quarto-embedded-source-code-modal')
@@ -923,7 +921,6 @@ <h2 data-number="3.3" class="anchored" data-anchor-id="rationale"><span class="h
923921
if (window.Quarto?.typesetMath) {
924922
window.Quarto.typesetMath(note);
925923
}
926-
// TODO in 1.5, we should make sure this works without a callout special case
927924
if (note.classList.contains("callout")) {
928925
return note.outerHTML;
929926
} else {

0 commit comments

Comments
 (0)