SUPMAP(3NCARG)

πŸ’– SUPMAP β€” the NCAR Graphics bestie πŸ’–

okay so before we even get into it: this is SUPMAP, from the NCAR Graphics crew. It draws an entire map in a single call β€” like, one (1) call, bestie, and the whole map is there. It's literally the ancestor routine that EZMAP grew out of. The OG. The blueprint. We love a founding mother moment. πŸ‘‘

This page lives in the 3NCARG manual, and yes, we're keeping every last detail because I would never gatekeep a flag from you. 🫢


🌸 NAME 🌸

Supmap β€” draws a map with a single call. It's the implementation of the routine from which EZMAP grew. Iconic lineage, fr fr.


✨ SYNOPSIS ✨

CALL SUPMAP (JPRJ, PLAT, PLON, ROTA, PLM1, PLM2, PLM3,
+ PLM4, JLTS, JGRD, IOUT, IDOT, IERR)

πŸ¦‹ C-BINDING SYNOPSIS πŸ¦‹

#include <ncarg/ncargC.h>

void c_supmap (int jprj, float plat, float plon,
float rota, float *plm1, float *plm2, float *plm3,
float *plm4, int jlts, int jgrd, int iout, int idot,
int *ierr)

πŸ’… DESCRIPTION πŸ’…

okay bestie, buckle up, there's a LOT of arguments and every single one of them matters. No skipping. We're doing this properly.

  • JPRJ β€” (input expression, of type INTEGER) this one defines the projection type, and also tells you whether continental outlines get plotted or not. Here's the tea:
    • IABS(JPRJ) defines the projection type, like so. Heads up: values less than 1 or greater than 10 are treated as 1 or 10, respectively. (So no, you can't sneak in an 11 and get something spicy. It's just a 10. 🫠)
      • 1 β€” Stereographic.
      • 2 β€” Orthographic.
      • 3 β€” Lambert conformal conic.
      • 4 β€” Lambert equal area.
      • 5 β€” Gnomonic.
      • 6 β€” Azimuthal equidistant.
      • 7 β€” Satellite view.
      • 8 β€” Cylindrical equidistant.
      • 9 β€” Mercator.
      • 10 β€” Mollweide-type.
Using the value 2 causes the EZMAP parameter 'SA' to be zeroed. ('SA', if greater than 1., says that a satellite-view projection, rather than an orthographic projection, is to be used, and specifies the distance of the satellite from the center of the earth, in units of earth radii.) So yeah β€” value 2 zeroes that out. Not a drill.
Using the value 7 causes 'SA' to be examined. If it has a non-zero value, the value is left alone. If it has a zero value, its value is reset to 6.631, which is about right for a satellite in a geosynchronous equatorial orbit. 🌍✨
  • The sign of JPRJ, when IOUT is -1, 0, or +1, indicates whether the continental outlines are to be plotted or not. See IOUT, below. πŸ‘‡
  • PLAT, PLON, and ROTA β€” (input expressions, of type REAL) these define the origin of the projection and its rotation angle, and they're used in the same way as they would be in a call to the routine MAPROJ (which see). Go read MAPROJ, bestie, it's all there.
  • JLTS β€” (input expression, of type INTEGER) and PLM1, PLM2, PLM3, and PLM4 (input arrays, dimensioned 2, of type REAL) specify the rectangular limits of the map. These arguments are used in the same way as they would be in a call to MAPSET (which see), except that JLTS is an integer instead of a character string. IABS(JLTS) may take on the values 1 through 5, as follows:
    • 1 β€” 'MA' β€” maximal area desired.
    • 2 β€” 'CO' β€” corner points given in PLM1, PLM2, PLM3, and PLM4.
    • 3 β€” 'LI' β€” U/V limits given in PLM1, PLM2, PLM3, and PLM4.
    • 4 β€” 'AN' β€” angles given in PLM1, PLM2, PLM3, and PLM4.
    • 5 β€” 'PO' β€” edge points given in PLM1, PLM2, PLM3, and PLM4.
At one time, the sign of JLTS specified whether or not a line of text was to be written at the bottom of the plot produced. This line may no longer be written and the sign of JLTS is therefore ignored. rip to that feature, you will not be missed (affectionately). πŸ’€
  • JGRD β€” (input expression, of type INTEGER) is used in the following way: the value of MOD(IABS(JGRD),1000) is the value, in degrees, of the interval at which lines of latitude and longitude are to be plotted. If the given interval is zero, grid lines and labels are not plotted. If JGRD is less than zero, the perimeter is not plotted. Set JGRD to -1000 to suppress both grid lines and perimeter, and to +1000 to suppress the grid lines but leave the perimeter.
⚠️ The value -0 may have a meaning on ones' complement machines, but should be avoided; use -1000 instead. Do not be cute with -0. I am begging. πŸ™
  • IOUT β€” (input expression, of type INTEGER) has the value 0 to suppress U.S. state outlines, and the value -1 or +1 to plot U.S. state outlines. In both of these cases, the sign of JPRJ indicates whether continental outlines are to be plotted (JPRJ positive) or not (JPRJ negative).

Originally, SUPMAP recognized only these values of IOUT; now, if IOUT is less than 0 or greater than 1, the sign of JPRJ is ignored, and IOUT selects an outline group, as follows:

  • -2 or less β€” 'NO' (no outlines)
  • 2 β€” 'CO' (continental outlines)
  • 3 β€” 'US' (U.S. state outlines)
  • 4 β€” 'PS' (continental outlines plus international outlines plus U.S. state outlines)
  • 5 or greater β€” 'PO' (continental outlines plus international outlines)
At one time, the sign of IOUT specified whether or not a line of text was to be written on the print output unit. This may no longer be done. Another legacy feature, gone but not forgotten. πŸ•―οΈ
  • IDOT β€” (input expression, of type INTEGER) is a 0 to get continuous outlines, a 1 to get dotted outlines. That's it. That's the whole thing. Pick your aesthetic. πŸŽ€
  • IERR β€” (output variable, of type INTEGER) is the only output parameter. A non-zero value indicates that an error has occurred. The section "ERROR CONDITIONS" lists the possible values of IERR. (Go check that section, bestie, don't leave me hanging.)

🌈 C-BINDING DESCRIPTION 🌈

The C-binding argument descriptions are the same as the FORTRAN argument descriptions. Copy, paste, slay. Same energy, different language. πŸ’œ


πŸ“ EXAMPLES πŸ“

Use the ncargex command to see the following relevant examples: caredg, cmpgci, cmpsup, mpex03, mpex08, mpexfi, bnchmk, stex03, vvex02.

That's the list. All nine. Go run them. πŸƒβ™€οΈ


πŸ”₯ ACCESS πŸ”₯

To use SUPMAP or c_supmap, load the NCAR Graphics libraries ncarg, ncarg_gks, and ncarg_c, preferably in that order. Order matters, bestie, don't freestyle it.


πŸ‘‘ SEE ALSO πŸ‘‘

Online: ezmap, ezmap_params, mapaci, mapbla, mapblm, mapdrw, mapeod, mapfst, mapgci, mapgrd, mapgrm, mapgtc, mapgti, mapgtl, mapgtr, mapint, mapiq, mapiqa, mapiqd, mapiqm, mapit, mapita, mapitd, mapitm, maplbl, maplmb, maplot, mappos, maproj, maprs, maprst, mapsav, mapset, mapstc, mapsti, mapstl, mapstr, maptra, maptri, maptrn, mapusr, mapvec, mpchln, mpfnme, mpgetc, mpgeti, mpgetl, mpgetr, mpglty, mpiaty, mpifnb, mpilnb, mpiola, mpiosa, mpipai, mpipan, mpipar, mpisci, mplnam, mplndm, mplndr, mplnri, mpname, mprset, mpsetc, mpseti, mpsetl, mpsetr, supcon, ncarg_cbind

Hardcopy: NCAR Graphics Contouring and Mapping Tutorial

(that's a whole friend group right there, iykyk 🌸)


Copyright (C) 1987-2009 University Corporation for Atmospheric Research The use of this Software is governed by a License Agreement.


okay that's the whole page!! no cap, nothing skipped, nothing summarized, every single flag accounted for. πŸ’…

this was SUPMAP from NCAR Graphics, dated March 1993, living on the UNIX side of the 3NCARG manual. shoutout to the 1987-2009 copyright era, absolute legends, periodt. πŸŽ€βœ¨ bye bestie, go draw a map!! πŸ—ΊοΈπŸ’œ