generated from erosita/uds
final
This commit is contained in:
111
scripts/02_plot.py
Executable file
111
scripts/02_plot.py
Executable file
@@ -0,0 +1,111 @@
|
||||
#!/usr/bin/env python
|
||||
"""
|
||||
НАЗВАНИЕ:
|
||||
|
||||
plot.py
|
||||
|
||||
|
||||
НАЗНАЧЕНИЕ:
|
||||
|
||||
Простой скрипт для отрисовки файла, выгруженного с СРГ L2 монитора https://monitor.srg.cosmos.ru/
|
||||
|
||||
ВЫЗОВ:
|
||||
|
||||
conda activate
|
||||
./plot.py
|
||||
|
||||
|
||||
УПРАВЛЕНИЕ:
|
||||
|
||||
Название файла надо вставить внутрь скрипта (ищите default.csv)
|
||||
|
||||
ПАРАМЕТРЫ:
|
||||
|
||||
N/A
|
||||
|
||||
|
||||
ВЫВОД:
|
||||
|
||||
Файл monitor.png записывается в текущую директорию
|
||||
|
||||
|
||||
ИСТОРИЯ:
|
||||
 Роман Кривонос, ИКИ РАН, krivonos@cosmos.ru
|
||||
Декабрь 2024
|
||||
|
||||
"""
|
||||
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
from matplotlib import ticker
|
||||
import pandas as pd
|
||||
import datetime
|
||||
import dateutil
|
||||
from os.path import dirname
|
||||
import inspect
|
||||
|
||||
import monitor
|
||||
from monitor.config import *
|
||||
from monitor.utils import *
|
||||
|
||||
""" find root dir """
|
||||
root_path=dirname(dirname(dirname(inspect.getfile(monitor))))
|
||||
print("Monitor root path: {}".format(root_path))
|
||||
|
||||
|
||||
products_dir=root_path+'/products/'
|
||||
data_dir=root_path+'/data/'
|
||||
|
||||
create_folder(products_dir)
|
||||
|
||||
fig, ax = plt.subplots(figsize=(9, 5), dpi=100)
|
||||
|
||||
|
||||
#ax.set(xlabel='time (s)', ylabel='voltage (mV)',
|
||||
# title='About as simple as it gets, folks')
|
||||
|
||||
ax.grid(visible=True,linestyle='dotted', )
|
||||
ax.xaxis.set_minor_locator(ticker.MultipleLocator(1/12))
|
||||
ax.yaxis.set_minor_locator(ticker.MultipleLocator(0.2))
|
||||
ax.tick_params(axis="both", width=1, labelsize=14)
|
||||
|
||||
#ax.grid()
|
||||
#plt.xlim([2020,2025])
|
||||
#plt.ylim([2,12])
|
||||
ax.xaxis.set_minor_locator(ticker.MultipleLocator(1/12))
|
||||
ax.yaxis.set_minor_locator(ticker.MultipleLocator(0.2))
|
||||
ax.tick_params(axis="both", width=1, labelsize=14)
|
||||
|
||||
for axis in ['top','bottom','left','right']:
|
||||
ax.spines[axis].set_linewidth(1)
|
||||
|
||||
cl='black'
|
||||
|
||||
input_file='default.csv'
|
||||
|
||||
# Сюда надо вставить название файла, скачанного с https://monitor.srg.cosmos.ru/
|
||||
df = pd.read_csv(data_dir+input_file)
|
||||
|
||||
|
||||
tm=[]
|
||||
rate=[]
|
||||
|
||||
for index, row in df.iterrows():
|
||||
dt = dateutil.parser.parse(row['timestamp'])
|
||||
dyear = get_decimal_year(dt)
|
||||
tm.append(dyear)
|
||||
rate.append(float(row['value_60.0-120.0']))
|
||||
|
||||
plt.plot(tm, rate, color=cl, linewidth=1, linestyle='solid')
|
||||
|
||||
#geminga_dt = datetime.date.fromisoformat('2023-04-16')
|
||||
#day_of_year = geminga_dt.timetuple().tm_yday # returns 1 for January 1st
|
||||
#geminga_tm=geminga_dt.year+(day_of_year/365)
|
||||
#plt.axvline(x = geminga_tm, color = 'b', linewidth=3 , linestyle='dashed', label = 'Geminga scan')
|
||||
|
||||
plt.ylabel('Count rate (counts s$^{-1}$)',fontsize=14, fontweight='normal')
|
||||
plt.xlabel('Year',fontsize=14, fontweight='normal')
|
||||
|
||||
fout_png=input_file.replace("csv","png")
|
||||
fig.savefig(products_dir+fout_png, bbox_inches='tight')
|
||||
plt.show()
|
Reference in New Issue
Block a user