Skip to main content
Loading navigation
Back to prompt library

Build a Solar Field Soiling and Desalinated Wash Water Dispatcher — implementation

Linked challenge: Build a Solar Field Soiling and Desalinated Wash Water Dispatcher

Prompt source

implementation67 lines11 sectionsNo variables1 code block
## Build
Balance utility-scale photovoltaic soiling losses against desalinated wash water trucking costs. Determine optimal cleaning schedules for robotic and manual wash fleets under desert dust conditions.

## User
Solar operations and maintenance manager

## Workflow
1. Ingest pyranometer telemetry, inverter power outputs, and regional dust storm weather alerts.
2. Compute daily soiling loss derate factors using pvlib python soiling and transposition models.
3. Calculate the economic tipping point where accumulated generation revenue losses exceed desalinated wash water logistics expenses.
4. Generate a spatial wash route map and water tanker reservation schedule for field maintenance teams.

## Interface
An interactive map of solar array tracker blocks showing soiling percentage, cleaning truck routes, and water volume balances.

## Data
Create normalized daily JSON feeds containing plane-of-array irradiance, power output, soiling ratio, and water tanker truck availability.
Starter examples below are synthetic. They are not downloaded records.

## Source
[PVLib solar modeling](https://raw.githubusercontent.com/pvlib/pvlib-python/main/README.md)
Applies solar irradiance transposition and PV module performance degradation functions provided in pvlib python.

## Tools
ray-serve, pvlib, fastapi.
Serves distributed batch simulations over thousands of solar string telemetry records with high throughput and low latency.
Local or hosted LLM used for summarizing multi-inverter soiling patterns and drafting dispatch instructions.

## Deliverables
Submit runnable source, pinned dependencies, setup commands, a working interface, example outputs, and a recorded end-to-end demo. Include tests and an action log.

## Acceptance
- Accurately calculates soiling derate percentage across all tracker blocks using pyranometer baseline ratios.
- Prevents dispatching water wash crews when forecast ambient wind speeds exceed 25 km/h to avoid rapid re-soiling.
- Enforces maximum wash water allocation based on local on-site tank buffer volumes without dipping into emergency reserves.

## Starter Examples
```json
[
  {
    "input": {
      "block_id": "PV-Block-A4",
      "soiling_ratio": 0.86,
      "ppa_tariff_usd_kwh": 0.024,
      "daily_generation_mwh": 140,
      "wash_water_cost_usd_m3": 3.5,
      "water_required_m3": 12
    },
    "expected_output": {
      "daily_revenue_loss_usd": 470.4,
      "cleaning_cost_usd": 42,
      "dispatch_cleaning": true,
      "payback_days": 1
    }
  },
  {
    "input": {
      "block_id": "PV-Block-B2",
      "soiling_ratio": 0.97,
      "ppa_tariff_usd_kwh": 0.024,
      "daily_generation_mwh": 140,
      "wash_water_cost_usd_m3": 3.5,
      "water_required_m3": 12
    },
    "expected_output": {
      "daily_revenue_loss_usd": 100.8,
      "cleaning_cost_usd": 42,
      "dispatch_cleaning": false,
      "payback_days": 3
    }
  }
]
```

## Safety
Generates vehicle routing and cleaning recommendations. Does not trigger automated washing systems or operate heavy vehicles.
Use mock external writes. Require human review before any real deployment.