Projecte dades Estat dels embassaments

Sumari

  1. ReservoirStatsApp
    1. API
      1. Exemples LocalDateTime
    2. ShowReservoirs
      1. Output:
    3. CurrentState
      1. Output:
    4. LowestLevelSince
      1. Exemples per modificar el color
      2. Output:
    5. AvgLevelComparison
      1. Output:

ReservoirStatsApp

Volem fer un petit programa que analitzi les estadístiques dels estats dels embassaments.

API

Per fer-ho utilitzarem les dades de la api "quantitat d'aigua als embassaments de les conques" a la següent web:

https://analisi.transparenciacatalunya.cat/Medi-Ambient/Quantitat-d-aigua-als-embassaments-de-les-Conques-/gn9e-3qhr

Consulta els apunts de la uf3 per obtenir les dades d'una api

Per treballar amb les dates fes servir la classe LocalDateTime

Exemples LocalDateTime

@SerialName("dia") val date: LocalDateTime
...
fun getTodayLocalDateTime(): LocalDateTime {
    return Clock.System.now().toLocalDateTime(TimeZone.currentSystemDefault())
}

val date2022 = LocalDateTime(2022, 1, 1, 0, 0, 0)

ShowReservoirs

Imprimeix el nom dels embassaments dels quals disposem informació i el número total d'embassaments.

Output:

---- INFORMACIÓ DELS EMBASSAMENTS ---
Embassament de Siurana (Cornudella de Montsant)
Embassament de la Llosa del Cavall (Navès)
Embassament de Sau (Vilanova de Sau)
Embassament de Foix (Castellet i la Gornal)
Embassament de Sant Ponç (Clariana de Cardener)
Embassament de la Baells (Cercs)
Embassament de Riudecanyes
Embassament de Darnius Boadella (Darnius)
Embassament de Susqueda (Osor)
Número total d'embassaments = 9
--- --------------------------- ---

CurrentState

Mostra l'estat actual dels embassaments. Concretament volem saber per cada embassament el percentatge del volum en la última data de la que tinguem informació

Output:

---- ESTAT ACTUAL DELS EMBASSAMENTS ---
7.2 - Embassament de Siurana (Cornudella de Montsant)
23.8 - Embassament de la Llosa del Cavall (Navès)
7 - Embassament de Sau (Vilanova de Sau)
69 - Embassament de Foix (Castellet i la Gornal)
29.8 - Embassament de Sant Ponç (Clariana de Cardener)
25.3 - Embassament de la Baells (Cercs)
8 - Embassament de Riudecanyes
29.1 - Embassament de Darnius Boadella (Darnius)
38 - Embassament de Susqueda (Osor)
--- ----------------------------- ---

LowestLevelSince

Per cada embassament voldrem saber quina ha estat la capacitat mínima a partir d'una data en concret.
Aquelles sortides en què la capacitat mínima sigui l'actual les mostrarem de color vermell

Exemples per modificar el color

val RED_COLOR = "\u001B[31m"
val RESET_COLOR = "\u001B[0m"

var color = RED_COLOR
println(color + entry.key + " - " + lowestVolume.percentageVolume + " - " + lowestVolume.date + RESET_COLOR)

Output:

---- MÍNIMA CAPACITAT DES DE 2020-01-01T00:00
Embassament de Siurana (Cornudella de Montsant) - 4.2 - 2023-02-22T00:00
Embassament de la Llosa del Cavall (Navès) - 23.8 - 2023-04-27T00:00 *
Embassament de Sau (Vilanova de Sau) - 10 - 2023-03-12T00:00
Embassament de Foix (Castellet i la Gornal) - 69 - 2023-04-27T00:00 *
Embassament de Sant Ponç (Clariana de Cardener) - 29.8 - 2023-04-27T00:00 *
Embassament de la Baells (Cercs) - 25.3 - 2023-04-27T00:00 *
Embassament de Riudecanyes - 10 - 2023-02-12T00:00
Embassament de Darnius Boadella (Darnius) - 29.1 - 2023-04-27T00:00 *
Embassament de Susqueda (Osor) - 35.8 - 2023-02-16T00:00
-----------------------------------

AvgLevelComparison

Per cada embassament volem mostrar la mitjana del percentatge anual en diferents anys, per poder veure quina evolució segueix. Concretament volem la mitjana de l'any passat, la mitjana de fa 5 anys i la mitjana de fa 10 anys

Per fer-ho pots obtenir les dades parcialment filtrades directament de la api, passant paràmetres per la petició GET. La api et permet generar filtres i aleshores cliques a exportar > punt final de la api i copies la URL que ha generat

Output:

---- COMPARATIVA DE MITJANES ANUALS ----
2012 -    2017  -   2022   -  Embassament 
50.11 -  44.42  -  32.19   - Embassament de la Baells (Cercs) 
40.15 -  34.77  -  22.02   - Embassament de Sau (Vilanova de Sau) 
27.57 -  19.64  -  18.08   - Embassament de Riudecanyes 
52.94 -  50.74  -  47.23   - Embassament de Susqueda (Osor) 
76.42 -  70.17  -  50   - Embassament de Sant Ponç (Clariana de Cardener) 
29.94 -  10.45  -  8.23   - Embassament de Siurana (Cornudella de Montsant) 
36.92 -  35.42  -  32.97   - Embassament de Darnius Boadella (Darnius) 
86.57 -  81.58  -  76.85   - Embassament de Foix (Castellet i la Gornal) 
48.37 -  38.55  -  28.75   - Embassament de la Llosa del Cavall (Navès) 
------------------------------------