Land Sea Masking Scripts: Difference between revisions
From WikiROMS
				
				
				Jump to navigationJump to search
				
				
| No edit summary   (change visibility)  | No edit summary   (change visibility)  | ||
| Line 14: | Line 14: | ||
| ::<span class="red">add_coastline</span>  (<span class="green">ncfile</span>, <span class="green">Clon</span>, <span class="green">Clat</span>) | ::<span class="red">add_coastline</span>  (<span class="green">ncfile</span>, <span class="green">Clon</span>, <span class="green">Clat</span>) | ||
| :'''On Input:''' | :'''On Input:''' | ||
| ::<span class="green">ncfile</span>:  | ::{| class="matlab" | ||
| |- | |||
| |<span class="green">ncfile</span>: | |||
| |ROMS Grid NetCDF file name (string) | |||
| |- | |||
| |<span class="green">Clon</span>: | |||
| |Coastline longitude (1D array, degree_east) | |||
| |- | |||
| |<span class="green">Clat</span>: | |||
| |Coastline latitude  (1D array, degree_north) | |||
| |- | |||
| |}<section end=add_coastline.m /> | |||
| Line 23: | Line 32: | ||
| ::<span class="red">editmask</span>  (<span class="green">grid_file</span>, <span class="green">coast_file</span>) | ::<span class="red">editmask</span>  (<span class="green">grid_file</span>, <span class="green">coast_file</span>) | ||
| :'''On Input:''' | :'''On Input:''' | ||
| ::<span class="green">grid_file </span>:  | ::{| class="matlab" | ||
| |- | |||
| |<span class="green">grid_file</span>: | |||
| |ROMS Grid NetCDF file name containing the grid and mask arrays (string) | |||
| |- | |||
| |<span class="green">coast_file</span>: | |||
| |Matlab file name containing the coastline (lon, lat) or (I,J) fractional coordinates (string; optional) | |||
| |- | |||
| |} | |||
| :'''Mouse shortcuts:''' | :'''Mouse shortcuts:''' | ||
| ::<span class="green">double click</span> | ::{| class="matlab" | ||
| |- | |||
| |<span class="green">double click</span>: | |||
| |zoom in | |||
| |- | |||
| |<span class="green">right click</span>: | |||
| |zoom out | |||
| |- | |||
| |<span class="green">middle click</span>: | |||
| |change editing mode | |||
| |- | |||
| |}<section end=editmask.m /> | |||
| Line 35: | Line 60: | ||
| ::<span class="red">editscope</span>  (<span class="green">grid_file</span>, <span class="green">coast_file</span>) | ::<span class="red">editscope</span>  (<span class="green">grid_file</span>, <span class="green">coast_file</span>) | ||
| :'''On Input:''' | :'''On Input:''' | ||
| ::<span class="green">grid_file </span>:  | ::{| class="matlab" | ||
| |- | |||
| |<span class="green">grid_file </span>: | |||
| |ROMS Grid NetCDF file name containing the grid and mask arrays (string) | |||
| |- | |||
| |<span class="green">coast_file</span>: | |||
| |Matlab file name containing the coastline (lon, lat) or (I,J) fractional coordinates (string; optional) | |||
| |- | |||
| |} | |||
| :'''Mouse shortcuts:''' | :'''Mouse shortcuts:''' | ||
| ::<span class="green">double click</span> | ::{| class="matlab" | ||
| |- | |||
| |<span class="green">double click</span>: | |||
| |zoom in | |||
| |- | |||
| |<span class="green">right click</span>: | |||
| |zoom out | |||
| |- | |||
| |<span class="green">middle click</span>: | |||
| |change editing mode | |||
| |- | |||
| |}<section end=editscope.m /> | |||
| Line 47: | Line 88: | ||
| ::<span class="green">C</span> = <span class="red">ijcoast</span>  (<span class="green">ncfile</span>, <span class="green">coast_file) | ::<span class="green">C</span> = <span class="red">ijcoast</span>  (<span class="green">ncfile</span>, <span class="green">coast_file) | ||
| :'''On Input:''' | :'''On Input:''' | ||
| ::<span class="green">ncname</span>:  | ::{| class="matlab" | ||
| |- | |||
| |<span class="green">ncname</span>: | |||
| |ROMS grid NetCDF file name (string) | |||
| |- | |||
| |<span class="green">coast_file</span>: | |||
| |Coastline file name (string) | |||
| |- | |||
| |} | |||
| :'''On Output:''' | :'''On Output:''' | ||
| ::<span class="green">C</span>:  | ::{| class="matlab" | ||
| :::<span class="green">C.grid  | |- | ||
| |<span class="green">C</span>: | |||
| |Coastline data (struct array) | |||
| |- | |||
| |} | |||
| :::{| class="matlab" | |||
| |- | |||
| |<span class="green">C.grid</span> | |||
| |ROMS Grid NetCDF file name | |||
| |- | |||
| |<span class="green">C.coast</span> | |||
| |Coastline file name | |||
| |- | |||
| |<span class="green">C.indices</span> | |||
| |Coastline indices file name | |||
| |- | |||
| |<span class="green">C.lon</span> | |||
| |Coastline longitudes | |||
| |- | |||
| |<span class="green">C.lat</span> | |||
| |Coastline latitudes | |||
| |- | |||
| |<span class="green">C.Icst</span> | |||
| |Coastline I-grid coordinates, (0:L) | |||
| |- | |||
| |<span class="green">C.Jcst</span> | |||
| |Coastline J-grid coordinates, (0:M) | |||
| |- | |||
| |}<section end=ijcoast.m /> | |||
| Line 64: | Line 134: | ||
| ::<span class="green">F</span> = <span class="red">lansea</span>  (<span class="green">ncfile</span>, <span class="green">clon</span>, <span class="green">clat</span>) | ::<span class="green">F</span> = <span class="red">lansea</span>  (<span class="green">ncfile</span>, <span class="green">clon</span>, <span class="green">clat</span>) | ||
| :'''On Input:''' | :'''On Input:''' | ||
| ::<span class="green">ncname</span>:  | ::{| class="matlab" | ||
| |- | |||
| |<span class="green">ncname</span>: | |||
| |ROMS grid NetCDF file name (string) | |||
| |- | |||
| |<span class="green">clon</span>: | |||
| |Coastline longitude (1D array; degrees_west) | |||
| |- | |||
| |<span class="green">clat</span>: | |||
| |Coastline latitude (1D array; degrees_north) | |||
| |- | |||
| |} | |||
| :'''On Output:''' | :'''On Output:''' | ||
| ::<span class="green">F</span>:  | ::{| class="matlab" | ||
| :::<span class="green">F.mask_rho</span> | |- | ||
| |<span class="green">F</span>: | |||
| |Land/Sea mask data (struct array) | |||
| |- | |||
| |} | |||
| :::{| class="matlab" | |||
| |- | |||
| |<span class="green">F.mask_rho</span> | |||
| |Mask on '''ρ'''-points (2D array) | |||
| |- | |||
| |<span class="green">F.mask_psi</span> | |||
| |Mask on '''ψ'''-points (2D array) | |||
| |- | |||
| |<span class="green">F.mask_u</span> | |||
| |Mask on '''u'''-points (2D array) | |||
| |- | |||
| |<span class="green">F.mask_v</span> | |||
| |Mask on '''v'''-points (2D array) | |||
| |- | |||
| |}<section end=landsea.m /> | |||
| Line 79: | Line 174: | ||
| ::[<span class="green">spherical</span>, <span class="green">x</span>, <span class="green">y</span>, <span class="green">bath</span>, <span class="green">rmask</span>] = <span class="red">read_mask</span>  (<span class="green">ncfile</span>) | ::[<span class="green">spherical</span>, <span class="green">x</span>, <span class="green">y</span>, <span class="green">bath</span>, <span class="green">rmask</span>] = <span class="red">read_mask</span>  (<span class="green">ncfile</span>) | ||
| :'''On Input:''' | :'''On Input:''' | ||
| ::<span class="green">ncname</span>:  | ::{| class="matlab" | ||
| |- | |||
| |<span class="green">ncname</span>: | |||
| |ROMS grid NetCDF file name (string) | |||
| |- | |||
| |} | |||
| :'''On Output:''' | :'''On Output:''' | ||
| ::<span class="green">spherical</span> | ::{| class="matlab" | ||
| |- | |||
| |<span class="green">spherical</span>: | |||
| |Spherical switch (logical) | |||
| |- | |||
| |<span class="green">x</span>: | |||
| |X-location of ρ-points | |||
| |- | |||
| |<span class="green">y</span>: | |||
| |Y-location of ρ-points | |||
| |- | |||
| |<span class="green">bath</span>: | |||
| |Bathymetry at ρ-points | |||
| |- | |||
| |<span class="green">rmask</span>: | |||
| |Land/Sea mask at ρ-points | |||
| |- | |||
| |}<section end=read_mask.m /> | |||
| Line 92: | Line 205: | ||
| ::[<span class="green">spherical</span>, <span class="green">x</span>, <span class="green">y</span>, <span class="green">bath</span>, <span class="green">rmask</span>] = <span class="red">read_mask</span>  (<span class="green">ncfile</span>) | ::[<span class="green">spherical</span>, <span class="green">x</span>, <span class="green">y</span>, <span class="green">bath</span>, <span class="green">rmask</span>] = <span class="red">read_mask</span>  (<span class="green">ncfile</span>) | ||
| :'''On Input:''' | :'''On Input:''' | ||
| ::<span class="green">ncname</span>:  | ::{| class="matlab" | ||
| |- | |||
| |<span class="green">ncname</span>: | |||
| |ROMS grid NetCDF file name (string) | |||
| |- | |||
| |} | |||
| :'''On Output:''' | :'''On Output:''' | ||
| ::<span class="green">spherical</span> | ::{| class="matlab" | ||
| |- | |||
| |<span class="green">spherical</span>: | |||
| |Spherical switch (logical) | |||
| |- | |||
| |<span class="green">x</span>: | |||
| |X-location of ρ-points | |||
| |- | |||
| |<span class="green">y</span>: | |||
| |Y-location of ρ-points | |||
| |- | |||
| |<span class="green">bath</span>: | |||
| |Bathymetry at ρ-points | |||
| |- | |||
| |<span class="green">rmask</span>: | |||
| |Land/Sea mask at ρ-points | |||
| |- | |||
| |}<section end=read_scope.m /> | |||
| Line 105: | Line 236: | ||
| ::[<span class="green">umask</span>, <span class="green">vmask</span>, <span class="green">vmask</span>] = <span class="red">uvp_masks</span>  (<span class="green">rmask</span>) | ::[<span class="green">umask</span>, <span class="green">vmask</span>, <span class="green">vmask</span>] = <span class="red">uvp_masks</span>  (<span class="green">rmask</span>) | ||
| :'''On Input:''' | :'''On Input:''' | ||
| ::<span class="green">rmask</span>:  | ::{| class="matlab" | ||
| |- | |||
| |<span class="green">rmask</span>: | |||
| |Land/Sea mask on '''ρ'''-points (2D array) | |||
| |- | |||
| |} | |||
| :'''On Output:''' | :'''On Output:''' | ||
| ::<span class="green">umask</span> | ::{| class="matlab" | ||
| |- | |||
| |<span class="green">umask</span>: | |||
| |Land/Sea mask on '''u'''-points (2D array) | |||
| |- | |||
| |<span class="green">vmask</span>: | |||
| |Land/Sea mask on '''v'''-points (2D array) | |||
| |- | |||
| |<span class="green">rmask</span>: | |||
| |Land/Sea mask on '''ψ'''-points (2D array) | |||
| |- | |||
| |}<section end=uvp_masks.m /> | |||
| Line 116: | Line 261: | ||
| ::[<span class="green">Uscope</span>, <span class="green">Vscope</span>] = <span class="red">uvp_masks</span>  (<span class="green">Rscope</span>) | ::[<span class="green">Uscope</span>, <span class="green">Vscope</span>] = <span class="red">uvp_masks</span>  (<span class="green">Rscope</span>) | ||
| :'''On Input:''' | :'''On Input:''' | ||
| ::<span class="green">Rscope</span>:  | ::{| class="matlab" | ||
| |- | |||
| |<span class="green">Rscope</span>: | |||
| |Scope mask on '''ρ'''-points (2D array) | |||
| |- | |||
| |} | |||
| :'''On Output:''' | :'''On Output:''' | ||
| ::<span class="green">Uscope</span> | ::{| class="matlab" | ||
| |- | |||
| |<span class="green">Uscope</span>: | |||
| |Scope mask on '''u'''-points (2D array) | |||
| |- | |||
| |<span class="green">Vscope</span>: | |||
| |Scope mask on '''v'''-points (2D array) | |||
| |- | |||
| |}<section end=uv_scope.m /> | |||
| Line 126: | Line 283: | ||
| ::<span class="green">status</span> = <span class="red">write_mask</span>  (<span class="green">ncfile</span>, <span class="green">rmask</span>, <span class="green">umask</span>, <span class="green">vmask</span>, <span class="green">pmask</span>) | ::<span class="green">status</span> = <span class="red">write_mask</span>  (<span class="green">ncfile</span>, <span class="green">rmask</span>, <span class="green">umask</span>, <span class="green">vmask</span>, <span class="green">pmask</span>) | ||
| :'''On Input:''' | :'''On Input:''' | ||
| ::<span class="green">ncname</span>:  | ::{| class="matlab" | ||
| |- | |||
| |<span class="green">ncname</span>: | |||
| |ROMS grid NetCDF file name (string) | |||
| |- | |||
| |<span class="green">rmask</span>: | |||
| |Land/Sea mask on '''ρ'''-points (2D array) | |||
| |- | |||
| |<span class="green">umask</span>: | |||
| |Land/Sea mask on '''u'''-points (2D array) | |||
| |- | |||
| |<span class="green">vmask</span>: | |||
| |Land/Sea mask on '''v'''-points (2D array) | |||
| |- | |||
| |<span class="green">pmask</span>: | |||
| |Land/Sea mask on '''ψ'''-points (2D array) | |||
| |- | |||
| |} | |||
| :'''On Output:''' | :'''On Output:''' | ||
| ::<span class="green">status</span> | ::{| class="matlab" | ||
| |- | |||
| |<span class="green">status</span>: | |||
| |Error flag | |||
| |- | |||
| |}<section end=write_mask.m /> | |||
| Line 139: | Line 314: | ||
| ::<span class="green">status</span> = <span class="red">write_mask</span>  (<span class="green">ncfile</span>, <span class="green">Rscope</span>, <span class="green">Uscope</span>, <span class="green">Vscope</span>) | ::<span class="green">status</span> = <span class="red">write_mask</span>  (<span class="green">ncfile</span>, <span class="green">Rscope</span>, <span class="green">Uscope</span>, <span class="green">Vscope</span>) | ||
| :'''On Input:''' | :'''On Input:''' | ||
| ::<span class="green">ncname</span>:  | ::{| class="matlab" | ||
| |- | |||
| |<span class="green">ncname</span>: | |||
| |ROMS grid NetCDF file name (string) | |||
| |- | |||
| |<span class="green">Rscope</span>: | |||
| |Adjoint sensitivity scope mask on '''ρ'''-points (2D array) | |||
| |- | |||
| |<span class="green">Uscope</span>: | |||
| |Adjoint sensitivity scope mask on '''u'''-points (2D array) | |||
| |- | |||
| |<span class="green">Vscope</span>: | |||
| |Adjoint sensitivity scope mask on '''v'''-points (2D array) | |||
| |- | |||
| |} | |||
| :'''On Output:''' | :'''On Output:''' | ||
| ::<span class="green">status</span> | ::{| class="matlab" | ||
| |- | |||
| |<span class="green">status</span>: | |||
| |Error flag | |||
| |- | |||
| |}<section end=write_scope.m /> | |||
Latest revision as of 13:10, 4 May 2012
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 
 
