[ncl-talk] Maximize png Output

Sebastian Giersch giersch at muk.uni-hannover.de
Sat Sep 12 13:28:49 MDT 2015


Dear NCL Users,

i would like to use the whole space of my 1300x859 png-Output (see
png1.1). I've tried a lot (e.g. gsnMaximize) but it doesn't work. The
height of the plot ist nearly perfect but the width is to small
(vpHeightF = 0.2, vpWidthF=0.6). When I change it in my .ncl file (e.g.
vpHeightF = 0.2, vpWidthF=1.5) I get the wrong result (see png1.2).
Therefore I ask you: How can I use all the space without any margin.

Beste regards,
Sebastian Giersch



-------------- next part --------------
A non-text attachment was scrubbed...
Name: png1.1.png
Type: image/png
Size: 133575 bytes
Desc: not available
Url : http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20150912/f24e344c/attachment-0002.png 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: png1.2.png
Type: image/png
Size: 95067 bytes
Desc: not available
Url : http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20150912/f24e344c/attachment-0003.png 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: kt20150813.csv
Type: text/csv
Size: 106675 bytes
Desc: not available
Url : http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20150912/f24e344c/attachment-0004.bin 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: kt20150814.csv
Type: text/csv
Size: 106675 bytes
Desc: not available
Url : http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20150912/f24e344c/attachment-0005.bin 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: hh20150813.csv
Type: text/csv
Size: 171502 bytes
Desc: not available
Url : http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20150912/f24e344c/attachment-0006.bin 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: hh20150814.csv
Type: text/csv
Size: 178685 bytes
Desc: not available
Url : http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20150912/f24e344c/attachment-0007.bin 
-------------- next part --------------
 ;Pakete laden
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"


;Beginn NCL-Skript 
begin

;Variablendefinition
data1          = new((/1440/), string)
data2          = new((/1440/), string)
data3          = new((/1440/), string)
data4          = new((/1440/), string)
plotzeit       = new((/1441/), float)
postickx       = new((/8/), float)
postickyL      = new((/9/), float)
postickyR      = new((/11/), float)
posminortickx  = new((/24/), float)
posminortickyL = new((/40/), float)
posminortickyR = new((/10/), float)
posminorticky  = new((/29/), float)
dummy          = new((/8/), float)
plottemp       = new((/1441/), float)
hum            = new((/1441/), string)
plotTempTd     = new((/2,1441/), float)
es             = new((/1441/), float)
e              = new((/1441/), float)
Td             = new((/1441/), float)
plotregen      = new((/1441/), float)      
plotsumme      = new((/1441/), float)
druck          = new((/1441/), float)
Temp_NN        = new((/1441/), float)
plotdruck      = new((/1441/), float)
wind           = new((/1441/), float)
windmax        = new((/1441/), float)
plotwindmax    = new((/145/), float)
plotwindmittel = new((/145/), float)
zeitwind       = new((/145/), float)
beaufort       = new((/50001,145/), float)
global         = new((/1441/), float)
diffus         = new((/1441/), float)
plotstrahlung  = new((/2,1441/), float)
sonnenstunden  = new((/1441/), float)
k              = 0
summe          = 0.0
l              = 0

;Einlesedateien
filename1 = "hh20150813.csv"
filename2 = "hh20150814.csv"
filename3 = "kt20150813.csv"
filename4 = "kt20150814.csv" 
 
;Einlesen der Daten als String (pro Reihe)
data1_ein = asciiread(filename1,(/1441/),"string")
data2_ein = asciiread(filename2,(/1441/),"string")
data3_ein = asciiread(filename3,(/1441/),"string")
data4_ein = asciiread(filename4,(/1441/),"string")


;Herauslöschen der jeweils ersten Zeile
do i = 0,1439
data1(i) = data1_ein(i+1)
data2(i) = data2_ein(i+1)
data3(i) = data3_ein(i+1)
data4(i) = data4_ein(i+1)
end do


;Bestimmung der einzelnen Variablen zum plotten
dummy1   = str_get_field(data1, 1, ";")
dummy2   = str_get_field(data2, 1, ";")
temp1    = str_get_field(data1, 5, ";")
temp2    = str_get_field(data2, 5, ";")
hum1     = str_get_field(data1, 6, ";")
hum2     = str_get_field(data2, 6, ";")
regen1   = str_get_field(data1, 7, ";")
regen2   = str_get_field(data2, 7, ";")
wind1    = str_get_field(data1, 8, ";")
wind2    = str_get_field(data2, 8, ";")
druck1   = str_get_field(data1, 9, ";")
druck2   = str_get_field(data2, 9, ";")
windmax1 = str_get_field(data1, 10, ";")
windmax2 = str_get_field(data2, 10, ";")
windmax1 = str_get_field(data1, 10, ";")
windmax2 = str_get_field(data2, 10, ";")
global1  = str_get_field(data3, 4, ";")
global2  = str_get_field(data4, 4, ";")
diffus1  = str_get_field(data3, 5, ";") 
diffus2  = str_get_field(data4, 5, ";") 


;Berechnet die Anzahl der vorhandenen Werte
N = num(.not.ismissing(dummy2))
N=700

;Trennung von Datum und Uhrzeit
time1    = str_split_csv(dummy1(0:1439)," ", 3)
time2    = str_split_csv(dummy2(0:N-1)," ", 3)
delete(dummy1)
delete(dummy2)


;Datum festlegen
date1     = time1(0,0)
date2     = time2(0,0)


;Trennung von Stunden, Minuten und Sekunden
dummy1  = str_split_csv(time1(0:1439,1), ":", 3)
dummy2  = str_split_csv(time2(0:N-1,1), ":", 3)


; t_h beinhaltet die Stunden
h = dummy1(:,0)
t_h1 = stringtofloat(h)
delete(h)
h = dummy2(:,0)
t_h2 = stringtofloat(h)


; t_m beinhaltet die Minuten
m = dummy1(:,1)
t_m1 = stringtofloat(m)
delete(m)
m = dummy2(:,1)
t_m2 = stringtofloat(m)


;Bestimmung der ersten vollen Stunden, bei der die Skala beginnt
if (N .ge. 60) then
   do i=N-60, N-1

      if (t_m1(i) .eq. 0) then
      k = i
      end if

   end do

else
k = 0
end if


;Berechnung der Zeit in Sekunden vom Zeitpunkt t_h1(N-1):t_m1(N-1) an
do i= 0, 1440

if (i .le. 1440-N) then 
plotzeit(i) = t_h1(i+N-1)*60*60 + t_m1(i+N-1)*60 - (t_h1(N-1)*60*60 + t_m1(N-1)*60) 
else
plotzeit(i) = t_h2(i-(1441-N))*60*60 + t_m2(i-(1441-N))*60 \
            + plotzeit(1440-N) + 60.0 ;+60 wegen dem Zeitpunkt 00:00:00
end if

end do


;******************************************************************************
;Bestimmung der zu plottenden Daten als Float
;plothum = relative Feuchte, plottemp = Temperatur, 
;plotTempTd = Temperatur und Taupunkt
;plotregen  = Niederschlagsrate pro Minute, plotsumme = 24h Niederschlagssumme
;druck = An der Station gemessener Luftdruck 
;plotwindmax = Minutenmaximum des Windes
;plotwindmittel = 10 Minutenmittel des Windes aus den Minutenwerten
;global = Globalstrahlung , diffus = Diffuse Strahlung
;******************************************************************************
do i= 0, 1440

   if (i .le. 1440-N) then 
   plottemp(i)    = stringtofloat(temp1(i+N-1))         
   hum(i)         = hum1(i+N-1) 
   summe          = summe + stringtofloat(regen1(i+N-1))
   plotsumme(i)   = summe
   plotregen(i)   = stringtofloat(regen1(i+N-1)) 
   druck(i)       = stringtofloat(druck1(i+N-1)) 
   wind(i)        = stringtofloat(wind1(i+N-1))
   windmax(i)     = stringtofloat(windmax1(i+N-1)) 
   global(i)      = stringtofloat(global1(i+N-1)) 
   diffus(i)      = stringtofloat(diffus1(i+N-1))                           
   else
   plottemp(i)    = stringtofloat(temp2((i-1)-(1440-N)))
   hum(i)         = hum2((i-1)-(1440-N))
   summe          = summe + stringtofloat(regen2((i-1)-(1440-N)))
   plotsumme(i)   = summe
   plotregen(i)   = stringtofloat(regen2((i-1)-(1440-N)))
   druck(i)       = stringtofloat(druck2((i-1)-(1440-N)))
   wind(i)        = stringtofloat(wind2((i-1)-(1440-N))) 
   windmax(i)     = stringtofloat(windmax2((i-1)-(1440-N)))  
   global(i)      = stringtofloat(global2((i-1)-(1440-N))) 
   diffus(i)      = stringtofloat(diffus2((i-1)-(1440-N)))     
   end if

   ;Damit eine logarithmische Achsendarstellung funktioniert
   if (plotregen(i) .eq. 0) then
   plotregen(i) = 0.000000000001
   end if

   if (plotsumme(i) .eq. 0) then
   plotsumme(i) = 0.000000000001
   end if 

   ;******************************************************************************
   ;Berechnung des zu plottenden Taupunktes über die Magnusformel (T>=0)
   ;******************************************************************************
   es(i) = 6.107 * 10^((7.5 * plottemp(i)) \ ;Sättigungsdampfdruck
      / (237.3 + plottemp(i)))           
 
   e(i)  = stringtofloat(hum(i)) * es(i)     ;aktueller Dampfdruck

   a     = log10(e(i)/6.107)

   Td(i) = (237.3 * a) / (7.5 - a)           ; Nach T umgestellte Magnusformel 

end do
plothum = stringtofloat(hum)*100/2+50  ;Skalierung r. Feuchte anpassen


;******************************************************************************
;Berechnung 10-Minuten Mittelwind und Windmaximum im 10-Minuten-Abstand
;******************************************************************************
do i = 1, 143
plotwindmittel(i) = sum(wind(i*10-5:i*10+5))/11.0
plotwindmax(i)    = max(windmax(i*10-5:i*10+5))
zeitwind(i)       = plotzeit(i*10)
end do
plotwindmittel(0)   = sum(wind(0:10))/11.0
plotwindmax(0)      = max(windmax(0:10))
zeitwind(0)         = plotzeit(0)
plotwindmittel(144) = sum(wind(1440-10:1440))/11.0
plotwindmax(i)      = max(windmax(1440-10:1440))
zeitwind(144)       = plotzeit(1440)


;******************************************************************************
;Berechnung des reduzierten Luftdrucks
;Annahme: polytrope Atmosphäre mit -0,65/100m
;******************************************************************************
gam=0.65/100.0

do i = 0, 1440
Temp_NN(i)   = (plottemp(i) + gam*54) + 273.15
plotdruck(i) = druck(i) * ((plottemp(i)+273.15)/Temp_NN(i))^(-9.81/(gam*287.15))
end do


;******************************************************************************
;Bestimmung Beaufort Contour-Plot
;******************************************************************************
beaufort(0:299,:) = 0
beaufort(300:1599,:) = 1
beaufort(1600:3399,:) = 2
beaufort(3400:5499,:) = 3
beaufort(5500:7999,:) = 4
beaufort(8000:10799,:) = 5
beaufort(10800:13899,:) =6
beaufort(13900:17199,:) = 7
beaufort(17200:20799,:) = 8
beaufort(20800:24499,:) = 9
beaufort(24500:28499,:) = 10
beaufort(28500:32699,:) = 11
beaufort(32700:50000,:) = 12


;******************************************************************************
;Berechnung der Sonnenstunden (Direkte Strahlung > 120 W/m^2) für einen Tag
;******************************************************************************
summe = 0.0

if (N .eq. 1) then
summe = summe
else

do i=0, N-2
c = stringtofloat(global1(i)) - stringtofloat(diffus1(i))

   if (c .ge. 120.0) then
   summe            = summe + 1

   else
   summe = summe

   end if

end do
end if

do i=0, 1440

   if ( i .eq. 1440-(N-1)) then
   summe = 0.0
   else

   if ((global(i) - diffus(i)) .ge. 120.0) then
   summe            = summe + 1
   sonnenstunden(i) = summe / 60.0 

   else
   sonnenstunden(i) = summe / 60.0

   end if
   end if

end do


;******************************************************************************
;2D Feld für den gemeinsame Plots definieren
;******************************************************************************
plotTempTd(0,:) = plottemp(:)          
plotTempTd(1,:) = Td(:) 
plotstrahlung(0,:) = global
plotstrahlung(1,:) = diffus  


;******************************************************************************
;Bestimmung der festen Temperaturskala
;******************************************************************************
dmy = str_split_csv(date2,".", 3)
month = stringtofloat(dmy(0,1))

if (month .le. 8 .and. month .ge. 6) then

   if (min(plottemp) .le. 5) then
   tmin=0
   tmax=30
   else if (max(plottemp) .ge. 35) then
   tmin=10
   tmax=40
   else
   tmin=5
   tmax=35
   end if
   end if

else if (month .le. 11 .and. month .ge. 9) then

   if (min(plottemp) .le. -5) then
   tmin=-10
   tmax=20
   else if (max(plottemp) .ge. 25) then
   tmin=0
   tmax=30
   else
   tmin=-5
   tmax=25
   end if
   end if

else if (month .le. 2 .or. month .ge. 12) then

   if (min(plottemp) .le. -15) then
   tmin=-20
   tmax=10
   else if (max(plottemp) .ge. 15) then
   tmin=-10
   tmax=20
   else
   tmin=-15
   tmax=15
   end if
   end if

else

   if (min(plottemp) .le. -5) then
   tmin=-10
   tmax=20
   else if (max(plottemp) .ge. 25) then
   tmin=10
   tmax=30
   else
   tmin=-5
   tmax=25
   end if
   end if

end if
end if
end if


;******************************************************************************
;Bestimmung der festen Druckskala
;******************************************************************************
if (max(plotdruck) .ge. 1040) then
pmax = 1060
pmin = 1010
else if (min(plotdruck) .le. 990) then
pmax = 1020
pmin = 970
else
pmax = 1040
pmin = 990
end if
end if


;******************************************************************************
;Bestimmung der festen Strahlungsskala
;******************************************************************************
if (max(global) .ge. 1000) then
radmax = 1200
else
radmax = 1000
end if   


;******************************************************************************
;Bestimmung der festen Sonnenstundenskala
;******************************************************************************
if (max(sonnenstunden) .ge. 10) then
sunmax = 12
else
sunmax = 10
end if       

            
;******************************************************************************
;Tickmarks x-Achse.
;******************************************************************************
;Ermittlung der Position der Major Tickmarks der x-Achse
do i = 0, 7
postickx(i) = (60 - t_m2(N-1) )*60 + 60*60*i*3
end do


;Ermittlung der Position der Minor Tickmarks der x-Achse
do i = 0, 23
posminortickx(i) = (60 - t_m2(N-1) )*60 +60*60*i 
end do


;Bestimmung der Beschriftung der Majortickmarks der x-Achse
do i = 0, 7
dummy(i) = (k/60+1)+i*3

if (dummy(i) .ge. 24) then
dummy(i) = dummy(i) - 24
end if

end do 
ticklabelx=flt2string(dummy)


;******************************************************************************
;Tickmarks linke y-Achse, plot1
;******************************************************************************
;Ermittlung der Position der Major Tickmarks der linken y-Achse
do i = 0, 8
postickyL(i)   =  tmin + i*5
end do
ticklabelyL = flt2string(postickyL)


;Ermittlung der Position der Minor Tickmarks der linken y-Achse
do i = 0, 39
posminortickyL(i)   =  tmin + i*1
end do 


;******************************************************************************
;Tickmarks linken y-Achse, plot3
;******************************************************************************
;Ermittlung der Position der Major Tickmarks der linken y-Achse
a = floor(max(plotwindmax))
b = floattointeger(a)
postickyLplot3 = new((/b+2/),float)

do i = 0, b+1
postickyLplot3(i) = i 
end do

;Ermittlung der Position der Minor Tickmarks der linken y-Achse
posminortickyLplot3 = new((/(b +1)*2+1/), float)

do i = 0, (b +1)*2
posminortickyLplot3(i) = 0.5*i 
end do


;******************************************************************************
;Tickmarks rechten y-Achse, plot1
;******************************************************************************
;Ermittlung der Position der Major Tickmarks der rechten y-Achse
do i = 0, 10
postickyR(i)   =  50 + i*5
end do
ticklabelyR = flt2string(postickyR *2 - 100)


;Ermittlung der Position der Minor Tickmarks der rechten y-Achse
do i = 0, 9
posminortickyR(i) = 52.5 + i*5
end do


;******************************************************************************
;Tickmarks rechten y-Achse, plot3
;******************************************************************************
;Ermittlung der Position der Major Tickmarks der rechten y-Achse
a = floor(max(plotwindmax))
b = floattointeger(a)
postickyRplot3 = new((/b/),float)

do i = 0, b-1
postickyRplot3(i) = i+1 
end do

;Ermittlung der Position der Minor Tickmarks der rechten y-Achse
posminortickyRplot3 = new((/(b +1)*2+1/), float)

do i = 0, (b +1)*2
posminortickyRplot3(i) = 0.5*i 
end do


;******************************************************************************
;Öffnen einer workstation zum Erstellen von Gafiken
;******************************************************************************
;("Ausgabetyp wie pdf,eps,png","Name der Workstation")
wks_type = "png"
wks_type at wkWidth = 1300
wks_type at wkHeight = 859 

wks = gsn_open_wks(wks_type,"meteogramm3")


;******************************************************************************
;Grafikeinstellungen
;******************************************************************************
;Types of resources:
; ti = Title(ti) Resources, tm = TickMark (tm) Resources
;Transformation, IrregularTransformation, LogLinTransformation (tr) Resources
;XyPlot (xy) Resources, ViewPoint (vp) Resources, AnnoManager (am) Resources
temptauhum_res  = True                        
temptau_res     = True                       
hum_res         = True                      
rain1_res       = True
rain24_res      = True
windmittel_res  = True
windmax_res     = True
press_res       = True
rad_res         = True
sun_res         = True

contour_res     = True
grid_res        = True

;*************************************l*****************************************
;Ressourcen für Temperatur, Taupunkt,relative Feuchte
;******************************************************************************
temptauhum_res at gsnDraw             = False      ;Verhindert das Zeichen plots ohne den draw-Befehl
temptauhum_res at gsnFrame            = False      ; Plot wird auf einer Seite dargestellt
 
temptauhum_res at gsnXRefLine = plotzeit(1440-(N-1))   ;Zeichnet vertikale Linie bei 0 Uhr

temptauhum_res at tmXBMode                = "Explicit"    ;Eigen Tickmarks definieren
temptauhum_res at tmXBValues              = postickx      ;Position der MainTickmarks
temptauhum_res at tmXBMinorValues         = posminortickx ;Position der MinorTickmarks
temptauhum_res at tmXBLabels              = ticklabelx    ;Beschriftung der Tickmarks
temptauhum_res at tmXBLabelFontHeightF    = 0.01          ;Schriftgröße der Beschriftung
temptauhum_res at tmXBMajorLengthF        = 0.01          ; Majortickmark Länge x-Achse
temptauhum_res at tmXBMinorLengthF        = 0.005         ; Minortickmark Länge x-Achse
temptauhum_res at tmYLMajorLengthF        = 0.01          ; Majortickmark Länge y-Achse
temptauhum_res at tmYLMinorLengthF        = 0.005         ; Majortickmark Länge y-Achse
temptauhum_res at tmYLMajorOutwardLengthF = 0.012          ; Majortickmark verschieben y-Achse

;temptauhum_res at tmXUseBottom            = True          ;obere x-Achse analoge Tickmarks wie Untere
;temptauhum_res at tmYUseLeft              = True          ;rechte Y-Achse analoge Tickmarks wie Linke 

temptauhum_res at trXMinF    = min(plotzeit) ;Begrenzung x-Achse min
temptauhum_res at trXMaxF    = max(plotzeit) ;Begrenzung x-Achse max

temptauhum_res at tiMainFontHeightF  = 0.010 ; Schriftgröße der Überschrift
temptauhum_res at tiYAxisFontHeightF = 0.010 ;Schriftgröße des Achsentitels
temptauhum_res at tiXAxisFontHeightF = 0.010 ;Schriftgröße 


temptauhum_res at vpWidthF  = 0.60 ;Breite der Abbildung
temptauhum_res at vpHeightF = 0.20 ;Höhe der Abbildung

;******************************************************************************
;Kopieren aller gemeinsamer Ressourcen
;******************************************************************************
temptau_res    = temptauhum_res
hum_res        = temptauhum_res
rain1_res      = temptauhum_res
rain24_res     = temptauhum_res
windmittel_res = temptauhum_res
windmax_res    = temptauhum_res
press_res      = temptauhum_res
rad_res        = temptauhum_res
sun_res        = temptauhum_res


;******************************************************************************
;Ressourcen für Temperatur und Taupunkt
;******************************************************************************
temptau_res at tmYMajorGrid           = True  ;Hauptgitter y-Achse
temptau_res at tmYMajorGridThicknessF = 2     ;Dicker der Hauptgitterlinien
temptau_res at tmYMajorGridLineColor  = "gray70"    ;Farbe der Hauptgitterlinien
temptau_res at tmYMinorGrid           = True  ;Nebengitter y-Achse
temptau_res at tmYMinorGridThicknessF = 0.5   ;Dicke der Nebengitterlinien
temptau_res at tmYMinorGridLineColor  = "gray70"    ;Farbe der Nebengitterlinien

temptau_res at tmYLMode             = "Explicit"     ;Eigen Tickmarks definieren
temptau_res at tmYLValues           = postickyL      ;Position der MainTickmarks
temptau_res at tmYLLabels           = ticklabelyL    ;Beschriftung der Tickmarks
temptau_res at tmYLMinorValues      = posminortickyL ;Position der MinorTickmarks
temptau_res at tmXTMajorOutwardLengthF = 0.11         ; Tickmarks verschieben x-Achse
temptau_res at trYMinF  = tmin ;Linke y-Achse nach unten begrenzen
temptau_res at trYMaxF  = tmax ;Rechte y-Achse nach oben begrenzen

temptau_res at tiMainString   = "IMuK Herrenhausen "+date1+" - "+date2 ;Überschrift der Abbildung 
temptau_res at tiMainOffsetYF = 0.01 ;Verschiebung des Titels parallel zur y-Richtung  

temptau_res at xyDashPattern = 0                ; Alle Kurven durchgezogen
temptau_res at xyLineColors  = (/"red","blue"/) ;Kurvenfarbe  
temptau_res at xyLineThicknessF = 2             ;Liniendicke
temptau_res at tmYLLabelFontHeightF    = 0.001  ;TickMark Schriftgröße

;******************************************************************************
;Ressourcen für die relative Feuchte
;******************************************************************************

hum_res at tmYRMode             = "Explicit"     ;Eigen Tickmarks definieren
hum_res at tmYRValues           = postickyR      ;Position der MainTickmarks
hum_res at tmYRLabels           = ticklabelyR    ;Beschriftung der Tickmarks
hum_res at tmYRMinorValues      = posminortickyR ;Position der MinorTickmarks
hum_res at tmYRLabelFontColor   = "black"        ;Farbe der Achsenbeschriftung
hum_res at tmYLLabelFontHeightF = 0.008          ;TickMark Schriftgröße

hum_res at trYMinF  = 0                     ;Interne Skala von 0 bis
hum_res at trYMaxF  = 100                   ;100

hum_res at tiYAxisString      = "Relative Feuchte (%)";Beschriftung neben y-Achse
hum_res at tiYAxisOffsetYF    = 0.070                 ;Beschriftung verschieben
hum_res at tiYAxisFontColor   = "black"                ;Farbe des Achsentitels
hum_res at tiYAxisOffsetYF    = 0.05

hum_res at xyLineColors     = "black" ;Kurvenfarbe 
hum_res at xyLineThicknessF = 2 


;******************************************************************************
;Ressourcen für die 1min-Niederschlagsrate und 24h-Niederschlagssumme
;******************************************************************************
rain1_res at tmYLMode          = "Explicit"                                         ;Eigen Tickmarks definieren
rain1_res at tmYLValues        = (/100,10,1/)                              ;Position der MajorTickmarks
rain1_res at tmYLLabels        = (/"100","10","1"/)                    ;Beschriftung der MajorTickmarks
rain1_res at tmYLMinorValues   = (/900,800,700,600,500,400,300,200,90,80,70,60,50,\ ;Position der MinorTickmarks
                               40,30,20,9,8,7,6,5,4,3,2,0.9,0.8,0.7,0.6,0.5,\
                               0.4,0.3,0.2/)                                     ;Position der MinorTickmarks
rain1_res at tmXBLabelsOn            = False ;Auschalten der Beschriftung x-Achse
rain1_res at tmXBMajorOutwardLengthF = 0.006       ; Tickmarks verschieben x-Achse
rain1_res at tmXBMinorOutwardLengthF = 0.003       ; Tickmarks verschieben x-Achse
rain1_res at tmXBOn                   = False ;Auschalten der unteren Tickmarks

rain1_res at xyYStyle = "Log" ;Logarithmische Skalierung wählen

rain1_res at trYMinF = 0.1  ;y-Achse nach unten begrenzen mit 0,1
rain1_res at trYMaxF = 1000 ;y-Achse nach oben begrenzen mit 1000

rain24_res = rain1_res


;******************************************************************************
;Ressourcen für die 1min-Niederschlagsrate
;******************************************************************************   
rain1_res at tmYMajorGrid           = True  ;Hauptgitter y-Achse
rain1_res at tmYMajorGridThicknessF = 2     ;Dicker der Hauptgitterlinien
rain1_res at tmYMajorGridLineColor  = "gray70"    ;Farbe der Hauptgitterlinien
rain1_res at tmYMinorGrid           = True  ;Nebengitter y-Achse
rain1_res at tmYMinorGridThicknessF = 0.5   ;Dicke der Nebengitterlinien
rain1_res at tmYMinorGridLineColor  = "gray70"    ;Farbe der Nebengitterlinien

rain1_res at tiXAxisString      = ""                          ;x-Achsenbeschriftung abschalten (sonst doppelt)
rain1_res at tiYAxisString      = "Niederschlagsrate (mm/min)";Beschriftung neben y-Achse
rain1_res at tiYAxisFontColor   = "green"                     ;Farbe des Achsentitels


rain1_res at gsnXYBarChart         = True ;Turn on bar chart
rain1_res at gsnXYBarChartBarWidth = 20   ;60(deltax=60s) ist das Maximum in diesem Fall
   
rain1_res at xyLineColors = "green" ; Color for bars


;******************************************************************************
;Ressourcen für die 24h-Niederschlagssumme
;******************************************************************************
rain24_res at tmYRMode          = "Explicit"                                         ;Eigen Tickmarks definieren
rain24_res at tmYRValues        = (/1000,100,10,1,0.1/)                              ;Position der MajorTickmarks
rain24_res at tmYRLabels        = (/"1000","100","10","1","0.1"/)                    ;Beschriftung der MajorTickmarks
rain24_res at tmYRMinorValues   = (/900,800,700,600,500,400,300,200,90,80,70,60,50,\ ;Position der MinorTickmarks
                               40,30,20,9,8,7,6,5,4,3,2,0.9,0.8,0.7,0.6,0.5,\
                               0.4,0.3,0.2/)                                      

rain24_res at tiMainString = " " ;Title des Plots ausschalten 

rain24_res at tiYAxisString      = "24h - Niederschlagssumme (mm)";Beschriftung neben rechter y-Achse
rain24_res at tiYAxisSide        = "Right"                        ;Rechte y-Achse beschriften

rain24_res at tiYAxisFontColor   = "mediumblue" ;Farbe des Achsentitels

rain24_res at xyLineThicknessF =  2          ;Liniendicke 
rain24_res at xyLineColors     = "mediumblue" ;Linienfarbe


;******************************************************************************
;Ressourcen für den Mittelwind und den Windspitzen
;******************************************************************************
windmittel_res at trYMinF                 = 0   ;untere Begrenzung y-Achse
windmittel_res at trYMaxF                 = a+1 ;obere Begrenzung y-Achse
windmittel_res at xyLineThicknessF        = 2   ;Kurvendicke
windmittel_res at tmXBLabelsOn            = False ;Auschalten der Beschriftung x-Achse
windmittel_res at tmXBMajorOutwardLengthF = 0.006       ; Tickmarks verschieben x-Achse
windmittel_res at tmXBMinorOutwardLengthF = 0.003       ; Tickmarks verschieben x-Achse

windmax_res = windmittel_res


;******************************************************************************
;Ressourcen für den Mittelwindind
;******************************************************************************
windmittel_res at tmYLMode        = "Explicit"                      ;Manueller TickMark Modus aktivieren
windmittel_res at tmYLValues      = postickyLplot3                  ;Position Majortickmarks 
windmittel_res at tmYLLabels      = flt2string(postickyLplot3)      ;Beschriftung
windmittel_res at tmYLMinorValues = flt2string(posminortickyLplot3) ;Position MinorTickmarks

windmittel_res at tmYMajorGrid           = True  ;Hauptgitter y-Achse
windmittel_res at tmYMajorGridThicknessF = 2     ;Dicker der Hauptgitterlinien
windmittel_res at tmYMajorGridLineColor  = "gray70"   ;Farbe der Hauptgitterlinien
;windmittel_res at tmYMinorGrid           = True  ;Nebengitter y-Achse
;windmittel_res at tmYMinorGridThicknessF = 0.5   ;Dicke der Nebengitterlinien
;windmittel_res at tmYMinorGridLineColor  = "gray70"   ;Farbe der Nebengitterlinien


windmittel_res at tiYAxisString      = "10-min-Windmittel (m s~S~-1~N~)" ;Beschriftung y-Achse
windmittel_res at tiYAxisFontColor   = 233                               ;Schriftfarbe 
windmittel_res at tiYAxisOffsetXF    = -0.015                            ;Beschriftung verschieben in x-Richtung

windmittel_res at xyLineColors     = 233 ;Kurvenfarbe  


;******************************************************************************
;Ressourcen für Windspitzen
;******************************************************************************
windmax_res at tmYRMode        = "Explicit"                      ;Manueller TickMark Modus aktivieren
windmax_res at tmYRValues      = postickyRplot3                  ;Position Majortickmarks 
windmax_res at tmYRLabels      = flt2string(postickyRplot3)      ;Beschriftung
windmax_res at tmYRMinorValues = flt2string(posminortickyRplot3) ;Position MinorTickmarks

windmax_res at xyLineColors     = 110 ;Kurvenfarbe

windmax_res at tiYAxisString    = "10-min-Windspitzen (m s~S~-1~N~)" ;Beschriftung y-Achse
windmax_res at tiYAxisFontColor = 110                                ;Schriftfarbe 
windmax_res at tiYAxisOffsetXF  = 0.017                        ;Beschriftung verschieben in x-Richtung


;******************************************************************************
;Ressourcen für den Contour-Plot der Beaufort Skala
;******************************************************************************
contour_res at gsnDraw             = False      ;Verhindert das Zeichen plots ohne den draw-Befehl
contour_res at gsnFrame            = False      ; Plot wird auf einer Seite dargestellt

contour_res at trYMinF          = 0          ;untere Begrenzung y-Achse
contour_res at trYMaxF          = (a+1)*1000 ;obere Begrenzung y-Achse

contour_res at tmXBLabelsOn   = False ;Auschalten der Beschriftung x-Achse
contour_res at tmYLLabelsOn   = False ;Ausschalten der Beschriftung y-Achse
contour_res at tmYRBorderOn   = False ;Ausschalten der rechten Achse
contour_res at tmYROn         = False ;Ausschalten der rechten Tickmarks
contour_res at tmYLBorderOn   = False ;Ausschalten der linken Achse
contour_res at tmYLOn         = False ;Ausschalten der linken Tickmarks


contour_res at cnFillOn                   = True  ;Contour Plot mit Farben füllen
contour_res at cnFillColors               = (/"gray95","gray90","gray85","gray80","gray75",\
                                       "gray70","gray65","gray60","gray55","gray50",\
                                       "gray45","gray40"/);Farbauswahl
contour_res at cnLinesOn                  = True
contour_res at cnLineLabelsOn             = True  
contour_res at cnLineLabelFontColor       = "white"
contour_res at cnLineLabelFontHeightF     = 0.02  ;Schriftgröße
contour_res at cnLineLabelConstantSpacingF = 2
contour_res at cnInfoLabelOn              = False ;Löscht die Infoleiste bzgl. des Datenbereichs
contour_res at lbLabelBarOn               = False ;Auschalten der Legende 
contour_res at cnLineLabelPlacementMode   = "Constant"
contour_res at cnLineLabelBackgroundColor = -1 ; Löscht die farbige Box um die Labels
contour_res at cnLineLabelInterval        = 1    ;Jede Abstufung beschriften
contour_res at cnLineDashSegLenF          = 0.17
contour_res at vpWidthF  = 0.60 ;Breite der Abbildung
contour_res at vpHeightF = 0.20 ;Höhe der Abbildung


;******************************************************************************
;Ressourcen für das überlagerte Gitter
;******************************************************************************
grid_res at gsnDraw             = False      ;Verhindert das Zeichen plots ohne den draw-Befehl
grid_res at gsnFrame            = False      ; Plot wird auf einer Seite dargestellt

grid_res at trYMinF          = 0          ;untere Begrenzung y-Achse
grid_res at trYMaxF          = (a+1)*1000 ;obere Begrenzung y-Achse

grid_res at tmXBLabelsOn   = False ;Auschalten der Beschriftung x-Achse
grid_res at tmXBBorderOn   = False ;Auschalten der unteren x-Achse
grid_res at tmXBOn         = False ;Auschalten der unteren Tickmarks
grid_res at tmYLLabelsOn   = False ;Ausschalten der Beschriftung y-Achse
grid_res at tmYRBorderOn   = False ;Ausschalten der rechten Achse
grid_res at tmYROn         = False ;Ausschalten der rechten Tickmarks
grid_res at tmYLBorderOn   = False ;Ausschalten der linken Achse
grid_res at tmYLOn         = False ;Ausschalten der linken Tickmarks

grid_res at cnLinesOn                  = False
grid_res at cnLineLabelsOn             = False  

grid_res at vpWidthF  = 0.60 ;Breite der Abbildung
grid_res at vpHeightF = 0.20 ;Höhe der Abbildung



;******************************************************************************
;Ressourcen für Strahlung und Sonnenstunden
;******************************************************************************
sun_res at tiXAxisString      = "UTC" ;Beschriftung unter der x-Achse

rad_res = sun_res


;******************************************************************************
;Ressourcen für die Strahlung
;******************************************************************************
rad_res at tmYMajorGrid           = True  ;Hauptgitter y-Achse
rad_res at tmYMajorGridThicknessF = 2     ;Dicker der Hauptgitterlinien
rad_res at tmYMajorGridLineColor  = "gray70"    ;Farbe der Hauptgitterlinien
rad_res at tmYMinorGrid           = True  ;Nebengitter y-Achse
rad_res at tmYMinorGridThicknessF = 0.5   ;Dicke der Nebengitterlinien
rad_res at tmYMinorGridLineColor  = "gray70"    ;Farbe der Nebengitterlinien
rad_res at tmYLMode          = "Manual" ;Manueller TickMark Modus aktivieren
rad_res at tmYLTickStartF    = 0        ;Position des ersten Majortickmarks
rad_res at tmYLTickEndF      = 900     ;Position des letzten MajorTickmarks
rad_res at tmYLTickSpacingF  = 100      ;Abstand zwischen den Majortickmarks
rad_res at tmYLMinorPerMajor = 1        ;Verhältnis Minortickmark zu Majort.

rad_res at trYMinF = 0    ;y-Achse nach unten begrenzen mit 0,1
rad_res at trYMaxF = 1000 ;y-Achse nach oben begrenzen mit 1000

rad_res at xyLineColors = (/"red","blue"/) ;Kurvenfarben
rad_res at xyLineThicknessF = 1          ;Kurvendicke
rad_res at xyDashPattern = 0                ; Alle Kurven durchgezogen


;******************************************************************************
;Ressourcen für die Sonnenstunden
;******************************************************************************
sun_res at tmYRMode          = "Manual"  ;Manueller TickMark Modus aktivieren
sun_res at tmYRTickStartF    = 0         ;Position des ersten Majortickmarks
sun_res at tmYRTickEndF      = 10       ;Position des letzten MajorTickmarks
sun_res at tmYRTickSpacingF  = 1        ;Abstand zwischen den Majortickmarks
sun_res at tmYRMinorPerMajor = 1         ;Verhältnis Minortickmark zu Majort.
;sun_res at tmYLLabelFontHeightF    = 0.001           ;TickMark Schriftgröße

sun_res at trYMinF = 0  ;y-Achse nach unten begrenzen mit 0,1
sun_res at trYMaxF = 10 ;y-Achse nach oben begrenzen mit 1000

sun_res at tiYAxisString     = "Sonnenstunden (h)";Beschriftung neben y-Achsenbeschriftung
sun_res at tiYAxisFontColor = "orange"           ;Farbe der y-Achsenbeschriftung

sun_res at xyLineThicknessF = 2 ;Kurvendicke
sun_res at xyLineColors     = "orange" ;Kurvenfarben


;******************************************************************************
;Ressourcen für den Druck
;******************************************************************************
press_res at tmYLMode          = "Manual"  ;Manueller TickMark Modus aktivieren
press_res at tmYLTickStartF    = pmin ;Position des ersten Majortickmarks
press_res at tmYLTickEndF      = pmax ;Position des letzten MajorTickmarks
press_res at tmYLTickSpacingF  = 10        ;Abstand zwischen den Majortickmarks
press_res at tmYRMinorPerMajor = 3        ;Verhältnis Minortickmark zu Majort.

press_res at trYMinF = pmin  ;y-Achse nach unten begrenzen mit 0,1
press_res at trYMaxF = pmax ;y-Achse nach oben begrenzen mit 1000

press_res at tiYAxisString = "Luftdruck (hPa)";Beschriftung neben y-Achsenbeschriftung

press_res at xyLineThicknessF = 2 ;Kurvendicke

press_res at amOrthogonalPosF = 0.6 ; Position der y-Achse verschieben in x-Richtung


;******************************************************************************
;Erstellen der Plots
;******************************************************************************
plot1 = gsn_csm_xy2(wks,plotzeit,plotTempTd(0:1,:),plothum,temptau_res,hum_res)
plot2 = gsn_csm_xy2(wks,plotzeit,plotregen,plotsumme,rain1_res,rain24_res)
plot3 = gsn_csm_xy2(wks,zeitwind,plotwindmittel,plotwindmax,windmittel_res,windmax_res)
plot4 = gsn_csm_xy3(wks,plotzeit,plotstrahlung(0:1,:),sonnenstunden,plotdruck,rad_res,sun_res,press_res)
plot5 = gsn_csm_contour(wks,beaufort,contour_res)
plot6 = gsn_csm_contour(wks,beaufort,grid_res)


;******************************************************************************
;Textressourcen
;******************************************************************************
tx1res = True         
tx2res = True
tx3res = True
tx4res = True

;plot 1
tx1res at txAngleF = 90         ;Drehung des Textes
tx1res at txFontHeightF = 0.01  ;Steuert die Schriftgröße
tx1res at txFontColor = "red"   ;Farbwahl für Text
;tx1res at txPosXF     = 0.092    ;Verschiebung in x-Richtung

tx2res = tx1res             ;Ressourcenübergabe
tx2res at txFontColor = "blue" ;Farbwahl für Text

;plot4
tx3res at txAngleF = 90         ;Drehung des Textes
tx3res at txFontHeightF = 0.01 ;Steuert die Schriftgröße
tx3res at txFontColor = "red"     ;Farbwahl für Text
;tx3res at txPosXF     = 0.078    ;Verschiebung in x-Richtung

tx4res = tx3res ;Ressourcenübergabe

tx4res at txFontColor = "blue"    ;Farbwahl für Text
;tx4res at txPosXF     = 0.098    ;Verschiebung in x-Richtung

gsn_text_ndc(wks,"Temperatur (~F35~J~F21~C)",0.08,0.88,tx1res) 
gsn_text_ndc(wks,"Taupunkt",0.08,0.78,tx2res) 
gsn_text_ndc(wks,"Globalstrahlung (W m~S~-2~N~)",0.075,0.18,tx3res) 
gsn_text_ndc(wks,"Diffuse Strahlung (W m~S~-2~N~)",0.05,0.18,tx4res) 


;******************************************************************************
;Darstellen der Plots
;******************************************************************************
;Set up resource lists for attaching (anknüpfen/anhängen) the plot.
;The res1 will apply to the base plot, and the res2 to the plots being 
;attached. These resources lists are *not* for changing things like line color,
;but for changing things like whether the plots are maximized, and which axis
;they are attached on.
resc1                    = True
resc2                    = True
res1                     = True
res2                     = True
res2 at gsnAttachPlotsXAxis = True

; xy1 will be the base plot.
contour1 = gsn_add_annotation(plot5,plot3,resc1)
contour2 = gsn_add_annotation(plot6,plot2,resc1) 
plot    = gsn_attach_plots(plot1,(/plot6,plot5,plot4/),res1,res2)


draw(plot1)  ;All four plots will be drawn.
frame(wks)



end


More information about the ncl-talk mailing list