Example 4: Create video#

This example demonstrates how to import file and create video with GINCCO_lib using GINCCO_lib.image_to_video.pngs_to_video().

Code Example#

Now we will import the library and the grid

# =========================
# IMPORTS
# =========================
import numpy as np
import GINCCO_lib as gc
from netCDF4 import Dataset
from datetime import *

# =========================
# CONFIGURATION
# =========================
tstart = datetime(2010, 1, 1)
tend   = datetime(2010, 1, 10)

path = '/work/users/tungnd/GOT271/GOT_REF5/OFFLINE/'

# =========================
# LOAD GRID
# =========================
fgrid = Dataset(path + 'grid.nc', 'r')
lat_t = fgrid.variables['latitude_t'][:]
lon_t = fgrid.variables['longitude_t'][:]
mask_t_var = fgrid.variables['mask_t']
if mask_t_var.ndim == 3:
    mask_t = mask_t_var[0, :, :]
elif mask_t_var.ndim == 2:
    mask_t = mask_t_var[:, :]
dx_t  = fgrid.variables['dx_t'][:,:]
dy_t  = fgrid.variables['dy_t'][:,:]
sin_t  = fgrid.variables['gridrotsin_t'][:,:]
cos_t  = fgrid.variables['gridrotcos_t'][:,:]

Now import data

# Step 1: Import data
ssh = gc.import_3D(path, 'ssh_ib', tstart, tend, ignore_missing='False')


data_draw = ssh[0]
data_draw[mask_t==0] = np.nan


gc.map_draw(
    lon_min=105, lon_max=111,
    lat_min=16.5, lat_max=22,
    title="ssh",
    lon_data=lon_t,
    lat_data=lat_t,
    data_draw=data_draw,
    path_save="/prod/projects/data/tungnd/figure/",
    name_save="ssh"
)

Now choose a day and calculate

#Step 2: Choose a day and calculate
U1, V1 = gc.geostrophic_current(data_draw, lat_t, dx_t, dy_t, sin_t, cos_t)

for i in range(0,11):
    print (i*10,  np.nanpercentile(U1, i*10),np.nanpercentile(V1, i*10))


#Step 4: Draw
gc.map_draw_uv(
    lon_min=105, lon_max=111,
    lat_min=16.5, lat_max=22,
    title="Geotrophic current (example 7)",
    lon_data=lon_t,
    lat_data=lat_t,
    data_u= U1, data_v= V1,
    mask_ocean = mask_t,
    path_save="/prod/projects/data/tungnd/figure/",
    name_save="geotrophic_current_example7",
    quiver_max_n=20,   # ~max arrows per axis (auto step so arrows <= quiver_max_n x quiver_max_n)
    quiver_scale=6  # higher is shorter arrow. lower is longer arrow
)