#howto - Consultare il meteo

Scritto da il
Redatto da
ubuntu
archlinux
fedora
meteo
linux

Non capita a tutti di dover controllare il meteo dal proprio pc, essendo ormai presente come funzione di base in quasi tutti gli smartphone.

Che servano o meno, esistono diversi metodi da terminale per consultare il meteo.

CURL

Tramite curl si possono interrogare alcuni siti per consultare il meteo, come wttr o open meteo.

WTTR

il metodo più semplice è sicuramente quello offerto dal sito wttr.in:

curl wttr.in

Automaticamente, in base alla localizzazione data dalla propria connessione wifi, si avrà il meteo della propria zona in una serie di piccole ascii art:

Weather report: Bari, Italy

     \  /       Partly cloudy
   _ /"".-.     +23(25) °C     
     \_(   ).   ↗ 34 km/h      
     /(___(__)  10 km          
                0.0 mm         
                                      

Tuttavia la localizzazione può fallire, tanto meglio quindi indicare direttamente la propria città così:

curl wttr.in/NOMECITTA

NOTA:

Sostituire eventuali spazi con carattere “underscore” _

Open Meteo

Un metodo un po’ più complesso è sicuramente quello di Open Meteo, che restituisce i dati sotto forma di JSON. Questo metodo in realtà non è adatto alla consultazione giornaliera del meteo da parte di un utente standard, ma più ad uno sviluppatore che vuole farsi la propria applicazione basata sul meteo.

Per fare la query, bisogna innanzitutto conoscere le coordinate della propria città in termini di longitudine e latitudine. Le informazioni restituite possono essere davvero tante, quindi si può scegliere quali si vogliono ricevere e quali no.

Tramite la documentazione offerta sull’apposito sito è possibile costruire la propria query personalizzata in modo da non perdere troppo tempo.

Ecco qui un esempio per le città di Catanzaro Lido e Rende (si possono selezionare più città) dove si vuole sapere la temperature per i prossimi 3 giorni a 2m dal mare, l’umidità e la probabilità di precipitazioni:

curl https://api.open-meteo.com/v1/forecast?latitude=38.8303,39.3315&longitude=16.6278,16.1804&hourly=temperature_2m,relative_humidity_2m,precipitation_probability&forecast_days=3

Il json restituito è tedioso da leggere su una riga sola, se disponiamo del tool jq possiamo formattarlo a dovere:

curl https://api.open-meteo.com/v1/forecast?latitude=38.8303,39.3315&longitude=16.6278,16.1804&hourly=temperature_2m,relative_humidity_2m,precipitation_probability&forecast_days=3 | json

NOTA:

Si possono effettuare solo 10000 chiamate al giorno con la licenza gratuita e senza una chiave API personalizzata.

I risultati ottenuti son divisi in due json separati ognuno dei quali per città in questo caso, e in ogni json per coordinata si ha una divisione ulteriore a lasso di tempo. Per fare un esempio, tagliando l’output del comando di sopra alla sola seconda città e per i soli primi 3 intervalli di tempo avremo:

 {
    "latitude": 39.3125,
    "longitude": 16.1875,
    "generationtime_ms": 0.03707408905029297,
    "utc_offset_seconds": 0,
    "timezone": "GMT",
    "timezone_abbreviation": "GMT",
    "elevation": 465.0,
    "location_id": 1,
    "hourly_units": {
      "time": "iso8601",
      "temperature_2m": "°C",
      "relative_humidity_2m": "%",
      "precipitation_probability": "%"
    },
    "hourly": {
      "time": [
        "2024-09-14T00:00",
        "2024-09-14T01:00",
        "2024-09-14T02:00",
        //....
      ],
      "temperature_2m": [
        15.7,
        15.4,
        15.3,
        //...
      ],
      "relative_humidity_2m": [
        81,
        82,
        82,
        //...
      ],
      "precipitation_probability": [
        3,
        0,
        3,
       //...
      ]
    }
  }
]

Si ottiene l’informazione che per la città di rende, in data 2024-09-14T00:00 si avrà una temperatura di 15.7 gradi, un umidità di 81 e probabilità di precipitazione di 3%.

Latitudine e longitudine con le API di open-meteo

Si può utilizzare OPEN-METEO per avere latitudine e longitudine, per farlo scrivere:

curl 'https://geocoding-api.open-meteo.com/v1/search?name=Cosenza&count=3&language=en&format=json' | jq

Sostituendo a “Cosenza” il nome della città. Se ci sono omonimie, verranno restituiti più risultati (Attualmente 3, modificare il numero dopo count per avere più o meno risultati).

Metar

Metar è un tool open source per la decodifica di dei dati di una stazione meteo. Il codice si può trovare su questo repository.

Installazione su Ubuntu e derivate

Per installare su Ubuntu e derivate scrivere:

apt install metar

Installazione su Fedora

Non c’è purtroppo un metodo ufficiale per installare metar su Fedora.

Installazione su ArchLinux

Per installare su ArchLinux bisogna utilizzare AUR:

git clone https://aur.archlinux.org/metar.git

cd metar

makepkg -si

Oppure con il proprio AUR manager preferito.

Uso

L’utilizzo richiede più step, innanzitutto bisogna cercare il proprio codice di stazione da verificare, consiglio il sito METAR TAF ufficiale, quindi impostare la propria stazione. Ad esempio per l’aereoporto di Lamezia Terme (Catanzaro) scrivere:

metar set LICA

È più facile trovare una stazione ufficiale METAR in un aereoporto, tuttavia son presenti piccole stazioni meteo un po’ ovunque se si cerca bene. Ecco qualche codice:

  • Campobasso LIBS
  • Lecce IT-0205
  • Napoli LIRN
  • Lucca LIQL
  • Bologna LIPE
  • Como LILY

etc…

Una volta impostata la stazione scrivere:

metar get

In output si avranno dati su vento, temperature, umidità e altro. Ad esempio:

Lamezia Terme, Italy (LICA) 38-54N 016-15E
Sep 14, 2024 - 07:50 AM EDT / 2024.09.14 1150 UTC
Wind: from the W (280 degrees) at 20 MPH (17 KT):0
Visibility: greater than 7 mile(s):0
Sky conditions: mostly clear
Temperature: 73 F (23 C)
Dew Point: 53 F (12 C)
Relative Humidity: 49%
Pressure (altimeter): 29.88 in. Hg (1012 hPa)
ob: LICA 141150Z AUTO 28017KT 9999 FEW045/// 23/12 Q1012

Ansiweather

Un altro strumento è Ansiweather, un tool molto più semplice a portata di tutti che permette di avere un output semplice e pulito, senza disegni o altro. È uno strumento open source ed il codice sorgente può essere trovato su Github.

Installare su Ubuntu e derivate

Per installare il tool su Ubuntu e derivate scrivere:

apt-get install ansiweather

Installare su Fedora

Per fedora non esistono al momento metodi ufficiali per l’installazione.

Installare su ArchLinux

Per installare su ArchLinux usare AUR:

git clone https://aur.archlinux.org/ansiweather.git
cd ansiweather
makepkg -si

Utilizzo Ansiweather

Per utilizzarlo basta scrivere:

ansiweather -l NOMECITTA,CODICENAZIONE -f NUMEROGIORNI

Ad esempio per avere una previsione della città di Catanzaro per i prossimi 3 giorni scrivere:

ansiweather -l Catanzaro,IT -f 3

L’output sarà:

Catanzaro forecast: lun set 16: 23/16 °C - mar set 17: 22/15 °C - mer set 18: 26/17 °C - gio set 19: 25/18 °C 
history_edu Revisioni