Fold¶
- class baseband.tasks.Fold(ih, n_phase, phase, step=None, *, start=0, average=True, samples_per_frame=1, dtype=None)[source] [edit on github]¶
Bases:
IntegrateFold pulse profiles in fixed time intervals.
- Parameters:
- ihtask or
basebandstream reader Input data stream, with time as the first axis.
- n_phaseint
Number of bins per pulse period.
- phasecallable
Should return pulse phases (with or without cycle count) for given input time(s), passed in as an
Timeobject. The output can be anQuantitywith angular units or a regular array of float (in which case units of cycles are assumed).- stepint or
Quantity, optional Number of input samples or time interval over which to fold. If not given, the whole file will be folded into a single profile.
- start
Timeor int, optional Time or offset at which to start the integration. If an offset or if
stepis integer, the actual start time will the underlying sample time nearest to the requested one. Default: 0 (start of stream).- averagebool, optional
Whether the output pulse profile should be the average of all entries that contributed to it, or rather the sum, in a structured array that holds both
'data'and'count'items.- samples_per_frameint, optional
Number of sample times to process in one go. This can be used to optimize the process, though in general the default of 1 should work.
- dtype
dtype, optional Output dtype. Generally, the default of the dtype of the underlying stream is good enough, but can be used to increase precision. Note that if
average=True, it is the user’s responsibilty to pass in a structured dtype.
- ihtask or
See also
PulseStackto integrate over pulse phase and create pulse stacks
Notes
If there are only few input samples per phase bin (i.e., its inverse sample rate is similar to the time per phase bin), then it is important to ensure the
samples_per_frameof the underlying stream is not small (larger than, say, 20), to avoid a large overhead in calculating phases.Since the sample time is not necessarily an integer multiple of the pulse period, the returned profiles will generally not contain the same number of samples in each phase bin. The actual number of samples is counted, and for
average=True, the sums have been divided by these counts, with bins with no points set toNaN. Foraverage=False, the arrays returned byreadare structured arrays withdataandcountfields.Attributes Summary
Data type of the output.
Number of dimensions of the output.
Number of complete samples per second.
Shape of a complete sample.
Number of samples per frame of data.
Shape of the output.
Number of component samples in the output.
Start time of the output.
Time at the end of the output, just after the last sample.
Time of the sample pointer's current offset in the output.
Methods Summary
close()Close task.
read([count, out])Read a number of complete samples.
seek(offset[, whence])Change the sample pointer position.
tell([unit])Current offset in the file.
Attributes Documentation
- closed = False¶
- complex_data¶
- dtype¶
Data type of the output.
- meta = None¶
- ndim¶
Number of dimensions of the output.
- offset = 0¶
- sample_rate¶
Number of complete samples per second.
- sample_shape¶
Shape of a complete sample.
- samples_per_frame¶
Number of samples per frame of data.
For compatibility with file readers, to help indicate what a nominal chunk of data is.
- shape¶
Shape of the output.
- size¶
Number of component samples in the output.
- stop_time¶
Time at the end of the output, just after the last sample.
See also
start_timeandtime.
- time¶
Time of the sample pointer’s current offset in the output.
See also
start_timeandstop_time.
Methods Documentation
- close() [edit on github]¶
Close task.
Note that this does not explicitly close the underlying source; instead, it just deletes the reference to it.
- read(count=None, out=None) [edit on github]¶
Read a number of complete samples.
- Parameters:
- countint or None, optional
Number of complete samples to read. If
None(default) or negative, the number of samples left. Ignored ifoutis given.- outNone or array, optional
Array to store the samples in. If given,
countwill be inferred from the first dimension; the remaining dimensions should equalsample_shape.
- Returns:
- out
ndarrayof float or complex The first dimension is sample-time, and the remaining ones are as given by
sample_shape.
- out
- seek(offset, whence=0) [edit on github]¶
Change the sample pointer position.
This works like a normal filehandle seek, but the offset is in samples (or a relative or absolute time).
- Parameters:
- offsetint,
Quantity, orTime Offset to move to. Can be an (integer) number of samples, an offset in time units, or an absolute time. For the latter two, the pointer will be moved to the nearest integer sample.
- whence{0, 1, 2, ‘start’, ‘current’, or ‘end’}, optional
Like regular seek, the offset is taken to be from the start if
whence=0(default), from the current position if 1, and from the end if 2. One can alternativey use ‘start’, ‘current’, or ‘end’ for 0, 1, or 2, respectively. Ignored ifoffsetis a time.
- offsetint,
- tell(unit=None) [edit on github]¶
Current offset in the file.
- Parameters:
- unit
Unitor str, optional Time unit the offset should be returned in. By default, no unit is used, i.e., an integer enumerating samples is returned. For the special string ‘time’, the absolute time is calculated.
- unit
- Returns: