Related to an earlier Q&A of Missing grid shift files for cs2cs.exe?, what are the various methods to convert coordinate datum and format in python?

(Windows Vista, python 3.4)

For example, given the coordinates WGS84 Decimal Degrees 39deg 12.3456min north by 120deg 12.3456min west, (epsg 4326)

translate the coordinates to NAD27 CONUS UTM zone 10 latitude band S (epsg 26710, unless there's a better one?)

Speed is not important for this application.

The methods I'm aware of:

  • pyProj - a pain to install for Windows, if possible at all? Attempting and researching this was enough of a pain that I bailed out and tried the next two options as an external system call from python, which seems fine since I'm not using very much of the proj capabilities:
  • cs2cs from OSGeo - does not come with the necessary grid shift files?
  • cs2cs from gisinternals.com - working correctly with advice from @user30184 at Missing grid shift files for cs2cs.exe?

Are there any other methods?

closed as too broad by PolyGeo Apr 14 at 6:50

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.


I prefer the latest builds from Gisinternals. Note that the link has recently moved to http://download.gisinternals.com/. It gives you always the latest Windows builds of GDAL and PROJ.

The binaries linked on the PROJ page are version 4.46, and quite outdated. The current version of PROJ is 4.8.0

PyProj might be a benefit if you do things programmatically, but not for a quick test.

As an alternative, you can look into the OSGEO4W installation. It offers current binaries and libraries including python support. But they support only Python 2.7, not yet python 3:


Currently, Python 2.7.4 is included in the package. Once you start the shell, paths will be set to that (disregarding the python 3 you have installed previously).

  • Looks like those ones you mention first (download.gisinternals.com) are the same ones I'm using - under the 'Stable Releases' link, right? Question - do you know what the difference is between 1400, 1500, 1600, 1700, 1800? – Tom Grundy Jan 27 '15 at 21:52
  • This number seems to distinguish the MSVC version between MSVC 2005 up to 2013. You should not mix binaires build against different MSVC. I think to remember that gisinternals does not support the python bindings like osgeo4w does. – AndreJ Jan 28 '15 at 5:11
  • Interesting - I'm already committed to python 3.4, so osgeo4w python is not an option. So, for using the gisinternals executables, can you think of any good reason to not just use the highest version number (1800)? – Tom Grundy Jan 28 '15 at 6:25
  • Only if MSVC 2013 throws an error somewhere. I use the latest too. Having different MSVC versions on the same computer does not seem to harm anything. – AndreJ Jan 28 '15 at 7:39

As for other methods there is one called GeographicLib written in C++ and with bindings to Python. Says it does some geodesic conversions including UTM, but have yet to try it out for myself. Link: https://pypi.python.org/pypi/geographiclib/1.34

I would note however, that installing PyProj for Windows should be easy if you use the binary installers from Goehlke's website: http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyproj They are .whl files so just download the file, and use pip install path/to/wheelfile.whl

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