Closed ohannuks closed 2 months ago
Thanks for raising the issue, I will check and get back to you. But it should be all sorted out.
On Fri, 2 Feb 2024 at 10:03 AM, Otto @.***> wrote:
Code:
import ler from ler.rates import LeR ler = LeR(verbose=False, npool=32) unlensed_param = ler.unlensed_cbc_statistics(resume=True) lensed_param = ler.lensed_cbc_statistics(size=100000, resume=True) rate_ratio, unlensed_param_detectable, lensed_param_detectable =ler.rate_comparision_with_rate_calculation() lensed_param_detectable.keys() print(lensed_param_detectable['time_delays'])
Output:
array([[0.00000000e+00, 2.21840881e+06, 3.21975840e+06, 8.12671915e+06], [0.00000000e+00, 6.69836256e+06, 6.94011945e+06, 7.60169732e+06], [1.89326954e+07, 1.58780987e+06, 3.97358452e+05, 0.00000000e+00], ..., [0.00000000e+00, 2.03573957e+04, 2.56343643e+04, 1.08990879e+06], [0.00000000e+00, 9.27605219e+07, 0.00000000e+00, 0.00000000e+00], [0.00000000e+00, 3.36367791e+06, 3.36431948e+06, 3.61677533e+06]])
Most of the time delays are sorted, but the entry [2] seems to be reverse sorted. Is this expected?
Additional test:
import numba @numba.jit def is_sorted(a, n_elements): array = np.zeros(len(a)) for i in range(len(a)): for j in range(n_elements[i]-1): if a[i][j] < a[i][j+1] : array[i] = 1 else: array[i] = 0 return array
Test if time delays are sorted
is_sorted(lensed_param_detectable['time_delays'], lensed_param_detectable['n_images'])
Output:
array([1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 1., 0., 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 0., 1., 0., 1., 1., 1., 0., 0., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1.])
— Reply to this email directly, view it on GitHub https://github.com/hemantaph/ler/issues/3, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMW7ZWWOG6E245D4NY5IZFLYRRCNJAVCNFSM6AAAAABCV5KDIWVHI2DSMVQWIX3LMV43ASLTON2WKOZSGEYTGOBXHAYTENI . You are receiving this because you are subscribed to this thread.Message ID: @.***>
Great! I think it might just be that we're not using the sort_time_delays option in lestronomy when we solve for the image positions (that may be my bad!)
I have changed the lens equation solver as given below, but the problem persists. This happens in 1% of the of the events. Or should I reorder this 1% sample?
Note: This has nothing to do with whether it is analytic or not.
(
x0_image_position,
x1_image_position,
) = lens_eq_solver.image_position_from_source(
sourcePos_x=x_source,
sourcePos_y=y_source,
kwargs_lens=kwargs_lens,
solver="analytical",
magnification_limit=1.0 / 1000.0,
arrival_time_sort=True,
)
@hemantaph
Code:
Output:
Most of the time delays are sorted, but the entry [2] seems to be reverse sorted. Is this expected?
Additional test:
Output:
Most time delays are sorted, but a subset of them seems not to be.
Here are some of the time delays that are not sorted:
Output: