from sdcweb.spice import stix_datetime as sdt from sdcweb.core import bsd_analyzer_stream from sdcweb.spice.solo import SoloEphemeris as solo from sdcweb.core.tm_minifier import HKMinifier as hkm from sdcweb.core import ql_analyzer from sdcweb.core import stix_config from sdcweb.core import auth from sdcweb.core import utils from sdcweb.core.tm_minifier import LCMinifier as lcm from sdcweb.core import auth MAX_QL_DATA_DURATION = 7 * 24 * 3600 apis = Blueprint('apis', __name__, template_folder='templates') STIX_MDB = mongodb_api.MongoDB() @apis.route('/api/request/ql/lightcurves', methods=['POST']) def request_ql_light_curves(): auth.log_visit() try: begin_utc = request.values['begin'] end_utc = request.values['end'] light_time_correction = False ltc = request.values['ltc'] if ltc in ['true', 'True', True]: light_time_correction = True except Exception as e: return jsonify({'error': 'Invalid request'})
#stix instrument status from sdcweb.core import mongodb_api as sdb from sdcweb.spice import stix_datetime as sdt from sdcweb.core.tm_minifier import HKMinifier as hkm mdb = sdb.MongoDB() hk_cadence = 64 MODES = { 0: "RESET", 1: "BOOT", 2: "SAFE", 3: "MAINT", 4: "CONFIG", 5: "NOMINAL" } def get_stix_status(start_unix, end_unix): """ check if stix is in nominal in the period """ #'duration':{'$gt':0} duration = end_unix - start_unix result = hkm.request_by_tw(start_unix, duration) ops_mode = [0] * 7 res = {'gaps': (end_unix - start_unix) / hk_cadence, 'modes': ops_mode} try: modes = result['raw']['NIXD0023'] times = result['time']
# Create data requests for flares # Author: Hualin Xiao on Jun 14, 2021 import os import sys import math from datetime import datetime sys.path.append('.') from sdcweb.spice import stix_datetime from sdcweb.core import mongodb_api as db from sdcweb.core import sci_volume from sdcweb.core import background_data_request as bkg_req from scipy import signal author = {'name': 'Hualin Xiao', 'email': '*****@*****.**'} mdb = db.MongoDB() DATA_LEVEL_NAMES = { 0: 'L0', 1: 'L1', 2: 'L2', 3: 'L3', 4: 'Spectrogram', 5: 'Aspect' } EMAX_MAP = [8, 13, 17, 23, 28] # emax if there are prominence the corresponding lightcurve db = mdb.get_db() bsd_form = db['data_requests'] flare_collection = db['flares'] IMAGING_MIN_COUNTS = 1000
from collections import defaultdict from datetime import datetime from itertools import chain from time import perf_counter from sdcweb.core import stix_datatypes as sdt from sdcweb.spice.stix_datetime import datetime_to_scet from fits.products.housekeeping import MiniReport, MaxiReport from fits.products.quicklook import LightCurve, Background, Spectra, Variance, \ FlareFlagAndLocation, CalibrationSpectra, TMManagementAndFlareList from fits.products.science import XrayL0 #from stix_parser.utils.logger import get_logger from sdcweb.core import mongodb_api db = mongodb_api.MongoDB() #logger = get_logger(__name__) QL_REPORT_SPIDS = [54118, 54119, 54121, 54120, 54122] BSD_SPIDS = [54114, 54115, 54116, 54117, 54143, 54125] QL_TYPE = { 54118: 'lc', 54119: 'bkg', 54120: 'qlspec', 54121: 'var', 54122: 'flare' } CALIBRATION_SPID = 54124 SPID_MAP = { # Bulk Science