maxincl = max([max(abs(o['crossincline'].GetAngle('GON')), abs(o['lengthincline'].GetAngle('GON'))) for o in obs_out if 'crossincline' in o]) inf = {'datetime': act_date, 'nref': len(fix_coords), 'nrefobs': len(obs_out)-1, 'maxincl': maxincl, 'std_east': st_coord[0]['std_east'], 'std_north': st_coord[0]['std_north'], 'std_elev': st_coord[0]['std_elev'], 'std_ori': st_coord[0]['std_ori']} if wrt2.WriteData(inf) == -1: logging.error('Station inf write failed') if 'ori' in st_coord[0]: # rotate to Hz 0 ts.Move(Angle(0.0), Angle(90, 'DEG'), 0) # set direction to orientation angle ans = ts.SetOri(Angle(st_coord[0]['ori'], 'GON')) #print(Angle(st_coord[0]['ori'], 'GON').GetAngle('DMS')) if 'errCode' in ans: logging.fatal("Cannot upload orientation to instrument") sys.exit(-1) else: # update orientation using farest FIX max_dist = 0 back_site = None i = 0 for o in obs_out: if 'distance' in o and o['distance'] > max_dist: max_dist = o['distance'] back_site = o['id'] back_indx = i i += 1
i = 0 for o in obs_out: if 'distance' in o and o['distance'] > max_dist: max_dist = o['distance'] back_site = o['id'] back_indx = i i += 1 if back_site is None: logging.fatal("Backsite trouble") sys.exit(1) ori_p = [p for p in fix_coords if p['id'] == back_site][0] bearing = Angle(math.atan2(ori_p['east'] - st_coord[0]['east'], \ ori_p['north'] - st_coord[0]['north'])) # rotate to farest FIX and set orientation ts.Move(obs_out[back_indx]['hz'], obs_out[back_indx]['v'], 1) ans = ts.SetOri(bearing) if 'errCode' in ans: logging.fatal("Cannot upload orientation to instrument") sys.exit(-1) if 'mon_list' in cr.json and cr.json['mon_list'] is not None: # generate observations for monitoring points, first point is the station print "Generating observations for mon..." og = ObsGen(st_coord + mon_coords, cr.json['station_id'], \ cr.json['station_height'], cr.json['faces']) observations = og.run() # observation to monitoring points print "Measuring mon..." act_date = datetime.datetime.now() # start of observations r = Robot(observations, st_coord, ts) obs_out, coo_out = r.run() # calculate average for observations