<?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[Spatial Thoughts Newsletter]]></title><description><![CDATA[A monthly free newsletter with a compilation of new learning resources,  and updates from Spatial Thoughts.]]></description><link>https://spatialthoughts.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!g4ft!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F54a74359-dc8a-49a6-bd79-e5db232617bb_1280x1280.png</url><title>Spatial Thoughts Newsletter</title><link>https://spatialthoughts.substack.com</link></image><generator>Substack</generator><lastBuildDate>Thu, 16 Apr 2026 11:35:40 GMT</lastBuildDate><atom:link href="https://spatialthoughts.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Ujaval Gandhi]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[spatialthoughts@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[spatialthoughts@substack.com]]></itunes:email><itunes:name><![CDATA[Ujaval Gandhi]]></itunes:name></itunes:owner><itunes:author><![CDATA[Ujaval Gandhi]]></itunes:author><googleplay:owner><![CDATA[spatialthoughts@substack.com]]></googleplay:owner><googleplay:email><![CDATA[spatialthoughts@substack.com]]></googleplay:email><googleplay:author><![CDATA[Ujaval Gandhi]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Spatial Thoughts Newsletter #46]]></title><description><![CDATA[AI-assisted Coding, Upcoming Classes, Open-Source Workflow for Embeddings]]></description><link>https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-46</link><guid isPermaLink="false">https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-46</guid><dc:creator><![CDATA[Ujaval Gandhi]]></dc:creator><pubDate>Fri, 27 Mar 2026 18:25:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!A_Qs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55eb0d6-fff2-4e16-9b26-42da66e84d51_1440x827.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>New Era of AI-Assisted Coding</h2><p>The past few months have brought huge improvements in the tooling for AI-assisted agentic-coding workflows. <a href="https://claude.com/product/claude-code">Claude Code</a> has become an essential developer tool that has completely changed how we create and use software. For me, it has brought back the joy of programming by allowing rapid iteration and building tools that were either too hard or required a significant investment of time.</p><p>I was able to use Claude Code to organize my notes and many years of bookmarks into a <a href="https://spatialthoughts.github.io/notes/">neatly organized website</a>. The whole process of essentially building a <a href="https://github.com/spatialthoughts/notes/blob/main/CLAUDE.md">CLAUDE.md</a> file with instructions and working with Claude Code to push the data to a static website. Now the process is automated and the website gets updated with my new bookmarks periodically.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://spatialthoughts.github.io/notes/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zHq2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb01a3a31-3abe-4513-81ac-8246e062bfd1_1184x852.png 424w, https://substackcdn.com/image/fetch/$s_!zHq2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb01a3a31-3abe-4513-81ac-8246e062bfd1_1184x852.png 848w, https://substackcdn.com/image/fetch/$s_!zHq2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb01a3a31-3abe-4513-81ac-8246e062bfd1_1184x852.png 1272w, https://substackcdn.com/image/fetch/$s_!zHq2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb01a3a31-3abe-4513-81ac-8246e062bfd1_1184x852.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zHq2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb01a3a31-3abe-4513-81ac-8246e062bfd1_1184x852.png" width="1184" height="852" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b01a3a31-3abe-4513-81ac-8246e062bfd1_1184x852.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:852,&quot;width&quot;:1184,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:207824,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://spatialthoughts.github.io/notes/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://spatialthoughts.substack.com/i/192290754?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb01a3a31-3abe-4513-81ac-8246e062bfd1_1184x852.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_!zHq2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb01a3a31-3abe-4513-81ac-8246e062bfd1_1184x852.png 424w, https://substackcdn.com/image/fetch/$s_!zHq2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb01a3a31-3abe-4513-81ac-8246e062bfd1_1184x852.png 848w, https://substackcdn.com/image/fetch/$s_!zHq2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb01a3a31-3abe-4513-81ac-8246e062bfd1_1184x852.png 1272w, https://substackcdn.com/image/fetch/$s_!zHq2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb01a3a31-3abe-4513-81ac-8246e062bfd1_1184x852.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></figure></div><p>Building custom apps has also become much more accessible. I needed a Customer Relationship Management (CRM) for my business and with the help of Claude Code, I was able to build one within a day. The most challenging part was not building the app, but collecting and harmonizing all the data. AI agents excel at data wrangling - and with new capabilities like Chrome MCP support, I was able to automate data extraction easily. Read my post <a href="https://spatialthoughts.com/2026/03/20/training-academy-crm/">Building a CRM for My Small Business</a> where I have outlined my workflow.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://spatialthoughts.com/2026/03/20/training-academy-crm/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!A_Qs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55eb0d6-fff2-4e16-9b26-42da66e84d51_1440x827.webp 424w, https://substackcdn.com/image/fetch/$s_!A_Qs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55eb0d6-fff2-4e16-9b26-42da66e84d51_1440x827.webp 848w, https://substackcdn.com/image/fetch/$s_!A_Qs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55eb0d6-fff2-4e16-9b26-42da66e84d51_1440x827.webp 1272w, https://substackcdn.com/image/fetch/$s_!A_Qs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55eb0d6-fff2-4e16-9b26-42da66e84d51_1440x827.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!A_Qs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55eb0d6-fff2-4e16-9b26-42da66e84d51_1440x827.webp" width="1440" height="827" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f55eb0d6-fff2-4e16-9b26-42da66e84d51_1440x827.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:827,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:58442,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://spatialthoughts.com/2026/03/20/training-academy-crm/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://spatialthoughts.substack.com/i/192290754?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55eb0d6-fff2-4e16-9b26-42da66e84d51_1440x827.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!A_Qs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55eb0d6-fff2-4e16-9b26-42da66e84d51_1440x827.webp 424w, https://substackcdn.com/image/fetch/$s_!A_Qs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55eb0d6-fff2-4e16-9b26-42da66e84d51_1440x827.webp 848w, https://substackcdn.com/image/fetch/$s_!A_Qs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55eb0d6-fff2-4e16-9b26-42da66e84d51_1440x827.webp 1272w, https://substackcdn.com/image/fetch/$s_!A_Qs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff55eb0d6-fff2-4e16-9b26-42da66e84d51_1440x827.webp 1456w" sizes="100vw"></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></figure></div><h2>Upcoming Classes</h2><p>Python is more important than ever for leveraging AI, and it&#8217;s easier than ever to build things once you grasp the fundamentals. If you are a geospatial professional and feeling overwhelmed about where to begin learning to code, check out our upcoming Python class.</p><ul><li><p><a href="https://spatialthoughts.com/events/python-foundation-april-2026/">Python Foundation for Spatial Analysis</a> (<em>beginner-friendly</em>): 8-9 &amp; 15-16 April 2026</p></li><li><p><a href="https://spatialthoughts.com/events/advanced-qgis-april-2026/">Advanced QGIS</a> (<em>with QGIS.org certification</em>):  23, 24, 30 April &amp; 1 May 2026</p></li></ul><p>We also offer <a href="https://spatialthoughts.com/training/student-discounts-and-scholarships/">Student Discounts and Scholarships</a>. If you qualify, please do apply!</p><h2>Using Satellite Embedding with Open Source Tools</h2><p>Google&#8217;s AlphaEarth Foundations (AEF) Satellite Embeddings are now available in an easy-to-use cloud-native format. We have put together a tutorial on how to use this dataset at scale for performing similarity searchwithout Earth Engine or any proprietary technology.</p><div id="youtube2-8lRjPwFGs6Y" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;8lRjPwFGs6Y&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/8lRjPwFGs6Y?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h2>Teaching Coding to Kids</h2><p>For a long time, I&#8217;ve wanted to create learning content for younger students and children. Recently, I&#8217;ve started using agentic coding tools to build apps and games with my daughter, and it&#8217;s been a wonderful way to introduce programming concepts. In this video, we share one of the first apps we built together.</p><div id="youtube2-eb6PRCqeie4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;eb6PRCqeie4&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/eb6PRCqeie4?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div>]]></content:encoded></item><item><title><![CDATA[Spatial Thoughts Newsletter #45]]></title><description><![CDATA[FOSS4G Asia 2026, QGIS India User Group, Earth Engine Quota Limits]]></description><link>https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-45</link><guid isPermaLink="false">https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-45</guid><dc:creator><![CDATA[Ujaval Gandhi]]></dc:creator><pubDate>Sat, 28 Feb 2026 10:10:45 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/03ccbb28-05ed-47b2-8229-9d9a7631bec6_400x197.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>FOSS4G Asia 2026 Conference</h2><p>We organized one of the largest gatherings of the open-source geospatial community in India. I was part of the local organizing committee that brought the <a href="https://spatialthoughts.com/2026/01/29/foss4g-asia-2026/">FOSS4G Asia 2026</a> conference to Nashik, India. Read <a href="https://spatialthoughts.com/2026/01/29/foss4g-asia-2026/">my blog post</a> to learn about the event and access the resources.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://spatialthoughts.com/2026/01/29/foss4g-asia-2026/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7xeI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd40a7847-9694-4979-b9a2-fe2ccf551b06_720x223.jpeg 424w, https://substackcdn.com/image/fetch/$s_!7xeI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd40a7847-9694-4979-b9a2-fe2ccf551b06_720x223.jpeg 848w, https://substackcdn.com/image/fetch/$s_!7xeI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd40a7847-9694-4979-b9a2-fe2ccf551b06_720x223.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!7xeI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd40a7847-9694-4979-b9a2-fe2ccf551b06_720x223.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7xeI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd40a7847-9694-4979-b9a2-fe2ccf551b06_720x223.jpeg" width="720" height="223" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d40a7847-9694-4979-b9a2-fe2ccf551b06_720x223.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:223,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://spatialthoughts.com/2026/01/29/foss4g-asia-2026/&quot;,&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_!7xeI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd40a7847-9694-4979-b9a2-fe2ccf551b06_720x223.jpeg 424w, https://substackcdn.com/image/fetch/$s_!7xeI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd40a7847-9694-4979-b9a2-fe2ccf551b06_720x223.jpeg 848w, https://substackcdn.com/image/fetch/$s_!7xeI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd40a7847-9694-4979-b9a2-fe2ccf551b06_720x223.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!7xeI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd40a7847-9694-4979-b9a2-fe2ccf551b06_720x223.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>There were lots of interesting technical talks. All the talks were recorded, and the videos are now available on the <a href="https://www.youtube.com/@GeoBharatcommunity/videos">GeoBharat YouTube channel</a>.</p><h2>QGIS India User Group</h2><p>It was a personal milestone for me to convene and launch the&nbsp;<a href="https://in.qgis.org/">QGIS India User Group</a>&nbsp;in January 2026, bringing the QGIS community in India together.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://in.qgis.org/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RCRn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff300128e-ff56-4834-a717-f95092ec7df4_400x197.png 424w, https://substackcdn.com/image/fetch/$s_!RCRn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff300128e-ff56-4834-a717-f95092ec7df4_400x197.png 848w, https://substackcdn.com/image/fetch/$s_!RCRn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff300128e-ff56-4834-a717-f95092ec7df4_400x197.png 1272w, https://substackcdn.com/image/fetch/$s_!RCRn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff300128e-ff56-4834-a717-f95092ec7df4_400x197.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RCRn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff300128e-ff56-4834-a717-f95092ec7df4_400x197.png" width="400" height="197" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f300128e-ff56-4834-a717-f95092ec7df4_400x197.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:197,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://in.qgis.org/&quot;,&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_!RCRn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff300128e-ff56-4834-a717-f95092ec7df4_400x197.png 424w, https://substackcdn.com/image/fetch/$s_!RCRn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff300128e-ff56-4834-a717-f95092ec7df4_400x197.png 848w, https://substackcdn.com/image/fetch/$s_!RCRn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff300128e-ff56-4834-a717-f95092ec7df4_400x197.png 1272w, https://substackcdn.com/image/fetch/$s_!RCRn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff300128e-ff56-4834-a717-f95092ec7df4_400x197.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>In the short time that the group has been around, it has become a thriving community. We were able to build and launch the website at  <a href="https://in.qgis.org/">in.qgis.org</a> along with case studies sourced from users across the country. If you haven&#8217;t yet, head over to the website and join the community.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://in.qgis.org/#join-us&quot;,&quot;text&quot;:&quot;Join the Community&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://in.qgis.org/#join-us"><span>Join the Community</span></a></p><p>You can watch our presentation at the <a href="https://github.com/qgis/QGIS/wiki/QOD-February-2026#topic-hello-from-qgis-india-user-group">QGIS Open Day</a> to learn about the journey and hear about interesting ways QGIS and QField is being used in India.</p><div id="youtube2--A-omz7EYwE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;-A-omz7EYwE&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/-A-omz7EYwE?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2>Earth Engine Quota Limits</h2><p>Google recently announced <a href="https://developers.google.com/earth-engine/guides/noncommercial_tiers">Earth Engine Noncommercial Tiers</a> for Google Earth Engine. This is a big change that affects all the non-commercial users of the GEE platform. Read <a href="https://spatialthoughts.com/2026/02/09/gee-quota-monitoring/">my blog post</a> with details on how to monitor your quota and prepare yourself for the upcoming deadline in April. While most users will be able to continue using Earth Engine without much disruption, it is a good time to start learning cloud-native technologies to be able to leverage the growing ecosystem of cloud-agnostic data processing tools. The post has my thoughts and recommendations for future-proofing yourself.<br></p>]]></content:encoded></item><item><title><![CDATA[Spatial Thoughts Newsletter #44]]></title><description><![CDATA[New QGIS+GEE Workshop, Upcoming in-person workshops at FOSS4G Asia 2026]]></description><link>https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-44</link><guid isPermaLink="false">https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-44</guid><dc:creator><![CDATA[Ujaval Gandhi]]></dc:creator><pubDate>Tue, 23 Dec 2025 12:31:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/FjyXQqoSUUo" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>New QGIS+GEE Workshop</h2><p>Our new workshop "From Cloud to Desktop: Working with Earth Engine Data in QGIS" is now available on YouTube! This workshop provides a gentle introduction to Earth Engine for QGIS users and unlocks Petabytes of analysis-ready cloud datasets in QGIS without any coding!</p><div id="youtube2-FjyXQqoSUUo" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;FjyXQqoSUUo&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/FjyXQqoSUUo?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p></p><div><hr></div><h2>Upcoming In-Person Workshops</h2><p>I will be hosting several in-person workshops at the <a href="https://foss4g.asia/2026/">FOSS4G Asia 2026</a> conference in Nashik, India, from 20-25 January 2026. </p><ul><li><p>21 January 2026: <strong>Cloud-based Remote Sensing with QGIS and Google Earth Engine Workshop</strong> by Ujaval Gandhi (4hrs)</p></li><li><p>22 January 2026: <strong>QGIS Automation with Python Actions</strong> by Ujaval Gandhi (4hrs)</p></li></ul><p>This will also be an opportunity to meet and connect with fellow open-source users and developers. Do check the conference schedule and purchase a conference ticket to attend these.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://foss4g.asia/2026/program/workshops/&quot;,&quot;text&quot;:&quot;See Workshop Schedule&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://foss4g.asia/2026/program/workshops/"><span>See Workshop Schedule</span></a></p><p></p><div><hr></div><h2>FOSS4G 2025 Talks Available</h2><p>Video recordings of my talks at the FOSS4G 2025 conference in Auckland are now available. </p><ul><li><p>Lightning Talk: <a href="https://www.youtube.com/watch?v=gjezz7nYSas">Building a Business with Open Content and Open Source Software</a></p></li><li><p>Desktop GIS and Data Collection Track: <a href="https://www.youtube.com/watch?v=qb3ByIBrYQg">Wait... QGIS Can Do What?</a></p></li><li><p>Desktop GIS and Data Collection Track: <a href="https://www.youtube.com/watch?v=mhVp7D8bL54">Workflow Automation with QGIS: Case Studies and Tips</a></p></li></ul><div id="youtube2-gjezz7nYSas" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;gjezz7nYSas&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/gjezz7nYSas?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2></h2><div><hr></div><h2>Spatial Impact Award 2025</h2><p> I am grateful to <strong><a href="https://atlas.co/spatial-impact/2025/ujaval-gandhi/">Atlas.co</a></strong> for selecting me as one of the recipients of the Spatial Impact Award 2025 and recognizing my work at Spatial Thoughts. I was particularly excited that the award recognized &#8220;<em>... commitment to making quality geospatial education accessible regardless of economic circumstances has helped democratize GIS skills globally... &#8220; [<a href="https://atlas.co/spatial-impact/2025/ujaval-gandhi/">Read more</a>]</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://atlas.co/spatial-impact/2025/ujaval-gandhi/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!47b_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba192373-5087-4327-99b5-a13c56b1624a_2048x1042.jpeg 424w, https://substackcdn.com/image/fetch/$s_!47b_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba192373-5087-4327-99b5-a13c56b1624a_2048x1042.jpeg 848w, https://substackcdn.com/image/fetch/$s_!47b_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba192373-5087-4327-99b5-a13c56b1624a_2048x1042.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!47b_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba192373-5087-4327-99b5-a13c56b1624a_2048x1042.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!47b_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba192373-5087-4327-99b5-a13c56b1624a_2048x1042.jpeg" width="1456" height="741" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ba192373-5087-4327-99b5-a13c56b1624a_2048x1042.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:741,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:145362,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://atlas.co/spatial-impact/2025/ujaval-gandhi/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://spatialthoughts.substack.com/i/182398588?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba192373-5087-4327-99b5-a13c56b1624a_2048x1042.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!47b_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba192373-5087-4327-99b5-a13c56b1624a_2048x1042.jpeg 424w, https://substackcdn.com/image/fetch/$s_!47b_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba192373-5087-4327-99b5-a13c56b1624a_2048x1042.jpeg 848w, https://substackcdn.com/image/fetch/$s_!47b_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba192373-5087-4327-99b5-a13c56b1624a_2048x1042.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!47b_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba192373-5087-4327-99b5-a13c56b1624a_2048x1042.jpeg 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></figure></div><p></p><p><br></p>]]></content:encoded></item><item><title><![CDATA[Spatial Thoughts Newsletter #43]]></title><description><![CDATA[FOSS4G Auckland, New Workshops, Xarray tutorials, Python Foundation for Spatial Analysis Cohort, FOSS4G Asia 2026]]></description><link>https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-43</link><guid isPermaLink="false">https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-43</guid><dc:creator><![CDATA[Ujaval Gandhi]]></dc:creator><pubDate>Mon, 24 Nov 2025 05:04:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-siX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c952a75-8c43-426f-9b0f-3bfc57507e1f_992x414.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>FOSS4G 2025 Conference</h2><p>I traveled to Auckland, New Zealand to attend the global FOSS4G 2025 conference. An annual gathering of the top open-source voices in geospatial - this event had a lot to offer. Check out my detailed blog post with details on the sessions and resources.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://spatialthoughts.com/2025/11/23/foss4g-2025/&quot;,&quot;text&quot;:&quot;View Blog Post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://spatialthoughts.com/2025/11/23/foss4g-2025/"><span>View Blog Post</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://spatialthoughts.com/2025/11/23/foss4g-2025/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-siX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c952a75-8c43-426f-9b0f-3bfc57507e1f_992x414.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-siX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c952a75-8c43-426f-9b0f-3bfc57507e1f_992x414.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-siX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c952a75-8c43-426f-9b0f-3bfc57507e1f_992x414.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-siX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c952a75-8c43-426f-9b0f-3bfc57507e1f_992x414.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-siX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c952a75-8c43-426f-9b0f-3bfc57507e1f_992x414.jpeg" width="992" height="414" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4c952a75-8c43-426f-9b0f-3bfc57507e1f_992x414.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:414,&quot;width&quot;:992,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:129255,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://spatialthoughts.com/2025/11/23/foss4g-2025/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://spatialthoughts.substack.com/i/179785889?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c952a75-8c43-426f-9b0f-3bfc57507e1f_992x414.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-siX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c952a75-8c43-426f-9b0f-3bfc57507e1f_992x414.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-siX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c952a75-8c43-426f-9b0f-3bfc57507e1f_992x414.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-siX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c952a75-8c43-426f-9b0f-3bfc57507e1f_992x414.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-siX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c952a75-8c43-426f-9b0f-3bfc57507e1f_992x414.jpeg 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></figure></div><div><hr></div><h2>Upcoming Classes</h2><p>Just a week to go before our next cohort of the Python Foundation for Spatial Analysis course. Learning Python is an essential skill for geospatial professionals in the age of AI - and our globally acclaimed live instructor-led class will help you get started in this journey. <em><strong>Last few seats left</strong></em>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://spatialthoughts.com/events/python-foundation-dec-2025/&quot;,&quot;text&quot;:&quot;See Course Details&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://spatialthoughts.com/events/python-foundation-dec-2025/"><span>See Course Details</span></a></p><div><hr></div><h2>New Workshop: Cloud-based Remote Sensing with QGIS and Google Earth Engine</h2><p>We built and launched a new workshop that teaches how to use the Google Earth Engine Plugin for QGIS. This enables QGIS users to use data from GEE&#8217;s vast data catalog in QGIS without any coding. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://courses.spatialthoughts.com/qgis-gee-workshop.html#&quot;,&quot;text&quot;:&quot;View Workshop Materials&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://courses.spatialthoughts.com/qgis-gee-workshop.html#"><span>View Workshop Materials</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://courses.spatialthoughts.com/qgis-gee-workshop.html#" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LSzK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1e2968f-ac4f-4bd6-98a4-bcd5530623ec_897x747.png 424w, https://substackcdn.com/image/fetch/$s_!LSzK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1e2968f-ac4f-4bd6-98a4-bcd5530623ec_897x747.png 848w, https://substackcdn.com/image/fetch/$s_!LSzK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1e2968f-ac4f-4bd6-98a4-bcd5530623ec_897x747.png 1272w, https://substackcdn.com/image/fetch/$s_!LSzK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1e2968f-ac4f-4bd6-98a4-bcd5530623ec_897x747.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LSzK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1e2968f-ac4f-4bd6-98a4-bcd5530623ec_897x747.png" width="897" height="747" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b1e2968f-ac4f-4bd6-98a4-bcd5530623ec_897x747.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:747,&quot;width&quot;:897,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;QGIS Model for Calculating Landcover Statistics&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://courses.spatialthoughts.com/qgis-gee-workshop.html#&quot;,&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="QGIS Model for Calculating Landcover Statistics" title="QGIS Model for Calculating Landcover Statistics" srcset="https://substackcdn.com/image/fetch/$s_!LSzK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1e2968f-ac4f-4bd6-98a4-bcd5530623ec_897x747.png 424w, https://substackcdn.com/image/fetch/$s_!LSzK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1e2968f-ac4f-4bd6-98a4-bcd5530623ec_897x747.png 848w, https://substackcdn.com/image/fetch/$s_!LSzK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1e2968f-ac4f-4bd6-98a4-bcd5530623ec_897x747.png 1272w, https://substackcdn.com/image/fetch/$s_!LSzK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1e2968f-ac4f-4bd6-98a4-bcd5530623ec_897x747.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></figure></div><div><hr></div><h2>New Xarray + Dask Tutorials</h2><p>We published a whole set of new Python tutorials for working with large scale remote sensing datasets. Each tutorial is accompanied by a Notebook that can be run on Google Colab for free. (Click the &#128640; icon located at the top of each tutorial to open it on Colab)</p><ul><li><p><a href="https://www.geopythontutorials.com/notebooks/xarray_raster_sampling.html">Sampling Raster Data using Points with Xarray</a></p></li><li><p><a href="https://www.geopythontutorials.com/notebooks/xarray_zonal_stats.html">Sampling Raster Data using Polygons with Xarray</a></p></li><li><p><a href="https://www.geopythontutorials.com/notebooks/xarray_extracting_time_series.html">Extracting Time Series at a Single Point with Xarray</a></p></li><li><p><a href="https://www.geopythontutorials.com/notebooks/xarray_extracting_time_series_multiple.html">Extracting Time Series at Multiple Points with Xarray</a></p></li><li><p><a href="https://www.geopythontutorials.com/notebooks/xarray_zonal_stats_time_series.html">Extracting Time Series at Multiple Polygons with Xarray</a></p></li><li><p><a href="https://www.geopythontutorials.com/notebooks/xarray_processing_satellite_images.html">Processing Satellite Images with XArray</a></p></li><li><p><a href="https://www.geopythontutorials.com/notebooks/xarray_climate_trends.html">Computing Pixel-Wise Long-Term Climate Trends</a> </p></li></ul><h2>Workflow Automation with QGIS</h2><p>Check out the video recording of my talk featuring real-world case studies for automating complex workflows using QGIS Model Designer.</p><div id="youtube2-82RmkotU1gU" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;82RmkotU1gU&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/82RmkotU1gU?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2>FOSS4G Asia 2026 in India!</h2><p>I am part of the local organizing committee for the upcoming <a href="https://foss4g.asia/2026/">FOSS4G Asia 2026</a> conference. This conference will take place in Nashik, India from 21-25 Janauary 2026. I invite you to submit a talk, workshop, or a paper and join us at this international gathering of open-source community. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://foss4g.asia/2026/&quot;,&quot;text&quot;:&quot;View Conference Details&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://foss4g.asia/2026/"><span>View Conference Details</span></a></p><p><br></p>]]></content:encoded></item><item><title><![CDATA[Spatial Thoughts Newsletter #42]]></title><description><![CDATA[Satellite Embedding Dataset, End-to-End GEE Cohort, QGIS Earth Engine Plugin Tutorials]]></description><link>https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-42</link><guid isPermaLink="false">https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-42</guid><dc:creator><![CDATA[Ujaval Gandhi]]></dc:creator><pubDate>Wed, 27 Aug 2025 12:32:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!4ukv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5c695f-dda4-4785-9a5f-b3677229adf1_800x790.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Satellite Embedding Dataset</h2><p>Google recently launched the "<a href="https://medium.com/google-earth/ai-powered-pixels-introducing-googles-satellite-embedding-dataset-31744c1f4650">Satellite Embedding Dataset</a>" - produced by their new AI foundation model. It is a big leap in making remote sensing and climate datasets useful and enabling novel use cases. I collaborated with the Google DeepMind and Earth Engine teams to develop official learning content for the dataset and happy to announce that they are now available in the Google Earth Engine User Guide. You can work through each tutorial from the links below:</p><ul><li><p><a href="https://developers.google.com/earth-engine/tutorials/community/satellite-embedding-01-introduction">Introduction to the Satellite Embedding Dataset</a></p></li><li><p><a href="https://developers.google.com/earth-engine/tutorials/community/satellite-embedding-02-unsupervised-classification">Crop Type Mapping using Unsupervised Classification</a></p></li><li><p><a href="https://developers.google.com/earth-engine/tutorials/community/satellite-embedding-03-supervised-classification">Mapping Mangroves with Supervised Classification</a></p></li><li><p><a href="https://developers.google.com/earth-engine/tutorials/community/satellite-embedding-04-regression">Predicting Above-Ground Biomass (AGB) with Regression</a></p></li><li><p><a href="https://developers.google.com/earth-engine/tutorials/community/satellite-embedding-05-similarity-search">Finding Grain Silos with Similarity Search</a></p></li></ul><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e5c695f-dda4-4785-9a5f-b3677229adf1_800x790.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cbe9a299-78e3-4678-949b-29e0ee78a65d_1200x860.jpeg&quot;}],&quot;caption&quot;:&quot;Satellite Embedding Tutorials (left) Crop Type Mapping (right) Similarity Search&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/14fd37b0-c824-4fac-a3cd-239cb1e52472_1456x720.png&quot;}},&quot;isEditorNode&quot;:true}"></div><h2>Upcoming Classes</h2><p>Want to use new exciting AI-powered datasets like Satellite Embedding? Join the september cohort of our instructor-led <a href="https://spatialthoughts.com/events/end-to-end-gee-sep-2025/">End-to-End Google Earth Engine</a> class. This is a beginner-friendly 3-week intensive program that covers everything you need to learn to use GEE. You will also earn our globally recognized certification and be eligible for lifetime free technical support.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://spatialthoughts.com/events/end-to-end-gee-sep-2025/&quot;,&quot;text&quot;:&quot;See Course Details&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://spatialthoughts.com/events/end-to-end-gee-sep-2025/"><span>See Course Details</span></a></p><p>This will be the last cohort of the year for Earth Engine. Grab one of the last few remaining seats if learning GEE is on your wishlist! Student discounts available!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://spatialthoughts.com/events/end-to-end-gee-sep-2025/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4bTn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51d3fc0-241f-4795-92e6-350e4f1f9268_1920x1080.webp 424w, https://substackcdn.com/image/fetch/$s_!4bTn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51d3fc0-241f-4795-92e6-350e4f1f9268_1920x1080.webp 848w, https://substackcdn.com/image/fetch/$s_!4bTn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51d3fc0-241f-4795-92e6-350e4f1f9268_1920x1080.webp 1272w, https://substackcdn.com/image/fetch/$s_!4bTn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51d3fc0-241f-4795-92e6-350e4f1f9268_1920x1080.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4bTn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51d3fc0-241f-4795-92e6-350e4f1f9268_1920x1080.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b51d3fc0-241f-4795-92e6-350e4f1f9268_1920x1080.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1567580,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://spatialthoughts.com/events/end-to-end-gee-sep-2025/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://spatialthoughts.substack.com/i/171861843?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51d3fc0-241f-4795-92e6-350e4f1f9268_1920x1080.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4bTn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51d3fc0-241f-4795-92e6-350e4f1f9268_1920x1080.webp 424w, https://substackcdn.com/image/fetch/$s_!4bTn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51d3fc0-241f-4795-92e6-350e4f1f9268_1920x1080.webp 848w, https://substackcdn.com/image/fetch/$s_!4bTn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51d3fc0-241f-4795-92e6-350e4f1f9268_1920x1080.webp 1272w, https://substackcdn.com/image/fetch/$s_!4bTn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51d3fc0-241f-4795-92e6-350e4f1f9268_1920x1080.webp 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></figure></div><h2>Google Earth Plugin for QGIS</h2><p>Exciting news for QGIS users! The <a href="https://gee-community.github.io/qgis-earthengine-plugin/">Google Earth Engine Plugin for QGIS</a> is now updated with new no-code tools that allow you to download and use Earth Engine datasets in QGIS easily. I worked with the team to develop tutorials to help users use this plugin effectively. Check out my new tutorials:</p><ul><li><p><a href="https://gee-community.github.io/qgis-earthengine-plugin/tutorials/downloading_images/">Downloading Images from Earth Engine</a>: A tutorial showing how to use the Google Earth Engine plugin to create a Sentinel-2 median composite for a region and download it as a GeoTIFF file.</p></li><li><p><a href="https://gee-community.github.io/qgis-earthengine-plugin/tutorials/building_a_workflow/">Building a Workflow</a>: A tutorial on using the QGIS Model Designer to build a workflow to download a data layer of Cocoa Probability from the Earth Engine Data Catalog and calculate the percentage of cocoa plantation in a plot boundary.</p></li><li><p><a href="https://gee-community.github.io/qgis-earthengine-plugin/tutorials/visualizing_data/">Visualizing Data from Earth Engine</a>: Use the Earth Engine Python API to load a data layer from CMIP6 Climate Projections dataset and visualize it on a globe.</p></li></ul><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f9564b6f-6d25-4b36-9b9e-a200429d2ecb_1549x985.png&quot;}],&quot;caption&quot;:&quot;Creating a Globe Visualization using the QGIS Google Earth Engine Plugin&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f9564b6f-6d25-4b36-9b9e-a200429d2ecb_1549x985.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>I also contributed the new <a href="https://gee-community.github.io/qgis-earthengine-plugin/installation/">Installation</a> and <a href="https://gee-community.github.io/qgis-earthengine-plugin/troubleshooting/">Troubleshooting</a> guides in the plugin documentation that will help you configure the plugin correctly.</p><p>For PyQGIS developers, the new plugin is a great reference on how to develop dynamic forms in Processing algorithms. If you are curious about it, see the <a href="https://developmentseed.org/blog/2025-08-06-qgis-plugin/">Better QGIS Plugins</a> post by Development Seed.</p><h2>QGIS+PostGIS Tutorials from LunaGeo</h2><p><a href="https://lunageo.com/">Luna Geospatial</a> recently made all of their learning content available openly. Check out the <a href="https://lunageo.com/tutorials/">newly released tutorials</a> covering QGIS, PostGIS, and Geoserver. Of particular interest will be the tutorials showcasing how to use and manage PostGIS databases from QGIS.</p><h2>Geo for Good Summit at Singapore</h2><p>I will be attending the <a href="https://earthoutreachonair.withgoogle.com/events/geoforgood25-singapore">Geo for Good Conference in Singapore</a> from September 8-12 2025. Would love to connect with the geospatial community there. If you will be around during that time, do drop me a note, and I would love to meet up!</p><h2></h2>]]></content:encoded></item><item><title><![CDATA[Spatial Thoughts Newsletter #41]]></title><description><![CDATA[Building Your First QGIS Plugin, Scaling Earth Engine Workflows and upcoming classes]]></description><link>https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-41</link><guid isPermaLink="false">https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-41</guid><dc:creator><![CDATA[Ujaval Gandhi]]></dc:creator><pubDate>Wed, 23 Jul 2025 15:02:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/HXaD6xyq7m0" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Building Your First QGIS Plugin</h2><p>We released the video and course materials of our very popular workshop <a href="https://courses.spatialthoughts.com/qgis-plugin-workshop.html">Building Your First QGIS Plugin</a>. It is designed to help you take your first steps in building QGIS plugins - learning the basics of the plugin architecture and getting hands-on experience with the process. We have already seen several people use this material to <a href="https://www.linkedin.com/posts/lalitbc_qgis-plugin-opensource-activity-7351482448095907841-I6Gg/">build and release their first plugin</a>. You can view the full ad-free recording of the workshop below.</p><div id="youtube2-HXaD6xyq7m0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;HXaD6xyq7m0&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/HXaD6xyq7m0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2>Scaling Earth Engine Workflows</h2><p>I gave a talk on coding best practices for large computations in Google Earth Engine. This talk is filled with practical advice and code examples to help you overcome common GEE errors like <em>"Computation timed out"</em> or <em>"User memory limit exceeded"</em>  when running large analyses. Check out the video of the talk to learn more.</p><div id="youtube2-zKG-jIy3V90" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;zKG-jIy3V90&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/zKG-jIy3V90?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2>Upcoming Classes</h2><p>We are offering our 27-hour hands-on instructor-led class on <a href="https://spatialthoughts.com/events/gee-wrm-aug-2025/">Google Earth Engine for Water Resources Management </a>in August. If you are looking to learn Earth Engine for climate and hydrological applications, this is the perfect course for you. Check out the schedule and register for the last few remaining seats! We also have student discounts and scholarships available for deserving candidates. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://spatialthoughts.com/events/gee-wrm-aug-2025/&quot;,&quot;text&quot;:&quot;See Course Details&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://spatialthoughts.com/events/gee-wrm-aug-2025/"><span>See Course Details</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://spatialthoughts.com/events/gee-wrm-aug-2025/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Bgcv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce7b1f56-0a78-41ed-958d-7adfb8fa070e_800x450.png 424w, https://substackcdn.com/image/fetch/$s_!Bgcv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce7b1f56-0a78-41ed-958d-7adfb8fa070e_800x450.png 848w, https://substackcdn.com/image/fetch/$s_!Bgcv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce7b1f56-0a78-41ed-958d-7adfb8fa070e_800x450.png 1272w, https://substackcdn.com/image/fetch/$s_!Bgcv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce7b1f56-0a78-41ed-958d-7adfb8fa070e_800x450.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Bgcv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce7b1f56-0a78-41ed-958d-7adfb8fa070e_800x450.png" width="800" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ce7b1f56-0a78-41ed-958d-7adfb8fa070e_800x450.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:450,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://spatialthoughts.com/events/gee-wrm-aug-2025/&quot;,&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_!Bgcv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce7b1f56-0a78-41ed-958d-7adfb8fa070e_800x450.png 424w, https://substackcdn.com/image/fetch/$s_!Bgcv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce7b1f56-0a78-41ed-958d-7adfb8fa070e_800x450.png 848w, https://substackcdn.com/image/fetch/$s_!Bgcv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce7b1f56-0a78-41ed-958d-7adfb8fa070e_800x450.png 1272w, https://substackcdn.com/image/fetch/$s_!Bgcv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce7b1f56-0a78-41ed-958d-7adfb8fa070e_800x450.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></figure></div><p></p>]]></content:encoded></item><item><title><![CDATA[Spatial Thoughts Newsletter #40]]></title><description><![CDATA[QGIS Expressions Masterclass, User Conference 2025, QGIS Easter Eggs, and XArray Tutorials]]></description><link>https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-40</link><guid isPermaLink="false">https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-40</guid><dc:creator><![CDATA[Ujaval Gandhi]]></dc:creator><pubDate>Tue, 17 Jun 2025 16:01:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/x3i9qyFGgcQ" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>QGIS Expressions Masterclass</h2><p>Creating a comprehensive resource for learning QGIS expressions was on my wishlist for a long time. Glad to finally be able to release our newest workshop <a href="https://courses.spatialthoughts.com/qgis-expressions.html">QGIS Expressions Masterclass</a> as a free learning resource. This class provides a structured overview of the QGIS expression engine. We start with the basics of expression syntax and gradually build complex expressions to solve real-world problems. </p><div id="youtube2-x3i9qyFGgcQ" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;x3i9qyFGgcQ&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/x3i9qyFGgcQ?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2>QGIS User Conference 2025</h2><p>I attended QGIS International User Conference 2025 in Norrk&#246;ping, Sweden from 2-3 June 2025. One of my favorite conferences of the year - the conference was full of new announcements, talks, networking events and workshops. Check out my blog post with the details, pictures, and links to resources.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://spatialthoughts.com/2025/06/11/qgis-user-conference-2025/&quot;,&quot;text&quot;:&quot;View Blog Post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://spatialthoughts.com/2025/06/11/qgis-user-conference-2025/"><span>View Blog Post</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://spatialthoughts.com/2025/06/11/qgis-user-conference-2025/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WcK3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56aa9dca-36e3-414e-a0a0-7b1a91a9129f_1600x990.webp 424w, https://substackcdn.com/image/fetch/$s_!WcK3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56aa9dca-36e3-414e-a0a0-7b1a91a9129f_1600x990.webp 848w, https://substackcdn.com/image/fetch/$s_!WcK3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56aa9dca-36e3-414e-a0a0-7b1a91a9129f_1600x990.webp 1272w, https://substackcdn.com/image/fetch/$s_!WcK3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56aa9dca-36e3-414e-a0a0-7b1a91a9129f_1600x990.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WcK3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56aa9dca-36e3-414e-a0a0-7b1a91a9129f_1600x990.webp" width="1456" height="901" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/56aa9dca-36e3-414e-a0a0-7b1a91a9129f_1600x990.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:901,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:434524,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://spatialthoughts.com/2025/06/11/qgis-user-conference-2025/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://spatialthoughts.substack.com/i/166138201?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56aa9dca-36e3-414e-a0a0-7b1a91a9129f_1600x990.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WcK3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56aa9dca-36e3-414e-a0a0-7b1a91a9129f_1600x990.webp 424w, https://substackcdn.com/image/fetch/$s_!WcK3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56aa9dca-36e3-414e-a0a0-7b1a91a9129f_1600x990.webp 848w, https://substackcdn.com/image/fetch/$s_!WcK3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56aa9dca-36e3-414e-a0a0-7b1a91a9129f_1600x990.webp 1272w, https://substackcdn.com/image/fetch/$s_!WcK3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56aa9dca-36e3-414e-a0a0-7b1a91a9129f_1600x990.webp 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></figure></div><h2>QGIS Easter Eggs</h2><p>I made a fun video with my daughter showing the hidden features of QGIS. How many of them do you know? Can you guess the last easter egg?</p><div id="youtube2-pH9Am3FgRS0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;pH9Am3FgRS0&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/pH9Am3FgRS0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2>New XArray Tutorials</h2><p>We continue to build and publish new tutorials for working with Earth Observation data using Python. If you are new to XArray, start our video tutorial series from links below.</p><ul><li><p><a href="https://www.youtube.com/watch?v=l1Q3gKnH5Ik">Basic Raster Styling and Analysis</a></p></li><li><p><a href="https://www.youtube.com/watch?v=Ff9ctKNlku0">Raster Mosaicing and Clipping</a></p></li><li><p><a href="https://www.youtube.com/watch?v=AJHdwcf8ySE">Sampling Raster Data with XArray</a></p></li></ul><div id="youtube2-AJHdwcf8ySE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;AJHdwcf8ySE&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/AJHdwcf8ySE?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Make sure to subscribe to our <a href="https://www.youtube.com/c/spatialthoughts">YouTube channel</a> to know when new tutorials are published. </p><h2>Upcoming Classes</h2><p>If you are looking to enhance your technical skills, consider joining our instructor-led cohorts with a diverse international group. Our classes are unlike any other online programs you may have attended - and set in a highly interactive and lively environment. These are also some of the most affordable geospatial programs offering certification and lifetime free technical support. Check out our <a href="https://spatialthoughts.com/events/">upcoming cohorts</a> for details.</p><ul><li><p><strong>Advanced QGIS Certification</strong>: June 2025</p></li><li><p><strong>Mapping and Data Visualization with Python</strong>: July 2025</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://spatialthoughts.com/events/&quot;,&quot;text&quot;:&quot;View Schedule and Register&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://spatialthoughts.com/events/"><span>View Schedule and Register</span></a></p>]]></content:encoded></item><item><title><![CDATA[Spatial Thoughts Newsletter #39]]></title><description><![CDATA[High-resolution DSM from Google Buildings, PyQGIS Masterclass, New Python tutorials]]></description><link>https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-39</link><guid isPermaLink="false">https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-39</guid><dc:creator><![CDATA[Ujaval Gandhi]]></dc:creator><pubDate>Mon, 14 Apr 2025 08:28:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gnKQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e249ffe-b015-4d83-9093-9140db4d4c85_1200x742.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Extracting High-Resolution DSMs using Google Open Buildings Temporal 2.5D Dataset</h2><p>I spent the last few weeks exploring the recently released Open Buildings 2.5D Temporal V1 from Google. This is a hugely valuable dataset that can help researchers in developing countries get access to high-resolution building heights data. Combining this with other open datasets, you can derive a <em><strong>High-resolution Digital Surface Model (DSM)</strong></em> at 4m spatial resolution across large swaths of the world. You can also extract 2.5D building footprints polygons for each of the years from 2016-2023. Check out the newly published article <a href="https://spatialthoughts.com/2025/03/29/building_height_gee/">Extracting Building Heights from Open Buildings 2.5D Temporal Dataset</a> with open-source code for Google Earth Engine (GEE) for extracting this data for your area of interest.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://spatialthoughts.com/2025/03/29/building_height_gee/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gnKQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e249ffe-b015-4d83-9093-9140db4d4c85_1200x742.png 424w, https://substackcdn.com/image/fetch/$s_!gnKQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e249ffe-b015-4d83-9093-9140db4d4c85_1200x742.png 848w, https://substackcdn.com/image/fetch/$s_!gnKQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e249ffe-b015-4d83-9093-9140db4d4c85_1200x742.png 1272w, https://substackcdn.com/image/fetch/$s_!gnKQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e249ffe-b015-4d83-9093-9140db4d4c85_1200x742.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gnKQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e249ffe-b015-4d83-9093-9140db4d4c85_1200x742.png" width="1200" height="742" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7e249ffe-b015-4d83-9093-9140db4d4c85_1200x742.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:742,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:590628,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://spatialthoughts.com/2025/03/29/building_height_gee/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://spatialthoughts.substack.com/i/161283375?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e249ffe-b015-4d83-9093-9140db4d4c85_1200x742.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_!gnKQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e249ffe-b015-4d83-9093-9140db4d4c85_1200x742.png 424w, https://substackcdn.com/image/fetch/$s_!gnKQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e249ffe-b015-4d83-9093-9140db4d4c85_1200x742.png 848w, https://substackcdn.com/image/fetch/$s_!gnKQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e249ffe-b015-4d83-9093-9140db4d4c85_1200x742.png 1272w, https://substackcdn.com/image/fetch/$s_!gnKQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e249ffe-b015-4d83-9093-9140db4d4c85_1200x742.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">A High-Resolution Digital Surface Model (DSM) created from Google Buildings, Meta Canopy Heights and FABDEM terrain model</figcaption></figure></div><p></p><h2>Upcoming PyQGIS Masterclass</h2><p>Registration is open for the next cohort of the <strong>PyQGIS Masterclass</strong>. This course is ideal for folks who already know Python and QGIS but want to learn how to use them together for automation and building plugins. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://spatialthoughts.com/events/pyqgis-masterclass-may-2025/&quot;,&quot;text&quot;:&quot;View Schedule and Register&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://spatialthoughts.com/events/pyqgis-masterclass-may-2025/"><span>View Schedule and Register</span></a></p><p>This is a difficult skill to master on your own, but our paid instructor-led program is designed to help you navigate the complex API in a simple and structured manner, as evident from the reviews from past participants.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/756da0bf-8719-4931-bef0-01b2d7c9cb06_1324x751.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5c3b63c2-2b17-465b-8531-91eedcefce5a_1339x723.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a64317f1-df97-4cfc-a74b-609d88f5f425_1332x670.jpeg&quot;}],&quot;caption&quot;:&quot;PyQGIS Masterclass Reviews&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5cf2a2d0-6f23-4ba8-934f-1bf63994d452_1456x474.png&quot;}},&quot;isEditorNode&quot;:true}"></div><h2>New Tutorials and Learning Resources</h2><ul><li><p>New XArray tutorial on <a href="https://www.geopythontutorials.com/notebooks/xarray_aggregating_time_series.html">Aggregating Time Series</a> that uses the Indian Meterological Department (IMD) and shows how to efficiently aggregate a daily precipitation time series to create and download monthly GeoTIFFs. </p></li><li><p>We published additional supplementary materials for our End-to-End Google Earth Engine course covering:</p><ul><li><p><a href="https://courses.spatialthoughts.com/end-to-end-gee-supplement.html#medoid-composites">Medoid Composites</a></p></li><li><p><a href="https://courses.spatialthoughts.com/end-to-end-gee-supplement.html#using-polygons-for-training-data">Using Polygons for Training Data</a></p></li><li><p><a href="https://courses.spatialthoughts.com/end-to-end-gee-supplement.html#export-imagecollection-metadata">Export ImageCollection Metadata</a></p></li></ul><p></p></li></ul><p></p><p></p><p></p><h2></h2>]]></content:encoded></item><item><title><![CDATA[Spatial Thoughts Newsletter #38]]></title><description><![CDATA[New Geospatial Python Tutorials, Build for Bharat Internships]]></description><link>https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-38</link><guid isPermaLink="false">https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-38</guid><dc:creator><![CDATA[Ujaval Gandhi]]></dc:creator><pubDate>Thu, 27 Feb 2025 05:55:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!74oE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb98b8bc5-336a-46c1-9908-9996cd2abf1c_800x567.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>New Website for Geospatial Python Tutorials</h2><p>We have launched a new home for all our open-source geospatial python tutorials - covering GeoPandas, XArray, Dask, XEE, SamGeo and more. Each tutorial comes in form of a notebook with step-by-step explanation and a way to run and reproduce the results on Google Colab. Check them out at <strong><a href="https://www.geopythontutorials.com/">geopythontutorials.com</a></strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://geopythontutorials.com/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!74oE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb98b8bc5-336a-46c1-9908-9996cd2abf1c_800x567.gif 424w, https://substackcdn.com/image/fetch/$s_!74oE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb98b8bc5-336a-46c1-9908-9996cd2abf1c_800x567.gif 848w, https://substackcdn.com/image/fetch/$s_!74oE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb98b8bc5-336a-46c1-9908-9996cd2abf1c_800x567.gif 1272w, https://substackcdn.com/image/fetch/$s_!74oE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb98b8bc5-336a-46c1-9908-9996cd2abf1c_800x567.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!74oE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb98b8bc5-336a-46c1-9908-9996cd2abf1c_800x567.gif" width="800" height="567" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b98b8bc5-336a-46c1-9908-9996cd2abf1c_800x567.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:567,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4684221,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:&quot;https://geopythontutorials.com/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://spatialthoughts.substack.com/i/157981900?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb98b8bc5-336a-46c1-9908-9996cd2abf1c_800x567.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!74oE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb98b8bc5-336a-46c1-9908-9996cd2abf1c_800x567.gif 424w, https://substackcdn.com/image/fetch/$s_!74oE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb98b8bc5-336a-46c1-9908-9996cd2abf1c_800x567.gif 848w, https://substackcdn.com/image/fetch/$s_!74oE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb98b8bc5-336a-46c1-9908-9996cd2abf1c_800x567.gif 1272w, https://substackcdn.com/image/fetch/$s_!74oE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb98b8bc5-336a-46c1-9908-9996cd2abf1c_800x567.gif 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></figure></div><h2>Build for Bharat Fellowship </h2><p>There is an exciting paid internship opportunity for students in India to work alongside government departments to apply their tech skills - with mentors from the industry. I will be one of the mentors for the geospatial and remote sensing tracks. If you are a student - this will be a one-of-a-kind experience for you. Learn more and apply at <a href="https://www.bharatdigital.io/fellowship">https://www.bharatdigital.io/fellowship</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.bharatdigital.io/fellowship" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vxuT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51f5a45-c7ed-4d9a-a8b1-5bfe0617bda2_1536x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vxuT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51f5a45-c7ed-4d9a-a8b1-5bfe0617bda2_1536x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vxuT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51f5a45-c7ed-4d9a-a8b1-5bfe0617bda2_1536x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vxuT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51f5a45-c7ed-4d9a-a8b1-5bfe0617bda2_1536x1536.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vxuT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51f5a45-c7ed-4d9a-a8b1-5bfe0617bda2_1536x1536.jpeg" width="368" height="368" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a51f5a45-c7ed-4d9a-a8b1-5bfe0617bda2_1536x1536.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:368,&quot;bytes&quot;:224602,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://www.bharatdigital.io/fellowship&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://spatialthoughts.substack.com/i/157981900?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51f5a45-c7ed-4d9a-a8b1-5bfe0617bda2_1536x1536.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vxuT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51f5a45-c7ed-4d9a-a8b1-5bfe0617bda2_1536x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vxuT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51f5a45-c7ed-4d9a-a8b1-5bfe0617bda2_1536x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vxuT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51f5a45-c7ed-4d9a-a8b1-5bfe0617bda2_1536x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vxuT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51f5a45-c7ed-4d9a-a8b1-5bfe0617bda2_1536x1536.jpeg 1456w" sizes="100vw"></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></figure></div><p></p><p></p><p></p><h2></h2>]]></content:encoded></item><item><title><![CDATA[Spatial Thoughts Newsletter #37]]></title><description><![CDATA[New courses on YouTube - including our flagship End-to-End Google Earth Engine course]]></description><link>https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-37</link><guid isPermaLink="false">https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-37</guid><dc:creator><![CDATA[Ujaval Gandhi]]></dc:creator><pubDate>Mon, 25 Nov 2024 10:47:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!lci8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe7ee18c-9323-446a-a4cb-f8d0aa120982_1920x1080.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>New Courses on YouTube</h2><p>Today we launched our flagship course <a href="https://spatialthoughts.com/courses/google-earth-engine/">End-to-End Google Earth Engine</a> which is now freely available to everyone for self-study! The course videos complement our open-source course material that covers the full range of topics in GEE. We believe this is the most comprehensive resource for beginners to learn applied remote sensing with a focus on machine learning. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.youtube.com/playlist?list=PLppGmFLhQ1HJuIb7qMiKIv11HiEQhy3ha" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lci8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe7ee18c-9323-446a-a4cb-f8d0aa120982_1920x1080.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lci8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe7ee18c-9323-446a-a4cb-f8d0aa120982_1920x1080.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lci8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe7ee18c-9323-446a-a4cb-f8d0aa120982_1920x1080.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lci8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe7ee18c-9323-446a-a4cb-f8d0aa120982_1920x1080.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lci8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe7ee18c-9323-446a-a4cb-f8d0aa120982_1920x1080.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fe7ee18c-9323-446a-a4cb-f8d0aa120982_1920x1080.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1715272,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://www.youtube.com/playlist?list=PLppGmFLhQ1HJuIb7qMiKIv11HiEQhy3ha&quot;,&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_!lci8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe7ee18c-9323-446a-a4cb-f8d0aa120982_1920x1080.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lci8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe7ee18c-9323-446a-a4cb-f8d0aa120982_1920x1080.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lci8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe7ee18c-9323-446a-a4cb-f8d0aa120982_1920x1080.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lci8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe7ee18c-9323-446a-a4cb-f8d0aa120982_1920x1080.jpeg 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></figure></div><p>We also launched our intermediate-level Python course <a href="https://spatialthoughts.com/courses/python-dataviz/">Mapping and Data Visualization with Python</a> on YouTube. This is an intermediate-level class that covers libraries for creating static and dynamic visualizations, dashboards, and interactive web apps using Python. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.youtube.com/playlist?list=PLppGmFLhQ1HLvPi1sFpaYOJVhg8e3P74R" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5Zcq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb19fb518-6725-45ae-8a7f-c9084b9bb8a0_1898x1081.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5Zcq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb19fb518-6725-45ae-8a7f-c9084b9bb8a0_1898x1081.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5Zcq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb19fb518-6725-45ae-8a7f-c9084b9bb8a0_1898x1081.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5Zcq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb19fb518-6725-45ae-8a7f-c9084b9bb8a0_1898x1081.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5Zcq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb19fb518-6725-45ae-8a7f-c9084b9bb8a0_1898x1081.jpeg" width="1456" height="829" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b19fb518-6725-45ae-8a7f-c9084b9bb8a0_1898x1081.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:829,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1770578,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://www.youtube.com/playlist?list=PLppGmFLhQ1HLvPi1sFpaYOJVhg8e3P74R&quot;,&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_!5Zcq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb19fb518-6725-45ae-8a7f-c9084b9bb8a0_1898x1081.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5Zcq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb19fb518-6725-45ae-8a7f-c9084b9bb8a0_1898x1081.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5Zcq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb19fb518-6725-45ae-8a7f-c9084b9bb8a0_1898x1081.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5Zcq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb19fb518-6725-45ae-8a7f-c9084b9bb8a0_1898x1081.jpeg 1456w" sizes="100vw"></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></figure></div><p>Our <a href="http://youtube.com/spatialthoughts">YouTube Channel</a> now consists of 10 full-length courses covering beginner to advanced-level courses on QGIS, Python, Google Earth Engine, and GDAL.</p><p>We do not monetize any of the videos so you will not see any ads on any of the videos. If you find the content useful, please subscribe so others discover this content on the platform.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.youtube.com/spatialthoughts&quot;,&quot;text&quot;:&quot;View Channel&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.youtube.com/spatialthoughts"><span>View Channel</span></a></p><h2>Upcoming Classes</h2><p>We will be offering 2 live instructor-led classes in January. </p><ul><li><p>Python Foundation for Spatial Analysis</p></li><li><p>End-to-End Google Earth Engine</p></li></ul><p>The paid classes offer certification, mentoring, and lifetime free technical support. If you wish to join these classes, please visit our website to sign up.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://spatialthoughts.com/events/&quot;,&quot;text&quot;:&quot;View Class Schedule&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://spatialthoughts.com/events/"><span>View Class Schedule</span></a></p><p></p><p></p><p></p><h2></h2>]]></content:encoded></item><item><title><![CDATA[Spatial Thoughts Newsletter #36]]></title><description><![CDATA[QGIS User Conference, Google Geo for Good, Cloud-native Workflows with QGIS, #PythonDatavizChallenge]]></description><link>https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-36</link><guid isPermaLink="false">https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-36</guid><dc:creator><![CDATA[Ujaval Gandhi]]></dc:creator><pubDate>Mon, 14 Oct 2024 06:02:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!mepC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa678e6-f269-4e72-9a14-9fbe2815241a_1561x854.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Conferences</h2><p>I attended two conferences in the past month: the <em>QGIS International User Conference 2024</em> in Bratislava, Slovakia, and Google&#8217;s <em>Geo for Good Summit 2024</em> in Dublin, Ireland. Both conferences provided plenty of new and exciting updates, and I have written detailed blog posts with resources, links to recorded talks, and my key takeaways. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://spatialthoughts.com/2024/09/14/qgis-user-conference-2024/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mepC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa678e6-f269-4e72-9a14-9fbe2815241a_1561x854.webp 424w, https://substackcdn.com/image/fetch/$s_!mepC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa678e6-f269-4e72-9a14-9fbe2815241a_1561x854.webp 848w, https://substackcdn.com/image/fetch/$s_!mepC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa678e6-f269-4e72-9a14-9fbe2815241a_1561x854.webp 1272w, https://substackcdn.com/image/fetch/$s_!mepC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa678e6-f269-4e72-9a14-9fbe2815241a_1561x854.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mepC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa678e6-f269-4e72-9a14-9fbe2815241a_1561x854.webp" width="728" height="398.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4fa678e6-f269-4e72-9a14-9fbe2815241a_1561x854.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:797,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:148228,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://spatialthoughts.com/2024/09/14/qgis-user-conference-2024/&quot;,&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_!mepC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa678e6-f269-4e72-9a14-9fbe2815241a_1561x854.webp 424w, https://substackcdn.com/image/fetch/$s_!mepC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa678e6-f269-4e72-9a14-9fbe2815241a_1561x854.webp 848w, https://substackcdn.com/image/fetch/$s_!mepC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa678e6-f269-4e72-9a14-9fbe2815241a_1561x854.webp 1272w, https://substackcdn.com/image/fetch/$s_!mepC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa678e6-f269-4e72-9a14-9fbe2815241a_1561x854.webp 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">Read the full post: <a href="https://spatialthoughts.com/2024/09/14/qgis-user-conference-2024/">QGIS User Conference 2024</a></figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://spatialthoughts.com/2024/10/05/geo-for-good-2024/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fsoq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3977adba-230a-470b-97f0-79c926720c72_2048x1365.webp 424w, https://substackcdn.com/image/fetch/$s_!fsoq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3977adba-230a-470b-97f0-79c926720c72_2048x1365.webp 848w, https://substackcdn.com/image/fetch/$s_!fsoq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3977adba-230a-470b-97f0-79c926720c72_2048x1365.webp 1272w, https://substackcdn.com/image/fetch/$s_!fsoq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3977adba-230a-470b-97f0-79c926720c72_2048x1365.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fsoq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3977adba-230a-470b-97f0-79c926720c72_2048x1365.webp" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3977adba-230a-470b-97f0-79c926720c72_2048x1365.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:492276,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://spatialthoughts.com/2024/10/05/geo-for-good-2024/&quot;,&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_!fsoq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3977adba-230a-470b-97f0-79c926720c72_2048x1365.webp 424w, https://substackcdn.com/image/fetch/$s_!fsoq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3977adba-230a-470b-97f0-79c926720c72_2048x1365.webp 848w, https://substackcdn.com/image/fetch/$s_!fsoq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3977adba-230a-470b-97f0-79c926720c72_2048x1365.webp 1272w, https://substackcdn.com/image/fetch/$s_!fsoq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3977adba-230a-470b-97f0-79c926720c72_2048x1365.webp 1456w" sizes="100vw"></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">Read the full post: <a href="https://spatialthoughts.com/2024/10/05/geo-for-good-2024/">Geo for Good Summit 2024</a></figcaption></figure></div><p></p><h2>QGIS Expressions Masterclass</h2><p>Check out my new video covering QGIS expressions from the very basics and shows you how you can solve complex problems and build beautiful visualizations.</p><div id="youtube2-4Rtwqv_z-F4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;4Rtwqv_z-F4&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/4Rtwqv_z-F4?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2>New Workshop: Cloud Native Geospatial Workflows with QGIS</h2><p>Do you know that QGIS can now </p><p>&#8230; stream a 8GB raster file or a polygon layer with 2.5 million vertices directly from cloud-hosted files</p><p>&#8230; calculate zonal stats with large vector and rasters on remote files and display results on your computer  </p><p>&#8230; calculate landcover change to detect lost waterbodies in real-time as you move your map canvas</p><p>&#8230; calculate remote sensing indices on cloud-hosted Sentinel-2 images </p><p>all for free, instantly and without downloading any data? This is not a vision of a distant future - but a reality that is possible now in QGIS - thanks to modern cloud-optimized data formats and standards like STAC. Sounds intriguing? Check out my new workshop <a href="https://courses.spatialthoughts.com/qgis-cloud-native-geospatial.html#">Cloud Native Geospatial Workflows with QGIS</a> that is freely available for self-study.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://courses.spatialthoughts.com/qgis-cloud-native-geospatial.html#" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6d0U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F565f2fc9-4a5e-4ef6-8de5-269262185ace_1678x1096.png 424w, https://substackcdn.com/image/fetch/$s_!6d0U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F565f2fc9-4a5e-4ef6-8de5-269262185ace_1678x1096.png 848w, https://substackcdn.com/image/fetch/$s_!6d0U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F565f2fc9-4a5e-4ef6-8de5-269262185ace_1678x1096.png 1272w, https://substackcdn.com/image/fetch/$s_!6d0U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F565f2fc9-4a5e-4ef6-8de5-269262185ace_1678x1096.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6d0U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F565f2fc9-4a5e-4ef6-8de5-269262185ace_1678x1096.png" width="1456" height="951" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/565f2fc9-4a5e-4ef6-8de5-269262185ace_1678x1096.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:951,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:279387,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://courses.spatialthoughts.com/qgis-cloud-native-geospatial.html#&quot;,&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_!6d0U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F565f2fc9-4a5e-4ef6-8de5-269262185ace_1678x1096.png 424w, https://substackcdn.com/image/fetch/$s_!6d0U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F565f2fc9-4a5e-4ef6-8de5-269262185ace_1678x1096.png 848w, https://substackcdn.com/image/fetch/$s_!6d0U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F565f2fc9-4a5e-4ef6-8de5-269262185ace_1678x1096.png 1272w, https://substackcdn.com/image/fetch/$s_!6d0U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F565f2fc9-4a5e-4ef6-8de5-269262185ace_1678x1096.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">Analyzing Landcover Change using Cloud-hosted Dataset and Virtual Raster Calculator. See the <a href="https://courses.spatialthoughts.com/qgis-cloud-native-geospatial.html#">step-by-step guide</a>.</figcaption></figure></div><h2>#PythonDatavizChallenge</h2><p>Want to level-up your Python skills? We are launching a 30-day free challenge to learn Mapping and Data Visualization with Python. You will learn how to create charts, maps, work with large raster and vector datasets, create interactive maps, dashboards, and data-driven apps. All you need to do is spend 30 minutes every day watching a video and working on a coding exercise. Read more on how to participate and access the resources below. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://spatialthoughts.com/2024/10/13/pythondatavizchallenge/&quot;,&quot;text&quot;:&quot;Join #PythonDatavizChallenge&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://spatialthoughts.com/2024/10/13/pythondatavizchallenge/"><span>Join #PythonDatavizChallenge</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://spatialthoughts.com/2024/10/13/pythondatavizchallenge/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-NO5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d372981-694b-48a8-9d17-6b92bc89d7e5_1898x1081.webp 424w, https://substackcdn.com/image/fetch/$s_!-NO5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d372981-694b-48a8-9d17-6b92bc89d7e5_1898x1081.webp 848w, https://substackcdn.com/image/fetch/$s_!-NO5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d372981-694b-48a8-9d17-6b92bc89d7e5_1898x1081.webp 1272w, https://substackcdn.com/image/fetch/$s_!-NO5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d372981-694b-48a8-9d17-6b92bc89d7e5_1898x1081.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-NO5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d372981-694b-48a8-9d17-6b92bc89d7e5_1898x1081.webp" width="1456" height="829" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3d372981-694b-48a8-9d17-6b92bc89d7e5_1898x1081.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:829,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1313334,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://spatialthoughts.com/2024/10/13/pythondatavizchallenge/&quot;,&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_!-NO5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d372981-694b-48a8-9d17-6b92bc89d7e5_1898x1081.webp 424w, https://substackcdn.com/image/fetch/$s_!-NO5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d372981-694b-48a8-9d17-6b92bc89d7e5_1898x1081.webp 848w, https://substackcdn.com/image/fetch/$s_!-NO5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d372981-694b-48a8-9d17-6b92bc89d7e5_1898x1081.webp 1272w, https://substackcdn.com/image/fetch/$s_!-NO5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d372981-694b-48a8-9d17-6b92bc89d7e5_1898x1081.webp 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></figure></div><p></p>]]></content:encoded></item><item><title><![CDATA[Spatial Thoughts Newsletter #35]]></title><description><![CDATA[Introduction to QGIS Course, Cartograms with QGIS, Earth Engine Cloud Migration Guide and more]]></description><link>https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-35</link><guid isPermaLink="false">https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-35</guid><dc:creator><![CDATA[Ujaval Gandhi]]></dc:creator><pubDate>Tue, 13 Aug 2024 12:27:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Q4rF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89786f8-8d03-41f5-976f-c08738b47aa4_800x450.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Introduction to QGIS Course</h2><p>Our full course <a href="https://courses.spatialthoughts.com/introduction-to-qgis.html">Introduction to QGIS</a> is now available on YouTube! This is a beginner-friendly course designed to help you learn how to use QGIS for creating maps, visualizing spatial data, georeferencing, data editing, and spatial analysis. Learn QGIS in a structured way with a unique teaching style that will make your learning journey fun and rewarding. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.youtube.com/c/spatialthoughts&quot;,&quot;text&quot;:&quot;Visit YouTube Channel&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.youtube.com/c/spatialthoughts"><span>Visit YouTube Channel</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.youtube.com/watch?v=pGm7w-LywO0" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q4rF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89786f8-8d03-41f5-976f-c08738b47aa4_800x450.png 424w, https://substackcdn.com/image/fetch/$s_!Q4rF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89786f8-8d03-41f5-976f-c08738b47aa4_800x450.png 848w, https://substackcdn.com/image/fetch/$s_!Q4rF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89786f8-8d03-41f5-976f-c08738b47aa4_800x450.png 1272w, https://substackcdn.com/image/fetch/$s_!Q4rF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89786f8-8d03-41f5-976f-c08738b47aa4_800x450.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q4rF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89786f8-8d03-41f5-976f-c08738b47aa4_800x450.png" width="800" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e89786f8-8d03-41f5-976f-c08738b47aa4_800x450.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:450,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:556368,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.youtube.com/watch?v=pGm7w-LywO0&quot;,&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_!Q4rF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89786f8-8d03-41f5-976f-c08738b47aa4_800x450.png 424w, https://substackcdn.com/image/fetch/$s_!Q4rF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89786f8-8d03-41f5-976f-c08738b47aa4_800x450.png 848w, https://substackcdn.com/image/fetch/$s_!Q4rF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89786f8-8d03-41f5-976f-c08738b47aa4_800x450.png 1272w, https://substackcdn.com/image/fetch/$s_!Q4rF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89786f8-8d03-41f5-976f-c08738b47aa4_800x450.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></figure></div><h2>Animated Cartograms in QGIS</h2><p>A cartogram is a type of map visualization where the shape of each feature is distorted in proportion to a variable. Cartograms make it easy to see large variations in the data. We have published a <a href="https://www.qgistutorials.com/en/docs/3/cartogram_animation.html">new tutorial</a> that leverages QGIS expressions to create animated noncontiguous area cartograms.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.qgistutorials.com/en/docs/3/cartogram_animation.html&quot;,&quot;text&quot;:&quot;View Tutorial&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.qgistutorials.com/en/docs/3/cartogram_animation.html"><span>View Tutorial</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.qgistutorials.com/en/docs/3/cartogram_animation.html" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aw5C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19673287-f24c-4522-8959-9c0ada31fdc1_874x492.gif 424w, https://substackcdn.com/image/fetch/$s_!aw5C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19673287-f24c-4522-8959-9c0ada31fdc1_874x492.gif 848w, https://substackcdn.com/image/fetch/$s_!aw5C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19673287-f24c-4522-8959-9c0ada31fdc1_874x492.gif 1272w, https://substackcdn.com/image/fetch/$s_!aw5C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19673287-f24c-4522-8959-9c0ada31fdc1_874x492.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aw5C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19673287-f24c-4522-8959-9c0ada31fdc1_874x492.gif" width="874" height="492" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/19673287-f24c-4522-8959-9c0ada31fdc1_874x492.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:492,&quot;width&quot;:874,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:507966,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:&quot;https://www.qgistutorials.com/en/docs/3/cartogram_animation.html&quot;,&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_!aw5C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19673287-f24c-4522-8959-9c0ada31fdc1_874x492.gif 424w, https://substackcdn.com/image/fetch/$s_!aw5C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19673287-f24c-4522-8959-9c0ada31fdc1_874x492.gif 848w, https://substackcdn.com/image/fetch/$s_!aw5C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19673287-f24c-4522-8959-9c0ada31fdc1_874x492.gif 1272w, https://substackcdn.com/image/fetch/$s_!aw5C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19673287-f24c-4522-8959-9c0ada31fdc1_874x492.gif 1456w" sizes="100vw"></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">Animated Cartogram showing US States resized by Population </figcaption></figure></div><h2>Earth Engine Cloud Migration Guide</h2><p>If you are a Google Earth Engine user, you would have gotten an email from Google <em><strong>[Action Required] Link Earth Engine to Cloud Projects and verify noncommercial use</strong></em>. Confused how to proceed? We have compiled a simplified guide with FAQs to help you migrate your legacy GEE account to a cloud project.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://courses.spatialthoughts.com/gee-sign-up.html&quot;,&quot;text&quot;:&quot;View Migration Guide&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://courses.spatialthoughts.com/gee-sign-up.html"><span>View Migration Guide</span></a></p><h2>Python Maps with Cartographic Elements</h2><p>Python users can now build re-producible maps using EOMaps library that integrates CartoPy, GeoPandas, and Matplotlib allowing you to create maps with gridlines, scalebars, and north arrows. A complete example notebook</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://colab.research.google.com/github/spatialthoughts/python-dataviz-web/blob/main/supplement_cartographic_elements.ipynb&quot;,&quot;text&quot;:&quot;View Colab Notebook&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://colab.research.google.com/github/spatialthoughts/python-dataviz-web/blob/main/supplement_cartographic_elements.ipynb"><span>View Colab Notebook</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://courses.spatialthoughts.com/python-dataviz.html#creating-maps-with-cartographic-elements" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HE_q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F623d3747-0705-46a8-aa61-3a84a14d64f4_700x800.png 424w, https://substackcdn.com/image/fetch/$s_!HE_q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F623d3747-0705-46a8-aa61-3a84a14d64f4_700x800.png 848w, https://substackcdn.com/image/fetch/$s_!HE_q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F623d3747-0705-46a8-aa61-3a84a14d64f4_700x800.png 1272w, https://substackcdn.com/image/fetch/$s_!HE_q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F623d3747-0705-46a8-aa61-3a84a14d64f4_700x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HE_q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F623d3747-0705-46a8-aa61-3a84a14d64f4_700x800.png" width="700" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/623d3747-0705-46a8-aa61-3a84a14d64f4_700x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:700,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:196109,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://courses.spatialthoughts.com/python-dataviz.html#creating-maps-with-cartographic-elements&quot;,&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_!HE_q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F623d3747-0705-46a8-aa61-3a84a14d64f4_700x800.png 424w, https://substackcdn.com/image/fetch/$s_!HE_q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F623d3747-0705-46a8-aa61-3a84a14d64f4_700x800.png 848w, https://substackcdn.com/image/fetch/$s_!HE_q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F623d3747-0705-46a8-aa61-3a84a14d64f4_700x800.png 1272w, https://substackcdn.com/image/fetch/$s_!HE_q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F623d3747-0705-46a8-aa61-3a84a14d64f4_700x800.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></figure></div>]]></content:encoded></item><item><title><![CDATA[#PyQGISChallenge]]></title><description><![CDATA[Learn QGIS Python Development for free with our new challenge!]]></description><link>https://spatialthoughts.substack.com/p/pyqgischallenge</link><guid isPermaLink="false">https://spatialthoughts.substack.com/p/pyqgischallenge</guid><dc:creator><![CDATA[Ujaval Gandhi]]></dc:creator><pubDate>Fri, 19 Jul 2024 05:24:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!mwgG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1716130-023f-4193-9e6b-3d6d76fa5627_1080x1081.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Want to learn how to integrate Python programming with QGIS? We have a new learning challenge that teaches you how to customize QGIS using Python with scripts, custom algorithms, actions, and plugins! Spend <strong>30 minutes</strong> every day for the next <strong>30 days</strong> to level up your QGIS skills.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://spatialthoughts.com/2024/07/15/pyqgis-challenge/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mwgG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1716130-023f-4193-9e6b-3d6d76fa5627_1080x1081.jpeg 424w, https://substackcdn.com/image/fetch/$s_!mwgG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1716130-023f-4193-9e6b-3d6d76fa5627_1080x1081.jpeg 848w, https://substackcdn.com/image/fetch/$s_!mwgG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1716130-023f-4193-9e6b-3d6d76fa5627_1080x1081.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!mwgG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1716130-023f-4193-9e6b-3d6d76fa5627_1080x1081.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mwgG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1716130-023f-4193-9e6b-3d6d76fa5627_1080x1081.jpeg" width="1080" height="1081" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a1716130-023f-4193-9e6b-3d6d76fa5627_1080x1081.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1081,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:947066,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://spatialthoughts.com/2024/07/15/pyqgis-challenge/&quot;,&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_!mwgG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1716130-023f-4193-9e6b-3d6d76fa5627_1080x1081.jpeg 424w, https://substackcdn.com/image/fetch/$s_!mwgG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1716130-023f-4193-9e6b-3d6d76fa5627_1080x1081.jpeg 848w, https://substackcdn.com/image/fetch/$s_!mwgG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1716130-023f-4193-9e6b-3d6d76fa5627_1080x1081.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!mwgG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1716130-023f-4193-9e6b-3d6d76fa5627_1080x1081.jpeg 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></figure></div><p></p><p>This challenge is ideal for folks who know both Python and QGIS and want to start their journey to become GIS Developers. We will be posting a set of videos everyday along with hands-on exercises. Watch the videos and work through the material at your own pace. It's completely free and open for everyone. </p><p>The challenge started earlier this week, but you can still join in and catch up.</p><p>Read our post for all the details <a href="https://spatialthoughts.com/2024/07/15/pyqgis-challenge/">https://spatialthoughts.com/2024/07/15/pyqgis-challenge/</a></p><p>If you are following along, share your progress with hashtag #PyQGISChallenge on <a href="https://x.com/spatialthoughts/status/1812800931945414703">Twitter</a> or <a href="https://www.linkedin.com/feed/update/urn:li:activity:7218508894648606721">LinkedIn</a>.</p><p>I wish you all the best and hope you find the content useful to improve your programming skills!</p>]]></content:encoded></item><item><title><![CDATA[Spatial Thoughts Newsletter #34]]></title><description><![CDATA[Creating Art with QGIS and Python, Exploring Global Land Cover Change, #30DaysOfQGIS and more]]></description><link>https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-34</link><guid isPermaLink="false">https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-34</guid><dc:creator><![CDATA[Ujaval Gandhi]]></dc:creator><pubDate>Sun, 30 Jun 2024 12:30:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ZvHc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1988de7e-028a-4cbb-9aff-6a355ae4a11d_717x751.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Maps as Art</h2><p>We explore the creative side of spatial data for artistic expression to create a compelling perspective of the world around us. Explore our new tutorials for creating art with open-source tools QGIS and Python!</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1988de7e-028a-4cbb-9aff-6a355ae4a11d_717x751.png&quot;},{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d54f424b-19f1-4202-9d4f-ba2de8b85f2b_800x800.png&quot;}],&quot;caption&quot;:&quot;Left: 3D rendering of contours in QGIS, Right: Artistic rendering of OpenStreetMap data using PYthon&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4db5b176-fba9-494c-a6ad-62e7570f3c81_1456x720.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p><strong>Tutorials</strong>:</p><ul><li><p><a href="https://www.qgistutorials.com/en/docs/3/contour_3d_styling.html">Styling Contours in 3D using QGIS</a></p></li><li><p><a href="https://courses.spatialthoughts.com/python-dataviz.html#contextily">Creating an Artistic Rendering of a City using Python</a></p></li></ul><p></p><h2>Exploring the New Global LandCover Change Dataset from 1985-2022</h2><p>We published a new post exploring the incredible Global Land Cover Change Dataset GLC_FCS30D with a temporally consistent 35 class classification from 1985-2022 at 30m resolution. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://spatialthoughts.com/2024/06/29/global-landcover-glcfcs30d/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c8bW!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f3ff4a-76ba-47cb-8748-1b39ce5eb488_800x450.gif 424w, https://substackcdn.com/image/fetch/$s_!c8bW!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f3ff4a-76ba-47cb-8748-1b39ce5eb488_800x450.gif 848w, https://substackcdn.com/image/fetch/$s_!c8bW!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f3ff4a-76ba-47cb-8748-1b39ce5eb488_800x450.gif 1272w, https://substackcdn.com/image/fetch/$s_!c8bW!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f3ff4a-76ba-47cb-8748-1b39ce5eb488_800x450.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!c8bW!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f3ff4a-76ba-47cb-8748-1b39ce5eb488_800x450.gif" width="800" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/43f3ff4a-76ba-47cb-8748-1b39ce5eb488_800x450.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:450,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8981601,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:&quot;https://spatialthoughts.com/2024/06/29/global-landcover-glcfcs30d/&quot;,&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_!c8bW!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f3ff4a-76ba-47cb-8748-1b39ce5eb488_800x450.gif 424w, https://substackcdn.com/image/fetch/$s_!c8bW!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f3ff4a-76ba-47cb-8748-1b39ce5eb488_800x450.gif 848w, https://substackcdn.com/image/fetch/$s_!c8bW!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f3ff4a-76ba-47cb-8748-1b39ce5eb488_800x450.gif 1272w, https://substackcdn.com/image/fetch/$s_!c8bW!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f3ff4a-76ba-47cb-8748-1b39ce5eb488_800x450.gif 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></figure></div><p></p><p>The post shows how to build a Earth Engine App to explore this rich time-series dataset. You can see and play with the app at <a href="https://spatialthoughts.projects.earthengine.app/view/global-landcover-change-explorer">https://spatialthoughts.projects.earthengine.app/view/global-landcover-change-explorer</a></p><p>Interested in how to build such apps and calculate statistics? Check out the post with code examples at <a href="https://spatialthoughts.com/2024/06/29/global-landcover-glcfcs30d/">Exploring the Global 30m Land Cover Change Dataset (1985-2022) GLC_FCS30D</a>.</p><h2>#30DaysOfQGIS Challenge</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://spatialthoughts.com/2024/05/13/30daysofqgis/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!722v!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2dd38f1-aeea-4a47-a2e5-a94384bd9f57_1000x564.png 424w, https://substackcdn.com/image/fetch/$s_!722v!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2dd38f1-aeea-4a47-a2e5-a94384bd9f57_1000x564.png 848w, https://substackcdn.com/image/fetch/$s_!722v!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2dd38f1-aeea-4a47-a2e5-a94384bd9f57_1000x564.png 1272w, https://substackcdn.com/image/fetch/$s_!722v!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2dd38f1-aeea-4a47-a2e5-a94384bd9f57_1000x564.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!722v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2dd38f1-aeea-4a47-a2e5-a94384bd9f57_1000x564.png" width="1000" height="564" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b2dd38f1-aeea-4a47-a2e5-a94384bd9f57_1000x564.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:564,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:862923,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://spatialthoughts.com/2024/05/13/30daysofqgis/&quot;,&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_!722v!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2dd38f1-aeea-4a47-a2e5-a94384bd9f57_1000x564.png 424w, https://substackcdn.com/image/fetch/$s_!722v!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2dd38f1-aeea-4a47-a2e5-a94384bd9f57_1000x564.png 848w, https://substackcdn.com/image/fetch/$s_!722v!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2dd38f1-aeea-4a47-a2e5-a94384bd9f57_1000x564.png 1272w, https://substackcdn.com/image/fetch/$s_!722v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2dd38f1-aeea-4a47-a2e5-a94384bd9f57_1000x564.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></figure></div><p>We had an overwhelming response to the <a href="https://spatialthoughts.com/2024/05/13/30daysofqgis/">#30DaysOfQGIS challenge</a> with hundreds of people participating and completing the challenge successfully. If you missed it - it is still not too late to start! It&#8217;s our self-paced free learning program where you spend 30 minutes everyday learning Advanced QGIS in a structured manner. Just <a href="https://spatialthoughts.com/2024/05/13/30daysofqgis/">visit the challenge page</a> and start learning today!</p><div><hr></div><p><em>We reached 2 significant milestones last month with our <a href="https://www.youtube.com/c/spatialthoughts">YouTube channel</a> reaching 10K subscribers and the <a href="https://www.linkedin.com/company/spatial-thoughts/">LinkedIn community</a> reaching 30K followers. Thanks to everyone for your support and encouragement as we are building our open learning platform.</em></p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c68925ef-efbf-4c92-a4fe-6eee091abd0d_500x500.jpeg&quot;},{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9fde78a2-23ad-44a5-befb-a42d88adf70a_500x500.png&quot;}],&quot;caption&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/76f19b19-92a3-44ee-ac5c-82851b4a3a48_1456x720.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p></p>]]></content:encoded></item><item><title><![CDATA[#30DaysOfQGIS]]></title><description><![CDATA[Learn QGIS for free with our new challenge!]]></description><link>https://spatialthoughts.substack.com/p/30daysofqgis</link><guid isPermaLink="false">https://spatialthoughts.substack.com/p/30daysofqgis</guid><dc:creator><![CDATA[Ujaval Gandhi]]></dc:creator><pubDate>Mon, 13 May 2024 12:13:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1qQW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96ad06b4-afae-4bb9-a37a-5b753541ce47_1000x563.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Want to learn advanced QGIS for spatial analysis and data visualization? We are launching our Advanced QGIS course on YouTube and have designed a fun challenge <em><strong>#30DaysOfQGIS</strong></em> to help you learn QGIS more effectively. Spend <em><strong>30 mins</strong></em> every day for the next <em><strong>30 days</strong></em> learning QGIS. Interested? Read on for more details&#8230;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://spatialthoughts.com/2024/05/13/30daysofqgis/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1qQW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96ad06b4-afae-4bb9-a37a-5b753541ce47_1000x563.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1qQW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96ad06b4-afae-4bb9-a37a-5b753541ce47_1000x563.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1qQW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96ad06b4-afae-4bb9-a37a-5b753541ce47_1000x563.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1qQW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96ad06b4-afae-4bb9-a37a-5b753541ce47_1000x563.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1qQW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96ad06b4-afae-4bb9-a37a-5b753541ce47_1000x563.jpeg" width="1000" height="563" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/96ad06b4-afae-4bb9-a37a-5b753541ce47_1000x563.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:563,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:102748,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://spatialthoughts.com/2024/05/13/30daysofqgis/&quot;,&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_!1qQW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96ad06b4-afae-4bb9-a37a-5b753541ce47_1000x563.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1qQW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96ad06b4-afae-4bb9-a37a-5b753541ce47_1000x563.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1qQW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96ad06b4-afae-4bb9-a37a-5b753541ce47_1000x563.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1qQW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96ad06b4-afae-4bb9-a37a-5b753541ce47_1000x563.jpeg 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></figure></div><p>We will be posting a set of videos everyday along with hands-on exercises. Watch the videos and work through the material at your own pace. It's completely free and open for all levels of QGIS users. </p><p>Read our blog post for all the details <a href="https://spatialthoughts.com/2024/05/13/30daysofqgis/">https://spatialthoughts.com/2024/05/13/30daysofqgis/</a></p><p>If you are following along, share your progress with hashtag #30DaysOfQGIS on Twitter or LinkedIn.</p><p>I wish you all the best and hope you find the content useful to improve your QGIS skills!</p>]]></content:encoded></item><item><title><![CDATA[Spatial Thoughts Newsletter #33]]></title><description><![CDATA[Free GDAL course on YouTube and new QGIS learning materials]]></description><link>https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-33</link><guid isPermaLink="false">https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-33</guid><dc:creator><![CDATA[Ujaval Gandhi]]></dc:creator><pubDate>Wed, 24 Apr 2024 06:59:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!XCta!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e43cfd-cf09-4bf6-9ea4-8f9bd274b909_2560x1440.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Mastering GDAL Tools</h2><p><a href="https://gdal.org/">GDAL</a> is one of the fundamental libraries powering almost all geospatial software today. It comes with a set of very powerful command-line utilities that are widely used for processing aerial and drone photos, analyzing satellite imagery, and building ETL pipelines. Being able to use the command-line is one of the essential skills for being successful in the geospatial industry today. We are pleased to announce that our <a href="https://spatialthoughts.com/courses/mastering-gdal-tools/">Mastering GDAL Tools</a> course is now available on YouTube for anyone to learn these skills! The entire course content is free for self-study and our videos will help you navigate the materials with ease.</p><p><a href="https://courses.spatialthoughts.com/gdal-tools.html">Access the Course Materials</a> &#8599;</p><p><a href="https://www.youtube.com/playlist?list=PLppGmFLhQ1HLVaHVf4TsnJ4HXZBSfxLOK">Access the YouTube Playlist &#8599;</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.youtube.com/playlist?list=PLppGmFLhQ1HLVaHVf4TsnJ4HXZBSfxLOK" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XCta!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e43cfd-cf09-4bf6-9ea4-8f9bd274b909_2560x1440.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XCta!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e43cfd-cf09-4bf6-9ea4-8f9bd274b909_2560x1440.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XCta!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e43cfd-cf09-4bf6-9ea4-8f9bd274b909_2560x1440.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XCta!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e43cfd-cf09-4bf6-9ea4-8f9bd274b909_2560x1440.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XCta!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e43cfd-cf09-4bf6-9ea4-8f9bd274b909_2560x1440.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/36e43cfd-cf09-4bf6-9ea4-8f9bd274b909_2560x1440.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1228450,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://www.youtube.com/playlist?list=PLppGmFLhQ1HLVaHVf4TsnJ4HXZBSfxLOK&quot;,&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_!XCta!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e43cfd-cf09-4bf6-9ea4-8f9bd274b909_2560x1440.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XCta!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e43cfd-cf09-4bf6-9ea4-8f9bd274b909_2560x1440.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XCta!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e43cfd-cf09-4bf6-9ea4-8f9bd274b909_2560x1440.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XCta!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e43cfd-cf09-4bf6-9ea4-8f9bd274b909_2560x1440.jpeg 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></figure></div><p>We continue to offer this course through our <a href="https://spatialthoughts.com/academy/">academy</a> - where participants can join paid live instructor-led sessions to get technical support and earn certification.</p><h2>Advanced GDAL Tutorials</h2><p>If you already use GDAL Tools, check out our newly published tutorials exploring the advanced functionality offered by these tools.</p><ul><li><p>Tutorial: <a href="https://spatialthoughts.com/2024/04/02/aggregate-and-align-rasters-gdal/">Reprojecting and Aggregating Rasters with GDAL</a></p></li><li><p>Tutorial: <a href="https://spatialthoughts.com/2024/02/26/gdal-google-cloud-storage/">GDAL and Google Cloud Storage (GCS)</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://spatialthoughts.com/2024/04/02/aggregate-and-align-rasters-gdal/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pvn2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75eb35a6-7f9e-42d5-8c12-e6094c458e82_720x1014.png 424w, https://substackcdn.com/image/fetch/$s_!pvn2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75eb35a6-7f9e-42d5-8c12-e6094c458e82_720x1014.png 848w, https://substackcdn.com/image/fetch/$s_!pvn2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75eb35a6-7f9e-42d5-8c12-e6094c458e82_720x1014.png 1272w, https://substackcdn.com/image/fetch/$s_!pvn2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75eb35a6-7f9e-42d5-8c12-e6094c458e82_720x1014.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pvn2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75eb35a6-7f9e-42d5-8c12-e6094c458e82_720x1014.png" width="380" height="535.1666666666666" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/75eb35a6-7f9e-42d5-8c12-e6094c458e82_720x1014.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1014,&quot;width&quot;:720,&quot;resizeWidth&quot;:380,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://spatialthoughts.com/2024/04/02/aggregate-and-align-rasters-gdal/&quot;,&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_!pvn2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75eb35a6-7f9e-42d5-8c12-e6094c458e82_720x1014.png 424w, https://substackcdn.com/image/fetch/$s_!pvn2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75eb35a6-7f9e-42d5-8c12-e6094c458e82_720x1014.png 848w, https://substackcdn.com/image/fetch/$s_!pvn2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75eb35a6-7f9e-42d5-8c12-e6094c458e82_720x1014.png 1272w, https://substackcdn.com/image/fetch/$s_!pvn2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75eb35a6-7f9e-42d5-8c12-e6094c458e82_720x1014.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">Raster data harmonization using GDAL</figcaption></figure></div><h2>Automating QGIS Map Creation</h2><p>QGIS Model Designer allows you to build workflows by chaining together many processing algorithms. In recent versions of QGIS - new algorithms are now able to take this one step further and even allow you to render maps from the model designer. You can learn how to do this from our step-by-step tutorial on <a href="https://spatialthoughts.com/2024/04/08/rendering-print-layouts/">Rendering Print Layouts from QGIS Models</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://spatialthoughts.com/2024/04/08/rendering-print-layouts/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qV9x!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F484cfe72-73f0-4a32-b0ef-fbc155e7d214_720x509.png 424w, https://substackcdn.com/image/fetch/$s_!qV9x!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F484cfe72-73f0-4a32-b0ef-fbc155e7d214_720x509.png 848w, https://substackcdn.com/image/fetch/$s_!qV9x!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F484cfe72-73f0-4a32-b0ef-fbc155e7d214_720x509.png 1272w, https://substackcdn.com/image/fetch/$s_!qV9x!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F484cfe72-73f0-4a32-b0ef-fbc155e7d214_720x509.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qV9x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F484cfe72-73f0-4a32-b0ef-fbc155e7d214_720x509.png" width="514" height="363.36944444444447" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/484cfe72-73f0-4a32-b0ef-fbc155e7d214_720x509.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:509,&quot;width&quot;:720,&quot;resizeWidth&quot;:514,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://spatialthoughts.com/2024/04/08/rendering-print-layouts/&quot;,&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_!qV9x!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F484cfe72-73f0-4a32-b0ef-fbc155e7d214_720x509.png 424w, https://substackcdn.com/image/fetch/$s_!qV9x!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F484cfe72-73f0-4a32-b0ef-fbc155e7d214_720x509.png 848w, https://substackcdn.com/image/fetch/$s_!qV9x!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F484cfe72-73f0-4a32-b0ef-fbc155e7d214_720x509.png 1272w, https://substackcdn.com/image/fetch/$s_!qV9x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F484cfe72-73f0-4a32-b0ef-fbc155e7d214_720x509.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">A map of current fires created using a model without any manual input</figcaption></figure></div><div><hr></div><p><em>We have several other courses in the editing queue - including our very popular Advanced QGIS course - which will be published soon. Please subscribe to our <a href="https://www.youtube.com/c/spatialthoughts">YouTube channel</a> to be the first one to know when we publish a new course.</em></p>]]></content:encoded></item><item><title><![CDATA[Spatial Thoughts Newsletter #32]]></title><description><![CDATA[Free course on Python Foundation for Spatial Analysis, QGIS expressions for cartography, video channels on YouTube and Vimeo]]></description><link>https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-32</link><guid isPermaLink="false">https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-32</guid><dc:creator><![CDATA[Ujaval Gandhi]]></dc:creator><pubDate>Fri, 29 Mar 2024 13:26:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9Z35!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45257dca-ac5a-46d7-ba84-15a8557aa7b6_800x352.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Learn Python for Geospatial</h2><p>One of our most popular courses - <a href="https://spatialthoughts.com/courses/python-foundation-for-spatial-analysis/">Python Foundation for Spatial Analysis</a> - is now available on YouTube! The full course material - notebooks, datasets, and ad-free videos - is available freely for self-study. </p><p><a href="https://courses.spatialthoughts.com/python-foundation.html">Access the Course Materials &#8599;</a></p><p><a href="https://www.youtube.com/playlist?list=PLppGmFLhQ1HJspXSA0asH9kw1OhlLrxHT">Access the YouTube Playlist &#8599;</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.youtube.com/playlist?list=PLppGmFLhQ1HJspXSA0asH9kw1OhlLrxHT" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9Z35!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45257dca-ac5a-46d7-ba84-15a8557aa7b6_800x352.png 424w, https://substackcdn.com/image/fetch/$s_!9Z35!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45257dca-ac5a-46d7-ba84-15a8557aa7b6_800x352.png 848w, https://substackcdn.com/image/fetch/$s_!9Z35!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45257dca-ac5a-46d7-ba84-15a8557aa7b6_800x352.png 1272w, https://substackcdn.com/image/fetch/$s_!9Z35!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45257dca-ac5a-46d7-ba84-15a8557aa7b6_800x352.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9Z35!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45257dca-ac5a-46d7-ba84-15a8557aa7b6_800x352.png" width="800" height="352" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/45257dca-ac5a-46d7-ba84-15a8557aa7b6_800x352.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:352,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:446137,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.youtube.com/playlist?list=PLppGmFLhQ1HJspXSA0asH9kw1OhlLrxHT&quot;,&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_!9Z35!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45257dca-ac5a-46d7-ba84-15a8557aa7b6_800x352.png 424w, https://substackcdn.com/image/fetch/$s_!9Z35!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45257dca-ac5a-46d7-ba84-15a8557aa7b6_800x352.png 848w, https://substackcdn.com/image/fetch/$s_!9Z35!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45257dca-ac5a-46d7-ba84-15a8557aa7b6_800x352.png 1272w, https://substackcdn.com/image/fetch/$s_!9Z35!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45257dca-ac5a-46d7-ba84-15a8557aa7b6_800x352.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></figure></div><p>We continue to offer this course through our <a href="https://spatialthoughts.com/academy/">academy</a> - where participants can join paid live instructor-led sessions, get technical support, and earn certification.</p><h2>New QGIS Tutorials for Cartography</h2><p>We have collaborated with Toronto-based cartographer <a href="https://geographyclub.github.io/">Steve Kim</a> to create a new set of QGIS tutorials to help you learn advanced cartography techniques. I am excited to share the first two tutorials from this series.</p><p><a href="https://www.qgistutorials.com/en/docs/3/vector_styling_expressions.html">Basic Filtering and Styling with Expressions</a>: A gentle introduction to expressions to create a map of a chosen region using expressions to filter and apply a color ramp.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.qgistutorials.com/en/docs/3/vector_styling_expressions.html" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PXLR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6196ffa-205f-4b92-bcb4-6949dbdbdb50_3070x2462.png 424w, https://substackcdn.com/image/fetch/$s_!PXLR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6196ffa-205f-4b92-bcb4-6949dbdbdb50_3070x2462.png 848w, https://substackcdn.com/image/fetch/$s_!PXLR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6196ffa-205f-4b92-bcb4-6949dbdbdb50_3070x2462.png 1272w, https://substackcdn.com/image/fetch/$s_!PXLR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6196ffa-205f-4b92-bcb4-6949dbdbdb50_3070x2462.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PXLR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6196ffa-205f-4b92-bcb4-6949dbdbdb50_3070x2462.png" width="318" height="255.0989010989011" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e6196ffa-205f-4b92-bcb4-6949dbdbdb50_3070x2462.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1168,&quot;width&quot;:1456,&quot;resizeWidth&quot;:318,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;../../_images/output2.png&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.qgistutorials.com/en/docs/3/vector_styling_expressions.html&quot;,&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="../../_images/output2.png" title="../../_images/output2.png" srcset="https://substackcdn.com/image/fetch/$s_!PXLR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6196ffa-205f-4b92-bcb4-6949dbdbdb50_3070x2462.png 424w, https://substackcdn.com/image/fetch/$s_!PXLR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6196ffa-205f-4b92-bcb4-6949dbdbdb50_3070x2462.png 848w, https://substackcdn.com/image/fetch/$s_!PXLR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6196ffa-205f-4b92-bcb4-6949dbdbdb50_3070x2462.png 1272w, https://substackcdn.com/image/fetch/$s_!PXLR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6196ffa-205f-4b92-bcb4-6949dbdbdb50_3070x2462.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"><a href="https://www.qgistutorials.com/en/docs/3/vector_styling_expressions.html">Tutorial: Basic Filtering and Styling with Expressions</a></figcaption></figure></div><p><a href="https://www.qgistutorials.com/en/docs/3/block_world_styling.html">Creating a Block World Map</a>: Explore conditional expression to create a stunning visualization of topography using a hex grid and 2.5d renderer.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pT9p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b41f504-1f9d-4419-8d5f-2b78309d3ea2_2158x1448.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pT9p!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b41f504-1f9d-4419-8d5f-2b78309d3ea2_2158x1448.png 424w, https://substackcdn.com/image/fetch/$s_!pT9p!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b41f504-1f9d-4419-8d5f-2b78309d3ea2_2158x1448.png 848w, https://substackcdn.com/image/fetch/$s_!pT9p!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b41f504-1f9d-4419-8d5f-2b78309d3ea2_2158x1448.png 1272w, https://substackcdn.com/image/fetch/$s_!pT9p!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b41f504-1f9d-4419-8d5f-2b78309d3ea2_2158x1448.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pT9p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b41f504-1f9d-4419-8d5f-2b78309d3ea2_2158x1448.png" width="376" height="252.3021978021978" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5b41f504-1f9d-4419-8d5f-2b78309d3ea2_2158x1448.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:977,&quot;width&quot;:1456,&quot;resizeWidth&quot;:376,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;../../_images/output.png&quot;,&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="../../_images/output.png" title="../../_images/output.png" srcset="https://substackcdn.com/image/fetch/$s_!pT9p!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b41f504-1f9d-4419-8d5f-2b78309d3ea2_2158x1448.png 424w, https://substackcdn.com/image/fetch/$s_!pT9p!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b41f504-1f9d-4419-8d5f-2b78309d3ea2_2158x1448.png 848w, https://substackcdn.com/image/fetch/$s_!pT9p!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b41f504-1f9d-4419-8d5f-2b78309d3ea2_2158x1448.png 1272w, https://substackcdn.com/image/fetch/$s_!pT9p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b41f504-1f9d-4419-8d5f-2b78309d3ea2_2158x1448.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"><a href="https://www.qgistutorials.com/en/docs/3/block_world_styling.html">Tutorial: Creating a Block World Map</a></figcaption></figure></div><p></p><h2>GDAL Commands in Colab</h2><p>By popular demand, we released a <a href="https://colab.research.google.com/github/spatialthoughts/courses/blob/master/code/gdal/mastering_gdal_tools.ipynb">Colab Notebook</a> showing how to install and run GDAL programs and integrate them with Python workflows. You can try the entire content of my <a href="https://courses.spatialthoughts.com/gdal-tools.html">Mastering GDAL Tools</a> course in this Colab notebook </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://colab.research.google.com/github/spatialthoughts/courses/blob/master/code/gdal/mastering_gdal_tools.ipynb" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sn7J!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff41cae3d-514d-45e2-9d62-189763bc5a83_800x450.gif 424w, https://substackcdn.com/image/fetch/$s_!sn7J!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff41cae3d-514d-45e2-9d62-189763bc5a83_800x450.gif 848w, https://substackcdn.com/image/fetch/$s_!sn7J!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff41cae3d-514d-45e2-9d62-189763bc5a83_800x450.gif 1272w, https://substackcdn.com/image/fetch/$s_!sn7J!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff41cae3d-514d-45e2-9d62-189763bc5a83_800x450.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sn7J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff41cae3d-514d-45e2-9d62-189763bc5a83_800x450.gif" width="800" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f41cae3d-514d-45e2-9d62-189763bc5a83_800x450.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:450,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2639396,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:&quot;https://colab.research.google.com/github/spatialthoughts/courses/blob/master/code/gdal/mastering_gdal_tools.ipynb&quot;,&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_!sn7J!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff41cae3d-514d-45e2-9d62-189763bc5a83_800x450.gif 424w, https://substackcdn.com/image/fetch/$s_!sn7J!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff41cae3d-514d-45e2-9d62-189763bc5a83_800x450.gif 848w, https://substackcdn.com/image/fetch/$s_!sn7J!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff41cae3d-514d-45e2-9d62-189763bc5a83_800x450.gif 1272w, https://substackcdn.com/image/fetch/$s_!sn7J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff41cae3d-514d-45e2-9d62-189763bc5a83_800x450.gif 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></figure></div><div><hr></div><h2>YouTube and Vimeo Channels</h2><p>All my course materials have always been freely available and now we are also releasing videos for all our courses to enable everyone to learn more effectively. This is a lot of work to edit and curate these videos but I am hopeful that this will help many people fill gaps in their knowledge and learn advanced skills.</p><p>Check out our <a href="https://www.youtube.com/c/spatialthoughts">YouTube channel</a> - where we share ad-free videos curated for online learning. </p><p>We also publish full-length videos on our <a href="https://vimeo.com/spatialthoughts">Vimeo channel</a> and allow video downloads for offline viewing.</p><p>Do let me know your feedback on the video content and how we can make them more useful.</p>]]></content:encoded></item><item><title><![CDATA[Spatial Thoughts Newsletter #31]]></title><description><![CDATA[Free Video-Based Earth Engine Courses, Teaching Remote Sensing to Kids, Biomass Prediction, GDAL and Google Cloud Storage]]></description><link>https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-31</link><guid isPermaLink="false">https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-31</guid><dc:creator><![CDATA[Ujaval Gandhi]]></dc:creator><pubDate>Wed, 28 Feb 2024 09:57:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!umZF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a832fb7-11f5-4b56-9804-f5b070822dba_1188x1344.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>New Open Access Courses with Videos</h2><p>Over the past few months, we have been working hard to make our courses accessible to more people. We are happy to announce that two of our popular Google Earth Engine courses are now available on our <a href="https://www.youtube.com/c/spatialthoughts">YouTube Channel</a> - along with open-source code and content. If you have been wanting to learn GEE but found it hard - these courses will help you build your skills in a structured manner.</p><h4>Google Earth Engine for Water Resources Management</h4><p>This is a beginner-friendly 24-hour course covering Earth Engine programming to help you become proficient at implementing remote sensing applications. We have 100+ videos covering the following topics:<br><br>1. Google Earth Engine Fundamentals<br>2. Surface Water Mapping<br>3. Precipitation Time Series Analysis<br>4. Land Use Land Cover Classification<br>5. Flood Mapping<br>6. Drought Monitoring<br>7. Earth Engine Apps</p><p><a href="https://courses.spatialthoughts.com/gee-water-resources-management.html">Access the Course Materials &#8599;</a></p><p><a href="https://www.youtube.com/watch?v=eZrNAXDjyaI&amp;list=PLppGmFLhQ1HI0YeA5zQHxdNlmxihvBawF&amp;index=1">Access the YouTube Playlist &#8599;</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.youtube.com/watch?v=eZrNAXDjyaI&amp;list=PLppGmFLhQ1HI0YeA5zQHxdNlmxihvBawF&amp;index=1" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!umZF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a832fb7-11f5-4b56-9804-f5b070822dba_1188x1344.jpeg 424w, https://substackcdn.com/image/fetch/$s_!umZF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a832fb7-11f5-4b56-9804-f5b070822dba_1188x1344.jpeg 848w, https://substackcdn.com/image/fetch/$s_!umZF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a832fb7-11f5-4b56-9804-f5b070822dba_1188x1344.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!umZF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a832fb7-11f5-4b56-9804-f5b070822dba_1188x1344.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!umZF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a832fb7-11f5-4b56-9804-f5b070822dba_1188x1344.jpeg" width="344" height="389.17171717171715" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6a832fb7-11f5-4b56-9804-f5b070822dba_1188x1344.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1344,&quot;width&quot;:1188,&quot;resizeWidth&quot;:344,&quot;bytes&quot;:350531,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://www.youtube.com/watch?v=eZrNAXDjyaI&amp;list=PLppGmFLhQ1HI0YeA5zQHxdNlmxihvBawF&amp;index=1&quot;,&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_!umZF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a832fb7-11f5-4b56-9804-f5b070822dba_1188x1344.jpeg 424w, https://substackcdn.com/image/fetch/$s_!umZF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a832fb7-11f5-4b56-9804-f5b070822dba_1188x1344.jpeg 848w, https://substackcdn.com/image/fetch/$s_!umZF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a832fb7-11f5-4b56-9804-f5b070822dba_1188x1344.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!umZF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a832fb7-11f5-4b56-9804-f5b070822dba_1188x1344.jpeg 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></figure></div><h4>Creating Publication Quality Charts with GEE</h4><p>This is an intermediate-level class that is suited for participants who are familiar with the Google Earth Engine API and want to learn advanced data visualization methods. This class also introduces novel earth observation and climate datasets along with techniques to work with them. We have 30+ videos covering the full range of topics including advanced charts such as Box Plots.</p><p><a href="https://courses.spatialthoughts.com/gee-charts.html">Access the Course Materials &#8599;</a></p><p><a href="https://www.youtube.com/watch?v=quHX1HOCIKU&amp;list=PLppGmFLhQ1HKyrR75waIq6TfqL0ESlQao">Access the YouTube Playlist &#8599;</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.youtube.com/watch?v=quHX1HOCIKU&amp;list=PLppGmFLhQ1HKyrR75waIq6TfqL0ESlQao" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zbI4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e54f3f-9b5c-47c7-989e-e78471a80040_1200x1029.jpeg 424w, https://substackcdn.com/image/fetch/$s_!zbI4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e54f3f-9b5c-47c7-989e-e78471a80040_1200x1029.jpeg 848w, https://substackcdn.com/image/fetch/$s_!zbI4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e54f3f-9b5c-47c7-989e-e78471a80040_1200x1029.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!zbI4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e54f3f-9b5c-47c7-989e-e78471a80040_1200x1029.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zbI4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e54f3f-9b5c-47c7-989e-e78471a80040_1200x1029.jpeg" width="330" height="282.975" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/03e54f3f-9b5c-47c7-989e-e78471a80040_1200x1029.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1029,&quot;width&quot;:1200,&quot;resizeWidth&quot;:330,&quot;bytes&quot;:192357,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://www.youtube.com/watch?v=quHX1HOCIKU&amp;list=PLppGmFLhQ1HKyrR75waIq6TfqL0ESlQao&quot;,&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_!zbI4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e54f3f-9b5c-47c7-989e-e78471a80040_1200x1029.jpeg 424w, https://substackcdn.com/image/fetch/$s_!zbI4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e54f3f-9b5c-47c7-989e-e78471a80040_1200x1029.jpeg 848w, https://substackcdn.com/image/fetch/$s_!zbI4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e54f3f-9b5c-47c7-989e-e78471a80040_1200x1029.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!zbI4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e54f3f-9b5c-47c7-989e-e78471a80040_1200x1029.jpeg 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></figure></div><h2>New Tutorials</h2><ul><li><p><a href="https://spatialthoughts.com/2024/02/07/agb-regression-gee/">Estimating Above Ground Biomass using Random Forest Regression in GEE</a></p></li><li><p><a href="https://spatialthoughts.com/2024/02/26/gdal-google-cloud-storage/">GDAL and Google Cloud Storage (GCS)</a></p></li></ul><h2>Upcoming Classes</h2><p>We have a few more QGIS and Python classes scheduled before the summer break. </p><ul><li><p>Advanced QGIS (March 2024)</p></li><li><p>Mapping and Data Visualization with Python (April 2024)</p></li><li><p>PyQGIS Masterclass (May 2024)</p></li></ul><p>If you wish to attend any of these classes, make sure to sign up on the waitlist to know when the registration opens.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://spatialthoughts.com/events/&quot;,&quot;text&quot;:&quot;View Online Class Schedule&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://spatialthoughts.com/events/"><span>View Online Class Schedule</span></a></p><h3>Teaching Remote Sensing to Kids</h3><p>My most challenging yet satisfying project so far was to teach kids about Earth Observation. I developed new content for the "Science of Satellites" session for Kids in Grades 1-4 that includes hands-on activities and crazy stories of space. All the content developed for this session is shared freely and under an open license. Check out my post on <a href="https://spatialthoughts.com/2024/02/24/remote-sensing-for-kids/">Teaching Remote Sensing to Kids</a> with free downloadable content.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://spatialthoughts.com/2024/02/24/remote-sensing-for-kids/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GhjI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fd1461a-2378-4335-a9ba-8a923256f4ad_1000x707.jpeg 424w, https://substackcdn.com/image/fetch/$s_!GhjI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fd1461a-2378-4335-a9ba-8a923256f4ad_1000x707.jpeg 848w, https://substackcdn.com/image/fetch/$s_!GhjI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fd1461a-2378-4335-a9ba-8a923256f4ad_1000x707.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!GhjI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fd1461a-2378-4335-a9ba-8a923256f4ad_1000x707.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GhjI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fd1461a-2378-4335-a9ba-8a923256f4ad_1000x707.jpeg" width="374" height="264.418" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7fd1461a-2378-4335-a9ba-8a923256f4ad_1000x707.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:707,&quot;width&quot;:1000,&quot;resizeWidth&quot;:374,&quot;bytes&quot;:61565,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://spatialthoughts.com/2024/02/24/remote-sensing-for-kids/&quot;,&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_!GhjI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fd1461a-2378-4335-a9ba-8a923256f4ad_1000x707.jpeg 424w, https://substackcdn.com/image/fetch/$s_!GhjI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fd1461a-2378-4335-a9ba-8a923256f4ad_1000x707.jpeg 848w, https://substackcdn.com/image/fetch/$s_!GhjI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fd1461a-2378-4335-a9ba-8a923256f4ad_1000x707.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!GhjI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fd1461a-2378-4335-a9ba-8a923256f4ad_1000x707.jpeg 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></figure></div><p></p><div><hr></div><p></p>]]></content:encoded></item><item><title><![CDATA[Spatial Thoughts Newsletter #30]]></title><description><![CDATA[Free and Open Satellite Data from ISRO]]></description><link>https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-30</link><guid isPermaLink="false">https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-30</guid><dc:creator><![CDATA[Ujaval Gandhi]]></dc:creator><pubDate>Fri, 05 Jan 2024 11:27:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!bnDf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F204a1c87-50b5-41b9-a36a-9e303ae9c8cf_1114x703.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Free and Open Satellite Data from ISRO</h2><p>Indian Space Research Organisation (ISRO) operates a huge constellation of remote sensing satellites, but their data was never available to the public and was difficult to procure. Finally under the new <a href="https://www.isro.gov.in/media_isro/pdf/IndianSpacePolicy2023.pdf">India Space Policy 2023</a> - they decided to release much of their archive as &#8216;free-and-open&#8217; data. NRSC implemented this policy last month and made the data available for download. This open archive includes data from ResourceSat2/2A from the LISS4 camera having a spatial resolution of 5.8m. Making this the highest resolution open data available for India. As you can see in the image below - you can see much more finer details compared to the Sentinel-2 data. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://spatialthoughts.com/2023/12/25/liss4-processing-xarray/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bnDf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F204a1c87-50b5-41b9-a36a-9e303ae9c8cf_1114x703.gif 424w, https://substackcdn.com/image/fetch/$s_!bnDf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F204a1c87-50b5-41b9-a36a-9e303ae9c8cf_1114x703.gif 848w, https://substackcdn.com/image/fetch/$s_!bnDf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F204a1c87-50b5-41b9-a36a-9e303ae9c8cf_1114x703.gif 1272w, https://substackcdn.com/image/fetch/$s_!bnDf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F204a1c87-50b5-41b9-a36a-9e303ae9c8cf_1114x703.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bnDf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F204a1c87-50b5-41b9-a36a-9e303ae9c8cf_1114x703.gif" width="534" height="336.98563734290843" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/204a1c87-50b5-41b9-a36a-9e303ae9c8cf_1114x703.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:703,&quot;width&quot;:1114,&quot;resizeWidth&quot;:534,&quot;bytes&quot;:753512,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:&quot;https://spatialthoughts.com/2023/12/25/liss4-processing-xarray/&quot;,&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_!bnDf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F204a1c87-50b5-41b9-a36a-9e303ae9c8cf_1114x703.gif 424w, https://substackcdn.com/image/fetch/$s_!bnDf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F204a1c87-50b5-41b9-a36a-9e303ae9c8cf_1114x703.gif 848w, https://substackcdn.com/image/fetch/$s_!bnDf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F204a1c87-50b5-41b9-a36a-9e303ae9c8cf_1114x703.gif 1272w, https://substackcdn.com/image/fetch/$s_!bnDf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F204a1c87-50b5-41b9-a36a-9e303ae9c8cf_1114x703.gif 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></figure></div><p></p><p>To make it easier to use this data - I worked on building an open-source Python workflow to process this data. The implementation is done in XArray - which allows you to easily work with local or cloud-hosted data and process it with parallel computing using Dask. Check out my new article <a href="https://spatialthoughts.com/2023/12/25/liss4-processing-xarray/">LISS4 Image Processing using XArray and Dask</a> which explains the process for downloading and processing the data using Python.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://spatialthoughts.com/2023/12/25/liss4-processing-xarray/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cZj3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614a3662-8451-44a7-9ca9-99ca07313a1b_800x372.gif 424w, https://substackcdn.com/image/fetch/$s_!cZj3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614a3662-8451-44a7-9ca9-99ca07313a1b_800x372.gif 848w, https://substackcdn.com/image/fetch/$s_!cZj3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614a3662-8451-44a7-9ca9-99ca07313a1b_800x372.gif 1272w, https://substackcdn.com/image/fetch/$s_!cZj3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614a3662-8451-44a7-9ca9-99ca07313a1b_800x372.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cZj3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614a3662-8451-44a7-9ca9-99ca07313a1b_800x372.gif" width="520" height="241.8" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/614a3662-8451-44a7-9ca9-99ca07313a1b_800x372.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:372,&quot;width&quot;:800,&quot;resizeWidth&quot;:520,&quot;bytes&quot;:702908,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:&quot;https://spatialthoughts.com/2023/12/25/liss4-processing-xarray/&quot;,&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_!cZj3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614a3662-8451-44a7-9ca9-99ca07313a1b_800x372.gif 424w, https://substackcdn.com/image/fetch/$s_!cZj3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614a3662-8451-44a7-9ca9-99ca07313a1b_800x372.gif 848w, https://substackcdn.com/image/fetch/$s_!cZj3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614a3662-8451-44a7-9ca9-99ca07313a1b_800x372.gif 1272w, https://substackcdn.com/image/fetch/$s_!cZj3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614a3662-8451-44a7-9ca9-99ca07313a1b_800x372.gif 1456w" sizes="100vw"></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></figure></div><p></p><h3>New QGIS Tutorials</h3><p>We published several new step-by-step QGIS tutorials - including one to create a <em><strong>colorized river basin map</strong></em> anywhere in the world using open datasets. We also have a growing list of thematic tutorials focused on <em><strong>urban planning</strong></em>. Check out the tutorials from the links below:</p><ul><li><p><a href="https://www.qgistutorials.com/en/docs/3/colorized_river_basin_map.html">Creating a Colorized River Basin Map</a></p></li><li><p><a href="https://www.qgistutorials.com/en/docs/3/creating_landuse_map.html">Creating a Landuse Map</a></p></li><li><p><a href="https://www.qgistutorials.com/en/docs/3/landuse_buffer.html">Determining Landuse Buffer Zones</a></p></li><li><p><a href="https://www.qgistutorials.com/en/docs/3/solidwaste_mapping.html">Mapping Waste Disposal Volumes</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.qgistutorials.com/en/docs/3/colorized_river_basin_map.html" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DscX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134d16f6-d4bc-4c1a-804e-bdf0cce01889_1200x1304.png 424w, https://substackcdn.com/image/fetch/$s_!DscX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134d16f6-d4bc-4c1a-804e-bdf0cce01889_1200x1304.png 848w, https://substackcdn.com/image/fetch/$s_!DscX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134d16f6-d4bc-4c1a-804e-bdf0cce01889_1200x1304.png 1272w, https://substackcdn.com/image/fetch/$s_!DscX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134d16f6-d4bc-4c1a-804e-bdf0cce01889_1200x1304.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DscX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134d16f6-d4bc-4c1a-804e-bdf0cce01889_1200x1304.png" width="344" height="373.81333333333333" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/134d16f6-d4bc-4c1a-804e-bdf0cce01889_1200x1304.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1304,&quot;width&quot;:1200,&quot;resizeWidth&quot;:344,&quot;bytes&quot;:1613246,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.qgistutorials.com/en/docs/3/colorized_river_basin_map.html&quot;,&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_!DscX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134d16f6-d4bc-4c1a-804e-bdf0cce01889_1200x1304.png 424w, https://substackcdn.com/image/fetch/$s_!DscX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134d16f6-d4bc-4c1a-804e-bdf0cce01889_1200x1304.png 848w, https://substackcdn.com/image/fetch/$s_!DscX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134d16f6-d4bc-4c1a-804e-bdf0cce01889_1200x1304.png 1272w, https://substackcdn.com/image/fetch/$s_!DscX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134d16f6-d4bc-4c1a-804e-bdf0cce01889_1200x1304.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></figure></div><p></p><h2>Upcoming Classes</h2><p>Regular online instructor-led classes are back. We have several classes scheduled over the next few months. </p><ul><li><p>Python Foundation for Spatial Analysis (February 2024)</p></li><li><p>Mastering GDAL Tools (February 2024)</p></li><li><p>End-to-End Google Earth Engine (March 2024)</p></li></ul><p>Just a few spots remain. If you wish to attend any of these classes, make sure to book your seat soon.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://spatialthoughts.com/events/&quot;,&quot;text&quot;:&quot;View Schedule&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://spatialthoughts.com/events/"><span>View Schedule</span></a></p><p></p><h3>New Dynamic World Workshops</h3><p>Dynamic World is a landcover product developed by Google and WRI. I developed and conducted several new Google Earth Engine workshops that show how to use this unique dataset for landcover classification and monitoring. Check out these new resources:</p><ul><li><p><a href="https://spatialthoughts.com/2023/11/22/dw-mapathon-nairobi/">Enhancing Land Cover with Local Knowledge</a>: An article with an overview of the dataset and applications in building locally relevant landcover maps.</p></li><li><p><a href="https://courses.spatialthoughts.com/gee-dynamic-world.html">Hands-on Introduction to Dynamic World</a>: An introductory workshop to utilize the Dynamic World dataset in Google Earth Engine.</p></li><li><p><a href="https://bit.ly/ingarss-tutorial-gee">Monitoring Land Use Land Cover Changes with Google Earth Engine</a>: A workshop to use Dynamic World for landcover monitoring with both Javascript and Python code. </p></li></ul><p></p><div><hr></div><h2></h2><p></p>]]></content:encoded></item><item><title><![CDATA[Spatial Thoughts Newsletter #29]]></title><description><![CDATA[GeoWebCast Podcast: All about QGIS]]></description><link>https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-29</link><guid isPermaLink="false">https://spatialthoughts.substack.com/p/spatial-thoughts-newsletter-29</guid><dc:creator><![CDATA[Ujaval Gandhi]]></dc:creator><pubDate>Wed, 08 Nov 2023 09:53:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/9LskEHCpwgw" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>GeoWebCast Podcast: All about QGIS</h2><p>I was interviewed by Krishna Lodha for the inaugural episode of the <a href="https://www.youtube.com/watch?v=9LskEHCpwgw">GeoWebCast podcast</a>. We talked about the wild possibilities of QGIS for analysis, cartography, and automation. I shared many tips and techniques for automating workflows. If you want a highlight - jump to 13:15 in the video to see the demo where I create a beautiful colorized map of river basins with QGIS in just a few steps.</p><div id="youtube2-9LskEHCpwgw" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;9LskEHCpwgw&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/9LskEHCpwgw?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2>New Workshop: Introduction to Google Earth Engine in Javascript</h2><p>Google Earth Engine (GEE) is a powerful cloud-based software for working with earth observation datasets - but it has a steep learning curve. If you have tried using GEE but found it difficult to ramp up - check out my new free 5-hour workshop <a href="https://courses.spatialthoughts.com/gee-introduction.html">Introduction to Google Earth Engine in Javascript</a>. This short hands-on workshop is the perfect stepping stone that covers GEE from the very basics and <em>assumes no programming knowledge</em>. I taught this at the Geo for Good 2023 conference and the professionally produced videos along with the course materials are now available for anyone! Head over to the <a href="https://courses.spatialthoughts.com/gee-introduction.htm">workshop homepage</a> to access the workshop material and videos for free!</p><div id="youtube2-K5GTY9sGe5Y" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;K5GTY9sGe5Y&quot;,&quot;startTime&quot;:&quot;28s&quot;,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/K5GTY9sGe5Y?start=28s&amp;rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h2>Geo for Good 2023 Conference</h2><p>I was at Google&#8217;s annual Geo for Good conference in Mountain View, California. There were several big announcements for Earth Engine users along with very useful talks. All the sessions are now<a href="https://earthoutreachonair.withgoogle.com/events/geoforgood23"> available for streaming</a>. My Top 3 recommendations are below:</p><ol><li><p><a href="https://www.youtube.com/watch?v=3AtnpkZTvnk">Earth Engine Scaling and Debugging</a> by Noel Gorelick</p></li><li><p><a href="https://www.youtube.com/watch?v=fsez4HiOc8k">Using Earth Engine for very large computations</a> by Mike Dixon</p></li><li><p><a href="https://www.youtube.com/watch?v=NK9dKS7CP18">Detecting clouds and cloud shadows using weakly supervised video analysis</a> by Valerie Pasquarella and Andr&#233;a P. Nicolau</p><p></p></li></ol><h2>Learning SQL with DuckDB</h2><p>SQL is a must-have skill for the modern geospatial professionals. Prof. Qiusheng Wu launched a new beginner-friendly course that teaches you <a href="https://geog-414.gishub.org/book/duckdb/01_duckdb_intro.html">Spatial Databases with DuckDB</a>. DuckDB is a new high-performance database that brings a paradigm shift in how we process data. I strongly believe that this will be a key technology in the spatial domain in the coming years. Even if you know SQL - this free course will help you get your hands dirty with DuckDB.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://geog-414.gishub.org/book/duckdb/01_duckdb_intro.html" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sVFq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07751f01-df84-459c-a218-3bf4d687b34d_939x361.png 424w, https://substackcdn.com/image/fetch/$s_!sVFq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07751f01-df84-459c-a218-3bf4d687b34d_939x361.png 848w, https://substackcdn.com/image/fetch/$s_!sVFq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07751f01-df84-459c-a218-3bf4d687b34d_939x361.png 1272w, https://substackcdn.com/image/fetch/$s_!sVFq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07751f01-df84-459c-a218-3bf4d687b34d_939x361.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sVFq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07751f01-df84-459c-a218-3bf4d687b34d_939x361.png" width="939" height="361" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07751f01-df84-459c-a218-3bf4d687b34d_939x361.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:361,&quot;width&quot;:939,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://geog-414.gishub.org/book/duckdb/01_duckdb_intro.html&quot;,&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_!sVFq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07751f01-df84-459c-a218-3bf4d687b34d_939x361.png 424w, https://substackcdn.com/image/fetch/$s_!sVFq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07751f01-df84-459c-a218-3bf4d687b34d_939x361.png 848w, https://substackcdn.com/image/fetch/$s_!sVFq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07751f01-df84-459c-a218-3bf4d687b34d_939x361.png 1272w, https://substackcdn.com/image/fetch/$s_!sVFq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07751f01-df84-459c-a218-3bf4d687b34d_939x361.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></figure></div><div><hr></div><p>I am still on a break and spending my time building a new course on <em>Cloud-based Remote Sensing with Python</em> using the modern open-source stack (XArray/Dask/STAC). It&#8217;s coming along well and hope to announce it soon.</p><p>Regular instructor-led online classes will resume soon. Check out all our <a href="https://spatialthoughts.com/courses/">Courses</a> and <a href="https://docs.google.com/forms/d/e/1FAIpQLSfVK_hYA30vKZJVEBgUeZnaFGeKcS92KYJvaDcxV6KabH2gIw/viewform">Sign up on the waitlist</a> to be the first one to know when you can register for a live class.</p><p></p>]]></content:encoded></item></channel></rss>