<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>SmartCane | Timon Weitkamp | No Worries, Just Maps</title>
    <link>https://timonweitkamp.me/tags/smartcane/</link>
      <atom:link href="https://timonweitkamp.me/tags/smartcane/index.xml" rel="self" type="application/rss+xml" />
    <description>SmartCane</description>
    <generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Sat, 07 Nov 2026 00:00:00 +0000</lastBuildDate>
    <image>
      <url>https://timonweitkamp.me/media/icon_hu11869890484969746898.png</url>
      <title>SmartCane</title>
      <link>https://timonweitkamp.me/tags/smartcane/</link>
    </image>
    
    <item>
      <title>Field Time Series Viewer</title>
      <link>https://timonweitkamp.me/project/field-time-series-viewer/</link>
      <pubDate>Sat, 07 Nov 2026 00:00:00 +0000</pubDate>
      <guid>https://timonweitkamp.me/project/field-time-series-viewer/</guid>
      <description>&lt;p&gt;When a field suddenly looks different in our weekly analysis, the first question is always: is this real? It can be a cloud the mask missed, actual crop change, or a field that is bare because it was just harvested. To answer that you need to look at the images themselves, and most of my colleagues don&amp;rsquo;t open QGIS.&lt;/p&gt;
&lt;p&gt;So I built a web app that shows the downloaded GeoTIFFs of every field we monitor. You pick a field and scroll through all its images in order.&lt;/p&gt;
&lt;p&gt;It is a Streamlit app in Python, with GDAL to read the rasters, packaged as a Docker image so it runs the same on a server as on a colleague&amp;rsquo;s laptop. Syncthing (open source, a bit like OneDrive) syncs the TIFFs from the laptops where they are processed to a server in the EU, and the viewer is hosted on that same server.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Related:&lt;/strong&gt; &lt;a href=&#34;https://timonweitkamp.me/project/smartcane-bv/&#34;&gt;SmartCane&lt;/a&gt; · &lt;a href=&#34;https://timonweitkamp.me/project/smartcane-web-apps/&#34;&gt;SmartCane web apps&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>SmartCane web apps</title>
      <link>https://timonweitkamp.me/project/smartcane-web-apps/</link>
      <pubDate>Fri, 06 Nov 2026 00:00:00 +0000</pubDate>
      <guid>https://timonweitkamp.me/project/smartcane-web-apps/</guid>
      <description>&lt;p&gt;The SmartCane pipeline needs clean inputs. If the field boundaries or the field data are wrong, the analysis is wrong too.&lt;/p&gt;
&lt;p&gt;Before, checking this meant opening QGIS or a script. Now there is a small set of browser tools for it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a data validation tool for the crop-analysis inputs&lt;/li&gt;
&lt;li&gt;a GeoJSON viewer and an ODK viewer, to look at field boundaries and field data&lt;/li&gt;
&lt;li&gt;a polygon analysis editor to check and fix field polygons&lt;/li&gt;
&lt;li&gt;a sugar mill locator: a map of mills in East and Southern Africa, coloured by country and sized by production, where you can draw in new mills and export them as CSV&lt;/li&gt;
&lt;li&gt;a viewer for our technical documentation, and a small ID generator&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each tool is a self-contained HTML and JavaScript page without a backend, so they are easy to host and to change. They are mainly for colleagues who are not technical, so they can check and prepare data themselves instead of waiting for me.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Related:&lt;/strong&gt; &lt;a href=&#34;https://timonweitkamp.me/project/smartcane-bv/&#34;&gt;SmartCane&lt;/a&gt; · &lt;a href=&#34;https://timonweitkamp.me/project/field-time-series-viewer/&#34;&gt;Field Time Series Viewer&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Talking to your field data on Signal</title>
      <link>https://timonweitkamp.me/project/signal-chatbot/</link>
      <pubDate>Wed, 04 Nov 2026 00:00:00 +0000</pubDate>
      <guid>https://timonweitkamp.me/project/signal-chatbot/</guid>
      <description>&lt;p&gt;SmartCane sends out a weekly report. That works, but a farmer&amp;rsquo;s question doesn&amp;rsquo;t always fit the week. Why is my field flagged? Should I harvest now? What does CI mean?&lt;/p&gt;
&lt;p&gt;So I&amp;rsquo;m building a chatbot on Signal that lets farmers &amp;ldquo;talk to their data&amp;rdquo;, on demand. When a message comes in, the bot checks who sent it, loads the latest indicators for that farmer&amp;rsquo;s fields, adds the weather, and looks up background from a small knowledge base. That knowledge base has about fourteen short documents on growth phases, diseases, pests, irrigation, nutrition, weeds and harvesting, plus optional agronomy documents from SASRI. All of that goes to a language model that runs on our own machine, and the answer goes back on Signal in the language the farmer wrote in. If the model is down, the farmer gets a short fallback message instead of silence.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Related:&lt;/strong&gt; &lt;a href=&#34;https://timonweitkamp.me/project/smartcane-bv/&#34;&gt;SmartCane&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>SmartCane: harvest intelligence for outgrower supply chains</title>
      <link>https://timonweitkamp.me/event/sasta-2026/</link>
      <pubDate>Thu, 20 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://timonweitkamp.me/event/sasta-2026/</guid>
      <description>&lt;p&gt;A short commercial presentation at the 98th SASTA Congress in Durban, the year SASTA turned 100.&lt;/p&gt;
&lt;p&gt;The question behind it comes up in almost every conversation with a mill: how much cane is coming next month? A mill that depends on outgrowers has to answer that for thousands of separate fields, many smaller than an acre. Scouting is accurate but only reaches a few dozen fields a day. The weighbridge is exact but only tells you what already arrived.&lt;/p&gt;
&lt;p&gt;The talk was about how we tell, from satellite imagery alone, that a field has been cut. One image is not enough. A dark field can be a harvest, but also cloud, shadow, a pre-harvest burn, lodging or waterlogging. What settles it is the order of the images. Our model (an LSTM) reads the full record of each field, from imagery at about 3 m with a near-daily revisit, and judges every date against what came before and after. We classify each pixel separately, so a field that is cut in sections over a few weeks shows up as a partial harvest instead of a confusing average.&lt;/p&gt;
&lt;p&gt;A second model uses that harvest history and the crop age to estimate which fields are likely to be cut in the next four weeks. The mill gets one file a week, as CSV or through an API, with every field&amp;rsquo;s last harvest, crop age and readiness score.&lt;/p&gt;
&lt;p&gt;I also showed the limits. On our reference scheme 78% of harvests were flagged before the cut. The readiness estimate is good within the last month and weak beyond about eight weeks, and detection is less certain under the cloud of the wet season.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://timonweitkamp.me/project/smartcane-bv/&#34;&gt;More about SmartCane&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
