[ruby-netcdf] 01/03: Refresh patch: fix location of netcdf_miss.rb

Youhei SASAKI uwabami-guest at moszumanska.debian.org
Wed Sep 2 12:55:25 UTC 2015


This is an automated email from the git hooks/post-receive script.

uwabami-guest pushed a commit to branch master
in repository ruby-netcdf.

commit 0baa890c715fcd049b598c1e16cd2a70c2023aff
Author: Youhei SASAKI <uwabami at gfd-dennou.org>
Date:   Wed Sep 2 21:18:42 2015 +0900

    Refresh patch: fix location of netcdf_miss.rb
    
    Signed-off-by: Youhei SASAKI <uwabami at gfd-dennou.org>
---
 debian/patches/0001-Change-FHS-For-RubyGems | 453 +++++++++++++---------------
 1 file changed, 209 insertions(+), 244 deletions(-)

diff --git a/debian/patches/0001-Change-FHS-For-RubyGems b/debian/patches/0001-Change-FHS-For-RubyGems
index 6b7da38..873e83d 100644
--- a/debian/patches/0001-Change-FHS-For-RubyGems
+++ b/debian/patches/0001-Change-FHS-For-RubyGems
@@ -28,9 +28,6 @@ Signed-off-by: Youhei SASAKI <uwabami at gfd-dennou.org>
  delete mode 100644 lib/version.rb
  delete mode 100644 netcdfraw.c
 
-diff --git a/ext/numru/extconf.rb b/ext/numru/extconf.rb
-new file mode 100644
-index 0000000..1ad8b17
 --- /dev/null
 +++ b/ext/numru/extconf.rb
 @@ -0,0 +1,173 @@
@@ -207,9 +204,6 @@ index 0000000..1ad8b17
 +   end
 +}
 +newmkfl.close
-diff --git a/ext/numru/netcdfraw.c b/ext/numru/netcdfraw.c
-new file mode 100644
-index 0000000..200e8f3
 --- /dev/null
 +++ b/ext/numru/netcdfraw.c
 @@ -0,0 +1,4721 @@
@@ -4934,9 +4928,6 @@ index 0000000..200e8f3
 +  rb_define_method(cNetCDFVar,"get_var1_sfloat",NetCDF_get_var1_float,1);
 +  rb_define_method(cNetCDFVar,"get_var1_float",NetCDF_get_var1_double,1);
 +}
-diff --git a/extconf.rb b/extconf.rb
-deleted file mode 100644
-index 1ad8b17..0000000
 --- a/extconf.rb
 +++ /dev/null
 @@ -1,173 +0,0 @@
@@ -5113,8 +5104,6 @@ index 1ad8b17..0000000
 -   end
 -}
 -newmkfl.close
-diff --git a/lib/netcdf.rb b/lib/netcdf.rb
-index 2c6a922..dee5bd7 100644
 --- a/lib/netcdf.rb
 +++ b/lib/netcdf.rb
 @@ -1,808 +1 @@
@@ -5927,9 +5916,6 @@ index 2c6a922..dee5bd7 100644
 - end
 -end
 +require 'numru/netcdf'
-diff --git a/lib/netcdf_miss.rb b/lib/netcdf_miss.rb
-deleted file mode 100644
-index 4b168f0..0000000
 --- a/lib/netcdf_miss.rb
 +++ /dev/null
 @@ -1,203 +0,0 @@
@@ -6136,9 +6122,6 @@ index 4b168f0..0000000
 -  file.close
 -  print "** ncdump tmp.nc **\n", `ncdump tmp.nc`
 -end
-diff --git a/lib/numru/netcdf.rb b/lib/numru/netcdf.rb
-new file mode 100644
-index 0000000..2c6a922
 --- /dev/null
 +++ b/lib/numru/netcdf.rb
 @@ -0,0 +1,808 @@
@@ -6950,218 +6933,6 @@ index 0000000..2c6a922
 +
 + end
 +end
-diff --git a/lib/numru/netcdf/netcdf_miss.rb b/lib/numru/netcdf/netcdf_miss.rb
-new file mode 100644
-index 0000000..4b168f0
---- /dev/null
-+++ b/lib/numru/netcdf/netcdf_miss.rb
-@@ -0,0 +1,203 @@
-+require "numru/netcdf"
-+require "narray_miss"
-+
-+module NumRu
-+
-+  class NetCDFVar
-+
-+    def get_with_miss(*args)
-+      __interpret_missing_params if !defined?(@missval)
-+      data = simple_get(*args)
-+      if @vmin || @vmax
-+	if @vmin
-+	  mask = (data >= @vmin) 
-+	  mask = mask.and(data <= @vmax) if @vmax
-+	else
-+	  mask = (data <= @vmax)
-+	end
-+	data = NArrayMiss.to_nam(data, mask)
-+      elsif @missval	# only missing_value is present.
-+	mask = (data.ne(@missval)) 
-+	data = NArrayMiss.to_nam(data, mask)
-+      end
-+      data
-+    end
-+
-+    def get_with_miss_and_scaling(*args)
-+      __interpret_missing_params if !defined?(@missval)
-+      data = simple_get(*args)
-+      if @vmin || @vmax
-+	if @vmin
-+	  mask = (data >= @vmin) 
-+	  mask = mask.and(data <= @vmax) if @vmax
-+	else
-+	  mask = (data <= @vmax)
-+	end
-+	data = NArrayMiss.to_nam(data, mask)
-+      elsif @missval	# only missing_value is present.
-+	mask = (data.ne(@missval))
-+	data = NArrayMiss.to_nam(data, mask)
-+      end
-+      data = unpack( data )
-+      data
-+    end
-+
-+    def put_with_miss(data, *args)
-+      if data.is_a?( NArrayMiss )
-+	__interpret_missing_params if !defined?(@missval)
-+	if @missval
-+	  simple_put(data.to_na(@missval), *args)
-+	else
-+	  simple_put(data.to_na, *args)
-+	end
-+      else
-+	simple_put(data, *args)
-+      end
-+    end
-+
-+    def put_with_miss_and_scaling(data, *args)
-+      if data.is_a?( NArrayMiss )
-+	__interpret_missing_params if !defined?(@missval)
-+	if @missval
-+	  data = pack( data )
-+	  data = data.to_na(@missval)
-+	else
-+	  data = pack( data )
-+	  data = data.to_na
-+	end
-+	simple_put(data, *args)
-+      else
-+	scaled_put(data, *args)
-+      end
-+    end
-+
-+    ######### private ##########
-+
-+    def __interpret_missing_params
-+      # Interprets the specification of missing data,
-+      # either by valid_range, (valid_min and/or valid_max), or missing_value.
-+      # (unlike the NetCDF User's guide (NUG), missing_value is interpreted, 
-+      # but valid_* has a higher precedence.)
-+      # Always sets @missval whether missing_value is defined or not,
-+      # since it will be used as a fill value for data missing.
-+      #
-+      @vmin = att('valid_min')
-+      @vmin = @vmin.get if @vmin  # kept in a NArray(size==1) to consv type
-+      @vmax = att('valid_max')
-+      @vmax = @vmax.get if @vmax  # kept in a NArray(size==1) to consv type
-+      vrange = att('valid_range')
-+      vrange = vrange.get if vrange
-+      if vrange
-+	vrange.sort!
-+	@vmin = vrange[0..0]        # kept in... (same)
-+	@vmax = vrange[-1..-1]      # kept in... (same)
-+      end
-+      @missval = att('missing_value') || att('_FillValue')
-+      @missval = @missval.get if @missval # kept in... (same)
-+
-+      sf = att('scale_factor')
-+      ao = att('add_offset')
-+      if ( sf || ao )
-+        ## Both NUG & CF conventions requires to specify the valid
-+        ## range with respect to the external (i.e. packed) values. 
-+        ## However, some conventions require specification
-+        ## with respect to unpacked values. The following
-+        ## is to support such cases as well:
-+        thres_tp = [ self.typecode, NArray::LINT ].max
-+        @missval = pack(@missval) if @missval && @missval.typecode > thres_tp
-+        @vmin = pack(@vmin) if @vmin && @vmin.typecode > thres_tp
-+        @vmax = pack(@vmax) if @vmax && @vmax.typecode > thres_tp
-+      end
-+
-+      if @missval
-+        if @vmin && @vmax 
-+	  if @vmin[0] <= @missval[0] && @missval[0] <= @vmax[0]
-+            warn "WARNING: missing_value #{@missval[0]} is in the valid range #{@vmin[0]}..#{@vmax[0]} --> will be ignored (#{__FILE__}:#{__LINE__})"
-+          end
-+        else
-+          if @vmin && @missval[0] >= @vmin[0]
-+            warn "WARNING: missing_value #{@missval[0]} >= valid min #{@vmin[0]} --> will be ignored (#{__FILE__}:#{__LINE__})"
-+          elsif @vmax && @missval[0] <= @vmax[0]
-+            warn "WARNING: missing_value #{@missval[0]} <= valid min #{@vmin[0]} --> will be ignored (#{__FILE__}:#{__LINE__})"
-+          end
-+        end
-+      else
-+        realtc = NArray::SFLOAT
-+        if @vmin
-+          if @vmin[0] >= 0
-+            @missval = ( @vmin.typecode>=realtc ? 0.99*@vmin : @vmin-1 )
-+          else
-+            @missval = ( @vmin.typecode>=realtc ? 1.01*@vmin : @vmin-1 )
-+          end
-+        elsif @vmax
-+          if @vmax[0] >= 0
-+            @missval = ( @vmax.typecode>=realtc ? 1.01*@vmax : @vmax+1 )
-+          else
-+            @missval = ( @vmax.typecode>=realtc ? 0.99*@vmax : @vmax+1 )
-+          end
-+        end
-+      end
-+
-+    end
-+
-+    private :__interpret_missing_params
-+
-+  end
-+
-+end
-+
-+if $0 == __FILE__
-+  include NumRu
-+
-+  filename = "tmp.nc"
-+  print "creating ",filename,"...\n"
-+  file=NetCDF.create(filename)
-+  nx = 10
-+  dimx = file.def_dim("x",nx)
-+  xf = file.def_var("xf","sfloat",[dimx])
-+  xfn = file.def_var("xfn","sfloat",[dimx])
-+  xf.put_att("valid_range",[-1e12,1e12])
-+  f = 10 ** (2*NArray.sfloat(nx).indgen!)
-+  xr = file.def_var("xr","sint",[dimx])
-+  xr.put_att("valid_max",[0.5])
-+  xr.put_att("scale_factor",1e-4)
-+  xr.put_att("add_offset",0.5)
-+  xr2 = file.def_var("xr2","sint",[dimx])
-+  xr2.put_att("valid_max",NArray.sint(1).fill!(1000))
-+  xr2.put_att("scale_factor",1e-4)
-+  xr2.put_att("add_offset",0.5)
-+  r = NArray.sfloat(nx).indgen!/nx
-+  file.enddef
-+  xf.put(f)
-+  xfn.put(f)
-+  xr.scaled_put(r)
-+  file.close
-+
-+  file = NetCDF.open(filename,'r+')
-+  xf = file.var('xf')
-+  xfn = file.var('xfn')
-+  p "f0"
-+  xf.get.each{|v| print "#{v} "} ; print "\n"
-+  p( 'f1', nam = xf.get_with_miss )
-+  def xf.get(*args); get_with_miss(*args); end
-+  p( 'f12',  xf[2..-3].to_na )
-+  p( 'fn10', xfn.get_with_miss )
-+  p( 'fn11', xfn.get_with_miss_and_scaling )
-+  nam.invalidation([0,1])
-+  p 'f2', nam
-+  xf.put_with_miss(nam)
-+  p( 'f3', xf.get_with_miss )
-+  xr = file.var('xr')
-+  p "r0"
-+  xr.simple_get.each{|v| print "#{v} "} ; print "\n"
-+  p( 'r1', xr.get_with_miss_and_scaling )
-+  def xr.get(*args); get_with_miss_and_scaling(*args); end
-+  def xr.put(*args); put_with_miss_and_scaling(*args); end
-+  #xr[0..3] = xr[0..3]*10
-+  p( 'r2', xr.get_with_miss_and_scaling )
-+  p 'r',r
-+  xr2.put_with_miss_and_scaling(r)
-+  p 'xr2',xr2.get_with_miss_and_scaling
-+  file.close
-+  print "** ncdump tmp.nc **\n", `ncdump tmp.nc`
-+end
-diff --git a/lib/numru/netcdf/version.rb b/lib/numru/netcdf/version.rb
-new file mode 100644
-index 0000000..7043c9e
 --- /dev/null
 +++ b/lib/numru/netcdf/version.rb
 @@ -0,0 +1,5 @@
@@ -7170,9 +6941,6 @@ index 0000000..7043c9e
 +    VERSION = "0.7.1.1"
 +  end
 +end
-diff --git a/lib/version.rb b/lib/version.rb
-deleted file mode 100644
-index 7043c9e..0000000
 --- a/lib/version.rb
 +++ /dev/null
 @@ -1,5 +0,0 @@
@@ -7181,11 +6949,9 @@ index 7043c9e..0000000
 -    VERSION = "0.7.1.1"
 -  end
 -end
-diff --git a/metadata.yml b/metadata.yml
-index fb30c35..25a1eda 100644
 --- a/metadata.yml
 +++ b/metadata.yml
-@@ -49,7 +49,7 @@ email:
+@@ -49,7 +49,7 @@
  - eriko at gfd-dennou.org
  executables: []
  extensions:
@@ -7194,7 +6960,7 @@ index fb30c35..25a1eda 100644
  extra_rdoc_files: []
  files:
  - .gitignore
-@@ -76,11 +76,12 @@ files:
+@@ -76,11 +76,12 @@
  - doc/Ref_man_jp.html
  - doc/Ref_man_jp.rd
  - doc/to_html
@@ -7211,9 +6977,6 @@ index fb30c35..25a1eda 100644
  - ruby-netcdf.gemspec
  - test/aref_aset.rb
  - test/char_var.rb
-diff --git a/netcdfraw.c b/netcdfraw.c
-deleted file mode 100644
-index 200e8f3..0000000
 --- a/netcdfraw.c
 +++ /dev/null
 @@ -1,4721 +0,0 @@
@@ -11938,19 +11701,15 @@ index 200e8f3..0000000
 -  rb_define_method(cNetCDFVar,"get_var1_sfloat",NetCDF_get_var1_float,1);
 -  rb_define_method(cNetCDFVar,"get_var1_float",NetCDF_get_var1_double,1);
 -}
-diff --git a/ruby-netcdf.gemspec b/ruby-netcdf.gemspec
-index a6025bc..3886c35 100644
 --- a/ruby-netcdf.gemspec
 +++ b/ruby-netcdf.gemspec
-@@ -30,5 +30,5 @@ Gem::Specification.new do |spec|
+@@ -30,5 +30,5 @@
    spec.add_runtime_dependency(%q<narray>, [">= 0"])
    spec.add_runtime_dependency(%q<narray_miss>, [">= 0"])
  
 -  spec.extensions << "extconf.rb"
 +  spec.extensions << "ext/numru/extconf.rb"
  end
-diff --git a/test/test.rb b/test/test.rb
-index 7ec59c6..b125a69 100644
 --- a/test/test.rb
 +++ b/test/test.rb
 @@ -1,9 +1,4 @@
@@ -11964,3 +11723,209 @@ index 7ec59c6..b125a69 100644
  
  include NumRu
  
+--- /dev/null
++++ b/lib/numru/netcdf_miss.rb
+@@ -0,0 +1,203 @@
++require "numru/netcdf"
++require "narray_miss"
++
++module NumRu
++
++  class NetCDFVar
++
++    def get_with_miss(*args)
++      __interpret_missing_params if !defined?(@missval)
++      data = simple_get(*args)
++      if @vmin || @vmax
++	if @vmin
++	  mask = (data >= @vmin) 
++	  mask = mask.and(data <= @vmax) if @vmax
++	else
++	  mask = (data <= @vmax)
++	end
++	data = NArrayMiss.to_nam(data, mask)
++      elsif @missval	# only missing_value is present.
++	mask = (data.ne(@missval)) 
++	data = NArrayMiss.to_nam(data, mask)
++      end
++      data
++    end
++
++    def get_with_miss_and_scaling(*args)
++      __interpret_missing_params if !defined?(@missval)
++      data = simple_get(*args)
++      if @vmin || @vmax
++	if @vmin
++	  mask = (data >= @vmin) 
++	  mask = mask.and(data <= @vmax) if @vmax
++	else
++	  mask = (data <= @vmax)
++	end
++	data = NArrayMiss.to_nam(data, mask)
++      elsif @missval	# only missing_value is present.
++	mask = (data.ne(@missval))
++	data = NArrayMiss.to_nam(data, mask)
++      end
++      data = unpack( data )
++      data
++    end
++
++    def put_with_miss(data, *args)
++      if data.is_a?( NArrayMiss )
++	__interpret_missing_params if !defined?(@missval)
++	if @missval
++	  simple_put(data.to_na(@missval), *args)
++	else
++	  simple_put(data.to_na, *args)
++	end
++      else
++	simple_put(data, *args)
++      end
++    end
++
++    def put_with_miss_and_scaling(data, *args)
++      if data.is_a?( NArrayMiss )
++	__interpret_missing_params if !defined?(@missval)
++	if @missval
++	  data = pack( data )
++	  data = data.to_na(@missval)
++	else
++	  data = pack( data )
++	  data = data.to_na
++	end
++	simple_put(data, *args)
++      else
++	scaled_put(data, *args)
++      end
++    end
++
++    ######### private ##########
++
++    def __interpret_missing_params
++      # Interprets the specification of missing data,
++      # either by valid_range, (valid_min and/or valid_max), or missing_value.
++      # (unlike the NetCDF User's guide (NUG), missing_value is interpreted, 
++      # but valid_* has a higher precedence.)
++      # Always sets @missval whether missing_value is defined or not,
++      # since it will be used as a fill value for data missing.
++      #
++      @vmin = att('valid_min')
++      @vmin = @vmin.get if @vmin  # kept in a NArray(size==1) to consv type
++      @vmax = att('valid_max')
++      @vmax = @vmax.get if @vmax  # kept in a NArray(size==1) to consv type
++      vrange = att('valid_range')
++      vrange = vrange.get if vrange
++      if vrange
++	vrange.sort!
++	@vmin = vrange[0..0]        # kept in... (same)
++	@vmax = vrange[-1..-1]      # kept in... (same)
++      end
++      @missval = att('missing_value') || att('_FillValue')
++      @missval = @missval.get if @missval # kept in... (same)
++
++      sf = att('scale_factor')
++      ao = att('add_offset')
++      if ( sf || ao )
++        ## Both NUG & CF conventions requires to specify the valid
++        ## range with respect to the external (i.e. packed) values. 
++        ## However, some conventions require specification
++        ## with respect to unpacked values. The following
++        ## is to support such cases as well:
++        thres_tp = [ self.typecode, NArray::LINT ].max
++        @missval = pack(@missval) if @missval && @missval.typecode > thres_tp
++        @vmin = pack(@vmin) if @vmin && @vmin.typecode > thres_tp
++        @vmax = pack(@vmax) if @vmax && @vmax.typecode > thres_tp
++      end
++
++      if @missval
++        if @vmin && @vmax 
++	  if @vmin[0] <= @missval[0] && @missval[0] <= @vmax[0]
++            warn "WARNING: missing_value #{@missval[0]} is in the valid range #{@vmin[0]}..#{@vmax[0]} --> will be ignored (#{__FILE__}:#{__LINE__})"
++          end
++        else
++          if @vmin && @missval[0] >= @vmin[0]
++            warn "WARNING: missing_value #{@missval[0]} >= valid min #{@vmin[0]} --> will be ignored (#{__FILE__}:#{__LINE__})"
++          elsif @vmax && @missval[0] <= @vmax[0]
++            warn "WARNING: missing_value #{@missval[0]} <= valid min #{@vmin[0]} --> will be ignored (#{__FILE__}:#{__LINE__})"
++          end
++        end
++      else
++        realtc = NArray::SFLOAT
++        if @vmin
++          if @vmin[0] >= 0
++            @missval = ( @vmin.typecode>=realtc ? 0.99*@vmin : @vmin-1 )
++          else
++            @missval = ( @vmin.typecode>=realtc ? 1.01*@vmin : @vmin-1 )
++          end
++        elsif @vmax
++          if @vmax[0] >= 0
++            @missval = ( @vmax.typecode>=realtc ? 1.01*@vmax : @vmax+1 )
++          else
++            @missval = ( @vmax.typecode>=realtc ? 0.99*@vmax : @vmax+1 )
++          end
++        end
++      end
++
++    end
++
++    private :__interpret_missing_params
++
++  end
++
++end
++
++if $0 == __FILE__
++  include NumRu
++
++  filename = "tmp.nc"
++  print "creating ",filename,"...\n"
++  file=NetCDF.create(filename)
++  nx = 10
++  dimx = file.def_dim("x",nx)
++  xf = file.def_var("xf","sfloat",[dimx])
++  xfn = file.def_var("xfn","sfloat",[dimx])
++  xf.put_att("valid_range",[-1e12,1e12])
++  f = 10 ** (2*NArray.sfloat(nx).indgen!)
++  xr = file.def_var("xr","sint",[dimx])
++  xr.put_att("valid_max",[0.5])
++  xr.put_att("scale_factor",1e-4)
++  xr.put_att("add_offset",0.5)
++  xr2 = file.def_var("xr2","sint",[dimx])
++  xr2.put_att("valid_max",NArray.sint(1).fill!(1000))
++  xr2.put_att("scale_factor",1e-4)
++  xr2.put_att("add_offset",0.5)
++  r = NArray.sfloat(nx).indgen!/nx
++  file.enddef
++  xf.put(f)
++  xfn.put(f)
++  xr.scaled_put(r)
++  file.close
++
++  file = NetCDF.open(filename,'r+')
++  xf = file.var('xf')
++  xfn = file.var('xfn')
++  p "f0"
++  xf.get.each{|v| print "#{v} "} ; print "\n"
++  p( 'f1', nam = xf.get_with_miss )
++  def xf.get(*args); get_with_miss(*args); end
++  p( 'f12',  xf[2..-3].to_na )
++  p( 'fn10', xfn.get_with_miss )
++  p( 'fn11', xfn.get_with_miss_and_scaling )
++  nam.invalidation([0,1])
++  p 'f2', nam
++  xf.put_with_miss(nam)
++  p( 'f3', xf.get_with_miss )
++  xr = file.var('xr')
++  p "r0"
++  xr.simple_get.each{|v| print "#{v} "} ; print "\n"
++  p( 'r1', xr.get_with_miss_and_scaling )
++  def xr.get(*args); get_with_miss_and_scaling(*args); end
++  def xr.put(*args); put_with_miss_and_scaling(*args); end
++  #xr[0..3] = xr[0..3]*10
++  p( 'r2', xr.get_with_miss_and_scaling )
++  p 'r',r
++  xr2.put_with_miss_and_scaling(r)
++  p 'xr2',xr2.get_with_miss_and_scaling
++  file.close
++  print "** ncdump tmp.nc **\n", `ncdump tmp.nc`
++end

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/ruby-netcdf.git



More information about the Pkg-grass-devel mailing list