Field station network · Caspian lowlands, Azerbaijan

Watching the conditions that let mosquitoes breed.

WolbaCaspian is a network of low-cost, solar-powered stations. Each one logs air and water temperature, humidity, rainfall and standing water every 15 minutes. We turn those readings into an estimate of breeding-habitat suitability: where conditions favour mosquito larvae, and where draining, covering or removing water would help most.

A student research project by Jeyla Ahmadzada, Ilyas Taghiyev, Youssef El Haroun, Mikayil Ahmadbayli and Vahid Musayev.

Interval
15 min
Power
solar + 18650
Region
Lankaran · Astara · Masallı
Illustration of a WolbaCaspian monitoring station A station on a pole beside a pool of standing water. At the top, a tilted solar panel. On a left arm, a temperature and humidity sensor inside a stacked-plate radiation shield. On a right arm, a tipping-bucket rain gauge. Halfway down the pole, a controller box containing the ESP32, a microSD card and a real-time clock. Cables run from the box into the water to a submerged temperature probe and a pair of water-presence electrodes. ESP32 SOLAR PANEL T/RH SENSOR IN RADIATION SHIELD RAIN GAUGE TIPPING BUCKET CONTROLLER ESP32 · microSD · RTC WATER-PRESENCE ELECTRODES SUBMERGED WATER-TEMP PROBE
Fig. 1 — One station. Schematic, not to scale.
Scope / 1

What it does

  • Logs air temperature, water temperature, humidity, rainfall and standing water every 15 minutes.
  • Estimates breeding-habitat suitability at each monitored point.
  • Supports targeted, non-chemical control: drain, cover, remove.
Scope / 2

What it is not

  • It does not release mosquitoes or Wolbachia.
  • It does not diagnose disease.
  • It does not replace state surveillance.
  • It collects no personal data. There are no cameras.
Scope / 3

Where

The Caspian lowlands of Azerbaijan: the Lankaran, Astara and Masallı region.

Schematic map: Masallı inland, Lankaran and Astara on the Caspian coast, Astara at the border with Iran. Not to scale. MASALLI LANKARAN ASTARA IRAN CASPIAN SEA

Schematic · not to scale

Developed by Jeyla Ahmadzada, Ilyas Taghiyev, Youssef El Haroun, Mikayil Ahmadbayli and Vahid Musayev.

01Problem

Warm, humid, low-lying and full of water.

The Caspian lowland districts of Azerbaijan have irrigation channels, rice fields and dense settlement side by side. Mosquito activity there is persistent through the warm season.

Districts in the lowland belt
  • Lankaran
  • Astara
  • Masallı
  • Neftçala
  • Salyan
  • coastal strip
Three vector groups
Historical

Anopheles

Malaria

Historically the dominant vector in the region. There has been no local malaria transmission for years, but the ecology that supported it remains.

Current

Culex

West Nile virus

The main carrier of current arbovirus risk in the wider region.

Invasive

Aedes albopictus / Ae. aegypti

Dengue · chikungunya · Zika

Expanding through the Caucasus as the climate warms, and documented at points of entry.

Working assumptions

Which species we plan for

For the lowland we work with three species: Culex pipiens, Anopheles sacharovi and Aedes caspius. Invasive Aedes are monitored as a possible newcomer.

These are assumptions for specialists to check, not findings. Correcting them is part of the plan (see the request to specialists).

How it is controlled now

Repeated chemical spraying

  • It is costly to repeat.
  • It drives insecticide resistance.
  • It harms non-target species.
  • There is no fine-grained picture of where and when conditions favour breeding, so spraying is broad rather than targeted.
02Project

From a reading to a decision, in four steps.

Each step is simple on its own. Together they turn temperature, water and rain into a short list of places worth checking this week.

  1. STEP 01

    Measure

    Every 15 minutes, each station records air and water temperature, humidity, rainfall and standing water, with a timestamp and location.

  2. STEP 02

    Store

    Readings are written to microSD first, then uploaded over Wi-Fi or GSM. The connection can drop; the data does not.

  3. STEP 03

    Estimate

    Readings are compared with published development thresholds to produce a transparent suitability index: low, medium or high.

  4. STEP 04

    Act

    A map and trend view show which areas are becoming favourable, so ditches, containers and tyres can be drained, covered or removed.

Design decision A

Fixed stations, not drones

Drones give short, weather-dependent snapshots. A fixed station gives a continuous, 24/7, all-weather time series, which is the kind of record a model needs.

Design decision B

Biology first, algorithms second

Every sensor must connect to larval development in one sentence. The model starts as transparent rules and moves to statistics and machine learning only as far as labelled field data allows.

03Station

One station: five measurements, one local log.

Off-the-shelf parts, chosen so that each reading is stable enough to trust and simple enough to repair in the field.

Block diagram of a station Four sensors (SHT31 for air temperature and humidity, a tipping-bucket rain gauge with reed switch, water-presence electrodes or a capacitive level sensor, and a DS18B20 water temperature probe) feed an ESP32 controller. The controller keeps time with a DS3231 real-time clock and writes CSV files to microSD, then uploads over Wi-Fi or GSM to a server that produces the map and trend view. Power comes from a 6 volt solar panel through a charge controller into an 18650 cell. SENSORS CONTROLLER DATA POWER SHT31 Tipping bucket Electrodes / capacitive DS18B20 air temperature · RH rainfall · reed switch standing water 0/1 water temperature ESP32 wake · read ×5 · median deep sleep between cycles DS3231 RTC microSD CSV log local log first, always Wi-Fi / GSM ≤ 20 s · ≤ 3 tries Server index · map · trends Solar panel 6 V · 3–5 W Charge controller regulates charging 18650 cell overnight supply
Fig. 2 — Station block diagram. Arrows show data (dark) and power (orange). On narrow screens, scroll sideways.
Table 1

What is measured, and why

Variable Unit Why it matters for larvae
Air temperature °C Sets the speed of larval development; the basis for degree-days and cycle length.
Relative humidity % Affects adult survival and how fast small water bodies dry out.
Rainfall mm Fills breeding sites. Intensity matters: heavy rain can flush larvae out.
Standing water 0 / 1 A direct indicator that a breeding site exists. The most informative single feature.
Water temperature °C Larvae develop at water temperature, not air temperature.
Battery voltage V A service variable. Separates a “measured zero” from “the station is dead”.
Table 2

Hardware

Node Component Reason
Controller ESP32 Built-in Wi-Fi and a deep-sleep mode for low power use.
Temperature + humidity SHT31 (alt. BME280) Better humidity accuracy and less drift than DHT-class sensors.
Rainfall Tipping-bucket gauge with reed switch Measures amount. Resistive rain plates only detect that something is wet.
Standing water Stainless electrodes with alternating polarity, or capacitive level sensor Prevents electrolysis, which corrodes electrodes and corrupts readings.
Water temperature Waterproof DS18B20 Placed in the breeding site itself.
Clock DS3231 RTC Keeps accurate timestamps even when the network is down.
Storage microSD, plain CSV The local log is mandatory; upload is a copy, not the original.
Power 6 V 3–5 W solar panel, charge controller, 18650 cell Runs without mains power at field sites.
Housing IP65 box + ventilated radiation shield Stops a sun-heated box from corrupting temperature data.
Data format

Plain CSV, one file per station per month

  • Timestamps are in UTC.
  • A missing value is an empty field, never zero. Zero is a measurement.
  • Battery voltage, signal strength (rssi) and firmware version travel with every row.
Firmware cycle

Every 15 minutes

  1. wake
  2. 5 readings
  3. median
  4. write to SD
  5. upload ≤20 s, ≤3 tries
  6. deep sleep

The median of five readings removes single-sample spikes. The upload is time-limited so a weak signal cannot drain the battery.

LNK-01 · sample rowscsv
station_id,timestamp_utc,t_air_c,rh_pct,rain_mm,water_present,t_water_c,battery_v,rssi,fw_ver
LNK-01,2026-05-14T06:00:00Z,18.4,82.1,0.0,1,16.9,4.02,-67,1.3.0
LNK-01,2026-05-14T06:15:00Z,18.9,80.4,0.0,1,17.0,4.02,-66,1.3.0
LNK-01,2026-05-14T06:30:00Z,19.6,78.8,0.2,1,17.1,4.01,-70,1.3.0
Format example showing the column layout.
Calibration

Checked before deployment, and again every season

  • 72 hours of co-location with a reference instrument.
  • Fixed points: ice water for 0 °C; saturated salt solutions for humidity (MgCl₂ ≈ 33 %, NaCl ≈ 75 %).
  • A known-volume rain test for the gauge.
  • A 20-cycle wet/dry test for the water sensor.

Repeated every season and after any repair.

Table 3 · Acceptance
Variable Tolerance If outside
Air temperature ±0.5 °C Firmware correction
Humidity ±5 % Replace sensor
Rainfall ±10 % Adjust mm-per-tip constant
Standing water 0 false / 20 Check electrolysis or fouling
04Methodology

What the model claims, and what it does not.

The system estimates the suitability of conditions for larval development at a specific point, over a horizon of one to three weeks. It does not predict disease outbreaks.

Model ladder

Climb one rung at a time

Each rung is used only when the one below it has been tested and the data can support the next.

  1. Rule-based suitability index

    Built from published thresholds. Produces a value from 0 to 1, mapped to low, medium or high.

  2. Degree-day model, per species

    Accumulated heat above a development threshold, used to estimate how far along a larval cohort is.

  3. Logistic regression

    Fitted on labelled field data: the probability that larvae are present, given station features.

  4. Machine learning

    Only when the data objectively support it, and always reported with its error on held-out data.

A model that loses to a simple temperature threshold has no right to be called a model.

Features (from stations)

What goes in

  • Trailing 7- and 14-day means of water and air temperature
  • Accumulated degree-days
  • Rainfall sum
  • Number of days with standing water
  • Mean humidity
Labels (from field surveys)

What it is checked against

  • Larvae present or absent
  • Larvae per dip
  • Pupae

Labels come from independent weekly field surveys (section 06), never from the stations themselves.

Validation

How we test it honestly

Split by time

Train on early weeks, test on later weeks. Never a random split, which would leak the future into the past.

Always a baseline

Every model is compared against a simple temperature-threshold baseline.

Dated predictions

Real forecasting is checked by issuing dated predictions in advance, then comparing them with later observation in a second season.

05Try the model

Move the sliders. Watch the index.

A simplified version of rung 1 of the ladder. Change the conditions at one point and see how each factor contributes.

Standing water
26 °C
27 °C
70 %
20 mm
Suitability index
0.96
High

Factors (0–1)
  • Water temperaturefTw · gate1.00
  • Air temperaturefTa · weight 0.201.00
  • HumidityfRh · weight 0.150.75
  • RainfallfRn · weight 0.151.00

standing water = 1 (present)

Show the formula
trapezoid(x,a,b,c,d): 0 outside (a,d), rises a→b,
                      1 from b to c, falls c→d

fTw = trapezoid(t_water, 10, 24, 31, 38)
fTa = trapezoid(t_air,   10, 22, 32, 40)
fRh = clamp((rh − 40) / 40, 0, 1)
fRn = rain < 15   ? rain / 15 × 0.8
    : rain ≤ 100  ? 1
    : clamp(1 − (rain − 100) / 250, 0.6, 1)

index = water × fTw × (0.5 + 0.2·fTa + 0.15·fRh + 0.15·fRn)
level = <0.33 low · <0.66 medium · else high

Educational model with illustrative thresholds; in the project these are replaced by published species-specific thresholds and tuned against field data. An index of conditions, not a forecast of outbreaks.

06Field survey

Ground truth, one dip at a time.

Stations provide the features. A model also needs something independent to predict: what is actually in the water. That comes from a weekly larval survey done by people, with a fixed protocol.

Protocol

Same points, same day, same method

  1. 5–8 fixed points per station, within 500 m. Chosen once and kept for the whole season.
  2. Weekly, on the same weekday, in the morning, about 08:00–11:00.
  3. A standard white dipper (~350 ml). Approach slowly from the shaded side and scoop the surface at 45°.
  4. Exactly 10 dips per point.
  5. Count early larvae (L1–L2), late larvae (L3–L4) and pupae separately.
  6. Always record zeros. An empty dip is data.
  7. Larvae per dip = total ÷ 10
Record for every point

Survey sheet fields

site_id
Fixed identifier of the point
habitat
Habitat type (see table below)
depth
Water depth
sun_shade
Sun or shade
notes
Insecticide treatment, cleaning, construction. A zero after treatment means a person intervened, not that conditions were unsuitable.
photo
One photo of the point
Field cue: resting position of mosquito larvae Left: an Anopheles larva lies flat, parallel to and just under the water surface. Right: a Culex or Aedes larva hangs down at an angle, with its breathing siphon touching the surface. WATER SURFACE Anopheles lies parallel to the surface Culex / Aedes hang at an angle, breathing through a siphon
Fig. 3 — A field cue, not an identification. Species are identified by specialists.
Table 4

Habitat types

Habitat Why it is on the list
Irrigation ditch The dominant rural breeding type.
Rice field / flooded plot Classic Anopheles habitat.
Barrel / container Where invasive Aedes would first appear.
Old tyres / debris Productive, and easy to remove.
Natural puddle The direct link between rainfall and breeding.
Sewage / septic / drain Typical Culex pipiens habitat.
Species identification

Left to specialists

From each point, 15–20 late larvae are preserved in 70 % ethanol, with the label written and placed inside the tube.

In the field we only note the resting position: Anopheles lie parallel to the surface; Culex and Aedes hang at an angle.

Quality

Checked, not assumed

  • 10 % of points are re-surveyed by a second person.
  • Data are entered on the same day.
Ethics & safety

People first

  • Owner’s consent on private land.
  • Never deeper than knee height.
  • Never alone in unfamiliar terrain.
  • Residents are told about breeding near their homes, and the simple fix: drain, cover, remove.
  • Public datasets are aggregated to neighbourhood level.
07Programme plan

Five phases, each ending in something checkable.

This is a plan, not a progress report. Each phase ends with a deliverable that someone else can inspect.

  1. Phase A

    Foundations

    • Scope document in Azerbaijani, Russian and English.
    • Vector baseline: which species, where, and what is already published.
    • Operational definition of risk in terms of station variables.

    DeliverableA two-page scientific basis.

  2. Phase B

    Station build & calibration

    • Assemble station v1.
    • Run it for 72 hours unattended.
    • Calibrate it against the acceptance table.

    DeliverableA calibrated station and its calibration log.

  3. Phase C

    Pilot & sites

    • A 4–6 week pilot at a home or school.
    • 3–5 candidate sites in the Lankaran area, each with written site permission.
    • 3 or more stations running for 30 or more days.
    • A public uptime record.

    DeliverableA month of continuous data with known uptime.

  4. Phase D

    Science

    • Weekly larval surveys: at least 40 labelled observations as a minimum, about 290 per season as the working target.
    • Model v1 along the ladder, reported with held-out error and a stated baseline.
    • A reporting channel for residents (web form or Telegram bot).
    • Expert review of the method and the vector assumptions.

    DeliverableA labelled dataset, a documented model and an expert review.

  5. Phase E

    Institutions & outputs

    • Review by the Institute of Zoology.
    • A working relationship with district hygiene and epidemiology services.
    • A republic-level methodological assessment.
    • A second season with forecasts issued in advance.
    • An open dataset, and a preprint or talk.
    • A handover plan.

    DeliverableA validated forecast table and a citable open dataset.

08Vision

Beyond the pilot

Where this could lead if the pilot works. Each card is tagged: PROPOSED for our own ideas, LITERATURE for work done by others.

PROPOSED

Larval source management

The main use of the data downstream. For Culex, Anopheles and Aedes caspius, the right intervention is at the breeding site: drain it, cover it or remove it.

The suitability map is meant to say which sites, and when, so that effort goes where conditions are favourable.

PROPOSED

From single sites to a district network

If the stations prove reliable and the index tracks field observations, the same design could be extended to a district network and then to other Caspian-coast regions.

Whether that happens depends on pilot results.

LITERATURE

Wolbachia: an option for Aedes only

Wolbachia-based methods have been used against Aedes aegypti elsewhere. Here they would become relevant only if invasive Aedes became established. They do not address Culex or Anopheles. Any release would need state authorisation and a biosafety review, and is outside the scope of this project.

~77 %
reduction in Aedes aegypti population, reported by release programmes elsewhere
~70–72 %
reduction in dengue incidence, reported by release programmes elsewhere

Source: Singapore National Environment Agency, “Project Wolbachia” cluster-randomised trial (~700,000 residents), and the World Mosquito Program. These are results of those release programmes, not results of WolbaCaspian.

09About & contact

It started with a question about the coast.

WolbaCaspian began with a simple question about the Caspian coast where its founder, Jeyla Ahmadzada, lives: how could a community see mosquito risk before it arrives?

Early versions imagined drones. We settled on fixed stations, because a model needs a continuous record more than an occasional aerial view.

The approach is deliberately conservative: measure carefully, calibrate honestly, label the data, and let a simple model earn its complexity.

  • Email[email]
  • Code & data[GitHub link]
  • LanguagesWrite in Azerbaijani, Russian or English.