diff --git a/PyLoT.py b/PyLoT.py index aa29aae8..7e2c0557 100755 --- a/PyLoT.py +++ b/PyLoT.py @@ -32,6 +32,8 @@ import matplotlib matplotlib.use('Qt4Agg') matplotlib.rcParams['backend.qt4'] = 'PySide' +matplotlib.rcParams['savefig.dpi'] = 300 + from PySide import QtGui, QtCore from PySide.QtCore import QCoreApplication, QSettings, Signal, QFile, \ @@ -48,12 +50,7 @@ from obspy.core.util import AttribDict from pylot.core.util.obspyDMT_interface import check_obspydmt_structure - -try: - import pyqtgraph as pg -except Exception as e: - print('PyLoT: Could not import pyqtgraph. {}'.format(e)) - pg = None +import pyqtgraph as pg try: from matplotlib.backends.backend_qt4agg import FigureCanvas @@ -67,25 +64,25 @@ from pylot.core.io.data import Data from pylot.core.io.inputs import FilterOptions, PylotParameter from autoPyLoT import autoPyLoT from pylot.core.pick.compare import Comparison -from pylot.core.pick.utils import symmetrize_error, get_quality_class +from pylot.core.pick.utils import symmetrize_error, getQualityFromUncertainty, getPickQuality, get_quality_class from pylot.core.io.phases import picksdict_from_picks import pylot.core.loc.nll as nll -from pylot.core.util.defaults import FILTERDEFAULTS, SetChannelComponents +from pylot.core.util.defaults import FILTERDEFAULTS from pylot.core.util.errors import DatastructureError, \ OverwriteError from pylot.core.util.connection import checkurl -from pylot.core.util.dataprocessing import read_metadata, restitute_data +from pylot.core.util.dataprocessing import Metadata, restitute_data from pylot.core.util.utils import fnConstructor, getLogin, \ full_range, readFilterInformation, trim_station_components, check4gaps, make_pen, pick_color_plt, \ - pick_linestyle_plt, remove_underscores, check4doubled, identifyPhaseID, excludeQualityClasses, has_spe, \ + pick_linestyle_plt, remove_underscores, check4doubled, identifyPhaseID, excludeQualityClasses, \ check4rotated, transform_colors_mpl, transform_colors_mpl_str, getAutoFilteroptions, check_all_obspy, \ - check_all_pylot, real_Bool + check_all_pylot, real_Bool, SetChannelComponents from pylot.core.util.event import Event from pylot.core.io.location import create_creation_info, create_event from pylot.core.util.widgets import FilterOptionsDialog, NewEventDlg, \ PylotCanvas, WaveformWidgetPG, PropertiesDlg, HelpForm, createAction, PickDlg, \ getDataType, ComparisonWidget, TuneAutopicker, PylotParaBox, AutoPickDlg, CanvasWidget, AutoPickWidget, \ - CompareEventsWidget + CompareEventsWidget, ProgressBarWidget, AddMetadataWidget from pylot.core.util.array_map import Array_map from pylot.core.util.structure import DATASTRUCTURE from pylot.core.util.thread import Thread, Worker @@ -121,7 +118,7 @@ class MainWindow(QMainWindow): self.apw = None self.paraBox = None self.array_map = None - self._metadata = None + self._metadata = Metadata() self._eventChanged = [False, False] self.apd_local = None self.apd_sge = None @@ -135,6 +132,9 @@ class MainWindow(QMainWindow): self._ctrl = False # control key pressed self._shift = False # shift key pressed + self.drawnPicks = {'auto': {}, + 'manual': {}} + # default factor for dataplot e.g. enabling/disabling scrollarea self.height_factor = 12 self.plot_method = 'normal' @@ -155,15 +155,32 @@ class MainWindow(QMainWindow): self.data._new = False self.autodata = Data(self) - if settings.value("user/FullName", None) is None: - fulluser = QInputDialog.getText(self, "Enter Name:", "Full name") - settings.setValue("user/FullName", fulluser) - settings.setValue("user/Login", getLogin()) - if settings.value("agency_id", None) is None: - agency = QInputDialog.getText(self, - "Enter authority/institution name:", - "Authority") - settings.setValue("agency_id", agency) + while True: + try: + if settings.value("user/FullName", None) is None: + fulluser = QInputDialog.getText(self, "Enter Name:", "Full name") + settings.setValue("user/FullName", fulluser) + settings.setValue("user/Login", getLogin()) + if settings.value("agency_id", None) is None: + agency = QInputDialog.getText(self, + "Enter authority/institution name:", + "Authority") + settings.setValue("agency_id", agency) + break + except Exception as e: + qmb = QMessageBox(self, icon=QMessageBox.Question, + text='Could not init application settings: {}.' + 'Do you want to reset application settings?'.format(e), + windowTitle='PyLoT - Init QSettings warning') + qmb.setStandardButtons(QMessageBox.Yes | QMessageBox.No) + qmb.setDefaultButton(QMessageBox.No) + ret = qmb.exec_() + if ret == qmb.Yes: + settings.clear() + else: + sys.exit() + print('Settings cleared!') + self.fnames = None self._stime = None structure_setting = settings.value("data/Structure", "PILOT") @@ -195,7 +212,6 @@ class MainWindow(QMainWindow): self.loc = False - def init_config_files(self, infile): pylot_config_dir = os.path.join(os.path.expanduser('~'), '.pylot') if not os.path.exists(pylot_config_dir): @@ -210,7 +226,6 @@ class MainWindow(QMainWindow): self._inputs.export2File(infile) self.infile = infile - def setupUi(self): try: self.startTime = min( @@ -327,19 +342,19 @@ class MainWindow(QMainWindow): # "Create a new event.") self.openEventAction = self.createAction(self, "Load event information...", self.load_data, - "Ctrl+M", + "Ctrl+M", openEventIcon, - "Load event information for " - "the displayed event.") + "Load event information for " + "the displayed event.") self.openEventAction.setEnabled(False) self.openEventAction.setData(None) self.openEventsAutoAction = self.createAction(self, "Load event information &automatically ... ", self.load_multiple_data, - "Ctrl+A", + "Ctrl+A", openEventsIcon, - "Load event data automatically " - "for for all events.") + "Load event data automatically " + "for all events.") self.openEventsAutoAction.setEnabled(False) self.openEventsAutoAction.setData(None) @@ -360,7 +375,7 @@ class MainWindow(QMainWindow): self.saveEventAction = self.createAction(self, "Save &event information ...", self.saveData, "Ctrl+P", saveEventsIcon, "Save event pick data," - " source origin and magnitude.") + " source origin and magnitude.") self.disableSaveEventAction() self.addEventDataAction = self.createAction(self, "Add &events ...", @@ -398,16 +413,16 @@ class MainWindow(QMainWindow): self.adjustFilterOptions, "Ctrl+F", self.filter_icon, """Adjust filter parameters.""") - self.inventoryAction = self.createAction(self, "Select &Inventory ...", - self.get_new_metadata, - "Ctrl+I", self.inventoryIcon, - """Select metadata for current project""", - False) + self.inventoryAction = self.createAction(self, "Manage &Inventories ...", + self.add_metadata, + "Ctrl+I", self.inventoryIcon, + """Manage metadata for current project""", + False) self.initMapAction = self.createAction(self, "Init array map ...", - self.init_array_map, - "Ctrl+M", self.mapIcon, - """Initialize array map with current metadata""", - False) + self.init_array_map, + "Ctrl+M", self.mapIcon, + """Initialize array map with current metadata""", + False) self.initMapAction.setEnabled(False) self.selectPAction = self.createAction(self, "&P", self.alterPhase, "Alt+P", @@ -424,10 +439,12 @@ class MainWindow(QMainWindow): "automatic pick " "data.", False) self.compare_action.setEnabled(False) - self.qualities_action = self.createAction(parent=self, text='Show pick qualitites...', - slot=self.pickQualities, shortcut='Alt+Q', - icon=qualities_icon, tip='Histogram of pick qualities') + self.qualities_action = self.createAction(parent=self, text='Show pick qualitites...', + slot=self.pickQualities, shortcut='Alt+Q', + icon=qualities_icon, tip='Histogram of pick qualities') self.qualities_action.setEnabled(False) + # MP MP not yet implemented, therefore hide: + self.qualities_action.setVisible(False) printAction = self.createAction(self, "&Print event ...", self.show_event_information, QKeySequence.Print, @@ -471,7 +488,6 @@ class MainWindow(QMainWindow): checkable=True) self.e_action.setEnabled(False) - componentActions = (self.z_action, self.n_action, self.e_action) self.auto_tune = self.createAction(parent=self, text='autoTune', @@ -483,19 +499,19 @@ class MainWindow(QMainWindow): self.auto_pick = self.createAction(parent=self, text='Current event', slot=self.autoPick, shortcut='Alt+Ctrl+A', icon=autopylot_icon, tip='Automatically pick' - ' the displayed waveforms.') + ' the displayed waveforms.') self.auto_pick.setEnabled(False) self.auto_pick_local = self.createAction(parent=self, text='Whole project (local machine)...', slot=self.autoPickProject, shortcut=None, icon=self.autopicksicon_small, tip='Automatically pick' - ' the complete project on local machine.') + ' the complete project on local machine.') self.auto_pick_local.setEnabled(False) self.auto_pick_sge = self.createAction(parent=self, text='Whole project (grid engine)...', slot=self.autoPickProjectSGE, shortcut=None, icon=self.autopicksicon_small, tip='Automatically pick' - ' the complete project on grid engine.') + ' the complete project on grid engine.') self.auto_pick_sge.setEnabled(False) pickActions = (self.auto_tune, self.auto_pick, self.compare_action, self.qualities_action) @@ -504,15 +520,15 @@ class MainWindow(QMainWindow): # pickToolActions = (selectStation, ) # pickToolBar.setObjectName("PickTools") # self.addActions(pickToolBar, pickToolActions) - self.locateEvent = self.createAction(parent=self, text='locate the event', - slot=self.locate_event, - shortcut='Alt+Ctrl+L', - icon=locate_icon, - tip='Locate the event using ' + self.locateEventAction = self.createAction(parent=self, text='locate the event', + slot=self.locate_event, + shortcut='Alt+Ctrl+L', + icon=locate_icon, + tip='Locate the event using ' 'the displayed manual arrivals.') - self.locateEvent.setEnabled(False) + self.locateEventAction.setEnabled(False) - locationToolActions = (self.locateEvent,) + locationToolActions = (self.locateEventAction,) # add top menu self.fileMenu = self.menuBar().addMenu('&File') @@ -527,10 +543,10 @@ class MainWindow(QMainWindow): self.editMenu = self.menuBar().addMenu('&Edit') editActions = (self.filterActionP, self.filterActionS, filterEditAction, None, - #self.selectPAction, self.selectSAction, None, + # self.selectPAction, self.selectSAction, None, self.inventoryAction, self.initMapAction, None, prefsEventAction) - #printAction) #TODO: print event? + # printAction) #TODO: print event? pickMenuActions = (self.parameterAction,) self.pickMenu = self.menuBar().addMenu('&Picking') @@ -546,13 +562,11 @@ class MainWindow(QMainWindow): self.openProjectAction, self.saveProjectAction, self.saveProjectAsAction) - eventToolActions = (self.addEventDataAction, self.openEventAction, self.openEventsAutoAction, self.saveEventAction, self.loadlocationaction, self.loadpilotevent) - toolbars_keys = [ "FileTools", "EventTools", @@ -616,7 +630,7 @@ class MainWindow(QMainWindow): self.tabs.currentChanged.connect(self.refreshTabs) # add progressbar - self.mainProgressBarWidget = QtGui.QWidget() + self.mainProgressBarWidget = ProgressBarWidget(self) self._main_layout.addWidget(self.mainProgressBarWidget) # add scroll area used in case number of traces gets too high @@ -672,18 +686,12 @@ class MainWindow(QMainWindow): self.setCentralWidget(_widget) def init_wfWidget(self): - settings = QSettings() xlab = self.startTime.strftime('seconds since %Y/%m/%d %H:%M:%S (%Z)') plottitle = None # "Overview: {0} components ".format(self.getComponent()) self.disconnectWFplotEvents() - if str(settings.value('pyqtgraphic')) == 'false' or not pg: - self.pg = False - self.dataPlot = PylotCanvas(parent=self, connect_events=False, multicursor=True) - self.dataPlot.updateWidget(xlab, None, plottitle) - else: - self.pg = pg - self.dataPlot = WaveformWidgetPG(parent=self, - title=plottitle) + self.pg = pg + self.dataPlot = WaveformWidgetPG(parent=self, + title=plottitle) self.dataPlot.setCursor(Qt.CrossCursor) self.wf_scroll_area.setWidget(self.dataPlot) if self.get_current_event(): @@ -860,7 +868,8 @@ class MainWindow(QMainWindow): def inputs(self): return self._inputs - def getRoot(self): + @staticmethod + def getRoot(): settings = QSettings() return settings.value("data/dataRoot") @@ -891,7 +900,7 @@ class MainWindow(QMainWindow): fext = '.xml' for event in events: path = event.path - eventname = path.split('/')[-1] #or event.pylot_id + eventname = path.split('/')[-1] # or event.pylot_id filename = os.path.join(path, 'PyLoT_' + eventname + fext) if os.path.isfile(filename): self.load_data(filename, draw=False, event=event, overwrite=True) @@ -900,6 +909,7 @@ class MainWindow(QMainWindow): return if self.get_current_event().pylot_picks: self.refreshEvents() + self.fill_eventbox() self.setDirty(True) def load_data(self, fname=None, loc=False, draw=True, event=None, overwrite=False): @@ -934,7 +944,9 @@ class MainWindow(QMainWindow): return self.data = data - print('Loading event info from file {}.'.format(fname)) + message = 'Loading event info from file {}.'.format(fname) + print(message) + self.update_status(message) if not loc: self.updatePicks(type='auto', event=event) self.updatePicks(type='manual', event=event) @@ -961,7 +973,7 @@ class MainWindow(QMainWindow): button.setAutoFillBackground(True) elif type(color) == str: button.setStyleSheet('QPushButton{border-color: %s}' - 'QPushButton:checked{background-color: rgba%s}'% (color, color)) + 'QPushButton:checked{background-color: rgba%s}' % (color, color)) elif type(color) == tuple: button.setStyleSheet('QPushButton{border-color: rgba%s}' 'QPushButton:checked{background-color: rgba%s}' % (str(color), str(color))) @@ -1019,7 +1031,8 @@ class MainWindow(QMainWindow): raise DatastructureError('not specified') return fnames - def getPhaseID(self, phase): + @staticmethod + def getPhaseID(phase): return identifyPhaseID(phase) def get_current_event(self, eventbox=None): @@ -1028,7 +1041,7 @@ class MainWindow(QMainWindow): ''' if not eventbox: eventbox = self.eventBox - path = eventbox.currentText() + path = eventbox.currentText().split('*')[0] return self.project.getEventFromPath(path) def get_current_event_path(self, eventbox=None): @@ -1065,7 +1078,7 @@ class MainWindow(QMainWindow): self.dataStructure = DATASTRUCTURE['obspyDMT']() eventlist = check_all_obspy(eventlist) else: - print('Settings Datastructure to PILOT') + print('Setting Datastructure to PILOT') self.dataStructure = DATASTRUCTURE['PILOT']() eventlist = check_all_pylot(eventlist) if not eventlist: @@ -1147,7 +1160,8 @@ class MainWindow(QMainWindow): self.project.remove_event(event) self.init_events(True) - def createEventBox(self): + @staticmethod + def createEventBox(): ''' Eventbox generator. ''' @@ -1189,7 +1203,7 @@ class MainWindow(QMainWindow): def user_modify_path(self, reason=''): dialog = QtGui.QInputDialog(parent=self) new_path, executed = dialog.getText(self, 'Change Project rootpath', - '{}Rename project path {}:'.format(reason, self.project.rootpath)) + '{}Rename project path {}:'.format(reason, self.project.rootpath)) return new_path, executed def data_check(self): @@ -1257,6 +1271,8 @@ class MainWindow(QMainWindow): 'auto': event.pylot_autopicks} ma_count = {'manual': 0, 'auto': 0} + ma_count_total = {'manual': 0, + 'auto': 0} for ma in ma_props.keys(): if ma_props[ma]: @@ -1264,8 +1280,9 @@ class MainWindow(QMainWindow): for phasename, pick in picks.items(): if not type(pick) in [dict, AttribDict]: continue - if get_quality_class(has_spe(pick), phaseErrors[self.getPhaseID(phasename)]) < 4: + if pick.get('spe'): ma_count[ma] += 1 + ma_count_total[ma] += 1 event_ref = event.isRefEvent() event_test = event.isTestEvent() @@ -1273,7 +1290,7 @@ class MainWindow(QMainWindow): time = lat = lon = depth = mag = None if len(event.origins) == 1: origin = event.origins[0] - time = origin.time + 0 # add 0 because there was an exception for time = 0s + time = origin.time + 0 # add 0 because there was an exception for time = 0s lat = origin.latitude lon = origin.longitude depth = origin.depth @@ -1287,15 +1304,18 @@ class MainWindow(QMainWindow): # p=event_npicks, # a=event_nautopicks) - item_path = QtGui.QStandardItem('{path:{plen}}'.format(path=event_path, plen=plmax)) + event_str = '{path:{plen}}'.format(path=event_path, plen=plmax) + if event.dirty: + event_str += '*' + item_path = QtGui.QStandardItem(event_str) item_time = QtGui.QStandardItem('{}'.format(time)) item_lat = QtGui.QStandardItem('{}'.format(lat)) item_lon = QtGui.QStandardItem('{}'.format(lon)) item_depth = QtGui.QStandardItem('{}'.format(depth)) item_mag = QtGui.QStandardItem('{}'.format(mag)) - item_nmp = QtGui.QStandardItem(str(ma_count['manual'])) + item_nmp = QtGui.QStandardItem('{}({})'.format(ma_count['manual'], ma_count_total['manual'])) item_nmp.setIcon(self.manupicksicon_small) - item_nap = QtGui.QStandardItem(str(ma_count['auto'])) + item_nap = QtGui.QStandardItem('{}({})'.format(ma_count['auto'], ma_count_total['auto'])) item_nap.setIcon(self.autopicksicon_small) item_ref = QtGui.QStandardItem() # str(event_ref)) item_test = QtGui.QStandardItem() # str(event_test)) @@ -1326,11 +1346,11 @@ class MainWindow(QMainWindow): for item in itemlist: item.setEnabled(False) - #item color + # item color self.setItemColor(itemlist, id, event, current_event) model.appendRow(itemlist) - if not event.path == self.eventBox.itemText(id).strip(): + if not event.path == self.eventBox.itemText(id).split('*')[0].strip(): message = ('Path missmatch creating eventbox.\n' '{} unequal {}.' .format(event.path, self.eventBox.itemText(id))) @@ -1422,22 +1442,31 @@ class MainWindow(QMainWindow): upperErrors=[uppererrorP[3], uppererrorS[3]]) saved_as += str(outformat) + ' ' except TypeError: - print('WARNING: Format: {} not yet implemented'.format(outformat)) + print('WARNING: Format: {} not yet implemented'.format(outformat)) self.get_data().setEvtData(event) msg = 'Event {} saved as {} in format(s) {}'.format(event.pylot_id, fbasename, saved_as.strip()) self.update_status(msg) print(msg) + event.dirty = False + self.fill_eventbox() return True - def exportAllEvents(self, outformats=['.xml']): - for event in self.project.eventlist: + def exportEvents(self, outformats=['.xml'], events='all'): + if events == 'all': + events = self.project.eventlist + assert type(events) == list, 'Wrong input type: {}'.format(type(events)) + for event in events: + if not event.dirty: + continue self.get_data().setEvtData(event) try: self.saveData(event, event.path, outformats) + event.dirty = False except Exception as e: print('WARNING! Could not save event {}. Reason: {}'.format(event.path, e)) + self.fill_eventbox() def enableSaveEventAction(self): self.saveEventAction.setEnabled(True) @@ -1485,11 +1514,10 @@ class MainWindow(QMainWindow): if len(eventdict) < 1: return - # init event selection options for autopick - self.compareoptions =[('tune events', self.get_ref_events, self._style['ref']['rgba']), - ('test events', self.get_test_events, self._style['test']['rgba']), - ('all (picked) events', self.get_manu_picked_events, None)] + self.compareoptions = [('tune events', self.get_ref_events, self._style['ref']['rgba']), + ('test events', self.get_test_events, self._style['test']['rgba']), + ('all (picked) events', self.get_manu_picked_events, None)] self.cmpw = CompareEventsWidget(self, self.compareoptions, eventdict, comparisons) self.cmpw.start.connect(self.compareMulti) @@ -1512,7 +1540,6 @@ class MainWindow(QMainWindow): compare_widget = self.buildMultiCompareWidget(eventlist_overlap) compare_widget.show() - def buildMultiCompareWidget(self, eventlist): global_comparison = Comparison(eventlist=eventlist) compare_widget = ComparisonWidget(global_comparison, self) @@ -1784,7 +1811,7 @@ class MainWindow(QMainWindow): nth_sample = int(settings.value("nth_sample")) if settings.value("nth_sample") else 1 npts_max = 1e7 npts = self.get_npts_to_plot() - npts2plot = npts/nth_sample + npts2plot = npts / nth_sample if npts2plot < npts_max: settings.setValue('large_dataset', False) else: @@ -1911,7 +1938,7 @@ class MainWindow(QMainWindow): event = self.get_current_event() if event.pylot_picks: self.drawPicks(picktype='manual') - self.locateEvent.setEnabled(True) + self.locateEventAction.setEnabled(True) self.qualities_action.setEnabled(True) if event.pylot_autopicks: self.drawPicks(picktype='auto') @@ -1919,8 +1946,18 @@ class MainWindow(QMainWindow): if True in self.comparable.values(): self.compare_action.setEnabled(True) self.draw() + # TODO: Quick and dirty, improve this on later iteration + if self.obspy_dmt: + invpath = os.path.join(self.get_current_event_path(), 'resp') + if not invpath in self.metadata.inventories: + self.metadata.add_inventory(invpath) + # check if directory is empty + if os.listdir(invpath): + self.init_map_button.setEnabled(True) + self.initMapAction.setEnabled(True) - def checkEvent4comparison(self, event): + @staticmethod + def checkEvent4comparison(event): if event.pylot_picks and event.pylot_autopicks: for station in event.pylot_picks: if station in event.pylot_autopicks: @@ -1972,6 +2009,9 @@ class MainWindow(QMainWindow): self.openEventAction.setEnabled(False) self.openEventsAutoAction.setEnabled(False) self.loadpilotevent.setEnabled(False) + self.compare_action.setEnabled(False) + self.qualities_action.setEnabled(False) + self.locateEventAction.setEnabled(False) if not refresh_plot: self.wf_scroll_area.setVisible(False) self.no_data_label.setVisible(True) @@ -2081,7 +2121,8 @@ class MainWindow(QMainWindow): elif self.filterActionS.isChecked(): phase = 'S' if self.getFilterOptions(): - if (phase == 'P' and self.filterActionP.isChecked()) or (phase == 'S' and self.filterActionS.isChecked()): + if (phase == 'P' and self.filterActionP.isChecked()) or ( + phase == 'S' and self.filterActionS.isChecked()): kwargs = self.getFilterOptions()[phase].parseFilterOptions() self.pushFilterWF(kwargs) else: @@ -2092,8 +2133,8 @@ class MainWindow(QMainWindow): self.get_data().resetWFData() if plot: self.plotWaveformDataThread(filter=False) - #self.drawPicks() - #self.draw() + # self.drawPicks() + # self.draw() def getAutoFilteroptions(self, phase): return getAutoFilteroptions(phase, self._inputs) @@ -2321,22 +2362,20 @@ class MainWindow(QMainWindow): if pickDlg._dirty: self.setDirty(True) self.update_status('picks accepted ({0})'.format(station)) - replot1 = self.addPicks(station, pickDlg.getPicks(picktype='manual'), type='manual') - replot2 = self.addPicks(station, pickDlg.getPicks(picktype='auto'), type='auto') + self.addPicks(station, pickDlg.getPicks(picktype='manual'), type='manual') + self.addPicks(station, pickDlg.getPicks(picktype='auto'), type='auto') self.enableSaveEventAction() - if replot1 or replot2: - self.plotWaveformDataThread() - - self.draw() - else: - self.drawPicks(station) - self.draw() + self.comparable = self.checkEvents4comparison() + if True in self.comparable.values(): + self.compare_action.setEnabled(True) + self.drawPicks(station) + self.draw() if self.nextStation: self.pickDialog(wfID - 1) else: self.update_status('picks discarded ({0})'.format(station)) if not self.get_loc_flag() and self.check4Loc(): - self.locateEvent.setEnabled(True) + self.locateEventAction.setEnabled(True) self.set_loc_flag(True) elif self.get_loc_flag() and not self.check4Loc(): self.set_loc_flag(False) @@ -2413,7 +2452,7 @@ class MainWindow(QMainWindow): # thread to prevent handling of QPixmap objects outside of # the main thread self.init_fig_dict() - #if not self.tap: + # if not self.tap: # init TuneAutopicker object self.tap = TuneAutopicker(self, self.obspy_dmt) # first call of update to init tabs with empty canvas @@ -2422,10 +2461,10 @@ class MainWindow(QMainWindow): # creating and filling figure canvas self.tap.update.connect(self.update_autopicker) self.tap.figure_tabs.setCurrentIndex(0) - #else: + # else: # self.update_autopicker() # self.tap.fill_eventbox() - self.tap.show() + self.tap.showMaximized() def update_autopicker(self): ''' @@ -2437,12 +2476,14 @@ class MainWindow(QMainWindow): canvas.setZoomBorders2content() if self.tap.pylot_picks: station = self.tap.get_current_station() - p_pick = self.tap.pylot_picks[station]['P'] - s_pick = self.tap.pylot_picks[station]['S'] - self.tap.pickDlg.autopicks['P_tuning'] = p_pick - self.tap.pickDlg.autopicks['S_tuning'] = s_pick - self.tap.pickDlg.drawPicks(phase='P_tuning', picktype='auto', picks=p_pick) - self.tap.pickDlg.drawPicks(phase='S_tuning', picktype='auto', picks=s_pick) + p_pick = self.tap.pylot_picks[station].get('P') + if p_pick: + self.tap.pickDlg.autopicks['P_tuning'] = p_pick + self.tap.pickDlg.drawPicks(phase='P_tuning', picktype='auto', picks=p_pick) + s_pick = self.tap.pylot_picks[station].get('S') + if s_pick: + self.tap.pickDlg.autopicks['S_tuning'] = s_pick + self.tap.pickDlg.drawPicks(phase='S_tuning', picktype='auto', picks=s_pick) def autoPick(self): autosave = self.get_current_event_path() @@ -2453,11 +2494,11 @@ class MainWindow(QMainWindow): if not self.apw: # init event selection options for autopick - self.pickoptions =[('current event', self.get_current_event, None), - ('tune events', self.get_ref_events, self._style['ref']['rgba']), - ('test events', self.get_test_events, self._style['test']['rgba']), - ('all (picked) events', self.get_manu_picked_events, None), - ('all events', self.get_all_events, None)] + self.pickoptions = [('current event', self.get_current_event, None), + ('tune events', self.get_ref_events, self._style['ref']['rgba']), + ('test events', self.get_test_events, self._style['test']['rgba']), + ('all (picked) events', self.get_manu_picked_events, None), + ('all events', self.get_all_events, None)] self.listWidget = QListWidget() self.setDirty(True) @@ -2495,7 +2536,7 @@ class MainWindow(QMainWindow): self.apw.enable(False) # export current picks etc. - self.exportAllEvents(['.xml']) + self.exportEvents(['.xml'], events=events) wfpath = self.dataPlot.qcombo_processed.currentText() if self.obspy_dmt else '' # define arguments for picker @@ -2554,13 +2595,15 @@ class MainWindow(QMainWindow): if event.pylot_id == eventID: return event - def get_event_paths(self, eventlist): + @staticmethod + def get_event_paths(eventlist): eventPaths = [] for event in eventlist: eventPaths.append(event.path) return eventPaths - def get_event_ids(self, eventlist): + @staticmethod + def get_event_ids(eventlist): eventIDs = [] for event in eventlist: eventIDs.append(event.pylot_id) @@ -2633,7 +2676,7 @@ class MainWindow(QMainWindow): picksdict = picksdict_from_picks(evt=self.get_data().get_evt_data()) if type == 'manual': event.addPicks(picksdict['manual']) - #event.picks.update(picks) MP MP idea + # event.picks.update(picks) MP MP idea elif type == 'auto': event.addAutopicks(picksdict['auto']) @@ -2647,12 +2690,25 @@ class MainWindow(QMainWindow): self.drawPicks(station, 'auto', stime) return + if not picktype in ['manual', 'auto']: + raise TypeError('Unknown picktype {0}'.format(picktype)) + # if picks to draw not specified, draw all picks available if not station: for station in self.getPicks(type=picktype): self.drawPicks(station, picktype=picktype, stime=stime) return + if self.pg: + pw = self.getPlotWidget().plotWidget + else: + ax = self.getPlotWidget().axes[0] + + if station in self.drawnPicks[picktype].keys(): + for item in self.drawnPicks[picktype][station]: + pw.removeItem(item) + self.drawnPicks[picktype][station] = [] + # check for station key in dictionary, else return if not station in self.getPicks(type=picktype): return @@ -2661,27 +2717,27 @@ class MainWindow(QMainWindow): plotID = self.getStationID(station) if plotID is None: return - if self.pg: - pw = self.getPlotWidget().plotWidget - else: - ax = self.getPlotWidget().axes[0] ylims = np.array([-.5, +.5]) + plotID stat_picks = self.getPicks(type=picktype)[station] + settings = QSettings() for phase in stat_picks: - if phase == 'SPt': continue # wadati SP time + if phase == 'SPt': continue # wadati SP time picks = stat_picks[phase] if type(stat_picks[phase]) is not dict and type(stat_picks[phase]) is not AttribDict: return + phaseID = self.getPhaseID(phase) # get quality classes - if self.getPhaseID(phase) == 'P': - quality = get_quality_class(picks['spe'], self._inputs['timeerrorsP']) - phaseID = 'P' - elif self.getPhaseID(phase) == 'S': - quality = get_quality_class(picks['spe'], self._inputs['timeerrorsS']) - phaseID = 'S' + if phaseID == 'P': + quality = getQualityFromUncertainty(picks['spe'], self._inputs['timeerrorsP']) + elif phaseID == 'S': + quality = getQualityFromUncertainty(picks['spe'], self._inputs['timeerrorsS']) + + # quality = getPickQuality(self.get_data().getWFData(), + # stat_picks, self._inputs, phaseID, + # compclass) mpp = picks['mpp'] - stime if picks['epp'] and picks['lpp']: @@ -2692,44 +2748,32 @@ class MainWindow(QMainWindow): lpp = None spe = picks['spe'] - if not spe and epp and lpp: - spe = symmetrize_error(mpp - epp, lpp - mpp) - if self.pg: - if picktype == 'manual': + if spe: if picks['epp'] and picks['lpp']: pen = make_pen(picktype, phaseID, 'epp', quality) - pw.plot([epp, epp], ylims, - alpha=.25, pen=pen, name='EPP') + self.drawnPicks[picktype][station].append(pw.plot([epp, epp], ylims, + alpha=.25, pen=pen, name='EPP')) pen = make_pen(picktype, phaseID, 'lpp', quality) - pw.plot([lpp, lpp], ylims, - alpha=.25, pen=pen, name='LPP') + self.drawnPicks[picktype][station].append(pw.plot([lpp, lpp], ylims, + alpha=.25, pen=pen, name='LPP')) + pen = make_pen(picktype, phaseID, 'spe', quality) + spe_l = pg.PlotDataItem([mpp - spe, mpp - spe], ylims, pen=pen, + name='{}-SPE'.format(phase)) + spe_r = pg.PlotDataItem([mpp + spe, mpp + spe], ylims, pen=pen) + try: + color = pen.color() + color.setAlpha(100.) + brush = pen.brush() + brush.setColor(color) + fill = pg.FillBetweenItem(spe_l, spe_r, brush=brush) + fb = pw.addItem(fill) + self.drawnPicks[picktype][station].append(fill) + except: + print('Warning: drawPicks: Could not create fill for symmetric pick error.') pen = make_pen(picktype, phaseID, 'mpp', quality) - if spe: - # pen = make_pen(picktype, phaseID, 'spe', quality) - # spe_l = pg.PlotDataItem([mpp - spe, mpp - spe], ylims, pen=pen, - # name='{}-SPE'.format(phase)) - # spe_r = pg.PlotDataItem([mpp + spe, mpp + spe], ylims, pen=pen) - # pw.addItem(spe_l) - # pw.addItem(spe_r) - # try: - # color = pen.color() - # color.setAlpha(100.) - # brush = pen.brush() - # brush.setColor(color) - # fill = pg.FillBetweenItem(spe_l, spe_r, brush=brush) - # fb = pw.addItem(fill) - # except: - # print('Warning: drawPicks: Could not create fill for symmetric pick error.') - pw.plot([mpp, mpp], ylims, pen=pen, name='{}-Pick'.format(phase)) - else: - pw.plot([mpp, mpp], ylims, pen=pen, name='{}-Pick (NO PICKERROR)'.format(phase)) - elif picktype == 'auto': - if quality < 4: - pen = make_pen(picktype, phaseID, 'mpp', quality) - pw.plot([mpp, mpp], ylims, pen=pen) - else: - raise TypeError('Unknown picktype {0}'.format(picktype)) + self.drawnPicks[picktype][station].append( + pw.plot([mpp, mpp], ylims, pen=pen, name='{}-Pick'.format(phase))) else: if picktype == 'manual': linestyle_mpp, width_mpp = pick_linestyle_plt(picktype, 'mpp') @@ -2789,7 +2833,7 @@ class MainWindow(QMainWindow): lt.locate(ctrfile) except RuntimeError as e: print(e.message) - #finally: + # finally: # os.remove(phasefile) self.get_data().applyEVTData(lt.read_location(locpath), typ='event') @@ -2817,7 +2861,7 @@ class MainWindow(QMainWindow): self.inventory_label = QLabel('No inventory set...') # init inventory button - self.new_inv_button = QPushButton('Set inventory file') + self.new_inv_button = QPushButton('Manage inventory files') self.new_inv_button.setIcon(self.inventoryIcon) self.new_inv_button.clicked.connect(self.inventoryAction.trigger) @@ -2830,7 +2874,6 @@ class MainWindow(QMainWindow): grid_layout.addWidget(self.new_inv_button, 2, 1) grid_layout.addWidget(self.init_map_button, 3, 1) - self.metadata = None self.metadata_widget.setLayout(grid_layout) self.array_layout.addWidget(self.metadata_widget) @@ -2892,7 +2935,7 @@ class MainWindow(QMainWindow): self.array_map.eventLoc = (lat, lon) if self.get_current_event(): self.array_map.refresh_drawings(self.get_current_event().getPicks(), - self.get_current_event().getAutopicks(),) + self.get_current_event().getAutopicks(), ) self._eventChanged[1] = False def init_event_table(self, tabindex=2): @@ -2984,6 +3027,8 @@ class MainWindow(QMainWindow): 'auto': event.pylot_autopicks} ma_count = {'manual': 0, 'auto': 0} + ma_count_total = {'manual': 0, + 'auto': 0} for ma in ma_props.keys(): if ma_props[ma]: @@ -2991,8 +3036,9 @@ class MainWindow(QMainWindow): for phasename, pick in picks.items(): if not type(pick) in [dict, AttribDict]: continue - if get_quality_class(has_spe(pick), phaseErrors[self.getPhaseID(phasename)]) < 4: + if pick.get('spe'): ma_count[ma] += 1 + ma_count_total[ma] += 1 # init table items for current row item_delete = QtGui.QTableWidgetItem() @@ -3003,19 +3049,23 @@ class MainWindow(QMainWindow): item_lon = QtGui.QTableWidgetItem() item_depth = QtGui.QTableWidgetItem() item_mag = QtGui.QTableWidgetItem() - item_nmp = QtGui.QTableWidgetItem(str(ma_count['manual'])) + item_nmp = QtGui.QTableWidgetItem('{}({})'.format(ma_count['manual'], ma_count_total['manual'])) item_nmp.setIcon(self.manupicksicon_small) - item_nap = QtGui.QTableWidgetItem(str(ma_count['auto'])) + item_nap = QtGui.QTableWidgetItem('{}({})'.format(ma_count['auto'], ma_count_total['auto'])) item_nap.setIcon(self.autopicksicon_small) item_ref = QtGui.QTableWidgetItem() item_test = QtGui.QTableWidgetItem() item_notes = QtGui.QTableWidgetItem() - item_path.setText(event.path) + event_str = event.path + if event.dirty: + event_str += '*' + + item_path.setText(event_str) if hasattr(event, 'origins'): if event.origins: origin = event.origins[0] - item_time.setText(str(origin.time + 0).split('.')[0]) # +0 as workaround in case time=0s + item_time.setText(str(origin.time + 0).split('.')[0]) # +0 as workaround in case time=0s item_lon.setText(str(origin.longitude)) item_lat.setText(str(origin.latitude)) item_depth.setText(str(origin.depth)) @@ -3089,67 +3139,24 @@ class MainWindow(QMainWindow): if event == current_event: set_background_color(item_list, QtGui.QColor(*(0, 143, 143, 255))) - def read_metadata_thread(self, fninv): - self.rm_thread = Thread(self, read_metadata, arg=fninv, progressText='Reading metadata...', - pb_widget=self.mainProgressBarWidget) - self.rm_thread.finished.connect(self.set_metadata) - self.rm_thread.start() - def set_metadata(self): - settings = QSettings() - self.metadata = self.rm_thread.data - if settings.value('saveMetadata'): - self.project.metadata = self.rm_thread.data - self.project.inv_path = settings.value("inventoryFile") - self.init_map_button.setEnabled(True) - self.initMapAction.setEnabled(True) - self.inventory_label.setText('Inventory set!') - self.new_inv_button.setText('Set another inventory file') + self.project.inventories = self.metadata.inventories + if self.metadata.inventories: + self.init_map_button.setEnabled(True) + self.initMapAction.setEnabled(True) + self.inventory_label.setText('Inventory set!') + self.setDirty(True) - def get_new_metadata(self): - self.init_metadata(new=True) + def add_metadata(self): + self.add_metadata_widget = AddMetadataWidget(self, metadata=self.metadata) + self.add_metadata_widget.close_button.clicked.connect(self.set_metadata) def init_metadata(self, new=False, ask_default=True): - def set_inv(settings): - fninv, _ = QFileDialog.getOpenFileName(self, self.tr( - "Select inventory..."), self.tr("Select file")) - if not fninv: - return False - ans = QMessageBox.question(self, self.tr("Make default..."), - self.tr( - "New inventory filename set.\n" + \ - "Do you want to make it the default value?"), - QMessageBox.Yes | QMessageBox.No, - QMessageBox.No) - if ans == QMessageBox.Yes: - settings.setValue("inventoryFile", fninv) - settings.sync() - self.read_metadata_thread(fninv) - return True + if hasattr(self.project, 'inventories'): + self.metadata = Metadata() + for inventory in self.project.inventories: + self.metadata.add_inventory(inventory) - settings = QSettings() - - if hasattr(self.project, 'metadata') and not new: - self.metadata = self.project.metadata - return True - if self.metadata and not new: - return True - if hasattr(self.project, 'inv_path') and not new: - settings.setValue("inventoryFile", self.project.inv_path) - - fninv = settings.value("inventoryFile", None) - if (fninv and ask_default) and not new: - ans = QMessageBox.question(self, self.tr("Use default metadata..."), - self.tr( - "Do you want to use the default value for metadata?\n({})".format(fninv)), - QMessageBox.Yes | QMessageBox.No, - QMessageBox.Yes) - if ans == QMessageBox.Yes: - self.read_metadata_thread(fninv) - return - set_inv(settings) - - def calc_magnitude(self, type='ML'): self.init_metadata() if not self.metadata: @@ -3161,7 +3168,7 @@ class MainWindow(QMainWindow): # raise ProcessingError('Restitution of waveform data failed!') if type == 'ML': local_mag = LocalMagnitude(corr_wf, self.get_data().get_evt_data(), self.inputs.get('sstop'), - verbosity=True) ## MP MP missing parameter wascaling in function call! + self.inputs.get('WAScaling'), verbosity=True) return local_mag.updated_event() elif type == 'Mw': moment_mag = MomentMagnitude(corr_wf, self.get_data().get_evt_data(), self.inputs.get('vp'), @@ -3268,20 +3275,17 @@ class MainWindow(QMainWindow): if self.project.parameter: self._inputs = self.project.parameter self.updateFilteroptions() + # added for backwards compatibility with older events not having a 'dirty' attribute + for event in self.project.eventlist: + if not hasattr(event, 'dirty'): + event.dirty = False self.tabs.setCurrentIndex(0) # implemented to prevent double-loading of waveform data self.init_events(new=True) self.setDirty(False) - if hasattr(self.project, 'metadata'): - if self.project.metadata: - self.init_metadata(ask_default=False) - #self.init_array_map(index=0) - return - if hasattr(self.project, 'inv_path'): - self.init_metadata(ask_default=False) - #self.init_array_map(index=0) - return + self.init_metadata() self.init_array_tab() + self.set_metadata() def saveProjectAs(self, exists=False): ''' @@ -3295,10 +3299,10 @@ class MainWindow(QMainWindow): if not filename.split('.')[-1] == 'plp': filename = fnm[0] + '.plp' self.project.parameter = self._inputs + self.exportEvents() self.project.save(filename) self.setDirty(False) self.saveProjectAsAction.setEnabled(True) - self.exportAllEvents() self.update_status('Saved new project to {}'.format(filename), duration=5000) return True @@ -3313,11 +3317,11 @@ class MainWindow(QMainWindow): return False else: self.project.parameter = self._inputs + self.exportEvents() self.project.save() - self.exportAllEvents() if not self.project.dirty: - self.update_status('Saved back project to file:\n{}'.format(self.project.location), duration=5000) self.setDirty(False) + self.update_status('Saved back project to file:\n{}'.format(self.project.location), duration=5000) return True else: # if still dirty because saving failed @@ -3335,7 +3339,6 @@ class MainWindow(QMainWindow): self.dataPlot.setPermText(1) self.dataPlot.setPermText(0, '| Number of traces: {} |'.format(len(self.getPlotWidget().getPlotDict()))) - def _setDirty(self): self.setDirty(True) @@ -3344,6 +3347,7 @@ class MainWindow(QMainWindow): self.saveProjectAsAction.setEnabled(True) self.project.setDirty(value) self.dirty = value + self.fill_eventbox() def closeEvent(self, event): if self.okToContinue(): @@ -3374,7 +3378,7 @@ class MainWindow(QMainWindow): def helpHelp(self): if checkurl(): form = HelpForm(self, - 'https://ariadne.geophysik.ruhr-uni-bochum.de/trac/PyLoT/wiki') + 'https://ariadne.geophysik.ruhr-uni-bochum.de/trac/PyLoT/wiki') else: form = HelpForm(self, ':/help.html') form.show() @@ -3579,7 +3583,7 @@ def create_window(): def main(args=None): project_filename = None - #args.project_filename = 'C:/Shared/AlpArray/alparray_data/project_alparray_test.plp' + # args.project_filename = 'C:/Shared/AlpArray/alparray_data/project_alparray_test.plp' pylot_infile = None if args: if args.project_filename: diff --git a/autoPyLoT.py b/autoPyLoT.py index fc1489ce..e24500fe 100755 --- a/autoPyLoT.py +++ b/autoPyLoT.py @@ -7,6 +7,7 @@ import argparse import datetime import glob import os +import traceback import pylot.core.loc.focmec as focmec import pylot.core.loc.hash as hash @@ -22,7 +23,7 @@ from pylot.core.analysis.magnitude import MomentMagnitude, LocalMagnitude from pylot.core.io.data import Data from pylot.core.io.inputs import PylotParameter from pylot.core.pick.autopick import autopickevent, iteratepicker -from pylot.core.util.dataprocessing import restitute_data, read_metadata +from pylot.core.util.dataprocessing import restitute_data, read_metadata, Metadata from pylot.core.util.defaults import SEPARATOR from pylot.core.util.event import Event from pylot.core.util.structure import DATASTRUCTURE @@ -38,6 +39,7 @@ def autoPyLoT(input_dict=None, parameter=None, inputfile=None, fnames=None, even """ Determine phase onsets automatically utilizing the automatic picking algorithms by Kueperkoch et al. 2010/2012. + :param obspyDMT_wfpath: if obspyDMT is used, name of data directory ("raw" or "processed") :param input_dict: :type input_dict: :param parameter: PylotParameter object containing parameters used for automatic picking @@ -53,7 +55,7 @@ def autoPyLoT(input_dict=None, parameter=None, inputfile=None, fnames=None, even :type savepath: str :param savexml: export results in XML file if True :type savexml: bool - :param station: list of station names or 'all' to pick all stations + :param station: choose specific station name or 'all' to pick all stations :type station: str :param iplot: logical variable for plotting: 0=none, 1=partial, 2=all :type iplot: int @@ -117,7 +119,7 @@ def autoPyLoT(input_dict=None, parameter=None, inputfile=None, fnames=None, even if not parameter: if inputfile: parameter = PylotParameter(inputfile) - #iplot = parameter['iplot'] + # iplot = parameter['iplot'] else: infile = os.path.join(os.path.expanduser('~'), '.pylot', 'pylot.in') print('Using default input file {}'.format(infile)) @@ -149,8 +151,8 @@ def autoPyLoT(input_dict=None, parameter=None, inputfile=None, fnames=None, even datastructure.modifyFields(**dsfields) datastructure.setExpandFields(exf) - # check if default location routine NLLoc is available - if real_None(parameter['nllocbin']): + # check if default location routine NLLoc is available and all stations are used + if real_None(parameter['nllocbin']) and station == 'all': locflag = 1 # get NLLoc-root path nllocroot = parameter.get('nllocroot') @@ -200,8 +202,7 @@ def autoPyLoT(input_dict=None, parameter=None, inputfile=None, fnames=None, even events.append(os.path.join(datapath, eventID)) else: # autoPyLoT was initialized from GUI - events = [] - events.append(eventid) + events = [eventid] evID = os.path.split(eventid)[-1] locflag = 2 else: @@ -271,24 +272,26 @@ def autoPyLoT(input_dict=None, parameter=None, inputfile=None, fnames=None, even if not wfdat: print('Could not find station {}. STOP!'.format(station)) return - wfdat = remove_underscores(wfdat) + #wfdat = remove_underscores(wfdat) # trim components for each station to avoid problems with different trace starttimes for one station wfdat = check4gaps(wfdat) wfdat = check4doubled(wfdat) wfdat = trim_station_components(wfdat, trim_start=True, trim_end=False) - metadata = read_metadata(parameter.get('invdir')) - # TODO: (idea) read metadata from obspy_dmt database - # if not wfpath_extension: - # metadata = read_metadata(parameter.get('invdir')) - # else: - # metadata = None + if not wfpath_extension: + metadata = Metadata(parameter.get('invdir')) + else: + metadata = Metadata(os.path.join(eventpath, 'resp')) corr_dat = None if metadata: # rotate stations to ZNE - wfdat = check4rotated(wfdat, metadata) + try: + wfdat = check4rotated(wfdat, metadata) + except Exception as e: + print('Could not rotate station {} to ZNE:\n{}'.format(wfdat[0].stats.station, + traceback.format_exc())) if locflag: print("Restitute data ...") - corr_dat = restitute_data(wfdat.copy(), *metadata, ncores=ncores) + corr_dat = restitute_data(wfdat.copy(), metadata, ncores=ncores) if not corr_dat and locflag: locflag = 2 print('Working on event %s. Stations: %s' % (eventpath, station)) @@ -363,8 +366,9 @@ def autoPyLoT(input_dict=None, parameter=None, inputfile=None, fnames=None, even WAscaling[2])) evt = local_mag.updated_event(magscaling) net_ml = local_mag.net_magnitude(magscaling) - print("Network local magnitude: %4.1f" % net_ml.mag) - if magscaling == None: + if net_ml: + print("Network local magnitude: %4.1f" % net_ml.mag) + if magscaling is None: scaling = False elif magscaling[0] != 0 and magscaling[1] != 0: scaling = False @@ -447,8 +451,9 @@ def autoPyLoT(input_dict=None, parameter=None, inputfile=None, fnames=None, even WAscaling[2])) evt = local_mag.updated_event(magscaling) net_ml = local_mag.net_magnitude(magscaling) - print("Network local magnitude: %4.1f" % net_ml.mag) - if magscaling == None: + if net_ml: + print("Network local magnitude: %4.1f" % net_ml.mag) + if magscaling is None: scaling = False elif magscaling[0] != 0 and magscaling[1] != 0: scaling = False @@ -499,7 +504,7 @@ def autoPyLoT(input_dict=None, parameter=None, inputfile=None, fnames=None, even endsplash = '''------------------------------------------\n' -----Finished event %s!-----\n' ------------------------------------------'''.format \ - (version=_getVersionString()) % evID + (version=_getVersionString()) % evID print(endsplash) locflag = glocflag if locflag == 0: @@ -528,9 +533,9 @@ if __name__ == "__main__": action='store', help='''full path to the file containing the input parameters for autoPyLoT''') - parser.add_argument('-p', '-P', '--iplot', type=int, + parser.add_argument('-p', '-P', '--iplot', type=int, action='store', default=0, - help='''optional, logical variable for plotting: 0=none, 1=partial, 2=all''') + help='''optional, logical variable for plotting: 0=none, 1=partial, 2=all''') parser.add_argument('-f', '-F', '--fnames', type=str, action='store', help='''optional, list of data file names''') diff --git a/pylot/core/analysis/magnitude.py b/pylot/core/analysis/magnitude.py index 08704f7b..0fa854bc 100644 --- a/pylot/core/analysis/magnitude.py +++ b/pylot/core/analysis/magnitude.py @@ -17,6 +17,7 @@ from pylot.core.util.utils import common_range, fit_curve from scipy import integrate, signal from scipy.optimize import curve_fit + def richter_magnitude_scaling(delta): distance = np.array([0, 10, 20, 25, 30, 35, 40, 45, 50, 60, 70, 75, 85, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 230, 240, 250, @@ -122,7 +123,7 @@ class Magnitude(object): def net_magnitude(self, magscaling=None): if self: - if magscaling == None: + if magscaling is None: scaling = False elif magscaling[0] != 0 and magscaling[1] != 0: scaling = False @@ -225,7 +226,7 @@ class LocalMagnitude(Magnitude): sqH = np.sqrt(power_sum) # get time array - th=np.arange(0, st[0].stats.npts/st[0].stats.sampling_rate, st[0].stats.delta) + th = np.arange(0, st[0].stats.npts / st[0].stats.sampling_rate, st[0].stats.delta) # get maximum peak within pick window iwin = getsignalwin(th, t0 - stime, self.calc_win) ii = min([iwin[len(iwin) - 1], len(th)]) @@ -245,9 +246,9 @@ class LocalMagnitude(Magnitude): ax.plot(th[iwin], sqH[iwin], 'g') ax.plot([t0 - stime, t0 - stime], [0, max(sqH)], 'r', linewidth=2) ax.set_title('Station %s, Channel %s, RMS Horizontal Trace, ' - 'WA-peak-to-peak=%6.3f mm' % (st[0].stats.station, + 'WA-peak-to-peak=%6.3f mm' % (st[0].stats.station, st[0].stats.channel, - wapp)) + wapp)) ax.set_xlabel('Time [s]') ax.set_ylabel('Displacement [mm]') ax = fig.add_subplot(212) @@ -257,15 +258,16 @@ class LocalMagnitude(Magnitude): ax.plot([t0 - stime, t0 - stime], [0, max(sqH)], 'r', linewidth=2) ax.set_title('Channel %s, RMS Horizontal Trace, ' 'WA-peak-to-peak=%6.3f mm' % (st[1].stats.channel, - wapp)) + wapp)) ax.set_xlabel('Time [s]') ax.set_ylabel('Displacement [mm]') fig.show() - try: input() - except SyntaxError: pass + try: + input() + except SyntaxError: + pass plt.close(fig) - return wapp, fig def calc(self): @@ -309,7 +311,7 @@ class LocalMagnitude(Magnitude): a0 = a0 * 1e03 # mm to nm (see Havskov & Ottemöller, 2010) magnitude = ope.StationMagnitude(mag=np.log10(a0) \ + self.wascaling[0] * np.log10(delta) + self.wascaling[1] - * delta + self.wascaling[ + * delta + self.wascaling[ 2]) magnitude.origin_id = self.origin_id magnitude.waveform_id = pick.waveform_id @@ -372,7 +374,7 @@ class MomentMagnitude(Magnitude): def calc(self): for a in self.arrivals: - if a.phase not in 'pP': + if a.phase not in 'pP': continue # make sure calculating Mo only from reliable onsets # NLLoc: time_weight = 0 => do not use onset! @@ -510,6 +512,9 @@ def calcsourcespec(wfstream, onset, vp, delta, azimuth, incidence, zdat = select_for_phase(wfstream, "P") + if len(zdat) == 0: + raise IOError('No vertical component found in stream:\n{}'.format(wfstream)) + dt = zdat[0].stats.delta freq = zdat[0].stats.sampling_rate diff --git a/pylot/core/io/data.py b/pylot/core/io/data.py index 176f76ac..3802bfd3 100644 --- a/pylot/core/io/data.py +++ b/pylot/core/io/data.py @@ -17,6 +17,7 @@ from pylot.core.util.utils import fnConstructor, full_range, remove_underscores, import pylot.core.loc.velest as velest from pylot.core.util.obspyDMT_interface import qml_from_obspyDMT + class Data(object): """ Data container with attributes wfdata holding ~obspy.core.stream. @@ -284,7 +285,7 @@ class Data(object): mstation_ext = mstation + '_' for k in range(len(picks_copy)): if ((picks_copy[k].waveform_id.station_code == mstation) or - (picks_copy[k].waveform_id.station_code == mstation_ext)) and \ + (picks_copy[k].waveform_id.station_code == mstation_ext)) and \ (picks_copy[k].method_id == 'auto'): del picks_copy[k] break @@ -299,7 +300,7 @@ class Data(object): for i in range(len(picks_copy)): if picks_copy[i].phase_hint[0] == 'P': if (picks_copy[i].time_errors['upper_uncertainty'] >= upperErrors[0]) or \ - (picks_copy[i].time_errors['uncertainty'] == None): + (picks_copy[i].time_errors['uncertainty'] is None): print("Uncertainty exceeds or equal adjusted upper time error!") print("Adjusted uncertainty: {}".format(upperErrors[0])) print("Pick uncertainty: {}".format(picks_copy[i].time_errors['uncertainty'])) @@ -311,7 +312,7 @@ class Data(object): break if picks_copy[i].phase_hint[0] == 'S': if (picks_copy[i].time_errors['upper_uncertainty'] >= upperErrors[1]) or \ - (picks_copy[i].time_errors['uncertainty'] == None): + (picks_copy[i].time_errors['uncertainty'] is None): print("Uncertainty exceeds or equal adjusted upper time error!") print("Adjusted uncertainty: {}".format(upperErrors[1])) print("Pick uncertainty: {}".format(picks_copy[i].time_errors['uncertainty'])) @@ -404,7 +405,7 @@ class Data(object): # various pre-processing steps: # remove possible underscores in station names - self.wfdata = remove_underscores(self.wfdata) + #self.wfdata = remove_underscores(self.wfdata) # check for stations with rotated components if checkRotated and metadata is not None: self.wfdata = check4rotated(self.wfdata, metadata, verbosity=0) @@ -416,7 +417,6 @@ class Data(object): self.dirty = False return True - def appendWFData(self, fnames, synthetic=False): """ Read waveform data from fnames and append it to current wf data @@ -506,8 +506,10 @@ class Data(object): # check for automatic picks print("Writing phases to ObsPy-quakeml file") for key in picks: + if not picks[key].get('P'): + continue if picks[key]['P']['picker'] == 'auto': - print("Existing picks will be overwritten!") + print("Existing auto-picks will be overwritten in pick-dictionary!") picks = picks_from_picksdict(picks) break else: diff --git a/pylot/core/io/default_parameters.py b/pylot/core/io/default_parameters.py index 78057056..71ea2377 100644 --- a/pylot/core/io/default_parameters.py +++ b/pylot/core/io/default_parameters.py @@ -456,11 +456,11 @@ defaults = {'rootpath': {'type': str, 'namestring': 'Wadati tolerance'}, 'jackfactor': {'type': float, - 'tooltip': 'pick is removed if the variance of the subgroup with the pick removed is larger than the mean variance of all subgroups times safety factor', - 'value': 5.0, - 'min': 0., - 'max': np.inf, - 'namestring': 'Jackknife safety factor'}, + 'tooltip': 'pick is removed if the variance of the subgroup with the pick removed is larger than the mean variance of all subgroups times safety factor', + 'value': 5.0, + 'min': 0., + 'max': np.inf, + 'namestring': 'Jackknife safety factor'}, 'WAscaling': {'type': (float, float, float), 'tooltip': 'Scaling relation (log(Ao)+Alog(r)+Br+C) of Wood-Anderson amplitude Ao [nm] \ diff --git a/pylot/core/io/phases.py b/pylot/core/io/phases.py index 874ac308..1031c24e 100644 --- a/pylot/core/io/phases.py +++ b/pylot/core/io/phases.py @@ -245,7 +245,7 @@ def picksdict_from_picks(evt): if picker.startswith('smi:local/'): picker = picker.split('smi:local/')[1] except IndexError: - picker = 'manual' # MP MP TODO maybe improve statement + picker = 'manual' # MP MP TODO maybe improve statement try: onsets = picksdict[picker][station] except KeyError as e: @@ -346,6 +346,7 @@ def picks_from_picksdict(picks, creation_info=None): picks_list.append(pick) return picks_list + def reassess_pilot_db(root_dir, db_dir, out_dir=None, fn_param=None, verbosity=0): import glob @@ -499,7 +500,7 @@ def writephases(arrivals, fformat, filename, parameter=None, eventinfo=None): except KeyError as e: print(e) fm = None - if fm == None: + if fm is None: fm = '?' onset = arrivals[key]['P']['mpp'] year = onset.year @@ -916,9 +917,9 @@ def merge_picks(event, picks): network = pick.waveform_id.network_code method = pick.method_id for p in event.picks: - if p.waveform_id.station_code == station\ - and p.waveform_id.network_code == network\ - and p.phase_hint == phase\ + if p.waveform_id.station_code == station \ + and p.waveform_id.network_code == network \ + and p.phase_hint == phase \ and (str(p.method_id) in str(method) or str(method) in str(p.method_id)): p.time, p.time_errors, p.waveform_id.network_code, p.method_id = time, err, network, method @@ -965,22 +966,22 @@ def getQualitiesfromxml(xmlnames, ErrorsP, ErrorsS, plotflag=1): arrivals_copy = cat_copy.events[0].picks # Prefere manual picks if qualities are sufficient! for Pick in arrivals: - if (Pick.method_id.id).split('/')[1] == 'manual': + if Pick.method_id.id.split('/')[1] == 'manual': mstation = Pick.waveform_id.station_code mstation_ext = mstation + '_' for mpick in arrivals_copy: phase = identifyPhase(loopIdentifyPhase(Pick.phase_hint)) if phase == 'P': if ((mpick.waveform_id.station_code == mstation) or - (mpick.waveform_id.station_code == mstation_ext)) and \ - ((mpick.method_id).split('/')[1] == 'auto') and \ + (mpick.waveform_id.station_code == mstation_ext)) and \ + (mpick.method_id.split('/')[1] == 'auto') and \ (mpick.time_errors['uncertainty'] <= ErrorsP[3]): del mpick break elif phase == 'S': if ((mpick.waveform_id.station_code == mstation) or - (mpick.waveform_id.station_code == mstation_ext)) and \ - ((mpick.method_id).split('/')[1] == 'auto') and \ + (mpick.waveform_id.station_code == mstation_ext)) and \ + (mpick.method_id.split('/')[1] == 'auto') and \ (mpick.time_errors['uncertainty'] <= ErrorsS[3]): del mpick break @@ -1032,19 +1033,19 @@ def getQualitiesfromxml(xmlnames, ErrorsP, ErrorsS, plotflag=1): P0perc = 0 if len(Pw1) > 0: P1perc = 100 / numPweights * len(Pw1) - else: + else: P1perc = 0 if len(Pw2) > 0: P2perc = 100 / numPweights * len(Pw2) - else: + else: P2perc = 0 if len(Pw3) > 0: P3perc = 100 / numPweights * len(Pw3) - else: + else: P3perc = 0 if len(Pw4) > 0: P4perc = 100 / numPweights * len(Pw4) - else: + else: P4perc = 0 if len(Sw0) > 0: S0perc = 100 / numSweights * len(Sw0) @@ -1052,19 +1053,19 @@ def getQualitiesfromxml(xmlnames, ErrorsP, ErrorsS, plotflag=1): S0perc = 0 if len(Sw1) > 0: S1perc = 100 / numSweights * len(Sw1) - else: + else: S1perc = 0 if len(Sw2) > 0: S2perc = 100 / numSweights * len(Sw2) - else: + else: S2perc = 0 if len(Sw3) > 0: S3perc = 100 / numSweights * len(Sw3) - else: + else: S3perc = 0 if len(Sw4) > 0: S4perc = 100 / numSweights * len(Sw4) - else: + else: S4perc = 0 weights = ('0', '1', '2', '3', '4') diff --git a/pylot/core/loc/nll.py b/pylot/core/loc/nll.py index 94986ed1..47ef4e10 100644 --- a/pylot/core/loc/nll.py +++ b/pylot/core/loc/nll.py @@ -76,6 +76,7 @@ def modify_inputs(ctrfn, root, nllocoutn, phasefn, tttn): def locate(fnin, parameter=None): """ takes an external program name and tries to run it + :param parameter: PyLoT Parameter object :param fnin: external program name :return: None """ diff --git a/pylot/core/pick/autopick.py b/pylot/core/pick/autopick.py index 2dcf9905..6e06254f 100644 --- a/pylot/core/pick/autopick.py +++ b/pylot/core/pick/autopick.py @@ -8,6 +8,7 @@ function conglomerate utils. :author: MAGS2 EP3 working group / Ludger Kueperkoch """ +import traceback import matplotlib.pyplot as plt import numpy as np @@ -71,42 +72,34 @@ def autopickevent(data, param, iplot=0, fig_dict=None, fig_dict_wadatijack=None, for station in stations: topick = data.select(station=station) - - if iplot is None or iplot == 'None' or iplot == 0: - input_tuples.append((topick, param, apverbose, metadata, origin)) - if iplot > 0: - all_onsets[station] = autopickstation(topick, param, verbose=apverbose, - iplot=iplot, fig_dict=fig_dict, - metadata=metadata, origin=origin) + input_tuples.append((topick, param, apverbose, iplot, fig_dict, metadata, origin)) if iplot > 0: print('iPlot Flag active: NO MULTIPROCESSING possible.') - return all_onsets + ncores = 1 - # rename str for ncores in case ncores == 0 (use all cores) + # rename ncores for string representation in case ncores == 0 (use all cores) ncores_str = ncores if ncores != 0 else 'all available' - print('Autopickstation: Distribute autopicking for {} ' 'stations on {} cores.'.format(len(input_tuples), ncores_str)) - pool = gen_Pool(ncores) - results = pool.map(call_autopickstation, input_tuples) - pool.close() + if ncores == 1: + results = serial_picking(input_tuples) + else: + results = parallel_picking(input_tuples, ncores) - for result, wfstream in results: + for result, station in results: if type(result) == dict: - station = result['station'] - result.pop('station') all_onsets[station] = result else: - if result == None: + if result is None: result = 'Picker exited unexpectedly.' - if len(wfstream) > 0: - station = wfstream[0].stats.station - else: - station = None print('Could not pick a station: {}\nReason: {}'.format(station, result)) + # no Wadati/JK for single station (also valid for tuning mode) + if len(stations) == 1: + return all_onsets + # quality control # median check and jackknife on P-onset times jk_checked_onsets = checkPonsets(all_onsets, mdttolerance, jackfactor, iplot, fig_dict_wadatijack) @@ -115,6 +108,20 @@ def autopickevent(data, param, iplot=0, fig_dict=None, fig_dict_wadatijack=None, return wadationsets +def serial_picking(input_tuples): + result = [] + for input_tuple in input_tuples: + result.append(call_autopickstation(input_tuple)) + return result + + +def parallel_picking(input_tuples, ncores): + pool = gen_Pool(ncores) + result = pool.imap_unordered(call_autopickstation, input_tuples) + pool.close() + return result + + def call_autopickstation(input_tuple): """ helper function used for multiprocessing @@ -123,12 +130,16 @@ def call_autopickstation(input_tuple): :return: dictionary containing P pick, S pick and station name :rtype: dict """ - wfstream, pickparam, verbose, metadata, origin = input_tuple + wfstream, pickparam, verbose, iplot, fig_dict, metadata, origin = input_tuple + if fig_dict: + print('Running in interactive mode') # multiprocessing not possible with interactive plotting try: - return autopickstation(wfstream, pickparam, verbose, iplot=0, metadata=metadata, origin=origin), wfstream + return autopickstation(wfstream, pickparam, verbose, fig_dict=fig_dict, iplot=iplot, metadata=metadata, + origin=origin) except Exception as e: - return e, wfstream + tbe = traceback.format_exc() + return tbe, wfstream[0].stats.station def get_source_coords(parser, station_id): @@ -1312,9 +1323,12 @@ def nautopickstation(wfstream, pickparam, verbose=False, # split components zdat, ndat, edat = get_components_from_waveformstream(wfstream) + picks = {} + station = wfstream[0].stats.station + if not zdat: - print('No z-component found for station {}. STOP'.format(wfstream[0].stats.station)) - return + print('No z-component found for station {}. STOP'.format(station)) + return picks, station if p_params['algoP'] == 'HOS' or p_params['algoP'] == 'ARZ' and zdat is not None: msg = '##################################################\nautopickstation:' \ @@ -1331,13 +1345,10 @@ def nautopickstation(wfstream, pickparam, verbose=False, Lc = np.inf print('autopickstation: use_taup flag active.') if not metadata: - metadata = [None, None] - if not metadata[1]: print('Warning: Could not use TauPy to estimate onsets as there are no metadata given.') else: station_id = wfstream[0].get_id() - parser = metadata[1] - station_coords = get_source_coords(parser, station_id) + station_coords = metadata.get_coordinates(station_id, time=wfstream[0].stats.starttime) if station_coords and origin: source_origin = origin[0] model = TauPyModel(p_params['taup_model']) @@ -1377,7 +1388,7 @@ def nautopickstation(wfstream, pickparam, verbose=False, Lwf = zdat[0].stats.endtime - zdat[0].stats.starttime if not Lwf > 0: print('autopickstation: empty trace! Return!') - return + return picks, station Ldiff = Lwf - abs(Lc) if Ldiff <= 0 or pstop <= pstart or pstop - pstart <= thosmw: @@ -1574,8 +1585,8 @@ def nautopickstation(wfstream, pickparam, verbose=False, msg = "autopickstation: P-weight: {0}, " \ "SNR: {1}, SNR[dB]: {2}, Polarity: {3}".format(Pweight, SNRP, SNRPdB, FM) print(msg) - msg = 'autopickstation: Refind P-Pick: {} s | P-Error: {} s'.format(zdat[0].stats.starttime \ - + mpickP, Perror) + msg = 'autopickstation: Refined P-Pick: {} s | P-Error: {} s'.format(zdat[0].stats.starttime \ + + mpickP, Perror) print(msg) Sflag = 1 @@ -1609,7 +1620,7 @@ def nautopickstation(wfstream, pickparam, verbose=False, ndat = edat pickSonset = (edat is not None and ndat is not None and len(edat) > 0 and len( - ndat) > 0 and Pweight < 4) + ndat) > 0 and Pweight < 4) if pickSonset: # determine time window for calculating CF after P onset @@ -1617,8 +1628,8 @@ def nautopickstation(wfstream, pickparam, verbose=False, round(max([mpickP + s_params['sstart'], 0])), # MP MP relative time axis round(min([ mpickP + s_params['sstop'], - edat[0].stats.endtime-edat[0].stats.starttime, - ndat[0].stats.endtime-ndat[0].stats.starttime + edat[0].stats.endtime - edat[0].stats.starttime, + ndat[0].stats.endtime - ndat[0].stats.starttime ])) ] @@ -1842,7 +1853,7 @@ def nautopickstation(wfstream, pickparam, verbose=False, Serror = pickerr[ipick] msg = 'autopickstation: Refined S-Pick: {} s | S-Error: {} s'.format(hdat[0].stats.starttime \ - + mpickS, Serror) + + mpickS, Serror) print(msg) # get SNR @@ -1885,7 +1896,7 @@ def nautopickstation(wfstream, pickparam, verbose=False, # re-create stream object including both horizontal components hdat = edat.copy() hdat += ndat - + else: print('autopickstation: No horizontal component data available or ' 'bad P onset, skipping S picking!') @@ -1956,115 +1967,114 @@ def nautopickstation(wfstream, pickparam, verbose=False, ax1.set_ylim([-1.5, 1.5]) ax1.set_ylabel('Normalized Counts') # fig.suptitle(tr_filt.stats.starttime) - try: - len(edat[0]) - except: - edat = ndat - try: - len(ndat[0]) - except: - ndat = edat - if len(edat[0]) > 1 and len(ndat[0]) > 1 and Sflag == 1: - # plot horizontal traces - ax2 = fig.add_subplot(3, 1, 2, sharex=ax1) - th1data = np.arange(0, - trH1_filt.stats.npts / - trH1_filt.stats.sampling_rate, - trH1_filt.stats.delta) - # check equal length of arrays, sometimes they are different!? - wfldiff = len(trH1_filt.data) - len(th1data) - if wfldiff < 0: - th1data = th1data[0:len(th1data) - abs(wfldiff)] - ax2.plot(th1data, trH1_filt.data / max(trH1_filt.data), color=linecolor, linewidth=0.7, label='Data') - if Pweight < 4: - ax2.plot(arhcf1.getTimeArray(), - arhcf1.getCF() / max(arhcf1.getCF()), 'b', label='CF1') - if aicSflag == 1 and Sweight < 4: - ax2.plot(arhcf2.getTimeArray(), - arhcf2.getCF() / max(arhcf2.getCF()), 'm', label='CF2') - ax2.plot( - [aicarhpick.getpick(), aicarhpick.getpick()], - [-1, 1], 'g', label='Initial S Onset') - ax2.plot( - [aicarhpick.getpick() - 0.5, - aicarhpick.getpick() + 0.5], - [1, 1], 'g') - ax2.plot( - [aicarhpick.getpick() - 0.5, - aicarhpick.getpick() + 0.5], - [-1, -1], 'g') - ax2.plot([refSpick.getpick(), refSpick.getpick()], - [-1.3, 1.3], 'g', linewidth=2, label='Final S Pick') - ax2.plot( - [refSpick.getpick() - 0.5, refSpick.getpick() + 0.5], - [1.3, 1.3], 'g', linewidth=2) - ax2.plot( - [refSpick.getpick() - 0.5, refSpick.getpick() + 0.5], - [-1.3, -1.3], 'g', linewidth=2) - ax2.plot([lpickS, lpickS], [-1.1, 1.1], 'g--', label='lpp') - ax2.plot([epickS, epickS], [-1.1, 1.1], 'g--', label='epp') - ax2.set_title('%s, S Weight=%d, SNR=%7.2f, SNR[dB]=%7.2f' % ( - trH1_filt.stats.channel, - Sweight, SNRS, SNRSdB)) - else: - ax2.set_title('%s, S Weight=%d, SNR=None, SNRdB=None' % ( - trH1_filt.stats.channel, Sweight)) - ax2.legend(loc=1) - ax2.set_yticks([]) - ax2.set_ylim([-1.5, 1.5]) - ax2.set_ylabel('Normalized Counts') - # fig.suptitle(trH1_filt.stats.starttime) + # only continue if one horizontal stream exists + if (ndat or edat) and Sflag == 1: + # mirror components in case one does not exist + if not edat: + edat = ndat + if not ndat: + ndat = edat + if len(edat[0]) > 1 and len(ndat[0]) > 1: + # plot horizontal traces + ax2 = fig.add_subplot(3, 1, 2, sharex=ax1) + th1data = np.arange(0, + trH1_filt.stats.npts / + trH1_filt.stats.sampling_rate, + trH1_filt.stats.delta) + # check equal length of arrays, sometimes they are different!? + wfldiff = len(trH1_filt.data) - len(th1data) + if wfldiff < 0: + th1data = th1data[0:len(th1data) - abs(wfldiff)] + ax2.plot(th1data, trH1_filt.data / max(trH1_filt.data), color=linecolor, linewidth=0.7, label='Data') + if Pweight < 4: + ax2.plot(arhcf1.getTimeArray(), + arhcf1.getCF() / max(arhcf1.getCF()), 'b', label='CF1') + if aicSflag == 1 and Sweight < 4: + ax2.plot(arhcf2.getTimeArray(), + arhcf2.getCF() / max(arhcf2.getCF()), 'm', label='CF2') + ax2.plot( + [aicarhpick.getpick(), aicarhpick.getpick()], + [-1, 1], 'g', label='Initial S Onset') + ax2.plot( + [aicarhpick.getpick() - 0.5, + aicarhpick.getpick() + 0.5], + [1, 1], 'g') + ax2.plot( + [aicarhpick.getpick() - 0.5, + aicarhpick.getpick() + 0.5], + [-1, -1], 'g') + ax2.plot([refSpick.getpick(), refSpick.getpick()], + [-1.3, 1.3], 'g', linewidth=2, label='Final S Pick') + ax2.plot( + [refSpick.getpick() - 0.5, refSpick.getpick() + 0.5], + [1.3, 1.3], 'g', linewidth=2) + ax2.plot( + [refSpick.getpick() - 0.5, refSpick.getpick() + 0.5], + [-1.3, -1.3], 'g', linewidth=2) + ax2.plot([lpickS, lpickS], [-1.1, 1.1], 'g--', label='lpp') + ax2.plot([epickS, epickS], [-1.1, 1.1], 'g--', label='epp') + ax2.set_title('%s, S Weight=%d, SNR=%7.2f, SNR[dB]=%7.2f' % ( + trH1_filt.stats.channel, + Sweight, SNRS, SNRSdB)) + else: + ax2.set_title('%s, S Weight=%d, SNR=None, SNRdB=None' % ( + trH1_filt.stats.channel, Sweight)) + ax2.legend(loc=1) + ax2.set_yticks([]) + ax2.set_ylim([-1.5, 1.5]) + ax2.set_ylabel('Normalized Counts') + # fig.suptitle(trH1_filt.stats.starttime) - ax3 = fig.add_subplot(3, 1, 3, sharex=ax1) - th2data = np.arange(0, - trH2_filt.stats.npts / - trH2_filt.stats.sampling_rate, - trH2_filt.stats.delta) - # check equal length of arrays, sometimes they are different!? - wfldiff = len(trH2_filt.data) - len(th2data) - if wfldiff < 0: - th2data = th2data[0:len(th2data) - abs(wfldiff)] - ax3.plot(th2data, trH2_filt.data / max(trH2_filt.data), color=linecolor, linewidth=0.7, label='Data') - if Pweight < 4: - p22, = ax3.plot(arhcf1.getTimeArray(), - arhcf1.getCF() / max(arhcf1.getCF()), 'b', label='CF1') - if aicSflag == 1: - ax3.plot(arhcf2.getTimeArray(), - arhcf2.getCF() / max(arhcf2.getCF()), 'm', label='CF2') - ax3.plot( - [aicarhpick.getpick(), aicarhpick.getpick()], - [-1, 1], 'g', label='Initial S Onset') - ax3.plot( - [aicarhpick.getpick() - 0.5, - aicarhpick.getpick() + 0.5], - [1, 1], 'g') - ax3.plot( - [aicarhpick.getpick() - 0.5, - aicarhpick.getpick() + 0.5], - [-1, -1], 'g') - ax3.plot([refSpick.getpick(), refSpick.getpick()], - [-1.3, 1.3], 'g', linewidth=2, label='Final S Pick') - ax3.plot( - [refSpick.getpick() - 0.5, refSpick.getpick() + 0.5], - [1.3, 1.3], 'g', linewidth=2) - ax3.plot( - [refSpick.getpick() - 0.5, refSpick.getpick() + 0.5], - [-1.3, -1.3], 'g', linewidth=2) - ax3.plot([lpickS, lpickS], [-1.1, 1.1], 'g--', label='lpp') - ax3.plot([epickS, epickS], [-1.1, 1.1], 'g--', label='epp') - ax3.legend(loc=1) - ax3.set_yticks([]) - ax3.set_ylim([-1.5, 1.5]) - ax3.set_xlabel('Time [s] after %s' % tr_filt.stats.starttime) - ax3.set_ylabel('Normalized Counts') - ax3.set_title(trH2_filt.stats.channel) - if plt_flag == 1: - fig.show() - try: - input() - except SyntaxError: - pass - plt.close(fig) + ax3 = fig.add_subplot(3, 1, 3, sharex=ax1) + th2data = np.arange(0, + trH2_filt.stats.npts / + trH2_filt.stats.sampling_rate, + trH2_filt.stats.delta) + # check equal length of arrays, sometimes they are different!? + wfldiff = len(trH2_filt.data) - len(th2data) + if wfldiff < 0: + th2data = th2data[0:len(th2data) - abs(wfldiff)] + ax3.plot(th2data, trH2_filt.data / max(trH2_filt.data), color=linecolor, linewidth=0.7, label='Data') + if Pweight < 4: + p22, = ax3.plot(arhcf1.getTimeArray(), + arhcf1.getCF() / max(arhcf1.getCF()), 'b', label='CF1') + if aicSflag == 1: + ax3.plot(arhcf2.getTimeArray(), + arhcf2.getCF() / max(arhcf2.getCF()), 'm', label='CF2') + ax3.plot( + [aicarhpick.getpick(), aicarhpick.getpick()], + [-1, 1], 'g', label='Initial S Onset') + ax3.plot( + [aicarhpick.getpick() - 0.5, + aicarhpick.getpick() + 0.5], + [1, 1], 'g') + ax3.plot( + [aicarhpick.getpick() - 0.5, + aicarhpick.getpick() + 0.5], + [-1, -1], 'g') + ax3.plot([refSpick.getpick(), refSpick.getpick()], + [-1.3, 1.3], 'g', linewidth=2, label='Final S Pick') + ax3.plot( + [refSpick.getpick() - 0.5, refSpick.getpick() + 0.5], + [1.3, 1.3], 'g', linewidth=2) + ax3.plot( + [refSpick.getpick() - 0.5, refSpick.getpick() + 0.5], + [-1.3, -1.3], 'g', linewidth=2) + ax3.plot([lpickS, lpickS], [-1.1, 1.1], 'g--', label='lpp') + ax3.plot([epickS, epickS], [-1.1, 1.1], 'g--', label='epp') + ax3.legend(loc=1) + ax3.set_yticks([]) + ax3.set_ylim([-1.5, 1.5]) + ax3.set_xlabel('Time [s] after %s' % tr_filt.stats.starttime) + ax3.set_ylabel('Normalized Counts') + ax3.set_title(trH2_filt.stats.channel) + if plt_flag == 1: + fig.show() + try: + input() + except SyntaxError: + pass + plt.close(fig) ########################################################################## # calculate "real" onset times if lpickP is not None and lpickP == mpickP: @@ -2082,12 +2092,22 @@ def nautopickstation(wfstream, pickparam, verbose=False, epickP = zdat[0].stats.starttime - p_params['timeerrorsP'][3] mpickP = zdat[0].stats.starttime + # create dictionary + # for P phase + ccode = zdat[0].stats.channel + ncode = zdat[0].stats.network + ppick = dict(channel=ccode, network=ncode, lpp=lpickP, epp=epickP, mpp=mpickP, spe=Perror, snr=SNRP, + snrdb=SNRPdB, weight=Pweight, fm=FM, w0=None, fc=None, Mo=None, + Mw=None, picker=picker, marked=Pmarker) + if edat: hdat = edat[0] elif ndat: hdat = ndat[0] else: - return + # no horizontal components given + picks = dict(P=ppick) + return picks, station if lpickS is not None and lpickS == mpickS: lpickS += hdat.stats.delta @@ -2104,21 +2124,14 @@ def nautopickstation(wfstream, pickparam, verbose=False, epickS = hdat.stats.starttime - s_params['timeerrorsS'][3] mpickS = hdat.stats.starttime - # create dictionary - # for P phase - ccode = zdat[0].stats.channel - ncode = zdat[0].stats.network - ppick = dict(channel=ccode, network=ncode, lpp=lpickP, epp=epickP, mpp=mpickP, spe=Perror, snr=SNRP, - snrdb=SNRPdB, weight=Pweight, fm=FM, w0=None, fc=None, Mo=None, - Mw=None, picker=picker, marked=Pmarker) # add S phase ccode = hdat.stats.channel ncode = hdat.stats.network spick = dict(channel=ccode, network=ncode, lpp=lpickS, epp=epickS, mpp=mpickS, spe=Serror, snr=SNRS, snrdb=SNRSdB, weight=Sweight, fm=None, picker=picker, Ao=Ao) # merge picks into returning dictionary - picks = dict(P=ppick, S=spick, station=zdat[0].stats.station) - return picks + picks = dict(P=ppick, S=spick) + return picks, station def iteratepicker(wf, NLLocfile, picks, badpicks, pickparameter, fig_dict=None): @@ -2189,11 +2202,11 @@ def iteratepicker(wf, NLLocfile, picks, badpicks, pickparameter, fig_dict=None): print( "iteratepicker: The following picking parameters have been modified for iterative picking:") print( - "pstart: %fs => %fs" % (pstart_old, pickparameter.get('pstart'))) + "pstart: %fs => %fs" % (pstart_old, pickparameter.get('pstart'))) print( - "pstop: %fs => %fs" % (pstop_old, pickparameter.get('pstop'))) + "pstop: %fs => %fs" % (pstop_old, pickparameter.get('pstop'))) print( - "sstop: %fs => %fs" % (sstop_old, pickparameter.get('sstop'))) + "sstop: %fs => %fs" % (sstop_old, pickparameter.get('sstop'))) print("pickwinP: %fs => %fs" % ( pickwinP_old, pickparameter.get('pickwinP'))) print("Precalcwin: %fs => %fs" % ( @@ -2203,7 +2216,7 @@ def iteratepicker(wf, NLLocfile, picks, badpicks, pickparameter, fig_dict=None): print("zfac: %f => %f" % (zfac_old, pickparameter.get('zfac'))) # repick station - newpicks = autopickstation(wf2pick, pickparameter, fig_dict=fig_dict) + newpicks, _ = autopickstation(wf2pick, pickparameter, fig_dict=fig_dict) # replace old dictionary with new one picks[badpicks[i][0]] = newpicks diff --git a/pylot/core/pick/compare.py b/pylot/core/pick/compare.py index 148b1843..8b181d51 100644 --- a/pylot/core/pick/compare.py +++ b/pylot/core/pick/compare.py @@ -506,7 +506,8 @@ class PDFstatistics(object): return rlist - def writeThetaToFile(self, array, out_dir): + @staticmethod + def writeThetaToFile(array, out_dir): """ Method to write array like data to file. Useful since acquiring can take serious amount of time when dealing with large databases. diff --git a/pylot/core/pick/picker.py b/pylot/core/pick/picker.py index 0eca02e4..c6022998 100644 --- a/pylot/core/pick/picker.py +++ b/pylot/core/pick/picker.py @@ -164,9 +164,9 @@ class AICPicker(AutoPicker): iplot = int(self.iplot) except: if self.iplot == True or self.iplot == 'True': - iplot = 2 + iplot = 2 else: - iplot = 0 + iplot = 0 # find NaN's nn = np.isnan(self.cf) @@ -191,17 +191,32 @@ class AICPicker(AutoPicker): # remove offset in AIC function offset = abs(min(aic) - min(aicsmooth)) aicsmooth = aicsmooth - offset + cf = self.Data[0].data # get maximum of HOS/AR-CF as startimg point for searching - # minimum in AIC function - icfmax = np.argmax(self.Data[0].data) + # minimum in AIC function + icfmax = np.argmax(cf) + + # MP MP testing threshold + thresh_hit = False + thresh_factor = 0.7 + thresh = thresh_factor * cf[icfmax] + for index, sample in enumerate(cf): + if sample >= thresh: + thresh_hit = True + # go on searching for the following maximum + if index > 0 and thresh_hit: + if sample <= cf[index - 1]: + icfmax = index - 1 + break + # MP MP --- # find minimum in AIC-CF front of maximum of HOS/AR-CF lpickwindow = int(round(self.PickWindow / self.dt)) tsafety = self.TSNR[1] # safety gap, AIC is usually a little bit too late left_corner_ind = max([icfmax - lpickwindow, 2]) right_corner_ind = icfmax + int(tsafety / self.dt) - aic_snip = aicsmooth[left_corner_ind : right_corner_ind] - minima = argrelmin(aic_snip)[0] # 0th entry of tuples for axes + aic_snip = aicsmooth[left_corner_ind: right_corner_ind] + minima = argrelmin(aic_snip)[0] # 0th entry of tuples for axes if len(minima) > 0: pickindex = minima[-1] + left_corner_ind self.Pick = self.Tcf[pickindex] @@ -233,27 +248,28 @@ class AICPicker(AutoPicker): ii = min([isignal[len(isignal) - 1], len(self.Tcf)]) isignal = isignal[0:ii] try: - self.Data[0].data[isignal] + cf[isignal] except IndexError as e: msg = "Time series out of bounds! {}".format(e) print(msg) return # calculate SNR from CF - self.SNR = max(abs(self.Data[0].data[isignal])) / \ - abs(np.mean(self.Data[0].data[inoise])) + self.SNR = max(abs(cf[isignal])) / \ + abs(np.mean(cf[inoise])) # calculate slope from CF after initial pick # get slope window tslope = self.TSNR[3] # slope determination window if tsafety >= 0: islope = np.where((self.Tcf <= min([self.Pick + tslope + tsafety, self.Tcf[-1]])) \ - & (self.Tcf >= self.Pick)) # TODO: put this in a seperate function like getsignalwin + & (self.Tcf >= self.Pick)) # TODO: put this in a seperate function like getsignalwin else: islope = np.where((self.Tcf <= min([self.Pick + tslope, self.Tcf[-1]])) \ - & (self.Tcf >= self.Pick + tsafety)) # TODO: put this in a seperate function like getsignalwin + & ( + self.Tcf >= self.Pick + tsafety)) # TODO: put this in a seperate function like getsignalwin # find maximum within slope determination window # 'cause slope should be calculated up to first local minimum only! try: - dataslope = self.Data[0].data[islope[0][0:-1]] + dataslope = cf[islope[0][0:-1]] except IndexError: print("Slope Calculation: empty array islope, check signal window") return @@ -263,7 +279,7 @@ class AICPicker(AutoPicker): try: imaxs, = argrelmax(dataslope) imax = imaxs[0] - except ValueError as e: + except (ValueError, IndexError) as e: print(e, 'picker: argrelmax not working!') imax = np.argmax(dataslope) iislope = islope[0][0:imax + 1] @@ -276,14 +292,14 @@ class AICPicker(AutoPicker): print("AICPicker: Maximum for slope determination right at the beginning of the window!") print("Choose longer slope determination window!") if self.iplot > 1: - if self.fig == None or self.fig == 'None': + if self.fig is None or self.fig == 'None': fig = plt.figure() plt_flag = iplot else: fig = self.fig ax = fig.add_subplot(111) - x = self.Data[0].data - ax.plot(self.Tcf, x / max(x), color=self._linecolor, linewidth=0.7, label='(HOS-/AR-) Data') + cf = cf + ax.plot(self.Tcf, cf / max(cf), color=self._linecolor, linewidth=0.7, label='(HOS-/AR-) Data') ax.plot(self.Tcf, aicsmooth / max(aicsmooth), 'r', label='Smoothed AIC-CF') ax.legend(loc=1) ax.set_xlabel('Time [s] since %s' % self.Data[0].stats.starttime) @@ -291,12 +307,23 @@ class AICPicker(AutoPicker): ax.set_title(self.Data[0].stats.station) if plt_flag in [1, 2]: fig.show() - try: input() - except SyntaxError: pass + try: + input() + except SyntaxError: + pass plt.close(fig) return - iislope = islope[0][0:imax+1] - dataslope = self.Data[0].data[iislope] + iislope = islope[0][0:imax + 1] + # MP MP change slope calculation + # get all maxima of aicsmooth + iaicmaxima = argrelmax(aicsmooth)[0] + # get first index of maximum after pickindex (indices saved in iaicmaxima) + aicmax = iaicmaxima[np.where(iaicmaxima > pickindex)[0]] + if len(aicmax) > 0: + iaicmax = aicmax[0] + else: + iaicmax = -1 + dataslope = aicsmooth[pickindex: iaicmax] # calculate slope as polynomal fit of order 1 xslope = np.arange(0, len(dataslope), 1) P = np.polyfit(xslope, dataslope, 1) @@ -306,24 +333,23 @@ class AICPicker(AutoPicker): else: self.slope = 1 / (len(dataslope) * self.Data[0].stats.delta) * (datafit[-1] - datafit[0]) # normalize slope to maximum of cf to make it unit independent - self.slope /= self.Data[0].data[icfmax] + self.slope /= aicsmooth[iaicmax] else: self.SNR = None self.slope = None if iplot > 1: - if self.fig == None or self.fig == 'None': + if self.fig is None or self.fig == 'None': fig = plt.figure() # self.iplot) plt_flag = iplot else: fig = self.fig fig._tight = True ax1 = fig.add_subplot(211) - x = self.Data[0].data - if len(self.Tcf) > len(self.Data[0].data): # why? LK - self.Tcf = self.Tcf[0:len(self.Tcf)-1] - ax1.plot(self.Tcf, x / max(x), color=self._linecolor, linewidth=0.7, label='(HOS-/AR-) Data') + if len(self.Tcf) > len(cf): # why? LK + self.Tcf = self.Tcf[0:len(self.Tcf) - 1] + ax1.plot(self.Tcf, cf / max(cf), color=self._linecolor, linewidth=0.7, label='(HOS-/AR-) Data') ax1.plot(self.Tcf, aicsmooth / max(aicsmooth), 'r', label='Smoothed AIC-CF') if self.Pick is not None: ax1.plot([self.Pick, self.Pick], [-0.1, 0.5], 'b', linewidth=2, label='AIC-Pick') @@ -333,7 +359,7 @@ class AICPicker(AutoPicker): if self.Pick is not None: ax2 = fig.add_subplot(2, 1, 2, sharex=ax1) - ax2.plot(self.Tcf, x, color=self._linecolor, linewidth=0.7, label='Data') + ax2.plot(self.Tcf, aicsmooth, color='r', linewidth=0.7, label='Data') ax1.axvspan(self.Tcf[inoise[0]], self.Tcf[inoise[-1]], color='y', alpha=0.2, lw=0, label='Noise Window') ax1.axvspan(self.Tcf[isignal[0]], self.Tcf[isignal[-1]], color='b', alpha=0.2, lw=0, label='Signal Window') @@ -345,7 +371,8 @@ class AICPicker(AutoPicker): label='Signal Window') ax2.axvspan(self.Tcf[iislope[0]], self.Tcf[iislope[-1]], color='g', alpha=0.2, lw=0, label='Slope Window') - ax2.plot(self.Tcf[iislope], datafit, 'g', linewidth=2, label='Slope') + ax2.plot(self.Tcf[pickindex: iaicmax], datafit, 'g', linewidth=2, + label='Slope') # MP MP changed temporarily! if self.slope is not None: ax1.set_title('Station %s, SNR=%7.2f, Slope= %12.2f counts/s' % (self.Data[0].stats.station, @@ -361,15 +388,17 @@ class AICPicker(AutoPicker): if plt_flag in [1, 2]: fig.show() - try: input() - except SyntaxError: pass + try: + input() + except SyntaxError: + pass plt.close(fig) if plt_flag == 3: stats = self.Data[0].stats netstlc = '{}.{}.{}'.format(stats.network, stats.station, stats.location) fig.savefig('aicfig_{}_{}.png'.format(netstlc, stats.channel)) - if self.Pick == None: + if self.Pick is None: print('AICPicker: Could not find minimum, picking window too short?') return @@ -386,9 +415,9 @@ class PragPicker(AutoPicker): iplot = int(self.getiplot()) except: if self.getiplot() == True or self.getiplot() == 'True': - iplot = 2 + iplot = 2 else: - iplot = 0 + iplot = 0 if self.getpick1() is not None: print('PragPicker: Get most likely pick from HOS- or AR-CF using pragmatic picking algorithm ...') @@ -427,11 +456,11 @@ class PragPicker(AutoPicker): # prominent trend: decrease aus # flat: use given aus cfdiff = np.diff(cfipick) - if len(cfdiff)<20: + if len(cfdiff) < 20: print('PragPicker: Very few samples for CF. Check LTA window dimensions!') i0diff = np.where(cfdiff > 0) cfdiff = cfdiff[i0diff] - if len(cfdiff)<1: + if len(cfdiff) < 1: print('PragPicker: Negative slope for CF. Check LTA window dimensions! STOP') self.Pick = None return @@ -455,7 +484,7 @@ class PragPicker(AutoPicker): break # now we look to the left - if len(self.cf) > ipick1 +1: + if len(self.cf) > ipick1 + 1: for i in range(ipick1, max([ipick1 - lpickwindow + 1, 2]), -1): if self.cf[i + 1] > self.cf[i] and self.cf[i - 1] >= self.cf[i]: if cfsmooth[i - 1] * (1 + aus1) >= cfsmooth[i]: @@ -466,7 +495,7 @@ class PragPicker(AutoPicker): cfpick_l = self.cf[i] break else: - msg ='PragPicker: Initial onset too close to start of CF! \ + msg = 'PragPicker: Initial onset too close to start of CF! \ Stop finalizing pick to the left.' print(msg) @@ -486,7 +515,7 @@ class PragPicker(AutoPicker): pickflag = 0 if iplot > 1: - if self.fig == None or self.fig == 'None': + if self.fig is None or self.fig == 'None': fig = plt.figure() # self.getiplot()) plt_flag = 1 else: @@ -496,15 +525,18 @@ class PragPicker(AutoPicker): ax.plot(Tcfpick, cfipick, color=self._linecolor, linewidth=0.7, label='CF') ax.plot(Tcfpick, cfsmoothipick, 'r', label='Smoothed CF') if pickflag > 0: - ax.plot([self.Pick, self.Pick], [min(cfipick), max(cfipick)], self._pickcolor_p, linewidth=2, label='Pick') + ax.plot([self.Pick, self.Pick], [min(cfipick), max(cfipick)], self._pickcolor_p, linewidth=2, + label='Pick') ax.set_xlabel('Time [s] since %s' % self.Data[0].stats.starttime) ax.set_yticks([]) ax.set_title(self.Data[0].stats.station) ax.legend(loc=1) if plt_flag == 1: fig.show() - try: input() - except SyntaxError: pass + try: + input() + except SyntaxError: + pass plt.close(fig) return diff --git a/pylot/core/pick/utils.py b/pylot/core/pick/utils.py index 31c9cd0e..20271084 100644 --- a/pylot/core/pick/utils.py +++ b/pylot/core/pick/utils.py @@ -14,8 +14,7 @@ import matplotlib.pyplot as plt import numpy as np from scipy.signal import argrelmax from obspy.core import Stream, UTCDateTime -from pylot.core.util.utils import real_Bool, real_None - +from pylot.core.util.utils import real_Bool, real_None, SetChannelComponents def earllatepicker(X, nfac, TSNR, Pick1, iplot=0, verbosity=1, fig=None, linecolor='k'): @@ -144,13 +143,16 @@ def earllatepicker(X, nfac, TSNR, Pick1, iplot=0, verbosity=1, fig=None, linecol ax.plot(t, x, color=linecolor, linewidth=0.7, label='Data') ax.axvspan(t[inoise[0]], t[inoise[-1]], color='y', alpha=0.2, lw=0, label='Noise Window') ax.axvspan(t[isignal[0]], t[isignal[-1]], color='b', alpha=0.2, lw=0, label='Signal Window') - ax.plot([t[0], t[int(len(t)) - 1]], [nlevel, nlevel], color=linecolor, linewidth=0.7, linestyle='dashed', label='Noise Level') + ax.plot([t[0], t[int(len(t)) - 1]], [nlevel, nlevel], color=linecolor, linewidth=0.7, linestyle='dashed', + label='Noise Level') ax.plot(t[pis[zc]], np.zeros(len(zc)), '*g', markersize=14, label='Zero Crossings') ax.plot([t[0], t[int(len(t)) - 1]], [-nlevel, -nlevel], color=linecolor, linewidth=0.7, linestyle='dashed') ax.plot([Pick1, Pick1], [max(x), -max(x)], 'b', linewidth=2, label='mpp') - ax.plot([LPick, LPick], [max(x) / 2, -max(x) / 2], color=linecolor, linewidth=0.7, linestyle='dashed', label='lpp') - ax.plot([EPick, EPick], [max(x) / 2, -max(x) / 2], color=linecolor, linewidth=0.7, linestyle='dashed', label='epp') + ax.plot([LPick, LPick], [max(x) / 2, -max(x) / 2], color=linecolor, linewidth=0.7, linestyle='dashed', + label='lpp') + ax.plot([EPick, EPick], [max(x) / 2, -max(x) / 2], color=linecolor, linewidth=0.7, linestyle='dashed', + label='epp') ax.plot([Pick1 + PickError, Pick1 + PickError], [max(x) / 2, -max(x) / 2], 'r--', label='spe') ax.plot([Pick1 - PickError, Pick1 - PickError], @@ -163,8 +165,10 @@ def earllatepicker(X, nfac, TSNR, Pick1, iplot=0, verbosity=1, fig=None, linecol ax.legend(loc=1) if plt_flag == 1: fig.show() - try: input() - except SyntaxError: pass + try: + input() + except SyntaxError: + pass plt.close(fig) return EPick, LPick, PickError @@ -198,9 +202,9 @@ def fmpicker(Xraw, Xfilt, pickwin, Pick, iplot=0, fig=None, linecolor='k'): iplot = int(iplot) except: if iplot == True or iplot == 'True': - iplot = 2 + iplot = 2 else: - iplot = 0 + iplot = 0 warnings.simplefilter('ignore', np.RankWarning) @@ -227,8 +231,7 @@ def fmpicker(Xraw, Xfilt, pickwin, Pick, iplot=0, fig=None, linecolor='k'): # get zero crossings after most likely pick # initial onset is assumed to be the first zero crossing # first from unfiltered trace - zc1 = [] - zc1.append(Pick) + zc1 = [Pick] index1 = [] i = 0 for j in range(ipick[0][1], ipick[0][len(t[ipick]) - 1]): @@ -273,8 +276,7 @@ def fmpicker(Xraw, Xfilt, pickwin, Pick, iplot=0, fig=None, linecolor='k'): # now using filterd trace # next zero crossings after most likely pick - zc2 = [] - zc2.append(Pick) + zc2 = [Pick] index2 = [] i = 0 for j in range(ipick[0][1], ipick[0][len(t[ipick]) - 1]): @@ -362,8 +364,10 @@ def fmpicker(Xraw, Xfilt, pickwin, Pick, iplot=0, fig=None, linecolor='k'): ax2.set_yticks([]) if plt_flag == 1: fig.show() - try: input() - except SyntaxError: pass + try: + input() + except SyntaxError: + pass plt.close(fig) return FM @@ -573,8 +577,6 @@ def select_for_phase(st, phase): :rtype: `~obspy.core.stream.Stream` """ - from pylot.core.util.defaults import SetChannelComponents - sel_st = Stream() compclass = SetChannelComponents() if phase.upper() == 'P': @@ -623,14 +625,18 @@ def wadaticheck(pickdic, dttolerance, iplot=0, fig_dict=None): ibad = 0 for key in list(pickdic.keys()): - if pickdic[key]['P']['weight'] < 4 and pickdic[key]['S']['weight'] < 4: + ppick = pickdic[key].get('P') + spick = pickdic[key].get('S') + if not ppick or not spick: + continue + if ppick['weight'] < 4 and spick['weight'] < 4: # calculate S-P time - spt = pickdic[key]['S']['mpp'] - pickdic[key]['P']['mpp'] + spt = spick['mpp'] - ppick['mpp'] # add S-P time to dictionary pickdic[key]['SPt'] = spt # add P onsets and corresponding S-P times to list - UTCPpick = UTCDateTime(pickdic[key]['P']['mpp']) - UTCSpick = UTCDateTime(pickdic[key]['S']['mpp']) + UTCPpick = UTCDateTime(ppick['mpp']) + UTCSpick = UTCDateTime(spick['mpp']) Ppicks.append(UTCPpick.timestamp) Spicks.append(UTCSpick.timestamp) SPtimes.append(spt) @@ -660,11 +666,11 @@ def wadaticheck(pickdic, dttolerance, iplot=0, fig_dict=None): # check, if deviation is larger than adjusted if wddiff > dttolerance: # remove pick from dictionary - pickdic.pop(key) - # # mark onset and downgrade S-weight to 9 + # # mark onset and downgrade S-weight to 9, also set SPE to None (disregarded in GUI) # # (not used anymore) - # marker = 'badWadatiCheck' - # pickdic[key]['S']['weight'] = 9 + marker = 'badWadatiCheck' + pickdic[key]['S']['weight'] = 9 + pickdic[key]['S']['spe'] = None badstations.append(key) ibad += 1 else: @@ -676,8 +682,7 @@ def wadaticheck(pickdic, dttolerance, iplot=0, fig_dict=None): checkedSPtime = pickdic[key]['S']['mpp'] - pickdic[key]['P']['mpp'] checkedSPtimes.append(checkedSPtime) - pickdic[key]['S']['marked'] = marker - #pickdic[key]['S']['marked'] = marker + pickdic[key]['S']['marked'] = marker print("wadaticheck: the following stations failed the check:") print(badstations) @@ -719,8 +724,8 @@ def wadaticheck(pickdic, dttolerance, iplot=0, fig_dict=None): ax.plot(Ppicks, SPtimes, 'ro', label='Skipped S-Picks') if wfitflag == 0: ax.plot(Ppicks, wdfit, color=linecolor, linewidth=0.7, label='Wadati 1') - ax.plot(Ppicks, wdfit+dttolerance, color='0.9', linewidth=0.5, label='Wadati 1 Tolerance') - ax.plot(Ppicks, wdfit-dttolerance, color='0.9', linewidth=0.5) + ax.plot(Ppicks, wdfit + dttolerance, color='0.9', linewidth=0.5, label='Wadati 1 Tolerance') + ax.plot(Ppicks, wdfit - dttolerance, color='0.9', linewidth=0.5) ax.plot(checkedPpicks, wdfit2, 'g', label='Wadati 2') ax.plot(checkedPpicks, checkedSPtimes, color=linecolor, linewidth=0, marker='o', label='Reliable S-Picks') @@ -787,9 +792,9 @@ def checksignallength(X, pick, TSNR, minsiglength, nfac, minpercent, iplot=0, fi iplot = int(iplot) except: if real_Bool(iplot): - iplot = 2 + iplot = 2 else: - iplot = 0 + iplot = 0 assert isinstance(X, Stream), "%s is not a stream object" % str(X) @@ -851,8 +856,10 @@ def checksignallength(X, pick, TSNR, minsiglength, nfac, minpercent, iplot=0, fi ax.set_yticks([]) if plt_flag == 1: fig.show() - try: input() - except SyntaxError: pass + try: + input() + except SyntaxError: + pass plt.close(fig) return returnflag @@ -886,9 +893,12 @@ def checkPonsets(pickdic, dttolerance, jackfactor=5, iplot=0, fig_dict=None): Ppicks = [] stations = [] for station in pickdic: - if pickdic[station]['P']['weight'] < 4: + pick = pickdic[station].get('P') + if not pick: + continue + if pick['weight'] < 4: # add P onsets to list - UTCPpick = UTCDateTime(pickdic[station]['P']['mpp']) + UTCPpick = UTCDateTime(pick['mpp']) Ppicks.append(UTCPpick.timestamp) stations.append(station) @@ -1077,16 +1087,15 @@ def checkZ4S(X, pick, zfac, checkwin, iplot, fig=None, linecolor='k'): :return: returnflag; 0 if onset failed test, 1 if onset passed test :rtype: int """ - + plt_flag = 0 try: iplot = int(iplot) except: if real_Bool(iplot): - iplot = 2 + iplot = 2 else: - iplot = 0 - + iplot = 0 assert isinstance(X, Stream), "%s is not a stream object" % str(X) @@ -1188,12 +1197,81 @@ def checkZ4S(X, pick, zfac, checkwin, iplot, fig=None, linecolor='k'): ax.set_xlabel('Time [s] since %s' % zdat[0].stats.starttime) if plt_flag == 1: fig.show() - try: input() - except SyntaxError: pass + try: + input() + except SyntaxError: + pass plt.close(fig) return returnflag +def getPickQuality(wfdata, picks, inputs, phase, compclass=None): + quality = 4 + components4phases = {'P': ['Z'], + 'S': ['N', 'E']} + timeErrors4phases = {'P': 'timeerrorsP', + 'S': 'timeerrorsS'} + tsnr4phases = {'P': 'tsnrz', + 'S': 'tsnrh'} + + if not phase in components4phases.keys(): + raise IOError('getPickQuality: Could not understand phase: {}'.format(phase)) + + if not compclass: + print('Warning: No settings for channel components found. Using default') + compclass = SetChannelComponents() + + picks = picks[phase] + mpp = picks.get('mpp') + uncertainty = picks.get('spe') + if not mpp: + print('getPickQuality: No pick found!') + return quality + if not uncertainty: + print('getPickQuality: No pick uncertainty (spe) found!') + return quality + + tsnr = inputs[tsnr4phases[phase]] + timeErrors = inputs[timeErrors4phases[phase]] + snrdb_final = 0 + + for component in components4phases[phase]: + alter_comp = compclass.getCompPosition(component) + st_select = wfdata.select(component=component) + st_select += wfdata.select(component=alter_comp) + if st_select: + trace = st_select[0] + _, snrdb, _ = getSNR(st_select, tsnr, + mpp - trace.stats.starttime) + if snrdb > snrdb_final: + snrdb_final = snrdb + + quality = getQualityFromUncertainty(uncertainty, timeErrors) + quality += getQualityFromSNR(snrdb_final) + + return quality + + +def getQualityFromSNR(snrdb): + quality_modifier = 4 + if not snrdb: + print('getQualityFromSNR: No snrdb!') + return quality_modifier + # MP MP ++++ experimental, + # raise pick quality by x classes if snrdb is lower than corresponding key + quality4snrdb = {3: 4, + 5: 3, + 7: 2, + 9: 1, + 11: 0} + # MP MP --- + # iterate over all thresholds and check whether snrdb is larger, if so, set new quality_modifier + for snrdb_threshold in sorted(list(quality4snrdb.keys())): + if snrdb > snrdb_threshold: + quality_modifier = quality4snrdb[snrdb_threshold] + return quality_modifier + + def get_quality_class(uncertainty, weight_classes): """ Script to transform uncertainty into quality classes 0-4 regarding adjusted time errors @@ -1378,6 +1456,26 @@ def get_pickparams(pickparam): return p_params, s_params, first_motion_params, signal_length_params +def getQualityFromUncertainty(uncertainty, Errors): + # set initial quality to 4 (worst) and change only if one condition is hit + quality = 4 + + if real_None(uncertainty) is None: + return quality + + if uncertainty <= Errors[0]: + quality = 0 + elif (uncertainty > Errors[0]) and \ + (uncertainty <= Errors[1]): + quality = 1 + elif (uncertainty > Errors[1]) and \ + (uncertainty <= Errors[2]): + quality = 2 + elif (uncertainty > Errors[2]) and \ + (uncertainty <= Errors[3]): + quality = 3 + elif uncertainty > Errors[3]: + quality = 4 if __name__ == '__main__': import doctest diff --git a/pylot/core/util/array_map.py b/pylot/core/util/array_map.py index de9a3bf3..7a428006 100644 --- a/pylot/core/util/array_map.py +++ b/pylot/core/util/array_map.py @@ -23,8 +23,7 @@ class Array_map(QtGui.QWidget): ''' QtGui.QWidget.__init__(self) self._parent = parent - self.metadata_type = parent.metadata[0] - self.metadata = parent.metadata[1] + self.metadata = parent.metadata self.picks = None self.picks_dict = None self.autopicks_dict = None @@ -74,15 +73,11 @@ class Array_map(QtGui.QWidget): if pickDlg.exec_(): pyl_mw.setDirty(True) pyl_mw.update_status('picks accepted ({0})'.format(station)) - replot = pyl_mw.get_current_event().setPick(station, pickDlg.getPicks()) + pyl_mw.addPicks(station, pickDlg.getPicks(picktype='manual'), type='manual') + pyl_mw.addPicks(station, pickDlg.getPicks(picktype='auto'), type='auto') self._refresh_drawings() - if replot: - pyl_mw.plotWaveformData() - pyl_mw.drawPicks() - pyl_mw.draw() - else: - pyl_mw.drawPicks(station) - pyl_mw.draw() + pyl_mw.drawPicks(station) + pyl_mw.draw() else: pyl_mw.update_status('picks discarded ({0})'.format(station)) except Exception as e: @@ -94,7 +89,7 @@ class Array_map(QtGui.QWidget): self.comboBox_phase.currentIndexChanged.connect(self._refresh_drawings) self.comboBox_am.currentIndexChanged.connect(self._refresh_drawings) self.canvas.mpl_connect('motion_notify_event', self.mouse_moved) - #self.zoom_id = self.basemap.ax.figure.canvas.mpl_connect('scroll_event', self.zoom) + # self.zoom_id = self.basemap.ax.figure.canvas.mpl_connect('scroll_event', self.zoom) def _from_dict(self, function, key): return function(self.stations_dict.values(), key=lambda x: x[key])[key] @@ -159,35 +154,8 @@ class Array_map(QtGui.QWidget): self.main_box.addWidget(self.canvas, 1) self.main_box.addWidget(self.status_label, 0) - def init_stations(self): - def stat_info_from_parser(parser): - stations_dict = {} - for station in parser.stations: - station_name = station[0].station_call_letters - network_name = station[0].network_code - if not station_name in stations_dict.keys(): - st_id = network_name + '.' + station_name - stations_dict[st_id] = {'latitude': station[0].latitude, - 'longitude': station[0].longitude} - return stations_dict - - def stat_info_from_inventory(inventory): - stations_dict = {} - for network in inventory.networks: - for station in network.stations: - station_name = station.code - network_name = network_name.code - if not station_name in stations_dict.keys(): - st_id = network_name + '.' + station_name - stations_dict[st_id] = {'latitude': station[0].latitude, - 'longitude': station[0].longitude} - return stations_dict - - read_stat = {'xml': stat_info_from_inventory, - 'dless': stat_info_from_parser} - - self.stations_dict = read_stat[self.metadata_type](self.metadata) + self.stations_dict = self.metadata.get_all_coordinates() self.latmin = self.get_min_from_stations('latitude') self.lonmin = self.get_min_from_stations('longitude') self.latmax = self.get_max_from_stations('latitude') @@ -196,13 +164,15 @@ class Array_map(QtGui.QWidget): def init_picks(self): def get_picks(station_dict): picks = {} + # selected phase phase = self.comboBox_phase.currentText() for st_id in station_dict.keys(): try: station_name = st_id.split('.')[-1] + # current_picks_dict: auto or manual pick = self.current_picks_dict()[station_name][phase] if pick['picker'] == 'auto': - if pick['weight'] > 3: + if not pick['spe']: continue picks[st_id] = pick['mpp'] except KeyError: @@ -217,11 +187,12 @@ class Array_map(QtGui.QWidget): for pick in picks.values(): if type(pick) is obspy.core.utcdatetime.UTCDateTime: picks_utc.append(pick) - self._earliest_picktime = min(picks_utc) - for st_id, pick in picks.items(): - if type(pick) is obspy.core.utcdatetime.UTCDateTime: - pick -= self._earliest_picktime - picks_rel[st_id] = pick + if picks_utc: + self._earliest_picktime = min(picks_utc) + for st_id, pick in picks.items(): + if type(pick) is obspy.core.utcdatetime.UTCDateTime: + pick -= self._earliest_picktime + picks_rel[st_id] = pick return picks_rel self.picks = get_picks(self.stations_dict) @@ -331,6 +302,8 @@ class Array_map(QtGui.QWidget): def scatter_picked_stations(self): picks, lats, lons = self.get_picks_lat_lon() + if len(lons) < 1 and len(lats) < 1: + return # workaround because of an issue with latlon transformation of arrays with len <3 if len(lons) <= 2 and len(lats) <= 2: self.sc_picked = self.basemap.scatter(lons[0], lats[0], s=50, facecolor='white', @@ -354,7 +327,7 @@ class Array_map(QtGui.QWidget): def add_cbar(self, label): self.cbax_bg = inset_axes(self.main_ax, width="6%", height="75%", loc=5) cbax = inset_axes(self.main_ax, width='2%', height='70%', loc=5) - cbar = self.main_ax.figure.colorbar(self.sc_picked, cax = cbax) + cbar = self.main_ax.figure.colorbar(self.sc_picked, cax=cbax) cbar.set_label(label) cbax.yaxis.tick_left() cbax.yaxis.set_label_position('left') @@ -375,13 +348,16 @@ class Array_map(QtGui.QWidget): self.draw_everything() def draw_everything(self): - if self.picks_dict or self.autopicks_dict: + picktype = self.comboBox_am.currentText() + if (self.picks_dict and picktype == 'manual') \ + or (self.autopicks_dict and picktype == 'auto'): self.init_picks() if len(self.picks) >= 3: self.init_picksgrid() self.draw_contour_filled() self.scatter_all_stations() - if self.picks_dict or self.autopicks_dict: + if (self.picks_dict and picktype == 'manual') \ + or (self.autopicks_dict and picktype == 'auto'): self.scatter_picked_stations() self.cbar = self.add_cbar(label='Time relative to first onset ({}) [s]'.format(self._earliest_picktime)) self.comboBox_phase.setEnabled(True) @@ -397,16 +373,16 @@ class Array_map(QtGui.QWidget): del (self.cbar, self.cbax_bg) if hasattr(self, 'sc_picked'): self.sc_picked.remove() - del (self.sc_picked) + del self.sc_picked if hasattr(self, 'sc_event'): self.sc_event.remove() - del (self.sc_event) + del self.sc_event if hasattr(self, 'contourf'): self.remove_contourf() - del (self.contourf) + del self.contourf if hasattr(self, 'cid'): self.canvas.mpl_disconnect(self.cid) - del (self.cid) + del self.cid try: self.sc.remove() except Exception as e: diff --git a/pylot/core/util/dataprocessing.py b/pylot/core/util/dataprocessing.py index 8366d134..9dc95cf4 100644 --- a/pylot/core/util/dataprocessing.py +++ b/pylot/core/util/dataprocessing.py @@ -13,86 +13,95 @@ from pylot.core.util.utils import key_for_set_value, find_in_list, \ class Metadata(object): + def __init__(self, inventory=None): self.inventories = [] # saves read metadata objects (Parser/inventory) for a filename self.inventory_files = {} # saves filenames holding metadata for a seed_id + # seed id as key, path to file as value self.seed_ids = {} + self.stations_dict = {} if inventory: if os.path.isdir(inventory): self.add_inventory(inventory) if os.path.isfile(inventory): self.add_inventory_file(inventory) - def __str__(self): repr = 'PyLoT Metadata object including the following inventories:\n\n' ntotal = len(self.inventories) for index, inventory in enumerate(self.inventories): if index < 2 or (ntotal - index) < 3: repr += '{}\n'.format(inventory) - if ntotal > 4 and int(ntotal/2) == index: + if ntotal > 4 and int(ntotal / 2) == index: repr += '...\n' if ntotal > 4: repr += '\nTotal of {} inventories. Use Metadata.inventories to see all.'.format(ntotal) return repr - def __repr__(self): return self.__str__() - def add_inventory(self, path_to_inventory): - ''' - add paths to list of inventories - - :param path_to_inventory: - :return: - ''' + """ + Add path to list of inventories. + :param path_to_inventory: Path to a folder + :type path_to_inventory: str + :return: None + """ assert (os.path.isdir(path_to_inventory)), '{} is no directory'.format(path_to_inventory) if not path_to_inventory in self.inventories: self.inventories.append(path_to_inventory) - def add_inventory_file(self, path_to_inventory_file): - ''' - add a single file to inventory files - - :param path_to_inventory_file: - :return: - - ''' + """ + Add the folder in which the file exists to the list of inventories. + :param path_to_inventory_file: full path including filename + :type path_to_inventory_file: str + :return: None + """ assert (os.path.isfile(path_to_inventory_file)), '{} is no file'.format(path_to_inventory_file) self.add_inventory(os.path.split(path_to_inventory_file)[0]) if not path_to_inventory_file in self.inventory_files.keys(): self.read_single_file(path_to_inventory_file) - def remove_all_inventories(self): self.__init__() - def remove_inventory(self, path_to_inventory): - ''' - remove a path from inventories list - - :param path_to_inventory: - :return: - ''' + """ + Remove a path from inventories list. If path is not in inventories list, do nothing. + :param path_to_inventory: Path to a folder + """ if not path_to_inventory in self.inventories: print('Path {} not in inventories list.'.format(path_to_inventory)) return self.inventories.remove(path_to_inventory) for filename in self.inventory_files.keys(): if filename.startswith(path_to_inventory): - del(self.inventory_files[filename]) + del (self.inventory_files[filename]) for seed_id in self.seed_ids.keys(): if self.seed_ids[seed_id].startswith(path_to_inventory): - del(self.seed_ids[seed_id]) + del (self.seed_ids[seed_id]) - - def get_metadata(self, seed_id): + def get_metadata(self, seed_id, time=None): + """ + Get metadata for seed id at time. When time is not specified, metadata for current time is fetched. + :param seed_id: Seed id such as BW.WETR..HHZ (Network.Station.Location.Channel) + :type seed_id: str + :param time: Time for which the metadata should be returned + :type time: UTCDateTime + :return: Dictionary with keys data and invtype. + data is a obspy.io.xseed.parser.Parser or an obspy.core.inventory.inventory.Inventory depending on the metadata + file. + invtype is a string denoting of which type the value of the data key is. It can take the values 'dless', + 'dseed', 'xml', 'resp', according to the filetype of the metadata. + :rtype: dict + """ + # try most recent data if no time is specified + if not time: + time = UTCDateTime() # get metadata for a specific seed_id, if not already read, try to read from inventories if not seed_id in self.seed_ids.keys(): self._read_inventory_data(seed_id) @@ -100,12 +109,13 @@ class Metadata(object): if not seed_id in self.seed_ids.keys(): print('No data found for seed id {}. Trying to find it in all known inventories...'.format(seed_id)) self.read_all() - for inv_fname, metadata in self.inventory_files.items(): + for inv_fname, metadata_dict in self.inventory_files.items(): # use get_coordinates to check for seed_id try: - metadata['data'].get_coordinates(seed_id) + metadata_dict['data'].get_coordinates(seed_id, time) self.seed_ids[seed_id] = inv_fname - return metadata + print('Found metadata for station {}!'.format(seed_id)) + return metadata_dict except Exception as e: continue print('Could not find metadata for station {}'.format(seed_id)) @@ -113,30 +123,30 @@ class Metadata(object): fname = self.seed_ids[seed_id] return self.inventory_files[fname] - def read_all(self): - ''' - read all metadata files found in all inventories - :return: - ''' + """ + Read all metadata files found in all inventories + """ for inventory in self.inventories: for inv_fname in os.listdir(inventory): inv_fname = os.path.join(inventory, inv_fname) if not self.read_single_file(inv_fname): continue - def read_single_file(self, inv_fname): - if not inv_fname in self.inventory_files.keys(): - pass - else: - if not self.inventory_files[inv_fname]: - pass - else: - return + """ + Try to read a single file as Parser/Inventory and add its dictionary to inventory files if reading sudceeded. + :param inv_fname: path/filename of inventory file + :type inv_fname: str + :rtype: None + """ + # return if it was read already + if self.inventory_files.get(inv_fname, None): + return + try: invtype, robj = self._read_metadata_file(inv_fname) - if robj == None: + if robj is None: return except Exception as e: print('Could not read file {}'.format(inv_fname)) @@ -145,15 +155,64 @@ class Metadata(object): 'data': robj} return True - - def get_coordinates(self, seed_id): - metadata = self.get_metadata(seed_id) + def get_coordinates(self, seed_id, time=None): + """ + Get coordinates of given seed id. + :param seed_id: Seed id such as BW.WETR..HHZ (Network.Station.Location.Channel) + :type seed_id: str + :param time: Used when a station has data available at multiple time intervals + :type time: UTCDateTime + :return: dict containing position information of the station + :rtype: dict + """ + # try most recent data if no time is specified + if not time: + time = UTCDateTime() + metadata = self.get_metadata(seed_id, time) if not metadata: return - return metadata['data'].get_coordinates(seed_id) + return metadata['data'].get_coordinates(seed_id, time) + def get_all_coordinates(self): + def stat_info_from_parser(parser): + for station in parser.stations: + station_name = station[0].station_call_letters + network_name = station[0].network_code + if not station_name in self.stations_dict.keys(): + st_id = network_name + '.' + station_name + self.stations_dict[st_id] = {'latitude': station[0].latitude, + 'longitude': station[0].longitude} + + def stat_info_from_inventory(inventory): + for network in inventory.networks: + for station in network.stations: + station_name = station.code + network_name = network_name.code + if not station_name in self.stations_dict.keys(): + st_id = network_name + '.' + station_name + self.stations_dict[st_id] = {'latitude': station[0].latitude, + 'longitude': station[0].longitude} + + read_stat = {'xml': stat_info_from_inventory, + 'dless': stat_info_from_parser} + + self.read_all() + for item in self.inventory_files.values(): + inventory = item['data'] + invtype = item['invtype'] + read_stat[invtype](inventory) + + return self.stations_dict def get_paz(self, seed_id, time): + """ + + :param seed_id: Seed id such as BW.WETR..HHZ (Network.Station.Location.Channel) + :type seed_id: str + :param time: Used when a station has data available at multiple time intervals + :type time: UTCDateTime + :rtype: dict + """ metadata = self.get_metadata(seed_id) if not metadata: return @@ -163,18 +222,17 @@ class Metadata(object): resp = metadata['data'].get_response(seed_id, time) return resp.get_paz(seed_id) - def _read_inventory_data(self, seed_id=None): for inventory in self.inventories: if self._read_metadata_iterator(path_to_inventory=inventory, station_seed_id=seed_id): return - def _read_metadata_iterator(self, path_to_inventory, station_seed_id): - ''' - search for metadata for a specific station iteratively - ''' + """ + Search for metadata for a specific station iteratively. + """ station, network, location, channel = station_seed_id.split('.') + # seach for station seed id in filenames in invetory fnames = glob.glob(os.path.join(path_to_inventory, '*' + station_seed_id + '*')) if not fnames: # search for station name in filename @@ -203,13 +261,13 @@ class Metadata(object): continue print('Could not find metadata for station_seed_id {} in path {}'.format(station_seed_id, path_to_inventory)) - def _read_metadata_file(self, path_to_inventory_filename): - ''' + """ function reading metadata files (either dataless seed, xml or resp) :param path_to_inventory_filename: :return: file type/ending, inventory object (Parser or Inventory) - ''' + :rtype: (str, obspy.io.xseed.Parser or obspy.core.inventory.inventory.Inventory) + """ # functions used to read metadata for different file endings (or file types) read_functions = {'dless': self._read_dless, 'dseed': self._read_dless, @@ -228,8 +286,8 @@ class Metadata(object): return file_type, robj return None, None - - def _read_dless(self, path_to_inventory): + @staticmethod + def _read_dless(path_to_inventory): exc = None try: parser = Parser(path_to_inventory) @@ -237,8 +295,8 @@ class Metadata(object): parser = None return parser, exc - - def _read_inventory_file(self, path_to_inventory): + @staticmethod + def _read_inventory_file(path_to_inventory): exc = None try: inv = read_inventory(path_to_inventory) @@ -247,7 +305,6 @@ class Metadata(object): return inv, exc - def time_from_header(header): """ Function takes in the second line from a .gse file and takes out the date and time from that line. @@ -458,15 +515,22 @@ def read_metadata(path_to_inventory): # return metadata_objects - def restitute_trace(input_tuple): + def no_metadata(tr, seed_id): + print('no metadata file found ' + 'for trace {0}'.format(seed_id)) + return tr, True + tr, metadata, unit, force = input_tuple remove_trace = False seed_id = tr.get_id() - mdata = metadata.get_metadata(seed_id) + mdata = metadata.get_metadata(seed_id, time=tr.stats.starttime) + if not mdata: + return no_metadata(tr, seed_id) + invtype = mdata['invtype'] inobj = mdata['data'] @@ -481,8 +545,7 @@ def restitute_trace(input_tuple): if invtype == 'resp': fresp = find_in_list(inobj, seed_id) if not fresp: - raise IOError('no response file found ' - 'for trace {0}'.format(seed_id)) + return no_metadata(tr, seed_id) fname = fresp seedresp = dict(filename=fname, date=stime, @@ -504,9 +567,8 @@ def restitute_trace(input_tuple): else: finv = invlist[0] inventory = read_inventory(finv, format='STATIONXML') - elif invtype == None: - print("No restitution possible, as there are no station-meta data available!") - return tr, True + elif invtype is None: + return no_metadata(tr, seed_id) else: remove_trace = True # apply restitution to data @@ -542,9 +604,6 @@ def restitute_data(data, metadata, unit='VEL', force=False, ncores=0): takes a data stream and a path_to_inventory and returns the corrected waveform data stream :param data: seismic data stream - :param invtype: type of found metadata - :param inobj: either list of metadata files or `obspy.io.xseed.Parser` - object :param unit: unit to correct for (default: 'VEL') :param force: force restitution for already corrected traces (default: False) @@ -553,7 +612,7 @@ def restitute_data(data, metadata, unit='VEL', force=False, ncores=0): restflag = list() - data = remove_underscores(data) + #data = remove_underscores(data) # loop over traces input_tuples = [] @@ -562,7 +621,7 @@ def restitute_data(data, metadata, unit='VEL', force=False, ncores=0): data.remove(tr) pool = gen_Pool(ncores) - result = pool.map(restitute_trace, input_tuples) + result = pool.imap_unordered(restitute_trace, input_tuples) pool.close() for tr, remove_trace in result: @@ -612,7 +671,7 @@ def get_prefilt(trace, tlow=(0.5, 0.9), thi=(5., 2.), verbosity=0): fny = trace.stats.sampling_rate / 2 fc21 = fny - (fny * thi[0] / 100.) fc22 = fny - (fny * thi[1] / 100.) - return (tlow[0], tlow[1], fc21, fc22) + return tlow[0], tlow[1], fc21, fc22 if __name__ == "__main__": diff --git a/pylot/core/util/defaults.py b/pylot/core/util/defaults.py index de3249fe..04ae60a4 100644 --- a/pylot/core/util/defaults.py +++ b/pylot/core/util/defaults.py @@ -16,7 +16,6 @@ from pylot.core.loc import hyposat from pylot.core.loc import nll from pylot.core.loc import velest - # determine system dependent path separator system_name = platform.system() if system_name in ["Linux", "Darwin"]: @@ -42,54 +41,3 @@ OUTPUTFORMATS = {'.xml': 'QUAKEML', LOCTOOLS = dict(nll=nll, hyposat=hyposat, velest=velest, hypo71=hypo71, hypodd=hypodd) -class SetChannelComponents(object): - def __init__(self): - self.setDefaultCompPosition() - - def setDefaultCompPosition(self): - # default component order - self.compPosition_Map = dict(Z=2, N=1, E=0) - self.compName_Map = {'3': 'Z', - '1': 'N', - '2': 'E'} - - def _getCurrentPosition(self, component): - for key, value in self.compName_Map.items(): - if value == component: - return key, value - errMsg = 'getCurrentPosition: Could not find former position of component {}.'.format(component) - raise ValueError(errMsg) - - def _switch(self, component, component_alter): - # Without switching, multiple definitions of the same alter_comp are possible - old_alter_comp, _ = self._getCurrentPosition(component) - old_comp = self.compName_Map[component_alter] - if not old_alter_comp == component_alter and not old_comp == component: - self.compName_Map[old_alter_comp] = old_comp - print('switch: Automatically switched component {} to {}'.format(old_alter_comp, old_comp)) - - def setCompPosition(self, component_alter, component, switch=True): - component_alter = str(component_alter) - if not component_alter in self.compName_Map.keys(): - errMsg = 'setCompPosition: Unrecognized alternative component {}. Expecting one of {}.' - raise ValueError(errMsg.format(component_alter, self.compName_Map.keys())) - if not component in self.compPosition_Map.keys(): - errMsg = 'setCompPosition: Unrecognized target component {}. Expecting one of {}.' - raise ValueError(errMsg.format(component, self.compPosition_Map.keys())) - print('setCompPosition: set component {} to {}'.format(component_alter, component)) - if switch: - self._switch(component, component_alter) - self.compName_Map[component_alter] = component - - def getCompPosition(self, component): - return self._getCurrentPosition(component)[0] - - def getPlotPosition(self, component): - component = str(component) - if component in self.compPosition_Map.keys(): - return self.compPosition_Map[component] - elif component in self.compName_Map.keys(): - return self.compPosition_Map[self.compName_Map[component]] - else: - errMsg = 'getCompPosition: Unrecognized component {}. Expecting one of {} or {}.' - raise ValueError(errMsg.format(component, self.compPosition_Map.keys(), self.compName_Map.keys())) diff --git a/pylot/core/util/event.py b/pylot/core/util/event.py index a4f1e9cb..d721a7fe 100644 --- a/pylot/core/util/event.py +++ b/pylot/core/util/event.py @@ -35,6 +35,7 @@ class Event(ObsPyEvent): self._refEvent = False self.get_notes() self.get_obspy_event_info() + self.dirty = False def get_notes_path(self): """ @@ -143,6 +144,7 @@ class Event(ObsPyEvent): for index, pick in reversed(list(enumerate(self.picks))): if picktype in str(pick.method_id): self.picks.pop(index) + self.dirty = True def addPicks(self, picks): """ @@ -157,12 +159,12 @@ class Event(ObsPyEvent): # add ObsPy picks (clear old manual and copy all new manual from pylot) self.clearObsPyPicks('manual') self.picks += picks_from_picksdict(self.pylot_picks) + self.dirty = True def addAutopicks(self, autopicks): """ Add automatic picks to event :param autopicks: automatic picks to add to event - :type autopicks dict: :return: :rtype: None """ @@ -171,6 +173,7 @@ class Event(ObsPyEvent): # add ObsPy picks (clear old auto and copy all new auto from pylot) self.clearObsPyPicks('auto') self.picks += picks_from_picksdict(self.pylot_autopicks) + self.dirty = True def setPick(self, station, pick): """ @@ -186,11 +189,13 @@ class Event(ObsPyEvent): self.pylot_picks[station] = pick else: try: - self.pylot_picks.pop(station) + if station in self.pylot_picks: + self.pylot_picks.pop(station) except Exception as e: print('Could not remove pick {} from station {}: {}'.format(pick, station, e)) self.clearObsPyPicks('manual') self.picks += picks_from_picksdict(self.pylot_picks) + self.dirty = True def setPicks(self, picks): """ @@ -203,6 +208,7 @@ class Event(ObsPyEvent): self.pylot_picks = picks self.clearObsPyPicks('manual') self.picks += picks_from_picksdict(self.pylot_picks) + self.dirty = True def getPick(self, station): """ @@ -237,11 +243,13 @@ class Event(ObsPyEvent): self.pylot_autopicks[station] = pick else: try: - self.pylot_autopicks.pop(station) + if station in self.pylot_autopicks: + self.pylot_autopicks.pop(station) except Exception as e: print('Could not remove pick {} from station {}: {}'.format(pick, station, e)) self.clearObsPyPicks('auto') self.picks += picks_from_picksdict(self.pylot_autopicks) + self.dirty = True def setAutopicks(self, picks): """ @@ -254,6 +262,7 @@ class Event(ObsPyEvent): self.pylot_autopicks = picks self.clearObsPyPicks('auto') self.picks += picks_from_picksdict(self.pylot_autopicks) + self.dirty = True def getAutopick(self, station): """ @@ -292,6 +301,7 @@ class Event(ObsPyEvent): try: outfile = open(filename, 'wb') cPickle.dump(self, outfile, -1) + self.dirty = False except Exception as e: print('Could not pickle PyLoT event. Reason: {}'.format(e)) @@ -310,5 +320,6 @@ class Event(ObsPyEvent): import _pickle as cPickle infile = open(filename, 'rb') event = cPickle.load(infile) + event.dirty = False print('Loaded %s' % filename) return event diff --git a/pylot/core/util/obspyDMT_interface.py b/pylot/core/util/obspyDMT_interface.py index 47d5c687..b0587d13 100644 --- a/pylot/core/util/obspyDMT_interface.py +++ b/pylot/core/util/obspyDMT_interface.py @@ -4,6 +4,7 @@ import os from obspy import UTCDateTime + def check_obspydmt_structure(path): ''' Check path for obspyDMT event structure. @@ -16,6 +17,7 @@ def check_obspydmt_structure(path): return True return False + def check_obspydmt_eventfolder(folder): try: time = folder.split('.')[0] @@ -25,6 +27,7 @@ def check_obspydmt_eventfolder(folder): except Exception as e: return False, e + def qml_from_obspyDMT(path): import pickle from obspy.core.event import Event, Magnitude, Origin @@ -41,4 +44,3 @@ def qml_from_obspyDMT(path): ev.magnitudes.append(mag) ev.origins.append(origin) return ev - diff --git a/pylot/core/util/thread.py b/pylot/core/util/thread.py index 0a8151d0..17f54c12 100644 --- a/pylot/core/util/thread.py +++ b/pylot/core/util/thread.py @@ -33,31 +33,21 @@ class Thread(QThread): self._executed = False self._executedError = e traceback.print_exc() - exctype, value = sys.exc_info ()[:2] - self._executedErrorInfo = '{} {} {}'.\ + exctype, value = sys.exc_info()[:2] + self._executedErrorInfo = '{} {} {}'. \ format(exctype, value, traceback.format_exc()) sys.stdout = sys.__stdout__ def showProgressbar(self): if self.progressText: - # generate widget if not given in init - if not self.pb_widget: - self.pb_widget = QDialog(self.parent()) - self.pb_widget.setWindowFlags(Qt.SplashScreen) - self.pb_widget.setModal(True) + # # generate widget if not given in init + # if not self.pb_widget: + # self.pb_widget = ProgressBarWidget(self.parent()) + # self.pb_widget.setWindowFlags(Qt.SplashScreen) + # self.pb_widget.setModal(True) - # add button - delete_button = QPushButton('X') - delete_button.clicked.connect(self.exit) - hl = QHBoxLayout() - pb = QProgressBar() - pb.setRange(0, 0) - hl.addWidget(pb) - hl.addWidget(QLabel(self.progressText)) - if self.abortButton: - hl.addWidget(delete_button) - self.pb_widget.setLayout(hl) + self.pb_widget.label.setText(self.progressText) self.pb_widget.show() def hideProgressbar(self): @@ -75,6 +65,7 @@ class Worker(QRunnable): ''' Worker class to be run by MultiThread(QThread). ''' + def __init__(self, fun, args, progressText=None, pb_widget=None, @@ -82,7 +73,7 @@ class Worker(QRunnable): super(Worker, self).__init__() self.fun = fun self.args = args - #self.kwargs = kwargs + # self.kwargs = kwargs self.signals = WorkerSignals() self.progressText = progressText self.pb_widget = pb_widget @@ -96,9 +87,9 @@ class Worker(QRunnable): try: result = self.fun(self.args) except: - exctype, value = sys.exc_info ()[:2] + exctype, value = sys.exc_info()[:2] print(exctype, value, traceback.format_exc()) - self.signals.error.emit ((exctype, value, traceback.format_exc ())) + self.signals.error.emit((exctype, value, traceback.format_exc())) else: self.signals.result.emit(result) finally: @@ -140,13 +131,13 @@ class MultiThread(QThread): def run(self): if self.redirect_stdout: - sys.stdout = self + sys.stdout = self try: if not self.ncores: self.ncores = multiprocessing.cpu_count() pool = multiprocessing.Pool(self.ncores) self.data = pool.map_async(self.func, self.args, callback=self.emitDone) - #self.data = pool.apply_async(self.func, self.shotlist, callback=self.emitDone) #emit each time returned + # self.data = pool.apply_async(self.func, self.shotlist, callback=self.emitDone) #emit each time returned pool.close() self._executed = True except Exception as e: diff --git a/pylot/core/util/utils.py b/pylot/core/util/utils.py index 109d6270..0183f5e4 100644 --- a/pylot/core/util/utils.py +++ b/pylot/core/util/utils.py @@ -22,11 +22,7 @@ from pylot.styles import style_settings from scipy.interpolate import splrep, splev from PySide import QtCore, QtGui -try: - import pyqtgraph as pg -except Exception as e: - print('PyLoT: Could not import pyqtgraph. {}'.format(e)) - pg = None +import pyqtgraph as pg def _pickle_method(m): if m.im_self is None: @@ -34,6 +30,7 @@ def _pickle_method(m): else: return getattr, (m.im_self, m.im_func.func_name) + def getAutoFilteroptions(phase, parameter): filtername = {'P': 'bpz2', 'S': 'bph2'} @@ -41,9 +38,10 @@ def getAutoFilteroptions(phase, parameter): print('autoPickParameter: No filter options for phase {}.'.format(phase)) return freqmin, freqmax = parameter.get(filtername[phase]) - filteroptions = FilterOptions(type='bandpass', freq=[freqmin, freqmax], order=4) # order=4 default from obspy + filteroptions = FilterOptions(type='bandpass', freq=[freqmin, freqmax], order=4) # order=4 default from obspy return filteroptions + def readDefaultFilterInformation(fname): """ Read default filter information from pylot.in file @@ -118,8 +116,12 @@ def gen_Pool(ncores=0): """ import multiprocessing - if ncores == 0: - ncores = multiprocessing.cpu_count() + ncores_max = multiprocessing.cpu_count() + + if ncores == 0 or ncores > ncores_max: + ncores = ncores_max + if ncores > ncores_max: + print('Reduced number of requested CPU slots to available number: {}'.format(ncores)) print('gen_Pool: Generated multiprocessing Pool with {} cores\n'.format(ncores)) @@ -397,6 +399,10 @@ def full_range(stream): :return: minimum start time and maximum end time :rtype: (`~maximum start time and minimum end time`, maximum start time and minimum end time) """ + if not stream: + print('full_range: Empty Stream!') + return None, None + min_start = min([trace.stats.starttime for trace in stream]) max_end = max([trace.stats.endtime for trace in stream]) @@ -537,7 +543,7 @@ def isSorted(iterable): False """ assert isIterable(iterable), 'object is not iterable; object: {' \ - '0}'.format(iterable) + '}'.format(iterable) if type(iterable) is str: iterable = [s for s in iterable] return sorted(iterable) == iterable @@ -675,7 +681,7 @@ def pick_color(picktype, phase, quality=0): bpc = base_phase_colors(picktype, phase) # returns dict like {'modifier': 'g', 'rgba': (0, 0, 255, 255)} rgba = bpc['rgba'] modifier = bpc['modifier'] - intensity = 255.*quality/min_quality + intensity = 255. * quality / min_quality rgba = modify_rgba(rgba, modifier, intensity) return rgba @@ -787,6 +793,7 @@ def base_phase_colors(picktype, phase): phasecolors = style_settings.phasecolors return phasecolors[picktype][phase] + def transform_colors_mpl_str(colors, no_alpha=False): """ Transforms rgba color values to a matplotlib string of color values with a range of [0, 1] @@ -805,6 +812,7 @@ def transform_colors_mpl_str(colors, no_alpha=False): colors_mpl = '({}, {}, {}, {})'.format(*colors_mpl) return colors_mpl + def transform_colors_mpl(colors): """ Transform rgba colors from [0, 255] to [0, 1] @@ -817,6 +825,7 @@ def transform_colors_mpl(colors): colors_mpl = tuple([color / 255. for color in colors]) return colors_mpl + def remove_underscores(data): """ takes a `obspy.core.stream.Stream` object and removes all underscores @@ -826,9 +835,9 @@ def remove_underscores(data): :return: data stream :rtype: `~obspy.core.stream.Stream` """ - for tr in data: - # remove underscores - tr.stats.station = tr.stats.station.strip('_') + #for tr in data: + # # remove underscores + # tr.stats.station = tr.stats.station.strip('_') return data @@ -926,7 +935,10 @@ def get_stations(data): def check4rotated(data, metadata=None, verbosity=1): """ - + Check all traces in data. If a trace is not in ZNE rotation (last symbol of channel code is numeric) and the trace + is in the metadata with azimuth and dip, rotate it to classical ZNE orientation. + Rotating the traces requires them to be of the same length, so, all traces will be trimmed to a common length as a + side effect. :param data: stream object containing seismic traces :type data: `~obspy.core.stream.Stream` :param metadata: tuple containing metadata type string and metadata parser object @@ -943,100 +955,59 @@ def check4rotated(data, metadata=None, verbosity=1): Azimut and dip are fetched from metadata. To be rotated, traces of a station have to be cut to the same length. Returns unrotated traces of no metadata is provided - :param wfstream: stream containing seismic traces + :param wfstream: stream containing seismic traces of a station :type wfstream: `~obspy.core.stream.Stream` :param metadata: tuple containing metadata type string and metadata parser object :type metadata: (str, `~obspy.io.xseed.parser.Parser`) :return: stream object with traditionally oriented traces (ZNE) :rtype: `~obspy.core.stream.Stream` """ - try: - # indexing fails if metadata is None - metadata[0] - except TypeError: - if verbosity: - msg = 'Warning: could not rotate traces since no metadata was given\nset Inventory file!' - print(msg) - return wfstream - if metadata[0] is None: - # sometimes metadata is (None, (None,)) - if verbosity: - msg = 'Warning: could not rotate traces since no metadata was given\nCheck inventory directory!' - print(msg) - return wfstream - else: - parser = metadata[1] - - def get_dip_azimut(parser, trace_id): - """ - Gets azimuth and dip by trace id out of the metadata parser - :param parser: metadata parser object - :type parser: `~obspy.io.xseed.parser.Parser` - :param trace_id: eg. 'BW.RJOB..EHZ', - :type trace_id: str - :return: tuple containing dip and azimuth of the trace corresponding to trace_id - :rtype: (float, float) - """ - dip = None - azimut = None - try: - blockettes = parser._select(trace_id) - except SEEDParserException as e: - print(e) - raise ValueError - for blockette_ in blockettes: - if blockette_.id != 52: - continue - dip = blockette_.dip - azimut = blockette_.azimuth - break - if (dip is None or azimut is None) or (dip == 0 and azimut == 0): - error_msg = 'Dip and azimuth not available for trace_id {}'.format(trace_id) - raise ValueError(error_msg) - return dip, azimut + # check if any traces in this station need to be rotated trace_ids = [trace.id for trace in wfstream] - for trace_id in trace_ids: - orientation = trace_id[-1] # last letter if trace id is orientation code, ZNE or 123 - if orientation.isnumeric(): - # misaligned channels have a number as orientation - azimuts = [] - dips = [] - for trace_id in trace_ids: - try: - dip, azimut = get_dip_azimut(parser, trace_id) - except ValueError as e: - print(e) - print('Failed to rotate station {}, no azimuth or dip available in metadata'.format(trace_id)) - return wfstream - azimuts.append(azimut) - dips.append(dip) - # to rotate all traces must have same length - wfstream = trim_station_components(wfstream, trim_start=True, trim_end=True) - z, n, e = rotate2zne(wfstream[0], azimuts[0], dips[0], - wfstream[1], azimuts[1], dips[1], - wfstream[2], azimuts[2], dips[2]) - print('check4rotated: rotated station {} to ZNE'.format(trace_id)) - z_index = dips.index(min(dips)) # get z-trace index (dip is measured from 0 to -90) - wfstream[z_index].data = z - wfstream[z_index].stats.channel = wfstream[z_index].stats.channel[0:-1] + 'Z' - del trace_ids[z_index] - for trace_id in trace_ids: - dip, az = get_dip_azimut(parser, trace_id) - trace = wfstream.select(id=trace_id)[0] - if az > 315 or az <= 45 or az > 135 and az <= 225: - trace.data = n - trace.stats.channel = trace.stats.channel[0:-1] + 'N' - elif az > 45 and az <= 135 or az > 225 and az <= 315: - trace.data = e - trace.stats.channel = trace.stats.channel[0:-1] + 'E' - break - else: - continue + orientations = [trace_id[-1] for trace_id in trace_ids] + rotation_required = [orientation.isnumeric() for orientation in orientations] + if any(rotation_required): + t_start = full_range(wfstream) + try: + azimuts = [metadata.get_coordinates(tr_id, t_start)['azimuth'] for tr_id in trace_ids] + dips = [metadata.get_coordinates(tr_id, t_start)['dip'] for tr_id in trace_ids] + except (KeyError, TypeError) as e: + print('Failed to rotate trace {}, no azimuth or dip available in metadata'.format(trace_id)) + return wfstream + if len(wfstream) < 3: + print('Failed to rotate Stream {}, not enough components available.'.format(wfstream)) + return wfstream + # to rotate all traces must have same length, so trim them + wfstream = trim_station_components(wfstream, trim_start=True, trim_end=True) + z, n, e = rotate2zne(wfstream[0], azimuts[0], dips[0], + wfstream[1], azimuts[1], dips[1], + wfstream[2], azimuts[2], dips[2]) + print('check4rotated: rotated trace {} to ZNE'.format(trace_id)) + # replace old data with rotated data, change the channel code to ZNE + z_index = dips.index(min( + dips)) # get z-trace index, z has minimum dip of -90 (dip is measured from 0 to -90, with -90 being vertical) + wfstream[z_index].data = z + wfstream[z_index].stats.channel = wfstream[z_index].stats.channel[0:-1] + 'Z' + del trace_ids[z_index] + for trace_id in trace_ids: + coordinates = metadata.get_coordinates(trace_id, t_start) + dip, az = coordinates['dip'], coordinates['azimuth'] + trace = wfstream.select(id=trace_id)[0] + if az > 315 or az <= 45 or az > 135 and az <= 225: + trace.data = n + trace.stats.channel = trace.stats.channel[0:-1] + 'N' + elif az > 45 and az <= 135 or az > 225 and az <= 315: + trace.data = e + trace.stats.channel = trace.stats.channel[0:-1] + 'E' return wfstream + if metadata is None: + if verbosity: + msg = 'Warning: could not rotate traces since no metadata was given\nset Inventory file!' + print(msg) + return data stations = get_stations(data) - for station in stations: # loop through all stations and rotate data if neccessary wf_station = data.select(station=station) rotate_components(wf_station, metadata) @@ -1149,7 +1120,7 @@ def loopIdentifyPhase(phase): """ from pylot.core.util.defaults import ALTSUFFIX - if phase == None: + if phase is None: raise NameError('Can not identify phase that is None') phase_copy = phase @@ -1199,20 +1170,6 @@ def identifyPhaseID(phase): return identifyPhase(loopIdentifyPhase(phase)) -def has_spe(pick): - """ - Check for 'spe' key (symmetric picking error) in dict and return its value if found, else return None - :param pick: pick dictionary - :type pick: dict - :return: value of 'spe' key - :rtype: float or None - """ - if not 'spe' in pick.keys(): - return None - else: - return pick['spe'] - - def check_all_obspy(eventlist): ev_type = 'obspydmt' return check_event_folders(eventlist, ev_type) @@ -1245,8 +1202,8 @@ def check_event_folder(path): folder = path.split('/')[-1] # for pylot: select only folders that start with 'e', containin two dots and have length 12 if (folder.startswith('e') - and len(folder.split('.')) == 3 - and len(folder) == 12): + and len(folder.split('.')) == 3 + and len(folder) == 12): ev_type = 'pylot' elif check_obspydmt_eventfolder(folder)[0]: ev_type = 'obspydmt' @@ -1276,3 +1233,56 @@ if __name__ == "__main__": import doctest doctest.testmod() + + +class SetChannelComponents(object): + def __init__(self): + self.setDefaultCompPosition() + + def setDefaultCompPosition(self): + # default component order + self.compPosition_Map = dict(Z=2, N=1, E=0) + self.compName_Map = {'3': 'Z', + '1': 'N', + '2': 'E'} + + def _getCurrentPosition(self, component): + for key, value in self.compName_Map.items(): + if value == component: + return key, value + errMsg = 'getCurrentPosition: Could not find former position of component {}.'.format(component) + raise ValueError(errMsg) + + def _switch(self, component, component_alter): + # Without switching, multiple definitions of the same alter_comp are possible + old_alter_comp, _ = self._getCurrentPosition(component) + old_comp = self.compName_Map[component_alter] + if not old_alter_comp == component_alter and not old_comp == component: + self.compName_Map[old_alter_comp] = old_comp + print('switch: Automatically switched component {} to {}'.format(old_alter_comp, old_comp)) + + def setCompPosition(self, component_alter, component, switch=True): + component_alter = str(component_alter) + if not component_alter in self.compName_Map.keys(): + errMsg = 'setCompPosition: Unrecognized alternative component {}. Expecting one of {}.' + raise ValueError(errMsg.format(component_alter, self.compName_Map.keys())) + if not component in self.compPosition_Map.keys(): + errMsg = 'setCompPosition: Unrecognized target component {}. Expecting one of {}.' + raise ValueError(errMsg.format(component, self.compPosition_Map.keys())) + print('setCompPosition: set component {} to {}'.format(component_alter, component)) + if switch: + self._switch(component, component_alter) + self.compName_Map[component_alter] = component + + def getCompPosition(self, component): + return self._getCurrentPosition(component)[0] + + def getPlotPosition(self, component): + component = str(component) + if component in self.compPosition_Map.keys(): + return self.compPosition_Map[component] + elif component in self.compName_Map.keys(): + return self.compPosition_Map[self.compName_Map[component]] + else: + errMsg = 'getCompPosition: Unrecognized component {}. Expecting one of {} or {}.' + raise ValueError(errMsg.format(component, self.compPosition_Map.keys(), self.compName_Map.keys())) \ No newline at end of file diff --git a/pylot/core/util/widgets.py b/pylot/core/util/widgets.py index 22db82d1..989b6df3 100644 --- a/pylot/core/util/widgets.py +++ b/pylot/core/util/widgets.py @@ -17,6 +17,7 @@ import time import numpy as np import matplotlib + matplotlib.use('QT4Agg') from matplotlib.figure import Figure @@ -48,15 +49,15 @@ from pylot.core.io.inputs import FilterOptions, PylotParameter from pylot.core.pick.utils import getSNR, earllatepicker, getnoisewin, \ getResolutionWindow, get_quality_class from pylot.core.pick.compare import Comparison -from pylot.core.util.defaults import OUTPUTFORMATS, FILTERDEFAULTS, \ - SetChannelComponents +from pylot.core.util.defaults import OUTPUTFORMATS, FILTERDEFAULTS from pylot.core.util.utils import prepTimeAxis, full_range, scaleWFData, \ demeanTrace, isSorted, findComboBoxIndex, clims, pick_linestyle_plt, pick_color_plt, \ check4rotated, check4doubled, check4gaps, remove_underscores, find_horizontals, identifyPhase, \ loopIdentifyPhase, trim_station_components, transformFilteroptions2String, \ - identifyPhaseID, real_Bool, pick_color, getAutoFilteroptions + identifyPhaseID, real_Bool, pick_color, getAutoFilteroptions, SetChannelComponents from autoPyLoT import autoPyLoT from pylot.core.util.thread import Thread +from pylot.core.util.dataprocessing import Metadata if sys.version_info.major == 3: import icons_rc_3 as icons_rc @@ -118,6 +119,139 @@ def createAction(parent, text, slot=None, shortcut=None, icon=None, return action +class ProgressBarWidget(QtGui.QWidget): + def __init__(self, parent=None): + super(ProgressBarWidget, self).__init__(parent) + self.hlayout = QtGui.QHBoxLayout() + self.pb = QtGui.QProgressBar() + self.pb.setRange(0, 0) + self.label = QLabel() + self.hlayout.addWidget(self.pb) + self.hlayout.addWidget(self.label) + self.setLayout(self.hlayout) + self.hide() + + +class AddMetadataWidget(QWidget): + def __init__(self, parent=None, metadata=None, windowflag=1): + super(AddMetadataWidget, self).__init__(parent, windowflag) + self.inventories = {} + + self.main_layout = QVBoxLayout() + self.setLayout(self.main_layout) + self.setupUI() + self.connect_signals() + self.resize(600, 800) + + self.metadata = metadata if metadata else Metadata() + self.from_metadata() + + self.center() + self.show() + #self.__test__() + + def __test__(self): + self.add_item(r'/rscratch/minos14/marcel/git/pylot/tests') + self.add_item(r'/rscratch/minos14/marcel/git/pylot/inputs') + self.add_item(r'/rscratch/minos14/marcel/git/pylot/pylot') + self.add_item(r'/rscratch/minos14/marcel/git/pylot/pylot_not_existing') + + def center(self): + fm = self.frameGeometry() + screen = QtGui.QApplication.desktop().screenNumber(QtGui.QApplication.desktop().cursor().pos()) + centerPoint = QtGui.QApplication.desktop().screenGeometry(screen).center() + fm.moveCenter(centerPoint) + self.move(fm.topLeft()) + + def setupUI(self): + self.init_selection_layout() + self.init_add_remove_layout() + self.init_list_widget() + self.init_close() + + def init_selection_layout(self): + self.selection_layout = QHBoxLayout() + self.selection_box = QtGui.QLineEdit() + self.selection_button = QtGui.QPushButton('...') + self.selection_layout.addWidget(self.selection_box, 1) + self.selection_layout.addWidget(self.selection_button, 0) + self.main_layout.insertLayout(0, self.selection_layout, 0) + + def init_add_remove_layout(self): + self.add_remove_layout = QHBoxLayout() + self.add_button = QtGui.QPushButton('+') + self.add_button.setShortcut(QtGui.QKeySequence(QtCore.Qt.Key_Return)) + self.remove_button = QtGui.QPushButton('-') + self.remove_button.setShortcut(QtGui.QKeySequence(QtCore.Qt.Key_Delete)) + self.add_remove_layout.addWidget(self.add_button, 1) + self.add_remove_layout.addWidget(self.remove_button, 1) + self.main_layout.insertLayout(1, self.add_remove_layout, 0) + + def init_list_widget(self): + self.list_view = QtGui.QListView() + self.list_view.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) + self.list_model = QtGui.QStandardItemModel(self.list_view) + self.list_view.setModel(self.list_model) + self.main_layout.insertWidget(2, self.list_view, 1) + + def init_close(self): + self.close_button = QPushButton('Update') + self.close_button.setShortcut(QtGui.QKeySequence(QtCore.Qt.Key_Escape)) + self.main_layout.addWidget(self.close_button) + + def from_metadata(self): + for inventory_path in self.metadata.inventories: + self.add_item(inventory_path, from_metadata=True) + + def refresh_list(self): + self.clear_list() + for inventory_path in self.inventories.keys(): + self.add_item(inventory_path) + + def connect_signals(self): + self.selection_button.clicked.connect(self.open_directory) + self.add_button.clicked.connect(self.add_item_from_box) + self.remove_button.clicked.connect(self.remove_item) + self.close_button.clicked.connect(self.hide) + + def open_directory(self): + fninv = QFileDialog.getExistingDirectory(self, self.tr( + "Select inventory..."), self.tr("Select folder")) + if not fninv: + return + self.selection_box.setText(fninv) + + def add_item_from_box(self): + inventory_path = self.selection_box.text() + self.add_item(inventory_path) + self.selection_box.setText('') + + def add_item(self, inventory_path, from_metadata=False): + if not inventory_path: + return + if inventory_path in self.inventories.keys(): + QMessageBox.warning(self, 'Info', 'Path already in list!') + return + if not os.path.isdir(inventory_path): + QMessageBox.warning(self, 'Warning', 'Path is no directory!') + return + item = QtGui.QStandardItem(inventory_path) + item.setEditable(False) + self.inventories[inventory_path] = item + self.list_model.appendRow(item) + + if not from_metadata: + self.metadata.add_inventory(inventory_path) + + def remove_item(self): + for index in reversed(self.list_view.selectionModel().selectedIndexes()): + item = self.list_model.itemData(index) + inventory_path = item[0] + del (self.inventories[inventory_path]) + self.metadata.remove_inventory(inventory_path) + self.list_model.removeRow(index.row()) + + class ComparisonWidget(QWidget): def __init__(self, c, parent=None, windowflag=1): self._data = c @@ -132,6 +266,14 @@ class ComparisonWidget(QWidget): self.setupUI() self.resize(1280, 720) self.plotcomparison() + self.center() + + def center(self): + fm = self.frameGeometry() + screen = QtGui.QApplication.desktop().screenNumber(QtGui.QApplication.desktop().cursor().pos()) + centerPoint = QtGui.QApplication.desktop().screenGeometry(screen).center() + fm.moveCenter(centerPoint) + self.move(fm.topLeft()) def setupUI(self): @@ -242,7 +384,8 @@ class ComparisonWidget(QWidget): def clf(self): self.canvas.figure.clf() - def hasvalue(self, sender): + @staticmethod + def hasvalue(sender): text = sender.currentText() index = sender.findText(text.upper()) return index @@ -380,8 +523,8 @@ class ComparisonWidget(QWidget): ax = axes_dict[phase]['exp'] xlims = ax.get_xlim() ylims = ax.get_ylim() - #ax.fill_between([xlims[0], 0], ylims[0], ylims[1], color=(0.9, 1.0, 0.9, 0.5), label='earlier than manual') - #ax.fill_between([0, xlims[1]], ylims[0], ylims[1], color=(1.0, 0.9, 0.9, 0.5), label='later than manual') + # ax.fill_between([xlims[0], 0], ylims[0], ylims[1], color=(0.9, 1.0, 0.9, 0.5), label='earlier than manual') + # ax.fill_between([0, xlims[1]], ylims[0], ylims[1], color=(1.0, 0.9, 0.9, 0.5), label='later than manual') legend = ax.legend() legend.draggable() @@ -473,7 +616,7 @@ class WaveformWidgetPG(QtGui.QWidget): self.pen_linecolor_syn = self.pg.mkPen((100, 0, 255, 255)) self.reinitMoveProxy() self._proxy = self.pg.SignalProxy(self.plotWidget.scene().sigMouseMoved, rateLimit=60, slot=self.mouseMoved) - #self.plotWidget.getPlotItem().setDownsampling(auto=True) + # self.plotWidget.getPlotItem().setDownsampling(auto=True) def reinitMoveProxy(self): self.vLine = self.pg.InfiniteLine(angle=90, movable=False, pen=self.pen_multicursor) @@ -503,8 +646,17 @@ class WaveformWidgetPG(QtGui.QWidget): self.label_layout.addWidget(self.status_label) for label in self.perm_labels: self.label_layout.addWidget(label) - self.label_layout.addWidget(self.syn_checkbox) - self.label_layout.addWidget(self.qcombo_processed) + mid_widget = QWidget() + right_widget = QWidget() + # use widgets as placeholder, so that child widgets keep position when others are hidden + mid_layout = QHBoxLayout() + right_layout = QHBoxLayout() + mid_layout.addWidget(self.syn_checkbox) + right_layout.addWidget(self.qcombo_processed) + mid_widget.setLayout(mid_layout) + right_widget.setLayout(right_layout) + self.label_layout.addWidget(mid_widget) + self.label_layout.addWidget(right_widget) self.syn_checkbox.setLayoutDirection(Qt.RightToLeft) self.label_layout.setStretch(0, 4) self.label_layout.setStretch(1, 0) @@ -523,7 +675,7 @@ class WaveformWidgetPG(QtGui.QWidget): self.syn_checkbox = QtGui.QCheckBox('synthetics') self.addQCboxItem('processed', 'green') self.addQCboxItem('raw', 'black') - #self.perm_qcbox_right.setAlignment(2) + # self.perm_qcbox_right.setAlignment(2) self.setLayout(self.main_layout) def getPlotDict(self): @@ -607,7 +759,7 @@ class WaveformWidgetPG(QtGui.QWidget): print('Warning: Could not set zoom limits') for n, (network, station, channel) in enumerate(nsc): - n+=1 + n += 1 st = st_select.select(network=network, station=station, channel=channel) trace = st[0].copy() st_syn = wfsyn.select(network=network, station=station, channel=channel) @@ -644,10 +796,11 @@ class WaveformWidgetPG(QtGui.QWidget): trace_syn.normalize(np.max(np.abs(trace_syn.data)) * 2) # TODO: change this to numpy operations instead of lists? times = np.array([time for index, time in enumerate(time_ax) if not index % nth_sample]) - times_syn = np.array([time for index, time in enumerate(time_ax_syn) if not index % nth_sample] if st_syn else []) + times_syn = np.array( + [time for index, time in enumerate(time_ax_syn) if not index % nth_sample] if st_syn else []) trace.data = np.array([datum + n for index, datum in enumerate(trace.data) if not index % nth_sample]) trace_syn.data = np.array([datum + n for index, datum in enumerate(trace_syn.data) - if not index % nth_sample] if st_syn else []) + if not index % nth_sample] if st_syn else []) plots.append((times, trace.data, times_syn, trace_syn.data)) self.setPlotDict(n, (station, channel, network)) @@ -664,11 +817,11 @@ class WaveformWidgetPG(QtGui.QWidget): ''' npixel = self.orig_parent.width() ndata = len(trace.data) - pts_per_pixel = ndata/npixel + pts_per_pixel = ndata / npixel if pts_per_pixel < 2: return trace.data, time_ax - remaining_samples = ndata%pts_per_pixel - npixel = ndata//pts_per_pixel + remaining_samples = ndata % pts_per_pixel + npixel = ndata // pts_per_pixel if remaining_samples: data = trace.data[:-remaining_samples] else: @@ -848,7 +1001,7 @@ class PylotCanvas(FigureCanvas): break if not ax_check: return - #self.updateCurrentLimits() #maybe put this down to else: + # self.updateCurrentLimits() #maybe put this down to else: # calculate delta (relative values in axis) old_x, old_y = self.press_rel @@ -873,6 +1026,7 @@ class PylotCanvas(FigureCanvas): new_ylim = self.calcPanZoom(self.ypress, y_bot, y_top, factor, (ydiff > 0)) self.setYLims(ax, new_ylim) + self.refreshPickDlgText() self.draw() def set_frame_color(self, color='k'): @@ -895,18 +1049,19 @@ class PylotCanvas(FigureCanvas): fname += '.png' self.figure.savefig(fname) - def calcPanZoom(self, origin, lower_b, upper_b, factor, positive): + @staticmethod + def calcPanZoom(origin, lower_b, upper_b, factor, positive): d_lower = abs(origin - lower_b) d_upper = abs(origin - upper_b) if positive: - d_lower *= 1 - 1/factor - d_upper *= 1 - 1/factor + d_lower *= 1 - 1 / factor + d_upper *= 1 - 1 / factor lower_b += d_lower upper_b -= d_upper else: - d_lower /= 1 + 1/factor - d_upper /= 1 + 1/factor + d_lower /= 1 + 1 / factor + d_upper /= 1 + 1 / factor lower_b -= d_lower upper_b += d_upper @@ -1029,7 +1184,8 @@ class PylotCanvas(FigureCanvas): def clearPlotDict(self): self.plotdict = dict() - def calcPlotPositions(self, wfdata, compclass): + @staticmethod + def calcPlotPositions(wfdata, compclass): possible_plot_pos = list(range(len(wfdata))) plot_positions = {} for trace in wfdata: @@ -1130,9 +1286,9 @@ class PylotCanvas(FigureCanvas): if noiselevel is not None: for level in [-noiselevel[channel], noiselevel[channel]]: ax.plot([time_ax[0], time_ax[-1]], - [n+level, n+level], - color = linecolor, - linestyle = 'dashed') + [n + level, n + level], + color=linecolor, + linestyle='dashed') self.setPlotDict(n, (station, channel, network)) if plot_additional and additional_channel: compare_stream = wfdata.select(channel=additional_channel) @@ -1173,16 +1329,20 @@ class PylotCanvas(FigureCanvas): self.setYLims(ax, zoomy) self.draw() - def getXLims(self, ax): + @staticmethod + def getXLims(ax): return ax.get_xlim() - def getYLims(self, ax): + @staticmethod + def getYLims(ax): return ax.get_ylim() - def setXLims(self, ax, lims): + @staticmethod + def setXLims(ax, lims): ax.set_xlim(lims) - def setYLims(self, ax, lims): + @staticmethod + def setYLims(ax, lims): ax.set_ylim(lims) def setYTickLabels(self, pos, labels): @@ -1210,7 +1370,7 @@ class PylotCanvas(FigureCanvas): def insertLabel(self, pos, text): pos = pos / max(self.axes[0].ylim) axann = self.axes[0].annotate(text, xy=(.03, pos), - xycoords='axes fraction') + xycoords='axes fraction') axann.set_bbox(dict(facecolor='lightgrey', alpha=.6)) def setZoomBorders2content(self): @@ -1298,7 +1458,8 @@ class PhaseDefaults(QtGui.QDialog): checkbox.setChecked(bool(phase in self.current_phases)) row += 1 - def create_phase_box(self, phase_name): + @staticmethod + def create_phase_box(phase_name): checkbox = QtGui.QCheckBox(phase_name) return checkbox @@ -1433,7 +1594,6 @@ class PickDlg(QDialog): self.multicompfig.draw() self.multicompfig.setFocus() - # set plot labels self.setPlotLabels() @@ -1459,7 +1619,6 @@ class PickDlg(QDialog): self.setWindowTitle('Pickwindow on station: {}'.format(self.getStation())) self.setWindowState(QtCore.Qt.WindowMaximized) - def setupUi(self): menuBar = QtGui.QMenuBar(self) if not self._embedded: @@ -1504,11 +1663,11 @@ class PickDlg(QDialog): checkable=True, shortcut='S') self.autoFilterAction = createAction(parent=self, text='Automatic Filtering', - slot=self.toggleAutoFilter, - icon=key_a_icon, - tip='Filter automatically before initial pick', - checkable=True, - shortcut='Ctrl+A') + slot=self.toggleAutoFilter, + icon=key_a_icon, + tip='Filter automatically before initial pick', + checkable=True, + shortcut='Ctrl+A') self.zoomAction = createAction(parent=self, text='Zoom', slot=self.zoom, icon=zoom_icon, tip='Zoom into waveform', @@ -1596,8 +1755,8 @@ class PickDlg(QDialog): _dialtoolbar.addSeparator() est_label = QLabel('Estimated onsets:') est_label.setStyleSheet('QLabel {' - 'padding:2px;' - 'padding-left:5px}') + 'padding:2px;' + 'padding-left:5px}') _dialtoolbar.addWidget(est_label) _dialtoolbar.addWidget(self.plot_arrivals_button) _dialtoolbar.addSeparator() @@ -1683,9 +1842,10 @@ class PickDlg(QDialog): func = {True: self.model.get_ray_paths_geo, False: self.model.get_travel_times_geo} phases = self.prepare_phases() - station_id = self.data.traces[0].get_id() - parser = self.metadata[1] - station_coords = parser.get_coordinates(station_id) + trace = self.data.traces[0] + station_id = trace.get_id() + starttime = trace.stats.starttime + station_coords = self.metadata.get_coordinates(station_id, starttime) origins = self.pylot_event.origins if origins: source_origin = origins[0] @@ -1699,7 +1859,8 @@ class PickDlg(QDialog): phases) self.arrivals = arrivals - def prepare_phases(self): + @staticmethod + def prepare_phases(): settings = QtCore.QSettings() p_phases = settings.value('p_phases') s_phases = settings.value('s_phases') @@ -1796,16 +1957,15 @@ class PickDlg(QDialog): picksMenu.addSeparator() filterOptionsAction = createAction(parent=self, text="&Filter parameter ...", - slot=self.filterOptions, - shortcut='Ctrl+F', - icon=self.orig_parent.filter_icon) + slot=self.filterOptions, + shortcut='Ctrl+F', + icon=self.orig_parent.filter_icon) filterMenu = menuBar.addMenu('Filter') filterMenu.addAction(self.filterActionP) filterMenu.addAction(self.filterActionS) filterMenu.addAction(self.autoFilterAction) filterMenu.addAction(filterOptionsAction) - def filterOptions(self): if self.orig_parent.adjustFilterOptions(): phase = None @@ -1875,7 +2035,8 @@ class PickDlg(QDialog): self.currentPhase = str(self.s_button.text()) self.activatePicking() - def getPhaseID(self, phase): + @staticmethod + def getPhaseID(phase): return identifyPhaseID(phase) def set_button_border_color(self, button, color=None): @@ -1936,14 +2097,14 @@ class PickDlg(QDialog): self.zoomAction.trigger() self.multicompfig.disconnectEvents() self.cidpress = self.multicompfig.connectPressEvent(self.setIniPick) - if not self.filterActionP.isChecked() and not self.filterActionS.isChecked(): - if self.autoFilterAction.isChecked(): - self.filterWFData() - else: - self.draw() + if self.autoFilterAction.isChecked(): + for filteraction in [self.filterActionP, self.filterActionS]: + filteraction.setChecked(False) + self.filterWFData() + self.draw() else: self.draw() - #self.pick_block = self.togglePickBlocker() + # self.pick_block = self.togglePickBlocker() self.disconnect_pick_delete() def deactivatePicking(self): @@ -2087,10 +2248,11 @@ class PickDlg(QDialog): st += data.select(channel=action.text()) return st - def calcNoiseScaleFactor(self, noiselevel, zoomfactor=5., norm=1): + @staticmethod + def calcNoiseScaleFactor(noiselevel, zoomfactor=5., norm=1): # calculate factor to upscale a trace normed to 'norm' in a way that all values # zoomfactor*noiselevel are found within -0.5*norm and 0.5*norm - scaleFactor = (norm/2.) / (zoomfactor * noiselevel) + scaleFactor = (norm / 2.) / (zoomfactor * noiselevel) return scaleFactor def setIniPick(self, gui_event): @@ -2164,7 +2326,7 @@ class PickDlg(QDialog): try: data.detrend('linear') data.filter(**filteroptions) - #wfdata.filter(**filteroptions)# MP MP removed filtering of original data + # wfdata.filter(**filteroptions)# MP MP removed filtering of original data except ValueError as e: self.qmb = QtGui.QMessageBox(QtGui.QMessageBox.Icon.Information, 'Denied', 'setIniPick{}: Could not filter waveform: {}'.format(phase, e)) @@ -2200,7 +2362,7 @@ class PickDlg(QDialog): x_res = getResolutionWindow(np.mean(snr), parameter.get('extent')) xlims = [ini_pick - x_res, ini_pick + x_res] - ylims = list(np.array([-.5, .5]) + [0, len(data)-1]) + ylims = list(np.array([-.5, .5]) + [0, len(data) - 1]) title = self.getStation() + ' picking mode' if filterphase: @@ -2287,8 +2449,8 @@ class PickDlg(QDialog): self.disconnectPressEvent() self.enable_ar_buttons() self.zoomAction.setEnabled(True) - #self.pick_block = self.togglPickBlocker() - #self.resetZoom() + # self.pick_block = self.togglPickBlocker() + # self.resetZoom() self.leave_picking_mode() def savePick(self, phase, phasepicks): @@ -2324,7 +2486,7 @@ class PickDlg(QDialog): if self.getPicks(picktype): if phase is not None and not phase == 'SPt': if (type(self.getPicks(picktype)[phase]) is dict - or type(self.getPicks(picktype)[phase]) is AttribDict): + or type(self.getPicks(picktype)[phase]) is AttribDict): picks = self.getPicks(picktype)[phase] elif phase is None: for phase in self.getPicks(picktype): @@ -2349,43 +2511,38 @@ class PickDlg(QDialog): lpp = picks['lpp'] - self.getStartTime() spe = picks['spe'] - if picktype == 'manual': - color = pick_color_plt(picktype, phaseID, quality) - if not textOnly: - linestyle_mpp, width_mpp = pick_linestyle_plt(picktype, 'mpp') - vl = ax.axvline(mpp, ylims[0], ylims[1], color=color, linestyle=linestyle_mpp, linewidth=width_mpp, - label='{}-Pick (quality: {})'.format(phase, quality), picker=5) - self.phaseLines[phase] = vl - if spe: - ax.fill_between([mpp-spe, mpp+spe], ylims[0], ylims[1], - alpha=.25, color=color, label='{}-SPE'.format(phase)) - if picks['epp']: - linestyle_epp, width_epp = pick_linestyle_plt(picktype, 'epp') - ax.axvline(epp, ylims[0], ylims[1], color=color, linestyle=linestyle_epp, - linewidth=width_epp, label='{}-EPP'.format(phase)) - if picks['lpp']: - linestyle_lpp, width_lpp = pick_linestyle_plt(picktype, 'lpp') - ax.axvline(lpp, ylims[0], ylims[1], color=color, linestyle=linestyle_lpp, - linewidth=width_lpp, label='{}-LPP'.format(phase)) - # else: - # ax.plot([mpp, mpp], ylims, color=color, linestyle=linestyle_mpp, linewidth=width_mpp, - # label='{}-Pick (NO PICKERROR)'.format(phase), picker=5) - # append phase text (if textOnly: draw with current ylims) - self.phaseText.append(ax.text(mpp, ylims[1], phase, color=color)) - elif picktype == 'auto': - color = pick_color_plt(picktype, phaseID, quality) - linestyle_mpp, width_mpp = pick_linestyle_plt(picktype, 'mpp') - if not textOnly: - ax.plot(mpp, ylims[1], color=color, marker='v') - ax.plot(mpp, ylims[0], color=color, marker='^') - vl = ax.axvline(mpp, ylims[0], ylims[1], color=color, linestyle=linestyle_mpp, linewidth=width_mpp, - picker=5, label='{}-Autopick (quality: {})'.format(phase, quality)) - self.phaseLines[phase] = vl - # append phase text (if textOnly: draw with current ylims) - self.phaseText.append(ax.text(mpp, ylims[1], phase, color=color)) - else: + if not picktype in ['auto', 'manual']: raise TypeError('Unknown picktype {0}'.format(picktype)) + if picktype == 'manual': + baseorder = 5 + elif picktype == 'auto': + baseorder = 0 + + color = pick_color_plt(picktype, phaseID, quality) + if not textOnly: + linestyle_mpp, width_mpp = pick_linestyle_plt(picktype, 'mpp') + vl = ax.axvline(mpp, ylims[0], ylims[1], color=color, linestyle=linestyle_mpp, linewidth=width_mpp, + label='{}-{}-Pick (quality: {})'.format(phase, picktype, quality), picker=5, + zorder=baseorder+9) + phaseLineKey = '{}-{}'.format(phase, picktype) + self.phaseLines[phaseLineKey] = vl + if spe: + ax.fill_between([mpp - spe, mpp + spe], ylims[0], ylims[1], + alpha=.25, color=color, label='{}-{}-SPE'.format(phase, picktype), zorder=baseorder+1) + if picks['epp']: + linestyle_epp, width_epp = pick_linestyle_plt(picktype, 'epp') + ax.axvline(epp, ylims[0], ylims[1], color=color, linestyle=linestyle_epp, + linewidth=width_epp, label='{}-{}-EPP'.format(phase, picktype), zorder=baseorder+2) + if picks['lpp']: + linestyle_lpp, width_lpp = pick_linestyle_plt(picktype, 'lpp') + ax.axvline(lpp, ylims[0], ylims[1], color=color, linestyle=linestyle_lpp, + linewidth=width_lpp, label='{}-{}-LPP'.format(phase, picktype), zorder=baseorder+2) + if picktype == 'auto': + ax.plot(mpp, ylims[1], color=color, marker='v', zorder=baseorder+3) + ax.plot(mpp, ylims[0], color=color, marker='^', zorder=baseorder+3) + # append phase text (if textOnly: draw with current ylims) + self.phaseText.append(ax.text(mpp, ylims[1], phase, color=color, zorder=baseorder+10)) ax.legend(loc=1) def connect_mouse_motion(self): @@ -2403,7 +2560,7 @@ class PickDlg(QDialog): def on_motion(self, event): x = event.xdata if x is not None: - time_code = 'T = {}, t = {} [s]'.format(self.stime+x, x) + time_code = 'T = {}, t = {} [s]'.format(self.stime + x, x) user_help = ' - Left-Click to Drag | Right-Click to Pan-Zoom |' \ ' Mousewheel to Zoom | Middle-Click to Delete Pick' self.statusbar.showMessage(time_code + user_help) @@ -2421,7 +2578,7 @@ class PickDlg(QDialog): if not x: return allpicks, pick_rel, phase, picktype = self.identify_selected_picks(x) - if pick_rel == None: + if pick_rel is None: return pick = allpicks[picktype][phase] message = '{} {}-pick'.format(picktype, phase) @@ -2442,7 +2599,7 @@ class PickDlg(QDialog): return x = event.mouseevent.xdata allpicks, pick_rel, phase, picktype = self.identify_selected_picks(x) - if pick_rel == None: + if pick_rel is None: return pick = allpicks[picktype][phase] message = '{} {}-pick'.format(picktype, phase) @@ -2499,16 +2656,17 @@ class PickDlg(QDialog): if not self.picks and not self.autopicks: return allpicks, pick_rel, phase, picktype = self.identify_selected_picks(x) - if pick_rel == None: + if pick_rel is None: return # delete the value from corresponding dictionary allpicks[picktype].pop(phase) # delete line from vlines dictionary if phase in self.phaseLines.keys(): - del(self.phaseLines[phase]) + del (self.phaseLines[phase]) # information output - msg = 'Deleted {} pick for phase {}, at timestamp {} (relative time: {} s)' - print(msg.format(picktype, phase, self.getStartTime()+pick_rel, pick_rel)) + msg = 'Deleted {} pick for phase {}, station {} at timestamp {} (relative time: {} s)' + print(msg.format(picktype, phase, '{}.{}'.format(self.network, self.station), + self.getStartTime() + pick_rel, pick_rel)) self.setDirty(True) def identify_selected_picks(self, x): @@ -2534,8 +2692,6 @@ class PickDlg(QDialog): pick_rel, phase, picktype = X[index] return allpicks, pick_rel, phase, picktype - - def drawPhaseText(self): self.drawPicks(picktype='manual', textOnly=True) self.drawPicks(picktype='auto', textOnly=True) @@ -2572,7 +2728,7 @@ class PickDlg(QDialog): return self.cur_xlim = self.multicompfig.axes[0].get_xlim() self.cur_ylim = self.multicompfig.axes[0].get_ylim() - #self.multicompfig.updateCurrentLimits() + # self.multicompfig.updateCurrentLimits() data = self.getWFData().copy() title = self.getStation() if filter: @@ -2626,15 +2782,18 @@ class PickDlg(QDialog): settings = QSettings() settings.setValue('autoFilter', self.autoFilterAction.isChecked()) - def updateChannelSettingsP(self, action): + @staticmethod + def updateChannelSettingsP(action): settings = QSettings() settings.setValue('p_channel_{}'.format(action.text()), action.isChecked()) - def updateChannelSettingsS(self, action): + @staticmethod + def updateChannelSettingsS(action): settings = QSettings() settings.setValue('s_channel_{}'.format(action.text()), action.isChecked()) - def getChannelSettingsP(self, channel): + @staticmethod + def getChannelSettingsP(channel): settings = QSettings() rval = real_Bool(settings.value('p_channel_{}'.format(channel))) compclass = settings.value('compclass') @@ -2648,7 +2807,8 @@ class PickDlg(QDialog): rval = False return rval - def getChannelSettingsS(self, channel): + @staticmethod + def getChannelSettingsS(channel): settings = QSettings() rval = real_Bool(settings.value('s_channel_{}'.format(channel))) compclass = settings.value('compclass') @@ -2662,7 +2822,6 @@ class PickDlg(QDialog): rval = False return rval - def resetPlot(self): self.resetZoom() self.refreshPlot() @@ -2701,8 +2860,8 @@ class PickDlg(QDialog): # set channel labels self.multicompfig.setYTickLabels(pos, labels) - #self.multicompfig.setXLims(ax, self.getXLims()) - #self.multicompfig.setYLims(ax, self.getYLims()) + # self.multicompfig.setXLims(ax, self.getXLims()) + # self.multicompfig.setYLims(ax, self.getYLims()) def zoom(self): if self.zoomAction.isChecked() and self.pick_block: @@ -2764,7 +2923,7 @@ class CanvasWidget(QWidget): ''' def __init__(self, parent, canvas): - QtGui.QWidget.__init__(self, parent)#, 1) + QtGui.QWidget.__init__(self, parent) # , 1) canvas = canvas self.main_layout = QtGui.QVBoxLayout() self.setLayout(self.main_layout) @@ -2777,6 +2936,7 @@ class MultiEventWidget(QWidget): ''' ''' + def __init__(self, options=None, parent=None, windowflag=1): QtGui.QWidget.__init__(self, parent, windowflag) @@ -2784,6 +2944,14 @@ class MultiEventWidget(QWidget): self.setupUi() # set initial size self.resize(1280, 720) + self.center() + + def center(self): + fm = self.frameGeometry() + screen = QtGui.QApplication.desktop().screenNumber(QtGui.QApplication.desktop().cursor().pos()) + centerPoint = QtGui.QApplication.desktop().screenGeometry(screen).center() + fm.moveCenter(centerPoint) + self.move(fm.topLeft()) def setupUi(self): # init main layout @@ -2836,7 +3004,7 @@ class MultiEventWidget(QWidget): self.pb.setRange(0, 0) self.pb.setVisible(False) - #space holder for progressbar + # space holder for progressbar self._pb_space = QtGui.QWidget() self.rb_layout.addWidget(self.start_button) @@ -2854,7 +3022,7 @@ class MultiEventWidget(QWidget): eventlist = func() if not type(eventlist) == list: eventlist = [eventlist] - tooltip='' + tooltip = '' for index, event in enumerate(eventlist): if not event: continue @@ -2870,13 +3038,13 @@ class MultiEventWidget(QWidget): for rb in self.rb_dict.values(): if rb.isChecked(): check_events = (rb.toolTip() == 'No events for this selection') - self.start_button.setEnabled(not(check_events)) + self.start_button.setEnabled(not check_events) def enable(self, bool): for rb in self.rb_dict.values(): rb.setEnabled(bool) self.start_button.setEnabled(bool) - self.pb.setVisible(not(bool)) + self.pb.setVisible(not bool) self._pb_space.setVisible(bool) self.eventbox.setEnabled(bool) self.button_clear.setEnabled(bool) @@ -2958,7 +3126,7 @@ class AutoPickWidget(MultiEventWidget): def reinitEvents2plot(self): for eventID, eventDict in self.events2plot.items(): for widget_key, widget in eventDict.items(): - del(widget) + del widget self.events2plot = {} self.eventbox.clear() self.refresh_plot_tabs() @@ -2986,6 +3154,14 @@ class CompareEventsWidget(MultiEventWidget): self.connect_buttons() self.setWindowTitle('Compare events') self.set_main_stretch() + self.center() + + def center(self): + fm = self.frameGeometry() + screen = QtGui.QApplication.desktop().screenNumber(QtGui.QApplication.desktop().cursor().pos()) + centerPoint = QtGui.QApplication.desktop().screenGeometry(screen).center() + fm.moveCenter(centerPoint) + self.move(fm.topLeft()) def connect_buttons(self): self.start_button.clicked.connect(self.run) @@ -3062,6 +3238,7 @@ class TuneAutopicker(QWidget): self.add_log() self.set_stretch() self.resize(1280, 720) + self.center() self._manual_pick_plots = [] if hasattr(self.parent(), 'metadata'): self.metadata = self.parent().metadata @@ -3070,6 +3247,13 @@ class TuneAutopicker(QWidget): # self.setWindowModality(QtCore.Qt.WindowModality.ApplicationModal) # self.setWindowFlags(self.windowFlags() | QtCore.Qt.WindowStaysOnTopHint) + def center(self): + fm = self.frameGeometry() + screen = QtGui.QApplication.desktop().screenNumber(QtGui.QApplication.desktop().cursor().pos()) + centerPoint = QtGui.QApplication.desktop().screenGeometry(screen).center() + fm.moveCenter(centerPoint) + self.move(fm.topLeft()) + def set_fig_dict(self, fig_dict): for key, value in fig_dict.items(): if key is not 'mainFig': @@ -3147,7 +3331,7 @@ class TuneAutopicker(QWidget): self.data.setWFData(fnames) wfdat = self.data.getWFData() # all available streams # remove possible underscores in station names - wfdat = remove_underscores(wfdat) + #wfdat = remove_underscores(wfdat) # rotate misaligned stations to ZNE # check for gaps and doubled channels check4gaps(wfdat) @@ -3161,7 +3345,7 @@ class TuneAutopicker(QWidget): self.fill_figure_tabs() def init_pbwidget(self): - self.pb_widget = QtGui.QWidget() + self.pb_widget = ProgressBarWidget() def init_tab_names(self): self.ptb_names = ['aicFig', 'slength', 'checkZ4s', 'refPpick', 'el_Ppick', 'fm_picker'] @@ -3201,7 +3385,7 @@ class TuneAutopicker(QWidget): return self.eventBox.currentText().split('/')[-1] def get_current_event_fp(self): - return self.eventBox.currentText() + return self.eventBox.currentText().split('*')[0] def get_current_event_picks(self, station): event = self.get_current_event() @@ -3220,7 +3404,8 @@ class TuneAutopicker(QWidget): def get_current_station_id(self): return str(self.stationBox.currentText()) - def gen_tab_widget(self, name, canvas): + @staticmethod + def gen_tab_widget(name, canvas): widget = QtGui.QWidget() v_layout = QtGui.QVBoxLayout() v_layout.addWidget(canvas) @@ -3398,7 +3583,7 @@ class TuneAutopicker(QWidget): if index == -1: index += 1 nevents = self.eventBox.model().rowCount() - path = self.eventBox.itemText(index) + path = self.eventBox.itemText(index).split('*')[0] if project.getEventFromPath(path).isTestEvent(): for index in range(nevents): path = self.eventBox.itemText(index) @@ -3491,7 +3676,7 @@ class TuneAutopicker(QWidget): if hasattr(self, 'pdlg_widget'): if self.pdlg_widget: self.pdlg_widget.setParent(None) - del(self.pdlg_widget) + del self.pdlg_widget if hasattr(self, 'overview'): self.overview.setParent(None) if hasattr(self, 'p_tabs'): @@ -3546,10 +3731,18 @@ class PylotParaBox(QtGui.QWidget): self.params_to_gui() self._toggle_advanced_settings() self.resize(720, 860) + self.center() self.setWindowModality(QtCore.Qt.WindowModality.ApplicationModal) self.accepted.connect(self.params_from_gui) self.rejected.connect(self.params_to_gui) + def center(self): + fm = self.frameGeometry() + screen = QtGui.QApplication.desktop().screenNumber(QtGui.QApplication.desktop().cursor().pos()) + centerPoint = QtGui.QApplication.desktop().screenGeometry(screen).center() + fm.moveCenter(centerPoint) + self.move(fm.topLeft()) + def _init_sublayouts(self): self._main_layout = QtGui.QVBoxLayout() self._advanced_layout = QtGui.QVBoxLayout() @@ -3650,7 +3843,8 @@ class PylotParaBox(QtGui.QWidget): grid.addWidget(box, index1, 2) return grid - def create_box(self, typ, tooltip): + @staticmethod + def create_box(typ, tooltip): if typ == str: box = QtGui.QLineEdit() elif typ == float: @@ -3665,7 +3859,8 @@ class PylotParaBox(QtGui.QWidget): raise TypeError('Unrecognized type {}'.format(typ)) return box - def create_multi_box(self, boxes, headline=None): + @staticmethod + def create_multi_box(boxes, headline=None): box = QtGui.QWidget() gl = QtGui.QGridLayout() column = 0 @@ -3993,7 +4188,7 @@ class AutoPickDlg(QDialog): self.gb.setLayout(self.jobLayout) def exportParameter(self): - self.parent().exportAllEvents() + self.parent().exportEvents() pylot_params = self.parent()._inputs self.addEvents2pp(pylot_params) pylot_params.export2File(self.pp_export) @@ -4366,7 +4561,8 @@ class PhasesTab(PropTab): self.PphasesEdit.setText(p_phases) self.SphasesEdit.setText(s_phases) - def sortPhases(self, phases): + @staticmethod + def sortPhases(phases): sorted_phases = {'P': [], 'S': []} for phase in phases: @@ -4393,7 +4589,7 @@ class GraphicsTab(PropTab): super(GraphicsTab, self).__init__(parent) self.pylot_mainwindow = parent._pylot_mainwindow self.init_layout() - self.add_pg_cb() + #self.add_pg_cb() self.add_nth_sample() self.add_style_settings() self.setLayout(self.main_layout) @@ -4429,36 +4625,16 @@ class GraphicsTab(PropTab): self.main_layout.addWidget(label, 1, 0) self.main_layout.addWidget(self.spinbox_nth_sample, 1, 1) - def add_pg_cb(self): - try: - import pyqtgraph as pg - pg = True - except: - pg = False - - text = {True: 'Use pyqtgraphic library for plotting', - False: 'Cannot use library: pyqtgraphic not found on system'} - label = QLabel('PyQt graphic') - label.setToolTip(text[bool(pg)]) - label.setEnabled(bool(pg)) - self.checkbox_pg = QtGui.QCheckBox() - self.checkbox_pg.setEnabled(bool(pg)) - self.checkbox_pg.setChecked(bool(pg)) - self.main_layout.addWidget(label, 0, 0) - self.main_layout.addWidget(self.checkbox_pg, 0, 1) - def set_current_style(self): selected_style = self.style_cb.currentText() self.pylot_mainwindow.set_style(selected_style) def getValues(self): - values = {'nth_sample': self.spinbox_nth_sample.value(), - 'pyqtgraphic': self.checkbox_pg.isChecked()} + values = {'nth_sample': self.spinbox_nth_sample.value()} return values def resetValues(self, infile=None): - values = {'nth_sample': self.spinbox_nth_sample.setValue(1), - 'pyqtgraphic': self.checkbox_pg.setChecked(True)} + values = {'nth_sample': self.spinbox_nth_sample.setValue(1)} return values @@ -4607,7 +4783,8 @@ class LocalisationTab(PropTab): self.rootlabel.setText("{0} root directory".format(curtool)) self.binlabel.setText("{0} bin directory".format(curtool)) - def selectDirectory(self, edit): + @staticmethod + def selectDirectory(edit): selected_directory = QFileDialog.getExistingDirectory() # check if string is empty if selected_directory: @@ -4705,8 +4882,9 @@ class FilterOptionsDialog(QDialog): 'S': FilterOptions()} self.setWindowTitle(titleString) - self.filterOptionWidgets = {'P': FilterOptionsWidget(self.filterOptions['P'], self.parent().getAutoFilteroptions('P')), - 'S': FilterOptionsWidget(self.filterOptions['S'], self.parent().getAutoFilteroptions('S'))} + self.filterOptionWidgets = { + 'P': FilterOptionsWidget(self.filterOptions['P'], self.parent().getAutoFilteroptions('P')), + 'S': FilterOptionsWidget(self.filterOptions['S'], self.parent().getAutoFilteroptions('S'))} self.setupUi() self.updateUi() self.connectButtons() @@ -4773,6 +4951,9 @@ class FilterOptionsDialog(QDialog): def checkMinMax(self): returnvals = [] for foWidget in self.filterOptionWidgets.values(): + if foWidget.filterOptions._filtertype in ['highpass', 'lowpass']: + returnvals.append(True) + continue returnvals.append(foWidget.checkMin()) returnvals.append(foWidget.checkMax()) if all(returnvals): @@ -4831,7 +5012,7 @@ class FilterOptionsWidget(QWidget): # self.getFilterOptions().getFreq()[1]) # else: - self.typeOptions = [None, "bandpass", "bandstop", "lowpass", "highpass"] + self.typeOptions = ["bandpass", "bandstop", "lowpass", "highpass"] self.resetButton = QPushButton('Reset') self.resetButton.setToolTip('Reset filter settings to settings for automatic picking.') @@ -4900,6 +5081,8 @@ class FilterOptionsWidget(QWidget): self.freqmaxSpinBox.valueChanged.connect(self.checkAutoManu) self.checkAutoManu() + self.setWindowModality(QtCore.Qt.WindowModality.ApplicationModal) + def checkAutoManu(self): self.updateMFfromWidget() @@ -5054,7 +5237,7 @@ class HelpForm(QDialog): toolBar.addWidget(self.pageLabel) self.webBrowser = QWebView() self.webBrowser.load(page) - #self.webBrowser.load('C:/Shared/code/git/pylot/pylot/core/util/map_test.html') + # self.webBrowser.load('C:/Shared/code/git/pylot/pylot/core/util/map_test.html') layout = QVBoxLayout() layout.addWidget(toolBar) diff --git a/pylot/styles/style_settings.py b/pylot/styles/style_settings.py index c84a8334..a7d317bc 100644 --- a/pylot/styles/style_settings.py +++ b/pylot/styles/style_settings.py @@ -5,18 +5,18 @@ # the base color phasecolors = { 'manual': { - 'P':{ + 'P': { 'rgba': (0, 0, 255, 255), 'modifier': 'g'}, - 'S':{ + 'S': { 'rgba': (255, 0, 0, 255), 'modifier': 'b'} }, - 'auto':{ - 'P':{ + 'auto': { + 'P': { 'rgba': (140, 0, 255, 255), 'modifier': 'g'}, - 'S':{ + 'S': { 'rgba': (255, 140, 0, 255), 'modifier': 'b'} } @@ -24,8 +24,8 @@ phasecolors = { # Set plot colors and stylesheet for each style stylecolors = { - 'default':{ - 'linecolor':{ + 'default': { + 'linecolor': { 'rgba': (0, 0, 0, 255)}, 'background': { 'rgba': (255, 255, 255, 255)}, @@ -67,4 +67,3 @@ stylecolors = { 'filename': 'bright.qss'} } } - diff --git a/setup.py b/setup.py index 76deed6e..09f8e357 100644 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ setup( packages=['pylot', 'pylot.core', 'pylot.core.loc', 'pylot.core.pick', 'pylot.core.io', 'pylot.core.util', 'pylot.core.active', 'pylot.core.analysis', 'pylot.testing'], - requires=['obspy', 'PySide', 'matplotlib', 'numpy'], + requires=['obspy', 'PySide', 'matplotlib', 'numpy', 'scipy', 'pyqtgraph'], url='dummy', license='LGPLv3', author='Sebastian Wehling-Benatelli', diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 00000000..e0981d72 --- /dev/null +++ b/tests/__init__.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# -------------------------------------------------------- +# Purpose: Convience imports for PyLoT +# +''' +================================================ +PyLoT - the Python picking and Localization Tool +================================================ + +This python library contains a graphical user interfaces for picking +seismic phases. This software needs ObsPy (http://github.com/obspy/obspy/wiki) +and the Qt4 libraries to be installed first. + +PILOT has been developed in Mathworks' MatLab. In order to distribute +PILOT without facing portability problems, it has been decided to re- +develop the software package in Python. The great work of the ObsPy +group allows easy handling of a bunch of seismic data and PyLoT will +benefit a lot compared to the former MatLab version. + +The development of PyLoT is part of the joint research project MAGS2. + +:copyright: + The PyLoT Development Team +:license: + GNU Lesser General Public License, Version 3 + (http://www.gnu.org/copyleft/lesser.html) +''' diff --git a/tests/test_Metadata/test_Metadata.py b/tests/test_Metadata/test_Metadata.py index 244adbe2..28e73e1d 100644 --- a/tests/test_Metadata/test_Metadata.py +++ b/tests/test_Metadata/test_Metadata.py @@ -1,32 +1,59 @@ import unittest import os +from obspy import UTCDateTime +from obspy.io.xseed.utils import SEEDParserException +from obspy.io.xseed import Parser from pylot.core.util.dataprocessing import Metadata +from tests.utils import HidePrints + class TestMetadata(unittest.TestCase): def setUp(self): self.station_id = 'BW.WETR..HH' - metadata_folder = 'metadata1' + self.time = UTCDateTime('2012-08-01') + metadata_folder = os.path.join('test_data', 'dless_multiple_files', 'metadata1') self.m = Metadata(metadata_folder) def test_get_coordinates_sucess(self): - expected = {'Z': {u'elevation': 607.0, u'longitude': 12.87571, u'local_depth': 0.0, u'azimuth': 0.0, u'latitude': 49.14502, u'dip': -90.0}, - 'E': {u'azimuth': 90.0, u'dip': 0.0, u'elevation': 607.0, u'latitude': 49.14502, u'local_depth': 0.0, u'longitude': 12.87571}, - 'N': {u'azimuth': 0.0, u'dip': 0.0, u'elevation': 607.0, u'latitude': 49.14502, u'local_depth': 0.0, u'longitude': 12.87571} + expected = {'Z': {u'elevation': 607.0, u'longitude': 12.87571, u'local_depth': 0.0, u'azimuth': 0.0, + u'latitude': 49.14502, u'dip': -90.0}, + 'E': {u'azimuth': 90.0, u'dip': 0.0, u'elevation': 607.0, u'latitude': 49.14502, + u'local_depth': 0.0, u'longitude': 12.87571}, + 'N': {u'azimuth': 0.0, u'dip': 0.0, u'elevation': 607.0, u'latitude': 49.14502, u'local_depth': 0.0, + u'longitude': 12.87571} } result = {} for channel in ('Z', 'N', 'E'): - coords = self.m.get_coordinates(self.station_id+channel) + with HidePrints(): + coords = self.m.get_coordinates(self.station_id+channel, time=self.time) result[channel] = coords self.assertDictEqual(result[channel], expected[channel]) + def test_get_coordinates_sucess_no_time(self): + expected = {'Z': {u'elevation': 607.0, u'longitude': 12.87571, u'local_depth': 0.0, u'azimuth': 0.0, + u'latitude': 49.14502, u'dip': -90.0}, + 'E': {u'azimuth': 90.0, u'dip': 0.0, u'elevation': 607.0, u'latitude': 49.14502, + u'local_depth': 0.0, u'longitude': 12.87571}, + 'N': {u'azimuth': 0.0, u'dip': 0.0, u'elevation': 607.0, u'latitude': 49.14502, u'local_depth': 0.0, + u'longitude': 12.87571} + } + result = {} + for channel in ('Z', 'N', 'E'): + with HidePrints(): + coords = self.m.get_coordinates(self.station_id+channel) + result[channel] = coords + self.assertDictEqual(result[channel], expected[channel]) + + class TestMetadataAdding(unittest.TestCase): """Tests if adding files and directories to a metadata object works.""" def setUp(self): self.station_id = 'BW.WETR..HH' - self.metadata_folders = ('metadata1', 'metadata2') + self.metadata_folders = (os.path.join('test_data', 'dless_multiple_files', 'metadata1'), + os.path.join('test_data', 'dless_multiple_files', 'metadata2')) self.m = Metadata() def test_add_inventory_folder(self): @@ -43,8 +70,10 @@ class TestMetadataAdding(unittest.TestCase): fpath = os.path.join(self.metadata_folders[0], 'DATALESS.BW.WETR..HHZ') self.m.add_inventory_file(fpath) # adding an inventory file should append its folder to the list of inventories and the file to the - self.assertEqual(['metadata1/DATALESS.BW.WETR..HHZ'], self.m.inventory_files.keys()) # does the filename exist in inventory files? - self.assertEqual(['data', 'invtype'], self.m.inventory_files['metadata1/DATALESS.BW.WETR..HHZ'].keys()) # is the required information attacht to the filename? + self.assertEqual([os.path.join(self.metadata_folders[0], 'DATALESS.BW.WETR..HHZ')], + self.m.inventory_files.keys()) # does the filename exist in inventory files? + self.assertEqual(['data', 'invtype'], self.m.inventory_files[os.path.join(self.metadata_folders[0], + 'DATALESS.BW.WETR..HHZ')].keys()) # is the required information attacht to the filename? self.assertDictEqual({}, self.m.seed_ids) self.assertEqual([self.metadata_folders[0]], self.m.inventories) @@ -66,7 +95,8 @@ class TestMetadataRemoval(unittest.TestCase): def setUp(self): self.station_id = 'BW.WETR..HH' - self.metadata_folders = ('metadata1', 'metadata2') + self.metadata_folders = (os.path.join('test_data', 'dless_multiple_files', 'metadata1'), + os.path.join('test_data', 'dless_multiple_files', 'metadata2')) self.m = Metadata() def test_remove_all_inventories(self): @@ -93,7 +123,8 @@ class TestMetadataRemoval(unittest.TestCase): exist in the instance.""" # add multiple inventories self.m.add_inventory(self.metadata_folders[0]) - self.m.remove_inventory('metadata_not_existing') + with HidePrints(): + self.m.remove_inventory('metadata_not_existing') self.assertIn(self.metadata_folders[0], self.m.inventories) def isEmpty(self, metadata): @@ -102,3 +133,202 @@ class TestMetadataRemoval(unittest.TestCase): self.assertDictEqual({}, metadata.seed_ids) self.assertEqual([], metadata.inventories) + +class TestMetadata_read_single_file(unittest.TestCase): + + def setUp(self): + self.station_id = 'BW.WETR..HHZ' + self.metadata_folders = (os.path.join('test_data', 'dless_multiple_files', 'metadata1'), + os.path.join('test_data', 'dless_multiple_files', 'metadata2')) + self.metadata_paths = [] + self.m = Metadata() + + def test_read_single_file(self): + """Test if reading a single file works""" + fname = os.path.join(self.metadata_folders[0], 'DATALESS.'+self.station_id) + with HidePrints(): + res = self.m.read_single_file(fname) + # method should return true if file is successfully read + self.assertTrue(res) + # list of inventories (folders) should be empty + self.assertEqual([], self.m.inventories) + # list of inventory files should contain the added file + self.assertIn(fname, self.m.inventory_files.keys()) + self.assertEqual({}, self.m.seed_ids) + + def test_read_single_file_invalid_path(self): + """Test if reading from a non existing file fails. The filename should not be + added to the metadata object""" + fname = os.path.join("this", "path", "doesnt", "exist") + with HidePrints(): + res = self.m.read_single_file(fname) + # method should return None if file reading fails + self.assertIsNone(res) + # list of inventories (folders) should be empty + self.assertEqual([], self.m.inventories) + # list of inventory files should not contain the added file + self.assertNotIn(fname, self.m.inventory_files.keys()) + self.assertEqual({}, self.m.seed_ids) + + def test_read_single_file_multiple_times(self): + """Test if reading a file twice doesnt add it twice to the metadata object""" + fname = os.path.join(self.metadata_folders[0], 'DATALESS.'+self.station_id) + with HidePrints(): + res1 = self.m.read_single_file(fname) + res2 = self.m.read_single_file(fname) + self.assertTrue(res1) + self.assertIsNone(res2) + self.assertItemsEqual([fname], self.m.inventory_files.keys()) + + +class TestMetadataMultipleTime(unittest.TestCase): + """Test if stations with multiple metadata entries in a single file are handled correctly. + The user must specify the time where he wants to get metadata. + + The station ROTT changed has metadata available at multiple times + LE.ROTT..HNE | 200.00 Hz | Titan 4g-EDR-209, Very Low gain, 200 sps | 2015-01-08 - 2015-03-19 | Lat: 49.1, Lng: 8.1 + LE.ROTT..HNE | 200.00 Hz | Titan 4g-EDR-209, Very Low gain, 200 sps | 2015-03-19 - | Lat: 49.1, Lng: 8.1 + LE.ROTT..HNN | 200.00 Hz | Titan 4g-EDR-209, Very Low gain, 200 sps | 2015-01-08 - 2015-03-19 | Lat: 49.1, Lng: 8.1 + LE.ROTT..HNN | 200.00 Hz | Titan 4g-EDR-209, Very Low gain, 200 sps | 2015-03-19 - | Lat: 49.1, Lng: 8.1 + LE.ROTT..HNZ | 200.00 Hz | Titan 4g-EDR-209, Very Low gain, 200 sps | 2015-01-08 - 2015-03-19 | Lat: 49.1, Lng: 8.1 + LE.ROTT..HNZ | 200.00 Hz | Titan 4g-EDR-209, Very Low gain, 200 sps | 2015-03-19 - | Lat: 49.1, Lng: 8.1 + """ + + def setUp(self): + self.seed_id = 'LE.ROTT..HN' + path = os.path.dirname(__file__) # gets path to currently running script + metadata = os.path.join('test_data', 'dless_multiple_times', 'MAGS2_LE_ROTT.dless') # specific subfolder of test data + metadata_path = os.path.join(path, metadata) + self.m = Metadata(metadata_path) + self.p = Parser(metadata_path) + + def test_get_metadata_works_without_datetime(self): + """Test if get_metadata works if multiple metadata entries are available but no time is + specified.""" + for channel in ('Z', 'N', 'E'): + with HidePrints(): + md = self.m.get_metadata(self.seed_id + channel) + self.assertDictEqual(md['data'].get_inventory(), self.p.get_inventory()) + + def test_get_metadata_works_with_first_datetime(self): + """Test if get_metadata works if multiple metadata entries are available and the older time is specified.""" + t = UTCDateTime('2015-02-08') + for channel in ('Z', 'N', 'E'): + with HidePrints(): + md = self.m.get_metadata(self.seed_id + channel, t) + self.assertDictEqual(md['data'].get_inventory(), self.p.get_inventory()) + + def test_get_metadata_fails_when_time_before_starttime(self): + """Tests if get_metadata returns None when given a data that is before the start date + of the metadata""" + with HidePrints(): + md = self.m.get_metadata(self.seed_id, UTCDateTime('1960-07-20')) + self.assertIs(md, None) + + def test_get_metadata_invalid_seed_id(self): + """Tes if get metadata returns none when asked for a seed id that does not exist""" + with HidePrints(): + res = self.m.get_metadata("this.doesnt..exist") + self.assertIsNone(res) + + +class TestMetadataMultipleEntries(unittest.TestCase): + """ + The station KB.TMO07 has changed instruments multiple times. + Networks: + KB (KB network) +Stations: + KB.TMO07 (Karlsruhe GPI) +Channels: + KB.TMO07.00.BHE | 50.00 Hz | Streckeisen KABBA-STS-2 | 2004-12-06 - 2005-04-18 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.BHE | 50.00 Hz | Streckeisen KABBA-STS-2 | 2005-04-18 - 2006-07-18 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.BHE | 50.00 Hz | Lennartz KABBA-LE-3D/5 | 2006-10-10 - 2006-11-14 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.BHE | 50.00 Hz | Lennartz KABBA-LE-3D/5 | 2006-11-24 - 2007-01-12 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.BHE | 50.00 Hz | Lennartz KABBA-LE-3D/5 | 2007-01-18 - 2007-03-15 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.BHE | 50.00 Hz | Lennartz KABBA-LE-3D/5 | 2007-10-25 - 2007-11-21 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.BHE | 50.00 Hz | Lennartz KABBA-LE-3D/5 | 2007-11-21 - 2008-01-17 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.BHN | 50.00 Hz | Streckeisen KABBA-STS-2 | 2004-12-06 - 2005-04-18 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.BHN | 50.00 Hz | Streckeisen KABBA-STS-2 | 2005-04-18 - 2006-07-18 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.BHN | 50.00 Hz | Lennartz KABBA-LE-3D/5 | 2006-10-10 - 2006-11-14 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.BHN | 50.00 Hz | Lennartz KABBA-LE-3D/5 | 2006-11-24 - 2007-01-12 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.BHN | 50.00 Hz | Lennartz KABBA-LE-3D/5 | 2007-01-18 - 2007-03-15 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.BHN | 50.00 Hz | Lennartz KABBA-LE-3D/5 | 2007-10-25 - 2007-11-21 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.BHN | 50.00 Hz | Lennartz KABBA-LE-3D/5 | 2007-11-21 - 2008-01-17 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.BHZ | 50.00 Hz | Streckeisen KABBA-STS-2 | 2004-12-06 - 2005-04-18 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.BHZ | 50.00 Hz | Streckeisen KABBA-STS-2 | 2005-04-18 - 2006-07-18 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.BHZ | 50.00 Hz | Lennartz KABBA-LE-3D/5 | 2006-10-10 - 2006-11-14 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.BHZ | 50.00 Hz | Lennartz KABBA-LE-3D/5 | 2006-11-24 - 2007-01-12 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.BHZ | 50.00 Hz | Lennartz KABBA-LE-3D/5 | 2007-01-18 - 2007-03-15 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.BHZ | 50.00 Hz | Lennartz KABBA-LE-3D/5 | 2007-10-25 - 2007-11-21 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.BHZ | 50.00 Hz | Lennartz KABBA-LE-3D/5 | 2007-11-21 - 2008-01-17 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHE | 100.00 Hz | Lennartz KABBA-LE-3D/5 | 2007-01-12 - 2007-01-18 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHE | 100.00 Hz | Lennartz KABBA-LE-3D/5 | 2007-10-10 - 2007-10-25 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHE | 100.00 Hz | Streckeisen KABBA-STS-2 | 2008-07-11 - 2008-12-05 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHE | 100.00 Hz | Streckeisen KABBA-STS-2 | 2009-05-12 - 2010-02-15 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHE | 100.00 Hz | Streckeisen KABBA-STS-2 | 2010-02-15 - 2010-04-07 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHE | 100.00 Hz | Lennartz KABBA-LE-3D/1 | 2010-04-07 - 2010-08-03 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHE | 200.00 Hz | Streckeisen KABBA-STS-2 | 2010-08-05 - 2010-12-20 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHE | 100.00 Hz | Streckeisen KABBA-STS-2 | 2010-12-20 - 2010-12-22 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHE | 200.00 Hz | Streckeisen KABBA-STS-2 | 2010-12-22 - 2011-04-02 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHE | 200.00 Hz | Streckeisen KABBA-STS-2 | 2011-04-15 - 2012-05-07 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHE | 200.00 Hz | Streckeisen KABBA-STS-2 | 2012-05-07 - | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHN | 100.00 Hz | Lennartz KABBA-LE-3D/5 | 2007-01-12 - 2007-01-18 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHN | 100.00 Hz | Lennartz KABBA-LE-3D/5 | 2007-10-10 - 2007-10-25 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHN | 100.00 Hz | Streckeisen KABBA-STS-2 | 2008-07-11 - 2008-12-05 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHN | 100.00 Hz | Streckeisen KABBA-STS-2 | 2009-05-12 - 2010-02-15 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHN | 100.00 Hz | Streckeisen KABBA-STS-2 | 2010-02-15 - 2010-04-07 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHN | 100.00 Hz | Lennartz KABBA-LE-3D/1 | 2010-04-07 - 2010-08-03 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHN | 200.00 Hz | Streckeisen KABBA-STS-2 | 2010-08-05 - 2010-12-20 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHN | 100.00 Hz | Streckeisen KABBA-STS-2 | 2010-12-20 - 2010-12-22 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHN | 200.00 Hz | Streckeisen KABBA-STS-2 | 2010-12-22 - 2011-04-02 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHN | 200.00 Hz | Streckeisen KABBA-STS-2 | 2011-04-15 - 2012-05-07 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHN | 200.00 Hz | Streckeisen KABBA-STS-2 | 2012-05-07 - | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHZ | 100.00 Hz | Lennartz KABBA-LE-3D/5 | 2007-01-12 - 2007-01-18 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHZ | 100.00 Hz | Lennartz KABBA-LE-3D/5 | 2007-10-10 - 2007-10-25 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHZ | 100.00 Hz | Streckeisen KABBA-STS-2 | 2008-07-11 - 2008-12-05 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHZ | 100.00 Hz | Streckeisen KABBA-STS-2 | 2009-05-12 - 2010-02-15 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHZ | 100.00 Hz | Streckeisen KABBA-STS-2 | 2010-02-15 - 2010-04-07 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHZ | 100.00 Hz | Lennartz KABBA-LE-3D/1 | 2010-04-07 - 2010-08-03 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHZ | 200.00 Hz | Streckeisen KABBA-STS-2 | 2010-08-05 - 2010-12-20 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHZ | 100.00 Hz | Streckeisen KABBA-STS-2 | 2010-12-20 - 2010-12-22 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHZ | 200.00 Hz | Streckeisen KABBA-STS-2 | 2010-12-22 - 2011-04-02 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHZ | 200.00 Hz | Streckeisen KABBA-STS-2 | 2011-04-15 - 2012-05-07 | Lat: 49.0, Lng: 8.4 + KB.TMO07.00.HHZ | 200.00 Hz | Streckeisen KABBA-STS-2 | 2012-05-07 - | Lat: 49.0, Lng: 8.4 + """ + + def setUp(self): + self.seed_id = 'KB.TMO07.00.HHZ' + path = os.path.dirname(__file__) # gets path to currently running script + metadata = os.path.join('test_data', 'dless_multiple_instruments', 'MAGS2_KB_TMO07.dless') # specific subfolder of test data + metadata_path = os.path.join(path, metadata) + self.m = Metadata(metadata_path) + self.p = Parser(metadata_path) + + def test_get_paz_current_time(self): + """Test if getting the paz from the metadata object with the current time works""" + t = UTCDateTime() + with HidePrints(): + pazm = self.m.get_paz(self.seed_id, t) + pazp = self.p.get_paz(self.seed_id, t) + self.assertEqual(pazm, pazp) + + def test_get_paz_past(self): + """Test if getting paz from metadata object with a time in the past works""" + t = UTCDateTime('2007-01-13') + with HidePrints(): + pazm = self.m.get_paz(self.seed_id, t) + pazp = self.p.get_paz(self.seed_id, t) + self.assertEqual(pazm, pazp) + + def test_get_paz_time_not_exisiting(self): + """Test if getting paz from metadata at a time where there is no metadata + available fails correctly""" + with self.assertRaises(SEEDParserException): + with HidePrints(): + self.m.get_paz(self.seed_id, UTCDateTime('1990-1-1')) + + def test_get_paz_seed_id_not_existing(self): + """Test if getting paz from a non existing seed id returns None as expected.""" + with HidePrints(): + res = self.m.get_paz('This.doesnt..exist', UTCDateTime) + self.assertIsNone(res) diff --git a/tests/test_Metadata/metadata1/DATALESS.BW.WETR..HHE b/tests/test_Metadata/test_data/dless_multiple_files/metadata1/DATALESS.BW.WETR..HHE similarity index 100% rename from tests/test_Metadata/metadata1/DATALESS.BW.WETR..HHE rename to tests/test_Metadata/test_data/dless_multiple_files/metadata1/DATALESS.BW.WETR..HHE diff --git a/tests/test_Metadata/metadata1/DATALESS.BW.WETR..HHN b/tests/test_Metadata/test_data/dless_multiple_files/metadata1/DATALESS.BW.WETR..HHN similarity index 100% rename from tests/test_Metadata/metadata1/DATALESS.BW.WETR..HHN rename to tests/test_Metadata/test_data/dless_multiple_files/metadata1/DATALESS.BW.WETR..HHN diff --git a/tests/test_Metadata/metadata1/DATALESS.BW.WETR..HHZ b/tests/test_Metadata/test_data/dless_multiple_files/metadata1/DATALESS.BW.WETR..HHZ similarity index 100% rename from tests/test_Metadata/metadata1/DATALESS.BW.WETR..HHZ rename to tests/test_Metadata/test_data/dless_multiple_files/metadata1/DATALESS.BW.WETR..HHZ diff --git a/tests/test_Metadata/metadata2/DATALESS.GR.GRA1..HHE b/tests/test_Metadata/test_data/dless_multiple_files/metadata2/DATALESS.GR.GRA1..HHE similarity index 100% rename from tests/test_Metadata/metadata2/DATALESS.GR.GRA1..HHE rename to tests/test_Metadata/test_data/dless_multiple_files/metadata2/DATALESS.GR.GRA1..HHE diff --git a/tests/test_Metadata/metadata2/DATALESS.GR.GRA1..HHN b/tests/test_Metadata/test_data/dless_multiple_files/metadata2/DATALESS.GR.GRA1..HHN similarity index 100% rename from tests/test_Metadata/metadata2/DATALESS.GR.GRA1..HHN rename to tests/test_Metadata/test_data/dless_multiple_files/metadata2/DATALESS.GR.GRA1..HHN diff --git a/tests/test_Metadata/metadata2/DATALESS.GR.GRA1..HHZ b/tests/test_Metadata/test_data/dless_multiple_files/metadata2/DATALESS.GR.GRA1..HHZ similarity index 100% rename from tests/test_Metadata/metadata2/DATALESS.GR.GRA1..HHZ rename to tests/test_Metadata/test_data/dless_multiple_files/metadata2/DATALESS.GR.GRA1..HHZ diff --git a/tests/test_Metadata/metadata2/DATALESS.GR.GRA2..HHE b/tests/test_Metadata/test_data/dless_multiple_files/metadata2/DATALESS.GR.GRA2..HHE similarity index 100% rename from tests/test_Metadata/metadata2/DATALESS.GR.GRA2..HHE rename to tests/test_Metadata/test_data/dless_multiple_files/metadata2/DATALESS.GR.GRA2..HHE diff --git a/tests/test_Metadata/metadata2/DATALESS.GR.GRA2..HHN b/tests/test_Metadata/test_data/dless_multiple_files/metadata2/DATALESS.GR.GRA2..HHN similarity index 100% rename from tests/test_Metadata/metadata2/DATALESS.GR.GRA2..HHN rename to tests/test_Metadata/test_data/dless_multiple_files/metadata2/DATALESS.GR.GRA2..HHN diff --git a/tests/test_Metadata/metadata2/DATALESS.GR.GRA2..HHZ b/tests/test_Metadata/test_data/dless_multiple_files/metadata2/DATALESS.GR.GRA2..HHZ similarity index 100% rename from tests/test_Metadata/metadata2/DATALESS.GR.GRA2..HHZ rename to tests/test_Metadata/test_data/dless_multiple_files/metadata2/DATALESS.GR.GRA2..HHZ diff --git a/tests/test_Metadata/test_data/dless_multiple_instruments/MAGS2_KB_TMO07.dless b/tests/test_Metadata/test_data/dless_multiple_instruments/MAGS2_KB_TMO07.dless new file mode 100644 index 00000000..5b6e0938 --- /dev/null +++ b/tests/test_Metadata/test_data/dless_multiple_instruments/MAGS2_KB_TMO07.dless @@ -0,0 +1 @@ +000001V 010008402.4121950,001,00:00:00.0000~2500,001,00:00:00.0000~2018,194,18:47:19.0000~~~0110021001TMO07000003 000002A 0300237Steim2 Integer Compression Format~000105014F1 P4 W4 D C2 R1 P8 W4 D C2~P0 W4 N15 S2,0,1~T0 X W4~T1 Y4 W1 D C2~T2 W4 I D2~K0 X D30~K1 N0 D30 C2~K2 Y2 D15 C2~K3 Y3 D10 C2~T3 W4 I D2~K0 Y5 D6 C2~K1 Y6 D5 C2~K2 X D2 Y7 D4 C2~K3 X D30~0330021001KB network~0330034002Streckeisen KABBA-STS-2~0330033003Lennartz KABBA-LE-3D/5~0330033004Lennartz KABBA-LE-3D/1~0340044001M/S~Velocity in Meters per Second~0340020002A~Amperes~0340018003V~Volts~0340032004COUNTS~Digital Counts~ 000003S 0500097TMO07+49.020590+008.367240+0129.00000000Karlsruhe GPI~0013210102004,341,12:55:00.0000~~NKB052014900BHE0000002~001002+49.020590+008.367240+0129.0000.0090.0+00.00001125.0000E+010.0000E+000000GC~2004,341,12:55:00.0000~2005,108,15:21:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051025.0000E+010000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900BHN0000002~001002+49.020590+008.367240+0129.0000.0000.0+00.00001125.0000E+010.0000E+000000GC~2004,341,12:55:00.0000~2005,108,15:21:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051025.0000E+010000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900BHZ0000002~001002+49.020590+008.367240+0129.0000.0000.0-90.00001125.0000E+010.0000E+000000GC~2004,341,12:55:00.0000~2005,108,15:21:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051025.0000E+010000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900BHE0000002~001002+49.020590+008.367240+0129.0000.0090.0+00.00001125.0000E+010.0000E+000000GC~2005,108,15:22:00.0000~2006,199,10:00:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+000004S*00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051025.0000E+010000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900BHN0000002~001002+49.020590+008.367240+0129.0000.0000.0+00.00001125.0000E+010.0000E+000000GC~2005,108,15:22:00.0000~2006,199,10:00:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051025.0000E+010000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900BHZ0000002~001002+49.020590+008.367240+0129.0000.0000.0-90.00001125.0000E+010.0000E+000000GC~2005,108,15:22:00.0000~2006,199,10:00:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051025.0000E+010000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900BHE0000003~001002+49.020590+008.367240+0129.0000.0090.0+00.00001125.0000E+010.0000E+000000GC~2006,283,08:45:00.0000~2006,318,11:30:00.0000~N0530334A01001003+1.00000E+00+2.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-8.88000E-01+8.88000E-01+0.00000E+00+0.00000E+00-8.88000E-01-8.88000E-01+0.00000E+00+0.00000E+00-2.20000E-01+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+2.00000E+00000540024D02003004000000000570051025.0000E+010000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+2.00000E+0000052014900BHN0000003~001002+49.020590+008.367240+0129.0000.0000.0+00.00001125.0000E+010.0000E+000000GC~2006,283,08:45:00.0000~2006,318,11:30:00.0000~N0530334A01001003+1.00000E+00+2.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.000000005S*00E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-8.88000E-01+8.88000E-01+0.00000E+00+0.00000E+00-8.88000E-01-8.88000E-01+0.00000E+00+0.00000E+00-2.20000E-01+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+2.00000E+00000540024D02003004000000000570051025.0000E+010000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+2.00000E+0000052014900BHZ0000003~001002+49.020590+008.367240+0129.0000.0000.0-90.00001125.0000E+010.0000E+000000GC~2006,283,08:45:00.0000~2006,318,11:30:00.0000~N0530334A01001003+1.00000E+00+2.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-8.88000E-01+8.88000E-01+0.00000E+00+0.00000E+00-8.88000E-01-8.88000E-01+0.00000E+00+0.00000E+00-2.20000E-01+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+2.00000E+00000540024D02003004000000000570051025.0000E+010000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+2.00000E+0000052014900BHE0000003~001002+49.020590+008.367240+0129.0000.0090.0+00.00001125.0000E+010.0000E+000000GC~2006,328,11:07:00.0000~2007,012,07:30:00.0000~N0530334A01001003+1.00000E+00+2.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-8.88000E-01+8.88000E-01+0.00000E+00+0.00000E+00-8.88000E-01-8.88000E-01+0.00000E+00+0.00000E+00-2.20000E-01+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+2.00000E+00000540024D02003004000000000570051025.0000E+010000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+2.00000E+0000052014900BHN0000003~001002+49.020590+008.367240+0129.0000.0000.0+00.00001125.0000E+010.0000E+000000GC~2006,328,11:07:00.0000~2007,012,07:30:00.0000~N0530334A01001003+1.00000E+00+2.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-8.88000E-01+8.88000E-01+0.00000E+00+0.00000E+00-8.88000E-01-8.88000E-01+0.00000E+00+0.00000E+00-2.20000E-01+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+2.00000E+00000540024D02003004000000000570051025.0000E+010000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+2.00000E+0000052014900BHZ0000003~001002+49.020590+008.367240+0129.0000.0000.0-90.00001125.0000E+010.0000E+000000GC~2006,328,11:07:00.0000~2007,012,07:30:00.0000~N0530334A01001003+1.00000E+00+2.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-8.88000E-01+8.88000E-01+0.00000E+00+0.00000E+00-8.88000E-01-8.88000E-01+0.00000E+00+0.00000E+00-2.20000E-01+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+2.00000E+00000540024D02003004000000000570051025.0000E+010000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+2.00000E+0000052014900HHE0000003~001002+49.020590+008.367240+0129.0000.0090.0+00.00001121.0000E+020.0000E+000000GC~2007,012,12:03:00.0000~2007,018,10:43:00.0000~N0530334A01001003+1.00000E+00+2.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-8.88000E-01+8.88000E-01+0.00000E+00+0.00000E+00-8.88000E-01-8.88000E-01+0.00000E+00+0.00000E+00-2.20000E-01+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+2.00000E+00000540024D02003004000000000570051021.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+2.00000E+0000052014900HHN0000003~001002+49.020590+008.367240+0129.0000.0000.0+00.00001121.0000E+020.0000E+000000GC~2007,012,12:03:00.0000~2007,018,10:43:00.0000~N0530334A01001003+1.00000E+00+2.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-8.88000E-01+8.88000E-01+0.00000E+00+0.00000006S*000E+00-8.88000E-01-8.88000E-01+0.00000E+00+0.00000E+00-2.20000E-01+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+2.00000E+00000540024D02003004000000000570051021.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+2.00000E+0000052014900HHZ0000003~001002+49.020590+008.367240+0129.0000.0000.0-90.00001121.0000E+020.0000E+000000GC~2007,012,12:03:00.0000~2007,018,10:43:00.0000~N0530334A01001003+1.00000E+00+2.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-8.88000E-01+8.88000E-01+0.00000E+00+0.00000E+00-8.88000E-01-8.88000E-01+0.00000E+00+0.00000E+00-2.20000E-01+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+2.00000E+00000540024D02003004000000000570051021.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+2.00000E+0000052014900BHE0000003~001002+49.020590+008.367240+0129.0000.0090.0+00.00001125.0000E+010.0000E+000000GC~2007,018,10:44:00.0000~2007,074,10:00:00.0000~N0530334A01001003+1.00000E+00+2.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-8.88000E-01+8.88000E-01+0.00000E+00+0.00000E+00-8.88000E-01-8.88000E-01+0.00000E+00+0.00000E+00-2.20000E-01+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+2.00000E+00000540024D02003004000000000570051025.0000E+010000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+2.00000E+0000052014900BHN0000003~001002+49.020590+008.367240+0129.0000.0000.0+00.00001125.0000E+010.0000E+000000GC~2007,018,10:44:00.0000~2007,074,10:00:00.0000~N0530334A01001003+1.00000E+00+2.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-8.88000E-01+8.88000E-01+0.00000E+00+0.00000E+00-8.88000E-01-8.88000E-01+0.00000E+00+0.00000E+00-2.20000E-01+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+2.00000E+00000540024D02003004000000000570051025.0000E+010000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+2.00000E+0000052014900BHZ0000003~001002+49.020590+008.367240+0129.0000.0000.0-90.00001125.0000E+010.0000E+000000GC~2007,018,10:44:00.0000~2007,074,10:00:00.0000~N0530334A01001003+1.00000E+00+2.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-8.88000E-01+8.88000E-01+0.00000E+00+0.00000E+00-8.88000E-01-8.88000E-01+0.00000E+00+0.00000E+00-2.20000E-01+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+2.00000E+00000540024D02003004000000000570051025.0000E+010000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+2.00000E+0000052014900HHE0000003~001002+49.020590+008.367240+0129.0000.0090.0+00.00001121.0000E+020.0000E+000000GC~2007,283,12:50:00.0000~2007,298,12:11:00.0000~N0530334A01001003+1.00000E+00+2.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-8.88000E-01+8.88000E-01+0.00000E+00+0.00000E+00-8.88000E-01-8.88000E-01+0.00000E+00+0.00000E+00-2.20000E-01+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+2.00000E+00000540024D02003004000000000570051021.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+2.00000E+0000052014900HHN0000003~001002+49.020590+008.367240+0129.0000.0000.0+00.00001121.0000E+020.0000E+000000GC~2007,283,12:50:00.0000~2007,298,12:11:00.0000~N0530334A01001003+1.00000E+00+2.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-8.88000E-01+8.88000E-01+0.00000E+00+0.00000E+00-8.88000E-01-8.88000E-01+0.00000E+00+0.00000E+00-2.20000E-01+0.00000E+00+0.00000E+00+0.00000E+000580035000007S*01+4.00000E+02+2.00000E+00000540024D02003004000000000570051021.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+2.00000E+0000052014900HHZ0000003~001002+49.020590+008.367240+0129.0000.0000.0-90.00001121.0000E+020.0000E+000000GC~2007,283,12:50:00.0000~2007,298,12:11:00.0000~N0530334A01001003+1.00000E+00+2.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-8.88000E-01+8.88000E-01+0.00000E+00+0.00000E+00-8.88000E-01-8.88000E-01+0.00000E+00+0.00000E+00-2.20000E-01+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+2.00000E+00000540024D02003004000000000570051021.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+2.00000E+0000052014900BHE0000003~001002+49.020590+008.367240+0129.0000.0090.0+00.00001125.0000E+010.0000E+000000GC~2007,298,12:13:00.0000~2007,325,14:36:00.0000~N0530334A01001003+1.00000E+00+2.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-8.88000E-01+8.88000E-01+0.00000E+00+0.00000E+00-8.88000E-01-8.88000E-01+0.00000E+00+0.00000E+00-2.20000E-01+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+2.00000E+00000540024D02003004000000000570051025.0000E+010000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+2.00000E+0000052014900BHN0000003~001002+49.020590+008.367240+0129.0000.0000.0+00.00001125.0000E+010.0000E+000000GC~2007,298,12:13:00.0000~2007,325,14:36:00.0000~N0530334A01001003+1.00000E+00+2.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-8.88000E-01+8.88000E-01+0.00000E+00+0.00000E+00-8.88000E-01-8.88000E-01+0.00000E+00+0.00000E+00-2.20000E-01+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+2.00000E+00000540024D02003004000000000570051025.0000E+010000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+2.00000E+0000052014900BHZ0000003~001002+49.020590+008.367240+0129.0000.0000.0-90.00001125.0000E+010.0000E+000000GC~2007,298,12:13:00.0000~2007,325,14:36:00.0000~N0530334A01001003+1.00000E+00+2.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-8.88000E-01+8.88000E-01+0.00000E+00+0.00000E+00-8.88000E-01-8.88000E-01+0.00000E+00+0.00000E+00-2.20000E-01+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+2.00000E+00000540024D02003004000000000570051025.0000E+010000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+2.00000E+0000052014900BHE0000003~001002+49.020590+008.367240+0129.0000.0090.0+00.00001125.0000E+010.0000E+000000GC~2007,325,14:37:00.0000~2008,017,07:53:00.0000~N0530334A01001003+1.00000E+00+2.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-8.88000E-01+8.88000E-01+0.00000E+00+0.00000E+00-8.88000E-01-8.88000E-01+0.00000E+00+0.00000E+00-2.20000E-01+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+2.00000E+00000540024D02003004000000000570051025.0000E+010000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+2.00000E+0000052014900BHN0000003~001002+49.020590+008.367240+0129.0000.0000.0+00.00001125.0000E+010.0000E+000000GC~2007,325,14:37:00.0000~2008,017,07:53:00.0000~N0530334A01001003+1.00000E+00+2.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-8.88000E-01+8.88000E-01+0.00000E+00+0.00000E+00-8.88000E-01-8.88000E-01+0.00000E+00+0.00000E+00-2.20000E-01+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+2.00000E+00000540024D02003004000000000570051025.0000E+010000100000+0.0000E+00+0.0000E+000580035000008S*02+1.00000E+06+0.00000E+0000058003500+4.00000E+08+2.00000E+0000052014900BHZ0000003~001002+49.020590+008.367240+0129.0000.0000.0-90.00001125.0000E+010.0000E+000000GC~2007,325,14:37:00.0000~2008,017,07:53:00.0000~N0530334A01001003+1.00000E+00+2.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-8.88000E-01+8.88000E-01+0.00000E+00+0.00000E+00-8.88000E-01-8.88000E-01+0.00000E+00+0.00000E+00-2.20000E-01+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+2.00000E+00000540024D02003004000000000570051025.0000E+010000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+2.00000E+0000052014900HHE0000002~001002+49.020590+008.367240+0129.0000.0090.0+00.00001121.0000E+020.0000E+000000GC~2008,193,09:51:00.0000~2008,340,10:00:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051021.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900HHN0000002~001002+49.020590+008.367240+0129.0000.0000.0+00.00001121.0000E+020.0000E+000000GC~2008,193,09:51:00.0000~2008,340,10:00:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051021.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900HHZ0000002~001002+49.020590+008.367240+0129.0000.0000.0-90.00001121.0000E+020.0000E+000000GC~2008,193,09:51:00.0000~2008,340,10:00:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000009S*000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051021.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900HHE0000002~001002+49.020590+008.367240+0129.0000.0090.0+00.00001121.0000E+020.0000E+000000GC~2009,132,11:19:00.0000~2010,046,14:00:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051021.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900HHN0000002~001002+49.020590+008.367240+0129.0000.0000.0+00.00001121.0000E+020.0000E+000000GC~2009,132,11:19:00.0000~2010,046,14:00:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051021.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900HHZ0000002~001002+49.020590+008.367240+0129.0000.0000.0-90.00001121.0000E+020.0000E+000000GC~2009,132,11:19:00.0000~2010,046,14:00:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051021.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900HHE0000002~001002+49.020590+008.367240+0129.0000.0090.0+00.00001121.0000E+020.0000E+000000GC~2010,046,14:28:00.0000~2010,097,07:26:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.0000010S*0000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051021.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900HHN0000002~001002+49.020590+008.367240+0129.0000.0000.0+00.00001121.0000E+020.0000E+000000GC~2010,046,14:28:00.0000~2010,097,07:26:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051021.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900HHZ0000002~001002+49.020590+008.367240+0129.0000.0000.0-90.00001121.0000E+020.0000E+000000GC~2010,046,14:28:00.0000~2010,097,07:26:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051021.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900HHE0000004~001002+49.020590+008.367240+0129.0000.0090.0+00.00001121.0000E+020.0000E+000000GC~2010,097,07:30:00.0000~2010,215,16:00:00.0000~N0530334A01001003+1.00000E+00+5.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-4.44000E+00+4.44000E+00+0.00000E+00+0.00000E+00-4.44000E+00-4.44000E+00+0.00000E+00+0.00000E+00-1.08300E+00+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+5.00000E+00000540024D02003004000000000570051021.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+5.00000E+0000052014900HHN0000004~001002+49.020590+008.367240+0129.0000.0000.0+00.00001121.0000E+020.0000E+000000GC~2010,097,07:30:00.0000~2010,215,16:00:00.0000~N0530334000011S*A01001003+1.00000E+00+5.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-4.44000E+00+4.44000E+00+0.00000E+00+0.00000E+00-4.44000E+00-4.44000E+00+0.00000E+00+0.00000E+00-1.08300E+00+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+5.00000E+00000540024D02003004000000000570051021.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+5.00000E+0000052014900HHZ0000004~001002+49.020590+008.367240+0129.0000.0000.0-90.00001121.0000E+020.0000E+000000GC~2010,097,07:30:00.0000~2010,215,16:00:00.0000~N0530334A01001003+1.00000E+00+5.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-4.44000E+00+4.44000E+00+0.00000E+00+0.00000E+00-4.44000E+00-4.44000E+00+0.00000E+00+0.00000E+00-1.08300E+00+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+5.00000E+00000540024D02003004000000000570051021.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+4.00000E+08+5.00000E+0000052014900HHE0000002~001002+49.020590+008.367240+0129.0000.0090.0+00.00001122.0000E+020.0000E+000000GC~2010,217,09:29:00.0000~2010,354,13:30:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051022.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900HHN0000002~001002+49.020590+008.367240+0129.0000.0000.0+00.00001122.0000E+020.0000E+000000GC~2010,217,09:29:00.0000~2010,354,13:30:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051022.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900HHZ0000002~001002+49.020590+008.367240+0129.0000.0000.0-90.00001122.0000E+020.0000E+000000GC~2010,217,09:29:00.0000~2010,354,13:30:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000012S*000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051022.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900HHE0000002~001002+49.020590+008.367240+0129.0000.0090.0+00.00001121.0000E+020.0000E+000000GC~2010,354,14:32:00.0000~2010,356,09:58:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051021.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900HHN0000002~001002+49.020590+008.367240+0129.0000.0000.0+00.00001121.0000E+020.0000E+000000GC~2010,354,14:32:00.0000~2010,356,09:58:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051021.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900HHZ0000002~001002+49.020590+008.367240+0129.0000.0000.0-90.00001121.0000E+020.0000E+000000GC~2010,354,14:32:00.0000~2010,356,09:58:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+0000 000013S 0540024D02003004000000000570051021.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900HHE0000002~001002+49.020590+008.367240+0129.0000.0090.0+00.00001122.0000E+020.0000E+000000GC~2010,356,09:59:00.0000~2011,092,17:30:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051022.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900HHN0000002~001002+49.020590+008.367240+0129.0000.0000.0+00.00001122.0000E+020.0000E+000000GC~2010,356,09:59:00.0000~2011,092,17:30:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051022.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900HHZ0000002~001002+49.020590+008.367240+0129.0000.0000.0-90.00001122.0000E+020.0000E+000000GC~2010,356,09:59:00.0000~2011,092,17:30:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051022.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900HHE0000002~001002+49.020590+008.367240+0129.0000.0090.0+00.00001122.0000E+020.0000E+000000GC~2011,105,10:19:00.0000~2012,128,09:35:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+000014S*00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051022.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900HHN0000002~001002+49.020590+008.367240+0129.0000.0000.0+00.00001122.0000E+020.0000E+000000GC~2011,105,10:19:00.0000~2012,128,09:35:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051022.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052014900HHZ0000002~001002+49.020590+008.367240+0129.0000.0000.0-90.00001122.0000E+020.0000E+000000GC~2011,105,10:19:00.0000~2012,128,09:35:00.0000~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051022.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052012700HHE0000002~001002+49.020590+008.367240+0129.0000.0090.0+00.00001122.0000E+020.0000E+000000GC~2012,128,09:36:00.0000~~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.0000015S*0000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051022.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052012700HHN0000002~001002+49.020590+008.367240+0129.0000.0000.0+00.00001122.0000E+020.0000E+000000GC~2012,128,09:36:00.0000~~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051022.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000052012700HHZ0000002~001002+49.020590+008.367240+0129.0000.0000.0-90.00001122.0000E+020.0000E+000000GC~2012,128,09:36:00.0000~~N0530862A01001003+3.47380E+17+2.00000E+00006+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00-1.51500E+01+0.00000E+00+0.00000E+00+0.00000E+00-1.76600E+02+0.00000E+00+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00-4.63100E+02+4.30500E+02+0.00000E+00+0.00000E+00011-3.70000E-02+3.70000E-02+0.00000E+00+0.00000E+00-3.70000E-02-3.70000E-02+0.00000E+00+0.00000E+00-1.56400E+01+0.00000E+00+0.00000E+00+0.00000E+00-9.73400E+01-4.00700E+02+0.00000E+00+0.00000E+00-9.73400E+01+4.00700E+02+0.00000E+00+0.00000E+00-2.55100E+02+0.00000E+00+0.00000E+00+0.00000E+00-3.74800E+02+0.00000E+00+0.00000E+00+0.00000E+00-5.20300E+02+0.00000E+00+0.00000E+00+0.00000E+00-1.05300E+04+1.00500E+04+0.00000E+00+0.00000E+00-1.05300E+04-1.00500E+04+0.00000E+00+0.00000E+00-1.33000E+04+0.00000E+00+0.00000E+00+0.00000E+00058003501+1.50000E+03+2.00000E+00000540024D02003004000000000570051022.0000E+020000100000+0.0000E+00+0.0000E+00058003502+1.00000E+06+0.00000E+0000058003500+1.50000E+09+2.00000E+0000 000016 \ No newline at end of file diff --git a/tests/test_Metadata/test_data/dless_multiple_times/MAGS2_LE_ROTT.dless b/tests/test_Metadata/test_data/dless_multiple_times/MAGS2_LE_ROTT.dless new file mode 100644 index 00000000..1d5849d3 --- /dev/null +++ b/tests/test_Metadata/test_data/dless_multiple_times/MAGS2_LE_ROTT.dless @@ -0,0 +1 @@ +000001V 010008402.4121950,001,00:00:00.0000~2500,001,00:00:00.0000~2018,194,18:08:41.0000~~~0110021001ROTT 000003 000002A 0300146Steim-1 Integer Compression Format~000105006F1 P4 W4 D C2 R1 P8 W4 D C2~P0 W4 N15 S2,0,1~T0 X W4~T1 Y4 W7 D C2~T2 Y2 W2 D C2~T3 N0 W4 D C2~0330047001Landeserdbebendienst Rheinland-Pfalz~0330061002LE-3D/BH, 1 s, 400 V/m/s-EDR-209, Low (default) ga~0330051003Titan 4g-EDR-209, Very Low gain, 200 sps~0340044001M/S~Velocity in Meters Per Second~0340020002A~Amperes~0340032003COUNTS~Digital Counts~0340062004M/S**2~Acceleration in Meters Per Second Per Second~ 000003S 0500128ROTT +49.129100+008.148700+0128.00006000Rottmuehle Steinweiler~0013210102014,325,12:00:00.0000~2015,078,13:00:00.0000~NLE0520149 EHE0000002~001002+49.129100+008.148700-0177.0305.0000.0+00.00001122.0000E+022.0000E-020000TG~2014,325,12:00:00.0000~2015,078,13:00:00.0000~N0530334A01001003+1.00000E+00+5.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-4.44400E+00+4.44400E+00+0.00000E+00+0.00000E+00-4.44400E+00-4.44400E+00+0.00000E+00+0.00000E+00-1.08300E+00+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+5.00000E+0000058003502+2.50000E+00+5.00000E-02000540048D030030040001+1.00000E+00+0.00000E+0000000570051031.9200E+050000100000+0.0000E+00+0.0000E+00058003503+4.00000E+05+5.00000E-02000541152D040040040047+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+3.81470E-06+0.00000E+00+2.28882E-05+0.00000E+00+8.01086E-05+0.00000E+00+2.13623E-04+0.00000E+00+4.80652E-04+0.00000E+00+9.61304E-04+0.00000E+00+1.76239E-03+0.00000E+00+3.02124E-03+0.00000E+00+4.88663E-03+0.00000E+00+7.49969E-03+0.00000E+00+1.09749E-02+0.00000E+00+1.53809E-02+0.00000E+00+2.07214E-02+0.00000E+00+2.69165E-02+0.00000E+00+3.37830E-02+0.00000E+00+4.10156E-02+0.00000E+00+4.82254E-02+0.00000E+00+5.49774E-02+0.00000E+00+6.08292E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.92444E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.08292E-02+0.00000E+00+5.49774E-02+0.00000E+00+4.82254E-02+0.00000E+00+4.10156E-02+0.00000E+00+3.37830E-02+0.00000E+00+2.69165E-02+0.00000E+00+2.07214E-02+0.00000E+00+1.53809E-02+0.00000E+00+1.09749E-02+0.00000E+00+7.49969E-03+0.00000E+00+4.88663E-03+0.00000E+00+3.02124E-03+0.00000E+00+1.76239E-03+0.00000E+00+9.61304E-04+0.00000E+00+4.80652E-04+0.00000E+00+2.13623E-04+0.00000E+00+8.01086E-05+0.00000E+00+2.28882E-05+0.00000E+00+3.81470E-06+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+0000000570051041.9200E+050000800000+1.1979E-04+1.1979E-04058003504+1.00000E+00+5.00000E-02000541776D050040040073+7.86395E-07+0.00000E+00+2.15223E-06+0.00000E+00+4.09013E-06+0.00000E+00+6.42053E-06+0.00000E+00+7.61300E-06+0.00000E+00+4.52134E-06+0.00000E+00-8.38839E-06+0.00000E+00-4.00745E-05+0.00000E+00-1.08702E-04+0.00000E+00-2.31570E-04+0.00000E+00-4.32673E-04+0.00000E+00-7.41861E-04+0.00000E+00-1.18635E-03+0.00000E+00-1.78887E-03+0.00000E+00-2.56156E-03+0.00000E+00-3.49756E-03+0.00000E+00-4.54784E-03+0.00000E+00-5.64473E-03+0.00000E+00-6.67437E-03+0.00000E+00-7.46932E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.53472E-03+0.00000E+00-6.33480E-03+0.00000E+00-3.99943E-03+0.00000E+00-3.60688E-04+0.00000E+00+4.71408E-03+0.00000E+00+1.12572E-02+0.00000E+00+1.91611E-02+0.00000E+00+2.82115E-02+0.00000E+00+3.80655E-02+0.00000E+00+4.82646E-02+0.00000E+00+5.82654E-02+0.00000E+00+6.75164E-02+0.00000E+00+7.54318E-02+0.00000E+00+8.14859E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.65986E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.14859E-02+0.00000E+00+7.54318E-02+0.00000E+00+6.75164E-02+0.00000E+00+5.82654E-02+0.00000E+00+4.82646E-02+0.00000E+00+3.80655E-02+0.00000E+00+2.82115E-02+0.00000E+00+1.91611E-02+0.00000E+00+1.12572E-02+0.00000E+00+4.71408E-03+0.00000E+00-3.60688E-04+0.00000E+00-3.99943E-03+0.00000E+00-6.33480E-03+0.00000E+00-7.53472E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.46932E-03+0.00000E+00-6.67437E-03+0.00000E+00-5.64473E-03+0.00000E+00-4.54784E-03+0.00000E+00-3.49756E-03+0.00000E+00-2.56156E-03+0.00000E+00-1.78887E-03+0.00000E+00-1.18635E-03+0.00000E+00-7.41861E-04+0.00000E+00-4.32673E-04+0.00000E+00-2.31570E-04+0.00000E+00-1.08702E-04+0.00000E+00-4.00745E-05+0.00000E+00-8.38839E-06+0.00000E+00+4.52134E-06+0.00000E+00+7.61300E-06+0.00000E+00+6.42053E-06+0.00000E+00+4.09013E-06+0.00000E+00+2.15223E-06+0.00000E+00+7.86395E-07+0.00000E+0000000570051052.4000E+040000800000+1.5000E-03+1.5000E-03058003505+1.00000E+00+5.00000E-02000544320D060040040179+1.65488E-07+0.00000E+00+7.48132E-07+0.00000E+00+1.76664E-06+0.00000E+00+1.62612E-06+0.00000E+00-5.16640E-06+0.00000E+00-3.00692E-05+0.00000E+00-8.97376E000004S*-05+0.00000E+00-1.99571E-04+0.00000E+00-3.61172E-04+0.00000E+00-5.48500E-04+0.00000E+00-7.02688E-04+0.00000E+00-7.45976E-04+0.00000E+00-6.17072E-04+0.00000E+00-3.15191E-04+0.00000E+00+7.38188E-05+0.00000E+00+3.95725E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.15263E-04+0.00000E+00-5.96548E-05+0.00000E+00-4.11872E-04+0.00000E+00-5.12780E-04+0.00000E+00-2.69536E-04+0.00000E+00+1.89248E-04+0.00000E+00+5.66172E-04+0.00000E+00+5.78372E-04+0.00000E+00+1.64727E-04+0.00000E+00-4.31664E-04+0.00000E+00-7.92432E-04+0.00000E+00-6.08316E-04+0.00000E+00+6.76780E-05+0.00000E+00+7.98316E-04+0.00000E+00+1.03172E-03+0.00000E+00+5.07504E-04+0.00000E+00-4.91744E-04+0.00000E+00-1.26810E-03+0.00000E+00-1.18261E-03+0.00000E+00-1.64670E-04+0.00000E+00+1.13876E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.09177E-03+0.00000E+00-5.24120E-04+0.00000E+00-1.97068E-03+0.00000E+00-2.08536E-03+0.00000E+00-5.79052E-04+0.00000E+00+1.60144E-03+0.00000E+00+2.83576E-03+0.00000E+00+2.01276E-03+0.00000E+00-5.13156E-04+0.00000E+00-2.98815E-03+0.00000E+00-3.44765E-03+0.00000E+00-1.24599E-03+0.00000E+00+2.24272E-03+0.00000E+00+4.43120E-03+0.00000E+00+3.40590E-03+0.00000E+00-4.57304E-04+0.00000E+00-4.47584E-03+0.00000E+00-5.47828E-03+0.00000E+00-2.26220E-03+0.00000E+00+3.18035E-03+0.00000E+00+6.81616E-03+0.00000E+00+5.50776E-03+0.00000E+00-3.65328E-04+0.00000E+00-6.73316E-03+0.00000E+00-8.58052E-03+0.00000E+00-3.81782E-03+0.00000E+00+4.65228E-03+0.00000E+00+1.05646E-02+0.00000E+00+8.82560E-03+0.00000E+00-2.56374E-04+0.00000E+00-1.04496E-02+0.00000E+00-1.37224E-02+0.00000E+00-6.39512E-03+0.00000E+00+7.26512E-03+0.00000E+00+1.72312E-02+0.00000E+00+1.48181E-02+0.00000E+00-1.54011E-04+0.00000E+00-1.77680E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.17549E-02+0.00000E+00+1.32733E-02+0.00000E+00+3.32147E-02+0.00000E+00+3.01309E-02+0.00000E+00-8.13468E-05+0.00000E+00-4.08284E-02+0.00000E+00-6.13256E-02+0.00000E+00-3.42109E-02+0.00000E+00+4.58968E-02+0.00000E+00+1.54886E-01+0.00000E+00+2.48713E-01+0.00000E+00+2.85658E-01+0.00000E+00+2.48713E-01+0.00000E+00+1.54886E-01+0.00000E+00+4.58968E-02+0.00000E+00-3.42109E-02+0.00000E+00-6.13256E-02+0.00000E+00-4.08284E-02+0.00000E+00-8.13468E-05+0.00000E+00+3.01309E-02+0.00000E+00+3.32147E-02+0.00000E+00+1.32733E-02+0.00000E+00-1.17549E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.77680E-02+0.00000E+00-1.54011E-04+0.00000E+00+1.48181E-02+0.00000E+00+1.72312E-02+0.00000E+00+7.26512E-03+0.00000E+00-6.39512E-03+0.00000E+00-1.37224E-02+0.00000E+00-1.04496E-02+0.00000E+00-2.56374E-04+0.00000E+00+8.82560E-03+0.00000E+00+1.05646E-02+0.00000E+00+4.65228E-03+0.00000E+00-3.81782E-03+0.00000E+00-8.58052E-03+0.00000E+00-6.73316E-03+0.00000E+00-3.65328E-04+0.00000E+00+5.50776E-03+0.00000E+00+6.81616E-03+0.00000E+00+3.18035E-03+0.00000E+00-2.26220E-03+0.00000E+00-5.47828E-03+0.00000E+00-4.47584E-03+0.00000E+00-4.57304E-04+0.00000E+00+3.40590E-03+0.00000E+00+4.43120E-03+0.00000E+00+2.24272E-03+0.00000E+00-1.24599E-03+0.00000E+00-3.44765E-03+0.00000E+00-2.98815E-03+0.00000E+00-5.13156E-04+0.00000E+00+2.01276E-03+0.00000E+00+2.83576E-03+0.00000E+00+1.60144E-03+0.00000E+00-5.79052E-04+0.00000E+00-2.08536E-03+0.00000E+00-1.97068E-03+0.00000E+00-5.24120E-04+0.00000E+00+1.09177E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.13876E-03+0.00000E+00-1.64670E-04+0.00000E+00-1.18261E-03+0.00000E+00-1.26810E-03+0.00000E+00-4.91744E-04+0.00000E+00+5.07504E-04+0.00000E+00+1.03172E-03+0.00000E+00+7.98316E-04+0.00000E+00+6.76780E-05+0.00000E+00-6.08316E-04+0.00000E+00-7.92432E-04+0.00000E+00-4.31664E-04+0.00000E+00+1.64727E-04+0.00000E+00+5.78372E-04+0.00000E+00+5.66172E-04+0.00000E+00+1.89248E-04+0.00000E+00-2.69536E-04+0.00000E+00-5.12780E-04+0.00000E+00-4.11872E-04+0.00000E+00-5.96548E-05+0.00000E+00+3.15263E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.95725E-04+0.00000E+00+7.38188E-05+0.00000E+00-3.15191E-04+0.00000E+00-6.17072E-04+0.00000E+00-7.45976E-04+0.00000E+00-7.02688E-04+0.00000E+00-5.48500E-04+0.00000E+00-3.61172E-04+0.00000E+00-1.99571E-04+0.00000E+00-8.97376E-05+0.00000E+00-3.00692E-05+0.00000E+00-5.16640E-06+0.00000E+00+1.62612E-06+0.00000E+00+1.76664E-06+0.00000005S*000E+00+7.48132E-07+0.00000E+00+1.65488E-07+0.00000E+0000000570051063.0000E+030000300000+2.9667E-02+2.9667E-02058003506+1.00000E+00+5.00000E-02000547680D070040040319+7.72762E-09+0.00000E+00+4.52378E-09+0.00000E+00-5.32080E-08+0.00000E+00-2.80036E-07+0.00000E+00-9.08544E-07+0.00000E+00-2.34472E-06+0.00000E+00-5.21464E-06+0.00000E+00-1.03793E-05+0.00000E+00-1.88893E-05+0.00000E+00-3.18550E-05+0.00000E+00-5.02182E-05+0.00000E+00-7.44366E-05+0.00000E+00-1.04124E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.72307E-04+0.00000E+00-2.03638E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26268E-04+0.00000E+00-1.95955E-04+0.00000E+00-1.45142E-04+0.00000E+00-7.80380E-05+0.00000E+00-2.59160E-06+0.00000E+00+7.03544E-05+0.00000E+00+1.28752E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.27774E-04+0.00000E+00+6.50032E-05+0.00000E+00-1.42499E-05+0.00000E+00-9.29802E-05+0.00000E+00-1.52783E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.00242E-04+0.00000E+00-1.01214E-05+0.00000E+00+8.95560E-05+0.00000E+00+1.73672E-04+0.00000E+00+2.18690E-04+0.00000E+00+2.09036E-04+0.00000E+00+1.42114E-04+0.00000E+00+3.04418E-05+0.00000E+00-1.00068E-04+0.00000E+00-2.15680E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.79208E-04+0.00000E+00-1.97535E-04+0.00000E+00-5.29412E-05+0.00000E+00+1.20744E-04+0.00000E+00+2.78002E-04+0.00000E+00+3.73138E-04+0.00000E+00+3.73118E-04+0.00000E+00+2.68272E-04+0.00000E+00+7.75194E-05+0.00000E+00-1.53942E-04+0.00000E+00-3.64712E-04+0.00000E+00-4.92968E-04+0.00000E+00-4.94058E-04+0.00000E+00-3.55056E-04+0.00000E+00-1.01725E-04+0.00000E+00+2.04904E-04+0.00000E+00+4.82464E-04+0.00000E+00+6.48778E-04+0.00000E+00+6.45532E-04+0.00000E+00+4.57442E-04+0.00000E+00+1.20911E-04+0.00000E+00-2.81414E-04+0.00000E+00-6.40040E-04+0.00000E+00-8.47708E-04+0.00000E+00-8.30656E-04+0.00000E+00-5.73180E-04+0.00000E+00-1.27650E-04+0.00000E+00+3.94310E-04+0.00000E+00+8.48744E-04+0.00000E+00+1.09821E-03+0.00000E+00+1.05234E-03+0.00000E+00+6.98398E-04+0.00000E+00+1.11999E-04+0.00000E+00-5.57036E-04+0.00000E+00-1.12174E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.31236E-03+0.00000E+00-8.26764E-04+0.00000E+00-6.09068E-05+0.00000E+00+7.85842E-04+0.00000E+00+1.47374E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.61011E-03+0.00000E+00+9.47830E-04+0.00000E+00-4.36276E-05+0.00000E+00-1.10163E-03+0.00000E+00-1.92275E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.94359E-03+0.00000E+00-1.04776E-03+0.00000E+00+2.24088E-04+0.00000E+00+1.52962E-03+0.00000E+00+2.48958E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.30850E-03+0.00000E+00+1.10801E-03+0.00000E+00-5.08938E-04+0.00000E+00-2.10070E-03+0.00000E+00-3.19878E-03+0.00000E+00-3.44326E-03+0.00000E+00-2.69684E-03+0.00000E+00-1.10249E-03+0.00000E+00+9.36892E-04+0.00000E+00+2.85672E-03+0.00000E+00+4.08406E-03+0.00000E+00+4.20524E-03+0.00000E+00+3.09968E-03+0.00000E+00+9.97970E-04+0.00000E+00-1.55873E-03+0.00000E+00-3.85362E-03+0.00000E+00-5.19124E-03+0.00000E+00-5.10336E-03+0.00000E+00-3.50440E-03+0.00000E+00-7.46438E-04+0.00000E+00+2.44968E-03+0.00000E+00+5.17690E-03+0.00000E+00+6.59364E-03+0.00000E+00+6.17604E-03+0.00000E+00+3.89756E-03+0.00000E+00+2.77256E-04+0.00000E+00-3.72784E-03+0.00000E+00-6.96714E-03+0.00000E+00-8.41784E-03+0.00000E+00-7.49572E-03+0.00000E+00-4.26426E-03+0.00000E+00+5.27466E-04+0.00000E+00+5.60328E-03+0.00000E+00+9.48592E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.21506E-03+0.00000E+00+4.58962E-03+0.00000E+00-1.89363E-03+0.00000E+00-8.50506E-03+0.00000E+00-1.32925E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.16967E-02+0.00000E+00-4.85962E-03+0.00000E+00+4.34870E-03+0.00000E+00+1.34983E-02+0.00000E+00+1.98472E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.60019E-02+0.00000E+00+5.06204E-03+0.00000E+00-9.55078E-03+0.00000E+00-2.42030E-02+0.00000E+00-3.45266E-02+0.00000E+00-3.63864E-02+0.00000E+00-2.68872E-02+0.00000E+00-5.18748E-03+0.00000E+00+2.70918E-02+0.00000E+00+6.59838E-02+0.00000E+00+1.05820E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.71897E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.05820E-01+0.00000E+00+6.59838E-0000006S*2+0.00000E+00+2.70918E-02+0.00000E+00-5.18748E-03+0.00000E+00-2.68872E-02+0.00000E+00-3.63864E-02+0.00000E+00-3.45266E-02+0.00000E+00-2.42030E-02+0.00000E+00-9.55078E-03+0.00000E+00+5.06204E-03+0.00000E+00+1.60019E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.98472E-02+0.00000E+00+1.34983E-02+0.00000E+00+4.34870E-03+0.00000E+00-4.85962E-03+0.00000E+00-1.16967E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.32925E-02+0.00000E+00-8.50506E-03+0.00000E+00-1.89363E-03+0.00000E+00+4.58962E-03+0.00000E+00+9.21506E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.48592E-03+0.00000E+00+5.60328E-03+0.00000E+00+5.27466E-04+0.00000E+00-4.26426E-03+0.00000E+00-7.49572E-03+0.00000E+00-8.41784E-03+0.00000E+00-6.96714E-03+0.00000E+00-3.72784E-03+0.00000E+00+2.77256E-04+0.00000E+00+3.89756E-03+0.00000E+00+6.17604E-03+0.00000E+00+6.59364E-03+0.00000E+00+5.17690E-03+0.00000E+00+2.44968E-03+0.00000E+00-7.46438E-04+0.00000E+00-3.50440E-03+0.00000E+00-5.10336E-03+0.00000E+00-5.19124E-03+0.00000E+00-3.85362E-03+0.00000E+00-1.55873E-03+0.00000E+00+9.97970E-04+0.00000E+00+3.09968E-03+0.00000E+00+4.20524E-03+0.00000E+00+4.08406E-03+0.00000E+00+2.85672E-03+0.00000E+00+9.36892E-04+0.00000E+00-1.10249E-03+0.00000E+00-2.69684E-03+0.00000E+00-3.44326E-03+0.00000E+00-3.19878E-03+0.00000E+00-2.10070E-03+0.00000E+00-5.08938E-04+0.00000E+00+1.10801E-03+0.00000E+00+2.30850E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.48958E-03+0.00000E+00+1.52962E-03+0.00000E+00+2.24088E-04+0.00000E+00-1.04776E-03+0.00000E+00-1.94359E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.92275E-03+0.00000E+00-1.10163E-03+0.00000E+00-4.36276E-05+0.00000E+00+9.47830E-04+0.00000E+00+1.61011E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.47374E-03+0.00000E+00+7.85842E-04+0.00000E+00-6.09068E-05+0.00000E+00-8.26764E-04+0.00000E+00-1.31236E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.12174E-03+0.00000E+00-5.57036E-04+0.00000E+00+1.11999E-04+0.00000E+00+6.98398E-04+0.00000E+00+1.05234E-03+0.00000E+00+1.09821E-03+0.00000E+00+8.48744E-04+0.00000E+00+3.94310E-04+0.00000E+00-1.27650E-04+0.00000E+00-5.73180E-04+0.00000E+00-8.30656E-04+0.00000E+00-8.47708E-04+0.00000E+00-6.40040E-04+0.00000E+00-2.81414E-04+0.00000E+00+1.20911E-04+0.00000E+00+4.57442E-04+0.00000E+00+6.45532E-04+0.00000E+00+6.48778E-04+0.00000E+00+4.82464E-04+0.00000E+00+2.04904E-04+0.00000E+00-1.01725E-04+0.00000E+00-3.55056E-04+0.00000E+00-4.94058E-04+0.00000E+00-4.92968E-04+0.00000E+00-3.64712E-04+0.00000E+00-1.53942E-04+0.00000E+00+7.75194E-05+0.00000E+00+2.68272E-04+0.00000E+00+3.73118E-04+0.00000E+00+3.73138E-04+0.00000E+00+2.78002E-04+0.00000E+00+1.20744E-04+0.00000E+00-5.29412E-05+0.00000E+00-1.97535E-04+0.00000E+00-2.79208E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.15680E-04+0.00000E+00-1.00068E-04+0.00000E+00+3.04418E-05+0.00000E+00+1.42114E-04+0.00000E+00+2.09036E-04+0.00000E+00+2.18690E-04+0.00000E+00+1.73672E-04+0.00000E+00+8.95560E-05+0.00000E+00-1.01214E-05+0.00000E+00-1.00242E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.52783E-04+0.00000E+00-9.29802E-05+0.00000E+00-1.42499E-05+0.00000E+00+6.50032E-05+0.00000E+00+1.27774E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.28752E-04+0.00000E+00+7.03544E-05+0.00000E+00-2.59160E-06+0.00000E+00-7.80380E-05+0.00000E+00-1.45142E-04+0.00000E+00-1.95955E-04+0.00000E+00-2.26268E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.03638E-04+0.00000E+00-1.72307E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.04124E-04+0.00000E+00-7.44366E-05+0.00000E+00-5.02182E-05+0.00000E+00-3.18550E-05+0.00000E+00-1.88893E-05+0.00000E+00-1.03793E-05+0.00000E+00-5.21464E-06+0.00000E+00-2.34472E-06+0.00000E+00-9.08544E-07+0.00000E+00-2.80036E-07+0.00000E+00-5.32080E-08+0.00000E+00+4.52378E-09+0.00000E+00+7.72762E-09+0.00000E+0000000570051071.0000E+030000500000+1.5900E-01+1.5900E-01058003507+1.00000E+00+5.00000E-0200058003500+2.78845E+05+5.00000E-02000520149 EHN0000002~001002+49.129100+008.148700-0177.0305.0000.0+00.00001122.0000E+022.0000E-020000TG~2014,325,12:00:00.0000~2015,078,13:00:00.0000~N0530334A01001003+1.00000E+00+5.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0000007S*.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-4.44400E+00+4.44400E+00+0.00000E+00+0.00000E+00-4.44400E+00-4.44400E+00+0.00000E+00+0.00000E+00-1.08300E+00+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+5.00000E+0000058003502+2.50000E+00+5.00000E-02000540048D030030040001+1.00000E+00+0.00000E+0000000570051031.9200E+050000100000+0.0000E+00+0.0000E+00058003503+4.00000E+05+5.00000E-02000541152D040040040047+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+3.81470E-06+0.00000E+00+2.28882E-05+0.00000E+00+8.01086E-05+0.00000E+00+2.13623E-04+0.00000E+00+4.80652E-04+0.00000E+00+9.61304E-04+0.00000E+00+1.76239E-03+0.00000E+00+3.02124E-03+0.00000E+00+4.88663E-03+0.00000E+00+7.49969E-03+0.00000E+00+1.09749E-02+0.00000E+00+1.53809E-02+0.00000E+00+2.07214E-02+0.00000E+00+2.69165E-02+0.00000E+00+3.37830E-02+0.00000E+00+4.10156E-02+0.00000E+00+4.82254E-02+0.00000E+00+5.49774E-02+0.00000E+00+6.08292E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.92444E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.08292E-02+0.00000E+00+5.49774E-02+0.00000E+00+4.82254E-02+0.00000E+00+4.10156E-02+0.00000E+00+3.37830E-02+0.00000E+00+2.69165E-02+0.00000E+00+2.07214E-02+0.00000E+00+1.53809E-02+0.00000E+00+1.09749E-02+0.00000E+00+7.49969E-03+0.00000E+00+4.88663E-03+0.00000E+00+3.02124E-03+0.00000E+00+1.76239E-03+0.00000E+00+9.61304E-04+0.00000E+00+4.80652E-04+0.00000E+00+2.13623E-04+0.00000E+00+8.01086E-05+0.00000E+00+2.28882E-05+0.00000E+00+3.81470E-06+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+0000000570051041.9200E+050000800000+1.1979E-04+1.1979E-04058003504+1.00000E+00+5.00000E-02000541776D050040040073+7.86395E-07+0.00000E+00+2.15223E-06+0.00000E+00+4.09013E-06+0.00000E+00+6.42053E-06+0.00000E+00+7.61300E-06+0.00000E+00+4.52134E-06+0.00000E+00-8.38839E-06+0.00000E+00-4.00745E-05+0.00000E+00-1.08702E-04+0.00000E+00-2.31570E-04+0.00000E+00-4.32673E-04+0.00000E+00-7.41861E-04+0.00000E+00-1.18635E-03+0.00000E+00-1.78887E-03+0.00000E+00-2.56156E-03+0.00000E+00-3.49756E-03+0.00000E+00-4.54784E-03+0.00000E+00-5.64473E-03+0.00000E+00-6.67437E-03+0.00000E+00-7.46932E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.53472E-03+0.00000E+00-6.33480E-03+0.00000E+00-3.99943E-03+0.00000E+00-3.60688E-04+0.00000E+00+4.71408E-03+0.00000E+00+1.12572E-02+0.00000E+00+1.91611E-02+0.00000E+00+2.82115E-02+0.00000E+00+3.80655E-02+0.00000E+00+4.82646E-02+0.00000E+00+5.82654E-02+0.00000E+00+6.75164E-02+0.00000E+00+7.54318E-02+0.00000E+00+8.14859E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.65986E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.14859E-02+0.00000E+00+7.54318E-02+0.00000E+00+6.75164E-02+0.00000E+00+5.82654E-02+0.00000E+00+4.82646E-02+0.00000E+00+3.80655E-02+0.00000E+00+2.82115E-02+0.00000E+00+1.91611E-02+0.00000E+00+1.12572E-02+0.00000E+00+4.71408E-03+0.00000E+00-3.60688E-04+0.00000E+00-3.99943E-03+0.00000E+00-6.33480E-03+0.00000E+00-7.53472E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.46932E-03+0.00000E+00-6.67437E-03+0.00000E+00-5.64473E-03+0.00000E+00-4.54784E-03+0.00000E+00-3.49756E-03+0.00000E+00-2.56156E-03+0.00000E+00-1.78887E-03+0.00000E+00-1.18635E-03+0.00000E+00-7.41861E-04+0.00000E+00-4.32673E-04+0.00000E+00-2.31570E-04+0.00000E+00-1.08702E-04+0.00000E+00-4.00745E-05+0.00000E+00-8.38839E-06+0.00000E+00+4.52134E-06+0.00000E+00+7.61300E-06+0.00000E+00+6.42053E-06+0.00000E+00+4.09013E-06+0.00000E+00+2.15223E-06+0.00000E+00+7.86395E-07+0.00000E+0000000570051052.4000E+040000800000+1.5000E-03+1.5000E-03058003505+1.00000E+00+5.00000E-02000544320D060040040179+1.65488E-07+0.00000E+00+7.48132E-07+0.00000E+00+1.76664E-06+0.00000E+00+1.62612E-06+0.00000E+00-5.16640E-06+0.00000E+00-3.00692E-05+0.00000E+00-8.97376E-05+0.00000E+00-1.99571E-04+0.00000E+00-3.61172E-04+0.00000E+00-5.48500E-04+0.00000E+00-7.02688E-04+0.00000E+00-7.45976E-04+0.00000E+00-6.17072E-04+0.00000E+00-3.15191E-04+0.00000E+00+7.38188E-05+0.00000E+00+3.95725E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.15263E-04+0.00000E+00-5.96548E-05+0.00000E+00-4.11872E-04+0.00000E+00-5.12780E-04+0.00000E+00-2.6953000008S*6E-04+0.00000E+00+1.89248E-04+0.00000E+00+5.66172E-04+0.00000E+00+5.78372E-04+0.00000E+00+1.64727E-04+0.00000E+00-4.31664E-04+0.00000E+00-7.92432E-04+0.00000E+00-6.08316E-04+0.00000E+00+6.76780E-05+0.00000E+00+7.98316E-04+0.00000E+00+1.03172E-03+0.00000E+00+5.07504E-04+0.00000E+00-4.91744E-04+0.00000E+00-1.26810E-03+0.00000E+00-1.18261E-03+0.00000E+00-1.64670E-04+0.00000E+00+1.13876E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.09177E-03+0.00000E+00-5.24120E-04+0.00000E+00-1.97068E-03+0.00000E+00-2.08536E-03+0.00000E+00-5.79052E-04+0.00000E+00+1.60144E-03+0.00000E+00+2.83576E-03+0.00000E+00+2.01276E-03+0.00000E+00-5.13156E-04+0.00000E+00-2.98815E-03+0.00000E+00-3.44765E-03+0.00000E+00-1.24599E-03+0.00000E+00+2.24272E-03+0.00000E+00+4.43120E-03+0.00000E+00+3.40590E-03+0.00000E+00-4.57304E-04+0.00000E+00-4.47584E-03+0.00000E+00-5.47828E-03+0.00000E+00-2.26220E-03+0.00000E+00+3.18035E-03+0.00000E+00+6.81616E-03+0.00000E+00+5.50776E-03+0.00000E+00-3.65328E-04+0.00000E+00-6.73316E-03+0.00000E+00-8.58052E-03+0.00000E+00-3.81782E-03+0.00000E+00+4.65228E-03+0.00000E+00+1.05646E-02+0.00000E+00+8.82560E-03+0.00000E+00-2.56374E-04+0.00000E+00-1.04496E-02+0.00000E+00-1.37224E-02+0.00000E+00-6.39512E-03+0.00000E+00+7.26512E-03+0.00000E+00+1.72312E-02+0.00000E+00+1.48181E-02+0.00000E+00-1.54011E-04+0.00000E+00-1.77680E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.17549E-02+0.00000E+00+1.32733E-02+0.00000E+00+3.32147E-02+0.00000E+00+3.01309E-02+0.00000E+00-8.13468E-05+0.00000E+00-4.08284E-02+0.00000E+00-6.13256E-02+0.00000E+00-3.42109E-02+0.00000E+00+4.58968E-02+0.00000E+00+1.54886E-01+0.00000E+00+2.48713E-01+0.00000E+00+2.85658E-01+0.00000E+00+2.48713E-01+0.00000E+00+1.54886E-01+0.00000E+00+4.58968E-02+0.00000E+00-3.42109E-02+0.00000E+00-6.13256E-02+0.00000E+00-4.08284E-02+0.00000E+00-8.13468E-05+0.00000E+00+3.01309E-02+0.00000E+00+3.32147E-02+0.00000E+00+1.32733E-02+0.00000E+00-1.17549E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.77680E-02+0.00000E+00-1.54011E-04+0.00000E+00+1.48181E-02+0.00000E+00+1.72312E-02+0.00000E+00+7.26512E-03+0.00000E+00-6.39512E-03+0.00000E+00-1.37224E-02+0.00000E+00-1.04496E-02+0.00000E+00-2.56374E-04+0.00000E+00+8.82560E-03+0.00000E+00+1.05646E-02+0.00000E+00+4.65228E-03+0.00000E+00-3.81782E-03+0.00000E+00-8.58052E-03+0.00000E+00-6.73316E-03+0.00000E+00-3.65328E-04+0.00000E+00+5.50776E-03+0.00000E+00+6.81616E-03+0.00000E+00+3.18035E-03+0.00000E+00-2.26220E-03+0.00000E+00-5.47828E-03+0.00000E+00-4.47584E-03+0.00000E+00-4.57304E-04+0.00000E+00+3.40590E-03+0.00000E+00+4.43120E-03+0.00000E+00+2.24272E-03+0.00000E+00-1.24599E-03+0.00000E+00-3.44765E-03+0.00000E+00-2.98815E-03+0.00000E+00-5.13156E-04+0.00000E+00+2.01276E-03+0.00000E+00+2.83576E-03+0.00000E+00+1.60144E-03+0.00000E+00-5.79052E-04+0.00000E+00-2.08536E-03+0.00000E+00-1.97068E-03+0.00000E+00-5.24120E-04+0.00000E+00+1.09177E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.13876E-03+0.00000E+00-1.64670E-04+0.00000E+00-1.18261E-03+0.00000E+00-1.26810E-03+0.00000E+00-4.91744E-04+0.00000E+00+5.07504E-04+0.00000E+00+1.03172E-03+0.00000E+00+7.98316E-04+0.00000E+00+6.76780E-05+0.00000E+00-6.08316E-04+0.00000E+00-7.92432E-04+0.00000E+00-4.31664E-04+0.00000E+00+1.64727E-04+0.00000E+00+5.78372E-04+0.00000E+00+5.66172E-04+0.00000E+00+1.89248E-04+0.00000E+00-2.69536E-04+0.00000E+00-5.12780E-04+0.00000E+00-4.11872E-04+0.00000E+00-5.96548E-05+0.00000E+00+3.15263E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.95725E-04+0.00000E+00+7.38188E-05+0.00000E+00-3.15191E-04+0.00000E+00-6.17072E-04+0.00000E+00-7.45976E-04+0.00000E+00-7.02688E-04+0.00000E+00-5.48500E-04+0.00000E+00-3.61172E-04+0.00000E+00-1.99571E-04+0.00000E+00-8.97376E-05+0.00000E+00-3.00692E-05+0.00000E+00-5.16640E-06+0.00000E+00+1.62612E-06+0.00000E+00+1.76664E-06+0.00000E+00+7.48132E-07+0.00000E+00+1.65488E-07+0.00000E+0000000570051063.0000E+030000300000+2.9667E-02+2.9667E-02058003506+1.00000E+00+5.00000E-02000547680D070040040319+7.72762E-09+0.00000E+00+4.52378E-09+0.00000E+00-5.32080E-08+0.00000E+00-2.80036E-07+0.00000E+00-9.08544E-07+0.00000E+00-2.34472E-06+0.00000E+00-5.21464E-06+0.00000E+00-1.03793E-05+0.00000E+00-000009S*1.88893E-05+0.00000E+00-3.18550E-05+0.00000E+00-5.02182E-05+0.00000E+00-7.44366E-05+0.00000E+00-1.04124E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.72307E-04+0.00000E+00-2.03638E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26268E-04+0.00000E+00-1.95955E-04+0.00000E+00-1.45142E-04+0.00000E+00-7.80380E-05+0.00000E+00-2.59160E-06+0.00000E+00+7.03544E-05+0.00000E+00+1.28752E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.27774E-04+0.00000E+00+6.50032E-05+0.00000E+00-1.42499E-05+0.00000E+00-9.29802E-05+0.00000E+00-1.52783E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.00242E-04+0.00000E+00-1.01214E-05+0.00000E+00+8.95560E-05+0.00000E+00+1.73672E-04+0.00000E+00+2.18690E-04+0.00000E+00+2.09036E-04+0.00000E+00+1.42114E-04+0.00000E+00+3.04418E-05+0.00000E+00-1.00068E-04+0.00000E+00-2.15680E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.79208E-04+0.00000E+00-1.97535E-04+0.00000E+00-5.29412E-05+0.00000E+00+1.20744E-04+0.00000E+00+2.78002E-04+0.00000E+00+3.73138E-04+0.00000E+00+3.73118E-04+0.00000E+00+2.68272E-04+0.00000E+00+7.75194E-05+0.00000E+00-1.53942E-04+0.00000E+00-3.64712E-04+0.00000E+00-4.92968E-04+0.00000E+00-4.94058E-04+0.00000E+00-3.55056E-04+0.00000E+00-1.01725E-04+0.00000E+00+2.04904E-04+0.00000E+00+4.82464E-04+0.00000E+00+6.48778E-04+0.00000E+00+6.45532E-04+0.00000E+00+4.57442E-04+0.00000E+00+1.20911E-04+0.00000E+00-2.81414E-04+0.00000E+00-6.40040E-04+0.00000E+00-8.47708E-04+0.00000E+00-8.30656E-04+0.00000E+00-5.73180E-04+0.00000E+00-1.27650E-04+0.00000E+00+3.94310E-04+0.00000E+00+8.48744E-04+0.00000E+00+1.09821E-03+0.00000E+00+1.05234E-03+0.00000E+00+6.98398E-04+0.00000E+00+1.11999E-04+0.00000E+00-5.57036E-04+0.00000E+00-1.12174E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.31236E-03+0.00000E+00-8.26764E-04+0.00000E+00-6.09068E-05+0.00000E+00+7.85842E-04+0.00000E+00+1.47374E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.61011E-03+0.00000E+00+9.47830E-04+0.00000E+00-4.36276E-05+0.00000E+00-1.10163E-03+0.00000E+00-1.92275E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.94359E-03+0.00000E+00-1.04776E-03+0.00000E+00+2.24088E-04+0.00000E+00+1.52962E-03+0.00000E+00+2.48958E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.30850E-03+0.00000E+00+1.10801E-03+0.00000E+00-5.08938E-04+0.00000E+00-2.10070E-03+0.00000E+00-3.19878E-03+0.00000E+00-3.44326E-03+0.00000E+00-2.69684E-03+0.00000E+00-1.10249E-03+0.00000E+00+9.36892E-04+0.00000E+00+2.85672E-03+0.00000E+00+4.08406E-03+0.00000E+00+4.20524E-03+0.00000E+00+3.09968E-03+0.00000E+00+9.97970E-04+0.00000E+00-1.55873E-03+0.00000E+00-3.85362E-03+0.00000E+00-5.19124E-03+0.00000E+00-5.10336E-03+0.00000E+00-3.50440E-03+0.00000E+00-7.46438E-04+0.00000E+00+2.44968E-03+0.00000E+00+5.17690E-03+0.00000E+00+6.59364E-03+0.00000E+00+6.17604E-03+0.00000E+00+3.89756E-03+0.00000E+00+2.77256E-04+0.00000E+00-3.72784E-03+0.00000E+00-6.96714E-03+0.00000E+00-8.41784E-03+0.00000E+00-7.49572E-03+0.00000E+00-4.26426E-03+0.00000E+00+5.27466E-04+0.00000E+00+5.60328E-03+0.00000E+00+9.48592E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.21506E-03+0.00000E+00+4.58962E-03+0.00000E+00-1.89363E-03+0.00000E+00-8.50506E-03+0.00000E+00-1.32925E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.16967E-02+0.00000E+00-4.85962E-03+0.00000E+00+4.34870E-03+0.00000E+00+1.34983E-02+0.00000E+00+1.98472E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.60019E-02+0.00000E+00+5.06204E-03+0.00000E+00-9.55078E-03+0.00000E+00-2.42030E-02+0.00000E+00-3.45266E-02+0.00000E+00-3.63864E-02+0.00000E+00-2.68872E-02+0.00000E+00-5.18748E-03+0.00000E+00+2.70918E-02+0.00000E+00+6.59838E-02+0.00000E+00+1.05820E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.71897E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.05820E-01+0.00000E+00+6.59838E-02+0.00000E+00+2.70918E-02+0.00000E+00-5.18748E-03+0.00000E+00-2.68872E-02+0.00000E+00-3.63864E-02+0.00000E+00-3.45266E-02+0.00000E+00-2.42030E-02+0.00000E+00-9.55078E-03+0.00000E+00+5.06204E-03+0.00000E+00+1.60019E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.98472E-02+0.00000E+00+1.34983E-02+0.00000E+00+4.34870E-03+0.00000E+00-4.85962E-03+0.00000E+00-1.16967E000010S*-02+0.00000E+00-1.46243E-02+0.00000E+00-1.32925E-02+0.00000E+00-8.50506E-03+0.00000E+00-1.89363E-03+0.00000E+00+4.58962E-03+0.00000E+00+9.21506E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.48592E-03+0.00000E+00+5.60328E-03+0.00000E+00+5.27466E-04+0.00000E+00-4.26426E-03+0.00000E+00-7.49572E-03+0.00000E+00-8.41784E-03+0.00000E+00-6.96714E-03+0.00000E+00-3.72784E-03+0.00000E+00+2.77256E-04+0.00000E+00+3.89756E-03+0.00000E+00+6.17604E-03+0.00000E+00+6.59364E-03+0.00000E+00+5.17690E-03+0.00000E+00+2.44968E-03+0.00000E+00-7.46438E-04+0.00000E+00-3.50440E-03+0.00000E+00-5.10336E-03+0.00000E+00-5.19124E-03+0.00000E+00-3.85362E-03+0.00000E+00-1.55873E-03+0.00000E+00+9.97970E-04+0.00000E+00+3.09968E-03+0.00000E+00+4.20524E-03+0.00000E+00+4.08406E-03+0.00000E+00+2.85672E-03+0.00000E+00+9.36892E-04+0.00000E+00-1.10249E-03+0.00000E+00-2.69684E-03+0.00000E+00-3.44326E-03+0.00000E+00-3.19878E-03+0.00000E+00-2.10070E-03+0.00000E+00-5.08938E-04+0.00000E+00+1.10801E-03+0.00000E+00+2.30850E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.48958E-03+0.00000E+00+1.52962E-03+0.00000E+00+2.24088E-04+0.00000E+00-1.04776E-03+0.00000E+00-1.94359E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.92275E-03+0.00000E+00-1.10163E-03+0.00000E+00-4.36276E-05+0.00000E+00+9.47830E-04+0.00000E+00+1.61011E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.47374E-03+0.00000E+00+7.85842E-04+0.00000E+00-6.09068E-05+0.00000E+00-8.26764E-04+0.00000E+00-1.31236E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.12174E-03+0.00000E+00-5.57036E-04+0.00000E+00+1.11999E-04+0.00000E+00+6.98398E-04+0.00000E+00+1.05234E-03+0.00000E+00+1.09821E-03+0.00000E+00+8.48744E-04+0.00000E+00+3.94310E-04+0.00000E+00-1.27650E-04+0.00000E+00-5.73180E-04+0.00000E+00-8.30656E-04+0.00000E+00-8.47708E-04+0.00000E+00-6.40040E-04+0.00000E+00-2.81414E-04+0.00000E+00+1.20911E-04+0.00000E+00+4.57442E-04+0.00000E+00+6.45532E-04+0.00000E+00+6.48778E-04+0.00000E+00+4.82464E-04+0.00000E+00+2.04904E-04+0.00000E+00-1.01725E-04+0.00000E+00-3.55056E-04+0.00000E+00-4.94058E-04+0.00000E+00-4.92968E-04+0.00000E+00-3.64712E-04+0.00000E+00-1.53942E-04+0.00000E+00+7.75194E-05+0.00000E+00+2.68272E-04+0.00000E+00+3.73118E-04+0.00000E+00+3.73138E-04+0.00000E+00+2.78002E-04+0.00000E+00+1.20744E-04+0.00000E+00-5.29412E-05+0.00000E+00-1.97535E-04+0.00000E+00-2.79208E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.15680E-04+0.00000E+00-1.00068E-04+0.00000E+00+3.04418E-05+0.00000E+00+1.42114E-04+0.00000E+00+2.09036E-04+0.00000E+00+2.18690E-04+0.00000E+00+1.73672E-04+0.00000E+00+8.95560E-05+0.00000E+00-1.01214E-05+0.00000E+00-1.00242E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.52783E-04+0.00000E+00-9.29802E-05+0.00000E+00-1.42499E-05+0.00000E+00+6.50032E-05+0.00000E+00+1.27774E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.28752E-04+0.00000E+00+7.03544E-05+0.00000E+00-2.59160E-06+0.00000E+00-7.80380E-05+0.00000E+00-1.45142E-04+0.00000E+00-1.95955E-04+0.00000E+00-2.26268E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.03638E-04+0.00000E+00-1.72307E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.04124E-04+0.00000E+00-7.44366E-05+0.00000E+00-5.02182E-05+0.00000E+00-3.18550E-05+0.00000E+00-1.88893E-05+0.00000E+00-1.03793E-05+0.00000E+00-5.21464E-06+0.00000E+00-2.34472E-06+0.00000E+00-9.08544E-07+0.00000E+00-2.80036E-07+0.00000E+00-5.32080E-08+0.00000E+00+4.52378E-09+0.00000E+00+7.72762E-09+0.00000E+0000000570051071.0000E+030000500000+1.5900E-01+1.5900E-01058003507+1.00000E+00+5.00000E-0200058003500+2.78845E+05+5.00000E-02000520149 EHZ0000002~001002+49.129100+008.148700-0177.0305.0000.0-90.00001122.0000E+022.0000E-020000TG~2014,325,12:00:00.0000~2015,078,13:00:00.0000~N0530334A01001003+1.00000E+00+5.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-4.44400E+00+4.44400E+00+0.00000E+00+0.00000E+00-4.44400E+00-4.44400E+00+0.00000E+00+0.00000E+00-1.08300E+00+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+5.00000E+0000058003502+2.50000E+00+5.00000E-02000540048D030030040001+1.00000E+00+0.000011S*00000E+0000000570051031.9200E+050000100000+0.0000E+00+0.0000E+00058003503+4.00000E+05+5.00000E-02000541152D040040040047+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+3.81470E-06+0.00000E+00+2.28882E-05+0.00000E+00+8.01086E-05+0.00000E+00+2.13623E-04+0.00000E+00+4.80652E-04+0.00000E+00+9.61304E-04+0.00000E+00+1.76239E-03+0.00000E+00+3.02124E-03+0.00000E+00+4.88663E-03+0.00000E+00+7.49969E-03+0.00000E+00+1.09749E-02+0.00000E+00+1.53809E-02+0.00000E+00+2.07214E-02+0.00000E+00+2.69165E-02+0.00000E+00+3.37830E-02+0.00000E+00+4.10156E-02+0.00000E+00+4.82254E-02+0.00000E+00+5.49774E-02+0.00000E+00+6.08292E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.92444E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.08292E-02+0.00000E+00+5.49774E-02+0.00000E+00+4.82254E-02+0.00000E+00+4.10156E-02+0.00000E+00+3.37830E-02+0.00000E+00+2.69165E-02+0.00000E+00+2.07214E-02+0.00000E+00+1.53809E-02+0.00000E+00+1.09749E-02+0.00000E+00+7.49969E-03+0.00000E+00+4.88663E-03+0.00000E+00+3.02124E-03+0.00000E+00+1.76239E-03+0.00000E+00+9.61304E-04+0.00000E+00+4.80652E-04+0.00000E+00+2.13623E-04+0.00000E+00+8.01086E-05+0.00000E+00+2.28882E-05+0.00000E+00+3.81470E-06+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+0000000570051041.9200E+050000800000+1.1979E-04+1.1979E-04058003504+1.00000E+00+5.00000E-02000541776D050040040073+7.86395E-07+0.00000E+00+2.15223E-06+0.00000E+00+4.09013E-06+0.00000E+00+6.42053E-06+0.00000E+00+7.61300E-06+0.00000E+00+4.52134E-06+0.00000E+00-8.38839E-06+0.00000E+00-4.00745E-05+0.00000E+00-1.08702E-04+0.00000E+00-2.31570E-04+0.00000E+00-4.32673E-04+0.00000E+00-7.41861E-04+0.00000E+00-1.18635E-03+0.00000E+00-1.78887E-03+0.00000E+00-2.56156E-03+0.00000E+00-3.49756E-03+0.00000E+00-4.54784E-03+0.00000E+00-5.64473E-03+0.00000E+00-6.67437E-03+0.00000E+00-7.46932E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.53472E-03+0.00000E+00-6.33480E-03+0.00000E+00-3.99943E-03+0.00000E+00-3.60688E-04+0.00000E+00+4.71408E-03+0.00000E+00+1.12572E-02+0.00000E+00+1.91611E-02+0.00000E+00+2.82115E-02+0.00000E+00+3.80655E-02+0.00000E+00+4.82646E-02+0.00000E+00+5.82654E-02+0.00000E+00+6.75164E-02+0.00000E+00+7.54318E-02+0.00000E+00+8.14859E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.65986E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.14859E-02+0.00000E+00+7.54318E-02+0.00000E+00+6.75164E-02+0.00000E+00+5.82654E-02+0.00000E+00+4.82646E-02+0.00000E+00+3.80655E-02+0.00000E+00+2.82115E-02+0.00000E+00+1.91611E-02+0.00000E+00+1.12572E-02+0.00000E+00+4.71408E-03+0.00000E+00-3.60688E-04+0.00000E+00-3.99943E-03+0.00000E+00-6.33480E-03+0.00000E+00-7.53472E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.46932E-03+0.00000E+00-6.67437E-03+0.00000E+00-5.64473E-03+0.00000E+00-4.54784E-03+0.00000E+00-3.49756E-03+0.00000E+00-2.56156E-03+0.00000E+00-1.78887E-03+0.00000E+00-1.18635E-03+0.00000E+00-7.41861E-04+0.00000E+00-4.32673E-04+0.00000E+00-2.31570E-04+0.00000E+00-1.08702E-04+0.00000E+00-4.00745E-05+0.00000E+00-8.38839E-06+0.00000E+00+4.52134E-06+0.00000E+00+7.61300E-06+0.00000E+00+6.42053E-06+0.00000E+00+4.09013E-06+0.00000E+00+2.15223E-06+0.00000E+00+7.86395E-07+0.00000E+0000000570051052.4000E+040000800000+1.5000E-03+1.5000E-03058003505+1.00000E+00+5.00000E-02000544320D060040040179+1.65488E-07+0.00000E+00+7.48132E-07+0.00000E+00+1.76664E-06+0.00000E+00+1.62612E-06+0.00000E+00-5.16640E-06+0.00000E+00-3.00692E-05+0.00000E+00-8.97376E-05+0.00000E+00-1.99571E-04+0.00000E+00-3.61172E-04+0.00000E+00-5.48500E-04+0.00000E+00-7.02688E-04+0.00000E+00-7.45976E-04+0.00000E+00-6.17072E-04+0.00000E+00-3.15191E-04+0.00000E+00+7.38188E-05+0.00000E+00+3.95725E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.15263E-04+0.00000E+00-5.96548E-05+0.00000E+00-4.11872E-04+0.00000E+00-5.12780E-04+0.00000E+00-2.69536E-04+0.00000E+00+1.89248E-04+0.00000E+00+5.66172E-04+0.00000E+00+5.78372E-04+0.00000E+00+1.64727E-04+0.00000E+00-4.31664E-04+0.00000E+00-7.92432E-04+0.00000E+00-6.08316E-04+0.00000E+00+6.76780E-05+0.00000E+00+7.98316E-04+0.00000E+00+1.03172E-03+0.00000E+00+5.07504E-04+0.00000E+00-4.91744E-04+0.00000E+00-1.26810E-03+0.00000E+00-1.18261E-03+0.00000E+00-1.64000012S*670E-04+0.00000E+00+1.13876E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.09177E-03+0.00000E+00-5.24120E-04+0.00000E+00-1.97068E-03+0.00000E+00-2.08536E-03+0.00000E+00-5.79052E-04+0.00000E+00+1.60144E-03+0.00000E+00+2.83576E-03+0.00000E+00+2.01276E-03+0.00000E+00-5.13156E-04+0.00000E+00-2.98815E-03+0.00000E+00-3.44765E-03+0.00000E+00-1.24599E-03+0.00000E+00+2.24272E-03+0.00000E+00+4.43120E-03+0.00000E+00+3.40590E-03+0.00000E+00-4.57304E-04+0.00000E+00-4.47584E-03+0.00000E+00-5.47828E-03+0.00000E+00-2.26220E-03+0.00000E+00+3.18035E-03+0.00000E+00+6.81616E-03+0.00000E+00+5.50776E-03+0.00000E+00-3.65328E-04+0.00000E+00-6.73316E-03+0.00000E+00-8.58052E-03+0.00000E+00-3.81782E-03+0.00000E+00+4.65228E-03+0.00000E+00+1.05646E-02+0.00000E+00+8.82560E-03+0.00000E+00-2.56374E-04+0.00000E+00-1.04496E-02+0.00000E+00-1.37224E-02+0.00000E+00-6.39512E-03+0.00000E+00+7.26512E-03+0.00000E+00+1.72312E-02+0.00000E+00+1.48181E-02+0.00000E+00-1.54011E-04+0.00000E+00-1.77680E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.17549E-02+0.00000E+00+1.32733E-02+0.00000E+00+3.32147E-02+0.00000E+00+3.01309E-02+0.00000E+00-8.13468E-05+0.00000E+00-4.08284E-02+0.00000E+00-6.13256E-02+0.00000E+00-3.42109E-02+0.00000E+00+4.58968E-02+0.00000E+00+1.54886E-01+0.00000E+00+2.48713E-01+0.00000E+00+2.85658E-01+0.00000E+00+2.48713E-01+0.00000E+00+1.54886E-01+0.00000E+00+4.58968E-02+0.00000E+00-3.42109E-02+0.00000E+00-6.13256E-02+0.00000E+00-4.08284E-02+0.00000E+00-8.13468E-05+0.00000E+00+3.01309E-02+0.00000E+00+3.32147E-02+0.00000E+00+1.32733E-02+0.00000E+00-1.17549E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.77680E-02+0.00000E+00-1.54011E-04+0.00000E+00+1.48181E-02+0.00000E+00+1.72312E-02+0.00000E+00+7.26512E-03+0.00000E+00-6.39512E-03+0.00000E+00-1.37224E-02+0.00000E+00-1.04496E-02+0.00000E+00-2.56374E-04+0.00000E+00+8.82560E-03+0.00000E+00+1.05646E-02+0.00000E+00+4.65228E-03+0.00000E+00-3.81782E-03+0.00000E+00-8.58052E-03+0.00000E+00-6.73316E-03+0.00000E+00-3.65328E-04+0.00000E+00+5.50776E-03+0.00000E+00+6.81616E-03+0.00000E+00+3.18035E-03+0.00000E+00-2.26220E-03+0.00000E+00-5.47828E-03+0.00000E+00-4.47584E-03+0.00000E+00-4.57304E-04+0.00000E+00+3.40590E-03+0.00000E+00+4.43120E-03+0.00000E+00+2.24272E-03+0.00000E+00-1.24599E-03+0.00000E+00-3.44765E-03+0.00000E+00-2.98815E-03+0.00000E+00-5.13156E-04+0.00000E+00+2.01276E-03+0.00000E+00+2.83576E-03+0.00000E+00+1.60144E-03+0.00000E+00-5.79052E-04+0.00000E+00-2.08536E-03+0.00000E+00-1.97068E-03+0.00000E+00-5.24120E-04+0.00000E+00+1.09177E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.13876E-03+0.00000E+00-1.64670E-04+0.00000E+00-1.18261E-03+0.00000E+00-1.26810E-03+0.00000E+00-4.91744E-04+0.00000E+00+5.07504E-04+0.00000E+00+1.03172E-03+0.00000E+00+7.98316E-04+0.00000E+00+6.76780E-05+0.00000E+00-6.08316E-04+0.00000E+00-7.92432E-04+0.00000E+00-4.31664E-04+0.00000E+00+1.64727E-04+0.00000E+00+5.78372E-04+0.00000E+00+5.66172E-04+0.00000E+00+1.89248E-04+0.00000E+00-2.69536E-04+0.00000E+00-5.12780E-04+0.00000E+00-4.11872E-04+0.00000E+00-5.96548E-05+0.00000E+00+3.15263E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.95725E-04+0.00000E+00+7.38188E-05+0.00000E+00-3.15191E-04+0.00000E+00-6.17072E-04+0.00000E+00-7.45976E-04+0.00000E+00-7.02688E-04+0.00000E+00-5.48500E-04+0.00000E+00-3.61172E-04+0.00000E+00-1.99571E-04+0.00000E+00-8.97376E-05+0.00000E+00-3.00692E-05+0.00000E+00-5.16640E-06+0.00000E+00+1.62612E-06+0.00000E+00+1.76664E-06+0.00000E+00+7.48132E-07+0.00000E+00+1.65488E-07+0.00000E+0000000570051063.0000E+030000300000+2.9667E-02+2.9667E-02058003506+1.00000E+00+5.00000E-02000547680D070040040319+7.72762E-09+0.00000E+00+4.52378E-09+0.00000E+00-5.32080E-08+0.00000E+00-2.80036E-07+0.00000E+00-9.08544E-07+0.00000E+00-2.34472E-06+0.00000E+00-5.21464E-06+0.00000E+00-1.03793E-05+0.00000E+00-1.88893E-05+0.00000E+00-3.18550E-05+0.00000E+00-5.02182E-05+0.00000E+00-7.44366E-05+0.00000E+00-1.04124E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.72307E-04+0.00000E+00-2.03638E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26268E-04+0.00000E+00-1.95955E-04+0.00000E+00-1.45142E-04+0.00000E+00-7.80380E-05+0.00000E+00-2.59160E-06+0.00000E+0000013S*0+7.03544E-05+0.00000E+00+1.28752E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.27774E-04+0.00000E+00+6.50032E-05+0.00000E+00-1.42499E-05+0.00000E+00-9.29802E-05+0.00000E+00-1.52783E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.00242E-04+0.00000E+00-1.01214E-05+0.00000E+00+8.95560E-05+0.00000E+00+1.73672E-04+0.00000E+00+2.18690E-04+0.00000E+00+2.09036E-04+0.00000E+00+1.42114E-04+0.00000E+00+3.04418E-05+0.00000E+00-1.00068E-04+0.00000E+00-2.15680E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.79208E-04+0.00000E+00-1.97535E-04+0.00000E+00-5.29412E-05+0.00000E+00+1.20744E-04+0.00000E+00+2.78002E-04+0.00000E+00+3.73138E-04+0.00000E+00+3.73118E-04+0.00000E+00+2.68272E-04+0.00000E+00+7.75194E-05+0.00000E+00-1.53942E-04+0.00000E+00-3.64712E-04+0.00000E+00-4.92968E-04+0.00000E+00-4.94058E-04+0.00000E+00-3.55056E-04+0.00000E+00-1.01725E-04+0.00000E+00+2.04904E-04+0.00000E+00+4.82464E-04+0.00000E+00+6.48778E-04+0.00000E+00+6.45532E-04+0.00000E+00+4.57442E-04+0.00000E+00+1.20911E-04+0.00000E+00-2.81414E-04+0.00000E+00-6.40040E-04+0.00000E+00-8.47708E-04+0.00000E+00-8.30656E-04+0.00000E+00-5.73180E-04+0.00000E+00-1.27650E-04+0.00000E+00+3.94310E-04+0.00000E+00+8.48744E-04+0.00000E+00+1.09821E-03+0.00000E+00+1.05234E-03+0.00000E+00+6.98398E-04+0.00000E+00+1.11999E-04+0.00000E+00-5.57036E-04+0.00000E+00-1.12174E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.31236E-03+0.00000E+00-8.26764E-04+0.00000E+00-6.09068E-05+0.00000E+00+7.85842E-04+0.00000E+00+1.47374E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.61011E-03+0.00000E+00+9.47830E-04+0.00000E+00-4.36276E-05+0.00000E+00-1.10163E-03+0.00000E+00-1.92275E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.94359E-03+0.00000E+00-1.04776E-03+0.00000E+00+2.24088E-04+0.00000E+00+1.52962E-03+0.00000E+00+2.48958E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.30850E-03+0.00000E+00+1.10801E-03+0.00000E+00-5.08938E-04+0.00000E+00-2.10070E-03+0.00000E+00-3.19878E-03+0.00000E+00-3.44326E-03+0.00000E+00-2.69684E-03+0.00000E+00-1.10249E-03+0.00000E+00+9.36892E-04+0.00000E+00+2.85672E-03+0.00000E+00+4.08406E-03+0.00000E+00+4.20524E-03+0.00000E+00+3.09968E-03+0.00000E+00+9.97970E-04+0.00000E+00-1.55873E-03+0.00000E+00-3.85362E-03+0.00000E+00-5.19124E-03+0.00000E+00-5.10336E-03+0.00000E+00-3.50440E-03+0.00000E+00-7.46438E-04+0.00000E+00+2.44968E-03+0.00000E+00+5.17690E-03+0.00000E+00+6.59364E-03+0.00000E+00+6.17604E-03+0.00000E+00+3.89756E-03+0.00000E+00+2.77256E-04+0.00000E+00-3.72784E-03+0.00000E+00-6.96714E-03+0.00000E+00-8.41784E-03+0.00000E+00-7.49572E-03+0.00000E+00-4.26426E-03+0.00000E+00+5.27466E-04+0.00000E+00+5.60328E-03+0.00000E+00+9.48592E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.21506E-03+0.00000E+00+4.58962E-03+0.00000E+00-1.89363E-03+0.00000E+00-8.50506E-03+0.00000E+00-1.32925E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.16967E-02+0.00000E+00-4.85962E-03+0.00000E+00+4.34870E-03+0.00000E+00+1.34983E-02+0.00000E+00+1.98472E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.60019E-02+0.00000E+00+5.06204E-03+0.00000E+00-9.55078E-03+0.00000E+00-2.42030E-02+0.00000E+00-3.45266E-02+0.00000E+00-3.63864E-02+0.00000E+00-2.68872E-02+0.00000E+00-5.18748E-03+0.00000E+00+2.70918E-02+0.00000E+00+6.59838E-02+0.00000E+00+1.05820E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.71897E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.05820E-01+0.00000E+00+6.59838E-02+0.00000E+00+2.70918E-02+0.00000E+00-5.18748E-03+0.00000E+00-2.68872E-02+0.00000E+00-3.63864E-02+0.00000E+00-3.45266E-02+0.00000E+00-2.42030E-02+0.00000E+00-9.55078E-03+0.00000E+00+5.06204E-03+0.00000E+00+1.60019E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.98472E-02+0.00000E+00+1.34983E-02+0.00000E+00+4.34870E-03+0.00000E+00-4.85962E-03+0.00000E+00-1.16967E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.32925E-02+0.00000E+00-8.50506E-03+0.00000E+00-1.89363E-03+0.00000E+00+4.58962E-03+0.00000E+00+9.21506E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.48592E-03+0.00000E+00+5.60328E-03+0.00000E+00+5.27466E-04+0.00000E+00-4.26426E-03+0.00000E+00-7.49572E-03+0.00000E+00-8.41784E-03+0.00000E+00-6.96714E-03+0.00000E+00-3.7278000014S*4E-03+0.00000E+00+2.77256E-04+0.00000E+00+3.89756E-03+0.00000E+00+6.17604E-03+0.00000E+00+6.59364E-03+0.00000E+00+5.17690E-03+0.00000E+00+2.44968E-03+0.00000E+00-7.46438E-04+0.00000E+00-3.50440E-03+0.00000E+00-5.10336E-03+0.00000E+00-5.19124E-03+0.00000E+00-3.85362E-03+0.00000E+00-1.55873E-03+0.00000E+00+9.97970E-04+0.00000E+00+3.09968E-03+0.00000E+00+4.20524E-03+0.00000E+00+4.08406E-03+0.00000E+00+2.85672E-03+0.00000E+00+9.36892E-04+0.00000E+00-1.10249E-03+0.00000E+00-2.69684E-03+0.00000E+00-3.44326E-03+0.00000E+00-3.19878E-03+0.00000E+00-2.10070E-03+0.00000E+00-5.08938E-04+0.00000E+00+1.10801E-03+0.00000E+00+2.30850E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.48958E-03+0.00000E+00+1.52962E-03+0.00000E+00+2.24088E-04+0.00000E+00-1.04776E-03+0.00000E+00-1.94359E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.92275E-03+0.00000E+00-1.10163E-03+0.00000E+00-4.36276E-05+0.00000E+00+9.47830E-04+0.00000E+00+1.61011E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.47374E-03+0.00000E+00+7.85842E-04+0.00000E+00-6.09068E-05+0.00000E+00-8.26764E-04+0.00000E+00-1.31236E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.12174E-03+0.00000E+00-5.57036E-04+0.00000E+00+1.11999E-04+0.00000E+00+6.98398E-04+0.00000E+00+1.05234E-03+0.00000E+00+1.09821E-03+0.00000E+00+8.48744E-04+0.00000E+00+3.94310E-04+0.00000E+00-1.27650E-04+0.00000E+00-5.73180E-04+0.00000E+00-8.30656E-04+0.00000E+00-8.47708E-04+0.00000E+00-6.40040E-04+0.00000E+00-2.81414E-04+0.00000E+00+1.20911E-04+0.00000E+00+4.57442E-04+0.00000E+00+6.45532E-04+0.00000E+00+6.48778E-04+0.00000E+00+4.82464E-04+0.00000E+00+2.04904E-04+0.00000E+00-1.01725E-04+0.00000E+00-3.55056E-04+0.00000E+00-4.94058E-04+0.00000E+00-4.92968E-04+0.00000E+00-3.64712E-04+0.00000E+00-1.53942E-04+0.00000E+00+7.75194E-05+0.00000E+00+2.68272E-04+0.00000E+00+3.73118E-04+0.00000E+00+3.73138E-04+0.00000E+00+2.78002E-04+0.00000E+00+1.20744E-04+0.00000E+00-5.29412E-05+0.00000E+00-1.97535E-04+0.00000E+00-2.79208E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.15680E-04+0.00000E+00-1.00068E-04+0.00000E+00+3.04418E-05+0.00000E+00+1.42114E-04+0.00000E+00+2.09036E-04+0.00000E+00+2.18690E-04+0.00000E+00+1.73672E-04+0.00000E+00+8.95560E-05+0.00000E+00-1.01214E-05+0.00000E+00-1.00242E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.52783E-04+0.00000E+00-9.29802E-05+0.00000E+00-1.42499E-05+0.00000E+00+6.50032E-05+0.00000E+00+1.27774E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.28752E-04+0.00000E+00+7.03544E-05+0.00000E+00-2.59160E-06+0.00000E+00-7.80380E-05+0.00000E+00-1.45142E-04+0.00000E+00-1.95955E-04+0.00000E+00-2.26268E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.03638E-04+0.00000E+00-1.72307E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.04124E-04+0.00000E+00-7.44366E-05+0.00000E+00-5.02182E-05+0.00000E+00-3.18550E-05+0.00000E+00-1.88893E-05+0.00000E+00-1.03793E-05+0.00000E+00-5.21464E-06+0.00000E+00-2.34472E-06+0.00000E+00-9.08544E-07+0.00000E+00-2.80036E-07+0.00000E+00-5.32080E-08+0.00000E+00+4.52378E-09+0.00000E+00+7.72762E-09+0.00000E+0000000570051071.0000E+030000500000+1.5900E-01+1.5900E-01058003507+1.00000E+00+5.00000E-0200058003500+2.78845E+05+5.00000E-02000520149 HNE0000003~004002+49.129100+008.148700+0128.0000.0090.0+00.00001122.0000E+022.0000E-020000TG~2015,008,10:45:00.0000~2015,078,13:00:00.0000~N0530382A01004003+1.00770E+18+1.00000E+00001-5.15000E+02+0.00000E+00+0.00000E+00+0.00000E+00006-9.77000E+02+3.28000E+02+0.00000E+00+0.00000E+00-9.77000E+02-3.28000E+02+0.00000E+00+0.00000E+00-1.48600E+03+2.51200E+03+0.00000E+00+0.00000E+00-1.48600E+03-2.51200E+03+0.00000E+00+0.00000E+00-5.73600E+03+4.94600E+03+0.00000E+00+0.00000E+00-5.73600E+03-4.94600E+03+0.00000E+00+0.00000E+00058003501+5.10000E-01+1.00000E+0000058003502+1.00000E+00+5.00000E-02000540048D030030040001+1.00000E+00+0.00000E+0000000570051031.9200E+050000100000+0.0000E+00+0.0000E+00058003503+4.00000E+05+5.00000E-02000541152D040040040047+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+3.81470E-06+0.00000E+00+2.28882E-05+0.00000E+00+8.01086E-05+0.00000E+00+2.13623E-04+0.00000E+00+4.80652E-04+0.00000E+00+9.61304E-04+0.00000E+0000015S*0+1.76239E-03+0.00000E+00+3.02124E-03+0.00000E+00+4.88663E-03+0.00000E+00+7.49969E-03+0.00000E+00+1.09749E-02+0.00000E+00+1.53809E-02+0.00000E+00+2.07214E-02+0.00000E+00+2.69165E-02+0.00000E+00+3.37830E-02+0.00000E+00+4.10156E-02+0.00000E+00+4.82254E-02+0.00000E+00+5.49774E-02+0.00000E+00+6.08292E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.92444E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.08292E-02+0.00000E+00+5.49774E-02+0.00000E+00+4.82254E-02+0.00000E+00+4.10156E-02+0.00000E+00+3.37830E-02+0.00000E+00+2.69165E-02+0.00000E+00+2.07214E-02+0.00000E+00+1.53809E-02+0.00000E+00+1.09749E-02+0.00000E+00+7.49969E-03+0.00000E+00+4.88663E-03+0.00000E+00+3.02124E-03+0.00000E+00+1.76239E-03+0.00000E+00+9.61304E-04+0.00000E+00+4.80652E-04+0.00000E+00+2.13623E-04+0.00000E+00+8.01086E-05+0.00000E+00+2.28882E-05+0.00000E+00+3.81470E-06+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+0000000570051041.9200E+050000800000+1.1979E-04+1.1979E-04058003504+1.00000E+00+5.00000E-02000541776D050040040073+7.86395E-07+0.00000E+00+2.15223E-06+0.00000E+00+4.09013E-06+0.00000E+00+6.42053E-06+0.00000E+00+7.61300E-06+0.00000E+00+4.52134E-06+0.00000E+00-8.38839E-06+0.00000E+00-4.00745E-05+0.00000E+00-1.08702E-04+0.00000E+00-2.31570E-04+0.00000E+00-4.32673E-04+0.00000E+00-7.41861E-04+0.00000E+00-1.18635E-03+0.00000E+00-1.78887E-03+0.00000E+00-2.56156E-03+0.00000E+00-3.49756E-03+0.00000E+00-4.54784E-03+0.00000E+00-5.64473E-03+0.00000E+00-6.67437E-03+0.00000E+00-7.46932E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.53472E-03+0.00000E+00-6.33480E-03+0.00000E+00-3.99943E-03+0.00000E+00-3.60688E-04+0.00000E+00+4.71408E-03+0.00000E+00+1.12572E-02+0.00000E+00+1.91611E-02+0.00000E+00+2.82115E-02+0.00000E+00+3.80655E-02+0.00000E+00+4.82646E-02+0.00000E+00+5.82654E-02+0.00000E+00+6.75164E-02+0.00000E+00+7.54318E-02+0.00000E+00+8.14859E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.65986E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.14859E-02+0.00000E+00+7.54318E-02+0.00000E+00+6.75164E-02+0.00000E+00+5.82654E-02+0.00000E+00+4.82646E-02+0.00000E+00+3.80655E-02+0.00000E+00+2.82115E-02+0.00000E+00+1.91611E-02+0.00000E+00+1.12572E-02+0.00000E+00+4.71408E-03+0.00000E+00-3.60688E-04+0.00000E+00-3.99943E-03+0.00000E+00-6.33480E-03+0.00000E+00-7.53472E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.46932E-03+0.00000E+00-6.67437E-03+0.00000E+00-5.64473E-03+0.00000E+00-4.54784E-03+0.00000E+00-3.49756E-03+0.00000E+00-2.56156E-03+0.00000E+00-1.78887E-03+0.00000E+00-1.18635E-03+0.00000E+00-7.41861E-04+0.00000E+00-4.32673E-04+0.00000E+00-2.31570E-04+0.00000E+00-1.08702E-04+0.00000E+00-4.00745E-05+0.00000E+00-8.38839E-06+0.00000E+00+4.52134E-06+0.00000E+00+7.61300E-06+0.00000E+00+6.42053E-06+0.00000E+00+4.09013E-06+0.00000E+00+2.15223E-06+0.00000E+00+7.86395E-07+0.00000E+0000000570051052.4000E+040000800000+1.5000E-03+1.5000E-03058003505+1.00000E+00+5.00000E-02000544320D060040040179+1.65488E-07+0.00000E+00+7.48132E-07+0.00000E+00+1.76664E-06+0.00000E+00+1.62612E-06+0.00000E+00-5.16640E-06+0.00000E+00-3.00692E-05+0.00000E+00-8.97376E-05+0.00000E+00-1.99571E-04+0.00000E+00-3.61172E-04+0.00000E+00-5.48500E-04+0.00000E+00-7.02688E-04+0.00000E+00-7.45976E-04+0.00000E+00-6.17072E-04+0.00000E+00-3.15191E-04+0.00000E+00+7.38188E-05+0.00000E+00+3.95725E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.15263E-04+0.00000E+00-5.96548E-05+0.00000E+00-4.11872E-04+0.00000E+00-5.12780E-04+0.00000E+00-2.69536E-04+0.00000E+00+1.89248E-04+0.00000E+00+5.66172E-04+0.00000E+00+5.78372E-04+0.00000E+00+1.64727E-04+0.00000E+00-4.31664E-04+0.00000E+00-7.92432E-04+0.00000E+00-6.08316E-04+0.00000E+00+6.76780E-05+0.00000E+00+7.98316E-04+0.00000E+00+1.03172E-03+0.00000E+00+5.07504E-04+0.00000E+00-4.91744E-04+0.00000E+00-1.26810E-03+0.00000E+00-1.18261E-03+0.00000E+00-1.64670E-04+0.00000E+00+1.13876E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.09177E-03+0.00000E+00-5.24120E-04+0.00000E+00-1.97068E-03+0.00000E+00-2.08536E-03+0.00000E+00-5.79052E-04+0.00000E+00+1.60144E-03+0.00000E+00+2.83576E-03+0.00000E+00+2.01276E-03+0.00000E+00-5.13156E-04+0.00000E+00-2.98815E-03+0.00000E+00-3.000016S*44765E-03+0.00000E+00-1.24599E-03+0.00000E+00+2.24272E-03+0.00000E+00+4.43120E-03+0.00000E+00+3.40590E-03+0.00000E+00-4.57304E-04+0.00000E+00-4.47584E-03+0.00000E+00-5.47828E-03+0.00000E+00-2.26220E-03+0.00000E+00+3.18035E-03+0.00000E+00+6.81616E-03+0.00000E+00+5.50776E-03+0.00000E+00-3.65328E-04+0.00000E+00-6.73316E-03+0.00000E+00-8.58052E-03+0.00000E+00-3.81782E-03+0.00000E+00+4.65228E-03+0.00000E+00+1.05646E-02+0.00000E+00+8.82560E-03+0.00000E+00-2.56374E-04+0.00000E+00-1.04496E-02+0.00000E+00-1.37224E-02+0.00000E+00-6.39512E-03+0.00000E+00+7.26512E-03+0.00000E+00+1.72312E-02+0.00000E+00+1.48181E-02+0.00000E+00-1.54011E-04+0.00000E+00-1.77680E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.17549E-02+0.00000E+00+1.32733E-02+0.00000E+00+3.32147E-02+0.00000E+00+3.01309E-02+0.00000E+00-8.13468E-05+0.00000E+00-4.08284E-02+0.00000E+00-6.13256E-02+0.00000E+00-3.42109E-02+0.00000E+00+4.58968E-02+0.00000E+00+1.54886E-01+0.00000E+00+2.48713E-01+0.00000E+00+2.85658E-01+0.00000E+00+2.48713E-01+0.00000E+00+1.54886E-01+0.00000E+00+4.58968E-02+0.00000E+00-3.42109E-02+0.00000E+00-6.13256E-02+0.00000E+00-4.08284E-02+0.00000E+00-8.13468E-05+0.00000E+00+3.01309E-02+0.00000E+00+3.32147E-02+0.00000E+00+1.32733E-02+0.00000E+00-1.17549E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.77680E-02+0.00000E+00-1.54011E-04+0.00000E+00+1.48181E-02+0.00000E+00+1.72312E-02+0.00000E+00+7.26512E-03+0.00000E+00-6.39512E-03+0.00000E+00-1.37224E-02+0.00000E+00-1.04496E-02+0.00000E+00-2.56374E-04+0.00000E+00+8.82560E-03+0.00000E+00+1.05646E-02+0.00000E+00+4.65228E-03+0.00000E+00-3.81782E-03+0.00000E+00-8.58052E-03+0.00000E+00-6.73316E-03+0.00000E+00-3.65328E-04+0.00000E+00+5.50776E-03+0.00000E+00+6.81616E-03+0.00000E+00+3.18035E-03+0.00000E+00-2.26220E-03+0.00000E+00-5.47828E-03+0.00000E+00-4.47584E-03+0.00000E+00-4.57304E-04+0.00000E+00+3.40590E-03+0.00000E+00+4.43120E-03+0.00000E+00+2.24272E-03+0.00000E+00-1.24599E-03+0.00000E+00-3.44765E-03+0.00000E+00-2.98815E-03+0.00000E+00-5.13156E-04+0.00000E+00+2.01276E-03+0.00000E+00+2.83576E-03+0.00000E+00+1.60144E-03+0.00000E+00-5.79052E-04+0.00000E+00-2.08536E-03+0.00000E+00-1.97068E-03+0.00000E+00-5.24120E-04+0.00000E+00+1.09177E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.13876E-03+0.00000E+00-1.64670E-04+0.00000E+00-1.18261E-03+0.00000E+00-1.26810E-03+0.00000E+00-4.91744E-04+0.00000E+00+5.07504E-04+0.00000E+00+1.03172E-03+0.00000E+00+7.98316E-04+0.00000E+00+6.76780E-05+0.00000E+00-6.08316E-04+0.00000E+00-7.92432E-04+0.00000E+00-4.31664E-04+0.00000E+00+1.64727E-04+0.00000E+00+5.78372E-04+0.00000E+00+5.66172E-04+0.00000E+00+1.89248E-04+0.00000E+00-2.69536E-04+0.00000E+00-5.12780E-04+0.00000E+00-4.11872E-04+0.00000E+00-5.96548E-05+0.00000E+00+3.15263E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.95725E-04+0.00000E+00+7.38188E-05+0.00000E+00-3.15191E-04+0.00000E+00-6.17072E-04+0.00000E+00-7.45976E-04+0.00000E+00-7.02688E-04+0.00000E+00-5.48500E-04+0.00000E+00-3.61172E-04+0.00000E+00-1.99571E-04+0.00000E+00-8.97376E-05+0.00000E+00-3.00692E-05+0.00000E+00-5.16640E-06+0.00000E+00+1.62612E-06+0.00000E+00+1.76664E-06+0.00000E+00+7.48132E-07+0.00000E+00+1.65488E-07+0.00000E+0000000570051063.0000E+030000300000+2.9667E-02+2.9667E-02058003506+1.00000E+00+5.00000E-02000547680D070040040319+7.72762E-09+0.00000E+00+4.52378E-09+0.00000E+00-5.32080E-08+0.00000E+00-2.80036E-07+0.00000E+00-9.08544E-07+0.00000E+00-2.34472E-06+0.00000E+00-5.21464E-06+0.00000E+00-1.03793E-05+0.00000E+00-1.88893E-05+0.00000E+00-3.18550E-05+0.00000E+00-5.02182E-05+0.00000E+00-7.44366E-05+0.00000E+00-1.04124E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.72307E-04+0.00000E+00-2.03638E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26268E-04+0.00000E+00-1.95955E-04+0.00000E+00-1.45142E-04+0.00000E+00-7.80380E-05+0.00000E+00-2.59160E-06+0.00000E+00+7.03544E-05+0.00000E+00+1.28752E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.27774E-04+0.00000E+00+6.50032E-05+0.00000E+00-1.42499E-05+0.00000E+00-9.29802E-05+0.00000E+00-1.52783E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.00242E-04+0.00000E+00-1.01214E-05+0.00000E000017S*+00+8.95560E-05+0.00000E+00+1.73672E-04+0.00000E+00+2.18690E-04+0.00000E+00+2.09036E-04+0.00000E+00+1.42114E-04+0.00000E+00+3.04418E-05+0.00000E+00-1.00068E-04+0.00000E+00-2.15680E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.79208E-04+0.00000E+00-1.97535E-04+0.00000E+00-5.29412E-05+0.00000E+00+1.20744E-04+0.00000E+00+2.78002E-04+0.00000E+00+3.73138E-04+0.00000E+00+3.73118E-04+0.00000E+00+2.68272E-04+0.00000E+00+7.75194E-05+0.00000E+00-1.53942E-04+0.00000E+00-3.64712E-04+0.00000E+00-4.92968E-04+0.00000E+00-4.94058E-04+0.00000E+00-3.55056E-04+0.00000E+00-1.01725E-04+0.00000E+00+2.04904E-04+0.00000E+00+4.82464E-04+0.00000E+00+6.48778E-04+0.00000E+00+6.45532E-04+0.00000E+00+4.57442E-04+0.00000E+00+1.20911E-04+0.00000E+00-2.81414E-04+0.00000E+00-6.40040E-04+0.00000E+00-8.47708E-04+0.00000E+00-8.30656E-04+0.00000E+00-5.73180E-04+0.00000E+00-1.27650E-04+0.00000E+00+3.94310E-04+0.00000E+00+8.48744E-04+0.00000E+00+1.09821E-03+0.00000E+00+1.05234E-03+0.00000E+00+6.98398E-04+0.00000E+00+1.11999E-04+0.00000E+00-5.57036E-04+0.00000E+00-1.12174E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.31236E-03+0.00000E+00-8.26764E-04+0.00000E+00-6.09068E-05+0.00000E+00+7.85842E-04+0.00000E+00+1.47374E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.61011E-03+0.00000E+00+9.47830E-04+0.00000E+00-4.36276E-05+0.00000E+00-1.10163E-03+0.00000E+00-1.92275E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.94359E-03+0.00000E+00-1.04776E-03+0.00000E+00+2.24088E-04+0.00000E+00+1.52962E-03+0.00000E+00+2.48958E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.30850E-03+0.00000E+00+1.10801E-03+0.00000E+00-5.08938E-04+0.00000E+00-2.10070E-03+0.00000E+00-3.19878E-03+0.00000E+00-3.44326E-03+0.00000E+00-2.69684E-03+0.00000E+00-1.10249E-03+0.00000E+00+9.36892E-04+0.00000E+00+2.85672E-03+0.00000E+00+4.08406E-03+0.00000E+00+4.20524E-03+0.00000E+00+3.09968E-03+0.00000E+00+9.97970E-04+0.00000E+00-1.55873E-03+0.00000E+00-3.85362E-03+0.00000E+00-5.19124E-03+0.00000E+00-5.10336E-03+0.00000E+00-3.50440E-03+0.00000E+00-7.46438E-04+0.00000E+00+2.44968E-03+0.00000E+00+5.17690E-03+0.00000E+00+6.59364E-03+0.00000E+00+6.17604E-03+0.00000E+00+3.89756E-03+0.00000E+00+2.77256E-04+0.00000E+00-3.72784E-03+0.00000E+00-6.96714E-03+0.00000E+00-8.41784E-03+0.00000E+00-7.49572E-03+0.00000E+00-4.26426E-03+0.00000E+00+5.27466E-04+0.00000E+00+5.60328E-03+0.00000E+00+9.48592E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.21506E-03+0.00000E+00+4.58962E-03+0.00000E+00-1.89363E-03+0.00000E+00-8.50506E-03+0.00000E+00-1.32925E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.16967E-02+0.00000E+00-4.85962E-03+0.00000E+00+4.34870E-03+0.00000E+00+1.34983E-02+0.00000E+00+1.98472E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.60019E-02+0.00000E+00+5.06204E-03+0.00000E+00-9.55078E-03+0.00000E+00-2.42030E-02+0.00000E+00-3.45266E-02+0.00000E+00-3.63864E-02+0.00000E+00-2.68872E-02+0.00000E+00-5.18748E-03+0.00000E+00+2.70918E-02+0.00000E+00+6.59838E-02+0.00000E+00+1.05820E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.71897E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.05820E-01+0.00000E+00+6.59838E-02+0.00000E+00+2.70918E-02+0.00000E+00-5.18748E-03+0.00000E+00-2.68872E-02+0.00000E+00-3.63864E-02+0.00000E+00-3.45266E-02+0.00000E+00-2.42030E-02+0.00000E+00-9.55078E-03+0.00000E+00+5.06204E-03+0.00000E+00+1.60019E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.98472E-02+0.00000E+00+1.34983E-02+0.00000E+00+4.34870E-03+0.00000E+00-4.85962E-03+0.00000E+00-1.16967E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.32925E-02+0.00000E+00-8.50506E-03+0.00000E+00-1.89363E-03+0.00000E+00+4.58962E-03+0.00000E+00+9.21506E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.48592E-03+0.00000E+00+5.60328E-03+0.00000E+00+5.27466E-04+0.00000E+00-4.26426E-03+0.00000E+00-7.49572E-03+0.00000E+00-8.41784E-03+0.00000E+00-6.96714E-03+0.00000E+00-3.72784E-03+0.00000E+00+2.77256E-04+0.00000E+00+3.89756E-03+0.00000E+00+6.17604E-03+0.00000E+00+6.59364E-03+0.00000E+00+5.17690E-03+0.00000E+00+2.44968E-03+0.00000E+00-7.46438E-04+0.00000E+00-3.50440E-03+0.00000E+00-5.10336E-03+0.00000E+00-5.19124E-03+0.00000E+00-3.85362E-03+0.00000E+00-1.55873E-03+0.00000E+00+9.97000018S*970E-04+0.00000E+00+3.09968E-03+0.00000E+00+4.20524E-03+0.00000E+00+4.08406E-03+0.00000E+00+2.85672E-03+0.00000E+00+9.36892E-04+0.00000E+00-1.10249E-03+0.00000E+00-2.69684E-03+0.00000E+00-3.44326E-03+0.00000E+00-3.19878E-03+0.00000E+00-2.10070E-03+0.00000E+00-5.08938E-04+0.00000E+00+1.10801E-03+0.00000E+00+2.30850E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.48958E-03+0.00000E+00+1.52962E-03+0.00000E+00+2.24088E-04+0.00000E+00-1.04776E-03+0.00000E+00-1.94359E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.92275E-03+0.00000E+00-1.10163E-03+0.00000E+00-4.36276E-05+0.00000E+00+9.47830E-04+0.00000E+00+1.61011E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.47374E-03+0.00000E+00+7.85842E-04+0.00000E+00-6.09068E-05+0.00000E+00-8.26764E-04+0.00000E+00-1.31236E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.12174E-03+0.00000E+00-5.57036E-04+0.00000E+00+1.11999E-04+0.00000E+00+6.98398E-04+0.00000E+00+1.05234E-03+0.00000E+00+1.09821E-03+0.00000E+00+8.48744E-04+0.00000E+00+3.94310E-04+0.00000E+00-1.27650E-04+0.00000E+00-5.73180E-04+0.00000E+00-8.30656E-04+0.00000E+00-8.47708E-04+0.00000E+00-6.40040E-04+0.00000E+00-2.81414E-04+0.00000E+00+1.20911E-04+0.00000E+00+4.57442E-04+0.00000E+00+6.45532E-04+0.00000E+00+6.48778E-04+0.00000E+00+4.82464E-04+0.00000E+00+2.04904E-04+0.00000E+00-1.01725E-04+0.00000E+00-3.55056E-04+0.00000E+00-4.94058E-04+0.00000E+00-4.92968E-04+0.00000E+00-3.64712E-04+0.00000E+00-1.53942E-04+0.00000E+00+7.75194E-05+0.00000E+00+2.68272E-04+0.00000E+00+3.73118E-04+0.00000E+00+3.73138E-04+0.00000E+00+2.78002E-04+0.00000E+00+1.20744E-04+0.00000E+00-5.29412E-05+0.00000E+00-1.97535E-04+0.00000E+00-2.79208E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.15680E-04+0.00000E+00-1.00068E-04+0.00000E+00+3.04418E-05+0.00000E+00+1.42114E-04+0.00000E+00+2.09036E-04+0.00000E+00+2.18690E-04+0.00000E+00+1.73672E-04+0.00000E+00+8.95560E-05+0.00000E+00-1.01214E-05+0.00000E+00-1.00242E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.52783E-04+0.00000E+00-9.29802E-05+0.00000E+00-1.42499E-05+0.00000E+00+6.50032E-05+0.00000E+00+1.27774E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.28752E-04+0.00000E+00+7.03544E-05+0.00000E+00-2.59160E-06+0.00000E+00-7.80380E-05+0.00000E+00-1.45142E-04+0.00000E+00-1.95955E-04+0.00000E+00-2.26268E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.03638E-04+0.00000E+00-1.72307E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.04124E-04+0.00000E+00-7.44366E-05+0.00000E+00-5.02182E-05+0.00000E+00-3.18550E-05+0.00000E+00-1.88893E-05+0.00000E+00-1.03793E-05+0.00000E+00-5.21464E-06+0.00000E+00-2.34472E-06+0.00000E+00-9.08544E-07+0.00000E+00-2.80036E-07+0.00000E+00-5.32080E-08+0.00000E+00+4.52378E-09+0.00000E+00+7.72762E-09+0.00000E+0000000570051071.0000E+030000500000+1.5900E-01+1.5900E-01058003507+1.00000E+00+5.00000E-0200058003500+2.03990E+05+5.00000E-02000520149 HNN0000003~004002+49.129100+008.148700+0128.0000.0000.0+00.00001122.0000E+022.0000E-020000TG~2015,008,10:45:00.0000~2015,078,13:00:00.0000~N0530382A01004003+1.00770E+18+1.00000E+00001-5.15000E+02+0.00000E+00+0.00000E+00+0.00000E+00006-9.77000E+02+3.28000E+02+0.00000E+00+0.00000E+00-9.77000E+02-3.28000E+02+0.00000E+00+0.00000E+00-1.48600E+03+2.51200E+03+0.00000E+00+0.00000E+00-1.48600E+03-2.51200E+03+0.00000E+00+0.00000E+00-5.73600E+03+4.94600E+03+0.00000E+00+0.00000E+00-5.73600E+03-4.94600E+03+0.00000E+00+0.00000E+00058003501+5.10000E-01+1.00000E+0000058003502+1.00000E+00+5.00000E-02000540048D030030040001+1.00000E+00+0.00000E+0000000570051031.9200E+050000100000+0.0000E+00+0.0000E+00058003503+4.00000E+05+5.00000E-02000541152D040040040047+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+3.81470E-06+0.00000E+00+2.28882E-05+0.00000E+00+8.01086E-05+0.00000E+00+2.13623E-04+0.00000E+00+4.80652E-04+0.00000E+00+9.61304E-04+0.00000E+00+1.76239E-03+0.00000E+00+3.02124E-03+0.00000E+00+4.88663E-03+0.00000E+00+7.49969E-03+0.00000E+00+1.09749E-02+0.00000E+00+1.53809E-02+0.00000E+00+2.07214E-02+0.00000E+00+2.69165E-02+0.00000E+00+3.37830E-02+0.00000E+00+4.10156E-02+0.00000E+00+4.82254E-02+0.00000E+00+5.49774E-02+0.00000E+00+6.08292E-02+0.00000E000019S*+00+6.53687E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.92444E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.08292E-02+0.00000E+00+5.49774E-02+0.00000E+00+4.82254E-02+0.00000E+00+4.10156E-02+0.00000E+00+3.37830E-02+0.00000E+00+2.69165E-02+0.00000E+00+2.07214E-02+0.00000E+00+1.53809E-02+0.00000E+00+1.09749E-02+0.00000E+00+7.49969E-03+0.00000E+00+4.88663E-03+0.00000E+00+3.02124E-03+0.00000E+00+1.76239E-03+0.00000E+00+9.61304E-04+0.00000E+00+4.80652E-04+0.00000E+00+2.13623E-04+0.00000E+00+8.01086E-05+0.00000E+00+2.28882E-05+0.00000E+00+3.81470E-06+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+0000000570051041.9200E+050000800000+1.1979E-04+1.1979E-04058003504+1.00000E+00+5.00000E-02000541776D050040040073+7.86395E-07+0.00000E+00+2.15223E-06+0.00000E+00+4.09013E-06+0.00000E+00+6.42053E-06+0.00000E+00+7.61300E-06+0.00000E+00+4.52134E-06+0.00000E+00-8.38839E-06+0.00000E+00-4.00745E-05+0.00000E+00-1.08702E-04+0.00000E+00-2.31570E-04+0.00000E+00-4.32673E-04+0.00000E+00-7.41861E-04+0.00000E+00-1.18635E-03+0.00000E+00-1.78887E-03+0.00000E+00-2.56156E-03+0.00000E+00-3.49756E-03+0.00000E+00-4.54784E-03+0.00000E+00-5.64473E-03+0.00000E+00-6.67437E-03+0.00000E+00-7.46932E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.53472E-03+0.00000E+00-6.33480E-03+0.00000E+00-3.99943E-03+0.00000E+00-3.60688E-04+0.00000E+00+4.71408E-03+0.00000E+00+1.12572E-02+0.00000E+00+1.91611E-02+0.00000E+00+2.82115E-02+0.00000E+00+3.80655E-02+0.00000E+00+4.82646E-02+0.00000E+00+5.82654E-02+0.00000E+00+6.75164E-02+0.00000E+00+7.54318E-02+0.00000E+00+8.14859E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.65986E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.14859E-02+0.00000E+00+7.54318E-02+0.00000E+00+6.75164E-02+0.00000E+00+5.82654E-02+0.00000E+00+4.82646E-02+0.00000E+00+3.80655E-02+0.00000E+00+2.82115E-02+0.00000E+00+1.91611E-02+0.00000E+00+1.12572E-02+0.00000E+00+4.71408E-03+0.00000E+00-3.60688E-04+0.00000E+00-3.99943E-03+0.00000E+00-6.33480E-03+0.00000E+00-7.53472E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.46932E-03+0.00000E+00-6.67437E-03+0.00000E+00-5.64473E-03+0.00000E+00-4.54784E-03+0.00000E+00-3.49756E-03+0.00000E+00-2.56156E-03+0.00000E+00-1.78887E-03+0.00000E+00-1.18635E-03+0.00000E+00-7.41861E-04+0.00000E+00-4.32673E-04+0.00000E+00-2.31570E-04+0.00000E+00-1.08702E-04+0.00000E+00-4.00745E-05+0.00000E+00-8.38839E-06+0.00000E+00+4.52134E-06+0.00000E+00+7.61300E-06+0.00000E+00+6.42053E-06+0.00000E+00+4.09013E-06+0.00000E+00+2.15223E-06+0.00000E+00+7.86395E-07+0.00000E+0000000570051052.4000E+040000800000+1.5000E-03+1.5000E-03058003505+1.00000E+00+5.00000E-02000544320D060040040179+1.65488E-07+0.00000E+00+7.48132E-07+0.00000E+00+1.76664E-06+0.00000E+00+1.62612E-06+0.00000E+00-5.16640E-06+0.00000E+00-3.00692E-05+0.00000E+00-8.97376E-05+0.00000E+00-1.99571E-04+0.00000E+00-3.61172E-04+0.00000E+00-5.48500E-04+0.00000E+00-7.02688E-04+0.00000E+00-7.45976E-04+0.00000E+00-6.17072E-04+0.00000E+00-3.15191E-04+0.00000E+00+7.38188E-05+0.00000E+00+3.95725E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.15263E-04+0.00000E+00-5.96548E-05+0.00000E+00-4.11872E-04+0.00000E+00-5.12780E-04+0.00000E+00-2.69536E-04+0.00000E+00+1.89248E-04+0.00000E+00+5.66172E-04+0.00000E+00+5.78372E-04+0.00000E+00+1.64727E-04+0.00000E+00-4.31664E-04+0.00000E+00-7.92432E-04+0.00000E+00-6.08316E-04+0.00000E+00+6.76780E-05+0.00000E+00+7.98316E-04+0.00000E+00+1.03172E-03+0.00000E+00+5.07504E-04+0.00000E+00-4.91744E-04+0.00000E+00-1.26810E-03+0.00000E+00-1.18261E-03+0.00000E+00-1.64670E-04+0.00000E+00+1.13876E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.09177E-03+0.00000E+00-5.24120E-04+0.00000E+00-1.97068E-03+0.00000E+00-2.08536E-03+0.00000E+00-5.79052E-04+0.00000E+00+1.60144E-03+0.00000E+00+2.83576E-03+0.00000E+00+2.01276E-03+0.00000E+00-5.13156E-04+0.00000E+00-2.98815E-03+0.00000E+00-3.44765E-03+0.00000E+00-1.24599E-03+0.00000E+00+2.24272E-03+0.00000E+00+4.43120E-03+0.00000E+00+3.40590E-03+0.00000E+00-4.57304E-04+0.00000E+00-4.47584E-03+0.00000E+00-5.47828E-03+0.00000E+00-2.26220E-03+0.00000E+00+3.18035E-03+0.00000E+00+6.81616E-03+0.00000E+00+5.50776E-03+0.00000E+00-3.65328E-04+0.00000E+00-000020S*6.73316E-03+0.00000E+00-8.58052E-03+0.00000E+00-3.81782E-03+0.00000E+00+4.65228E-03+0.00000E+00+1.05646E-02+0.00000E+00+8.82560E-03+0.00000E+00-2.56374E-04+0.00000E+00-1.04496E-02+0.00000E+00-1.37224E-02+0.00000E+00-6.39512E-03+0.00000E+00+7.26512E-03+0.00000E+00+1.72312E-02+0.00000E+00+1.48181E-02+0.00000E+00-1.54011E-04+0.00000E+00-1.77680E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.17549E-02+0.00000E+00+1.32733E-02+0.00000E+00+3.32147E-02+0.00000E+00+3.01309E-02+0.00000E+00-8.13468E-05+0.00000E+00-4.08284E-02+0.00000E+00-6.13256E-02+0.00000E+00-3.42109E-02+0.00000E+00+4.58968E-02+0.00000E+00+1.54886E-01+0.00000E+00+2.48713E-01+0.00000E+00+2.85658E-01+0.00000E+00+2.48713E-01+0.00000E+00+1.54886E-01+0.00000E+00+4.58968E-02+0.00000E+00-3.42109E-02+0.00000E+00-6.13256E-02+0.00000E+00-4.08284E-02+0.00000E+00-8.13468E-05+0.00000E+00+3.01309E-02+0.00000E+00+3.32147E-02+0.00000E+00+1.32733E-02+0.00000E+00-1.17549E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.77680E-02+0.00000E+00-1.54011E-04+0.00000E+00+1.48181E-02+0.00000E+00+1.72312E-02+0.00000E+00+7.26512E-03+0.00000E+00-6.39512E-03+0.00000E+00-1.37224E-02+0.00000E+00-1.04496E-02+0.00000E+00-2.56374E-04+0.00000E+00+8.82560E-03+0.00000E+00+1.05646E-02+0.00000E+00+4.65228E-03+0.00000E+00-3.81782E-03+0.00000E+00-8.58052E-03+0.00000E+00-6.73316E-03+0.00000E+00-3.65328E-04+0.00000E+00+5.50776E-03+0.00000E+00+6.81616E-03+0.00000E+00+3.18035E-03+0.00000E+00-2.26220E-03+0.00000E+00-5.47828E-03+0.00000E+00-4.47584E-03+0.00000E+00-4.57304E-04+0.00000E+00+3.40590E-03+0.00000E+00+4.43120E-03+0.00000E+00+2.24272E-03+0.00000E+00-1.24599E-03+0.00000E+00-3.44765E-03+0.00000E+00-2.98815E-03+0.00000E+00-5.13156E-04+0.00000E+00+2.01276E-03+0.00000E+00+2.83576E-03+0.00000E+00+1.60144E-03+0.00000E+00-5.79052E-04+0.00000E+00-2.08536E-03+0.00000E+00-1.97068E-03+0.00000E+00-5.24120E-04+0.00000E+00+1.09177E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.13876E-03+0.00000E+00-1.64670E-04+0.00000E+00-1.18261E-03+0.00000E+00-1.26810E-03+0.00000E+00-4.91744E-04+0.00000E+00+5.07504E-04+0.00000E+00+1.03172E-03+0.00000E+00+7.98316E-04+0.00000E+00+6.76780E-05+0.00000E+00-6.08316E-04+0.00000E+00-7.92432E-04+0.00000E+00-4.31664E-04+0.00000E+00+1.64727E-04+0.00000E+00+5.78372E-04+0.00000E+00+5.66172E-04+0.00000E+00+1.89248E-04+0.00000E+00-2.69536E-04+0.00000E+00-5.12780E-04+0.00000E+00-4.11872E-04+0.00000E+00-5.96548E-05+0.00000E+00+3.15263E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.95725E-04+0.00000E+00+7.38188E-05+0.00000E+00-3.15191E-04+0.00000E+00-6.17072E-04+0.00000E+00-7.45976E-04+0.00000E+00-7.02688E-04+0.00000E+00-5.48500E-04+0.00000E+00-3.61172E-04+0.00000E+00-1.99571E-04+0.00000E+00-8.97376E-05+0.00000E+00-3.00692E-05+0.00000E+00-5.16640E-06+0.00000E+00+1.62612E-06+0.00000E+00+1.76664E-06+0.00000E+00+7.48132E-07+0.00000E+00+1.65488E-07+0.00000E+0000000570051063.0000E+030000300000+2.9667E-02+2.9667E-02058003506+1.00000E+00+5.00000E-02000547680D070040040319+7.72762E-09+0.00000E+00+4.52378E-09+0.00000E+00-5.32080E-08+0.00000E+00-2.80036E-07+0.00000E+00-9.08544E-07+0.00000E+00-2.34472E-06+0.00000E+00-5.21464E-06+0.00000E+00-1.03793E-05+0.00000E+00-1.88893E-05+0.00000E+00-3.18550E-05+0.00000E+00-5.02182E-05+0.00000E+00-7.44366E-05+0.00000E+00-1.04124E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.72307E-04+0.00000E+00-2.03638E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26268E-04+0.00000E+00-1.95955E-04+0.00000E+00-1.45142E-04+0.00000E+00-7.80380E-05+0.00000E+00-2.59160E-06+0.00000E+00+7.03544E-05+0.00000E+00+1.28752E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.27774E-04+0.00000E+00+6.50032E-05+0.00000E+00-1.42499E-05+0.00000E+00-9.29802E-05+0.00000E+00-1.52783E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.00242E-04+0.00000E+00-1.01214E-05+0.00000E+00+8.95560E-05+0.00000E+00+1.73672E-04+0.00000E+00+2.18690E-04+0.00000E+00+2.09036E-04+0.00000E+00+1.42114E-04+0.00000E+00+3.04418E-05+0.00000E+00-1.00068E-04+0.00000E+00-2.15680E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.79208E-04+0.00000E+00-1.97535E-04+0.00000E+00-5.29412E-05+0.00000E+00+1.20744E-04+0.0000000021S*0E+00+2.78002E-04+0.00000E+00+3.73138E-04+0.00000E+00+3.73118E-04+0.00000E+00+2.68272E-04+0.00000E+00+7.75194E-05+0.00000E+00-1.53942E-04+0.00000E+00-3.64712E-04+0.00000E+00-4.92968E-04+0.00000E+00-4.94058E-04+0.00000E+00-3.55056E-04+0.00000E+00-1.01725E-04+0.00000E+00+2.04904E-04+0.00000E+00+4.82464E-04+0.00000E+00+6.48778E-04+0.00000E+00+6.45532E-04+0.00000E+00+4.57442E-04+0.00000E+00+1.20911E-04+0.00000E+00-2.81414E-04+0.00000E+00-6.40040E-04+0.00000E+00-8.47708E-04+0.00000E+00-8.30656E-04+0.00000E+00-5.73180E-04+0.00000E+00-1.27650E-04+0.00000E+00+3.94310E-04+0.00000E+00+8.48744E-04+0.00000E+00+1.09821E-03+0.00000E+00+1.05234E-03+0.00000E+00+6.98398E-04+0.00000E+00+1.11999E-04+0.00000E+00-5.57036E-04+0.00000E+00-1.12174E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.31236E-03+0.00000E+00-8.26764E-04+0.00000E+00-6.09068E-05+0.00000E+00+7.85842E-04+0.00000E+00+1.47374E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.61011E-03+0.00000E+00+9.47830E-04+0.00000E+00-4.36276E-05+0.00000E+00-1.10163E-03+0.00000E+00-1.92275E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.94359E-03+0.00000E+00-1.04776E-03+0.00000E+00+2.24088E-04+0.00000E+00+1.52962E-03+0.00000E+00+2.48958E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.30850E-03+0.00000E+00+1.10801E-03+0.00000E+00-5.08938E-04+0.00000E+00-2.10070E-03+0.00000E+00-3.19878E-03+0.00000E+00-3.44326E-03+0.00000E+00-2.69684E-03+0.00000E+00-1.10249E-03+0.00000E+00+9.36892E-04+0.00000E+00+2.85672E-03+0.00000E+00+4.08406E-03+0.00000E+00+4.20524E-03+0.00000E+00+3.09968E-03+0.00000E+00+9.97970E-04+0.00000E+00-1.55873E-03+0.00000E+00-3.85362E-03+0.00000E+00-5.19124E-03+0.00000E+00-5.10336E-03+0.00000E+00-3.50440E-03+0.00000E+00-7.46438E-04+0.00000E+00+2.44968E-03+0.00000E+00+5.17690E-03+0.00000E+00+6.59364E-03+0.00000E+00+6.17604E-03+0.00000E+00+3.89756E-03+0.00000E+00+2.77256E-04+0.00000E+00-3.72784E-03+0.00000E+00-6.96714E-03+0.00000E+00-8.41784E-03+0.00000E+00-7.49572E-03+0.00000E+00-4.26426E-03+0.00000E+00+5.27466E-04+0.00000E+00+5.60328E-03+0.00000E+00+9.48592E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.21506E-03+0.00000E+00+4.58962E-03+0.00000E+00-1.89363E-03+0.00000E+00-8.50506E-03+0.00000E+00-1.32925E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.16967E-02+0.00000E+00-4.85962E-03+0.00000E+00+4.34870E-03+0.00000E+00+1.34983E-02+0.00000E+00+1.98472E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.60019E-02+0.00000E+00+5.06204E-03+0.00000E+00-9.55078E-03+0.00000E+00-2.42030E-02+0.00000E+00-3.45266E-02+0.00000E+00-3.63864E-02+0.00000E+00-2.68872E-02+0.00000E+00-5.18748E-03+0.00000E+00+2.70918E-02+0.00000E+00+6.59838E-02+0.00000E+00+1.05820E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.71897E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.05820E-01+0.00000E+00+6.59838E-02+0.00000E+00+2.70918E-02+0.00000E+00-5.18748E-03+0.00000E+00-2.68872E-02+0.00000E+00-3.63864E-02+0.00000E+00-3.45266E-02+0.00000E+00-2.42030E-02+0.00000E+00-9.55078E-03+0.00000E+00+5.06204E-03+0.00000E+00+1.60019E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.98472E-02+0.00000E+00+1.34983E-02+0.00000E+00+4.34870E-03+0.00000E+00-4.85962E-03+0.00000E+00-1.16967E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.32925E-02+0.00000E+00-8.50506E-03+0.00000E+00-1.89363E-03+0.00000E+00+4.58962E-03+0.00000E+00+9.21506E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.48592E-03+0.00000E+00+5.60328E-03+0.00000E+00+5.27466E-04+0.00000E+00-4.26426E-03+0.00000E+00-7.49572E-03+0.00000E+00-8.41784E-03+0.00000E+00-6.96714E-03+0.00000E+00-3.72784E-03+0.00000E+00+2.77256E-04+0.00000E+00+3.89756E-03+0.00000E+00+6.17604E-03+0.00000E+00+6.59364E-03+0.00000E+00+5.17690E-03+0.00000E+00+2.44968E-03+0.00000E+00-7.46438E-04+0.00000E+00-3.50440E-03+0.00000E+00-5.10336E-03+0.00000E+00-5.19124E-03+0.00000E+00-3.85362E-03+0.00000E+00-1.55873E-03+0.00000E+00+9.97970E-04+0.00000E+00+3.09968E-03+0.00000E+00+4.20524E-03+0.00000E+00+4.08406E-03+0.00000E+00+2.85672E-03+0.00000E+00+9.36892E-04+0.00000E+00-1.10249E-03+0.00000E+00-2.69684E-03+0.00000E+00-3.44326E-03+0.00000E+00-3.19878E-03+0.00000E+00-2.10070E-03+0.00000E+00-5.08938E-04+0.00000E+00+1.10801E-03+0.00000E+00+2.000022S*30850E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.48958E-03+0.00000E+00+1.52962E-03+0.00000E+00+2.24088E-04+0.00000E+00-1.04776E-03+0.00000E+00-1.94359E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.92275E-03+0.00000E+00-1.10163E-03+0.00000E+00-4.36276E-05+0.00000E+00+9.47830E-04+0.00000E+00+1.61011E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.47374E-03+0.00000E+00+7.85842E-04+0.00000E+00-6.09068E-05+0.00000E+00-8.26764E-04+0.00000E+00-1.31236E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.12174E-03+0.00000E+00-5.57036E-04+0.00000E+00+1.11999E-04+0.00000E+00+6.98398E-04+0.00000E+00+1.05234E-03+0.00000E+00+1.09821E-03+0.00000E+00+8.48744E-04+0.00000E+00+3.94310E-04+0.00000E+00-1.27650E-04+0.00000E+00-5.73180E-04+0.00000E+00-8.30656E-04+0.00000E+00-8.47708E-04+0.00000E+00-6.40040E-04+0.00000E+00-2.81414E-04+0.00000E+00+1.20911E-04+0.00000E+00+4.57442E-04+0.00000E+00+6.45532E-04+0.00000E+00+6.48778E-04+0.00000E+00+4.82464E-04+0.00000E+00+2.04904E-04+0.00000E+00-1.01725E-04+0.00000E+00-3.55056E-04+0.00000E+00-4.94058E-04+0.00000E+00-4.92968E-04+0.00000E+00-3.64712E-04+0.00000E+00-1.53942E-04+0.00000E+00+7.75194E-05+0.00000E+00+2.68272E-04+0.00000E+00+3.73118E-04+0.00000E+00+3.73138E-04+0.00000E+00+2.78002E-04+0.00000E+00+1.20744E-04+0.00000E+00-5.29412E-05+0.00000E+00-1.97535E-04+0.00000E+00-2.79208E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.15680E-04+0.00000E+00-1.00068E-04+0.00000E+00+3.04418E-05+0.00000E+00+1.42114E-04+0.00000E+00+2.09036E-04+0.00000E+00+2.18690E-04+0.00000E+00+1.73672E-04+0.00000E+00+8.95560E-05+0.00000E+00-1.01214E-05+0.00000E+00-1.00242E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.52783E-04+0.00000E+00-9.29802E-05+0.00000E+00-1.42499E-05+0.00000E+00+6.50032E-05+0.00000E+00+1.27774E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.28752E-04+0.00000E+00+7.03544E-05+0.00000E+00-2.59160E-06+0.00000E+00-7.80380E-05+0.00000E+00-1.45142E-04+0.00000E+00-1.95955E-04+0.00000E+00-2.26268E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.03638E-04+0.00000E+00-1.72307E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.04124E-04+0.00000E+00-7.44366E-05+0.00000E+00-5.02182E-05+0.00000E+00-3.18550E-05+0.00000E+00-1.88893E-05+0.00000E+00-1.03793E-05+0.00000E+00-5.21464E-06+0.00000E+00-2.34472E-06+0.00000E+00-9.08544E-07+0.00000E+00-2.80036E-07+0.00000E+00-5.32080E-08+0.00000E+00+4.52378E-09+0.00000E+00+7.72762E-09+0.00000E+0000000570051071.0000E+030000500000+1.5900E-01+1.5900E-01058003507+1.00000E+00+5.00000E-0200058003500+2.03990E+05+5.00000E-02000520149 HNZ0000003~004002+49.129100+008.148700+0128.0000.0000.0-90.00001122.0000E+022.0000E-020000TG~2015,008,10:45:00.0000~2015,078,13:00:00.0000~N0530382A01004003+1.00770E+18+1.00000E+00001-5.15000E+02+0.00000E+00+0.00000E+00+0.00000E+00006-9.77000E+02+3.28000E+02+0.00000E+00+0.00000E+00-9.77000E+02-3.28000E+02+0.00000E+00+0.00000E+00-1.48600E+03+2.51200E+03+0.00000E+00+0.00000E+00-1.48600E+03-2.51200E+03+0.00000E+00+0.00000E+00-5.73600E+03+4.94600E+03+0.00000E+00+0.00000E+00-5.73600E+03-4.94600E+03+0.00000E+00+0.00000E+00058003501+5.10000E-01+1.00000E+0000058003502+1.00000E+00+5.00000E-02000540048D030030040001+1.00000E+00+0.00000E+0000000570051031.9200E+050000100000+0.0000E+00+0.0000E+00058003503+4.00000E+05+5.00000E-02000541152D040040040047+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+3.81470E-06+0.00000E+00+2.28882E-05+0.00000E+00+8.01086E-05+0.00000E+00+2.13623E-04+0.00000E+00+4.80652E-04+0.00000E+00+9.61304E-04+0.00000E+00+1.76239E-03+0.00000E+00+3.02124E-03+0.00000E+00+4.88663E-03+0.00000E+00+7.49969E-03+0.00000E+00+1.09749E-02+0.00000E+00+1.53809E-02+0.00000E+00+2.07214E-02+0.00000E+00+2.69165E-02+0.00000E+00+3.37830E-02+0.00000E+00+4.10156E-02+0.00000E+00+4.82254E-02+0.00000E+00+5.49774E-02+0.00000E+00+6.08292E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.92444E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.08292E-02+0.00000E+00+5.49774E-02+0.00000E+00+4.82254E-02+0.00000E+00+4.10156E-02+0.00000E+00+3.37830E-02+0.00000E+00+2.69165E-02+0.00000E+00+2.07214E-02+0.00000E+00+1.53809E-02+0.0000000023S*0E+00+1.09749E-02+0.00000E+00+7.49969E-03+0.00000E+00+4.88663E-03+0.00000E+00+3.02124E-03+0.00000E+00+1.76239E-03+0.00000E+00+9.61304E-04+0.00000E+00+4.80652E-04+0.00000E+00+2.13623E-04+0.00000E+00+8.01086E-05+0.00000E+00+2.28882E-05+0.00000E+00+3.81470E-06+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+0000000570051041.9200E+050000800000+1.1979E-04+1.1979E-04058003504+1.00000E+00+5.00000E-02000541776D050040040073+7.86395E-07+0.00000E+00+2.15223E-06+0.00000E+00+4.09013E-06+0.00000E+00+6.42053E-06+0.00000E+00+7.61300E-06+0.00000E+00+4.52134E-06+0.00000E+00-8.38839E-06+0.00000E+00-4.00745E-05+0.00000E+00-1.08702E-04+0.00000E+00-2.31570E-04+0.00000E+00-4.32673E-04+0.00000E+00-7.41861E-04+0.00000E+00-1.18635E-03+0.00000E+00-1.78887E-03+0.00000E+00-2.56156E-03+0.00000E+00-3.49756E-03+0.00000E+00-4.54784E-03+0.00000E+00-5.64473E-03+0.00000E+00-6.67437E-03+0.00000E+00-7.46932E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.53472E-03+0.00000E+00-6.33480E-03+0.00000E+00-3.99943E-03+0.00000E+00-3.60688E-04+0.00000E+00+4.71408E-03+0.00000E+00+1.12572E-02+0.00000E+00+1.91611E-02+0.00000E+00+2.82115E-02+0.00000E+00+3.80655E-02+0.00000E+00+4.82646E-02+0.00000E+00+5.82654E-02+0.00000E+00+6.75164E-02+0.00000E+00+7.54318E-02+0.00000E+00+8.14859E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.65986E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.14859E-02+0.00000E+00+7.54318E-02+0.00000E+00+6.75164E-02+0.00000E+00+5.82654E-02+0.00000E+00+4.82646E-02+0.00000E+00+3.80655E-02+0.00000E+00+2.82115E-02+0.00000E+00+1.91611E-02+0.00000E+00+1.12572E-02+0.00000E+00+4.71408E-03+0.00000E+00-3.60688E-04+0.00000E+00-3.99943E-03+0.00000E+00-6.33480E-03+0.00000E+00-7.53472E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.46932E-03+0.00000E+00-6.67437E-03+0.00000E+00-5.64473E-03+0.00000E+00-4.54784E-03+0.00000E+00-3.49756E-03+0.00000E+00-2.56156E-03+0.00000E+00-1.78887E-03+0.00000E+00-1.18635E-03+0.00000E+00-7.41861E-04+0.00000E+00-4.32673E-04+0.00000E+00-2.31570E-04+0.00000E+00-1.08702E-04+0.00000E+00-4.00745E-05+0.00000E+00-8.38839E-06+0.00000E+00+4.52134E-06+0.00000E+00+7.61300E-06+0.00000E+00+6.42053E-06+0.00000E+00+4.09013E-06+0.00000E+00+2.15223E-06+0.00000E+00+7.86395E-07+0.00000E+0000000570051052.4000E+040000800000+1.5000E-03+1.5000E-03058003505+1.00000E+00+5.00000E-02000544320D060040040179+1.65488E-07+0.00000E+00+7.48132E-07+0.00000E+00+1.76664E-06+0.00000E+00+1.62612E-06+0.00000E+00-5.16640E-06+0.00000E+00-3.00692E-05+0.00000E+00-8.97376E-05+0.00000E+00-1.99571E-04+0.00000E+00-3.61172E-04+0.00000E+00-5.48500E-04+0.00000E+00-7.02688E-04+0.00000E+00-7.45976E-04+0.00000E+00-6.17072E-04+0.00000E+00-3.15191E-04+0.00000E+00+7.38188E-05+0.00000E+00+3.95725E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.15263E-04+0.00000E+00-5.96548E-05+0.00000E+00-4.11872E-04+0.00000E+00-5.12780E-04+0.00000E+00-2.69536E-04+0.00000E+00+1.89248E-04+0.00000E+00+5.66172E-04+0.00000E+00+5.78372E-04+0.00000E+00+1.64727E-04+0.00000E+00-4.31664E-04+0.00000E+00-7.92432E-04+0.00000E+00-6.08316E-04+0.00000E+00+6.76780E-05+0.00000E+00+7.98316E-04+0.00000E+00+1.03172E-03+0.00000E+00+5.07504E-04+0.00000E+00-4.91744E-04+0.00000E+00-1.26810E-03+0.00000E+00-1.18261E-03+0.00000E+00-1.64670E-04+0.00000E+00+1.13876E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.09177E-03+0.00000E+00-5.24120E-04+0.00000E+00-1.97068E-03+0.00000E+00-2.08536E-03+0.00000E+00-5.79052E-04+0.00000E+00+1.60144E-03+0.00000E+00+2.83576E-03+0.00000E+00+2.01276E-03+0.00000E+00-5.13156E-04+0.00000E+00-2.98815E-03+0.00000E+00-3.44765E-03+0.00000E+00-1.24599E-03+0.00000E+00+2.24272E-03+0.00000E+00+4.43120E-03+0.00000E+00+3.40590E-03+0.00000E+00-4.57304E-04+0.00000E+00-4.47584E-03+0.00000E+00-5.47828E-03+0.00000E+00-2.26220E-03+0.00000E+00+3.18035E-03+0.00000E+00+6.81616E-03+0.00000E+00+5.50776E-03+0.00000E+00-3.65328E-04+0.00000E+00-6.73316E-03+0.00000E+00-8.58052E-03+0.00000E+00-3.81782E-03+0.00000E+00+4.65228E-03+0.00000E+00+1.05646E-02+0.00000E+00+8.82560E-03+0.00000E+00-2.56374E-04+0.00000E+00-1.04496E-02+0.00000E+00-1.37224E-02+0.00000E+00-6.39512E-03+0.00000E+00+7.26512E-03+0.00000E+00+1.72312E-02+0.00000E+00+1.48181E-02+0.00000E+0000024S*0-1.54011E-04+0.00000E+00-1.77680E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.17549E-02+0.00000E+00+1.32733E-02+0.00000E+00+3.32147E-02+0.00000E+00+3.01309E-02+0.00000E+00-8.13468E-05+0.00000E+00-4.08284E-02+0.00000E+00-6.13256E-02+0.00000E+00-3.42109E-02+0.00000E+00+4.58968E-02+0.00000E+00+1.54886E-01+0.00000E+00+2.48713E-01+0.00000E+00+2.85658E-01+0.00000E+00+2.48713E-01+0.00000E+00+1.54886E-01+0.00000E+00+4.58968E-02+0.00000E+00-3.42109E-02+0.00000E+00-6.13256E-02+0.00000E+00-4.08284E-02+0.00000E+00-8.13468E-05+0.00000E+00+3.01309E-02+0.00000E+00+3.32147E-02+0.00000E+00+1.32733E-02+0.00000E+00-1.17549E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.77680E-02+0.00000E+00-1.54011E-04+0.00000E+00+1.48181E-02+0.00000E+00+1.72312E-02+0.00000E+00+7.26512E-03+0.00000E+00-6.39512E-03+0.00000E+00-1.37224E-02+0.00000E+00-1.04496E-02+0.00000E+00-2.56374E-04+0.00000E+00+8.82560E-03+0.00000E+00+1.05646E-02+0.00000E+00+4.65228E-03+0.00000E+00-3.81782E-03+0.00000E+00-8.58052E-03+0.00000E+00-6.73316E-03+0.00000E+00-3.65328E-04+0.00000E+00+5.50776E-03+0.00000E+00+6.81616E-03+0.00000E+00+3.18035E-03+0.00000E+00-2.26220E-03+0.00000E+00-5.47828E-03+0.00000E+00-4.47584E-03+0.00000E+00-4.57304E-04+0.00000E+00+3.40590E-03+0.00000E+00+4.43120E-03+0.00000E+00+2.24272E-03+0.00000E+00-1.24599E-03+0.00000E+00-3.44765E-03+0.00000E+00-2.98815E-03+0.00000E+00-5.13156E-04+0.00000E+00+2.01276E-03+0.00000E+00+2.83576E-03+0.00000E+00+1.60144E-03+0.00000E+00-5.79052E-04+0.00000E+00-2.08536E-03+0.00000E+00-1.97068E-03+0.00000E+00-5.24120E-04+0.00000E+00+1.09177E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.13876E-03+0.00000E+00-1.64670E-04+0.00000E+00-1.18261E-03+0.00000E+00-1.26810E-03+0.00000E+00-4.91744E-04+0.00000E+00+5.07504E-04+0.00000E+00+1.03172E-03+0.00000E+00+7.98316E-04+0.00000E+00+6.76780E-05+0.00000E+00-6.08316E-04+0.00000E+00-7.92432E-04+0.00000E+00-4.31664E-04+0.00000E+00+1.64727E-04+0.00000E+00+5.78372E-04+0.00000E+00+5.66172E-04+0.00000E+00+1.89248E-04+0.00000E+00-2.69536E-04+0.00000E+00-5.12780E-04+0.00000E+00-4.11872E-04+0.00000E+00-5.96548E-05+0.00000E+00+3.15263E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.95725E-04+0.00000E+00+7.38188E-05+0.00000E+00-3.15191E-04+0.00000E+00-6.17072E-04+0.00000E+00-7.45976E-04+0.00000E+00-7.02688E-04+0.00000E+00-5.48500E-04+0.00000E+00-3.61172E-04+0.00000E+00-1.99571E-04+0.00000E+00-8.97376E-05+0.00000E+00-3.00692E-05+0.00000E+00-5.16640E-06+0.00000E+00+1.62612E-06+0.00000E+00+1.76664E-06+0.00000E+00+7.48132E-07+0.00000E+00+1.65488E-07+0.00000E+0000000570051063.0000E+030000300000+2.9667E-02+2.9667E-02058003506+1.00000E+00+5.00000E-02000547680D070040040319+7.72762E-09+0.00000E+00+4.52378E-09+0.00000E+00-5.32080E-08+0.00000E+00-2.80036E-07+0.00000E+00-9.08544E-07+0.00000E+00-2.34472E-06+0.00000E+00-5.21464E-06+0.00000E+00-1.03793E-05+0.00000E+00-1.88893E-05+0.00000E+00-3.18550E-05+0.00000E+00-5.02182E-05+0.00000E+00-7.44366E-05+0.00000E+00-1.04124E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.72307E-04+0.00000E+00-2.03638E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26268E-04+0.00000E+00-1.95955E-04+0.00000E+00-1.45142E-04+0.00000E+00-7.80380E-05+0.00000E+00-2.59160E-06+0.00000E+00+7.03544E-05+0.00000E+00+1.28752E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.27774E-04+0.00000E+00+6.50032E-05+0.00000E+00-1.42499E-05+0.00000E+00-9.29802E-05+0.00000E+00-1.52783E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.00242E-04+0.00000E+00-1.01214E-05+0.00000E+00+8.95560E-05+0.00000E+00+1.73672E-04+0.00000E+00+2.18690E-04+0.00000E+00+2.09036E-04+0.00000E+00+1.42114E-04+0.00000E+00+3.04418E-05+0.00000E+00-1.00068E-04+0.00000E+00-2.15680E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.79208E-04+0.00000E+00-1.97535E-04+0.00000E+00-5.29412E-05+0.00000E+00+1.20744E-04+0.00000E+00+2.78002E-04+0.00000E+00+3.73138E-04+0.00000E+00+3.73118E-04+0.00000E+00+2.68272E-04+0.00000E+00+7.75194E-05+0.00000E+00-1.53942E-04+0.00000E+00-3.64712E-04+0.00000E+00-4.92968E-04+0.00000E+00-4.94058E-04+0.00000E+00-3.55056E-04+0.00000E+00-1.01725E-04+0.00000E+00+2.04904E-04+0.00000E+00+4.82464E-04+0.00000025S*000E+00+6.48778E-04+0.00000E+00+6.45532E-04+0.00000E+00+4.57442E-04+0.00000E+00+1.20911E-04+0.00000E+00-2.81414E-04+0.00000E+00-6.40040E-04+0.00000E+00-8.47708E-04+0.00000E+00-8.30656E-04+0.00000E+00-5.73180E-04+0.00000E+00-1.27650E-04+0.00000E+00+3.94310E-04+0.00000E+00+8.48744E-04+0.00000E+00+1.09821E-03+0.00000E+00+1.05234E-03+0.00000E+00+6.98398E-04+0.00000E+00+1.11999E-04+0.00000E+00-5.57036E-04+0.00000E+00-1.12174E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.31236E-03+0.00000E+00-8.26764E-04+0.00000E+00-6.09068E-05+0.00000E+00+7.85842E-04+0.00000E+00+1.47374E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.61011E-03+0.00000E+00+9.47830E-04+0.00000E+00-4.36276E-05+0.00000E+00-1.10163E-03+0.00000E+00-1.92275E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.94359E-03+0.00000E+00-1.04776E-03+0.00000E+00+2.24088E-04+0.00000E+00+1.52962E-03+0.00000E+00+2.48958E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.30850E-03+0.00000E+00+1.10801E-03+0.00000E+00-5.08938E-04+0.00000E+00-2.10070E-03+0.00000E+00-3.19878E-03+0.00000E+00-3.44326E-03+0.00000E+00-2.69684E-03+0.00000E+00-1.10249E-03+0.00000E+00+9.36892E-04+0.00000E+00+2.85672E-03+0.00000E+00+4.08406E-03+0.00000E+00+4.20524E-03+0.00000E+00+3.09968E-03+0.00000E+00+9.97970E-04+0.00000E+00-1.55873E-03+0.00000E+00-3.85362E-03+0.00000E+00-5.19124E-03+0.00000E+00-5.10336E-03+0.00000E+00-3.50440E-03+0.00000E+00-7.46438E-04+0.00000E+00+2.44968E-03+0.00000E+00+5.17690E-03+0.00000E+00+6.59364E-03+0.00000E+00+6.17604E-03+0.00000E+00+3.89756E-03+0.00000E+00+2.77256E-04+0.00000E+00-3.72784E-03+0.00000E+00-6.96714E-03+0.00000E+00-8.41784E-03+0.00000E+00-7.49572E-03+0.00000E+00-4.26426E-03+0.00000E+00+5.27466E-04+0.00000E+00+5.60328E-03+0.00000E+00+9.48592E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.21506E-03+0.00000E+00+4.58962E-03+0.00000E+00-1.89363E-03+0.00000E+00-8.50506E-03+0.00000E+00-1.32925E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.16967E-02+0.00000E+00-4.85962E-03+0.00000E+00+4.34870E-03+0.00000E+00+1.34983E-02+0.00000E+00+1.98472E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.60019E-02+0.00000E+00+5.06204E-03+0.00000E+00-9.55078E-03+0.00000E+00-2.42030E-02+0.00000E+00-3.45266E-02+0.00000E+00-3.63864E-02+0.00000E+00-2.68872E-02+0.00000E+00-5.18748E-03+0.00000E+00+2.70918E-02+0.00000E+00+6.59838E-02+0.00000E+00+1.05820E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.71897E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.05820E-01+0.00000E+00+6.59838E-02+0.00000E+00+2.70918E-02+0.00000E+00-5.18748E-03+0.00000E+00-2.68872E-02+0.00000E+00-3.63864E-02+0.00000E+00-3.45266E-02+0.00000E+00-2.42030E-02+0.00000E+00-9.55078E-03+0.00000E+00+5.06204E-03+0.00000E+00+1.60019E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.98472E-02+0.00000E+00+1.34983E-02+0.00000E+00+4.34870E-03+0.00000E+00-4.85962E-03+0.00000E+00-1.16967E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.32925E-02+0.00000E+00-8.50506E-03+0.00000E+00-1.89363E-03+0.00000E+00+4.58962E-03+0.00000E+00+9.21506E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.48592E-03+0.00000E+00+5.60328E-03+0.00000E+00+5.27466E-04+0.00000E+00-4.26426E-03+0.00000E+00-7.49572E-03+0.00000E+00-8.41784E-03+0.00000E+00-6.96714E-03+0.00000E+00-3.72784E-03+0.00000E+00+2.77256E-04+0.00000E+00+3.89756E-03+0.00000E+00+6.17604E-03+0.00000E+00+6.59364E-03+0.00000E+00+5.17690E-03+0.00000E+00+2.44968E-03+0.00000E+00-7.46438E-04+0.00000E+00-3.50440E-03+0.00000E+00-5.10336E-03+0.00000E+00-5.19124E-03+0.00000E+00-3.85362E-03+0.00000E+00-1.55873E-03+0.00000E+00+9.97970E-04+0.00000E+00+3.09968E-03+0.00000E+00+4.20524E-03+0.00000E+00+4.08406E-03+0.00000E+00+2.85672E-03+0.00000E+00+9.36892E-04+0.00000E+00-1.10249E-03+0.00000E+00-2.69684E-03+0.00000E+00-3.44326E-03+0.00000E+00-3.19878E-03+0.00000E+00-2.10070E-03+0.00000E+00-5.08938E-04+0.00000E+00+1.10801E-03+0.00000E+00+2.30850E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.48958E-03+0.00000E+00+1.52962E-03+0.00000E+00+2.24088E-04+0.00000E+00-1.04776E-03+0.00000E+00-1.94359E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.92275E-03+0.00000E+00-1.10163E-03+0.00000E+00-4.36276E-05+0.00000E+00+9.47830E-04+0.00000E+00+1.61011E-03+0.00000E+00+000026S*1.78935E-03+0.00000E+00+1.47374E-03+0.00000E+00+7.85842E-04+0.00000E+00-6.09068E-05+0.00000E+00-8.26764E-04+0.00000E+00-1.31236E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.12174E-03+0.00000E+00-5.57036E-04+0.00000E+00+1.11999E-04+0.00000E+00+6.98398E-04+0.00000E+00+1.05234E-03+0.00000E+00+1.09821E-03+0.00000E+00+8.48744E-04+0.00000E+00+3.94310E-04+0.00000E+00-1.27650E-04+0.00000E+00-5.73180E-04+0.00000E+00-8.30656E-04+0.00000E+00-8.47708E-04+0.00000E+00-6.40040E-04+0.00000E+00-2.81414E-04+0.00000E+00+1.20911E-04+0.00000E+00+4.57442E-04+0.00000E+00+6.45532E-04+0.00000E+00+6.48778E-04+0.00000E+00+4.82464E-04+0.00000E+00+2.04904E-04+0.00000E+00-1.01725E-04+0.00000E+00-3.55056E-04+0.00000E+00-4.94058E-04+0.00000E+00-4.92968E-04+0.00000E+00-3.64712E-04+0.00000E+00-1.53942E-04+0.00000E+00+7.75194E-05+0.00000E+00+2.68272E-04+0.00000E+00+3.73118E-04+0.00000E+00+3.73138E-04+0.00000E+00+2.78002E-04+0.00000E+00+1.20744E-04+0.00000E+00-5.29412E-05+0.00000E+00-1.97535E-04+0.00000E+00-2.79208E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.15680E-04+0.00000E+00-1.00068E-04+0.00000E+00+3.04418E-05+0.00000E+00+1.42114E-04+0.00000E+00+2.09036E-04+0.00000E+00+2.18690E-04+0.00000E+00+1.73672E-04+0.00000E+00+8.95560E-05+0.00000E+00-1.01214E-05+0.00000E+00-1.00242E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.52783E-04+0.00000E+00-9.29802E-05+0.00000E+00-1.42499E-05+0.00000E+00+6.50032E-05+0.00000E+00+1.27774E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.28752E-04+0.00000E+00+7.03544E-05+0.00000E+00-2.59160E-06+0.00000E+00-7.80380E-05+0.00000E+00-1.45142E-04+0.00000E+00-1.95955E-04+0.00000E+00-2.26268E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.03638E-04+0.00000E+00-1.72307E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.04124E-04+0.00000E+00-7.44366E-05+0.00000E+00-5.02182E-05+0.00000E+00-3.18550E-05+0.00000E+00-1.88893E-05+0.00000E+00-1.03793E-05+0.00000E+00-5.21464E-06+0.00000E+00-2.34472E-06+0.00000E+00-9.08544E-07+0.00000E+00-2.80036E-07+0.00000E+00-5.32080E-08+0.00000E+00+4.52378E-09+0.00000E+00+7.72762E-09+0.00000E+0000000570051071.0000E+030000500000+1.5900E-01+1.5900E-01058003507+1.00000E+00+5.00000E-0200058003500+2.03990E+05+5.00000E-0200 000027S 0500106ROTT +49.129100+008.148700+0128.00006000Rottmuehle Steinweiler~0013210102015,078,13:00:00.0000~~NLE0520127 EH10000002~001002+49.129100+008.148700-0177.0305.0000.0+00.00001122.0000E+022.0000E-020000TG~2015,078,13:00:00.0000~~N0530334A01001003+1.00000E+00+5.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-4.44400E+00+4.44400E+00+0.00000E+00+0.00000E+00-4.44400E+00-4.44400E+00+0.00000E+00+0.00000E+00-1.08300E+00+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+5.00000E+0000058003502+2.50000E+00+5.00000E-02000540048D030030040001+1.00000E+00+0.00000E+0000000570051031.9200E+050000100000+0.0000E+00+0.0000E+00058003503+4.00000E+05+5.00000E-02000541152D040040040047+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+3.81470E-06+0.00000E+00+2.28882E-05+0.00000E+00+8.01086E-05+0.00000E+00+2.13623E-04+0.00000E+00+4.80652E-04+0.00000E+00+9.61304E-04+0.00000E+00+1.76239E-03+0.00000E+00+3.02124E-03+0.00000E+00+4.88663E-03+0.00000E+00+7.49969E-03+0.00000E+00+1.09749E-02+0.00000E+00+1.53809E-02+0.00000E+00+2.07214E-02+0.00000E+00+2.69165E-02+0.00000E+00+3.37830E-02+0.00000E+00+4.10156E-02+0.00000E+00+4.82254E-02+0.00000E+00+5.49774E-02+0.00000E+00+6.08292E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.92444E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.08292E-02+0.00000E+00+5.49774E-02+0.00000E+00+4.82254E-02+0.00000E+00+4.10156E-02+0.00000E+00+3.37830E-02+0.00000E+00+2.69165E-02+0.00000E+00+2.07214E-02+0.00000E+00+1.53809E-02+0.00000E+00+1.09749E-02+0.00000E+00+7.49969E-03+0.00000E+00+4.88663E-03+0.00000E+00+3.02124E-03+0.00000E+00+1.76239E-03+0.00000E+00+9.61304E-04+0.00000E+00+4.80652E-04+0.00000E+00+2.13623E-04+0.00000E+00+8.01086E-05+0.00000E+00+2.28882E-05+0.00000E+00+3.81470E-06+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+0000000570051041.9200E+050000800000+1.1979E-04+1.1979E-04058003504+1.00000E+00+5.00000E-02000541776D050040040073+7.86395E-07+0.00000E+00+2.15223E-06+0.00000E+00+4.09013E-06+0.00000E+00+6.42053E-06+0.00000E+00+7.61300E-06+0.00000E+00+4.52134E-06+0.00000E+00-8.38839E-06+0.00000E+00-4.00745E-05+0.00000E+00-1.08702E-04+0.00000E+00-2.31570E-04+0.00000E+00-4.32673E-04+0.00000E+00-7.41861E-04+0.00000E+00-1.18635E-03+0.00000E+00-1.78887E-03+0.00000E+00-2.56156E-03+0.00000E+00-3.49756E-03+0.00000E+00-4.54784E-03+0.00000E+00-5.64473E-03+0.00000E+00-6.67437E-03+0.00000E+00-7.46932E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.53472E-03+0.00000E+00-6.33480E-03+0.00000E+00-3.99943E-03+0.00000E+00-3.60688E-04+0.00000E+00+4.71408E-03+0.00000E+00+1.12572E-02+0.00000E+00+1.91611E-02+0.00000E+00+2.82115E-02+0.00000E+00+3.80655E-02+0.00000E+00+4.82646E-02+0.00000E+00+5.82654E-02+0.00000E+00+6.75164E-02+0.00000E+00+7.54318E-02+0.00000E+00+8.14859E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.65986E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.14859E-02+0.00000E+00+7.54318E-02+0.00000E+00+6.75164E-02+0.00000E+00+5.82654E-02+0.00000E+00+4.82646E-02+0.00000E+00+3.80655E-02+0.00000E+00+2.82115E-02+0.00000E+00+1.91611E-02+0.00000E+00+1.12572E-02+0.00000E+00+4.71408E-03+0.00000E+00-3.60688E-04+0.00000E+00-3.99943E-03+0.00000E+00-6.33480E-03+0.00000E+00-7.53472E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.46932E-03+0.00000E+00-6.67437E-03+0.00000E+00-5.64473E-03+0.00000E+00-4.54784E-03+0.00000E+00-3.49756E-03+0.00000E+00-2.56156E-03+0.00000E+00-1.78887E-03+0.00000E+00-1.18635E-03+0.00000E+00-7.41861E-04+0.00000E+00-4.32673E-04+0.00000E+00-2.31570E-04+0.00000E+00-1.08702E-04+0.00000E+00-4.00745E-05+0.00000E+00-8.38839E-06+0.00000E+00+4.52134E-06+0.00000E+00+7.61300E-06+0.00000E+00+6.42053E-06+0.00000E+00+4.09013E-06+0.00000E+00+2.15223E-06+0.00000E+00+7.86395E-07+0.00000E+0000000570051052.4000E+040000800000+1.5000E-03+1.5000E-03058003505+1.00000E+00+5.00000E-02000544320D060040040179+1.65488E-07+0.00000E+00+7.48132E-07+0.00000E+00+1.76664E-06+0.00000E+00+1.62612E-06+0.00000E+00-5.16640E-06+0.00000E+00-3.00692E-05+0.00000E+00-8.97376E-05+0.00000E+00-1.99571E-04+0.00000E+00-3.61000028S*172E-04+0.00000E+00-5.48500E-04+0.00000E+00-7.02688E-04+0.00000E+00-7.45976E-04+0.00000E+00-6.17072E-04+0.00000E+00-3.15191E-04+0.00000E+00+7.38188E-05+0.00000E+00+3.95725E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.15263E-04+0.00000E+00-5.96548E-05+0.00000E+00-4.11872E-04+0.00000E+00-5.12780E-04+0.00000E+00-2.69536E-04+0.00000E+00+1.89248E-04+0.00000E+00+5.66172E-04+0.00000E+00+5.78372E-04+0.00000E+00+1.64727E-04+0.00000E+00-4.31664E-04+0.00000E+00-7.92432E-04+0.00000E+00-6.08316E-04+0.00000E+00+6.76780E-05+0.00000E+00+7.98316E-04+0.00000E+00+1.03172E-03+0.00000E+00+5.07504E-04+0.00000E+00-4.91744E-04+0.00000E+00-1.26810E-03+0.00000E+00-1.18261E-03+0.00000E+00-1.64670E-04+0.00000E+00+1.13876E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.09177E-03+0.00000E+00-5.24120E-04+0.00000E+00-1.97068E-03+0.00000E+00-2.08536E-03+0.00000E+00-5.79052E-04+0.00000E+00+1.60144E-03+0.00000E+00+2.83576E-03+0.00000E+00+2.01276E-03+0.00000E+00-5.13156E-04+0.00000E+00-2.98815E-03+0.00000E+00-3.44765E-03+0.00000E+00-1.24599E-03+0.00000E+00+2.24272E-03+0.00000E+00+4.43120E-03+0.00000E+00+3.40590E-03+0.00000E+00-4.57304E-04+0.00000E+00-4.47584E-03+0.00000E+00-5.47828E-03+0.00000E+00-2.26220E-03+0.00000E+00+3.18035E-03+0.00000E+00+6.81616E-03+0.00000E+00+5.50776E-03+0.00000E+00-3.65328E-04+0.00000E+00-6.73316E-03+0.00000E+00-8.58052E-03+0.00000E+00-3.81782E-03+0.00000E+00+4.65228E-03+0.00000E+00+1.05646E-02+0.00000E+00+8.82560E-03+0.00000E+00-2.56374E-04+0.00000E+00-1.04496E-02+0.00000E+00-1.37224E-02+0.00000E+00-6.39512E-03+0.00000E+00+7.26512E-03+0.00000E+00+1.72312E-02+0.00000E+00+1.48181E-02+0.00000E+00-1.54011E-04+0.00000E+00-1.77680E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.17549E-02+0.00000E+00+1.32733E-02+0.00000E+00+3.32147E-02+0.00000E+00+3.01309E-02+0.00000E+00-8.13468E-05+0.00000E+00-4.08284E-02+0.00000E+00-6.13256E-02+0.00000E+00-3.42109E-02+0.00000E+00+4.58968E-02+0.00000E+00+1.54886E-01+0.00000E+00+2.48713E-01+0.00000E+00+2.85658E-01+0.00000E+00+2.48713E-01+0.00000E+00+1.54886E-01+0.00000E+00+4.58968E-02+0.00000E+00-3.42109E-02+0.00000E+00-6.13256E-02+0.00000E+00-4.08284E-02+0.00000E+00-8.13468E-05+0.00000E+00+3.01309E-02+0.00000E+00+3.32147E-02+0.00000E+00+1.32733E-02+0.00000E+00-1.17549E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.77680E-02+0.00000E+00-1.54011E-04+0.00000E+00+1.48181E-02+0.00000E+00+1.72312E-02+0.00000E+00+7.26512E-03+0.00000E+00-6.39512E-03+0.00000E+00-1.37224E-02+0.00000E+00-1.04496E-02+0.00000E+00-2.56374E-04+0.00000E+00+8.82560E-03+0.00000E+00+1.05646E-02+0.00000E+00+4.65228E-03+0.00000E+00-3.81782E-03+0.00000E+00-8.58052E-03+0.00000E+00-6.73316E-03+0.00000E+00-3.65328E-04+0.00000E+00+5.50776E-03+0.00000E+00+6.81616E-03+0.00000E+00+3.18035E-03+0.00000E+00-2.26220E-03+0.00000E+00-5.47828E-03+0.00000E+00-4.47584E-03+0.00000E+00-4.57304E-04+0.00000E+00+3.40590E-03+0.00000E+00+4.43120E-03+0.00000E+00+2.24272E-03+0.00000E+00-1.24599E-03+0.00000E+00-3.44765E-03+0.00000E+00-2.98815E-03+0.00000E+00-5.13156E-04+0.00000E+00+2.01276E-03+0.00000E+00+2.83576E-03+0.00000E+00+1.60144E-03+0.00000E+00-5.79052E-04+0.00000E+00-2.08536E-03+0.00000E+00-1.97068E-03+0.00000E+00-5.24120E-04+0.00000E+00+1.09177E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.13876E-03+0.00000E+00-1.64670E-04+0.00000E+00-1.18261E-03+0.00000E+00-1.26810E-03+0.00000E+00-4.91744E-04+0.00000E+00+5.07504E-04+0.00000E+00+1.03172E-03+0.00000E+00+7.98316E-04+0.00000E+00+6.76780E-05+0.00000E+00-6.08316E-04+0.00000E+00-7.92432E-04+0.00000E+00-4.31664E-04+0.00000E+00+1.64727E-04+0.00000E+00+5.78372E-04+0.00000E+00+5.66172E-04+0.00000E+00+1.89248E-04+0.00000E+00-2.69536E-04+0.00000E+00-5.12780E-04+0.00000E+00-4.11872E-04+0.00000E+00-5.96548E-05+0.00000E+00+3.15263E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.95725E-04+0.00000E+00+7.38188E-05+0.00000E+00-3.15191E-04+0.00000E+00-6.17072E-04+0.00000E+00-7.45976E-04+0.00000E+00-7.02688E-04+0.00000E+00-5.48500E-04+0.00000E+00-3.61172E-04+0.00000E+00-1.99571E-04+0.00000E+00-8.97376E-05+0.00000E+00-3.00692E-05+0.00000E+00-5.16640E-06+0.00000E+00+1.62612E-06+0.00000E+00+1.76664E-06+0.00000E+00+7.48132E-07+0.00000E+00+1.65488E-07+000029S*0.00000E+0000000570051063.0000E+030000300000+2.9667E-02+2.9667E-02058003506+1.00000E+00+5.00000E-02000547680D070040040319+7.72762E-09+0.00000E+00+4.52378E-09+0.00000E+00-5.32080E-08+0.00000E+00-2.80036E-07+0.00000E+00-9.08544E-07+0.00000E+00-2.34472E-06+0.00000E+00-5.21464E-06+0.00000E+00-1.03793E-05+0.00000E+00-1.88893E-05+0.00000E+00-3.18550E-05+0.00000E+00-5.02182E-05+0.00000E+00-7.44366E-05+0.00000E+00-1.04124E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.72307E-04+0.00000E+00-2.03638E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26268E-04+0.00000E+00-1.95955E-04+0.00000E+00-1.45142E-04+0.00000E+00-7.80380E-05+0.00000E+00-2.59160E-06+0.00000E+00+7.03544E-05+0.00000E+00+1.28752E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.27774E-04+0.00000E+00+6.50032E-05+0.00000E+00-1.42499E-05+0.00000E+00-9.29802E-05+0.00000E+00-1.52783E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.00242E-04+0.00000E+00-1.01214E-05+0.00000E+00+8.95560E-05+0.00000E+00+1.73672E-04+0.00000E+00+2.18690E-04+0.00000E+00+2.09036E-04+0.00000E+00+1.42114E-04+0.00000E+00+3.04418E-05+0.00000E+00-1.00068E-04+0.00000E+00-2.15680E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.79208E-04+0.00000E+00-1.97535E-04+0.00000E+00-5.29412E-05+0.00000E+00+1.20744E-04+0.00000E+00+2.78002E-04+0.00000E+00+3.73138E-04+0.00000E+00+3.73118E-04+0.00000E+00+2.68272E-04+0.00000E+00+7.75194E-05+0.00000E+00-1.53942E-04+0.00000E+00-3.64712E-04+0.00000E+00-4.92968E-04+0.00000E+00-4.94058E-04+0.00000E+00-3.55056E-04+0.00000E+00-1.01725E-04+0.00000E+00+2.04904E-04+0.00000E+00+4.82464E-04+0.00000E+00+6.48778E-04+0.00000E+00+6.45532E-04+0.00000E+00+4.57442E-04+0.00000E+00+1.20911E-04+0.00000E+00-2.81414E-04+0.00000E+00-6.40040E-04+0.00000E+00-8.47708E-04+0.00000E+00-8.30656E-04+0.00000E+00-5.73180E-04+0.00000E+00-1.27650E-04+0.00000E+00+3.94310E-04+0.00000E+00+8.48744E-04+0.00000E+00+1.09821E-03+0.00000E+00+1.05234E-03+0.00000E+00+6.98398E-04+0.00000E+00+1.11999E-04+0.00000E+00-5.57036E-04+0.00000E+00-1.12174E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.31236E-03+0.00000E+00-8.26764E-04+0.00000E+00-6.09068E-05+0.00000E+00+7.85842E-04+0.00000E+00+1.47374E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.61011E-03+0.00000E+00+9.47830E-04+0.00000E+00-4.36276E-05+0.00000E+00-1.10163E-03+0.00000E+00-1.92275E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.94359E-03+0.00000E+00-1.04776E-03+0.00000E+00+2.24088E-04+0.00000E+00+1.52962E-03+0.00000E+00+2.48958E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.30850E-03+0.00000E+00+1.10801E-03+0.00000E+00-5.08938E-04+0.00000E+00-2.10070E-03+0.00000E+00-3.19878E-03+0.00000E+00-3.44326E-03+0.00000E+00-2.69684E-03+0.00000E+00-1.10249E-03+0.00000E+00+9.36892E-04+0.00000E+00+2.85672E-03+0.00000E+00+4.08406E-03+0.00000E+00+4.20524E-03+0.00000E+00+3.09968E-03+0.00000E+00+9.97970E-04+0.00000E+00-1.55873E-03+0.00000E+00-3.85362E-03+0.00000E+00-5.19124E-03+0.00000E+00-5.10336E-03+0.00000E+00-3.50440E-03+0.00000E+00-7.46438E-04+0.00000E+00+2.44968E-03+0.00000E+00+5.17690E-03+0.00000E+00+6.59364E-03+0.00000E+00+6.17604E-03+0.00000E+00+3.89756E-03+0.00000E+00+2.77256E-04+0.00000E+00-3.72784E-03+0.00000E+00-6.96714E-03+0.00000E+00-8.41784E-03+0.00000E+00-7.49572E-03+0.00000E+00-4.26426E-03+0.00000E+00+5.27466E-04+0.00000E+00+5.60328E-03+0.00000E+00+9.48592E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.21506E-03+0.00000E+00+4.58962E-03+0.00000E+00-1.89363E-03+0.00000E+00-8.50506E-03+0.00000E+00-1.32925E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.16967E-02+0.00000E+00-4.85962E-03+0.00000E+00+4.34870E-03+0.00000E+00+1.34983E-02+0.00000E+00+1.98472E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.60019E-02+0.00000E+00+5.06204E-03+0.00000E+00-9.55078E-03+0.00000E+00-2.42030E-02+0.00000E+00-3.45266E-02+0.00000E+00-3.63864E-02+0.00000E+00-2.68872E-02+0.00000E+00-5.18748E-03+0.00000E+00+2.70918E-02+0.00000E+00+6.59838E-02+0.00000E+00+1.05820E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.71897E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.05820E-01+0.00000E+00+6.59838E-02+0.00000E+00+2.70918E-02+0.00000E+00-5.1874000030S*8E-03+0.00000E+00-2.68872E-02+0.00000E+00-3.63864E-02+0.00000E+00-3.45266E-02+0.00000E+00-2.42030E-02+0.00000E+00-9.55078E-03+0.00000E+00+5.06204E-03+0.00000E+00+1.60019E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.98472E-02+0.00000E+00+1.34983E-02+0.00000E+00+4.34870E-03+0.00000E+00-4.85962E-03+0.00000E+00-1.16967E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.32925E-02+0.00000E+00-8.50506E-03+0.00000E+00-1.89363E-03+0.00000E+00+4.58962E-03+0.00000E+00+9.21506E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.48592E-03+0.00000E+00+5.60328E-03+0.00000E+00+5.27466E-04+0.00000E+00-4.26426E-03+0.00000E+00-7.49572E-03+0.00000E+00-8.41784E-03+0.00000E+00-6.96714E-03+0.00000E+00-3.72784E-03+0.00000E+00+2.77256E-04+0.00000E+00+3.89756E-03+0.00000E+00+6.17604E-03+0.00000E+00+6.59364E-03+0.00000E+00+5.17690E-03+0.00000E+00+2.44968E-03+0.00000E+00-7.46438E-04+0.00000E+00-3.50440E-03+0.00000E+00-5.10336E-03+0.00000E+00-5.19124E-03+0.00000E+00-3.85362E-03+0.00000E+00-1.55873E-03+0.00000E+00+9.97970E-04+0.00000E+00+3.09968E-03+0.00000E+00+4.20524E-03+0.00000E+00+4.08406E-03+0.00000E+00+2.85672E-03+0.00000E+00+9.36892E-04+0.00000E+00-1.10249E-03+0.00000E+00-2.69684E-03+0.00000E+00-3.44326E-03+0.00000E+00-3.19878E-03+0.00000E+00-2.10070E-03+0.00000E+00-5.08938E-04+0.00000E+00+1.10801E-03+0.00000E+00+2.30850E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.48958E-03+0.00000E+00+1.52962E-03+0.00000E+00+2.24088E-04+0.00000E+00-1.04776E-03+0.00000E+00-1.94359E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.92275E-03+0.00000E+00-1.10163E-03+0.00000E+00-4.36276E-05+0.00000E+00+9.47830E-04+0.00000E+00+1.61011E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.47374E-03+0.00000E+00+7.85842E-04+0.00000E+00-6.09068E-05+0.00000E+00-8.26764E-04+0.00000E+00-1.31236E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.12174E-03+0.00000E+00-5.57036E-04+0.00000E+00+1.11999E-04+0.00000E+00+6.98398E-04+0.00000E+00+1.05234E-03+0.00000E+00+1.09821E-03+0.00000E+00+8.48744E-04+0.00000E+00+3.94310E-04+0.00000E+00-1.27650E-04+0.00000E+00-5.73180E-04+0.00000E+00-8.30656E-04+0.00000E+00-8.47708E-04+0.00000E+00-6.40040E-04+0.00000E+00-2.81414E-04+0.00000E+00+1.20911E-04+0.00000E+00+4.57442E-04+0.00000E+00+6.45532E-04+0.00000E+00+6.48778E-04+0.00000E+00+4.82464E-04+0.00000E+00+2.04904E-04+0.00000E+00-1.01725E-04+0.00000E+00-3.55056E-04+0.00000E+00-4.94058E-04+0.00000E+00-4.92968E-04+0.00000E+00-3.64712E-04+0.00000E+00-1.53942E-04+0.00000E+00+7.75194E-05+0.00000E+00+2.68272E-04+0.00000E+00+3.73118E-04+0.00000E+00+3.73138E-04+0.00000E+00+2.78002E-04+0.00000E+00+1.20744E-04+0.00000E+00-5.29412E-05+0.00000E+00-1.97535E-04+0.00000E+00-2.79208E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.15680E-04+0.00000E+00-1.00068E-04+0.00000E+00+3.04418E-05+0.00000E+00+1.42114E-04+0.00000E+00+2.09036E-04+0.00000E+00+2.18690E-04+0.00000E+00+1.73672E-04+0.00000E+00+8.95560E-05+0.00000E+00-1.01214E-05+0.00000E+00-1.00242E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.52783E-04+0.00000E+00-9.29802E-05+0.00000E+00-1.42499E-05+0.00000E+00+6.50032E-05+0.00000E+00+1.27774E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.28752E-04+0.00000E+00+7.03544E-05+0.00000E+00-2.59160E-06+0.00000E+00-7.80380E-05+0.00000E+00-1.45142E-04+0.00000E+00-1.95955E-04+0.00000E+00-2.26268E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.03638E-04+0.00000E+00-1.72307E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.04124E-04+0.00000E+00-7.44366E-05+0.00000E+00-5.02182E-05+0.00000E+00-3.18550E-05+0.00000E+00-1.88893E-05+0.00000E+00-1.03793E-05+0.00000E+00-5.21464E-06+0.00000E+00-2.34472E-06+0.00000E+00-9.08544E-07+0.00000E+00-2.80036E-07+0.00000E+00-5.32080E-08+0.00000E+00+4.52378E-09+0.00000E+00+7.72762E-09+0.00000E+0000000570051071.0000E+030000500000+1.5900E-01+1.5900E-01058003507+1.00000E+00+5.00000E-0200058003500+2.78845E+05+5.00000E-02000520127 EH20000002~001002+49.129100+008.148700-0177.0305.0000.0+00.00001122.0000E+022.0000E-020000TG~2015,078,13:00:00.0000~~N0530334A01001003+1.00000E+00+5.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000000031S*E+00+0.00000E+00+0.00000E+00+0.00000E+00003-4.44400E+00+4.44400E+00+0.00000E+00+0.00000E+00-4.44400E+00-4.44400E+00+0.00000E+00+0.00000E+00-1.08300E+00+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+5.00000E+0000058003502+2.50000E+00+5.00000E-02000540048D030030040001+1.00000E+00+0.00000E+0000000570051031.9200E+050000100000+0.0000E+00+0.0000E+00058003503+4.00000E+05+5.00000E-02000541152D040040040047+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+3.81470E-06+0.00000E+00+2.28882E-05+0.00000E+00+8.01086E-05+0.00000E+00+2.13623E-04+0.00000E+00+4.80652E-04+0.00000E+00+9.61304E-04+0.00000E+00+1.76239E-03+0.00000E+00+3.02124E-03+0.00000E+00+4.88663E-03+0.00000E+00+7.49969E-03+0.00000E+00+1.09749E-02+0.00000E+00+1.53809E-02+0.00000E+00+2.07214E-02+0.00000E+00+2.69165E-02+0.00000E+00+3.37830E-02+0.00000E+00+4.10156E-02+0.00000E+00+4.82254E-02+0.00000E+00+5.49774E-02+0.00000E+00+6.08292E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.92444E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.08292E-02+0.00000E+00+5.49774E-02+0.00000E+00+4.82254E-02+0.00000E+00+4.10156E-02+0.00000E+00+3.37830E-02+0.00000E+00+2.69165E-02+0.00000E+00+2.07214E-02+0.00000E+00+1.53809E-02+0.00000E+00+1.09749E-02+0.00000E+00+7.49969E-03+0.00000E+00+4.88663E-03+0.00000E+00+3.02124E-03+0.00000E+00+1.76239E-03+0.00000E+00+9.61304E-04+0.00000E+00+4.80652E-04+0.00000E+00+2.13623E-04+0.00000E+00+8.01086E-05+0.00000E+00+2.28882E-05+0.00000E+00+3.81470E-06+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+0000000570051041.9200E+050000800000+1.1979E-04+1.1979E-04058003504+1.00000E+00+5.00000E-02000541776D050040040073+7.86395E-07+0.00000E+00+2.15223E-06+0.00000E+00+4.09013E-06+0.00000E+00+6.42053E-06+0.00000E+00+7.61300E-06+0.00000E+00+4.52134E-06+0.00000E+00-8.38839E-06+0.00000E+00-4.00745E-05+0.00000E+00-1.08702E-04+0.00000E+00-2.31570E-04+0.00000E+00-4.32673E-04+0.00000E+00-7.41861E-04+0.00000E+00-1.18635E-03+0.00000E+00-1.78887E-03+0.00000E+00-2.56156E-03+0.00000E+00-3.49756E-03+0.00000E+00-4.54784E-03+0.00000E+00-5.64473E-03+0.00000E+00-6.67437E-03+0.00000E+00-7.46932E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.53472E-03+0.00000E+00-6.33480E-03+0.00000E+00-3.99943E-03+0.00000E+00-3.60688E-04+0.00000E+00+4.71408E-03+0.00000E+00+1.12572E-02+0.00000E+00+1.91611E-02+0.00000E+00+2.82115E-02+0.00000E+00+3.80655E-02+0.00000E+00+4.82646E-02+0.00000E+00+5.82654E-02+0.00000E+00+6.75164E-02+0.00000E+00+7.54318E-02+0.00000E+00+8.14859E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.65986E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.14859E-02+0.00000E+00+7.54318E-02+0.00000E+00+6.75164E-02+0.00000E+00+5.82654E-02+0.00000E+00+4.82646E-02+0.00000E+00+3.80655E-02+0.00000E+00+2.82115E-02+0.00000E+00+1.91611E-02+0.00000E+00+1.12572E-02+0.00000E+00+4.71408E-03+0.00000E+00-3.60688E-04+0.00000E+00-3.99943E-03+0.00000E+00-6.33480E-03+0.00000E+00-7.53472E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.46932E-03+0.00000E+00-6.67437E-03+0.00000E+00-5.64473E-03+0.00000E+00-4.54784E-03+0.00000E+00-3.49756E-03+0.00000E+00-2.56156E-03+0.00000E+00-1.78887E-03+0.00000E+00-1.18635E-03+0.00000E+00-7.41861E-04+0.00000E+00-4.32673E-04+0.00000E+00-2.31570E-04+0.00000E+00-1.08702E-04+0.00000E+00-4.00745E-05+0.00000E+00-8.38839E-06+0.00000E+00+4.52134E-06+0.00000E+00+7.61300E-06+0.00000E+00+6.42053E-06+0.00000E+00+4.09013E-06+0.00000E+00+2.15223E-06+0.00000E+00+7.86395E-07+0.00000E+0000000570051052.4000E+040000800000+1.5000E-03+1.5000E-03058003505+1.00000E+00+5.00000E-02000544320D060040040179+1.65488E-07+0.00000E+00+7.48132E-07+0.00000E+00+1.76664E-06+0.00000E+00+1.62612E-06+0.00000E+00-5.16640E-06+0.00000E+00-3.00692E-05+0.00000E+00-8.97376E-05+0.00000E+00-1.99571E-04+0.00000E+00-3.61172E-04+0.00000E+00-5.48500E-04+0.00000E+00-7.02688E-04+0.00000E+00-7.45976E-04+0.00000E+00-6.17072E-04+0.00000E+00-3.15191E-04+0.00000E+00+7.38188E-05+0.00000E+00+3.95725E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.15263E-04+0.00000E+00-5.96548E-05+0.00000E+00-4.11872E-04+0.00000E+00-5.12780E-04+0.00000E+00-2.69536E-04+0.00000E+00+1.89248E-04+0.00000E+00+5.66172E-04+0.00000E+00+000032S*5.78372E-04+0.00000E+00+1.64727E-04+0.00000E+00-4.31664E-04+0.00000E+00-7.92432E-04+0.00000E+00-6.08316E-04+0.00000E+00+6.76780E-05+0.00000E+00+7.98316E-04+0.00000E+00+1.03172E-03+0.00000E+00+5.07504E-04+0.00000E+00-4.91744E-04+0.00000E+00-1.26810E-03+0.00000E+00-1.18261E-03+0.00000E+00-1.64670E-04+0.00000E+00+1.13876E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.09177E-03+0.00000E+00-5.24120E-04+0.00000E+00-1.97068E-03+0.00000E+00-2.08536E-03+0.00000E+00-5.79052E-04+0.00000E+00+1.60144E-03+0.00000E+00+2.83576E-03+0.00000E+00+2.01276E-03+0.00000E+00-5.13156E-04+0.00000E+00-2.98815E-03+0.00000E+00-3.44765E-03+0.00000E+00-1.24599E-03+0.00000E+00+2.24272E-03+0.00000E+00+4.43120E-03+0.00000E+00+3.40590E-03+0.00000E+00-4.57304E-04+0.00000E+00-4.47584E-03+0.00000E+00-5.47828E-03+0.00000E+00-2.26220E-03+0.00000E+00+3.18035E-03+0.00000E+00+6.81616E-03+0.00000E+00+5.50776E-03+0.00000E+00-3.65328E-04+0.00000E+00-6.73316E-03+0.00000E+00-8.58052E-03+0.00000E+00-3.81782E-03+0.00000E+00+4.65228E-03+0.00000E+00+1.05646E-02+0.00000E+00+8.82560E-03+0.00000E+00-2.56374E-04+0.00000E+00-1.04496E-02+0.00000E+00-1.37224E-02+0.00000E+00-6.39512E-03+0.00000E+00+7.26512E-03+0.00000E+00+1.72312E-02+0.00000E+00+1.48181E-02+0.00000E+00-1.54011E-04+0.00000E+00-1.77680E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.17549E-02+0.00000E+00+1.32733E-02+0.00000E+00+3.32147E-02+0.00000E+00+3.01309E-02+0.00000E+00-8.13468E-05+0.00000E+00-4.08284E-02+0.00000E+00-6.13256E-02+0.00000E+00-3.42109E-02+0.00000E+00+4.58968E-02+0.00000E+00+1.54886E-01+0.00000E+00+2.48713E-01+0.00000E+00+2.85658E-01+0.00000E+00+2.48713E-01+0.00000E+00+1.54886E-01+0.00000E+00+4.58968E-02+0.00000E+00-3.42109E-02+0.00000E+00-6.13256E-02+0.00000E+00-4.08284E-02+0.00000E+00-8.13468E-05+0.00000E+00+3.01309E-02+0.00000E+00+3.32147E-02+0.00000E+00+1.32733E-02+0.00000E+00-1.17549E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.77680E-02+0.00000E+00-1.54011E-04+0.00000E+00+1.48181E-02+0.00000E+00+1.72312E-02+0.00000E+00+7.26512E-03+0.00000E+00-6.39512E-03+0.00000E+00-1.37224E-02+0.00000E+00-1.04496E-02+0.00000E+00-2.56374E-04+0.00000E+00+8.82560E-03+0.00000E+00+1.05646E-02+0.00000E+00+4.65228E-03+0.00000E+00-3.81782E-03+0.00000E+00-8.58052E-03+0.00000E+00-6.73316E-03+0.00000E+00-3.65328E-04+0.00000E+00+5.50776E-03+0.00000E+00+6.81616E-03+0.00000E+00+3.18035E-03+0.00000E+00-2.26220E-03+0.00000E+00-5.47828E-03+0.00000E+00-4.47584E-03+0.00000E+00-4.57304E-04+0.00000E+00+3.40590E-03+0.00000E+00+4.43120E-03+0.00000E+00+2.24272E-03+0.00000E+00-1.24599E-03+0.00000E+00-3.44765E-03+0.00000E+00-2.98815E-03+0.00000E+00-5.13156E-04+0.00000E+00+2.01276E-03+0.00000E+00+2.83576E-03+0.00000E+00+1.60144E-03+0.00000E+00-5.79052E-04+0.00000E+00-2.08536E-03+0.00000E+00-1.97068E-03+0.00000E+00-5.24120E-04+0.00000E+00+1.09177E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.13876E-03+0.00000E+00-1.64670E-04+0.00000E+00-1.18261E-03+0.00000E+00-1.26810E-03+0.00000E+00-4.91744E-04+0.00000E+00+5.07504E-04+0.00000E+00+1.03172E-03+0.00000E+00+7.98316E-04+0.00000E+00+6.76780E-05+0.00000E+00-6.08316E-04+0.00000E+00-7.92432E-04+0.00000E+00-4.31664E-04+0.00000E+00+1.64727E-04+0.00000E+00+5.78372E-04+0.00000E+00+5.66172E-04+0.00000E+00+1.89248E-04+0.00000E+00-2.69536E-04+0.00000E+00-5.12780E-04+0.00000E+00-4.11872E-04+0.00000E+00-5.96548E-05+0.00000E+00+3.15263E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.95725E-04+0.00000E+00+7.38188E-05+0.00000E+00-3.15191E-04+0.00000E+00-6.17072E-04+0.00000E+00-7.45976E-04+0.00000E+00-7.02688E-04+0.00000E+00-5.48500E-04+0.00000E+00-3.61172E-04+0.00000E+00-1.99571E-04+0.00000E+00-8.97376E-05+0.00000E+00-3.00692E-05+0.00000E+00-5.16640E-06+0.00000E+00+1.62612E-06+0.00000E+00+1.76664E-06+0.00000E+00+7.48132E-07+0.00000E+00+1.65488E-07+0.00000E+0000000570051063.0000E+030000300000+2.9667E-02+2.9667E-02058003506+1.00000E+00+5.00000E-02000547680D070040040319+7.72762E-09+0.00000E+00+4.52378E-09+0.00000E+00-5.32080E-08+0.00000E+00-2.80036E-07+0.00000E+00-9.08544E-07+0.00000E+00-2.34472E-06+0.00000E+00-5.21464E-06+0.00000E+00-1.03793E-05+0.00000E+00-1.88893E-05+0.00000E+00-3.18550E-05+0.00000E+00-5.02182E-05+0.0000000033S*0E+00-7.44366E-05+0.00000E+00-1.04124E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.72307E-04+0.00000E+00-2.03638E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26268E-04+0.00000E+00-1.95955E-04+0.00000E+00-1.45142E-04+0.00000E+00-7.80380E-05+0.00000E+00-2.59160E-06+0.00000E+00+7.03544E-05+0.00000E+00+1.28752E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.27774E-04+0.00000E+00+6.50032E-05+0.00000E+00-1.42499E-05+0.00000E+00-9.29802E-05+0.00000E+00-1.52783E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.00242E-04+0.00000E+00-1.01214E-05+0.00000E+00+8.95560E-05+0.00000E+00+1.73672E-04+0.00000E+00+2.18690E-04+0.00000E+00+2.09036E-04+0.00000E+00+1.42114E-04+0.00000E+00+3.04418E-05+0.00000E+00-1.00068E-04+0.00000E+00-2.15680E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.79208E-04+0.00000E+00-1.97535E-04+0.00000E+00-5.29412E-05+0.00000E+00+1.20744E-04+0.00000E+00+2.78002E-04+0.00000E+00+3.73138E-04+0.00000E+00+3.73118E-04+0.00000E+00+2.68272E-04+0.00000E+00+7.75194E-05+0.00000E+00-1.53942E-04+0.00000E+00-3.64712E-04+0.00000E+00-4.92968E-04+0.00000E+00-4.94058E-04+0.00000E+00-3.55056E-04+0.00000E+00-1.01725E-04+0.00000E+00+2.04904E-04+0.00000E+00+4.82464E-04+0.00000E+00+6.48778E-04+0.00000E+00+6.45532E-04+0.00000E+00+4.57442E-04+0.00000E+00+1.20911E-04+0.00000E+00-2.81414E-04+0.00000E+00-6.40040E-04+0.00000E+00-8.47708E-04+0.00000E+00-8.30656E-04+0.00000E+00-5.73180E-04+0.00000E+00-1.27650E-04+0.00000E+00+3.94310E-04+0.00000E+00+8.48744E-04+0.00000E+00+1.09821E-03+0.00000E+00+1.05234E-03+0.00000E+00+6.98398E-04+0.00000E+00+1.11999E-04+0.00000E+00-5.57036E-04+0.00000E+00-1.12174E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.31236E-03+0.00000E+00-8.26764E-04+0.00000E+00-6.09068E-05+0.00000E+00+7.85842E-04+0.00000E+00+1.47374E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.61011E-03+0.00000E+00+9.47830E-04+0.00000E+00-4.36276E-05+0.00000E+00-1.10163E-03+0.00000E+00-1.92275E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.94359E-03+0.00000E+00-1.04776E-03+0.00000E+00+2.24088E-04+0.00000E+00+1.52962E-03+0.00000E+00+2.48958E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.30850E-03+0.00000E+00+1.10801E-03+0.00000E+00-5.08938E-04+0.00000E+00-2.10070E-03+0.00000E+00-3.19878E-03+0.00000E+00-3.44326E-03+0.00000E+00-2.69684E-03+0.00000E+00-1.10249E-03+0.00000E+00+9.36892E-04+0.00000E+00+2.85672E-03+0.00000E+00+4.08406E-03+0.00000E+00+4.20524E-03+0.00000E+00+3.09968E-03+0.00000E+00+9.97970E-04+0.00000E+00-1.55873E-03+0.00000E+00-3.85362E-03+0.00000E+00-5.19124E-03+0.00000E+00-5.10336E-03+0.00000E+00-3.50440E-03+0.00000E+00-7.46438E-04+0.00000E+00+2.44968E-03+0.00000E+00+5.17690E-03+0.00000E+00+6.59364E-03+0.00000E+00+6.17604E-03+0.00000E+00+3.89756E-03+0.00000E+00+2.77256E-04+0.00000E+00-3.72784E-03+0.00000E+00-6.96714E-03+0.00000E+00-8.41784E-03+0.00000E+00-7.49572E-03+0.00000E+00-4.26426E-03+0.00000E+00+5.27466E-04+0.00000E+00+5.60328E-03+0.00000E+00+9.48592E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.21506E-03+0.00000E+00+4.58962E-03+0.00000E+00-1.89363E-03+0.00000E+00-8.50506E-03+0.00000E+00-1.32925E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.16967E-02+0.00000E+00-4.85962E-03+0.00000E+00+4.34870E-03+0.00000E+00+1.34983E-02+0.00000E+00+1.98472E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.60019E-02+0.00000E+00+5.06204E-03+0.00000E+00-9.55078E-03+0.00000E+00-2.42030E-02+0.00000E+00-3.45266E-02+0.00000E+00-3.63864E-02+0.00000E+00-2.68872E-02+0.00000E+00-5.18748E-03+0.00000E+00+2.70918E-02+0.00000E+00+6.59838E-02+0.00000E+00+1.05820E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.71897E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.05820E-01+0.00000E+00+6.59838E-02+0.00000E+00+2.70918E-02+0.00000E+00-5.18748E-03+0.00000E+00-2.68872E-02+0.00000E+00-3.63864E-02+0.00000E+00-3.45266E-02+0.00000E+00-2.42030E-02+0.00000E+00-9.55078E-03+0.00000E+00+5.06204E-03+0.00000E+00+1.60019E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.98472E-02+0.00000E+00+1.34983E-02+0.00000E+00+4.34870E-03+0.00000E+00-4.85962E-03+0.00000E+00-1.16967E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.32925E-02+0.00000E+00-8.000034S*50506E-03+0.00000E+00-1.89363E-03+0.00000E+00+4.58962E-03+0.00000E+00+9.21506E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.48592E-03+0.00000E+00+5.60328E-03+0.00000E+00+5.27466E-04+0.00000E+00-4.26426E-03+0.00000E+00-7.49572E-03+0.00000E+00-8.41784E-03+0.00000E+00-6.96714E-03+0.00000E+00-3.72784E-03+0.00000E+00+2.77256E-04+0.00000E+00+3.89756E-03+0.00000E+00+6.17604E-03+0.00000E+00+6.59364E-03+0.00000E+00+5.17690E-03+0.00000E+00+2.44968E-03+0.00000E+00-7.46438E-04+0.00000E+00-3.50440E-03+0.00000E+00-5.10336E-03+0.00000E+00-5.19124E-03+0.00000E+00-3.85362E-03+0.00000E+00-1.55873E-03+0.00000E+00+9.97970E-04+0.00000E+00+3.09968E-03+0.00000E+00+4.20524E-03+0.00000E+00+4.08406E-03+0.00000E+00+2.85672E-03+0.00000E+00+9.36892E-04+0.00000E+00-1.10249E-03+0.00000E+00-2.69684E-03+0.00000E+00-3.44326E-03+0.00000E+00-3.19878E-03+0.00000E+00-2.10070E-03+0.00000E+00-5.08938E-04+0.00000E+00+1.10801E-03+0.00000E+00+2.30850E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.48958E-03+0.00000E+00+1.52962E-03+0.00000E+00+2.24088E-04+0.00000E+00-1.04776E-03+0.00000E+00-1.94359E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.92275E-03+0.00000E+00-1.10163E-03+0.00000E+00-4.36276E-05+0.00000E+00+9.47830E-04+0.00000E+00+1.61011E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.47374E-03+0.00000E+00+7.85842E-04+0.00000E+00-6.09068E-05+0.00000E+00-8.26764E-04+0.00000E+00-1.31236E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.12174E-03+0.00000E+00-5.57036E-04+0.00000E+00+1.11999E-04+0.00000E+00+6.98398E-04+0.00000E+00+1.05234E-03+0.00000E+00+1.09821E-03+0.00000E+00+8.48744E-04+0.00000E+00+3.94310E-04+0.00000E+00-1.27650E-04+0.00000E+00-5.73180E-04+0.00000E+00-8.30656E-04+0.00000E+00-8.47708E-04+0.00000E+00-6.40040E-04+0.00000E+00-2.81414E-04+0.00000E+00+1.20911E-04+0.00000E+00+4.57442E-04+0.00000E+00+6.45532E-04+0.00000E+00+6.48778E-04+0.00000E+00+4.82464E-04+0.00000E+00+2.04904E-04+0.00000E+00-1.01725E-04+0.00000E+00-3.55056E-04+0.00000E+00-4.94058E-04+0.00000E+00-4.92968E-04+0.00000E+00-3.64712E-04+0.00000E+00-1.53942E-04+0.00000E+00+7.75194E-05+0.00000E+00+2.68272E-04+0.00000E+00+3.73118E-04+0.00000E+00+3.73138E-04+0.00000E+00+2.78002E-04+0.00000E+00+1.20744E-04+0.00000E+00-5.29412E-05+0.00000E+00-1.97535E-04+0.00000E+00-2.79208E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.15680E-04+0.00000E+00-1.00068E-04+0.00000E+00+3.04418E-05+0.00000E+00+1.42114E-04+0.00000E+00+2.09036E-04+0.00000E+00+2.18690E-04+0.00000E+00+1.73672E-04+0.00000E+00+8.95560E-05+0.00000E+00-1.01214E-05+0.00000E+00-1.00242E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.52783E-04+0.00000E+00-9.29802E-05+0.00000E+00-1.42499E-05+0.00000E+00+6.50032E-05+0.00000E+00+1.27774E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.28752E-04+0.00000E+00+7.03544E-05+0.00000E+00-2.59160E-06+0.00000E+00-7.80380E-05+0.00000E+00-1.45142E-04+0.00000E+00-1.95955E-04+0.00000E+00-2.26268E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.03638E-04+0.00000E+00-1.72307E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.04124E-04+0.00000E+00-7.44366E-05+0.00000E+00-5.02182E-05+0.00000E+00-3.18550E-05+0.00000E+00-1.88893E-05+0.00000E+00-1.03793E-05+0.00000E+00-5.21464E-06+0.00000E+00-2.34472E-06+0.00000E+00-9.08544E-07+0.00000E+00-2.80036E-07+0.00000E+00-5.32080E-08+0.00000E+00+4.52378E-09+0.00000E+00+7.72762E-09+0.00000E+0000000570051071.0000E+030000500000+1.5900E-01+1.5900E-01058003507+1.00000E+00+5.00000E-0200058003500+2.78845E+05+5.00000E-02000520127 EHZ0000002~001002+49.129100+008.148700-0177.0305.0000.0-90.00001122.0000E+022.0000E-020000TG~2015,078,13:00:00.0000~~N0530334A01001003+1.00000E+00+5.00000E+00003+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00003-4.44400E+00+4.44400E+00+0.00000E+00+0.00000E+00-4.44400E+00-4.44400E+00+0.00000E+00+0.00000E+00-1.08300E+00+0.00000E+00+0.00000E+00+0.00000E+00058003501+4.00000E+02+5.00000E+0000058003502+2.50000E+00+5.00000E-02000540048D030030040001+1.00000E+00+0.00000E+0000000570051031.9200E+050000100000+0.0000E+00+0.0000E+00058003503+4.00000E+05+5.000035S*00000E-02000541152D040040040047+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+3.81470E-06+0.00000E+00+2.28882E-05+0.00000E+00+8.01086E-05+0.00000E+00+2.13623E-04+0.00000E+00+4.80652E-04+0.00000E+00+9.61304E-04+0.00000E+00+1.76239E-03+0.00000E+00+3.02124E-03+0.00000E+00+4.88663E-03+0.00000E+00+7.49969E-03+0.00000E+00+1.09749E-02+0.00000E+00+1.53809E-02+0.00000E+00+2.07214E-02+0.00000E+00+2.69165E-02+0.00000E+00+3.37830E-02+0.00000E+00+4.10156E-02+0.00000E+00+4.82254E-02+0.00000E+00+5.49774E-02+0.00000E+00+6.08292E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.92444E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.08292E-02+0.00000E+00+5.49774E-02+0.00000E+00+4.82254E-02+0.00000E+00+4.10156E-02+0.00000E+00+3.37830E-02+0.00000E+00+2.69165E-02+0.00000E+00+2.07214E-02+0.00000E+00+1.53809E-02+0.00000E+00+1.09749E-02+0.00000E+00+7.49969E-03+0.00000E+00+4.88663E-03+0.00000E+00+3.02124E-03+0.00000E+00+1.76239E-03+0.00000E+00+9.61304E-04+0.00000E+00+4.80652E-04+0.00000E+00+2.13623E-04+0.00000E+00+8.01086E-05+0.00000E+00+2.28882E-05+0.00000E+00+3.81470E-06+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+0000000570051041.9200E+050000800000+1.1979E-04+1.1979E-04058003504+1.00000E+00+5.00000E-02000541776D050040040073+7.86395E-07+0.00000E+00+2.15223E-06+0.00000E+00+4.09013E-06+0.00000E+00+6.42053E-06+0.00000E+00+7.61300E-06+0.00000E+00+4.52134E-06+0.00000E+00-8.38839E-06+0.00000E+00-4.00745E-05+0.00000E+00-1.08702E-04+0.00000E+00-2.31570E-04+0.00000E+00-4.32673E-04+0.00000E+00-7.41861E-04+0.00000E+00-1.18635E-03+0.00000E+00-1.78887E-03+0.00000E+00-2.56156E-03+0.00000E+00-3.49756E-03+0.00000E+00-4.54784E-03+0.00000E+00-5.64473E-03+0.00000E+00-6.67437E-03+0.00000E+00-7.46932E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.53472E-03+0.00000E+00-6.33480E-03+0.00000E+00-3.99943E-03+0.00000E+00-3.60688E-04+0.00000E+00+4.71408E-03+0.00000E+00+1.12572E-02+0.00000E+00+1.91611E-02+0.00000E+00+2.82115E-02+0.00000E+00+3.80655E-02+0.00000E+00+4.82646E-02+0.00000E+00+5.82654E-02+0.00000E+00+6.75164E-02+0.00000E+00+7.54318E-02+0.00000E+00+8.14859E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.65986E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.14859E-02+0.00000E+00+7.54318E-02+0.00000E+00+6.75164E-02+0.00000E+00+5.82654E-02+0.00000E+00+4.82646E-02+0.00000E+00+3.80655E-02+0.00000E+00+2.82115E-02+0.00000E+00+1.91611E-02+0.00000E+00+1.12572E-02+0.00000E+00+4.71408E-03+0.00000E+00-3.60688E-04+0.00000E+00-3.99943E-03+0.00000E+00-6.33480E-03+0.00000E+00-7.53472E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.46932E-03+0.00000E+00-6.67437E-03+0.00000E+00-5.64473E-03+0.00000E+00-4.54784E-03+0.00000E+00-3.49756E-03+0.00000E+00-2.56156E-03+0.00000E+00-1.78887E-03+0.00000E+00-1.18635E-03+0.00000E+00-7.41861E-04+0.00000E+00-4.32673E-04+0.00000E+00-2.31570E-04+0.00000E+00-1.08702E-04+0.00000E+00-4.00745E-05+0.00000E+00-8.38839E-06+0.00000E+00+4.52134E-06+0.00000E+00+7.61300E-06+0.00000E+00+6.42053E-06+0.00000E+00+4.09013E-06+0.00000E+00+2.15223E-06+0.00000E+00+7.86395E-07+0.00000E+0000000570051052.4000E+040000800000+1.5000E-03+1.5000E-03058003505+1.00000E+00+5.00000E-02000544320D060040040179+1.65488E-07+0.00000E+00+7.48132E-07+0.00000E+00+1.76664E-06+0.00000E+00+1.62612E-06+0.00000E+00-5.16640E-06+0.00000E+00-3.00692E-05+0.00000E+00-8.97376E-05+0.00000E+00-1.99571E-04+0.00000E+00-3.61172E-04+0.00000E+00-5.48500E-04+0.00000E+00-7.02688E-04+0.00000E+00-7.45976E-04+0.00000E+00-6.17072E-04+0.00000E+00-3.15191E-04+0.00000E+00+7.38188E-05+0.00000E+00+3.95725E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.15263E-04+0.00000E+00-5.96548E-05+0.00000E+00-4.11872E-04+0.00000E+00-5.12780E-04+0.00000E+00-2.69536E-04+0.00000E+00+1.89248E-04+0.00000E+00+5.66172E-04+0.00000E+00+5.78372E-04+0.00000E+00+1.64727E-04+0.00000E+00-4.31664E-04+0.00000E+00-7.92432E-04+0.00000E+00-6.08316E-04+0.00000E+00+6.76780E-05+0.00000E+00+7.98316E-04+0.00000E+00+1.03172E-03+0.00000E+00+5.07504E-04+0.00000E+00-4.91744E-04+0.00000E+00-1.26810E-03+0.00000E+00-1.18261E-03+0.00000E+00-1.64670E-04+0.00000E+00+1.13876E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.09177E-03+0.00000E000036S*+00-5.24120E-04+0.00000E+00-1.97068E-03+0.00000E+00-2.08536E-03+0.00000E+00-5.79052E-04+0.00000E+00+1.60144E-03+0.00000E+00+2.83576E-03+0.00000E+00+2.01276E-03+0.00000E+00-5.13156E-04+0.00000E+00-2.98815E-03+0.00000E+00-3.44765E-03+0.00000E+00-1.24599E-03+0.00000E+00+2.24272E-03+0.00000E+00+4.43120E-03+0.00000E+00+3.40590E-03+0.00000E+00-4.57304E-04+0.00000E+00-4.47584E-03+0.00000E+00-5.47828E-03+0.00000E+00-2.26220E-03+0.00000E+00+3.18035E-03+0.00000E+00+6.81616E-03+0.00000E+00+5.50776E-03+0.00000E+00-3.65328E-04+0.00000E+00-6.73316E-03+0.00000E+00-8.58052E-03+0.00000E+00-3.81782E-03+0.00000E+00+4.65228E-03+0.00000E+00+1.05646E-02+0.00000E+00+8.82560E-03+0.00000E+00-2.56374E-04+0.00000E+00-1.04496E-02+0.00000E+00-1.37224E-02+0.00000E+00-6.39512E-03+0.00000E+00+7.26512E-03+0.00000E+00+1.72312E-02+0.00000E+00+1.48181E-02+0.00000E+00-1.54011E-04+0.00000E+00-1.77680E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.17549E-02+0.00000E+00+1.32733E-02+0.00000E+00+3.32147E-02+0.00000E+00+3.01309E-02+0.00000E+00-8.13468E-05+0.00000E+00-4.08284E-02+0.00000E+00-6.13256E-02+0.00000E+00-3.42109E-02+0.00000E+00+4.58968E-02+0.00000E+00+1.54886E-01+0.00000E+00+2.48713E-01+0.00000E+00+2.85658E-01+0.00000E+00+2.48713E-01+0.00000E+00+1.54886E-01+0.00000E+00+4.58968E-02+0.00000E+00-3.42109E-02+0.00000E+00-6.13256E-02+0.00000E+00-4.08284E-02+0.00000E+00-8.13468E-05+0.00000E+00+3.01309E-02+0.00000E+00+3.32147E-02+0.00000E+00+1.32733E-02+0.00000E+00-1.17549E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.77680E-02+0.00000E+00-1.54011E-04+0.00000E+00+1.48181E-02+0.00000E+00+1.72312E-02+0.00000E+00+7.26512E-03+0.00000E+00-6.39512E-03+0.00000E+00-1.37224E-02+0.00000E+00-1.04496E-02+0.00000E+00-2.56374E-04+0.00000E+00+8.82560E-03+0.00000E+00+1.05646E-02+0.00000E+00+4.65228E-03+0.00000E+00-3.81782E-03+0.00000E+00-8.58052E-03+0.00000E+00-6.73316E-03+0.00000E+00-3.65328E-04+0.00000E+00+5.50776E-03+0.00000E+00+6.81616E-03+0.00000E+00+3.18035E-03+0.00000E+00-2.26220E-03+0.00000E+00-5.47828E-03+0.00000E+00-4.47584E-03+0.00000E+00-4.57304E-04+0.00000E+00+3.40590E-03+0.00000E+00+4.43120E-03+0.00000E+00+2.24272E-03+0.00000E+00-1.24599E-03+0.00000E+00-3.44765E-03+0.00000E+00-2.98815E-03+0.00000E+00-5.13156E-04+0.00000E+00+2.01276E-03+0.00000E+00+2.83576E-03+0.00000E+00+1.60144E-03+0.00000E+00-5.79052E-04+0.00000E+00-2.08536E-03+0.00000E+00-1.97068E-03+0.00000E+00-5.24120E-04+0.00000E+00+1.09177E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.13876E-03+0.00000E+00-1.64670E-04+0.00000E+00-1.18261E-03+0.00000E+00-1.26810E-03+0.00000E+00-4.91744E-04+0.00000E+00+5.07504E-04+0.00000E+00+1.03172E-03+0.00000E+00+7.98316E-04+0.00000E+00+6.76780E-05+0.00000E+00-6.08316E-04+0.00000E+00-7.92432E-04+0.00000E+00-4.31664E-04+0.00000E+00+1.64727E-04+0.00000E+00+5.78372E-04+0.00000E+00+5.66172E-04+0.00000E+00+1.89248E-04+0.00000E+00-2.69536E-04+0.00000E+00-5.12780E-04+0.00000E+00-4.11872E-04+0.00000E+00-5.96548E-05+0.00000E+00+3.15263E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.95725E-04+0.00000E+00+7.38188E-05+0.00000E+00-3.15191E-04+0.00000E+00-6.17072E-04+0.00000E+00-7.45976E-04+0.00000E+00-7.02688E-04+0.00000E+00-5.48500E-04+0.00000E+00-3.61172E-04+0.00000E+00-1.99571E-04+0.00000E+00-8.97376E-05+0.00000E+00-3.00692E-05+0.00000E+00-5.16640E-06+0.00000E+00+1.62612E-06+0.00000E+00+1.76664E-06+0.00000E+00+7.48132E-07+0.00000E+00+1.65488E-07+0.00000E+0000000570051063.0000E+030000300000+2.9667E-02+2.9667E-02058003506+1.00000E+00+5.00000E-02000547680D070040040319+7.72762E-09+0.00000E+00+4.52378E-09+0.00000E+00-5.32080E-08+0.00000E+00-2.80036E-07+0.00000E+00-9.08544E-07+0.00000E+00-2.34472E-06+0.00000E+00-5.21464E-06+0.00000E+00-1.03793E-05+0.00000E+00-1.88893E-05+0.00000E+00-3.18550E-05+0.00000E+00-5.02182E-05+0.00000E+00-7.44366E-05+0.00000E+00-1.04124E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.72307E-04+0.00000E+00-2.03638E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26268E-04+0.00000E+00-1.95955E-04+0.00000E+00-1.45142E-04+0.00000E+00-7.80380E-05+0.00000E+00-2.59160E-06+0.00000E+00+7.03544E-05+0.00000E+00+1.28752E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.61835E-04+0.000037S*00000E+00+1.27774E-04+0.00000E+00+6.50032E-05+0.00000E+00-1.42499E-05+0.00000E+00-9.29802E-05+0.00000E+00-1.52783E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.00242E-04+0.00000E+00-1.01214E-05+0.00000E+00+8.95560E-05+0.00000E+00+1.73672E-04+0.00000E+00+2.18690E-04+0.00000E+00+2.09036E-04+0.00000E+00+1.42114E-04+0.00000E+00+3.04418E-05+0.00000E+00-1.00068E-04+0.00000E+00-2.15680E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.79208E-04+0.00000E+00-1.97535E-04+0.00000E+00-5.29412E-05+0.00000E+00+1.20744E-04+0.00000E+00+2.78002E-04+0.00000E+00+3.73138E-04+0.00000E+00+3.73118E-04+0.00000E+00+2.68272E-04+0.00000E+00+7.75194E-05+0.00000E+00-1.53942E-04+0.00000E+00-3.64712E-04+0.00000E+00-4.92968E-04+0.00000E+00-4.94058E-04+0.00000E+00-3.55056E-04+0.00000E+00-1.01725E-04+0.00000E+00+2.04904E-04+0.00000E+00+4.82464E-04+0.00000E+00+6.48778E-04+0.00000E+00+6.45532E-04+0.00000E+00+4.57442E-04+0.00000E+00+1.20911E-04+0.00000E+00-2.81414E-04+0.00000E+00-6.40040E-04+0.00000E+00-8.47708E-04+0.00000E+00-8.30656E-04+0.00000E+00-5.73180E-04+0.00000E+00-1.27650E-04+0.00000E+00+3.94310E-04+0.00000E+00+8.48744E-04+0.00000E+00+1.09821E-03+0.00000E+00+1.05234E-03+0.00000E+00+6.98398E-04+0.00000E+00+1.11999E-04+0.00000E+00-5.57036E-04+0.00000E+00-1.12174E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.31236E-03+0.00000E+00-8.26764E-04+0.00000E+00-6.09068E-05+0.00000E+00+7.85842E-04+0.00000E+00+1.47374E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.61011E-03+0.00000E+00+9.47830E-04+0.00000E+00-4.36276E-05+0.00000E+00-1.10163E-03+0.00000E+00-1.92275E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.94359E-03+0.00000E+00-1.04776E-03+0.00000E+00+2.24088E-04+0.00000E+00+1.52962E-03+0.00000E+00+2.48958E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.30850E-03+0.00000E+00+1.10801E-03+0.00000E+00-5.08938E-04+0.00000E+00-2.10070E-03+0.00000E+00-3.19878E-03+0.00000E+00-3.44326E-03+0.00000E+00-2.69684E-03+0.00000E+00-1.10249E-03+0.00000E+00+9.36892E-04+0.00000E+00+2.85672E-03+0.00000E+00+4.08406E-03+0.00000E+00+4.20524E-03+0.00000E+00+3.09968E-03+0.00000E+00+9.97970E-04+0.00000E+00-1.55873E-03+0.00000E+00-3.85362E-03+0.00000E+00-5.19124E-03+0.00000E+00-5.10336E-03+0.00000E+00-3.50440E-03+0.00000E+00-7.46438E-04+0.00000E+00+2.44968E-03+0.00000E+00+5.17690E-03+0.00000E+00+6.59364E-03+0.00000E+00+6.17604E-03+0.00000E+00+3.89756E-03+0.00000E+00+2.77256E-04+0.00000E+00-3.72784E-03+0.00000E+00-6.96714E-03+0.00000E+00-8.41784E-03+0.00000E+00-7.49572E-03+0.00000E+00-4.26426E-03+0.00000E+00+5.27466E-04+0.00000E+00+5.60328E-03+0.00000E+00+9.48592E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.21506E-03+0.00000E+00+4.58962E-03+0.00000E+00-1.89363E-03+0.00000E+00-8.50506E-03+0.00000E+00-1.32925E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.16967E-02+0.00000E+00-4.85962E-03+0.00000E+00+4.34870E-03+0.00000E+00+1.34983E-02+0.00000E+00+1.98472E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.60019E-02+0.00000E+00+5.06204E-03+0.00000E+00-9.55078E-03+0.00000E+00-2.42030E-02+0.00000E+00-3.45266E-02+0.00000E+00-3.63864E-02+0.00000E+00-2.68872E-02+0.00000E+00-5.18748E-03+0.00000E+00+2.70918E-02+0.00000E+00+6.59838E-02+0.00000E+00+1.05820E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.71897E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.05820E-01+0.00000E+00+6.59838E-02+0.00000E+00+2.70918E-02+0.00000E+00-5.18748E-03+0.00000E+00-2.68872E-02+0.00000E+00-3.63864E-02+0.00000E+00-3.45266E-02+0.00000E+00-2.42030E-02+0.00000E+00-9.55078E-03+0.00000E+00+5.06204E-03+0.00000E+00+1.60019E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.98472E-02+0.00000E+00+1.34983E-02+0.00000E+00+4.34870E-03+0.00000E+00-4.85962E-03+0.00000E+00-1.16967E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.32925E-02+0.00000E+00-8.50506E-03+0.00000E+00-1.89363E-03+0.00000E+00+4.58962E-03+0.00000E+00+9.21506E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.48592E-03+0.00000E+00+5.60328E-03+0.00000E+00+5.27466E-04+0.00000E+00-4.26426E-03+0.00000E+00-7.49572E-03+0.00000E+00-8.41784E-03+0.00000E+00-6.96714E-03+0.00000E+00-3.72784E-03+0.00000E+00+2.77256E-04+0.00000E+00+3.89756E-03+0.00000E+00+6.17604E-03+0.00000E+0000038S*0+6.59364E-03+0.00000E+00+5.17690E-03+0.00000E+00+2.44968E-03+0.00000E+00-7.46438E-04+0.00000E+00-3.50440E-03+0.00000E+00-5.10336E-03+0.00000E+00-5.19124E-03+0.00000E+00-3.85362E-03+0.00000E+00-1.55873E-03+0.00000E+00+9.97970E-04+0.00000E+00+3.09968E-03+0.00000E+00+4.20524E-03+0.00000E+00+4.08406E-03+0.00000E+00+2.85672E-03+0.00000E+00+9.36892E-04+0.00000E+00-1.10249E-03+0.00000E+00-2.69684E-03+0.00000E+00-3.44326E-03+0.00000E+00-3.19878E-03+0.00000E+00-2.10070E-03+0.00000E+00-5.08938E-04+0.00000E+00+1.10801E-03+0.00000E+00+2.30850E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.48958E-03+0.00000E+00+1.52962E-03+0.00000E+00+2.24088E-04+0.00000E+00-1.04776E-03+0.00000E+00-1.94359E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.92275E-03+0.00000E+00-1.10163E-03+0.00000E+00-4.36276E-05+0.00000E+00+9.47830E-04+0.00000E+00+1.61011E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.47374E-03+0.00000E+00+7.85842E-04+0.00000E+00-6.09068E-05+0.00000E+00-8.26764E-04+0.00000E+00-1.31236E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.12174E-03+0.00000E+00-5.57036E-04+0.00000E+00+1.11999E-04+0.00000E+00+6.98398E-04+0.00000E+00+1.05234E-03+0.00000E+00+1.09821E-03+0.00000E+00+8.48744E-04+0.00000E+00+3.94310E-04+0.00000E+00-1.27650E-04+0.00000E+00-5.73180E-04+0.00000E+00-8.30656E-04+0.00000E+00-8.47708E-04+0.00000E+00-6.40040E-04+0.00000E+00-2.81414E-04+0.00000E+00+1.20911E-04+0.00000E+00+4.57442E-04+0.00000E+00+6.45532E-04+0.00000E+00+6.48778E-04+0.00000E+00+4.82464E-04+0.00000E+00+2.04904E-04+0.00000E+00-1.01725E-04+0.00000E+00-3.55056E-04+0.00000E+00-4.94058E-04+0.00000E+00-4.92968E-04+0.00000E+00-3.64712E-04+0.00000E+00-1.53942E-04+0.00000E+00+7.75194E-05+0.00000E+00+2.68272E-04+0.00000E+00+3.73118E-04+0.00000E+00+3.73138E-04+0.00000E+00+2.78002E-04+0.00000E+00+1.20744E-04+0.00000E+00-5.29412E-05+0.00000E+00-1.97535E-04+0.00000E+00-2.79208E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.15680E-04+0.00000E+00-1.00068E-04+0.00000E+00+3.04418E-05+0.00000E+00+1.42114E-04+0.00000E+00+2.09036E-04+0.00000E+00+2.18690E-04+0.00000E+00+1.73672E-04+0.00000E+00+8.95560E-05+0.00000E+00-1.01214E-05+0.00000E+00-1.00242E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.52783E-04+0.00000E+00-9.29802E-05+0.00000E+00-1.42499E-05+0.00000E+00+6.50032E-05+0.00000E+00+1.27774E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.28752E-04+0.00000E+00+7.03544E-05+0.00000E+00-2.59160E-06+0.00000E+00-7.80380E-05+0.00000E+00-1.45142E-04+0.00000E+00-1.95955E-04+0.00000E+00-2.26268E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.03638E-04+0.00000E+00-1.72307E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.04124E-04+0.00000E+00-7.44366E-05+0.00000E+00-5.02182E-05+0.00000E+00-3.18550E-05+0.00000E+00-1.88893E-05+0.00000E+00-1.03793E-05+0.00000E+00-5.21464E-06+0.00000E+00-2.34472E-06+0.00000E+00-9.08544E-07+0.00000E+00-2.80036E-07+0.00000E+00-5.32080E-08+0.00000E+00+4.52378E-09+0.00000E+00+7.72762E-09+0.00000E+0000000570051071.0000E+030000500000+1.5900E-01+1.5900E-01058003507+1.00000E+00+5.00000E-0200058003500+2.78845E+05+5.00000E-02000520127 HNE0000003~004002+49.129100+008.148700+0128.0000.0090.0+00.00001122.0000E+022.0000E-020000TG~2015,078,13:00:00.0000~~N0530382A01004003+1.00770E+18+1.00000E+00001-5.15000E+02+0.00000E+00+0.00000E+00+0.00000E+00006-9.77000E+02+3.28000E+02+0.00000E+00+0.00000E+00-9.77000E+02-3.28000E+02+0.00000E+00+0.00000E+00-1.48600E+03+2.51200E+03+0.00000E+00+0.00000E+00-1.48600E+03-2.51200E+03+0.00000E+00+0.00000E+00-5.73600E+03+4.94600E+03+0.00000E+00+0.00000E+00-5.73600E+03-4.94600E+03+0.00000E+00+0.00000E+00058003501+5.10000E-01+1.00000E+0000058003502+1.00000E+00+5.00000E-02000540048D030030040001+1.00000E+00+0.00000E+0000000570051031.9200E+050000100000+0.0000E+00+0.0000E+00058003503+4.00000E+05+5.00000E-02000541152D040040040047+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+3.81470E-06+0.00000E+00+2.28882E-05+0.00000E+00+8.01086E-05+0.00000E+00+2.13623E-04+0.00000E+00+4.80652E-04+0.00000E+00+9.61304E-04+0.00000E+00+1.76239E-03+0.00000E+00+3.02124E-03+0.00000E+00+4.88663E-03+0.00000E+00+7.49969E-03+0.00000E+00+1.09749E-02+000039S*0.00000E+00+1.53809E-02+0.00000E+00+2.07214E-02+0.00000E+00+2.69165E-02+0.00000E+00+3.37830E-02+0.00000E+00+4.10156E-02+0.00000E+00+4.82254E-02+0.00000E+00+5.49774E-02+0.00000E+00+6.08292E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.92444E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.08292E-02+0.00000E+00+5.49774E-02+0.00000E+00+4.82254E-02+0.00000E+00+4.10156E-02+0.00000E+00+3.37830E-02+0.00000E+00+2.69165E-02+0.00000E+00+2.07214E-02+0.00000E+00+1.53809E-02+0.00000E+00+1.09749E-02+0.00000E+00+7.49969E-03+0.00000E+00+4.88663E-03+0.00000E+00+3.02124E-03+0.00000E+00+1.76239E-03+0.00000E+00+9.61304E-04+0.00000E+00+4.80652E-04+0.00000E+00+2.13623E-04+0.00000E+00+8.01086E-05+0.00000E+00+2.28882E-05+0.00000E+00+3.81470E-06+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+0000000570051041.9200E+050000800000+1.1979E-04+1.1979E-04058003504+1.00000E+00+5.00000E-02000541776D050040040073+7.86395E-07+0.00000E+00+2.15223E-06+0.00000E+00+4.09013E-06+0.00000E+00+6.42053E-06+0.00000E+00+7.61300E-06+0.00000E+00+4.52134E-06+0.00000E+00-8.38839E-06+0.00000E+00-4.00745E-05+0.00000E+00-1.08702E-04+0.00000E+00-2.31570E-04+0.00000E+00-4.32673E-04+0.00000E+00-7.41861E-04+0.00000E+00-1.18635E-03+0.00000E+00-1.78887E-03+0.00000E+00-2.56156E-03+0.00000E+00-3.49756E-03+0.00000E+00-4.54784E-03+0.00000E+00-5.64473E-03+0.00000E+00-6.67437E-03+0.00000E+00-7.46932E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.53472E-03+0.00000E+00-6.33480E-03+0.00000E+00-3.99943E-03+0.00000E+00-3.60688E-04+0.00000E+00+4.71408E-03+0.00000E+00+1.12572E-02+0.00000E+00+1.91611E-02+0.00000E+00+2.82115E-02+0.00000E+00+3.80655E-02+0.00000E+00+4.82646E-02+0.00000E+00+5.82654E-02+0.00000E+00+6.75164E-02+0.00000E+00+7.54318E-02+0.00000E+00+8.14859E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.65986E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.14859E-02+0.00000E+00+7.54318E-02+0.00000E+00+6.75164E-02+0.00000E+00+5.82654E-02+0.00000E+00+4.82646E-02+0.00000E+00+3.80655E-02+0.00000E+00+2.82115E-02+0.00000E+00+1.91611E-02+0.00000E+00+1.12572E-02+0.00000E+00+4.71408E-03+0.00000E+00-3.60688E-04+0.00000E+00-3.99943E-03+0.00000E+00-6.33480E-03+0.00000E+00-7.53472E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.46932E-03+0.00000E+00-6.67437E-03+0.00000E+00-5.64473E-03+0.00000E+00-4.54784E-03+0.00000E+00-3.49756E-03+0.00000E+00-2.56156E-03+0.00000E+00-1.78887E-03+0.00000E+00-1.18635E-03+0.00000E+00-7.41861E-04+0.00000E+00-4.32673E-04+0.00000E+00-2.31570E-04+0.00000E+00-1.08702E-04+0.00000E+00-4.00745E-05+0.00000E+00-8.38839E-06+0.00000E+00+4.52134E-06+0.00000E+00+7.61300E-06+0.00000E+00+6.42053E-06+0.00000E+00+4.09013E-06+0.00000E+00+2.15223E-06+0.00000E+00+7.86395E-07+0.00000E+0000000570051052.4000E+040000800000+1.5000E-03+1.5000E-03058003505+1.00000E+00+5.00000E-02000544320D060040040179+1.65488E-07+0.00000E+00+7.48132E-07+0.00000E+00+1.76664E-06+0.00000E+00+1.62612E-06+0.00000E+00-5.16640E-06+0.00000E+00-3.00692E-05+0.00000E+00-8.97376E-05+0.00000E+00-1.99571E-04+0.00000E+00-3.61172E-04+0.00000E+00-5.48500E-04+0.00000E+00-7.02688E-04+0.00000E+00-7.45976E-04+0.00000E+00-6.17072E-04+0.00000E+00-3.15191E-04+0.00000E+00+7.38188E-05+0.00000E+00+3.95725E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.15263E-04+0.00000E+00-5.96548E-05+0.00000E+00-4.11872E-04+0.00000E+00-5.12780E-04+0.00000E+00-2.69536E-04+0.00000E+00+1.89248E-04+0.00000E+00+5.66172E-04+0.00000E+00+5.78372E-04+0.00000E+00+1.64727E-04+0.00000E+00-4.31664E-04+0.00000E+00-7.92432E-04+0.00000E+00-6.08316E-04+0.00000E+00+6.76780E-05+0.00000E+00+7.98316E-04+0.00000E+00+1.03172E-03+0.00000E+00+5.07504E-04+0.00000E+00-4.91744E-04+0.00000E+00-1.26810E-03+0.00000E+00-1.18261E-03+0.00000E+00-1.64670E-04+0.00000E+00+1.13876E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.09177E-03+0.00000E+00-5.24120E-04+0.00000E+00-1.97068E-03+0.00000E+00-2.08536E-03+0.00000E+00-5.79052E-04+0.00000E+00+1.60144E-03+0.00000E+00+2.83576E-03+0.00000E+00+2.01276E-03+0.00000E+00-5.13156E-04+0.00000E+00-2.98815E-03+0.00000E+00-3.44765E-03+0.00000E+00-1.24599E-03+0.00000E+00+2.24272E-03+0.00000E+00+4.43120E-03+0.00000E+00+3.40590E-03+0.00000040S*000E+00-4.57304E-04+0.00000E+00-4.47584E-03+0.00000E+00-5.47828E-03+0.00000E+00-2.26220E-03+0.00000E+00+3.18035E-03+0.00000E+00+6.81616E-03+0.00000E+00+5.50776E-03+0.00000E+00-3.65328E-04+0.00000E+00-6.73316E-03+0.00000E+00-8.58052E-03+0.00000E+00-3.81782E-03+0.00000E+00+4.65228E-03+0.00000E+00+1.05646E-02+0.00000E+00+8.82560E-03+0.00000E+00-2.56374E-04+0.00000E+00-1.04496E-02+0.00000E+00-1.37224E-02+0.00000E+00-6.39512E-03+0.00000E+00+7.26512E-03+0.00000E+00+1.72312E-02+0.00000E+00+1.48181E-02+0.00000E+00-1.54011E-04+0.00000E+00-1.77680E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.17549E-02+0.00000E+00+1.32733E-02+0.00000E+00+3.32147E-02+0.00000E+00+3.01309E-02+0.00000E+00-8.13468E-05+0.00000E+00-4.08284E-02+0.00000E+00-6.13256E-02+0.00000E+00-3.42109E-02+0.00000E+00+4.58968E-02+0.00000E+00+1.54886E-01+0.00000E+00+2.48713E-01+0.00000E+00+2.85658E-01+0.00000E+00+2.48713E-01+0.00000E+00+1.54886E-01+0.00000E+00+4.58968E-02+0.00000E+00-3.42109E-02+0.00000E+00-6.13256E-02+0.00000E+00-4.08284E-02+0.00000E+00-8.13468E-05+0.00000E+00+3.01309E-02+0.00000E+00+3.32147E-02+0.00000E+00+1.32733E-02+0.00000E+00-1.17549E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.77680E-02+0.00000E+00-1.54011E-04+0.00000E+00+1.48181E-02+0.00000E+00+1.72312E-02+0.00000E+00+7.26512E-03+0.00000E+00-6.39512E-03+0.00000E+00-1.37224E-02+0.00000E+00-1.04496E-02+0.00000E+00-2.56374E-04+0.00000E+00+8.82560E-03+0.00000E+00+1.05646E-02+0.00000E+00+4.65228E-03+0.00000E+00-3.81782E-03+0.00000E+00-8.58052E-03+0.00000E+00-6.73316E-03+0.00000E+00-3.65328E-04+0.00000E+00+5.50776E-03+0.00000E+00+6.81616E-03+0.00000E+00+3.18035E-03+0.00000E+00-2.26220E-03+0.00000E+00-5.47828E-03+0.00000E+00-4.47584E-03+0.00000E+00-4.57304E-04+0.00000E+00+3.40590E-03+0.00000E+00+4.43120E-03+0.00000E+00+2.24272E-03+0.00000E+00-1.24599E-03+0.00000E+00-3.44765E-03+0.00000E+00-2.98815E-03+0.00000E+00-5.13156E-04+0.00000E+00+2.01276E-03+0.00000E+00+2.83576E-03+0.00000E+00+1.60144E-03+0.00000E+00-5.79052E-04+0.00000E+00-2.08536E-03+0.00000E+00-1.97068E-03+0.00000E+00-5.24120E-04+0.00000E+00+1.09177E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.13876E-03+0.00000E+00-1.64670E-04+0.00000E+00-1.18261E-03+0.00000E+00-1.26810E-03+0.00000E+00-4.91744E-04+0.00000E+00+5.07504E-04+0.00000E+00+1.03172E-03+0.00000E+00+7.98316E-04+0.00000E+00+6.76780E-05+0.00000E+00-6.08316E-04+0.00000E+00-7.92432E-04+0.00000E+00-4.31664E-04+0.00000E+00+1.64727E-04+0.00000E+00+5.78372E-04+0.00000E+00+5.66172E-04+0.00000E+00+1.89248E-04+0.00000E+00-2.69536E-04+0.00000E+00-5.12780E-04+0.00000E+00-4.11872E-04+0.00000E+00-5.96548E-05+0.00000E+00+3.15263E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.95725E-04+0.00000E+00+7.38188E-05+0.00000E+00-3.15191E-04+0.00000E+00-6.17072E-04+0.00000E+00-7.45976E-04+0.00000E+00-7.02688E-04+0.00000E+00-5.48500E-04+0.00000E+00-3.61172E-04+0.00000E+00-1.99571E-04+0.00000E+00-8.97376E-05+0.00000E+00-3.00692E-05+0.00000E+00-5.16640E-06+0.00000E+00+1.62612E-06+0.00000E+00+1.76664E-06+0.00000E+00+7.48132E-07+0.00000E+00+1.65488E-07+0.00000E+0000000570051063.0000E+030000300000+2.9667E-02+2.9667E-02058003506+1.00000E+00+5.00000E-02000547680D070040040319+7.72762E-09+0.00000E+00+4.52378E-09+0.00000E+00-5.32080E-08+0.00000E+00-2.80036E-07+0.00000E+00-9.08544E-07+0.00000E+00-2.34472E-06+0.00000E+00-5.21464E-06+0.00000E+00-1.03793E-05+0.00000E+00-1.88893E-05+0.00000E+00-3.18550E-05+0.00000E+00-5.02182E-05+0.00000E+00-7.44366E-05+0.00000E+00-1.04124E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.72307E-04+0.00000E+00-2.03638E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26268E-04+0.00000E+00-1.95955E-04+0.00000E+00-1.45142E-04+0.00000E+00-7.80380E-05+0.00000E+00-2.59160E-06+0.00000E+00+7.03544E-05+0.00000E+00+1.28752E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.27774E-04+0.00000E+00+6.50032E-05+0.00000E+00-1.42499E-05+0.00000E+00-9.29802E-05+0.00000E+00-1.52783E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.00242E-04+0.00000E+00-1.01214E-05+0.00000E+00+8.95560E-05+0.00000E+00+1.73672E-04+0.00000E+00+2.18690E-04+0.00000E+00+2.09036E-04+0.00000E+00+1.42114E-0000041S*4+0.00000E+00+3.04418E-05+0.00000E+00-1.00068E-04+0.00000E+00-2.15680E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.79208E-04+0.00000E+00-1.97535E-04+0.00000E+00-5.29412E-05+0.00000E+00+1.20744E-04+0.00000E+00+2.78002E-04+0.00000E+00+3.73138E-04+0.00000E+00+3.73118E-04+0.00000E+00+2.68272E-04+0.00000E+00+7.75194E-05+0.00000E+00-1.53942E-04+0.00000E+00-3.64712E-04+0.00000E+00-4.92968E-04+0.00000E+00-4.94058E-04+0.00000E+00-3.55056E-04+0.00000E+00-1.01725E-04+0.00000E+00+2.04904E-04+0.00000E+00+4.82464E-04+0.00000E+00+6.48778E-04+0.00000E+00+6.45532E-04+0.00000E+00+4.57442E-04+0.00000E+00+1.20911E-04+0.00000E+00-2.81414E-04+0.00000E+00-6.40040E-04+0.00000E+00-8.47708E-04+0.00000E+00-8.30656E-04+0.00000E+00-5.73180E-04+0.00000E+00-1.27650E-04+0.00000E+00+3.94310E-04+0.00000E+00+8.48744E-04+0.00000E+00+1.09821E-03+0.00000E+00+1.05234E-03+0.00000E+00+6.98398E-04+0.00000E+00+1.11999E-04+0.00000E+00-5.57036E-04+0.00000E+00-1.12174E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.31236E-03+0.00000E+00-8.26764E-04+0.00000E+00-6.09068E-05+0.00000E+00+7.85842E-04+0.00000E+00+1.47374E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.61011E-03+0.00000E+00+9.47830E-04+0.00000E+00-4.36276E-05+0.00000E+00-1.10163E-03+0.00000E+00-1.92275E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.94359E-03+0.00000E+00-1.04776E-03+0.00000E+00+2.24088E-04+0.00000E+00+1.52962E-03+0.00000E+00+2.48958E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.30850E-03+0.00000E+00+1.10801E-03+0.00000E+00-5.08938E-04+0.00000E+00-2.10070E-03+0.00000E+00-3.19878E-03+0.00000E+00-3.44326E-03+0.00000E+00-2.69684E-03+0.00000E+00-1.10249E-03+0.00000E+00+9.36892E-04+0.00000E+00+2.85672E-03+0.00000E+00+4.08406E-03+0.00000E+00+4.20524E-03+0.00000E+00+3.09968E-03+0.00000E+00+9.97970E-04+0.00000E+00-1.55873E-03+0.00000E+00-3.85362E-03+0.00000E+00-5.19124E-03+0.00000E+00-5.10336E-03+0.00000E+00-3.50440E-03+0.00000E+00-7.46438E-04+0.00000E+00+2.44968E-03+0.00000E+00+5.17690E-03+0.00000E+00+6.59364E-03+0.00000E+00+6.17604E-03+0.00000E+00+3.89756E-03+0.00000E+00+2.77256E-04+0.00000E+00-3.72784E-03+0.00000E+00-6.96714E-03+0.00000E+00-8.41784E-03+0.00000E+00-7.49572E-03+0.00000E+00-4.26426E-03+0.00000E+00+5.27466E-04+0.00000E+00+5.60328E-03+0.00000E+00+9.48592E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.21506E-03+0.00000E+00+4.58962E-03+0.00000E+00-1.89363E-03+0.00000E+00-8.50506E-03+0.00000E+00-1.32925E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.16967E-02+0.00000E+00-4.85962E-03+0.00000E+00+4.34870E-03+0.00000E+00+1.34983E-02+0.00000E+00+1.98472E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.60019E-02+0.00000E+00+5.06204E-03+0.00000E+00-9.55078E-03+0.00000E+00-2.42030E-02+0.00000E+00-3.45266E-02+0.00000E+00-3.63864E-02+0.00000E+00-2.68872E-02+0.00000E+00-5.18748E-03+0.00000E+00+2.70918E-02+0.00000E+00+6.59838E-02+0.00000E+00+1.05820E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.71897E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.05820E-01+0.00000E+00+6.59838E-02+0.00000E+00+2.70918E-02+0.00000E+00-5.18748E-03+0.00000E+00-2.68872E-02+0.00000E+00-3.63864E-02+0.00000E+00-3.45266E-02+0.00000E+00-2.42030E-02+0.00000E+00-9.55078E-03+0.00000E+00+5.06204E-03+0.00000E+00+1.60019E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.98472E-02+0.00000E+00+1.34983E-02+0.00000E+00+4.34870E-03+0.00000E+00-4.85962E-03+0.00000E+00-1.16967E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.32925E-02+0.00000E+00-8.50506E-03+0.00000E+00-1.89363E-03+0.00000E+00+4.58962E-03+0.00000E+00+9.21506E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.48592E-03+0.00000E+00+5.60328E-03+0.00000E+00+5.27466E-04+0.00000E+00-4.26426E-03+0.00000E+00-7.49572E-03+0.00000E+00-8.41784E-03+0.00000E+00-6.96714E-03+0.00000E+00-3.72784E-03+0.00000E+00+2.77256E-04+0.00000E+00+3.89756E-03+0.00000E+00+6.17604E-03+0.00000E+00+6.59364E-03+0.00000E+00+5.17690E-03+0.00000E+00+2.44968E-03+0.00000E+00-7.46438E-04+0.00000E+00-3.50440E-03+0.00000E+00-5.10336E-03+0.00000E+00-5.19124E-03+0.00000E+00-3.85362E-03+0.00000E+00-1.55873E-03+0.00000E+00+9.97970E-04+0.00000E+00+3.09968E-03+0.00000E+00+4.20524E-03+0.00000E+00+4.08406E-03+0.00000E+00+2.85672E-03+0.0000000042S*0E+00+9.36892E-04+0.00000E+00-1.10249E-03+0.00000E+00-2.69684E-03+0.00000E+00-3.44326E-03+0.00000E+00-3.19878E-03+0.00000E+00-2.10070E-03+0.00000E+00-5.08938E-04+0.00000E+00+1.10801E-03+0.00000E+00+2.30850E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.48958E-03+0.00000E+00+1.52962E-03+0.00000E+00+2.24088E-04+0.00000E+00-1.04776E-03+0.00000E+00-1.94359E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.92275E-03+0.00000E+00-1.10163E-03+0.00000E+00-4.36276E-05+0.00000E+00+9.47830E-04+0.00000E+00+1.61011E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.47374E-03+0.00000E+00+7.85842E-04+0.00000E+00-6.09068E-05+0.00000E+00-8.26764E-04+0.00000E+00-1.31236E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.12174E-03+0.00000E+00-5.57036E-04+0.00000E+00+1.11999E-04+0.00000E+00+6.98398E-04+0.00000E+00+1.05234E-03+0.00000E+00+1.09821E-03+0.00000E+00+8.48744E-04+0.00000E+00+3.94310E-04+0.00000E+00-1.27650E-04+0.00000E+00-5.73180E-04+0.00000E+00-8.30656E-04+0.00000E+00-8.47708E-04+0.00000E+00-6.40040E-04+0.00000E+00-2.81414E-04+0.00000E+00+1.20911E-04+0.00000E+00+4.57442E-04+0.00000E+00+6.45532E-04+0.00000E+00+6.48778E-04+0.00000E+00+4.82464E-04+0.00000E+00+2.04904E-04+0.00000E+00-1.01725E-04+0.00000E+00-3.55056E-04+0.00000E+00-4.94058E-04+0.00000E+00-4.92968E-04+0.00000E+00-3.64712E-04+0.00000E+00-1.53942E-04+0.00000E+00+7.75194E-05+0.00000E+00+2.68272E-04+0.00000E+00+3.73118E-04+0.00000E+00+3.73138E-04+0.00000E+00+2.78002E-04+0.00000E+00+1.20744E-04+0.00000E+00-5.29412E-05+0.00000E+00-1.97535E-04+0.00000E+00-2.79208E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.15680E-04+0.00000E+00-1.00068E-04+0.00000E+00+3.04418E-05+0.00000E+00+1.42114E-04+0.00000E+00+2.09036E-04+0.00000E+00+2.18690E-04+0.00000E+00+1.73672E-04+0.00000E+00+8.95560E-05+0.00000E+00-1.01214E-05+0.00000E+00-1.00242E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.52783E-04+0.00000E+00-9.29802E-05+0.00000E+00-1.42499E-05+0.00000E+00+6.50032E-05+0.00000E+00+1.27774E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.28752E-04+0.00000E+00+7.03544E-05+0.00000E+00-2.59160E-06+0.00000E+00-7.80380E-05+0.00000E+00-1.45142E-04+0.00000E+00-1.95955E-04+0.00000E+00-2.26268E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.03638E-04+0.00000E+00-1.72307E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.04124E-04+0.00000E+00-7.44366E-05+0.00000E+00-5.02182E-05+0.00000E+00-3.18550E-05+0.00000E+00-1.88893E-05+0.00000E+00-1.03793E-05+0.00000E+00-5.21464E-06+0.00000E+00-2.34472E-06+0.00000E+00-9.08544E-07+0.00000E+00-2.80036E-07+0.00000E+00-5.32080E-08+0.00000E+00+4.52378E-09+0.00000E+00+7.72762E-09+0.00000E+0000000570051071.0000E+030000500000+1.5900E-01+1.5900E-01058003507+1.00000E+00+5.00000E-0200058003500+2.03990E+05+5.00000E-02000520127 HNN0000003~004002+49.129100+008.148700+0128.0000.0000.0+00.00001122.0000E+022.0000E-020000TG~2015,078,13:00:00.0000~~N0530382A01004003+1.00770E+18+1.00000E+00001-5.15000E+02+0.00000E+00+0.00000E+00+0.00000E+00006-9.77000E+02+3.28000E+02+0.00000E+00+0.00000E+00-9.77000E+02-3.28000E+02+0.00000E+00+0.00000E+00-1.48600E+03+2.51200E+03+0.00000E+00+0.00000E+00-1.48600E+03-2.51200E+03+0.00000E+00+0.00000E+00-5.73600E+03+4.94600E+03+0.00000E+00+0.00000E+00-5.73600E+03-4.94600E+03+0.00000E+00+0.00000E+00058003501+5.10000E-01+1.00000E+0000058003502+1.00000E+00+5.00000E-02000540048D030030040001+1.00000E+00+0.00000E+0000000570051031.9200E+050000100000+0.0000E+00+0.0000E+00058003503+4.00000E+05+5.00000E-02000541152D040040040047+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+3.81470E-06+0.00000E+00+2.28882E-05+0.00000E+00+8.01086E-05+0.00000E+00+2.13623E-04+0.00000E+00+4.80652E-04+0.00000E+00+9.61304E-04+0.00000E+00+1.76239E-03+0.00000E+00+3.02124E-03+0.00000E+00+4.88663E-03+0.00000E+00+7.49969E-03+0.00000E+00+1.09749E-02+0.00000E+00+1.53809E-02+0.00000E+00+2.07214E-02+0.00000E+00+2.69165E-02+0.00000E+00+3.37830E-02+0.00000E+00+4.10156E-02+0.00000E+00+4.82254E-02+0.00000E+00+5.49774E-02+0.00000E+00+6.08292E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.92444E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.08292E000043S*-02+0.00000E+00+5.49774E-02+0.00000E+00+4.82254E-02+0.00000E+00+4.10156E-02+0.00000E+00+3.37830E-02+0.00000E+00+2.69165E-02+0.00000E+00+2.07214E-02+0.00000E+00+1.53809E-02+0.00000E+00+1.09749E-02+0.00000E+00+7.49969E-03+0.00000E+00+4.88663E-03+0.00000E+00+3.02124E-03+0.00000E+00+1.76239E-03+0.00000E+00+9.61304E-04+0.00000E+00+4.80652E-04+0.00000E+00+2.13623E-04+0.00000E+00+8.01086E-05+0.00000E+00+2.28882E-05+0.00000E+00+3.81470E-06+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+0000000570051041.9200E+050000800000+1.1979E-04+1.1979E-04058003504+1.00000E+00+5.00000E-02000541776D050040040073+7.86395E-07+0.00000E+00+2.15223E-06+0.00000E+00+4.09013E-06+0.00000E+00+6.42053E-06+0.00000E+00+7.61300E-06+0.00000E+00+4.52134E-06+0.00000E+00-8.38839E-06+0.00000E+00-4.00745E-05+0.00000E+00-1.08702E-04+0.00000E+00-2.31570E-04+0.00000E+00-4.32673E-04+0.00000E+00-7.41861E-04+0.00000E+00-1.18635E-03+0.00000E+00-1.78887E-03+0.00000E+00-2.56156E-03+0.00000E+00-3.49756E-03+0.00000E+00-4.54784E-03+0.00000E+00-5.64473E-03+0.00000E+00-6.67437E-03+0.00000E+00-7.46932E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.53472E-03+0.00000E+00-6.33480E-03+0.00000E+00-3.99943E-03+0.00000E+00-3.60688E-04+0.00000E+00+4.71408E-03+0.00000E+00+1.12572E-02+0.00000E+00+1.91611E-02+0.00000E+00+2.82115E-02+0.00000E+00+3.80655E-02+0.00000E+00+4.82646E-02+0.00000E+00+5.82654E-02+0.00000E+00+6.75164E-02+0.00000E+00+7.54318E-02+0.00000E+00+8.14859E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.65986E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.14859E-02+0.00000E+00+7.54318E-02+0.00000E+00+6.75164E-02+0.00000E+00+5.82654E-02+0.00000E+00+4.82646E-02+0.00000E+00+3.80655E-02+0.00000E+00+2.82115E-02+0.00000E+00+1.91611E-02+0.00000E+00+1.12572E-02+0.00000E+00+4.71408E-03+0.00000E+00-3.60688E-04+0.00000E+00-3.99943E-03+0.00000E+00-6.33480E-03+0.00000E+00-7.53472E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.46932E-03+0.00000E+00-6.67437E-03+0.00000E+00-5.64473E-03+0.00000E+00-4.54784E-03+0.00000E+00-3.49756E-03+0.00000E+00-2.56156E-03+0.00000E+00-1.78887E-03+0.00000E+00-1.18635E-03+0.00000E+00-7.41861E-04+0.00000E+00-4.32673E-04+0.00000E+00-2.31570E-04+0.00000E+00-1.08702E-04+0.00000E+00-4.00745E-05+0.00000E+00-8.38839E-06+0.00000E+00+4.52134E-06+0.00000E+00+7.61300E-06+0.00000E+00+6.42053E-06+0.00000E+00+4.09013E-06+0.00000E+00+2.15223E-06+0.00000E+00+7.86395E-07+0.00000E+0000000570051052.4000E+040000800000+1.5000E-03+1.5000E-03058003505+1.00000E+00+5.00000E-02000544320D060040040179+1.65488E-07+0.00000E+00+7.48132E-07+0.00000E+00+1.76664E-06+0.00000E+00+1.62612E-06+0.00000E+00-5.16640E-06+0.00000E+00-3.00692E-05+0.00000E+00-8.97376E-05+0.00000E+00-1.99571E-04+0.00000E+00-3.61172E-04+0.00000E+00-5.48500E-04+0.00000E+00-7.02688E-04+0.00000E+00-7.45976E-04+0.00000E+00-6.17072E-04+0.00000E+00-3.15191E-04+0.00000E+00+7.38188E-05+0.00000E+00+3.95725E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.15263E-04+0.00000E+00-5.96548E-05+0.00000E+00-4.11872E-04+0.00000E+00-5.12780E-04+0.00000E+00-2.69536E-04+0.00000E+00+1.89248E-04+0.00000E+00+5.66172E-04+0.00000E+00+5.78372E-04+0.00000E+00+1.64727E-04+0.00000E+00-4.31664E-04+0.00000E+00-7.92432E-04+0.00000E+00-6.08316E-04+0.00000E+00+6.76780E-05+0.00000E+00+7.98316E-04+0.00000E+00+1.03172E-03+0.00000E+00+5.07504E-04+0.00000E+00-4.91744E-04+0.00000E+00-1.26810E-03+0.00000E+00-1.18261E-03+0.00000E+00-1.64670E-04+0.00000E+00+1.13876E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.09177E-03+0.00000E+00-5.24120E-04+0.00000E+00-1.97068E-03+0.00000E+00-2.08536E-03+0.00000E+00-5.79052E-04+0.00000E+00+1.60144E-03+0.00000E+00+2.83576E-03+0.00000E+00+2.01276E-03+0.00000E+00-5.13156E-04+0.00000E+00-2.98815E-03+0.00000E+00-3.44765E-03+0.00000E+00-1.24599E-03+0.00000E+00+2.24272E-03+0.00000E+00+4.43120E-03+0.00000E+00+3.40590E-03+0.00000E+00-4.57304E-04+0.00000E+00-4.47584E-03+0.00000E+00-5.47828E-03+0.00000E+00-2.26220E-03+0.00000E+00+3.18035E-03+0.00000E+00+6.81616E-03+0.00000E+00+5.50776E-03+0.00000E+00-3.65328E-04+0.00000E+00-6.73316E-03+0.00000E+00-8.58052E-03+0.00000E+00-3.81782E-03+0.00000E+00+4.65228E-03+0.00000E+00+1.05646E-02+0.00000E+00+8.82560E-03+000044S*0.00000E+00-2.56374E-04+0.00000E+00-1.04496E-02+0.00000E+00-1.37224E-02+0.00000E+00-6.39512E-03+0.00000E+00+7.26512E-03+0.00000E+00+1.72312E-02+0.00000E+00+1.48181E-02+0.00000E+00-1.54011E-04+0.00000E+00-1.77680E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.17549E-02+0.00000E+00+1.32733E-02+0.00000E+00+3.32147E-02+0.00000E+00+3.01309E-02+0.00000E+00-8.13468E-05+0.00000E+00-4.08284E-02+0.00000E+00-6.13256E-02+0.00000E+00-3.42109E-02+0.00000E+00+4.58968E-02+0.00000E+00+1.54886E-01+0.00000E+00+2.48713E-01+0.00000E+00+2.85658E-01+0.00000E+00+2.48713E-01+0.00000E+00+1.54886E-01+0.00000E+00+4.58968E-02+0.00000E+00-3.42109E-02+0.00000E+00-6.13256E-02+0.00000E+00-4.08284E-02+0.00000E+00-8.13468E-05+0.00000E+00+3.01309E-02+0.00000E+00+3.32147E-02+0.00000E+00+1.32733E-02+0.00000E+00-1.17549E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.77680E-02+0.00000E+00-1.54011E-04+0.00000E+00+1.48181E-02+0.00000E+00+1.72312E-02+0.00000E+00+7.26512E-03+0.00000E+00-6.39512E-03+0.00000E+00-1.37224E-02+0.00000E+00-1.04496E-02+0.00000E+00-2.56374E-04+0.00000E+00+8.82560E-03+0.00000E+00+1.05646E-02+0.00000E+00+4.65228E-03+0.00000E+00-3.81782E-03+0.00000E+00-8.58052E-03+0.00000E+00-6.73316E-03+0.00000E+00-3.65328E-04+0.00000E+00+5.50776E-03+0.00000E+00+6.81616E-03+0.00000E+00+3.18035E-03+0.00000E+00-2.26220E-03+0.00000E+00-5.47828E-03+0.00000E+00-4.47584E-03+0.00000E+00-4.57304E-04+0.00000E+00+3.40590E-03+0.00000E+00+4.43120E-03+0.00000E+00+2.24272E-03+0.00000E+00-1.24599E-03+0.00000E+00-3.44765E-03+0.00000E+00-2.98815E-03+0.00000E+00-5.13156E-04+0.00000E+00+2.01276E-03+0.00000E+00+2.83576E-03+0.00000E+00+1.60144E-03+0.00000E+00-5.79052E-04+0.00000E+00-2.08536E-03+0.00000E+00-1.97068E-03+0.00000E+00-5.24120E-04+0.00000E+00+1.09177E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.13876E-03+0.00000E+00-1.64670E-04+0.00000E+00-1.18261E-03+0.00000E+00-1.26810E-03+0.00000E+00-4.91744E-04+0.00000E+00+5.07504E-04+0.00000E+00+1.03172E-03+0.00000E+00+7.98316E-04+0.00000E+00+6.76780E-05+0.00000E+00-6.08316E-04+0.00000E+00-7.92432E-04+0.00000E+00-4.31664E-04+0.00000E+00+1.64727E-04+0.00000E+00+5.78372E-04+0.00000E+00+5.66172E-04+0.00000E+00+1.89248E-04+0.00000E+00-2.69536E-04+0.00000E+00-5.12780E-04+0.00000E+00-4.11872E-04+0.00000E+00-5.96548E-05+0.00000E+00+3.15263E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.95725E-04+0.00000E+00+7.38188E-05+0.00000E+00-3.15191E-04+0.00000E+00-6.17072E-04+0.00000E+00-7.45976E-04+0.00000E+00-7.02688E-04+0.00000E+00-5.48500E-04+0.00000E+00-3.61172E-04+0.00000E+00-1.99571E-04+0.00000E+00-8.97376E-05+0.00000E+00-3.00692E-05+0.00000E+00-5.16640E-06+0.00000E+00+1.62612E-06+0.00000E+00+1.76664E-06+0.00000E+00+7.48132E-07+0.00000E+00+1.65488E-07+0.00000E+0000000570051063.0000E+030000300000+2.9667E-02+2.9667E-02058003506+1.00000E+00+5.00000E-02000547680D070040040319+7.72762E-09+0.00000E+00+4.52378E-09+0.00000E+00-5.32080E-08+0.00000E+00-2.80036E-07+0.00000E+00-9.08544E-07+0.00000E+00-2.34472E-06+0.00000E+00-5.21464E-06+0.00000E+00-1.03793E-05+0.00000E+00-1.88893E-05+0.00000E+00-3.18550E-05+0.00000E+00-5.02182E-05+0.00000E+00-7.44366E-05+0.00000E+00-1.04124E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.72307E-04+0.00000E+00-2.03638E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26268E-04+0.00000E+00-1.95955E-04+0.00000E+00-1.45142E-04+0.00000E+00-7.80380E-05+0.00000E+00-2.59160E-06+0.00000E+00+7.03544E-05+0.00000E+00+1.28752E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.27774E-04+0.00000E+00+6.50032E-05+0.00000E+00-1.42499E-05+0.00000E+00-9.29802E-05+0.00000E+00-1.52783E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.00242E-04+0.00000E+00-1.01214E-05+0.00000E+00+8.95560E-05+0.00000E+00+1.73672E-04+0.00000E+00+2.18690E-04+0.00000E+00+2.09036E-04+0.00000E+00+1.42114E-04+0.00000E+00+3.04418E-05+0.00000E+00-1.00068E-04+0.00000E+00-2.15680E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.79208E-04+0.00000E+00-1.97535E-04+0.00000E+00-5.29412E-05+0.00000E+00+1.20744E-04+0.00000E+00+2.78002E-04+0.00000E+00+3.73138E-04+0.00000E+00+3.73118E-04+0.00000E+00+2.68272E-04+0.00000E+00+7.75194E-05+0.00000E+00-1.5394000045S*2E-04+0.00000E+00-3.64712E-04+0.00000E+00-4.92968E-04+0.00000E+00-4.94058E-04+0.00000E+00-3.55056E-04+0.00000E+00-1.01725E-04+0.00000E+00+2.04904E-04+0.00000E+00+4.82464E-04+0.00000E+00+6.48778E-04+0.00000E+00+6.45532E-04+0.00000E+00+4.57442E-04+0.00000E+00+1.20911E-04+0.00000E+00-2.81414E-04+0.00000E+00-6.40040E-04+0.00000E+00-8.47708E-04+0.00000E+00-8.30656E-04+0.00000E+00-5.73180E-04+0.00000E+00-1.27650E-04+0.00000E+00+3.94310E-04+0.00000E+00+8.48744E-04+0.00000E+00+1.09821E-03+0.00000E+00+1.05234E-03+0.00000E+00+6.98398E-04+0.00000E+00+1.11999E-04+0.00000E+00-5.57036E-04+0.00000E+00-1.12174E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.31236E-03+0.00000E+00-8.26764E-04+0.00000E+00-6.09068E-05+0.00000E+00+7.85842E-04+0.00000E+00+1.47374E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.61011E-03+0.00000E+00+9.47830E-04+0.00000E+00-4.36276E-05+0.00000E+00-1.10163E-03+0.00000E+00-1.92275E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.94359E-03+0.00000E+00-1.04776E-03+0.00000E+00+2.24088E-04+0.00000E+00+1.52962E-03+0.00000E+00+2.48958E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.30850E-03+0.00000E+00+1.10801E-03+0.00000E+00-5.08938E-04+0.00000E+00-2.10070E-03+0.00000E+00-3.19878E-03+0.00000E+00-3.44326E-03+0.00000E+00-2.69684E-03+0.00000E+00-1.10249E-03+0.00000E+00+9.36892E-04+0.00000E+00+2.85672E-03+0.00000E+00+4.08406E-03+0.00000E+00+4.20524E-03+0.00000E+00+3.09968E-03+0.00000E+00+9.97970E-04+0.00000E+00-1.55873E-03+0.00000E+00-3.85362E-03+0.00000E+00-5.19124E-03+0.00000E+00-5.10336E-03+0.00000E+00-3.50440E-03+0.00000E+00-7.46438E-04+0.00000E+00+2.44968E-03+0.00000E+00+5.17690E-03+0.00000E+00+6.59364E-03+0.00000E+00+6.17604E-03+0.00000E+00+3.89756E-03+0.00000E+00+2.77256E-04+0.00000E+00-3.72784E-03+0.00000E+00-6.96714E-03+0.00000E+00-8.41784E-03+0.00000E+00-7.49572E-03+0.00000E+00-4.26426E-03+0.00000E+00+5.27466E-04+0.00000E+00+5.60328E-03+0.00000E+00+9.48592E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.21506E-03+0.00000E+00+4.58962E-03+0.00000E+00-1.89363E-03+0.00000E+00-8.50506E-03+0.00000E+00-1.32925E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.16967E-02+0.00000E+00-4.85962E-03+0.00000E+00+4.34870E-03+0.00000E+00+1.34983E-02+0.00000E+00+1.98472E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.60019E-02+0.00000E+00+5.06204E-03+0.00000E+00-9.55078E-03+0.00000E+00-2.42030E-02+0.00000E+00-3.45266E-02+0.00000E+00-3.63864E-02+0.00000E+00-2.68872E-02+0.00000E+00-5.18748E-03+0.00000E+00+2.70918E-02+0.00000E+00+6.59838E-02+0.00000E+00+1.05820E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.71897E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.05820E-01+0.00000E+00+6.59838E-02+0.00000E+00+2.70918E-02+0.00000E+00-5.18748E-03+0.00000E+00-2.68872E-02+0.00000E+00-3.63864E-02+0.00000E+00-3.45266E-02+0.00000E+00-2.42030E-02+0.00000E+00-9.55078E-03+0.00000E+00+5.06204E-03+0.00000E+00+1.60019E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.98472E-02+0.00000E+00+1.34983E-02+0.00000E+00+4.34870E-03+0.00000E+00-4.85962E-03+0.00000E+00-1.16967E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.32925E-02+0.00000E+00-8.50506E-03+0.00000E+00-1.89363E-03+0.00000E+00+4.58962E-03+0.00000E+00+9.21506E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.48592E-03+0.00000E+00+5.60328E-03+0.00000E+00+5.27466E-04+0.00000E+00-4.26426E-03+0.00000E+00-7.49572E-03+0.00000E+00-8.41784E-03+0.00000E+00-6.96714E-03+0.00000E+00-3.72784E-03+0.00000E+00+2.77256E-04+0.00000E+00+3.89756E-03+0.00000E+00+6.17604E-03+0.00000E+00+6.59364E-03+0.00000E+00+5.17690E-03+0.00000E+00+2.44968E-03+0.00000E+00-7.46438E-04+0.00000E+00-3.50440E-03+0.00000E+00-5.10336E-03+0.00000E+00-5.19124E-03+0.00000E+00-3.85362E-03+0.00000E+00-1.55873E-03+0.00000E+00+9.97970E-04+0.00000E+00+3.09968E-03+0.00000E+00+4.20524E-03+0.00000E+00+4.08406E-03+0.00000E+00+2.85672E-03+0.00000E+00+9.36892E-04+0.00000E+00-1.10249E-03+0.00000E+00-2.69684E-03+0.00000E+00-3.44326E-03+0.00000E+00-3.19878E-03+0.00000E+00-2.10070E-03+0.00000E+00-5.08938E-04+0.00000E+00+1.10801E-03+0.00000E+00+2.30850E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.48958E-03+0.00000E+00+1.52962E-03+0.00000E+00+2.24088E-04+0.00000E+00-1.04776E-03+0.000046S*00000E+00-1.94359E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.92275E-03+0.00000E+00-1.10163E-03+0.00000E+00-4.36276E-05+0.00000E+00+9.47830E-04+0.00000E+00+1.61011E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.47374E-03+0.00000E+00+7.85842E-04+0.00000E+00-6.09068E-05+0.00000E+00-8.26764E-04+0.00000E+00-1.31236E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.12174E-03+0.00000E+00-5.57036E-04+0.00000E+00+1.11999E-04+0.00000E+00+6.98398E-04+0.00000E+00+1.05234E-03+0.00000E+00+1.09821E-03+0.00000E+00+8.48744E-04+0.00000E+00+3.94310E-04+0.00000E+00-1.27650E-04+0.00000E+00-5.73180E-04+0.00000E+00-8.30656E-04+0.00000E+00-8.47708E-04+0.00000E+00-6.40040E-04+0.00000E+00-2.81414E-04+0.00000E+00+1.20911E-04+0.00000E+00+4.57442E-04+0.00000E+00+6.45532E-04+0.00000E+00+6.48778E-04+0.00000E+00+4.82464E-04+0.00000E+00+2.04904E-04+0.00000E+00-1.01725E-04+0.00000E+00-3.55056E-04+0.00000E+00-4.94058E-04+0.00000E+00-4.92968E-04+0.00000E+00-3.64712E-04+0.00000E+00-1.53942E-04+0.00000E+00+7.75194E-05+0.00000E+00+2.68272E-04+0.00000E+00+3.73118E-04+0.00000E+00+3.73138E-04+0.00000E+00+2.78002E-04+0.00000E+00+1.20744E-04+0.00000E+00-5.29412E-05+0.00000E+00-1.97535E-04+0.00000E+00-2.79208E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.15680E-04+0.00000E+00-1.00068E-04+0.00000E+00+3.04418E-05+0.00000E+00+1.42114E-04+0.00000E+00+2.09036E-04+0.00000E+00+2.18690E-04+0.00000E+00+1.73672E-04+0.00000E+00+8.95560E-05+0.00000E+00-1.01214E-05+0.00000E+00-1.00242E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.52783E-04+0.00000E+00-9.29802E-05+0.00000E+00-1.42499E-05+0.00000E+00+6.50032E-05+0.00000E+00+1.27774E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.28752E-04+0.00000E+00+7.03544E-05+0.00000E+00-2.59160E-06+0.00000E+00-7.80380E-05+0.00000E+00-1.45142E-04+0.00000E+00-1.95955E-04+0.00000E+00-2.26268E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.03638E-04+0.00000E+00-1.72307E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.04124E-04+0.00000E+00-7.44366E-05+0.00000E+00-5.02182E-05+0.00000E+00-3.18550E-05+0.00000E+00-1.88893E-05+0.00000E+00-1.03793E-05+0.00000E+00-5.21464E-06+0.00000E+00-2.34472E-06+0.00000E+00-9.08544E-07+0.00000E+00-2.80036E-07+0.00000E+00-5.32080E-08+0.00000E+00+4.52378E-09+0.00000E+00+7.72762E-09+0.00000E+0000000570051071.0000E+030000500000+1.5900E-01+1.5900E-01058003507+1.00000E+00+5.00000E-0200058003500+2.03990E+05+5.00000E-02000520127 HNZ0000003~004002+49.129100+008.148700+0128.0000.0000.0-90.00001122.0000E+022.0000E-020000TG~2015,078,13:00:00.0000~~N0530382A01004003+1.00770E+18+1.00000E+00001-5.15000E+02+0.00000E+00+0.00000E+00+0.00000E+00006-9.77000E+02+3.28000E+02+0.00000E+00+0.00000E+00-9.77000E+02-3.28000E+02+0.00000E+00+0.00000E+00-1.48600E+03+2.51200E+03+0.00000E+00+0.00000E+00-1.48600E+03-2.51200E+03+0.00000E+00+0.00000E+00-5.73600E+03+4.94600E+03+0.00000E+00+0.00000E+00-5.73600E+03-4.94600E+03+0.00000E+00+0.00000E+00058003501+5.10000E-01+1.00000E+0000058003502+1.00000E+00+5.00000E-02000540048D030030040001+1.00000E+00+0.00000E+0000000570051031.9200E+050000100000+0.0000E+00+0.0000E+00058003503+4.00000E+05+5.00000E-02000541152D040040040047+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+3.81470E-06+0.00000E+00+2.28882E-05+0.00000E+00+8.01086E-05+0.00000E+00+2.13623E-04+0.00000E+00+4.80652E-04+0.00000E+00+9.61304E-04+0.00000E+00+1.76239E-03+0.00000E+00+3.02124E-03+0.00000E+00+4.88663E-03+0.00000E+00+7.49969E-03+0.00000E+00+1.09749E-02+0.00000E+00+1.53809E-02+0.00000E+00+2.07214E-02+0.00000E+00+2.69165E-02+0.00000E+00+3.37830E-02+0.00000E+00+4.10156E-02+0.00000E+00+4.82254E-02+0.00000E+00+5.49774E-02+0.00000E+00+6.08292E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.92444E-02+0.00000E+00+6.82526E-02+0.00000E+00+6.53687E-02+0.00000E+00+6.08292E-02+0.00000E+00+5.49774E-02+0.00000E+00+4.82254E-02+0.00000E+00+4.10156E-02+0.00000E+00+3.37830E-02+0.00000E+00+2.69165E-02+0.00000E+00+2.07214E-02+0.00000E+00+1.53809E-02+0.00000E+00+1.09749E-02+0.00000E+00+7.49969E-03+0.00000E+00+4.88663E-03+0.00000E+00+3.02124E-03+0.00000E+00+1.76239E-03+0.00000E+00+9.61304E-04+0.00000E+00+4.80000047S*652E-04+0.00000E+00+2.13623E-04+0.00000E+00+8.01086E-05+0.00000E+00+2.28882E-05+0.00000E+00+3.81470E-06+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+00+0.00000E+0000000570051041.9200E+050000800000+1.1979E-04+1.1979E-04058003504+1.00000E+00+5.00000E-02000541776D050040040073+7.86395E-07+0.00000E+00+2.15223E-06+0.00000E+00+4.09013E-06+0.00000E+00+6.42053E-06+0.00000E+00+7.61300E-06+0.00000E+00+4.52134E-06+0.00000E+00-8.38839E-06+0.00000E+00-4.00745E-05+0.00000E+00-1.08702E-04+0.00000E+00-2.31570E-04+0.00000E+00-4.32673E-04+0.00000E+00-7.41861E-04+0.00000E+00-1.18635E-03+0.00000E+00-1.78887E-03+0.00000E+00-2.56156E-03+0.00000E+00-3.49756E-03+0.00000E+00-4.54784E-03+0.00000E+00-5.64473E-03+0.00000E+00-6.67437E-03+0.00000E+00-7.46932E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.53472E-03+0.00000E+00-6.33480E-03+0.00000E+00-3.99943E-03+0.00000E+00-3.60688E-04+0.00000E+00+4.71408E-03+0.00000E+00+1.12572E-02+0.00000E+00+1.91611E-02+0.00000E+00+2.82115E-02+0.00000E+00+3.80655E-02+0.00000E+00+4.82646E-02+0.00000E+00+5.82654E-02+0.00000E+00+6.75164E-02+0.00000E+00+7.54318E-02+0.00000E+00+8.14859E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.65986E-02+0.00000E+00+8.52972E-02+0.00000E+00+8.14859E-02+0.00000E+00+7.54318E-02+0.00000E+00+6.75164E-02+0.00000E+00+5.82654E-02+0.00000E+00+4.82646E-02+0.00000E+00+3.80655E-02+0.00000E+00+2.82115E-02+0.00000E+00+1.91611E-02+0.00000E+00+1.12572E-02+0.00000E+00+4.71408E-03+0.00000E+00-3.60688E-04+0.00000E+00-3.99943E-03+0.00000E+00-6.33480E-03+0.00000E+00-7.53472E-03+0.00000E+00-7.83206E-03+0.00000E+00-7.46932E-03+0.00000E+00-6.67437E-03+0.00000E+00-5.64473E-03+0.00000E+00-4.54784E-03+0.00000E+00-3.49756E-03+0.00000E+00-2.56156E-03+0.00000E+00-1.78887E-03+0.00000E+00-1.18635E-03+0.00000E+00-7.41861E-04+0.00000E+00-4.32673E-04+0.00000E+00-2.31570E-04+0.00000E+00-1.08702E-04+0.00000E+00-4.00745E-05+0.00000E+00-8.38839E-06+0.00000E+00+4.52134E-06+0.00000E+00+7.61300E-06+0.00000E+00+6.42053E-06+0.00000E+00+4.09013E-06+0.00000E+00+2.15223E-06+0.00000E+00+7.86395E-07+0.00000E+0000000570051052.4000E+040000800000+1.5000E-03+1.5000E-03058003505+1.00000E+00+5.00000E-02000544320D060040040179+1.65488E-07+0.00000E+00+7.48132E-07+0.00000E+00+1.76664E-06+0.00000E+00+1.62612E-06+0.00000E+00-5.16640E-06+0.00000E+00-3.00692E-05+0.00000E+00-8.97376E-05+0.00000E+00-1.99571E-04+0.00000E+00-3.61172E-04+0.00000E+00-5.48500E-04+0.00000E+00-7.02688E-04+0.00000E+00-7.45976E-04+0.00000E+00-6.17072E-04+0.00000E+00-3.15191E-04+0.00000E+00+7.38188E-05+0.00000E+00+3.95725E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.15263E-04+0.00000E+00-5.96548E-05+0.00000E+00-4.11872E-04+0.00000E+00-5.12780E-04+0.00000E+00-2.69536E-04+0.00000E+00+1.89248E-04+0.00000E+00+5.66172E-04+0.00000E+00+5.78372E-04+0.00000E+00+1.64727E-04+0.00000E+00-4.31664E-04+0.00000E+00-7.92432E-04+0.00000E+00-6.08316E-04+0.00000E+00+6.76780E-05+0.00000E+00+7.98316E-04+0.00000E+00+1.03172E-03+0.00000E+00+5.07504E-04+0.00000E+00-4.91744E-04+0.00000E+00-1.26810E-03+0.00000E+00-1.18261E-03+0.00000E+00-1.64670E-04+0.00000E+00+1.13876E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.09177E-03+0.00000E+00-5.24120E-04+0.00000E+00-1.97068E-03+0.00000E+00-2.08536E-03+0.00000E+00-5.79052E-04+0.00000E+00+1.60144E-03+0.00000E+00+2.83576E-03+0.00000E+00+2.01276E-03+0.00000E+00-5.13156E-04+0.00000E+00-2.98815E-03+0.00000E+00-3.44765E-03+0.00000E+00-1.24599E-03+0.00000E+00+2.24272E-03+0.00000E+00+4.43120E-03+0.00000E+00+3.40590E-03+0.00000E+00-4.57304E-04+0.00000E+00-4.47584E-03+0.00000E+00-5.47828E-03+0.00000E+00-2.26220E-03+0.00000E+00+3.18035E-03+0.00000E+00+6.81616E-03+0.00000E+00+5.50776E-03+0.00000E+00-3.65328E-04+0.00000E+00-6.73316E-03+0.00000E+00-8.58052E-03+0.00000E+00-3.81782E-03+0.00000E+00+4.65228E-03+0.00000E+00+1.05646E-02+0.00000E+00+8.82560E-03+0.00000E+00-2.56374E-04+0.00000E+00-1.04496E-02+0.00000E+00-1.37224E-02+0.00000E+00-6.39512E-03+0.00000E+00+7.26512E-03+0.00000E+00+1.72312E-02+0.00000E+00+1.48181E-02+0.00000E+00-1.54011E-04+0.00000E+00-1.77680E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.17549E-02+0.00000E+00+1.32733E-02+0.00000E+00+3.32147E-02+0.00000E+00+3.01309E000048S*-02+0.00000E+00-8.13468E-05+0.00000E+00-4.08284E-02+0.00000E+00-6.13256E-02+0.00000E+00-3.42109E-02+0.00000E+00+4.58968E-02+0.00000E+00+1.54886E-01+0.00000E+00+2.48713E-01+0.00000E+00+2.85658E-01+0.00000E+00+2.48713E-01+0.00000E+00+1.54886E-01+0.00000E+00+4.58968E-02+0.00000E+00-3.42109E-02+0.00000E+00-6.13256E-02+0.00000E+00-4.08284E-02+0.00000E+00-8.13468E-05+0.00000E+00+3.01309E-02+0.00000E+00+3.32147E-02+0.00000E+00+1.32733E-02+0.00000E+00-1.17549E-02+0.00000E+00-2.41384E-02+0.00000E+00-1.77680E-02+0.00000E+00-1.54011E-04+0.00000E+00+1.48181E-02+0.00000E+00+1.72312E-02+0.00000E+00+7.26512E-03+0.00000E+00-6.39512E-03+0.00000E+00-1.37224E-02+0.00000E+00-1.04496E-02+0.00000E+00-2.56374E-04+0.00000E+00+8.82560E-03+0.00000E+00+1.05646E-02+0.00000E+00+4.65228E-03+0.00000E+00-3.81782E-03+0.00000E+00-8.58052E-03+0.00000E+00-6.73316E-03+0.00000E+00-3.65328E-04+0.00000E+00+5.50776E-03+0.00000E+00+6.81616E-03+0.00000E+00+3.18035E-03+0.00000E+00-2.26220E-03+0.00000E+00-5.47828E-03+0.00000E+00-4.47584E-03+0.00000E+00-4.57304E-04+0.00000E+00+3.40590E-03+0.00000E+00+4.43120E-03+0.00000E+00+2.24272E-03+0.00000E+00-1.24599E-03+0.00000E+00-3.44765E-03+0.00000E+00-2.98815E-03+0.00000E+00-5.13156E-04+0.00000E+00+2.01276E-03+0.00000E+00+2.83576E-03+0.00000E+00+1.60144E-03+0.00000E+00-5.79052E-04+0.00000E+00-2.08536E-03+0.00000E+00-1.97068E-03+0.00000E+00-5.24120E-04+0.00000E+00+1.09177E-03+0.00000E+00+1.75363E-03+0.00000E+00+1.13876E-03+0.00000E+00-1.64670E-04+0.00000E+00-1.18261E-03+0.00000E+00-1.26810E-03+0.00000E+00-4.91744E-04+0.00000E+00+5.07504E-04+0.00000E+00+1.03172E-03+0.00000E+00+7.98316E-04+0.00000E+00+6.76780E-05+0.00000E+00-6.08316E-04+0.00000E+00-7.92432E-04+0.00000E+00-4.31664E-04+0.00000E+00+1.64727E-04+0.00000E+00+5.78372E-04+0.00000E+00+5.66172E-04+0.00000E+00+1.89248E-04+0.00000E+00-2.69536E-04+0.00000E+00-5.12780E-04+0.00000E+00-4.11872E-04+0.00000E+00-5.96548E-05+0.00000E+00+3.15263E-04+0.00000E+00+4.96800E-04+0.00000E+00+3.95725E-04+0.00000E+00+7.38188E-05+0.00000E+00-3.15191E-04+0.00000E+00-6.17072E-04+0.00000E+00-7.45976E-04+0.00000E+00-7.02688E-04+0.00000E+00-5.48500E-04+0.00000E+00-3.61172E-04+0.00000E+00-1.99571E-04+0.00000E+00-8.97376E-05+0.00000E+00-3.00692E-05+0.00000E+00-5.16640E-06+0.00000E+00+1.62612E-06+0.00000E+00+1.76664E-06+0.00000E+00+7.48132E-07+0.00000E+00+1.65488E-07+0.00000E+0000000570051063.0000E+030000300000+2.9667E-02+2.9667E-02058003506+1.00000E+00+5.00000E-02000547680D070040040319+7.72762E-09+0.00000E+00+4.52378E-09+0.00000E+00-5.32080E-08+0.00000E+00-2.80036E-07+0.00000E+00-9.08544E-07+0.00000E+00-2.34472E-06+0.00000E+00-5.21464E-06+0.00000E+00-1.03793E-05+0.00000E+00-1.88893E-05+0.00000E+00-3.18550E-05+0.00000E+00-5.02182E-05+0.00000E+00-7.44366E-05+0.00000E+00-1.04124E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.72307E-04+0.00000E+00-2.03638E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26268E-04+0.00000E+00-1.95955E-04+0.00000E+00-1.45142E-04+0.00000E+00-7.80380E-05+0.00000E+00-2.59160E-06+0.00000E+00+7.03544E-05+0.00000E+00+1.28752E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.27774E-04+0.00000E+00+6.50032E-05+0.00000E+00-1.42499E-05+0.00000E+00-9.29802E-05+0.00000E+00-1.52783E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.00242E-04+0.00000E+00-1.01214E-05+0.00000E+00+8.95560E-05+0.00000E+00+1.73672E-04+0.00000E+00+2.18690E-04+0.00000E+00+2.09036E-04+0.00000E+00+1.42114E-04+0.00000E+00+3.04418E-05+0.00000E+00-1.00068E-04+0.00000E+00-2.15680E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.79208E-04+0.00000E+00-1.97535E-04+0.00000E+00-5.29412E-05+0.00000E+00+1.20744E-04+0.00000E+00+2.78002E-04+0.00000E+00+3.73138E-04+0.00000E+00+3.73118E-04+0.00000E+00+2.68272E-04+0.00000E+00+7.75194E-05+0.00000E+00-1.53942E-04+0.00000E+00-3.64712E-04+0.00000E+00-4.92968E-04+0.00000E+00-4.94058E-04+0.00000E+00-3.55056E-04+0.00000E+00-1.01725E-04+0.00000E+00+2.04904E-04+0.00000E+00+4.82464E-04+0.00000E+00+6.48778E-04+0.00000E+00+6.45532E-04+0.00000E+00+4.57442E-04+0.00000E+00+1.20911E-04+0.00000E+00-2.81414E-04+0.00000E+00-6.40040E-04+0.00000E+00-8.000049S*47708E-04+0.00000E+00-8.30656E-04+0.00000E+00-5.73180E-04+0.00000E+00-1.27650E-04+0.00000E+00+3.94310E-04+0.00000E+00+8.48744E-04+0.00000E+00+1.09821E-03+0.00000E+00+1.05234E-03+0.00000E+00+6.98398E-04+0.00000E+00+1.11999E-04+0.00000E+00-5.57036E-04+0.00000E+00-1.12174E-03+0.00000E+00-1.40922E-03+0.00000E+00-1.31236E-03+0.00000E+00-8.26764E-04+0.00000E+00-6.09068E-05+0.00000E+00+7.85842E-04+0.00000E+00+1.47374E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.61011E-03+0.00000E+00+9.47830E-04+0.00000E+00-4.36276E-05+0.00000E+00-1.10163E-03+0.00000E+00-1.92275E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.94359E-03+0.00000E+00-1.04776E-03+0.00000E+00+2.24088E-04+0.00000E+00+1.52962E-03+0.00000E+00+2.48958E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.30850E-03+0.00000E+00+1.10801E-03+0.00000E+00-5.08938E-04+0.00000E+00-2.10070E-03+0.00000E+00-3.19878E-03+0.00000E+00-3.44326E-03+0.00000E+00-2.69684E-03+0.00000E+00-1.10249E-03+0.00000E+00+9.36892E-04+0.00000E+00+2.85672E-03+0.00000E+00+4.08406E-03+0.00000E+00+4.20524E-03+0.00000E+00+3.09968E-03+0.00000E+00+9.97970E-04+0.00000E+00-1.55873E-03+0.00000E+00-3.85362E-03+0.00000E+00-5.19124E-03+0.00000E+00-5.10336E-03+0.00000E+00-3.50440E-03+0.00000E+00-7.46438E-04+0.00000E+00+2.44968E-03+0.00000E+00+5.17690E-03+0.00000E+00+6.59364E-03+0.00000E+00+6.17604E-03+0.00000E+00+3.89756E-03+0.00000E+00+2.77256E-04+0.00000E+00-3.72784E-03+0.00000E+00-6.96714E-03+0.00000E+00-8.41784E-03+0.00000E+00-7.49572E-03+0.00000E+00-4.26426E-03+0.00000E+00+5.27466E-04+0.00000E+00+5.60328E-03+0.00000E+00+9.48592E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.21506E-03+0.00000E+00+4.58962E-03+0.00000E+00-1.89363E-03+0.00000E+00-8.50506E-03+0.00000E+00-1.32925E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.16967E-02+0.00000E+00-4.85962E-03+0.00000E+00+4.34870E-03+0.00000E+00+1.34983E-02+0.00000E+00+1.98472E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.60019E-02+0.00000E+00+5.06204E-03+0.00000E+00-9.55078E-03+0.00000E+00-2.42030E-02+0.00000E+00-3.45266E-02+0.00000E+00-3.63864E-02+0.00000E+00-2.68872E-02+0.00000E+00-5.18748E-03+0.00000E+00+2.70918E-02+0.00000E+00+6.59838E-02+0.00000E+00+1.05820E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.71897E-01+0.00000E+00+1.63636E-01+0.00000E+00+1.40281E-01+0.00000E+00+1.05820E-01+0.00000E+00+6.59838E-02+0.00000E+00+2.70918E-02+0.00000E+00-5.18748E-03+0.00000E+00-2.68872E-02+0.00000E+00-3.63864E-02+0.00000E+00-3.45266E-02+0.00000E+00-2.42030E-02+0.00000E+00-9.55078E-03+0.00000E+00+5.06204E-03+0.00000E+00+1.60019E-02+0.00000E+00+2.10770E-02+0.00000E+00+1.98472E-02+0.00000E+00+1.34983E-02+0.00000E+00+4.34870E-03+0.00000E+00-4.85962E-03+0.00000E+00-1.16967E-02+0.00000E+00-1.46243E-02+0.00000E+00-1.32925E-02+0.00000E+00-8.50506E-03+0.00000E+00-1.89363E-03+0.00000E+00+4.58962E-03+0.00000E+00+9.21506E-03+0.00000E+00+1.09107E-02+0.00000E+00+9.48592E-03+0.00000E+00+5.60328E-03+0.00000E+00+5.27466E-04+0.00000E+00-4.26426E-03+0.00000E+00-7.49572E-03+0.00000E+00-8.41784E-03+0.00000E+00-6.96714E-03+0.00000E+00-3.72784E-03+0.00000E+00+2.77256E-04+0.00000E+00+3.89756E-03+0.00000E+00+6.17604E-03+0.00000E+00+6.59364E-03+0.00000E+00+5.17690E-03+0.00000E+00+2.44968E-03+0.00000E+00-7.46438E-04+0.00000E+00-3.50440E-03+0.00000E+00-5.10336E-03+0.00000E+00-5.19124E-03+0.00000E+00-3.85362E-03+0.00000E+00-1.55873E-03+0.00000E+00+9.97970E-04+0.00000E+00+3.09968E-03+0.00000E+00+4.20524E-03+0.00000E+00+4.08406E-03+0.00000E+00+2.85672E-03+0.00000E+00+9.36892E-04+0.00000E+00-1.10249E-03+0.00000E+00-2.69684E-03+0.00000E+00-3.44326E-03+0.00000E+00-3.19878E-03+0.00000E+00-2.10070E-03+0.00000E+00-5.08938E-04+0.00000E+00+1.10801E-03+0.00000E+00+2.30850E-03+0.00000E+00+2.79606E-03+0.00000E+00+2.48958E-03+0.00000E+00+1.52962E-03+0.00000E+00+2.24088E-04+0.00000E+00-1.04776E-03+0.00000E+00-1.94359E-03+0.00000E+00-2.24826E-03+0.00000E+00-1.92275E-03+0.00000E+00-1.10163E-03+0.00000E+00-4.36276E-05+0.00000E+00+9.47830E-04+0.00000E+00+1.61011E-03+0.00000E+00+1.78935E-03+0.00000E+00+1.47374E-03+0.00000E+00+7.85842E-04+0.00000E+00-6.09068E-05+0.00000E+00-8.26764E-04+0.00000E+00-1.31236E-03+0.00000E+00-1.40922E-0000050S*3+0.00000E+00-1.12174E-03+0.00000E+00-5.57036E-04+0.00000E+00+1.11999E-04+0.00000E+00+6.98398E-04+0.00000E+00+1.05234E-03+0.00000E+00+1.09821E-03+0.00000E+00+8.48744E-04+0.00000E+00+3.94310E-04+0.00000E+00-1.27650E-04+0.00000E+00-5.73180E-04+0.00000E+00-8.30656E-04+0.00000E+00-8.47708E-04+0.00000E+00-6.40040E-04+0.00000E+00-2.81414E-04+0.00000E+00+1.20911E-04+0.00000E+00+4.57442E-04+0.00000E+00+6.45532E-04+0.00000E+00+6.48778E-04+0.00000E+00+4.82464E-04+0.00000E+00+2.04904E-04+0.00000E+00-1.01725E-04+0.00000E+00-3.55056E-04+0.00000E+00-4.94058E-04+0.00000E+00-4.92968E-04+0.00000E+00-3.64712E-04+0.00000E+00-1.53942E-04+0.00000E+00+7.75194E-05+0.00000E+00+2.68272E-04+0.00000E+00+3.73118E-04+0.00000E+00+3.73138E-04+0.00000E+00+2.78002E-04+0.00000E+00+1.20744E-04+0.00000E+00-5.29412E-05+0.00000E+00-1.97535E-04+0.00000E+00-2.79208E-04+0.00000E+00-2.83208E-04+0.00000E+00-2.15680E-04+0.00000E+00-1.00068E-04+0.00000E+00+3.04418E-05+0.00000E+00+1.42114E-04+0.00000E+00+2.09036E-04+0.00000E+00+2.18690E-04+0.00000E+00+1.73672E-04+0.00000E+00+8.95560E-05+0.00000E+00-1.01214E-05+0.00000E+00-1.00242E-04+0.00000E+00-1.60164E-04+0.00000E+00-1.78068E-04+0.00000E+00-1.52783E-04+0.00000E+00-9.29802E-05+0.00000E+00-1.42499E-05+0.00000E+00+6.50032E-05+0.00000E+00+1.27774E-04+0.00000E+00+1.61835E-04+0.00000E+00+1.61671E-04+0.00000E+00+1.28752E-04+0.00000E+00+7.03544E-05+0.00000E+00-2.59160E-06+0.00000E+00-7.80380E-05+0.00000E+00-1.45142E-04+0.00000E+00-1.95955E-04+0.00000E+00-2.26268E-04+0.00000E+00-2.35600E-04+0.00000E+00-2.26532E-04+0.00000E+00-2.03638E-04+0.00000E+00-1.72307E-04+0.00000E+00-1.37722E-04+0.00000E+00-1.04124E-04+0.00000E+00-7.44366E-05+0.00000E+00-5.02182E-05+0.00000E+00-3.18550E-05+0.00000E+00-1.88893E-05+0.00000E+00-1.03793E-05+0.00000E+00-5.21464E-06+0.00000E+00-2.34472E-06+0.00000E+00-9.08544E-07+0.00000E+00-2.80036E-07+0.00000E+00-5.32080E-08+0.00000E+00+4.52378E-09+0.00000E+00+7.72762E-09+0.00000E+0000000570051071.0000E+030000500000+1.5900E-01+1.5900E-01058003507+1.00000E+00+5.00000E-0200058003500+2.03990E+05+5.00000E-0200 000051 000052 000053 000054 000055 000056 \ No newline at end of file diff --git a/tests/utils.py b/tests/utils.py new file mode 100644 index 00000000..9c154e63 --- /dev/null +++ b/tests/utils.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +"""Utilities/helpers for testing""" + +import sys +import os + + +class HidePrints: + """ + Context manager that hides all standard output within its body. + The optional hide_prints argument can be used to quickly enable printing during debugging of tests. + + + Use (This will result in all console output of noisy_function to be suppressed): + from tests.utils import HidePrints + with HidePrints(): + noise_function() + """ + + @staticmethod + def hide(func, *args, **kwargs): + """Decorator that hides all prints of the decorated function. + + Use: + from tests.utils import HidePrints + @HidePrints.hide + def noise() + print("NOISE") + """ + + def silencer(*args, **kwargs): + with HidePrints(): + func(*args, **kwargs) + return silencer + + def __init__(self, hide_prints=True): + """Create object with hide_prints=False to disable print hiding""" + self.hide = hide_prints + + def __enter__(self): + """Redirect stdout to /dev/null, save old stdout""" + if self.hide: + self._original_stdout = sys.stdout + devnull = open(os.devnull, "w") + sys.stdout = devnull + + def __exit__(self, exc_type, exc_val, exc_tb): + """Reinstate old stdout""" + if self.hide: + sys.stdout = self._original_stdout \ No newline at end of file