DCL:GRPH2:UMPACK: Map Projection Routines: Summary
The UMPACK consists of draw routines to show map information (such as
coastlines, meridians, and parallels) and control routines for setting
appropriate parameters necessary for map projection transformations
Below are the subroutines a user will be using in UMPACK.
The umpfit is returned to the undefined state by grfrm,
etc., and after that, the parameters for transformation functions that were not
specified by the user will be set appropriately. To make the transformation
function effective using these parameters,
grstrf must be called.
When all of the parameters necessary for map projection are set, umpfit does nothing. On the other hand, when there is even one parameter necessary for map projection that is not set, umpfit will try to set an appropriate parameter based on information that has been set. The operation of umpfit can largely be divided into the two steps below.
- 1:
- Set the pole for map projection (PLX, PLY, PLROT).
- 2:
- Adjust the similarity transformation parameters (SIMFAC, VXOFF, VYOFF) so that the specified points all fall within range.
In other words, first, the center point for the map projection is set, and
then scaling and parallel shifting is performed to include all of the specified
points.
The center point of the map projection will be referred to as the
"contact" in this package. In cylindrical or conical projections, the
contact between the sphere and the plane of projection from a line; in this
case, the node of the tangent and the central meridian is considered to be the
"contact." In azimuthal projections, the "contact" is
synonymous with the pole of the map projection. Although this is not a correct
usage of the term in cartography, we will use the common term
"contact" for all projections to refer to the central point at which
the distortions is usually minimal.
The first step in umpfit is to determine this "contact." The following information will be used for this purpose.
If information of higher priority is specified, then all information at lower priority will be ignored.
- 1:
- Specification of the pole using SGSMPL.
- 2:
- Specification of the contact using UMSCNT.
- 3:
- Specification of the circular window using UMSCWD.
- 4:
- Specification of a rectangular window using SGSWND.
- 5:
- Specification of the drawing using UMSPNT.
- 6:
- The defalut value (PLX=0, PLY=90)
Mercator's projection: between S75 and N75 Polar stereo projection: between the equator and the north pole Lambert's conformal conical projection: between the equator and the north pole
When a part or all of the viewport parameters, vxmin, vxmax, vymin,
and vymax are not specified, scaling is performed so that the specified
range inscribes the maximum frame area. Then, the minimum viewport that can
display all of the specified range is then set.
In the UMPACK, several coding methods can be made to achieve the same results. The standard usages are presented below.
CALL grfrm NumRu::DCL.grstrn(itr) NumRu::DCL.grswnd(uxmin,uxmax,uymin,uymax) CALL umpfit CALL grstrf
CALL grfrm NumRu::DCL.grstrn(itr) NumRu::DCL.umscwd(xcntr,ycntr,r) CALL umpfit CALL grstrfThe uxc and uyc are the central meridians and parallel in the map, and an area within a radius of R (angular distance) of this point will be drawn.
CALL grfrm NumRu::DCL.grstrn(itr) NumRu::DCL.umscnt(xcnt,ycnt,rot) NumRu::DCL.umlset(cp,lpara) CALL umpfit CALL grstrfuxc is the longitude which will be the central meridian.
CALL grfrm NumRu::DCL.grstrn(itr) NumRu::DCL.umscnt(xcnt,ycnt,rot) NumRu::DCL.umlset(cp,lpara) CALL umpfit CALL grstrf