Esempio n. 1
0
def getemolt_latlon(site):
    """
    get data from emolt_site
    """
    urllatlon = 'http://gisweb.wh.whoi.edu:8080/dods/whoi/emolt_site?emolt_site.SITE,emolt_site.LAT_DDMM,emolt_site.LON_DDMM,emolt_site.ORIGINAL_NAME,emolt_site.BTM_DEPTH&emolt_site.SITE='
    dataset = open_url(urllatlon+'"'+site+'"')
    print dataset
    var = dataset['emolt_site']
    lat = list(var.LAT_DDMM)
    lon = list(var.LON_DDMM)
    original_name = list(var.ORIGINAL_NAME)
    bd=fth2m(list(var.BTM_DEPTH)[0])
    #bd=fth2m(bd[0])
    return lat[0], lon[0], original_name,bd
Esempio n. 2
0
# -*- coding: utf-8 -*-
"""
Created on Fri Apr  2 14:20:23 2021
Preparing the output of "emolt_pd_cfrf_2.py"  for ORACLE load
where we input several files "vessel_id_sn.csv" and convert fths to meters
@author: James.manning
"""
import pandas as pd
from conversions import fth2m
files=['vessel_1_355644','vessel_2_355635','vessel_3_355265','vessel_3_358481','vessel_4_355637','vessel_4_355803','vessel_7_355642',\
       'vessel_8_355645','vessel_9_355265','vessel_9_355641','vessel_9_356526','vessel_10_354872','vessel_10_354875','vessel_10_355632',\
       'vessel_11_355634','vessel_11_356045','vessel_12_355633','vessel_13_355266','vessel_13_355636','vessel_13_356526',\
       'vessel_14_358482','vessel_15_355266','vessel_15_355639','vessel_15_355801','vessel_16_356524','vessel_17_355802',\
       'vessel_20_356527','vessel_22_355635','vessel_24_358483','vessel_27_358477','vessel_30_358479']

df=pd.read_csv('finals/csvs/'+files[0]+'.csv')
print('reading output of emolt_pd_cfrf_2.py')
for kk in files[1:]:
    df1=pd.read_csv('finals/csvs/'+kk+'.csv')
    df=pd.concat([df,df1])

df['depth']=fth2m(df['depth'])# converts to meters

df.to_csv('CFRF_temps_2014_2021')

Esempio n. 3
0
#depmean=[48,11,44,16,30,26,6,11]
#sites=['OD08','BI03','TH01','RA01','BF01','OM01','BT01','AC02']

depmean = [20]
sites = ['BN01']

sitelabel = "".join(sites)
#leg=['Sprague Downeast','Alley Mid-Coast','Brown Mass Bay']
#leg=['Carter','Gamage','Tripp']
leg = ['']
####################################

depmin, depmax = [], [
]  # this defines a range of acceptable depths for this site
for k in range(len(depmean)):
    depmin.append(int(fth2m(depmean[k]) - 0.10 * fth2m(depmean[k])))  #meters
    depmax.append(int(fth2m(depmean[k]) + 0.10 * fth2m(depmean[k])))  #meters
    if depmin[k] == depmax[k]:
        depmin[k] = depmin[k] - 2
        depmax[k] = depmax[k] + 2
print depmin, depmax


def getemolt_by_site_depth(site, depthw):
    """
    Function written by Jim Manning
    borrowed from Huanxin's functions in "getemolt" package
    site: is the 4-digit string like "BD01"
    depth: includes bottom depth and surface depth,like: [80,0].
    Modified Feb 2020 to accept eMOLT.csv file as extracted earlier when ERDDAP is down.
    """
Esempio n. 4
0
from matplotlib.dates import DateFormatter
from numpy import mean
import datetime as dt
import scipy
from getdata import get_dataset, getemolt_temp
from pandas.core.common import save

for k in range(len(site)):
    if site[k][0:3]=='DMF':
        minnumperday=10 # had to use this in DMF case since they only record every two hours
        numperday=12
    else:
        minnumperday=18
        numperday=24
    [datet,temp,depth_i]=getemolt_temp(site,k,input_time=[dt.datetime(1880,1,1),dt.datetime(2020,1,1)], dep=[0,1000])
    depth=int(fth2m(mean(depth_i)))# mean depth of instrument to be added to outputfilename
    for m in range(len(temp)):
           temp[m]=(temp[m]-32.0)/1.8
    tso=Series(temp,index=datet)
    tsod=tso.resample('D',how=['count','mean','median','min','max','std'],loffset=timedelta(hours=-12))
    tsod.ix[tsod['count']<minnumperday,['mean','median','min','max','std']] = 'NaN'
    #add columns for custom date format
    tsod['yy']=tsod.index.year
    tsod['mm']=tsod.index.month
    tsod['dd']=tsod.index.day
    output_fmt=['yy','mm','dd','count','mean','median','min','max','std']
    tsodp=tsod.reindex(columns=output_fmt)  
    tsodp.to_csv(outdir+site[k]+'_wtmp_da_'+str(depth)+'.csv',index=False,header=False,na_rep='NaN',float_format='%10.2f')

    #create a monthly mean
    tsom=tso.resample('m',how=['count','mean','median','min','max','std'],kind='period')
            ax1[0].set_ylabel('degC')
            ax4.set_ylabel('degF')
            if len(
                    idchange_time
            ) > 0:  # here's where we force the line to not draw between sessions
                dfds1['depth'][pm1] = np.nan
                dfds1['depth'][p0] = np.nan
                dfds1['depth'][p1] = np.nan
                dfds1['depth'][p2] = np.nan
            ax1[1].plot(dfds1.index.values, -1 * dfds1.depth.values)
            ax1[1].set_ylabel('Depth (fathoms)')
            ax1[1].set_xlabel('Date')
            ax5 = ax1[1].twinx()
            ax5.set_ylabel('meters')
            ax5.set_ylim(-1 * fth2m(maxd), -1 * fth2m(mind))
            fig.autofmt_xdate()
            plt.show()
            thismanager = plt.get_current_fig_manager()
            thismanager.window.setGeometry(900, 400, 1000, 600)
            try:
                ok = float(
                    input(
                        'ok? 1 = ok, .5 for more agressive, 2 less, 4 for range, 6 three pts, & 7 exit '
                    ))
            except:
                ok = 0
            if ok < 0:
                mingood = input('minimum good temp?:')
                dfds1 = dfds1[dfds1['temp'] > mingood]
                ok = 0