コード例 #1
0
ファイル: figure.py プロジェクト: gzielinsky/ROMS
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
コード例 #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
コード例 #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'][::]
コード例 #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'][:]
コード例 #5
0
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"][::])
コード例 #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'
コード例 #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()
コード例 #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
コード例 #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')
コード例 #10
0
ファイル: plots.py プロジェクト: gzielinsky/ROMS
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)
コード例 #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'][:]
コード例 #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)
コード例 #13
0
ファイル: d_nudgcoef.py プロジェクト: gzielinsky/ROMS
#--------------------------------------------------------------------------
# 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
コード例 #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'][:]
コード例 #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)
コード例 #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)
コード例 #17
0
ファイル: forclass.py プロジェクト: gzielinsky/ROMS
    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 ""
コード例 #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)