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 11: | Line 11: | ||
<section begin=add_coastline.m />;<span id="add_coastline"></span><span class="blue">add_coastline.m</span> | <section begin=add_coastline.m />;<span id="add_coastline"></span><span class="blue">add_coastline.m</span> | ||
:Adds coastline data to ROMS Grid NetCDF file. This is the coastline data | :Adds coastline data to ROMS Grid NetCDF file. This is the coastline data used to facilitate Land/Sea masking editing. <br /> | ||
::<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:''' | ||
Line 20: | Line 20: | ||
<section begin=editmask.m />;<span id="editmask"></span><span class="blue">editmask.m</span> | <section begin=editmask.m />;<span id="editmask"></span><span class="blue">editmask.m</span> | ||
: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 compute and write them into file. If called without | :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. <br /> | ||
::<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:''' | ||
Line 32: | Line 32: | ||
<section begin=editscope.m />;<span id="editscope"></span><span class="blue">editscope.m</span> | <section begin=editscope.m />;<span id="editscope"></span><span class="blue">editscope.m</span> | ||
: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 compute and write them into file. If called without | :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. <br /> | ||
::<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:''' | ||
Line 61: | Line 61: | ||
<section begin=landsea.m />;<span id="landsea"></span><span class="blue">landsea.m</span> | <section begin=landsea.m />;<span id="landsea"></span><span class="blue">landsea.m</span> | ||
:Computes | :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 (<span class="green">clon</span>, <span class="green">clat</span>) coastline data is not provided. <br /> | ||
::<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:''' | ||
Line 70: | Line 70: | ||
::<span class="green">F</span>: Land/Sea mask data (struct array) | ::<span class="green">F</span>: Land/Sea mask data (struct array) | ||
:::<span class="green">F.mask_rho</span>, Mask on '''ρ'''-points (2D array) | :::<span class="green">F.mask_rho</span>, Mask on '''ρ'''-points (2D array) | ||
:::<span class="green">F.mask_psi</span>, Mask on | :::<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_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 /> | :::<span class="green">F.mask_v </span>, Mask on '''v'''-points (2D array) <section end=landsea.m /> | ||
Line 89: | Line 89: | ||
<section begin=read_scope.m />;<span id="read_scope"></span><span class="blue">read_scope.m</span> | <section begin=read_scope.m />;<span id="read_scope"></span><span class="blue">read_scope.m</span> | ||
:Reads in ROMS grid bathymetry and adjoint sensitivity scope mask at ρ- | :Reads in ROMS grid bathymetry and adjoint sensitivity scope mask at ρ-points from NetCDF file. <br /> | ||
::[<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:''' | ||
Line 124: | Line 124: | ||
<section begin=write_mask.m />;<span id="write_mask"></span><span class="blue">write_mask.m</span> | <section begin=write_mask.m />;<span id="write_mask"></span><span class="blue">write_mask.m</span> | ||
:Writes out Land/Sea mask data into ROMS Grid NetCDF file. <br /> | :Writes out Land/Sea mask data into ROMS Grid NetCDF file. <br /> | ||
::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>: ROMS grid NetCDF file name (string) | ::<span class="green">ncname</span>: ROMS grid NetCDF file name (string) | ||
Line 137: | Line 137: | ||
<section begin=write_scope.m />;<span id="write_scope"></span><span class="blue">write_scope.m</span> | <section begin=write_scope.m />;<span id="write_scope"></span><span class="blue">write_scope.m</span> | ||
:Writes out adjoint sensitivity scope mask data into ROMS Grid NetCDF file. <br /> | :Writes out adjoint sensitivity scope mask data into ROMS Grid NetCDF file. <br /> | ||
::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>: ROMS grid NetCDF file name (string) | ::<span class="green">ncname</span>: ROMS grid NetCDF file name (string) |
Revision as of 13:38, 2 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)
- C: Coastline data (struct array)
- 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)
- F: Land/Sea mask data (struct 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