smhi-weather
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSMHI Weather
SMHI 天气工具
Hämta aktuell väderprognos och väderinformation från SMHI:s öppna API för svenska platser.
从SMHI的开放API获取瑞典地区的实时天气预报和天气信息。
Quick Start
快速开始
CLI-verktyg (Rekommenderat - Clean Output)
CLI工具(推荐 - 简洁输出)
För enkel och clean output, använd :
weather_cli.pybash
undefined如需简洁清晰的输出,请使用:
weather_cli.pybash
undefinedAktuellt väder
实时天气
cd scripts && python weather_cli.py current linköping
cd scripts && python weather_cli.py current linköping
Prognos (12 timmar, standard)
天气预报(默认12小时)
cd scripts && python weather_cli.py forecast mjölby
cd scripts && python weather_cli.py forecast mjölby
Prognos med custom antal timmar
自定义时长的天气预报
cd scripts && python weather_cli.py forecast mjölby 24
cd scripts && python weather_cli.py forecast mjölby 24
Vädervarningar
天气预警
cd scripts && python weather_cli.py warnings
undefinedcd scripts && python weather_cli.py warnings
undefinedPython API (För programmatisk användning)
Python API(用于程序化调用)
För grundläggande väderinformation, använd :
smhi_api.pypython
from scripts.smhi_api import SMHIWeather
client = SMHIWeather()如需基础天气信息,请使用:
smhi_api.pypython
from scripts.smhi_api import SMHIWeather
client = SMHIWeather()Hämta aktuellt väder för Mjölby (standardplats)
获取Mjölby的实时天气(默认地点)
current = client.get_current_weather()
current = client.get_current_weather()
Hämta aktuellt väder för en specifik plats
获取指定地点的实时天气
current = client.get_current_weather("linköping")
current = client.get_current_weather("linköping")
Hämta sammanfattning (12 timmar framåt)
获取天气摘要(未来12小时)
summary = client.get_weather_summary("norrköping", hours=12)
summary = client.get_weather_summary("norrköping", hours=12)
Hämta fullständig prognos
获取完整天气预报
forecast = client.get_forecast("mjölby")
undefinedforecast = client.get_forecast("mjölby")
undefinedWorkflow
工作流程
1. Identifiera Plats
1. 识别地点
Standardplats: Mjölby (om ingen plats anges)
Tillgängliga platser:
- mjölby
- linköping
- norrköping
- motala
- vadstena
Om användaren anger en annan plats, informera om att skillen bara har inbyggt stöd för orterna ovan och föreslå närmaste alternativ.
默认地点:Mjölby(未指定地点时使用)
可用地点:
- mjölby
- linköping
- norrköping
- motala
- vadstena
若用户指定其他地点,告知用户本工具仅支持上述城市,并推荐最近的可选地点。
2. Avgör Typ av Väderinformation
2. 确定天气信息类型
Aktuellt väder (nu):
python
client.get_current_weather("mjölby")Kort sammanfattning (kommande timmar):
python
client.get_weather_summary("mjölby", hours=12)Fullständig prognos (flera dagar):
python
client.get_forecast("mjölby")实时天气(当前):
python
client.get_current_weather("mjölby")简短摘要(未来数小时):
python
client.get_weather_summary("mjölby", hours=12)完整预报(未来数日):
python
client.get_forecast("mjölby")3. Presentera Information
3. 展示信息
Format informationen på ett lättläst sätt på svenska:
För aktuellt väder:
Väder i Mjölby just nu:
• Temperatur: -4.5°C
• Nederbörd: Snö
• Vind: 2.5 m/s från nordost
• Luftfuktighet: 87%
• Molnighet: Mulet (8/8)För prognos:
Väderprognos Mjölby 25 januari:
12:00 - -4.5°C, Snö, Vind 2.5 m/s
13:00 - -4.5°C, Snö, Vind 3.1 m/s
14:00 - -4.6°C, Snö, Vind 2.9 m/s
...将信息以易读的格式展示:
实时天气示例:
Mjölby 当前天气:
• 气温:-4.5°C
• 降水:降雪
• 风力:2.5 m/s 东北风
• 湿度:87%
• 云量:阴天(8/8)天气预报示例:
Mjölby 1月25日天气预报:
12:00 - -4.5°C,降雪,风力2.5 m/s
13:00 - -4.5°C,降雪,风力3.1 m/s
14:00 - -4.6°C,降雪,风力2.9 m/s
...4. Hantera Fel
4. 错误处理
Om platsen inte finns:
- Informera användaren om tillgängliga platser
- Föreslå närmaste alternativ
Om API-anrop misslyckas:
- Förklara att SMHI:s API inte svarade
- Föreslå att försöka igen om en stund
若地点不存在:
- 告知用户可用地点列表
- 推荐最近的可选地点
若API调用失败:
- 说明SMHI的API未响应
- 建议稍后重试
Vanliga Användarfrågor
常见用户问题
"Hur är vädret?"
“天气怎么样?”
→ Använd standardplats (Mjölby), visa aktuellt väder
→ 使用默认地点(Mjölby),展示实时天气
"Vad blir det för väder i Linköping?"
“Linköping的天气会如何?”
→ Hämta aktuellt väder + kort prognos för Linköping
→ 获取Linköping的实时天气+简短预报
"Kommer det regna imorgon?"
“明天会下雨吗?”
→ Hämta prognos för nästa 24 timmar, fokusera på nederbörd
→ 获取未来24小时的预报,重点关注降水情况
"Väder nästa vecka i Norrköping"
“Norrköping下周的天气”
→ Hämta fullständig prognos, sammanfatta per dag
→ 获取完整预报,按天汇总
"Finns det vädervarningar?"
“有天气预警吗?”
→ Använd för formaterad sammanfattning
client.get_warnings_summary()→ 使用获取格式化的摘要
client.get_warnings_summary()"Varningar för Östergötland"
“Östergötland的预警”
→ Använd för strukturerad data
client.get_warnings()→ 使用获取结构化数据
client.get_warnings()"Är det farligt väder?"
“天气危险吗?”
→ Kolla i warnings-data eller sammanfattningen
highest_level→ 查看预警数据或摘要中的字段
highest_levelPython Script Reference
Python脚本参考
scripts/smhi_api.py
scripts/smhi_api.pyscripts/smhi_api.py
scripts/smhi_api.pyMain API client med följande metoder:
get_current_weather(location="mjölby")- Returnerar: Dict med aktuellt väder
- Fält: location, time, temperature, humidity, precipitation, wind_speed, wind_direction, cloud_cover
get_weather_summary(location="mjölby", hours=12)- Returnerar: Formaterad sträng med vädersammanfattning
- Parametrar: location (platsnamn), hours (antal timmar framåt)
get_forecast(location="mjölby")- Returnerar: Komplett prognosdata med alla detaljer
- Innehåller: 24 timmars prognos med alla tillgängliga parametrar
get_warnings(county="Östergötland")- Returnerar: Dict med alla aktiva varningar för länet
- Fält: county, warnings (lista), highest_level, fetched_at
- Inkluderar: Alla varningstyper (väder, brand, vatten)
get_warnings_summary(county="Östergötland")- Returnerar: Formaterad sträng med varningssammanfattning (MEDIUM detaljnivå)
- Inkluderar: Varningstyp, svårighetsgrad, giltighetstid, beskrivning, råd
核心API客户端,包含以下方法:
get_current_weather(location="mjölby")- 返回:包含实时天气信息的字典
- 字段:location、time、temperature、humidity、precipitation、wind_speed、wind_direction、cloud_cover
get_weather_summary(location="mjölby", hours=12)- 返回:格式化的天气摘要字符串
- 参数:location(地点名称)、hours(未来时长,单位:小时)
get_forecast(location="mjölby")- 返回:包含所有细节的完整预报数据
- 内容:未来24小时的完整预报,包含所有可用参数
get_warnings(county="Östergötland")- 返回:包含指定省份所有活跃预警的字典
- 字段:county、warnings(列表)、highest_level、fetched_at
- 包含:所有预警类型(天气、火灾、水文)
get_warnings_summary(county="Östergötland")- 返回:格式化的预警摘要字符串(中等详细程度)
- 包含:预警类型、严重程度、有效期、描述、建议
Exempel på Användning
使用示例
python
from scripts.smhi_api import SMHIWeather
client = SMHIWeather()python
from scripts.smhi_api import SMHIWeather
client = SMHIWeather()Scenario 1: "Hur är vädret?"
场景1:“天气怎么样?”
weather = client.get_current_weather()
print(f"Det är {weather['temperature']}°C i {weather['location']}")
print(f"Nederbörd: {weather['precipitation']}")
weather = client.get_current_weather()
print(f"{weather['location']} 当前气温:{weather['temperature']}°C")
print(f"降水情况:{weather['precipitation']}")
Scenario 2: "Väder nästa 6 timmar"
场景2:“未来6小时的天气”
summary = client.get_weather_summary("linköping", hours=6)
print(summary)
summary = client.get_weather_summary("linköping", hours=6)
print(summary)
Scenario 3: Detaljerad prognos
场景3:详细预报
forecast = client.get_forecast("norrköping")
for entry in forecast['forecast'][:8]:
time = entry['valid_time']
temp = entry['temperature']
print(f"{time}: {temp}°C")
forecast = client.get_forecast("norrköping")
for entry in forecast['forecast'][:8]:
time = entry['valid_time']
temp = entry['temperature']
print(f"{time}: {temp}°C")
Scenario 4: "Finns det vädervarningar?"
场景4:“有天气预警吗?”
warnings_summary = client.get_warnings_summary()
print(warnings_summary)
warnings_summary = client.get_warnings_summary()
print(warnings_summary)
Scenario 5: Strukturerad varningsdata
场景5:结构化预警数据
warnings_data = client.get_warnings()
if warnings_data['highest_level'] != 'NONE':
print(f"Högsta varningsnivå: {warnings_data['highest_level']}")
for warning in warnings_data['warnings']:
print(f"- {warning['severity_sv']} varning: {warning['title']}")
undefinedwarnings_data = client.get_warnings()
if warnings_data['highest_level'] != 'NONE':
print(f"最高预警等级:{warnings_data['highest_level']}")
for warning in warnings_data['warnings']:
print(f"- {warning['severity_sv']} 预警:{warning['title']}")
undefinedOutput-exempel (Vädervarningar)
输出示例(天气预警)
När det finns aktiva varningar:
AKTIVA VARNINGAR - Östergötland
============================================================
🟠 ⛈️ ORANGE VARNING - Snöfall i kombination med vind
Gäller: 26 jan 09:00 - 27 jan 08:00
Områden: Östergötlands län
Beskrivning: Snöfall 10-20 cm i kombination med hård vind...
Råd: Undvik onödiga resor, håll extra avstånd i trafiken...
🟡 🔥 GUL VARNING - Gräsbrandrisk
Gäller: 26 jan 12:00 - 27 jan 18:00
Områden: Östergötlands län
Beskrivning: Hög brandrisk på grund av torrt väder...
✅ Inga vattenvarningar aktiva.När det inte finns varningar:
✅ Inga aktiva varningar för Östergötland.存在活跃预警时:
活跃预警 - Östergötland
============================================================
🟠 ⛈️ 橙色预警 - 降雪伴大风
有效期:1月26日 09:00 - 1月27日 08:00
区域:Östergötland省
描述:降雪量10-20厘米,伴随大风...
建议:避免不必要出行,行车时保持额外安全距离...
🟡 🔥 黄色预警 - 草地火灾风险
有效期:1月26日 12:00 - 1月27日 18:00
区域:Östergötland省
描述:天气干燥,火灾风险高...
✅ 无活跃水文预警。无预警时:
✅ Östergötland无活跃预警。Tips
提示
- Caching: SMHI uppdaterar prognoser ~4 gånger/dag. Cache data i minst 1 timme
- Tolkningar: Se för detaljerade parameterbeskrivningar
references/smhi_api_reference.md - Tillägg: Lägg till fler platser genom att uppdatera i
LOCATIONSsmhi_api.py
- 缓存:SMHI每天更新预报约4次。建议将数据缓存至少1小时
- 参考说明:查看获取详细的参数说明
references/smhi_api_reference.md - 扩展功能:可通过更新中的
smhi_api.py变量添加更多地点LOCATIONS
Resources
资源
references/smhi_api_reference.md
references/smhi_api_reference.md
Detaljerad API-dokumentation med:
- Fullständig parameterlista
- Väderssymboler och deras betydelse
- Vindstyrkeinterpretationer
- Nederbördskategorier
- API-endpoints och felhantering
详细的API文档,包含:
- 完整参数列表
- 天气符号及其含义
- 风力等级说明
- 降水分类
- API端点及错误处理