Converting data between MapInfo and ArcGIS

Our main GIS software is ArcGIS, but we work with other organizations who use MapInfo, and we occasionally receive data from them in MapInfo format, or they ask us to supply data in MapInfo format, for example at the Census Dissemination Unit.

We usually use the MapInfo Universal Translator tool to convert from MapInfo formats to Shapefiles, and vice versa. However, the Universal Translator comes only as part of the MapInfo Professional software, and it is somewhat overkill to pay for MapInfo Professional if we only use one function. So let’s see if there are other (maybe free) tools to convert MapInfo files to Shapefiles and vice versa.

MapInfo has two file types:

  • MapInfo data files. These are the files that you directly work with in MapInfo. A dataset consists of multiple files and comprises at least a *.TAB and *.DAT file, but usually a *.TAB, *.DAT, *.MAP and *.ID file. This format is also called the MapInfo TAB format.
  • Alternatively MapInfo data can come in MapInfo Interchange Format. This is data that has been explicitly exported in MapInfo. Data in this format comes as a single *.MIF file (containing the data), or as as set of a *.MIF and a *.MID file (the first containing the data, the second symbology). This format is also called the MapInfo MIF format.

On the ArcGIS side we will be happy to use Shapefiles – we can easily convert them to/from Geodatabases if required.

So the scenarios are:

  1. MapInfo TAB file  >> Shapefile
  2. MapInfo MIF file >> Shapefile
  3. Shapefile >> MapInfo MIF file

I suspect there is a software that can handle all of these… of course it is QGIS! But there are also various other methods, see below.

QGIS to the rescue

  1. Start QGIS
  2. Load your source file: Go to Layer > Add Vector Layer. Browse for your input file (TAB or MIF or Shapefile). Select the input file and load it into QGIS:
    qgis1
  3. QGIS automatically reads TAB, MIF and Shapefiles, so it should display immediately, and be listed in the Table of contents.
  4. In the Table of Contents right-click the file name and select Save As. Specify an output format (ESRI Shapefile or MapInfo file).
  5. Click Browse to specify an output filename.
  6. For Shapefile to MapInfo conversion: You can specify a file extension (.TAB or .MIF) to get the respective format. If you don’t specify the extension, QGIS will save files automatically in MIF/MID format (MapInfo Interchange Format).
  7. Click OK. Done!

In case you can not or do not want to use QGIS, for example if you work in a restricted environment and cannot install software, there are alternatives:

Alternative 1: Shapefile to MapInfo TAB and vice versa

OGR2GUI is a easy to use, free tool to convert between Shapefile and MapInfo TAB format (and between various other formats). The download comes as a ZIP file. Extract it and and run the ogr2gui.exe program. Everything else is self explanatory.

ogr2gui

Alternative 2: MapInfo MIF to Shapefile with ArcGIS

ArcGIS includes a little known converter for MapInfo MIF files. It is a command line tool called avmifshp.exe, and it is installed in your ArcGIS binaries directory, e.g.  C:\Program Files (x86)\ArcGIS\Desktop10.2\Bin

The syntax for this converter is:

avmifshp.exe MIFSHAPE [LINE/POINT/POLY/TEXT] [mif_file] [shape_file]

Note that you must not specify the extensions for the input and output files (.MIF and .SHP, respectively) !

Example:

You have a MapInfo MIF dataset C:\Temp\Boundary_MI.MIF (optionally accompanied by C:\Temp\Boundary_MI.MID). This dataset contains polygon features. To convert this to a Shapefile:

  1. Open a command prompt (on Windows 7: Start > All Programs > Accessories > Command Prompt)
  2. In the black Command Prompt window type:
    “C:\Program Files (x86)\ArcGIS\Desktop10.2\Bin\avmifshp.exe” poly “C:\Temp\Boundary_MI” “C:\Temp\Boundary_Arc”
  3. Hit Enter

avmifshpThis creates a Shapefile C:\Temp\MyPolygonShapefile.shp.

This process does not create metadata for the output file, so you have to manually specify the coordinate system: Find out what the coordinate system of the MapInfo file was, then open ArcCatalog, navigate to the output file C:\Temp\Boundary_Arc, right-click it > Properties > XY Coordinate System, and select the same coordinate system that the input MapInfo file had.

A note on ogr2ogr

ogr2ogr is a very powerful open source library to convert data between many GIS vector file formats. For rasters there is an equivalent called GDAL.  These are libraries for software developers, so they are not not useful if you simply want to convert a file.

However, ogr2ogr and GDAL are included in most open source GIS software products – for example both QGIS and OGR2GUI internally use them for file format conversion.

There is no stand-alone compiled version of ogr2ogr and GDAL, but you can for example install FWTools, a collection of open source GIS tools that includes ogr2ogr and GDAL. After installation you will have a file C:\Program Files (x86)\FWTools2.4.7\bin\ogr2ogr.exe. Simply run it from the command line to convert your GIS data. For usage notes see here.

Advertisements

12 thoughts on “Converting data between MapInfo and ArcGIS

  1. thanks for the article, i have used the three methods to convert mapinfo Tab file (only polygons) to shapefile,but they cannot convert the hole tab file. Is there any solution for this

    1. There is a variety of potential reasons why your file would not convert. Please post error messages here, and someone might be able to help.

    1. Hi, thanks for the comment. I assume you mean to convert the MapInfo tab files (not MIF) to Shapefiles (not Geodatabases).
      If you have all your MapInfo data in few folders, try the ogr2gui tool, it seems to be able to convert all files in a specified folder, although I have not tested that function.

      If you have many folders and want to have more control over the conversion process you need to do a bit of scripting. I would use the OGR2OGR tool from FWTools. You can run it from a command line like this:
      ogr2ogr -f "ESRI Shapefile" -overwrite "Output Shapefile Path and Name.shp" "Input MapInfo Path and Name.tab"
      For example:
      ogr2ogr -f "ESRI Shapefile" -overwrite "C:\GIS\Data\Shape\Boundaries\Admin1.shp" "C:\GIS\Data\MapInfo\Boundaries\Admin1.tab"
      Build this into a batch script and run the script. Here is an example converting Shapefiles to GML to get you started.

    1. Hi, I can think of two ways to convert the symbology with the data:

      1. Use KML as exchange format – it carries its symbology with it, and both ArcGIS and MapInfo support KML. The disadvantage is that it is not a tabular format, so you might end up with a somewhat convoluted data structure.
      2. Save your symbology to SLD (http://en.wikipedia.org/wiki/Styled_Layer_Descriptor). AFAIK neither ArcGIS nor MapInfo support SLD natively, so you would need third part tools, for example the (commercial) Arc2Earth software used to have a function to save ArcGIS symbology as SLD.

      Have not tried any of the two methods – I think it is quicker to recreate the symbology in the target software.

  2. Hi,
    Am trying to convert a shapefile to Mapinfo and here is my script;
    @ECHO OFF

    for ogr2ogr -f “MapInfo” -overwrite in “F:\GIS\Data\MafInfo\student\Kampala_Wetlands.mif” do “F:\GIS\Data\Shape\student\Kampala_Wetlands.shp”

    START
    Please is there someone with the solution.

    1. To convert a single file from shape to Mapinfo you should only need this command:
      ogr2ogr -f “MapInfo File” -overwrite "F:\GIS\Data\MafInfo\student\Kampala_Wetlands.mif" "F:\GIS\Data\Shape\student\Kampala_Wetlands.shp"

      Note this creates the MapInfo Interchange Format (MIF), not a MapInfo native TAB file, as per your question.
      I don’t have ogr2ogr here to test the command though.
      ogr2ogr documentation

      I don’t see why you would use a FOR DO. In case you want to convert all files in a directory and subdirectories see here

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s