Python: сравни гистограммы с разным размером бина - PullRequest
1 голос
/ 07 марта 2019

Я хочу сравнить 2 гистограммы, поступающие с оценочной платы, которая уже объединяет подсчитанные события в гистограмме. Я беру данные с 2 каналов с разным количеством событий (на самом деле, один - только фон, один - фон + сигнал, довольно обычная экспериментальная настройка), с разным количеством бинов, разной шириной бинов и разным центральным положением бинов. .

Файл данных выглядит так:

HSlice [CH1]
...
  44.660      46.255    6
  46.255      47.850    10
  47.850      49.445    18
  49.445      51.040    8
  51.040      52.635    28
  52.635      54.230    4
  54.230      55.825    18
  55.825      57.421    183
  57.421      59.016    582
  59.016      60.611    1786
...
HSlice [CH2]
...
  52.022      53.880    0
  53.880      55.738    9
  55.738      57.596    213
  57.596      59.454    728
  59.454      61.312    2944
  61.312      63.170    9564
...

Первые два столбца задают границы соответствующего бина (то есть времени), а последний столбец представляет количество событий за этот период.

Теперь я хочу сделать своего рода уменьшение фона, так сказать, вычесть фоновую гистограмму из гистограммы "фон + сигнал", чтобы получить временную трассу фактического сигнала. Я не могу сделать это построчно, так как гистограммы совсем другие. Существует ли простая функция в Python или элегантное решение, как сделать данные сопоставимыми (например, путем интерполяции между двумя точками данных в одной гистограмме, чтобы соответствовать положению бина другой гистограммы), не путая разрешение по времени, заданное эксперимент (не делайте его хуже, чем есть, и не претендуйте на лучшее разрешение по времени).

Спасибо,

lepakk

1 Ответ

1 голос
/ 07 марта 2019

Канал 2 имеет больший размер корзины, чем канал 1 (1,858 против 1,595).Так что я бы перенес значения из меньших корзин в большие.Это приведет к потере разрешения, но я думаю, что это более честно, чем переход от больших бинов к меньшим бинам и, следовательно, к увеличению разрешения.

Теперь мой подход состоит в том, чтобы взять все значения из бинов в канале1 и назначьте им точку в центре их временной ячейки.Вы действительно не знаете точно, где в корзине они были первоначально измерены, так что это точка, где вы немного обманываете.

Теперь заполните значения канала 1 в ячейки канала 2 в соответствии с ихновое значение времени.

Это был бы мой первый подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...