iconPlot 0.0.9 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: df59cf8fcb883833c0355e39533c5da8e3075d25
4
- data.tar.gz: 8346f47771d4ce6573732e64986e928a05eb9878
3
+ metadata.gz: 721ca643ed23cd01c6f21a952ed38eee1ea291d6
4
+ data.tar.gz: 451c4f7948551d45b9f5ccd535cf197ebcbeb402
5
5
  SHA512:
6
- metadata.gz: 6b0086f6cb9c924a88b124b560298971805f810437da1bd3b0682f3339aca3bc7a36af54ae8d5f976df00710cc7aa951e50061b483de699b605dde68593187b9
7
- data.tar.gz: 25de6154c6143f65914063ae23a1e4096e57fbae0e4c5636bed530f456c5f8e8206186e0b254de92a436d19feebcc16f30e6388232ae51a7f53cc0259a553c3f
6
+ metadata.gz: c08f50348bda047c4425777138502005cf78f94113de4586c8384eb27aa8dd4fcda764eb78c9eb792194bd3b2fb0e7750efb3cdfcb9c6341bfb9ea67442b9549
7
+ data.tar.gz: ceb46c6e875d0efef1beffb5eabd33e0c4eb88f0af8d8dfeeed6125c20e122878e033ab4ed0480bfef28ccaf4a76d912c279d5b8735d4d61bd04ac423aa94074
data/gemspec CHANGED
@@ -3,7 +3,7 @@ $:.unshift File.join(File.dirname(__FILE__),"..","lib")
3
3
 
4
4
  spec = Gem::Specification.new do |s|
5
5
  s.name = "iconPlot"
6
- s.version = '0.0.9'
6
+ s.version = '0.1.0'
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.files = ["lib/iconPlot.rb"] + ["gemspec"] + ["bin/nclsh"] + Dir.glob("lib/*ncl")
9
9
  s.executables << 'nclsh'
@@ -2,6 +2,7 @@ require 'fileutils'
2
2
  require 'cdo'
3
3
  require 'extcsv'
4
4
  require 'shellwords'
5
+ require 'parallel'
5
6
 
6
7
  class IconPlot < Struct.new(:caller,:plotter,:libdir,:otype,:display,:cdo,:debug,:isIcon)
7
8
  VERSION = '0.0.4'
@@ -9,13 +10,15 @@ class IconPlot < Struct.new(:caller,:plotter,:libdir,:otype,:display,:cdo,:debug
9
10
  def initialize(*args)
10
11
  super(*args)
11
12
 
13
+ cdoPath = ENV['CDO'].nil? ? 'cdo' : ENV['CDO']
14
+
12
15
  defaults = {
13
16
  :caller => Gem.bin_path('iconPlot','nclsh'),
14
17
  :plotter => Gem.find_files("icon_plot.ncl")[0],
15
18
  :libdir => File.dirname(Gem.find_files("icon_plot.ncl")[0]),
16
19
  :otype => 'png',
17
20
  :display => 'sxiv',
18
- :cdo => ENV['CDO'].nil? ? 'cdo' : ENV['CDO'],
21
+ :cdo => Cdo.new(cdo: cdoPath),
19
22
  :isIcon => true,
20
23
  :debug => false
21
24
  }
@@ -41,7 +44,12 @@ class IconPlot < Struct.new(:caller,:plotter,:libdir,:otype,:display,:cdo,:debug
41
44
  cmd << " -altLibDir=#{self.libdir} #{varIdent} -iFile=#{ifile} -oFile=#{ofile} -oType=#{self.otype}"
42
45
  cmd << " -isIcon" if self.isIcon
43
46
  cmd << " -DEBUG" if self.debug
44
- opts.each {|k,v| cmd << " -"<< [k,v].join('=') }
47
+ opts.each {|k,v|
48
+ v = '"'+v+'"' if (:tStrg == k and not ['"',"'"].include?(v.strip[0]))
49
+ v = 'True' if v == true
50
+ v = 'False' if v == false
51
+ cmd << " -"<< [k,v].join('=')
52
+ }
45
53
  puts cmd if self.debug
46
54
  out = IO.popen(cmd).read
47
55
  puts out if self.debug
@@ -67,8 +75,8 @@ class IconPlot < Struct.new(:caller,:plotter,:libdir,:otype,:display,:cdo,:debug
67
75
  warn "Variable cannot be found!"
68
76
  exit -1
69
77
  end
70
- Cdo.debug = true
71
- unit = Cdo.showunit(:input => "-selname,#{varname} #{ifile}").first
78
+ self.cdo.debug = true
79
+ unit = self.cdo.showunit(:input => "-selname,#{varname} #{ifile}").first
72
80
  ExtCsvDiagram.plot_xy(icon,"datetime",varname,
73
81
  "ICON: #{operation} on #{varname} (file:#{ifile})", # Change title here
74
82
  :label_position => 'below',:skipColumnCheck => true,
@@ -85,7 +93,7 @@ class IconPlot < Struct.new(:caller,:plotter,:libdir,:otype,:display,:cdo,:debug
85
93
  def scatterPlot(ifile,ofile,xVarname,yVarname,opts={})
86
94
  # is there a variable which discribes different regions in the ocean
87
95
  regionVar = opts[:regionVar].nil? ? 'rregio_c' : opts[:regionVar]
88
- hasRegion = Cdo.showname(:input => ifile).join.split.include?(regionName)
96
+ hasRegion = self.cdo.showname(:input => ifile).join.split.include?(regionName)
89
97
  unless hasRegion
90
98
  warn "Variable '#{regionName}' for showing regions is NOT found in the input '#{ifile}'!"
91
99
  warn "Going on without plotting regions!"
@@ -100,7 +108,7 @@ class IconPlot < Struct.new(:caller,:plotter,:libdir,:otype,:display,:cdo,:debug
100
108
  FileUtils.rm(file) if File.exists?(file)
101
109
  end
102
110
  def show(*files)
103
- files.flatten.each {|file| out = IO.popen("#{self.display} #{file} &").read; puts out if self.debug }
111
+ Parallel.map(files.flatten) {|file| out = IO.popen("#{self.display} #{file}").readlines; puts out.join if self.debug }
104
112
  end
105
113
  def defaultPlot(ifile,ofile,opts={})
106
114
  show(scalarPlot(ifile,ofile,'T',opts))
@@ -115,8 +123,8 @@ class IconPlot < Struct.new(:caller,:plotter,:libdir,:otype,:display,:cdo,:debug
115
123
 
116
124
  # read the date
117
125
  IO.popen("echo 'date|time|depth|#{varname}' > #{dataFile}")
118
- Cdo.debug = true
119
- Cdo.outputkey('date,time,level,value',
126
+ self.cdo.debug = true
127
+ self.cdo.outputkey('date,time,level,value',
120
128
  :input => "-#{operation} -selname,#{varname} #{ifile} >>#{dataFile} 2>/dev/null")
121
129
 
122
130
  # postprocessing for correct time values
@@ -25,19 +25,38 @@
25
25
  else
26
26
  ; --- Use the configuration file from the commandline option
27
27
  if ( isvar("configFile") ) then
28
- if (isfilepresent(configFile)) then
29
- print("Found configfile:"+configFile)
30
- loadscript(configFile)
28
+ print(configFile)
29
+ print(""+configFile)
30
+ if("6.2.1" .eq. get_ncl_version()) then
31
+ if (fileexists(configFile)) then
32
+ print("Found configfile:"+configFile)
33
+ loadscript(configFile)
34
+ else
35
+ print("Could NOT find configfile:"+configFile)
36
+ exit()
37
+ end if
31
38
  else
32
- print("Could NOT find configfile:"+configFile)
33
- exit()
39
+ if (isfilepresent(configFile)) then
40
+ print("Found configfile:"+configFile)
41
+ loadscript(configFile)
42
+ else
43
+ print("Could NOT find configfile:"+configFile)
44
+ exit()
45
+ end if
34
46
  end if
35
47
  else
36
48
  ; --- Use the default config file
37
49
  CONFIGFILE = getenv("HOME")+"/.icon_plot.rc"
38
- if (isfilepresent(CONFIGFILE)) then
39
- print("Found configfile:"+CONFIGFILE)
40
- loadscript(CONFIGFILE)
50
+ if("6.2.1" .eq. get_ncl_version()) then
51
+ if (fileexists(CONFIGFILE)) then
52
+ print("Found configfile:"+CONFIGFILE)
53
+ loadscript(CONFIGFILE)
54
+ end if
55
+ else
56
+ if (isfilepresent(CONFIGFILE)) then
57
+ print("Found configfile:"+CONFIGFILE)
58
+ loadscript(CONFIGFILE)
59
+ end if
41
60
  end if
42
61
  end if
43
62
  end if
@@ -142,6 +161,7 @@
142
161
  print("; hovCut : plot hovmoeller diagram, input is 'levIndex' and 'hovLC' 'hovRC'")
143
162
  print("; hovLC, hovRC : start and end point of a section for hovCut - currently same longitude allowed only,")
144
163
  print("; the Northern and Southern values are used as plotting boundaries; switches to hovCut")
164
+ print("; makeYLinear : enforce to linearize the yaxis of section and hovmoeller plots (default:False)")
145
165
  print("; mapLine : (logical) draws continent lines on the plot (foreground/transparent)")
146
166
  print("; maskName : variable to mask with. maskName is expected NOT to have time dimension")
147
167
  print("; 'maskName=" + dq + "none" + dq + "' is same as default (no mask variable)")
@@ -161,6 +181,7 @@
161
181
  print("; markCells : mark cell centers with dots")
162
182
  print("; showNcd : display NDC Grid to find Normalized Device Coordinates on the plot")
163
183
  print("; k2c : if True, perform Kelvin2Celsius shift (default:True)")
184
+ print("; remapOperator : interpolation operator for internal lonlat representation of icon grid (remapnn,remapcon[default])")
164
185
  print(";")
165
186
  print("; ATMOSPHERE STUFF:")
166
187
  print("; atmLev : chooses vertical plot levels for atmosphere input (h: height,p:pressure,m:modellevel,default:p)")
@@ -231,6 +252,7 @@
231
252
  if (.not. isvar("withLines")) withLines = True end if
232
253
  if (.not. isvar("withLineLabels")) withLineLabels = False end if
233
254
  if (.not. isvar("k2c")) k2c = True end if
255
+ if (.not. isvar("remapOperator")) remapOperator = "remapcon" end if
234
256
  if (.not. isvar("isIcon")) isIcon = False end if
235
257
 
236
258
  if (.not.isvar("mapType")) mapType = "lonlat" end if
@@ -244,6 +266,7 @@
244
266
  if (.not.isvar("centerLon")) centerLon = -30. end if
245
267
  if (.not.isvar("centerLat")) centerLat = 20. end if
246
268
  if (.not.isvar("satDist")) satDist = 20. end if
269
+ if (.not.isvar("makeYLinear")) makeYLinear = False end if
247
270
  if (.not.isvar("mapLine")) mapLine = True end if
248
271
  if (.not.isvar("resolution")) resolution = "r90x45" end if
249
272
  if (.not.isvar("vecRefLength")) vecRefLength = 8.0 end if
@@ -399,14 +422,12 @@
399
422
  else
400
423
  ; perform some remapping to a regular grid because ncl cannot draw vector
401
424
  ; from unstructured grids
402
- ; TODO addVars=(/ "PS","PHIS"/)
403
- operator = "remapnn"
404
- remapFilename = setRemapFilename(iFile,iType,resolution,atmLev,operator)
425
+ remapFilename = setRemapFilename(iFile,iType,resolution,atmLev,remapOperator)
405
426
  print("remapFilename:"+remapFilename)
406
427
  if (.not. checkRemappedFile(iFile,remapFilename,ivarname,iType,atmLev,atmPLevs,atmHLevs) ) then
407
428
  addVars=(/""/)
408
- print("PERFORM remapnn again!")
409
- remapForVecPlot(iFile,remapFilename,resolution,useMask,plotMode,DEBUG,addVars,operator)
429
+ print("PERFORM "+remapOperator+" again!")
430
+ remapForVecPlot(iFile,remapFilename,resolution,useMask,plotMode,DEBUG,addVars,remapOperator)
410
431
  end if
411
432
  rFile = addfile( remapFilename+".nc", "r" )
412
433
  end if
@@ -570,7 +591,7 @@
570
591
  drawNDCGrid(wks)
571
592
  end if
572
593
 
573
- ResC = setDefaultResource(True,withLines,withLineLabels,fillMode,mapType)
594
+ ResC = setDefaultResource(True,withLines,withLineLabels,fillMode,mapType,makeYLinear)
574
595
 
575
596
  if (.not. userColors) setDefaultColors(ResC,minVar,maxVar,DEBUG) end if
576
597
 
@@ -695,8 +716,8 @@
695
716
  ;plotGrid(wks,plot,var,coords(1,:),bounds,File,ResC,DEBUG)
696
717
  boundslon = bounds(0,:,:)
697
718
  boundslat = bounds(1,:,:)
698
- pres = plotGrid_62(wks,plot,var,boundslon,boundslat)
699
- gsid = gsn_add_polygon(wks,plot,ndtooned(boundslon),ndtooned(boundslat),pres)
719
+ presGrid = plotGrid_62(wks,plot,var,boundslon,boundslat)
720
+ gsid = gsn_add_polygon(wks,plot,ndtooned(boundslon),ndtooned(boundslat),presGrid)
700
721
  ; }}}
701
722
  ;=======================================================================================
702
723
  end if
@@ -747,7 +768,7 @@
747
768
  end if
748
769
  points = ispan(0,secPoints-1,1)*1.0
749
770
 
750
- res = setDefaultSectionResource(points,secPoints,secLC,secRC,withLines,withLineLabels)
771
+ res = setDefaultSectionResource(points,secPoints,secLC,secRC,withLines,withLineLabels,makeYLinear)
751
772
  setAutomaticPlotCaptions(res,plotMode,varName,File,iFile,timeStep,levIndex,iType,atmLev,k2c)
752
773
  setLevels(selMode,res,minVar,maxVar,scaleLimit,numLevs,DEBUG)
753
774
  setSectionVertLabel(res,iType,atmLev)
@@ -907,7 +907,7 @@ end
907
907
  ;---------------------------------------------------------------
908
908
  ; Create a default NCL resource
909
909
  undef("setDefaultResource")
910
- function setDefaultResource(verticallabelbar,withLines,withLineLabels,fillmode,maptype)
910
+ function setDefaultResource(verticallabelbar,withLines,withLineLabels,fillmode,maptype,makeYLinear)
911
911
  begin
912
912
  resource = True
913
913
  resource@gsnMaximize = False
@@ -960,11 +960,14 @@ begin
960
960
  resource@mpGreatCircleLinesOn = True
961
961
  resource@stMinArrowSpacingF = 0.001
962
962
 
963
+ ; linearize y axis if desired ===============================================
964
+ resource@gsnYAxisIrregular2Linear = makeYLinear
965
+
963
966
  return resource
964
967
  end
965
968
  ;---------------------------------------------------------------
966
969
  undef("setDefaultSectionResource")
967
- function setDefaultSectionResource(points,secpoints,seclc,secrc,withLines,withLineLabels)
970
+ function setDefaultSectionResource(points,secpoints,seclc,secrc,withLines,withLineLabels,makeYLinear)
968
971
  begin
969
972
  resource = True; plot mods desired
970
973
  resource@gsnFrame = False; don't turn page yet
@@ -986,7 +989,8 @@ begin
986
989
  resource@lbLabelAutoStride = True; nice label bar label stride
987
990
  resource@gsnSpreadColors = True; use full range of colormap
988
991
  resource@lbOrientation = "vertical"; vertical label bar
989
- resource@pmLabelBarOrthogonalPosF = -0.05; move label bar closer to plot
992
+ resource@pmLabelBarOrthogonalPosF = -0.04; move label bar closer to plot
993
+ resource@lbTitleString = "kg/m^3"
990
994
  resource@lbTitlePosition = "Bottom"
991
995
  ; resource@gsnYAxisIrregular2Log = True
992
996
 
@@ -1007,6 +1011,10 @@ begin
1007
1011
 
1008
1012
  ; lines/labels inside the plot ================================================
1009
1013
  setLineAndLineLabels(resource,withLines,withLineLabels)
1014
+
1015
+ ; linearize y axis if desired ===============================================
1016
+ resource@gsnYAxisIrregular2Linear = makeYLinear
1017
+
1010
1018
  return resource
1011
1019
  end
1012
1020
  ;---------------------------------------------------------------
@@ -1018,7 +1026,7 @@ begin
1018
1026
  resource@vcVectorDrawOrder = "Postdraw"
1019
1027
  resource@vcFillArrowWidthF = 12.0
1020
1028
  resource@lbOrientation = "Vertical"
1021
- resource@lbTitleString = "C"
1029
+ resource@lbTitleString = "kg/m^3"
1022
1030
  resource@lbTitlePosition = "Left"
1023
1031
  resource@cnInfoLabelOn = False
1024
1032
  resource@lbTitleFontHeightF = 0.02
@@ -1031,7 +1039,7 @@ undef("setDefaultColors")
1031
1039
  procedure setDefaultColors(resource,minval,maxval,debug)
1032
1040
  begin
1033
1041
  ; white is color 135
1034
- if ((minval*maxval) .LT. 0.0) then ; data goes fro positiv to negative or vs.
1042
+ if ((minval*maxval) .LT. 0.0) then ; data goes from positiv to negative or vs.
1035
1043
  if (abs(maxval) .GT. abs(minval)) then
1036
1044
  resource@gsnSpreadColorStart = 135 - toint(126*(abs(minval)/abs(maxval)))
1037
1045
  resource@gsnSpreadColorEnd = 255
@@ -1194,7 +1202,7 @@ end
1194
1202
  undef("setSectionVertLabel")
1195
1203
  procedure setSectionVertLabel(resource,itype,atmlev)
1196
1204
  begin
1197
- resource@lbTitleString = "[C]"
1205
+ resource@lbTitleString = "[kg/m^3]"
1198
1206
  label = ""
1199
1207
  reversYAxis = True
1200
1208
  if (itype .eq. "atm") then
@@ -1324,10 +1332,10 @@ undef("checkMinMaxVar")
1324
1332
  procedure checkMinMaxVar(minvar,maxvar)
1325
1333
  begin
1326
1334
  if ( (.not. ismissing(minvar)) .and. (.not. ismissing(maxvar)) ) then
1327
- if ( minvar .gt. maxvar ) then
1328
- print("minVar has to be larger than maxVar")
1329
- exit
1330
- end if
1335
+ if ( minvar .gt. maxvar ) then
1336
+ print("minVar has to be larger than maxVar")
1337
+ exit
1338
+ end if
1331
1339
  end if
1332
1340
  end
1333
1341
  ;---------------------------------------------------------------
@@ -1359,6 +1367,12 @@ begin
1359
1367
  lonlat = str_split(variable@coordinates," ")
1360
1368
  lon = lonlat(0)
1361
1369
  lat = lonlat(1)
1370
+ ; check for real names of coordinate; order is not pre-defines
1371
+ lonIsLon = str_match(lon,"lon")
1372
+ if (ismissing(lonIsLon)) then
1373
+ lon = lonlat(1)
1374
+ lat = lonlat(0)
1375
+ end if
1362
1376
  else
1363
1377
  lon = "lon"
1364
1378
  lat = "lat"
@@ -1930,24 +1944,26 @@ begin
1930
1944
  "cnFillColors" : colors
1931
1945
  end getvalues
1932
1946
  ;---All triangles less than lowest level
1933
- vind = ind(var .lt. levels(0))
1934
- if(.not.all(ismissing(vind))) then
1935
- gscolors(vind) = colors(0)
1947
+ vindStart = ind(var .lt. levels(0))
1948
+ if(.not.all(ismissing(vindStart))) then
1949
+ gscolors(vindStart) = colors(0)
1936
1950
  end if
1937
1951
 
1938
1952
  ;---All triangles inbetween levels
1939
1953
  do i = 1, dimsizes(levels) - 1
1940
- vind := ind(var .ge. levels(i-1) .and. var .lt. levels(i))
1941
- if(.not.all(ismissing(vind))) then
1942
- gscolors(vind) = colors(i)
1954
+ ;print("index = "+s)
1955
+ ;print(dimsizes(ind(var .ge. levels(i-1) .and. var .lt. levels(i))))
1956
+ vindMiddle = ind(var .ge. levels(i-1) .and. var .lt. levels(i))
1957
+ if(.not.all(ismissing(vindMiddle))) then
1958
+ gscolors(vindMiddle) = colors(i)
1943
1959
  end if
1960
+ delete(vindMiddle)
1944
1961
  end do
1945
1962
 
1946
1963
  ;---All triangles higher than highest level
1947
- delete(vind)
1948
- vind = ind(var .ge. levels(dimsizes(levels)-1))
1949
- if(.not.all(ismissing(vind))) then
1950
- gscolors(vind) = colors(dimsizes(levels)-1)
1964
+ vindEnd = ind(var .ge. levels(dimsizes(levels)-1))
1965
+ if(.not.all(ismissing(vindEnd))) then
1966
+ gscolors(vindEnd) = colors(dimsizes(levels)-1)
1951
1967
  end if
1952
1968
 
1953
1969
  pres@gsColors = gscolors
@@ -1,52 +1,51 @@
1
- $:.unshift File.join(File.dirname(__FILE__),"..","lib")
2
1
  require "minitest/autorun"
2
+ require 'parallelQueue'
3
+ $:.unshift File.join(File.dirname(__FILE__),"..","lib")
3
4
  require "iconPlot"
4
5
 
5
6
  class TestIconPlot < Minitest::Test
6
7
 
7
- CALLER = "/home/ram/src/git/icon/scripts/postprocessing/tools/contrib/nclsh"
8
- PLOTTER = "/home/ram/src/git/icon/scripts/postprocessing/tools/icon_plot.ncl"
9
- PLOTLIB = "/home/ram/src/git/icon/scripts/postprocessing/tools"
8
+ CALLER = "/home/ram/src/iconPlot/contrib/nclsh"
9
+ PLOTTER = "/home/ram/src/iconPlot/icon_plot.ncl"
10
+ PLOTLIB = "/home/ram/src/iconPlot"
10
11
  LS = 'ls -crtlh'
11
- OCE_PLOT_TEST_FILE = ENV['HOME']+'/data/icon/oce.nc'
12
- OCELSM_PLOT_TEST_FILE = ENV['HOME']+'/data/icon/oce_lsm.nc'
13
- OCELONG_PLOT_TEST_FILE = ENV['HOME']+'/data/icon/oceLong.nc'
14
- ATM_PLOT_TEST_FILE = ENV['HOME']+'/data/icon/atm.nc'
15
- OCE_REGPLOT_TEST_FILE = ENV['HOME']+'/data/icon/regular_oce.nc' #remapnn,r180x90
16
- ATM_REGPLOT_TEST_FILE = ENV['HOME']+'/data/icon/regular_atm.nc' #remapnn,n63 (no sections), r180x90 (with sections)
12
+ OCE_PLOT_TEST_FILE = ENV['HOME']+'/local/data/icon/oce.nc'
13
+ OCELSM_PLOT_TEST_FILE = ENV['HOME']+'/local/data/icon/oce_lsm.nc'
14
+ OCELONG_PLOT_TEST_FILE = ENV['HOME']+'/local/data/icon/oceLong.nc'
15
+ ATM_PLOT_TEST_FILE = ENV['HOME']+'/local/data/icon/atm.nc'
16
+ OCE_REGPLOT_TEST_FILE = ENV['HOME']+'/local/data/icon/regular_oce.nc' #remapnn,r180x90
17
+ ATM_REGPLOT_TEST_FILE = ENV['HOME']+'/local/data/icon/regular_atm.nc' #remapnn,n63 (no sections), r180x90 (with sections)
17
18
  OFMT = 'png'
18
19
  PLOT_CMD = 'sxiv'
19
20
  CDO = ENV['CDO'].nil? ? 'cdo' : ENV['CDO']
20
- if 'thingol' == `hostname`.chomp
21
+ if 'luthien' == `hostname`.chomp
21
22
  def test_simple
22
23
  ip = IconPlot.new(CALLER,PLOTTER,PLOTLIB,OFMT,PLOT_CMD,CDO,true)
23
24
  ip.debug = true
24
25
  ofile = 'test_icon_plot'
25
- ip.show(ip.scalarPlot(OCE_PLOT_TEST_FILE, ofile+'_00',"T",:levIndex => 0))
26
- ip.show(ip.scalarPlot(OCE_PLOT_TEST_FILE, ofile+'_01',"T",:levIndex => 2))
27
- ip.show(ip.vectorPlot(OCE_PLOT_TEST_FILE, ofile+'_02',"u-veloc v-veloc",:levIndex => 2))
28
- ip.show(ip.scalarPlot(OCE_PLOT_TEST_FILE, ofile+'_03',"T",:vecVars => "u-veloc,v-veloc",:levIndex => 2,:mapType => "ortho"))
29
- ip.show(ip.scalarPlot(OCE_PLOT_TEST_FILE, ofile+'_04',"T",:vecVars => "u-veloc,v-veloc",:levIndex => 2,:secLC => "-20,-60", :secRC => "-20,60"))
30
- ip.show(ip.scalarPlot(OCELSM_PLOT_TEST_FILE,ofile+'_05',"T",:vecVars => "u-veloc,v-veloc",:levIndex => 2,:secLC => "-20,-60", :secRC => "-20,60",:maskName => 'wet_c'))
31
- ip.show(ip.scalarPlot(OCELSM_PLOT_TEST_FILE,ofile+'_05',"T",:vecVars => "u-veloc,v-veloc",:levIndex => 2,:secLC => "-50,-60", :secRC => "0,60",:maskName => 'wet_c',:secMode => 'circle'))
32
- ip.show(ip.scalarPlot(OCELSM_PLOT_TEST_FILE,ofile+'_06',"T",:vecVars => "u-veloc,v-veloc",:levIndex => 2,:maskName => 'wet_c'))
33
- ip.show(ip.scalarPlot(OCELSM_PLOT_TEST_FILE,ofile+'_07',"T",:levIndex => 2,:maskName => 'wet_c'))
34
- ip.isIcon = false
35
- ip.show(ip.scalarPlot("remapnn_r90x45_oce.nc","reg_"+ofile,"T",:levIndex => 2,:mapType => "ortho"))
36
- ip.show(ip.scalarPlot("remapnn_r90x45_oce.nc","reg_"+ofile,"T",:vecVars => "u-veloc,v-veloc",:levIndex => 2,:mapType => "ortho"))
37
- ip.show(ip.scalarPlot("remapnn_r90x45_oce_lsm.nc","reg_lsm_"+ofile,"T",:levIndex => 2,:mapType => "ortho",:maskName => 'wet_c'))
38
- ip.show(ip.scalarPlot("remapnn_r90x45_oce_lsm.nc","reg_lsm_"+ofile,"wet_c",:mapType => "ortho"))
39
- ip.show(ip.scalarPlot("remapnn_r90x45_oce_lsm.nc","reg_lsm_"+ofile,"T",:vecVars => "u-veloc,v-veloc",:levIndex => 2,:mapType => "ortho",:maskName => 'wet_c'))
40
- ip.show(ip.scalarPlot("remapnn_r90x45_oce_lsm.nc","reg_lsm_"+ofile,"wet_c",:vecVars => "u-veloc,v-veloc",:levIndex => 2,:mapType => "ortho",:maskName => 'wet_c'))
26
+ q = ParallelQueue.new
27
+ q.push {ip.scalarPlot(OCE_PLOT_TEST_FILE, ofile+'_00',"T",:levIndex => 0) }
28
+ q.push {ip.scalarPlot(OCE_PLOT_TEST_FILE, ofile+'_01',"T",:levIndex => 2) }
29
+ q.push {ip.vectorPlot(OCE_PLOT_TEST_FILE, ofile+'_02',"u-veloc v-veloc",:levIndex => 2) }
30
+ q.push {ip.scalarPlot(OCE_PLOT_TEST_FILE, ofile+'_03',"T",:vecVars => "u-veloc,v-veloc",:levIndex => 2,:mapType => "ortho") }
31
+ q.push {ip.scalarPlot(OCE_PLOT_TEST_FILE, ofile+'_04',"T",:vecVars => "u-veloc,v-veloc",:levIndex => 2,:secLC => "-20,-60", :secRC => "-20,60") }
32
+ q.push {ip.scalarPlot(OCELSM_PLOT_TEST_FILE,ofile+'_05',"T",:vecVars => "u,v",:levIndex => 2,:secLC => "-20,-60", :secRC => "-20,60",:maskName => 'wet_c') }
33
+ q.push {ip.scalarPlot(OCELSM_PLOT_TEST_FILE,ofile+'_05',"T",:vecVars => "u,v",:levIndex => 2,:secLC => "-50,-60", :secRC => "0,60",:maskName => 'wet_c',:secMode => 'circle') }
34
+ q.push {ip.scalarPlot(OCELSM_PLOT_TEST_FILE,ofile+'_06',"T",:vecVars => "u,v",:levIndex => 2,:maskName => 'wet_c') }
35
+ q.push {ip.scalarPlot(OCELSM_PLOT_TEST_FILE,ofile+'_07',"T",:levIndex => 2,:maskName => 'wet_c') }
36
+
37
+ images = q.run
38
+
39
+ ip.show(*images)
41
40
  end
42
41
  end
43
- def test_defaults
42
+ def _test_defaults
44
43
  p = IconPlot.new
45
44
  assert_includes(p.caller.split(File::SEPARATOR),'gems')
46
45
  assert_includes(p.plotter.split(File::SEPARATOR),'gems')
47
46
  assert_includes(p.libdir.split(File::SEPARATOR),'gems')
48
47
  end
49
- def test_levelPlot
48
+ def _test_levelPlot
50
49
  p = IconPlot.new
51
50
  p.show( p.levelPlot(OCELONG_PLOT_TEST_FILE,'test_levelPlot_00','T',:operation => :fldmax))
52
51
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iconPlot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ralf Mueller
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-17 00:00:00.000000000 Z
11
+ date: 2016-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cdo
@@ -85,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
85
85
  version: '0'
86
86
  requirements: []
87
87
  rubyforge_project:
88
- rubygems_version: 2.2.2
88
+ rubygems_version: 2.5.1
89
89
  signing_key:
90
90
  specification_version: 4
91
91
  summary: Plot ICON output with ncl via Ruby