Given a set of latitude and longitude coordinates representing a closed curve, output a gridded binary mask.
Usage
call Curve2Mask (mask_dh
, n
, sampling
, profile
, nprofile
, np
, extend
, exitstatus
)
Parameters
dh_mask
: output, integer(int32), dimension (nlat, nlong)- A Driscoll and Healy (1994) sampled grid representing a mask denoted by a closed curve. All elements will either be 1 (for inside the curve) or 0 (for outside the curve). If
sampling
is 1, the grid is equally sampled and is dimensioned as (n
byn
), wheren
is2lmax+2
. If sampling is 2, the grid is equally spaced and is dimensioned as (n
by 2n
). The first latitudinal band of the grid corresponds to 90 N, the latitudinal sampling interval is 180/n
degrees, and the default behavior is to exclude the latitudinal band for 90 S. The first longitudinal band of the grid is 0 E, by default the longitudinal band for 360 E is not included, and the longitudinal sampling interval is 360/n
for an equally sampled and 180/n
for an equally spaced grid, respectively. Ifextend
is 1, the longitudinal band for 360 E and the latitudinal band for 90 S will be included, which increases each of the dimensions of the grid by 1. n
: input, integer- The number of latitudinal samples in
dh_mask
. The effective spherical harmonic bandwidth of this grid isL=n/2-1
. sampling
: input, integer(int32)- For 1,
dh_mask
is dimensioned as (n
,n
), whereas for 2,dh_mask
is dimensioned as (n
,2n
). profile
: input, real(dp), dimension (nprofile
, 2)- List of latitude (:,1) and longitude (:,2) coordinates in degrees specifying a single closed curve.
nprofile
: input, integer(int32)- The number of coordinates in the curve
profile
. np
: input, integer(int32)- The value of the returned mask at the North pole (90N, 0E). If the North pole is outside of the concentration region, set this to 0; if it is inside the concentration region, set this to 1.
extend
: input, optional, integer(int32), default = 0- If 1, compute the longitudinal band for 360 E and the latitudinal band for 90 S. This increases each of the dimensions of
dh_mask
by 1. exitstatus
: output, optional, integer(int32)- If present, instead of executing a STOP when an error is encountered, the variable exitstatus will be returned describing the error. 0 = No errors; 1 = Improper dimensions of input array; 2 = Improper bounds for input variable; 3 = Error allocating memory; 4 = File IO error.
Description
Curve2Mask
will take a list of latitude and longitude coordinates that represent a single closed curve, and output a mask mask_dh
that contains ones and zeros where the grid nodes are inside and outside of the curve, respectively. mask_dh
must be sampled according to the Driscoll and Healy (1994) sampling theorem with n
samples in latitude, and either possess n
samples in longitude (sampling=1
) or 2n
samples in longitude (sampling=2
). It is necessary to specify a single point as being inside or outside of the curve, and for this the value at the North pole (90N, 0E) must be specified as either 0 or 1.
Longitudes of the curve can span the range from -360 to 720 degrees. If the longitudes of two adjacent points differ by more than 180 degrees, it will be assumed that the curve passes from 360 to 0 degrees, or from -180 to 180 degrees.
Reference
Driscoll, J.R. and D.M. Healy, Computing Fourier transforms and convolutions on the 2-sphere, Adv. Appl. Math., 15, 202-250, 1994.
See also
shreturntapersmap, computedmap
Edit me