diff --git a/yori/gridtools.py b/yori/gridtools.py index ad33ed9c23e456f943cf9dc74c0ce23be04e721f..3a10401031424cd726319e4659896e64c71a9a08 100644 --- a/yori/gridtools.py +++ b/yori/gridtools.py @@ -47,7 +47,9 @@ def create_index(self): latidx[idx] = 0 idx = np.where(lonidx < 0) lonidx[idx] = 0 - + self.edges = [np.min(lonidx), np.max(lonidx), + np.min(latidx), np.max(latidx)] + # THIS PART WAS DEFINED FOR THE EQUAL_AREA PROJECTION # WHENEVER WE BELIEVE WE ARE READY TO MOVE BACK TO IT # WE CAN POSSIBLY START FROM HERE @@ -226,7 +228,7 @@ def compute_2D_histogram(self, var1, var2, binvec1, binvec2, varname, var_name_o if (len(xx) > 0) & (len(yy) > 0): var2Dstat[self.srt_idx[self.box_idx[i]], :, :] = ( - np.histogram2d(xx, yy, (binvec1, binvec2))[0]) + np.histogram2d(xx, yy, bins=(binvec1, binvec2))[0]) elif ((len(xx) == 0) | (len(yy) == 0)): var2Dstat[self.srt_idx[self.box_idx[i]], :, :] = np.nan else: diff --git a/yori/run_yori.py b/yori/run_yori.py index aff6238df51e3f801754ced4c549f792c00a19e4..0e1efc08e4cb4f4084b28e509465ec536b01e829 100755 --- a/yori/run_yori.py +++ b/yori/run_yori.py @@ -7,7 +7,7 @@ from pkg_resources import get_distribution -import yori.ioutils as iou +import yori.new_ioutils as iou import yori.gridtools as grid import yori.config_reader as cfg @@ -134,7 +134,7 @@ def runYori(self, debug=False, compression=0): lat = data_in[self.lat_key][:] lon = data_in[self.lon_key][:] - + myGrid = grid.ComputeVariables(lat, lon, self.grid_size, self.grid_proj, self.fv) for i in range(len(self.ymlSet.var_settings)): var_settings = self.ymlSet.var_settings[i] @@ -144,7 +144,6 @@ def runYori(self, debug=False, compression=0): only_hist = True masked_data_in, var_name_out = self.setVariable(var_settings, lat, data_in) - myGrid = grid.ComputeVariables(lat, lon, self.grid_size, self.grid_proj, self.fv) if only_hist is False: tmp_gridvar = myGrid.compute_stats(masked_data_in, var_name_out) @@ -172,7 +171,7 @@ def runYori(self, debug=False, compression=0): if debug is False: write_output(self.output_file, gridvar, compression, - self.grid_size, self.ymlSet, self.fv) + self.grid_size, self.ymlSet, self.fv, edges=myGrid.edges) else: for k in gridvar.keys(): @@ -187,8 +186,8 @@ def callYori(config_file, input_file, output_file, debug=False, compression=0): Yori.runYori(debug, compression) -def write_output(output_file, gridvar, compression, grid_size, ymlSet, fv): - outInst = iou.CreateMatchfile(output_file, gridvar, comp=compression) +def write_output(output_file, gridvar, compression, grid_size, ymlSet, fv, edges=[]): + outInst = iou.CreateMatchfile(output_file, gridvar, comp=compression, edges=edges) outInst.createFile() fout = nc.Dataset(output_file, mode='a') @@ -197,14 +196,15 @@ def write_output(output_file, gridvar, compression, grid_size, ymlSet, fv): fout.setncattr('YAML_config', ymlSet.yaml_str) fout.setncattr('Yori_version', str(VERSION)) - fout.close() +# fout.close() for k in list(gridvar): if k.split('/')[-1] == 'Pixel_Counts' or gridvar[k].ndim > 2: - outInst.saveNewVar(k, fillvalue=fv, vartype='i4') + outInst.saveNewVar(fout, gridvar, k, fillvalue=fv, vartype='i4') else: - outInst.saveNewVar(k, fillvalue=fv) - + outInst.saveNewVar(fout, gridvar, k, fillvalue=fv) + + fout.close() fout = nc.Dataset(output_file, mode='a') for settings in ymlSet.var_settings: