Beispiel #1
0
# -*- 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']
Beispiel #3
0
    
    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)
Beispiel #4
0
    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]