diff --git a/pyzebra/ccl_io.py b/pyzebra/ccl_io.py index f5e4431..411e448 100644 --- a/pyzebra/ccl_io.py +++ b/pyzebra/ccl_io.py @@ -170,7 +170,7 @@ def parse_1D(fileobj, data_type): while len(counts) < s["n_points"]: counts.extend(map(float, next(fileobj).split())) s["counts"] = np.array(counts) - s["counts_err"] = np.sqrt(s["counts"]) + s["counts_err"] = np.sqrt(np.maximum(s["counts"], 1)) if s["h"].is_integer() and s["k"].is_integer() and s["l"].is_integer(): s["h"], s["k"], s["l"] = map(int, (s["h"], s["k"], s["l"])) @@ -208,7 +208,7 @@ def parse_1D(fileobj, data_type): for name in col_names: s[name] = np.array(s[name]) - s["counts_err"] = np.sqrt(s["counts"]) + s["counts_err"] = np.sqrt(np.maximum(s["counts"], 1)) s["scan_motors"] = [] for motor, step in zip(motors, steps): diff --git a/pyzebra/ccl_process.py b/pyzebra/ccl_process.py index 8e94e8d..02595e5 100644 --- a/pyzebra/ccl_process.py +++ b/pyzebra/ccl_process.py @@ -220,8 +220,7 @@ def fit_scan(scan, model_dict, fit_from=None, fit_to=None): else: model += _model - weights = [1 / y_err if y_err != 0 else 1 for y_err in y_err] - scan["fit"] = model.fit(y_fit, x=x_fit, weights=weights) + scan["fit"] = model.fit(y_fit, x=x_fit, weights=1 / y_err) def get_area(scan, area_method, lorentz):