coyote: CGCHANGEMAPPROJECTION

Description
This function warps a map projected image from one map projection to another, using
Map_Proj_Image to do the warping. Useful in general, it is used specifically to
warp map projected images into the Equirectangular map projection with a WGS 84 ellipsoid
that is used by Google Earth. See the program `cgImage2KML` to see how it is used.
Categories
Map Projections, Utilities
Returns
An image warped into the output map projection is returned.
Params
image: in, required
   Any 2D or true-color image with or without an alpha channel. This image will
   be warped to the output map projection (`mapOut`).
mapin: in, required, type=object
   A map coordinate object (cgMap) describing the map projection and coordinates of the
   input image that is to be warped.  
Keywords
boundary: in, optional, type=dblarr
   A four-element array specifying the Cartesian (XY) coordinates of the input
   image range, in the form [xmin, ymin, xmax, ymax]. If this parameter is not
   present, the boundary will be obtained from the `MapIn` map coordinate object.
   On output, this variable will contain the Cartesian boundary of the warped image.
bilinear: in, optional, type=boolean, default=0
   Set this keyword to warp the image with bilinear interpolation. The default is
   to do nearest neighbor interpolation.
latlonbox: out, optional, type=fltarr
   A four-element float array containing the boundaries of the warped image in
   the [north, south, east, west] form preferred by Google Earth. Listed as degrees.
mapout: in, optional, type=object
   A map coordinate object (cgMap) describing the map projection and coordinates of the
   warped image. This image will be warped into this map projection. The [XY]Range of
   this object will be set to the `XYRange` of the output image.  
mask: out, optional
   Set this keyword equal to a named variable that will contain a byte array of the same 
   dimensions as the output image, containing a mask of the “good” values. Values in the output  
   image that were set to `Missing` (that is, the values were off the map) will have a mask value 
   of 0, while all other mask values will be 1.
missing: in, optional, type=integer, default=0
   Set this keyword equal to an integer value to be used for pixels that fall outside of 
   the valid map coordinates. The default value is 0.
xyrange: out, optional, type=dblarr
   The Cartesian (XY) coordinates associated with the output image. These are the map image
   boundaries of the output image.
Examples
To prepare a GeoTiff file for creating a KML overlay on Google Earth::
   netObject = Obj_New('IDLnetURL')
   url = 'http://www.idlcoyote.com/data/AF03sep15b.n16-VIg.tif'
   returnName = netObject -> Get(URL=url, FILENAME=AF03sep15b.n16-VIg.tif')
   Obj_Destroy, netObject
   map = cgGeoMap('AF03sep15b.n16-VIg.tif')
   googleMap = Obj_New('cgMap', 'Equirectangular', Ellipsoid='WGS 84')
   warpedImage = cgChangeMapProjection(image, map, MAPOUT=googleMap)
Author
FANNING SOFTWARE CONSULTING::
   David W. Fanning 
   1645 Sheely Drive
   Fort Collins, CO 80526 USA
   Phone: 970-221-0438
   E-mail: david@idlcoyote.com
   Coyote's Guide to IDL Programming: http://www.idlcoyote.com
History
Change History::
   Written, 30 October 2012 by David W. Fanning.
   Fixed a problem with a TRANSPOSE command for true-color images. Bad logic. 4 Jan 2012. DWF.
   Fixed a problem in which Map_Proj_Image was not handling true-color image warping correctly
      and also a problem with handling missing values passed from cgImage2KML correctly. 20 Feb 2013. DWF.
   Forgot to specify the default value for MISSING. 25 Feb 2014. DWF.
Copyright
Copyright (c) 2012, Fanning Software Consulting, Inc.