The temperature correction inflates the signal-to-noise ratio of the LEDs: the noise is not divided by the reduction factor
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 78/100
Hướng nghiên cứu
Bắt đầu với ExtinctionCoefficients.apply_temperature_correction và theo dõi cách hàm này cập nhật cường độ tham chiếu và cột nhiễu; sau đó kiểm tra calc_and_set_coefficients và calc_and_set_coefficients_mp để xem SNR được hình thành như thế nào. Thêm một bài kiểm thử sử dụng cùng dữ liệu đã trích xuất khi có và không có hiệu chỉnh nhiệt độ, đồng thời xác nhận SNR truyền vào calc_coefficients_of_img không thay đổi.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
ExtinctionCoefficients.apply_temperature_correction divides the reference property by the reduction factor of every value, but leaves its noise column as it was extracted:
corrected_intensities = self.calculated_img_data[self.reference_property] / factors
self.calculated_img_data = self.calculated_img_data.assign(
**{self.reference_property: corrected_intensities})
The signal-to-noise ratio that weights the LEDs in the linear solver is then formed from the corrected intensity and the uncorrected noise (calc_and_set_coefficients and calc_and_set_coefficients_mp):
snr = single_img_array / single_img_data[self.noise_property].to_numpy()
So with a temperature correction every SNR comes out too high by 1/factor. The correction rescales the signal, it does not add any: the SNR of a measured value is I/σ before and after it. The weight min(1, SNR / snr_full_weight) is meant to be the inverse standard deviation of the optical depth -ln(I_e/I_0), and the correction does not change that either.
Effect
Only LEDs below snr_full_weight are affected, because the weight is capped at 1. With a reduction factor of 0.8 and the default snr_full_weight = 10:
| true SNR | weight now | correct weight |
|---|---|---|
| 8 | 1.0 | 0.8 |
| 4 | 0.5 | 0.4 |
| 1 | 0.125 | 0.1 |
The min_layer_weight cut-off is computed from the same weights, so layers are set to NaN later than they should be. The error grows with the reduction, i.e. with the LED temperature, which is highest where the smoke is densest and the LEDs approach the noise floor, so it hits exactly the LEDs the weighting exists for.
Runs without a temperature correction, and runs of a reference property without a noise column, are not affected.
Fix
Divide noise_sum_col_val by the same factors in apply_temperature_correction whenever self.noise_property is loaded. The moving average runs before the correction for both columns, so they stay consistent.
A test: for the same extracted data, the SNR passed to calc_coefficients_of_img should be the same with and without a temperature correction.
- Ngôn ngữ chính
- Python
- Star
- 7
- Fork
- 4
- Merge trung bình
- 3 giờ 58 phút
- Pull request đã merge (30 ngày)
- 35
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của FireDynamics/LEDSmokeAnalysis
-
-s3_fast with -r, -g or -b also runs the full step 3 with LED fitsCó thể đã có người làm @imshah-id đã nhận hôm nay. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
FireDynamics/LEDSmokeAnalysis#176 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
FireDynamics/LEDSmokeAnalysis#177 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 15/100
FireDynamics/LEDSmokeAnalysis#98 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 25/100
FireDynamics/LEDSmokeAnalysis#91 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Improve error handlingĐang mởenhancement
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
FireDynamics/LEDSmokeAnalysis#90 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của FireDynamics/LEDSmokeAnalysis
Issue tương tự
-
PluginProvider.storeInstance races and clobbers the dedup cache for concurrent loadsCó thể đã có người làm @Wilson0511 đã nhận hôm nay. Đang mởneeds-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 2 ngày
-
community documentation good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
bug(sdk): add_toleration_json silently drops camelCase tolerationSeconds for static dict/list inputCó thể đã có người làm @ravikumar266 đã nhận hôm nay. Đang mởarea/sdk kind/bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
kubeflow/pipelines#15347 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
predict_file with crop_model duplicates predictions once per imageCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
weecology/DeepForest#1445 ·