feat: climate risk from cmip cordex#18
Conversation
ChristianBeilschmidt
left a comment
There was a problem hiding this comment.
Konnte das aus Gründen (Karte) nicht anwenden. Aber hier schon mal meine Kommentare.
| volumeMounts: | ||
| - name: pgdata | ||
| mountPath: /var/lib/postgresql/data | ||
| mountPath: /var/lib/postgresql/18/docker |
There was a problem hiding this comment.
Warum ist das anders, obwohl sich sonst nichts an der Container-Config geändert hat?
| @@ -0,0 +1 @@ | |||
| ./backend/rust-toolchain.toml No newline at end of file | |||
| strum = "0.28" | ||
| strum_macros = "0.28" |
There was a problem hiding this comment.
Wieso brauchen wir das? Geht das nicht auch ohne? Das Projekt ist auch nur semi-aktiv.
| Hash, | ||
| )] | ||
| #[schema(title = "ClimateVariable")] | ||
| #[strum(serialize_all = "camelCase")] |
There was a problem hiding this comment.
Das kann serde ja auch.
|
|
||
| /// Calculates climate-risk indicators from CORDEX/CMIP5 climate data for a given point and time window. | ||
| #[derive(Debug, Clone)] | ||
| pub struct ClimateCordex5Process; |
There was a problem hiding this comment.
Vielleicht mehr User-facing benennen. Was macht der User damit?
Cordex sagt ja mehr über die Quelldaten.
| let wfl_ids = | ||
| try_join_all(variable_workflows.map(|wfl| register_workflow_handler(configuration, wfl))) | ||
| .await; | ||
|
|
||
| let wfl_ids = match wfl_ids { | ||
| Ok(id) => id, | ||
| Err(e) => { | ||
| if let Some(error) = error_response(&e) { | ||
| anyhow::bail!("Failed to register a workflow `{e}`: {error:?}"); | ||
| } | ||
| anyhow::bail!("Failed to register a workflow `{e}`"); | ||
| } | ||
| }; | ||
|
|
||
| let wfl_id_str = wfl_ids | ||
| .iter() | ||
| .map(|workflow_id| workflow_id.id.to_string()) | ||
| .collect::<Vec<_>>(); | ||
|
|
||
| for (wf_id, v) in wfl_id_str.iter().zip(var_props.iter()) { |
There was a problem hiding this comment.
Die Variablen-Namen werden in einem Monat kryptisch sein. Ist nicht so gebräuchlich, also ausschreiben?
| @@ -0,0 +1 @@ | |||
| ./backend/rust-toolchain.toml No newline at end of file | |||
There was a problem hiding this comment.
Coverage am besten > 80% lassen.
| pub year_begin: Year, | ||
| #[schema(minimum = 2014, maximum = 2100)] | ||
| pub year_end: Year, | ||
| pub scenario: ClimateScenario, |
There was a problem hiding this comment.
Hier sollte es auch einen Default geben.
User sollten einfach sagen können: Gib mir Klimaprognose für X und wir geben etwas an mit Begründung.
Bei vorhandenem Expertenwissen kann man das dann umkonfigurieren.
| } | ||
|
|
||
| impl ClimateVariable { | ||
| pub fn variable_to_props(self) -> ClimateVariableProperties { |
There was a problem hiding this comment.
Wir sollten für jede Variable noch die Auftrittswahrscheinlichkeit nach ISO berechnen:
https://docs.google.com/presentation/d/1aDRa7fUudMx5I0p3UxvJybBJfbuv41O1b4dUdJbl3gE/edit?slide=id.g39a92f5c5c2_0_15#slide=id.g39a92f5c5c2_0_15
Evtl. kann man das so kodieren, dass man das dann im UI schön darstellen kann.
| import { FieldType } from './create-new-auto.component'; | ||
| import { MatCheckboxModule } from '@angular/material/checkbox'; | ||
| import { MatInput, MatInputModule } from '@angular/material/input'; | ||
|
|
There was a problem hiding this comment.
Im UI:
Wir sollten die Ergebnisse nicht als JSON darstellen.
Entweder als Tabelle, siehe https://datapackage.org/standard/data-resource/ bei biodiversity-sensitive-areas, oder, evtl. noch besser, als farbkodierte Risikofelder.
No description provided.