<?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[Milan's Data Science Insights]]></title><description><![CDATA[Regular round-up on data science, geospatial analytics, network science, AI, and many more - from tech to academia, from tutorials to the frontiers of science.]]></description><link>https://milanjanosov.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!Hot2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0f797d-65b9-4b24-aa1c-272d6e6a3eb0_1280x1280.png</url><title>Milan&apos;s Data Science Insights</title><link>https://milanjanosov.substack.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 30 Jun 2026 14:32:13 GMT</lastBuildDate><atom:link href="https://milanjanosov.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Milan Janosov]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[milanjanosov@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[milanjanosov@substack.com]]></itunes:email><itunes:name><![CDATA[Milan Janosov]]></itunes:name></itunes:owner><itunes:author><![CDATA[Milan Janosov]]></itunes:author><googleplay:owner><![CDATA[milanjanosov@substack.com]]></googleplay:owner><googleplay:email><![CDATA[milanjanosov@substack.com]]></googleplay:email><googleplay:author><![CDATA[Milan Janosov]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[31 Geospatial Papers You Shouldn't Miss - 2026 June ]]></title><description><![CDATA[This month&#8217;s digest spans foundation models for land cover, hyperspectral, and ecological remote sensing, alongside urban research on street networks, mobility dynamics, 15-minute cities, and air pollution vulnerability.]]></description><link>https://milanjanosov.substack.com/p/31-geospatial-papers-you-shouldnt</link><guid isPermaLink="false">https://milanjanosov.substack.com/p/31-geospatial-papers-you-shouldnt</guid><dc:creator><![CDATA[Milan Janosov]]></dc:creator><pubDate>Tue, 30 Jun 2026 08:01:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!93TJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d87242-8c3b-4c99-9c79-45d0d0c603b4_1000x1500.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!93TJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d87242-8c3b-4c99-9c79-45d0d0c603b4_1000x1500.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!93TJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d87242-8c3b-4c99-9c79-45d0d0c603b4_1000x1500.png 424w, https://substackcdn.com/image/fetch/$s_!93TJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d87242-8c3b-4c99-9c79-45d0d0c603b4_1000x1500.png 848w, https://substackcdn.com/image/fetch/$s_!93TJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d87242-8c3b-4c99-9c79-45d0d0c603b4_1000x1500.png 1272w, https://substackcdn.com/image/fetch/$s_!93TJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d87242-8c3b-4c99-9c79-45d0d0c603b4_1000x1500.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!93TJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d87242-8c3b-4c99-9c79-45d0d0c603b4_1000x1500.png" width="461" height="691.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d1d87242-8c3b-4c99-9c79-45d0d0c603b4_1000x1500.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1500,&quot;width&quot;:1000,&quot;resizeWidth&quot;:461,&quot;bytes&quot;:1185305,&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://milanjanosov.substack.com/i/204105123?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d87242-8c3b-4c99-9c79-45d0d0c603b4_1000x1500.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!93TJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d87242-8c3b-4c99-9c79-45d0d0c603b4_1000x1500.png 424w, https://substackcdn.com/image/fetch/$s_!93TJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d87242-8c3b-4c99-9c79-45d0d0c603b4_1000x1500.png 848w, https://substackcdn.com/image/fetch/$s_!93TJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d87242-8c3b-4c99-9c79-45d0d0c603b4_1000x1500.png 1272w, https://substackcdn.com/image/fetch/$s_!93TJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d87242-8c3b-4c99-9c79-45d0d0c603b4_1000x1500.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>This month&#8217;s digest spans foundation models for land cover, hyperspectral, and ecological remote sensing, alongside urban research on street networks, mobility dynamics, 15-minute cities, and air pollution vulnerability. On the climate side, it covers urban heat and cooling, droughts, wildfires, storm surge, hail hazard, and national-scale climate damage &#8212; rounded out by work on crop forecasting, change detection, water resources, and land take across Europe.</p><p></p><p>1. LandSegmenter: Towards a flexible foundation model for Land Use and Land Cover mapping - https://www.sciencedirect.com/science/article/pii/S0924271626002406</p><p>2. Urban building shadow exposure metric (UB-SEM): Quantification of urban building compactness for cooling energy demand prediction - https://www.sciencedirect.com/science/article/pii/S2210670726004749</p><p>3. Multi-year droughts in CMIP6 large ensemble models - https://iopscience.iop.org/article/10.1088/2515-7620/ae6d87</p><p>4. CY-Bench: a comprehensive benchmark dataset for sub-national crop yield forecasting - https://essd.copernicus.org/articles/18/3997/2026/</p><p>5. Wildfires in 2025 - https://www.nature.com/articles/s43017-026-00793-z.epdf</p><p>6. Urban science beyond samples: Up-to-date street network models and indicators for every urban area in the world - https://journals.sagepub.com/doi/10.1177/23998083261446991</p><p>7. Inferring urban functions from Google Maps reviews: A multi-scale, multi-modal and cross-city approach - https://linkinghub.elsevier.com/retrieve/pii/S0198971526000773</p><p>8. Composite2Change (C2C) on Google Earth Engine: Time-series change detection and metrics characterizing disturbance and recovery - https://www.sciencedirect.com/science/article/pii/S136481522600229X</p><p>9. From pixels to planning: Earth AI for nature restoration - https://research.google/blog/from-pixels-to-planning-earth-ai-for-nature-restoration/</p><p>10. Learning Fine-Grained Urban Mobility Dynamics Through Large Model-Enhanced Multimodal Representations - https://ieeexplore.ieee.org/document/11540094/</p><p>11. Assessing the effects of land cover configuration on climate with a regional climate model and stylized landscapes - https://iopscience.iop.org/article/10.1088/2752-5295/ae71fd</p><p>12. HySens: Sensor-Agnostic Foundation Models for Hyperspectral Data - https://ieeexplore.ieee.org/document/11514078</p><p>13. Summer heatwaves and travel behaviour adaptation in temperate climate conditions - https://www.sciencedirect.com/science/article/pii/S0143622826001955</p><p>14. Modulation of extreme storm surge events by large-scale climate modes across the Indo-Pacific - https://www.sciencedirect.com/science/article/abs/pii/S0029801826022857</p><p>15. Comprehensive national climate damage assessments framework applied to the UK - https://www.nature.com/articles/s41558-026-02665-2</p><p>16. Degree of spatial interpretability - https://www.tandfonline.com/doi/full/10.1080/13658816.2026.2614335</p><p>17. Infrastructure for African mines destroying forests at 34 times the rate of the mines themselves - https://phys.org/news/2026-06-infrastructure-african-destroying-forests.html</p><p>18. Why do residents still drive and travel beyond high-accessibility neighborhoods? Examining the challenges to the 15-minute city concept - https://linkinghub.elsevier.com/retrieve/pii/S2210670726004804</p><p>19. Building a longitudinal geospatial dataset of micro-businesses in Mexico City - https://journals.sagepub.com/doi/10.1177/23998083261460258</p><p>20. Water Quality Affects Water Source Allocation and Competition Between Sectors Globally - https://agupubs.onlinelibrary.wiley.com/doi/10.1029/2025EF006286</p><p>21. Estimating annual average daily traffic on local roads: Integrating spatial insights with machine learning - https://www.sciencedirect.com/science/article/pii/S0966692326001699</p><p>22. Europe&#8217;s land take and the loss of nature and cropland to artificial surfaces - https://www.nature.com/articles/s41467-026-71931-w</p><p>23. Greening guidelines for cooling European neighbourhoods with temperate climate: A research-through-design approach - https://www.sciencedirect.com/science/article/pii/S2210670726004646</p><p>24. Shifting hail hazard under global warming and effects on crop hail risk - https://www.nature.com/articles/s41558-026-02660-7</p><p>25. FLORO: A Multimodal Geospatial Foundation Model for Ecological Remote Sensing Across Sensors and Scales - https://arxiv.org/abs/2605.28174</p><p>26. Interactive physical data cubes: A novel perspective for exploring Earth system dynamics - https://esd.copernicus.org/articles/17/687/2026/</p><p>27. Towards plastic litter identification in aquatic environments using high-resolution SAR data - https://linkinghub.elsevier.com/retrieve/pii/S0034425726002634</p><p>28. Identification of eco-hydrological drivers controlling carbon exchanges of evergreen needle-leaf and deciduous broad-leaf ecosystems of Himalaya using machine learning classifiers - https://www.sciencedirect.com/science/article/pii/S1470160X26003547</p><p>29. Children&#8217;s multi-dimensional accessibility to urban green infrastructure: A systematic review of assessment methods and outlook - https://www.sciencedirect.com/science/article/abs/pii/S1618866725003747</p><p>30. One city, two heats: An LLM-enabled comparative analysis of heat perception, thermal environment, and health pathways in Beijing, China - https://www.sciencedirect.com/science/article/abs/pii/S2210670726002179</p><p>31. Mapping Urban Vulnerability to Air Pollution through an Integrated Geospatial Framework: An Analysis of 1,000 Cities in Iran - [link was cut off in your document]</p><p>Figure: https://www.tandfonline.com/doi/full/10.1080/13658816.2026.2614335#abstract</p><p></p>]]></content:encoded></item><item><title><![CDATA[Is Lake Velence Dying? Reading a Lake from Space with Sentinel-2]]></title><description><![CDATA[The Hungarian press says Lake Velence is at a record low &#8212; parts of the lakebed exposed, the water vanishing.]]></description><link>https://milanjanosov.substack.com/p/is-lake-velence-dying-reading-a-lake</link><guid isPermaLink="false">https://milanjanosov.substack.com/p/is-lake-velence-dying-reading-a-lake</guid><dc:creator><![CDATA[Milan Janosov]]></dc:creator><pubDate>Mon, 29 Jun 2026 13:53:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!fLYO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17adc2cf-21aa-4532-aafe-9b65d4576417_1377x775.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fLYO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17adc2cf-21aa-4532-aafe-9b65d4576417_1377x775.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fLYO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17adc2cf-21aa-4532-aafe-9b65d4576417_1377x775.png 424w, https://substackcdn.com/image/fetch/$s_!fLYO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17adc2cf-21aa-4532-aafe-9b65d4576417_1377x775.png 848w, https://substackcdn.com/image/fetch/$s_!fLYO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17adc2cf-21aa-4532-aafe-9b65d4576417_1377x775.png 1272w, https://substackcdn.com/image/fetch/$s_!fLYO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17adc2cf-21aa-4532-aafe-9b65d4576417_1377x775.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fLYO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17adc2cf-21aa-4532-aafe-9b65d4576417_1377x775.png" width="1377" height="775" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/17adc2cf-21aa-4532-aafe-9b65d4576417_1377x775.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:775,&quot;width&quot;:1377,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1829145,&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://milanjanosov.substack.com/i/204117854?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17adc2cf-21aa-4532-aafe-9b65d4576417_1377x775.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fLYO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17adc2cf-21aa-4532-aafe-9b65d4576417_1377x775.png 424w, https://substackcdn.com/image/fetch/$s_!fLYO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17adc2cf-21aa-4532-aafe-9b65d4576417_1377x775.png 848w, https://substackcdn.com/image/fetch/$s_!fLYO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17adc2cf-21aa-4532-aafe-9b65d4576417_1377x775.png 1272w, https://substackcdn.com/image/fetch/$s_!fLYO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17adc2cf-21aa-4532-aafe-9b65d4576417_1377x775.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>The Hungarian press says Lake Velence is at a record low &#8212; parts of the lakebed exposed, the water vanishing. In this notebook we put that claim to the test with **free Sentinel-2 satellite imagery**, and discover something the headlines miss.</p><p>We&#8217;ll:</p><p>1. Pull cloud-free June imagery of Lake Velence straight from **Microsoft Planetary Computer**</p><p>2. Map the w&#8230;</p>
      <p>
          <a href="https://milanjanosov.substack.com/p/is-lake-velence-dying-reading-a-lake">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[20 Urban Heat & Heatwave Papers You Shouldn't Miss]]></title><description><![CDATA[As heatwaves intensify across the northern hemisphere, urban heat has become one of the most active frontiers in geospatial research - and these really hot days, especially the most active and visible from an afternoon walk to a quick look on social media.]]></description><link>https://milanjanosov.substack.com/p/20-urban-heat-and-heatwave-papers</link><guid isPermaLink="false">https://milanjanosov.substack.com/p/20-urban-heat-and-heatwave-papers</guid><dc:creator><![CDATA[Milan Janosov]]></dc:creator><pubDate>Mon, 29 Jun 2026 12:06:02 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!xh1D!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c9d3c31-afec-4988-a42a-c9ba21e91806_1000x1500.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xh1D!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c9d3c31-afec-4988-a42a-c9ba21e91806_1000x1500.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xh1D!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c9d3c31-afec-4988-a42a-c9ba21e91806_1000x1500.png 424w, https://substackcdn.com/image/fetch/$s_!xh1D!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c9d3c31-afec-4988-a42a-c9ba21e91806_1000x1500.png 848w, https://substackcdn.com/image/fetch/$s_!xh1D!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c9d3c31-afec-4988-a42a-c9ba21e91806_1000x1500.png 1272w, https://substackcdn.com/image/fetch/$s_!xh1D!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c9d3c31-afec-4988-a42a-c9ba21e91806_1000x1500.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xh1D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c9d3c31-afec-4988-a42a-c9ba21e91806_1000x1500.png" width="491" height="736.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0c9d3c31-afec-4988-a42a-c9ba21e91806_1000x1500.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1500,&quot;width&quot;:1000,&quot;resizeWidth&quot;:491,&quot;bytes&quot;:1953715,&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://milanjanosov.substack.com/i/204103058?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c9d3c31-afec-4988-a42a-c9ba21e91806_1000x1500.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xh1D!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c9d3c31-afec-4988-a42a-c9ba21e91806_1000x1500.png 424w, https://substackcdn.com/image/fetch/$s_!xh1D!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c9d3c31-afec-4988-a42a-c9ba21e91806_1000x1500.png 848w, https://substackcdn.com/image/fetch/$s_!xh1D!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c9d3c31-afec-4988-a42a-c9ba21e91806_1000x1500.png 1272w, https://substackcdn.com/image/fetch/$s_!xh1D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c9d3c31-afec-4988-a42a-c9ba21e91806_1000x1500.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>As heatwaves intensify across the northern hemisphere, urban heat has become one of the most active frontiers in geospatial research - and these really hot days, especially the most active and visible from an afternoon walk to a quick look on social media.  </p><p> Here's a curated collection of 19 papers covering how we measure, model, and mitigate heat in cities, from anthropogenic heat in Los Angeles to LST mapping, mobility adaptation, and vegetation-based cooling.</p><p></p><ol><li><p>Modeling the Distribution, Impacts, and Mitigation of Anthropogenic Heat in Los Angeles - https://agupubs.onlinelibrary.wiley.com/doi/10.1029/2026JD046326</p></li><li><p>One city, two heats: An LLM-enabled comparative analysis of heat perception, thermal environment, and health pathways in Beijing, China - https://www.sciencedirect.com/science/article/abs/pii/S2210670726002179</p></li><li><p>Summer heatwaves and travel behaviour adaptation in temperate climate conditions - https://www.sciencedirect.com/science/article/pii/S0143622826001955</p></li><li><p>Data-Driven Approach to Estimate Urban Heat Island Impacts on Building Energy Consumption - https://zurl.co/CWr8O</p></li><li><p>Spanish Heat Waves Curb Discretionary Mobility and Alter Work Behavior - https://arxiv.org/pdf/2501.03978</p></li><li><p>Analyzing Spatial Patterns of Urban Green Infrastructure for Urban Cooling and Social Equity - https://lnkd.in/dfANwHNU</p></li><li><p>Summer Diurnal LST Variability Across Local Climate Zones Using ECOSTRESS Data in Lecce and Milan - https://doi.org/10.3390/atmos16040377</p></li><li><p>Comprehensive compilation and quality assessment of street-level urban air temperature measurements across European networks - https://www.nature.com/articles/s41597-026-06804-4</p></li><li><p>Seasonal drivers of urban heat and their implications for sustainable spatial planning: A case study from a rapidly developing city of eastern India - https://www.sciencedirect.com/science/article/abs/pii/S2210670726001332</p></li><li><p>Dynamics of landscape and thermal environments with cool town development and implications for migration-related tourism and responsible planning - https://www.sciencedirect.com/science/article/abs/pii/S0195925526000855</p></li><li><p>Data-driven analysis of Urban Heat Island effect and economic effect based on machine learning and wavelet coherence - https://onlinelibrary.wiley.com/doi/10.1111/tgis.70236</p></li><li><p>Adapting everyday activities to summer heatwaves: a multi-country analysis of mobile phone location data - https://iopscience.iop.org/article/10.1088/2752-5295/ae4cc2</p></li><li><p>Extreme heat events increase stroke risk among India&#8217;s older adults: evidence from longitudinal ageing study in India - https://iopscience.iop.org/article/10.1088/2752-5309/ae4b60</p></li><li><p>Too hot to handle? How heat is reshaping US population shifts - https://phys.org/news/2026-04-hot-reshaping-population-shifts.html</p></li><li><p>Directed causal coupling between urban heat and air pollution in U.S. cities - https://iopscience.iop.org/article/10.1088/1748-9326/ae53fd</p></li><li><p>Representation of global mega-cities and their urban heat island in CORDEX-CORE regional climate model simulations - https://www.nature.com/articles/s42949-025-00325-6</p></li><li><p>Decoding Urban Heat Dynamics: The Role of Morphological and Structural Parameters in Shaping Land Surface Temperature from Satellite Imagery - https://www.mdpi.com/2220-9964/15/4/174</p></li><li><p>Deep learning-driven statistical bias correction for climate risk assessment of projected temperature extremes in the Nordic region - https://www.nature.com/articles/s44304-026-00207-6</p></li><li><p>Physics-informed machine learning for mapping the heat mitigation potential of vegetation in Singapore - https://www.sciencedirect.com/science/article/abs/pii/S2210670726002040</p></li></ol><p></p>]]></content:encoded></item><item><title><![CDATA[Pin the Nation - Map Game]]></title><description><![CDATA[Just in the first two days more than a thousand people have tried have tired my humble &#119823;&#119842;&#119847; &#119853;&#119841;&#119838; &#119821;&#119834;&#119853;&#119842;&#119848;&#119847; using Natural Earth data.]]></description><link>https://milanjanosov.substack.com/p/pin-the-nation-map-game</link><guid isPermaLink="false">https://milanjanosov.substack.com/p/pin-the-nation-map-game</guid><dc:creator><![CDATA[Milan Janosov]]></dc:creator><pubDate>Fri, 26 Jun 2026 17:54:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!BHUH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa661bdb9-61b4-4c9d-a10f-3d5b60c52658_896x1200.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><span>Just in the first two days more than a thousand people have tried have tired my humble &#119823;&#119842;&#119847; &#119853;&#119841;&#119838; &#119821;&#119834;&#119853;&#119842;&#119848;&#119847; using Natural Earth data. Can you guess the country?</span></p><p>https://www.thenewscienceofmaps.com/   -&gt; MAP GAME</p><p></p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BHUH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa661bdb9-61b4-4c9d-a10f-3d5b60c52658_896x1200.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BHUH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa661bdb9-61b4-4c9d-a10f-3d5b60c52658_896x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!BHUH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa661bdb9-61b4-4c9d-a10f-3d5b60c52658_896x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!BHUH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa661bdb9-61b4-4c9d-a10f-3d5b60c52658_896x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!BHUH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa661bdb9-61b4-4c9d-a10f-3d5b60c52658_896x1200.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BHUH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa661bdb9-61b4-4c9d-a10f-3d5b60c52658_896x1200.jpeg" width="896" height="1200" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a661bdb9-61b4-4c9d-a10f-3d5b60c52658_896x1200.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1200,&quot;width&quot;:896,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:720194,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://milanjanosov.substack.com/i/203734360?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa661bdb9-61b4-4c9d-a10f-3d5b60c52658_896x1200.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BHUH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa661bdb9-61b4-4c9d-a10f-3d5b60c52658_896x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!BHUH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa661bdb9-61b4-4c9d-a10f-3d5b60c52658_896x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!BHUH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa661bdb9-61b4-4c9d-a10f-3d5b60c52658_896x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!BHUH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa661bdb9-61b4-4c9d-a10f-3d5b60c52658_896x1200.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div>]]></content:encoded></item><item><title><![CDATA[Thank you — and The New Science of Maps is live]]></title><description><![CDATA[Hi everyone,]]></description><link>https://milanjanosov.substack.com/p/thank-you-and-the-new-science-of</link><guid isPermaLink="false">https://milanjanosov.substack.com/p/thank-you-and-the-new-science-of</guid><dc:creator><![CDATA[Milan Janosov]]></dc:creator><pubDate>Wed, 24 Jun 2026 15:19:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!lFZ2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F311e1a3c-17e5-4da4-9d53-bafb73756380_733x356.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lFZ2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F311e1a3c-17e5-4da4-9d53-bafb73756380_733x356.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lFZ2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F311e1a3c-17e5-4da4-9d53-bafb73756380_733x356.png 424w, https://substackcdn.com/image/fetch/$s_!lFZ2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F311e1a3c-17e5-4da4-9d53-bafb73756380_733x356.png 848w, https://substackcdn.com/image/fetch/$s_!lFZ2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F311e1a3c-17e5-4da4-9d53-bafb73756380_733x356.png 1272w, https://substackcdn.com/image/fetch/$s_!lFZ2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F311e1a3c-17e5-4da4-9d53-bafb73756380_733x356.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lFZ2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F311e1a3c-17e5-4da4-9d53-bafb73756380_733x356.png" width="733" height="356" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/311e1a3c-17e5-4da4-9d53-bafb73756380_733x356.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:356,&quot;width&quot;:733,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:93133,&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://milanjanosov.substack.com/i/203416729?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F311e1a3c-17e5-4da4-9d53-bafb73756380_733x356.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lFZ2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F311e1a3c-17e5-4da4-9d53-bafb73756380_733x356.png 424w, https://substackcdn.com/image/fetch/$s_!lFZ2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F311e1a3c-17e5-4da4-9d53-bafb73756380_733x356.png 848w, https://substackcdn.com/image/fetch/$s_!lFZ2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F311e1a3c-17e5-4da4-9d53-bafb73756380_733x356.png 1272w, https://substackcdn.com/image/fetch/$s_!lFZ2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F311e1a3c-17e5-4da4-9d53-bafb73756380_733x356.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><br>Hi everyone,</p><p>First, a thank you. Just about a week after the <a href="https://janosovm.gumroad.com/l/geoai101">GeoAI book</a> launch, I  crossed <strong>100,000 followers</strong> &#8212; something I genuinely couldn&#8217;t have imagined when I started sharing maps and code. It&#8217;s because of this community that any of what comes next is possible, and I don&#8217;t take that for granted. So, truly: thank you.</p><p>Now, a few things I&#8217;ve been building are finally ready to share.</p><ol><li><p><strong>The New Science of Maps is now live - </strong><a href="https://www.thenewscienceofmaps.com/">thenewscienceofmaps.com</a><br>It&#8217;s the home I&#8217;ve wanted for all of this &#8212; books, courses, and structured learning journeys that take you from first principles to real workflows. This also means that I am moving away from other platforms, such as Udemy. It&#8217;s still the early days of the platform, and I&#8217;ll keep adding to it heavily during the coming month, but the foundation is there, and I&#8217;d love for you to look around.</p><p></p></li><li><p><strong>The first Learning Journey is out: Network Science.</strong><br>This is the first of many. A learning journey bundles a book and courses into one guided path &#8212; the Network Science journey takes you from <em>Connecting the Dots</em> (how networks shape our world) all the way to building and analyzing them yourself in Python. More journeys &#8212; urban analytics, satellite data, GeoAI &#8212; will roll out over the coming months.</p></li><li><p><strong>And if you want something lighter: my map game has now been played over a thousand times.</strong><br>Just check the menu <a href="https://www.thenewscienceofmaps.com/">thenewscienceofmaps.com</a>, play, and share your score card! Quick, fun, surprisingly hard. See how you do.</p></li></ol><p></p><p>More soon &#8212; this is just the start, and I&#8217;m glad you&#8217;re here for it.</p><p>Milan</p>]]></content:encoded></item><item><title><![CDATA[The GeoAI Stack: 14 Libraries That Power This Book ]]></title><description><![CDATA[A quick outline of my new book on explaining the core GeoAI stack in 2026 - if you want ot build things - the GeoAI Essentials]]></description><link>https://milanjanosov.substack.com/p/the-geoai-stack-14-libraries-that</link><guid isPermaLink="false">https://milanjanosov.substack.com/p/the-geoai-stack-14-libraries-that</guid><dc:creator><![CDATA[Milan Janosov]]></dc:creator><pubDate>Tue, 23 Jun 2026 07:00:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9Ooh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c79cb3c-159f-431d-ba04-28816487ca0e_681x909.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A quick outline of my new book on explaining the core GeoAI stack in 2026 - if you want ot build things - the <em><a href="https://janosovm.gumroad.com/l/geoai101">GeoAI Essentials</a></em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9Ooh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c79cb3c-159f-431d-ba04-28816487ca0e_681x909.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9Ooh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c79cb3c-159f-431d-ba04-28816487ca0e_681x909.png 424w, https://substackcdn.com/image/fetch/$s_!9Ooh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c79cb3c-159f-431d-ba04-28816487ca0e_681x909.png 848w, https://substackcdn.com/image/fetch/$s_!9Ooh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c79cb3c-159f-431d-ba04-28816487ca0e_681x909.png 1272w, https://substackcdn.com/image/fetch/$s_!9Ooh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c79cb3c-159f-431d-ba04-28816487ca0e_681x909.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9Ooh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c79cb3c-159f-431d-ba04-28816487ca0e_681x909.png" width="681" height="909" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4c79cb3c-159f-431d-ba04-28816487ca0e_681x909.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:909,&quot;width&quot;:681,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:923164,&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://milanjanosov.substack.com/i/201851251?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c79cb3c-159f-431d-ba04-28816487ca0e_681x909.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9Ooh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c79cb3c-159f-431d-ba04-28816487ca0e_681x909.png 424w, https://substackcdn.com/image/fetch/$s_!9Ooh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c79cb3c-159f-431d-ba04-28816487ca0e_681x909.png 848w, https://substackcdn.com/image/fetch/$s_!9Ooh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c79cb3c-159f-431d-ba04-28816487ca0e_681x909.png 1272w, https://substackcdn.com/image/fetch/$s_!9Ooh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c79cb3c-159f-431d-ba04-28816487ca0e_681x909.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h3>PyTorch</h3><p>PyTorch is the spine of the book: it appears in 12 of 14 chapters, and every single model is built in it from scratch &#8212; no model zoos, no pretrained shortcuts until the foundation-model chapter. A U-Net for segmentation in Chapter 5, a patch classifier in Chapter 6, a car detector in Chapter 7, a height regressor mapping Sentinel-2 spectra to LiDAR nDSM in Chapter 8, a Siamese change detector in Chapter 9, a ConvLSTM forecasting December NDVI from an 11-month sequence in Chapter 10, and a convolutional autoencoder doing cloud-gap inpainting in Chapter 12. The shared <code>geoai_utils.py</code> module ships eleven <code>nn.Module</code> classes and eight <code>Dataset</code> classes, all PyTorch. If you want to understand GeoAI rather than just call it, this is where the understanding happens.</p><h3>rasterio</h3><p>The raster workhorse, used in nine chapters. Chapter 4 alone leans on <code>windows.Window</code> for tiling, <code>merge</code> for mosaicking, <code>mask</code> for AOI clipping, and <code>warp.reproject</code> with explicit <code>Resampling</code> choices. Chapter 5 uses <code>features.rasterize</code> to burn vector building footprints into pixel masks &#8212; the exact operation that turns free OpenStreetMap geometry into segmentation training labels. Chapter 13 uses <code>transform.rowcol</code> to map coordinates into foundation-model embedding grids. Every GeoTIFF the book touches goes through rasterio.</p><h3>GeoPandas</h3><p>The vector counterpart. It carries building footprints in Chapters 4&#8211;6, cluster geometries in Chapter 11, and in Chapter 14 it loads the NYC neighborhood polygons and the 24,376-point POI dataset the GeoAI agent queries. When the agent answers &#8220;how many caf&#233;s are within 500 meters of Washington Square Park,&#8221; GeoPandas is holding the data.</p><h3>Shapely</h3><p>Shapely supplies the geometry primitives &#8212; <code>box</code>, <code>Point</code>, <code>shape</code>, <code>mapping</code> &#8212; across five chapters, but its standout moment is Chapter 14: an <code>STRtree</code> spatial index over all 24,376 POIs, so each agent tool call resolves point-in-polygon and radius queries without iterating the full dataset. A reminder that classical computational geometry is what makes an &#8220;AI agent&#8221; feel instant.</p><h3>pystac_client</h3><p>One chapter, but the chapter everything depends on. In Chapter 4, <code>pystac_client.Client.open()</code> connects to the Element84 Earth Search STAC API and searches Sentinel-2 L2A scenes by bounding box, date range, and cloud cover &#8212; no account, no API key. The book&#8217;s reusable <code>search_best_any()</code> and <code>download_month()</code> utilities are built on it. This is how you get satellite imagery in 2026: STAC, not portals.</p><h3>OSMnx</h3><p>Also a single, decisive appearance: <code>ox.features_from_polygon(edi_poly, tags={'building': True})</code> pulls every building footprint in the Edinburgh study area from OpenStreetMap. Those footprints become the training labels for Chapter 5&#8217;s segmentation model. Free, global, machine-readable labels &#8212; OSMnx is the cheapest labeling team you will ever hire.</p><h3>SciPy (ndimage)</h3><p>The quiet fixer, in five chapters. <code>binary_fill_holes</code> cleans up predicted building masks in Chapter 5; <code>binary_dilation</code> and <code>distance_transform_edt</code> construct realistic cloud masks for the Chapter 12 inpainting task; connected-component <code>label</code> and <code>find_objects</code> isolate gap regions. Raw model output is rarely the final product &#8212; <code>scipy.ndimage</code> is the gap between prediction and map.</p><h3>scikit-learn</h3><p>The unsupervised chapter runs on it. Chapter 11 clusters embedding vectors with KMeans and DBSCAN, validates with <code>silhouette_score</code>, reweights features with <code>TfidfTransformer</code>, and projects to 2D with PCA and t-SNE. Chapter 13 brings PCA back to visualize what foundation-model embeddings actually encode. Deep learning produces the representations; scikit-learn is how you interrogate them.</p><h3>samgeo</h3><p>Chapter 13&#8217;s foundation-model gradient starts here. <code>SamGeo</code> wraps Meta&#8217;s Segment Anything Model for georeferenced rasters: zero-shot segmentation with no training, lowest setup cost of the four models compared. The chapter&#8217;s point is the trade-off curve &#8212; and SAM anchors the cheap end.</p><h3>open_clip</h3><p>Loads RemoteCLIP, a CLIP variant trained on remote sensing image&#8211;caption pairs, with weights fetched via <code>hf_hub_download</code>. In Chapter 13 it does zero-shot scene classification from text prompts &#8212; type &#8220;an aerial photo of a parking lot,&#8221; get a score. No labels touched.</p><h3>geotessera</h3><p><code>GeoTessera()</code> delivers TESSERA embeddings &#8212; self-supervised temporal encodings of Sentinel time series (Feng et al., 2025). One line of access to representations that took GPU-years to learn; Chapter 13 shows what they separate that raw spectra cannot.</p><h3>earthengine-api</h3><p>The <code>ee</code> client pulls AlphaEarth, Google&#8217;s annual satellite embedding product, sitting at the high-setup, high-specificity end of the Chapter 13 gradient. More friction than the other three &#8212; authentication, quotas &#8212; but planetary coverage in return.</p><h3>groq</h3><p>Chapter 14 builds a GeoAI agent, and the Groq SDK is its reasoning core: <code>llama-3.3-70b-versatile</code> at <code>temperature=0</code>, reading the user&#8217;s question, choosing which spatial tool to call, and synthesizing the answer. The LLM never touches geometry directly &#8212; it orchestrates the tools that do.</p><h3>geopy</h3><p>The agent&#8217;s bridge from language to coordinates: a <code>Nominatim</code> geocoder wrapped in <code>RateLimiter</code>, so &#8220;near Bryant Park&#8221; becomes a lon/lat the STRtree can query. Small library, essential joint.</p><h3>The stack, assembled</h3><p>Notice the shape: two acquisition libraries (pystac_client, OSMnx), one raster and two vector engines (rasterio, GeoPandas, Shapely), two classical scientific tools (SciPy, scikit-learn), one deep learning framework doing all the heavy lifting (PyTorch), four foundation-model access points (samgeo, open_clip, geotessera, ee), and two that turn models into an agent (groq, geopy). That is the whole GeoAI story in dependency form &#8212; data in, model trained, agent shipped. The full working implementation, all 101 steps of it, is in the book: <a href="https://janosovm.gumroad.com/l/geoai101">https://janosovm.gumroad.com/l/geoai101</a></p>]]></content:encoded></item><item><title><![CDATA[101 Essential GeoAI Concepts — The Complete A–Z Glossary]]></title><description><![CDATA[GeoAI moves fast, and its vocabulary borrows from remote sensing, deep learning, and classical GIS all at once.]]></description><link>https://milanjanosov.substack.com/p/101-essential-geoai-concepts-the</link><guid isPermaLink="false">https://milanjanosov.substack.com/p/101-essential-geoai-concepts-the</guid><dc:creator><![CDATA[Milan Janosov]]></dc:creator><pubDate>Sat, 20 Jun 2026 09:02:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Hot2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0f797d-65b9-4b24-aa1c-272d6e6a3eb0_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>GeoAI moves fast, and its vocabulary borrows from remote sensing, deep learning, and classical GIS all at once. This is the field&#8217;s working vocabulary in one place: 101 essential concepts, alphabetical, one plain-language sentence each. No fluff, no math you have to decode &#8212; just what each idea is and why it matters when you&#8217;re turning pixels into decisions. Architectures, metrics, geospatial fundamentals, the training pipeline, unsupervised methods, foundation models, and the agent ideas now reshaping the field. Skim it to fill gaps, or read it end to end as a map of everything GeoAI touches. And if you want to turn this into practice:</p><p>&#128214; Full book: <a href="https://janosovm.gumroad.com/l/geoai101">https://janosovm.gumroad.com/l/geoai101</a> </p><p>&#127379; Free sample: <a href="https://janosovm.gumroad.com/l/geoai101sample">https://janosovm.gumroad.com/l/geoai101sample</a></p><div><hr></div><ol><li><p><strong>Adam optimizer</strong> &#8212; An adaptive gradient optimizer that tunes a per-parameter step size, the sensible default for training most deep geospatial models.</p></li><li><p><strong>Anchor box</strong> &#8212; A predefined reference rectangle a detector adjusts to fit objects, letting one model predict boxes of many shapes and sizes.</p></li><li><p><strong>AP / mAP</strong> &#8212; Average Precision is the area under a detector&#8217;s precision-recall curve; mean Average Precision averages it across classes, the standard detection benchmark.</p></li><li><p><strong>Attention</strong> &#8212; A mechanism that lets a model weigh how much every input element should influence every other, capturing long-range context directly.</p></li><li><p><strong>Autoencoder</strong> &#8212; A network that compresses input to a compact code and reconstructs it, learning useful representations without labels.</p></li><li><p><strong>Band</strong> &#8212; A single measured channel of a raster, such as red, near-infrared, or thermal, that a model stacks to learn from.</p></li><li><p><strong>Baseline</strong> &#8212; A trivial reference predictor, like always guessing the mean or the commonest class, that a real model must beat to prove it learned anything.</p></li><li><p><strong>Batch normalization</strong> &#8212; A layer that rescales activations to a stable range during training, speeding convergence and steadying gradients.</p></li><li><p><strong>Binary cross-entropy</strong> &#8212; The standard loss for two-class problems, penalizing confident wrong predictions far more than uncertain ones.</p></li><li><p><strong>Bounding box</strong> &#8212; A rectangle that localizes a single object in an image, the basic output unit of object detection.</p></li><li><p><strong>Change detection</strong> &#8212; Identifying what differs between two co-registered images of the same place at different times.</p></li><li><p><strong>Class imbalance</strong> &#8212; When some classes vastly outnumber others, biasing a model toward the majority unless the loss or sampling compensates.</p></li><li><p><strong>Clustering</strong> &#8212; Grouping samples so members of a group resemble each other more than outsiders, the core of unsupervised analysis.</p></li><li><p><strong>CNN (convolutional neural network)</strong> &#8212; A network that learns local spatial patterns like edges and textures, the workhorse architecture for imagery.</p></li><li><p><strong>Confidence score</strong> &#8212; A model&#8217;s estimated probability that a prediction is correct, the dial you threshold to trade precision against recall.</p></li><li><p><strong>Confusion matrix</strong> &#8212; A class-by-class table of predictions versus truth, from which precision, recall, F1, and IoU are all derived.</p></li><li><p><strong>ConvLSTM</strong> &#8212; A recurrent cell with convolutions inside, so its memory is a 2D map, built for forecasting how spatial patterns evolve over time.</p></li><li><p><strong>Coordinate reference system (CRS)</strong> &#8212; The rule that turns positions on Earth into numbers, in degrees or meters, that must match across layers or nothing lines up.</p></li><li><p><strong>Co-registration</strong> &#8212; Aligning two images so the same pixel position refers to the same ground location, a prerequisite for comparing them.</p></li><li><p><strong>Data augmentation</strong> &#8212; Applying random transforms like flips and rotations to training data, teaching invariance and stretching a small dataset further.</p></li><li><p><strong>DBSCAN</strong> &#8212; A density-based clustering method that finds arbitrarily shaped groups and labels sparse points as noise, with no preset cluster count.</p></li><li><p><strong>Decoder</strong> &#8212; The expanding path of a network that rebuilds spatial resolution from compact features to produce a per-pixel output.</p></li><li><p><strong>Deep learning</strong> &#8212; Training many-layered neural networks to learn features directly from raw data rather than hand-engineering them.</p></li><li><p><strong>Dice loss</strong> &#8212; An overlap-based segmentation loss that resists the collapse where a model just predicts the background everywhere.</p></li><li><p><strong>Dimensionality reduction</strong> &#8212; Compressing high-dimensional data to a few informative axes for visualization or faster, cleaner modeling.</p></li><li><p><strong>Domain shift</strong> &#8212; When deployment data differs from training data in sensor, season, or geography, quietly degrading a model that tested well.</p></li><li><p><strong>Dropout</strong> &#8212; A regularizer that randomly zeroes activations during training to reduce overfitting on small datasets.</p></li><li><p><strong>Early stopping</strong> &#8212; Halting training once validation performance stops improving, keeping the best checkpoint instead of overfitting.</p></li><li><p><strong>Embedding</strong> &#8212; A dense vector that places semantically similar inputs close together, the representation foundation models trade in.</p></li><li><p><strong>Encoder</strong> &#8212; The contracting path of a network that compresses an image into a compact representation of what it contains.</p></li><li><p><strong>Epoch</strong> &#8212; One full pass over the training dataset; models typically train for tens to hundreds of them.</p></li><li><p><strong>F1 score</strong> &#8212; The harmonic mean of precision and recall, a single balanced metric that stays honest under class imbalance.</p></li><li><p><strong>Fine-tuning</strong> &#8212; Adapting a pretrained model to a new task by continuing training on task-specific data, far cheaper than starting from scratch.</p></li><li><p><strong>Foundation model</strong> &#8212; A large model pretrained on broad data that transfers to many downstream tasks with little or no extra training.</p></li><li><p><strong>GeoAI</strong> &#8212; The application of deep learning to geospatial data, turning satellite imagery and maps into predictions, detections, and decisions.</p></li><li><p><strong>GeoAI agent</strong> &#8212; A language model that answers spatial questions by choosing and calling real geospatial tools at runtime instead of following a fixed pipeline.</p></li><li><p><strong>Geocoding</strong> &#8212; Resolving a place name or address to geographic coordinates, and the reverse for coordinates back to a name.</p></li><li><p><strong>GeoTIFF</strong> &#8212; A raster image format that embeds its own coordinate system and transform, so every pixel knows where it sits on Earth.</p></li><li><p><strong>Global average pooling</strong> &#8212; Collapsing each feature map to a single number, summarizing what an image contains rather than where.</p></li><li><p><strong>Ground sample distance (GSD)</strong> &#8212; The real-world distance covered by one pixel, the practical meaning of a sensor&#8217;s spatial resolution.</p></li><li><p><strong>Ground truth</strong> &#8212; The reference labels treated as correct, against which model predictions are trained and judged.</p></li><li><p><strong>Hidden state</strong> &#8212; The carried-forward memory a recurrent network updates at each step as it processes a sequence.</p></li><li><p><strong>Huber loss</strong> &#8212; A regression loss that behaves like squared error for small mistakes and absolute error for large ones, robust to outliers.</p></li><li><p><strong>Inpainting</strong> &#8212; Reconstructing missing or corrupted image regions from surrounding context, the deep-learning route to filling cloud gaps.</p></li><li><p><strong>Instance segmentation</strong> &#8212; Labeling every pixel and separating each distinct object, even when objects share a class.</p></li><li><p><strong>Interpolation</strong> &#8212; Estimating values at unobserved locations from observed ones, the spatial art of filling the gaps.</p></li><li><p><strong>Inverse distance weighting</strong> &#8212; A classic interpolation that estimates an unknown point as a distance-weighted average of nearby known values.</p></li><li><p><strong>IoU (intersection over union)</strong> &#8212; Overlap divided by union between a predicted region and the truth, the honest core metric for segmentation and detection.</p></li><li><p><strong>K-means</strong> &#8212; A fast clustering method that iterates toward K cluster centers, requiring the number of clusters chosen in advance.</p></li><li><p><strong>Kriging</strong> &#8212; A geostatistical interpolation that models spatial correlation to produce optimal estimates and an uncertainty for each.</p></li><li><p><strong>Labels</strong> &#8212; The reference values a model learns to predict, whether class IDs, masks, boxes, or continuous targets.</p></li><li><p><strong>Land cover classification</strong> &#8212; Assigning each location a surface type such as water, forest, crop, or built-up, the canonical mapping task in remote sensing.</p></li><li><p><strong>Learning rate</strong> &#8212; The step size the optimizer takes when updating weights; too high diverges, too low stalls.</p></li><li><p><strong>LiDAR</strong> &#8212; An active sensor that times reflected laser pulses to measure distance, producing precise elevation and 3D point clouds.</p></li><li><p><strong>Loss function</strong> &#8212; The scalar measuring how wrong a prediction is, whose minimization defines what the model actually optimizes for.</p></li><li><p><strong>LSTM</strong> &#8212; A recurrent network that carries memory across a sequence, learning what to remember and forget at each step.</p></li><li><p><strong>MAE (mean absolute error)</strong> &#8212; The average absolute difference between prediction and truth, a robust regression metric in the target&#8217;s own units.</p></li><li><p><strong>NDVI</strong> &#8212; The vegetation index (NIR - Red)/(NIR + Red), a one-number proxy for how green and healthy a surface is.</p></li><li><p><strong>Non-maximum suppression</strong> &#8212; A cleanup step that removes duplicate detections by keeping the most confident box and discarding its overlapping neighbors.</p></li><li><p><strong>Normalization</strong> &#8212; Rescaling raw values to a stable range so features are comparable and training converges instead of diverging.</p></li><li><p><strong>Object detection</strong> &#8212; Locating objects with bounding boxes and confidence scores, rather than producing a mask or one label per image.</p></li><li><p><strong>Orthorectification</strong> &#8212; Removing terrain and sensor distortion from imagery so it has uniform map scale and can be measured directly.</p></li><li><p><strong>Overfitting</strong> &#8212; When a model memorizes training quirks instead of general patterns, scoring well in training but poorly on new data.</p></li><li><p><strong>Patch</strong> &#8212; A fixed-size image tile that a model actually consumes, the atomic unit of most geospatial training pipelines.</p></li><li><p><strong>PCA (principal component analysis)</strong> &#8212; A linear method that projects data onto its directions of greatest variance, a fast tool for compression and visualization.</p></li><li><p><strong>Point of interest (POI)</strong> &#8212; A tagged location such as a cafe, school, or clinic, the raw signal for mapping what an area is used for.</p></li><li><p><strong>Precision</strong> &#8212; The fraction of predicted positives that are actually correct, the metric that punishes false alarms.</p></li><li><p><strong>Pseudo-label</strong> &#8212; An algorithmically generated proxy for ground truth that lets you train where real labels don&#8217;t exist.</p></li><li><p><strong>Raster</strong> &#8212; A regular grid of pixels where each cell holds a value per band, the native format for satellite and aerial imagery.</p></li><li><p><strong>ReAct loop</strong> &#8212; An agent pattern that interleaves reasoning and acting, calling a tool, reading the result, and repeating until it can answer.</p></li><li><p><strong>Recall</strong> &#8212; The fraction of true positives a model actually recovers, the metric that punishes misses.</p></li><li><p><strong>Receptive field</strong> &#8212; The region of the input that influences one unit deep in a network, enlarged by pooling and stacked convolutions.</p></li><li><p><strong>Regression</strong> &#8212; Predicting a continuous value, such as height, temperature, or density, rather than a discrete class.</p></li><li><p><strong>ReLU</strong> &#8212; An activation that zeros negatives and passes positives unchanged, the simple nonlinearity behind most modern networks.</p></li><li><p><strong>Remote sensing</strong> &#8212; Measuring the Earth&#8217;s surface from a distance with satellite, aerial, or drone sensors.</p></li><li><p><strong>Reprojection</strong> &#8212; Converting data from one coordinate system to another so layers share a common spatial frame before analysis.</p></li><li><p><strong>RMSE (root mean squared error)</strong> &#8212; The square root of average squared error, a regression metric in the target&#8217;s units that punishes large mistakes hardest.</p></li><li><p><strong>R-squared</strong> &#8212; The fraction of variance a model explains; one is perfect, zero matches guessing the mean, and negative is worse.</p></li><li><p><strong>Scene</strong> &#8212; A complete sensor acquisition over a contiguous area, tiled into patches for training and stitched back for prediction.</p></li><li><p><strong>Segmentation</strong> &#8212; Classifying every pixel of an image, the task behind land-cover maps, building footprints, and masks.</p></li><li><p><strong>Self-attention</strong> &#8212; Attention applied within a single input, letting each element weigh its relationship to all others to capture global structure.</p></li><li><p><strong>Self-supervised learning</strong> &#8212; Learning from data by inventing a prediction target from the input itself, such as reconstructing a masked region, with no labels.</p></li><li><p><strong>Semantic segmentation</strong> &#8212; Per-pixel classification that labels every pixel by category without separating individual object instances.</p></li><li><p><strong>Siamese network</strong> &#8212; Two weight-sharing branches that compare two inputs, so feature differences reflect real change rather than independent drift.</p></li><li><p><strong>Sliding window</strong> &#8212; Stepping a fixed-size window across a large scene to extract patches or score positions densely.</p></li><li><p><strong>Spatial autocorrelation</strong> &#8212; The tendency of nearby locations to have similar values, the property that both powers and complicates spatial modeling.</p></li><li><p><strong>Spatial index</strong> &#8212; A data structure that speeds up which-features-are-near-here queries by skipping regions that can&#8217;t match.</p></li><li><p><strong>STAC (SpatioTemporal Asset Catalog)</strong> &#8212; A standard protocol for searching and pulling satellite imagery by area and date.</p></li><li><p><strong>Stride</strong> &#8212; The pixel step between successive window or convolution positions, trading coverage density against compute.</p></li><li><p><strong>TF-IDF</strong> &#8212; A weighting borrowed from text that boosts locally distinctive features and discounts ubiquitous ones, useful for spatial composition.</p></li><li><p><strong>Tobler&#8217;s First Law</strong> &#8212; &#8220;Everything is related to everything else, but near things are more related than distant things,&#8221; the principle under all spatial interpolation.</p></li><li><p><strong>Transformer</strong> &#8212; An attention-based architecture that processes all input elements in parallel, now the backbone of leading vision and language models.</p></li><li><p><strong>t-SNE</strong> &#8212; A nonlinear projection of high-dimensional data to 2D that preserves local neighborhoods, used for visualization.</p></li><li><p><strong>U-Net</strong> &#8212; An encoder-decoder with skip connections that preserves fine detail, the default architecture for pixel-level segmentation.</p></li><li><p><strong>Unsupervised learning</strong> &#8212; Finding structure in data with no labels at all, letting the data group or represent itself.</p></li><li><p><strong>Validation set</strong> &#8212; Data held out during training to tune choices like when to stop, never used to update weights directly.</p></li><li><p><strong>Vector data</strong> &#8212; Geographic features stored as points, lines, and polygons, the format for boundaries, roads, and buildings.</p></li><li><p><strong>Vision transformer (ViT)</strong> &#8212; An architecture that splits an image into patches and applies self-attention so every patch attends to every other.</p></li><li><p><strong>Weight decay</strong> &#8212; A penalty on large weights added to the loss, nudging a model toward simpler, more generalizable solutions.</p></li><li><p><strong>YOLO</strong> &#8212; A real-time detector that predicts every bounding box in a single forward pass, and a widely used annotation format.</p></li><li><p><strong>Zero-shot</strong> &#8212; A model producing useful results on categories it was never explicitly trained to recognize.</p></li></ol><p></p>]]></content:encoded></item><item><title><![CDATA[The Public Geospatial Foundation Model Landscape in 2026 — Every Model Worth Knowing]]></title><description><![CDATA[One list. 17 models. Who built them, where the papers are, and the numbers that matter.]]></description><link>https://milanjanosov.substack.com/p/the-public-geospatial-foundation</link><guid isPermaLink="false">https://milanjanosov.substack.com/p/the-public-geospatial-foundation</guid><dc:creator><![CDATA[Milan Janosov]]></dc:creator><pubDate>Wed, 17 Jun 2026 18:01:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Ri-r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d636b7-8da3-4d6f-9f85-882dc291b9ce_1610x1801.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ri-r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d636b7-8da3-4d6f-9f85-882dc291b9ce_1610x1801.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ri-r!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d636b7-8da3-4d6f-9f85-882dc291b9ce_1610x1801.png 424w, https://substackcdn.com/image/fetch/$s_!Ri-r!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d636b7-8da3-4d6f-9f85-882dc291b9ce_1610x1801.png 848w, https://substackcdn.com/image/fetch/$s_!Ri-r!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d636b7-8da3-4d6f-9f85-882dc291b9ce_1610x1801.png 1272w, https://substackcdn.com/image/fetch/$s_!Ri-r!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d636b7-8da3-4d6f-9f85-882dc291b9ce_1610x1801.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ri-r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d636b7-8da3-4d6f-9f85-882dc291b9ce_1610x1801.png" width="1456" height="1629" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/39d636b7-8da3-4d6f-9f85-882dc291b9ce_1610x1801.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1629,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6240263,&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://milanjanosov.substack.com/i/201778251?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d636b7-8da3-4d6f-9f85-882dc291b9ce_1610x1801.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ri-r!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d636b7-8da3-4d6f-9f85-882dc291b9ce_1610x1801.png 424w, https://substackcdn.com/image/fetch/$s_!Ri-r!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d636b7-8da3-4d6f-9f85-882dc291b9ce_1610x1801.png 848w, https://substackcdn.com/image/fetch/$s_!Ri-r!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d636b7-8da3-4d6f-9f85-882dc291b9ce_1610x1801.png 1272w, https://substackcdn.com/image/fetch/$s_!Ri-r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d636b7-8da3-4d6f-9f85-882dc291b9ce_1610x1801.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1></h1><p></p><p>If you work with Earth observation data in 2026, you are no longer choosing between training a CNN from scratch or buying a commercial product. A third option has taken over the field: geospatial foundation models &#8212; large, self-supervised models pre-trained on massive satellite archives that you can fine-tune with a fraction of the labeled data you used to need.</p><p>The problem is that the landscape has exploded. NASA, ESA, Google DeepMind, IBM, Ai2, and half a dozen university labs have all shipped models in the last three years, and the differences between them &#8212; open weights vs. open embeddings, chip-level vs. pixel-level, encoder vs. generative &#8212; actually matter for your work.</p><p>So here is the consolidated map: every major publicly available geospatial foundation model, with the institution behind it, the foundational paper, and the key parameters. Bookmark this one. </p><p></p><p>And if you want to get hands-on - check out <a href="https://janosovm.gumroad.com/l/geoai101">Chapter 13</a>!</p><div><hr></div><h2>The institutional heavyweights</h2><p><strong>Prithvi-EO 2.0</strong> &#8212; NASA / IBM / Forschungszentrum J&#252;lich</p><p>The flagship of open institutional GeoAI. Pre-trained on 4.2 million global time-series samples from NASA&#8217;s Harmonized Landsat&#8211;Sentinel-2 archive at 30 m resolution, with temporal and location embeddings built in.</p><ul><li><p>Paper: Szwarcman et al., arXiv:2412.02732 (2024); v1.0: Jakubik et al., arXiv:2310.18660 (2023)</p></li><li><p>Sizes: 300M (ViT-L) and 600M (ViT-H) parameters, MAE pre-training</p></li><li><p>License: Apache 2.0, on Hugging Face (ibm-nasa-geospatial)</p></li></ul><p><strong>TerraMind 1.0</strong> &#8212; IBM / ESA &#934;-lab / Forschungszentrum J&#252;lich</p><p>The first any-to-any <em>generative</em> multimodal foundation model for EO. Feed it Sentinel-2 and it can generate SAR, land cover, DEM &#8212; and vice versa. Its &#8220;Thinking-in-Modalities&#8221; trick generates synthetic helper modalities during fine-tuning and inference.</p><ul><li><p>Paper: Jakubik et al., arXiv:2504.11171 (ICCV 2025)</p></li><li><p>Specs: 9 modalities, 9M spatiotemporally aligned samples (TerraMesh), 500B tokens; tiny / small / base (~240M backbone) / large versions</p></li><li><p>License: Apache 2.0, on Hugging Face (ibm-esa-geospatial)</p></li></ul><p><strong>OlmoEarth</strong> &#8212; Allen Institute for AI (Ai2)</p><p>The November 2025 release that reshuffled the leaderboard. A fully open multimodal family &#8212; weights, data, and code &#8212; that outperforms Prithvi, TerraMind, CROMA, and even Meta&#8217;s DINOv3 across classification, segmentation, detection, and regression. Ships with an end-to-end platform (Studio + Viewer) aimed at NGOs and governments.</p><ul><li><p>Paper: arXiv:2511.13655 (2025)</p></li><li><p>Specs: multiple model sizes, ~10 TB of multimodal EO pretraining data</p></li><li><p>License: fully open (weights + data + code)</p></li></ul><div><hr></div><h2>Big tech: open data, closed models</h2><p><strong>AlphaEarth Foundations</strong> &#8212; Google DeepMind</p><p>Not a downloadable model but arguably the most-used GeoFM artifact in the world: global, annual, analysis-ready embeddings. Every 10 m pixel on Earth gets a 64-dimensional vector compressing a full year of multi-sensor observations (optical, SAR, LiDAR, climate, even geotagged text). Important nuance: Google released the embeddings, not the model weights.</p><ul><li><p>Paper: Brown et al., arXiv:2507.22291 (2025)</p></li><li><p>Specs: 64-dim embeddings, 10 m, global, annual layers 2017&#8211;2024 (updated yearly); ~1.4 trillion embeddings per year</p></li><li><p>Access: Google Earth Engine + GCS, CC-BY 4.0</p></li></ul><div><hr></div><h2>The academic and open-source vanguard</h2><p><strong>Clay v1.5</strong> &#8212; Clay Foundation / Renaissance Philanthropy</p><p>The community workhorse. A ViT-based masked autoencoder producing 768-dimensional embeddings per image chip, trained on Sentinel-1/2, Landsat, and NAIP. No peer-reviewed paper &#8212; documentation and code are the reference.</p><ul><li><p>Reference: GitHub (Clay-foundation/model) + clay-foundation.github.io</p></li><li><p>License: Apache 2.0 (code + weights), ODC-BY (embeddings)</p></li></ul><p><strong>TESSERA</strong> &#8212; University of Oxford / University of Cambridge</p><p>The pixel-wise specialist. Instead of one embedding per image chip, every 10 m pixel gets its own 128-dimensional vector encoding a full year of Sentinel-1 + Sentinel-2 observations &#8212; a &#8220;spectral fingerprint&#8221; for every point on Earth. Exceptionally data-efficient for ecological tasks like tree species mapping.</p><ul><li><p>Paper: arXiv (2025), via geotessera.org</p></li><li><p>License: MIT (code), CC0 (embeddings)</p></li></ul><p><strong>SatMAE / SatMAE++</strong> &#8212; Stanford SustainLab / TechMN</p><p>The pioneer that brought masked autoencoders to temporal and multispectral satellite imagery. SatMAE++ added multi-scale pre-training to handle the resolution chaos of real-world sensors, with SOTA results on BigEarthNet, EuroSAT, and RESISC-45.</p><ul><li><p>Papers: Cong et al., arXiv:2207.08051 (NeurIPS 2022); Noman et al., arXiv:2403.05419 (CVPR 2024)</p></li><li><p>License: Apache 2.0</p></li></ul><p><strong>Scale-MAE</strong> &#8212; UC Berkeley / Meta</p><p>Solved scale-invariance with a clever idea: positional encodings that are aware of ground sample distance, so the model knows whether a patch covers 1 m or 30 m.</p><ul><li><p>Paper: Reed et al., arXiv:2212.14532 (ICCV 2023)</p></li></ul><p><strong>SatlasPretrain</strong> &#8212; Allen Institute for AI</p><p>A brute-force labeled pre-training dataset and model: 302 million images annotated with 137 label categories, Swin Transformer backbones.</p><ul><li><p>Paper: Bastani et al., arXiv:2211.15660 (ICCV 2023)</p></li><li><p>License: ODC-BY / Apache 2.0</p></li></ul><p><strong>DOFA</strong> &#8212; TU Munich (Zhu Lab)</p><p>One backbone, any sensor. A neural-plasticity-inspired design that conditions the encoder on wavelength, letting a single model ingest optical, SAR, multispectral, and hyperspectral data.</p><ul><li><p>Paper: Xiong et al., arXiv:2403.15356 (2024)</p></li></ul><p><strong>CROMA</strong> &#8212; Carleton University / Vector Institute</p><p>Contrastive radar&#8211;optical fusion combined with masked modeling &#8212; consistently one of the strongest academic baselines on SAR + optical benchmarks.</p><ul><li><p>Paper: Fuller et al., arXiv:2311.00566 (NeurIPS 2023)</p></li></ul><p><strong>Galileo</strong> &#8212; Allen Institute for AI</p><p>Learns global and local features simultaneously through dual contrastive objectives &#8212; strong on tasks spanning wildly different object scales (ships vs. glaciers).</p><ul><li><p>Paper: arXiv:2502.09356 (2025)</p></li></ul><div><hr></div><h2>The specialists</h2><p><strong>SkySense / SkySense++</strong> &#8212; Wuhan University / Ant Group</p><p>The billion-scale multimodal monster: ~2B parameters, factorized spatiotemporal encoder, pre-trained on 21.5M (V1) &#8594; 27M (++) multimodal sequences combining high-resolution optical, multispectral, and SAR. SkySense V2 adds Mixture-of-Experts.</p><ul><li><p>Papers: arXiv:2312.10115 (CVPR 2024); SkySense++ in <em>Nature Machine Intelligence</em> (2025)</p></li></ul><p><strong>SpectralGPT</strong> &#8212; Hong et al. (multi-institution)</p><p>The hyperspectral/spectral specialist: 3D tensor masking purpose-built for spectral data, trained on over one million spectral images.</p><ul><li><p>Paper: arXiv:2311.07113 (IEEE TPAMI 2024)</p></li><li><p>Size: ~600M parameters</p></li></ul><p><strong>EarthPT</strong> &#8212; Smith et al. (Aspia Space)</p><p>The odd one out &#8212; a <em>decoder</em>, not an encoder. A 700M-parameter autoregressive transformer that forecasts future pixel-level surface reflectance (400&#8211;2300 nm), letting you predict what a landscape will look like months ahead.</p><ul><li><p>Paper: arXiv:2309.07207 (2023)</p></li><li><p>License: MIT</p></li></ul><p><strong>Presto</strong> &#8212; NASA Harvest / McGill</p><p>Proof that foundation models don&#8217;t have to be huge: a pixel-timeseries transformer with roughly 400K parameters that runs on a laptop and still delivers excellent crop-mapping performance.</p><ul><li><p>Paper: Tseng et al., arXiv:2304.14065 (2023)</p></li></ul><p><strong>RemoteCLIP</strong> &#8212; multi-institution</p><p>The vision-language entry: CLIP adapted to remote sensing, enabling zero-shot classification and text-to-image retrieval over satellite archives.</p><ul><li><p>Paper: arXiv:2306.11029 (IEEE TGRS 2024)</p></li></ul><div><hr></div><h2>The takeaway</h2><p>If you zoom out, 2023&#8211;2024 was the <strong>open-weights era</strong>: Prithvi, SatMAE, Satlas &#8212; download the checkpoint, fine-tune, done. In 2025 the field split into two philosophies:</p><p><strong>Open models</strong> (TerraMind, OlmoEarth, DOFA, Galileo) hand you the full architecture and let you adapt it to anything.</p><p><strong>Open embeddings, closed models</strong> (AlphaEarth, and increasingly Tessera-style products) hand you pre-computed representations of the entire planet &#8212; incredibly convenient, but you build on what they give you.</p><p>Neither approach wins outright. If your task fits a kNN or a small head on top of global embeddings, AlphaEarth gets you to a map in an afternoon. If you need control &#8212; custom sensors, custom regions, custom tasks &#8212; the open-model camp is where the real leverage is. And with OlmoEarth&#8217;s benchmark results, the gap between &#8220;open&#8221; and &#8220;state of the art&#8221; has effectively closed.</p><p>The model is no longer the bottleneck. Your reference data is.</p><div><hr></div><p></p>]]></content:encoded></item><item><title><![CDATA[GeoAI Bingo — How Many Can You Answer?]]></title><description><![CDATA[101 questions from the book. Question first, answer below. Keep score.]]></description><link>https://milanjanosov.substack.com/p/geoai-bingo-how-many-can-you-answer</link><guid isPermaLink="false">https://milanjanosov.substack.com/p/geoai-bingo-how-many-can-you-answer</guid><dc:creator><![CDATA[Milan Janosov]]></dc:creator><pubDate>Tue, 16 Jun 2026 07:02:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!QNiK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc2011d-ee33-45d6-b74b-82807a5a77bd_1379x1924.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Complementing my brand new <a href="https://janosovm.gumroad.com/l/geoai101">book</a>, I put together this list of questions and answers on GeoAI.<br></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QNiK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc2011d-ee33-45d6-b74b-82807a5a77bd_1379x1924.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QNiK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc2011d-ee33-45d6-b74b-82807a5a77bd_1379x1924.png 424w, https://substackcdn.com/image/fetch/$s_!QNiK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc2011d-ee33-45d6-b74b-82807a5a77bd_1379x1924.png 848w, https://substackcdn.com/image/fetch/$s_!QNiK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc2011d-ee33-45d6-b74b-82807a5a77bd_1379x1924.png 1272w, https://substackcdn.com/image/fetch/$s_!QNiK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc2011d-ee33-45d6-b74b-82807a5a77bd_1379x1924.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QNiK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc2011d-ee33-45d6-b74b-82807a5a77bd_1379x1924.png" width="539" height="752.0203045685279" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/abc2011d-ee33-45d6-b74b-82807a5a77bd_1379x1924.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1924,&quot;width&quot;:1379,&quot;resizeWidth&quot;:539,&quot;bytes&quot;:1219950,&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://milanjanosov.substack.com/i/201575750?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc2011d-ee33-45d6-b74b-82807a5a77bd_1379x1924.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QNiK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc2011d-ee33-45d6-b74b-82807a5a77bd_1379x1924.png 424w, https://substackcdn.com/image/fetch/$s_!QNiK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc2011d-ee33-45d6-b74b-82807a5a77bd_1379x1924.png 848w, https://substackcdn.com/image/fetch/$s_!QNiK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc2011d-ee33-45d6-b74b-82807a5a77bd_1379x1924.png 1272w, https://substackcdn.com/image/fetch/$s_!QNiK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc2011d-ee33-45d6-b74b-82807a5a77bd_1379x1924.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p></p><h2>The Questions</h2><ol><li><p>What is the primary definition of GeoAI?</p></li><li><p>Which three properties of spatial data frequently break generic machine learning assumptions?</p></li><li><p>The CNN encoder&#8217;s basic compositional unit typically consists of which three layers?</p></li><li><p>What specific architectural feature allows a U-Net to produce a full-resolution pixel-by-pixel output?</p></li><li><p>A network that compares two images of the same place by passing both through the same encoder is known as a _____ network.</p></li><li><p>What is the core difference between the output of a PatchClassifier and a U-Net?</p></li><li><p>In GeoAI regression tasks, what is the standard choice for the loss function?</p></li><li><p>Which architecture is designed to remember spatial patterns over time to predict the next image-like map?</p></li><li><p>Why must Sentinel-2 data (stored as uint16) be normalized before being fed into a neural network?</p></li><li><p>Define: spatial autocorrelation.</p></li><li><p>What is the primary danger of using a random split rather than a geographic split on spatial data?</p></li><li><p>The _____ Principle states that no architecture or loss function can recover from consistently wrong or biased training labels.</p></li><li><p>What does the &#8216;Geographic Train-Test Leakage&#8217; principle suggest as a best practice for model evaluation?</p></li><li><p>In a segmentation pipeline, what is &#8216;Early Stopping&#8217; used to prevent?</p></li><li><p>Which metric is generally preferred over simple accuracy for evaluating imbalanced spatial segmentation tasks?</p></li><li><p>How is a Normalized Digital Surface Model (nDSM) calculated using LiDAR data?</p></li><li><p>What resolution does the Sentinel-2 satellite provide for its visible and near-infrared bands?</p></li><li><p>The standard API used in the book for direct, cloud-optimized download of satellite imagery is called _____.</p></li><li><p>What is the main difference between semantic and instance segmentation?</p></li><li><p>The _____ Principle warns that adding coarse spectral channels can hurt model performance if labels are much finer.</p></li><li><p>Which post-processing step converts binary raster predictions into GIS-compatible GeoJSON polygons?</p></li><li><p>How are patch-level integer labels typically generated from polygon geometries for classification tasks?</p></li><li><p>In multi-class patch classification, what is &#8216;inverse-frequency weighting&#8217; used to address?</p></li><li><p>Why is a plain accuracy score misleading for object detection tasks?</p></li><li><p>In object detection, what is the purpose of Non-Maximum Suppression (NMS)?</p></li><li><p>What is &#8216;random jitter&#8217; in the context of training an object detector?</p></li><li><p>Which regression metric measures the proportion of variance in the target variable explained by the model?</p></li><li><p>Why is a Siamese network&#8217;s &#8216;shared weights&#8217; feature useful for change detection?</p></li><li><p>What are &#8216;pseudo-labels&#8217; in the context of change detection?</p></li><li><p>In spatio-temporal forecasting, what does a &#8216;persistence baseline&#8217; assume?</p></li><li><p>What is the primary goal of unsupervised GeoAI?</p></li><li><p>What does TF-IDF normalization accomplish in urban clustering tasks?</p></li><li><p>According to the book, when should a classical algorithm be preferred over a neural network?</p></li><li><p>Tobler&#8217;s First Law of Geography states that near things are _____ related than distant things.</p></li><li><p>How is a convolutional autoencoder trained for spatial interpolation (gap-filling)?</p></li><li><p>Define: foundation model.</p></li><li><p>What is the specific output of Meta&#8217;s SAM (Segment Anything Model)?</p></li><li><p>Which foundation model produces a 128-dimensional temporal embedding vector per 10 m pixel?</p></li><li><p>What is the core role of a Large Language Model (LLM) in a GeoAI agent?</p></li><li><p>The GeoAI agent&#8217;s &#8216;ReAct&#8217; reasoning loop stands for _____.</p></li><li><p>In an agent loop, why is a spatial index like an STRtree used?</p></li><li><p>What happens to the nDSM values during normalization for binary building segmentation?</p></li><li><p>Why is the NDVI (Normalized Difference Vegetation Index) useful for change detection?</p></li><li><p>What is &#8216;Sliding Window Inference&#8217;?</p></li><li><p>Which chapter&#8217;s workflow centers on frame-to-frame reconstruction of missing pixels?</p></li><li><p>What is &#8216;Global Average Pooling&#8217; (GAP) typically used for in a patch classifier?</p></li><li><p>In the context of Manhattan functional zones, what does K-means clustering use to group grid cells?</p></li><li><p>RemoteCLIP uses _____ training to align image and text vectors in a shared embedding space.</p></li><li><p>In an object detection pipeline, what is the &#8216;Confidence Threshold&#8217;?</p></li><li><p>What is the &#8216;Persistence Baseline&#8217; in vegetation forecasting?</p></li><li><p>How does the &#8216;Anatomy of a GeoAI Training Pipeline&#8217; stay consistent across different tasks?</p></li><li><p>Concept: IoU (Intersection over Union)</p></li><li><p>What is the primary benefit of the AlphaEarth foundation model being hosted on Google Earth Engine?</p></li><li><p>In the GeoAI agent loop, what is the &#8216;Action/Observation&#8217; structure?</p></li><li><p>Why is NDVI usually standard-scaled or clipped for visualization?</p></li></ol><div><hr></div><p></p><h2>The Answers</h2><ol><li><p>The intersection of artificial intelligence and spatial analysis.</p></li><li><p>Autocorrelation, CRS distortion, and geographic leakage.</p></li><li><p>Convolution, BatchNorm, and ReLU.</p></li><li><p>A decoder connected to the encoder via skip connections.</p></li><li><p>Siamese</p></li><li><p>PatchClassifier outputs one label per patch while U-Net outputs one label per pixel.</p></li><li><p>Mean Squared Error (MSE).</p></li><li><p>ConvLSTM</p></li><li><p>Neural networks cannot train directly on raw 16-bit integer reflectance values.</p></li><li><p>Definition: The tendency of geographically near pixels to look more similar than distant ones.</p></li><li><p>Information leaks from the training set to the test set due to spatial autocorrelation.</p></li><li><p>Label Quality</p></li><li><p>Split data by distinct regions with a buffer zone between train and test sets.</p></li><li><p>Overfitting by halting training when validation performance stops improving.</p></li><li><p>Intersection over Union (IoU).</p></li><li><p>Subtracting the Digital Terrain Model (DTM) from the Digital Surface Model (DSM).</p></li><li><p>10 meters.</p></li><li><p>STAC (SpatioTemporal Asset Catalog)</p></li><li><p>Semantic labels every pixel by class, while instance labels every unique object separately.</p></li><li><p>Resolution Mismatch</p></li><li><p>Vectorization</p></li><li><p>By a majority vote of the pixels within the patch.</p></li><li><p>Class imbalance in the training dataset.</p></li><li><p>Most of the image is background, so a model predicting &#8216;no objects&#8217; would still score high.</p></li><li><p>Collapsing overlapping candidate detections into a single highest-confidence box per object.</p></li><li><p>Applying small random spatial offsets to the patch center to make the model robust to misalignment.</p></li><li><p>R&#178; (Coefficient of Determination).</p></li><li><p>It ensures feature-space differences reflect actual scene changes rather than network inconsistencies.</p></li><li><p>Training labels generated automatically from an algorithmic signal like an NDVI difference map.</p></li><li><p>That the current state will remain unchanged in the next time step.</p></li><li><p>Finding underlying structure in spatial data without pre-defined labels.</p></li><li><p>Highlighting distinctive amenity categories while reducing the influence of globally common ones.</p></li><li><p>When the feature space and dataset are small and features directly encode the quantity of interest.</p></li><li><p>More</p></li><li><p>By hiding clear pixels with an artificial mask and tasking the model with reconstructing them.</p></li><li><p>Definition: A large neural network pre-trained on massive data that transfers to many downstream tasks.</p></li><li><p>A dense set of class-agnostic segmentation masks for every distinct region in an image.</p></li><li><p>TESSERA</p></li><li><p>Deciding which spatial tools to call and in what order to answer a natural language query.</p></li><li><p>Reasoning + Acting</p></li><li><p>To efficiently find points within polygons or radii without iterating over every point feature.</p></li><li><p>They are clipped to a height ceiling and divided by that ceiling to reach a [0, 1] range.</p></li><li><p>It provides a clear signal for vegetation growth or harvest between two dates.</p></li><li><p>Processing a large scene by applying a model to small overlapping patches and stitching the results.</p></li><li><p>Chapter 12: Spatial Interpolation.</p></li><li><p>Compressing the hierarchy of features into a single vector of class scores.</p></li><li><p>Similarity in TF-IDF weighted POI category counts.</p></li><li><p>Contrastive</p></li><li><p>The minimum score required for a model prediction to be considered a candidate detection.</p></li><li><p>A guess that uses the previous month&#8217;s imagery as the prediction for the current month.</p></li><li><p>It reuses the same sequence of normalization, patching, splitting, training, and evaluation.</p></li><li><p>Definition: A metric calculated by dividing the area of overlap by the area of union between two shapes.</p></li><li><p>It provides 64-band annual embeddings worldwide without local compute requirements.</p></li><li><p>The LLM chooses a tool (Action) and receives the tool&#8217;s result (Observation) to plan the next step.</p></li><li><p>To ensure consistent color representation of vegetation across different scenes and dates.</p></li></ol><div><hr></div><p></p><h2>Scoring</h2><ul><li><p><strong>45+</strong> &#8212; You wrote the book. Wait&#8230; Milan?</p></li><li><p><strong>30&#8211;44</strong> &#8212; Production-grade. You debug models, not vibes.</p></li><li><p><strong>15&#8211;29</strong> &#8212; Solid foundations. The book will fill the gaps.</p></li><li><p><strong>Under 15</strong> &#8212; Perfect starting point. That&#8217;s literally what the 101 steps are for.</p></li></ul>]]></content:encoded></item><item><title><![CDATA[It's Here: 101 Steps to GeoAI from Scratch]]></title><description><![CDATA[My new book is live &#8212; and there's a giveaway. Plus it's my birthday, so let's celebrate properly.]]></description><link>https://milanjanosov.substack.com/p/its-here-101-steps-to-geoai-from</link><guid isPermaLink="false">https://milanjanosov.substack.com/p/its-here-101-steps-to-geoai-from</guid><dc:creator><![CDATA[Milan Janosov]]></dc:creator><pubDate>Mon, 15 Jun 2026 08:16:02 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!CFE3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059b53d2-f3bc-4da2-ae83-16e7e8ca090c_1867x2800.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CFE3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059b53d2-f3bc-4da2-ae83-16e7e8ca090c_1867x2800.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CFE3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059b53d2-f3bc-4da2-ae83-16e7e8ca090c_1867x2800.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CFE3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059b53d2-f3bc-4da2-ae83-16e7e8ca090c_1867x2800.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CFE3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059b53d2-f3bc-4da2-ae83-16e7e8ca090c_1867x2800.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CFE3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059b53d2-f3bc-4da2-ae83-16e7e8ca090c_1867x2800.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CFE3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059b53d2-f3bc-4da2-ae83-16e7e8ca090c_1867x2800.jpeg" width="1456" height="2184" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/059b53d2-f3bc-4da2-ae83-16e7e8ca090c_1867x2800.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2184,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1119574,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://milanjanosov.substack.com/i/202091582?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059b53d2-f3bc-4da2-ae83-16e7e8ca090c_1867x2800.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CFE3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059b53d2-f3bc-4da2-ae83-16e7e8ca090c_1867x2800.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CFE3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059b53d2-f3bc-4da2-ae83-16e7e8ca090c_1867x2800.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CFE3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059b53d2-f3bc-4da2-ae83-16e7e8ca090c_1867x2800.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CFE3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059b53d2-f3bc-4da2-ae83-16e7e8ca090c_1867x2800.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p></p><p>Dear readers,</p><p>Today, on my 35th birthday, I get to give you something instead.</p><p>My new book is finally here:</p><p><strong>Geospatial Data Science Essentials: 101 Steps to GeoAI from Scratch</strong></p><p>&#128214; https://janosovm.gumroad.com/l/geoai101</p><p>&#127873; <strong>Giveaway:</strong> I&#8217;m giving away 5 free copies over the next 5 days. <a href="https://www.linkedin.com/feed/update/urn:li:activity:7472199617812815872/">Like and share my LinkedIn launch post to enter.</a></p><div><hr></div><p>This is what I&#8217;ve been working on for most of this year &#8212; teasing it for weeks, and even publishing a standalone chapter that became a #1 hit on Amazon this weekend. Funny enough, for a physicist, even in the Geography category.</p><p>It&#8217;s been almost two years since the first Geospatial Data Science Essentials book, which covered the basics in Python. The spirit of the series hasn&#8217;t changed. While the number of stunning out-of-the-box AI tools keeps growing &#8212; and using them is tempting &#8212; my goal here is to go back and learn GeoAI from scratch, building the foundations.</p><p>The book guides you through 14 chapters and 101 steps, most starting from zero &#8212; even building neural networks from scratch in PyTorch &#8212; so you pick up the skills to fiercely interrogate every AI model you end up working with.</p><p>By the end, you&#8217;ll have built, from scratch: a U-Net that segments buildings, a CNN that classifies land cover, an object detector that finds vehicles, a height regressor, a Siamese change detector, a ConvLSTM forecaster, an unsupervised clustering pipeline, a cloud-gap autoencoder, a tour of foundation models, and a conversational GeoAI agent that answers spatial questions by running real Python.</p><p><strong>Outline:</strong></p><ol><li><p>Introduction &amp; Foundations</p></li><li><p>Architecture Zoo</p></li><li><p>Anatomy of a GeoAI Training Pipeline</p></li><li><p>Data Preparation for GeoAI</p></li><li><p>Semantic Segmentation</p></li><li><p>Patch Classification</p></li><li><p>Object Detection</p></li><li><p>Spatial Regression</p></li><li><p>Change Detection</p></li><li><p>Spatio-temporal Forecasting</p></li><li><p>Clustering &amp; Unsupervised GeoAI</p></li><li><p>Spatial Interpolation</p></li><li><p>Foundation Models</p></li><li><p>Building a GeoAI Agent</p></li></ol><div><hr></div><p>&#128214; <strong>Full book:</strong> https://janosovm.gumroad.com/l/geoai101 <br><br>&#127379; <strong>Free preview:</strong> https://janosovm.gumroad.com/l/geoai101sample <br><br>&#127379; <strong>Free guide on Kindle (last day):</strong> https://www.amazon.com/dp/B0H3SQBK5Q</p><div><hr></div><p>Last but not least &#8212; none of this would exist without you. Since the first book, this turned from a solo project into a real community: thousands of readers, students, and the maps and messages you keep sending. That&#8217;s what kept me going through the long nights of writing.<br></p><p>Thank you.</p><p>Milan</p>]]></content:encoded></item><item><title><![CDATA[Tomorrow: GeoAI Essentials launches — and the free Kindle version expires]]></title><description><![CDATA[Last chance to grab the free standalone chapter. Full book available tomorrow at 10am CET.]]></description><link>https://milanjanosov.substack.com/p/tomorrow-geoai-essentials-launches</link><guid isPermaLink="false">https://milanjanosov.substack.com/p/tomorrow-geoai-essentials-launches</guid><dc:creator><![CDATA[Milan Janosov]]></dc:creator><pubDate>Sun, 14 Jun 2026 11:03:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cmuv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9916cde-daeb-4ce4-b287-bc7a7ec16607_1810x2262.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cmuv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9916cde-daeb-4ce4-b287-bc7a7ec16607_1810x2262.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cmuv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9916cde-daeb-4ce4-b287-bc7a7ec16607_1810x2262.png 424w, https://substackcdn.com/image/fetch/$s_!cmuv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9916cde-daeb-4ce4-b287-bc7a7ec16607_1810x2262.png 848w, https://substackcdn.com/image/fetch/$s_!cmuv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9916cde-daeb-4ce4-b287-bc7a7ec16607_1810x2262.png 1272w, https://substackcdn.com/image/fetch/$s_!cmuv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9916cde-daeb-4ce4-b287-bc7a7ec16607_1810x2262.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cmuv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9916cde-daeb-4ce4-b287-bc7a7ec16607_1810x2262.png" width="457" height="571.25" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d9916cde-daeb-4ce4-b287-bc7a7ec16607_1810x2262.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:457,&quot;bytes&quot;:3224336,&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://milanjanosov.substack.com/i/201565373?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9916cde-daeb-4ce4-b287-bc7a7ec16607_1810x2262.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cmuv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9916cde-daeb-4ce4-b287-bc7a7ec16607_1810x2262.png 424w, https://substackcdn.com/image/fetch/$s_!cmuv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9916cde-daeb-4ce4-b287-bc7a7ec16607_1810x2262.png 848w, https://substackcdn.com/image/fetch/$s_!cmuv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9916cde-daeb-4ce4-b287-bc7a7ec16607_1810x2262.png 1272w, https://substackcdn.com/image/fetch/$s_!cmuv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9916cde-daeb-4ce4-b287-bc7a7ec16607_1810x2262.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Two things happening tomorrow.</p><p>First, the free Kindle version of the GeoAI agent guide expires. If you haven&#8217;t downloaded it yet, today is the last day:</p><p><strong>Free on Kindle &#8212; last day:</strong> <a href="https://www.amazon.com/dp/B0H3SQBK5Q">https://www.amazon.com/dp/B0H3SQBK5Q</a></p><p>Second, the full book launches tomorrow at 10am CET.</p><p>Geospatial Data Science Essentials: 101 Steps to GeoAI from Scratch &#8212; 14 chapters, 101 hands-on steps, every architecture built from scratch in PyTorch. Real satellite, LiDAR, and aerial data throughout. No black boxes.</p><p><strong>Available tomorrow!</strong></p><p>If you are on the fence, the free multi-chapter preview gives you the first steps of all 14 chapters to browse before buying:</p><p><strong>Free preview:</strong> <a href="https://janosovm.gumroad.com/l/geoai101sample">https://janosovm.gumroad.com/l/geoai101sample</a></p><p>For paid subscribers, your exclusive discount code is arriving to your inbox very soon &#8212; check your email tomorrow morning before the public launch goes live.</p><p>See you tomorrow.</p><p>Milan</p>]]></content:encoded></item><item><title><![CDATA[Tomorrow I turn one year older — and this book goes live]]></title><description><![CDATA[101 Steps to GeoAI from Scratch: 14 chapters, 460 pages, every architecture built from scratch in PyTorch. Paid subscribers get it tonight at 35% off.]]></description><link>https://milanjanosov.substack.com/p/tomorrow-i-turn-one-year-older-and</link><guid isPermaLink="false">https://milanjanosov.substack.com/p/tomorrow-i-turn-one-year-older-and</guid><dc:creator><![CDATA[Milan Janosov]]></dc:creator><pubDate>Sun, 14 Jun 2026 06:01:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!b3GE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1813870-bda8-4f9d-a186-781bfb69e788_2048x2048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!b3GE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1813870-bda8-4f9d-a186-781bfb69e788_2048x2048.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!b3GE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1813870-bda8-4f9d-a186-781bfb69e788_2048x2048.jpeg 424w, https://substackcdn.com/image/fetch/$s_!b3GE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1813870-bda8-4f9d-a186-781bfb69e788_2048x2048.jpeg 848w, https://substackcdn.com/image/fetch/$s_!b3GE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1813870-bda8-4f9d-a186-781bfb69e788_2048x2048.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!b3GE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1813870-bda8-4f9d-a186-781bfb69e788_2048x2048.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!b3GE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1813870-bda8-4f9d-a186-781bfb69e788_2048x2048.jpeg" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f1813870-bda8-4f9d-a186-781bfb69e788_2048x2048.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1909613,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://milanjanosov.substack.com/i/201416911?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1813870-bda8-4f9d-a186-781bfb69e788_2048x2048.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!b3GE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1813870-bda8-4f9d-a186-781bfb69e788_2048x2048.jpeg 424w, https://substackcdn.com/image/fetch/$s_!b3GE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1813870-bda8-4f9d-a186-781bfb69e788_2048x2048.jpeg 848w, https://substackcdn.com/image/fetch/$s_!b3GE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1813870-bda8-4f9d-a186-781bfb69e788_2048x2048.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!b3GE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1813870-bda8-4f9d-a186-781bfb69e788_2048x2048.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><blockquote><p>Tomorrow is June 15. Two things happen: I get a year older, and <em>Geospatial Data Science Essentials: 101 Steps to GeoAI from Scratch</em> officially launches.</p><p>This is the book I&#8217;ve spent the past year building. The GeoAI books out there fall into four camps: academic surveys without a learning path, case studies without implementation, visionary books without code, and tutorials that import a high-level library on page one. None of them builds the thing from scratch.</p><p>So this one does. 14 chapters, 101 steps, 460 pages &#8212; every architecture implemented from scratch in PyTorch. No segmentation libraries, no pretrained weights, no black boxes. Across the book you&#8217;ll build:</p><ul><li><p>A U-Net segmenting buildings over Edinburgh</p></li><li><p>A CNN land cover classifier over Hungary</p></li><li><p>A vehicle detector from aerial imagery over the Netherlands</p></li><li><p>A height regressor replacing LiDAR with Sentinel-2</p></li><li><p>Siamese change detection and ConvLSTM vegetation forecasting</p></li><li><p>Foundation model benchmarks: SAM, RemoteCLIP, TESSERA, AlphaEarth</p></li><li><p>And in the final chapter, a GeoAI agent that answers spatial questions in natural language</p></li></ul><p>All 14 Jupyter notebooks, the shared <code>geoai_utils</code> module, and every dataset included.</p><p>It launches tomorrow  &#8594; <a href="https://janosovm.gumroad.com/l/geoai101">janosovm.gumroad.com/l/geoai101</a>. If you want to look first, the free sample with the opening chapters is <a href="https://janosovm.gumroad.com/l/geoai101-sample">here</a>.</p><p>But paid subscribers don&#8217;t wait until tomorrow &#8212; your early access starts now, below.</p></blockquote><p></p><p></p><p></p>
      <p>
          <a href="https://milanjanosov.substack.com/p/tomorrow-i-turn-one-year-older-and">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#1 in Remote Sensing, Geography, and Database Management Systems]]></title><description><![CDATA[The free guide hit the top of all three categories. Full book launches Sunday.]]></description><link>https://milanjanosov.substack.com/p/1-in-remote-sensing-geography-and</link><guid isPermaLink="false">https://milanjanosov.substack.com/p/1-in-remote-sensing-geography-and</guid><dc:creator><![CDATA[Milan Janosov]]></dc:creator><pubDate>Sat, 13 Jun 2026 08:50:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!OWvg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7fc84b8-485b-4b33-8f17-e27010518f09_1933x2417.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OWvg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7fc84b8-485b-4b33-8f17-e27010518f09_1933x2417.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OWvg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7fc84b8-485b-4b33-8f17-e27010518f09_1933x2417.png 424w, https://substackcdn.com/image/fetch/$s_!OWvg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7fc84b8-485b-4b33-8f17-e27010518f09_1933x2417.png 848w, https://substackcdn.com/image/fetch/$s_!OWvg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7fc84b8-485b-4b33-8f17-e27010518f09_1933x2417.png 1272w, https://substackcdn.com/image/fetch/$s_!OWvg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7fc84b8-485b-4b33-8f17-e27010518f09_1933x2417.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OWvg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7fc84b8-485b-4b33-8f17-e27010518f09_1933x2417.png" width="1456" height="1821" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e7fc84b8-485b-4b33-8f17-e27010518f09_1933x2417.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1821,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1595261,&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://milanjanosov.substack.com/i/201848383?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7fc84b8-485b-4b33-8f17-e27010518f09_1933x2417.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OWvg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7fc84b8-485b-4b33-8f17-e27010518f09_1933x2417.png 424w, https://substackcdn.com/image/fetch/$s_!OWvg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7fc84b8-485b-4b33-8f17-e27010518f09_1933x2417.png 848w, https://substackcdn.com/image/fetch/$s_!OWvg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7fc84b8-485b-4b33-8f17-e27010518f09_1933x2417.png 1272w, https://substackcdn.com/image/fetch/$s_!OWvg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7fc84b8-485b-4b33-8f17-e27010518f09_1933x2417.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>A quick update before Sunday&#8217;s launch.</p><p>The free standalone Chapter 14 guide I published on Amazon Kindle hit #1 in Remote Sensing, #1 in Geography, and #1 in Database Management Systems &#8212; all three simultaneously, within two days of the free promotion going live. 200+ downloads. Thank you to everyone who grabbed it and shared it.</p><p>If you haven&#8217;t downloaded it yet, it&#8217;s free until June 15 &#8212; the day the full book launches:</p><p><strong>Free on Kindle:</strong> <a href="https://www.amazon.com/dp/B0H3SQBK5Q">https://www.amazon.com/dp/B0H3SQBK5Q</a></p><p>The guide walks through building a working GeoAI agent from scratch &#8212; five spatial tools, a ReAct reasoning loop, real Manhattan POI data. No GPU, no cloud compute, runs on any laptop in under two minutes once you add your free Groq API key.</p><div><hr></div><p>Regarding the full book - official launch on Monday, and a few more secret insights coming here on Substack this weekend.</p><p>See you Saturday.</p><p>Milan</p>]]></content:encoded></item><item><title><![CDATA[I Built a GeoAI Agent That Answers Spatial Questions in Plain English. Here's How It Works.]]></title><description><![CDATA[tl;dr - https://www.amazon.com/Geospatial-Data-Science-Essentials-Quick-ebook/dp/B0H3SQBK5Q?ref_=ast_author_mpb]]></description><link>https://milanjanosov.substack.com/p/i-built-a-geoai-agent-that-answers</link><guid isPermaLink="false">https://milanjanosov.substack.com/p/i-built-a-geoai-agent-that-answers</guid><dc:creator><![CDATA[Milan Janosov]]></dc:creator><pubDate>Sat, 13 Jun 2026 07:01:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!TUDs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8e0ed4-f1dd-41a7-96a3-3a19da67f88b_896x691.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TUDs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8e0ed4-f1dd-41a7-96a3-3a19da67f88b_896x691.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TUDs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8e0ed4-f1dd-41a7-96a3-3a19da67f88b_896x691.jpeg 424w, https://substackcdn.com/image/fetch/$s_!TUDs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8e0ed4-f1dd-41a7-96a3-3a19da67f88b_896x691.jpeg 848w, https://substackcdn.com/image/fetch/$s_!TUDs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8e0ed4-f1dd-41a7-96a3-3a19da67f88b_896x691.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!TUDs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8e0ed4-f1dd-41a7-96a3-3a19da67f88b_896x691.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TUDs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8e0ed4-f1dd-41a7-96a3-3a19da67f88b_896x691.jpeg" width="896" height="691" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7b8e0ed4-f1dd-41a7-96a3-3a19da67f88b_896x691.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:691,&quot;width&quot;:896,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:191094,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://milanjanosov.substack.com/i/201782903?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8e0ed4-f1dd-41a7-96a3-3a19da67f88b_896x691.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TUDs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8e0ed4-f1dd-41a7-96a3-3a19da67f88b_896x691.jpeg 424w, https://substackcdn.com/image/fetch/$s_!TUDs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8e0ed4-f1dd-41a7-96a3-3a19da67f88b_896x691.jpeg 848w, https://substackcdn.com/image/fetch/$s_!TUDs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8e0ed4-f1dd-41a7-96a3-3a19da67f88b_896x691.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!TUDs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8e0ed4-f1dd-41a7-96a3-3a19da67f88b_896x691.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>tl;dr - <a href="https://www.amazon.com/Geospatial-Data-Science-Essentials-Quick-ebook/dp/B0H3SQBK5Q?ref_=ast_author_mpb">https://www.amazon.com/Geospatial-Data-Science-Essentials-Quick-ebook/dp/B0H3SQBK5Q?ref_=ast_author_mpb</a><br></p><p></p><p>Ask it &#8220;which neighborhood has the highest number of bars?&#8221; and it answers: East Village, with 118 &#8212; roughly double the Lower East Side&#8217;s 59 in second place. Ask &#8220;how many cafes are within 500 meters of the Empire State Building?&#8221; and it geocodes the landmark, queries a spatial index, and gives you the count. Ask something messier &#8212; &#8220;I&#8217;m staying at a hotel in the Financial District, I&#8217;m a picky eater, no fast food, and I won&#8217;t travel more than a kilometer &#8212; what&#8217;s the best food around me?&#8221; &#8212; and it anchors at a coordinate, runs radius queries for restaurants and cafes, and synthesizes an answer that respects the distance constraint. This is a GeoAI agent: a language model wired to real geospatial tools, running real Python against 24,000 OpenStreetMap points across Manhattan&#8217;s 32 neighborhoods. I built it from scratch, documented every line, and the full guide is free right now.</p><p>The architecture is simpler than the term &#8220;agent&#8221; suggests. The agent receives your question, asks the LLM which tool to call, executes that tool as an actual Python function, shows the model the result, and repeats until the model decides it has enough to answer. Ask, act, observe, repeat &#8212; that loop is the whole paradigm. The model has access to five spatial tools: geocode turns an address or landmark into coordinates, a POI locator that searches nearby amenities and places, a POI counter counts them, a neighborhood profiler which summarizes their characteristics, and a compare - neighbourhoods that puts two of those side by side. The interesting part is that the sequence isn&#8217;t programmed. The &#8220;which neighborhood has the most bars&#8221; question requires the model to recognize on its own that it needs a city-wide scan, not a single lookup. Nobody wrote that branching logic &#8212; the model plans it at runtime.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zqxe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63589200-f3ce-4776-a19f-2f564d41e9c5_800x1000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zqxe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63589200-f3ce-4776-a19f-2f564d41e9c5_800x1000.png 424w, https://substackcdn.com/image/fetch/$s_!zqxe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63589200-f3ce-4776-a19f-2f564d41e9c5_800x1000.png 848w, https://substackcdn.com/image/fetch/$s_!zqxe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63589200-f3ce-4776-a19f-2f564d41e9c5_800x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!zqxe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63589200-f3ce-4776-a19f-2f564d41e9c5_800x1000.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zqxe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63589200-f3ce-4776-a19f-2f564d41e9c5_800x1000.png" width="800" height="1000" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/63589200-f3ce-4776-a19f-2f564d41e9c5_800x1000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1000,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Article content&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Article content" title="Article content" srcset="https://substackcdn.com/image/fetch/$s_!zqxe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63589200-f3ce-4776-a19f-2f564d41e9c5_800x1000.png 424w, https://substackcdn.com/image/fetch/$s_!zqxe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63589200-f3ce-4776-a19f-2f564d41e9c5_800x1000.png 848w, https://substackcdn.com/image/fetch/$s_!zqxe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63589200-f3ce-4776-a19f-2f564d41e9c5_800x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!zqxe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63589200-f3ce-4776-a19f-2f564d41e9c5_800x1000.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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"></figcaption></figure></div><p>Why build this by hand instead of installing a framework? Because every GeoAI agent I&#8217;ve seen on the market is closed: you install it, it works or it doesn&#8217;t, and you never see the moving parts. The entire reasoning loop here is under forty lines of Python. When the agent picks the wrong tool, here you can see exactly why &#8212; the system prompt, the JSON it emitted, the result it read back are all visible lines of code, not framework abstractions. Even more so, you can use that info to tweak the model. That visibility is what lets you debug it, extend it to new tools, or swap Manhattan for your own city. The guide is also honest about where the simplifications live: the fuzzy neighborhood matcher silently picks the first match when &#8220;Upper West Side&#8221; hits two official areas, and a production system would disambiguate.</p><p>Running it costs nothing and assumes almost nothing after you have your simple Python environment set up (with instructions in the full guide). The language model runs on Groq&#8217;s free tier &#8212; no credit card, no GPU, no cloud compute. The two Manhattan data files ship with the companion materials, alongside a setup script, the pinned requirements, and a standalone geoai_agent.py that drops you into an interactive terminal prompt where you can watch each tool call print as the agent thinks. You need Python 3.11, working knowledge of functions and dictionaries, and some passing familiarity with pandas. No PyTorch, no deep learning, no GIS desktop software, no prior chapters &#8212; this guide stands entirely on its own, and from a fresh setup you&#8217;re minutes away from your first answered query.</p><p>The guide is free on Kindle until June 15: <strong><a href="https://www.amazon.com/dp/B0H3SQBK5Q">https://www.amazon.com/dp/B0H3SQBK5Q</a></strong>. It&#8217;s one chapter &#8212; the final one &#8212; of <em>Geospatial Data Science Essentials: 101 Steps to GeoAI from Scratch</em>, which launches June 15: fourteen chapters and ten more GeoAI architectures built from first principles in PyTorch, from semantic segmentation to change detection to spatio-temporal forecasting, on real Sentinel-2, LiDAR, and aerial data. Pre-order the full book here: <strong><a href="https://janosovm.gumroad.com/l/geoai101">https://janosovm.gumroad.com/l/geoai101</a></strong>, or grab the free multi-chapter preview first: <strong><a href="https://janosovm.gumroad.com/l/geoai101sample">https://janosovm.gumroad.com/l/geoai101sample</a></strong>. Build the agent this week. By the time the book lands, you&#8217;ll know exactly what&#8217;s under the hood &#8212; and why that matters.</p>]]></content:encoded></item><item><title><![CDATA[Free this week: Build Your First GeoAI Agent ]]></title><description><![CDATA[The final chapter of GeoAI Essentials &#8212; standalone, runnable, free on Kindle until June 15.]]></description><link>https://milanjanosov.substack.com/p/free-this-week-build-your-first-geoai</link><guid isPermaLink="false">https://milanjanosov.substack.com/p/free-this-week-build-your-first-geoai</guid><dc:creator><![CDATA[Milan Janosov]]></dc:creator><pubDate>Thu, 11 Jun 2026 08:07:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!EUdZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0c0b33-3424-4a53-9463-93df6fea5018_1810x2262.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Ahead of the full-scale GeoAI book launch&#8230;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EUdZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0c0b33-3424-4a53-9463-93df6fea5018_1810x2262.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EUdZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0c0b33-3424-4a53-9463-93df6fea5018_1810x2262.png 424w, https://substackcdn.com/image/fetch/$s_!EUdZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0c0b33-3424-4a53-9463-93df6fea5018_1810x2262.png 848w, https://substackcdn.com/image/fetch/$s_!EUdZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0c0b33-3424-4a53-9463-93df6fea5018_1810x2262.png 1272w, https://substackcdn.com/image/fetch/$s_!EUdZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0c0b33-3424-4a53-9463-93df6fea5018_1810x2262.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EUdZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0c0b33-3424-4a53-9463-93df6fea5018_1810x2262.png" width="581" height="726.25" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f0c0b33-3424-4a53-9463-93df6fea5018_1810x2262.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:581,&quot;bytes&quot;:3224336,&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://milanjanosov.substack.com/i/201565180?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0c0b33-3424-4a53-9463-93df6fea5018_1810x2262.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EUdZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0c0b33-3424-4a53-9463-93df6fea5018_1810x2262.png 424w, https://substackcdn.com/image/fetch/$s_!EUdZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0c0b33-3424-4a53-9463-93df6fea5018_1810x2262.png 848w, https://substackcdn.com/image/fetch/$s_!EUdZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0c0b33-3424-4a53-9463-93df6fea5018_1810x2262.png 1272w, https://substackcdn.com/image/fetch/$s_!EUdZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0c0b33-3424-4a53-9463-93df6fea5018_1810x2262.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>The full book launches on June 15, but I wanted to give you something to work with before then.</p><p>I pulled Chapter 14 &#8212; Building a GeoAI Agent &#8212; out of the book and published it as a free standalone guide on Amazon Kindle. It is free until June 15, no strings attached.</p><p>Here is what it covers: connecting a language model to five real geospatial tools in a ReAct loop, so natural-language questions get answered by executing actual Python on real Manhattan POI data. Ask it which neighbourhood has the most caf&#233;s, which NTA is closest to Central Park, or what is within 500 metres of a given address &#8212; it figures out which tool to call and runs it.</p><p>No prior chapters needed. No GPU. Runs on any laptop in under two minutes once you add your free Groq API key.</p><p><strong>Free on Kindle until June 15:</strong> <a href="https://www.amazon.com/dp/B0H3SQBK5Q">https://www.amazon.com/dp/B0H3SQBK5Q</a></p><p>The full book &#8212; all 14 chapters, 101 steps, every architecture built from scratch in PyTorch &#8212; comes out on June 15. If you want a preview of the full scope before then, the complete step-by-step outline is here: <a href="https://milanjanosov.substack.com/p/101-steps-to-geoai">https://milanjanosov.substack.com/p/101-steps-to-geoai</a></p><p>If you find it useful, share it with someone who would benefit.</p><p>Happy building, Milan</p>]]></content:encoded></item><item><title><![CDATA[37 Geospatial Papers You Shouldn’t Miss - May 2026 ]]></title><description><![CDATA[Part 2]]></description><link>https://milanjanosov.substack.com/p/37-geospatial-papers-you-shouldnt</link><guid isPermaLink="false">https://milanjanosov.substack.com/p/37-geospatial-papers-you-shouldnt</guid><dc:creator><![CDATA[Milan Janosov]]></dc:creator><pubDate>Mon, 01 Jun 2026 09:38:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jhuw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8edd6f-6125-4230-abff-a2bddaaecfcf_1000x1500.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jhuw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8edd6f-6125-4230-abff-a2bddaaecfcf_1000x1500.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jhuw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8edd6f-6125-4230-abff-a2bddaaecfcf_1000x1500.png 424w, https://substackcdn.com/image/fetch/$s_!jhuw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8edd6f-6125-4230-abff-a2bddaaecfcf_1000x1500.png 848w, https://substackcdn.com/image/fetch/$s_!jhuw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8edd6f-6125-4230-abff-a2bddaaecfcf_1000x1500.png 1272w, https://substackcdn.com/image/fetch/$s_!jhuw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8edd6f-6125-4230-abff-a2bddaaecfcf_1000x1500.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jhuw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8edd6f-6125-4230-abff-a2bddaaecfcf_1000x1500.png" width="522" height="783" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5d8edd6f-6125-4230-abff-a2bddaaecfcf_1000x1500.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1500,&quot;width&quot;:1000,&quot;resizeWidth&quot;:522,&quot;bytes&quot;:1875721,&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://milanjanosov.substack.com/i/200096321?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8edd6f-6125-4230-abff-a2bddaaecfcf_1000x1500.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jhuw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8edd6f-6125-4230-abff-a2bddaaecfcf_1000x1500.png 424w, https://substackcdn.com/image/fetch/$s_!jhuw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8edd6f-6125-4230-abff-a2bddaaecfcf_1000x1500.png 848w, https://substackcdn.com/image/fetch/$s_!jhuw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8edd6f-6125-4230-abff-a2bddaaecfcf_1000x1500.png 1272w, https://substackcdn.com/image/fetch/$s_!jhuw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8edd6f-6125-4230-abff-a2bddaaecfcf_1000x1500.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Here comes the second batch of this month&#8217;s digest, covering again a wide range of topics: from global forest mapping and Antarctic ice sheet dynamics to urban heat equity, cooling poverty in the Global South, wildfire forecasting, flood risk along US coastlines, and the expanding role of AI and LLMs in geospatial analysis. </p><p>Also featured: mobility datas&#8230;</p>
      <p>
          <a href="https://milanjanosov.substack.com/p/37-geospatial-papers-you-shouldnt">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[GeoAI Essentials]]></title><description><![CDATA[In about three weeks, &#119814;&#119838;&#119848;&#119852;&#119849;&#119834;&#119853;&#119842;&#119834;&#119845; &#119811;&#119834;&#119853;&#119834; &#119826;&#119836;&#119842;&#119838;&#119847;&#119836;&#119838; &#119812;&#119852;&#119852;&#119838;&#119847;&#119853;&#119842;&#119834;&#119845;&#119852; - 101 &#119826;&#119853;&#119838;&#119849;&#119852; &#119853;&#119848; &#119814;&#119838;&#119848;&#119808;&#119816; &#119839;&#119851;&#119848;&#119846; &#119826;&#119836;&#119851;&#119834;&#119853;&#119836;&#119841; will be out there, providing a complete walkt-through on getting hands-on with #GeoAI in #Python.]]></description><link>https://milanjanosov.substack.com/p/geoai-essentials</link><guid isPermaLink="false">https://milanjanosov.substack.com/p/geoai-essentials</guid><dc:creator><![CDATA[Milan Janosov]]></dc:creator><pubDate>Sun, 24 May 2026 12:10:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wKXm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6cc836a-0513-42cb-b56c-6f8e72cb694f_4191x4562.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In about three weeks, &#119814;&#119838;&#119848;&#119852;&#119849;&#119834;&#119853;&#119842;&#119834;&#119845; &#119811;&#119834;&#119853;&#119834; &#119826;&#119836;&#119842;&#119838;&#119847;&#119836;&#119838; &#119812;&#119852;&#119852;&#119838;&#119847;&#119853;&#119842;&#119834;&#119845;&#119852; - 101 &#119826;&#119853;&#119838;&#119849;&#119852; &#119853;&#119848; &#119814;&#119838;&#119848;&#119808;&#119816; &#119839;&#119851;&#119848;&#119846; &#119826;&#119836;&#119851;&#119834;&#119853;&#119836;&#119841; will be out there, providing a complete walkt-through on getting hands-on with #GeoAI in #Python. </p><p>And here I collected all the links you need to save and process to make sure you will be fully on board right aw&#8230;</p>
      <p>
          <a href="https://milanjanosov.substack.com/p/geoai-essentials">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[10 YT videos on GeoAI]]></title><description><![CDATA[If you would like to spend some time on YT learning this weekend, here I collected 10 videos you should watch to get on board with GeoAI, covering Python, QGIS, the state of the industry, and more - from Esri, Matt Forrest, Qiusheng Wu, myself, and others:]]></description><link>https://milanjanosov.substack.com/p/10-yt-videos-on-geoai</link><guid isPermaLink="false">https://milanjanosov.substack.com/p/10-yt-videos-on-geoai</guid><dc:creator><![CDATA[Milan Janosov]]></dc:creator><pubDate>Sat, 23 May 2026 10:06:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dg_O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a28080-e1c1-452e-b98e-2c41e71c1995_1000x1500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dg_O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a28080-e1c1-452e-b98e-2c41e71c1995_1000x1500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dg_O!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a28080-e1c1-452e-b98e-2c41e71c1995_1000x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!dg_O!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a28080-e1c1-452e-b98e-2c41e71c1995_1000x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!dg_O!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a28080-e1c1-452e-b98e-2c41e71c1995_1000x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!dg_O!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a28080-e1c1-452e-b98e-2c41e71c1995_1000x1500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dg_O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a28080-e1c1-452e-b98e-2c41e71c1995_1000x1500.jpeg" width="1000" height="1500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/59a28080-e1c1-452e-b98e-2c41e71c1995_1000x1500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1500,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:190500,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://milanjanosov.substack.com/i/198947128?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a28080-e1c1-452e-b98e-2c41e71c1995_1000x1500.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dg_O!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a28080-e1c1-452e-b98e-2c41e71c1995_1000x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!dg_O!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a28080-e1c1-452e-b98e-2c41e71c1995_1000x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!dg_O!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a28080-e1c1-452e-b98e-2c41e71c1995_1000x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!dg_O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a28080-e1c1-452e-b98e-2c41e71c1995_1000x1500.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>If you would like to spend some time on YT learning this weekend, here I collected 10 videos you should watch to get on board with GeoAI, covering Python, QGIS, the state of the industry, and more - from <strong><a href="https://www.linkedin.com/company/esri/">Esri</a></strong>, <strong><a href="https://www.linkedin.com/in/mbforr/">Matt Forrest</a></strong>, <strong><a href="https://www.linkedin.com/in/giswqs/">Qiusheng Wu</a></strong>, myself, and others:<br><br>1. &#119830;&#119841;&#119834;&#119853; &#119842;&#119852; &#119814;&#119838;&#119848;&#119808;&#119816;? &#119821;&#119838;&#119854;&#119851;&#119834;&#119845; &#119821;&#119838;&#119853;&#119856;&#119848;&#119851;&#119844;&#119852; &amp; &#119810;&#119848;&#119847;&#119855;&#119848;&#119845;&#119854;&#119853;&#119842;&#119848;&#119847; &#119812;&#119857;&#119849;&#119845;&#119834;&#119842;&#119847;&#8230;</p>
      <p>
          <a href="https://milanjanosov.substack.com/p/10-yt-videos-on-geoai">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[35 Geospatial Papers You Shouldn’t Miss - May 2026]]></title><description><![CDATA[This month&#8217;s #geospatial #digest, as usual these days, starts with #GeoaI - from an autonomous agent purpose-built for spatial data science to new embeddings and even a manual data labeling tool.]]></description><link>https://milanjanosov.substack.com/p/35-geospatial-papers-you-shouldnt</link><guid isPermaLink="false">https://milanjanosov.substack.com/p/35-geospatial-papers-you-shouldnt</guid><dc:creator><![CDATA[Milan Janosov]]></dc:creator><pubDate>Fri, 15 May 2026 21:01:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!EY3W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb62faf2d-834e-48d9-84d3-dbfff56964a4_1445x1536.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EY3W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb62faf2d-834e-48d9-84d3-dbfff56964a4_1445x1536.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EY3W!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb62faf2d-834e-48d9-84d3-dbfff56964a4_1445x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!EY3W!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb62faf2d-834e-48d9-84d3-dbfff56964a4_1445x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!EY3W!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb62faf2d-834e-48d9-84d3-dbfff56964a4_1445x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!EY3W!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb62faf2d-834e-48d9-84d3-dbfff56964a4_1445x1536.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EY3W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb62faf2d-834e-48d9-84d3-dbfff56964a4_1445x1536.jpeg" width="1445" height="1536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b62faf2d-834e-48d9-84d3-dbfff56964a4_1445x1536.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1445,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:261975,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://milanjanosov.substack.com/i/197918151?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb62faf2d-834e-48d9-84d3-dbfff56964a4_1445x1536.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EY3W!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb62faf2d-834e-48d9-84d3-dbfff56964a4_1445x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!EY3W!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb62faf2d-834e-48d9-84d3-dbfff56964a4_1445x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!EY3W!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb62faf2d-834e-48d9-84d3-dbfff56964a4_1445x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!EY3W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb62faf2d-834e-48d9-84d3-dbfff56964a4_1445x1536.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>This month&#8217;s #geospatial #digest, as usual these days, starts with #GeoaI - from an autonomous agent purpose-built for spatial data science to new embeddings and even a manual data labeling tool.</p><p>The applied science side is equally rich. Studies on urban heat, forestry and green spaces, from global forest coverage to Berlin&#8217;s urban park equity review. Mo&#8230;</p>
      <p>
          <a href="https://milanjanosov.substack.com/p/35-geospatial-papers-you-shouldnt">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Which Countries Are the Most Circular?]]></title><description><![CDATA[Some countries are famously elongated &#8212; Chile stretches 4,300 km from north to south.]]></description><link>https://milanjanosov.substack.com/p/which-countries-are-the-most-circular</link><guid isPermaLink="false">https://milanjanosov.substack.com/p/which-countries-are-the-most-circular</guid><dc:creator><![CDATA[Milan Janosov]]></dc:creator><pubDate>Tue, 12 May 2026 19:01:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!flhu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbaefd96-ee66-477e-905e-3d410a1b96a0_1269x1484.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!flhu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbaefd96-ee66-477e-905e-3d410a1b96a0_1269x1484.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!flhu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbaefd96-ee66-477e-905e-3d410a1b96a0_1269x1484.png 424w, https://substackcdn.com/image/fetch/$s_!flhu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbaefd96-ee66-477e-905e-3d410a1b96a0_1269x1484.png 848w, https://substackcdn.com/image/fetch/$s_!flhu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbaefd96-ee66-477e-905e-3d410a1b96a0_1269x1484.png 1272w, https://substackcdn.com/image/fetch/$s_!flhu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbaefd96-ee66-477e-905e-3d410a1b96a0_1269x1484.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!flhu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbaefd96-ee66-477e-905e-3d410a1b96a0_1269x1484.png" width="1269" height="1484" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dbaefd96-ee66-477e-905e-3d410a1b96a0_1269x1484.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1484,&quot;width&quot;:1269,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1764620,&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://milanjanosov.substack.com/i/195893958?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbaefd96-ee66-477e-905e-3d410a1b96a0_1269x1484.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!flhu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbaefd96-ee66-477e-905e-3d410a1b96a0_1269x1484.png 424w, https://substackcdn.com/image/fetch/$s_!flhu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbaefd96-ee66-477e-905e-3d410a1b96a0_1269x1484.png 848w, https://substackcdn.com/image/fetch/$s_!flhu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbaefd96-ee66-477e-905e-3d410a1b96a0_1269x1484.png 1272w, https://substackcdn.com/image/fetch/$s_!flhu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbaefd96-ee66-477e-905e-3d410a1b96a0_1269x1484.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p>
      <p>
          <a href="https://milanjanosov.substack.com/p/which-countries-are-the-most-circular">
              Read more
          </a>
      </p>
   ]]></content:encoded></item></channel></rss>