Changeset 3868 for trunk/LMDZ.PLUTO/util


Ignore:
Timestamp:
Jul 28, 2025, 3:43:42 PM (8 days ago)
Author:
afalco
Message:

Pluto: update figure scripts.
AF

Location:
trunk/LMDZ.PLUTO/util/script_figures
Files:
2 added
2 deleted
6 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.PLUTO/util/script_figures/FV3_utils.py

    r3833 r3868  
    6060 return alpha,airetot
    6161
    62 def switchlon(arr):
     62def switchlon(arr, lon):
    6363# changer les longitudes pour mettre TR au centre
    6464 vec=np.shape(arr)
    6565 myvar=np.zeros(vec,dtype='f')
     66 if (lon is not None and lon[0]>=0):
     67     return arr
    6668 # i lat : pas de changement
    6769 # j lon :
     
    12601262                tmp_var = find_coord_var(nc1, dim)
    12611263                file_values = nc1.variables[tmp_var][:]
     1264                if dim is LON_DIMS and file_values[0]<0:
     1265                    file_values+=180 # start longitudes at 0 rather than -180
    12621266                i = getind(values, file_values)
    1263                 print(dim, i)
    1264                 if len(i)==2: # range of indices
     1267                print("Getting",dim[0], i, file_values[i])
     1268                if len(np.atleast_1d(i))==2: # range of indices
    12651269                    slicer[dim_idx] = slice(min(i),max(i)+1)
    12661270                else: # specific index
    1267                     slicer[dim_idx] = i
     1271                    slicer[dim_idx] = slice(i,i+1)
    12681272            except:
    12691273                continue
  • trunk/LMDZ.PLUTO/util/script_figures/meanmeridwind.py

    r3833 r3868  
    1515var="v" #variable
    1616tint=[30,31] #Time must be as written in the input file
    17 xarea=[-180,179]
     17xarea=[0,359] # omit repetition of longitude
     18xarea=None
    1819
    1920nc1=Dataset(filename1)
     
    6465rvb1=diverge_map(h,l)
    6566
    66 myvar=getvar(nc1,var,tint,xarea,lon,t_mean=True,l_mean=True)
     67myvar=getvar(nc1,var,times=tint,longitudes=xarea,t_mean=True,l_mean=True)
    6768
    6869mpl.figure(figsize=(20, 10))
     
    9798mpl.yticks(fontsize=font)
    9899pylab.ylim([-4,250])
     100mpl.tight_layout()
    99101
    100102mpl.savefig('meanmeridwind.eps',dpi=200)
  • trunk/LMDZ.PLUTO/util/script_figures/meanzonalwind.py

    r3833 r3868  
    1616var="u" #variable
    1717tint=[30,32] #Time must be as written in the input file
    18 xarea=[-180,179]
     18xarea=[0,359]
     19# xarea=None
    1920
    2021nc1=Dataset(filename1)
     
    6566rvb1=diverge_map(h,l)
    6667
    67 myvar=getvar(nc1,var,tint,xarea,lon,t_mean=True,l_mean=True)
     68myvar=getvar(nc1,var,times=tint,longitudes=xarea,t_mean=True,l_mean=True)
    6869
    6970mpl.figure(figsize=(20, 10))
     
    9899mpl.yticks(fontsize=font)
    99100pylab.ylim([-4,250])
    100 
     101mpl.tight_layout()
    101102mpl.savefig('meanzonalwind.eps',dpi=200)
    102103mpl.savefig('meanzonalwind.png',dpi=200)
  • trunk/LMDZ.PLUTO/util/script_figures/movie_winds.py

    r3867 r3868  
    11#! /usr/bin/env python
     2import os, sys
    23from    netCDF4               import    Dataset
    34from    numpy                 import    *
     
    1314
    1415############################
    15 # basename="../../Xhistins2072"
    16 filename1="../"+name+"_A.nc"
    17 filename2="../"+name+".nc"
    18 filename3="../"+name+".nc"
     16filename1=name+"_A.nc"
     17filename2=name+".nc"
     18filename3=name+".nc"
    1919# filename3="../../phisinit.nc"
    2020var="tsurf" #variable
     
    2323varj="v"
    2424tint=[30,32] #Time must be as written in the input file
     25# tint=None
    2526#tintstr=["03:00","09:00","15:00","21:00"] #Time must be as written in the input file
     27
     28altitude = 10 # default value, in km ! WARNING: only integers accepted for animation script yet
     29if len(sys.argv)>1:
     30    altitude=float(sys.argv[1])
     31    print("Setting altitude to ",altitude, "km")
    2632
    2733font=26
     
    8692
    8793def getfigvar(i):
    88     pal=get_cmap(name="jet")
     94    pal=get_cmap(name="OrRd")
    8995    lev=np.linspace(37,51,15)
    9096    newlon=lon+180
    91     CF=mpl.contourf(newlon, lat, myvarbis,lev,cmap=pal,extend='both')
     97    CF=mpl.contourf(newlon, lat, myvarbis,lev,cmap=pal,extend='both',alpha=0.7)
    9298    yticks=[-90,-60,-30,0,30,60,90]
    9399    xticks=[0,60,120,180,240,300,360]
    94100    cbar=mpl.colorbar(CF,shrink=1, format="%1.0f")
    95     cbar.ax.set_title("Tsurf [K]",y=1.04,fontsize=font)
     101    cbar.ax.set_title("Tsurf [K]",y=1.04,fontsize=font, pad=20)
    96102
    97103    for t in cbar.ax.get_yticklabels():
     
    100106    c=mpl.contour(newlon, lat, myvar2bis, 10,levels=np.linspace(-4,4,8), colors = 'k', linewidths = 3.5)
    101107    mpl.clabel(c, fmt='%2.1f',inline=1, colors='k', fontsize=23,inline_spacing=1)
    102     #mpl.title('Local Time at Sputnik Planum='+str(i*3)+'H00',fontsize=font)
     108    mpl.title('Winds & Surface Temperature',fontsize=font, pad=20)
     109    # mpl.title('Local Time at Sputnik Planum='+str(i*3)+'H00',fontsize=font)
    103110    mpl.ylabel('Latitude (deg)',labelpad=10,fontsize=font)
    104111    mpl.xlabel('West Longitude (deg)',labelpad=10, fontsize=font)
     
    113120
    114121#######################
    115 numalt=getnumalt(30,alt)
     122numalt=getnumalt(altitude,alt)
    116123print(('numalt =',numalt,'altitude=',alt[numalt]))
    117 uini=getvar(nc1,vari,tint,tim)[:,numalt]
    118 vini=getvar(nc1,varj,tint,tim)[:,numalt]
    119 myvar=getvar(nc2,var,tint,tim)
     124uini=getvar(nc1,vari,times=tint)[:,numalt]
     125vini=getvar(nc1,varj,times=tint)[:,numalt]
     126myvar=getvar(nc2,var,times=tint)
    120127myvar2=getvar(nc3,phisinit) # phisinitmyvar2=myvar2/0.6169/1000.  # altitude km
    121128nbfig=uini.shape[0]
    122129print(("nbfig=",nbfig))
    123 myvar2bis=switchlon(myvar2)
     130myvar2bis=switchlon(myvar2, lon)
     131
     132os.makedirs("movie_winds", exist_ok=True)
    124133
    125134for i in range(nbfig):
     
    128137   v2=vini[i,:,:]
    129138   myv=myvar[i,:,:]
    130    u=switchlon(u2)
    131    v=switchlon(v2)
    132    myvarbis=switchlon(myv)
     139   u=switchlon(u2, lon)
     140   v=switchlon(v2, lon)
     141   myvarbis=switchlon(myv, lon)
    133142   print(i,"/",nbfig)
    134143   getfigvar(i)
    135    mpl.savefig('mapwinds'+str('{0:03}'.format(i))+'.eps',dpi=200)
    136    mpl.savefig('mapwinds'+str('{0:03}'.format(i))+'.png',dpi=200)
     144#    mpl.tight_layout()
     145   mpl.savefig(f"movie_winds/mapwinds_{altitude:.0f}km_{i:03}.eps",dpi=200)
     146   mpl.savefig(f"movie_winds/mapwinds_{altitude:.0f}km_{i:03}.png",dpi=200)
    137147
    138148left  = None  # the left side of the subplots of the figure
  • trunk/LMDZ.PLUTO/util/script_figures/temp_section.py

    r3833 r3868  
    2424nc1=Dataset(name)
    2525
     26# max altitude in plot (maxed to max of alt)
     27max_alt = 230
     28
    2629
    2730lat=getvar(nc1,"latitude")
     
    4851CF=mpl.contourf(lat,alt,myvar,lev,cmap=pal,extend='both')
    4952cbar=mpl.colorbar(CF,shrink=1, format="%1.0f")
    50 cbar.ax.set_title("Tsurf [K]",y=1.04,fontsize=font)
     53cbar.ax.set_title("T [K]",y=1.04,fontsize=font,pad=20)
    5154for t in cbar.ax.get_yticklabels():
    5255      t.set_fontsize(font)
     
    5861mpl.clabel(CS, inline=1, fontsize=20, fmt='%1.0f',inline_spacing=1)
    5962
     63mpl.title('Zonal mean temperature',fontsize=font, pad=20)
    6064#mpl.title('Latitude ='+str(tintstr[i]),fontsize=font)
    6165mpl.ylabel('Altitude (km)',labelpad=10,fontsize=font)
     
    6569mpl.yticks(fontsize=font)
    6670if type(ma.getmask(myvar)) in (bool,np.bool_):
    67     max_alt = max(alt)
     71    max_alt = min(max_alt,max(alt))
    6872else:
    69     max_alt = max(alt[~ma.getmask(myvar)[:,0]][:-1])
    70 # max_alt = 230
     73    max_alt = min(max_alt,max(alt[~ma.getmask(myvar)[:,0]][:-1]))
    7174pylab.ylim([-4,max_alt])
    7275
  • trunk/LMDZ.PLUTO/util/script_figures/temp_time_zoom.py

    r3833 r3868  
    1818# longitude=-165
    1919latitude=[-19,-15]
    20 # latitude=-19
     20latitude=-18
    2121
    2222# local time de la longitude consideree a t=0
     
    3939myvar=getvar(nc1,var,times=tint,longitudes=longitude,latitudes=latitude)[:,:,0,0]
    4040font=23
    41 # tim=np.linspace(0,24,9)
    4241print(("tim=",tim))
    4342print(('on prend les premiers indice, shape (tmps, alt, var) =',shape(tim), shape(alt), shape(myvar)))
     
    4645lev=np.linspace(40,50,10)
    4746# xticks=[0,2,4,6,8,10,12,14,16,18,20,22,24]
    48 print(('hello:',np.linspace(0,24,13)))
    4947#yticks=np.linspace(0,240,9)
    5048
  • trunk/LMDZ.PLUTO/util/script_figures/tempglobmean.py

    r3833 r3868  
    6565#xticks=[-90,-60,-30,0,30,60,90]
    6666#yticks=np.linspace(0,240,9)
    67 alt=alt/1000.
    68 #alt2=alt2/1000.
    6967
    7068mpl.plot(meantemp,alt,'r')
Note: See TracChangeset for help on using the changeset viewer.