Changeset 6124 for TOOLS/MOSAIX/Build_coordinates_mask.py
- Timestamp:
- 04/27/22 13:58:44 (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TOOLS/MOSAIX/Build_coordinates_mask.py
r6123 r6124 17 17 __Revision__ = "$Revision$" 18 18 __Id__ = "$Id$" 19 __HeadURL__ = "$HeadURL: http://forge.ipsl.jussieu.fr/igcmg/svn/TOOLS/MOSAIX/Build_coordinates_mask.py$"19 __HeadURL__ = "$HeadURL: $" 20 20 ### 21 21 … … 24 24 parser = argparse.ArgumentParser ( 25 25 description = """Read coordinates and bathymetry to build masks, grid bounds and areas for MOSAIX""", 26 epilog='-------- End of the help message --------') 26 epilog='-------- End of the help message --------', 27 formatter_class=argparse.ArgumentDefaultsHelpFormatter) 27 28 28 29 # Adding arguments … … 31 32 parser.add_argument ('--coord' , help='coordinates file name', type=str, default='coordinates.nc' ) 32 33 parser.add_argument ('--fout' , help='output file name (given as an input to MOSAIX)', type=str, default='coordinates_mask.nc' ) 33 parser.add_argument ('--ocePerio', help='periodicity of ocean grid ', type=int, default=0, choices=range(1, 7) )34 parser.add_argument ('--ocePerio', help='periodicity of ocean grid, if not given is imposed according to --model', type=int, default=0, choices=range(1, 7) ) 34 35 parser.add_argument ('--nemo4Ubug',help='reproduce NEMO lbc_lnk bug for U grid and periodicity 4', type=bool, default=False, choices=(True, False) ) 35 36 parser.add_argument ('--straits' , help='modify grid metrics for selected strait points (depends on model name)', type=bool, default=False, choices=(True, False) ) … … 99 100 Bathymetry = f_bathy['Bathymetry'].copy() 100 101 101 try : 102 Bathymetry = Bathymetry.rename ({'nav_lat':'nav_lat_grid_T', 'nav_lon':'nav_lon_grid_T'}) 103 print ('Bathymetry file: Normal case') 104 except : 105 print ('Bathymetry file: Exception') 106 nav_lon_grid_T = f_bathy ['nav_lon'].data 107 nav_lat_grid_T = f_bathy ['nav_lat'].data 108 Bathymetry = xr.DataArray (Bathymetry, coords = { "nav_lat_grid_T": (["y", "x"], nav_lat_grid_T), 109 "nav_lon_grid_T": (["y", "x"], nav_lon_grid_T) } ) 102 nav_lon_grid_T = f_bathy['nav_lon'].data 103 nav_lat_grid_T = f_bathy['nav_lat'].data 104 Bathymetry = xr.DataArray (Bathymetry, coords = { "nav_lat_grid_T": (["y", "x"], nav_lat_grid_T), 105 "nav_lon_grid_T": (["y", "x"], nav_lon_grid_T) } ) 110 106 111 107 Bathymetry = Bathymetry.rename ({'y':'y_grid_T', 'x':'x_grid_T'}) … … 182 178 # impose or not periodicity on coordinates read from file 183 179 if coordperio : 184 locals()[coord_name] = nemo.lbc (f_coord 180 locals()[coord_name] = nemo.lbc (f_coord[dir_name].copy(), nperio=nperio, cd_type=cd_type, nemo_4U_bug=nemoUbug) 185 181 else : 186 locals()[coord_name] = f_coord 182 locals()[coord_name] = f_coord[dir_name].copy() 187 183 188 184 locals()[coord_name] = locals()[coord_name].rename( {'y':'y_grid_'+cd_type, 'x':'x_grid_'+cd_type} ) … … 303 299 if cdgrd in ['T', 'W'] : 304 300 icnr = -1 ; jcnr = -1 305 corner_lon = f_coord ['glamf'].copy() ; corner_lat = f_coord['gphif'].copy()306 center_lon = f_coord ['glamt'].copy() ; center_lat = f_coord['gphit'].copy()301 corner_lon = f_coord['glamf'].copy() ; corner_lat = f_coord['gphif'].copy() 302 center_lon = f_coord['glamt'].copy() ; center_lat = f_coord['gphit'].copy() 307 303 if cdgrd == 'U' : 308 304 icnr = 0 ; jcnr = -1 309 corner_lon = f_coord ['glamv'].copy() ; corner_lat = f_coord['gphiv'].copy()310 center_lon = f_coord ['glamu'].copy() ; center_lat = f_coord['gphiu'].copy()305 corner_lon = f_coord['glamv'].copy() ; corner_lat = f_coord['gphiv'].copy() 306 center_lon = f_coord['glamu'].copy() ; center_lat = f_coord['gphiu'].copy() 311 307 if cdgrd == 'V' : 312 308 icnr = -1 ; jcnr = 0 313 corner_lon = f_coord ['glamu'].copy() ; corner_lat = f_coord['gphiu'].copy()314 center_lon = f_coord ['glamv'].copy() ; center_lat = f_coord['gphiv'].copy()309 corner_lon = f_coord['glamu'].copy() ; corner_lat = f_coord['gphiu'].copy() 310 center_lon = f_coord['glamv'].copy() ; center_lat = f_coord['gphiv'].copy() 315 311 if cdgrd == 'F' : 316 312 icnr = -1 ; jcnr = -1 317 corner_lon = f_coord ['glamt'].copy() ; corner_lat = f_coord['gphit'].copy()318 center_lon = f_coord ['glamf'].copy() ; center_lat = f_coord['gphif'].copy()313 corner_lon = f_coord['glamt'].copy() ; corner_lat = f_coord['gphit'].copy() 314 center_lon = f_coord['glamf'].copy() ; center_lat = f_coord['gphif'].copy() 319 315 320 316 jpj, jpi = corner_lon.shape ; … … 369 365 bounds_lon_tmp = np.roll (bounds_lon, shift=-2, axis=2) 370 366 bounds_lat_tmp = np.roll (bounds_lat, shift=-2, axis=2) 371 bounds_lon [0,:,:] = bounds_lon[0,:,:]372 bounds_lat [0,:,:] = bounds_lat[0,:,:]367 bounds_lon[0,:,:] = bounds_lon[0,:,:] 368 bounds_lat[0,:,:] = bounds_lat[0,:,:] 373 369 374 370 #bounds_lon.attrs['coordinates'] = 'nav_lat_grid_' + cdgrd + ' nav_lon_grid_' + cdgrd
Note: See TracChangeset
for help on using the changeset viewer.