---
title: "Aeris Forecast"
slug: aeris-forecast
date: 2026-02-10
url: https://mohammadhameed.dev/projects/aeris-forecast
status: published
tags: ["geospatial", "systems"]
technologies: ["Python", "PostGIS", "Cesium", "MapLibre"]
---

{/* Sample case study for the design refresh — placeholder metrics; swap the
    architecture diagram and screenshots once real ones exist. */}

Every aviation weather tool I used showed the same picture: a beautiful
isobar map that answers "what is the weather" but never "can I fly *this*
corridor *now*, and where exactly would it get dicey."

Aeris is my attempt at the second question — a personal pipeline that turns
public gridded forecasts into a decision surface for pilots and field crews.

## Pipeline

Four moving parts, deliberately boring:

1. **Ingest** — pull model runs (wind, temp, precip, ceiling) on schedule.
2. **Reshape** — regrid to multi-resolution storage. Wind shear wants fine
   cells; pressure gradients don't. Same idea as the thesis quadtree, applied
   to weather.
3. **Query** — a PostGIS layer that answers "along this polyline, when does
   any threshold break?" in one round trip.
4. **Show** — a MapLibre client that paints risk, not raw variables.

```sql
SELECT segment, time,
       max(wind_gust)  AS gust,
       ceil(min(ceiling)) AS floor
FROM aeris.enroute
WHERE flight_id = $1
GROUP BY segment, time
HAVING max(wind_gust) > 22 OR min(ceiling) < 1000;
```

<Callout type="insight">
The hardest part was not the data — it was the honesty of the map. A red
polygon must mean *you would reroute*, not *the math crossed a threshold
somewhere nearby*.
</Callout>

<Figure src="/images/projects/aeris-forecast-alt.svg" alt="The en-route query returns break-times per segment" caption="One polyline in, a table of 'when and where it stops being wise' out." />

## What it taught me

- Public weather data is a solved problem; *legibility* is not.
- P95 tile latency is a UI feature. People forgive slow models, not slow maps.
- Multi-resolution storage makes "is this flight legal and wise right now"
  cost one query instead of a dashboard scan.

## Status

Runs quietly on a small box, mostly for me and a few pilot friends. If the
geospatial or simulation side of this interests you — or you have a corridor
worth testing — [say the word](/contact).
