From 8ca39d5e49319ec7915758190ab184c318b972ce Mon Sep 17 00:00:00 2001
From: Aurelio Jesus Barranco <sty@atalanta.aemet.es>
Date: Thu, 21 Oct 2021 15:24:49 +0000
Subject: [PATCH] =?UTF-8?q?a=C3=B1adidos=20gramets=20por=20alturas?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 aero_graph_process.py                         |  13 +++---
 conf/__pycache__/conf.cpython-36.pyc          | Bin 4928 -> 4999 bytes
 .../confcloudgramet.cpython-36.pyc            | Bin 10641 -> 10736 bytes
 conf/__pycache__/confgramet.cpython-36.pyc    | Bin 10684 -> 10779 bytes
 conf/conf.py                                  |  25 +++++++-----
 conf/confcloudgramet.py                       |  24 ++++++-----
 conf/confgramet.py                            |  24 ++++++-----
 dict/__pycache__/dictaero.cpython-36.pyc      | Bin 0 -> 512 bytes
 dict/__pycache__/dictareas.cpython-36.pyc     | Bin 0 -> 293 bytes
 dict/dictaero.py                              |  28 +++++++++++++
 dict/dictareas.py                             |   5 +++
 fig/__pycache__/gramfig.cpython-36.pyc        | Bin 4256 -> 4533 bytes
 fig/gramfig.py                                |  38 +++++++++++++-----
 gram/__pycache__/areas.cpython-36.pyc         | Bin 0 -> 894 bytes
 gram/__pycache__/gram.cpython-36.pyc          | Bin 11007 -> 11199 bytes
 gram/areas.py                                 |  25 ++++++++++++
 gram/gram.py                                  |   7 +++-
 17 files changed, 142 insertions(+), 47 deletions(-)
 create mode 100644 dict/__pycache__/dictaero.cpython-36.pyc
 create mode 100644 dict/__pycache__/dictareas.cpython-36.pyc
 create mode 100644 dict/dictaero.py
 create mode 100644 dict/dictareas.py
 create mode 100644 gram/__pycache__/areas.cpython-36.pyc
 create mode 100644 gram/areas.py

diff --git a/aero_graph_process.py b/aero_graph_process.py
index b072a8a..7ab7526 100644
--- a/aero_graph_process.py
+++ b/aero_graph_process.py
@@ -50,8 +50,7 @@ stringdom = ("'%s'" %(dom))
 graphs = []
 for gr in eval('da.dictareas['+stringdom+'][2]'): 
     graphs.append(gr[0])
-    #print(gr[1])
-print(graphs)
+
 # Funciones ===================================================================#
 def graph_gramet_or_exit(graphdata,vert):
     c = 0
@@ -62,11 +61,18 @@ def graph_gramet_or_exit(graphdata,vert):
           c+=1
     if graphdata.exists_in(): 
         if isinstance(graphdata,CloudGramet):
+            Conf.loweratm  = None
+            Conf.higheratm = None
+            Conf.allatm    = None
+            if vert=='loweratm':  Conf.loweratm  = True
+            if vert=='higheratm': Conf.higheratm = True
+            if vert=='allatm':    Conf.allatm    = True
             setCloudGramet()
             graphdata.setpoint(p)
             graphdata.vertrange = vert
             cgramet = Grametfig(g=graphdata)
             cgramet.save()
+            cgramet.close()
         else: print('nada de momento')
     else:
        print('================================================================')
@@ -142,10 +148,7 @@ if GRAMET:
             first = False 
         vertrange = eval('da.dictareas['+stringdom+'][2]')[i][1]
         g.tag = k
-        #print(k)
-        #print(vertrange)
         for v in vertrange:
-            print(v)
             for p in points: graph_gramet_or_exit(g,v)
         i+=1
 else:
diff --git a/conf/__pycache__/conf.cpython-36.pyc b/conf/__pycache__/conf.cpython-36.pyc
index 70efe33cb0b1d6a19e361e3bd3db9584c7d2eccd..2bbef0a2fd259f373e9a6c5412350fee7618974c 100644
GIT binary patch
delta 248
zcmX@0)~?QF%*)F)sj)CoS9T(o8{>+Nfisy^qn@QOMLh@N7eM?ng(;Xpllc~lbADc0
z6kB>xVs2`QpXRH{|Cx0eqc-cZv@rP!W#pF@702gf=A{<LXXcfp7M0y%OU%hhEXlpa
znUR^Eky->|a^&QfLs&c@R&hyuPHI_d&MjWB5*T-KJ-Z_ZdvRKFd{TbJ<PB`QH(zE~
z;AB%~U|=Xxp8Qk5nep6YTfv0M{z77t>xINN9~2B`)Pcx?m4FBpAaRSsCO1E&G$+-L
Q1;{IA0}_1o4D}2y02LEa)Bpeg

delta 190
zcmZoyKcL2C%*)Fq|1LlAip)eVH^vzo17|Xe1~X_f-(qpj&r6G9OD{^yO)c@$d^VY%
zMVIl`W?PmPrpXcPyCxrC6P?V@?jX!roR%D)lUkOVbBi6sOv<m=EX1L}$)>=-z)++x
z*+S5n@z~@V!Gy^(gajsU5aM8FVqu!RTu6QL96^rB2|^r`4TL3t;w+ODgxMxrfz^Q6
YJYcaJq5A?5gTSVN2*t_S!qSY60M^DfI{*Lx

diff --git a/conf/__pycache__/confcloudgramet.cpython-36.pyc b/conf/__pycache__/confcloudgramet.cpython-36.pyc
index 22725cd47a10fb9dbbc3c683f58b00265bef30c7..4c05d28e4cf5bb9e8dbd6802da7e09edbd01140d 100644
GIT binary patch
delta 4055
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

delta 3932
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
CkL{=c

diff --git a/conf/__pycache__/confgramet.cpython-36.pyc b/conf/__pycache__/confgramet.cpython-36.pyc
index 2305f3d175720b0bec1b9bb467908422a38a7f37..1bf954a5d2207067de57d78415fdbfb6f1017367 100644
GIT binary patch
delta 4010
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
MI13Ye{P0)!FBN1KWB>pF

delta 3905
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

diff --git a/conf/conf.py b/conf/conf.py
index 6d869a3..0886737 100644
--- a/conf/conf.py
+++ b/conf/conf.py
@@ -65,6 +65,20 @@ class Conf:
 
     extrapolate2sfc = None
 
+    hours_lines_interv = None
+
+    allatm    = None
+    higheratm = None
+    loweratm  = None
+    lowest_level  = None
+    highest_level = None
+    levels_interv  = None
+    levels_lc      = None
+    levels_ls      = None
+    levels_ldashed = None
+    levels_lw      = None
+    sfc_box        = None
+
     cloud         = None
     cloud_thres   = None
     cloud_colours = None
@@ -81,17 +95,6 @@ class Conf:
     freez       = None
     freez_thres = None 
 
-    hours_lines_interv = None
-
-    levels_interv  = None
-    levels_lc      = None
-    levels_ls      = None
-    levels_ldashed = None
-    levels_lw      = None
-    
-    sfc_level = None
-    sfc_box   = None   
-
     render_t         = None
     render_th        = None
     render_t_lw      = None
diff --git a/conf/confcloudgramet.py b/conf/confcloudgramet.py
index e73f885..6514a43 100644
--- a/conf/confcloudgramet.py
+++ b/conf/confcloudgramet.py
@@ -78,6 +78,20 @@ def setCloudGramet():
  
     if Conf.extrapolate2sfc is None: Conf.extrapolate2sfc = 0
 
+    if Conf.hours_lines_interv is None: Conf.hours_lines_interv = 3
+
+    if Conf.loweratm:  
+        Conf.highest_level  = 150.0
+        Conf.levels_interv  = 30.0
+    if Conf.higheratm: 
+        Conf.lowest_level  = 150.0
+        Conf.levels_interv = 50.0
+    if Conf.allatm: Conf.levels_interv = 50.0
+    if Conf.levels_lc      is None: Conf.levels_lc      = '#000000'
+    if Conf.levels_ls      is None: Conf.levels_ls      = '--'
+    if Conf.levels_ldashed is None: Conf.levels_ldashed = [6,3]
+    if Conf.levels_lw      is None: Conf.levels_lw      = 0.6 
+
     if Conf.cloud         is None: Conf.cloud         = True
     if Conf.cloud_thres   is None: Conf.cloud_thres   = 0.5
     if Conf.cloud_levels  is None: Conf.cloud_levels  = [0.0,0.5,0.75,1.0]
@@ -108,16 +122,6 @@ def setCloudGramet():
     if Conf.cloud_marker_xyratio is None: Conf.cloud_marker_xyratio = 2.5
     if Conf.cloud_marker_size    is None: Conf.cloud_marker_size    = 570.
     if Conf.cloud_marker_alpha   is None: Conf.cloud_marker_alpha   =   1.
-
-    if Conf.hours_lines_interv is None: Conf.hours_lines_interv = 3
-
-    if Conf.levels_interv  is None: Conf.levels_interv  = 50
-    if Conf.levels_lc      is None: Conf.levels_lc      = '#000000'
-    if Conf.levels_ls      is None: Conf.levels_ls      = '--'
-    if Conf.levels_ldashed is None: Conf.levels_ldashed = [6,3]
-    if Conf.levels_lw      is None: Conf.levels_lw      = 0.6 
-
-    if Conf.sfc_level is True: Conf.sfc_level = True
  
     if Conf.render_t         is None: Conf.render_t         = True
     if Conf.render_th        is None: Conf.render_th        = False
diff --git a/conf/confgramet.py b/conf/confgramet.py
index c0a227a..84cc7cd 100644
--- a/conf/confgramet.py
+++ b/conf/confgramet.py
@@ -78,6 +78,20 @@ def setGramet():
  
     if Conf.extrapolate2sfc is None: Conf.extrapolate2sfc = 0
 
+    if Conf.hours_lines_interv is None: Conf.hours_lines_interv = 3
+
+    if Conf.loweratm:  
+        Conf.highest_level  = 150.0
+        Conf.levels_interv  = 30.0
+    if Conf.higheratm: 
+        Conf.lowest_level  = 150.0
+        Conf.levels_interv = 50.0
+    if Conf.allatm: Conf.levels_interv = 50.0
+    if Conf.levels_lc      is None: Conf.levels_lc      = '#000000'
+    if Conf.levels_ls      is None: Conf.levels_ls      = '--'
+    if Conf.levels_ldashed is None: Conf.levels_ldashed = [6,3]
+    if Conf.levels_lw      is None: Conf.levels_lw      = 0.6 
+
     if Conf.cloud         is None: Conf.cloud         = True
     if Conf.cloud_thres   is None: Conf.cloud_thres   = 0.5
     if Conf.cloud_levels  is None: Conf.cloud_levels  = [0.0,0.5,0.75,1.0]
@@ -111,16 +125,6 @@ def setGramet():
 
     if Conf.turb  is None: Conf.turb = True
     if Conf.freez is None: Conf.freez = True
-
-    if Conf.hours_lines_interv is None: Conf.hours_lines_interv = 3
-
-    if Conf.levels_interv  is None: Conf.levels_interv  = 50
-    if Conf.levels_lc      is None: Conf.levels_lc      = '#000000'
-    if Conf.levels_ls      is None: Conf.levels_ls      = '--'
-    if Conf.levels_ldashed is None: Conf.levels_ldashed = [6,3]
-    if Conf.levels_lw      is None: Conf.levels_lw      = 0.6 
-
-    if Conf.sfc_level is True: Conf.sfc_level = True
  
     if Conf.render_t         is None: Conf.render_t         = True
     if Conf.render_th        is None: Conf.render_th        = False
diff --git a/dict/__pycache__/dictaero.cpython-36.pyc b/dict/__pycache__/dictaero.cpython-36.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..1d5832ef02f6d52804e7d49b918c06b82e3c88f0
GIT binary patch
literal 512
zcmZur&o2W(6rS1L?zW|Vv^}6FaoUR&E+V2UA`U_Xr-?|`zS-G^w%gq;S|^FS#El>l
zCl`N&BmRQ9i8%Duix3xPa3H)l^SvMWzL#$-lS$97*PKBWp-1#14AI--M<)UR0R{zB
z&>+Ed(82K3e|O1Kg&;@~3~8c32T`GuXpkWZ=ps6F69amnhhmCl6_<WbQk|p;=%rc#
zLG~+|{&xeCnS$I3GV@&9szd?DO|Fc_9E(@uitBRSZ)}7mXbJnsRJbuSw>-TtyUO*i
z$~+m_n$3>)Z(m>f-;3;}wR>+rVVfl`k0$Whkj?h;*K-fegCa{6&ezSmiy|}E4sV{@
zLM6}2Xkh{0Q@glmrg<7lZp=a_@FQVlgeaRaQOkkPF(azK<Z#vZVy-L$PfBK!hE;CJ
z&U51{6z0UePk0-*q9CMTMRCIdx@|dvS#j!d$#pF1mUlcWXvBWCVoC8QNXBr`;K|8y
Z73y1bN}7xM1my96q2V8?cHz91#UHALjg$ZY

literal 0
HcmV?d00001

diff --git a/dict/__pycache__/dictareas.cpython-36.pyc b/dict/__pycache__/dictareas.cpython-36.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..0d3bccc481c7dcff968e59b5312fd5e1866b59ca
GIT binary patch
literal 293
zcmYk1OHRWu5QZHm&7%-b&<k{fC18Vu5bgsMsRh(z<(-vrok&R&oRlidavQGXZN(*6
z;RF_pG~fKcMl+hZ4#V-+#~VLd2%XTs@Qr>j+1wZa0t+zM;J^r6@T3bq1TdCZVmRv+
zoJ+fRTRXQHf-pwY3x;23%#I#oHk#8oiI_W-D`wM`F>AWmL<{DumdQ&`I@8|#X+zh`
zL<d<eGog4}YQLxszsmh<y1Xb%=Xq-B0P?iuO7P|rDbHLw;QN*|wGu#@wj&_k2^Xr`
o@qL@8oQSkMY)Rd<S+yhm_<&)@W!-82uB>2Rh<m4h9ve)o9|VR_3;+NC

literal 0
HcmV?d00001

diff --git a/dict/dictaero.py b/dict/dictaero.py
new file mode 100644
index 0000000..4e56b4b
--- /dev/null
+++ b/dict/dictaero.py
@@ -0,0 +1,28 @@
+dictgraphs = {'CGRAMET': (['lnsp','z','2t','t','q','cc'],'hybrid',0),
+              'GRAMET' : (['lnsp','z','2t','t','q','cc'],'hybrid',0),}
+              # 'CLOUDGRAMET': (['lnsp','z','2t','cc'],'hybrid',0)}
+
+#dictfields = {'q': ('Humedad específica','kt',123.128)}
+
+#===========================================================================================#
+
+c0  = 273.15
+kt  = 1.94384
+mph = 2.23694
+g   = 9.80665
+hPa = 0.01
+hft = 0.0328
+Rd  = 287.06
+
+#           tag : zero
+dictzero = {'CGRAMET': [0.0,0.0,c0,c0,0.0,0.0],
+            'GRAMET' : [0.0,0.0,c0,c0,0.0,0.0],}
+            #'CLOUDGRAMET': [0.0,0.0,0.0,0.0]}
+
+#           tag  : fct
+dictfct = {'CGRAMET': [hPa,1/g,1.0,1.0,1.0,1.0],
+           'GRAMET' : [hPa,1/g,1.0,1.0,1.0,1.0]}
+           #'CLOUDGRAMET': [hPa,1.0,1.0,1.0]}
+
+      
+
diff --git a/dict/dictareas.py b/dict/dictareas.py
new file mode 100644
index 0000000..c273fc9
--- /dev/null
+++ b/dict/dictareas.py
@@ -0,0 +1,5 @@
+# Area definition
+#=================
+             #area model |                 points                         |grapthtype| atmosphere layers range
+dictareas = {'PB':('IFS',['CASTI','CASTI2','ALI','MADRID','LETO','LEAB'],[['CGRAMET',['higheratm','loweratm']], \
+                                                                          ['GRAMET', ['higheratm','loweratm','allatm']]])}
diff --git a/fig/__pycache__/gramfig.cpython-36.pyc b/fig/__pycache__/gramfig.cpython-36.pyc
index 73996461751c09e312f7dda217a06a76e7d6d2f2..3023d6b588bc2a541d98ca0bb2932bd2e8cb42ef 100644
GIT binary patch
delta 1984
zcma)7&2Jk;6rWk|m)Bn#+p(QAr1@x^*c6kHq)l4{MX6LiL=a5?$)&Q~?8f%Sv77NG
zO{%qAaMfFc#Z=-*5hoBAgt%~mf5Rt^y%mHwBJtjMmCz~(G<r|({pNkmo42!%Cx4ta
z79$bkoBO-vg~{)YX&U{I5Mq-ewMbF2lKcvNBNDd~4@fa&(RGp==AY21&TkSS9`#6x
zxYVMq<OI4BMOgw__T>P`iZ9C`t3rl-_MN4;Qb}`lCupgb273lj2q;_$So%?*Ex8dV
z3VIC4+>)%|5oR0mh%@BGy^drVBczK^!iOYF^O58+67rGZ#to4wbdstf{f{*NnxzAY
zlNHhqSmCy8CE7}l9=r-^iIciUdh}MIt$HfzrL;gZT|$YFMy%)vX>0DNbH>+WBgE1&
z;xOQ!PLs9{XCCWORtJk0Jl)g$zKsKRAF#7t=LDPp@DYHM$A(kjKs|XI3Sr;6LTk(J
zv_O?@8PJ~xT3Zn%oD;<boEbMO^jT-l$#rR$`X#5KoP3H{#<tXxm<cwCj`N~N9o#q%
z^b%0PGLK|%08|7?;RS&MWhwV%YY6aJfzRVL`4V1_+z$5WZt5e%7ChO5d1)I5bDnXH
z+?r^I08KcrcsLm+nc_zsNY#^eKNfC7&Z4sf2FrfM317c(tX~ufMM=Jtgw!ywBK!*Y
zsz72?1#)R%b?krH3!rQfod30cu$r$`sx~XTJAJ+0ygQJLDuOMyZtwSlhzfCoe<`o>
zKjf<+6TT}pge=ZqQ^uF&)n;RhsR(Gm`Vrs11Oe=NKRgIA(281XYqNB_dB6{qE&fz_
z!k?%gsCvtGONacDmZQUbQ_CCU7)Pp9S%H6{P0=O(leRGxrnppCV>CtMu#!^7mt+b{
z;st%q%*tVE&<Sc%(;TO9g;({%xdp6l8l%!0TS7&!Wkih4s=c|rS#R!HJ3j=2>vVV+
z4JMFXMkXUm^Ic<YeiFpKau<4Lvr&+X!L=saDc5WFY&MH}Si~6|w#DZ7Q{yHb<L`vt
zG(`yo47G^t3jaEEK6@2?RCn)A-EOhh5r4Kgb`CNAXXxQf3Z$IGL>Lj_Im;Q?|CB!t
z*Z$Ko3ziRfA(HRl$yR|{`@qDkz$3UVu_Qi!r9k6t9}57s;)y45z*8hc(gbXjMi!n=
zd^lyq(Cc(NS9S1t6i=xoqpu@(x&atOWlhWtqfo<Oj6xvgbcWZ^5ANH{W#vZ2W@$7S
z0alEN(Q1`y4cBJ-EQ1^3YSgkY%>_iCit6pA>o#}#0k?VQ`OeN0k|YnovlRtKV6=3g
zjKqJB+{}t*(?PSJ?Q=g^v0WHqnBg90(e;%x;0$A3-nX}El|ju~bI)y*ckJBh5o9#}
zoc|Tg@Xw+t3%@6qIPec}q~ouXuE7~_!ukqKRLf?V=Ja^%25db7Y5|dZvFi*{yHHF)
zc;+Bfn2*M0Y8PO8FwtVFa9|kD0)ti%_8zkLkzu@lbW5BczZ9kb!%Jwzf$5U5p)0zn
uORx;&Vn3H**ZEhmvvidI5*tzRR@hto*I1tBdB}X%Jn7~jF0Yyw>HOaj3AAni

delta 1768
zcmbtVUvC>l5Z~SVXW!Y**{L0;e_SVN(l}{D(f}!crIM(CP_06!5UwK2@tqx?9bdAy
z2}yJ(3t6g4rJ$hw0zB{mKnRd{LgEAP?oYr2ue>5=*H%I+Bp%RdCcpXZ%<RnUB>7?H
z>nU?JnKa-2bibA_d}q$!R2d=Uq6&6Ug*X}h2EM1^O;j4^U*PH99|WNghp37eXb*X$
zk1=A3r#iSz=o6-Sx<ecV7y~2*5^pMwda6W(nVto90wmcWj&>^Yq##Sm8w-h}PolnH
z>~lsLG3j%rXN;&!_ak|gadB0X{NHOBhSJ7GLroMZPApQLbfn2PFF9tLoZ%i-8Fnn;
za)yr{%A@QC;H`HeJ=BF=%}I8mk1&!b?<6KsWUxu^^2kn3B1g%~ZefDC2^5JrT{*+F
z0UlSwSZMT#oa!~;PJk<nxSkmGbs)b4vUu(|1pzoz+fWGohDj?@*|cP}whHXeLu=H{
zj4V#^Zm?Nd(wukGo9|=Mmb7zlODTsO9eO6z1kUyrLhR*waIgq+3*@$wI#nS6Xc?3h
zFDQmYZMNi$0Y4}CmmGM<5faa*Mse7kxVJ1fN1&DAJooKSgx{S|4YfXr%%l0x+(28!
z$O6{(Rzr*R{&~GEu0JFDo(xNQFMF>*S+9<|ut)aVxqVj_A<G=043q<dmg!#`a_8Q!
zhl;=s61!in81+sq2uQ2We^b|O<^B7cC+4p2xE;R;n5VUSRuX=3XiBItzNHne#SdM|
zXsz3H2kN@tZB(o#t?jz3%8vJ3{;k%qD@M?$SGWD6fhKeDoc?>dqSIE;>NerfWefoS
zOMk?-j9HxFePhAA0yhjubB8YSpNwg|!Ux93MH64eIh=v-63LH{iB<WfPz>{jvH47q
znApY%Y~mvPwC#e<pT>^omqf`$krlV-iZG<QBN(&3<JQ~tj(^~I-<RT>IGYg;*MwRV
zN);;0zcS0q1%LzXvmKYZGzYj6FZ*=2)@hx%^oFn#GEcSR9=e@?&hjzqG0yY0^`0$D
zSQM$2g}TdswQkM5C1P}Tu-9<|`ljHYFOE(D=ksjh$?Q0w5}`7U%<zKeG@SSNFNxNF
zdd`67=e(R;=;?sgK?0GLArHgfJ<N!w<WL@kM4+J-_5^b91QJ|dfrTMuYCu#;rE(~G
zO|AjW0#`{6`>(dT%%z7VMOIzWw|&O^-GRdVJ=y2wi&vnxA+8S+h?)@Q&r*-)WXpKi
z^7Gve;!T&qV!>WL<<{8dqX`ItZK@r*jaHM22OJpw0qeptmi|41Dx9BzV*r9qQt!&e
zh3F-5P{QSs#pmtW?NvA(?typ<D#lF31ZBna1A!h0by1*1VzsCSN>moupkl=QFs8-q
z7=cfV5qVn5(+&QkeZ45QiNb##G*E)$U_ks}pmh&+_m1Uw>3#mEy?}4>V)}vo;!QkC
Hui?Vqf~ABD

diff --git a/fig/gramfig.py b/fig/gramfig.py
index 223529f..f94bc4b 100644
--- a/fig/gramfig.py
+++ b/fig/gramfig.py
@@ -24,9 +24,12 @@ class Grametfig:
 
     def __init__(self,g=None):
         self.g = g
-        print(self.g.vertrange)
-        #if g.vertrange=='loweratm': Conf.sfc_box = True
-        if Conf.gramet_type=='classic': 
+        print('higheratm',Conf.higheratm)
+        print('loweratm',Conf.loweratm)
+        print('highestlev',Conf.highest_level)
+        print('lowestlev',Conf.lowest_level)
+        if Conf.loweratm: 
+            Conf.sfc_box = True
             gs = gridspec.GridSpec(3,1,height_ratios=[Conf.gs_0,Conf.gs_1,Conf.gs_2])
             self.fig = plt.figure(figsize=(Conf.fig_size_x,Conf.fig_size_y))
             self.ax  = self.fig.add_subplot(gs[0])
@@ -40,7 +43,7 @@ class Grametfig:
         validhours = []
         minheight = 1E6
         maxheight = -9999.0
-        if self.g.model=='IFS': print('modelo IFS')
+        #if self.g.model=='IFS': #print('modelo IFS')
         for st in self.g.timewindow: 
             self.g.st = st
             self.g.getfields()       
@@ -59,8 +62,8 @@ class Grametfig:
                 #sun = Astro('Sun',g.date,self.g.point[1],self.g.point[2])
                 moon = Astro('Moon',g.date,self.g.point[1],self.g.point[2])
                 #moon = Moon('Moon',g.date,self.g.point[1],self.g.point[2])
-                print(moon.rising)
-                print(moon.setting)
+                #print(moon.rising)
+                #print(moon.setting)
         levelslines = self.adjustlevels(minheight,maxheight)
         for levline in levelslines:   
             self.ax.axhline(y=levline,color=Conf.levels_lc,dashes=Conf.levels_ldashed,lw=Conf.levels_lw)  
@@ -82,7 +85,7 @@ class Grametfig:
         ##self.axb.patch.set_facecolor(Conf.barb_facecolor)
         ##self.ax.set_aspect('equal')
         self.ax.set_xlim(self.g.timewindow[0],self.g.timewindow[-1])
-        ##self.ax.set_ylim(0,50)
+        self.ax.set_ylim(Conf.lowest_level,Conf.highest_level)
         ##self.axb.set_xlim(0, 1)
         ##self.axb.set_ylim(0, 1)
         ##self.axc.set_xlim(0, 1)
@@ -129,14 +132,29 @@ class Grametfig:
     def plotfreez(self,gh): print('aqui se muestra el engelamiento')
 
     def adjustlevels(self,bottom,top):
-        return np.arange(bottom-bottom%Conf.levels_interv, \
-                         top+(Conf.levels_interv-top%Conf.levels_interv)+1, \
-                         Conf.levels_interv)
+        if self.g.vertrange=='loweratm': 
+            Conf.lowest_level = 0
+        elif self.g.vertrange=='higheratm': 
+            Conf.highest_level = top+(Conf.levels_interv-top%Conf.levels_interv)
+        else: 
+            Conf.lowest_level = bottom-bottom%Conf.levels_interv
+            Conf.highest_level = top+(Conf.levels_interv-top%Conf.levels_interv)
+        return np.arange(Conf.lowest_level,Conf.highest_level+1,Conf.levels_interv)        
 
     def getsfcbox(self): print('caja de supeficie')
    
     def save(self): self.fig.savefig(self.g.outname())
 
+    def close(self): plt.close(self.fig)
+        #if 1<Conf.trace_level:
+          #try:
+              #alfa=self.ax.get_window_extent()._bbox._points
+              #print 're_subplot_bottom = '+str(alfa[0,1])
+              #print 're_subplot_top    = '+str(alfa[1,1])
+          #except Exception as e:
+              #print e
+        #plt.close(self.fig)
+
 '''
   @staticmethod
   def getPosition(ax,trace=False): 
diff --git a/gram/__pycache__/areas.cpython-36.pyc b/gram/__pycache__/areas.cpython-36.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..1bfcd58eb108d62e5a1ebddd8dd30e8532ac83e9
GIT binary patch
literal 894
zcmYjPOK;RL5cW8aO|~sBp+!X;_PUqN0dWIV1QiFQy>Ou95?QggO`A<p+gp?>NQkZY
zFZ?B6IhCKli5ag7YimA_$DY?`KR-Aa|6W{*Cjn!>*v<%1KSD7l2$D&tS-xE%2L<Q+
zJn$H*XagI_W5v)m^0q|9l5hA1fINaaU8Q*n>^+mAjBc2WHas6o_{e7QEk<XH>(P9k
z$*Qz7a4D@qD`84HyBiTIM<`~3pjZx)<s9R28Qee~_-K&}-=O27jPVYQ5y~FQTNLvH
zVc-KR*bpGX5F+v+LJS5BcaiGv{W}{DaLB&KLo9Lix3L+o0osB?q+%=H`@dy-C-}sg
zXCbrE#aMp>M$^VJBq~0$hMyoI*mktgfYsc3;HX`{I<BYG^wg+Ym1Wg7LW*hA;(n@{
za;+Mx#Z;<g)l_((n(059=3PG<xoFi&RlB%rtHv6ao@&vZ*}hXQuGN*Qjix*<`Jnn^
zty}G)PUB7V3^C=>1y-DD;!P82Iw45OBfb*#TA80r-^cBr7n$j_l9{o6Ce>9Yl*U@u
zwkk!Y%GH-;*7f$RZ89uimHBtX0$oxRSh+0<ifNuAFo?I4C%_?rG0sOY;rHPBfL?Ka
z=Yed|n1vLi5i3;`Zd?@D@46;^zbG!(qTZh9hZxycx&sf$h9BJj2SYq0-0x?5E-<}u
zyfrTDggtX3S!s&o5-g$iCd|65d?q^drdV{HYNQL#k!??`54V$&xYCr@B`>#?zNW`E
NV@i(QK86YG^S`<~)=K~Y

literal 0
HcmV?d00001

diff --git a/gram/__pycache__/gram.cpython-36.pyc b/gram/__pycache__/gram.cpython-36.pyc
index 7d97cd4447e63afefd12981468646b477beb3643..e9edb6c599e98b5b0425a4fbf72494ca3ed3893f 100644
GIT binary patch
delta 1316
zcmZXSU2GIp6vyXGJIi*zilyC!wk)OYww+bTmTC~K7RA^=Nckw$vMJVeXS)5^Znt-8
zEh`kX7E=Sk<U~G7c;g+(Jn*LR)feI$nM7magWwZ9!VBF0-F0hVlKIVl&bjxTbMHCN
zMt=Du&=(E|URj;buJ64Q_#+tbYnpaIzRrDq9NZhR{4=_kKBG<RE1K27>Cnz?MpTPw
z!<w{_6_DOrRc{d9#tkoagkTF-ZI;|+hB*^zKj`@jb6?sbyD(dhC7t1sqvOfldnS@j
z^|QNF%zF)!Q~Al-n)eT%czI2^nZF9P`(BsziVyi_XkTkoN{u3#kLs%oP@3ec^MlY2
zWbx_n8clOuWJ)h+{8LxVU5z+IMfXYLluo0ZYf4htU295EXBJWSNDP@iuWmNGBrI4G
zz-A!F_qOyIQ&L`XH#K+YEvI088~7A>2N>u6=yJ>FkV&8g$ODsnFWQzGgES>Py;$<<
z?4^=O!88pFNSKD$1wG2mu{Y?ddoUK!2R?&k5I}*VA5is@R6}A;5;^2^a=*Drd@MyJ
zY!1reE8B|nvum`r(?_*qW{lEA!Cn++u;eU&1Vb|aqWpSB*%ot7CCUiA2x{t;;>w(F
z+fKi^t8Gm*Si*8z5U54W1GP%?Uw`oK+4|+b2RxcrRjNcArPizXo_^dCi~MK%oAkTe
zyuF{|-yjN(S_>dnV5-#0#dv2giWIBBw-O%Z&0wXr3$T@8)60_?ec`_o@~`o?=)U_j
zzCykt*39ur#~A(V{?*Y?x8r{ugzr5-T~#%uKe6we>Z+Ot)m2r&IV@Biw4u;JF(Kjk
zg}rDC$F_vJy-FkCRkKupS_W_#Vhq4kROaA2sPBRE5~g1rEYs~PWkq(@$@pa3?1G~X
zDR5lbN_fO5wyg0#iC5`~8%(B&TDiYVP@Hdf9bu!Vk;C0vsDpQQ_s~&3)ID?T2zDF?
zP5`d~s+bul%(_?tRH^5oHfp<w-^&04KLS_S*R!8OJlON-KyA{*CF#oOx!l8N@)0-W
zpV=T(h8ONo-K$Ed;$GyknKTeM!MDubV^@*l8gLy@8PiZ3=*924M5i1_N0-8{tABH=
gSb(ojB4ZT4m@S=_GuM?Gr(wR3O4B;uO$}1?Ine<n;s5{u

delta 1201
zcmZ9KOH5Ny5QgtuXlV;n1#3}TYk^vBQ3B!%Ul37<3qe$BtdCmhrBrDtr+`=$MKr!*
zP>#=yai?2zSGZwed?Xq-vTEYO7){)1;?hLVf2zfJ(|&i(oO5UXIWsf+e|6g$OG|Bi
z2L~ga>z>*^6x*zdqO^*CI?BHnueVGnQOg<SxXM!{UaNVL;#Br3nw7sRarrY&UpkCm
z-Rj=_t1gv{X(pzL2y8pBl6RLjmDz=<kX<oT;UDrRr8g<eo9tIf=g;kNHKy>C-)Zca
zmnMoE)AQph1$kAukA{t%<<(RfMzqxe9hx~?kcf=3WAIc1^MMGTT-a!e3G<5aYT<I#
zaS+~(z#(80aG3vGH0C%8(+4;J9q8qg&ZU76OsLPQ$yByLA5F0UTzx>ZfGBPi>>!_Y
zuAwQzT47h4kHFIoKp@);NWCPi4wevvF7X^_(TdnUVdTO_U>)PZB}tk#UMz7@TfWSY
zDb?GrkFX4moCc7fL*yS4@2n}Kvw?Ij%3kausHWz`jdH)sO)rcct}<#*;y4X4Xki0D
zUTJK6+m^G1W1pI{G$>WdL~~LLW&EtVC(4HSL-$&GYs|Vg)3Wo3f>QGV*f?A{t-Q`t
z*#MDj0=OWMrI=Qn({>TQQTWtMUq~JLTOl9!Y@qkXGtUH>`*9}0TfK+qv+>AlE%5x)
zLF{b><W>Di`MSF4+)+5?Jjkv}1!v)t9qfUH4zj2~*244=ou&0Cled>^1a{>t9fx%W
zkh2kjC1+aB!6huO0Am80MHUwFn^O@MNu)z&(Kfw5EsJC*SF{p4EQn7o^T)m_`eD5B
z)e|}R&lQXo^8tS+P4OAOmzMI6{u=7wwwe=NyKsItum`9Gq?9-;w26%XQYfUbIc3+d
zyaC(-IB=W4tZAVlUZj0%&CeOTF1A8yPtVt1;$aWOO0zPV;lCS{w<;6LxYzi`fX{@$
z9v%%eblpLUyTCm_W~_%bhXyR~3%JEFrd45BRJqnF7{gwpK**FFPNYtWiTe@=Qx|Wm
Nt*86^WNkYw_zf7}3FH6(

diff --git a/gram/areas.py b/gram/areas.py
new file mode 100644
index 0000000..570d633
--- /dev/null
+++ b/gram/areas.py
@@ -0,0 +1,25 @@
+import sys
+import os
+dirpath = os.path.dirname(os.path.realpath(__file__))
+sys.path.append(os.path.join(dirpath,'../dict'))
+from dictareas import dictareas
+
+class Area:
+
+      def __init__(self,tag=None,model=None,points=None,graphtype=None,levels=None):
+          self.model     = model
+          self.points    = points
+          self.graphtype = graphtype
+          self.levels    = levels
+
+          if not tag is None:
+             try:
+                 values = dictareas[tag]
+                 self.model     = values[0]
+                 self.points    = values[1]
+                 self.graphtype = values[2][0][0]
+                 self.levels    = values[2][0][1]
+
+             except KeyError:
+                 print('El area seleccionada no se encuentra definida en dictareas.py')
+
diff --git a/gram/gram.py b/gram/gram.py
index 9b848d9..048ce2e 100644
--- a/gram/gram.py
+++ b/gram/gram.py
@@ -90,7 +90,12 @@ class AbstractGraph:
           else: lt = 'S'
           if self.point[2] > 0: ln = 'E'
           else: ln = 'W' 
-          return self.outdir()+'%s_%s_%.2f%s_%.2f%s.png' %(self.vertrange,self.tag,abs(self.point[1]),lt,abs(self.point[2]),ln) 
+          if self.vertrange=='loweratm':
+              return self.outdir()+'%sSUP_%.2f%s_%.2f%s.png' %(self.tag,abs(self.point[1]),lt,abs(self.point[2]),ln)          
+          elif self.vertrange=='higheratm':
+              return self.outdir()+'%sALT_%.2f%s_%.2f%s.png' %(self.tag,abs(self.point[1]),lt,abs(self.point[2]),ln)
+          else:
+              return self.outdir()+'%s_%.2f%s_%.2f%s.png' %(self.tag,abs(self.point[1]),lt,abs(self.point[2]),ln) 
 
       def setarea(self,atag,colour='cream'):
           area = Area(atag) 
-- 
GitLab