DassHydro / smash

An open source, Python library interfacing the Fortran Spatially distributed Modelling and ASsimilation for Hydrology platform.
https://smash.recover.inrae.fr/
GNU General Public License v3.0
12 stars 6 forks source link

Tutoriels #166

Closed CatherineFouchier closed 4 months ago

CatherineFouchier commented 4 months ago

Merci pour les tutoriels !

Qq observations, questions :

Tutoriel Cancé

Tutoriel France

Tutoriel Lez Split sample

Tutoriel Lez – Regionalisation

inoelloc commented 4 months ago

visualisation des exutoires sur le bassin versant : les pixels jauges apparaissent sur la grille « Active cells ». Est-ce qu’il est possible de compléter en permettant de visualiser sur la grille « Flowacc » ? Ça permet de voir où se trouvent les coordonnées données en input par rapport au réseau de drainage (même question pour le tuto Lez)

Si c'est possible, ca demande de revoir la manière de faire le graph pour changer la couleur des pixels concernés sur les flow accumulation mais en gardant la colorbar de base.

à quoi correspond le « zero » dans l’output ‘zero-gr4-lr’ renvoyé par model.setup.structure ?

Une structure est la combinaison d'un module neige, hydrologique et de routage. zero indique qu'il n'y pas de module neige dans la structure utililsée.

est-ce qu’il est utile de pouvoir accéder de 2 manières différentes aux valeurs des paramètres ? Par exemple pour cp via mode.rr_parameters.values[ :, :,1] et via model.get_rr_parameters(« cp ») ? Est-ce qu’on peut simplifier en supprimant cette redondance ?

Ca peut etre utile oui, pour la majorité des cas d'utilisation, utliser le getter est recommandé mais un utilisateur qui "sait" ce qu'il fait peut être intéressé de directement modifier les valeurs à partir du tableau en lui même.

quelle est l’utilité de model.rr_final_states.keys ? Est-ce que ça ne sera pas toujours identique à model.rr_initial_states.keys ?

Effectivement, ca sera toujours les mêmes clefs. Il n'y pas d'utilité particulière si ce n'est que la meme structure de code est utlisée pour stocker ces deux variables, ce qui réduit la redondance de code.

pourquoi les seuls arguments de fwd_run sont-ils uniquement q.domaine et time_step et pas tous les arguments de model alors qu’on a une attribution fwd_run = model.forward_run ?

C'est un des changements de la v1 par rapport à la v0.5. L'objet Model ne contient que des variables "obligatoires". Pour récupérer des variables optionnelles, nous utilisons une autre structure. fwd_run ne contient effectviement que les variables optionnelles souhaitées et l'objet Model le reste.

peut-être faire tracer la dernière carte des débits sur un pas de temps différent de celui de la précédente carte ? Soit en changeant les bornes de time_step mis dans return_options, soit en changeant l’indice du pas de temps de la grille q choisie pour affichage avec plt.imshow

C'est possible mais le but est de juste de montrer qu'on peut retourner les pas de temps souhaités au lieu de les retourner tous. Le fait de remettre la même carte permet de voir que cela "fonctionne". On pourrait plotter les deux cartes sinon

redondance : “to do this, instead of calling the method Model.optimize method” …

A corriger oui !

des caractères ne sont pas bien compilés dans le tutoriel, par exemple dans le 1er paragraphe : “The parameters (\boldsymbol{\theta}) ….“ et du coup idem dans la section « Mapping » de la doc générale

Je n'ai pas de probleme la dessus. Sur quoi tu ouvres la documentation ?

il me semble qu’il manque un verbe dans la 1ère phrase des 1ers paragraphe des parties Multiple polynomial et Artificial neural network : « … using a multiple polynomial / ANN based mapping of descriptors to (assess ? calibrate ?) conceptual model parameters … »

A corriger oui !

plus de détails sur les informations du RNA seraient utiles

Il manque bcp de choses dans les tutoriels, je suis d'accord. On essayera de compléter tout ca lors des mises à jour de la v1

Merci pour ton retour. On va corriger ce qu'il faut ;)

asjeb commented 4 months ago

Merci pour les tutoriels !

Qq observations, questions :

Tutoriel Cancé

* visualisation des exutoires sur le bassin versant : les pixels jauges apparaissent sur la grille « Active cells ». Est-ce qu’il est possible de compléter en permettant de visualiser sur la grille « Flowacc » ? Ça permet de voir où se trouvent les coordonnées données en input par rapport au réseau de drainage (même question pour le tuto Lez)

Tu peux essayer ceci pour la visualisation de tes stations : import numpy as np import matplotlib.pyplot as plt import matplotlib

setup, mesh = smash.factory.load_dataset("Cance") model = smash.Model(setup, mesh)

plt.show()

x = [] y = [] for (i, j) in model.mesh.gauge_pos: x.append(i) y.append(j)

code = model.mesh.code

cmap = matplotlib.cm.get_cmap('plasma') colors = cmap(np.linspace(0, 1, len(x)))

or

colors = ['r','g','b']

color_stations = zip(code, colors)

plt.imshow(mesh["flwacc"]);

for i in range(len(x)): plt.plot(y[i], x[i], 'v', color=colors[i], label=code[i])

or

plt.plot(model.gauge_pos[0, :], x, 'r')

plt.colorbar(label="Flow accumulation (nb cells)"); plt.legend() plt.title("Real case - Cance - Flow accumulation"); plt.show()