Land Sea Masking Scripts

From WikiROMS
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Matlab: Land/Sea Masking Scripts

This page describes several Matlab scripts in the matlab/landmask repository sub-directory, which are used to process ROMS Land/Sea mask.



add_coastline.m
Adds coastline data to ROMS Grid NetCDF file. This is the coastline data used to facilitate Land/Sea masking editing.
add_coastline  (ncfile, Clon, Clat)
On Input:
ncfile: ROMS Grid NetCDF file name (string)
Clon: Coastline longitude (1D array, degree_east)
Clat: Coastline latitude (1D array, degree_north)


editmask.m
GUI for manual editing of ROMS Land/Sea mask on RHO-points. To accelerate the processing, the Land/Sea mask is edited in (I,J) grid coordinates. If the (I,J) coordinates are not provided, it will compute and write them into a file. If called without one or both arguments, it will prompt for the needed file name(s). If the coastline data is in grid_file, it will read it and convert to (I,J) fractional coordinates.
editmask  (grid_file, coast_file)
On Input:
grid_file: ROMS Grid NetCDF file name containing the grid and mask arrays (string)
coast_file: Matlab file name containing the coastline (lon, lat) or (I,J) fractional coordinates (string; optional)
Mouse shortcuts:
double click: zoom in
right click: zoom out
middle click: change editing mode


editscope.m
GUI for manual editing of ROMS adjoint sensitivity scope mask on RHO-points. To accelerate the processing, the Land/Sea mask is edited in (I,J) grid coordinates. If the (I,J) coordinates are not provided, it will compute and write them into a file. If called without one or both arguments, it will prompt for the needed file name(s). If the coastline data is in grid_file, it will read it and convert to (I,J) fractional coordinates.
editscope  (grid_file, coast_file)
On Input:
grid_file : ROMS Grid NetCDF file name containing the grid and mask arrays (string)
coast_file: Matlab file name containing the coastline (lon, lat) or (I,J) fractional coordinates (string; optional)
Mouse shortcuts:
double click: zoom in
right click: zoom out
middle click: change editing mode


ijcoast.m
Converts coastline data to ROMS (I,J) fractional coordinates to facilitate Land/Sea masking editing with editmask.
C = ijcoast  (ncfile, coast_file)
On Input:
ncname: ROMS grid NetCDF file name (string)
coast_file: Coastline file name (string)
On Output:
C: Coastline data (struct array)
C.grid ROMS Grid NetCDF file name
C.coast Coastline file name
C.indices Coastline indices file name
C.lon Coastline longitudes
C.lat Coastline latitudes
C.Icst Coastline I-grid coordinates, (0:L)
C.Jcst Coastline J-grid coordinates, (0:M)


landsea.m
Computes the Land/Sea mask for an application grid atomatically and writes it into an input NetCDF file. The Land/Sea mask is computed from closed coastlines polygons extracted from the GSHHS data set if the (clon, clat) coastline data is not provided.
F = lansea  (ncfile, clon, clat)
On Input:
ncname: ROMS grid NetCDF file name (string)
clon: Coastline longitude (1D array; degrees_west)
clat: Coastline latitude (1D array; degrees_north)
On Output:
F: Land/Sea mask data (struct array)
F.mask_rho Mask on ρ-points (2D array)
F.mask_psi Mask on ψ-points (2D array)
F.mask_u Mask on u-points (2D array)
F.mask_v Mask on v-points (2D array)


read_mask.m
Reads in ROMS grid bathymetry and Land/Sea mask at ρ-point from NetCDF file.
[spherical, x, y, bath, rmask] = read_mask  (ncfile)
On Input:
ncname: ROMS grid NetCDF file name (string)
On Output:
spherical: Spherical switch (logical)
x: X-location of ρ-points
y: Y-location of ρ-points
bath: Bathymetry at ρ-points
rmask: Land/Sea mask at ρ-points


read_scope.m
Reads in ROMS grid bathymetry and adjoint sensitivity scope mask at ρ-points from NetCDF file.
[spherical, x, y, bath, rmask] = read_mask  (ncfile)
On Input:
ncname: ROMS grid NetCDF file name (string)
On Output:
spherical: Spherical switch (logical)
x: X-location of ρ-points
y: Y-location of ρ-points
bath: Bathymetry at ρ-points
rmask: Land/Sea mask at ρ-points


uvp_masks.m
Computes the Land/Sea masks at u-, v-, and ψ-points from the mask on ρ-points.
[umask, vmask, vmask] = uvp_masks  (rmask)
On Input:
rmask: Land/Sea mask on ρ-points (2D array)
On Output:
umask: Land/Sea mask on u-points (2D array)
vmask: Land/Sea mask on v-points (2D array)
rmask: Land/Sea mask on ψ-points (2D array)


uv_scope.m
Computes the adjoint sensitivity scope masks at u- and v-points from the scope mask on ρ-points.
[Uscope, Vscope] = uvp_masks  (Rscope)
On Input:
Rscope: Scope mask on ρ-points (2D array)
On Output:
Uscope: Scope mask on u-points (2D array)
Vscope: Scope mask on v-points (2D array)


write_mask.m
Writes out Land/Sea mask data into ROMS Grid NetCDF file.
status = write_mask  (ncfile, rmask, umask, vmask, pmask)
On Input:
ncname: ROMS grid NetCDF file name (string)
rmask: Land/Sea mask on ρ-points (2D array)
umask: Land/Sea mask on u-points (2D array)
vmask: Land/Sea mask on v-points (2D array)
pmask: Land/Sea mask on ψ-points (2D array)
On Output:
status: Error flag


write_scope.m
Writes out adjoint sensitivity scope mask data into ROMS Grid NetCDF file.
status = write_mask  (ncfile, Rscope, Uscope, Vscope)
On Input:
ncname: ROMS grid NetCDF file name (string)
Rscope: Adjoint sensitivity scope mask on ρ-points (2D array)
Uscope: Adjoint sensitivity scope mask on u-points (2D array)
Vscope: Adjoint sensitivity scope mask on v-points (2D array)
On Output:
status: Error flag