How to create custom affine projection for use in MapInfo Pro and MapInfo Discover

Products affected: MapInfo Discover™, MapInfo Pro™
1. Start with a control point table that contains four columns in this order from left to right: UTM_Easting, UTM_Northing, Local_Easting, Local_Northing. The naming convention of the column headings is not important, but the order of the columns is critical.

An example of a control point table:
User-added image

2. Open the table to transform into MapInfo Pro. The transformation target table must be mappable and in a standard projection, e.g. UTM or MGA. If no data is available, the control point table can be used for the transformation target table by creating points for the UTM (MGA) coordinates.

3. Open 
Discover > Data Utilities >Transform Coordinates (32-bit) or DISCOVER > Custom Transform (64-bit).

4. Select the table to transform from the Transformation Target Table list.

5. Choose 
Affine from the Transformation Type pull-down list.

6. Click on the
Control Point Table button and browse to the control point table. The selected control point table will be displayed on the Control Point Button. This table does not need to be mappable, although if it is, it should be in the UTM/MGA projection.

7. Check the 
Make Affine Coordsys box.

8. Click OK.

9. Select the required standard projection for the UTM (MGA) coordinate fields from the Choose Projection dialog (this will be the base projection for which the custom affine is based on).

10. MapInfo Discover will create the affine transformation and add the custom coordinate system description to the MAPTRAN.LOG file.

An example Maptran.log:
User-added image

11. Copy the line beginning “My affine coordinate system” from the MAPTRAN.LOG file and paste into the bottom of the MAPINFOW.PRJ file. The MAPINFOW.PRJ file is located in the default directory ..\\MapInfo\Professional directory.

12. Assign a new name for the custom projection and add a new projection Category line above if desired.
This projection category can be used to keep all custom projections together, and should be in the following format:
 "--- Custom Projections ---"

Example of a custom projection's in the MAPINFOW.PRJ file:

"--- Custom Coordinate Systems ---"
"Sylvania Local Grid", 1008, 13,7, 141, 0, 0.9996, 500000, 10000000, 7, 0.895898, -0.444543, 3108129.02, 0.444537, 0.895887, -6726798.31

The constant "1008" uses the default bounds to achieve sub-decimeter accuracy.
The constant "3008" can be used to achieve higher precision by adding an appropriate bounds clause to the projection line. To specify bounds for the new projection enter the appropriate min_x, min_y, max_x, max_y values for your data as per the example below.

"--- Custom Coordinate Systems ---"
"Sylvania Local Grid (with bounds)", 3008, 13,7, 141, 0, 0.9996, 500000, 10000000, 7, 0.895898, -0.444543, 3108129.02, 0.444537, 0.895887, -6726798.31, -500000, -500000, 10000000, 10000000

13. Repeat steps 11 and 12 for the Encom.prj file located in C:\Users\username\AppData\Roaming\Encom\Common\Projections.

For any existing maps in local non-earth, the points will have to be created in the new custom projection. For any existing maps in UTM (MGA), convert these into the local grid by re-projecting and selecting the custom projection.

Note: Non-earth cannot be re-projected to any other projection (UTM or Affine).

UPDATED:  December 6, 2019