Skill 詳細
weather-impact-analysis
Construction scheduling analysis based on weather data.
使用前に確認
自動レビューは関連性のみを確認し、安全性や推奨を保証しません。使用前に出典の説明を読んでください。
SKILL.md
これはレビュー時に保存された抜粋です。完全で最新の内容は外部ソースを確認してください。
---
name: "weather-impact-analysis"
description: "Analyze weather data impact on construction schedules. Predict weather delays, optimize work scheduling based on forecasts, and calculate weather-related risk factors for project planning."
homepage: "https://datadrivenconstruction.io"
metadata: {"openclaw": {"emoji": "🚀", "os": ["darwin", "linux", "win32"], "homepage": "https://datadrivenconstruction.io", "requires": {"bins": ["python3"]}}}
---
# Weather Impact Analysis
## Overview
This skill implements weather data analysis for construction project management. Integrate weather forecasts, historical data, and activity sensitivity to predict delays and optimize scheduling.
**Capabilities:**
- Weather forecast integration
- Activity weather sensitivity mapping
- Delay prediction and quantification
- Schedule optimization based on weather
- Historical weather impact analysis
- Risk factor calculation
## Quick Start
```python
from dataclasses import dataclass
from datetime import date, datetime, timedelta
from typing import List, Dict, Optional
from enum import Enum
import requests
class WeatherCondition(Enum):
CLEAR = "clear"
CLOUDY = "cloudy"
RAIN = "rain"
HEAVY_RAIN = "heavy_rain"
SNOW = "snow"
FROST = "frost"
HIGH_WIND = "high_wind"
EXTREME_HEAT = "extreme_heat"
EXTREME_COLD = "extreme_cold"
@dataclass
class WeatherDay:
date: date
condition: WeatherCondition
temp_high: float
temp_low: float
precipitation_mm: float
wind_speed_kmh: float
humidity_pct: float
@dataclass
class ActivitySensitivity:
activity_type: str
min_temp: float
max_temp: float
max_wind: float
max_precipitation: float
can_work_in_rain: bool
def check_work_day(weather: WeatherDay, activity: ActivitySensitivity) -> Dict:
"""Check if work is possible for given weather and activity"""
can_work = True
reasons = []
if weather.temp_low < activity.min_temp:
can_work = False
reasons.append(f"Temperature too low: {weather.temp_low}°C < {activity.min_temp}°C")
if weather.temp_high > activity.max_temp:
can_work = False
reasons.append(f"Temperature too high: {weather.temp_high}°C > {activity.max_temp}°C")
if weather.wind_speed_kmh > activity.max_wind:
can_work = False
reasons.append(f"Wind too strong: {weather.wind_speed_kmh} km/h > {activity.max_wind} km/h")
if weather.precipitation_mm > activity.max_precipitation and not activity.can_work_in_rain:
can_work = False
reasons.append(f"Precipitation: {weather.precipitation_mm}mm")
return {
'date': weather.date,
'can_work': can_work,
'reasons': reasons,
'productivity_factor': 1.0 if can_work else 0.0
}
# Example
concrete_work = ActivitySensitivity(
activity_type="concrete_placement",
min_temp=5,
max_temp=35,
max_wind=40,
max_precipitation=2,
can_work_in_rain=False
)
today_weather = WeatherDay(
date=date.today(),
condition=WeatherCondition.RAIN,
temp_high=15,
temp_low=8,
precipitation_mm=10,
wind_speed_kmh=20,
humidity_pct=80
)
result = check_work_day(today_weather, concrete_work)
print(f"Can work: {result['can_work']}, Reasons: {result['reasons']}")
```
## Comprehensive Weather Analysis System
### Weather Data Integration
```python
from dataclasses import dataclass, field
from datetime import date, datetime, timedelta
from typing import List, Dict, Optional, Tuple
from enum import Enum
import requests
import json
class WeatherSeverity(Enum):
NORMAL = 1
CAUTION = 2
WARNING = 3
SEVERE = 4
EXTREME = 5
@dataclass
class HourlyWeather:
datetime: datetime
temperature: float
feels_like: float
humidity: float
wind_speed: float
wind_direction: float
precipitation: float
precipitation_probability: float
condition: WeatherCondition
visibility: float
uv_index: float
@dataclass
class DailGitHub で全文を読む (外部ページ)