Changeset View
Changeset View
Standalone View
Standalone View
kstars/fitsviewer/fitsdata.cpp
Show First 20 Lines • Show All 1961 Lines • ▼ Show 20 Line(s) | 1961 | { | |||
---|---|---|---|---|---|
1962 | double accum = 0.0; | 1962 | double accum = 0.0; | ||
1963 | std::for_each (HFRs.begin(), HFRs.end(), [&](const double d) | 1963 | std::for_each (HFRs.begin(), HFRs.end(), [&](const double d) | ||
1964 | { | 1964 | { | ||
1965 | accum += (d - m) * (d - m); | 1965 | accum += (d - m) * (d - m); | ||
1966 | }); | 1966 | }); | ||
1967 | double stddev = sqrt(accum / (HFRs.size() - 1)); | 1967 | double stddev = sqrt(accum / (HFRs.size() - 1)); | ||
1968 | 1968 | | |||
1969 | // Remove stars over 2 standard deviations away. | 1969 | // Remove stars over 2 standard deviations away. | ||
1970 | std::remove_if(HFRs.begin(), HFRs.end(), [m, stddev](const double hfr) | 1970 | auto end1 = std::remove_if(HFRs.begin(), HFRs.end(), [m, stddev](const double hfr) | ||
1971 | { | 1971 | { | ||
1972 | return hfr > (m + stddev * 2); | 1972 | return hfr > (m + stddev * 2); | ||
1973 | }); | 1973 | }); | ||
1974 | std::remove_if(HFRs.begin(), HFRs.end(), [m, stddev](const double hfr) | 1974 | auto end2 = std::remove_if(HFRs.begin(), end1, [m, stddev](const double hfr) | ||
1975 | { | 1975 | { | ||
1976 | return hfr < (m - stddev * 2); | 1976 | return hfr < (m - stddev * 2); | ||
1977 | }); | 1977 | }); | ||
1978 | 1978 | | |||
1979 | // New mean | 1979 | // New mean | ||
1980 | sum = std::accumulate(HFRs.begin(), HFRs.end(), 0.0); | 1980 | sum = std::accumulate(HFRs.begin(), end2, 0.0); | ||
1981 | m = sum / HFRs.size(); | 1981 | const int num_remaining = std::distance(HFRs.begin(), end2); | ||
1982 | if (num_remaining > 0) m = sum / num_remaining; | ||||
1982 | } | 1983 | } | ||
1983 | 1984 | | |||
1984 | return m; | 1985 | return m; | ||
1985 | } | 1986 | } | ||
1986 | 1987 | | |||
1987 | double FITSData::getHFR(int x, int y) | 1988 | double FITSData::getHFR(int x, int y) | ||
1988 | { | 1989 | { | ||
1989 | if (starCenters.empty()) | 1990 | if (starCenters.empty()) | ||
▲ Show 20 Lines • Show All 2884 Lines • Show Last 20 Lines |