# -*- coding: utf-8 -*- """ pl_bathy_contour_triangular_grid.py @author: vsheremet """ import numpy as np import matplotlib.pyplot as plt import os from datetime import * import sys from get_fvcom_gom3_grid import get_fvcom_gom3_grid Grid=get_fvcom_gom3_grid('disk2') # FVCOM GOM3 triangular grid #Grid={'x':x,'y':y,'xc':xc,'yc':yc,'lon':lon,'lat':lat,'lonc':lonc,'latc':latc,'coslat':coslat,'coslatc':coslatc,'kvf':nv,'kff':nbe,'kvv':nbsn,'nvv':ntsn,'kfv':nbve,'nfv':ntve} lon=Grid['lon'];lat=Grid['lat'];lonc=Grid['lonc'];latc=Grid['latc'] kvf=Grid['kvf'] # bathymetry h=np.load('gom3.h.npy') hc=100. # plot countour 100m NF=len(lonc) # number of triangles (grid cells) NV=len(lon) # number of vertices (grid nodes) #plt.figure() fc=hc ns=0 xa=np.array(NF);ya=np.array(NF);
T1 = T1.tostring() print T1 #ksiglay=44 # bottom layer ksiglay = 0 # surface layer u = np.array(ds['u'][kt, ksiglay, :]).flatten() # v = np.array(ds['v'][kt, ksiglay, :]).flatten() # return u, v ############################################################################ # FVCOM GOM3 triangular grid ############################################################ from get_fvcom_gom3_grid import get_fvcom_gom3_grid #Grid=get_fvcom_gom3_grid('server') # latest grid info from server Grid = get_fvcom_gom3_grid( 'time') # load from dict and update only time from server Grid = get_fvcom_gom3_grid('dict') # quick load from local dict # same as #Grid=np.load('Grid.npy').item() t0 = datetime(1858, 11, 17) # MJD=JD-2400000.5 id = 118440672 ID = str(id) FN = 'drifters_ID_' + ID + '.csv' DD = np.genfromtxt(FN, delimiter=',', dtype=None, names=['ID', 'T', 'lat', 'lon', 'depth', 'Temp'], skip_header=2) T = DD['T']
ksiglay=44 # bottom layer ksiglay=0 # surface layer D={} D['u']=np.array(ds['u'][kt,ksiglay,kf]) # D['v']=np.array(ds['v'][kt,ksiglay,kf]) # return D ############################################################################ NCPU=1 NCPU=1# number of CPUs to use # FVCOM GOM3 triangular grid ############################################################ from get_fvcom_gom3_grid import get_fvcom_gom3_grid #Grid=get_fvcom_gom3_grid('server') # latest grid info from server Grid=get_fvcom_gom3_grid('time') # load from dict and update only time from server Grid=get_fvcom_gom3_grid('dict') # quick load from local dict # same as #Grid=np.load('Grid.npy').item() t=datetime(1985,7,1,12,0,0) t0=datetime(1858,11,17) # MJD=JD-2400000.5 tsec_MJD=(t-t0).total_seconds() lon=-(68.+9./60);lat=43.+49./60; # midway between two Yarmouths lon=-68.1;lat=43.8 print lon,lat D=get_fvcom_gom3_1(tsec_MJD,lon,lat,Grid)
return url #main date_str = '2020-03-05' #input date to url of models'code to get url date_time = datetime.datetime.strptime(date_str + ' 00:00:00', '%Y-%m-%d %H:%M:%S') url = get_gomofs_url(date_time) url_doppio = get_doppio_url(date_str) nc = netCDF4.Dataset(str(url)) nc_doppio = netCDF4.Dataset(str(url_doppio)) gomofs_lons = nc.variables['lon_rho'][:] gomofs_lats = nc.variables['lat_rho'][:] doppio_lons = nc_doppio.variables['lon_rho'][:] doppio_lats = nc_doppio.variables['lat_rho'][:] fvcom = gfgg.get_fvcom_gom3_grid(a='server') #get the data of fvcom #fvcom = np.load('E:\\Mingchao\\result\\npy\\Grid.npy') fvcom_lons = fvcom['lon'] fvcom_lats = fvcom['lat'] #use this method from Yizhen Li x1 = [ gomofs_lons[0][0], gomofs_lons[0][-1], gomofs_lons[-1][-1], gomofs_lons[-1][0], gomofs_lons[0][0] ] y1 = [ gomofs_lats[0][0], gomofs_lats[0][-1], gomofs_lats[-1][-1], gomofs_lats[-1][0], gomofs_lats[0][0] ] x1_d = [ doppio_lons[0][0], doppio_lons[0][-1], doppio_lons[-1][-1], doppio_lons[-1][0], doppio_lons[0][0]