meters vs longitude-latitude¶
The partial differential equations (PDEs) solved in GeoClaw are naturally written in units of meters. In GeoClaw you can specify that your computational domain is expressed in meters by setting
rundata.geo_data.coordinate_system = 1in setrun.py, in which case the upper and lower limits of the domain should
be in meters, along with the corners of refinement flagregions, edges of
fgmax or fgout grids, locations of gauges, etc.
For many tsunami modeling problems, we instead use longitude-latitude coordinates, normally with the World Geodetic System 1984 (WGS84) coordinate system, specified by ESPG:4326 in some GIS systems. In this case, set
rundata.geo_data.coordinate_system = 2and limits of the domain and all other location specifiers in setrun.py
should be in longitude-latitude.
Choice of grid resolution¶
When written in meter coordinates, the PDEs used in GeoClaw are isotropic (on a uniform flat bottom) and waves propagate at the same speed in all directions. This suggests that it is most efficient to use the same grid resolution in and , with . The time step that can be used is related to and based on the maximum wave speed on the grid and the CFL condition.
When solving a problem set up in meters it is thus natural to take for most problems. But if the problem is set up so that and
are longitude and latitude (coordinate_system = 2), it may be less clear
how to choose the relation between and . Often we choose
(e.g. talking about “1 arcsecond resolution” usually
means the two are equal). This is partly because the topography DEMs used as
input are often in WGS84 coordinates on equally spaced grids with
and it seems natural to use the same resolution for the
simulation output. (Sometimes we might even want exactly the same grid points
for the output as the input DEM, see ??.)
Here are some things to consider in choosing the resolution:
One degree in latitude is about 111 km, so 1 arcminute (1’) is about 1.85 km. (Note also that 1’ of latitude is exactly 1 nautical mile, by definition). One arcsecond (1") in latitude is 1/60 arcminute, so about 31 m.
One degree in longitude is smaller than of latitude by a factor of at latitude . So for example at 47 degrees (off the WA coast), this is a factor of 0.68, about 2/3 the length of 1 degree latitude.
You do not need to use in GeoClaw, and for the WA coast, for example, it might make more sense to choose so that the distances these lengths are more nearly equal when converted to meters. This suggests that if then perhaps it would be best to use since the simulation would run faster than with and would have roughly the same resolution of about meters in both directions.
Resolution of adaptively refined grid patches¶
Also remember that in GeoClaw we specify the spatial resolution of the coarsest
Level 1 grid when setting clawdata.num_cells in setrun.py, and then the
resolution of refined patches is determined by the refinement ratios specified
by the lists amrdata.refinement_ratios_x and
amrdata.refinement_ratios_y (see ?? and
). These ratios in x and y
are usually the same so that if on Level 1 then the
same will be true on every finer level, for example.