Пример #1
0
    'Lat': [np.NaN],
    'Lon': [np.NaN],
    'O2Inv': [np.NaN],
    'O2EqInv': [np.NaN]
})
tic1 = time.time()
for i in np.arange(len(ArgoWMO)):
    #for i in [16]:
    tic2 = time.time()

    dac = FileNames[i].split('/')[0]
    WMO = ArgoWMO[i]

    print('\n%%% ', WMO, ' %%%\n')
    print(i, ' Floats completed; ', len(ArgoWMO) - i, ' Floats Left')
    f = RF.ArgoDataLoader(DAC=dac, WMO=WMO)

    # Make sure float measures oxygen
    float_vars = list(f.keys())
    float_vars = np.array(float_vars)
    oxy_check = np.where(float_vars == 'DOXY')

    flux_profcount = 0

    if oxy_check[0].size != 0:

        # Load float data and determine if use adjusted or not adjusted data
        [pres, pres_QC,
         pres_flag] = RF.DetermineAdjusted(raw_data=f.PRES.values,
                                           raw_data_QC=f.PRES_QC.values,
                                           a_data=f.PRES_ADJUSTED.values,
Пример #2
0
import numpy as np
import pandas as pd
import gsw
import RandomFxns as RF
import BCClassFxns as BCF
import time
import cmocean.cm as cmo
import glob
import cartopy as ct
from cartopy.mpl.ticker import (LongitudeFormatter, LatitudeFormatter)
import matplotlib.gridspec as gridspec
import scipy.integrate as integrate

OFiles = glob.glob(
    '/Users/Ellen/Documents/GitHub/BGCArgo_BCGyre/CSVFiles/OverlapFiles_BC/*')
WMODacDict = RF.WMODacPair()

#iso = [27.70, 27.75, 27.80,27.85]
iso = [27.70, 27.725, 27.75, 27.775]
# Interpolate to same space and time steps

# Calculate MLD at each point

good_QC = [1, 2, 5, 8]

lat_N = 70.000
lat_S = 48.00
lon_E = -45.00
lon_W = -70.00

figx = 10
Пример #3
0
CheckFloats = pd.DataFrame({'FloatType': BC_List, 'FloatDir': BC_CheckList})
CheckFloats = CheckFloats.append(
    pd.DataFrame({
        'FloatType': Gyre_List,
        'FloatDir': Gyre_CheckList
    }))

df_count = 0
## Load Float data
for i in np.arange(CheckFloats.shape[0]):
    fline = CheckFloats.iloc[i, 1]
    dac = fline.split('/')[0]
    wmo = fline.split('/')[1]

    data = RF.ArgoDataLoader(DAC=dac, WMO=wmo)

    lat = data.LATITUDE.values
    lon = data.LONGITUDE.values

    dates = data.JULD.values
    date_reform = [[]] * dates.shape[0]
    bad_index = []
    for j in np.arange(len(date_reform)):
        if np.isnat(dates[j]) == False:
            date_reform[j] = datetime.fromisoformat(str(dates[j])[:-3])
        else:
            date_reform[j] = dates[j]
            bad_index = bad_index + [j]

    if len(bad_index) > 0:
Пример #4
0
 MeanData=AllData.groupby(by='Date').mean()
 StdData=AllData.groupby(by='Date').std()
 
 date_list=MeanData.index.values.tolist()
 FirstDate=date_list[0]
 LastDate=date_list[-1]
 
 # Get full range of dates in between first and last profile date
 AllDates_df=pd.date_range(str(FirstDate),str(LastDate),freq='6H')
 AllDates=[[]]*len(AllDates_df)
 for i in np.arange(len(AllDates)):
     AllDates[i]=str(AllDates_df[i])
 AllDates=np.array(AllDates)
 
 # Go through dates and match data to correct time period
 MeanData = RF.MatchData2Dates(alldates=AllDates, dates=date_list, Data=MeanData)
 
 #     ## N16 ##
 # Ft_N16=np.zeros(len(AllDates_df))
 # Ft_N16[:]=np.NaN
 # Fd_N16=np.zeros(len(AllDates_df))
 # Fd_N16[:]=np.NaN
 # Fp_N16=np.zeros(len(AllDates_df))
 # Fp_N16[:]=np.NaN
 # Fc_N16=np.zeros(len(AllDates_df))
 # Fc_N16[:]=np.NaN
 
 # ## L13 ##
 # Ft_L13=np.zeros(len(AllDates_df))
 # Ft_L13[:]=np.NaN
 # Fd_L13=np.zeros(len(AllDates_df))
Пример #5
0
pres_range=np.arange(0,2001,step_size)

refdate=datetime(1990,1,1)

TSOsat=pd.DataFrame({'WMO': [np.NaN],'Date':[np.NaN],'Lat':[np.NaN],'Lon': [np.NaN],'Pres':[np.NaN],'Temp':[np.NaN],'Sal':[np.NaN],'Oxy':[np.NaN],'OxySat':[np.NaN],'Sigma0':[np.NaN]})
tic1=time.time()
for i in np.arange(len(ArgoWMO)):
#for i in [43]:
    tic2=time.time()
    
    dac=FileNames[i].split('/')[0]
    WMO=ArgoWMO[i]
    
    print('\n%%% ',WMO,' %%%\n')
    print(i, ' Floats completed; ', len(ArgoWMO)-i,' Floats Left')
    f = RF.ArgoDataLoader(DAC=dac, WMO=WMO)
    
    # Make sure float measures oxygen
    float_vars=list(f.keys())
    float_vars=np.array(float_vars)
    oxy_check = np.where(float_vars=='DOXY')
    
    flux_profcount=0
    
    if oxy_check[0].size != 0:

        # Load float data and determine if use adjusted or not adjusted data
        [pres, pres_QC, pres_flag]=RF.DetermineAdjusted(raw_data=f.PRES.values,raw_data_QC=f.PRES_QC.values,a_data=f.PRES_ADJUSTED.values, a_data_QC=f.PRES_ADJUSTED_QC.values)
        [temp, temp_QC, temp_flag]=RF.DetermineAdjusted(raw_data=f.TEMP.values, raw_data_QC= f.TEMP_QC.values,a_data=f.TEMP_ADJUSTED.values, a_data_QC=f.TEMP_ADJUSTED_QC.values)
        [sal, sal_QC, sal_flag]=RF.DetermineAdjusted(raw_data=f.PSAL.values, raw_data_QC=f.PSAL_QC.values,a_data=f.PSAL_ADJUSTED.values,a_data_QC=f.PSAL_ADJUSTED_QC.values)
        [doxy, doxy_QC, doxy_flag]=RF.DetermineAdjusted(raw_data=f.DOXY.values, raw_data_QC=f.DOXY_QC.values,a_data=f.DOXY_ADJUSTED.values,a_data_QC=f.DOXY_ADJUSTED_QC.values)
    'Fp_N16': [np.NaN],
    'Fc_N16': [np.NaN],
    'Fd_N16': [np.NaN],
    'Ft_N16': [np.NaN]
})

for i in np.arange(len(ArgoWMO)):
    #for i in [124]:
    tic2 = time.time()

    dac = ArgoDac[i]
    WMO = ArgoWMO[i]

    print('\n%%% ', WMO, ' %%%\n')
    print(i, ' Floats completed; ', len(ArgoWMO) - i, ' Floats Left')
    f = RF.ArgoDataLoader(DAC=dac, WMO=WMO)

    # Make sure float measures oxygen
    float_vars = list(f.keys())
    float_vars = np.array(float_vars)
    oxy_check = np.where(float_vars == 'DOXY')

    flux_profcount = 0

    if oxy_check[0].size != 0:

        # Load float data and determine if use adjusted or not adjusted data
        [pres, pres_QC,
         pres_flag] = RF.DetermineAdjusted(raw_data=f.PRES.values,
                                           raw_data_QC=f.PRES_QC.values,
                                           a_data=f.PRES_ADJUSTED.values,
Пример #7
0
else:
    MaxDate = AllDates_BC[-1]

dates_total_df = pd.date_range(str(MinDate), str(MaxDate), freq='6H')
dates_total = [[]] * len(dates_total_df)
for i in np.arange(len(dates_total_df)):
    dates_total[i] = str(dates_total_df[i])
dates_total = np.array(dates_total)

######### BC #########
#L13_reform,L13_24hr_reform,L13_1wk_reform,N16_reform,N16_24hr_reform,N16_1wk_reform
#  #[L13_reform=BC_L13, L13_24hr_reform=BC_L13_24hr, L13_1wk_reform=BC_L13_1wk, N16_reform=BC_N16, N16_24hr_reform=BC_N16_24hr, N16_1wk_reform=BC_N16_1wk]
# [BC_L13, BC_L13_24hr, BC_L13_1wk, BC_N16, BC_N16_24hr, BC_N16_1wk]=RF.MatchData2Dates(alldates=dates_total, dates=date_list_BC, L13=Ft_L13_BC, L13_24hr=Ft_L13_24hr_BC, L13_1wk=Ft_L13_1wk_BC,
#                                                                                      N16=Ft_N16_BC, N16_24hr=Ft_N16_24hr_BC , N16_1wk=Ft_N16_1wk_BC)
BC_Data_ref = RF.MatchData2Dates(alldates=dates_total,
                                 dates=date_list_BC,
                                 Data=Mean_BCData)

######### LSG #########
# [LSG_L13, LSG_L13_24hr, LSG_L13_1wk, LSG_N16, LSG_N16_24hr, LSG_N16_1wk]=RF.MatchData2Dates(alldates=dates_total, dates=date_list_G, L13=Ft_L13_G, L13_24hr=Ft_L13_24hr_G, L13_1wk=Ft_L13_1wk_G,
#                                                                                       N16=Ft_N16_G, N16_24hr=Ft_N16_24hr_G , N16_1wk=Ft_N16_1wk_G)
LSG_Data_ref = RF.MatchData2Dates(alldates=dates_total,
                                  dates=date_list_G,
                                  Data=Mean_GData)

BC_L13 = BC_Data_ref.loc[:, 'Ft_L13']
BC_N16 = BC_Data_ref.loc[:, 'Ft_N16']
LSG_L13 = LSG_Data_ref.loc[:, 'Ft_L13']
LSG_N16 = LSG_Data_ref.loc[:, 'Ft_N16']

## Moving Averages ##
Пример #8
0
    34.91199875, 34.9109993, 34.90800095, 34.90800095, 34.9090004, 34.90999985,
    34.9109993, 34.9109993, 34.91199875, 34.9129982, 34.9129982, 34.9109993,
    34.90999985, 34.91199875, 34.9129982, 34.91500092, 34.91500092, np.NaN
])
T = np.array([
    np.NaN, np.NaN, np.NaN, 9.77000046, 9.52799988, 9.47500038, 9.45800018,
    9.44299984, 9.43599987, 9.42500019, 9.42000008, 9.40100002, 8.53299999,
    6.71400023, 5.80999994, 5.20699978, 5.01599979, 4.81699991, 4.79500008,
    4.66699982, 4.59499979, 4.6420002, 4.72300005, 4.70100021, 4.66200018,
    4.66499996, 4.70100021, 4.72900009, 4.73199987, 4.76399994, 4.75500011,
    4.72200012, 4.65199995, 4.55600023, 4.4920001, 4.45200014, 4.35599995,
    4.30800009, 4.2750001, 4.24900007, 4.22100019, 4.20200014, 4.1880002,
    4.18100023, 4.16499996, 4.16300011, 4.13999987, 4.12599993, 4.13600016,
    4.12799978, 4.11899996, 4.11399984, 4.1079998, 4.10200024, 4.09200001,
    4.079, 4.07499981, 4.05999994, 4.05499983, 4.05499983, 4.03100014,
    4.01900005, 4.02699995, 4.04099989, 4.03900003, 4.0250001, 3.9849999,
    3.9519999, 3.87899995, 3.86100006, 3.82399988, 3.80100012, 3.76399994,
    3.73699999, 3.704, 3.69799995, 3.6730001, 3.65199995, 3.64400005, 3.648,
    3.6400001, 3.62599993, 3.63000011, 3.63599992, 3.64100003, 3.63100004,
    3.63400006, 3.6400001, 3.64400005, 3.65199995, 3.65899992, 3.67400002,
    3.671, 3.65799999, 3.65100002, 3.6500001, 3.63700008, 3.625, 3.60899997,
    3.58299994, 3.58800006, 3.55299997, 3.54099989, 3.50200009, 3.48699999,
    3.45600009, 3.42799997, 3.41400003, 3.39499998, 3.38000011, 3.37299991,
    3.36100006, 3.35299993, 3.33699989, 3.31200004, 3.29200006, 3.27900004,
    3.26200008, 3.25699997, 3.24699998, np.NaN
])
LT = 58.886
LN = -40.20999999999998

mld = RF.MLD(Pres=P, Temp=T, Sal=S, Lat=LT, Lon=LN)
print('MLD: ', mld)
Пример #9
0
prof_count=0
for b in np.arange(len(floatlist)):
### For debugging and looking at specific floats ###
#for b in [10]:
    WMO=floatlist[b]
    dac=daclist[b]
    
    bad_index=[]
    #WMO=4900610
    #dac='coriolis'
    
    tic_float=time.time()
    print('\n%%% '+str(WMO)+' %%%\n')
    print(b, ' Floats completed; ', len(floatlist)-b,' Floats Left')
    #BGCfile='/Users/Ellen/Desktop/ArgoGDAC/dac/'+dac+'/'+str(WMO)+'/'+str(WMO)+'_Sprof.nc'
    f = RF.ArgoDataLoader(DAC=dac, WMO=WMO)
    
    float_vars=list(f.keys())
    float_vars=np.array(float_vars)
    
    oxy_check = np.where(float_vars=='DOXY')
    
    if oxy_check[0].size != 0:
        reft=f.REFERENCE_DATE_TIME.values
        dates=f.JULD.values
        
        date_reform=[[]]*dates.shape[0]
        for i in np.arange(len(date_reform)):
            if np.isnat(dates[i]) == False:
                date_reform[i]=datetime.fromisoformat(str(dates[i])[:-3])
            else:
Пример #10
0
@author: Ellen
"""

import xarray as xr
import matplotlib.pyplot as plt
import RandomFxns as RF
import numpy as np
from datetime import datetime
import time
import gsw
import RandomFxns2 as RF2

dac = 'meds'

dictfloat = RF.WMODacPair()

WMO = 4902384  #4900879
dac = dictfloat[WMO]
# 4900494

# f = RF.ArgoDataLoader(DAC=dac, WMO=WMO)

# plt.figure()
# f.plot.scatter(x='JULD',y='PRES_ADJUSTED',hue='DOXY_ADJUSTED')
# plt.xticks(rotation=45)
# plt.gca().invert_yaxis()
# plt.show()

##
# Random parameters you can change