<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>EORST on EORST Blog</title>
    <link>/</link>
    <description>Recent content in EORST on EORST Blog</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 12 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>A Field Guide to the GeoRust Ecosystem</title>
      <link>/posts/017-field-guide-georust-ecosystem/</link>
      <pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate>
      <guid>/posts/017-field-guide-georust-ecosystem/</guid>
      <description>&lt;p&gt;The &lt;a href=&#34;https://georust.org/&#34;&gt;GeoRust ecosystem&lt;/a&gt; has quietly become one of Rust&amp;rsquo;s most coherent and well-maintained domain-specific ecosystems. If you&amp;rsquo;re working with geospatial data in Rust — whether vector geometries, raster files, coordinate transforms, or spatial indexes — the odds are good that a mature, well-documented crate already exists for your problem. This post is a map of that territory as of mid-2026.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Benchmarking Rust vs Python&#43;Dask for NDVI: 23× Faster, and Why That Matters for Carbon</title>
      <link>/posts/003-benchmark-rust-vs-python-dask/</link>
      <pubDate>Sun, 10 May 2026 00:00:00 +0000</pubDate>
      <guid>/posts/003-benchmark-rust-vs-python-dask/</guid>
      <description>&lt;p&gt;Last week I wanted to benchmark our Rust pipeline against the Python &amp;ldquo;standard&amp;rdquo; — the DEA Knowledge Hub notebooks that everyone uses. I based the workflow on the &lt;a href=&#34;https://knowledge.dea.ga.gov.au/notebooks/Real_world_examples/Burnt_area_mapping/&#34;&gt;burnt area mapping notebook&lt;/a&gt;, which uses the NDVI mean-over-time approach.&lt;/p&gt;&#xA;&lt;p&gt;What followed was a result that confirmed what I&amp;rsquo;d suspected about Python&amp;rsquo;s Dask for CPU-bound geospatial workloads — and what I&amp;rsquo;d argued at FOSS4G 2025: &lt;strong&gt;the language you choose has a real environmental cost&lt;/strong&gt;. 23× slower doesn&amp;rsquo;t just mean 23× more money. It means substantially more energy and CO₂ for the exact same output. How much more? We haven&amp;rsquo;t measured it with a power meter yet — but we can estimate, and the direction is unambiguous.&lt;/p&gt;</description>
    </item>
    <item>
      <title>End-to-End Geospatial Processing with EORST</title>
      <link>/posts/002-end-to-end-workflow/</link>
      <pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate>
      <guid>/posts/002-end-to-end-workflow/</guid>
      <description>&lt;p&gt;This post walks through a complete geospatial processing pipeline using rss_core and eorst. We&amp;rsquo;ll query satellite imagery from DEA spanning two UTM zones, and show how eorst handles the automatic reprojection.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;New to remote sensing?&lt;/strong&gt; Start with &lt;a href=&#34;/posts/001-introduction-geospatial-rust/&#34;&gt;Getting Started with Geospatial Rust&lt;/a&gt; — covers satellite platforms, spectral bands, indices, and why cloud detection matters.&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Getting Started with Geospatial Rust</title>
      <link>/posts/001-introduction-geospatial-rust/</link>
      <pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate>
      <guid>/posts/001-introduction-geospatial-rust/</guid>
      <description>&lt;p&gt;If you&amp;rsquo;ve ever looked at a satellite image of farmland, grasslands, forests, or cities, you&amp;rsquo;ve seen &lt;strong&gt;remote sensing&lt;/strong&gt; data. Each pixel in those images contains measured values — stored as digital numbers (DNs) in raw data, or as surface reflectance in analysis-ready products — across different spectral bands: blue, green, red, near-infrared, and more. These bands tell us about vegetation health, water content, urban development, and land cover.&lt;/p&gt;&#xA;&lt;p&gt;This post introduces the core concepts of geospatial raster processing for Rust programmers who&amp;rsquo;ve never worked with satellite imagery. We&amp;rsquo;ll cover what the satellites measure, why their data looks the way it does, and what you can actually do with it.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Already know remote sensing?&lt;/strong&gt; Jump ahead to &lt;a href=&#34;/posts/002-end-to-end-workflow/&#34;&gt;End-to-End Geospatial Processing with EORST&lt;/a&gt; — a code-heavy walkthrough building a complete pipeline.&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Welcome to EORST</title>
      <link>/posts/welcome/</link>
      <pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate>
      <guid>/posts/welcome/</guid>
      <description>&lt;p&gt;Welcome to the EORST blog!&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gitlab.com/jrsrp/sys/eors_workspace&#34;&gt;EORST&lt;/a&gt; is an open-source Rust library for processing geospatial raster data. Inspired by Python libraries like rasterio and rioxarray, it enables efficient parallel processing of large-scale raster datasets.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;New to remote sensing?&lt;/strong&gt; Start with &lt;a href=&#34;/posts/001-introduction-geospatial-rust/&#34;&gt;Getting Started with Geospatial Rust&lt;/a&gt; for foundational concepts.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Want a complete workflow?&lt;/strong&gt; See &lt;a href=&#34;/posts/002-end-to-end-workflow/&#34;&gt;End-to-End Geospatial Processing with EORST&lt;/a&gt; for a code-heavy tutorial.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Benchmarking eorst vs Python+Dask?&lt;/strong&gt; See &lt;a href=&#34;/posts/003-benchmark-rust-vs-python-dask/&#34;&gt;Rust vs Python+Dask for NDVI: 23× Faster&lt;/a&gt; — real numbers with FMask cloud masking and carbon impact analysis.&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>FOSS4G 2025 — Notes From the Road</title>
      <link>/posts/000-foss4g-2025-notes-from-the-road/</link>
      <pubDate>Mon, 15 Sep 2025 00:00:00 +0000</pubDate>
      <guid>/posts/000-foss4g-2025-notes-from-the-road/</guid>
      <description>&lt;p&gt;This is not an academic summary. Just some personal notes from a week at &lt;a href=&#34;https://2025.foss4g.org/&#34;&gt;FOSS4G 2025&lt;/a&gt; — what I saw, what resonated, and what I&amp;rsquo;m still thinking about.&lt;/p&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/about/</guid>
      <description>&lt;p&gt;EORST (Earth Observation and Remote Sensing Toolkit) is a high-performance Rust library for processing geospatial raster data. It&amp;rsquo;s designed for anyone who needs to process large satellite imagery datasets efficiently — researchers, engineers, ecologists.&lt;/p&gt;&#xA;&lt;h2 id=&#34;mission&#34;&gt;Mission&lt;/h2&gt;&#xA;&lt;p&gt;Make geospatial processing fast, safe, and accessible. Rust&amp;rsquo;s type system and performance characteristics are ideally suited for the demands of satellite imagery analysis — from querying STAC catalogs to computing spectral indices across thousands of scenes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Changelog</title>
      <link>/changelog/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/changelog/</guid>
      <description>&lt;h2 id=&#34;eorst&#34;&gt;EORST&lt;/h2&gt;&#xA;&lt;h3 id=&#34;v030-current&#34;&gt;v0.3.0 (current)&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Semantic band selection with the &lt;code&gt;Select&lt;/code&gt; trait — pick bands by name, not index&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;RasterDatasetBuilder&lt;/code&gt; with fluent API for STAC queries and file lists&lt;/li&gt;&#xA;&lt;li&gt;Parallel block processing via &lt;code&gt;apply()&lt;/code&gt; with configurable thread count&lt;/li&gt;&#xA;&lt;li&gt;Automatic reprojection across UTM zones&lt;/li&gt;&#xA;&lt;li&gt;GeoTIFF export with proper georeferencing&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;ndarray&lt;/code&gt; integration for efficient array operations&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;v020&#34;&gt;v0.2.0&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Initial &lt;code&gt;RasterDataset&lt;/code&gt; with block-based access&lt;/li&gt;&#xA;&lt;li&gt;Basic STAC integration&lt;/li&gt;&#xA;&lt;li&gt;GeoTIFF I/O with GDAL&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;v010&#34;&gt;v0.1.0&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Prototype raster reading/writing&lt;/li&gt;&#xA;&lt;li&gt;Experimental band selection API&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;rss_core&#34;&gt;rss_core&lt;/h2&gt;&#xA;&lt;h3 id=&#34;v040-current&#34;&gt;v0.4.0 (current)&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;ImageQueryBuilder&lt;/code&gt; with canonical band resolution&lt;/li&gt;&#xA;&lt;li&gt;STAC client with file caching and TTL&lt;/li&gt;&#xA;&lt;li&gt;Cloud mask decoding for DEA, Planetary Computer, Element84&lt;/li&gt;&#xA;&lt;li&gt;Provider-agnostic band name translation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;v030&#34;&gt;v0.3.0&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Initial STAC query support&lt;/li&gt;&#xA;&lt;li&gt;Basic cloud cover filtering&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
  </channel>
</rss>
