本文整理汇总了Python中sunpy.time.get_day函数的典型用法代码示例。如果您正苦于以下问题:Python get_day函数的具体用法?Python get_day怎么用?Python get_day使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_day函数的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
def __init__(self, data, time_axis, freq_axis, start, end, t_init=None,
t_label="Time", f_label="Frequency", content="",
instruments=None):
# Because of how object creation works, there is no avoiding
# unused arguments in this case.
self.data = data
if t_init is None:
diff = start - get_day(start)
t_init = diff.seconds
if instruments is None:
instruments = set()
self.start = start
self.end = end
self.t_label = t_label
self.f_label = f_label
self.t_init = t_init
self.time_axis = time_axis
self.freq_axis = freq_axis
self.content = content
self.instruments = instruments
示例2: in_interval
def in_interval(self, start=None, end=None):
"""Return part of spectrogram that lies in [start, end).
Parameters
----------
start : None or `~datetime.datetime` or `~sunpy.time.parse_time` compatible string or time string
Start time of the part of the spectrogram that is returned. If the
measurement only spans over one day, a colon separated string
representing the time can be passed.
end : None or `~datetime.datetime` or `~sunpy.time.parse_time` compatible string or time string
See start.
"""
if start is not None:
try:
start = parse_time(start)
except ValueError:
# XXX: We could do better than that.
if get_day(self.start) != get_day(self.end):
raise TypeError(
"Time ambiguous because data spans over more than one day"
)
start = datetime.datetime(
self.start.year, self.start.month, self.start.day,
*list(map(int, start.split(":")))
)
start = self.time_to_x(start)
if end is not None:
try:
end = parse_time(end)
except ValueError:
if get_day(self.start) != get_day(self.end):
raise TypeError(
"Time ambiguous because data spans over more than one day"
)
end = datetime.datetime(
self.start.year, self.start.month, self.start.day,
*list(map(int, end.split(":")))
)
end = self.time_to_x(end)
if start:
start = int(start)
if end:
end = int(end)
return self[:, start:end]
示例3: test_get_day
def test_get_day():
end_of_day = datetime(year=2017, month=1, day=1, hour=23, minute=59, second=59,
microsecond=999)
begining_of_day = get_day(end_of_day)
assert begining_of_day.year == 2017
assert begining_of_day.month == 1
assert begining_of_day.day == 1
assert begining_of_day.hour == 0
assert begining_of_day.minute == 0
assert begining_of_day.second == 0
assert begining_of_day.microsecond == 0
示例4: join_many
def join_many(cls, specs, mk_arr=None, nonlinear=False,
maxgap=0, fill=JOIN_REPEAT):
""" Produce new Spectrogram that contains spectrograms
joined together in time.
Parameters
----------
specs : list
List of spectrograms to join together in time.
nonlinear : bool
If True, leave out gaps between spectrograms. Else, fill them with
the value specified in fill.
maxgap : float, int or None
Largest gap to allow in second. If None, allow gap of arbitrary
size.
fill : float or int
Value to fill missing values (assuming nonlinear=False) with.
Can be LinearTimeSpectrogram.JOIN_REPEAT to repeat the values for
the time just before the gap.
mk_array: function
Function that is called to create the resulting array. Can be set
to LinearTimeSpectrogram.memap(filename) to create a memory mapped
result array.
"""
# XXX: Only load header and load contents of files
# on demand.
mask = None
if mk_arr is None:
mk_arr = cls.make_array
specs = sorted(specs, key=lambda x: x.start)
freqs = specs[0].freq_axis
if not all(np.array_equal(freqs, sp.freq_axis) for sp in specs):
raise ValueError("Frequency channels do not match.")
# Smallest time-delta becomes the common time-delta.
min_delt = min(sp.t_delt for sp in specs)
dtype_ = max(sp.dtype for sp in specs)
specs = [sp.resample_time(min_delt) for sp in specs]
size = sum(sp.shape[1] for sp in specs)
data = specs[0]
init = data.t_init
start_day = data.start
xs = []
last = data
for elem in specs[1:]:
e_init = (
SECONDS_PER_DAY * (
get_day(elem.start) - get_day(start_day)
).days + elem.t_init
)
x = int((e_init - last.t_init) / min_delt)
xs.append(x)
diff = last.shape[1] - x
if maxgap is not None and -diff > maxgap / min_delt:
raise ValueError("Too large gap.")
# If we leave out undefined values, we do not want to
# add values here if x > t_res.
if nonlinear:
size -= max(0, diff)
else:
size -= diff
last = elem
# The non existing element after the last one starts after
# the last one. Needed to keep implementation below sane.
xs.append(specs[-1].shape[1])
# We do that here so the user can pass a memory mapped
# array if they'd like to.
arr = mk_arr((data.shape[0], size), dtype_)
time_axis = np.zeros((size,))
sx = 0
# Amount of pixels left out due to nonlinearity. Needs to be
# considered for correct time axes.
sd = 0
for x, elem in izip(xs, specs):
diff = x - elem.shape[1]
e_time_axis = elem.time_axis
if x > elem.shape[1]:
if nonlinear:
x = elem.shape[1]
else:
# If we want to stay linear, fill up the missing
# pixels with placeholder zeros.
filler = np.zeros((data.shape[0], diff))
if fill is cls.JOIN_REPEAT:
filler[:, :] = elem[:, -1, np.newaxis]
else:
filler[:] = fill
minimum = elem.time_axis[-1]
#.........这里部分代码省略.........
示例5: plot
#.........这里部分代码省略.........
newfigure = figure is None
if figure is None:
figure = plt.figure(frameon=True, FigureClass=SpectroFigure)
axes = figure.add_subplot(111)
else:
if figure.axes:
axes = figure.axes[0]
else:
axes = figure.add_subplot(111)
params = {
'origin': 'lower',
'aspect': 'auto',
}
params.update(matplotlib_args)
if linear and max_dist is not None:
toplot = ma.masked_array(data, mask=data.make_mask(max_dist))
else:
toplot = data
im = axes.imshow(toplot, **params)
xa = axes.get_xaxis()
ya = axes.get_yaxis()
xa.set_major_formatter(
FuncFormatter(self.time_formatter)
)
if linear:
# Start with a number that is divisible by 5.
init = (self.freq_axis[0] % 5) / data.delt
nticks = 15.
# Calculate MHz difference between major ticks.
dist = (self.freq_axis[0] - self.freq_axis[-1]) / nticks
# Round to next multiple of 10, at least ten.
dist = max(round(dist, -1), 10)
# One pixel in image space is data.delt MHz, thus we can convert
# our distance between the major ticks into image space by dividing
# it by data.delt.
ya.set_major_locator(
IndexLocator(
dist / data.delt, init
)
)
ya.set_minor_locator(
IndexLocator(
dist / data.delt / 10, init
)
)
def freq_fmt(x, pos):
# This is necessary because matplotlib somehow tries to get
# the mid-point of the row, which we do not need here.
x = x + 0.5
return self.format_freq(self.freq_axis[0] - x * data.delt)
else:
freq_fmt = _list_formatter(freqs, self.format_freq)
ya.set_major_locator(MaxNLocator(integer=True, steps=[1, 5, 10]))
ya.set_major_formatter(
FuncFormatter(freq_fmt)
)
axes.set_xlabel(self.t_label)
axes.set_ylabel(self.f_label)
# figure.suptitle(self.content)
figure.suptitle(
' '.join([
get_day(self.start).strftime("%d %b %Y"),
'Radio flux density',
'(' + ', '.join(self.instruments) + ')',
])
)
for tl in xa.get_ticklabels():
tl.set_fontsize(10)
tl.set_rotation(30)
figure.add_axes(axes)
figure.subplots_adjust(bottom=0.2)
figure.subplots_adjust(left=0.2)
if showz:
figure.gca().format_coord = self._mk_format_coord(
data, figure.gca().format_coord)
if colorbar:
if newfigure:
figure.colorbar(im).set_label("Intensity")
else:
if len(figure.axes) > 1:
Colorbar(figure.axes[1], im).set_label("Intensity")
for overlay in overlays:
figure, axes = overlay(figure, axes)
for ax in figure.axes:
ax.autoscale()
figure._init(self, freqs)
return figure