Konwertuj listę 24-godzinnych wartości opadów na całkowitą godzinę

11

Załóżmy, że mam listę wartości opadów według godziny, z których każda pokazuje, ile deszczu wystąpiło w ciągu ostatnich 24 godzin, uporządkowane według daty. Na przykład:

{
    '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
}

Czy istnieje strategia / algorytm określający, ile deszczu spadało w każdej godzinie? Nie wydaje mi się, żeby mnie to owijało. Wiem, że to nie jest tak proste, jak sumowanie różnic.

Wizualizacja zestawu danych

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

Wielkie dzięki za wszelką pomoc.

Mike Griffith
źródło
Czy 0,6 "deszczu od 5/23 11:00 - 5/24 10:59 oznacza, że ​​w tym czasie spadło 0,6" deszczu lub średnio 0,6 "deszczu w tym okresie?
System Down
Były. Jest to suma deszczu na godzinę, z poprzednich 24 godzin. Chcę wymyślić, jak „zerwać” w ciągu ostatniej godziny.
Mike Griffith
1
To zaskakująco trudne. Każda zarejestrowana wartość składa się z 24 nieznanych, zsumowanych liczb. Aby rozwiązać ten problem, potrzebujesz 24 równań, czyli 24 równań, które zawierają dokładnie te same niewiadome, ale ponieważ masz przesuwane okno, które tak nie jest. Nie mogę sobie wyobrazić, że jest to „nierozwiązywalne”, ale z pewnością tak mi się wydaje. Kolejny sposób, aby o tym pomyśleć: P(N-x)zyskujesz jedną nieznaną za każde dodane, więc ostatecznie liczba równań i niewiadomych znów się wyłania.
sebastiangeiger
3
Zastanawiam się, czy byłoby to lepsze pytanie dla: cstheory.stackexchange.com
FrustratedWithFormsDesigner
2
@FrustratedWithFormsDesigner lub math.stackexchange.com ?
CaffGeek

Odpowiedzi:

8

Zakładając, że zestaw danych zawsze składa się z kolejnych 24-godzinnych okien (tzn. Pierwszy punkt danych nie jest oknem 1-godzinnym) ...

Nie jest to problem do rozwiązania, przynajmniej w ogólnym przypadku, ponieważ istnieje kontrprzykład, w którym co najmniej dwa wzorce deszczu odwzorowują jeden zestaw danych.

  • Przypadek 1: Pada 24 godziny o 12:30 każdego dnia na zawsze.
  • Przypadek 2: Pada 1 "co 30 minut co godzinę na zawsze.

W obu przypadkach Twój P(N) = 24"za wszystkich N.

Ponieważ nie ma jednego scenariusza, który można by wyprowadzić z tego jednego zestawu danych, problemu nie można rozwiązać w sensie ogólnym.


Nawiasem mówiąc, możemy również wykazać, że niekoniecznie jest prawdą, że problem jest zawsze nierozwiązywalny. Najprościej, jeśli P(N) = 0"w ogóle N, istnieje tylko jeden możliwy wzorzec deszczu: zero cali deszczu co godzinę.


Dlatego bardziej interesującym problemem jest określenie, jakie cechy zestawu danych sprawiają, że problem można rozwiązać. Trywialnie, jeśli masz zestaw danych z co najmniej jednym Ntakim P(N) = 0", to masz rozwiązanie.

Nie zdziwiłbym się, gdyby istniały inne właściwości, które rozwiązałyby problem dla danego zestawu danych. Znalezienie ich powinno być zabawnym wyzwaniem. Jednocześnie udowodnienie, że nikt nie może istnieć, jest równie zabawne.

Steven
źródło
5

musisz iterować dane, aż znajdziesz okres opadów 0, a następnie obliczasz naprzód od tego miejsca, jak opisuje SnOrus. Jeśli żaden punkt danych nie jest równy 0, to nie sądzę, że można to rozwiązać, chyba że zdefiniujesz najwcześniejszy wpis jako godzinę po początku czasu, więc punkty wcześniejsze są niezdefiniowane.

byłoby również możliwe obliczenie wstecz w czasie od odczytu 0, robiąc to samo w odwrotnej kolejności (chociaż dostaniesz co najmniej 24 0 z rzędu.

Ryathal
źródło
Interesującym ograniczeniem danych, które to umożliwia, jest to, że opady nigdy nie mogą być ujemne, więc przy wartości zerowej wiesz, że 24 poprzednie godziny musiały być zerowe.
Scott Whitlock
0

P (n) - P (n-1) Ograniczony do> = 0

Gdzie P () to ilość opadów zarejestrowana dla 24 godzin przed n.

... powinien dać ci ilość deszczu na godzinę przed P(n).

Steven Evers
źródło
To by obliczyć -1 cali dla 12:00. Brzmi mało prawdopodobne. Jeśli .2 cale to miara 24-godzinna o godzinie 23:00 23-go dnia, prawidłowa odpowiedź powinna brzmieć .1
Edward Strange
Jeśli N to „5/24 12:00”, P (N) obejmuje okno od 5/23 o 12:00 do 5/24 o 11:59. Następnie P (N-1) obejmuje okno od 5/23 o 11:00 do 5/24 o 10:59. Chcę wiedzieć, co wydarzyło się w oknie od 11:00 do 11:59, ale samo odjęcie tych dwóch wprowadza także dodatkowe „okno” poprzedniego dnia. Zobacz zaktualizowany opis prezentacji wizualnej.
Mike Griffith
@MikeGriffith: Zobacz moją edycję. Uważam, że miałem rację, ale musisz ograniczyć wynik do> = 0. (<= 0 oznaczałoby, że nie było deszczu). Chyba że nie zrozumiem problemu.
Steven Evers
@SnOrfus: W tym momencie nadal masz dwie nieznane wartości.
Daenyth
0

To nie jest pełna odpowiedź, jestem w pracy i spędziłem już nad tym dużo czasu ... ponadto potrzebuję więcej danych, aby sprawdzić, czy moje przeczucie jest prawidłowe.

Nazwijmy P (x) miarą 24-godzinną w czasie x.

Rozważmy następujący scenariusz nakładania się:

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

Dlatego musisz obliczyć H25. Wierzę, że rozwiązanie spoczywa gdzieś w systemie utworzonym z P (X), P (X-1) i P (X-24).

Edward Strange
źródło
0

Przez dwie kolejne godziny n (teraz) i n-1 (przed godziną) masz 24-godzinną sumę opadów (T) złożoną z 24 godzinnych liczb opadów (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)

Więc:

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

(Warunki P (n-1) ... P (n-23) są powielone zarówno w T (n), jak i T (n-1), więc odejmowanie ich daje 0.) Zmiana układu daje:

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

Teraz nie możesz zrozumieć, czym jest P (n), chyba że wiesz, co to jest P (n-24). Możesz cofnąć się w danych, aby obliczyć P (n-24), ale aby go uzyskać, potrzebujesz P (n-25) i tak dalej w nieskończoność. Potrzebujesz zatem wartości opadów dla każdej godziny, która była dłuższa niż 24 godziny. Jeśli tak, możesz obliczyć godzinne opady dla wszystkich następnych godzin.

Caleb
źródło
1
+1 „Zatem potrzebujesz wartości opadów dla każdej godziny, która była dłuższa niż 24 godziny”. Lub wartość 0 "na okres 24 godzin.
CaffGeek
@Chad To z pewnością jeden ze sposobów na zdobycie go.
Caleb