def main(inout_paths): tiff_path, rpn_path = inout_paths print("tif path = {0}".format(tiff_path)) print("rpn path = {0}".format(rpn_path)) outGrid = RotatedLatLon(lon1=-90.0, lat1=50.0, lon2=0.0, lat2=0.0) Grd_dx = 0.5 Grd_dy = 0.5 Grd_ni = 170 Grd_nj = 158 Grd_iref = 11 Grd_jref = 11 Grd_latr = -33.5 Grd_lonr = 140.5 lons1d = np.array( [Grd_lonr + (i - Grd_iref + 1) * Grd_dx for i in range(Grd_ni)]) lats1d = np.array( [Grd_latr + (j - Grd_jref + 1) * Grd_dy for j in range(Grd_nj)]) lats2d, lons2d = np.meshgrid(lats1d, lons1d) lonlats = np.array( list( map(lambda x, y: outGrid.toGeographicLonLat(x, y), lons2d.flatten(), lats2d.flatten()))) print(lonlats.shape) rObj = RPN(rpn_path, mode="w") data = convert(tiff_path, lonlats) print("interpolated data") data.shape = lons2d.shape fieldName = os.path.basename(tiff_path).split("_")[0].lower() #write coordinates ig = outGrid.write_coords_to_rpn(rObj, lons1d, lats1d) rObj.write_2D_field(name=fieldName, data=data, grid_type="Z", ig=ig, label=fieldName) rObj.close() return 0 pass
def main(inout_paths): tiff_path, rpn_path = inout_paths print("tif path = {0}".format(tiff_path)) print("rpn path = {0}".format(rpn_path)) outGrid = RotatedLatLon(lon1=-90.0, lat1=50.0, lon2=0.0, lat2=0.0) Grd_dx = 0.5 Grd_dy = 0.5 Grd_ni = 170 Grd_nj = 158 Grd_iref = 11 Grd_jref = 11 Grd_latr = -33.5 Grd_lonr = 140.5 lons1d = np.array([Grd_lonr + (i - Grd_iref + 1) * Grd_dx for i in range(Grd_ni)]) lats1d = np.array([Grd_latr + (j - Grd_jref + 1) * Grd_dy for j in range(Grd_nj)]) lats2d, lons2d = np.meshgrid(lats1d, lons1d) lonlats = np.array( list(map( lambda x, y: outGrid.toGeographicLonLat(x, y), lons2d.flatten(), lats2d.flatten() )) ) print(lonlats.shape) rObj = RPN(rpn_path, mode = "w") data = convert(tiff_path, lonlats) print("interpolated data") data.shape = lons2d.shape fieldName = os.path.basename(tiff_path).split("_")[0].lower() #write coordinates ig = outGrid.write_coords_to_rpn(rObj, lons1d, lats1d) rObj.write_2D_field(name = fieldName, data=data, grid_type="Z", ig = ig, label = fieldName) rObj.close() return 0 pass