diff --git a/pyart/aux_io/odim_h5.py b/pyart/aux_io/odim_h5.py index ee042b0e0..55e28d07e 100644 --- a/pyart/aux_io/odim_h5.py +++ b/pyart/aux_io/odim_h5.py @@ -390,7 +390,7 @@ def read_odim_grid_h5(filename, field_names=None, additional_metadata=None, 2.) x['data'] = xvec - y['data'] = yvec + y['data'] = yvec[::-1] # conversion img -> map coordinates z['data'] = np.array([0], dtype='float64') if odim_object == 'CVOL': # CAPPI case @@ -486,7 +486,7 @@ def read_odim_grid_h5(filename, field_names=None, additional_metadata=None, ny = h_where['ysize'] nx = h_where['xsize'] field_dic['data'] = ma_broadcast_to( - fdata[::-1, :], (1, ny, nx)) + fdata, (1, ny, nx)) field_dic['_FillValue'] = nodata field_dic['undetect'] = undetect @@ -547,7 +547,7 @@ def read_odim_grid_h5(filename, field_names=None, additional_metadata=None, else: origin_latitude['data'] = np.array([0.]) if 'lon_0' in projection: - origin_longitude['data'] = np.array([projection['lat_0']]) + origin_longitude['data'] = np.array([projection['lon_0']]) else: origin_longitude['data'] = np.array([0.]) origin_altitude['data'] = np.array([0.]) diff --git a/pyart/aux_io/odim_h5_writer.py b/pyart/aux_io/odim_h5_writer.py index dc5c651d8..8cff710c3 100644 --- a/pyart/aux_io/odim_h5_writer.py +++ b/pyart/aux_io/odim_h5_writer.py @@ -165,7 +165,7 @@ def write_odim_grid_h5(filename, grid, field_names=None, physical=True, # where - UL, LL, LR, UR, scales, sizes, projdef x = grid.x['data'] - y = grid.y['data'] + y = grid.y['data'][::-1] # conversion img -> map coordinates X, Y = np.meshgrid(x, y) lon, lat = X, Y @@ -319,10 +319,6 @@ def write_odim_grid_h5(filename, grid, field_names=None, physical=True, grid, i, field_name, physical=physical, undefined_value=undefined_value) - if data_dict['data'].ndim == 2: - # Switch index to agree with ODIM standard - data_dict['data'] = data_dict['data'][::-1] - # write data what3_dict[i][j]['gain'] = data_dict['gain'] what3_dict[i][j]['offset'] = data_dict['offset'] diff --git a/tests/aux_io/test_odim_grid_h5.py b/tests/aux_io/test_odim_grid_h5.py index 8fafdae5e..8f4247a4f 100644 --- a/tests/aux_io/test_odim_grid_h5.py +++ b/tests/aux_io/test_odim_grid_h5.py @@ -43,7 +43,7 @@ def test_y(): assert "units" in grid.y assert "data" in grid.y assert grid.y["data"].shape == (640,) - assert_almost_equal(grid.y["data"][0], -159500, 0) + assert_almost_equal(grid.y["data"][0], 479500, 0) # fields attribute is tested later @@ -56,13 +56,21 @@ def test_metadata(): assert "instrument_name" in grid.metadata assert "radar" in grid.metadata +# origin_longitude attribute +def test_origin_longitude(): + assert "data" in grid.origin_longitude + assert "standard_name" in grid.origin_longitude + assert "units" in grid.origin_longitude + assert grid.origin_longitude["data"].shape == (1,) + assert_almost_equal(grid.origin_longitude["data"], 7.43, 0) + # origin_latitude attribute -def test_latitude(): +def test_origin_latitude(): assert "data" in grid.origin_latitude assert "standard_name" in grid.origin_latitude assert "units" in grid.origin_latitude assert grid.origin_latitude["data"].shape == (1,) - assert_almost_equal(grid.origin_latitude["data"], 46.95240556, 0) + assert_almost_equal(grid.origin_latitude["data"], 46.952, 0) # point_longitude attribute @@ -79,7 +87,7 @@ def test_point_latitude(): assert "long_name" in grid.point_latitude assert "units" in grid.point_latitude assert grid.point_latitude["data"].shape == (1,640,710) - assert_almost_equal(grid.point_latitude["data"][0,0,0],43.63508830, 0) + assert_almost_equal(grid.point_latitude["data"][0,0,0], 49.370, 0) #################### # fields attribute # @@ -152,7 +160,7 @@ def test_field_points(field, field_value): def check_field_point(field, value): - assert_almost_equal(grid.fields[field]["data"][0,49,501], value, 0) + assert_almost_equal(grid.fields[field]["data"][0,590,501], value, 0) ########################################################################