Exemple #1
0
import numpy as np
import matplotlib.pyplot as plt
from netCDF4 import Dataset as dat
from mpl_toolkits.basemap import Basemap

file = dat('ocean_BRSE_avg_clim_nud_kate_gls_sem_spline_0001.nc')

time = file['ocean_time'][::]

temp = file['temp'][::]

lat = file['lat_rho'][::]

lon = file['lon_rho'][::]

pathfig = '/home/fernando/roms/src/Projects/Azul/figs/'

for i in range(len(time)):
    fig, ax1 = plt.subplots()
    a = ax1.pcolor(temp[i, 0, :, :], vmin=temp.min(), vmax=temp.max())
    cbar = fig.colorbar(a, shrink=0.9, extend='both')
    plt.savefig(pathfig + str(i) + 'fundo.png')

############################################   2d maps
v = file['v_northward'][:]
u = file['u_eastward'][:]

tim = 5

lay = 0
Exemple #2
0
# grid sub-sample
xrange = srcgrd.xrange
yrange = srcgrd.yrange

# -------------------------------------------------------------------------
# preparation for nodal correction
if nodal_corr == 1:
    d0 = datetime(2016, 01, 01, 00, 00, 00)
    # jd = [datetime(2000, 07, 01, 00, 00, 00), datetime(2001, 07, 01, 00, 00, 00)]
    jd = [datetime(2016, 01, 06, 00, 00, 00)]
    d = np.array([
        (jd[i] - d0).total_seconds() / timedelta(days=1).total_seconds()
        for i in range(len(jd))
    ])
    # ltype = 'nodal'
    fh = dat('tide_consts.nc', 'r')
    name = fh.variables['const_name'][:]
    fh.close()
    ju = 6
    lat_cor = 58

    # idx = np.zeros(consts_num)*np.NaN
    idx = list()
    for i in range(consts_num):
        idx.append(np.where(np.all(name == tide_name[i], axis=1))[0][0])

    V, U, F = t_vuf(d, idx, lat_cor)
    V = V * 360  # convert phase to degree
    U = U * 360  # convert phase to degree

# initiate variables
Exemple #3
0
import numpy as np
from netCDF4 import Dataset as dat
import pyproj

from pyproj import Proj

myProj = Proj("+proj=utm +zone=24U, +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs")


tgtbase='saida'
ufile='download_u_10.nc'
vfile='download_v_10.nc'

unet=dat(ufile)

vnet=dat(vfile)

intervalu = int( np.diff(unet['time'][::])[0] )

intervalv = int( np.diff(vnet['time'][::])[0] )


u=np.squeeze(unet['u10'][::])

v=np.squeeze(vnet['v10'][::])

uwnd = tgtbase+'_era_5'+'.amu'

vwnd = tgtbase+'_era_5'+'.amv'

lonu = unet['longitude'][::]
Exemple #4
0
import matplotlib.pyplot as plt
import numpy as np
from netCDF4 import Dataset as dat
from vgrid import s_coordinate, s_coordinate_2, s_coordinate_4
from matplotlib.pylab import *



file=dat('20200421.5D0_NEST_1_bry.nc')
#file1=dat('prooceano_myocean_mais_pontos_12134_bry.nc')

temp=file['v_south'][::]

#temp1=file1['v_north'][::]

#plt.pcolor(temp[0,:,:]);plt.colorbar();plt.show()

#plt.pcolor(temp1[7,:,:]);plt.colorbar();plt.show()


theta_b = 0.4
theta_s = 5.0
tcline = 100.
klevels = 40
Vtransform = 2
Vstretching = 4
fname_grd='azul_son_case1_newBAT_2_Mcu.nc'
grd = dat(fname_grd)
x_roms = grd.variables['lon_rho'][:]
y_roms = grd.variables['lat_rho'][:]
msk_roms = grd.variables['mask_rho'][:]
import numpy as np
from forclass import ncgene
import matplotlib.dates as dates
import matplotlib.pyplot as plt

UWINDfile = 'GFS_F_UWIND_20200415.nc'
VWINDfile = 'GFS_F_VWIND_20200415.nc'
RAINfile = 'GFS_F_RAIN_20200415.nc'
DLWRADfile = 'GFS_F_DLWRAD_20200415.nc'
TAIRfile = 'GFS_F_TAIR_20200415.nc'
PAIRfile = 'GFS_F_PAIR_20200415.nc'
DSWRADfile = 'GFS_F_DSWRAD_20200415.nc'
USWRADfile = 'GFS_F_USWRAD_20200415.nc'
QAIRfile = 'GFS_F_QAIR_20200415.nc'

fnin = dat(input_path + UWINDfile)  #name of U wind file
uwindf = np.squeeze(fnin["ugrd10m"][::])
uwindf = np.transpose(uwindf, (2, 1, 0))

fninv = dat(input_path + VWINDfile)  #name of V wind file
vwindf = np.squeeze(fninv["vgrd10m"][::])
vwindf = np.transpose(vwindf, (2, 1, 0))

fninr = dat(input_path +
            RAINfile)  #name of mean pf precipitation rate at surface
rainf = np.squeeze(fninr['pratesfc'][::])
rainf = np.transpose(rainf, (2, 1, 0))
rainf[np.where(np.abs(rainf) < 1.e-7)] = 0

fnindl = dat(input_path + DLWRADfile)  #downward long radiation flux
dlwrf = np.squeeze(fnindl["dlwrfsfc"][::])
Exemple #6
0
##delft 2 oil
import numpy as np
from netCDF4 import Dataset as dat
from scipy.interpolate import griddata, interp1d
import matplotlib.pyplot as plt
import datetime
import pandas as pd
import matplotlib.dates as dates

fileu = 'download_u_10.nc'

filev = 'download_v_10.nc'

uwind = dat(fileu)

vwind = dat(filev)

time = uwind['time'][::]

lon = uwind['longitude'][::]

lat = uwind['latitude'][::]

long, latg = np.meshgrid(lon, lat)

u10a = uwind['u10'][::]

v10a = vwind['v10'][::]

timeinioil = '2018-08-01 00:00:00'
Exemple #7
0
import numpy as np
from netCDF4 import Dataset as dat
from scipy.interpolate import griddata, interp1d
import matplotlib.pyplot as plt
import datetime
import pandas as pd
import matplotlib.dates as dates

file = dat('golfo_2019/phys-sat_global_20190129.nc')

lat = file['latitude'][::]

lon = file['longitude'][::]

[lon, lat] = np.meshgrid(lon, lat)

u = np.ma.filled(file['uo'][::], fill_value=0)

v = np.ma.filled(file['vo'][::], fill_value=0)

sp = 5

plt.quiver(lon[0:-1:sp, 0:-1:sp], lat[0:-1:sp, 0:-1:sp],
           u[0, 30, 0:-1:sp, 0:-1:sp], v[0, 30, 0:-1:sp, 0:-1:sp])
plt.show()
Exemple #8
0
from parameters import *
from datetime import date
from netCDF4 import Dataset as dat
import numpy as np
from forclass import ncgene
import matplotlib.dates as dates
import matplotlib.pyplot as plt

fnin = dat(input_path + 'u_2013.nc')  #name of U wind file
uwindf = np.squeeze(fnin["uwnd"][::])
uwindf = np.transpose(uwindf, (2, 1, 0))

fninv = dat(input_path + 'v_2013.nc')  #name of V wind file
vwindf = np.squeeze(fninv["vwnd"][::])
vwindf = np.transpose(vwindf, (2, 1, 0))

fninr = dat(input_path +
            'rain_2013.nc')  #name of mean pf precipitation rate at surface
rainf = np.squeeze(fninr['prate'][::])
rainf = np.transpose(rainf, (2, 1, 0))
rainf[np.where(np.abs(rainf) < 1.e-7)] = 0

fnindl = dat(input_path + 'dlrf_2013.nc')  #downward long radiation flux
dlwrf = np.squeeze(fnindl["dlwrf"][::])
dlwrf = np.transpose(dlwrf, (2, 1, 0))

fninst = dat(input_path + 'temp_2013.nc')  #surface air temperature
air = np.squeeze(fninst["air"][::])
air = np.transpose(air, (2, 1, 0))
air = air - 273.15
#K to  C
Exemple #9
0
import numpy as np
from netCDF4 import Dataset as dat
import numpy as np

datest = '2016-01-01'

tgtbase = 'saida'
pfile = 'download_cloud_10.nc'
pnet = dat(pfile)
intervalp = int(np.diff(pnet['time'][::])[0])
p = np.squeeze(pnet['tcc'][::]) * 100
pwnd = tgtbase + '_era_5' + '.amc'
lonp = pnet['longitude'][::]
latp = pnet['latitude'][::]
dlatp = np.diff(latp)
dlonp = np.diff(lonp)
if (dlatp[0] < 0):
    dlatp = dlatp * (-1)
pfid = open(pwnd, 'w')
pfid.write('FileVersion      = 1.03\n')
pfid.write('Filetype         = meteo_on_equidistant_grid\n')
pfid.write('NODATA_value         = -999.000\n')
pfid.write('n_cols           = %d\n' % (p.shape[2]))
pfid.write('n_rows           = %d\n' % (p.shape[1]))
pfid.write('grid_unit        = degree\n')
pfid.write('x_llcorner       = %f\n' % (lonp.min()))
pfid.write('dx               = %f\n' % (dlonp[0]))
pfid.write('y_llcorner       = %f\n' % (latp.min()))
pfid.write('dy               = %f\n' % (dlatp[0]))
pfid.write('n_quantity       = 1\n')
pfid.write('quantity1        = cloudiness\n')
Exemple #10
0
points = (x_fm[~ff].ravel(), y_fm[~ff].ravel())

ndir[ff] = griddata(points, ndir[~ff], interp_points, method='nearest')

plt.pcolor(x_roms, y_roms, ndir)
plt.colorbar()
plt.show()

theta_b = 0.4
theta_s = 5.0
tcline = 100.
klevels = 40
Vtransform = 2
Vstretching = 4
fname_grd = 'azul_grd2.nc'
grd = dat(fname_grd)
x_roms = grd.variables['lon_rho'][:]
y_roms = grd.variables['lat_rho'][:]
msk_roms = grd.variables['mask_rho'][:]
msk_romsv = grd.variables['mask_v'][:]
h_roms = grd.variables['h'][:]
sh2 = msk_roms.shape
etamax, ximax = sh2

scoord = s_coordinate_4(h_roms, theta_b, theta_s, tcline, klevels)
zr = scoord.z_r[:]

a, b = np.meshgrid(x_roms[0, :], zr[:, 0, 0])
b = np.load('int3d_v.npz')['V_int3d']

plt.pcolor(a, zr[:, -1, :], b[:, -1, :], vmin=-0.3, vmax=0.3)
Exemple #11
0
text = cbar.ax.yaxis.label
font = matplotlib.font_manager.FontProperties(family='times new roman', style='normal', size=15)
text.set_font_properties(font)
#plt.savefig('myocean2.png')

plt.show()









file=dat('prooceano_myocean_cortado_Forecast_jj_bry.nc')
temp=file['v_south'][::]

theta_b = 0.4
theta_s = 5.0
tcline = 100.
klevels = 40
Vtransform = 2
Vstretching = 4
fname_grd='azul_grd2.nc'
grd = dat(fname_grd)
x_roms = grd.variables['lon_rho'][:]
y_roms = grd.variables['lat_rho'][:]
msk_roms = grd.variables['mask_rho'][:]
msk_romsv = grd.variables['mask_v'][:]
h_roms = grd.variables['h'][:]
Exemple #12
0
##delft 2 oil
import numpy as np
from netCDF4 import Dataset as dat
from scipy.interpolate import griddata, interp1d
import matplotlib.pyplot as plt
import datetime
import pandas as pd
import matplotlib.dates as dates

limn = 1

path = '/home/fernando/roms/src/Projects/hindcast_2/mercator/'

file = dat(path + 'MYOCEAN_AZUL_FORECAST_20171218.nc')

input = path + 'MYOCEAN_AZUL_FORECAST_'
endfname = '.nc'

dateini = '2017-11-01'
dateend = '2017-12-01'

a = [dateini, dateend]

date = dates.datestr2num(a)

ntimes = len(np.arange(date[0], date[1] + 1))

date = np.arange(date[0], date[1] + 1)

time_oil = np.arange(ntimes)
Exemple #13
0
#--------------------------------------------------------------------------
# Create Nudging coefficients NetCDF file: build creation parameters
# structure, S.
#--------------------------------------------------------------------------

S = []
Tindex = []
ReplaceValue = np.nan
PreserveType = True
Unlimited = False
# time dimension is umlimited
nctype = 'nc_double'
# input data is in double precision

ncfile = dat(nudname, mode='w', clobber='true', format='NETCDF3_CLASSIC')
ncfile.createDimension('lon', size=Mr)
ncfile.createDimension('lat', size=Lr)
ncfile.createDimension('s_rho', size=Nr)

ncfile.createVariable('spherical', 'i')
setattr(ncfile.variables['spherical'], 'long_name', 'Grid type logical switch')
setattr(ncfile.variables['spherical'], 'flag_values', [0, 1])
setattr(ncfile.variables['spherical'], 'flag_meanings', 'Cartesian spherical')
ncfile.variables['spherical'][:] = int(spherical)

ncfile.createVariable('lon_rho', 'd', dimensions=('lat', 'lon'))
setattr(ncfile.variables['lon_rho'], 'long_name', 'longitude of RHO-points')
setattr(ncfile.variables['lon_rho'], 'units', 'degree_east')
setattr(ncfile.variables['lon_rho'], 'standard_name', 'longitude')
ncfile.variables['lon_rho'][:] = G.hgrid.lon_rho
Exemple #14
0
cd C:\Users\Fernando\Downloads
activate
python

from netCDF4 import Dataset as dat
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import dates
file=dat('METOFFICE-GLO-SST-L4-NRT-OBS-SST-V2_1590260341312.nc')

lat=np.flipud(file['lat'][:])
lon=file['lon'][:]
time=file['time'][:]
str=np.str(file['time'].units[14:])
num = dates.datestr2num(str) + (time/(24*60*60))
dates.num2date(num)
sst=np.flipud(np.squeeze(file['analysed_sst'][:])) - 273.15
lon,lat=np.meshgrid(lon,lat)



#### trimming

fname_grd = 'azul_grd_era_NEW_menor_azul.nc'  ## Smooth topography grid.   
#fname_grd = 'azul_grd2.nc'  ## Smooth topography grid.   


## Load ROMS grid.
grd = dat(fname_grd)
x_roms = grd.variables['lon_rho'][:]
y_roms = grd.variables['lat_rho'][:]
Exemple #15
0
##delft 2 oil
import numpy as np
from netCDF4 import Dataset as dat
from scipy.interpolate import griddata, interp1d
import matplotlib.pyplot as plt
import datetime
import pandas as pd
import matplotlib.dates as dates

file = dat('golfo_2019/phys-sat_global_20190102.nc')

input = 'golfo_2019/phys-sat_global_'

dateini = '2019-01-01'
dateend = '2019-01-31'
a = [dateini, dateend]

date = dates.datestr2num(a)

ntimes = len(np.arange(date[0], date[1] + 1))

date = np.arange(date[0], date[1] + 1)

time_oil = np.arange(ntimes)

time_oil = time_oil * 24 * 60

lat = np.ma.filled(file['latitude'][::], fill_value=0)

lon = np.ma.filled(file['longitude'][::], fill_value=0)
Exemple #16
0
##delft 2 oil
import numpy as np
from netCDF4 import Dataset as dat
from scipy.interpolate import griddata, interp1d
import matplotlib.pyplot as plt
import datetime
import pandas as pd
import matplotlib.dates as dates

limn=20

path = '/home/fernando/mercator_regrid/'

file=dat(path+'regrid_recorte_ext-PSY4V3R1_1dAV_20190301_20190302_gridS_R20190313.nc')

input = path+'regrid_recorte_ext-PSY4V3R1_1dAV_'
endfnameu='_gridU_R20190313.nc'
endfnamev='_gridV_R20190313.nc'
endfnamet='_gridT_R20190313.nc'
endfnames='_gridS_R20190313.nc'


dateini='2019-03-01'
dateend='2019-03-03'
a=[dateini, dateend]

date=dates.datestr2num(a)

ntimes=len(np.arange(date[0], date[1]+1))

date = np.arange(date[0], date[1]+1)
Exemple #17
0
    def start(self):
        ncfile = dat(self.fname,
                     mode='w',
                     clobber='true',
                     format='NETCDF3_CLASSIC')

        ncfile.createDimension('lon', size=self.L)
        ncfile.createDimension('lat', size=self.M)
        ncfile.createDimension(self.timename, size=self.nt + 1)

        ncfile.createVariable('spherical', 'i')
        setattr(ncfile.variables['spherical'], 'long_name',
                'Grid type logical switch')
        setattr(ncfile.variables['spherical'], 'flag_values', [0, 1])
        setattr(ncfile.variables['spherical'], 'flag_meanings',
                'Cartesian spherical')
        ncfile.variables['spherical'][:] = 1

        ncfile.createVariable('lon', 'd', dimensions=('lat', 'lon'))
        setattr(ncfile.variables['lon'], 'long_name', 'longitude')
        setattr(ncfile.variables['lon'], 'units', 'degree_east')
        setattr(ncfile.variables['lon'], 'standard_name', 'longitude')
        ncfile.variables['lon'][:] = self.LNf

        ncfile.createVariable('lat', 'd', dimensions=('lat', 'lon'))
        setattr(ncfile.variables['lat'], 'long_name', 'latitude')
        setattr(ncfile.variables['lat'], 'units', 'degree_north')
        setattr(ncfile.variables['lat'], 'standard_name', 'latitude')
        ncfile.variables['lat'][:] = self.LAf

        ################################################################################## TIME VARIABLE

        if self.var == 'Uwind' or self.var == 'Vwind':
            ncfile.createVariable(self.timename, 'd', dimensions=self.timename)
            setattr(ncfile.variables[self.timename], 'long_name',
                    'surface wind time')
            #       setattr(ncfile.variables[self.timename], 'units', 'modified Julian day')
            setattr(ncfile.variables[self.timename], 'units',
                    'seconds since 2013-01-01 00:00:00')
            setattr(ncfile.variables[self.timename], 'calendar',
                    'gregorian')  #
            setattr(ncfile.variables[self.timename], 'field',
                    str(self.timename) + ', scalar, series')
            setattr(ncfile.variables[self.timename], 'time', self.timename)

        elif self.var == 'rain':
            ncfile.createVariable(self.timename, 'd', dimensions=self.timename)
            setattr(ncfile.variables[self.timename], 'long_name',
                    'rain fall rate time')
            #       setattr(ncfile.variables[self.timename], 'units', 'modified Julian day')
            setattr(ncfile.variables[self.timename], 'units',
                    'seconds since 2013-01-01 00:00:00')
            setattr(ncfile.variables[self.timename], 'calendar', 'gregorian')
            setattr(ncfile.variables[self.timename], 'field',
                    str(self.timename) + ', scalar, series')
            setattr(ncfile.variables[self.timename], 'time', self.timename)

        elif self.var == 'lwrad_down':
            ncfile.createVariable(self.timename, 'd', dimensions=self.timename)
            setattr(ncfile.variables[self.timename], 'long_name',
                    'solar longwave radiation time')
            #       setattr(ncfile.variables[self.timename], 'units', 'modified Julian day')
            setattr(ncfile.variables[self.timename], 'units',
                    'seconds since 2013-01-01 00:00:00')
            setattr(ncfile.variables[self.timename], 'calendar', 'gregorian')
            setattr(ncfile.variables[self.timename], 'field',
                    str(self.timename) + ', scalar, series')
            setattr(ncfile.variables[self.timename], 'time', self.timename)

        elif self.var == 'Tair':
            ncfile.createVariable(self.timename, 'd', dimensions=self.timename)
            setattr(ncfile.variables[self.timename], 'long_name',
                    'surface air temperature time')
            #       setattr(ncfile.variables[self.timename], 'units', 'modified Julian day')
            setattr(ncfile.variables[self.timename], 'units',
                    'seconds since 2013-01-01 00:00:00')
            setattr(ncfile.variables[self.timename], 'calendar', 'gregorian')
            setattr(ncfile.variables[self.timename], 'field',
                    str(self.timename) + ', scalar, series')
            setattr(ncfile.variables[self.timename], 'time', self.timename)

        elif self.var == 'Pair':
            ncfile.createVariable(self.timename, 'd', dimensions=self.timename)
            setattr(ncfile.variables[self.timename], 'long_name',
                    'surface air pressure time')
            #       setattr(ncfile.variables[self.timename], 'units', 'modified Julian day')
            setattr(ncfile.variables[self.timename], 'units',
                    'seconds since 2013-01-01 00:00:00')
            setattr(ncfile.variables[self.timename], 'calendar', 'gregorian')
            setattr(ncfile.variables[self.timename], 'field',
                    str(self.timename) + ', scalar, series')
            setattr(ncfile.variables[self.timename], 'time', self.timename)

        elif self.var == 'swrad':
            ncfile.createVariable(self.timename, 'd', dimensions=self.timename)
            setattr(ncfile.variables[self.timename], 'long_name',
                    'solar shortwave radiation time')
            #       setattr(ncfile.variables[self.timename], 'units', 'modified Julian day')
            setattr(ncfile.variables[self.timename], 'units',
                    'seconds since 2013-01-01 00:00:00')
            setattr(ncfile.variables[self.timename], 'calendar', 'gregorian')
            setattr(ncfile.variables[self.timename], 'field',
                    str(self.timename) + ', scalar, series')
            setattr(ncfile.variables[self.timename], 'time', self.timename)

        elif self.var == 'Qair':
            ncfile.createVariable(self.timename, 'd', dimensions=self.timename)
            setattr(ncfile.variables[self.timename], 'long_name',
                    'surface relative humidity time')
            #       setattr(ncfile.variables[self.timename], 'units', 'modified Julian day')
            setattr(ncfile.variables[self.timename], 'units',
                    'seconds since 2013-01-01 00:00:00')
            setattr(ncfile.variables[self.timename], 'calendar', 'gregorian')
            setattr(ncfile.variables[self.timename], 'field',
                    str(self.timename) + ', scalar, series')
            setattr(ncfile.variables[self.timename], 'time', self.timename)


###################################################################################################### FORCING VARIABLE

        if self.var == 'Uwind':
            ncfile.createVariable(self.var,
                                  'd',
                                  dimensions=(self.timename, 'lat', 'lon'))
            setattr(ncfile.variables[self.var], 'long_name',
                    '10m u-wind component')
            setattr(ncfile.variables[self.var], 'long_name', 'u-wind')
            setattr(ncfile.variables[self.var], 'units', 'meter second-1')
            setattr(ncfile.variables[self.var], 'units', 'm/s')
            setattr(ncfile.variables[self.var], 'field',
                    'uwind, scalar, series')
            setattr(ncfile.variables[self.var], 'time', self.timename)
            setattr(ncfile.variables[self.var], 'coordinates',
                    'lon lat ' + str(self.timename))
            setattr(ncfile.variables[self.var], 'coordinates',
                    'lon lat ' + str(self.timename))

        elif self.var == 'Vwind':
            ncfile.createVariable(self.var,
                                  'd',
                                  dimensions=(self.timename, 'lat', 'lon'))
            setattr(ncfile.variables[self.var], 'long_name',
                    '10m v-wind component')
            setattr(ncfile.variables[self.var], 'long_name', 'v-wind')
            setattr(ncfile.variables[self.var], 'units', 'meter second-1')
            setattr(ncfile.variables[self.var], 'units', 'm/s')
            setattr(ncfile.variables[self.var], 'field',
                    'vwind, scalar, series')
            setattr(ncfile.variables[self.var], 'time', self.timename)
            setattr(ncfile.variables[self.var], 'coordinates',
                    'lon lat ' + str(self.timename))
            setattr(ncfile.variables[self.var], 'coordinates',
                    'lon lat ' + str(self.timename))

        elif self.var == 'rain':
            ncfile.createVariable(self.var,
                                  'd',
                                  dimensions=(self.timename, 'lat', 'lon'))
            setattr(ncfile.variables[self.var], 'long_name', 'rain fall rate')
            setattr(ncfile.variables[self.var], 'long_name', 'rain fall rate')
            setattr(ncfile.variables[self.var], 'units',
                    'kilogram meter-2 second-1')
            setattr(ncfile.variables[self.var], 'units',
                    'kilogram meter-2 second-1')
            setattr(ncfile.variables[self.var], 'field',
                    'rain, scalar, series')
            setattr(ncfile.variables[self.var], 'time', self.timename)
            setattr(ncfile.variables[self.var], 'coordinates',
                    'lon lat ' + str(self.timename))
            setattr(ncfile.variables[self.var], 'coordinates',
                    'lon lat ' + str(self.timename))

        elif self.var == 'lwrad_down':
            ncfile.createVariable(self.var,
                                  'd',
                                  dimensions=(self.timename, 'lat', 'lon'))
            setattr(ncfile.variables[self.var], 'long_name',
                    'downward longwave radiation flux')
            setattr(ncfile.variables[self.var], 'long_name',
                    'downward longwave radiation flux')
            setattr(ncfile.variables[self.var], 'units', 'Watts meter-2')
            setattr(ncfile.variables[self.var], 'units', 'Watts meter-2')
            setattr(ncfile.variables[self.var], 'positive',
                    'downward flux, heating')
            setattr(ncfile.variables[self.var], 'positive',
                    'downward flux, heating')
            setattr(ncfile.variables[self.var], 'negative',
                    'upward flux, cooling')
            setattr(ncfile.variables[self.var], 'negative',
                    'upward flux, cooling')
            setattr(ncfile.variables[self.var], 'field',
                    'lwrad, scalar, series')
            setattr(ncfile.variables[self.var], 'time', self.timename)
            setattr(ncfile.variables[self.var], 'coordinates',
                    'lon lat ' + str(self.timename))
            setattr(ncfile.variables[self.var], 'coordinates',
                    'lon lat ' + str(self.timename))

        elif self.var == 'Tair':
            ncfile.createVariable(self.var,
                                  'd',
                                  dimensions=(self.timename, 'lat', 'lon'))
            setattr(ncfile.variables[self.var], 'long_name',
                    'surface air temperature')
            setattr(ncfile.variables[self.var], 'long_name',
                    'surface air temperature')
            setattr(ncfile.variables[self.var], 'units', 'Celsius')
            setattr(ncfile.variables[self.var], 'units', 'Celsius')
            setattr(ncfile.variables[self.var], 'field',
                    'Tair, scalar, series')
            setattr(ncfile.variables[self.var], 'time', self.timename)
            setattr(ncfile.variables[self.var], 'coordinates',
                    'lon lat ' + str(self.timename))
            setattr(ncfile.variables[self.var], 'coordinates',
                    'lon lat ' + str(self.timename))

        elif self.var == 'Pair':
            ncfile.createVariable(self.var,
                                  'd',
                                  dimensions=(self.timename, 'lat', 'lon'))
            setattr(ncfile.variables[self.var], 'long_name',
                    'surface air pressure')
            setattr(ncfile.variables[self.var], 'long_name',
                    'surface air pressure')
            setattr(ncfile.variables[self.var], 'units', 'milibar')
            setattr(ncfile.variables[self.var], 'units', 'milibar')
            setattr(ncfile.variables[self.var], 'field',
                    'Pair, scalar, series')
            setattr(ncfile.variables[self.var], 'time', self.timename)
            setattr(ncfile.variables[self.var], 'coordinates',
                    'lon lat ' + str(self.timename))
            setattr(ncfile.variables[self.var], 'coordinates',
                    'lon lat ' + str(self.timename))

        elif self.var == 'swrad':
            ncfile.createVariable(self.var,
                                  'd',
                                  dimensions=(self.timename, 'lat', 'lon'))
            setattr(ncfile.variables[self.var], 'long_name',
                    'solar shortwave radiation')
            setattr(ncfile.variables[self.var], 'long_name',
                    'shortwave radiation')
            setattr(ncfile.variables[self.var], 'units', 'Watts meter-2')
            setattr(ncfile.variables[self.var], 'units', 'Watts meter-2')
            setattr(ncfile.variables[self.var], 'positive',
                    'downward flux, heating')
            setattr(ncfile.variables[self.var], 'positive',
                    'downward flux, heating')
            setattr(ncfile.variables[self.var], 'negative',
                    'upward flux, cooling')
            setattr(ncfile.variables[self.var], 'negative',
                    'upward flux, cooling')
            setattr(ncfile.variables[self.var], 'field',
                    'swrad, scalar, series')
            setattr(ncfile.variables[self.var], 'time', self.timename)
            setattr(ncfile.variables[self.var], 'coordinates',
                    'lon lat ' + str(self.timename))
            setattr(ncfile.variables[self.var], 'coordinates',
                    'lon lat ' + str(self.timename))

        elif self.var == 'Qair':
            ncfile.createVariable(self.var,
                                  'd',
                                  dimensions=(self.timename, 'lat', 'lon'))
            setattr(ncfile.variables[self.var], 'long_name',
                    'relative humidity')
            setattr(ncfile.variables[self.var], 'long_name',
                    'relative humidity')
            setattr(ncfile.variables[self.var], 'units', 'percentage')
            setattr(ncfile.variables[self.var], 'units', 'percentage')
            setattr(ncfile.variables[self.var], 'field',
                    'Qair, scalar, series')
            setattr(ncfile.variables[self.var], 'time', self.timename)
            setattr(ncfile.variables[self.var], 'coordinates',
                    'lon lat ' + str(self.timename))
            setattr(ncfile.variables[self.var], 'coordinates',
                    'lon lat ' + str(self.timename))

        setattr(ncfile, 'title', ROMS_title)
        setattr(ncfile, 'grd_file', grdname)

        i_dtref = self.index

        self.vec = np.transpose(self.vec, (2, 1, 0))

        ind = 0

        for t in range(i_dtref[0][0], len(self.timevar)):
            ui = np.flipud(np.squeeze(self.vec[t, ::]))
            ncfile.variables[self.timename][ind] = self.timevar[t]
            ncfile.variables[self.var][ind, :, :] = ui
            ind = ind + 1

        ncfile.sync()
        ncfile.close()
        print "Done."
        print ""
Exemple #18
0
##delft 2 oil
import numpy as np
from netCDF4 import Dataset as dat
from scipy.interpolate import griddata, interp1d
import matplotlib.pyplot as plt
import datetime
import pandas as pd
import matplotlib.dates as dates

limn = 1

file = dat(
    'transfer_Fernando/ext-PSY4V3R1_1dAV_20190301_20190302_gridS_R20190313.nc')

input = 'transfer_Fernando/ext-PSY4V3R1_1dAV_'

dateini = '2019-03-01'
dateend = '2019-03-02'
a = [dateini, dateend]

date = dates.datestr2num(a)

ntimes = len(np.arange(date[0], date[1] + 1))

date = np.arange(date[0], date[1] + 1)

time_oil = np.arange(ntimes)

time_oil = time_oil * 24 * 60

lat = np.ma.filled(file['nav_lat'][::], fill_value=0)