コード例 #1
0
ファイル: fns_get_data.py プロジェクト: nansencenter/WIM2d
    def plot_step(self, grid_prams, time_index=0, vlist=None,
            figdir=None, sep_fig_dirs=True, **kwargs):

        pf    = self.files[time_index]
        afile = self.dirname+'/'+pf
        tstr  = pf[4:-2]

        DO_SAVE = (figdir is not None)
        if DO_SAVE:
            if not os.path.exists(figdir):
                os.mkdir(figdir)

        # do the plots
        fields = fn_read_general_binary(afile, vlist=vlist)[0]

        if not sep_fig_dirs:
            Fplt.fn_plot_gen(grid_prams, fields, figdir=figdir,
                 text=tstr, **kwargs)
        else:
            for vbl in fields:
                subdir = figdir
                if DO_SAVE:
                    subdir = figdir+'/'+vbl
                    if not os.path.exists(subdir):
                        os.mkdir(subdir)
                else:
                    subdir = None
                Fplt.fn_plot_gen(grid_prams, {vbl: fields[vbl]},
                        figdir=subdir, text=tstr, **kwargs)
        return
コード例 #2
0
   def plot_step(self,grid_prams,figdir3=None,time_index=0,vlist=None,**kwargs):

      pf    = self.files[time_index]
      afile = self.dir+'/'+pf
      tstr  = pf[4:-2]

      DO_SAVE  = (figdir3 is not None)
      if DO_SAVE:
         if not os.path.exists(figdir3):
            os.mkdir(figdir3)

      # =============================================================
      # determine the plotting limits
      if 0:
         # set colorbar axes manually
         zlims  = {'icec'  :[0,1],      \
                   'iceh'  :[0,5],      \
                   'Dmax'  :[0,300],    \
                   'tau_x' :[-.5,.5],  \
                   'tau_y' :[-.05,.05],\
                   'Hs'    :[0,4],        \
                   'Tp'    :[10,20],      \
                   'mwd'   :[-180,180]}

      elif 1:
         # let python choose
         # - different for each time step,
         #   so not good for a movie for example
         zlims  = {'icec'  :None,\
                   'iceh'  :None,\
                   'Dmax'  :None,\
                   'tau_x' :None,\
                   'tau_y' :None,\
                   'Hs'    :None,\
                   'Tp'    :None,\
                   'mwd'   :None}
      # =============================================================


      # =============================================================
      # do the plot
      fields   = fn_read_general_binary(afile,vlist=vlist)[0]

      if DO_SAVE:
         figdir3B = figdir3+'/'+vbl
         if not os.path.exists(figdir3B):
            os.mkdir(figdir3B)
      else:
         figdir3B = None

      Fplt.fn_plot_gen(grid_prams,fields,figdir=figdir3B,\
          zlims_in=zlims,text=tstr,vlist=Flds,**kwargs)
      # =============================================================
      return
コード例 #3
0
ファイル: fns_get_data.py プロジェクト: nansencenter/WIM2d
    def plot_grid(self, show=False, **kwargs):

        print('\nPLOTTING LAND MASK...\n')

        if not show:
            hold   = False
            figdir = self.figdir
            if not os.path.exists(figdir):
                os.mkdir(figdir)
            figdir += '/grid'
            if not os.path.exists(figdir):
                os.mkdir(figdir)
        else:
            figdir = None
            hold   = True

        grid_prams  = self.get_grid()
        Fplt.fn_plot_gen(grid_prams, grid_prams, vlist=['LANDMASK'], \
                figdir=figdir, hold=hold)

        return
コード例 #4
0
   def plot_steps(self,grid_prams,figdir3,**kwargs):
      pdir        = self.dir

      if not os.path.exists(figdir3):
         os.mkdir(figdir3)

      # =============================================================
      # determine the plotting limits
      if 0:
         # set colorbar axes manually
         zlims  = {'icec'  :[0,1],      \
                   'iceh'  :[0,5],      \
                   'Dmax'  :[0,300],    \
                   'tau_x' :[-.5,.5],  \
                   'tau_y' :[-.05,.05],\
                   'Hs'    :[0,4],        \
                   'Tp'    :[10,20],      \
                   'mwd'   :[-180,180]}

      elif 0:
         # let python choose
         # - different for each time step,
         #   so not good for a movie for example
         zlims  = {'icec'  :None,\
                   'iceh'  :None,\
                   'Dmax'  :None,\
                   'tau_x' :None,\
                   'tau_y' :None,\
                   'Hs'    :None,\
                   'Tp'    :None,\
                   'mwd'   :None}

      else:
         # set colorbar axes automatically
         zdef  = [1.e30,-1.e30]
         zlims  = {'icec' :1*zdef,\
                   'iceh' :1*zdef,\
                   'Dmax' :1*zdef,\
                   'tau_x':1*zdef,\
                   'tau_y':1*zdef,\
                   'Hs'   :1*zdef,\
                   'Tp'   :1*zdef,\
                   'mwd'  :1*zdef}

         # =============================================================
         # determine the plotting limits
         # by checking the arrays
         alist = self.files
         tlist = []
         for pf in alist:
            afile = pdir+'/'+pf
            #
            fields   = fn_read_general_binary(afile,**kwargs)[0]
            for key in fields.keys():
               key2  = check_names(key,zlims.keys())
               if key2!="":
                  zmin  = fields[key].min()
                  zmax  = fields[key].max()
                  if zmin<zlims[key2][0]:
                     zlims[key2][0] = zmin
                  if zmax>zlims[key2][1]:
                     zlims[key2][1] = zmax
            #
            tlist.append('_'+pf[4:-2])
         # =============================================================

      # =============================================================


      # =============================================================
      # do the plots
      for vbl in fields.keys():
         print('\n')
         print('Plotting results for '+vbl)
         print('\n')

         figdir3B    = figdir3+'/'+vbl
         if not os.path.exists(figdir3B):
            os.mkdir(figdir3B)

         for i,pf in enumerate(alist):
            print(self.times[i])
            afile    = pdir+'/'+pf
            fields   = fn_read_general_binary(afile)[0]
            Fplt.fn_plot_gen(grid_prams,fields,figdir=figdir3B,\
                  zlims_in=zlims,text=tlist[i],vlist=[vbl])
      # =============================================================
      return
コード例 #5
0
ファイル: grid_plot.py プロジェクト: nansencenter/WIM2d
import os,sys
import matplotlib.pyplot as plt

w2d = os.getenv('WIM2D_PATH')
sys.path.append(w2d+'/fortran/py_funs')
import fns_get_data as Fdat
import fns_plot_data as Fplt

gdir   = '.'
gf     = Fdat.fn_check_grid(gdir)
fields = {'LANDMASK':gf['LANDMASK']}
Fplt.fn_plot_gen(gf,fields,'out/')

figname = 'land_mask.png'
print('Saved to '+figname)
コード例 #6
0
            #
            field_profiles = {}
            for key in fields.keys():
                F = fields[key][:, 0]
                field_profiles.update({key: F})
            #
            grid_profiles = {}
            for key in grid_prams.keys():
                try:
                    F = grid_prams[key][:, 0]
                except:
                    F = grid_prams[key]
                grid_profiles.update({key: F})

            grid_profiles["ny"] = 1
            Fplt.fn_plot_gen(grid_profiles, field_profiles, figdir3B, zlims_in=zlims)

    print("\n**********************************************************************")
    print("to make movie, type")
    print(wim2d_path + "/fortran/tools/prog2mp4.sh Hs " + outdir + "/figs/prog_profiles")
    print("or")
    print(wim2d_path + "/fortran/tools/prog2mp4.sh Dmax " + outdir + "/figs/prog_profiles")
    print("**********************************************************************\n")

elif PROG_OPT == 2:
    ################################################################
    # Plot 1 variable as profiles on same graph (eg to test convergence to steady)
    #
    cols = ["k", "b", "r", "g", "m", "c"]
    lstil = ["-", "--", "-.", ":"]
    Nc = len(cols)
コード例 #7
0
ファイル: fns_get_data.py プロジェクト: nansencenter/WIM2d
    def plot_steps(self, grid_prams, figdir3, zlims=None, vlist=None, **kwargs):
        pdir = self.dirname

        if not os.path.exists(figdir3):
            os.mkdir(figdir3)

        # check variables to stop crash
        if vlist is not None:
            Vlist = []
            for vbl in vlist:
                if vbl in self.variables:
                    Vlist.append(vbl)
            if len(Vlist)==0:
                print("Variables in 'vlist' argument not present in files")
                print("Variables that are available:")
                for vbl in self.variables:
                    print("    "+vbl)
                return
        else:
            Vlist = None


        # determine the plotting limits
        if zlims is None:
            # set colorbar axes automatically
            zdef  = [1.e30, -1.e30]
            zlims = {'icec' :1*zdef, 
                         'iceh' :1*zdef, 
                         'Dmax' :1*zdef, 
                         'tau_x':1*zdef, 
                         'tau_y':1*zdef, 
                         'Hs'    :1*zdef, 
                         'Tp'    :1*zdef, 
                         'mwd'  :1*zdef}

            # determine the plotting limits
            # by checking the arrays
            alist = self.files
            tlist = []
            for pf in alist:
                afile = pdir+'/'+pf
                #
                fields = fn_read_general_binary(afile, vlist=Vlist, **kwargs)[0]
                for key in fields:
                    key2 = check_names(key, list(zlims), stop=False)
                    if key2!="":
                        zmin = fields[key].min()
                        zmax = fields[key].max()
                        if zmin<zlims[key2][0]:
                            zlims[key2][0] = zmin
                        if zmax>zlims[key2][1]:
                            zlims[key2][1] = zmax
                #
                tlist.append('_'+pf[4:-2])

        for vbl in fields:
            key2 = check_names(key, list(zlims), stop=False)
            if key2!="":
                print("range in "+vbl, zlims[key2][0], zlims[key2][1])


        # do the plots
        for vbl in fields:
            print('\n')
            print('Plotting results for '+vbl)
            print('\n')

            figdir3B = figdir3+'/'+vbl
            if not os.path.exists(figdir3B):
                os.mkdir(figdir3B)

            for i, pf in enumerate(alist):
                print(self.times[i])
                afile  = pdir+'/'+pf
                fields = fn_read_general_binary(afile)[0]
                Fplt.fn_plot_gen(grid_prams, fields, figdir=figdir3B, \
                        zlims_in=zlims, text=tlist[i], vlist=[vbl])
        return