Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
description: Cette page montre comment se connecter à WaterStrategy
Pour vous connecter, rendez-vous sur https://hydra.org.uk/login (Hydra est le serveur sécurisé sur lequel nous hébergeons actuellement WaterStrategy)
Entrez votre nom d'utilisateur et votre mot de passe WaterStrategy
Cliquez sur « Se connecter »
Si vous avez oublié votre mot de passe, cliquez sur « »Mot de passe oublié'lien.
Remarque : autorisez les cookies lorsque vous y êtes invité.
description: Comment créer un compte gratuit dans WaterStrategy
Regardez la vidéo ou suivez le texte ci-dessous. WaterStrategy les comptes sont créés sur https://hydra.org.uk/register (« Hydra » est le nom de notre serveur Web).
Création d'un compte
Sur le WaterStrategy page Web, sélectionnez « CONNEXION » dans le coin supérieur droit.
Sélectionnez « Créer un compte » en bas de la page Web à laquelle « Connexion » vous amène.
Sur la page d'inscription, saisissez votre e-mail, prénom, nom de famille, type d'organisation, organisation, pays ou région, créez un mot de passe, sélectionnez « Je ne suis pas un robot » et cochez les trois cases.
Sélectionnez ensuite « Enregistrer ».
Un e-mail de confirmation vous sera envoyé pour confirmer votre compte. Assurez-vous également de vérifier votre dossier de courrier indésirable.
Votre compte a été créé.
Se connecter
Pour vous connecter, rendez-vous sur https://hydra.org.uk/login ou utilisez la page Web WaterStrategy « Connexion »
Entrez votre e-mail et votre mot de passe et cochez à nouveau les trois cases du bas. Choisissez « Se souvenir de moi » si vous le souhaitez.
Sélectionnez ensuite « Connexion ».
Vous serez sur la page d'accueil de l'interface Water Strategy.
description: Comment partager un projet ou un réseau avec d'autres utilisateurs de WaterStrategy
Projets : ce sont comme des dossiers qui regroupent des sous-projets et des réseaux.
Réseaux : chaque modèle doté d'un réseau unique est appelé « Réseau » dans WaterStrategy.
Icône représentant une personne : indique que vous avez uniquement accès au projet ou au réseau.
Icône de personnes : indique que plusieurs personnes ont accès à un projet ou à un réseau.
Créateur : a créé le projet ou le réseau.
Partagé directement : le projet ou le réseau a été spécifiquement partagé avec un utilisateur.
Hérité de : (« Nom du projet ») : L'utilisateur a accès à ce sous-projet ou à ce réseau en partageant un projet qui l'inclut.
Pour partager un projet, entrez le projet et cliquez sur l'onglet Membres.
Tapez l'adresse e-mail du compte du destinataire avec lequel vous souhaitez partager.
Vous pouvez choisir d'accorder deux autorisations à un destinataire.
Permettre aux utilisateurs de partager à nouveau ? : leur permet de partager le projet et les projets/réseaux qu'ils contiennent avec d'autres personnes.
Permettre aux utilisateurs de modifier le projet ? : leur permet de modifier les projets/réseaux au sein du projet.
Sélectionnez « Inviter » après avoir choisi les autorisations.
Ci-dessous, vous pouvez voir avec qui le projet a été partagé, gérer les personnes avec lesquelles il a été partagé, consulter leurs autorisations et voir comment elles ont obtenu l'accès.
Vous pouvez choisir d'accorder certaines autorisations à un destinataire.
Permettre aux utilisateurs de partager à nouveau ? : leur permet de partager le réseau avec d'autres personnes.
Permettre aux utilisateurs de modifier le projet ? : leur permet de modifier le réseau.
Réseau clone : crée un réseau dupliqué. Empêche toute modification du réseau préexistant. Dispose des options ci-dessous si « Réseau cloné » est sélectionné.
Inclure les résultats dans le nouveau réseau ? : inclut les résultats d'exécution dans le réseau cloné.
Inclure tous les scénarios ? : incluez les scénarios créés dans le réseau cloné.
Nom du réseau : créez le nom du réseau cloné.
Saisissez l'adresse e-mail du compte du destinataire avec lequel vous souhaitez partager.
Cliquez sur « Partager » après avoir choisi les autorisations.
WaterStrategy n'est pas nécessaire pour exécuter un modèle Pywr ; il est là pour faciliter l'utilisation des modèles Pywr. Si vous disposez d'un fichier d'entrée de modèle Pywr (il s'agit de fichiers « JSON ») et que les bibliothèques Python et Pywr requises sont installées sur votre ordinateur, vous pouvez exécuter votre modèle Pywr sans WaterStrategy (Remarque : des compétences en Python sont requises). De même, si vous possédez déjà un modèle Pywr (un fichier JSON), vous pouvez l'importer dans WaterStrategy.
Cette page montre comment exporter des modèles depuis WaterStrategy vers un fichier JSON Pywr et comment importer des modèles Pywr existants (fichiers JSON) dans WaterStrategy
Cette section utilise le « réseau de démonstration » fourni lorsque vous créez un compte.
Cliquez d'abord sur le bouton de téléchargement.
Ensuite, nous allons choisir notre format.
Choisissez d'abord le format Hydra JSON. Si vous souhaitez activer les sauts de ligne, cela facilite la lecture de votre code ou de votre texte. S'il s'agit d'un fichier volumineux, vous pouvez le compresser.
Soumets-le.
Ensuite, téléchargez le format JSON Pywr.
Vous trouverez ensuite les deux fichiers dans le dossier dans lequel vous avez choisi de les enregistrer.
Voyons comment importer des fichiers Pywr.
Cliquez d'abord sur « Créer un projet » pour créer un dossier de projet dans votre compte Water Strategy.
Donnez un nom au projet et cliquez sur « Ajouter ».
Cliquez sur le projet créé.
Cliquez sur « Créer un réseau ».
Sélectionnez « Hydra JSON ».
Cliquez sur « Choisir un fichier ».
Choisissez le fichier JSON Hydra.
Sélectionnez le modèle.
Cliquez sur « Soumettre ».
Ensuite, vous pouvez constater que le réseau est importé.
Pour importer le fichier JSON Pywr, vous pouvez suivre ces étapes.
Cliquez à nouveau sur « Créer un réseau ».
Choisissez le « Pywr JSON ».
Cliquez sur « Choisir un fichier ».
Choisissez le fichier JSON Pywr.
Choisissez le modèle.
Pour la projection, vous pouvez choisir « Aucune », « Royaume-Uni » ou « Monde ». Dans ce cas, nous choisirons le « Monde ».
Cliquez sur « Soumettre ».
Enfin, vous pouvez accéder au réseau importé ici.
Pour partager un réseau, cliquez sur l'icône de partage sur un réseau.
Dans WaterStrategy, les utilisateurs ont la possibilité de gérer plus efficacement des ensembles de données volumineux et complexes en chargeant des données à partir de fichiers externes comme Paramètre du cadre de données en utilisant le mot clé « url », plutôt que d'intégrer toutes les données directement dans l'interface. Les formats de fichiers incluent :
CSV
Excel
HDF5
Remarque : Parmi les options précédentes, les fichiers Excel présentent les performances les plus lentes, tandis que les fichiers HDF5 offrent les meilleures performances et sont préférés pour les grands ensembles de données.
Pour télécharger un fichier dans WaterStrategy, accédez à votre projet et cliquez sur l'onglet Fichiers. À partir de là, cliquez Choisissez des fichiers et sélectionnez le fichier que vous souhaitez télécharger et cliquez sur .
Le fichier sera alors ajouté à votre projet et pourra être utilisé sur tous les réseaux du projet.
Une fois les fichiers chargés, ils seront affichés dans le Dossiers onglet de votre projet. À partir de là, vous pouvez facilement les consulter, les gérer et les partager sur tous les réseaux du projet.
Les nœuds d'entrée représentent les entrées d'eau dans le système.
À chaque pas de temps, un nœud d'entrée peut fournir la quantité d'eau définie par Débit maximum attribut. Cependant, contrairement à Nœuds de captage qui sont tenus de libérer le volume d'eau défini dans leur attribut Flow, les nœuds d'entrée ne sont pas tenus de libérer de l'eau à moins qu'ils n'aient une valeur non nulle Débit minimum.
Les nœuds d'entrée sont souvent utilisés pour représenter des sources définies par des rendements. Ils sont souvent utilisés pour représenter les rendements des eaux souterraines.
Pénalité d'attribution
Le coût total de localisation par unité de flux via le nœud
Facultatif
Débit maximum
La contrainte de débit maximale sur le nœud
Facultatif
Débit minimum
La contrainte de débit minimale sur le nœud
Facultatif
à venir...
Le nœud de captage est un autre type de nœud d'entrée avec un flux entrant fixe. Les nœuds de captage sont souvent utilisés pour représenter une rivière ou un autre type d'afflux dans le système. Tout flux défini sur eux doit entrer dans le système.
Les séries chronologiques des flux entrants (par exemple, les trames de données Pywr) sont souvent définies sur flux attribut pour représenter les flux entrants du bassin versant, mais d'autres paramètres peuvent également être utilisés (par exemple, constante, profil mensuel, etc.).
flux
La quantité d'eau fournie par le nœud de captage à chaque pas dans le temps
Obligatoire, la valeur par défaut est 0 si elle n'est pas saisie.
à venir...
Le nœud d'entrée proportionnel est destiné à un cas simple où un ratio de débit fixe doit être distribué sur plusieurs itinéraires en aval. API Référence.
pénalité d'allocation
Le coût par unité de flux via le nœud
Facultatif
facteurs
Les facteurs à appliquer aux fractionnements supplémentaires. Nombre de personnes supplémentaires_
le slot est supposé être inférieur d'un à la longueur des facteurs (selon la documentation PyWR.Nodes.MultiSplitLink) Slot facultatif
_noms
Les identifiants permettant de faire référence aux emplacements lors de la connexion depuis ce nœud. La longueur doit être supérieure d'un au nombre d'emplacements supplémentaires requis
Facultatif
flux
La quantité d'eau fournie par le bassin versant à chaque pas dans le temps
Facultatif
à venir...
Le nœud de retard est un nœud qui retarde le flux pendant un certain nombre de pas ou de jours. Ce nœud sera utilisé lorsque le temps de propagation de l'eau ne peut être ignoré par rapport à l'échelle de temps sélectionnée. API Référence.
pénalité d'allocation
Le coût par unité de flux via le nœud
Facultatif
pas de temps
Nombre de pas de fois pour retarder le flux
Facultatif
jours
Nombre de jours nécessaires pour retarder le flux. La spécification d'un nombre de jours (au lieu d'un nombre de pas de temps) n'est valide que si le nombre de jours est exactement divisible par le delta du pas de temps du modèle
Facultatif
flux_initial
Flux fourni par le nœud pour les intervalles de temps initiaux avant la disponibilité de tout flux différé. Cela est constant pour tous les pas de temps différés et tous les scénarios de modèle. La valeur par défaut est 0.0
Facultatif
à venir...
Le nœud fluvial est un nœud du réseau fluvial, qui peut avoir plusieurs nœuds en amont (c'est-à-dire un confluent) mais un seul nœud en aval. API Référence.
flow
pénalité d'allocation
Le coût par unité de flux via le nœud
Facultatif
max_
La contrainte de débit maximale sur le nœud
Facultatif
min_flux
La contrainte de débit minimale sur le nœud
Facultatif
à venir...
Le RiverSplit node est une division du réseau fluvial. Il est destiné à un cas simple où un ratio de débit fixe doit être distribué sur plusieurs itinéraires en aval. API Référence.
). _noms
facteurs
Les facteurs à appliquer aux fractionnements supplémentaires. Nombre de personnes supplémentaires_le slot est supposé être inférieur d'un à la longueur des facteurs (selon la documentation PyWR.Nodes.MultiSplitLink
Emplacement
optionnel
Les identifiants permettant de faire référence aux emplacements lors de la connexion depuis ce nœud. La longueur doit être supérieure d'un au nombre d'emplacements supplémentaires requis.
Facultatif
à venir...
Le RiverSplitWithGauge node est une division du réseau fluvial avec un débit résiduel minimum (MRF). Selon Rivière Split mais crée par défaut une autre route dans l'objet sous-jacent pour modéliser un MRF. Cet itinéraire est tel que le MRF ne fait pas partie des ratios forcés. L'objectif de cet objet est de modéliser le cas où une partie du débit peut être extraite au-dessus de la MRF (par exemple 90% du débit au-dessus de la MRF). API Référence.
coût Le coût Facteurs
mrf
Le débit résiduel minimum (MRF) au niveau de la jauge
Nécessaire
mrf_
Le coût de l'itinéraire via le MRF
Coût
requis
de l'autre itinéraire (sans contrainte)
requis
Les facteurs
à imposer sur les fractionnements supplémentaires. Nombre de personnes supplémentaires_le créneau est supposé être inférieur d'un à la longueur des facteurs (selon Lien multisplit documentation)
Nécessaire
noms de machines à sous
Les identifiants permettant de faire référence aux emplacements lors de la connexion depuis ce nœud. La longueur doit être supérieure d'un au nombre d'emplacements supplémentaires requis
Nécessaire
à venir...
Le BreakLink node peut être utilisé pour réduire le nombre d'itinéraires dans un modèle.
Par exemple, dans un modèle dont la forme est (3, 1, 3), c'est-à-dire 3 entrées (A, B, C) connectées à 3 sorties (D, E, F) via un goulot d'étranglement (X), il y a 3 \ *3 itinéraires = 9 itinéraires.
Si X est un stockage, il n'y a que 6 itinéraires : A->X _Non, B->X _Donc, C->X _o et X _i->D _Non, X _I->E _Non, X _i->f \ _o.
Le BreakLink node est un nœud composé d'un Rangement avec un volume nul et un Lien. Il peut être utilisé à la place d'un Link normal, mais avec l'avantage de réduire le nombre de routes dans le modèle (dans la situation décrite ci-dessus). Le LP qui en résulte est plus facile à résoudre. API Référence.
Facultatif maxflow
pénalité d'allocation
Le coût par unité de flux via le nœud
Facultatif
conversion_
facteur
La conversion entre le flux entrant et le flux sortant pour le nœud
_flux
La contrainte de débit maximale sur le nœud
Facultatif
minimum_
La contrainte de débit minimale sur le nœud
Facultatif
précédent_flux
Flux total via ce nœud au cours du pas de temps précédent
Facultatif
Le PiecewiseLink node est une extension de Node qui représente un objet non linéaire Lien avec une fonction de coût par pièce. Cet objet est destiné à modéliser des situations dans lesquelles il est avantageux de fournir certains débits mais où au-delà d'une limite fixe, le coût varie (ou est nul). API Référence.
Ce nœud est implémenté à l'aide d'une structure de nœud composée comme suit :
Cela signifie que les routes ne traversent pas directement ce nœud en raison du domaine distinct situé au milieu. Au lieu de cela, plusieurs nouveaux itinéraires sont créés pour chacun des sous-liens et des connexions au nœud Output/Input. La raison de cette interruption de l'itinéraire est d'éviter une augmentation géométrique du nombre de routes lorsque plusieurs PieceWiseLinks sont présents sur le même itinéraire.
flow
pénalité d'allocation
Le coût par unité de flux via le nœud
Facultatif
max_
La contrainte de débit maximale sur le nœud
Facultatif
min_flux
La contrainte de débit minimale sur le nœud
Facultatif
à venir...
Le storage node est un nœud général capable de stocker de l'eau, qui a des restrictions de volume minimum et maximum. API Référence.
pc le
pénalité d'allocation
Le coût par unité de flux via le nœud
Facultatif
minimum_volume
Le volume minimum de l'espace de stockage.
La valeur par défaut est 0.0 Max optionnel
_volume
Le volume maximum de l'espace de stockage. La valeur par défaut est 0.0
Obligatoire, la valeur par défaut est 0 si elle n'est pas saisie
initiale_volume initial_volume_
Spécifiez le volume initial en termes absolus ou proportionnels. Les deux sont requis si max_volume est un paramètre car il ne sera pas évalué lors de la première étape. Si les deux sont administrés et max_volume n'est pas un paramètre, alors la valeur absolue est ignorée L'
une est la zone requise
, le niveau,
flottant facultatif ou le paramètre définissant la surface et le niveau du storage node. Ces valeurs sont accessibles via le get_surface et obtenir_niveau méthodes respectivement
Facultatif
à venir...
Le MultiSplitLink node est une extension de Pièce Wise Link qui comprend des emplacements supplémentaires depuis lesquels se connecter.
Conceptuellement, ce nœud ressemble à ce qui suit en interne,
Un sous-lien supplémentaire dans le PieceWiseLink (c'est-à-dire X2 ci-dessus) et des nœuds (c'est-à-dire Bo et Bi) de cette classe sont ajoutés pour chaque emplacement supplémentaire.
Enfin, un mécanisme est prévu pour (éventuellement) fixer le rapport entre le dernier sous-lien non scindé (c'est-à-dire X1) et chacun des sous-liens supplémentaires (c'est-à-dire X2). Ce mécanisme utilise Nœud agrégé intérieurement. API Référence.
Remarques : Les utilisateurs doivent être prudents lorsqu'ils utilisent le mécanisme factoriel. Les facteurs utilisent le dernier sous-lien non scindé (c'est-à-dire X1 mais pas X0). Si ce lien est limité avec un débit maximum ou minimum, ou s'il existe un autre lien non contraint (c'est-à-dire si X0 n'est pas contraint), les ratios sur l'ensemble de ce nœud peuvent ne pas être appliqués comme prévu.
flow noms
pénalité d'allocation
Le coût par unité de flux via le nœud
Facultatif
max_
La contrainte de débit maximale sur le nœud
Supplément facultatif
_fentes
Nombre d'emplacements supplémentaires (et de sous-liens) à fournir. Doit être supérieur à zéro.
Facultatif
fente_
Les noms par lesquels faire référence aux emplacements lors de la connexion à d'autres nœuds. La longueur doit être supérieure d'un au nombre de pièces supplémentaires_machines à sous. Le premier élément fait référence à la connexion PieceWiseLink avec les éléments suivants pour chaque emplacement supplémentaire.
Facultatif
facteurs
Si elle est donnée, la longueur doit être égale à un de plus que le nombre de extra_slots. Chaque élément représente la proportion du flux total qui passe par les sous-liens supplémentaires. Si aucun facteur n'est requis pour un sous-lien en particulier, utilisez Aucune pour ses articles. Les facteurs sont normalisés avant d'être utilisés dans le solveur.
Facultatif
à venir...
Le VirtualStorage node est une unité de stockage virtuelle. API Référence.
Remarques :
À FAIRE : La propriété des coûts n'est pas respectée actuellement. Voir le numéro #242.
volume
pénalité d'allocation
Le coût par unité de flux via le nœud
Facultatif
nœuds
Liste des nœuds d'entrée/sortie qui affectent le volume de stockage
Nécessaire
minimum_
Le volume minimum que le stockage est autorisé à atteindre
(facultatif)
_volume
Le volume maximum du stockage
Obligatoire, la valeur par défaut est 0 si elle n'est pas saisie
volume_initial
Le volume de stockage initial
Un est requis
facteurs
Liste des facteurs permettant de multiplier le flux de nœuds. Les facteurs positifs éliminent l'eau du stockage, les facteurs négatifs l'éliminent.
Facultatif
à venir...
Le Nœud de stockage virtuel roulant est un storage node virtuel continu utile pour mettre en œuvre des licences continues. API Référence.
Remarques :
À FAIRE : La propriété des coûts n'est pas respectée actuellement. Voir le numéro #242.
volume
pénalité d'allocation
Le coût par unité de flux via le nœud
Facultatif
nœuds
Liste des nœuds d'entrée/sortie qui affectent le volume de stockage
Nécessaire
minimum_
Le volume minimum que le stockage est autorisé à atteindre
(facultatif)
_volume
Le volume maximum du stockage
Obligatoire, la valeur par défaut est 0 si elle n'est pas saisie
volume_initial
Le volume de stockage initial
Un est requis
facteurs
Liste des facteurs permettant de multiplier le flux de nœuds. Les facteurs positifs éliminent l'eau du stockage, les facteurs négatifs l'éliminent.
Facultatif
pas de temps
Le nombre de pas de temps à appliquer au stockage roulant
Nécessaire
jours
Le nombre de jours nécessaires pour appliquer le stockage par roulement. La spécification d'un nombre de jours (au lieu d'un nombre de pas de temps) n'est valide que pour les modèles utilisant un pas de temps de fréquence quotidienne
Nécessaire
à venir...
Le Nœud de stockage virtuel annuel est un stockage virtuel qui se réinitialise chaque année, utile pour les licences. API Référence.
la valeur initiale Réinitialisation requise
réinitialiser_
jour
Le jour du mois (0-31) pour remettre le volume à
_mois
Le mois de l'année (0-12) pour rétablir la valeur initiale du volume
Nécessaire
réinitialiser_pour_volume_initial
Réinitialisez le volume au volume initial au lieu du volume maximum chaque année (la valeur par défaut est False)
Nécessaire
à venir...
Le Nœud de stockage agrégé est la somme agrégée des autres Rangement nœuds
Cet objet doit se comporter comme Rangement en renvoyant le courant flux, volume et actuel _pc. Cependant, cet objet ne peut pas être connecté à d'autres objets du réseau. API Référence.
Remarques : Ce nœud ne peut pas être connecté à d'autres nœuds du réseau.
modèle
Instance `Modèle`
Nécessaire
nom
rue
Nécessaire
nœuds de stockage
Le Rangement objets dont il faut renvoyer la somme totale de
Nécessaire
à venir...
Le nœud de réservoir est une sous-classe de storage node dotée de fonctionnalités supplémentaires pour représenter l'évaporation et les précipitations. API Référence.
pc le , précipitations facultative
pénalité d'allocation
Le coût par unité de flux via le nœud
Facultatif
minimum_volume
Le volume minimum de l'espace de stockage.
La valeur par défaut est 0.0 Max optionnel
_volume
Le volume maximum de l'espace de stockage. La valeur par défaut est 0.0
Obligatoire, sinon la valeur par défaut est 0
initiale_volume initial_volume_
Spécifiez le volume initial en termes absolus ou proportionnels. Les deux sont requis si max_volume est un paramètre car il ne sera pas évalué lors de la première étape. Si les deux sont administrés et max_volume n'est pas un paramètre, alors la valeur absolue est ignorée L'
une est la zone requise
, le niveau,
flottant facultatif ou le paramètre définissant la surface et le niveau du storage node. Ces valeurs sont accessibles via le get_surface et obtenir_
méthodes de niveau respectivement
Évaporation
facultative
Taux d'évaporation et de précipitation (longueur/jour) Unité
_conversion
Facteur de conversion pour convertir les précipitations et l'évaporation en unités de durée par jour requises
Facultatif, la valeur par défaut est 0.001 pour convertir les mm/jour à utiliser avec une superficie de réservoir de km2
pénalité d'évaporation (coût d'évaporation)
Pénalité d'allocation fixée sur la sortie d'évaporation
Facultatif, la valeur par défaut est -999
à venir...
Le nœud de sortie (API Référence) est une sortie générale à n'importe quel point du réseau. Les nœuds de sortie évacuent l'eau du système.
Les nœuds de sortie sont requis au bout d'une rivière et, dans ce cas d'utilisation, ils n'ont généralement pas de pénalité d'allocation ou de débit maximum affecté.
Les nœuds de sortie sont également utilisés pour représenter les demandes de consommation d'eau. Dans ce cas d'utilisation, ils ont tendance à se voir attribuer des pénalités d'allocation négatives afin que le programme linéaire leur attribue de l'eau ainsi qu'un débit maximum qui peut être une constante ou un paramètre représentant la demande en eau.
flow
pénalité d'allocation
Le coût par unité de flux via le nœud
Facultatif
max_
La contrainte de débit maximale sur le nœud
Facultatif
min_flux
La contrainte de débit minimale sur le nœud
Facultatif
à venir...
UNE lien de perte permet de définir une perte de débit proportionnelle fixe qui passe par ce nœud. Les liens de perte sont souvent utilisés pour représenter ouvrages de traitement de l'eau potable ce qui entraîne certaines pertes de processus.
Les attributs de débit Max et Min définis sont appliqués à la sortie nette après les pertes.
Le nœud enregistre lui-même la sortie nette dans son attribut de flux (qui serait utilisé par tous les enregistreurs connectés).
Pénalité d'attribution
Le coût par unité de flux via le nœud
Facultatif
Facteur de perte
perte_facteur : flottant ou paramètre. Proportion de flux perdue via ce nœud. Doit être supérieur ou égal à zéro. Cette valeur est soit une proportion du flux brut, soit du flux net, en fonction de la valeur de la perte._type_facteur
.
Facultatif, la valeur par défaut est 0
Type de facteur de perte
Soit « brut » soit « net » (par défaut) pour spécifier si le facteur de perte est appliqué en tant que proportion du flux brut ou net, respectivement.
Facultatif, la valeur par défaut est « net »
Débit maximum
La contrainte de débit maximale sur le nœud
Facultatif
Débit minimum
La contrainte de débit minimale sur le nœud
Facultatif
Dans cet exemple, 10% de la quantité brute d'eau entrant dans le nœud est perdue.
Le Nœud de stockage virtuel saisonnier est un storage node virtuel qui ne fonctionne que pendant une période spécifiée au cours d'une année.
Ce nœud est particulièrement utile pour représenter les licences qui ne sont appliquées que pendant des périodes spécifiées. Le réinitialiser _jour et réinitialiser _mois les paramètres indiquent quand le nœud commence à fonctionner et fin _jour et fin _mois lorsqu'il cesse de fonctionner. Pendant la période pendant laquelle le nœud ne fonctionne pas, le volume du nœud reste inchangé et le nœud n'applique aucune contrainte au modèle.
La fin _jour et fin _le mois peut représenter une date antérieure à l'année de la réinitialisation _jour et réinitialisation _mois. Cette situation représente une licence dont l'exploitation s'étend sur une période d'un an. Par exemple, une activité qui est active entre octobre et mars et qui n'est pas active entre avril et septembre.API Référence.
jour . _moisvolume_jour
réinitialiser_
Le jour du mois (0-31) où le nœud commence à fonctionner et où son volume est réinitialisé à la valeur initiale ou au volume maximum
Réinitialisation
requise
Le mois de l'année (0-12) au cours duquel le nœud commence à fonctionner et où son volume est réinitialisé à la valeur initiale ou au volume maximum.
Nécessaire
réinitialiser_pour_initiale_
Réinitialisez le volume au volume initial au lieu du volume maximum chaque année (la valeur par défaut est False)
Fin
requise
Le jour du mois (0-31) où le nœud cesse de fonctionner
Nécessaire
fin_mois
Le mois de l'année (0-12) auquel le nœud cesse de fonctionner
Nécessaire
à venir...
Le nœud de turbine peut représenter une turbine d'une centrale hydroélectrique. Il calcule le débit requis pour générer un objectif de production hydroélectrique particulier à chaque pas de temps. API Référence.
altitude
pénalité d'allocation
Le coût par unité de flux via le nœud
Facultatif
cible
Objectif de production hydroélectrique. Les unités doivent être exprimées en unités d'énergie par jour
Facultatif
eau_élévation_paramètre
Hauteur de l'eau entrant dans la turbine. La différence entre cette valeur et la turbine_l'élévation donne la hauteur de travail de la turbine
Optional
max_flux
Limites supérieures du débit calculé. S'il est défini, le débit renvoyé par ce paramètre est au plus égal à la valeur maximale_paramètre de débit
(facultatif)
min_flux
Limites inférieures du débit calculé. S'il est défini, le débit renvoyé par ce paramètre est au moins égal à la valeur du min_paramètre de débit
(facultatif)
min_tête
Hauteur minimale pour que le débit se produise. Si la charge réelle est inférieure à cette valeur, aucun débit n'est renvoyé.
Facultatif
turbine_
Élévation de la turbine elle-même. La différence entre l'eau_élévation et cette valeur donne la tête de travail de la turbine
Facultatif
efficacité
L'efficacité de la turbine
Facultatif
densité
La densité de l'eau
Facultatif
flux_unité_conversion
Facteur utilisé pour transformer les unités de débit afin qu'elles soient compatibles avec l'équation présentée ici. Cela devrait convertir le débit en unités de m3/jour
Facultatif
énergie_unité_conversion
Facteur utilisé pour transformer les unités d'énergie totale. La valeur par défaut est 1e-6 pour renvoyer MJ
Facultatif
à venir...
Les scénarios de WaterStrategy permettent aux utilisateurs de simuler et d'explorer diverses stratégies de gestion de l'eau en ajustant les différents éléments d'un modèle. Ils fournissent un cadre permettant de comprendre comment les modifications des entrées, des hypothèses ou des données peuvent influencer les résultats dans différentes conditions.
WaterStrategy propose deux types de scénarios pour répondre à divers besoins en matière de modélisation de la gestion de l'eau :
WaterStrategy Scénarios : Ce type est utilisé lorsque les utilisateurs doivent ajuster des comportements, des paramètres ou des données spécifiques à une échelle localisée ou plus petite. Ces scénarios sont idéaux pour les cas où seuls certains éléments du modèle doivent être modifiés sans modifier l'ensemble de données dans son intégralité. Il permet des modifications ciblées, ce qui permet de tester plus facilement les effets des modifications individuelles au sein du système.
Scénarios PYWR : Ce type de scénario est conçu pour traiter les cas les plus complexes, en particulier ceux impliquant des incertitudes. Il est spécialisé dans la combinaison de données à plusieurs échelles, ce qui permet une évaluation complète de différentes variables. Cette approche est particulièrement utile lorsque vous travaillez avec des données incertaines ou lorsque vous modélisez des conditions futures, car elle vous permet d'explorer l'impact de différentes combinaisons de données et d'hypothèses sur les résultats.
Ce tableau présente les types de nœuds Pywr les plus couramment utilisés :
Nœud d'entrée
Les nœuds d'entrée représentent les entrées d'eau dans le système.
Nœud de captage
Les nœuds de captage sont souvent utilisés pour représenter une rivière ou un autre type d'afflux dans le système.
Nœud d'entrée proportionnel
Le nœud d'entrée proportionnel est destiné à un cas simple où un ratio de débit fixe doit être distribué sur plusieurs itinéraires en aval.
Link Node
Link node représente un maillon du réseau d'alimentation en eau ou un autre point d'intérêt auquel une contrainte de débit maximale ou minimale ou une priorité d'allocation sont attribuées.
Node fluvial
Un nœud fluvial est un nœud du réseau fluvial, qui peut avoir plusieurs nœuds en amont (c'est-à-dire un confluent) mais un seul nœud en aval.
Nœud de retard
Ces délais s'écoulent pendant un certain nombre de pas ou de jours. Ceci est utilisé lorsque le temps de propagation du flux ne peut pas être ignoré, par exemple parce que les pas de temps sont relativement courts.
Storage Node
Storage node est un nœud général qui peut stocker de l'eau (comme les barrages ou les aquifères), qui ont des restrictions de volume minimales et maximales.
Nœud de réservoir
Le nœud du réservoir est un type de storage node avec des fonctionnalités supplémentaires pour représenter l'évaporation et les précipitations.
Nœud de sortie
Les nœuds de sortie sont des endroits où l'eau quitte le système.
Perte Link Node
La liaison de perte permet de définir une perte de flux proportionnelle fixe qui passe par ce nœud.
Nœud de turbine
Le nœud de turbine peut représenter une turbine d'une centrale hydroélectrique. Il calcule le débit requis pour générer un objectif de production hydroélectrique particulier à chaque pas de temps.
Les types de nœuds Pywr peuvent également être subdivisés en 6 catégories : Entrée d'eau, Transport par voie d'eau, Stockage de l'eau, Débit d'eau, Hydroélectricité, et Autres. Vous trouverez plus de détails sur ces regroupements de nœuds et types de nœuds dans les sous-sections de la section « Types de nœuds ».
Un aperçu des nœuds de Pywr est disponible ici. La liste complète des nœuds intégrés à Pywr est disponible ici.
layout: description: visible: false outline: visible: true pagination: visible: true tableOfContents: visible: true title: visible: true
Les nœuds d'entrée d'eau sont le mécanisme par lequel l'eau peut entrer dans le système. Nous présentons ici les trois nœuds les plus couramment utilisés pour l'entrée d'eau.
layout: description: visible: false outline: visible: true pagination: visible: true tableOfContents: visible: true title: visible: true
Le type de nœud de transport d'eau permet aux utilisateurs de définir la façon dont l'eau circule à travers différents nœuds en fonction des conditions réelles. Vous trouverez ci-dessous les nœuds de transport par eau les plus utilisés :
layout: description: visible: false outline: visible: true pagination: visible: true tableOfContents: visible: true title: visible: true
Le type d'eau storage node permet aux utilisateurs de construire différents réservoirs avec différents modes de fonctionnement. Vous trouverez ci-dessous les nœuds de stockage d'eau les plus utilisés :
layout: description: visible: false outline: visible: true pagination: visible: true tableOfContents: visible: true title: visible: true
Le type de nœud hydroélectrique permet aux utilisateurs de définir les détails pertinents des turbines des barrages et de calculer la production hydroélectrique.
Le Nœud RiverGauge est une station de jaugeage fluvial, avec un débit résiduel minimum (MRF). API Référence.
mrf
Le débit résiduel minimum (MRF) au niveau de la jauge
Nécessaire
mrf_cost
Le coût de l'itinéraire via le MRF
Nécessaire
coût
Le coût de l'autre itinéraire (sans contraintes)
Nécessaire
à venir...
Le link node représente un maillon du réseau d'alimentation en eau ou un autre point d'intérêt auquel une contrainte de débit maximale ou minimale ou une priorité d'allocation sont attribuées. Veuillez noter que dans Pywr, les bords (liens) ne peuvent pas se voir attribuer de contraintes de flux et que, par conséquent, les nœuds de lien sont souvent utilisés à cette fin. API Référence.
flow
pénalité d'allocation
Le coût par unité de flux via le nœud
Facultatif
max_
La contrainte de débit maximale sur le nœud
Facultatif
min_flux
La contrainte de débit minimale sur le nœud
Facultatif
à venir...
description: Vue d'ensemble des paramètres Pywr pris en charge par WaterStrategy
Les paramètres sont des fonctions qui renvoient une valeur dans le modèle à chaque pas temporel. Ces valeurs peuvent être une constante, basée sur le temps (par exemple, le jour ou le mois), un calcul basé sur le stockage du réservoir au pas de temps et de nombreux autres calculs. Le paramètre personnalisé peut également être écrit en Python.
Cette page décrit (la plupart) les types de paramètres pris en charge par Pywr. Un aperçu des paramètres de Pywr est disponible ici. La liste complète des paramètres Pywr intégrés se trouve ici.
Dans un réseau, cliquez sur l'onglet « Paramètres » :
À côté de la section « Catégories de types de paramètres », cliquez sur le bouton « + » et sélectionnez « PYWR \ _PARAMETER ».
Une saisie de texte apparaîtra. Entrez le nom de votre paramètre : \
Modifiez le paramètre selon les besoins dans l'éditeur JSON fourni :
Pour simplifier les modifications de paramètres, WaterStrategy propose des éditeurs pour les paramètres couramment utilisés, tels que les paramètres du profil mensuel, avec des valeurs par défaut préremplies, et des éditeurs graphiques pour simplifier la saisie des données.
Exemple d'éditeur de paramètres
Dans l'onglet Paramètres, lorsque vous ajoutez un nouveau paramètre, sélectionnez « PYWR _PARAMÈTRE _\ _PROFIL MENSUEL » comme indiqué : \
Notez que l'éditeur qui apparaît affichera un onglet JSON, mais également un onglet Plot and Table. La modification des données du tableau mettra automatiquement à jour les données dans le JSON, comme indiqué : \
Ces modifications mettent automatiquement à jour le JSON :
Toutes les Paramètre sous-classes dans pywr sont issus d'une classe de base commune.
description: WaterStrategy aide les particuliers et les organisations à comprendre leur système d'eau et à évaluer leurs projets futurs. La documentation de WaterStrategy vous aide à construire, affiner et utiliser un jumeau numérique de votre système d'eau. layout: description: visible: true outline: visible: true pagination: visible: true tableOfContents: visible: true title: visible: true
layout: description: visible: false outline: visible: true pagination: visible: true tableOfContents: visible: true title: visible: true
WaterStrategy signale des erreurs en cas de panne technique ou de configuration incorrecte du modèle. Apprendre à comprendre et à utiliser un rapport d'erreur de modèle pour détecter un problème dans un modèle est une compétence de modélisation importante et essentielle.
Ce chapitre donne un exemple de lecture d'un rapport d'erreur pour trouver la partie d'un modèle à l'origine de l'erreur.
Lorsqu'une course échoue, vous verrez la course devenir rouge dans la section des courses.
Cliquez sur la barre rouge pour obtenir un aperçu de l'exécution, y compris le rapport d'erreur.
Faites défiler l'écran jusqu'à la fin du rapport. C'est ici que l'exécution signalera son erreur.
Pour cette course, il peut être constaté qu'un profil mensuel n'a pas été saisi correctement.
Dans certains cas, plus de détails seront fournis sur une erreur dans le rapport d'exécution. Il est important de consulter les journaux d'exécution pour voir s'il existe des indices concernant le problème.
Lorsque vous faites défiler la page vers le haut, nous voyons « CRITIQUE ». Cela indique qu'une erreur a été reconnue. Sur la même ligne, il indique où se trouve l'erreur.
L'entrée « évaporation » du nœud « Exemple de réservoir » est incorrecte.
Nous pouvons modifier le paramètre « évaporation » pour résoudre ce problème.
Il y a 13 valeurs dans le profil mensuel, nous devons supprimer la valeur qui n'appartient pas. Dans ce cas, « 3.14 » n'était pas censé figurer dans le profil mensuel.
Enregistrez le paramètre et exécutez à nouveau ce modèle.
Le modèle fonctionne maintenant avec succès.
Un scénario faisant varier IndexParameter. Les valeurs de ce paramètre sont constantes dans le temps, mais varient au sein d'un même scénario. API Référence
enfants
commentaire
commentaire : Unicode
double _taille
double _taille : « int »
entier _taille
entier _taille : « int »
est _la variable
est _variable : « booléen »
modèle
nom
parents
taille
à venir...
``json {
}
Un paramètre variant selon le scénario. Les valeurs de ce paramètre sont constantes dans le temps, mais varient au sein d'un même scénario. API Référence
taille taille
enfants
commentaire
commentaire : Unicode
double_
double_taille : « int »
entier_
entière_taille : « int »
est_la variable
est_variable : « booléen »
modèle
nom
parents
taille
à venir...
``json {
}
Initialisez-vous. Consultez l'aide (type (self)) pour une signature précise. API Référence
enfants
commentaire
commentaire : Unicode
double _taille
double _taille : « int »
entier _taille
entier _taille : « int »
est _la variable
est _variable : « booléen »
modèle
nom
parents
taille
à venir...
``json {
}
description: Il existe différentes manières de demander de l'aide pour WaterStrategy.
La chaîne Discord de WaterStrategy est régulièrement surveillée et offre une assistance de la part des développeurs et des utilisateurs. Vous pouvez y signaler des bogues ou demander de nouvelles fonctionnalités. Inscrivez-vous via ce lien :
Vous pouvez également envoyer un e-mail support@waterstrategy.org
description: Pour créer un « jumeau numérique » (un simulateur informatique) de votre système d'eau, WaterStrategy utilise Pywr (« Python Water Resources »).
Pywr est une bibliothèque logicielle gratuite et open source en langage Python qui permet de créer des modèles de simulation de haute qualité (détaillés et précis) des systèmes de ressources en eau.
Les modèles Pywr s'exécutent rapidement sur votre ordinateur ou, dans le cas de WaterStrategy, sur le cloud. Ils peuvent représenter de petits systèmes de ressources en eau, comme l'approvisionnement en eau d'une ville, ou de très grands, tels que des bassins fluviaux qui s'étendent sur plusieurs pays et comptent des centaines d'utilisateurs d'eau et des infrastructures. Pywr peut simuler des périodes courtes (comme quelques mois) ou plus longues (comme 100 ans) à différents intervalles de temps (du quotidien au mensuel).
Voici un résumé du processus de modélisation Pywr :
1 . Configurer le modèle
Tout d'abord, une carte spatiale du système hydraulique et les données hydrologiques et de demande en eau associées sont nécessaires. WaterStrategy vous aide à créer cette carte réseau de tous les emplacements (« nœuds ») où l'eau entre dans le système (« entrées »), où l'eau est utilisée (« demandes en eau ») et où l'eau est gérée (emplacements des infrastructures). Ces nœuds forment un réseau connecté par des rivières, des canaux ou des pipelines (Pywr les appelle « liens » ou « bords »). Une fois que vous avez configuré la carte de votre réseau, vous fournissez des données sur l'approvisionnement et la demande en eau (généralement sous forme de séries chronologiques).
2 . Exécuter une simulation
Lorsque toutes les données sont saisies, y compris le pas temporel et l'horizon temporel, le modèle est prêt à être simulé (c'est-à-dire, étape dans le temps et comptabilisation de l'eau dans l'ensemble du système). Au début de chaque pas temporel, l'ordinateur commence par injecter de l'eau dans tous les points d'entrée, puis cette eau est acheminée via le réseau et affectée aux différents sites de demande en eau et d'infrastructure. Ce processus d'allocation est effectué à l'aide d'une technique informatique appelée programmation linéaire. Une fois qu'un pas temporel est terminé, le modèle met à jour les stockages, enregistre les emplacements où la quantité d'eau a été collectée, puis passe au pas temporel suivant jusqu'à la fin de l'horizon temporel simulé.
Une priorité est attribuée à chaque nœud de demande en eau pour représenter la répartition de l'eau dans le modèle. Chaque nœud est associé à une pénalité, et l'algorithme d'allocation distribue l'eau sur l'ensemble du réseau afin de minimiser la pénalité globale. Cette approche simple permet de réaliser des simulations rapides et maintenables qui ont la flexibilité de représenter des règles de gestion de l'eau détaillées et réalistes.
3 . Réviser les résultats
Les résultats du modèle incluent la quantité d'eau qui entre dans chaque emplacement (nœud) et la quantité qui est stockée, consommée ou traversée à chaque pas de temps. Cela permet de suivre la manière dont les infrastructures sont utilisées et de savoir si les villes, les écosystèmes, les zones d'irrigation, les centrales électriques, etc. reçoivent suffisamment d'eau. Les résultats fournissent une image détaillée du fonctionnement du système de gestion de l'eau et de la répartition des avantages liés à l'eau.
Au départ, les modèles sont mal paramétrés et produisent des prévisions inexactes (phase « entrée, sortie des déchets »). Cependant, au fil du temps, à mesure que le modèle est amélioré (« calibré »), il peut devenir un jumeau numérique précieux pour faciliter le fonctionnement ou la planification d'un système d'eau. L'outil aide votre organisation à évaluer rapidement et à peu de frais les impacts des futurs changements d'eau et interventions potentiels, et à prendre de bonnes décisions.
Bonne chance !
description: Regardez un aperçu de l'interface WaterStrategy ; un résumé textuel suit.
Projet : dossier contenant les réseaux associés et pouvant également contenir d'autres dossiers de projet (sous-projets).
\ -Chaque dossier de projet affiche le nombre de réseaux et de dossiers de sous-projets qu'il contient.
Réseau : modèle.
Sur la page d'accueil de l'interface, sélectionnez le projet « Matériel de formation ».
Sélectionnez le réseau Demo 1.
\ -Dans le réseau, en haut de la page, vous verrez une barre qui ressemble à celle-ci ci-dessous.
\ -Les onglets « Accueil » et « Mes projets » vous ramèneront à la page d'accueil de l'interface.
\ - « Documentation et formation » vous amène aux vidéos didactiques et à la page d'instructions écrites sur les interfaces.
\ -L'onglet « Favoris » vous permet d'ajouter des projets, des réseaux et des scénarios à vos favoris. Il permet également d'accéder aux projets et réseaux récemment consultés et récemment modifiés.
\ - « Retour au « Matériel de formation » » vous ramène au dossier du projet Training Material.
\ -Le bouton de lecture vert exécute un modèle.
\ -Le bouton à molette permet d'accéder à des utilitaires réseau avancés, tels que l'importation ou l'exportation de données réseau.
\ -La flèche vers le bas dans le bouton rectangulaire sert à télécharger le modèle. Il est utilisé pour l'exécuter hors ligne ou pour l'envoyer à quelqu'un.
\ -Les trois lignes sont « Afficher les données réseau ».
Cliquez sur « Afficher les données réseau ».
\ -Dans la section « Détails », vous pouvez modifier le nom du réseau.
\ -Nécessite parfois de quitter le réseau pour effectuer la mise à jour.
\ -Dans les « Entrées », vous pouvez modifier le début, la fin et le pas temporel de votre modèle.
\ -D=jour, M = mois, Y = année pour le pas de temps.
Cliquez sur l'icône représentant une clé à molette pour accéder à « Paramètres ».
Afficher les étiquettes - affiche les noms des nœuds
Direction du lien : indique le sens du flux des liens
Afficher les info-bulles : affiche les informations sur le nœud lorsque vous le survolez
Masquer automatiquement la barre latérale : masque la barre latérale lorsque vous ne l'utilisez pas
Classez toujours les attributs par type : au sein d'un nœud, les attributs seront regroupés sous forme de scalaires, de descripteurs, etc.
Cliquez sur le « i » pour accéder à « Info ».
\ -Vous pouvez voir votre « ID réseau » et d'autres informations.
Fermez la barre latérale et accédez à la section scénario sur le côté gauche de la page.
\ -Les scénarios sont des variations des données d'entrée, de l'hydrologie, etc. au sein d'un modèle.
\ -Fréquent pour créer plusieurs scénarios au sein d'un modèle.
Bouton 1 (gauche) - Scénario de clonage
Bouton 2- Modifier le scénario
Bouton 3- Supprimer le scénario
Bouton 4- Actualiser la liste des scénarios
Bouton 5- Ajouter le scénario à vos favoris
Bouton 6 (à droite) - Comparer les scénarios
\ -Pour créer un nouveau scénario, clonez un scénario préexistant en lui donnant un nouveau nom. Une fois créé, modifiez les données d'entrée du modèle comme vous le souhaitez.
Cliquez sur le bouton « Exécuter un modèle ».
\ -Conservez le scénario de référence.
\ -Conservez toutes les autres valeurs par défaut.
Cliquez sur « Soumettre ».
\ -Dans la section « Courses » sur le côté gauche de la page, vous verrez votre nouvelle course et vos précédentes courses.
\ -Yellow=Exécuter en file d'attente
\ -Blue=Exécution en cours
\ -Green=Exécution réussie
\ -Red=Échec de l'exécution
Cliquez sur « Créer » sous la section « Exécuter ».
\ -Ceci fournit tous les nœuds et liens nécessaires à la création d'un modèle.
\ -Après avoir inséré un nœud, les données doivent être saisies.
Cliquez sur « Rechercher » sous la section « Créer ».
\ -Cela vous permet de trouver facilement des nœuds et des liens dans les grands modèles.
Le bouton en forme de bombe situé dans le coin supérieur gauche de la carte vous permet d'agrandir votre modèle pour le rendre moins encombré si nécessaire.
Carte- Affiche le modèle
Resources- Peut afficher vos nœuds, vos liens et vos groupes
Metrics- Fournit des fonctionnalités pour l'agrégation des résultats des modèles
Règles personnalisées - Règles de fonctionnement personnalisées
Paramètres- Ajouter des paramètres non inclus dans pywr
Enregistreurs- Ajouter des enregistreurs non inclus dans pywr
Members- Affiche les membres qui ont accès au modèle et les autorisations dont ils disposent. Vous pouvez également ajouter des membres dans cet onglet et choisir les autorisations dont ils disposent
Analyse- Comparaison des nœuds et des liens dans des scénarios
Création d'un nouveau projet et d'un nouveau réseau
Sur la page d'accueil de l'interface, cliquez sur « Créer un projet » dans le coin supérieur droit.
Tapez le nom de votre projet et sélectionnez « Ajouter ».
Entrez votre nouveau projet.
Cliquez sur « Créer un réseau » sur le côté droit.
Choisissez l'onglet « Manuel ».
Entrez un nom de réseau.
Choisissez l'un de ces deux modèles de pywr.
\ -Les autres modèles concernent d'autres systèmes de modélisation tels que les systèmes d'alimentation.
Choisissez « Utiliser la carte » pour afficher la carte du monde pour la modélisation.
Cliquez sur « Soumettre ».
Entrez le réseau créé.
Basculez et zoomez sur une zone le long du Nil.
Sélectionnez le menu déroulant « Créer ».
Faites glisser un bassin versant, un lien et deux nœuds de sortie dans le modèle, comme indiqué ci-dessous.
\ -Le deuxième nœud de sortie (hors rivière) sera utilisé comme nœud de prélèvement d'eau.
\ -Notez que le nœud de captage est en amont et que le nœud de sortie est en aval.
(le Nil coule vers le nord dans cette partie et dans l'ensemble)
À l'aide de la fonction « Liens », connectez les nœuds dans le sens du flux.
\ -Pour ce faire, cliquez d'abord sur le nœud de flux ascendant, puis sur le nœud de flux descendant.
Une collection de paramètres d'index
Cette classe se comporte comme un ensemble. Des paramètres peuvent y être ajoutés ou supprimés. Son index est l'indice de ses paramètres enfants agrégés à l'aide d'une fonction d'agrégation (par exemple, sum).
à venir...
``json {
}
description: Comment ça marche ? qu'est-ce qu'il produit ? et comment l'utilise-t-on ?
Pour comprendre le fonctionnement actuel d'un système d'eau et évaluer les impacts des changements futurs, les planificateurs élaborent des modèles de systèmes de ressources en eau.
Les systèmes de ressources en eau peuvent être petits, comme une ville et ses sources d'approvisionnement en eau, ou grands, comme un pays comptant de nombreux fleuves, infrastructures hydrauliques et utilisateurs d'eau différents. Qu'il s'agisse d'évaluer la fiabilité des sources actuelles ou d'évaluer de nouvelles interventions dans des conditions futures plausibles, un tel modèle informatique permet de suivre l'eau dans le système (spatialement) et au fil du temps.
À partir des données relatives aux débits hydrologiques et au climat, à la demande et à l'utilisation de l'eau, ainsi qu'aux règles de gestion et d'allocation de l'eau, un modèle de système hydraulique produit les débits et les volumes d'eau à chaque emplacement et à chaque pas temporel modélisés. Lorsque ces résultats sont agrégés, ils fournissent une image précise de la manière dont les différentes interventions dans le domaine de l'eau (modifications des politiques ou des infrastructures relatives à l'eau) peuvent fonctionner.
Paramètre qui en décale un autre Paramètre par une valeur constante.
Cette classe est une version plus efficace de Paramètre agrégé où un seul Paramètre est compensé par une valeur constante.
taille taille optimisation supérieure_limites
à venir...
``json {
}
enfants
commentaire
commentaire : Unicode
double_
double_taille : « int »
entier_
entière_taille : « int »
est_la variable
est_variable : « booléen »
modèle
nom
paramètre
paramètre : pywr.parameters. _PARAMÈTRES.Paramètre
parents
taille
seuil
seuil : « double »
agg \ _func
enfants
commentaire
commentaire : Unicode
double _taille
double _taille : « int »
entier _taille
entier _taille : « int »
est _la variable
est _variable : « booléen »
modèle
nom
paramètres
paramètres : liste
parents
taille
enfants
commentaire
commentaire : Unicode
double_
double_taille : « int »
entier_
entière_taille : « int »
est_la variable
est_variable : « booléen »
modèle
nom
paramètre
paramètre : pywr.parameters. _PARAMÈTRES.Paramètre
parents
taille
seuil
seuil : « double »
enfants
commentaire
commentaire : Unicode
double_
double_taille : « int »
entier_
entière_taille : « int »
est_la variable
est_variable : « booléen »
modèle
nom
offset
Le décalage à appliquer à la valeur renvoyée par paramètre
paramètre
Le paramètre à comparer avec le flottant
plus bas_
bornes
Les limites inférieures du décalage lorsqu'il est utilisé lors de l'
Les limites supérieures du décalage lorsqu'il est utilisé lors de l'optimisation
parents
taille
enfants
commentaire
commentaire : Unicode
double_
double_taille : « int »
entier_
entière_taille : « int »
est_la variable
est_variable : « booléen »
modèle
nom
paramètre
paramètre : pywr.parameters. _PARAMÈTRES.Paramètre
parents
taille
seuil
seuil : « double »
type
profil hebdomadaire
Oui
valeurs
Tableau de 52 nombres dont les indices représentent les jours de l'année.
Oui
type
profil quotidien
Oui
valeurs
Tableau de 366 nombres dont les indices représentent les jours de l'année.
Oui
enfants
commentaire
commentaire : Unicode
double_
double_taille : « int »
entier_
entière_taille : « int »
est_la variable
est_variable : « booléen »
modèle
nom
paramètre
paramètre : pywr.parameters. _PARAMÈTRES.Paramètre
parents
taille
seuil
seuil : « double »
description: Termes clés utilisés dans Pywr.
Pywr, une bibliothèque Python utilisée par WaterStrategy, permet de simuler l'allocation des ressources en représentant un système de ressources sous la forme d'un réseau à l'aide de « nœuds » et de « bords ». L'allocation des ressources est régie par des règles de fonctionnement utilisant des « pénalités d'allocation », des « contraintes » et des « paramètres » et les résultats des modèles sont capturés et enregistrés à l'aide des « enregistreurs ». Les variations des entrées du modèle peuvent être spécifiées et exécutées en parallèle à l'aide de « Scénarios ».
Bien que les concepts généraux utilisés pour créer un modèle de simulation d'allocation de ressources dans Pywr soient similaires à ceux des autres outils, l'utilisation des termes peut différer. Dans cette section, nous définissons les principaux termes de Pywr et leurs rôles dans les modèles de simulation.
Les nœuds représentent les emplacements du système d'alimentation en eau simulé où l'eau est ajoutée, stockée, utilisée, consommée ou transmise. Il existe différents types de nœuds dans Pywr pour vous aider à créer votre modèle de système d'eau ; vous pouvez en savoir plus à leur sujet dans le Types de nœuds section. Les données qui définissent les caractéristiques physiques et le comportement d'un nœud peuvent être ajoutées directement au nœud ou indirectement en faisant référence à un paramètre (décrit ci-dessous).
Pour former un réseau, les nœuds sont connectés à l'aide de liens représentant le transport de l'eau. Pyer les appelle « bords ». Une arête possède un nœud de départ et un nœud d'arrivée, et l'eau s'écoule du nœud de départ vers le nœud d'arrivée. Pywr n'attribue pas d'informations à ces connexions (les bords), mais attribue des données aux nœuds source et de destination. Toutes les données nécessaires pour simuler la gestion de l'eau sont stockées sur des nœuds, les bords ne déterminant que la direction du flux d'eau. Un modélisateur Pywr dirait que « les bords de Pywr déterminent la topologie du réseau », ce qui signifie que « les connexions entre les nœuds déterminent la façon dont l'eau se déplace dans le modèle informatique ».
Des contraintes peuvent être définies sur différents types de nœuds afin de mieux représenter le comportement du système. Par exemple, un nœud fluvial peut avoir des valeurs de débit maximales et/ou minimales pour représenter la capacité de transport. Dans Pywr, de nombreux nœuds ont la valeur « max _« débit » et « min »_attributs flow' pour définir les limites supérieure et inférieure du flux à travers le nœud si nécessaire. L'attribut « max \ _flow » n'exige pas que le débit passant par ce nœud atteigne cette valeur, mais si le volume d'eau et la priorité sont suffisants, le modèle essaiera d'atteindre le « débit maximum ». Les contraintes de débit minimales doivent être utilisées avec précaution car elles peuvent rendre le modèle irréalisable si le minimum ne peut pas être atteint.
Les pénalités d'allocation sont des attributs de nœud qui contrôlent la priorité d'allocation de l'eau. Celles-ci sont généralement exprimées sous forme de pénalités ou de « coûts », et le modèle attribue l'eau en premier au nœud ayant la pénalité la plus faible. Si vous préférez répartir les dépenses en fonction des avantages, en envoyant d'abord l'eau là où elle présente le plus d'avantages, vous devrez exprimer vos priorités en Pywr sous forme de coûts négatifs (c'est-à-dire utiliser des chiffres négatifs). En fait, les deux peuvent être utilisés ensemble. Ainsi, par exemple, si 3 nœuds ont des pénalités -10, 2, 6, ils recevront de l'eau dans cet ordre (le nœud avec une pénalité de -10 reçoit de l'eau en premier, et le nœud avec la pénalité d'allocation 6 reçoit de l'eau en dernier).
Les paramètres de Pywr fournissent un moyen flexible et pratique de fournir des entrées aux nœuds. Par exemple, un type de paramètre particulier peut être utilisé pour charger des données de flux entrants ou de demandes à partir d'un fichier Microsoft Excel. Les paramètres offrent également un moyen flexible et personnalisable de définir les règles de fonctionnement d'un système (par exemple, les règles régissant les rejets des réservoirs). La plupart des données d'entrée du modèle peuvent être fournies à l'aide de paramètres.
Les enregistreurs Pywr sont utilisés pour le post-traitement des résultats. En créant un enregistreur, vous pouvez observer et enregistrer les résultats de simulation. Certains enregistreurs permettent d'agréger les résultats dans le temps (par exemple, de la journée à l'année) et dans l'espace (par exemple, l'eau allouée à un groupe de nœuds).
Dans Pywr, vous pouvez créer et simuler des scénarios avec différentes données d'entrée sur l'offre, la demande ou d'autres changements. Les planificateurs de l'eau utilisent de plus en plus des simulations à long terme avec de nombreux scénarios pour évaluer les changements futurs ou tester des interventions possibles. La capacité de simuler rapidement de nombreux scénarios futurs plausibles est l'un des principaux avantages de Pywr.
Remarque :
Pour plus de détails, veuillez consulter le document en libre accès intitulé : Un simulateur de ressources en eau en Python.
Paramètre fournissant un profil quotidien par scénario.
Ce paramètre fournit un profil annuel répétitif avec une résolution quotidienne. Un profil différent est renvoyé pour chaque membre d'un scénario donné. API Référence
scénario
Objet de scénario sur lequel différents profils doivent être fournis
Oui
valeurs
La longueur de la première dimension doit être égale au nombre de membres de l'objet de scénario et la longueur de la deuxième dimension doit être 366
Oui
à venir...
``json {
}
Paramètre fournissant un profil mensuel par scénario.
Le comportement est le même que Paramètre de profil mensuel sauf qu'un profil différent est renvoyé pour chaque ensemble dans un scénario donné. API Référence
scénario
Objet de scénario sur lequel différents profils doivent être fournis
Oui
valeurs
La longueur de la première dimension doit être égale au nombre de membres de l'objet de scénario et la longueur de la deuxième dimension doit être 12
Oui
à venir...
``json {
}
Paramètre de série chronologique avec alignement et rééchantillonnage automatiques.
``json { « type » : « Paramètre du cadre de données », « url » : « Flux entrants_mm3_day.csv «, « column » : « Catchment River 1", « index_col » : « pas de temps », « parse_dates » : vrai }
Paramètre qui interpole un profil quotidien à l'aide d'une fonction de base radiale (RBF).
Le profil quotidien est calculé pendant le modèle réinitialiser en utilisant une fonction de base radiale avec le jour de l'année comme variable indépendante. Les jours de l'année sont définis par l'utilisateur à côté des valeurs à utiliser pour chacun de ces jours pour l'interpolation. Le premier jour de l'année doit toujours être égal à un, et sa valeur est répétée comme étant la 366e valeur. De plus, les deuxième et avant-dernière valeurs sont mises en miroir pour favoriser l'apparition d'un dégradé cohérent à travers la limite. Les calculs du RBF sont effectués à l'aide du SciPy.Interpolate.RBF objet, veuillez consulter la documentation de Scipy pour plus d'informations.
à venir...
``json {
}
Le Nœud AggregatedNode est la somme agrégée des autres Nœud nœuds.
Cet objet doit se comporter comme Nœud en renvoyant le courant flux. Cependant, cet objet ne peut pas être connecté à d'autres objets du réseau. .
Remarques : Ce nœud ne peut pas être connecté à d'autres nœuds du réseau.
à venir...
WaterStrategy Les scénarios fournissent un outil permettant d'apporter des ajustements ciblés à des éléments spécifiques d'un modèle de gestion de l'eau. Ces scénarios sont particulièrement utiles lorsque vous souhaitez expérimenter des modifications localisées de paramètres, de comportements ou de données de manière flexible et contrôlée.
Lorsqu'un scénario WaterStrategy est créé, il agit comme fourchette d'un modèle de réseau existant. Le réseau d'origine est affecté au scénario de référence, qui représente les conditions par défaut ou de démarrage du système. À partir de cette base de référence, un scénario WaterStrategy permet d'apporter des modifications précises, qu'il s'agisse de modifier les entrées de données ou d'ajuster les paramètres qui définissent le comportement des éléments clés du système.
Cette capacité à modifier certains aspects du modèle tout en laissant les autres inchangés fait de WaterStrategy Les scénarios sont idéaux pour tester l'impact de modifications individuelles. Par exemple, vous pouvez modifier les règles d'exploitation des réservoirs ou modifier les prévisions de la demande sans avoir à reconstruire l'intégralité du modèle. Cette approche ciblée aide les utilisateurs à évaluer rapidement comment des modifications spécifiques influencent les résultats des stratégies de gestion de l'eau de raffinage.
Commencez par cliquer sur l'icône Cloner un scénario.
Sélectionnez le scénario que vous souhaitez cloner et nommez-le
Pour un didacticiel détaillé, consultez sur la création et l'exécution d'un nouveau scénario
jours_de_année
Jours de l'année où les valeurs d'interpolation sont définies. La première valeur doit être un
Oui
valeurs
Valeurs à utiliser pour l'interpolation correspondant à jours_de_année
Oui
plus bas_
bornes
Les limites inférieures des valeurs utilisées lors de l'optimisation Oui supérieur
_limites
Les limites supérieures des valeurs utilisées lors de l'optimisation
Oui
variable_jours_de_année_gamme
Les limites maximales (positives ou négatives) pour les jours de l'année lors de l'optimisation. Une valeur non nulle entraînera l'exposition des valeurs des jours de l'année sous forme de variables entières (sauf la première valeur qui reste au jour 1). Cette valeur est limitée à ces variables en tant que décalage maximal par rapport à la valeur donnée jours_de_année
Oui
minimum_valeur, max_valeur
Vous pouvez éventuellement plafonner le profil quotidien interpolé à une valeur minimale et/ou maximale. Les valeurs par défaut sont l'infini négatif et l'infini positif pour le minimum et le maximum respectivement.
Oui
rbf_kwargs
Dictionnaire optionnel d'arguments de mots-clés à baser sur l'objet Rbf
Facultatif
type
profil mensuel
Oui
valeurs
Tableau de 12 nombres dont les indices représentent les mois de l'année.
Oui
seuil
Seuil auquel comparer la valeur de l'enregistreur
Oui
valeurs
Si le prédicat donne la valeur False, la valeur zéro est renvoyée, sinon la première valeur est renvoyée.
Oui
prédicat
L'un des {« LT », « GT », « EQ », « LE », « GE »}
Oui
cliquet
Si c'est vrai, le paramètre se comporte comme un cliquet. Une fois qu'il est déclenché pour la première fois, il reste dans la position déclenchée (par défaut=False)
Oui
seuil
Seuil auquel comparer la valeur de l'enregistreur
Oui
espace de rangement
rangement : pywr. _core.Stockage des résumés
Oui
cliquet
Si c'est vrai, le paramètre se comporte comme un cliquet. Une fois qu'il est déclenché pour la première fois, il reste dans la position déclenchée (par défaut=False)
Oui
seuil
Seuil auquel comparer la valeur de l'enregistreur
Oui
cliquet
Si c'est vrai, le paramètre se comporte comme un cliquet. Une fois qu'il est déclenché pour la première fois, il reste dans la position déclenchée (par défaut=False)
Oui
modèle
Instance `Modèle`
Nécessaire
nom
rue
Nécessaire
nœuds de stockage
Le Nœud objets dont il faut renvoyer la somme totale de
Nécessaire
type
trame de données
Oui
modèle
Facultatif
trame de données
Facultatif
scénario
Facultatif
Paramètre d'interpolation générique qui utilise le flux d'un nœud au pas de temps précédent pour l'interpolation. API Référence
type
flux interpolé
Oui
nœud
Nœud pour fournir des valeurs de flux d'entrée pour le calcul d'interpolation
Facultatif
flux
coordonnées x des points de données pour l'interpolation
Facultatif
valeurs
Coordonnées y des points de données pour l'interpolation
Facultatif
interp_kwargs
Dictionnaire des arguments de mots-clés à transmettre scipy.interpolate.interp1d classe et utilisée pour l'interpolation
Facultatif
à venir...
``json {
}
La valeur du paramètre est égale à la quadrature de l'interpolation d'un autre paramètre. API Référence
des points de données à interpoler
plus haut_
paramètre
Valeur supérieure de l'intervalle interpolé à intégrer sur
Oui
x x
coordonnées des points de données à interpoler Coordonnées
y y y
Facultatif
inférieur
_paramètre
Valeur inférieure de l'intervalle interpolé sur lequel intégrer. Peut être Aucune auquel cas la valeur inférieure de l'intervalle est zéro
Facultatif
interp_kwargs
Dictionnaire des arguments de mots-clés à transmettre scipy.interpolate.interp1d classe et utilisée pour l'interpolation
Facultatif
à venir...
``json {
}
Renvoie l'une des deux valeurs en fonction de l'année du pas temporel en cours. API Référence
seuil
Seuil auquel comparer la valeur de l'enregistreur
Oui
cliquet
Si c'est vrai, le paramètre se comporte comme un cliquet. Une fois qu'il est déclenché pour la première fois, il reste dans la position déclenchée (par défaut=False)
Oui
à venir...
``json {
}
Renvoie l'une des deux valeurs en fonction de l'ordinale du pas de temps actuel. API Référence
seuil
Seuil auquel comparer la valeur de l'enregistreur
Oui
cliquet
Si c'est vrai, le paramètre se comporte comme un cliquet. Une fois qu'il est déclenché pour la première fois, il reste dans la position déclenchée (par défaut=False)
Oui
à venir...
``json {
}
Paramètre d'interpolation générique qui renvoie une valeur basée sur le volume actuel (pas de temps) d'un réservoir ou d'un nœud de stockage. Le
Le paramètre utilise un gamme (tableau) de Volumes des réservoirs et les valeurs correspondantes. Dans ce cas, les valeurs associées sont les valeurs correspondantes Zone du réservoir pour une donnée Volume.
L'interpolation est utilisée pour calculer les valeurs entre les points donnés dans le tableau d'interpolation. API Référence
type
volume interpolé
Oui
nœud
Storage node pour fournir des valeurs de volume d'entrée pour le calcul d'interpolation
Oui
volumes
coordonnées x des points de données pour l'interpolation
Oui
valeurs
Coordonnées y des points de données pour l'interpolation
Oui
interp_kwargs
Dictionnaire des arguments de mots-clés à transmettre scipy.interpolate.interp1d classe et utilisée pour l'interpolation
Facultatif
Le code Json suivant montre un exemple de courbe d'évaluation de la surface par rapport au volume pour un réservoir. Cela peut être utilisé pour définir l'attribut Area d'un nœud de stockage ou de réservoir.
``json { « type » : « Paramètre de volume interpolé », « node » : « Nom du réservoir ou Storage node », « volumes » : [ 0, 7, 10, 15, 25 ], « valeurs » : [ 1, 2, 4, 6, 14 ],
« comment » : « volumes : Mm3, valeurs : Km2" }
La valeur du paramètre est égale à l'interpolation d'un autre paramètre. API Référence
type
flux interpolé
Oui
nœud
Nœud pour fournir des valeurs de flux d'entrée pour le calcul d'interpolation
Facultatif
interp_kwargs
Dictionnaire des arguments de mots-clés à transmettre scipy.interpolate.interp1d classe et utilisée pour l'interpolation
Facultatif
à venir...
``json {
}
Classe de base pour tous les paramètres qui reposent sur un nœud attaché contenant un contrôle _Paramètre de courbe. [API Référence] (https://pywr.github.io/pywr-docs/master/api/generated/pywr.parameters.control _Curves.BaseControlCurveParameter.html #pywr .parameters.control \ _Curves.BaseControlCurveParameter)
espace de rangement_node
Un nœud de stockage optionnel qui peut être utilisé pour interroger le volume en pourcentage actuel
Oui
control_courbes
Les objets Parameter à utiliser comme courbe (s) de contrôle
Oui
à venir...
``json {
}
Paramètre de courbe de contrôle qui effectue une interpolation entre trois valeurs ou plus.
Les valeurs de retour sont interpolées linéairement entre les courbes de contrôle, la première et la dernière valeur étant respectivement 100% et 0 %. API Référence
espace de rangement_node
Un nœud de stockage optionnel qui peut être utilisé pour interroger le volume en pourcentage actuel
Oui
control_courbes
Les objets Parameter à utiliser comme courbe (s) de contrôle
Oui
valeurs
Une liste de valeurs à renvoyer correspondant aux courbes de contrôle. La longueur de la liste doit être de 2 + len (contrôle)_courbes)
Oui
paramètres
Si les valeurs sont None, les paramètres peuvent spécifier un objet Parameter à utiliser sur chacune des courbes de contrôle. Le nombre de paramètres doit être égal à 2 + len (control_courbes)
Oui
à venir...
``json {
}
Les scénarios Pywr proposent une approche plus avancée et plus complète de la modélisation de la gestion de l'eau, en particulier lorsqu'il s'agit de travailler avec l'incertitude et d'évaluer diverses combinaisons de données, de comportements de systèmes et d'entrées de données. Contrairement aux scénarios WaterStrategy, qui se concentrent sur des ajustements localisés, les scénarios Pywr vous permettent d'expérimenter un large éventail de possibilités en faisant varier plusieurs entrées et combinaisons simultanément.
Dans Pywr Scenarios :
Les utilisateurs peuvent définir plusieurs scénarios, chaque scénario contenant plusieurs variations (ou tailles).
Le système simulera toutes les combinaisons de ces variations à moins qu'une combinaison spécifique ne soit sélectionnée pour la simulation.
Par exemple, si deux scénarios Pywr sont définis, chacun comportant trois variantes (taille = 3), le nombre total de simulations sera de 9 (3 x 3). Cette approche permet aux utilisateurs d'explorer un large éventail de résultats potentiels et d'interactions entre les différents facteurs du modèle.
Dans un réseau, cliquez sur Afficher les données du réseau icône
Cela ouvrira le panneau de droite. Dans la section Entrées, tapez »scénarios » et cliquez sur Ajouter une entrée icône
Une fenêtre s'affichera, tapez »scénarios », sélectionnez scénarios attribuez et cliquez Enregistrer comme le montre l'image suivante
Une nouvelle fenêtre apparaîtra, sélectionnez PYWR _SCÉNARIOS et cliquez Sauvegarder
Une fois le panneau de personnalisation des scénarios ouvert, vous pouvez définir autant de scénarios Pywr que nécessaire. Pour créer un nouveau scénario Pywr, procédez comme suit :
Cliquez
Modifiez le scénario par défaut actuel en cliquant sur
Entrez un Nom pour le scénario Pywr et spécifiez le Taille (nombre de variantes).
Le Ensembles l'attribut est facultatif et permet de suivre des scénarios d'index spécifiques dans le scénario Pywr
Après avoir créé les scénarios pywr, le système affiche les informations suivantes :
En cliquant sur JSON l'onglet affichera la version JSON automatique du Scénario Pywr définition
Pour charger les données en tant que h5 DataFrameParameter, veuillez vous référer à Section des paramètres HDF5 afin d'accéder correctement aux données du scénario
les scénarios pywr sont compatibles avec les paramètres suivants :
Paramètre de base fournissant un index méthode. API Référence
enfants
commentaire
commentaire : Unicode
double _taille
double _taille : « int »
entier _taille
entier _taille : « int »
est _la variable
est _variable : « booléen »
modèle
nom
parents
taille
à venir...
``json {
}
Les pénalités d'allocation sont des attributs de nœud qui permettent à Pywr de simuler l'allocation d'eau. Ils peuvent également être appelés « priorités d'allocation » ou « coûts ».
Une pénalité faible aura la priorité d'allocation la plus élevée, une valeur élevée aura la plus base.
Ainsi, par exemple, si trois nœuds ont des priorités 100, 3 et -2, alors le nœud avec -2 reçoit son eau en premier, puis 3, puis 100.
Voici quelques questions concernant les pénalités que vous pourriez avoir pour l'attribution de l'eau, et quelques réponses brèves :
Pourquoi et comment Pywr répartit-il l'eau de cette manière ? À chaque pas de temps, l'algorithme d'allocation de Pywr (un programme linéaire) minimise la pénalité d'allocation de l'ensemble du système. Le flux traversant les nœuds est multiplié par leurs pénalités d'allocation respectives. Cette technique est utilisée depuis les années 1950 par les planificateurs de l'énergie, des transports et de l'eau ainsi que par les entreprises de logistique. Ils veulent tous des systèmes qui fonctionnent à moindre coût, c'est pourquoi ils ont généralement utilisé les coûts financiers d'exploitation comme terme de pénalité. C'est logique, cela permet d'utiliser le modèle pour équilibrer un réseau offre-demande au moindre coût.
L'idée d'une pénalité négative vous semble confuse ? Si c'est le cas, considérez une pénalité négative comme un coût négatif, qu'est-ce que c'est ? un avantage ! Donc, si vous souhaitez allouer l'eau là où elle génère le plus d'avantages dans votre modèle Pywr, vous utiliserez des pénalités négatives. Dans ce cas, plutôt que d'appeler ces attributs de nœud des pénalités d'allocation ou des coûts, vous pouvez les appeler priorités d'allocation. Dans ce cas, un nœud dont la priorité d'allocation est -99 recevra de l'eau bien avant -10. Comme le montre l'exemple de la troisième phrase ci-dessus, des pénalités d'allocation négatives et positives peuvent être utilisées dans le même modèle.
Les pénalités d'attribution ont-elles une signification particulière ? Non, ils ne le font pas. Ils sont simplement là pour aider votre modèle à allouer l'eau d'une manière qui vous convient, en tant que gestionnaire et planificateur de l'eau.
Comment savoir si j'ai correctement défini les pénalités d'allocation d'eau ? Si votre modèle répartit l'eau de manière appropriée dans des conditions normales, mais également pendant les inondations et les sécheresses, vous avez défini des pénalités appropriées. Félicitations ! votre modèle est en passe de devenir « bien calibré ».
Si j'apporte une modification importante à mon modèle, par exemple en ajoutant une nouvelle infrastructure de grande envergure ou en ajoutant un nouveau type d'utilisateur d'eau, dois-je modifier les pénalités de mon modèle ? Oui, certaines pénalités de votre modèle peuvent avoir besoin d'être affinées, en fonction de l'importance de la modification. Essaie de voir.
Puis-je utiliser n'importe quel chiffre pour les pénalités ? par exemple, si mon modèle comporte 2 nœuds, puis-je utiliser un million négatif et positif comme pénalités ? Oui, mais c'est une mauvaise idée. Utilisez des chiffres aussi proches que possible. Si ce n'est pas le cas, à mesure que votre modèle grandit, vous pourriez manquer de pénalités disponibles et votre modèle commencera à faire des erreurs d'arrondi. Toutefois, si vous utilisez des pénalités trop similaires, votre modèle risque d'y être insensible (c'est-à-dire qu'il ne les prend pas en compte de manière adéquate lors de la simulation des allocations). Avec un peu d'expérience, vous apprendrez à définir des pénalités qui fonctionnent bien. Pour acquérir cette expérience, essayez de modifier les pénalités et voyez comment cela affecte les résultats de votre modèle.
Enfin, nous fournissons quelques détails techniques supplémentaires sur les pénalités :
Les nœuds de réservoir et de stockage sont soumis à des pénalités d'allocation. Une pénalité négative signifie que le réservoir aura tendance à accumuler de l'eau, à moins qu'une pénalité plus faible sur un autre nœud n'entraîne une baisse de la priorité du stockage du réservoir.
Les pénalités d'allocation peuvent être des constantes (paramètres constants) ou des profils (mensuels, quotidiens, hebdomadaires) qui changent au fil du temps. En outre, les pénalités d'allocation peuvent avoir différents niveaux définis par différentes courbes de contrôle en fonction du volume du réservoir. Malgré les pénalités d'allocation des réservoirs et des réservoirs influant sur le stockage de l'eau, les rejets provenant de ces nœuds résulteront d'un équilibre des pénalités dans le système, qui tiendra compte des pénalités d'allocation en aval, car l'algorithme tente de minimiser la pénalité globale du système à chaque pas de temps.
Collection de paramètres IndexParameters. Cette classe se comporte comme un ensemble. Des paramètres peuvent y être ajoutés ou supprimés. Sa valeur est la valeur de ses paramètres enfants agrégés à l'aide d'une fonction d'agrégation (par exemple sum).
``json { « type » : « Paramètre agrégé », « agg_func » : « produit », « paramètres » : [ « Demande de référence », « Facteur de demande de la courbe de contrôle » ] }
type
paramètre constant
Oui
valeur
La valeur constante
Oui
type
agrégés
Oui
paramètres
Les paramètres à agréger
Facultatif
agg_func
La fonction d'agrégation. Il doit s'agir de l'une des valeurs {« sum », « min », « max », « mean », « product »} ou d'une fonction appelable qui accepte une liste de valeurs
Facultatif
Paramètre qui divise un Paramètre par un autre. API Référence
enfants
commentaire
commentaire : Unicode
dénominateur
double _taille
double _taille : « int »
entier _taille
entier _taille : « int »
est _la variable
est _variable : « booléen »
modèle
nom
numérateur
parents
taille
à venir...
``json {
}
Paramètre qui prend le négatif d'un autre Paramètre. API Référence
taille taille
enfants
commentaire
commentaire : Unicode
double_
double_taille : « int »
entier_
entière_taille : « int »
est_la variable
est_variable : « booléen »
modèle
nom
paramètre
paramètre : pywr.parameters. _PARAMÈTRES.Paramètre
parents
taille
à venir...
``json {
}
Paramètre variant dans le temps à l'aide d'un tableau et TimeStep.Index avec facteurs multiplicatifs par scénario.
Les valeurs sont les données chronologiques de référence qui sont perturbées par un facteur. Le facteur est tiré de facteurs qui sont la forme (scenario.size, 12). Par conséquent, les facteurs varient selon les scénarios individuels en termes de scénario et de mois. API Référence
scénario
Objet de scénario sur lequel différents profils doivent être fournis
Oui
valeurs
La longueur de la première dimension doit être égale au nombre de membres de l'objet de scénario et la longueur de la deuxième dimension doit être 12
Oui
à venir...
``json {
}
Paramètre fournissant un profil hebdomadaire par scénario
Ce paramètre fournit un profil annuel répétitif avec une résolution hebdomadaire. Un profil différent est renvoyé pour chaque membre d'un scénario donné. API Référence
scénario
Objet de scénario sur lequel différents profils doivent être fournis
Oui
valeurs
La longueur de la première dimension doit être égale au nombre de membres de l'objet de scénario et la longueur de la deuxième dimension doit être 52
Oui
à venir...
``json {
}
Paramètre fournissant une valeur uniformément réduite de un à zéro.
Ce paramètre est destiné à être utilisé avec un Stockage virtuel annuel nœud pour fournir un profil qui représente une utilisation moyenne parfaite du volume annuel. Elle renvoie une valeur de 1 le jour de la réinitialisation, puis est réduite de 1/366 chaque jour par la suite. API Référence
la valeur initiale Oui reset
réinitialiser_
jour
Le jour du mois (1-31) pour remettre le volume à
_mois
Le mois de l'année (1-12) pour rétablir la valeur initiale du volume
Oui
à venir...
``json {
}
Ce paramètre lit les données d'un tableau à partir d'une base de données PyTables HDF.
Le paramètre lit les données à l'aide de l'interface de tableau PyTables et ne nécessite donc pas le chargement de l'ensemble de données en mémoire. Ceci est utile pour les grandes séries de modèles. API Référence
En stockant les fichiers HDF5 au format « fixe », les utilisateurs peuvent atteindre des vitesses d'accès aux données optimales, faisant de HDF5 un outil efficace pour les scénarios PYWR qui utilisent des DataFrames comme paramètres, où la récupération rapide des données est cruciale. Les fichiers HDF5 sont lus comme un dictionnaire, où chaque clé représente un Pandas DataFrame. Par exemple, la structure d'un fichier inflows.h5 peut contenir trois clés, chacune représentant une rivière différente. Chaque clé contient trois séries chronologiques qui peuvent être attribuées à un scénario Pywr de taille 3.
Si vous utilisez le fichier h5 DataFrame pour exécuter pywr-scenarios, veuillez vous référer à afin d'activer cette fonctionnalité
Remarque : La taille de pywr-scenarios doit correspondre au nombre de clés du fichier h5
fichier h5
Le descripteur de fichier ou le nom de fichier de la table auquel associer les objets CARray. Si un nom de fichier est donné, l'objet ouvrira et fermera les descripteurs de fichiers.
Oui
nœud
Nom du nœud dans la base de données des tables à partir duquel lire les données
Oui
où
Chemin à partir duquel lire le nœud
Oui
scénario
Scénario à utiliser comme deuxième index du tableau
Oui
``json { « key » : « Catchment River 1", « scénario » : « Changement climatique », « type » : « Paramètre du cadre de données », « url » : « Entrées .h5", « index_col » : « pas de temps », « parse_dates » : vrai }
Paramètre qui utilise un IndexParameter pour indexer un tableau de paramètres.
Un exemple d'utilisation de ce paramètre est de renvoyer un facteur d'économie de demande (sous forme de variable flottante) basé sur le niveau d'économie de demande actuel (calculé par un Paramètre d'index). API Référence
paramètre_index
Paramètre d'index
Oui
paramètres
itérable de Paramètres ou flotteurs
Oui
Le code ci-dessus utilise l'indice fourni par le paramètre appelé « Courbe de contrôle du réservoir », qui est Paramètre d'indice de courbe de contrôle. L'index 0 renvoie un 1, l'index 2 renvoie 0.9 etc...
Dans cet exemple, ce paramètre est utilisé pour réduire une demande sur la base d'une courbe de contrôle du réservoir. Veuillez vous rendre sur Exemple de paramètre agrégé pour voir comment cela se fait.
Veuillez voir comment le paramètre de la courbe de régulation du réservoir est défini.
Renvoie l'une des deux valeurs en fonction du flux précédent dans un nœud. API Référence
seuil
Seuil auquel comparer la valeur de l'enregistreur
Oui
cliquet
Si c'est vrai, le paramètre se comporte comme un cliquet. Une fois qu'il est déclenché pour la première fois, il reste dans la position déclenchée (par défaut=False)
Oui
à venir...
``json {
}
Renvoie l'une des deux valeurs en fonction de la valeur d'un enregistreur et d'un seuil. API Référence
seuil
Seuil auquel comparer la valeur de l'enregistreur
Oui
cliquet
Si c'est vrai, le paramètre se comporte comme un cliquet. Une fois qu'il est déclenché pour la première fois, il reste dans la position déclenchée (par défaut=False)
Oui
enregistreur
enregistreur : pywr.recorders. _enregistreurs.enregistreur
à venir...
``json {
}