<script data-pm-proxy="intercept"></script><?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[Applied Geospatial]]></title><description><![CDATA[Applying Machine Learning to Geospatial Data.
(Opinions expressed are my own).]]></description><link>https://christopherren.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!_ShX!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94621bf0-96f9-4347-b095-5927c2d42626_275x275.png</url><title>Applied Geospatial</title><link>https://christopherren.substack.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 01 Sep 2026 12:19:23 GMT</lastBuildDate><atom:link href="/__u/christopherren.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Christopher Ren]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[christopherren@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[christopherren@substack.com]]></itunes:email><itunes:name><![CDATA[Christopher Ren]]></itunes:name></itunes:owner><itunes:author><![CDATA[Christopher Ren]]></itunes:author><googleplay:owner><![CDATA[christopherren@substack.com]]></googleplay:owner><googleplay:email><![CDATA[christopherren@substack.com]]></googleplay:email><googleplay:author><![CDATA[Christopher Ren]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Trust, but Verify: Climate Risk Scores]]></title><description><![CDATA[Relevant links:]]></description><link>https://christopherren.substack.com/p/trust-but-verify-climate-risk-scores</link><guid isPermaLink="false">https://christopherren.substack.com/p/trust-but-verify-climate-risk-scores</guid><dc:creator><![CDATA[Christopher Ren]]></dc:creator><pubDate>Sun, 14 Jun 2026 15:47:26 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/201999673/484b5579f161072c69309240549857ed.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Relevant links:<br><a href="https://carbonplan.org/research/climate-risk?lat=35.67165&amp;lng=-105.93363&amp;zoom=13.17">Carbon Plan Open Climate Risk</a></p><p><a href="https://www.fca.org.uk/publication/corporate/risk-professionals-guide-physical-risk-assessments-garp-benchmarking-study-13-vendors.pdf">A Risk Professional&#8217;s Guide to Physical Risk Assessments</a><br><a href="https://carbonplan.org/research/climate-risk-comparison">Climate Risk <br><br>Companies Don&#8217;t Always Agree</a><br><a href="https://arizonastatelawjournal.org/wp-content/uploads/2023/08/55.1_Condon_Publication.docx.pdf">Climate Services: The Business of Physical Risk</a><br><br><br>(00:00) Chris Struggles to Define Climate Risk Scores, Arbitrary Scores</p><p>(13:30) Incentive Structures: Information Asymmetry and Product Quality, Comparison with Other Scoring Industries</p><p>(23:50) Practical Examples: Zillow Real Estate Scores</p><p>(29:00) Uncertainty and Verification</p><p>(35:00) Climate Opinion Scores</p><p>(41:00) Geocoding</p><p>(50:00) Parametric Insurance<br><br>Side Note:<br>Several people have noted that when I&#8217;ve been thinking about something for a while/get excited about something I just start yapping without setting any context. You can observe this phenomenon in the first half of this podcast, I&#8217;ll be working on that so future episodes should be easier to follow.</p>]]></content:encoded></item><item><title><![CDATA[Live from New York: Are Geospatial Platforms Dead? ]]></title><description><![CDATA[I flew to the East Coast and drank a beer with Krishna.]]></description><link>https://christopherren.substack.com/p/live-from-new-york-are-geospatial</link><guid isPermaLink="false">https://christopherren.substack.com/p/live-from-new-york-are-geospatial</guid><dc:creator><![CDATA[Christopher Ren]]></dc:creator><pubDate>Mon, 04 May 2026 05:36:03 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/196385951/fafd521dc7dac6c29e2aa7180d9793ed.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>I flew to the East Coast and drank a beer with Krishna.<br><br>(00:00) Sick New Jingle</p><p>(00:20) Double IPA</p><p>(01:20) The Gang Struggles to Define a Platform: Metadata, Storage, Compute, APIs</p><p>(11:20) The Value of a Platform</p><p>(16:00) What If, What If, What If We Replaced Geospatial Platforms with Claude</p><p>(24:00) Custom Use Case Development vs Platforms</p><p>(27:00) Money Money Money, Chris&#8217; time as a traveling Google Cloud Salesman, Analytics Companies, Skytruth&#8217;s Sentinel-1 Pipeline, Honestly This Conversation Kind of Meanders a Bit.</p><p>(34:00) Ask Not What Platforms Can Do For You</p>]]></content:encoded></item><item><title><![CDATA[Time-series, Landtrendr, Bayesian Deforestation Detection and Anomalous Change Detection]]></title><description><![CDATA[In which Krishna ambushes Chris with questions about things he hasn't worked on for years]]></description><link>https://christopherren.substack.com/p/time-series-landtrendr-bayesian-deforestation</link><guid isPermaLink="false">https://christopherren.substack.com/p/time-series-landtrendr-bayesian-deforestation</guid><dc:creator><![CDATA[Christopher Ren]]></dc:creator><pubDate>Tue, 10 Mar 2026 03:17:33 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/190467654/c7ad3a6350eee5b8b8f5f49c339e68be.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>(00:00) Time series, Landtrendr, New Mexico, Cuba. Is medium/low-resolution imagery underrated?</p><p>(15:00) Bayesian Deforestation Detection, operation-oriented algorithms and platforms</p><p>(27:00) Landtrendr in the West Bank, CCDC</p><p>(35:00) Anomalous Change Detection, how to deal with co-registration issues.<br></p><p>Links:<br><a href="https://emapr.github.io/LT-GEE/landtrendr.html">Landtrendr</a></p><p><a href="https://www.sciencedirect.com/science/article/abs/pii/S0034425717304959">Bayesian Deforestation Detection</a></p><p><a href="https://developers.google.com/earth-engine/datasets/catalog/GOOGLE_GLOBAL_CCDC_V1">CCDC product on GEE</a> ( I was wrong about this being MODIS)</p><p><a href="https://web.engr.oregonstate.edu/~wongwe/workshops/icml2006/papers/theiler.pdf">Anomalous Change Detection</a></p><p><a href="https://ieeexplore.ieee.org/document/6144006">Dealing with co-registration issues with ACD</a> </p><p></p>]]></content:encoded></item><item><title><![CDATA[Spatial Intelligence, The Ideal Geospatial Journal, Weather Data, Opus 4.5 and the Death of Effort ]]></title><description><![CDATA[A freestyle episode]]></description><link>https://christopherren.substack.com/p/spatial-intelligence-the-ideal-geospatial</link><guid isPermaLink="false">https://christopherren.substack.com/p/spatial-intelligence-the-ideal-geospatial</guid><dc:creator><![CDATA[Christopher Ren]]></dc:creator><pubDate>Thu, 29 Jan 2026 16:08:40 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/186207076/3375b2e8bdc037a0b96b4d23a0e5543b.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>No pre-prepared discussion subject this time, we just winged it.</p><p>(00:00) Imagine useful geospatial models, it&#8217;s easy if you try.</p><p>(08:00) Academic papers, life at the paper mill, distilled .pub for geospatial.</p><p>(24:30) Weather data vs earth observation data consumption. Differences in value and monetization, difficulty in forecasting products.</p><p>(49:30) Opus 4.5, Claude code, AI tools and the death of meaning and effort at work.</p>]]></content:encoded></item><item><title><![CDATA[Applied Geospatial: Greatest Hits 2025]]></title><description><![CDATA[A Slightly Unhinged Year in Review]]></description><link>https://christopherren.substack.com/p/applied-geospatial-greatest-hits</link><guid isPermaLink="false">https://christopherren.substack.com/p/applied-geospatial-greatest-hits</guid><dc:creator><![CDATA[Christopher Ren]]></dc:creator><pubDate>Thu, 01 Jan 2026 05:29:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Vnn6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc059614a-c09b-46e8-9979-329adc345de6_4800x3600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>TLDR in 2025; </h3><ul><li><p>I am super, super grateful to all of you for subscribing and reaching out. I got to meet/chat with so many cool people in earth observation this year, and I hope this continues next year.</p></li><li><p>Forecasted US almond yield.</p></li><li><p>ERA5: don&#8217;t believe his lies.</p></li><li><p>No one really wants to read about anomaly detection, even if it&#8217;s on fancy newly-released hyperspectral data.</p></li><li><p>Foundation models: can&#8217;t live with &#8216;em, can kind of live without &#8216;em unless you&#8217;re trying to be an influencer in the niche field of earth observation.</p></li><li><p>Benchmarks kind of suck, but we also need them because we don&#8217;t have anything else.</p></li><li><p>Google released embeddings, they&#8217;re honestly pretty good, and I&#8217;m still planning on milking them for content in 2026 (but I think they shouldn&#8217;t have included all that auxiliary non-EO data in training).</p></li><li><p>We released Geovibes and I used it to map catfish farms, so it&#8217;s totally not a useless demo.</p></li></ul><p>Read on to see my slightly unhinged thoughts about my posts.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://christopherren.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/christopherren.substack.com/subscribe"><span>Subscribe now</span></a></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;670823ed-888f-41e6-9ab0-d7d6992ed93f&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Forecasting US Almond Yield &quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:124959893,&quot;name&quot;:&quot;Christopher Ren&quot;,&quot;bio&quot;:&quot;Data Science, Agriculture and Remote Sensing&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/120052ff-b254-4a19-a756-b39f52f54d44_800x800.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-10-15T16:19:28.560Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546a687f-bac1-4560-9034-bc4d8c27db3f_1240x698.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://christopherren.substack.com/p/forecasting-us-almond-yield&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:149972430,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:3,&quot;publication_id&quot;:2876291,&quot;publication_name&quot;:&quot;Applied Geospatial&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!_ShX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94621bf0-96f9-4347-b095-5927c2d42626_275x275.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>Technically from 2024, but my first post on substack and my friends with kids say your favorite one is usually the first-born. They don&#8217;t say this out loud, but I can see it in their eyes and soul.</p><p>This one was particularly fun to write and iterate over. Initial results were extremely disappointing, but I read up on the almond growing season and realized I was modeling everything wrong: bloom occurs earlier in the year than greening, so it turned out NDVI from the prior year was extremely strongly correlated with yield in the next year.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Vnn6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc059614a-c09b-46e8-9979-329adc345de6_4800x3600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Vnn6!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc059614a-c09b-46e8-9979-329adc345de6_4800x3600.png 424w, /__u/substackcdn.com/image/fetch/$s_!Vnn6!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc059614a-c09b-46e8-9979-329adc345de6_4800x3600.png 848w, /__u/substackcdn.com/image/fetch/$s_!Vnn6!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc059614a-c09b-46e8-9979-329adc345de6_4800x3600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Vnn6!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc059614a-c09b-46e8-9979-329adc345de6_4800x3600.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Vnn6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc059614a-c09b-46e8-9979-329adc345de6_4800x3600.png" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c059614a-c09b-46e8-9979-329adc345de6_4800x3600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Vnn6!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc059614a-c09b-46e8-9979-329adc345de6_4800x3600.png 424w, /__u/substackcdn.com/image/fetch/$s_!Vnn6!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc059614a-c09b-46e8-9979-329adc345de6_4800x3600.png 848w, /__u/substackcdn.com/image/fetch/$s_!Vnn6!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc059614a-c09b-46e8-9979-329adc345de6_4800x3600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Vnn6!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc059614a-c09b-46e8-9979-329adc345de6_4800x3600.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 aria-hidden="true" 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><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></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;bf410a6b-50f8-4905-8557-70ef96e91a33&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;50 ways to compare weather&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:124959893,&quot;name&quot;:&quot;Christopher Ren&quot;,&quot;bio&quot;:&quot;Data Science, Agriculture and Remote Sensing&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/120052ff-b254-4a19-a756-b39f52f54d44_800x800.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-01-13T15:50:28.234Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0538dc3f-b62e-4d3f-88ba-61f0aea3a768_1600x1150.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://christopherren.substack.com/p/50-ways-to-compare-weather&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:150496806,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:2,&quot;publication_id&quot;:2876291,&quot;publication_name&quot;:&quot;Applied Geospatial&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!_ShX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94621bf0-96f9-4347-b095-5927c2d42626_275x275.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>Another fun one! I was quite pleased with this analysis as it resulted in some folks from a start up working specifically on measuring/forecasting precipitation reaching out for a chat. This is when I started realizing that I could use substack posts as <a href="https://www.henrikkarlsson.xyz/p/search-query">a sort of social query</a> to find interesting people to chat to. <br>I was astonished to see how different various sources of precipitation data were over CONUS. In previous lives at yield-modeling companies I think some of us might have taken for granted how similar different datasets can be. Funnily enough, I actually have an unpublished draft on a similar analysis of divergences in growing degree days over the US corn belt where the differences are perhaps even more striking. Maybe one day I&#8217;ll get back around to publishing it!This was quite early on in my writing (I mean it still is), and emojis were still kind of funny as an LLM-ism. I really dislike them now. You&#8217;ll also notice traces of LLM-isms in the titles, (&#8216;why this matters&#8217; etc&#8230;) which I also really dislike. We live and we learn.</p><div><hr></div><p></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;181a0018-1a86-4282-967a-48e258cb6f50&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Hyperspectral Anomaly Detection, for Free!&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:124959893,&quot;name&quot;:&quot;Christopher Ren&quot;,&quot;bio&quot;:&quot;Data Science, Agriculture and Remote Sensing&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/120052ff-b254-4a19-a756-b39f52f54d44_800x800.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-02-11T14:12:59.581Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e2379e-912d-4718-b671-779ea04eb6fe_1600x1334.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://christopherren.substack.com/p/hyperspectral-anomaly-detection-for&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:156903046,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:4,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2876291,&quot;publication_name&quot;:&quot;Applied Geospatial&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!_ShX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94621bf0-96f9-4347-b095-5927c2d42626_275x275.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>This one was an interesting one: it received the most attention on social media out of any of my posts at that point, due to <a href="https://wyvern.space/open-data/">Wyvern&#8217;s open data</a> release, but was the least read (only 90 reads). My original plan was to actually perform <a href="https://web.engr.oregonstate.edu/~wongwe/workshops/icml2006/papers/theiler.pdf">anomalous change detection</a> (ACD) between pairs of images, which I find much more interesting and relevant to earth observation, but ran out of time, so settled for anomaly detection. I still plan to write about ACD one day, it is an underrated technique for change detection in remote sensing.</p><p> It was at this point it started dawning on me that I was wasting my time chasing social media clout writing about things I thought people were interested in, instead of just writing things I myself was interested in. I also thought people might be interested to see the code used to generate the images (they were not).<br>This one also has emojis. I&#8217;m sorry. Also the LateX didn&#8217;t render. </p><div><hr></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;b7a2e5b1-bc80-44ad-86ba-dc7378be9e84&quot;,&quot;caption&quot;:&quot;TLDR; After 10&#178;&#185; FLOPs and 500 B patches, IBM&#8217;s TerraMind beats a supervised U&#8209;Net by just +2 mIoU on PANGAEA; losing on 5/9 tasks, most other GFMs do worse.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Geospatial Foundational Disappointments&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:124959893,&quot;name&quot;:&quot;Christopher Ren&quot;,&quot;bio&quot;:&quot;Data Science, Agriculture and Remote Sensing&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/120052ff-b254-4a19-a756-b39f52f54d44_800x800.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-05-21T05:13:43.624Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67ffd9cf-4233-4f64-b7b7-dafd79a75799_1000x800.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://christopherren.substack.com/p/geospatial-foundational-disappointments&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:164047166,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:12,&quot;comment_count&quot;:5,&quot;publication_id&quot;:2876291,&quot;publication_name&quot;:&quot;Applied Geospatial&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!_ShX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94621bf0-96f9-4347-b095-5927c2d42626_275x275.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>People are really interested in foundation models in EO, as well as contrarian takes. Look at this plot of my subscribers, can you tell when I started being a contrarian asshole?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!SDTo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a1110b-b315-4bfa-906a-108db2e38594_1908x1102.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!SDTo!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a1110b-b315-4bfa-906a-108db2e38594_1908x1102.png 424w, /__u/substackcdn.com/image/fetch/$s_!SDTo!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a1110b-b315-4bfa-906a-108db2e38594_1908x1102.png 848w, /__u/substackcdn.com/image/fetch/$s_!SDTo!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a1110b-b315-4bfa-906a-108db2e38594_1908x1102.png 1272w, /__u/substackcdn.com/image/fetch/$s_!SDTo!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a1110b-b315-4bfa-906a-108db2e38594_1908x1102.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!SDTo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a1110b-b315-4bfa-906a-108db2e38594_1908x1102.png" width="1456" height="841" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/82a1110b-b315-4bfa-906a-108db2e38594_1908x1102.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:841,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:272364,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/183114684?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a1110b-b315-4bfa-906a-108db2e38594_1908x1102.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!SDTo!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a1110b-b315-4bfa-906a-108db2e38594_1908x1102.png 424w, /__u/substackcdn.com/image/fetch/$s_!SDTo!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a1110b-b315-4bfa-906a-108db2e38594_1908x1102.png 848w, /__u/substackcdn.com/image/fetch/$s_!SDTo!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a1110b-b315-4bfa-906a-108db2e38594_1908x1102.png 1272w, /__u/substackcdn.com/image/fetch/$s_!SDTo!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a1110b-b315-4bfa-906a-108db2e38594_1908x1102.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 aria-hidden="true" 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><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">You either die a hero, or&#8230;</figcaption></figure></div><p>I still think EO foundation models are a big money and time sink. If you don&#8217;t believe me, you should read <a href="https://www.spectralreflectance.space/p/earth-observation-in-2025-acceleration">Akis&#8217; Spectral Reflectance</a> post which is much more thoughtful than this post. </p><p>Fundamentally I&#8217;m very grateful though because when this post &#8216;took off&#8217;, I got to meet many people I would now call my friends, who ended up helping me with <a href="https://github.com/cr458/geovibes">geovibes</a>. We even have a secret slack channel where we complain about foundation models. Also, shoutout to <a href="https://www.linkedin.com/in/johannes-jakubik-8763ba167/?originalSubdomain=ch">Johannes Jakubik</a> the lead author of TerraMind who chose to engage with me on the post (see the comments), and actually took the time to reach out and chat too! <br>Something I am still thinking about that is related to this post: what is the best you can do with a pixel-wise model + post processing on all of these benchmarks?</p><div><hr></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;824b184a-9d63-476e-b187-0cd3960b5954&quot;,&quot;caption&quot;:&quot;TLDR; Make maps, not (just) benchmarks&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Model is Not the Map&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:124959893,&quot;name&quot;:&quot;Christopher Ren&quot;,&quot;bio&quot;:&quot;Data Science, Agriculture and Remote Sensing&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/120052ff-b254-4a19-a756-b39f52f54d44_800x800.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-06-21T23:46:16.392Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!54CD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabcd9fd6-3d4d-4751-bf45-980718473854_9000x3900.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://christopherren.substack.com/p/the-model-is-not-the-map&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:166020663,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:4,&quot;comment_count&quot;:2,&quot;publication_id&quot;:2876291,&quot;publication_name&quot;:&quot;Applied Geospatial&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!_ShX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94621bf0-96f9-4347-b095-5927c2d42626_275x275.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>More of a commentary on how benchmarks don&#8217;t really reflect reality, and that there are some particularly tricky inference issues specific to geospatial that even major labs/releases are not immune to based on some of the artifacts I&#8217;ve seen in outputs this year. I had a lot of fun thinking about different types of geospatial errors, and got to make the Santa Fe Quartet.<br>Happy to report 0 emojis in this one.</p><div><hr></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;7f255855-7bab-4ddb-aa24-453228280b56&quot;,&quot;caption&quot;:&quot;Platform Hunger Games&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Economics of Earth Engine&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:124959893,&quot;name&quot;:&quot;Christopher Ren&quot;,&quot;bio&quot;:&quot;Data Science, Agriculture and Remote Sensing&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/120052ff-b254-4a19-a756-b39f52f54d44_800x800.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-07-03T05:59:41.210Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!eB_t!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa421347a-0acd-438e-932d-bca702f81091_2206x1552.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://christopherren.substack.com/p/the-economics-of-earth-engine&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:166946275,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:8,&quot;comment_count&quot;:6,&quot;publication_id&quot;:2876291,&quot;publication_name&quot;:&quot;Applied Geospatial&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!_ShX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94621bf0-96f9-4347-b095-5927c2d42626_275x275.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>The thought that sparked this one is still bothering me to this day: how much does it cost to make a map? I had heard from friends that worked at companies that had done global deployments that things sat in the $5k - $15k range. So I decided to try and extrapolate how much it might cost to develop a global map on GEE.<br>I still think about this a lot: no one knows how much anything costs! I had big plans to write continue writing about this subject, but unfortunately failed to make inroads with any organizations doing these things. I don&#8217;t blame them, money is a sensitive subject. If you are a company that would like to talk about this however, please do reach out! <br>A cool thing that came from this post is that <a href="https://www.linkedin.com/posts/simon-ilyushchenko-6593201_earth-engine-pricing-google-cloud-activity-7358246298837245953-Gfzx/?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAcf-00ByCyr-aE1iW-tnBWOR9lBLztXmi8">Simon Ilyushchenko mentioned this post</a> in an announcement stating that Google had changed the pricing structure of GEE!</p><div><hr></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;c9d818bc-c53c-43da-abc2-652c4fbb95da&quot;,&quot;caption&quot;:&quot;TLDR; It is cool that people are releasing embeddings, kudos to the Deepmind/Google team!&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Embedding Fields Forever&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:124959893,&quot;name&quot;:&quot;Christopher Ren&quot;,&quot;bio&quot;:&quot;Data Science, Agriculture and Remote Sensing&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/120052ff-b254-4a19-a756-b39f52f54d44_800x800.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-07-21T03:48:22.808Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!o3U-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64873d23-de4d-4fc1-90e2-51bab9e21a6a_1179x754.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://christopherren.substack.com/p/embedding-fields-forever&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:168808993,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:8,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2876291,&quot;publication_name&quot;:&quot;Applied Geospatial&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!_ShX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94621bf0-96f9-4347-b095-5927c2d42626_275x275.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>I still think these embeddings are a little &#8216;overfit&#8217; because of this, but damn they are pretty good! An experiment I&#8217;ve been meaning to run: sample built area over cities at different elevations in the world, can you train a model to recover elevation from the AEF embeddings? If you can, then they are a little overfit, if not then I stand corrected!</p><div><hr></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;706eaa04-b1e3-45cd-aa4d-1f0201e0a686&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Google is a Dream Killer&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:124959893,&quot;name&quot;:&quot;Christopher Ren&quot;,&quot;bio&quot;:&quot;Data Science, Agriculture and Remote Sensing&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/120052ff-b254-4a19-a756-b39f52f54d44_800x800.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-08-08T06:19:14.037Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!lQuN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6973a4-728e-45cb-b8ec-c01422c45cf7_1684x1162.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://christopherren.substack.com/p/google-is-a-dream-killer&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:170239239,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:12,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2876291,&quot;publication_name&quot;:&quot;Applied Geospatial&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!_ShX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94621bf0-96f9-4347-b095-5927c2d42626_275x275.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>Would call this one a puff piece: when I started the blog I made a promise to myself that I would have to write a least a single line of code for each blog post. This one was pure commentary, but at least it wasn&#8217;t AI slop.</p><div><hr></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;8e499b56-ab78-40b8-8d07-79343351fd8b&quot;,&quot;caption&quot;:&quot;TLDR; Using Geovibes you can interact with a foundation model/embeddings using a jupyter notebook via similarity searching on your laptop.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Vibe Check Your Geospatial Foundation Model&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:124959893,&quot;name&quot;:&quot;Christopher Ren&quot;,&quot;bio&quot;:&quot;Data Science, Agriculture and Remote Sensing&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/120052ff-b254-4a19-a756-b39f52f54d44_800x800.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-09-29T23:33:01.757Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!6aRB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F852c5426-c09a-409a-bd7e-6d5051ed4f8c_2199x4802.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://christopherren.substack.com/p/vibe-check-your-geospatial-foundation&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:165438838,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:9,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2876291,&quot;publication_name&quot;:&quot;Applied Geospatial&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!_ShX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94621bf0-96f9-4347-b095-5927c2d42626_275x275.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>I have been thinking about this for a long time, so it felt really good to release geovibes and write about it!<br>The gist is: you can search embeddings with just a notebook and a downloaded duckdb table + faiss index. That&#8217;s really all you need. Making the embeddings is a different story! We should think about making these (unproven) tools as accessible as possible so people can test them out in the real world.</p><div><hr></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;c8b2e04b-adf5-4205-a11d-511c06dbac23&quot;,&quot;caption&quot;:&quot;TLDR: I used embeddings to map aquaculture in Alabama.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How to Actually Use Embeddings&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:124959893,&quot;name&quot;:&quot;Christopher Ren&quot;,&quot;bio&quot;:&quot;Data Science, Agriculture and Remote Sensing&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/120052ff-b254-4a19-a756-b39f52f54d44_800x800.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-12-14T06:05:14.416Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!rESk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F286eaa25-2ff5-4501-b786-605db24a8794_1236x880.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://christopherren.substack.com/p/how-to-actually-use-embeddings&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:180429723,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:4,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2876291,&quot;publication_name&quot;:&quot;Applied Geospatial&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!_ShX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94621bf0-96f9-4347-b095-5927c2d42626_275x275.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>Dog-fooding geovibes and mapping aquaculture/catfish farms in Alabama. It turns out the CDL&#8217;s map is quite poor (confuses open water and aquaculture), but with geovibes it&#8217;s fairly easy to map these very distinctive levee ponds! Was happy to close out the year with this, and put geovibes to use.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://christopherren.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/christopherren.substack.com/subscribe"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[How to Actually Use Embeddings]]></title><description><![CDATA[You can do this too!]]></description><link>https://christopherren.substack.com/p/how-to-actually-use-embeddings</link><guid isPermaLink="false">https://christopherren.substack.com/p/how-to-actually-use-embeddings</guid><dc:creator><![CDATA[Christopher Ren]]></dc:creator><pubDate>Sun, 14 Dec 2025 06:05:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!rESk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F286eaa25-2ff5-4501-b786-605db24a8794_1236x880.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>TLDR:</h3><ul><li><p>I used embeddings to map aquaculture in Alabama.</p></li><li><p>This map is much better than the one provided by CDL.</p></li><li><p>When performing this kind of exercise it can be useful to think of first solving the problem at the tile/geometry level, then moving to pixel level if necessary.</p></li><li><p>You too can use <a href="https://github.com/cr458/geovibes">geovibes</a> + <a href="https://source.coop/geovibes/search/USA">existing embedding databases</a> to perform this kind of exercise.</p></li><li><p>New in geovibes: <a href="https://github.com/cr458/geovibes/pull/47">sampling + classification functionality</a></p></li><li><p>New in geovibes: <a href="https://github.com/cr458/geovibes/pull/47">'detection mode&#8217; </a>: iterate on your classifier outputs.</p></li><li><p>New in geovibes: <a href="https://github.com/cr458/geovibes/pull/51">add any GEE layer onto your map to help you label</a>.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://christopherren.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/christopherren.substack.com/subscribe"><span>Subscribe now</span></a></p><p>Two months ago,we released <a href="/__u/christopherren.substack.com/p/vibe-check-your-geospatial-foundation">geovibes</a>, a tool that allows users to interact with geospatial embedding databases. The motivation was to allow those who were interested in geospatial embeddings to &#8216;see for themselves&#8217; rather than be told what embeddings can and can not do by LinkedInfluencers&#8482;. </p><p>Unfortunately, we released something that falls squarely in the &#8220;cool-demo&#8221; bucket, and not necessarily the '&#8220;actually useful&#8221; bucket: yes you could click and find things, but it was still not quite possible to make a map using it. This is an incomplete attempt to rectify this. There is still a lot of work to do!</p><p>Opus 4.5 in Claude Code was absolutely instrumental in implementing all of this. I have many thoughts about LLM-based coding/work which I&#8217;ll probably explore in a future post, but in my own litmus test of usage, I have not reverted back to OpenAI&#8217;s Codex or Cursor since I switched. </p><h3>Embedding Retrieval</h3><p>In fair Alabama, where we lay our scene: we start by using <a href="https://github.com/cr458/geovibes">geovibes</a> + <a href="https://data.source.coop/geovibes/search/USA/alabama/2024-01-01-2025-01-01/alabama_quantized_dino_vit_small_patch16_224_2024_2025_32_16_10.tar.gz">the Earth Genome provided quantized SSL4EO-pretrained DINO-ViT embeddings</a> which are generated from annual Sentinel-2 composites. We use google maps to search for potential catfish farms to seed our search:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!8uXK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce21cc87-d964-4c60-a19c-d0ca73d798d7_1712x1332.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!8uXK!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce21cc87-d964-4c60-a19c-d0ca73d798d7_1712x1332.png 424w, /__u/substackcdn.com/image/fetch/$s_!8uXK!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce21cc87-d964-4c60-a19c-d0ca73d798d7_1712x1332.png 848w, /__u/substackcdn.com/image/fetch/$s_!8uXK!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce21cc87-d964-4c60-a19c-d0ca73d798d7_1712x1332.png 1272w, /__u/substackcdn.com/image/fetch/$s_!8uXK!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce21cc87-d964-4c60-a19c-d0ca73d798d7_1712x1332.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!8uXK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce21cc87-d964-4c60-a19c-d0ca73d798d7_1712x1332.png" width="1456" height="1133" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ce21cc87-d964-4c60-a19c-d0ca73d798d7_1712x1332.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1133,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2787054,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/180429723?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce21cc87-d964-4c60-a19c-d0ca73d798d7_1712x1332.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!8uXK!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce21cc87-d964-4c60-a19c-d0ca73d798d7_1712x1332.png 424w, /__u/substackcdn.com/image/fetch/$s_!8uXK!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce21cc87-d964-4c60-a19c-d0ca73d798d7_1712x1332.png 848w, /__u/substackcdn.com/image/fetch/$s_!8uXK!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce21cc87-d964-4c60-a19c-d0ca73d798d7_1712x1332.png 1272w, /__u/substackcdn.com/image/fetch/$s_!8uXK!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce21cc87-d964-4c60-a19c-d0ca73d798d7_1712x1332.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 aria-hidden="true" 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><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 seed our search with this location in geovibes (still figuring out a better way to do this other than manually), and start searching using our duckdb + faiss index. This results in the following view, where samples all over Alabama are colored by their similarity. In the following video clip I&#8217;m:</p><ul><li><p>Seeding the aquaculture search at the Miller Catfish Farm</p></li><li><p>Opening the tile layer, and sorting the samples by 'most Dissimilar&#8217;: aka the samples that are furthest from the initial sample, within the tile layer</p></li><li><p>Panning around, and collecting those &#8216;hard negatives&#8217;: i.e things that look somewhat similar in the embedding space, that are definitely not aquaculture. You&#8217;ll notice many of these tiles are river banks/deltas.</p></li></ul><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;cb38e240-8ed4-41ad-b587-cc0925208b99&quot;,&quot;duration&quot;:null}"></div><p>In order to create a classifier: I&#8217;ll also label some of the aquaculture positives returned by geovibes. How do I know these are aquaculture? For one, they look like the smooth/green/blue ponds of the Miller Catfish Farm. However, we can also do some research and find out that earthen ponds are the <a href="https://www.aces.edu/blog/topics/aquaculture/alabama-farm-raised-catfish-industry-highlights/#:~:text=catfish%20from%2055%2C855%20acres%20of,6%20million%20%28figure%201">primary method of cultivation for freshwater aquaculture in Alabama</a><a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>: these are primarily made by digging out a bunch of dirt with a bulldozer and then filling it with water.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!6qvC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F950a905a-0895-4fd1-8892-8daba56cafa0_265x190.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!6qvC!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F950a905a-0895-4fd1-8892-8daba56cafa0_265x190.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!6qvC!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F950a905a-0895-4fd1-8892-8daba56cafa0_265x190.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!6qvC!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F950a905a-0895-4fd1-8892-8daba56cafa0_265x190.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!6qvC!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F950a905a-0895-4fd1-8892-8daba56cafa0_265x190.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!6qvC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F950a905a-0895-4fd1-8892-8daba56cafa0_265x190.jpeg" width="545" height="390.75471698113205" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/950a905a-0895-4fd1-8892-8daba56cafa0_265x190.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:190,&quot;width&quot;:265,&quot;resizeWidth&quot;:545,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Levee-Type Fish Production Ponds&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="Levee-Type Fish Production Ponds" title="Levee-Type Fish Production Ponds" srcset="/__u/substackcdn.com/image/fetch/$s_!6qvC!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F950a905a-0895-4fd1-8892-8daba56cafa0_265x190.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!6qvC!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F950a905a-0895-4fd1-8892-8daba56cafa0_265x190.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!6qvC!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F950a905a-0895-4fd1-8892-8daba56cafa0_265x190.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!6qvC!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F950a905a-0895-4fd1-8892-8daba56cafa0_265x190.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption"><a href="https://srac.msstate.edu/pdfs/Fact%20Sheets/100%20Site%20Selection%20of%20Levee-Type%20Fish%20Production%20Ponds.pdf">Levee fish production ponds</a>.</figcaption></figure></div><p>Multiple rectangular ponds are laid-out side by side, divided by straight levees. These are typically uniformly sized/shaped, facilitating management and harvesting. <a href="https://www.aces.edu/blog/topics/aquaculture/alabama-farm-raised-catfish-industry-highlights/#:~:text=catfish%20from%2055%2C855%20acres%20of,6%20million%20%28figure%201">This article</a> actually contains a nifty photograph of the harvesting process, which highlights how important the regular shape and proximity to a road is:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!oMtm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47d97323-e61d-45e8-859a-c32ea48bbc84_1122x842.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!oMtm!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47d97323-e61d-45e8-859a-c32ea48bbc84_1122x842.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!oMtm!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47d97323-e61d-45e8-859a-c32ea48bbc84_1122x842.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!oMtm!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47d97323-e61d-45e8-859a-c32ea48bbc84_1122x842.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!oMtm!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47d97323-e61d-45e8-859a-c32ea48bbc84_1122x842.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!oMtm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47d97323-e61d-45e8-859a-c32ea48bbc84_1122x842.jpeg" width="633" height="475.03208556149735" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/47d97323-e61d-45e8-859a-c32ea48bbc84_1122x842.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:842,&quot;width&quot;:1122,&quot;resizeWidth&quot;:633,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Harvesting catfish at a commercial farm in Hale County&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="Harvesting catfish at a commercial farm in Hale County" title="Harvesting catfish at a commercial farm in Hale County" srcset="/__u/substackcdn.com/image/fetch/$s_!oMtm!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47d97323-e61d-45e8-859a-c32ea48bbc84_1122x842.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!oMtm!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47d97323-e61d-45e8-859a-c32ea48bbc84_1122x842.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!oMtm!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47d97323-e61d-45e8-859a-c32ea48bbc84_1122x842.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!oMtm!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47d97323-e61d-45e8-859a-c32ea48bbc84_1122x842.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 aria-hidden="true" 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><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.aces.edu/blog/topics/aquaculture/alabama-farm-raised-catfish-industry-highlights/#:~:text=catfish%20from%2055%2C855%20acres%20of,6%20million%20%28figure%201">Catfish harvest in Alabama</a>.</figcaption></figure></div><h3>Embedding Classification</h3><p>Now that we have our positives and <strong>*some*</strong> negatives: we should probably sample some more negatives from our dataset. We&#8217;ve implemented two ways to do this in geovibes: you can randomly sample from the duckdb table, or you can do a stratified sample by ESRI/IO landcover map for the year you&#8217;re interestsed in. The second method requires a GEE account. </p><p>We then filter the sampled negatives if any of them fall within a buffer distance of any of our hard-earned positive samples from geovibes.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!bhcG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4553d88d-e4c1-417f-a8b7-3b5a4f969957_1480x1397.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!bhcG!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4553d88d-e4c1-417f-a8b7-3b5a4f969957_1480x1397.png 424w, /__u/substackcdn.com/image/fetch/$s_!bhcG!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4553d88d-e4c1-417f-a8b7-3b5a4f969957_1480x1397.png 848w, /__u/substackcdn.com/image/fetch/$s_!bhcG!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4553d88d-e4c1-417f-a8b7-3b5a4f969957_1480x1397.png 1272w, /__u/substackcdn.com/image/fetch/$s_!bhcG!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4553d88d-e4c1-417f-a8b7-3b5a4f969957_1480x1397.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!bhcG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4553d88d-e4c1-417f-a8b7-3b5a4f969957_1480x1397.png" width="1456" height="1374" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4553d88d-e4c1-417f-a8b7-3b5a4f969957_1480x1397.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1374,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:524635,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/180429723?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4553d88d-e4c1-417f-a8b7-3b5a4f969957_1480x1397.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!bhcG!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4553d88d-e4c1-417f-a8b7-3b5a4f969957_1480x1397.png 424w, /__u/substackcdn.com/image/fetch/$s_!bhcG!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4553d88d-e4c1-417f-a8b7-3b5a4f969957_1480x1397.png 848w, /__u/substackcdn.com/image/fetch/$s_!bhcG!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4553d88d-e4c1-417f-a8b7-3b5a4f969957_1480x1397.png 1272w, /__u/substackcdn.com/image/fetch/$s_!bhcG!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4553d88d-e4c1-417f-a8b7-3b5a4f969957_1480x1397.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 aria-hidden="true" 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><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">Negative samples from the IO landcover</figcaption></figure></div><p><strong>Note that if the &#8216;thing&#8217; you are looking for covers the majority of your area, this will cause some issues for your classifier as you are likely to sample &#8216;false negatives&#8217;.</strong> It&#8217;s possible that in the future we&#8217;ll enable people to use geovibes to post-filter the sampled negatives manually.</p><p>Once we have our geovibes positives, geovibes negatives + sampled negatives, we&#8217;re ready to train a classifier! We&#8217;ve implemented a pretty simple pipeline with xgboost that:</p><ol><li><p>Trains an xgboost classifier on the dataset</p></li><li><p>Queries all of the embedding vectors from the duckdb table</p></li><li><p>Transfers the embedding vectors to a pandas dataframe/numpy array</p></li><li><p>Uses the trained xgboost model to score the embeddings from the duckdb table</p></li><li><p>Thresholds the detections by a probability score, and returns both the individual tiles + merged detections for a set probability threshold.</p></li></ol><p><strong>Somehow this process only takes around 40 seconds: our training dataset is quite small (~5000 samples total), but inference is over 5 million 384-dim embeddings!</strong> I was quite surprised by this, but then again the 5 million embeddings appear to fit quite comfortably in memory on my 32GB M1 pro, so perhaps this isn&#8217;t such a big dataset after all. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!avXD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e149810-930b-4637-8528-83559148e18b_2502x1250.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!avXD!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e149810-930b-4637-8528-83559148e18b_2502x1250.png 424w, /__u/substackcdn.com/image/fetch/$s_!avXD!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e149810-930b-4637-8528-83559148e18b_2502x1250.png 848w, /__u/substackcdn.com/image/fetch/$s_!avXD!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e149810-930b-4637-8528-83559148e18b_2502x1250.png 1272w, /__u/substackcdn.com/image/fetch/$s_!avXD!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e149810-930b-4637-8528-83559148e18b_2502x1250.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!avXD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e149810-930b-4637-8528-83559148e18b_2502x1250.png" width="1456" height="727" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e149810-930b-4637-8528-83559148e18b_2502x1250.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:727,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:92324,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/180429723?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e149810-930b-4637-8528-83559148e18b_2502x1250.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!avXD!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e149810-930b-4637-8528-83559148e18b_2502x1250.png 424w, /__u/substackcdn.com/image/fetch/$s_!avXD!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e149810-930b-4637-8528-83559148e18b_2502x1250.png 848w, /__u/substackcdn.com/image/fetch/$s_!avXD!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e149810-930b-4637-8528-83559148e18b_2502x1250.png 1272w, /__u/substackcdn.com/image/fetch/$s_!avXD!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e149810-930b-4637-8528-83559148e18b_2502x1250.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 aria-hidden="true" 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><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">Inference pipeline profiling for &gt; 5M 384-dim embeddings over Alabama.</figcaption></figure></div><h3>Classifier Iteration</h3><p>We now have a set of detections over Alabama with associated classifier probabilities. We can re-use a lot of the tooling implemented in geovibes to re-label samples, and create a refined dataset for a second round of classification.</p><p>In the video below: I show how to load the output of our classification pipeline back into geovibes, I then sort the samples by lowest probability (closest to our threshold of 0.5) and begin labeling again. You&#8217;ll notice there are some positives that are on the edge of aquaculture ponds, but also many negatives that occur along the banks of rivers and lakes. In this process, if I am unsure whether a tile is an aquaculture pond or not, I leave it unlabeled.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;251a0c8f-eb3e-4a19-80c3-2d5ff481d667&quot;,&quot;duration&quot;:null}"></div><p>This process allows us to quickly iterate on our initial embedding classifier using the same framework we did to create our original dataset: quickly viewing and labeling samples of interest. In this case we are using the classifier score/probability as our distance metric rather than a cosine distance.</p><p>Interestingly: this re-labeling process which is fairly fast, appears to greatly improve the quality of our classifier. Whereas the initial iteration appeared to struggle with various false postiives such as coastal areas and mining pools, relabeling ~ 300 negatives and positives, which takes around 5 minutes, allows us to improve the classifier a great deal as you can see in the figure below. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Qmox!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cecef03-82b5-4d92-bf15-b9495eb672ad_1649x673.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Qmox!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cecef03-82b5-4d92-bf15-b9495eb672ad_1649x673.png 424w, /__u/substackcdn.com/image/fetch/$s_!Qmox!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cecef03-82b5-4d92-bf15-b9495eb672ad_1649x673.png 848w, /__u/substackcdn.com/image/fetch/$s_!Qmox!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cecef03-82b5-4d92-bf15-b9495eb672ad_1649x673.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Qmox!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cecef03-82b5-4d92-bf15-b9495eb672ad_1649x673.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Qmox!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cecef03-82b5-4d92-bf15-b9495eb672ad_1649x673.png" width="1200" height="489.56043956043953" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6cecef03-82b5-4d92-bf15-b9495eb672ad_1649x673.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:594,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:55831,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/180429723?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cecef03-82b5-4d92-bf15-b9495eb672ad_1649x673.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Qmox!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cecef03-82b5-4d92-bf15-b9495eb672ad_1649x673.png 424w, /__u/substackcdn.com/image/fetch/$s_!Qmox!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cecef03-82b5-4d92-bf15-b9495eb672ad_1649x673.png 848w, /__u/substackcdn.com/image/fetch/$s_!Qmox!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cecef03-82b5-4d92-bf15-b9495eb672ad_1649x673.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Qmox!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cecef03-82b5-4d92-bf15-b9495eb672ad_1649x673.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 aria-hidden="true" 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><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">The effect of relabeling on our aquaculture detector.</figcaption></figure></div><p>We can have a look at the spatial distribution of the effect of relabeling on our classifier, by looking at where the majority of detections have been:</p><ul><li><p> removed (v0 positive &#8212;&gt; v1 negative), </p></li><li><p>retained (v0 positive &#8212;&gt; v1 positive)</p></li><li><p>gained (v0 negative &#8212;&gt; v1 positive)</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!KTHB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532796af-7bc0-45aa-bf8b-0965dac37445_2040x908.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!KTHB!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532796af-7bc0-45aa-bf8b-0965dac37445_2040x908.png 424w, /__u/substackcdn.com/image/fetch/$s_!KTHB!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532796af-7bc0-45aa-bf8b-0965dac37445_2040x908.png 848w, /__u/substackcdn.com/image/fetch/$s_!KTHB!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532796af-7bc0-45aa-bf8b-0965dac37445_2040x908.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KTHB!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532796af-7bc0-45aa-bf8b-0965dac37445_2040x908.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!KTHB!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532796af-7bc0-45aa-bf8b-0965dac37445_2040x908.png" width="1200" height="534.065934065934" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/532796af-7bc0-45aa-bf8b-0965dac37445_2040x908.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:648,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:1155290,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/180429723?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532796af-7bc0-45aa-bf8b-0965dac37445_2040x908.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!KTHB!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532796af-7bc0-45aa-bf8b-0965dac37445_2040x908.png 424w, /__u/substackcdn.com/image/fetch/$s_!KTHB!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532796af-7bc0-45aa-bf8b-0965dac37445_2040x908.png 848w, /__u/substackcdn.com/image/fetch/$s_!KTHB!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532796af-7bc0-45aa-bf8b-0965dac37445_2040x908.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KTHB!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532796af-7bc0-45aa-bf8b-0965dac37445_2040x908.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 aria-hidden="true" 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><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">Effect of relabeling in geovibes on our aquaculture classifier. Inland water shown in the background of all 3 images.</figcaption></figure></div><p>As we can see: many of the removed points are clustered around waterways/water bodies in parts Alabama that most of our labeled aquaculture ponds are not in: to the south near <a href="https://maps.app.goo.gl/tf7mFEzveU5LJfYGA">Mobile</a>, as well as North along the <a href="https://maps.app.goo.gl/HVLQd5kwp2ng9yCB8">Tennessee River</a>, and in the east of the state along the shores of <a href="https://maps.app.goo.gl/AFNAm9k3W3n8TcjE8">Weiss Lake</a> and the <a href="https://maps.app.goo.gl/pKTEy92MCxh3qx9EA">Coosa River</a>. Meanwhile, new detections, in blue, seem to be primarily concentrated in the same region where most of our detections are retained: the Western portion of the <a href="https://en.wikipedia.org/wiki/Black_Belt_(region_of_Alabama)">Black Belt</a>. </p><p>We can take a closer look at where detections have changed to get sense of how the decision boundary of our classifier has shifted: in the Black Belt many of our new detections are at the boundaries/edges of existing aquaculture detections:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!PzYp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59f42d6b-d7e1-4884-922a-0e4d110dda90_818x936.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!PzYp!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59f42d6b-d7e1-4884-922a-0e4d110dda90_818x936.png 424w, /__u/substackcdn.com/image/fetch/$s_!PzYp!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59f42d6b-d7e1-4884-922a-0e4d110dda90_818x936.png 848w, /__u/substackcdn.com/image/fetch/$s_!PzYp!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59f42d6b-d7e1-4884-922a-0e4d110dda90_818x936.png 1272w, /__u/substackcdn.com/image/fetch/$s_!PzYp!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59f42d6b-d7e1-4884-922a-0e4d110dda90_818x936.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!PzYp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59f42d6b-d7e1-4884-922a-0e4d110dda90_818x936.png" width="818" height="936" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/59f42d6b-d7e1-4884-922a-0e4d110dda90_818x936.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:936,&quot;width&quot;:818,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:863207,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/180429723?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59f42d6b-d7e1-4884-922a-0e4d110dda90_818x936.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!PzYp!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59f42d6b-d7e1-4884-922a-0e4d110dda90_818x936.png 424w, /__u/substackcdn.com/image/fetch/$s_!PzYp!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59f42d6b-d7e1-4884-922a-0e4d110dda90_818x936.png 848w, /__u/substackcdn.com/image/fetch/$s_!PzYp!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59f42d6b-d7e1-4884-922a-0e4d110dda90_818x936.png 1272w, /__u/substackcdn.com/image/fetch/$s_!PzYp!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59f42d6b-d7e1-4884-922a-0e4d110dda90_818x936.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 aria-hidden="true" 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><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> Removals in the same area seem to typically be associated with water bodies which have a less regular shape:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!ytyG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf65179-eed8-49b0-8441-a5b2d715add3_847x601.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!ytyG!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf65179-eed8-49b0-8441-a5b2d715add3_847x601.png 424w, /__u/substackcdn.com/image/fetch/$s_!ytyG!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf65179-eed8-49b0-8441-a5b2d715add3_847x601.png 848w, /__u/substackcdn.com/image/fetch/$s_!ytyG!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf65179-eed8-49b0-8441-a5b2d715add3_847x601.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ytyG!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf65179-eed8-49b0-8441-a5b2d715add3_847x601.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!ytyG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf65179-eed8-49b0-8441-a5b2d715add3_847x601.png" width="847" height="601" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7cf65179-eed8-49b0-8441-a5b2d715add3_847x601.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:601,&quot;width&quot;:847,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:643415,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/180429723?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf65179-eed8-49b0-8441-a5b2d715add3_847x601.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!ytyG!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf65179-eed8-49b0-8441-a5b2d715add3_847x601.png 424w, /__u/substackcdn.com/image/fetch/$s_!ytyG!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf65179-eed8-49b0-8441-a5b2d715add3_847x601.png 848w, /__u/substackcdn.com/image/fetch/$s_!ytyG!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf65179-eed8-49b0-8441-a5b2d715add3_847x601.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ytyG!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf65179-eed8-49b0-8441-a5b2d715add3_847x601.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 aria-hidden="true" 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><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>Is this an aquactulture pond? I&#8217;m actually not sure (but this is important, more on this below), but it seems unlikely given what we know about levee ponds and aquaculture practices in this region. Another form of removal is found in this area on the edges of a larger set of detections:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!rESk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F286eaa25-2ff5-4501-b786-605db24a8794_1236x880.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!rESk!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F286eaa25-2ff5-4501-b786-605db24a8794_1236x880.png 424w, /__u/substackcdn.com/image/fetch/$s_!rESk!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F286eaa25-2ff5-4501-b786-605db24a8794_1236x880.png 848w, /__u/substackcdn.com/image/fetch/$s_!rESk!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F286eaa25-2ff5-4501-b786-605db24a8794_1236x880.png 1272w, /__u/substackcdn.com/image/fetch/$s_!rESk!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F286eaa25-2ff5-4501-b786-605db24a8794_1236x880.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!rESk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F286eaa25-2ff5-4501-b786-605db24a8794_1236x880.png" width="1236" height="880" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/286eaa25-2ff5-4501-b786-605db24a8794_1236x880.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:880,&quot;width&quot;:1236,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1902247,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/180429723?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F286eaa25-2ff5-4501-b786-605db24a8794_1236x880.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!rESk!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F286eaa25-2ff5-4501-b786-605db24a8794_1236x880.png 424w, /__u/substackcdn.com/image/fetch/$s_!rESk!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F286eaa25-2ff5-4501-b786-605db24a8794_1236x880.png 848w, /__u/substackcdn.com/image/fetch/$s_!rESk!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F286eaa25-2ff5-4501-b786-605db24a8794_1236x880.png 1272w, /__u/substackcdn.com/image/fetch/$s_!rESk!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F286eaa25-2ff5-4501-b786-605db24a8794_1236x880.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 aria-hidden="true" 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><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>Removals in other areas follow the same pattern: smaller bodies of water, with less regular shapes are now classified as not-aquaculture:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!uL3g!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe346c1ac-2c53-4879-9379-28ae1ec405db_1041x787.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!uL3g!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe346c1ac-2c53-4879-9379-28ae1ec405db_1041x787.png 424w, /__u/substackcdn.com/image/fetch/$s_!uL3g!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe346c1ac-2c53-4879-9379-28ae1ec405db_1041x787.png 848w, /__u/substackcdn.com/image/fetch/$s_!uL3g!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe346c1ac-2c53-4879-9379-28ae1ec405db_1041x787.png 1272w, /__u/substackcdn.com/image/fetch/$s_!uL3g!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe346c1ac-2c53-4879-9379-28ae1ec405db_1041x787.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!uL3g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe346c1ac-2c53-4879-9379-28ae1ec405db_1041x787.png" width="1041" height="787" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e346c1ac-2c53-4879-9379-28ae1ec405db_1041x787.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:787,&quot;width&quot;:1041,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:970650,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/180429723?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe346c1ac-2c53-4879-9379-28ae1ec405db_1041x787.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!uL3g!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe346c1ac-2c53-4879-9379-28ae1ec405db_1041x787.png 424w, /__u/substackcdn.com/image/fetch/$s_!uL3g!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe346c1ac-2c53-4879-9379-28ae1ec405db_1041x787.png 848w, /__u/substackcdn.com/image/fetch/$s_!uL3g!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe346c1ac-2c53-4879-9379-28ae1ec405db_1041x787.png 1272w, /__u/substackcdn.com/image/fetch/$s_!uL3g!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe346c1ac-2c53-4879-9379-28ae1ec405db_1041x787.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 aria-hidden="true" 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><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>In fact, you can see this reflected in the fact that the total number of clusters detected is reduced by half (~800 to 400) after re-labeling, while the total area is reduced by a lower factor, indicating that the relabeling process has removed many of these smaller detections. After having looked at this set of detections, I&#8217;m fairly confident that we have improved the quality of our embedding-based aquaculture classifier!</p><h3>Tiles to Pixels to Map</h3><p>People think they want pixel-level maps. For many first passes I believe this is unnecessary and potentially counter-productive. If we had started solving this problem at the pixel level, we would have had to deal with many more rows in our machine learning problem. However, ultimately if we do want a pixel-level map I believe the following workflow is still beneficial: solve the problem at the tile/geometry level first, then <strong>within your tiles solve the problem at the pixel level</strong>. This greatly reduces the size of the problem. </p><p>In this particular case since we know what signal we expect to see over our tiles (water) we can use a land cover map like CDL to simply filter out the non-water pixels. It turns out CDL actually has an &#8216;aquaculture&#8217; class (in cyan below), but it&#8217;s pretty poor and understandably seems to be heavily confused with the &#8216;open water&#8217; class (dark blue).</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;cf3d31ac-2138-417b-b252-d0cd3ee5d08a&quot;,&quot;duration&quot;:null}"></div><p>In order to produce a map from this: </p><ol><li><p>I manually validated the map, removing a small amount of remaining false positives such as industrial waste ponds and a few remaining coastlines.</p></li><li><p>I buffered the detections by a half tile.</p></li><li><p>I selected aquaculture + open water from the latest CDL year over those detections.</p></li></ol><p>That concludes the process of using embeddings to produce a map of aquaculture over Alabama! The final postprocessed geojson can be found <a href="https://source.coop/geovibes/geovibes-datasets/aquaculture/USA_AL_aquaculture_detections_2024.geojson">here</a>, and the final geotiff at 30m resolution can be found <a href="https://source.coop/geovibes/geovibes-datasets/aquaculture/USA_AL_aquaculture_cdl_mask_2024.tif">here</a>.</p><h3>Concluding Thoughts</h3><p>Looking through these detections, it&#8217;s clear to me that the levee-pond style of aquaculture appears to exist in a very geographically constrained area (the Black Belt). This is something that a simple google search would have revealed: a combination of climate, topography and soil type appear to have created <a href="https://nwdistrict.ifas.ufl.edu/nat/2025/08/25/aquaculture-in-the-southern-united-states-part-2-alabama-arkansas/">ideal conditions for catfish farming.</a> I clumsily georeferenced a soil map with our detections (in red) to highlight this :</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!XhIf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f61d278-e167-496f-8e05-45c8ef6a5a1e_850x1121.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!XhIf!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f61d278-e167-496f-8e05-45c8ef6a5a1e_850x1121.png 424w, /__u/substackcdn.com/image/fetch/$s_!XhIf!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f61d278-e167-496f-8e05-45c8ef6a5a1e_850x1121.png 848w, /__u/substackcdn.com/image/fetch/$s_!XhIf!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f61d278-e167-496f-8e05-45c8ef6a5a1e_850x1121.png 1272w, /__u/substackcdn.com/image/fetch/$s_!XhIf!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f61d278-e167-496f-8e05-45c8ef6a5a1e_850x1121.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!XhIf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f61d278-e167-496f-8e05-45c8ef6a5a1e_850x1121.png" width="850" height="1121" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5f61d278-e167-496f-8e05-45c8ef6a5a1e_850x1121.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1121,&quot;width&quot;:850,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1180846,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/180429723?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f61d278-e167-496f-8e05-45c8ef6a5a1e_850x1121.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!XhIf!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f61d278-e167-496f-8e05-45c8ef6a5a1e_850x1121.png 424w, /__u/substackcdn.com/image/fetch/$s_!XhIf!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f61d278-e167-496f-8e05-45c8ef6a5a1e_850x1121.png 848w, /__u/substackcdn.com/image/fetch/$s_!XhIf!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f61d278-e167-496f-8e05-45c8ef6a5a1e_850x1121.png 1272w, /__u/substackcdn.com/image/fetch/$s_!XhIf!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f61d278-e167-496f-8e05-45c8ef6a5a1e_850x1121.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 aria-hidden="true" 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><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">Geovibes aquaculture detections (in red) + Alabama Soil Areas (USDA)</figcaption></figure></div><p>Blackland prairie soil happens to be a dark, heavy, alkaline clay soil, with a very high water retention rate due to the clay content. This means if you dig a hole in it, and fill that hole with water, the water tends to stay! While we chose a data-driven approach to tackle this mapping problem, <strong>we could have started from a first-principles approach instead</strong>. A little bit of research could have really helped narrow down the area over which we deployed a classifier!</p><p>When iterating over the classifier using geovibes, it became obvious to me that the difficulty in these mapping exercises is in the edge cases: sure you can easily map regularly shaped levee ponds, but what about less-regularly shaped ponds, could those be aquaculture as well? How would you determine that/validate? I often found myself using additional information (i.e proximity to industrial parks, or mining areas) to determine if a sample should be labeled as positive or negative.</p><p>I think embedding-based workflows face a little bit of a catch-22: yes they are useful, but often a user will require information not contained in the embeddings to perform validation/iterate on their data. If the labels required to do this already exist, then perhaps the problem the user is trying to solve is not an interesting one to solve in the first place.  Applications where embeddings will appear to shine initially are ones that can be solved via easy visual verification of (free) medium-resolution imagery: confined animal feeding operations, deforestation/mining, aquaculture. Additionally, there have been demonstrations of the reproduction of existing maps (think USDA&#8217;s Cropland Data Layer), while I think these are useful demonstrations of the signal contained in embeddings, it&#8217;s not clear to me how one would operationalize these types of models.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://christopherren.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/christopherren.substack.com/subscribe"><span>Subscribe now</span></a></p><p></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>https://www.aces.edu/blog/topics/aquaculture/alabama-farm-raised-catfish-industry-highlights/#:~:text=catfish%20from%2055%2C855%20acres%20of,6%20million%20%28figure%201</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[Krishna talks high-resolution imagery, Chris asks questions]]></title><description><![CDATA[Planet's Skysat, Umbra and more!]]></description><link>https://christopherren.substack.com/p/krishna-talks-high-resolution-imagery</link><guid isPermaLink="false">https://christopherren.substack.com/p/krishna-talks-high-resolution-imagery</guid><dc:creator><![CDATA[Christopher Ren]]></dc:creator><pubDate>Sat, 06 Dec 2025 20:57:57 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/180911706/fcf67b131434523a21373f0f35ffb6b6.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>(00:00) Differences between medium-res and high-res worlds: data sizes, off-nadir imaging, co-registration issues</p><p>(28:42) High-res SAR/Umbra data detour: building damage estimation in Jamaica, matching imagery up to vector datasets</p><p>(34:33) Embeddings mentioned</p><p>(37:10) Differences in seasonality, illumination and histogram matching: foundation models mentioned, discussions around Krishna&#8217;s model performance over Gaza</p>]]></content:encoded></item><item><title><![CDATA[Geospatial Failures, Problem Selection, Being an Analyst/Scientist is Hard]]></title><description><![CDATA[A Rowdy One!]]></description><link>https://christopherren.substack.com/p/geospatial-failures-problem-selection</link><guid isPermaLink="false">https://christopherren.substack.com/p/geospatial-failures-problem-selection</guid><dc:creator><![CDATA[Christopher Ren]]></dc:creator><pubDate>Sat, 08 Nov 2025 04:00:11 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/178327772/5d3f1e4ccba6891556de401d7e1aba86.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Warning: we swore a little in this one, if that&#8217;s the kind of thing that offends you I recommend you don&#8217;t listen!<br><br>This episode was about failures: that sinking feeling you get when a project just isn&#8217;t working out. <br><br>(00:00) Experimental failures. Krishna won&#8217;t let Chris forget about his failed SimCLR experiments.</p><p>(04:30) Geographic generalization discussion. Husky vs Malamute vs Wellpad.</p><p>(11:32) Chris fails to map coconut palm because it&#8217;s hard. Read the paper carefully.</p><p>(15:30) Krishna maps oil slicks, but it&#8217;s hard.</p><p>(20:30) Cognitive debt, problem selection and failure modes in geospatial.</p><p>(31:00) The sales cycle, promises, inflated expectations. Limitations in geospatial.</p><p>(34:00) Problem selection in journalism. Are we running out of ideas?</p><p>(37:00) Turning a failure into a success. Cover crop mapping is hard.</p><p>(45:00) Turning failure into a success: predicting sugarcane yield is hard.</p><p>(49:00) Is building tooling easier than solving modeling problems?</p><p>(53:00) Vertical seems better than horizontal. Solutions are multi-modal.</p>]]></content:encoded></item><item><title><![CDATA[Case Studies in Validating Maps: Oil Palm and Land Cover]]></title><description><![CDATA[Apparently the key to better podcasting is IPAs]]></description><link>https://christopherren.substack.com/p/case-studies-in-validating-maps-oil</link><guid isPermaLink="false">https://christopherren.substack.com/p/case-studies-in-validating-maps-oil</guid><dc:creator><![CDATA[Christopher Ren]]></dc:creator><pubDate>Sun, 26 Oct 2025 03:49:30 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/177146511/fc8cdfed160ff28dc509bfae0263ed01.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Chris and Krishna talk about validation as a practical part of developing geospatial analytics, focussing on their personal experiences mapping oil palm and land cover at scale.</p><p>A central theme in throughout this conversation is the use of auxiliary geospatial products, science and human intuition to validate maps.</p><p>(00:00) Introduction, what is validation?</p><p>(02:30) Chris talks about mapping oil palm using Sentinel-1</p><p>(25:00) Krishna talks about global land cover mapping using Sentinel-2</p><p>(51:00) What tools do Krishna and Chris use for validation. (Krishna loves QGIS)</p>]]></content:encoded></item><item><title><![CDATA[Vibe Check Your Geospatial Foundation Model]]></title><description><![CDATA[with geovibes!]]></description><link>https://christopherren.substack.com/p/vibe-check-your-geospatial-foundation</link><guid isPermaLink="false">https://christopherren.substack.com/p/vibe-check-your-geospatial-foundation</guid><dc:creator><![CDATA[Christopher Ren]]></dc:creator><pubDate>Mon, 29 Sep 2025 23:33:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!6aRB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F852c5426-c09a-409a-bd7e-6d5051ed4f8c_2199x4802.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>TLDR;</h3><ol><li><p>Using <a href="https://github.com/cr458/geovibes">Geovibes</a> you can interact with a foundation model/embeddings using a jupyter notebook via similarity searching <strong>on your laptop</strong>.</p></li><li><p>This gives you a sense of your model&#8217;s vibes, i.e minutiae in the data/minority classes that perhaps only you care about, and aren&#8217;t measured in benchmarks.</p></li><li><p>We provide a script that enables you to build a searchable index from embeddings provided online.</p></li><li><p>We suggest the community uses the following schema for the release of embeddings: geoparquet files with [tile_id, geometry, embedding] where geometry is a (lat, lon) representing the centre of a tile. Each geoparquet file should contain the embeddings generated over an Military Grid Reference System (MGRS) tile. </p></li><li><p>Metadata on temporal range, tile size, overlap and pixel resolution should also be included</p></li><li><p>Potential future plans may involve: dealing with embedding rasters, making this more memory efficient, an embeddings pipeline for you to generate your own using custom models, experiments showing that this is useful.</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://christopherren.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/christopherren.substack.com/subscribe"><span>Subscribe now</span></a></p></li></ol><h3>Why?</h3><p>I feel like earth observation research is currently a very `vibes-based` community.  <br>Expensive foundation models get released without benchmarks. Global embedding datasets get released with limited benchmarking on downstream tasks. The benchmarks that do exist are narrow in geographic scope, and some are already maxed out by models that we know are just not that great. There also appears to be a general lack of procedure around benchmarking: some papers might benchmark on PANGAEA, others on Geo-Bench, and others on their own collection of tasks. </p><p>Most of us don&#8217;t read the actual papers released, we just go off the LinkedIn posts and the vibes. Myself included!</p><p>As an example just look at this set of tables from the <a href="https://arxiv.org/pdf/2508.10104">DINOv3 paper</a>: <strong>m-brick-kiln, m-eurosat, m-pv4ger, m-pv4ger-seg</strong> or 4/12 of these tasks are clearly saturated across all of the models being compared here. These should be taken out to pasture.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!EpCW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3c8a0e-018a-4f86-9bdc-1a08019730f6_2586x1444.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!EpCW!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3c8a0e-018a-4f86-9bdc-1a08019730f6_2586x1444.png 424w, /__u/substackcdn.com/image/fetch/$s_!EpCW!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3c8a0e-018a-4f86-9bdc-1a08019730f6_2586x1444.png 848w, /__u/substackcdn.com/image/fetch/$s_!EpCW!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3c8a0e-018a-4f86-9bdc-1a08019730f6_2586x1444.png 1272w, /__u/substackcdn.com/image/fetch/$s_!EpCW!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3c8a0e-018a-4f86-9bdc-1a08019730f6_2586x1444.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!EpCW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3c8a0e-018a-4f86-9bdc-1a08019730f6_2586x1444.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7d3c8a0e-018a-4f86-9bdc-1a08019730f6_2586x1444.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:959054,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/165438838?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3c8a0e-018a-4f86-9bdc-1a08019730f6_2586x1444.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!EpCW!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3c8a0e-018a-4f86-9bdc-1a08019730f6_2586x1444.png 424w, /__u/substackcdn.com/image/fetch/$s_!EpCW!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3c8a0e-018a-4f86-9bdc-1a08019730f6_2586x1444.png 848w, /__u/substackcdn.com/image/fetch/$s_!EpCW!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3c8a0e-018a-4f86-9bdc-1a08019730f6_2586x1444.png 1272w, /__u/substackcdn.com/image/fetch/$s_!EpCW!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3c8a0e-018a-4f86-9bdc-1a08019730f6_2586x1444.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 aria-hidden="true" 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><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">That&#8217;ll do m-brick-kiln, that&#8217;ll do. DINO v3, Sim&#233;oni <em>et al. 2025</em></figcaption></figure></div><p>My feeling is that these &#8216;general&#8217; sets of benchmarks targeted at measuring how foundational a given model is <strong>don&#8217;t reflect what users are actually interested in</strong>. We can acknowledge that those in academia must play the numbers game and over-index on novelty and benchmark performance as opposed to impact and utility (I have been guilty of this myself), but that does not mean that the rest of us should follow suit! </p><p>We see the same effect with LLMs coding agents: frontier labs will release benchmark results, but the thing I tend to pay attention to are real users <a href="https://every.to/vibe-check/vibe-check-claude-sonnet-4-5">vibe checks</a>. After all, these are real users, not static benchmarks that can be gamed! The goal of geovibes is to provide a framework for users to vibe check embeddings/foundation models easily.</p><h3>How Do I Use It?</h3><p>Geovibes is a weekend project. It should not be used as a production tool. I&#8217;m not even sure how you would do that to be honest. There are probably a million small things that are broken, and some big ones. With that being said: you should use geovibes to create datasets and maps. </p><p>A pretty simple, universal workflow for mapping is: </p><ul><li><p>label positives and negatives with Geovibes</p></li><li><p>you may need to sample more diverse negative samples since your dataset will only consist of &#8216;hard&#8217; ones resulting from the search. Landcover is a great way to do this.</p></li><li><p>train a classifier (XGBoost/Random Forest/LightGBM/Catboost) on top of those embeddings. </p></li><li><p>Once you have a trained classifier: deploy this classifier over <strong>any set of embeddings generated by the same source model</strong>. </p></li></ul><p>The classification workflow has not been implemented as of yet in geovibes, but you can subscribe to updates to be notified when it is. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://christopherren.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/christopherren.substack.com/subscribe"><span>Subscribe now</span></a></p><h3>What is Geovibes?</h3><p>We built on top of the open source ei-notebook released by the Earth Genome to address this issue: if we&#8217;re going to be vibes-based, then let&#8217;s do it for real! Yes, we are missing a strong set of universal benchmarks in EO, but then again is that really important? Each user has their own specific use-case they care about: we should instead empower them to easily get a &#8216;feel&#8217; for a given set of embeddings aka the vibes<strong>.</strong> </p><p>Let&#8217;s allow the user to interact iteratively with these embeddings, the same way they would do with chatbots/coding agents to figure out if they prefer Gemini Pro 2.5, Opus 4.1, GPT-5-Codex or GPT-5-High or &#8230; you get the idea.</p><p>Geovibes is a tool that allows you to create or download local, searchable vector databases of embeddings produced by earth observation foundation models. It comes at a time when we have an increasing availability of embedding datasets (<a href="https://source.coop/earthgenome/earthindexembeddings">Earth Genome</a> Softcon, Google <a href="https://developers.google.com/earth-engine/datasets/catalog/GOOGLE_SATELLITE_EMBEDDING_V1_ANNUAL">Alpha Earth</a>, <a href="https://arxiv.org/pdf/2506.20380">TESSERA</a> etc&#8230;), but no unified or easy way to interact with them.</p><p>Think of it as <a href="https://www.earthgenome.org/earth-index">Earth Index</a>, but it runs on your laptop. This allows you to checkout the vibes of any new embedding dataset or foundation model. The idea is relatively simple: click on a location, retrieve the embedding vector for that location, use it to query your database using similarity search, then return the top-k neighbors.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;b965e94e-7309-4302-8022-b5ac2eabc883&quot;,&quot;duration&quot;:null}"></div><h3>Human in the Loop Searching</h3><p>You needn&#8217;t stop there though: what if the returned search results contain <strong>some</strong> relevant results, but some irrelevant ones? Geovibes enables you to label <strong>negative samples: </strong>essentially pushing your query vector to be more different than some selected points.</p><p>In the video below: I&#8217;m using Google&#8217;s Alpha Earth Foundations (AEF) embeddings in an attempt to find aquaculture in Alabama. I click on an example and zoom out: I see that because AEF embeddings do not contain any spatial information, it seems that both the <a href="https://en.wikipedia.org/wiki/Tombigbee_River">Tombigbee River</a> (West) and the <a href="https://en.wikipedia.org/wiki/Alabama_River">Alabama River</a> (East) are picked out by my search results (compare the image below and the video). </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!XpFC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20634f3-c61b-4b7e-83bb-98ecc71c57d7_470x703.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!XpFC!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20634f3-c61b-4b7e-83bb-98ecc71c57d7_470x703.png 424w, /__u/substackcdn.com/image/fetch/$s_!XpFC!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20634f3-c61b-4b7e-83bb-98ecc71c57d7_470x703.png 848w, /__u/substackcdn.com/image/fetch/$s_!XpFC!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20634f3-c61b-4b7e-83bb-98ecc71c57d7_470x703.png 1272w, /__u/substackcdn.com/image/fetch/$s_!XpFC!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20634f3-c61b-4b7e-83bb-98ecc71c57d7_470x703.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!XpFC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20634f3-c61b-4b7e-83bb-98ecc71c57d7_470x703.png" width="470" height="703" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b20634f3-c61b-4b7e-83bb-98ecc71c57d7_470x703.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:703,&quot;width&quot;:470,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:219520,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/165438838?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20634f3-c61b-4b7e-83bb-98ecc71c57d7_470x703.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!XpFC!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20634f3-c61b-4b7e-83bb-98ecc71c57d7_470x703.png 424w, /__u/substackcdn.com/image/fetch/$s_!XpFC!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20634f3-c61b-4b7e-83bb-98ecc71c57d7_470x703.png 848w, /__u/substackcdn.com/image/fetch/$s_!XpFC!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20634f3-c61b-4b7e-83bb-98ecc71c57d7_470x703.png 1272w, /__u/substackcdn.com/image/fetch/$s_!XpFC!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20634f3-c61b-4b7e-83bb-98ecc71c57d7_470x703.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 aria-hidden="true" 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><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">The Tombigbee and Alabama rivers. Definitely not cat fish farms. From <a href="https://en.wikipedia.org/wiki/Tombigbee_River#/media/File:Tombigbeerivermap.png">wikipedia</a>.</figcaption></figure></div><p>These are clearly not the type of <code>thing</code> I am looking for, and I can indicate this to my search: <strong>I draw a polygon around the Tombigbee River search results, add these as negatives to my dataset,</strong> and perform a new search with my updated query vector. We see that many search results from the Alabama River disappear as a result of this, even though I did not label those as negatives!</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;55dedc40-1609-4fe9-98aa-fde2fcb15e71&quot;,&quot;duration&quot;:null}"></div><p>This type of operation is valuable for two reasons: it makes the similarity searching steerable to some degree AND it helps surface &#8216;hard negatives&#8217; which are useful for training classifiers from your dataset.</p><h3>How it Works</h3><p>I want to specifically credit <a href="https://www.journalismfestival.com/speaker/edward-boyda">Ed Boyda</a> from the Earth Genome with coming up with the idea to run this type of search locally: as far as I&#8217;m aware (correct me if I&#8217;m wrong Earth Genies), he implemented the original version of this which used <a href="https://github.com/spotify/annoy">annoy</a> and held the embeddings in a GeoDataFrame in memory.</p><p>The &#8216;backend&#8217; of geovibes relies on two core technologies: <a href="https://github.com/facebookresearch/faiss">faiss</a> for similarity searching, and <a href="https://duckdb.org/">duckdb</a> for fast + local access to embeddings. Using the <a href="https://duckdb.org/docs/stable/core_extensions/vss.html">duckdb vss extension</a>, you can technically do this without faiss, but we found that solution scaled poorly both in terms of index-build time, and search time. </p><ul><li><p>Given a set of embedding vectors: we build a faiss index over the embeddings, this tells us for a given vector, which vectors are similar <strong>for all vectors in the dataset</strong>.</p></li><li><p> We link this faiss index to a duckdb table by <code>tile_id</code>: the faiss index returns which tile IDs are most similar to a given query,</p></li><li><p>We then use duckdb to retrieve the embedding vectors for those tile IDs. This enables us to re-calculate and update a given query vector with the actual embedding values, as well as display them on the UI for the user to peruse.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!6aRB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F852c5426-c09a-409a-bd7e-6d5051ed4f8c_2199x4802.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!6aRB!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F852c5426-c09a-409a-bd7e-6d5051ed4f8c_2199x4802.png 424w, /__u/substackcdn.com/image/fetch/$s_!6aRB!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F852c5426-c09a-409a-bd7e-6d5051ed4f8c_2199x4802.png 848w, /__u/substackcdn.com/image/fetch/$s_!6aRB!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F852c5426-c09a-409a-bd7e-6d5051ed4f8c_2199x4802.png 1272w, /__u/substackcdn.com/image/fetch/$s_!6aRB!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F852c5426-c09a-409a-bd7e-6d5051ed4f8c_2199x4802.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!6aRB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F852c5426-c09a-409a-bd7e-6d5051ed4f8c_2199x4802.png" width="2199" height="4802" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/852c5426-c09a-409a-bd7e-6d5051ed4f8c_2199x4802.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:4802,&quot;width&quot;:2199,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2191881,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/165438838?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd54753a8-d878-4277-9d72-7e218a2fc966_2481x5276.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!6aRB!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F852c5426-c09a-409a-bd7e-6d5051ed4f8c_2199x4802.png 424w, /__u/substackcdn.com/image/fetch/$s_!6aRB!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F852c5426-c09a-409a-bd7e-6d5051ed4f8c_2199x4802.png 848w, /__u/substackcdn.com/image/fetch/$s_!6aRB!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F852c5426-c09a-409a-bd7e-6d5051ed4f8c_2199x4802.png 1272w, /__u/substackcdn.com/image/fetch/$s_!6aRB!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F852c5426-c09a-409a-bd7e-6d5051ed4f8c_2199x4802.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 aria-hidden="true" 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><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">Click, get vector, search, display results. Easy peasy!</figcaption></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://christopherren.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/christopherren.substack.com/subscribe"><span>Subscribe now</span></a></p><p>For now: you can use geovibes to checkout embeddings and foundation models. Which ones are useful for your specific use cases? Are you able to find your <code>things</code> immediately, or does it take several iterations of labeling? </p><h3>Available Searchable Databases </h3><p>We have pre-compiled some faiss indexes + duckdb tables for you to check out and play around with. For now, searchable indexes are available over Alabama and New Mexico. These are hosted on <a href="https://source.coop/geovibes/search">Source Cooperative</a> (thanks Jed!).</p><p>Alabama:</p><ul><li><p>Earth Genome <a href="https://github.com/zhu-xlab/SSL4EO-S12?tab=readme-ov-file">SSL4EO DINO ViT</a> Sentinel-2 embeddings 2024-2025 </p></li><li><p>Earth Genome Quantized <a href="https://github.com/zhu-xlab/SSL4EO-S12?tab=readme-ov-file">SSL4EO DINO ViT</a> Sentinel-2 embeddings 2024-2025</p></li><li><p>Earth Genome Quantized <a href="https://github.com/zhu-xlab/softcon/tree/main">Softcon</a> embeddings 2024-2025</p></li><li><p>Google Satellite Embeddings v1 2024-2025 </p></li><li><p>Clay v1.5 NAIP embeddings 2019-2020 (via a heroic effort from <a href="https://www.linkedin.com/in/zoe-statman-weil-a1039633/">Zoe</a>, thank you!)</p></li></ul><p>New Mexico:</p><ul><li><p>Google Satellite Embeddings v1 2024-2025</p></li></ul><p>Please get in touch if you&#8217;d like us to generate other regions.</p><p>You can access these via the <code>download_embeddings.py </code>script in geovibes (thanks <a href="https://www.linkedin.com/in/noahgolmant/">Noah</a>!): if you don&#8217;t have a great internet connection, I recommend you start with a Google Satellite Embedding v1 database, as these are only 64-dimensional and were created with no tile-overlap, so are much smaller. The Clay v1.5 database is about 30 GB (!!).</p><h3>Bring Your Own Embeddings</h3><p>We provide scripts in geovibes such that users can generate their own searchable indexes which are compatible with the geovibes user interface. In order for these to work, your embeddings should follow this schema: [tile_id, geometry, embedding] where tile_id is a unique identifier, geometry is a (lat, lon) representing the centre of a tile and embedding is the embedding array. </p><p>We suggest that if others would like to make open tiled embedding datasets, that use the geoparquet format, separate out embeddings by MGRS tile, and use this schema. Additionally, metadata such as temporal range, tile size, overlap and pixel resolution should also be included in the filenames/folder structure. </p><p>Our hope is that the this tool increases utilization of some already existing embedding datasets, and encourages others to release more datasets knowing that they can now be searched over fairly large regions on a laptop.</p><h3>What&#8217;s Next?</h3><ul><li><p>Many embeddings appear to be released as rasters currently, at the pixel level. I think it&#8217;d be interesting to see how/if we can support those in this kind of workflow.</p></li><li><p>We&#8217;ll be writing some posts about fun problems we encountered while doing this:</p><ul><li><p> including how duckdb&#8217;s vss extension doesn&#8217;t appear to scale well, </p></li><li><p>why we think smaller embeddings are better, </p></li><li><p>how duckdb/faiss appear to scale with search size/dataset size/request size, </p></li><li><p>how far we think we can push this kind of local workflow on our laptops. </p></li></ul></li><li><p>We&#8217;ll also be using the tool to do some mapping, and probably finding lots of bugs along the way, you can expect us to update the tool as we use it, <strong>but you should feel free to fork it and modify it to fit your own purposes as well.</strong> </p></li></ul><p>With LLMs/coding agents as they are: there is no need to have a &#8216;central&#8217; repository. If you want to modify it to fit your purposes, or fix a bug, just ask Codex or Claude to do it, no need to submit a PR/github issue unless you really want to.</p><p>There is more than one way to skin a foundation model.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://christopherren.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/christopherren.substack.com/subscribe"><span>Subscribe now</span></a></p><h3>Acknowledgements</h3><p>Thank you to the <a href="https://www.earthgenome.org/">Earth Genome</a>, in particular <a href="https://www.linkedin.com/in/bengmstrong/">Ben Strong</a>, <a href="https://www.linkedin.com/in/tom-ingold/">Hutch Ingold</a>, and <a href="https://www.journalismfestival.com/speaker/edward-boyda">Ed Boyda</a> for supporting this effort by providing embeddings and agreeing to open source the original <a href="https://github.com/earth-genome/ei-notebook">ei-notebook</a> implementation. </p><p>Thank you to <a href="https://www.linkedin.com/in/zoe-statman-weil-a1039633/">Zoe</a>, <a href="https://www.linkedin.com/in/noahgolmant/">Noah</a> and <a href="https://www.linkedin.com/in/isaaccorley/">Isaac</a> who contributed to Geovibes, and listened to me rant about foundation models and embeddings.<br>Thank you to <a href="https://www.linkedin.com/in/jedsundwall/">Jed Sundwall</a>, who enabled us to distribute these databases via Source Cooperative.</p><p></p><p><br></p>]]></content:encoded></item><item><title><![CDATA[Geospatial Platforms, Career Paths, Questions from Ep 1.]]></title><description><![CDATA[In this episode Chris and Krishna talk a little about their career paths, reply to some questions from listeners about Episode 1 concerning embeddings, and profess their undying love for Google Earth Engine.]]></description><link>https://christopherren.substack.com/p/geospatial-platforms-career-paths</link><guid isPermaLink="false">https://christopherren.substack.com/p/geospatial-platforms-career-paths</guid><dc:creator><![CDATA[Christopher Ren]]></dc:creator><pubDate>Fri, 26 Sep 2025 20:53:12 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/174591025/9fc8963d9ed7563a5952a32e36ed2b7f.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>In this episode Chris and Krishna talk a little about their career paths, reply to some questions from listeners about Episode 1 concerning embeddings, and profess their undying love for Google Earth Engine.</p><p>Throughout this conversation, a common theme explored is the nature of the abstractions implemented in Google Earth Engine, vs the open-source ecosystem.</p><p>If anyone from Google sees this: we would love more export tasks.</p><p>(00:00) Introductions and career paths</p><p>(08:00) Questions from Episode 1</p><p>(17:00) Geospatial platform discussion. Descartes Labs, Google Earth Engine, the Impact Observatory pipeline and more!</p>]]></content:encoded></item><item><title><![CDATA[We Started a Podcast]]></title><description><![CDATA[Yes, we spoke about embeddings]]></description><link>https://christopherren.substack.com/p/we-started-a-podcast</link><guid isPermaLink="false">https://christopherren.substack.com/p/we-started-a-podcast</guid><dc:creator><![CDATA[Christopher Ren]]></dc:creator><pubDate>Wed, 10 Sep 2025 02:55:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_ShX!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94621bf0-96f9-4347-b095-5927c2d42626_275x275.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I started a podcast with my friend <a href="https://www.linkedin.com/in/krishna-karra-8765811b/">Krishna Karra</a>! Krishna is extremely knowledgeable, and I firmly believe that he is one of the people who has looked at the most earth observation pixels on the planet.<br>We worked together briefly in 2022, on a satellite imagery retrieval tool called <a href="https://www.earthgenome.org/earth-index">Earth Index</a>. Throughout this time, we spent a lot of time investigating the current topic <em>du jour</em>: embeddings. Since interest is increasing in this technology, we thought we&#8217;d share our opinions and experiences working with them and developing applications on top of them. </p><p>Our first episode is titled: &#8220;Embeddings in Context: Tools for Geospatial Problem Solving&#8221; and you can find it on <a href="https://open.spotify.com/episode/6PztvE0ffLxhdBrSJQDo83?si=X_EzloQtTyiuimXPM60FnA">spotify</a>, <a href="https://podcasts.apple.com/us/podcast/embeddings-in-context-tools-for-geospatial-problem/id1838631242?i=1000725657026">apple</a> and <a href="https://youtu.be/nLJ-uxU8xFI?si=MeD9t7OzGjRPaiHb">youtube</a>. </p><p>Give it a listen to find out: </p><ul><li><p>what problems we solved use embeddings</p></li><li><p>how I spent $40,000 in cloud credits on pre-training on satellite imagery only to be beaten by ImageNet weights</p></li><li><p>why I think embeddings for search should be high recall across a broad range of problems at the expensive of precision, and more! </p></li></ul><p>I&#8217;ll be writing about some of these topics in more depth too, you can subscribe below so you don&#8217;t miss those pieces.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://christopherren.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/christopherren.substack.com/subscribe"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Embeddings in Context: Tools for Geospatial Problem Solving]]></title><description><![CDATA[Chris and Krishna discuss their experiences working with geospatial embeddings, search and remote sensing in general, and how they think through problems.]]></description><link>https://christopherren.substack.com/p/embeddings-in-context-tools-for-geospatial-086</link><guid isPermaLink="false">https://christopherren.substack.com/p/embeddings-in-context-tools-for-geospatial-086</guid><dc:creator><![CDATA[Christopher Ren]]></dc:creator><pubDate>Tue, 09 Sep 2025 05:06:37 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/173237046/1626e79efe4a4262a2452adae36e6874.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Chris and Krishna discuss their experiences working with geospatial embeddings, search and remote sensing in general, and how they think through problems.</p><p>Timestamps sustainably sourced and hand crafted.</p><p>(0:00) Intro</p><p>(2:30) Background, earth observation and existing algorithms and the embedding fallacy.</p><p>(9:49) Validation, how to solve problems, seductive embeddings, the museum of cool demos.</p><p>(19:22) What are embeddings?</p><p>(21:00) Search vs embeddings, the development of Earth Index.</p><p>(25:00) Expert embeddings: the dumbest embeddings that work.</p><p>(30:25) Computer vision embeddings/ImageNet. Experiments in pre-training, how to spend $40,000 in cloud credits.</p><p>(37:22) Should we pre-train on satellite imagery? DINO v3</p><p>(44:30) What properties should embeddings have for search? Recall vs Precision/Landcover+</p><p>(50:00) Real world consequences of mapping</p><p>(54:00) Future outlook, Krishna is jaded</p>]]></content:encoded></item><item><title><![CDATA[Google is a Dream Killer]]></title><description><![CDATA[Don't Compete with Big Embeddings]]></description><link>https://christopherren.substack.com/p/google-is-a-dream-killer</link><guid isPermaLink="false">https://christopherren.substack.com/p/google-is-a-dream-killer</guid><dc:creator><![CDATA[Christopher Ren]]></dc:creator><pubDate>Fri, 08 Aug 2025 06:19:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!lQuN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6973a4-728e-45cb-b8ec-c01422c45cf7_1684x1162.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>A quick note on earth engine prices:</h3><ul><li><p><a href="https://www.linkedin.com/posts/simon-ilyushchenko-6593201_earth-engine-pricing-google-cloud-activity-7358246298837245953-Gfzx?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAcf-00ByCyr-aE1iW-tnBWOR9lBLztXmi8">Google Earth Engine lowered their prices</a>! Simon Ilyushchenko very generously mentioned a previous post I had made referencing the <a href="/__u/christopherren.substack.com/p/the-economics-of-earth-engine?r=22ebo5">confusing economics of earth engine</a>. While I think removing pricing for individual seats and lowering online pricing is a great step in the right direction, it unfortunately is unlikely to have a huge effect on the calculations in my post which were all based on the batch API. What I think is more likely to happen is that companies will have to choose between switching their batch pipelines (exporting) over to online workflows (high volume API, streaming etc&#8230;). Perhaps the lowering of the online API price means we&#8217;re likely to see <a href="https://github.com/google/Xee">xee</a> gain more adoption in commercial settings.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://christopherren.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/christopherren.substack.com/subscribe"><span>Subscribe now</span></a></p><h3>TLDR;</h3><ul><li><p>Sounds like The Moose was a good cat &#10084;&#65039;. </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!OiWx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F460abc91-6744-4ced-afe1-074dfb343226_786x130.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!OiWx!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F460abc91-6744-4ced-afe1-074dfb343226_786x130.png 424w, /__u/substackcdn.com/image/fetch/$s_!OiWx!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F460abc91-6744-4ced-afe1-074dfb343226_786x130.png 848w, /__u/substackcdn.com/image/fetch/$s_!OiWx!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F460abc91-6744-4ced-afe1-074dfb343226_786x130.png 1272w, /__u/substackcdn.com/image/fetch/$s_!OiWx!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F460abc91-6744-4ced-afe1-074dfb343226_786x130.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!OiWx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F460abc91-6744-4ced-afe1-074dfb343226_786x130.png" width="786" height="130" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/460abc91-6744-4ced-afe1-074dfb343226_786x130.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:130,&quot;width&quot;:786,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:25042,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/170239239?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F460abc91-6744-4ced-afe1-074dfb343226_786x130.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!OiWx!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F460abc91-6744-4ced-afe1-074dfb343226_786x130.png 424w, /__u/substackcdn.com/image/fetch/$s_!OiWx!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F460abc91-6744-4ced-afe1-074dfb343226_786x130.png 848w, /__u/substackcdn.com/image/fetch/$s_!OiWx!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F460abc91-6744-4ced-afe1-074dfb343226_786x130.png 1272w, /__u/substackcdn.com/image/fetch/$s_!OiWx!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F460abc91-6744-4ced-afe1-074dfb343226_786x130.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div></li><li><p>Google shows that FMs don&#8217;t appear to scale effectively for linear-probing on tasks: I would not train another general EO FM right now.</p></li><li><p>It does not make sense to try to build a business on unproven and expensive technology economically. It does make sense to try to sell cloud services.</p></li><li><p>Even if embeddings were a proven geospatial company, it is impossible to compete with <a href="https://radiant.earth/blog/2024/01/unicorns-show-ponies-and-gazelles/">a killer unicorn when you are a show pony</a>. Competing with Google&#8217;s distribution and subsidies is a brutal game</p><p></p></li></ul><h3>Thoughts on AlphaEarth Foundations</h3><p>Google recently released global embeddings from their <a href="https://storage.googleapis.com/deepmind-media/DeepMind.com/Blog/alphaearth-foundations-helps-map-our-planet-in-unprecedented-detail/alphaearth-foundations.pdf">alphaearth foundation model</a> (AEF). There&#8217;s been a lot of buzz around the embeddings themselves, here are some thoughts on what this means for Big Embeddings as an industry.</p><h3>1. Read my lips: no new foundation models.</h3><p>At least not in the general case. Google scaled their experiment beyond what any other company in the space could reasonably do. Have a look at the training data:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!lQuN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6973a4-728e-45cb-b8ec-c01422c45cf7_1684x1162.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!lQuN!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6973a4-728e-45cb-b8ec-c01422c45cf7_1684x1162.png 424w, /__u/substackcdn.com/image/fetch/$s_!lQuN!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6973a4-728e-45cb-b8ec-c01422c45cf7_1684x1162.png 848w, /__u/substackcdn.com/image/fetch/$s_!lQuN!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6973a4-728e-45cb-b8ec-c01422c45cf7_1684x1162.png 1272w, /__u/substackcdn.com/image/fetch/$s_!lQuN!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6973a4-728e-45cb-b8ec-c01422c45cf7_1684x1162.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!lQuN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6973a4-728e-45cb-b8ec-c01422c45cf7_1684x1162.png" width="1456" height="1005" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c6973a4-728e-45cb-b8ec-c01422c45cf7_1684x1162.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1005,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:279913,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/170239239?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6973a4-728e-45cb-b8ec-c01422c45cf7_1684x1162.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!lQuN!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6973a4-728e-45cb-b8ec-c01422c45cf7_1684x1162.png 424w, /__u/substackcdn.com/image/fetch/$s_!lQuN!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6973a4-728e-45cb-b8ec-c01422c45cf7_1684x1162.png 848w, /__u/substackcdn.com/image/fetch/$s_!lQuN!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6973a4-728e-45cb-b8ec-c01422c45cf7_1684x1162.png 1272w, /__u/substackcdn.com/image/fetch/$s_!lQuN!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6973a4-728e-45cb-b8ec-c01422c45cf7_1684x1162.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 aria-hidden="true" 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><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://storage.googleapis.com/deepmind-media/DeepMind.com/Blog/alphaearth-foundations-helps-map-our-planet-in-unprecedented-detail/alphaearth-foundations.pdf">AEF Training Sources</a>. Brown <em>et a</em>l. 2025</figcaption></figure></div><p>Although some sensors are conspicuously missing (notably MODIS and VIIRS), we can see they threw the kitchen sink at this model. Some interesting choices include: text from the <a href="https://www.gbif.org/">Global Biodiversity Information Facility</a> (GBIF) + Wikipedia, NLCD (only available in the US) and monthly aggregates of ERA5-Land. These are not all used as inputs. Let&#8217;s look at how the results scaled with increasing data:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!RenU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c353fb6-66ba-45a3-8630-b0f5c7563d21_1622x1726.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!RenU!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c353fb6-66ba-45a3-8630-b0f5c7563d21_1622x1726.png 424w, /__u/substackcdn.com/image/fetch/$s_!RenU!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c353fb6-66ba-45a3-8630-b0f5c7563d21_1622x1726.png 848w, /__u/substackcdn.com/image/fetch/$s_!RenU!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c353fb6-66ba-45a3-8630-b0f5c7563d21_1622x1726.png 1272w, /__u/substackcdn.com/image/fetch/$s_!RenU!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c353fb6-66ba-45a3-8630-b0f5c7563d21_1622x1726.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!RenU!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c353fb6-66ba-45a3-8630-b0f5c7563d21_1622x1726.png" width="1200" height="1276.6483516483515" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c353fb6-66ba-45a3-8630-b0f5c7563d21_1622x1726.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:1549,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:644691,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/170239239?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c353fb6-66ba-45a3-8630-b0f5c7563d21_1622x1726.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!RenU!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c353fb6-66ba-45a3-8630-b0f5c7563d21_1622x1726.png 424w, /__u/substackcdn.com/image/fetch/$s_!RenU!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c353fb6-66ba-45a3-8630-b0f5c7563d21_1622x1726.png 848w, /__u/substackcdn.com/image/fetch/$s_!RenU!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c353fb6-66ba-45a3-8630-b0f5c7563d21_1622x1726.png 1272w, /__u/substackcdn.com/image/fetch/$s_!RenU!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c353fb6-66ba-45a3-8630-b0f5c7563d21_1622x1726.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 aria-hidden="true" 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><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">Scaling observations for linear-probing. Many tasks appear to plateau with increasing compute/data. X-axis is logarithmic. Brown <em>et al.</em> 2025.</figcaption></figure></div><p>Across many of the 15 tasks, linear-probe performance saturates around 10^7-10^8 observations, with additional data yielding changes within the confidence intervals. A few tasks still improve, but the slope is quite small beyond this point on most tasks. On some tasks, the performance <strong>actually decreases with increasing data.</strong> This suggests weak returns for <strong>general-purpose</strong> embeddings in linear-probe evaluation, making large-scale training a highly questionable investment unless targeting a specific task that demonstrably benefits from scale. I will note that AEF appears to scale better than some other existing foundation models, but higher performing ones such as <a href="https://arxiv.org/pdf/2504.11171">TerraMind</a> are missing from these comparisons. </p><p>While AEF appears to outperform all other methods on the chosen benchmarks, it is also worth noting that both CCDC and MOSAIKS, two unsupervised methods appear to <a href="https://www.linkedin.com/posts/christopherren_bruno-sanchez-andrade-nu%C3%B1o-for-the-sake-of-activity-7356918939731316736-yIXd?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAcf-00ByCyr-aE1iW-tnBWOR9lBLztXmi8">perform solidly on all benchmark tasks</a> at much lower complexity than foundation models. In general, I&#8217;m growing a little weary of squinting at benchmark plots and tables: if AEF achieves balanced accuracy of 0.22 on us_trees and Satclip got 0.18 I&#8217;m unlikely to use either for a task that ressembles us_trees. Benchmarks are just the price of entry: we need them to know that a model is worth even looking at, but the<a href="/__u/christopherren.substack.com/p/the-model-is-not-the-map?r=22ebo5"> true test is the real world</a>!</p><h3>2. Embeddings don&#8217;t look like a business: </h3><p><a href="https://www.linkedin.com/posts/nasonurb_geoembeddings-activity-7356794717633703937-7Awu?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAcf-00ByCyr-aE1iW-tnBWOR9lBLztXmi8">I see people claiming that the future of EO is based on &#8216;geo-embeddings&#8217;</a>, and that Google must think so too, because they released these embedding. I think this is wrong: zoom out! The product here is not the embeddings but where they were released: Google Earth Engine and associated cloud products. If anything, the fact that these were released globally without an explicit pay-wall should tell you what value Google assigns to these. While this is indeed a big moment as it represents the first global set of embeddings which are so widely and easily accessible, I think this will play out more like the release of <a href="https://dynamicworld.app/">Dynamic World</a> or <a href="https://ieeexplore.ieee.org/document/9553499">Impact Observatory&#8217;s LULC map</a> rather than ChatGPT (sorry <a href="https://www.linkedin.com/in/krishna-karra-8765811b/">Krishna</a> I stole your point but imitation is the sincerest form of flattery). These are impactful data products that need to be used with others in order to be useful. Meanwhile, if you <strong>do want to access these</strong>, and use them in conjunction with other raster datasets, you know where to do that. And don&#8217;t forget to sign up for a cloud project, and can we also interest you in some cloud storage and compute while you&#8217;re here &#128521;?</p><p>Being an embedding application layer is simply a losing proposition for every company: you pay for cloud resources to host and store your embeddings, millions to train your own models (please don&#8217;t), engineers to build your APIs, and THEN you have to convince customers to hand over their cash for your embeddings. This equation changes when you provide the compute, storage, and your embeddings just happen to be a cherry on top that users can choose to use, provided they pay for cloud resources that you provide. </p><p>Playing devil&#8217;s advocate for a second: the flip side here is that you potentially be able to pick up customers that can&#8217;t and won&#8217;t use GEE. There is also a case to be made for problem-specific embeddings with <strong>verified gains in task cost</strong>, but we have yet to see anyone in the space show hard data on embeddings being a cheaper way to develop valuable applications.</p><h3>3. The race to the bottom:</h3><p><a href="https://docs.google.com/forms/d/e/1FAIpQLSfxnmqM2PEKdphTWXh44jsy83SRBkn0grjg6shRS-mLJTsKrQ/viewform?fbzx=2991992422263447311">Google is offering $5k grants to support people building on this product</a>. Have you ever heard of a company paying people to use their killer product? What are the implications of this? Even if we take the counterfactual position that these embeddings are indeed a killer product and Google is attempting to flood the market a-la Uber with their cheap rides, what does this mean for start-ups looking to compete against something that&#8217;s currently been assigned financial cost of almost $0?</p><p>From my initial experiments on retrieval on smallholder crops: these embeddings are appear to be potentially useful (more on this coming soon), although I have some reservations <a href="/__u/christopherren.substack.com/p/embedding-fields-forever?r=22ebo5">about how they were trained</a>. It&#8217;s still clear we have not figured out how to effectively interact with geospatial embeddings, and what the true cost and time savings are from using them. <strong>Verification is still the biggest problem</strong>, and we encounter it over and over again in EO: you can build a great looking model, but how do you go about verifying it&#8217;s detecting the actual signal you care about? I would love to see more companies working to solve this problem, although the answer may be buy timely high-resolution imagery.</p><h3>4. One more time with feeling:</h3><p>What does this mean from an industry perspective? A complex solution looking for a problem is a major red flag: sometimes ideas consume so much capital and energy that they become too big to fail. Whole companies stake their future on them, people bet their careers, and investors bet their dollars. However, there are few companies in the space that can afford to sustain these types of ideas until they become useful, so if you are considering it please consider the economics of the endeavour as much as you consider the technology. Having organizations spin-up and fail unnecessarily erodes trust in the industry as a whole and is likely to harm it in the long term.</p><h3>4. Shameless self-plug:</h3><p>I&#8217;m starting a podcast with my good friend <a href="https://www.linkedin.com/in/krishna-karra-8765811b/">Krishna Karra</a>. The first episode will probably be about embeddings, unless we all lose interest before we record.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://christopherren.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/christopherren.substack.com/subscribe"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Embedding Fields Forever]]></title><description><![CDATA[What Properties Should Geospatial Embeddings Have?]]></description><link>https://christopherren.substack.com/p/embedding-fields-forever</link><guid isPermaLink="false">https://christopherren.substack.com/p/embedding-fields-forever</guid><dc:creator><![CDATA[Christopher Ren]]></dc:creator><pubDate>Mon, 21 Jul 2025 03:48:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!o3U-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64873d23-de4d-4fc1-90e2-51bab9e21a6a_1179x754.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>TLDR;</h3><ul><li><p>It is cool that people are releasing embeddings, kudos to the Deepmind/Google team!</p></li><li><p>Google&#8217;s Embedding Fields show large scale spatial variation that can be problematic for semantic search.</p></li><li><p>DuckDB is awesome, and can serve as a vector database.</p></li><li><p>Embeddings should be served at a scale that is larger than 10m pixels for ease of access.</p></li><li><p><strong>Embeddings for retrieval should compress what is </strong><em><strong>hard</strong></em><strong> to join later (texture, specific land-use, shape), not what is trivial (elevation, lat/long, other raster dataset).</strong></p></li><li><p>It&#8217;s important to do experiments with your embeddings: search and PCA are two easy ways to get a sense of the vibes.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://christopherren.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/christopherren.substack.com/subscribe"><span>Subscribe now</span></a></p><div><hr></div></li></ul><p>As part of a recent project, I&#8217;ve been assembling various types of geospatial embeddings and testing out retrieval on them. This is all part of a bigger release of some open source tools that will hopefully enable you to do this type of analyses as well, which is coming soon!</p><h3>Google Satellite Embeddings</h3><p>One of the first embedding sets we turned to was the <a href="https://developers.google.com/earth-engine/datasets/catalog/GOOGLE_SATELLITE_EMBEDDING_V1_ANNUAL">Google Satellite Embedding dataset</a>: it&#8217;s a 64-dim embedding dataset that encodes &#8216; temporal trajectories of surface conditions&#8217; at each 10m pixel by &#8216;various Earth observation instruments and datasets&#8217;. It sounds like there&#8217;s a paper coming soon, but the only real information I could find was this <a href="https://ml-for-rs.github.io/iclr2024/camera_ready/posters/2.pdf">conference poster</a>, and <a href="https://docs.google.com/presentation/d/1ZfBYUNV1w377rkxc3REm5_evyzMJF6szxXGBszKC7uw/edit?slide=id.g3012811fd68_0_1934#slide=id.g3012811fd68_0_1934">this presentation</a>. Between these two sources we can see that that various time-steps for various sources/sensors are encoded into a 64-dim latent space, and then decoded and used to reconstruct a set of amount of targets:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!IvKU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddb14900-3c6f-47fa-b7d7-6a6cf2a9bad8_1310x614.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!IvKU!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddb14900-3c6f-47fa-b7d7-6a6cf2a9bad8_1310x614.png 424w, /__u/substackcdn.com/image/fetch/$s_!IvKU!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddb14900-3c6f-47fa-b7d7-6a6cf2a9bad8_1310x614.png 848w, /__u/substackcdn.com/image/fetch/$s_!IvKU!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddb14900-3c6f-47fa-b7d7-6a6cf2a9bad8_1310x614.png 1272w, /__u/substackcdn.com/image/fetch/$s_!IvKU!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddb14900-3c6f-47fa-b7d7-6a6cf2a9bad8_1310x614.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!IvKU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddb14900-3c6f-47fa-b7d7-6a6cf2a9bad8_1310x614.png" width="1310" height="614" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ddb14900-3c6f-47fa-b7d7-6a6cf2a9bad8_1310x614.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:614,&quot;width&quot;:1310,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:220232,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/168808993?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddb14900-3c6f-47fa-b7d7-6a6cf2a9bad8_1310x614.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!IvKU!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddb14900-3c6f-47fa-b7d7-6a6cf2a9bad8_1310x614.png 424w, /__u/substackcdn.com/image/fetch/$s_!IvKU!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddb14900-3c6f-47fa-b7d7-6a6cf2a9bad8_1310x614.png 848w, /__u/substackcdn.com/image/fetch/$s_!IvKU!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddb14900-3c6f-47fa-b7d7-6a6cf2a9bad8_1310x614.png 1272w, /__u/substackcdn.com/image/fetch/$s_!IvKU!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddb14900-3c6f-47fa-b7d7-6a6cf2a9bad8_1310x614.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 aria-hidden="true" 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><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">From: &#8220;Embedding Fields: Accelerate Your Mapping and Monitoring Workflows with Geospatial AI&#8221;, by Emily Schechter &amp; Valerie Pasquarella.</figcaption></figure></div><p><br>The poster gives us a little more clarity on exactly what these targets/reconstruction targets are:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!BK_b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb063f8ca-5cfb-41e5-9562-44c80c3bdfc2_1039x314.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!BK_b!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb063f8ca-5cfb-41e5-9562-44c80c3bdfc2_1039x314.png 424w, /__u/substackcdn.com/image/fetch/$s_!BK_b!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb063f8ca-5cfb-41e5-9562-44c80c3bdfc2_1039x314.png 848w, /__u/substackcdn.com/image/fetch/$s_!BK_b!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb063f8ca-5cfb-41e5-9562-44c80c3bdfc2_1039x314.png 1272w, /__u/substackcdn.com/image/fetch/$s_!BK_b!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb063f8ca-5cfb-41e5-9562-44c80c3bdfc2_1039x314.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!BK_b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb063f8ca-5cfb-41e5-9562-44c80c3bdfc2_1039x314.png" width="1039" height="314" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b063f8ca-5cfb-41e5-9562-44c80c3bdfc2_1039x314.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:314,&quot;width&quot;:1039,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:64045,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/168808993?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6bf36e6-20a5-49d7-8d61-08fb0135e664_1039x322.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!BK_b!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb063f8ca-5cfb-41e5-9562-44c80c3bdfc2_1039x314.png 424w, /__u/substackcdn.com/image/fetch/$s_!BK_b!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb063f8ca-5cfb-41e5-9562-44c80c3bdfc2_1039x314.png 848w, /__u/substackcdn.com/image/fetch/$s_!BK_b!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb063f8ca-5cfb-41e5-9562-44c80c3bdfc2_1039x314.png 1272w, /__u/substackcdn.com/image/fetch/$s_!BK_b!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb063f8ca-5cfb-41e5-9562-44c80c3bdfc2_1039x314.png 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 aria-hidden="true" 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><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">&#8220;Learned Embedding Fields for Multi-Source/Multi-Temporal Earth Observation Imagery&#8221; C. Brown et al. 2025</figcaption></figure></div><p>These are certainly interesting choices as targets for learning, and I&#8217;m not sure this is a particularly good idea, at least in the context of using embeddings for search or at large spatial scales. I&#8217;ll spend the rest of this post discussing why.</p><h3>Pixels to (Geo)Parquet</h3><p>The first step we need to take is aggregate these 10m pixels to larger tiles. This is because it is simply impractical to search over every single 10m pixel, and the Tobler&#8217;s law of geography tells us that things that are close together tend to be more similar anyway. </p><p>As a note to embedding providers: <strong>if you are considering pixel-level embeddings, you should also consider releasing an aggregated version at a coarser scale, this will help people explore you data more easily.</strong></p><p>We can achieve this by first defining our tiles, uploading these geometries to Google Earth Engine (GEE) as GEE assets, and then simply performing <code>reduceRegions</code> over them. These operations allows us to export the the median for each embedding &#8216;channel&#8217; over a tile (I chose 250m x 250m) as a geojson. We then end up with a 64-dim vector associated with each tile centroid, which we need to conver to geoparquet. In the case of the state of Alabama, this resulted in about 2.1 million embeddings.</p><p>As an alternative, you could export the embedding geotiffs from <code>ee.ImageCollection("GOOGLE/SATELLITE_EMBEDDING/V1/ANNUAL", </code>and perform the zonal stats yourself using rasterio/geopandas. </p><h3>DuckDB </h3><p>Once we have our embedding geoparquet files, containing tile centroid and a 64-dim embedding vector we can use <a href="https://duckdb.org/">duckdb</a> to fulfill two purposes: it can act as a database such that we can easily retrieve batches of embeddings for the parquet file using SQL queries, but it also <strong>can act as a <a href="https://en.wikipedia.org/wiki/Vector_database">vector database</a> </strong>for similarity searching thanks to the <a href="https://github.com/duckdb/duckdb-vss">vss extension</a>. Creating an <a href="https://en.wikipedia.org/wiki/Hierarchical_navigable_small_world">Hierarchical Small Navigable Worlds</a> (HSNW) index on top of your database is extremely easy just run:<br><code>CREATE INDEX my_hnsw_cosine_index ON my_vector_table USING HNSW (vec) WITH (metric = 'cosine');</code></p><p>as you are creating your duckdb table. </p><p>This then allows you to use a 64-dim query vector to find &#8216;similar&#8217; entries in your db. We ran into some interesting issues with scaling and performance that we will be writing up in some separate benchmarking posts, but this is the general gist of it!</p><h3>Search</h3><p>Now that we have a searchable vector db, we can simple choose a lat-lon and query Google&#8217;s Embedding Fields for similar points! In the video below, you can see me interactively querying the Embedding Fields for tiles that look &#8216;suburban&#8217;. We can see that it does a fairly good job with these! As we zoom out, we see detections concentrated on the periphery of major urban areas in Alabama. As we zoom into a different area, we see that the retrieved tiles have similiar &#8216;suburban&#8217; characteristics to the query tiles.<br></p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;216f6006-cf2a-453a-8e79-f43aa7c97216&quot;,&quot;duration&quot;:null}"></div><p>This is a pretty neat way of getting a sense of any embedding datasets &#8216;vibes&#8217; since you are able to tell how it does in terms of human-level semantics: <strong>you can search for any minority class of interest in your dataset, and see how well the embeddings have encoded that class as a &#8216;concept&#8217;.</strong> If the search results are similar tiles/things, then congratulations your model, and embeddings are good. At least when it comes to that particular search/class.</p><h3>What Properties Should Embeddings Have?</h3><p>As I started searching, I noticed some puzzling behavior: some searches seemed to work well (i.e the suburban neighborhood search from above). Others exhibited rather odd behavior, especially as I widened the scope of the search. For example: here I&#8217;m selecting a forest tile, and searching for the 25,000 closest neighbors in the embedding space. The search results show a very interesting spatial pattern!</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;71475e83-942b-4e77-97b8-81b0344742a9&quot;,&quot;duration&quot;:null}"></div><p>In fact, I can reproduce the complement of this pattern, simply by seeding my search with a forest tile further south:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Mha8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2cf9e48-4504-495a-a214-171dfd8ddaa6_1175x744.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Mha8!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2cf9e48-4504-495a-a214-171dfd8ddaa6_1175x744.png 424w, /__u/substackcdn.com/image/fetch/$s_!Mha8!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2cf9e48-4504-495a-a214-171dfd8ddaa6_1175x744.png 848w, /__u/substackcdn.com/image/fetch/$s_!Mha8!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2cf9e48-4504-495a-a214-171dfd8ddaa6_1175x744.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Mha8!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2cf9e48-4504-495a-a214-171dfd8ddaa6_1175x744.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Mha8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2cf9e48-4504-495a-a214-171dfd8ddaa6_1175x744.png" width="1175" height="744" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d2cf9e48-4504-495a-a214-171dfd8ddaa6_1175x744.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:744,&quot;width&quot;:1175,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1399191,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/168808993?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2cf9e48-4504-495a-a214-171dfd8ddaa6_1175x744.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Mha8!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2cf9e48-4504-495a-a214-171dfd8ddaa6_1175x744.png 424w, /__u/substackcdn.com/image/fetch/$s_!Mha8!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2cf9e48-4504-495a-a214-171dfd8ddaa6_1175x744.png 848w, /__u/substackcdn.com/image/fetch/$s_!Mha8!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2cf9e48-4504-495a-a214-171dfd8ddaa6_1175x744.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Mha8!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2cf9e48-4504-495a-a214-171dfd8ddaa6_1175x744.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 aria-hidden="true" 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><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">Alabama forest tile search results 25,000 closest neighbors, seeded South (left) and North (right).</figcaption></figure></div><p>Interesting! I would expect these tiles to be somewhat semantically similar in any meaningful embedding space. I would also not expect to see this sort of dramatic geographic pattern, <strong>unless there was some underlying physical phenomena occurring driving changes in the satellite observations that constitute the embeddings.</strong></p><p>In order to investigate this further, I performed PCA on the 2 millions 64-dim tile embeddings and plotted the first 9 components. We can see the occurence of all sorts of larger scale spatial patterns, and that PC1 and PC3 appear to line up very well with our strange search results! Incidently these explain 20% and 11% of the variance in the full embedding dataset.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!u5g-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8ba6277-a7bc-4644-9073-4ccb433c1062_1200x1500.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!u5g-!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8ba6277-a7bc-4644-9073-4ccb433c1062_1200x1500.png 424w, /__u/substackcdn.com/image/fetch/$s_!u5g-!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8ba6277-a7bc-4644-9073-4ccb433c1062_1200x1500.png 848w, /__u/substackcdn.com/image/fetch/$s_!u5g-!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8ba6277-a7bc-4644-9073-4ccb433c1062_1200x1500.png 1272w, /__u/substackcdn.com/image/fetch/$s_!u5g-!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8ba6277-a7bc-4644-9073-4ccb433c1062_1200x1500.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!u5g-!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8ba6277-a7bc-4644-9073-4ccb433c1062_1200x1500.png" width="1200" height="1500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d8ba6277-a7bc-4644-9073-4ccb433c1062_1200x1500.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:1500,&quot;width&quot;:1200,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:1786315,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/168808993?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8ba6277-a7bc-4644-9073-4ccb433c1062_1200x1500.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!u5g-!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8ba6277-a7bc-4644-9073-4ccb433c1062_1200x1500.png 424w, /__u/substackcdn.com/image/fetch/$s_!u5g-!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8ba6277-a7bc-4644-9073-4ccb433c1062_1200x1500.png 848w, /__u/substackcdn.com/image/fetch/$s_!u5g-!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8ba6277-a7bc-4644-9073-4ccb433c1062_1200x1500.png 1272w, /__u/substackcdn.com/image/fetch/$s_!u5g-!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8ba6277-a7bc-4644-9073-4ccb433c1062_1200x1500.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 aria-hidden="true" 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><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">Large scale spatial variation over Albama of the Google Embedding Fields aggregated to 250m x 250m. Some principal components appear to correlate more with built areas, some with water. Many of them appear to show larger-scale greographic patterns.</figcaption></figure></div><p>So why might these larger-scale patterns appear? Is there some inherent physical signal driving them? Although I doubt that the embeddings are so well-attuned to the signals from South-Eastern forests that a whopping 20-30% of the variance in them can be attributed to them, we can image since elevation was one of the learning targets, it could somehow distort the latent space:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!o3U-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64873d23-de4d-4fc1-90e2-51bab9e21a6a_1179x754.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!o3U-!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64873d23-de4d-4fc1-90e2-51bab9e21a6a_1179x754.png 424w, /__u/substackcdn.com/image/fetch/$s_!o3U-!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64873d23-de4d-4fc1-90e2-51bab9e21a6a_1179x754.png 848w, /__u/substackcdn.com/image/fetch/$s_!o3U-!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64873d23-de4d-4fc1-90e2-51bab9e21a6a_1179x754.png 1272w, /__u/substackcdn.com/image/fetch/$s_!o3U-!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64873d23-de4d-4fc1-90e2-51bab9e21a6a_1179x754.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!o3U-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64873d23-de4d-4fc1-90e2-51bab9e21a6a_1179x754.png" width="728" height="465.57421543681085" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/64873d23-de4d-4fc1-90e2-51bab9e21a6a_1179x754.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:754,&quot;width&quot;:1179,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:1170756,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/168808993?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64873d23-de4d-4fc1-90e2-51bab9e21a6a_1179x754.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!o3U-!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64873d23-de4d-4fc1-90e2-51bab9e21a6a_1179x754.png 424w, /__u/substackcdn.com/image/fetch/$s_!o3U-!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64873d23-de4d-4fc1-90e2-51bab9e21a6a_1179x754.png 848w, /__u/substackcdn.com/image/fetch/$s_!o3U-!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64873d23-de4d-4fc1-90e2-51bab9e21a6a_1179x754.png 1272w, /__u/substackcdn.com/image/fetch/$s_!o3U-!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64873d23-de4d-4fc1-90e2-51bab9e21a6a_1179x754.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 aria-hidden="true" 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><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">Alabama elevation (left) vs Google Embedding Fields Principal Component 3</figcaption></figure></div><p>While this doesn&#8217;t appear to be a perfect match, and it&#8217;s highly likely that vegetation characteristics would change with elevation, one has to wonder whether they change sufficiently across this territory to warrant this much variance in the embeddings. <strong>Should forest in the south of Alabama really be almost semantically closer to wetlands, than forest in the north</strong>? </p><h3>Conclusion</h3><p>I&#8217;d like to commend the Deepmind + Google team for releasing these. These are the first 10m/pixel level embeddings that have been made available to the public, and they are very unique! I&#8217;ve had quite a lot of luck searching for something in them (suburbs, golf courses, different types of crops) so they clearly contain some useful information. However I think this sort of unexplained large scale variation across the embeddings for things that humans find semantically similar is ultimately an undesirable property. <strong>If I wanted to filter my searches by elevation, that would be a very simple thing to do using a DEM!</strong> However if that signal is explicitly incorporated in my embeddings, there is no way for me to get rid of it. <strong>Embeddings for retrieval should compress what is </strong><em><strong>hard</strong></em><strong> to join later (texture, specific land-use, shape), not what is trivial (elevation, lat/long, other raster datasets).</strong></p><p>As we move towards more people releasing embedding datasets, we need to make sure that the public has the necessary tools and intuition to make use of them. It is also a good thing to do to think about what specific properties you might want your embeddings to have, and adjust model training to reflect that.</p><p>Finally: we&#8217;ll be releasing tools so that people can do investigations like these soon, so stay tuned!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://christopherren.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/christopherren.substack.com/subscribe"><span>Subscribe now</span></a></p><h3>Acknowledgements</h3><p>Thank you to <a href="https://www.linkedin.com/in/zoe-statman-weil-a1039633/">Zoe Statman-Weil</a>, <a href="https://www.linkedin.com/in/isaaccorley/">Isaac Corley</a> and <a href="https://www.linkedin.com/in/noahgolmant/">Noah Golmant</a> for listening to my embedding rants, and for helping me develop these ideas!</p><p><br><br></p>]]></content:encoded></item><item><title><![CDATA[Catastrophes are Commodities]]></title><description><![CDATA[and it makes me uncomfortable.]]></description><link>https://christopherren.substack.com/p/catastrophes-are-commodities</link><guid isPermaLink="false">https://christopherren.substack.com/p/catastrophes-are-commodities</guid><dc:creator><![CDATA[Christopher Ren]]></dc:creator><pubDate>Sat, 12 Jul 2025 08:50:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!VyzT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988529d-1cb2-4b6c-9438-e110e8f49d54_711x722.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><h3>Some Ways to Help:</h3><p>Please consider donating to help Central Texas flood recovery:</p><ol><li><p><a href="http://Kerr County Flood Relief Fund">Kerr County Flood Relief Fund</a></p></li><li><p><a href="https://texsar.networkforgood.com/projects/254910-responding-to-the-july-4-texas-floods">TEXSAR</a></p></li><li><p><a href="https://account.venmo.com/u/KerrvillePetsAlive">Kerrville Pets Alive</a></p></li><li><p><a href="https://www.zeffy.com/en-US/donation-form/donate-to-change-lives-1586">Salvation Army Kerrville</a></p></li><li><p><a href="https://mercychefs.com/">Mercy Chefs</a></p><div><hr></div><p></p></li></ol><p>In geospatial, it&#8217;s rarely good news. Weather data and satellite imagery never accompany &#8220;senior dog who was in the shelter for 2 years adopted&#8221; articles. Instead, earth observation images are often used to observe geopolitical and natural upheaval and the accompanying death and devastation. This is an important function: it helps bring awareness to just how devastating <a href="https://x.com/coreymaps/status/1798006637703385253">conflict</a> and <a href="https://www.theguardian.com/us-news/2025/jan/09/la-fires-before-and-after-photos-california-wildfires-satellite-pictures-images">natural disasters</a> can be. This function comes with an implicit responsibility: when your pixels represent real lives, empathy and accountability must guide your messaging and actions.</p><p>I&#8217;ve noticed a concerning trend in the industry recently where sharing information and raising awareness quickly morphs into engagement farming and marketing. If you&#8217;re in the business of information the line is unfortunately blurred; but when a tragedy such as the Kerr County/Texas floods happens there seems to be pervasive eagerness to point at it and exclaim &#8220;Ha! Our data showed this would happen, and it did!&#8221;, <strong>forgetting in the process that their pixels are people. </strong></p><p>Companies instinctively soften this opportunistic marketing with with the equivalent of corporate &#8220;thoughts and prayers&#8221;: this can take the form of a call to action (&#8220;we must do better&#8221;), or an expression of sadness (&#8220;it is with a heavy heart&#8230;"). These thoughts and prayers appear to absolve the company of potential misgivings concerning their apparent enthusiasm. To illustrate my point, here are some examples of what I perceive as disaster opportunism, recently posted on LinkedIn</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!EGvo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e72ded-6844-4617-963a-e0c809a17aac_681x788.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!EGvo!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e72ded-6844-4617-963a-e0c809a17aac_681x788.png 424w, /__u/substackcdn.com/image/fetch/$s_!EGvo!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e72ded-6844-4617-963a-e0c809a17aac_681x788.png 848w, /__u/substackcdn.com/image/fetch/$s_!EGvo!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e72ded-6844-4617-963a-e0c809a17aac_681x788.png 1272w, /__u/substackcdn.com/image/fetch/$s_!EGvo!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e72ded-6844-4617-963a-e0c809a17aac_681x788.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!EGvo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e72ded-6844-4617-963a-e0c809a17aac_681x788.png" width="681" height="788" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/29e72ded-6844-4617-963a-e0c809a17aac_681x788.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:788,&quot;width&quot;:681,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:493094,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/167940571?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e72ded-6844-4617-963a-e0c809a17aac_681x788.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!EGvo!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e72ded-6844-4617-963a-e0c809a17aac_681x788.png 424w, /__u/substackcdn.com/image/fetch/$s_!EGvo!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e72ded-6844-4617-963a-e0c809a17aac_681x788.png 848w, /__u/substackcdn.com/image/fetch/$s_!EGvo!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e72ded-6844-4617-963a-e0c809a17aac_681x788.png 1272w, /__u/substackcdn.com/image/fetch/$s_!EGvo!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e72ded-6844-4617-963a-e0c809a17aac_681x788.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 aria-hidden="true" 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><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 class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!VyzT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988529d-1cb2-4b6c-9438-e110e8f49d54_711x722.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!VyzT!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988529d-1cb2-4b6c-9438-e110e8f49d54_711x722.png 424w, /__u/substackcdn.com/image/fetch/$s_!VyzT!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988529d-1cb2-4b6c-9438-e110e8f49d54_711x722.png 848w, /__u/substackcdn.com/image/fetch/$s_!VyzT!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988529d-1cb2-4b6c-9438-e110e8f49d54_711x722.png 1272w, /__u/substackcdn.com/image/fetch/$s_!VyzT!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988529d-1cb2-4b6c-9438-e110e8f49d54_711x722.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!VyzT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988529d-1cb2-4b6c-9438-e110e8f49d54_711x722.png" width="711" height="722" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a988529d-1cb2-4b6c-9438-e110e8f49d54_711x722.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:722,&quot;width&quot;:711,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:247172,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/167940571?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988529d-1cb2-4b6c-9438-e110e8f49d54_711x722.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!VyzT!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988529d-1cb2-4b6c-9438-e110e8f49d54_711x722.png 424w, /__u/substackcdn.com/image/fetch/$s_!VyzT!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988529d-1cb2-4b6c-9438-e110e8f49d54_711x722.png 848w, /__u/substackcdn.com/image/fetch/$s_!VyzT!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988529d-1cb2-4b6c-9438-e110e8f49d54_711x722.png 1272w, /__u/substackcdn.com/image/fetch/$s_!VyzT!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988529d-1cb2-4b6c-9438-e110e8f49d54_711x722.png 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 aria-hidden="true" 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><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 class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!HOmj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F330425d2-fb4a-41d1-ab93-9c0f5778d59c_715x739.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!HOmj!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F330425d2-fb4a-41d1-ab93-9c0f5778d59c_715x739.png 424w, /__u/substackcdn.com/image/fetch/$s_!HOmj!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F330425d2-fb4a-41d1-ab93-9c0f5778d59c_715x739.png 848w, /__u/substackcdn.com/image/fetch/$s_!HOmj!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F330425d2-fb4a-41d1-ab93-9c0f5778d59c_715x739.png 1272w, /__u/substackcdn.com/image/fetch/$s_!HOmj!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F330425d2-fb4a-41d1-ab93-9c0f5778d59c_715x739.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!HOmj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F330425d2-fb4a-41d1-ab93-9c0f5778d59c_715x739.png" width="715" height="739" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/330425d2-fb4a-41d1-ab93-9c0f5778d59c_715x739.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:739,&quot;width&quot;:715,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:717681,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/167940571?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F330425d2-fb4a-41d1-ab93-9c0f5778d59c_715x739.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!HOmj!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F330425d2-fb4a-41d1-ab93-9c0f5778d59c_715x739.png 424w, /__u/substackcdn.com/image/fetch/$s_!HOmj!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F330425d2-fb4a-41d1-ab93-9c0f5778d59c_715x739.png 848w, /__u/substackcdn.com/image/fetch/$s_!HOmj!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F330425d2-fb4a-41d1-ab93-9c0f5778d59c_715x739.png 1272w, /__u/substackcdn.com/image/fetch/$s_!HOmj!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F330425d2-fb4a-41d1-ab93-9c0f5778d59c_715x739.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 aria-hidden="true" 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><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>All of these examples are informative: they show proprietary data in order to help highlight the effects of the floods. Yet I still feel uneasy with these posts: their purpose is <strong>clearly to highlight the utility of proprietary data/analysis, by leveraging the occurrence of the Texas floods</strong>. One has to wonder whether these moments incentivize profit-driven behavior at the expense of empathy.</p><p>Rules concerning corporate messaging are complicated in the geospatial world. When your pixels are people, I believe there is an additional responsibility to tread delicately. If companies would like to do better, I&#8217;ve compiled a list of things they can do to offset the surely unintentional eagerness of their marketing and genuinely help:</p><ol><li><p>Provide your data for free to journalists, and let them do the talking.</p></li><li><p>At the top of your post, include links so your readers can donate/help to funds specifically set up to address the catastrophe.</p></li><li><p>Provide your data for free to emergency response teams.</p></li><li><p>Make your data surrounding this particular catastrophe open, so that the wider public can use it and inspect it.</p></li><li><p>Provide concrete ways we can &#8216;do better&#8217;: for example if you have flood risk data, overlay it with <a href="https://docs.overturemaps.org/guides/buildings/#14/32.58453/-117.05154/0/60">overture maps data</a> and identify the highest building density areas that experience risk similar to Camp Mystic. Publish this information. (This is a made up example, I&#8217;m sure you can think of better things to do!).</p></li></ol><p>It&#8217;s not all bad though: Floodbase, for example, shared their data with journalists at The New York Times without overtly marketing their services during the tragedy:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!XJc9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd30c5187-a2be-4f65-9638-6debd28d5a7f_744x578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!XJc9!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd30c5187-a2be-4f65-9638-6debd28d5a7f_744x578.png 424w, /__u/substackcdn.com/image/fetch/$s_!XJc9!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd30c5187-a2be-4f65-9638-6debd28d5a7f_744x578.png 848w, /__u/substackcdn.com/image/fetch/$s_!XJc9!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd30c5187-a2be-4f65-9638-6debd28d5a7f_744x578.png 1272w, /__u/substackcdn.com/image/fetch/$s_!XJc9!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd30c5187-a2be-4f65-9638-6debd28d5a7f_744x578.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!XJc9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd30c5187-a2be-4f65-9638-6debd28d5a7f_744x578.png" width="744" height="578" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d30c5187-a2be-4f65-9638-6debd28d5a7f_744x578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:578,&quot;width&quot;:744,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:128531,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/167940571?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd30c5187-a2be-4f65-9638-6debd28d5a7f_744x578.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!XJc9!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd30c5187-a2be-4f65-9638-6debd28d5a7f_744x578.png 424w, /__u/substackcdn.com/image/fetch/$s_!XJc9!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd30c5187-a2be-4f65-9638-6debd28d5a7f_744x578.png 848w, /__u/substackcdn.com/image/fetch/$s_!XJc9!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd30c5187-a2be-4f65-9638-6debd28d5a7f_744x578.png 1272w, /__u/substackcdn.com/image/fetch/$s_!XJc9!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd30c5187-a2be-4f65-9638-6debd28d5a7f_744x578.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 aria-hidden="true" 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><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 better way to help.</figcaption></figure></div><p>Is this entirely altruistic? No, but at least they provided the data for free to journalists and helped provide useable, informative maps of the event to the public. I think this is a much more palatable form of marketing when it comes to catastrophes. I should also note that First Street did provide their <a href="https://www.linkedin.com/posts/first-street_in-the-wake-of-the-texas-flood-disasters-activity-7349062652104503298-8F3N?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAcf-00ByCyr-aE1iW-tnBWOR9lBLztXmi8">flood zone maps to NPR</a>, and it appears <a href="https://www.linkedin.com/posts/iceye_texasfloods-texasflooding-tschantal-activity-7348416782367350784-yMXI?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAcf-00ByCyr-aE1iW-tnBWOR9lBLztXmi8">ICEEYE&#8217;s data supported disaster response coordination</a>. While these are commendable acts, the blending of genuinely helpful actions with overt marketing still feels somewhat tone-deaf and unsettling.</p><p>We can&#8217;t take empathy and good vibes to the grocery store: companies have to sell their product to survive, and sometimes that product is forecasts and observations of death and destruction. Profitability is necessary, but I do hope companies in this space can strike a more careful balance between their business interests and genuine empathy toward those affected.</p><p>This criticism isn't limited to corporations: I&#8217;m guilty of the same pursuit of visibility. When these types of tragedy strike my immediate reaction is some variant of &#8220;I should write about this on my blog&#8221;, and my motivations are probably more self-serving than altruistic. Earlier this year, following the Palisades fires, I wrote a post demonstrating drought calculations using Google Earth Engine. While I hope this contributed valuable tools and insights, reflecting honestly I recognize there was also a rather large element of self-promotion. I also of course note the irony of writing a &#8216;meta-post&#8217; about this very same subject. </p><p>When our pixels are people, it's vital that we continually ask ourselves: Are we genuinely adding value to important discussions, or merely capitalizing on tragedy for visibility? </p><p></p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[The Economics of Earth Engine]]></title><description><![CDATA[How Much Does it Cost to Make a Map?]]></description><link>https://christopherren.substack.com/p/the-economics-of-earth-engine</link><guid isPermaLink="false">https://christopherren.substack.com/p/the-economics-of-earth-engine</guid><dc:creator><![CDATA[Christopher Ren]]></dc:creator><pubDate>Thu, 03 Jul 2025 05:59:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!eB_t!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa421347a-0acd-438e-932d-bca702f81091_2206x1552.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><h3>Platform Hunger Games</h3><p>Picture this: you&#8217;re a small, scrappy geospatial start up with a dream. Maybe you want to map floods, or maybe quantify soil carbon. Maybe you want to count cars in a parking lot, who knows! Don&#8217;t let your investor&#8217;s dreams be dreams. Where are you going to get imagery, merge it with compute in order to deliver beautiful models and maps? </p><p>Five years ago, the landscape certainly looked different: at the time, <a href="https://philosophygeek.medium.com/meditations-a-requiem-for-descartes-labs-8b913b5e898">Descartes Labs</a><a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> (now EarthDaily) was certainly still a strong option, and possibly the only viable one at the time. <a href="https://planetarycomputer.microsoft.com/">Planetary computer</a> has just launched. Google Earth Engine (GEE), while it had launched much earlier in 2010, still did not offer a commercial license.</p><p>These days: while Microsoft has launched Planetary Computer Pro (pricing tbd), GEE is probably the most established commercial geospatial platform as it stands<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>.  There is of course a final option: roll your own! Yes, writing GDAL is scary, wrangling AWS Batch/Lambda is scary, scaling compute and storage access is scary, and geospatial data engineers are expensive! However you may be surprised to find that under some conditions, this might be the most economical solution.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://christopherren.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/christopherren.substack.com/subscribe"><span>Subscribe now</span></a></p><h3>Earth Engine Economics</h3><p><a href="https://cloud.google.com/earth-engine/pricing#enterprise">GEE pricing is quite interesting</a>. We can see below that the &#8216;Professional&#8217; plan costs a flat fee of $2000 per month.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!eB_t!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa421347a-0acd-438e-932d-bca702f81091_2206x1552.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!eB_t!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa421347a-0acd-438e-932d-bca702f81091_2206x1552.png 424w, /__u/substackcdn.com/image/fetch/$s_!eB_t!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa421347a-0acd-438e-932d-bca702f81091_2206x1552.png 848w, /__u/substackcdn.com/image/fetch/$s_!eB_t!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa421347a-0acd-438e-932d-bca702f81091_2206x1552.png 1272w, /__u/substackcdn.com/image/fetch/$s_!eB_t!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa421347a-0acd-438e-932d-bca702f81091_2206x1552.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!eB_t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa421347a-0acd-438e-932d-bca702f81091_2206x1552.png" width="1456" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a421347a-0acd-438e-932d-bca702f81091_2206x1552.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:305687,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/166946275?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa421347a-0acd-438e-932d-bca702f81091_2206x1552.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!eB_t!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa421347a-0acd-438e-932d-bca702f81091_2206x1552.png 424w, /__u/substackcdn.com/image/fetch/$s_!eB_t!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa421347a-0acd-438e-932d-bca702f81091_2206x1552.png 848w, /__u/substackcdn.com/image/fetch/$s_!eB_t!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa421347a-0acd-438e-932d-bca702f81091_2206x1552.png 1272w, /__u/substackcdn.com/image/fetch/$s_!eB_t!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa421347a-0acd-438e-932d-bca702f81091_2206x1552.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 aria-hidden="true" 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><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">GEE monthly fees + credits.</figcaption></figure></div><p>But what on earth are EECU-hours?? From the page itself:</p><ul><li><p>An Earth Engine Compute Unit (EECU) is a mechanism for representing an amount of instantaneous processing power. Earth Engine tracks the total computational footprint of tasks as a function of their EECU usage through time (EECU-seconds, EECU-hours, etc.). Because Google has many different types of processor cores, architectures, etc., EECUs are a useful abstraction for talking about computational power.</p></li></ul><p>Got it, so EECU-seconds ~ cloud compute.</p><p>Usage costs themselves are displayed a little further down the page, so reading between the lines we can see that on the Professional plan $2000 <strong>you get $200 of Batch credits, and $40 of Online credits</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!-c-I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2578ebb-8746-4e2a-89ee-65be94184751_2188x1268.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!-c-I!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2578ebb-8746-4e2a-89ee-65be94184751_2188x1268.png 424w, /__u/substackcdn.com/image/fetch/$s_!-c-I!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2578ebb-8746-4e2a-89ee-65be94184751_2188x1268.png 848w, /__u/substackcdn.com/image/fetch/$s_!-c-I!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2578ebb-8746-4e2a-89ee-65be94184751_2188x1268.png 1272w, /__u/substackcdn.com/image/fetch/$s_!-c-I!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2578ebb-8746-4e2a-89ee-65be94184751_2188x1268.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!-c-I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2578ebb-8746-4e2a-89ee-65be94184751_2188x1268.png" width="1456" height="844" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f2578ebb-8746-4e2a-89ee-65be94184751_2188x1268.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:844,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:206373,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/166946275?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2578ebb-8746-4e2a-89ee-65be94184751_2188x1268.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!-c-I!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2578ebb-8746-4e2a-89ee-65be94184751_2188x1268.png 424w, /__u/substackcdn.com/image/fetch/$s_!-c-I!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2578ebb-8746-4e2a-89ee-65be94184751_2188x1268.png 848w, /__u/substackcdn.com/image/fetch/$s_!-c-I!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2578ebb-8746-4e2a-89ee-65be94184751_2188x1268.png 1272w, /__u/substackcdn.com/image/fetch/$s_!-c-I!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2578ebb-8746-4e2a-89ee-65be94184751_2188x1268.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 aria-hidden="true" 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><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">GEE usage fees.</figcaption></figure></div><p>There is tiered pricing to take into account too: as you use more, the cost per EECUs drops:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!7As-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19da6534-6a2e-4359-9420-726df505dacc_2148x986.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!7As-!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19da6534-6a2e-4359-9420-726df505dacc_2148x986.png 424w, /__u/substackcdn.com/image/fetch/$s_!7As-!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19da6534-6a2e-4359-9420-726df505dacc_2148x986.png 848w, /__u/substackcdn.com/image/fetch/$s_!7As-!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19da6534-6a2e-4359-9420-726df505dacc_2148x986.png 1272w, /__u/substackcdn.com/image/fetch/$s_!7As-!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19da6534-6a2e-4359-9420-726df505dacc_2148x986.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!7As-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19da6534-6a2e-4359-9420-726df505dacc_2148x986.png" width="1456" height="668" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/19da6534-6a2e-4359-9420-726df505dacc_2148x986.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:668,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:180274,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/166946275?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19da6534-6a2e-4359-9420-726df505dacc_2148x986.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!7As-!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19da6534-6a2e-4359-9420-726df505dacc_2148x986.png 424w, /__u/substackcdn.com/image/fetch/$s_!7As-!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19da6534-6a2e-4359-9420-726df505dacc_2148x986.png 848w, /__u/substackcdn.com/image/fetch/$s_!7As-!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19da6534-6a2e-4359-9420-726df505dacc_2148x986.png 1272w, /__u/substackcdn.com/image/fetch/$s_!7As-!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19da6534-6a2e-4359-9420-726df505dacc_2148x986.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 aria-hidden="true" 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><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">Tiered pricing for GEE based on usage.</figcaption></figure></div><h3>Earth Engine Compute Units</h3><p>The esoteric nature of EECUs make it very difficult for companies to estimate their potential usage costs. The GEE team itself appears unsure about <a href="https://github.com/google/Xee/issues/104#issuecomment-1836723072">exactly how to do this</a>, at least in the general case. In the following examples, I&#8217;m going to run some experiments myself, but it should be noted that even for the same workload, <strong>EECUs costs can be highly variable due to caching and changes to the GEE backend</strong>. Nonetheless, if you look at Len&#8217;s comment <a href="https://github.com/google/Xee/issues/104#issue-2004454100">here</a>, it provides a workflow by which to estimate costs: run some sample workflows on a subset of tiles/tasks, and extrapolate.</p><p>In this particular case let&#8217;s look at what is likely a common use case: access to imagery for model inference. Unfortunately this workflow still can not be performed fully in GEE. Yes there is a <a href="https://developers.google.com/earth-engine/apidocs/ee-model-fromvertexai">ee.Model.fromVertexAi</a>, but using it is quite challenging, particularly due to the limit on <code>maxPayloadBytes</code>. </p><p>Typically in this particular workflow users will define imagery exports over areas, these will result in GeoTIFFs stored in a Google Cloud Storage (GCS) bucket, which will then be pulled for subsequent inference, rather than wrestling with the still experimental <code>ee.Model.fromVertexAi.</code></p><p>I happen to be running a similar workflow for another project so here is what our export looks like:</p><ol><li><p>Cloud mask using <a href="https://developers.google.com/earth-engine/datasets/catalog/GOOGLE_CLOUD_SCORE_PLUS_V1_S2_HARMONIZED">cloudscore+</a>, and reduce to the median over 2024-01-01 - 2024-12-31.</p></li><li><p>Separate out each Sentinel-2 band, and export in its native resolution as <code>uint16</code></p></li><li><p>Export by MGRS tile, over the island of Java in Indonesia.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a></p></li><li><p>Tally up the EECUs cost per MGRS tile. Remember an EECU-hour is $0.4. In this particular case the total cost works out to around $258.</p></li></ol><p>I&#8217;ve plotted the results both in terms of cost per MGRS tile and cost per km^2:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!UbuY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2854f603-7c4f-4061-a81e-77b85a8c54f1_4500x3600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!UbuY!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2854f603-7c4f-4061-a81e-77b85a8c54f1_4500x3600.png 424w, /__u/substackcdn.com/image/fetch/$s_!UbuY!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2854f603-7c4f-4061-a81e-77b85a8c54f1_4500x3600.png 848w, /__u/substackcdn.com/image/fetch/$s_!UbuY!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2854f603-7c4f-4061-a81e-77b85a8c54f1_4500x3600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!UbuY!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2854f603-7c4f-4061-a81e-77b85a8c54f1_4500x3600.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!UbuY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2854f603-7c4f-4061-a81e-77b85a8c54f1_4500x3600.png" width="1456" height="1165" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2854f603-7c4f-4061-a81e-77b85a8c54f1_4500x3600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1165,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:845389,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/166946275?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2854f603-7c4f-4061-a81e-77b85a8c54f1_4500x3600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!UbuY!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2854f603-7c4f-4061-a81e-77b85a8c54f1_4500x3600.png 424w, /__u/substackcdn.com/image/fetch/$s_!UbuY!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2854f603-7c4f-4061-a81e-77b85a8c54f1_4500x3600.png 848w, /__u/substackcdn.com/image/fetch/$s_!UbuY!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2854f603-7c4f-4061-a81e-77b85a8c54f1_4500x3600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!UbuY!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2854f603-7c4f-4061-a81e-77b85a8c54f1_4500x3600.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 aria-hidden="true" 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><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">The cost of Sentinel-2 exports. In the top plot we simply show the cost per MGRS tile, in the bottom we scale the cost per tile by the tile size, and display the cost per km^2</figcaption></figure></div><p>Since Java represents about 0.1% of the worlds land-mass, excluding the Arctic and Antarctic, and I can&#8217;t really find this information anywhere else, I&#8217;m going to extrapolate the cost of a GEE-generated global annual composite. Taking into account the tiered pricing this results in a cost of around $160000<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-4" href="#footnote-4" target="_self">4</a>.</p><p>I&#8217;m sure that the folks at Google could easily optimize this export process to be at least four times as efficient, <strong>so let&#8217;s set a range for a global annual composite between $40000 - $160000. </strong>This is a lot of money, and remember, we have not paid for compute/inference yet!</p><h3>A Rock and a Hard Place</h3><p>So what are your alternatives? In the case of Sentinel-2, could you simply access the open data yourself. Of course this means paying data engineers to build and maintain your data pipelines. I happen to have the privilege of knowing several people who have built or maintained custom global geospatial inference pipelines. Based on the aggregate of the estimates given to me on total costs to run a model on every Sentinel-2 pixel in the world for a year, I&#8217;d estimate this value to lie in the range of <strong>$15000 - $35000</strong><a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-5" href="#footnote-5" target="_self">5</a>, including compute/inference time. </p><p>So let&#8217;s make some simple assumptions, and see how this plays out:</p><ul><li><p>It takes a Senior Data Engineer about 6 months full time to make a full imagery pipeline + inference pipeline.</p></li><li><p>It takes the same engineer about 3 months to set up an equivalent pipeline using GEE as the image provider.</p></li><li><p>Once set up, the GEE pipeline takes 0.1 FTE of the engineers time to maintain, while the custom pipeline takes 0.2 FTE.</p></li><li><p>Senior Geospatial Data Engineers are paid $160000 annually.</p></li><li><p>On the GEE professional plan, the company pays a membership of $2000 a month. The company pays the full membership each year (i.e no stop-starting).</p></li><li><p>The company runs global Sentinel-2 inference once a year. </p></li><li><p>Global inference costs around $40000 - $160000 on GEE, and $15000 - $35000 on the custom pipeline in terms of compute + data transfer/storage.</p></li></ul><p>Running this simulation gives us the following plot:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!H3-v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63256b40-ad42-446b-9cb0-1e90f0ceea80_3000x3000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!H3-v!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63256b40-ad42-446b-9cb0-1e90f0ceea80_3000x3000.png 424w, /__u/substackcdn.com/image/fetch/$s_!H3-v!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63256b40-ad42-446b-9cb0-1e90f0ceea80_3000x3000.png 848w, /__u/substackcdn.com/image/fetch/$s_!H3-v!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63256b40-ad42-446b-9cb0-1e90f0ceea80_3000x3000.png 1272w, /__u/substackcdn.com/image/fetch/$s_!H3-v!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63256b40-ad42-446b-9cb0-1e90f0ceea80_3000x3000.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!H3-v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63256b40-ad42-446b-9cb0-1e90f0ceea80_3000x3000.png" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/63256b40-ad42-446b-9cb0-1e90f0ceea80_3000x3000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:479952,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/166946275?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63256b40-ad42-446b-9cb0-1e90f0ceea80_3000x3000.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!H3-v!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63256b40-ad42-446b-9cb0-1e90f0ceea80_3000x3000.png 424w, /__u/substackcdn.com/image/fetch/$s_!H3-v!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63256b40-ad42-446b-9cb0-1e90f0ceea80_3000x3000.png 848w, /__u/substackcdn.com/image/fetch/$s_!H3-v!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63256b40-ad42-446b-9cb0-1e90f0ceea80_3000x3000.png 1272w, /__u/substackcdn.com/image/fetch/$s_!H3-v!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63256b40-ad42-446b-9cb0-1e90f0ceea80_3000x3000.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 aria-hidden="true" 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><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">It costs a lot of money to make a map.</figcaption></figure></div><p>Its interesting to note that except that even with these fairly generous assumptions: that my extrapolation is off by a factor of 4, that the custom pipeline takes double the amount of time to set up and maintain, the cost of running this process of GEE very quickly outstrips the cost of the custom pipeline. <strong>This tells us that GEE is fundamentally mis-priced</strong>: since it is essentially a premium on compute + storage that one must pay every time we wish to compute anything, as opposed to the cost of the custom pipeline where the price to set the pipeline up is amortized over time.</p><h3>The Math ain&#8217;t Mathin&#8217;</h3><p>So how should GEE be priced? Well for one, Google could stop charging both a membership AND for usage. How do our plots look in the case where Google drops the monthly membership?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!BwiJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c60505-c36e-4225-9d96-4c3a88a0a9d7_3000x3000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!BwiJ!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c60505-c36e-4225-9d96-4c3a88a0a9d7_3000x3000.png 424w, /__u/substackcdn.com/image/fetch/$s_!BwiJ!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c60505-c36e-4225-9d96-4c3a88a0a9d7_3000x3000.png 848w, /__u/substackcdn.com/image/fetch/$s_!BwiJ!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c60505-c36e-4225-9d96-4c3a88a0a9d7_3000x3000.png 1272w, /__u/substackcdn.com/image/fetch/$s_!BwiJ!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c60505-c36e-4225-9d96-4c3a88a0a9d7_3000x3000.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!BwiJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c60505-c36e-4225-9d96-4c3a88a0a9d7_3000x3000.png" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/80c60505-c36e-4225-9d96-4c3a88a0a9d7_3000x3000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:481232,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/166946275?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c60505-c36e-4225-9d96-4c3a88a0a9d7_3000x3000.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!BwiJ!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c60505-c36e-4225-9d96-4c3a88a0a9d7_3000x3000.png 424w, /__u/substackcdn.com/image/fetch/$s_!BwiJ!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c60505-c36e-4225-9d96-4c3a88a0a9d7_3000x3000.png 848w, /__u/substackcdn.com/image/fetch/$s_!BwiJ!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c60505-c36e-4225-9d96-4c3a88a0a9d7_3000x3000.png 1272w, /__u/substackcdn.com/image/fetch/$s_!BwiJ!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c60505-c36e-4225-9d96-4c3a88a0a9d7_3000x3000.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 aria-hidden="true" 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><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">No membership cost comparison.</figcaption></figure></div><p>Much better, as we&#8217;re reducing the cost per year by $24000. Although the custom pipeline still appears to be cheaper in a lot of cases over time. Let&#8217;s pull another lever: assume Google decides to drop usage based costs by 50%, what do our lines look like in that case?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!oZOy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd54d58fb-bf01-4026-bfa2-2e58daadad07_3000x3000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!oZOy!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd54d58fb-bf01-4026-bfa2-2e58daadad07_3000x3000.png 424w, /__u/substackcdn.com/image/fetch/$s_!oZOy!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd54d58fb-bf01-4026-bfa2-2e58daadad07_3000x3000.png 848w, /__u/substackcdn.com/image/fetch/$s_!oZOy!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd54d58fb-bf01-4026-bfa2-2e58daadad07_3000x3000.png 1272w, /__u/substackcdn.com/image/fetch/$s_!oZOy!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd54d58fb-bf01-4026-bfa2-2e58daadad07_3000x3000.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!oZOy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd54d58fb-bf01-4026-bfa2-2e58daadad07_3000x3000.png" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d54d58fb-bf01-4026-bfa2-2e58daadad07_3000x3000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:531568,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/166946275?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd54d58fb-bf01-4026-bfa2-2e58daadad07_3000x3000.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!oZOy!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd54d58fb-bf01-4026-bfa2-2e58daadad07_3000x3000.png 424w, /__u/substackcdn.com/image/fetch/$s_!oZOy!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd54d58fb-bf01-4026-bfa2-2e58daadad07_3000x3000.png 848w, /__u/substackcdn.com/image/fetch/$s_!oZOy!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd54d58fb-bf01-4026-bfa2-2e58daadad07_3000x3000.png 1272w, /__u/substackcdn.com/image/fetch/$s_!oZOy!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd54d58fb-bf01-4026-bfa2-2e58daadad07_3000x3000.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 aria-hidden="true" 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><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">Fire sale: 50% of on all EECU-s</figcaption></figure></div><p>While there certainly appear to be benefits in the first couple of years, GEE costs eventually eat these benefits up over the long term. Of course at this point we&#8217;re probably splitting hairs, and its unclear if geospatial companies plan on 5-year timescales anyway.</p><h3>Conclusion</h3><p>GEE is expensive, if you use it as an imagery pipeline. Of course the magic of GEE is that you can do so, so much with it. Want to train a pixel-wise harmonic regression and then train a random forest on top of your coefficients? <a href="https://ojs.aaai.org/index.php/AAAI/article/view/30225">You can do that</a>. Want to do massive zonal stats computations? You can do that. Want to run <a href="https://emapr.github.io/LT-GEE/landtrendr.html">Landtrendr</a>, or <a href="https://gee-ccdc-tools.readthedocs.io/en/latest/">CCDC</a>, with a few lines of code? You can do that. <a href="https://dynamicworld.app/">Dynamic world</a> runs and is available on GEE, as is <a href="https://developers.google.com/earth-engine/datasets/catalog/GOOGLE_CLOUD_SCORE_PLUS_V1_S2_HARMONIZED">cloudscore+</a> and countless other datasets. There is additionally also the community-maintained <a href="https://gee-community-catalog.org/">awesome-gee-community-catalog</a> which contains an absolute treasure trove of datasets.</p><p>Every single dataset on GEE can be seamlessly overlaid/intersected with every other. This means you can easily ask questions like: &#8220;out of all the pixels in dynamic world which were forest in 2024, and are crop in 2025, which ones had the highest peak MODIS NDVI in 2025&#8221; in a couple of lines of code, and just let it run. No need to handle resampling, overlaying etc&#8230;</p><p>There is so much value in being able to perform these operations, and GEE makes it so easy. However, if we want geospatial companies to succeed on GEE, which I think Google does as this means more money in the long run: the current cost appears to be high. </p><p><strong>My unsolicited advice to the GEE/Google team: remove the monthly membership costs, and reduce usage based costs by 25-50%, and you will be a much more compelling platform for companies.</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://christopherren.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/christopherren.substack.com/subscribe"><span>Subscribe now</span></a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>The DL platform was my first introduction to the magic of geospatial data at scale. I&#8217;m truly grateful to <a href="https://www.linkedin.com/in/caitlin-kontgis/">Caitlin Kontgis</a> who ran the science program at the time for giving me free, unfettered access to the platform. Fun fact: for a long time I apparently led the internal DL leaderboards on consumption for non-paying users.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>This is pure speculation on my part. Feel free to correct me if you have evidence to the contrary!</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>Yes this is probably inefficient from a pure export perspective, we could at least do a full UTM zone as some of the MGRS tiles are smaller, but I find MGRS tiles are a handy unit of work for these types of workflows.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-4" href="#footnote-anchor-4" class="footnote-number" contenteditable="false" target="_self">4</a><div class="footnote-content"><p>Extrapolating the Java test run (2.33 million EECU-s &#8776; 646 EECU-hr) linearly to the entire ice-free land surface of Earth (~128.8 million km&#178;) yields **&#8776; 627 715 EECU-hr**.  </p><p>Applying the current tiered rates&#8212;$0.40 for the first 10 k EECU-hr, $0.28 for the next 490 k EECU-hr, and $0.16 thereafter&#8212;produces a total cost of **&#8776; US $161 600** (Tier 1 &#8776; $4 000, Tier 2 &#8776; $137 200, Tier 3 &#8776; $20 400).</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-5" href="#footnote-anchor-5" class="footnote-number" contenteditable="false" target="_self">5</a><div class="footnote-content"><p>If you think this number is lower, I&#8217;d very interested to hear from you! If you think this number is higher, then you should probably have a look at how to optimize your pipelines :).</p></div></div>]]></content:encoded></item><item><title><![CDATA[The Model is Not the Map]]></title><description><![CDATA[Please Look at the Data]]></description><link>https://christopherren.substack.com/p/the-model-is-not-the-map</link><guid isPermaLink="false">https://christopherren.substack.com/p/the-model-is-not-the-map</guid><dc:creator><![CDATA[Christopher Ren]]></dc:creator><pubDate>Sat, 21 Jun 2025 23:46:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!54CD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabcd9fd6-3d4d-4751-bf45-980718473854_9000x3900.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>TLDR;</h3><ul><li><p>Make maps, not <s>war</s> (just) benchmarks</p></li><li><p>I made the Santa Fe Quartet as a geospatial equivalent to Anscombe&#8217;s quartet</p></li><li><p>If you are interested in building this kind of map-benchmark let&#8217;s chat!</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://christopherren.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/christopherren.substack.com/subscribe"><span>Subscribe now</span></a></p><h3>Benchmarks are not enough</h3><p>In a recent <a href="/__u/christopherren.substack.com/p/geospatial-foundational-disappointments?r=22ebo5">post</a> on on Geospatial Foundation Models, I used publicly available benchmarking data to show that they did not appear to be scaling well. This prompted some <a href="https://www.linkedin.com/feed/update/urn:li:ugcPost:7330823159681560577?commentUrn=urn%3Ali%3Acomment%3A%28ugcPost%3A7330823159681560577%2C7334675099326763009%29&amp;dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287334675099326763009%2Curn%3Ali%3AugcPost%3A7330823159681560577%29">healthy discussion</a>  around how we should actually measure the utility of some of these models.</p><p>I think a fairly obvious answer is: along with model + benchmark releases <strong>people should also deploy their model over an actual area and produce a map. </strong>This would enable interested users to immediately gauge the quality and the behavior of the model in the wild (aka '&#8220;model vibes&#8221;). These is just something that looking at the data can tell you that metrics can&#8217;t. An additional benefit is: researchers get to feel the pain of practitioners and are more likely to develop models that produce good-looking maps in an operational setting, i.e more useful models. A final hope is that: the community converges towards an easy way to: </p><ul><li><p>take a model</p></li><li><p>pull input imagery tiles</p></li><li><p>perform pre-processing</p></li><li><p>perform inference</p></li><li><p>stitch the model inference/predictions back together into a map</p></li></ul><p>All preferably for low cost, and fast :).</p><p>I should mention that <a href="https://nk.users.earthengine.app/view/cocoa-map">many</a> <a href="https://nlang.users.earthengine.app/view/global-canopy-height-2020">researchers</a> <a href="https://meta-forest-monitoring-okw37.projects.earthengine.app/view/canopyheight">already</a> <a href="https://code.earthengine.google.com/?scriptPath=users%2Fsat-io%2Fawesome-gee-catalog-examples%3Aagriculture-vegetation-forestry%2FCTREES-AMAZON-CANOPY-TREE-HT">do</a> this in the form of Google Earth Engine apps/ ImageCollections, and I think this is absolutely awesome. This definitely makes it infinitely more likely for me to use the model outputs because they are available and easy to overlay with other layers. I would however love to see a <a href="https://arxiv.org/abs/2403.15356">DOFA</a> flood map deployed on the <a href="https://en.wikipedia.org/wiki/2022_Pakistan_floods">Pakistan floods of 2022</a> that I could overlay with a <a href="https://arxiv.org/abs/2504.11171">TerraMind</a> one and a plain U-Net one.</p><h3>The Santa Fe Quartet</h3><p><a href="https://en.wikipedia.org/wiki/Anscombe%27s_quartet">Anscombe&#8217;s quartet</a> is one of my favorite datasets: it demonstrates the importance of <strong>graphing the data one is analyzing. </strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!WBBB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1833a385-4693-4397-8d5d-2eb37945c64d_2560x1862.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!WBBB!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1833a385-4693-4397-8d5d-2eb37945c64d_2560x1862.png 424w, /__u/substackcdn.com/image/fetch/$s_!WBBB!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1833a385-4693-4397-8d5d-2eb37945c64d_2560x1862.png 848w, /__u/substackcdn.com/image/fetch/$s_!WBBB!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1833a385-4693-4397-8d5d-2eb37945c64d_2560x1862.png 1272w, /__u/substackcdn.com/image/fetch/$s_!WBBB!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1833a385-4693-4397-8d5d-2eb37945c64d_2560x1862.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!WBBB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1833a385-4693-4397-8d5d-2eb37945c64d_2560x1862.png" width="1456" height="1059" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1833a385-4693-4397-8d5d-2eb37945c64d_2560x1862.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1059,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:164961,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/166020663?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1833a385-4693-4397-8d5d-2eb37945c64d_2560x1862.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="/__u/substackcdn.com/image/fetch/$s_!WBBB!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1833a385-4693-4397-8d5d-2eb37945c64d_2560x1862.png 424w, /__u/substackcdn.com/image/fetch/$s_!WBBB!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1833a385-4693-4397-8d5d-2eb37945c64d_2560x1862.png 848w, /__u/substackcdn.com/image/fetch/$s_!WBBB!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1833a385-4693-4397-8d5d-2eb37945c64d_2560x1862.png 1272w, /__u/substackcdn.com/image/fetch/$s_!WBBB!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1833a385-4693-4397-8d5d-2eb37945c64d_2560x1862.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 aria-hidden="true" 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><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">Anscombe&#8217;s quartet. From <a href="https://en.wikipedia.org/wiki/File:Anscombe%27s_quartet_3.svg">Wikipedia</a>.</figcaption></figure></div><p><br>The four datasets depicted below all exhibit the same performance when measured against the linear regression line:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!VBBA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fef3520-8b03-49e7-a23f-d55146808f6f_1972x906.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!VBBA!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fef3520-8b03-49e7-a23f-d55146808f6f_1972x906.png 424w, /__u/substackcdn.com/image/fetch/$s_!VBBA!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fef3520-8b03-49e7-a23f-d55146808f6f_1972x906.png 848w, /__u/substackcdn.com/image/fetch/$s_!VBBA!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fef3520-8b03-49e7-a23f-d55146808f6f_1972x906.png 1272w, /__u/substackcdn.com/image/fetch/$s_!VBBA!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fef3520-8b03-49e7-a23f-d55146808f6f_1972x906.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!VBBA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fef3520-8b03-49e7-a23f-d55146808f6f_1972x906.png" width="1456" height="669" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1fef3520-8b03-49e7-a23f-d55146808f6f_1972x906.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:669,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:187852,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/166020663?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fef3520-8b03-49e7-a23f-d55146808f6f_1972x906.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!VBBA!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fef3520-8b03-49e7-a23f-d55146808f6f_1972x906.png 424w, /__u/substackcdn.com/image/fetch/$s_!VBBA!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fef3520-8b03-49e7-a23f-d55146808f6f_1972x906.png 848w, /__u/substackcdn.com/image/fetch/$s_!VBBA!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fef3520-8b03-49e7-a23f-d55146808f6f_1972x906.png 1272w, /__u/substackcdn.com/image/fetch/$s_!VBBA!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fef3520-8b03-49e7-a23f-d55146808f6f_1972x906.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 aria-hidden="true" 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><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">Anscombe&#8217;s quartet metrics. Or benchmarks if you will. From <a href="https://en.wikipedia.org/wiki/File:Anscombe%27s_quartet_3.svg">wikipedia</a>.</figcaption></figure></div><p>With geospatial data, we have an additional privilege which is that we can also plot our predictions based on their locations on the globe. This allows a variety of different errors to occur, all which tend to be easily addressed and diagnosable if you just <strong>look at the map.</strong></p><p>To demonstrate this, I pulled a <a href="https://dynamicworld.app/">dynamic world</a> tile as an example along with the underlying Sentinel-2 imagery. We&#8217;ll simplify this land cover map to just be built area vs non-built area for the purposes of this demonstration. Then we&#8217;ll artificially introduce commonly seen geospatial ML map errors, with the constraint that all maps should measure similar f1 score/ intersection<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> over union despite the very different underlying processes generating the artificial errors. </p><p><strong>In this case we treat the original dynamic world built area map as our ground truth for calculating f1/IoU.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!54CD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabcd9fd6-3d4d-4751-bf45-980718473854_9000x3900.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!54CD!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabcd9fd6-3d4d-4751-bf45-980718473854_9000x3900.png 424w, /__u/substackcdn.com/image/fetch/$s_!54CD!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabcd9fd6-3d4d-4751-bf45-980718473854_9000x3900.png 848w, /__u/substackcdn.com/image/fetch/$s_!54CD!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabcd9fd6-3d4d-4751-bf45-980718473854_9000x3900.png 1272w, /__u/substackcdn.com/image/fetch/$s_!54CD!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabcd9fd6-3d4d-4751-bf45-980718473854_9000x3900.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!54CD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabcd9fd6-3d4d-4751-bf45-980718473854_9000x3900.png" width="724.90625" height="314.1592333447802" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/abcd9fd6-3d4d-4751-bf45-980718473854_9000x3900.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:631,&quot;width&quot;:1456,&quot;resizeWidth&quot;:724.90625,&quot;bytes&quot;:17069447,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/166020663?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabcd9fd6-3d4d-4751-bf45-980718473854_9000x3900.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!54CD!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabcd9fd6-3d4d-4751-bf45-980718473854_9000x3900.png 424w, /__u/substackcdn.com/image/fetch/$s_!54CD!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabcd9fd6-3d4d-4751-bf45-980718473854_9000x3900.png 848w, /__u/substackcdn.com/image/fetch/$s_!54CD!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabcd9fd6-3d4d-4751-bf45-980718473854_9000x3900.png 1272w, /__u/substackcdn.com/image/fetch/$s_!54CD!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabcd9fd6-3d4d-4751-bf45-980718473854_9000x3900.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 aria-hidden="true" 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><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">Sentinel-2 RGB, Dynamic World landcover, and Dynamic World built area over Santa Fe, New Mexico. Accessed using Google Earth Engine.</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!g7-b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2801b042-a7fb-4164-bb8a-6ebf7ecb87f2_3000x3000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!g7-b!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2801b042-a7fb-4164-bb8a-6ebf7ecb87f2_3000x3000.png 424w, /__u/substackcdn.com/image/fetch/$s_!g7-b!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2801b042-a7fb-4164-bb8a-6ebf7ecb87f2_3000x3000.png 848w, /__u/substackcdn.com/image/fetch/$s_!g7-b!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2801b042-a7fb-4164-bb8a-6ebf7ecb87f2_3000x3000.png 1272w, /__u/substackcdn.com/image/fetch/$s_!g7-b!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2801b042-a7fb-4164-bb8a-6ebf7ecb87f2_3000x3000.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!g7-b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2801b042-a7fb-4164-bb8a-6ebf7ecb87f2_3000x3000.png" width="728" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2801b042-a7fb-4164-bb8a-6ebf7ecb87f2_3000x3000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:255000,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/166020663?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2801b042-a7fb-4164-bb8a-6ebf7ecb87f2_3000x3000.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!g7-b!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2801b042-a7fb-4164-bb8a-6ebf7ecb87f2_3000x3000.png 424w, /__u/substackcdn.com/image/fetch/$s_!g7-b!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2801b042-a7fb-4164-bb8a-6ebf7ecb87f2_3000x3000.png 848w, /__u/substackcdn.com/image/fetch/$s_!g7-b!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2801b042-a7fb-4164-bb8a-6ebf7ecb87f2_3000x3000.png 1272w, /__u/substackcdn.com/image/fetch/$s_!g7-b!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2801b042-a7fb-4164-bb8a-6ebf7ecb87f2_3000x3000.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 aria-hidden="true" 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><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">The Santa Fe Quartet. Artificial errors introduced by four different underlying processes to our map. </figcaption></figure></div><ul><li><p>For the first one, I chose areas that were non-built and introduced random &#8216;salt&#8217; noise. <strong>This is a common type of artifact from pixel-wise models.</strong></p></li><li><p>For the second one I used a <a href="https://en.wikipedia.org/wiki/Dilation_(morphology)">binary dilation</a> to expand the existing built area predictions. <strong>This can happen if your model is not so hot at classifying edges/boundaries.</strong></p></li><li><p>In the third I generated artificial tiling artifacts at regular spacing. <strong>This can happen if you do not stitch your predictions back properly after tiling.</strong></p></li><li><p>For the final one, I chose another class from dynamic world (crops), and introduced random salt noise only over that class. <strong>This can happen if you have issues in your original training set, i.e not enough differentiation between crops and built-area in this case.</strong></p></li><li><p></p></li></ul><p>As you can see, all four artificial errors result in f1 scores of ~0.73 and IoUs of ~0.58<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>. If we were to just go by benchmarks, who knows which model we would actually want to use! By looking at actual predictions, especially on a map, we can easily diagnose what major sources of error are and remediate them.<br>It goes without saying, types of geospatial errors are not limited to these four, and all four can produce different combinations too, but I hope this is illustrative of the need for more than just benchmarks when considering geospatial models, foundational or not!</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>False positives are much more prominent on a map relative to false negatives, here we focus on introducing those artificially, keeping the false negative rate at 0/constant.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>It&#8217;s actually a surprisingly complex inverse problem to generate these but also satisfy the constraint of having to have approximately equal f1/IoU. Try it out for yourself!</p></div></div>]]></content:encoded></item><item><title><![CDATA[Closed Loop Metrics for Earth Observation]]></title><description><![CDATA[Waymo Scaling, Waymo Insights]]></description><link>https://christopherren.substack.com/p/closed-loop-metrics-for-earth-observation</link><guid isPermaLink="false">https://christopherren.substack.com/p/closed-loop-metrics-for-earth-observation</guid><dc:creator><![CDATA[Christopher Ren]]></dc:creator><pubDate>Mon, 16 Jun 2025 04:34:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!EE_Q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89265428-556e-4611-91c5-07b227fac43a_861x447.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>TLDR;</h3><ul><li><p>Just as GPT-style cross-entropy predicts language utility, Waymo shows motion cross-entropy tracks autonomous driving safety; we have yet to find the same appropriate objective for geospatial/EO.</p></li><li><p>Waymo shows their objective scales with compute budget in a similar fashion to LLMs.</p></li><li><p>We should think more carefully about deriving closed-loop-like metrics for earth observation to measure model utility, rather than model performance.</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://christopherren.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/christopherren.substack.com/subscribe"><span>Subscribe now</span></a></p></li></ul><h3>Autonomous Driving Scales</h3><p>Waymo, the autonomous driving company whose burning cars became one of the enduring images of the Los Angeles anti-ICE protests, recently released a paper titled &#8216;<a href="https://arxiv.org/abs/2506.08228">Scaling Laws of Motion Forecasting and Planning: A Technical Report</a>&#8216;. In this report, the authors note that analagous to LLMs, <strong>the abilities of motion forecasting models also follow a power-law as a function of training compute. </strong></p><p>The plot below shows this scaling for several different metrics:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!EE_Q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89265428-556e-4611-91c5-07b227fac43a_861x447.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!EE_Q!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89265428-556e-4611-91c5-07b227fac43a_861x447.png 424w, /__u/substackcdn.com/image/fetch/$s_!EE_Q!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89265428-556e-4611-91c5-07b227fac43a_861x447.png 848w, /__u/substackcdn.com/image/fetch/$s_!EE_Q!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89265428-556e-4611-91c5-07b227fac43a_861x447.png 1272w, /__u/substackcdn.com/image/fetch/$s_!EE_Q!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89265428-556e-4611-91c5-07b227fac43a_861x447.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!EE_Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89265428-556e-4611-91c5-07b227fac43a_861x447.png" width="728" height="377.9512195121951" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/89265428-556e-4611-91c5-07b227fac43a_861x447.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:447,&quot;width&quot;:861,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:85209,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/165965195?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89265428-556e-4611-91c5-07b227fac43a_861x447.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!EE_Q!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89265428-556e-4611-91c5-07b227fac43a_861x447.png 424w, /__u/substackcdn.com/image/fetch/$s_!EE_Q!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89265428-556e-4611-91c5-07b227fac43a_861x447.png 848w, /__u/substackcdn.com/image/fetch/$s_!EE_Q!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89265428-556e-4611-91c5-07b227fac43a_861x447.png 1272w, /__u/substackcdn.com/image/fetch/$s_!EE_Q!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89265428-556e-4611-91c5-07b227fac43a_861x447.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 aria-hidden="true" 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><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">Motion forecasting and planning appear to scale as power-laws with compute budget.</figcaption></figure></div><ol><li><p>Cross-entropy (open loop): this is the training objective of the motion forecasting models. It is the likelihood that the model assigns to a given ground-truth trajectory/token sequence. Essentially: <strong>did the model think that what actually ended up happening was likely?</strong></p></li><li><p>Minimum average displacement error (minADE): this measures the geometric accuracy of the best trajectory generated by the model relative to the ground truth. With this metric we ask the question: <strong>how close to the ground-truth can the model get if allowed to pick it&#8217;s best forecast.</strong></p></li><li><p>Failure Count: the model is rolled out in a simulator and the number of failures in N scenarios is counted. Failures in this case could be collisions, going off-road, hard braking etc&#8230; here the key question is: <strong>is a given model safe if its own predictions feedback into decision making in a high-fidelity simulator.</strong></p></li></ol><p>Incredibly, we see that all three appear to improve with increasing compute budget, albeit with Failure Count appearing to flatten with larger compute budget. This tells us: </p><ul><li><p>Next-motion-token prediction is a scaling-friendly objective</p></li><li><p>Lower loss appears to translate into safer simulated driving</p></li></ul><h3>Closed Loop Geospatial Metrics</h3><p>Open- vs. closed-loop metrics are less common in the geospatial world; Waymo&#8217;s report illustrates them clearly. As you can see in the image above, only the Failure Count metric is &#8216;Closed Loop&#8217;: this means that the system is evaluated in scenarios where its actions directly influence the environment, and subsequently adjusts its behavior based on feedback received from the environment. This crucially evaluates an aspect of model performance that Open-loop metrics don&#8217;t by simulating driving ability in real-world driving conditions.</p><p>Why don&#8217;t we evaluate geospatial models in the same way? There&#8217;s been <a href="https://www.linkedin.com/feed/update/urn:li:ugcPost:7330823159681560577?commentUrn=urn%3Ali%3Acomment%3A%28ugcPost%3A7330823159681560577%2C7334675099326763009%29&amp;dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287334675099326763009%2Curn%3Ali%3AugcPost%3A7330823159681560577%29">some discussion</a> on whether benchmarks such as <a href="https://github.com/VMarsocci/pangaea-bench?tab=readme-ov-file">PANGAEA</a> are useful, and my personal feeling is that benchmarks are the <strong>bare minimum</strong>, but ultimately we need some measure of the actually utility of these models, preferably in an operational setting. The tricky part in doing this if of course you need to connect to your end-user, and evaluate how changes in your model might affect them! </p><p>Of course, since we&#8217;re not automating an agent that interacts with the environment in geospatial (yet), the nature of the evaluation changes a little. However, below I provide some best attempts at imagining what some closed-loop/operational geospatial metrics <em>could </em>look like.</p><h3>An Example: Flood Mapping</h3><p>The <a href="https://openaccess.thecvf.com/content_CVPRW_2020/html/w11/Bonafilia_Sen1Floods11_A_Georeferenced_Dataset_to_Train_and_Test_Deep_Learning_CVPRW_2020_paper.html">Sen1Floods11 dataset</a> is a part of the PANGAEA benchmarking suite, and is a &#8220;surface water data set including classified permanent water, flood water, and raw Sentinel-1 imagery.&#8221; A company in the insurance space may be interested in your fancy new model which blows every other model out of the water (no pun intended) on the Sen1Floods11 dataset. How can we move beyond just pixel-level skill in flood detection towards a more realistic and useful benchmark for such a business? By simulating how this model would actually be used in the real world.</p><p>For the sake of this thought experiment, let&#8217;s assume a parametric flood policy where the carrier agrees to terms such as: &#8220;if &gt; X% of the insured polygon is inundated, as determined by the S1 flood model, then trigger a pay out&#8221;. This type of workflow is shown on the website of flood mapping company <a href="https://www.floodbase.com/product">Floodbase</a>:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Mfa7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F533d70f0-d897-4761-9c2b-469e00f08316_1278x700.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Mfa7!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F533d70f0-d897-4761-9c2b-469e00f08316_1278x700.png 424w, /__u/substackcdn.com/image/fetch/$s_!Mfa7!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F533d70f0-d897-4761-9c2b-469e00f08316_1278x700.png 848w, /__u/substackcdn.com/image/fetch/$s_!Mfa7!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F533d70f0-d897-4761-9c2b-469e00f08316_1278x700.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Mfa7!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F533d70f0-d897-4761-9c2b-469e00f08316_1278x700.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Mfa7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F533d70f0-d897-4761-9c2b-469e00f08316_1278x700.png" width="1278" height="700" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/533d70f0-d897-4761-9c2b-469e00f08316_1278x700.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:700,&quot;width&quot;:1278,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:404096,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/165965195?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F533d70f0-d897-4761-9c2b-469e00f08316_1278x700.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Mfa7!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F533d70f0-d897-4761-9c2b-469e00f08316_1278x700.png 424w, /__u/substackcdn.com/image/fetch/$s_!Mfa7!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F533d70f0-d897-4761-9c2b-469e00f08316_1278x700.png 848w, /__u/substackcdn.com/image/fetch/$s_!Mfa7!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F533d70f0-d897-4761-9c2b-469e00f08316_1278x700.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Mfa7!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F533d70f0-d897-4761-9c2b-469e00f08316_1278x700.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 aria-hidden="true" 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><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">Floodbase mapping + automatic payout solution.</figcaption></figure></div><p>A good closed-loop benchmark could be:</p><ol><li><p>Replay an unseen year of Sentinel-1 acquisitions, task the model with emitting a trigger for each policy polygon when extent crosses &gt;X%</p></li><li><p>Evaluate trigger F1 score for your polygons (did we fire on the right events/areas).</p></li><li><p>Evaluate basis-risk error (BRE) as defined by:</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!mavL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bc801f1-f8a2-480c-9c1b-bd7ca3b3c673_542x178.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!mavL!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bc801f1-f8a2-480c-9c1b-bd7ca3b3c673_542x178.png 424w, /__u/substackcdn.com/image/fetch/$s_!mavL!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bc801f1-f8a2-480c-9c1b-bd7ca3b3c673_542x178.png 848w, /__u/substackcdn.com/image/fetch/$s_!mavL!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bc801f1-f8a2-480c-9c1b-bd7ca3b3c673_542x178.png 1272w, /__u/substackcdn.com/image/fetch/$s_!mavL!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_webp, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bc801f1-f8a2-480c-9c1b-bd7ca3b3c673_542x178.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!mavL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bc801f1-f8a2-480c-9c1b-bd7ca3b3c673_542x178.png" width="542" height="178" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0bc801f1-f8a2-480c-9c1b-bd7ca3b3c673_542x178.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:178,&quot;width&quot;:542,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:21447,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://christopherren.substack.com/i/165965195?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bc801f1-f8a2-480c-9c1b-bd7ca3b3c673_542x178.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!mavL!, /__u/christopherren.substack.com/w_424, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bc801f1-f8a2-480c-9c1b-bd7ca3b3c673_542x178.png 424w, /__u/substackcdn.com/image/fetch/$s_!mavL!, /__u/christopherren.substack.com/w_848, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bc801f1-f8a2-480c-9c1b-bd7ca3b3c673_542x178.png 848w, /__u/substackcdn.com/image/fetch/$s_!mavL!, /__u/christopherren.substack.com/w_1272, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bc801f1-f8a2-480c-9c1b-bd7ca3b3c673_542x178.png 1272w, /__u/substackcdn.com/image/fetch/$s_!mavL!, /__u/christopherren.substack.com/w_1456, /__u/christopherren.substack.com/c_limit, /__u/christopherren.substack.com/f_auto, /__u/christopherren.substack.com/q_auto:good, /__u/christopherren.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bc801f1-f8a2-480c-9c1b-bd7ca3b3c673_542x178.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>where <em><strong>Loss</strong></em> is the best available estimate for the monetary damage caused by the flood, <em><strong>Payout</strong></em> is what the model-drive trigger says the insurer must pay, and <em><strong>Sum Insured</strong></em> is the policy limit.</p><p>Now we get to see not only overall model performance at a pixel-level (IoU), but <strong>how it propagates through operational pipelines and ultimately affects customers. </strong>In effect we not only evaluate the ability of a given model to capture the signal of interest, but how model performance translates to decision performance and alignment with monetary loss. Thus when a new model is released, we can easily run it through our benchmark, and evaluate how IoU performance actually relates to our (fictional) bottom line. </p><h3>Conclusion</h3><p>There&#8217;s a lot of issues with the example I gave above: how can model developers access payout information, or insurance information? How can we accurately estimate the actually monetary value of the loss of a given property? These are questions that I do not have the answer to, but posing the question forces us to link model outputs to <strong>utility measured in dollars</strong>. A researcher I spoke to following the <a href="/__u/christopherren.substack.com/p/geospatial-foundational-disappointments?r=22ebo5">Geospatial Foundation Model diss piece</a> told me that research in the field appears divorced from practitioners and end-users. They should rest assured that they are not alone in this: practitioners and companies themselves are often equally as separated from their clients and stakeholders.</p><p>Many organizations claim that the purpose of geospatial/earth observation is to drive decision making: in that case, why would we not also model that decision making process alongside the physical process we&#8217;re attempting to measure?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://christopherren.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Applied Geospatial! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Model Scaffolding > Model Quality*]]></title><description><![CDATA[* Terms and Conditions Apply]]></description><link>https://christopherren.substack.com/p/model-scaffolding-model-quality</link><guid isPermaLink="false">https://christopherren.substack.com/p/model-scaffolding-model-quality</guid><dc:creator><![CDATA[Christopher Ren]]></dc:creator><pubDate>Sun, 01 Jun 2025 19:34:00 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b3c3ffcb-e44d-40a9-bdcd-9991189e0688_1082x650.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>TLDR;</h3><ul><li><p>Models good, scaffolding gooder.</p></li><li><p>Embeddings based search available to anyone with access to a laptop and who can run a jupyter notebook, coming soon.</p></li><li><p>I&#8217;ll try to map Indonesian aquaculture with this workflow to prove it scales.</p></li><li><p>Thank you Earth Genome for releasing data + code!</p></li></ul><h3>Model Scaffolding</h3><p>In &#8216;AI&#8217; world, model scaffolding is any post-training structure you wrap around a foundation model to guide or enhance it&#8217;s behavior. Prompts, memory stores, tool-calling or even calls to other models can all be qualified as scaffolding.</p><p>What is scaffolding for geospatial models? Embeddings-based search and human in the loop labeling and ML is an area that many <a href="https://medium.com/descarteslabs-team/geovisual-search-using-computer-vision-to-explore-the-earth-275d970c60cf">have been investigating for a long time</a>, yet is somehow still in my opinion under-explored. Humans are still state-of-the-art (SOTA) when it comes to end-to-end geospatial tasks like &#8220;find all the aquaculture ponds in Bali&#8221;, so any tool that can allow humans to inject their vision, reasoning and domain intuition is extremely high leverage.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://christopherren.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/christopherren.substack.com/subscribe"><span>Subscribe now</span></a></p><p>Geospatial search is a great example of geospatial model scaffolding: it lets you</p><ol><li><p>Click a point on the map.</p></li><li><p>Use embeddings to surface visually similar locations nearby.</p></li><li><p>Label positives and negatives on&#8209;the&#8209;fly to spin up a training dataset.</p><p></p><p><strong>What happens if the user needs more information than is available in the basemap/imagery to make a decision though? </strong></p></li></ol><p>The Earth Genome, released a notebook for <a href="https://github.com/earth-genome/ei-notebook">embeddings-based crop classification recently</a>. I&#8217;m currently working on modifying it to work with any custom set of embeddings, but I wanted to share a great example of additional model scaffolding to answer this question.</p><h3>Street View</h3><p>In the video below, I show how really simple model scaffolding can enable the incorporation of external information: the user can directly open Google Maps at the location, and use Street View imagery to confirm whether what they are looking at in the satellite imagery is aquaculture or not. </p><p>In the video (sound on to hear) I narrate how I:</p><ol><li><p>Use the scaffolding to open a street view tab in my browser.</p></li><li><p>Explore the area to confirm that it indeed contains aquaculture.</p></li><li><p>Label a positive and begin searching</p></li><li><p>Find other instances of aquaculture in Bali.</p></li></ol><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;405956db-9b59-466c-ac22-b49231db88fe&quot;,&quot;duration&quot;:null}"></div><p>With a single click, humans can now look at ground-level imagery before labeling satellite imagery: a trick inspired by the <a href="https://plugins.qgis.org/plugins/StreetView/">classic QGIS Street&#8209;View plugin</a> and by Soler&#8239;et&#8239;al.&#8239;2023&#8217;s <a href="https://arxiv.org/abs/2309.05930">clever crop&#8209;type mapping in Thailand</a>. The key here is integrating these existing tools with embeddings-based search, which allows users <strong>to scale their vision and reasoning abilities as well as their domain expertise on geospatial data.</strong></p><p>This is an extremely simple thing to implement (~3 lines of code), and I can personally attest to how high leverage it is having used it to build datasets and perform mapping experiments:  </p><pre><code><code>import webbrowser
center = Map.center
url = f"https://www.google.com/maps/@{center[0]},{center[1]},15z" webbrowser.open(url, new=2)</code></code></pre><h3>Conclusions</h3><ul><li><p><strong>Human&#8209;in&#8209;the&#8209;loop remains unbeaten</strong> for nuanced geospatial tasks; tiny scaffolds like this one multiply expert time. You have to look at the data, this is the cardinal rule of geospatial data science.</p></li><li><p><strong>Low&#8209;hanging fruit first:</strong> rather than chase ever&#8209;larger <em>foundation</em> models (<a href="/__u/christopherren.substack.com/p/geospatial-foundational-disappointments">which still lag supervised baselines on pixel&#8209;wise segmentation</a>), focus on interfaces that scale human level vision + reasoning + experience with geospatial data. This is how we will get adoption.</p></li><li><p>I&#8217;ll release the notebook &amp; backend soon so anyone can build an embeddings DB and start mapping with a set of embeddings parquet files. </p></li><li><p><strong>i</strong>pyleaflet&#8217;s look&#8209;and&#8209;feel is &#8230; serviceable. If you know a slicker JavaScript or Python framework or hacks to prettify ipyleaflet drop me a line!</p></li><li><p>A big thank you to the Earth Genome for releasing both <a href="https://github.com/earth-genome/ei-notebook">the notebook</a> and the embeddings.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://christopherren.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/christopherren.substack.com/subscribe"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item></channel></rss>