The ConvertLonLatToMGRS method converts a set of geographic latitude/longitude coordinates to Military Grid Reference System (MGRS) coordinates within a Rational Polynomial Coefficient (RPC) spatial reference. The associated ENVIRaster's metadata must include a coordinate system string.


See the example for ENVIStandardRasterSpatialRef::ConvertLonLatToMGRS. That example shows the pattern of using the ConvertLonLatToMGRS method, only you would replace the standard spatial reference with an RPC spatial reference.


ENVIRPCRasterSpatialRef.ConvertLonLatToMGRS, Lon, Lat, MGRS [, NUM_DIGITS=integer] [, /ROUND] [, MODE=integer]



The longitude coordinate. You can specify a scalar or a vector of longitude values; if it is a vector, the Lat argument should also be a vector with the same number of elements:

Lon = [-123.58, -134.64]
Lat = [48.23, 49.56]


The latitude coordinate


A named variable that contains a string with the returned MGRS coordinates



Set this keyword to a named variable that will contain any error message issued during execution of this routine. If no error occurs, the ERROR variable will be set to a null string (''). If an error occurs and the routine is a function, then the function result will be undefined.

When this keyword is not set and an error occurs, ENVI returns to the caller and execution halts. In this case, the error message is contained within !ERROR_STATE and can be caught using IDL's CATCH routine. See IDL Help for more information on !ERROR_STATE and CATCH.

See Manage Errors for more information on error handling in ENVI programming.


Set this keyword to an integer between 0 and 8 to change the precision (the number of digits in the northing and easting) of the returned MGRS coordinates. If this keyword is not set, the number of digits returned is 5 (1-square-meter precision).


When converting UTM coordinates to an MGRS grid, or when abbreviating an MGRS grid to lower precision, a common and preferred method is to truncate the easting and northing values so that the MGRS string will be located in the same 100 km grid square. This is the default method that ENVI uses.

Set this keyword if you want to round the easting and northing values, which might mean that the MGRS string uses the next 100 km grid square.


Set this keyword to one of the following integers to determine the format in describing a point on an MGRS grid:

  • 0: Automatic (default)
  • 1: All spheroids are treated the same as WGS-84
  • 2: All spheroids are treated the same as Clarke 1866 or Bessel
  • 10: Automatic; a longitude value of +180 is in Zone 1
  • 11: All spheroids are treated the same as WGS-84; a longitude value of +180 is in Zone 1
  • 12: All spheroids are treated the same as Clarke 1866 or Bessel; a longitude value of +180 is in Zone 1

Version History

ENVI 5.1


API Version


See Also

ENVIRPCRasterSpatialRef, ENVIPseudoRasterSpatialRef::ConvertLonLatToMGRS, ENVIStandardRasterSpatialRef::ConvertLonLatToMGRS