Convertir la liste des valeurs des précipitations sur 24 heures en total par heure


11

Disons que j'ai une liste des précipitations par heure, chacune indiquant la quantité de pluie tombée au cours des 24 heures précédentes, classée par date. Par exemple:

{
    '2012-05-24 12:00': 0.5, // .5" of rain from 5/23 12:00 - 5/24 11:59
    '2012-05-24 11:00': 0.6, // .6" of rain from 5/23 11:00 - 5/24 10:59
    '2012-05-24 10:00': 0.6, // .6" of rain from 5/23 10:00 - 5/24 09:59
    ...
    '2012-05-23 10:00': 0
}

Existe-t-il une stratégie / un algorithme pour déterminer la quantité de pluie tombée à chacune des heures? Je n'arrive pas à envelopper ma tête autour de ça. Je sais que ce n'est pas aussi simple que de simplement résumer les différences.

Visualisation de l'ensemble de données

P(N)    [.....======================]
P(N-1)  [....======================.]
P(N-2)  [...======================..]
P(N-3)  [..======================...]
I want  [..........................=]

Un grand merci pour toute aide.


Est -ce que 0,6" de pluie de 5/23 11:00 - 10:59 5/24 moyenne que dans ce laps de temps 0,6" de pluie sont tombés en panne ou une moyenne de 0,6" de pluie au cours de cette période?
système vers le bas

L'ancien. C'est la somme des pluies par heure, pour les 24 heures précédentes. Je veux savoir comment "rompre" cette dernière heure.
Mike Griffith

1
C'est étonnamment difficile. Chaque valeur que vous enregistrez est composée de 24 nombres inconnus additionnés. Vous auriez besoin de 24 équations pour résoudre cela, c'est-à-dire 24 équations qui ont les mêmes inconnues exactes mais parce que vous avez une fenêtre coulissante qui n'est pas le cas. Je ne peux pas imaginer que ce soit "insoluble", mais cela me semble sûr. Une autre façon de penser: vous P(N-x)gagnez une inconnue pour chaque que vous ajoutez, donc à la fin le nombre d'équations et d'inconnues ressort à nouveau.
sebastiangeiger

3
Je me demande si ce serait une meilleure question pour: cstheory.stackexchange.com
FrustratedWithFormsDesigner

2
@FrustratedWithFormsDesigner ou math.stackexchange.com ?
CaffGeek

Réponses:


8

En supposant que l'ensemble de données se compose toujours de fenêtres consécutives de 24 heures (c'est-à-dire que le premier point de données n'est pas une fenêtre d'une heure) ...

Ce n'est pas un problème résoluble au moins dans le cas général, car il existe un contre-exemple où au moins deux modèles de pluie correspondent à un ensemble de données.

  • Cas 1: Il pleut 24 "à 12h30 tous les jours pour toujours.
  • Cas 2: Il pleut 1 "à 30 minutes toutes les heures pour toujours.

Dans les deux cas, vous êtes P(N) = 24"pour tous N.

Puisqu'aucun scénario ne peut être dérivé de cet ensemble de données, le problème n'est pas résoluble au sens générique.


Soit dit en passant, nous pouvons également démontrer qu'il n'est pas nécessairement vrai que le problème est toujours insoluble. Plus simplement, si P(N) = 0"pour tous N, il n'y a qu'un seul modèle de pluie possible pour l'expliquer: zéro pouce de pluie à chaque heure.


C'est donc le problème le plus intéressant d'identifier quelles caractéristiques de l'ensemble de données rendent le problème résoluble. Curieusement, si vous avez un ensemble de données avec au moins un Ntel P(N) = 0", alors vous avez une solution.

Je ne serais pas surpris s'il y avait d'autres propriétés qui rendraient le problème résoluble pour un ensemble de données donné. Les trouver devrait être un défi amusant. En même temps, prouver qu'il n'en existe pas est tout aussi amusant.


5

vous devez parcourir les données jusqu'à ce que vous trouviez une période de précipitation de 0, puis vous calculez vers l'avant à partir de ce point comme le décrit SnOrus. Si aucun point de données n'est égal à 0, je ne pense pas que cela puisse être résolu à moins que vous ne définissiez la première entrée à 1 heure après le début du temps, de sorte que les points antérieurs à celui-ci ne sont pas définis.

il serait également possible de calculer en arrière dans le temps à partir d'une lecture de 0, en faisant la même chose en sens inverse (bien que vous obtiendrez au moins 24 0 de suite.


La contrainte intéressante sur les données qui rend cela possible est que les précipitations ne peuvent jamais être négatives, donc avec une valeur nulle, vous savez que les 24 heures précédentes devaient être nulles.
Scott Whitlock

0

P (n) - P (n-1) Limité à> = 0

Où P () est la quantité de précipitation enregistrée pour les 24 heures précédant n.

... devrait vous donner la quantité de pluie dans l'heure qui précède P(n).


Cela calculerait-1 pouces pour 12:00. Cela semble peu probable. Si 0,2 pouces était la mesure de 24 heures à 11h00 le 23 alors la bonne réponse devrait être 0,1
Edward Strange

Si N est "5/24 12:00 pm", P (N) inclut une fenêtre de 5/23 à 12:00 pm à 5/24 à 11:59 am. Puis P (N-1) comprend une fenêtre du 23/05 à 11h00 au 24/05 à 10h59. Je veux savoir ce qui s'est passé dans la fenêtre de 11h00 à 11h59, mais le simple fait de soustraire les deux introduit également une "fenêtre" supplémentaire la veille. Voir la description mise à jour pour la représentation visuelle.
Mike Griffith

@MikeGriffith: Voir ma modification. Je crois que j'avais raison, mais vous devez limiter le résultat à> = 0 (<= 0 indiquerait qu'il n'y a pas eu de pluie). À moins que je ne comprenne mal le problème.
Steven Evers

@SnOrfus: Vous avez encore deux valeurs inconnues à ce stade.
Daenyth

0

Ce n'est pas une réponse complète, je suis au travail et y ai déjà passé beaucoup de temps ... en outre, j'aurais besoin de plus de données pour voir si mon intuition est correcte.

Appelons P (x) la mesure de 24 heures au temps x.

Considérons le scénario de chevauchement suivant:

|H1|H2|H3.............|H23|H24|H25|H26 ................ |H46|H47|H48|
|-----------------P(X)--------|-----------------P(X-24)-------------|
   |----------------------P(X-1)--|

P (X) - P (X-1) + H25 = H1.

Vous devez donc calculer H25. Je crois que la solution va reposer quelque part dans un système créé à partir de P (X), P (X-1) et P (X-24).


0

Pour deux heures consécutives n (maintenant) et n-1 (l'heure précédente maintenant), vous avez la somme des précipitations de vingt-quatre heures (T) composée de 24 nombres de précipitations horaires (P):

T(n) = P(n) + P(n-1) + P(n-2) + ... + P(n-22) + P(n-23)
T(n-1) = P(n-1) + P(n-2) + P(n-3) +... + P(n-23) + P(n-24)

Donc:

T(n) - T(n-1) = P(n) - P(n-24)

(Les termes P (n-1) ... P (n-23) sont dupliqués dans T (n) et T (n-1), donc leur soustraction donne 0.) En réorganisant, vous obtenez:

P(n) = T(n) - T(n-1) + P(n-24)

Maintenant, vous ne pouvez pas comprendre ce qu'est P (n) à moins de savoir ce qu'est P (n-24). Vous pouvez remonter plus loin dans les données pour calculer P (n-24), mais pour obtenir cela, vous avez besoin de P (n-25) et ainsi de suite à l'infini. Ce dont vous avez besoin, c'est donc la valeur des précipitations pour toute heure antérieure à 24 heures. Si vous en avez, vous pouvez calculer les précipitations horaires pour toutes les heures suivantes.


1
+1 "Ce dont vous avez besoin, c'est donc la valeur des précipitations pour toute heure antérieure à 24 heures." Ou une valeur de 0 "pour une période de 24 heures.
CaffGeek

@Chad C'est certainement une façon de l'obtenir.
Caleb
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.