สภาพอากาศจากสถานี


65

ฉันต้องการค้นหาสภาพอากาศปัจจุบันของเมืองหนึ่ง ๆ หรือตำแหน่งของฉันจากสถานี มีแอพพยากรณ์อากาศแบบบรรทัดคำสั่งหรือไม่

คำตอบ:


134

เพียงป้อนข้อมูลต่อไปนี้ในเทอร์มินัล:

curl wttr.in

/etc/timezoneและจะได้รับตำแหน่งของคุณจาก curl wttr.in/your_locationมิฉะนั้น ตัวอย่างเช่นสำหรับเตหะราน:

curl wttr.in/tehran

ซึ่งให้คุณ:

ตัวอย่างผลลัพธ์

คุณยังสามารถเปรียบเทียบสองเมือง:

diff -Naur <(curl -s http://wttr.in/london ) <(curl -s http://wttr.in/new-york )

Source code ของนักพัฒนาสามารถใช้ได้บน Github


2
วิธีที่ดีกว่ามาก!
Zachary Dahan

2
github.com/schachmat/wegoไม่เลวสำหรับdevsเรา
Timo

ชอบ แต่ก็มีข้อผิดพลาดในครั้งนี้: ขออภัยเรามีข้อผิดพลาดในการให้บริการสภาพอากาศในขณะนี้ เราจะได้รับข้อความค้นหาใหม่โดยเร็วที่สุด
Doyousketch2

17

ค้นหาเมืองของคุณที่http://www.accuweather.comและแทนที่ URL ในสคริปต์ต่อไปนี้ด้วย URL สำหรับเมืองของคุณ:

#!/bin/sh

URL='http://www.accuweather.com/en/de/berlin/10178/weather-forecast/178087'

wget -q -O- "$URL" | awk -F\' '/acm_RecentLocationsCarousel\.push/{print $2": "$16", "$12"°" }'| head -1

ตัวอย่างผลลัพธ์:

Berlin, Germany: Foggy, 1°

แต่ฉันจะเปลี่ยนเป็น
Celcius ได้อย่างไร

ใน html acm_RecentLocationsCarousel.push({name:"Berlin, Germany", daypart:'day', href:'/en/de/berlin/10178/weather-forecast/178087', icon:'i-6-l', bg:'c', temp:'0', realfeel:'-6', text:"Mostly cloudy"});แหล่งที่มาที่ฉันเห็น ใช้รหัสของคุณawkตัวคั่นฟิลด์คือ '' (ช่องว่าง) คือ$12(อุณหภูมิ) คอลัมน์ที่ 12?
Timo

ความผิดของฉันที่แยกเป็นawk 'API ใช้ตัวเลข 2 ตัวอันแรกคือpostleitzahlหรือรหัสไปรษณีย์ ที่สองน่าจะเป็นหมายเลขรหัส api
Timo

1
ไม่สามารถใช้งานได้อีกต่อไป Accuweather API มีการเปลี่ยนแปลงหรือไม่
Timo

14

ฉันมีอีกวิธีหนึ่ง

เปิด.bashrcไฟล์ของคุณแล้ววางรหัสนี้ที่ด้านล่าง

weather(){ curl -s "http://api.wunderground.com/auto/wui/geo/ForecastXML/index.xml?query=${@:-<YOURZIPORLOCATION>}"|perl -ne '/<title>([^<]+)/&&printf "%s: ",$1;/<fcttext>([^<]+)/&&print $1,"\n"';}

จากนั้นบันทึกและปิด.bashrcไฟล์ของคุณ

ตอนนี้พิมพ์bashเพื่ออัปเดตไฟล์

จากนั้นพิมพ์

weather <location name>

ตัวอย่างเช่น

august@august-OEM:~$ weather guntur
December 14, 2013: Clear. High 31&amp;deg;C (87&amp;deg;F). Winds 0 kph North
December 15, 2013: Clear. High 29&amp;deg;C (84&amp;deg;F). Winds 10 kph NNW
December 16, 2013: Clear. High 31&amp;deg;C (87&amp;deg;F). Winds 10 kph North
December 17, 2013: Clear. High 29&amp;deg;C (84&amp;deg;F). Winds 7 kph ENE
December 18, 2013: Scattered Clouds. High 29&amp;deg;C (84&amp;deg;F). Winds 3 kph ENE
December 19, 2013: Scattered Clouds. High 29&amp;deg;C (84&amp;deg;F). Winds 3 kph ENE

1
ดีกับการพยากรณ์อากาศ +1 จากฉัน
souravc

สิ่งนี้ไม่ทำงานอีกต่อไปวันสุดท้ายที่แสดงคือพฤษภาคม 2558 (สำหรับเคปทาวน์แอฟริกาใต้อย่างน้อย) การตรวจสอบอย่างใกล้ชิดของเอาต์พุต xml เผยว่าพาเรนต์ txt_forecast ยังไม่ได้รับการอัพเดตตั้งแต่เดือนพฤษภาคม 2558 ในขณะที่องค์ประกอบ simpleforecast ดูเหมือนจะมีข้อมูลล่าสุด
ซาฮีร์ J

ฉันจะปรับปรุงคำตอบของฉัน
rɑːdʒɑ

แทนที่ YOUZIPORLOCATION ด้วย $ 1 หากคุณต้องการสภาพอากาศ <ชื่อสถานที่> ให้ทำงาน
Ed Neville

เมื่อฉันแทนที่YOUZIPORLOCATIONด้วย$1และผ่าน20001(Washington, DC รหัสไปรษณีย์) ผมได้รับสายที่มีลักษณะที่ยังไม่ฟอร์แมตเช่นToday: Mostly sunny and breezy. Highs in the upper 30s. Northwest winds 20 to 25 mph with gusts up to 45 mph.เมื่อฉันใช้ฉันได้รับการส่งออกตาราง"washington.dc" May 4, 2015: Clear. High 32&amp;deg;C (89&amp;deg;F). Winds 43 kph Eastความคิดใดว่าทำไมแตกต่างกันอย่างไร
blalterman

14

นี่คืออรรถประโยชน์บรรทัดคำสั่งกึ่งกราฟิกที่ดีเขียนใน Go:

https://github.com/schachmat/wego/

คุณจะต้องติดตั้ง Go และตั้งค่า API บางอย่าง แต่มีคำแนะนำอยู่ นี่คือตัวอย่างรูป:

ป้อนคำอธิบายรูปภาพที่นี่


5
นี่คือการโฮสต์สาธารณะในขณะนี้ - ด้วยที่อยู่ IP ในการทำแผนที่ภูมิภาค ลอง: curl -4 wttr.in
jschrab

2
@jschrab: และคุณไม่ต้องการ -4 จริง ๆ curl wttr.inเพียงพอแล้ว
Igor Chubin

หน่วยการวัดยังมีอยู่ในเวอร์ชันที่โฮสต์สาธารณะเช่น:curl wttr.in/Helsinki?m
วิลล์

6

ลองใช้ดู

telnet rainmaker.wunderground.com

1
ดูเหมือนว่าจะเป็นของสหรัฐฯเท่านั้นหรือ
Vladimir Panteleev

5

ก่อนอื่นคุณต้องติดตั้งแพ็คเกจ weather-util เพื่อทำเช่นนั้นเพียงแค่กดCtrl+ Alt+ Tบนคีย์บอร์ดของคุณเพื่อเปิด Terminal เมื่อเปิดขึ้นให้เรียกใช้คำสั่งด้านล่าง:

sudo apt-get install weather-util

คุณจะต้องของคุณรหัสสภาพอากาศในท้องถิ่น

weather -i <code>หลังจากการติดตั้งคุณสามารถเรียกใช้ รหัสที่คุณได้รับจากลิงค์ด้านบน สำหรับรายการตัวเลือกที่มีคุณสามารถเรียกใช้weatherข้อมูลสภาพอากาศ


1
มันแสดงLast updated Dec 11, 2013 - 07:00 AM EST / 2013.12.11 1200 UTC Temperature: 86 F (30 C)ว่าไม่มีวิธีใดที่จะรู้สภาพอากาศในปัจจุบัน
Avinash Raj

ขึ้นอยู่กับตำแหน่งของคุณที่อาจเป็นข้อมูลปัจจุบันที่มีอยู่
มิทช์

1
ฉันเพิ่งลองสิ่งนี้และพบว่ามันใช้งานง่ายกว่าตอนนี้: weather YOURLOCATIONNAMEมันค้นหาตำแหน่งของคุณแล้วและอาจให้ผลลัพธ์ที่หลากหลาย จากสิ่งเหล่านี้คุณสามารถอ่านตัวระบุสถานีซึ่งคุณสามารถใช้เป็นอาร์กิวเมนต์เพื่อดึงข้อมูลสภาพอากาศของคุณได้จาก
Nicolas

ดูเหมือนว่าบริการที่ขึ้นอยู่กับถูกยกเลิก ฉันเพิ่งติดตั้งรุ่น 2.0 และweather LAX(ซึ่งควรแสดงสภาพอากาศสำหรับสนามบินนานาชาติลอสแองเจลิส) แสดงข้อผิดพลาด 404 สำหรับweather.noaa.gov/pub/data/observations/metar/decoded/KNKX.TXT
Keith Thompson

1
ว่าไฟล์ข้อมูลโดยเฉพาะอย่างยิ่งได้ย้ายจากที่นี่ไปที่นี่ มันควรจะเป็นไปได้ที่จะปรับปรุงแฟ้มข้อมูลการเปลี่ยนแปลงที่เกิดขึ้นของแต่ละที่จะhttp://weather.noaa.gov/pub/data http://tgftp.nws.noaa.gov/dataUPDATE: ดูเหมือนว่าพวกเขาได้รับการแก้ไขแล้วในรุ่น 2.1 ซึ่งคุณสามารถได้รับจากเว็บไซต์ของโครงการ
Keith Thompson

5

ansiweather

AnsiWeather เป็นสคริปต์เชลล์สำหรับแสดงสภาพอากาศปัจจุบันในเทอร์มินัลของคุณพร้อมรองรับสี ANSI และสัญลักษณ์ Unicode ข้อมูลสภาพอากาศมาจาก API สภาพอากาศฟรีของ OpenWeatherMap

sudo apt-get install ansiweather
ansiweather -l London,GB -f 3
London forecast => Sat Jan 13: 7/2 °C ☔ - Sun Jan 14: 4/1 °C ☔ - Mon Jan 15: 9/6 °C ☔

https://github.com/fcambus/ansiweather


2

นอกจากนี้ยังมีโปรแกรมที่ติดตั้งมากับอูบุนตูที่เรียกว่า inxi จะให้สถิติทุกประเภทในคอมพิวเตอร์ของคุณ

คำสั่ง: inxi - ช่วยเหลือ

คำสั่ง: inxi -w

        Conditions: 82 F (28 C) - Clear Time: May 13, 10:52 AM CDT

คำสั่ง: inxi -wxxx

     Conditions: 82 F (28 C) - Clear Wind: From the SW at 13 MPH Humidity: 60%

       Pressure: 29.99 in (1016 mb) Heat Index: 84 F (29 C)
       Location: city (USA) Altitude: 185 m
       Time: May 13, 10:52 AM CDT (America/Chicago) Observation Time: May 13, 9:54 AM CDT

ดูเหมือนว่า inxi ไม่ได้เป็นส่วนหนึ่งของอูบุนตูตั้งแต่ 10.04 แต่สามารถติดตั้งได้sudo apt install inxi
Starbuck

ใช่inxiพร้อมใช้งาน แต่คุณต้องเปิดใช้งานที่เก็บจักรวาลก่อน
mchid

2

คุณสามารถเปรียบเทียบเมืองโดยใช้:

diff -Naur <(curl -s http://wttr.in/london ) <(curl -s http://wttr.in/new-york )

ดังที่แสดงในคำตอบที่ได้รับคะแนนสูงสุด wttr.inยังทำให้หน้าจอ "สแปลช" ที่ยอดเยี่ยมทุกครั้งที่คุณเปิดเครื่อง ทำได้โดยเพิ่มลงใน~/.bashrcไฟล์ของคุณ ฉันได้ทำเช่นนั้นแล้วเพื่อรวมข้อมูลสภาพอากาศวันที่เวลาและการจัดจำหน่ายตามรายละเอียดในคำตอบนี้: ฉันจะรับหน้าจอเริ่มต้นของเทอร์มินัลได้อย่างไร

Bash Splash ใน Windows 10.png

ขออภัยฉันอยู่ใน Ubuntu ใน Windows 10 WSL สำหรับการอัปเดต Spring 2018 เมื่อฉันจับภาพนี้ สัญญาฉันจะบูตกลับเข้า Ubuntu ใน Linux เร็ว ๆ


2

เพื่อให้ได้สภาพอากาศที่สั้นลงhttp://weather.tuxnet24.deให้ข้อมูลสภาพอากาศจาก Yahoo! ในรูปแบบข้อความและ xml

filds จาก XML นั้นสามารถรับได้ด้วยตัวแยกวิเคราะห์ XML เช่น xmllint เช่น

ฉันเขียนสคริปต์การดึงข้อมูลสภาพอากาศถามซึ่งได้รับอุณหภูมิปัจจุบันและคำอธิบายสภาพอากาศจากนั้นเก็บสัญลักษณ์ยูนิโค้ดที่สอดคล้องกับคำอธิบายและผลลัพธ์เช่น

☂ 6 ° c

ฉันอัปเดตเป็นประจำผ่าน cronjob แล้วใช้ผลลัพธ์ในสถานะถาดของฉัน

รับ ID ของคุณที่ yahoocom / ข่าว / สภาพอากาศ เปลี่ยนตำแหน่งไปยังตำแหน่งที่คุณต้องการและค้นหา ID ใน URL (เช่นถ้า URL คือ yahoocom / news / weather / germany / north-rhine-westphalia / bielefeld-20066057 ID คือ 20066057)

XML มีฟิลด์เพิ่มเติมเช่นข้อมูลพยากรณ์ลม ฯลฯ - คุณสามารถแยกวิเคราะห์ได้เช่นกันหากคุณต้องการ

โชคไม่ดีที่มีสัญลักษณ์สภาพอากาศบางอย่างไม่ปรากฏใน Ubuntufont …รู้สึกอิสระที่จะปรับ

นี่คือสคริปต์ของฉัน (แทนที่ 20066057 ด้วย ID ของคุณหากคุณไม่ได้อยู่ในบีเลเฟลด์) - ขึ้นอยู่กับ bash, curl และ xmllint

#!/bin/sh
#☁☂☔❄❅❆☃ ☀☁☂⚡⚐☼

# write xml to variable
w_xml=$(curl -Ls "http://weather.tuxnet24.de/?id=20066057&mode=xml");
# get fields from xml via xmllint | xargs for trimming
# weather description
w_txt=$(xmllint --xpath "string(//current_text)" - <<<"$w_xml" | xargs);
# temperature | remove spaces from text (&#176;C prepended by space)
w_tpc=$(xmllint --xpath "string(//current_temp)"  - <<<"$w_xml" | xargs); w_tpc=${w_tpc//[[:blank:]]/};
# further fields not used atm
# w_tph=$(xmllint --xpath "string(//current_temp_high)"  - <<<"$w_xml" | xargs);
# w_tpl=$(xmllint --xpath "string(//current_temp_low)"  - <<<"$w_xml" | xargs);

# set $w_sym according to $w_txt
if   [ "$w_txt" == "Sunny" ]; then w_sym="☼";
elif [ "$w_txt" == "Mostly Sunny" ]; then w_sym="☼";
elif [ "$w_txt" == "Showers" ]; then w_sym="☂";
elif [ "$w_txt" == "Clear" ]; then w_sym="☾";
elif [ "$w_txt" == "Thunderstorms" ]; then w_sym="⚡";
elif [ "$w_txt" == "Scattered Thunderstorms" ]; then w_sym="☔";
elif [ "$w_txt" == "Isolated Thundershovers" ]; then w_sym="☔";
elif [ "$w_txt" == "Cloudy" ]; then w_sym="☁";
elif [ "$w_txt" == "Mostly Cloudy" ]; then w_sym="☁";
elif [ "$w_txt" == "Partly Cloudy" ]; then w_sym="☼☁";
elif [ "$w_txt" == "Breezy" ]; then w_sym="⚐";
# if unknown text, set text instead of symbol
else w_sym=$w_txt; 
fi
# output <symbol><space><temp-in-°C>
echo "$w_sym"" ""$w_tpc";

การเปลี่ยนเส้นทางข้อผิดพลาดที่ไม่คาดคิด
Philip Kirkbride

เปลี่ยน shebang ให้#!/usr/bin/env bashซ่อมให้ฉัน Ubuntu 18.04
Philip Kirkbride

2

ฉันมีอีกวิธีหนึ่ง

เปิดไฟล์. bashrc ของคุณแล้ววางรหัสนี้ที่ด้านล่าง

test -f ~/.wttr.in || curl -sk wttr.in -o ~/.wttr.in
find ~ -maxdepth 1 -name .wttr.in -cmin +5 -exec curl -sk wttr.in -o ~/.wttr.in \;
head -7 ~/.wttr.in | tail -5
W(){ find ~ -maxdepth 1 -name .wttr.in -cmin +5 -exec curl -sk wttr.in -o ~/.wttr.in \;; head -27 ~/.wttr.in; }

บันทึกและปิด.bashrcไฟล์ของคุณและเรียกใช้คำสั่งต่อไปนี้เพื่ออัปเดต bash:

. .bashrc 

จากนั้นพิมพ์ตัวพิมพ์Wใหญ่


bash: W: ไม่พบคำสั่ง

หลังจากแก้ไข. bashrc relogin
sergkog

คุณไม่ต้องลงทะเบียนใหม่หากคุณ "แหล่ง" .bashrcไฟล์ของคุณ คุณสามารถเรียกใช้: source .bashrcหรือคุณสามารถเรียกใช้สิ่งนี้แทน:. .bashrc
mchid

0

แม้ว่าวิธีแก้ปัญหาของ accuweather นั้นค่อนข้างดี แต่ฉันต้องการข้อมูลมากกว่านี้ดังนั้นฉันจึงสร้างสคริปต์ทุบตีเรียบง่ายที่ดึงข้อมูลสำหรับ 4 ชั่วโมงถัดไปจากเว็บไซต์ weather.com ดังตัวอย่างก่อนหน้านี้คุณต้องแก้ไขลิงค์สำหรับตำแหน่งของคุณ

Example output:
$ ./getWeather.sh
Temperature for 1 AM : 65&deg;F and outside should be: Partly - Cloudy FEELS LIKE:   65&deg;
Temperature for 2 AM : 65deg;F and outside should be: Partly - Cloudy FEELS LIKE: 65deg;
Temperature for 3 AM : 63deg; and outside should be: Partly - Cloudy FEELS LIKE: 63deg;
Temperature for 4 AM : 62deg; and should be: Mostly - Clear FEELS LIKE: 62deg;

สคริปต์แบบเต็มตั้งอยู่ที่: https://sites.google.com/site/wozoopalinux/home/wzbash001/get-weather-information-from-command-line-for-next-4-hrs


0

Meteogram ของเมืองนายกเทศมนตรีทั้งหมดในโลก

finger city_name@graph.no

$ finger cologne@graph.no

           -= Meteogram for germany/north_rhine-westphalia/cologne =-           
 'C                                                                   Rain
 16                                                                   
 15                           ^^^                                     
 14                  ======^^^   ^^^                                  
 13               ===               ^^^===^^^===                      
 12                                             =========             
 11            ===                                       ====--       
 10      ======                                                ---    
  9=====|                                                         --- 3 mm 
  8     |  |                                                          2 mm 
  7  |  |  |  |  |  |  |  |              |     |  |  |  |  |          1 mm 
   _08_09_10_11_12_13_14_15_16_17_18 19 20 21 22 23 00 01 02 03 04 05 Hour

    SE SE SE SE SE SW SW  W  W  W  W SW  W  W  W  W  W NW NW NW  N  N Wind dir.
     5  5  5  5  4  4  5  6  6  6  5  5  5  4  4  5  5  5  4  3  3  3 Wind(mps)

Legend left axis:   - Sunny   ^ Scattered   = Clouded   =V= Thunder   # Fog
Legend right axis:  | Rain    ! Sleet       * Snow
[Weather forecast from yr.no, delivered by the Norwegian Meteorological Institute and the NRK.]

นี่คือวิธีการใช้งาน:

$ finger help@graph.no

yr.no is having technical problems, or you specified an unknown location.

Usage:

 * finger <city name>@graph.no (world weather forecast, no spaces)
   Example: finger newyork@graph.no 

 Advanced usage:

 * finger o:<city name>@graph.no (a one-line forecast)
   Example: finger o:newyork@graph.no 

 * finger ^<city name>@graph.no (Imperial units)
   Example: finger ^newyork@graph.no 

 * finger <city name>+5@graph.no (forecast from 5 hrs ahead in time (max:26))
   Example: finger northpole+5@graph.no 

 * finger <city name>~160@graph.no (set screen width)
   Example: finger southpole~160@graph.no 

 * finger <city name>%2@graph.no (forecast for every second hour [Norway])
   Example: finger oslo%2@graph.no 

 * finger <post code>@graph.no (norwegian weather forecast)
   Example: finger 0458@graph.no 

 Other: 

 * finger news@graph.no (latest headlines from NRK)
 * finger time@graph.no (server local time)
 * finger date@graph.no (server local date)
 * finger about@graph.no (contact information)

International names comes from http://fil.nrk.no/yr/viktigestader/verda.txt.

เรื่องราวที่อยู่เบื้องหลังนี้จากนักพัฒนา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.