I am trying to do the following calculation:

  1. Given lat,lon of a point (center of a rectangular (in UTM) domain), I find its UTM coordinates.
  2. Given domain width and length, I find coordinate of its 4 corners in UTM
  3. Finally, I need to find lat,lon coordinates for the corners

I'm having a problem with step 2, because one of the corners is outside of the UTM zone in which the center point is located. So I get negative easting numbers and can't figure out how to do the lat,lon conversion. I'm supposing that I need to find the new UTM zone for that point, but I don't know exactly how.

Additional info: I'm using this little Python library to do the UTM<->lat,lon conversion https://github.com/Turbo87/utm It doesn't seem to handle negative eastings.

  • 1
    There should be no problem with a coordinate slightly outside a given UTM zone. Negative eastings can be fine, it actually depends on the offset values applied to a given UTM coordinate system (there are infinitely many possible systems). I don't think anyone can help without a specific example of where things go wrong, you might as well use PROJ.4 or the python bindings for GDAL to do this unless you really want this question to apply specifically to that Turbo87 software. At least give a specific lat, lon, zone and domain width and length and resulting corners so someone can reproduce.
    – mdsumner
    Commented Dec 17, 2013 at 6:12
  • My outlying point is just slightly (about 100km) outside the UTM zone. I can certainly do the conversion using gdal or proj.4 Python bindings, but that adds a lot of dependencies to my project... I was very happy with this little Python library until I hit this wall :)
    – exfizik
    Commented Dec 17, 2013 at 16:19
  • 3
    The code you referenced does have a check on easting values--they need to be between 100k and 1000k--line 43. I...have you checked results against another utm converter? The E value is actually e squared, which is then squared again. It just doesn't look right to me. OTOH, I don't see anything in the code that wouldn't work with negative eastings, once you remove/modify that if statement.
    – mkennedy
    Commented Dec 17, 2013 at 19:08

2 Answers 2


For the conversion, it is necessary to stick to the same UTM zone for all points. As metioned in the comments, it is possible to leave the zone of definition of the UTM zone to some extent.

This is mathematically limited to about 20° east and west of the central meridian. Outside you would get reprojection artefacts, but you would see that in your source data already.

I would suggest to use the GDAL library for any projections. It is accessible via python as well, and used by QGIS and many other softwares.

Apart from that: The central meridian of UTM is at 500.000 metres, and the zone is in Europe about 400km wide. I wonder how large your rectangle is to get negative values. Unless you are somewhere around the poles, of course.

  • My domain is over a part of North America. The outlying points are just slightly outside the UTM zone and the entire domain is about 1500 by 1500 km. I'll probably stick with pyproj for now. Although, it seems like an overkill for what I need to do.
    – exfizik
    Commented Dec 17, 2013 at 16:29
  • If I have negative eastings, can I use the same formulas (e.g. whatever wikipedia has) for lat,lon conversions though?
    – exfizik
    Commented Dec 17, 2013 at 16:30
  • 1
    I doubt that UTM will work for such a great area. EPSG:2163 National Atlas Equal Area would fit better.
    – AndreJ
    Commented Dec 17, 2013 at 19:51

UTM zones are defined to be every 6 degrees of longitude, ignoring a few oddly-shaped zones.

The center of each zone is defined as 500,000 meters, such that while you are still inside the bounds that zone is considered valid for, your easting will be greater than 0 and less than 1,000,000.

If you've got a negative easting (greater than 500,000 meters from the central meridian of that zone), you should really be in a different UTM zone. UTM considered a local coordinate system, as everything is mapped to 2D, not a global one. In other words, as Wikipedia said, "The UTM system is not a single map projection."

The widest possible UTM zone at the equator (where it's the widest) is about 660,000 meters. Convert to something else if you're going outside of the UTM zone.

I suggest you convert your UTM to Lat/Lon and then calculate your box from there. Then, if you do convert back to UTM, you could possibly have each of your corners in different UTM zones.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.