<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Harjot Singh</title>
    <description>The latest articles on DEV Community by Harjot Singh (@harjot_singh_cc4987fdcaa2).</description>
    <link>https://dev.to/harjot_singh_cc4987fdcaa2</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3646941%2Fa7aa106d-c4cc-47e4-a83c-07ec71e6267d.jpg</url>
      <title>DEV Community: Harjot Singh</title>
      <link>https://dev.to/harjot_singh_cc4987fdcaa2</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/harjot_singh_cc4987fdcaa2"/>
    <language>en</language>
    <item>
      <title>Heat Shadow: Mapping Delhi's Invisible Heat Risk with Gemini and Earth Engine</title>
      <dc:creator>Harjot Singh</dc:creator>
      <pubDate>Wed, 15 Jul 2026 04:40:24 +0000</pubDate>
      <link>https://dev.to/harjot_singh_cc4987fdcaa2/heat-shadow-mapping-delhis-invisible-heat-risk-with-gemini-and-earth-engine-1gmk</link>
      <guid>https://dev.to/harjot_singh_cc4987fdcaa2/heat-shadow-mapping-delhis-invisible-heat-risk-with-gemini-and-earth-engine-1gmk</guid>
      <description>&lt;p&gt;Every summer, Delhi's heatwaves make headlines — record highs, IMD red alerts, hospitals filling up. But the citywide temperature number everyone quotes hides something important: heat risk isn't evenly distributed. A settlement with tree cover and a settlement with none can sit two kilometres apart, register the same official temperature, and face completely different realities on the ground.&lt;/p&gt;

&lt;p&gt;I wanted to build something that made that difference visible — and actionable — for the people actually responding to it: NGOs and field teams deciding, every morning, where to send limited cooling resources.&lt;/p&gt;

&lt;p&gt;That's Heat Shadow.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffl9mfhos8ghkstfvowah.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffl9mfhos8ghkstfvowah.png" alt=" " width="799" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## The problem with "it's 47°C today"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Delhi's informal settlements — jhuggis, resettlement colonies — are consistently the hardest hit in heatwaves, for reasons a single temperature reading doesn't capture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tin roofs&lt;/strong&gt; re-radiate heat, so indoor temperatures can run 3–5°C above the outdoor reading&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Narrow, dense lanes&lt;/strong&gt; trap heat overnight, so residents get little relief before the next day's peak&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tree canopy is unevenly distributed&lt;/strong&gt; — some clusters have partial shade during peak sun hours, others have almost none&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Existing heat-response tools report one number for the whole city. They don't tell a field team &lt;em&gt;which specific settlement&lt;/em&gt; has zero shade from 11am to 4pm today, or &lt;em&gt;why&lt;/em&gt; — is it tin-roof density, is it proximity to a landfill, is it floodplain humidity pushing the heat index up. That's the gap Heat Shadow tries to close.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## The core idea: hours of exposure, not just temperature&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The insight the whole project is built around: two settlements at the same peak temperature can face very different real risk depending on how many hours of the day they get &lt;em&gt;zero shade&lt;/em&gt;. So instead of ranking clusters by temperature alone, Heat Shadow computes an &lt;strong&gt;"unshaded hours"&lt;/strong&gt; figure per settlement — how many hours of the 9am–6pm peak-sun window have no canopy cover at all — and weights that heavily into the risk score.&lt;/p&gt;

&lt;p&gt;That number becomes the visual center of the dashboard: a 24-hour radial "shadow dial" per settlement, where the filled arc shows exactly which hours are exposed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## How it works&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Satellite thermal + canopy analysis — Google Earth Engine&lt;/strong&gt;&lt;br&gt;
Each night, a script pulls Landsat 8/9 land surface temperature data and Dynamic World land-cover classification for every registered settlement cluster, computing peak temperature and tree-canopy fraction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Risk scoring&lt;/strong&gt;&lt;br&gt;
A transparent, tunable formula converts peak temperature, unshaded hours, and population density into a single 0–100 risk score — weighted toward exposure duration, since that's the factor generic heat maps miss.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Hyperlocal advisories — Gemini API&lt;/strong&gt;&lt;br&gt;
This is where it stops being just a map. &lt;code&gt;gemini-2.5-flash&lt;/code&gt; takes each cluster's raw numbers &lt;em&gt;and&lt;/em&gt; its specific local risk factors (landfill proximity, tin-roof density, floodplain humidity) and writes a short, concrete advisory — in English and Hindi — for the field team responding that day. The prompt is deliberately built to avoid generic "stay hydrated" output: it asks for one specific, actionable priority per cluster, grounded in that cluster's actual conditions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. The dashboard&lt;/strong&gt;&lt;br&gt;
A ranked daily priority queue, so an NGO can see at a glance which settlements need attention first — and click into any one for the full risk breakdown and advisory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## Google tech stack&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Thermal + shade analysis&lt;/td&gt;
&lt;td&gt;Google Earth Engine (Landsat 8/9, Sentinel-2, Dynamic World V1)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Advisory generation&lt;/td&gt;
&lt;td&gt;Gemini API (&lt;code&gt;gemini-2.5-flash&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data storage&lt;/td&gt;
&lt;td&gt;Firebase / Firestore&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Geolocation&lt;/td&gt;
&lt;td&gt;Google Maps Platform&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scheduling&lt;/td&gt;
&lt;td&gt;Cloud Run + Cloud Scheduler&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;## What I'd build next&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is a prototype, not a pilot — the honest next steps are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Partner with an NGO to register real cluster boundaries and validate population data against ward surveys&lt;/li&gt;
&lt;li&gt;Replace the shade heuristic with a proper solar-position + building-height shadow model&lt;/li&gt;
&lt;li&gt;Push advisories directly to residents via WhatsApp Business API, not just field teams&lt;/li&gt;
&lt;li&gt;Add a feedback loop where field teams mark whether a cooling point was actually needed, to correct the model over a season&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;## Try it&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Code, architecture writeup, and the real Earth Engine + Gemini integration scripts are on GitHub: **&lt;a href="https://github.com/Harjotsingh00/heat-shadow" rel="noopener noreferrer"&gt;https://github.com/Harjotsingh00/heat-shadow&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Video link: &lt;a href="https://drive.google.com/file/d/1RhS5stfwkwe2YSbZHnXdqMbTkQyvka0S/view?usp=sharing" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/1RhS5stfwkwe2YSbZHnXdqMbTkQyvka0S/view?usp=sharing&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're working on something similar for heat resilience or civic tech in India, I'd love to hear from you.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built for [Google AI APAC Builder submission]. Google technologies used: Gemini API, Google Earth Engine, Firebase/Firestore, Google Maps Platform.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>generativeai</category>
      <category>civictech</category>
      <category>ai</category>
      <category>googlecloud</category>
    </item>
  </channel>
</rss>
