def test_getInventory2(self): """ Bugfix for location and channel codes for new inventory schema """ client = Client() # new schema inventory = client.getInventory('CH', 'GRYON') self.assertTrue('CH.GRYON..EHE' in inventory) # old schema inventory = client.getInventory('BW', 'MANZ') self.assertTrue('BW.MANZ..EHZ' in inventory)
def test_getInventory2(self): """ Bugfix for location and channel codes for new inventory schema """ client = Client(user='******') # new schema inventory = client.getInventory('CH', 'GRYON') self.assertTrue('CH.GRYON..EHE' in inventory) # old schema inventory = client.getInventory('BW', 'MANZ') self.assertTrue('BW.MANZ..EHZ' in inventory)
def test_getInventoryTwice(self): """ Requesting inventory data twice should not fail. """ client = Client(user='******') dt = UTCDateTime(2009, 1, 1) # station client.getInventory('BW', 'MANZ', starttime=dt, endtime=dt + 1) client.getInventory('BW', 'MANZ', starttime=dt, endtime=dt + 1) # network client.getInventory('BW', starttime=dt, endtime=dt + 1) client.getInventory('BW', starttime=dt, endtime=dt + 1)
def test_getInventoryTwice(self): """ Requesting inventory data twice should not fail. """ client = Client() dt = UTCDateTime(2009, 1, 1) # station client.getInventory('BW', 'MANZ', starttime=dt, endtime=dt + 1) client.getInventory('BW', 'MANZ', starttime=dt, endtime=dt + 1) # network client.getInventory('BW', starttime=dt, endtime=dt + 1) client.getInventory('BW', starttime=dt, endtime=dt + 1)
def getArclinkInst(station, usermail, pwdkeys): inst = 'no_instrument_available' #if station.loc == '' : station.loc='--' sn = station.net + '.' + station.sta + '.' + station.loc + '.' + station.comp print 'SN ', sn client = Client(user=usermail, dcid_keys=pwdkeys) inv = client.getInventory(station.net, station.sta, station.loc, station.comp, instruments=True) print 'INV: ', inv try: stats = inv[sn] print 'STATS ', stats t = stats[0] z = t['paz'] inst = z['name'] inst = inst.replace(' ', '_') except: inst = 'no_instrument_available' return inst
def test_getInventoryInstrumentChange(self): """ Check results of getInventory if instrumentation has been changed. Sensitivity change for GE.SNAA..BHZ at 2003-01-10T00:00:00 """ client = Client(user='******') # one instrument in given time span dt = UTCDateTime("2003-01-09T00:00:00") inv = client.getInventory("GE", "SNAA", "", "BHZ", dt, dt + 10, instruments=True, route=False) self.assertTrue(len(inv['GE.SNAA..BHZ']), 1) # two instruments in given time span dt = UTCDateTime("2003-01-09T23:59:59") inv = client.getInventory("GE", "SNAA", "", "BHZ", dt, dt + 10, instruments=True, route=False) self.assertTrue(len(inv['GE.SNAA..BHZ']), 2) # one instrument in given time span dt = UTCDateTime("2003-01-10T00:00:00") inv = client.getInventory("GE", "SNAA", "", "BHZ", dt, dt + 10, instruments=True, route=False) self.assertTrue(len(inv['GE.SNAA..BHZ']), 1)
def test_getInventoryInstrumentChange(self): """ Check results of getInventory if instrumentation has been changed. Sensitivity change for GE.SNAA..BHZ at 2003-01-10T00:00:00 """ client = Client(user='******') # one instrument in given time span dt = UTCDateTime("2003-01-09T00:00:00") inv = client.getInventory("GE", "SNAA", "", "BHZ", dt, dt + 10, instruments=True, route=False) self.assertTrue(len(inv['GE.SNAA..BHZ']), 1) # two instruments in given time span dt = UTCDateTime("2003-01-09T23:59:59") inv = client.getInventory("GE", "SNAA", "", "BHZ", dt, dt + 10, instruments=True, route=False) self.assertTrue(len(inv['GE.SNAA..BHZ']), 2) # one instrument in given time span dt = UTCDateTime("2003-01-10T00:00:00") inv = client.getInventory("GE", "SNAA", "", "BHZ", dt, dt + 10, instruments=True, route=False) self.assertTrue(len(inv['GE.SNAA..BHZ']), 1)
def ARC_available(input_dics, event, target_path, event_number): """ Check the availability of ArcLink stations """ print "Check the availability of ArcLink stations" client_arclink = Client_arclink(user='******', timeout=input_dics['arc_avai_timeout']) Sta_arc = [] try: inventories = client_arclink.getInventory( network=input_dics['net'], station=input_dics['sta'], location=input_dics['loc'], channel=input_dics['cha'], starttime=UTCDateTime(event['t1']), endtime=UTCDateTime(event['t2']), min_latitude=input_dics['mlat_rbb'], max_latitude=input_dics['Mlat_rbb'], min_longitude=input_dics['mlon_rbb'], max_longitude=input_dics['Mlon_rbb']) for inv_key in inventories.keys(): netsta = inv_key.split('.') if len(netsta) == 4: sta = '%s.%s' % (netsta[0], netsta[1]) if not inventories[sta]['depth']: inventories[sta]['depth'] = 0.0 Sta_arc.append([netsta[0], netsta[1], netsta[2], netsta[3], inventories[sta]['latitude'], inventories[sta]['longitude'], inventories[sta]['elevation'], inventories[sta]['depth']]) except Exception as e: exc_file = open(os.path.join(target_path, 'info', 'exception'), 'a+') ee = 'arclink -- Event: %s --- %s\n' % (str(event_number+1), e) exc_file.writelines(ee) exc_file.close() print 'ERROR: %s' % ee if len(Sta_arc) == 0: Sta_arc.append([]) Sta_arc.sort() return Sta_arc
def test_getInventory(self): """ Tests getInventory method on various ArcLink nodes. """ client = Client(user='******') dt = UTCDateTime(2010, 1, 1) # 1 - GE network result = client.getInventory('GE', 'APE', starttime=dt, endtime=dt + 1) self.assertTrue('GE' in result) self.assertTrue('GE.APE' in result) # 2 - GE network result = client.getInventory('GE', 'APE', '', 'BHE', starttime=dt, endtime=dt + 1, instruments=True) self.assertTrue('GE' in result) self.assertTrue('GE.APE' in result) self.assertTrue('GE.APE..BHE' in result) # only for instruments=True # 3 - BW network result = client.getInventory('BW', 'RJOB', starttime=dt, endtime=dt + 1) self.assertTrue('BW' in result) self.assertTrue('BW.RJOB' in result) # 4 - BW network result = client.getInventory('BW', 'MANZ', '', 'EHE', starttime=dt, endtime=dt + 1, instruments=True) self.assertTrue('BW' in result) self.assertTrue('BW.MANZ' in result) self.assertTrue('BW.MANZ..EHE' in result) # 5 - unknown network 00 via webdc.eu:18002 self.assertRaises(ArcLinkException, client.getInventory, '00', '', starttime=dt, endtime=dt + 1) # 6 - get channel gain without PAZ start = UTCDateTime("1970-01-01 00:00:00") end = UTCDateTime("2020-10-19 00:00:00") result = client.getInventory('BW', 'MANZ', '', 'EHE', start, end) self.assertTrue('BW' in result) self.assertTrue('BW.MANZ' in result) self.assertTrue('BW.MANZ..EHE' in result) self.assertEquals(len(result['BW.MANZ..EHE']), 1) self.assertTrue('gain' in result['BW.MANZ..EHE'][0]) self.assertTrue('paz' not in result['BW.MANZ..EHE'][0]) # 7 - history of instruments # GE.SNAA sometimes needs a while therefore we use command_delay=0.1 client = Client(user='******', command_delay=0.1) result = client.getInventory('GE', 'SNAA', '', 'BHZ', start, end, instruments=True) self.assertTrue('GE' in result) self.assertTrue('GE.SNAA' in result) self.assertTrue('GE.SNAA..BHZ' in result) self.assertEquals(len(result['GE.SNAA..BHZ']), 4) # sort channel results channel = result['GE.SNAA..BHZ'] channel = sorted(channel, key=operator.itemgetter('starttime')) # check for required attributes self.assertEquals(channel[0].starttime, UTCDateTime("1997-03-03")) self.assertEquals(channel[0].endtime, UTCDateTime("1999-10-11")) self.assertEquals(channel[0].gain, 596224500.0) self.assertEquals(channel[1].starttime, UTCDateTime("1999-10-11")) self.assertEquals(channel[1].endtime, UTCDateTime("2003-01-10")) self.assertEquals(channel[1].gain, 596224500.0) self.assertEquals(channel[2].starttime, UTCDateTime("2003-01-10")) self.assertEquals(channel[2].endtime, UTCDateTime(2011, 1, 15, 9, 56)) self.assertEquals(channel[2].gain, 588000000.0)
def test_getInventory(self): """ Tests getInventory method on various ArcLink nodes. """ client = Client() dt = UTCDateTime(2010, 1, 1) # 1 - GE network result = client.getInventory('GE', 'APE', starttime=dt, endtime=dt + 1) self.assertTrue('GE' in result) self.assertTrue('GE.APE' in result) # 2 - GE network result = client.getInventory('GE', 'APE', '', 'BHE', starttime=dt, endtime=dt + 1, instruments=True) self.assertTrue('GE' in result) self.assertTrue('GE.APE' in result) self.assertTrue('GE.APE..BHE' in result) # only for instruments=True # 3 - BW network result = client.getInventory('BW', 'RJOB', starttime=dt, endtime=dt + 1) self.assertTrue('BW' in result) self.assertTrue('BW.RJOB' in result) # 4 - BW network result = client.getInventory('BW', 'MANZ', '', 'EHE', starttime=dt, endtime=dt + 1, instruments=True) self.assertTrue('BW' in result) self.assertTrue('BW.MANZ' in result) self.assertTrue('BW.MANZ..EHE' in result) # 5 - unknown network 00 via webdc.eu:18002 self.assertRaises(ArcLinkException, client.getInventory, '00', '', starttime=dt, endtime=dt + 1) # 6 - get channel gain without PAZ start = UTCDateTime("1970-01-01 00:00:00") end = UTCDateTime("2020-10-19 00:00:00") result = client.getInventory('BW', 'MANZ', '', 'EHE', start, end) self.assertTrue('BW' in result) self.assertTrue('BW.MANZ' in result) self.assertTrue('BW.MANZ..EHE' in result) self.assertEquals(len(result['BW.MANZ..EHE']), 1) self.assertTrue('gain' in result['BW.MANZ..EHE'][0]) self.assertTrue('paz' not in result['BW.MANZ..EHE'][0]) # 7 - history of instruments # GE.SNAA sometimes needs a while therefore we use command_delay=0.1 client = Client(command_delay=0.1) result = client.getInventory('GE', 'SNAA', '', 'BHZ', start, end, instruments=True) self.assertTrue('GE' in result) self.assertTrue('GE.SNAA' in result) self.assertTrue('GE.SNAA..BHZ' in result) self.assertEquals(len(result['GE.SNAA..BHZ']), 4) # sort channel results channel = result['GE.SNAA..BHZ'] channel = sorted(channel, key=operator.itemgetter('starttime')) # check for required attributes self.assertEquals(channel[0].starttime, UTCDateTime("1997-03-03")) self.assertEquals(channel[0].endtime, UTCDateTime("1999-10-11")) self.assertEquals(channel[0].gain, 596224500.0) self.assertEquals(channel[1].starttime, UTCDateTime("1999-10-11")) self.assertEquals(channel[1].endtime, UTCDateTime("2003-01-10")) self.assertEquals(channel[1].gain, 596224500.0) self.assertEquals(channel[2].starttime, UTCDateTime("2003-01-10")) self.assertEquals(channel[2].endtime, UTCDateTime(2011, 1, 15, 9, 56)) self.assertEquals(channel[2].gain, 588000000.0)
def getArclinkInst_2(station, usermail, pwdkeys): #if station.loc == '--' : loc = '' sta2 = station sta2.lon = -1 sta2.lat = -1 sta2.ele = -1 sta2.gain = -1 sta2.dip = -1 sta2.azi = -1 sta2.inst = 'no_instrument_available' loc = station.loc if loc == '00' or loc == '01' or loc == '10' or loc == '11': # no entry for this loc print 'Use key file' return getFromKeyFile(sta2) loc = '' client = Client(user=usermail, dcid_keys=pwdkeys) try: inv = client.getInventory(station.net, station.sta, loc, station.comp, instruments=True) except: return getFromKeyFile(sta2) #inv = WebDC.getInventory (station, usermail, pwdkeys) # ??? noch einbauen print 'INV: ', inv keys = inv.keys() if len(keys) == 0: print 'No keys' return None if Globals.isDebug: # save inventory file = Server.InventoryFileName(station, '.txt') fp = open(file, 'w') lines = [] for k in keys: lines.append('key = ' + str(k) + '\n') lines.append('inv = ' + str(inv[k]) + '\n') Basic.writeTextFile(file, lines) #endif inv1 = inv[station.net + '.' + station.sta] sta2.lon = inv1['longitude'] sta2.lat = inv1['latitude'] sta2.ele = inv1['elevation'] key = station.net + '.' + station.sta + '.' + loc + '.' + station.comp inv1 = inv[key] z = inv1[0] z1 = z['paz'] if 'gain' in z1: sta2.gain = z1['gain'] if 'name' in z1: inst = z1['name'] sta2.inst = inst.replace(' ', '_') sta3 = sta2 return sta3
# Setting up Vars... net = opts.net sta = opts.sta cha = opts.cha b = UTCDateTime(opts.b) elat = opts.elat elon = opts.elon edep = opts.edep year=b.year jul=b.julday hour=b.hour min=b.minute sec=b.second #Getting Station Latitude and Longitude: stadic = client.getInventory(net,station=sta) slat = stadic.get(net+"."+sta).get("latitude") slon = stadic.get(net+"."+sta).get("longitude") selv = stadic.get(net+"."+sta).get("elevation") #print slat #print slon # Calculate gcarc, baz and az: irisclient = iclient.Client() gcbazaz = irisclient.distaz(stalat=slat, stalon=slon, evtlat=elat, evtlon=elon) gcarc = gcbazaz.get('distance') baz = gcbazaz.get('backazimuth') az = gcbazaz.get('azimuth') #print gcarc #print baz #print az