الفلك

"LinAlgError: SVD لم تتقارب في المربعات الصغرى الخطية" مع eleanor.py


أقوم ببعض الاختبارات باستخدام وحدة إليانور (أنا مبتدئ). أنا أستخدم مثال الكود المكتوب على موقع eleanor.py

من IPython.display import Image import warnings.filterwarnings ('ignore') استيراد eleanor استيراد numpy مثل np import matplotlib.pyplot as plt from astropy.coordinates import SkyCoord eleanor.Update (Sector = 1) star = eleanor.Source (tic = 38846515 ، القطاع = 1) طباعة ('-------------------------------------') طباعة ( '-------------------------------------') مطبعة ('------- ------------------------------ ') print (") print (") print (' Found TIC {0} (Gaia {1}) ، بحجم TESS {2} ، RA {3} ، وديسمبر {4} '. تنسيق (star.tic ، star.gaia ، star.tess_mag ، star.coords [0] ، star.coords [1 ])) data = eleanor.TargetData (star، height = 15، width = 15، bkg_size = 30، do_psf = True، do_pca = True، regressors = "corner") plt.figure (figsize = (15،5)) q = data.quality == 0 plt.plot (data.time [q]، data.raw_flux [q] /np.nanmedian (data.raw_flux [q]) + 0.06، 'k') plt.plot (data.time [q]، data.corr_flux [q] /np.nanmedian (data.corr_flux [q]) + 0.03، 'r') plt.plot (data.time [q]، data.pca_flux [q] /np.nanmedian (data.pca_flux [q])، 'g') plt.plot (تاريخ a.time [q]، data.psf_flux [q] /np.nanmedian (data.psf_flux [q]) - 0.02، 'b') plt.ylabel ('Normalized Flux') plt.xlabel ('Time [BJD - 2457000] ') plt.title (' WASP-100 ') plt.show ()

بعد تشغيل البرنامج يجد النجمة بحجمها وإحداثياتها ولكن يظهر هذا الخطأ:

LinAlgError Traceback (آخر مكالمة أخيرة) c:  Users  gabri  OneDrive - Università degli Studi di Padova  Desktop  eleanor prova.py in 23 24 ---> 25 data = eleanor.TargetData (star، height = 15، width = 15، bkg_size = 30، do_psf = True، do_pca = True، regressors = "corner") 26 27 plt.figure (figsize = (15،5)) C:  Python36  lib  site -pack  eleanor  targetdata. py in init (self، source، height، width، save_postcard، do_pca، do_psf، bkg_size، aperture_mode، cal_cadences، try_load، regressors، language) 227 self.create_apertures (self.tpf.shape [1]، self.tpf.shape [ 2]) 228 -> 229 self.get_lightcurve () 230231 if do_pca == True: C:  Python36  lib  site -pack  eleanor  targetdata.py في get_lightcurve (self، aperture) 623 norm = np.nansum (self.all_apertures [a]، axis = 1) 624 all_corr_lc_pc_sub [a] = self.corrected_flux (flux = all_raw_lc_pc_sub [a] / np.nanmedian (all_raw_lc_pc_sub [a])، -> 625 bkg = self.flux ، None] * معياري) 626 all_corr_lc_tpf_sub [a] = self.corrected_flux (flux = all_raw_lc_tpf_sub [a] /np.nanmedian (all_raw_lc_t pf_sub [a])، 627 bkg = self.tpf_flux_bkg [:، None] * معياري) C:  Python36  lib  site -pack  eleanor  targetdata.py في تصحيح_ flux (self، flux، skip، mode، pca، bkg ، regressors) 1235 f = np.arange (0، brk، 1) ؛ s = np.arange (brk، len (self.time)، 1) 1236 -> 1237 lc_pred = calc_corr (f، cx، cy، skip) 1238 corr_f = flux [f] -lc_pred + med 1239 C:  Python36  lib  site -packs  eleanor  targetdata.py في calc_corr (mask، cx، cy، skip) 1175 # temp_lc = lightcurve.LightCurve (t، flux) .flatten () 1176 tmp_flux = np.copy (flux [np.isfinite (flux)]، order = "C") -> 1177 tmp_flux [:] / = savgol_filter (tmp_flux، 101، 2) 1178 SC = sigma_clip (tmp_flux، sigma_upper = 3.5، sigma_lower = 3.5) 1179 C:  Python36  lib  حزم الموقع  scipy  signal_savitzky_golay.py في savgol_filter (x، window_length، polyorder، deriv، delta، axis، mode، cval) 333 x = x.astype (np.float64) 334 -> 335 coeffs = savgol_coeffs (window_length) ، polyorder، deriv = deriv، delta = delta) 336337 if mode == "interp": C:  Python36  lib  site -pack  scipy  signal_savitzky_golay.py in savgol_coeffs (window_length، polyorder، deriv، delta، pos، استخدم) 135136 # أوجد حل المربعات الصغرى لـ A * c = y -> 137 معامل ، _ ، _ ، _ = lstsq (A، y) 138139 معامل إرجاع C:  Python36  lib  si te-bundy  linalg  basic.py في lstsq (a ، b ، cond ، overwrite_a ، overwrite_b ، check_finite ، lapack_driver) LinAlgError: SVD لم تتقارب في المربعات الصغرى الخطية

حاولت إيجاد حلول ، مثل تثبيت numpy و scipy من conda ، لكنهم لم يحلوا المشكلة. هل يعرف أحد كيف يتعامل معها؟

تعديل: لقد قمت بحل المشكلة عن طريق إنشاء بيئة conda ، ولكن إذا قمت بتشغيل البرنامج باستخدام py IDLE ، فإنه يتعطل على أي حال.


قمت بتثبيت eleonor وقمت بتشغيل الكود الخاص بك - مشابه ولكن تم حذف السطر:

اليانور.تحديث (القطاع = 1)

لأنه كان يعطيني خطأ. وهو يعمل بدون مشاكل. المرفقة أنشر مخرجاتي. أعتقد أنه يجب أن يكون لديك بعض المشاكل مع الحزم نفسها. لا يمكنني تحديد ماذا ، لكن نصيحتي الساذجة هي إنشاء بيئة كوندا (يمكنني المحاولة والمساعدة إذا كنت بحاجة). في بيئة conda الجديدة والفارغة هذه ، تقوم بتثبيت الحزم التي تقوم باستيرادها (كما فعلت من قبل) ، ثم تقوم بتشغيلها.