#!/usr/bin/env python3 # -*- coding: utf-8 -*- # # @title : IDB.py # @description : STIX idb interface # @author : Hualin Xiao # @date : Feb. 15, 2019 import os import sqlite3 import threading from stix.core import config from stix.core import stix_logger logger = stix_logger.get_logger() def find_idb(filename): ''' search for idb ''' if filename: if os.path.exists(filename): return filename default_abs_path = os.path.join( os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'data/idb/idb.sqlite') if os.path.exists(default_abs_path): return default_abs_path return None
from time import perf_counter import numpy as np # from watchdog.events import FileSystemEventHandler, FileMovedEvent from astropy.table.table import Table from bitstring import ConstBitArray from stix.core import stix_datatypes as sdt from stix.core.stix_parser import StixTCTMParser from stix.fits.io.processors import FitsL1Processor from stix.fits.products.housekeeping import MiniReport, MaxiReport from stix.fits.products.quicklook import LightCurve, Background, Spectra, Variance, \ FlareFlagAndLocation, CalibrationSpectra, TMManagementAndFlareList from stix.fits.products.science import XrayL0, Aspect, XrayL1, XrayL2, XrayL3, Spectrogram from stix.core.stix_logger import get_logger logger = get_logger(__name__) SPID_MAP = { # Bulk Science # 54110: 'xray_l0_auto', # 54111: 'xray_l1_auto', # 54112: 'xray_l2_auto', # 54113: 'xray_l3_auto', # 54142: 'spectrogram_auto', 54114: 'xray_l0_user', 54115: 'xray_l1_user', 54116: 'xray_l2_user', 54117: 'xray_l3_user', 54143: 'spectrogram_user', 54125: 'aspect', # Quick look
import numpy as np from stix.core.stix_logger import get_logger logger = get_logger() def _get_compression_scheme(packets, nix1, nix2, nix3): """ Get the compression scheme parameters. Parameters ---------- packets : dict Packets nix1 : str Parameter name for S value nix2 : str Parameter name for K value nix3 : str Parameter name for M value Returns ------- np.ndarray S,K,M compression scheme parameters """ comp_counts = np.array((packets[nix1], packets[nix2], packets[nix3]), np.ubyte).T return comp_counts
from stix.ui import mongo_dialog from stix.ui import tsc_connection from stix.ui import packet_filter from stix.ui import plugin from stix.ui import timestamp_convertor from stix.ui import raw_viewer #from stix.ui import console from stix.core.stix_datatypes import Parameter from stix.core.stix_datatypes import Packet SELECTED_SERVICES = [1, 3, 5, 6, 9, 17, 20, 21, 22, 236, 237, 238, 239] STIX_IDB = stix_idb.stix_idb() MAX_NUM_PACKET_IN_BUFFER = 6000 LOGGER = stix_logger.get_logger() class ParserQThread(QThread): error = pyqtSignal(str) info = pyqtSignal(str) critical = pyqtSignal(str) warning = pyqtSignal(str) dataLoaded = pyqtSignal(list) progress = pyqtSignal(float) packetArrival = pyqtSignal(list) def __init__(self): super(ParserQThread, self).__init__() self.stix_tctm_parser = stix_parser.StixTCTMParser() self.stix_tctm_parser.set_packet_buffer_enabled(True)