Converter lista de valores de precipitação de 24 horas em total por hora


11

Digamos que eu tenha uma lista de valores de precipitação por hora, cada um mostrando quanta chuva aconteceu nas 24 horas anteriores, ordenada por data. Por exemplo:

{
    '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 uma estratégia / algoritmo para determinar quanta chuva caiu em cada uma das horas? Parece que não consigo entender isso. Eu sei que não é tão simples como somar as diferenças.

Visualização do conjunto de dados

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

Muito obrigado por qualquer ajuda.


Faz 0,6" de chuva a partir de 5/23 11:00 - 24/05 10:59 médio que nesse intervalo de tempo 0,6" de chuva caiu ou um média de 0,6" de chuva durante esse período?
Sistema de Down

O antigo. É a soma da chuva por hora, nas 24 horas anteriores. Eu quero descobrir como "interromper" essa última hora.
Mike Griffith

1
Isso é surpreendentemente difícil. Todo valor que você registra é composto por 24 números desconhecidos resumidos. Você precisaria de 24 equações para resolver isso, ou seja, 24 equações que contêm as mesmas incógnitas, mas porque você tem uma janela deslizante, esse não é o caso. Não consigo imaginar que isso seja "insolúvel", mas com certeza me parece. Outra maneira de pensar sobre isso: você está ganhando um desconhecido para cada P(N-x)adição, portanto, no final, o número de equações e incógnitas se expõem novamente.
sebastiangeiger

3
Eu estou querendo saber se isso seria uma pergunta melhor para: cstheory.stackexchange.com
FrustratedWithFormsDesigner

2
@FrustratedWithFormsDesigner ou math.stackexchange.com ?
CaffGeek # 24/12

Respostas:


8

Supondo que o conjunto de dados sempre consista em janelas consecutivas de 24 horas (ou seja, o primeiro ponto de dados não é uma janela de 1 hora) ...

Este não é um problema solucionável, pelo menos no caso geral, porque existe um contra-exemplo em que pelo menos dois padrões de chuva são mapeados para um conjunto de dados.

  • Caso 1: chove 24 "às 12:30 todos os dias para sempre.
  • Caso 2: chove 1 "a cada 30 minutos para cada hora para sempre.

Nos dois casos, você é P(N) = 24"para todos N.

Como não há um cenário que possa ser derivado desse conjunto de dados, o problema não é solucionável no sentido genérico.


Como um aparte, também podemos demonstrar que não é necessariamente verdade que o problema é sempre insolúvel. Mais simplesmente, se for P(N) = 0"para todos N, existe apenas um padrão de chuva possível para explicar: zero centímetro de chuva a cada hora.


Portanto, é o problema mais interessante identificar quais características do conjunto de dados tornam o problema solucionável. Trivialmente, se você tem um conjunto de dados com pelo menos um Ndesses P(N) = 0", então você tem uma solução.

Eu não ficaria surpreso se houvesse outras propriedades que tornassem o problema solucionável para um determinado conjunto de dados. Encontrar esses deve ser um desafio divertido. Ao mesmo tempo, provar que nada pode existir é igualmente divertido.


5

você precisa percorrer os dados até encontrar um período de precipitação 0 e calcular a partir desse ponto, conforme descrito pelo SnOrus. Se nenhum ponto de dados for 0, não acho que isso possa ser resolvido, a menos que você defina a entrada mais antiga como 1 hora após o início do tempo, portanto, os pontos anteriores são indefinidos.

também seria possível calcular para trás no tempo a partir de uma leitura de 0, fazendo a mesma coisa ao contrário (embora você obtenha pelo menos 24 0s seguidos.


A restrição interessante sobre os dados que tornam isso possível é que a precipitação nunca pode ser negativa; portanto, com um valor zero, você sabe que as 24 horas anteriores tinham que ser zero.
Scott Whitlock 24/05

0

P (n) - P (n-1) Limitado a> = 0

Onde P () é a quantidade de precipitação registrada nas 24 horas anteriores a n.

... deve fornecer a quantidade de chuva na hora anterior a P(n).


Isso calcularia -.1 polegadas para as 12:00. Parece improvável. Se .2 polegadas era a medida 24 horas às 11:00 no dia 23, então a resposta correta deve ser 0,1
Edward Estranho

Se N for "24/5 às 12:00", P (N) incluirá uma janela de 23/5 às 12:00 até 24/04 às 11:59. Então P (N-1) inclui uma janela de 23/5 às 11:00 até 24/05 às 10:59. Quero saber o que aconteceu na janela das 11h às 11h59, mas apenas subtrair os dois também introduz uma "janela" extra no dia anterior. Veja a descrição atualizada para representação visual.
Mike Griffith

@ MikeGriffith: Veja minha edição. Acredito que estava certo, mas você precisa vincular o resultado a> = 0. (<= 0 indica que não houve chuva). A menos que eu esteja entendendo mal o problema.
Steven Evers

@ SnOrfus: Você ainda tem dois valores desconhecidos nesse momento.
Daenyth

0

Esta não é uma resposta completa, estou no trabalho e já gastei muito tempo nisso ... além disso, precisaria de mais dados para ver se meu palpite está correto.

Vamos chamar P (x) a medida de 24 horas no tempo x.

Considere o seguinte cenário de sobreposição:

|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.

Portanto, você precisa calcular o H25. Acredito que a solução esteja em algum lugar de um sistema criado a partir de P (X), P (X-1) e P (X-24).


0

Por duas horas consecutivas n (agora) e n-1 (a hora anterior), você tem a soma da precipitação de 24 horas (T) composta de 24 números de precipitação por hora (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)

Então:

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

(Os termos P (n-1) ... P (n-23) são duplicados em T (n) e T (n-1), portanto, subtraí-los resulta em 0.) Reorganizando, você obtém:

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

Agora, você não pode descobrir o que P (n) é, a menos que saiba o que P (n-24) é. Você pode voltar ainda mais nos dados para calcular P (n-24), mas para isso precisa de P (n-25) e assim por diante ad infinitum. O que você precisa, então, é o valor da precipitação para qualquer hora que tenha mais de 24 horas. Se você tiver isso, poderá calcular a precipitação horária para todas as horas subseqüentes.


1
+1 "O que você precisa, então, é o valor da precipitação para qualquer hora que tenha mais de 24 horas." Ou um valor de 0" para um período de 24 horas.
CaffGeek

@ Chade Essa é certamente uma maneira de obtê-lo.
Caleb
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.