@@ -85,7 +85,7 @@ def __init__(self):
8585 self .data = np .zeros (0 )
8686 self .location_info = None
8787
88- def range_limit_table (self , minval , maxval , range_ , bins , datasize , data ):
88+ def range_limit_table (self , minval , maxval , range_ , bins , data ):
8989 """
9090 Calculate the range limit table and the number of values equal or exceeding each range limit.
9191
@@ -94,7 +94,6 @@ def range_limit_table(self, minval, maxval, range_, bins, datasize, data):
9494 maxval (float): Maximum value.
9595 range_ (float): Range of values.
9696 bins (int): Number of bins.
97- datasize (int): Size of the data.
9897 data (numpy.ndarray): Data array.
9998 """
10099 max_bins = 15
@@ -103,7 +102,7 @@ def range_limit_table(self, minval, maxval, range_, bins, datasize, data):
103102 bins = max_bins
104103
105104 self .rangeLimitTable = np .empty (bins , dtype = float )
106- self .rangeLimitTable [0 ] = NULL_INT
105+ self .rangeLimitTable [0 ] = self . nullValue
107106 self .rangeLimitTable [1 ] = minval
108107
109108 step = range_ / bins
@@ -118,6 +117,7 @@ def update_grid_info(self):
118117 """
119118 Update grid information based on the data array.
120119 """
120+ self .data [self .data == self .nullValue ] = np .nan
121121 self .numberOfCellsX = len (self .data [0 ])
122122 self .numberOfCellsY = len (self .data )
123123 n = np .size (self .data )
@@ -126,10 +126,14 @@ def update_grid_info(self):
126126 bin_range = int (math .ceil (self .maxDataValue ) - math .floor (self .minDataValue ))
127127 self .meanDataValue = np .nanmean (self .data )
128128
129- self .data = np .nan_to_num (self .data , nan = NULL_INT )
130- self .numberOfRanges = math .floor (2 + 3.322 * math .log10 (n ))
129+ self .data = np .nan_to_num (self .data , nan = self .nullValue )
130+ if bin_range == 0 :
131+ self .numberOfRanges = 2
132+ else :
133+ self .numberOfRanges = math .floor (2 + 3.322 * math .log10 (n ))
131134 flat_data = self .data .flatten ()
132- self .range_limit_table (self .minDataValue , self .maxDataValue , bin_range , self .numberOfRanges , n , flat_data )
135+ self .range_limit_table (self .minDataValue , self .maxDataValue ,
136+ bin_range , self .numberOfRanges , flat_data )
133137
134138 @staticmethod
135139 def create (path = None ,
@@ -223,7 +227,7 @@ def create(path=None,
223227 gd .meanDataValue = meanDataValue
224228 gd .rangeLimitTable = rangeLimitTable
225229 gd .numberEqualOrExceedingRangeLimit = numberEqualOrExceedingRangeLimit
226- gd .data = np .array (data )
230+ gd .data = np .array (data ). astype ( float )
227231 gd .location_info = location_info
228232
229233 gd .update_grid_info ()
0 commit comments