Skip to content
Snippets Groups Projects
Commit 75d2ebfa authored by Coda Phillips's avatar Coda Phillips
Browse files

Try plotting things

parent 242730a6
No related branches found
No related tags found
No related merge requests found
import netCDF4
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from aeri_tools.io.dmv.housekeeping import get_all_housekeeping
from main import files_to_update
from glob import glob
import os
def save_plot(filename):
print('saving {}'.format(filename))
plt.savefig(filename, transparent=True)
def plot_variable_qc(frame, loc, filename):
qc_loc = 'qc_' + loc
if sum(frame[qc_loc]) > 0:
plt.figure()
plot_outliers(frame, frame[qc_loc] == 0, loc)
save_plot(filename)
def plot_outliers(frame, qc_mask, loc):
if (~qc_mask).any():
frame.ix[qc_mask & (frame['qc_percent'] == 0), loc].plot(style='b.')
frame.ix[qc_mask & (frame['qc_percent'] > 0), loc].plot(style='k.', alpha=.2)
frame.ix[~qc_mask, loc].plot(style='r.')
plt.xlabel('Time')
plt.title(loc)
def make_plots_here(dirname, frame):
for qc_variable in ([
'ABBapexTemp',
'ABBtopTemp',
'ABBbottomTemp',
'HBBapexTemp',
'HBBtopTemp',
'HBBbottomTemp',
'calibrationAmbientTemp']):
plot_variable_qc(frame, qc_variable, os.path.join(dirname, qc_variable+'.png'))
def get_qc_frame(qc_path):
nc = netCDF4.Dataset(qc_path)
frame = pd.DataFrame({k:v[:] for k,v in nc.variables.items()})
frame.index = pd.to_datetime((frame['base_time'] + frame['time_offset']), utc=True)
nc.close()
return frame
def generate_plots(qc_file, cxs_file, sum_file):
cxs = get_all_housekeeping(cxs_file)
frame = cxs.combine_first(get_all_housekeeping(sum_file))
frame = frame.combine_first(get_qc_frame(qc_file))
make_plots_here(os.path.dirname(qc_file), frame)
def generate_all_plots(ftp_dir):
for qc_file, cxs_file, sum_file in files_to_update(glob(os.path.join(ftp_dir,'AE*','*B1.CXS')), update_only=False):
if os.path.isfile(qc_file):
generate_plots(qc_file, cxs_file, sum_file)
if __name__ == '__main__':
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('ftp')
args = parser.parse_args()
generate_all_plots(args.ftp)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment