Chuyển đổi danh sách các giá trị lượng mưa 24 giờ thành tổng số giờ


11

Giả sử tôi có một danh sách các giá trị lượng mưa theo giờ, mỗi giá trị cho thấy lượng mưa đã xảy ra trong 24 giờ trước, được sắp xếp theo ngày. Ví dụ:

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

Có một chiến lược / thuật toán để xác định lượng mưa rơi trong mỗi giờ không? Tôi dường như không thể quấn đầu xung quanh này. Tôi biết rằng nó không đơn giản như chỉ tóm tắt các khác biệt.

Trực quan hóa bộ dữ liệu

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

Rất cảm ơn cho sự giúp đỡ.


Liệu .6" mưa từ 5/23 11:00 - 5/24 10:59 bình rằng trong thời gian khoảng 0,6" mưa rơi xuống hoặc trung bình của 0,6" mưa trong thời gian đó?
Hệ thống Ngay

Các cựu. Đó là tổng lượng mưa theo giờ, trong 24 giờ trước. Tôi muốn tìm ra cách "phá vỡ" giờ cuối cùng đó.
Mike Griffith

1
Điều này đáng ngạc nhiên khó khăn. Mỗi giá trị bạn ghi được tạo thành từ 24 số chưa biết tổng hợp. Bạn sẽ cần 24 phương trình để giải quyết điều đó, đó là 24 phương trình có cùng một ẩn số chính xác trong chúng nhưng vì bạn có một cửa sổ trượt không phải là trường hợp. Tôi không thể tưởng tượng rằng điều này là "không thể giải quyết", nhưng nó chắc chắn trông giống như nó đối với tôi. Một cách khác để suy nghĩ về nó: Bạn đang đạt được một ẩn số cho mỗi lần P(N-x)bạn thêm vào, vì vậy cuối cùng, số phương trình và ẩn số thậm chí tự chúng lại xuất hiện.
sebastiangeiger

3
Tôi tự hỏi liệu đây có phải là một câu hỏi tốt hơn cho: cstheory.stackexchange.com
FrustratedWithFormsDesigner

2
@FrustratedWithFormsDesigner, hoặc math.stackexchange.com ?
CaffGeek

Câu trả lời:


8

Giả sử rằng tập dữ liệu luôn bao gồm các cửa sổ 24 giờ liên tiếp (nghĩa là điểm dữ liệu đầu tiên không phải là cửa sổ 1 giờ) ...

Đây không phải là một vấn đề có thể giải quyết được ít nhất là trong trường hợp chung vì tồn tại một ví dụ mẫu trong đó có ít nhất hai mẫu mưa ánh xạ tới một tập dữ liệu.

  • Trường hợp 1: Trời mưa 24 "lúc 12:30 sáng mỗi ngày mãi mãi.
  • Trường hợp 2: Trời mưa 1 "vào 30 phút qua mỗi giờ mãi mãi.

Trong cả hai trường hợp, của bạn P(N) = 24"cho tất cả N.

Vì không có một kịch bản nào có thể được bắt nguồn từ một tập dữ liệu này, nên vấn đề không thể giải quyết theo nghĩa chung.


Bên cạnh đó, chúng ta cũng có thể chứng minh rằng không nhất thiết sự thật là vấn đề luôn không thể giải quyết được. Đơn giản nhất, nếu P(N) = 0"đối với tất cả N, chỉ có một kiểu mưa có thể giải thích cho nó: không có inch mưa mỗi giờ.


Do đó, vấn đề thú vị hơn là xác định những đặc điểm nào về tập dữ liệu làm cho vấn đề có thể giải quyết được. Một cách tầm thường, nếu bạn có một tập dữ liệu với ít nhất một dữ liệu Nnhư vậy P(N) = 0", thì bạn có một giải pháp.

Tôi sẽ không ngạc nhiên nếu có các thuộc tính khác sẽ làm cho vấn đề có thể giải quyết được đối với một tập dữ liệu nhất định. Tìm kiếm những người nên là một thách thức thú vị. Đồng thời, chứng minh rằng không ai có thể tồn tại là giải trí như nhau.


5

bạn cần lặp lại dữ liệu cho đến khi bạn tìm thấy khoảng thời gian kết tủa 0 sau đó bạn tính toán chuyển tiếp từ thời điểm đó như SnOrus mô tả. Nếu không có điểm dữ liệu nào là 0 thì tôi không nghĩ rằng điều này có thể được giải quyết trừ khi bạn xác định mục nhập sớm nhất là 1 giờ sau khi bắt đầu thời gian để các điểm sớm hơn không xác định.

cũng có thể tính toán ngược thời gian từ số đọc 0, làm điều tương tự ngược lại (mặc dù bạn sẽ nhận được ít nhất 24 0 giây liên tiếp.


Hạn chế thú vị đối với dữ liệu khiến điều này trở nên khả thi là lượng mưa không bao giờ có thể âm, vì vậy với giá trị bằng 0, bạn biết 24 giờ trước đó phải bằng không.
Scott Whitlock

0

P (n) - P (n-1) Bị ràng buộc với> = 0

Trong đó P () là lượng mưa được ghi nhận trong 24 giờ trước n.

... sẽ cung cấp cho bạn lượng mưa trong giờ trước P(n).


Điều đó sẽ tính -.1 inch cho 12:00. Âm thanh không thể. Nếu .2 inch là số đo 24 giờ lúc 11:00 ngày 23 thì câu trả lời đúng phải là .1
Edward Strange

Nếu N là "5/24 12:00 chiều", P (N) bao gồm một cửa sổ từ 23:00 lúc 12:00 tối đến 5/24 lúc 11:59 sáng. Sau đó, P (N-1) bao gồm một cửa sổ từ 23:00 lúc 11:00 sáng đến 5/24 lúc 10:59 sáng. Tôi muốn biết những gì đã xảy ra trong cửa sổ từ 11:00 sáng đến 11:59 sáng, nhưng chỉ trừ hai người còn giới thiệu thêm một "cửa sổ" vào ngày hôm trước. Xem mô tả cập nhật cho đại diện trực quan.
Mike Griffith

@MikeGriffith: Xem chỉnh sửa của tôi. Tôi tin rằng tôi đã đúng, nhưng bạn cần ràng buộc kết quả với> = 0. (<= 0 sẽ chỉ ra rằng không có mưa). Trừ khi tôi hiểu sai vấn đề.
Steven Evers

@SnOrfus: Bạn vẫn còn hai giá trị chưa biết tại thời điểm đó.
Daenyth

0

Đây không phải là một câu trả lời đầy đủ, tôi đang làm việc và đã dành rất nhiều thời gian cho nó ... hơn nữa tôi cần thêm dữ liệu để xem linh cảm của tôi có đúng không.

Hãy gọi P (x) số đo 24 giờ tại thời điểm x.

Xem xét kịch bản chồng chéo sau đây:

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

Do đó bạn cần tính H25. Tôi tin rằng giải pháp sẽ dừng lại ở đâu đó trong một hệ thống được tạo từ P (X), P (X-1) và P (X-24).


0

Trong hai giờ liên tiếp n (hiện tại) và n-1 (giờ trước giờ), bạn có tổng lượng mưa hai mươi bốn giờ (T) được tạo thành từ các số lượng mưa 24 giờ (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)

Vì thế:

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

(Điều khoản P (n-1) ... P (n-23) được nhân đôi ở cả T (n) và T (n-1), vì vậy trừ đi chúng sẽ cho 0.) Sắp xếp lại, bạn nhận được:

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

Bây giờ, bạn không thể tìm ra P (n) là gì trừ khi bạn biết P (n-24) là gì. Bạn có thể quay lại dữ liệu để tính P (n-24), nhưng để có được điều đó, bạn cần P (n-25), v.v. Sau đó, những gì bạn cần là giá trị lượng mưa cho bất kỳ giờ nào dài hơn 24 giờ. Nếu bạn có điều đó, bạn có thể tính lượng mưa hàng giờ cho tất cả các giờ tiếp theo.


1
+1 "Sau đó, thứ bạn cần là giá trị lượng mưa cho bất kỳ giờ nào dài hơn 24 giờ." Hoặc giá trị 0 "trong khoảng thời gian 24 giờ.
CaffGeek

@Chad Đó chắc chắn là một cách để có được nó.
Caleb
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.