Skip to content

Instantly share code, notes, and snippets.

@aborruso
Created August 1, 2023 21:20
Show Gist options
  • Save aborruso/8b7fc7f133f4b4c143eaabb0ccccbe46 to your computer and use it in GitHub Desktop.
Save aborruso/8b7fc7f133f4b4c143eaabb0ccccbe46 to your computer and use it in GitHub Desktop.
Accedere ai dati di worklimate

La piattaforma Worklimate mette a disposizione una pagina web con una previsione del rischio caldo, prodotta da un sistema sperimentale automatico di un modello meteorologico affetto da intrinseca incertezza, quindi variabile con le caratteristiche del territorio.

I dati sembrano accessibili anche via API. A seguire come farlo.

Individuare l'id dell'area di interesse

È necessario recuperare la coppia di latitudine e longitudine della zona di proprio interesse e poi fare una chiamata con questo schema:

https://worklimate.it/profilo/stazioni.php?lat=38.12480479778549&lon=13.349323637545956&rad=100

In output si avrà un JSON con questa struttura

{
  "id": 27130,
  "dst": 13.388003070086931,
  "dati": {
    "dst": 13.388003070086931,
    "lat": "38.115000300000",
    "lon": "13.387999480000",
    "alt": "173.306213378906"
  }
}

Si recupera l'id, in questo caso 27130 e si fa quest'altra chiamata, in cui usare il valore di id per il parametro pgrid:

https://worklimate.it/profilo/stazioni.php?pgrid=27130&sys=regular

In output le previsioni per quell'area:

{
  "g1": {
    "classe": "alert-orange",
    "label": "Moderato",
    "desc": "Sorseggia acqua frequentemente e aumenta il numero di pause in luoghi freschi.",
    "longdesc": "E' previsto un livello di rischio moderato (Allarme).<br>La tua sudorazione sarà elevata e pertanto si consiglia di sorseggiare acqua frequentemente.<br>Ricordati di mantenere alto il livello di idratazione anche al di fuori dell'orario di lavoro (fai attenzione che la sete non è un buon indicatore del proprio livello di idratazione quando la sudorazione è elevata). Aumenta il numero di pause in luoghi ombreggiati.<br>Se questo livello di rischio è previsto nei primi giorni del periodo estivo (quando ancora non sei acclimatato al caldo), prestare ulteriore attenzione al grado di idratazione. Considera di riprogrammare le attività lavorative, preferendo, per le attività più impegnative, i periodi più freschi della giornata."
  },
  "g2": {
    "classe": "alert-orange",
    "label": "Moderato",
    "desc": "Sorseggia acqua frequentemente e aumenta il numero di pause in luoghi freschi.",
    "longdesc": "E' previsto un livello di rischio moderato (Allarme).<br>La tua sudorazione sarà elevata e pertanto si consiglia di sorseggiare acqua frequentemente.<br>Ricordati di mantenere alto il livello di idratazione anche al di fuori dell'orario di lavoro (fai attenzione che la sete non è un buon indicatore del proprio livello di idratazione quando la sudorazione è elevata). Aumenta il numero di pause in luoghi ombreggiati.<br>Se questo livello di rischio è previsto nei primi giorni del periodo estivo (quando ancora non sei acclimatato al caldo), prestare ulteriore attenzione al grado di idratazione. Considera di riprogrammare le attività lavorative, preferendo, per le attività più impegnative, i periodi più freschi della giornata."
  },
  "g3": {
    "classe": "alert-orange",
    "label": "Moderato",
    "desc": "Sorseggia acqua frequentemente e aumenta il numero di pause in luoghi freschi.",
    "longdesc": "E' previsto un livello di rischio moderato (Allarme).<br>La tua sudorazione sarà elevata e pertanto si consiglia di sorseggiare acqua frequentemente.<br>Ricordati di mantenere alto il livello di idratazione anche al di fuori dell'orario di lavoro (fai attenzione che la sete non è un buon indicatore del proprio livello di idratazione quando la sudorazione è elevata). Aumenta il numero di pause in luoghi ombreggiati.<br>Se questo livello di rischio è previsto nei primi giorni del periodo estivo (quando ancora non sei acclimatato al caldo), prestare ulteriore attenzione al grado di idratazione. Considera di riprogrammare le attività lavorative, preferendo, per le attività più impegnative, i periodi più freschi della giornata."
  },
  "g4": {
    "classe": "alert-orange",
    "label": "Moderato",
    "desc": "Sorseggia acqua frequentemente e aumenta il numero di pause in luoghi freschi.",
    "longdesc": "E' previsto un livello di rischio moderato (Allarme).<br>La tua sudorazione sarà elevata e pertanto si consiglia di sorseggiare acqua frequentemente.<br>Ricordati di mantenere alto il livello di idratazione anche al di fuori dell'orario di lavoro (fai attenzione che la sete non è un buon indicatore del proprio livello di idratazione quando la sudorazione è elevata). Aumenta il numero di pause in luoghi ombreggiati.<br>Se questo livello di rischio è previsto nei primi giorni del periodo estivo (quando ancora non sei acclimatato al caldo), prestare ulteriore attenzione al grado di idratazione. Considera di riprogrammare le attività lavorative, preferendo, per le attività più impegnative, i periodi più freschi della giornata."
  },
  "g5": {
    "classe": "alert-orange",
    "label": "Moderato",
    "desc": "Sorseggia acqua frequentemente e aumenta il numero di pause in luoghi freschi.",
    "longdesc": "E' previsto un livello di rischio moderato (Allarme).<br>La tua sudorazione sarà elevata e pertanto si consiglia di sorseggiare acqua frequentemente.<br>Ricordati di mantenere alto il livello di idratazione anche al di fuori dell'orario di lavoro (fai attenzione che la sete non è un buon indicatore del proprio livello di idratazione quando la sudorazione è elevata). Aumenta il numero di pause in luoghi ombreggiati.<br>Se questo livello di rischio è previsto nei primi giorni del periodo estivo (quando ancora non sei acclimatato al caldo), prestare ulteriore attenzione al grado di idratazione. Considera di riprogrammare le attività lavorative, preferendo, per le attività più impegnative, i periodi più freschi della giornata."
  }
}

Sono 5 giornate e sono quelle che si trovano nella pagina https://worklimate.it/profilo/ordinanza-caldo-lavoro, estraibili con l'XPATH //div//p[contains(., '2023')]. In output si avrà qualcosa come:

  <p>Martedì, 01 agosto 2023</p>
  <p>Mercoledì, 02 agosto 2023</p>
  <p>Giovedì, 03 agosto 2023</p>
  <p>Venerdì, 04 agosto 2023</p>
  <p>Sabato, 05 agosto 2023</p>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment