ts = [] for i in range(len(times)): ts.append(calendar.timegm(times[i].timetuple())) ctd_data = ah.split_csv_profiles( press, [longitude, latitude, temperature, salinity, ts]) #tehdän se perus aikajana timesx = ctd_data[:, 0, 5] times = [] for i in range(len(timesx)): times.append(dt.datetime.utcfromtimestamp(timesx[i])) # d=np.ma.masked_where(d==invalid_val,d) #create mask, for values close to main point: distance_mask = [False] * len(times_s) for i in range(len(times_s)): if (target_rad > ah.distance((target_lat, target_lon), (latitude[i], longitude[i]))): distance_mask[i] = True #Ja perus paikkajanatkin pressure = ctd_data[:, :, 0] latitude = ctd_data[:, 0, 2] longitude = ctd_data[:, 0, 1] temperature = ctd_data[:, :, 3] salinity = ctd_data[:, :, 4] if (draw_images): for i in range(ctd_data.shape[0]): plt.plot(temperature[i, :] + 0.5 * i, pressure[i, :]) else: print("wrong fieltype,", filetype, " aborting!") filetype = 'exitnow' if (filetype != 'exitnow'):
for i in range(len(times_s)): times.append(dt.datetime.strptime(times_s[i],'%Y-%m-%dT%H:%M')) ts=[] for i in range(len(times)): ts.append(calendar.timegm(times[i].timetuple())) ctd_data=ah.split_csv_profiles(press,[longitude,latitude,temperature,salinity,ts,oxygen]) #tehdän se perus aikajana timesx=ctd_data[:,0,5] times=[] for i in range(len(timesx)): times.append(dt.datetime.utcfromtimestamp(timesx[i])) # d=np.ma.masked_where(d==invalid_val,d) #create mask, for values close to main point: distance_mask=[False]*len(times_s) for i in range(len(times_s)): if(target_rad>ah.distance((target_lat,target_lon),(latitude[i],longitude[i]))): distance_mask[i]=True #Ja perus paikkajanatkin pressure=ctd_data[:,:,0] latitude=ctd_data[:,0,2] longitude=ctd_data[:,0,1] temperature=ctd_data[:,:,3] salinity=ctd_data[:,:,4] oxygen=ctd_data[:,:,6] else: print "wrong fieltype,",filetype," aborting!" filetype='exitnow' if(filetype!='exitnow'): #
files=[] for f in all_files: if(re.match(".*log",f) is not None): files.append(f) for i in range(len(files)-1): alku="".join(open(datadirectory+files[i],'r').readlines()) loppu="".join(open(datadirectory+files[i+1],'r').readlines()) try: t1=dt.datetime.strptime(re.search("\d\d/../.... ......",alku).group(0),"%m/%d/%Y %H%M%S") t2=dt.datetime.strptime(re.search("\d\d/../.... ......",loppu).group(0),"%m/%d/%Y %H%M%S") lat1=float(re.search("Fix:[\s]*(-*\d*\.\d*)\s*(-*\d*\.\d*)",alku).group(2)) lon1=float(re.search("Fix:[\s]*(-*\d*\.\d*)\s*(-*\d*\.\d*)",alku).group(1)) aika=(t2-t1).total_seconds() lat2=float(re.search("Fix:[\s]*(-*\d*\.\d*)\s*(-*\d*\.\d*)",loppu).group(2)) lon2=float(re.search("Fix:[\s]*(-*\d*\.\d*)\s*(-*\d*\.\d*)",loppu).group(1)) dist=ah.distance((lat1,lon1),(lat2,lon2)) # print aika/60., 'min' # print '{:.2f} km'.format(dist) # print '{:.2} m/s'.format(1000.*dist/aika) print("Move: {:04.2f} km in \t{:02.2f} min.\tSpeed {:02.2f} cm/s\t({},{}) to ({},{}) ".format( dist, aika/60, 100000.*dist/aika, lat1,lon1,lat2,lon2 )) # print lat1,lon1,lat2,lon2 if(plotting): x,y=bmap([lon1,lon2],[lat1,lat2]) bmap.plot(x,y,'-*r') except AttributeError: print("broken file")
times.append(dt.datetime.strptime(times_s[i], '%Y-%m-%dT%H:%M')) ts = [] for i in range(len(times)): ts.append(calendar.timegm(times[i].timetuple())) ctd_data = ah.split_csv_profiles( press, [longitude, latitude, temperature, salinity, ts, oxygen]) #tehdän se perus aikajana timesx = ctd_data[:, 0, 5] times = [] for i in range(len(timesx)): times.append(dt.datetime.utcfromtimestamp(timesx[i])) # d=np.ma.masked_where(d==invalid_val,d) #create mask, for values close to main point: distance_mask = [False] * len(times_s) for i in range(len(times_s)): if (target_rad > ah.distance((target_lat, target_lon), (latitude[i], longitude[i]))): distance_mask[i] = True #Ja perus paikkajanatkin pressure = ctd_data[:, :, 0] latitude = ctd_data[:, 0, 2] longitude = ctd_data[:, 0, 1] temperature = ctd_data[:, :, 3] salinity = ctd_data[:, :, 4] oxygen = ctd_data[:, :, 6] else: print "wrong fieltype,", filetype, " aborting!" filetype = 'exitnow' if (filetype != 'exitnow'): # #
# distance_mask[i]=True #Ja perus paikkajanatkin pressure = ctd_data[:, :, 0] latitude = ctd_data[:, 0, 2] longitude = ctd_data[:, 0, 1] temperature = ctd_data[:, :, 3] salinity = ctd_data[:, :, 4] oxygen = ctd_data[:, :, 6] print "CTD's masked, time T+{}".format(time.time() - last_time) last_time = time.time() #create mask, for values close to main point: distance_mask = [False] * len(times) for i in range(len(times)): if (target_rad > ah.distance((target_lat, target_lon), (latitude[i], longitude[i]))): distance_mask[i] = True files = ah.file_names_converted timesteps = [] last_accepted = True a_time_all = [] a_distance_mask_all = [] for file_n in files: fmk = netcdf.netcdf_file(file_n, 'r') temp = fmk.variables['TEMP_ADJUSTED'][:].copy() salt = fmk.variables['PSAL_ADJUSTED'][:].copy() press = fmk.variables['PRES_ADJUSTED'][:].copy() oxyg = fmk.variables['DOXY'][:].copy() scat = fmk.variables['SCATTERING'][:].copy() apetime = np.array(