IDL, разбиение данных массива на блоки
Новичок на сайте, так что, прежде всего, спасибо всем, кто вносит свой вклад, это потрясающе.
Я также новичок в IDL, пытаюсь использовать его для анализа некоторых данных. По сути, у меня есть набор данных, с помощью которых я хочу найти вероятность события. Для части этого я хотел бы разбить данные оси X (время) на бины равномерного размера, а затем искать пик в каждом бине. Я понимаю, как найти пики в IDL, но не нашел способа разделить мои данные на одинаковые по размеру бункеры.
Любые советы по этому вопросу будут оценены. Спасибо!
1 ответ
Вы, вероятно, хотите использовать функцию HISTOGRAM. Вот подробный пример из документации:
; Read the ENSO (El Nino Southern Oscillation) time series
; and set up a time vector.
enso = READ_BINARY(FILE_WHICH('elnino.dat'), DATA_TYPE=4, ENDIAN='little')
delta = 0.25 ; years
time = FINDGEN(N_ELEMENTS(enso))*delta + 1871
; Calculate histogram of series using bins of given width.
binsize = 0.1 ; in dimensionless units of ENSO index.
h_enso = HISTOGRAM(enso, BINSIZE=binsize, LOCATIONS=binvals)
; Display times series and histogram.
winsize = 500
w = WINDOW(DIMENSIONS=[2*winsize, winsize])
series = PLOT(time, enso, $
/CURRENT, $
POSITION=[0.10, 0.10, 0.65, 0.90], $
XSTYLE=3, $
XTITLE='Time (years)', $
YTITLE='ENSO Index', $
TITLE='El Ni!Sn!R!U~!No - Southern Oscillation (ENSO) Index (1871-1996)')
; Add a dotted line to indicate the zero value.
zero1 = PLOT(series.xrange, [0,0], LINESTYLE='dotted', /OVERPLOT)
; Plot up the histogram using the STAIRSTEP property.
histoplot = PLOT(h_enso, binvals, $
/CURRENT, $
POSITION=[0.70, 0.10, 0.95, 0.90], $
/STAIRSTEP, $
XTITLE='Frequency', $
TITLE='Histogram of ENSO Index Values')
; Add a dotted line to indicate the zero value.
zero2 = PLOT(histoplot.xrange, [0,0], LINESTYLE='dotted', /OVERPLOT)
Вот ссылка на документы: http://www.exelisvis.com/docs/HISTOGRAM.html
Также, для получения более подробной информации, ознакомьтесь с постом Дж. Д. Смита на странице Дэвида Фаннинга: http://www.idlcoyote.com/tips/histogram_tutorial.html
Надеюсь это поможет!