<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Spectral Reflectance: Developer's Orbit]]></title><description><![CDATA[Code Samples and Advanced Tutorials]]></description><link>https://www.spectralreflectance.space/s/dev-orbit</link><image><url>https://substackcdn.com/image/fetch/$s_!mQ62!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2edd3cb7-2ffd-48ee-aac3-ed1927536d5a_1280x1280.png</url><title>Spectral Reflectance: Developer&apos;s Orbit</title><link>https://www.spectralreflectance.space/s/dev-orbit</link></image><generator>Substack</generator><lastBuildDate>Mon, 11 May 2026 05:01:47 GMT</lastBuildDate><atom:link href="https://www.spectralreflectance.space/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Akis Karagiannis]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[spectralreflectance@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[spectralreflectance@substack.com]]></itunes:email><itunes:name><![CDATA[Akis Karagiannis]]></itunes:name></itunes:owner><itunes:author><![CDATA[Akis Karagiannis]]></itunes:author><googleplay:owner><![CDATA[spectralreflectance@substack.com]]></googleplay:owner><googleplay:email><![CDATA[spectralreflectance@substack.com]]></googleplay:email><googleplay:author><![CDATA[Akis Karagiannis]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Streaming satellite imagery into QGIS using STAC and Cloud-Optimised GeoTIFFs]]></title><description><![CDATA[I was today years old when I realised you can stream a COG into QGIS.]]></description><link>https://www.spectralreflectance.space/p/streaming-satellite-imagery-into</link><guid isPermaLink="false">https://www.spectralreflectance.space/p/streaming-satellite-imagery-into</guid><dc:creator><![CDATA[Akis Karagiannis]]></dc:creator><pubDate>Thu, 03 Apr 2025 19:04:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79cc03f3-feb1-497f-af14-da6897dd534c_2490x1370.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I was playing around with <a href="https://developmentseed.org/titiler/">TiTiler</a> for visualising Cloud-Optimised GeoTIFFs (COGs) in the browser. While reviewing resources on how it works, I stumbled upon a <a href="https://youtu.be/Ix-4L2dRmRg?t=513">video</a> where someone casually loaded a COG from their own S3 bucket into QGIS.</p><p>I paused the video&#8230; <br>Stared at it&#8230; <br><strong>You can do that?!</strong></p><p><em><strong>TLDR:</strong> I searched a STAC Catalog for Sentinel-2 and Landsat imagery, accessed their COG assets and programmatically built a QGIS project that streams false-colour composites - no (persistent) download required.</em></p><div><hr></div><h3><strong>Steps to stream a Cloud-Optimised GeoTIFF (COG) in QGIS</strong></h3><ol><li><p>Open QGIS</p></li><li><p>Go to <strong>Layer &#8594; Add Layer &#8594; Add Raster Layer &#8230;</strong></p></li><li><p>In the dialog: </p><ol><li><p><strong>Source type:</strong> Protocol: HTTP(S), cloud, etc.</p></li><li><p><strong>Type:</strong> HTTP/HTTPS/FPT</p></li><li><p><strong>URI:</strong> https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/R/VU/2025/3/S2C_36RVU_20250313_0_L2A/TCI.tif</p></li></ol></li><li><p>Click <strong>Add</strong></p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!23lZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9845df-a4f2-4443-8c62-0fa8358cdd4a_2487x1370.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!23lZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9845df-a4f2-4443-8c62-0fa8358cdd4a_2487x1370.png 424w, https://substackcdn.com/image/fetch/$s_!23lZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9845df-a4f2-4443-8c62-0fa8358cdd4a_2487x1370.png 848w, https://substackcdn.com/image/fetch/$s_!23lZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9845df-a4f2-4443-8c62-0fa8358cdd4a_2487x1370.png 1272w, https://substackcdn.com/image/fetch/$s_!23lZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9845df-a4f2-4443-8c62-0fa8358cdd4a_2487x1370.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!23lZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9845df-a4f2-4443-8c62-0fa8358cdd4a_2487x1370.png" width="1456" height="802" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab9845df-a4f2-4443-8c62-0fa8358cdd4a_2487x1370.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:802,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1988042,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.spectralreflectance.space/i/160484131?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9845df-a4f2-4443-8c62-0fa8358cdd4a_2487x1370.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!23lZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9845df-a4f2-4443-8c62-0fa8358cdd4a_2487x1370.png 424w, https://substackcdn.com/image/fetch/$s_!23lZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9845df-a4f2-4443-8c62-0fa8358cdd4a_2487x1370.png 848w, https://substackcdn.com/image/fetch/$s_!23lZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9845df-a4f2-4443-8c62-0fa8358cdd4a_2487x1370.png 1272w, https://substackcdn.com/image/fetch/$s_!23lZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9845df-a4f2-4443-8c62-0fa8358cdd4a_2487x1370.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Adding a raster layer to QGIS</figcaption></figure></div><p><em>Or, using AWS S3 Protocol (works for the same URI once we separate the S3 Bucket name and Object key)</em></p><ol start="3"><li><p>In the dialog: </p><ol><li><p><strong>Source type:</strong> Protocol: HTTP(S), cloud, etc.</p></li><li><p><strong>Type:</strong> AWS S3</p></li><li><p><strong>Bucket or container:</strong> sentinel-cogs</p></li><li><p><strong>Object key:</strong> sentinel-s2-l2a-cogs/36/R/VU/2025/3/S2C_36RVU_20250313_0_L2A/TCI.tif</p></li></ol></li><li><p>Click <strong>Add</strong></p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nnS_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ad45531-953a-4474-9837-96f24ec8c37e_2487x1370.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nnS_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ad45531-953a-4474-9837-96f24ec8c37e_2487x1370.png 424w, https://substackcdn.com/image/fetch/$s_!nnS_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ad45531-953a-4474-9837-96f24ec8c37e_2487x1370.png 848w, https://substackcdn.com/image/fetch/$s_!nnS_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ad45531-953a-4474-9837-96f24ec8c37e_2487x1370.png 1272w, https://substackcdn.com/image/fetch/$s_!nnS_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ad45531-953a-4474-9837-96f24ec8c37e_2487x1370.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nnS_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ad45531-953a-4474-9837-96f24ec8c37e_2487x1370.png" width="1456" height="802" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3ad45531-953a-4474-9837-96f24ec8c37e_2487x1370.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:802,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2796392,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.spectralreflectance.space/i/160484131?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ad45531-953a-4474-9837-96f24ec8c37e_2487x1370.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nnS_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ad45531-953a-4474-9837-96f24ec8c37e_2487x1370.png 424w, https://substackcdn.com/image/fetch/$s_!nnS_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ad45531-953a-4474-9837-96f24ec8c37e_2487x1370.png 848w, https://substackcdn.com/image/fetch/$s_!nnS_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ad45531-953a-4474-9837-96f24ec8c37e_2487x1370.png 1272w, https://substackcdn.com/image/fetch/$s_!nnS_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ad45531-953a-4474-9837-96f24ec8c37e_2487x1370.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Adding a raster layer to QGIS</figcaption></figure></div><div><hr></div><p>And then I wondered&#8230; </p><blockquote><p><em><strong>Could I do this programmatically?</strong></em> </p></blockquote><p>Could I:</p><ul><li><p>Query a STAC catalog for relevant imagery,</p></li><li><p>Select the COG assets I care about and </p></li><li><p>Build a QGIS project that streams these COGs &#8212; on-the-fly?</p></li></ul><p>Turns out&#8230; <strong>yes</strong>.</p><p>I&#8217;m not sure whether this is relevant to others, or if people have similar use cases, but I often find myself:</p><ul><li><p>Quickly browsing satellite images when starting a new project</p></li><li><p>Overlaying ML model outputs or vector masks on imagery to visually inspect them</p></li><li><p>Or simply loading multiple scenes to compare change over time</p></li></ul><p>Traditionally, that means downloading scenes, unzipping folders, organizing files, and manually dragging them into QGIS.</p><p>Now I can build a QGIS project with a script, giving me a much better starting point, with the key layers already in place.</p><p>Head over to the Jupyter Notebook to try it out for yourself &#8594; <a href="https://gist.github.com/xen0f0n/3d872d38f033d9231d302315b5ab80d3">streaming-COGs-in-QGIS.ipynb</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xaqR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79cc03f3-feb1-497f-af14-da6897dd534c_2490x1370.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xaqR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79cc03f3-feb1-497f-af14-da6897dd534c_2490x1370.png 424w, https://substackcdn.com/image/fetch/$s_!xaqR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79cc03f3-feb1-497f-af14-da6897dd534c_2490x1370.png 848w, https://substackcdn.com/image/fetch/$s_!xaqR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79cc03f3-feb1-497f-af14-da6897dd534c_2490x1370.png 1272w, https://substackcdn.com/image/fetch/$s_!xaqR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79cc03f3-feb1-497f-af14-da6897dd534c_2490x1370.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xaqR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79cc03f3-feb1-497f-af14-da6897dd534c_2490x1370.png" width="1456" height="801" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79cc03f3-feb1-497f-af14-da6897dd534c_2490x1370.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:801,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4845995,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.spectralreflectance.space/i/160484131?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79cc03f3-feb1-497f-af14-da6897dd534c_2490x1370.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xaqR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79cc03f3-feb1-497f-af14-da6897dd534c_2490x1370.png 424w, https://substackcdn.com/image/fetch/$s_!xaqR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79cc03f3-feb1-497f-af14-da6897dd534c_2490x1370.png 848w, https://substackcdn.com/image/fetch/$s_!xaqR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79cc03f3-feb1-497f-af14-da6897dd534c_2490x1370.png 1272w, https://substackcdn.com/image/fetch/$s_!xaqR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79cc03f3-feb1-497f-af14-da6897dd534c_2490x1370.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Screenshot of the loaded QGIS project that was built programmatically</figcaption></figure></div><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.spectralreflectance.space/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Spectral Reflectance! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[How to download an image from the EnMAP data archive]]></title><description><![CDATA[Users can now access the EnMAP data archive!]]></description><link>https://www.spectralreflectance.space/p/how-to-download-an-image-from-the-enmap-data-archive-e7417ae7c1d5</link><guid isPermaLink="false">https://www.spectralreflectance.space/p/how-to-download-an-image-from-the-enmap-data-archive-e7417ae7c1d5</guid><dc:creator><![CDATA[Akis Karagiannis]]></dc:creator><pubDate>Fri, 11 Nov 2022 16:18:26 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/aa0620e1-a7e9-4fa9-bb3d-4c58a8b299b5_800x443.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aRm1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72d07c2e-f3a6-488a-ba0f-b111c6c05f6f_800x443.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aRm1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72d07c2e-f3a6-488a-ba0f-b111c6c05f6f_800x443.jpeg 424w, https://substackcdn.com/image/fetch/$s_!aRm1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72d07c2e-f3a6-488a-ba0f-b111c6c05f6f_800x443.jpeg 848w, https://substackcdn.com/image/fetch/$s_!aRm1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72d07c2e-f3a6-488a-ba0f-b111c6c05f6f_800x443.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!aRm1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72d07c2e-f3a6-488a-ba0f-b111c6c05f6f_800x443.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aRm1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72d07c2e-f3a6-488a-ba0f-b111c6c05f6f_800x443.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72d07c2e-f3a6-488a-ba0f-b111c6c05f6f_800x443.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!aRm1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72d07c2e-f3a6-488a-ba0f-b111c6c05f6f_800x443.jpeg 424w, https://substackcdn.com/image/fetch/$s_!aRm1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72d07c2e-f3a6-488a-ba0f-b111c6c05f6f_800x443.jpeg 848w, https://substackcdn.com/image/fetch/$s_!aRm1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72d07c2e-f3a6-488a-ba0f-b111c6c05f6f_800x443.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!aRm1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72d07c2e-f3a6-488a-ba0f-b111c6c05f6f_800x443.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a><figcaption class="image-caption">&#8220;EnMAP&#8202;&#8212;&#8202;One im&#173;age, a wealth of in&#173;for&#173;ma&#173;tion&#8221; [<a href="https://www.dlr.de/content/en/images/2022/02/enmap-firstlight-wealth-of-information.html">link</a>]. Credit:&nbsp;DLR</figcaption></figure></div><p>Users can now access the EnMAP data archive! [<a href="https://medium.com/spectral-reflectance/spectral-reflectance-newsletter-7-e0380200a604#a1d1">link</a>]</p><p>People have been curious about EnMAP images since its launch in April and are very keen to explore this new and rich data source. It is only a matter of time before the first applications and use cases start coming out, showcasing EnMAP&#8217;s value and great potential! We have already had a peek;&nbsp;<br><em><a href="https://www.enmap.org/news/2022-09-22/">Makhtesh Ramon (Israel)&#8202;&#8212;&#8202;EnMAP records the largest erosion cirque in the world</a>,&nbsp;<br><a href="https://www.enmap.org/news/2022-10-19/">EnMAP images from the Lower Lausitz&#8202;&#8212;&#8202;An East-German region in transition</a></em>.</p><p>Since early last week, people have been able to sign up to EnMAP&#8217;s Instrument Planning platform and access the archive. Follow the rest of the article for instructions on how to download your first EnMAP image!</p><p>First, take a look at the <a href="https://www.enmap.org/data/doc/EN-GS-UM-6020_Portals_User_Manual_v1.1.pdf">Portals User Manual</a>;&nbsp;<br><em>5.6 Available User Roles</em> for the role descriptions and at <em>6. Step by Step Manual for the EnMAP Data Access and Ordering Process</em> for instructions on how to register, request a role assignment and search the EnMAP data archive.</p><p>Register at <a href="https://planning.enmap.org/">https://planning.enmap.org/ips/</a></p><p>Next, view the GIF below for how to search through the EnMAP data archive, select order options and place your order! <em>(click on the GIF to view on full-screen)<br>NOTE: You don&#8217;t have to draw a polygon on the map; this way, you will get all available results.</em></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-0JR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd29df0b0-64e7-4922-b1aa-ce67cf2e6a69_2546x1173.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-0JR!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd29df0b0-64e7-4922-b1aa-ce67cf2e6a69_2546x1173.gif 424w, https://substackcdn.com/image/fetch/$s_!-0JR!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd29df0b0-64e7-4922-b1aa-ce67cf2e6a69_2546x1173.gif 848w, https://substackcdn.com/image/fetch/$s_!-0JR!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd29df0b0-64e7-4922-b1aa-ce67cf2e6a69_2546x1173.gif 1272w, https://substackcdn.com/image/fetch/$s_!-0JR!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd29df0b0-64e7-4922-b1aa-ce67cf2e6a69_2546x1173.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-0JR!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd29df0b0-64e7-4922-b1aa-ce67cf2e6a69_2546x1173.gif" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d29df0b0-64e7-4922-b1aa-ce67cf2e6a69_2546x1173.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-0JR!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd29df0b0-64e7-4922-b1aa-ce67cf2e6a69_2546x1173.gif 424w, https://substackcdn.com/image/fetch/$s_!-0JR!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd29df0b0-64e7-4922-b1aa-ce67cf2e6a69_2546x1173.gif 848w, https://substackcdn.com/image/fetch/$s_!-0JR!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd29df0b0-64e7-4922-b1aa-ce67cf2e6a69_2546x1173.gif 1272w, https://substackcdn.com/image/fetch/$s_!-0JR!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd29df0b0-64e7-4922-b1aa-ce67cf2e6a69_2546x1173.gif 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>Although it is stated that <em>&#8220;<a href="https://www.dlr.de/content/en/articles/news/2022/04/20221102_ready-for-science.html">Archived data can be accessed immediately free of charge</a>&#8221;</em> it took about 30 hours for my order to move from &#8216;SUBMITTED&#8217; &#8594; &#8216;IN PROCESSING&#8217; &#8594; &#8216;PROCESSED&#8217;.&nbsp;<br>I guess a lot of people have been downloading EnMAP data these days!</p><p>Finally, once your order is processed, you will receive an email with the address of the FTP Delivery Server and the path to the data <em>(e.g. ftps://<a href="http://xen0f0n-cat1distributor@download.dsda.dlr.de//dims_op_oc_oc-en_700329792_1.tar.gz">xen0f0n-cat1distributor@download.dsda.dlr.de//dims_op_oc_oc-en_700329792_1.tar.gz</a>)</em></p><p>Follow <a href="https://eoweb.dlr.de/egp/docs/user/downloading_ordered_data.html">this guide</a> for a list of FTP clients to download your order.&nbsp;<br>Alternatively, you can use <strong>wget</strong> to do the same from the command line.</p><pre><code>wget &#8212; user {username}-cat1distributor &#8212; password {password} {ftps_link}</code></pre><p>Researchers just got an early Christmas present&#8230; and it has 230 spectral channels!</p>]]></content:encoded></item><item><title><![CDATA[How to download Earth Observation datasets using Python with Radiant MLHub, TorchGeo and Dataset4EO]]></title><description><![CDATA[I tried three different Python libraries to download Remote Sensing datasets; radiant_mlhub, torchgeo and dataset4eo.]]></description><link>https://www.spectralreflectance.space/p/how-to-download-earth-observation-datasets-using-python-with-radiant-mlhub-torchgeo-and-dataset4eo-41ed5cd7e724</link><guid isPermaLink="false">https://www.spectralreflectance.space/p/how-to-download-earth-observation-datasets-using-python-with-radiant-mlhub-torchgeo-and-dataset4eo-41ed5cd7e724</guid><dc:creator><![CDATA[Akis Karagiannis]]></dc:creator><pubDate>Sun, 23 Oct 2022 11:31:42 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7bd52a0f-2906-477e-8cde-88fe355bb138_800x400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DW7L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aaaf7a5-748b-4c8d-a583-b6fbdd494b3b_800x400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DW7L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aaaf7a5-748b-4c8d-a583-b6fbdd494b3b_800x400.png 424w, https://substackcdn.com/image/fetch/$s_!DW7L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aaaf7a5-748b-4c8d-a583-b6fbdd494b3b_800x400.png 848w, https://substackcdn.com/image/fetch/$s_!DW7L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aaaf7a5-748b-4c8d-a583-b6fbdd494b3b_800x400.png 1272w, https://substackcdn.com/image/fetch/$s_!DW7L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aaaf7a5-748b-4c8d-a583-b6fbdd494b3b_800x400.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DW7L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aaaf7a5-748b-4c8d-a583-b6fbdd494b3b_800x400.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9aaaf7a5-748b-4c8d-a583-b6fbdd494b3b_800x400.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DW7L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aaaf7a5-748b-4c8d-a583-b6fbdd494b3b_800x400.png 424w, https://substackcdn.com/image/fetch/$s_!DW7L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aaaf7a5-748b-4c8d-a583-b6fbdd494b3b_800x400.png 848w, https://substackcdn.com/image/fetch/$s_!DW7L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aaaf7a5-748b-4c8d-a583-b6fbdd494b3b_800x400.png 1272w, https://substackcdn.com/image/fetch/$s_!DW7L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aaaf7a5-748b-4c8d-a583-b6fbdd494b3b_800x400.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a><figcaption class="image-caption">Samples from the SEN12-FLOOD dataset</figcaption></figure></div><p>In a recent <a href="https://arxiv.org/abs/2210.04936">paper</a>, titled &#8220;EarthNets: Empowering AI in Earth Observation&#8221;, Xiong et al. put together a <a href="https://earthnets.retool.com/embedded/public/676aa812-0dca-4e3b-a596-b043d852571d">queryable collection</a> of 401 Remote Sensing datasets (featured in the <a href="https://medium.com/spectral-reflectance/spectral-reflectance-newsletter-4-cd66ff98e95#3102">latest Spectral Reflectance Newsletter</a>). As part of that, they also developed Dataset4EO&#8202;&#8212;&#8202;a Python library that provides an easy-to-use way of loading datasets. Having this as motivation I tried three different Python libraries we can use to download about 80 different Remote Sensing datasets; <em>radiant_mlhub</em>, <em>torchgeo</em> and <em>dataset4eo</em>.</p><p>These three Python libraries try to accomplish slightly different things;&nbsp;<br><em>radiant_mlhub.Dataset</em> provides access to 64 datasets for users to download locally, while <em>dataset4eo</em> and <em>torchgeo</em> go one step further; Both provide a PyTorch DataLoader for each of the available datasets. So, instead of having users write their own custom PyTorch Dataset/DataLoader classes, they can use pre-built ones. By doing so, users would have a streamlined way of downloading a dataset and feeding their models. Cool, right?</p><h3>Radiant MLHub</h3><p>The radiant_mlhub library just provides the means to download datasets, without any fancy DataLoader wrappers on top of it or Deep Learning models shipped with it.<br>After getting an API key things are fairly straightforward. <a href="https://mlhub.earth/datasets">Here</a> you can have a look at the 64 available datasets through radiant_mlhub. In the following code blocks there are instruction on how to request an API key, list the available datasets and download the CV4A Kenya Crop Type Competition dataset.</p><h3>Torchgeo</h3><p><a href="https://github.com/microsoft/torchgeo">Torchgeo</a> is a PyTorch domain library focused on geospatial data that provides both datasets and (pre-trained) models.&nbsp;<br>One of the great things about torchgeo is that there are available PyTorch DataLoaders for the datasets; meaning that once you download a dataset you can use an out-of-the-box DataLoader to train your model (in PyTorch)! However, in some cases torchgeo doesn&#8217;t provide a &#8220;download method&#8221; and expects that users have already downloaded the dataset. In addition, to download some datasets you need to have a Radiant MLHub API key, as a few of them are fetched from there. <a href="https://torchgeo.readthedocs.io/en/latest/api/datasets.html">Here</a> is a list of the datasets available through TorchGeo.&nbsp;<br>Once again, using torchgeo datasets is simple. Have a look at the code below for how to download the same dataset as before and iterate through a PyTorch DataLoader.</p><p><em>NOTE: At the moment of this writing, TorchGeo only supports radiant-mlhub 0.2.1&#8211;0.4. Versions 0.5+ won&#8217;t work! [<a href="https://github.com/microsoft/torchgeo/issues/711">link</a>]</em></p><p>To learn more about TorchGeo, <a href="https://arxiv.org/abs/2111.08872">here</a> is their paper on arxiv.</p><h3>Dataset4EO</h3><p>The EarthNets platform (part of which is dataset4eo) is designed to provide an easy way to apply (deep learning) models to Remote Sensing datasets. Furthermore, EarthNets pushes for a more consistent evaluation of deep learning methods on remote sensing data by selecting 5 different datasets as benchmarks on 3 different tasks; image classification, object detection ad semantic segmentation. As the authors state, &#8220;there are some difficulties in loading RS datasets, especially for researchers in other communities&#8221; and &#8220;it would be helpful to download, decompress and split the dataset [into train/val/test] automatically&#8221;.<br>The are several aspects of dataset4eo that make it very similar to TorchGeo; both provide a PyTorch (or PyTorch compatible) DataLoader and deep learning models to use out-of-the-box.<br>Here, however, we are more interested in the &#8220;dataset loading&#8221; part of it.</p><p>At the moment, I&#8217;m afraid that dataset4eo isn&#8217;t a matured enough codebase. While trying to run the code example and download the LandSlide4Sense dataset I was faced with several errors. Eventually I managed to run the LandSlide4Sense example and iterate through a PyTorch DataLoader. Check this ticket <a href="https://github.com/EarthNets/Dataset4EO/issues/2">here</a> for the steps I followed to work around the errors I was getting.</p><p>In the table below, I have put together a short comparison among the three libraries.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!g669!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6daaa09-7e3c-4135-86c5-74d55737923f_611x372.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!g669!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6daaa09-7e3c-4135-86c5-74d55737923f_611x372.png 424w, https://substackcdn.com/image/fetch/$s_!g669!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6daaa09-7e3c-4135-86c5-74d55737923f_611x372.png 848w, https://substackcdn.com/image/fetch/$s_!g669!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6daaa09-7e3c-4135-86c5-74d55737923f_611x372.png 1272w, https://substackcdn.com/image/fetch/$s_!g669!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6daaa09-7e3c-4135-86c5-74d55737923f_611x372.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!g669!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6daaa09-7e3c-4135-86c5-74d55737923f_611x372.png" width="611" height="372" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e6daaa09-7e3c-4135-86c5-74d55737923f_611x372.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:372,&quot;width&quot;:611,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!g669!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6daaa09-7e3c-4135-86c5-74d55737923f_611x372.png 424w, https://substackcdn.com/image/fetch/$s_!g669!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6daaa09-7e3c-4135-86c5-74d55737923f_611x372.png 848w, https://substackcdn.com/image/fetch/$s_!g669!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6daaa09-7e3c-4135-86c5-74d55737923f_611x372.png 1272w, https://substackcdn.com/image/fetch/$s_!g669!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6daaa09-7e3c-4135-86c5-74d55737923f_611x372.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Summary table for Radiant MLHub, TorchGeo and Dataset4EO.</figcaption></figure></div>]]></content:encoded></item></channel></rss>