Skip to content

Commit 168a245

Browse files
authored
Merge branch 'julia-formatter' into fix_issue#16
2 parents 3ef3f35 + b6721ad commit 168a245

File tree

5 files changed

+200
-149
lines changed

5 files changed

+200
-149
lines changed

docs/make.jl

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,20 @@
11
using Stingray
22
using Documenter
33

4-
DocMeta.setdocmeta!(Stingray, :DocTestSetup, :(using Stingray); recursive=true)
4+
DocMeta.setdocmeta!(Stingray, :DocTestSetup, :(using Stingray); recursive = true)
55

66
makedocs(;
7-
modules=[Stingray],
8-
authors="Aman Pandey",
9-
repo="https://github.com/matteobachetti/Stingray.jl/blob/{commit}{path}#{line}",
10-
sitename="Stingray.jl",
11-
format=Documenter.HTML(;
12-
prettyurls=get(ENV, "CI", "false") == "true",
13-
canonical="https://github.com/matteobachetti/Stingray.jl",
14-
edit_link="master",
15-
assets=String[],
7+
modules = [Stingray],
8+
authors = "Aman Pandey",
9+
repo = "https://github.com/matteobachetti/Stingray.jl/blob/{commit}{path}#{line}",
10+
sitename = "Stingray.jl",
11+
format = Documenter.HTML(;
12+
prettyurls = get(ENV, "CI", "false") == "true",
13+
canonical = "https://github.com/matteobachetti/Stingray.jl",
14+
edit_link = "master",
15+
assets = String[],
1616
),
17-
pages=[
18-
"Home" => "index.md",
19-
],
17+
pages = ["Home" => "index.md"],
2018
)
2119

22-
deploydocs(;
23-
repo="https://github.com/matteobachetti/Stingray.jl",
24-
devbranch="main",
25-
)
20+
deploydocs(; repo = "https://github.com/matteobachetti/Stingray.jl", devbranch = "main")

src/fourier.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ function normalize_frac(
5353
if background_flux > 0
5454
power = @. unnorm_power * 2 * dt / ((mean_flux - background_flux)^2 * n_bin)
5555
else
56+
# Note: this corresponds to eq. 3 in Uttley+14
5657
power = @. unnorm_power * 2 * dt / (mean_flux^2 * n_bin)
5758
end
5859
return power
@@ -325,6 +326,7 @@ end
325326
end
326327
end
327328
end
329+
328330
function avg_pds_from_iterable(
329331
flux_iterable,
330332
dt::Real;
@@ -400,7 +402,6 @@ function avg_pds_from_iterable(
400402
else
401403
unnorm_cross .+= unnorm_power_filtered
402404
end
403-
404405
n_ave += 1
405406
end
406407

@@ -783,6 +784,7 @@ function avg_pds_from_events(
783784
errors = nothing,
784785
)
785786

787+
786788
if isnothing(segment_size)
787789
segment_size = maximum(gti) - minimum(gti)
788790
end

src/gti.jl

Lines changed: 104 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
function get_total_gti_length(gti::AbstractMatrix{<:Real}; minlen::Real=0.0)
2-
lengths = diff(gti; dims =2)
3-
return sum(x->x > minlen ? x : zero(x), lengths)
1+
function get_total_gti_length(gti::AbstractMatrix{<:Real}; minlen::Real = 0.0)
2+
lengths = diff(gti; dims = 2)
3+
return sum(x -> x > minlen ? x : zero(x), lengths)
44
end
55

6-
function load_gtis(fits_file::String, gtistring::String="GTI")
6+
function load_gtis(fits_file::String, gtistring::String = "GTI")
77
gti = FITS(fits_file) do lchdulist
88
gtihdu = lchdulist[gtistring]
99
get_gti_from_hdu(gtihdu)
@@ -21,16 +21,15 @@ function get_gti_from_hdu(gtihdu::TableHDU)
2121
stopstr = "Stop"
2222
end
2323

24-
gtistart = read(gtihdu,startstr)
25-
gtistop = read(gtihdu,stopstr)
24+
gtistart = read(gtihdu, startstr)
25+
gtistop = read(gtihdu, stopstr)
2626

27-
return mapreduce(permutedims, vcat,
28-
[[a, b] for (a,b) in zip(gtistart, gtistop)])
27+
return mapreduce(permutedims, vcat, [[a, b] for (a, b) in zip(gtistart, gtistop)])
2928
end
3029

3130
function check_gtis(gti::AbstractMatrix)
3231

33-
if ndims(gti) != 2 || size(gti,2) != 2
32+
if ndims(gti) != 2 || size(gti, 2) != 2
3433
throw(ArgumentError("Please check the formatting of the GTIs.
3534
They need to be provided as [[gti00 gti01]; [gti10 gti11]; ...]."))
3635
end
@@ -39,71 +38,80 @@ function check_gtis(gti::AbstractMatrix)
3938
gti_end = @view gti[:, 2]
4039

4140
if any(gti_end < gti_start)
42-
throw(ArgumentError(
43-
"The GTI end times must be larger than the GTI start times."
44-
))
41+
throw(ArgumentError("The GTI end times must be larger than the GTI start times."))
4542
end
4643

4744
if any(@view(gti_start[begin+1:end]) < @view(gti_end[begin:end-1]))
48-
throw(ArgumentError(
49-
"This GTI has overlaps"
50-
))
45+
throw(ArgumentError("This GTI has overlaps"))
5146
end
5247
end
5348

54-
function create_gti_mask(times::AbstractVector{<:Real},gtis::AbstractMatrix{<:Real};
55-
safe_interval::AbstractVector{<:Real}=[0,0], min_length::Real=0,
56-
dt::Real = -1, epsilon::Real = 0.001)
49+
function create_gti_mask(
50+
times::AbstractVector{<:Real},
51+
gtis::AbstractMatrix{<:Real};
52+
safe_interval::AbstractVector{<:Real} = [0, 0],
53+
min_length::Real = 0,
54+
dt::Real = -1,
55+
epsilon::Real = 0.001,
56+
)
5757

5858
if isempty(times)
5959
throw(ArgumentError("Passing an empty time array to create_gti_mask"))
6060
end
6161

6262
check_gtis(gtis)
63-
mask = zeros(Bool,length(times))
63+
mask = zeros(Bool, length(times))
6464

65-
if min_length>0
66-
gtis = gtis[min_length .< @view(gtis[:,2]) - @view(gtis[:,1]),:]
67-
68-
if size(gtis,1) < 1
65+
if min_length > 0
66+
gtis = gtis[min_length.<@view(gtis[:, 2])-@view(gtis[:, 1]), :]
67+
68+
if size(gtis, 1) < 1
6969
@warn "No GTIs longer than min_length $(min_length)"
7070
return mask, gtis
7171
end
72-
end
72+
end
7373

7474
if dt < 0
7575
dt = Statistics.median(diff(times))
7676
end
7777
epsilon_times_dt = epsilon * dt
7878

79-
new_gtis = [[0.0, 0.0] for _ in range(1,size(gtis,1))]
80-
new_gti_mask = zeros(Bool, size(gtis,1))
79+
new_gtis = [[0.0, 0.0] for _ in range(1, size(gtis, 1))]
80+
new_gti_mask = zeros(Bool, size(gtis, 1))
8181

8282
gti_start = @view gtis[:, 1]
8383
gti_end = @view gtis[:, 2]
8484

85-
for (ig,(limmin,limmax)) in enumerate(zip(gti_start,gti_end))
85+
for (ig, (limmin, limmax)) in enumerate(zip(gti_start, gti_end))
8686
limmin += safe_interval[1]
8787
limmax -= safe_interval[2]
8888
if limmax - limmin >= min_length
8989
new_gtis[ig][:] .= limmin, limmax
90-
for (i,t) in enumerate(times)
91-
if (limmin + dt / 2 - epsilon_times_dt) <= t <= (limmax - dt / 2 + epsilon_times_dt)
90+
for (i, t) in enumerate(times)
91+
if (limmin + dt / 2 - epsilon_times_dt) <=
92+
t <=
93+
(limmax - dt / 2 + epsilon_times_dt)
9294
mask[i] = true
9395
end
9496
end
9597
new_gti_mask[ig] = true
9698
end
9799
end
98100

99-
return mask, mapreduce(permutedims, vcat, keepat!(new_gtis,new_gti_mask))
101+
return mask, mapreduce(permutedims, vcat, keepat!(new_gtis, new_gti_mask))
100102
end
101103

102-
function create_gti_from_condition(time::AbstractVector{<:Real}, condition::AbstractVector{Bool};
103-
safe_interval::AbstractVector{<:Real}=[0,0], dt::AbstractVector{<:Real}=Float64[])
104-
104+
function create_gti_from_condition(
105+
time::AbstractVector{<:Real},
106+
condition::AbstractVector{Bool};
107+
safe_interval::AbstractVector{<:Real} = [0, 0],
108+
dt::AbstractVector{<:Real} = Float64[],
109+
)
110+
105111
if length(time) != length(condition)
106-
throw(ArgumentError("The length of the condition and time arrays must be the same."))
112+
throw(
113+
ArgumentError("The length of the condition and time arrays must be the same."),
114+
)
107115
end
108116

109117
idxs = contiguous_regions(condition)
@@ -122,13 +130,15 @@ function create_gti_from_condition(time::AbstractVector{<:Real}, condition::Abst
122130
if t1 - t0 < 0
123131
continue
124132
end
125-
push!(gtis,[t0, t1])
133+
push!(gtis, [t0, t1])
126134
end
127135
return mapreduce(permutedims, vcat, gtis)
128136
end
129137

130-
function operations_on_gtis(gti_list::AbstractVector{<:AbstractMatrix{T}},
131-
operation::Function) where {T<:Real}
138+
function operations_on_gtis(
139+
gti_list::AbstractVector{<:AbstractMatrix{T}},
140+
operation::Function,
141+
) where {T<:Real}
132142

133143
required_interval = nothing
134144

@@ -137,7 +147,7 @@ function operations_on_gtis(gti_list::AbstractVector{<:AbstractMatrix{T}},
137147

138148
combined_gti = Interval{T}[]
139149
for ig in eachrow(gti)
140-
push!(combined_gti,Interval{Closed,Open}(ig[1],ig[2]))
150+
push!(combined_gti, Interval{Closed,Open}(ig[1], ig[2]))
141151
end
142152
if isnothing(required_interval)
143153
required_interval = IntervalSet(combined_gti)
@@ -159,7 +169,7 @@ function get_btis(gtis::AbstractMatrix{<:Real})
159169
if isempty(gtis)
160170
throw(ArgumentError("Empty GTI and no valid start_time and stop_time"))
161171
end
162-
return get_btis(gtis, gtis[1,1], gtis[end,2])
172+
return get_btis(gtis, gtis[1, 1], gtis[end, 2])
163173
end
164174

165175
function get_btis(gtis::AbstractMatrix{T}, start_time, stop_time) where {T<:Real}
@@ -168,12 +178,12 @@ function get_btis(gtis::AbstractMatrix{T}, start_time, stop_time) where {T<:Real
168178
end
169179
check_gtis(gtis)
170180

171-
total_interval = Interval{T, Closed, Open}[Interval{T, Closed, Open}(start_time, stop_time)]
181+
total_interval = Interval{T,Closed,Open}[Interval{T,Closed,Open}(start_time, stop_time)]
172182
total_interval_set = IntervalSet(total_interval)
173183

174-
gti_interval = Interval{T, Closed, Open}[]
184+
gti_interval = Interval{T,Closed,Open}[]
175185
for ig in eachrow(gtis)
176-
push!(gti_interval,Interval{T, Closed, Open}(ig[1],ig[2]))
186+
push!(gti_interval, Interval{T,Closed,Open}(ig[1], ig[2]))
177187
end
178188
gti_interval_set = IntervalSet(gti_interval)
179189

@@ -188,27 +198,36 @@ function get_btis(gtis::AbstractMatrix{T}, start_time, stop_time) where {T<:Real
188198
return mapreduce(permutedims, vcat, btis)
189199
end
190200

191-
function time_intervals_from_gtis(gtis::AbstractMatrix{<:Real}, segment_size::Real;
192-
fraction_step::Real=1, epsilon::Real=1e-5)
201+
function time_intervals_from_gtis(
202+
gtis::AbstractMatrix{<:Real},
203+
segment_size::Real;
204+
fraction_step::Real = 1,
205+
epsilon::Real = 1e-5,
206+
)
193207
spectrum_start_times = Float64[]
194208

195-
gti_low = @view gtis[:,1]
196-
gti_up = @view gtis[:,2]
209+
gti_low = @view gtis[:, 1]
210+
gti_up = @view gtis[:, 2]
197211

198-
for (g1,g2) in zip(gti_low,gti_up)
212+
for (g1, g2) in zip(gti_low, gti_up)
199213
if g2 - g1 + epsilon < segment_size
200214
continue
201215
end
202216

203-
newtimes = range(g1, g2 - segment_size + epsilon, step = segment_size* fraction_step)
204-
append!(spectrum_start_times,newtimes)
217+
newtimes =
218+
range(g1, g2 - segment_size + epsilon, step = segment_size * fraction_step)
219+
append!(spectrum_start_times, newtimes)
205220
end
206221
return spectrum_start_times, spectrum_start_times .+ segment_size
207222
end
208223

209-
function calculate_segment_bin_start(startbin::Integer, stopbin::Integer,
210-
nbin::Integer; fraction_step::Real=1)
211-
st = floor.(range(startbin, stopbin, step=Int(nbin * fraction_step)))
224+
function calculate_segment_bin_start(
225+
startbin::Integer,
226+
stopbin::Integer,
227+
nbin::Integer;
228+
fraction_step::Real = 1,
229+
)
230+
st = floor.(range(startbin, stopbin, step = Int(nbin * fraction_step)))
212231
if st[end] == stopbin
213232
pop!(st)
214233
end
@@ -218,9 +237,14 @@ function calculate_segment_bin_start(startbin::Integer, stopbin::Integer,
218237
return st
219238
end
220239

221-
function bin_intervals_from_gtis(gtis::AbstractMatrix{<:Real}, segment_size::Real,
222-
time::AbstractVector{<:Real}; dt=nothing,
223-
fraction_step::Real=1, epsilon::Real=0.001)
240+
function bin_intervals_from_gtis(
241+
gtis::AbstractMatrix{<:Real},
242+
segment_size::Real,
243+
time::AbstractVector{<:Real};
244+
dt = nothing,
245+
fraction_step::Real = 1,
246+
epsilon::Real = 0.001,
247+
)
224248
if isnothing(dt)
225249
dt = Statistics.median(diff(time))
226250
end
@@ -253,16 +277,22 @@ function bin_intervals_from_gtis(gtis::AbstractMatrix{<:Real}, segment_size::Rea
253277
end
254278

255279
newbins = calculate_segment_bin_start(
256-
startbin, stopbin, nbin, fraction_step=fraction_step)
257-
258-
append!(spectrum_start_bins,newbins)
259-
end
260-
return spectrum_start_bins, spectrum_start_bins.+nbin
280+
startbin,
281+
stopbin,
282+
nbin,
283+
fraction_step = fraction_step,
284+
)
285+
286+
append!(spectrum_start_bins, newbins)
287+
end
288+
return spectrum_start_bins, spectrum_start_bins .+ nbin
261289
end
262290

263-
@resumable function generate_indices_of_segment_boundaries_unbinned(times::AbstractVector{<:Real},
264-
gti::AbstractMatrix{<:Real},
265-
segment_size::Real)
291+
@resumable function generate_indices_of_segment_boundaries_unbinned(
292+
times::AbstractVector{<:Real},
293+
gti::AbstractMatrix{<:Real},
294+
segment_size::Real,
295+
)
266296
start, stop = time_intervals_from_gtis(gti, segment_size)
267297

268298
startidx = searchsortedfirst.(Ref(times), start)
@@ -273,16 +303,21 @@ end
273303
end
274304
end
275305

276-
@resumable function generate_indices_of_segment_boundaries_binned(times::AbstractVector{<:Real},
277-
gti::AbstractMatrix{<:Real},
278-
segment_size::Real; dt=nothing)
279-
startidx, stopidx = bin_intervals_from_gtis(gti, segment_size, times;
280-
dt=dt)
306+
@resumable function generate_indices_of_segment_boundaries_binned(
307+
times::AbstractVector{<:Real},
308+
gti::AbstractMatrix{<:Real},
309+
segment_size::Real;
310+
dt = nothing,
311+
)
312+
startidx, stopidx = bin_intervals_from_gtis(gti, segment_size, times; dt = dt)
281313

282314
if isnothing(dt)
283315
dt = 0
284316
end
285317
for (idx0, idx1) in zip(startidx, stopidx)
286-
@yield times[idx0+1] - dt / 2, times[min(idx1, length(times) - 1)] - dt / 2,idx0, idx1
318+
@yield times[idx0+1] - dt / 2,
319+
times[min(idx1, length(times) - 1)] - dt / 2,
320+
idx0,
321+
idx1
287322
end
288323
end

0 commit comments

Comments
 (0)