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
# 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
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'][::]
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"][::])
##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'
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()
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
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')
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)
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'][:]
##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)
#-------------------------------------------------------------------------- # 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
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'][:]
##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)
##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)
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 ""
##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)