Over the years, one of the most common questions asked is “How can I get my contour map out of Surfer mapping software and into ArcMap?” It's actually quite easy to get maps from Surfer into ArcMap. You can just click File | Export from Surfer and export to a shapefile (*.SHP). There are other formats you can choose (e.g. DXF, MIF, GeoTIFF, etc.) but I will focus on SHP for this article.
You might ask, “What about attributes?” When exporting to a SHP file in Surfer 13, the Z value of the contour lines are exported as attributes to the associated DBF file. In addition, if you have objects in a base layer that have attributes, those attributes are exported to the SHP file as well. All attributes are stored in the associated DBF file for the SHP.
When exporting a SHP file from Surfer, you do have a few options to choose from regarding the storage of points, polygons, marker symbols and text. What options you choose depends on what is in the Surfer file you are exporting, what version of Surfer you are using, and ultimately what you want the SHP file to contain.
Let’s say you gridded some data in Surfer 13, created a contour map, overlaid a post map showing the original point locations, and wanted to export it to a SHP so you can import it into ArcMap. Note that when exporting to a SHP file, it is best to not show contour line labels, as they would create a break in the otherwise continuous contour polyline.
Export a contour map from Surfer 13 to a SHP file using File | Export and import it into ArcMap.
To export this map, you would:
- Click File | Export.
- In the Export dialog:
- Give the file a name.
- Next to Save as type, select the SHP ESRI Shapefile format.
- Make sure Show options dialog is checked.
- Click Save.
- In the Export Options dialog, there are three pages of options:
a. On the Scaling page, make sure the Scaling source is set to Map. This will set the File Rectangle coordinates to map units and allow the map to be exported in the map units. It is very important that the coordinates under File Rectangle are in map units. If you are using an older version of Surfer (Surfer 11 or earlier), then there are a few extra steps you may need to do to get map units in the File Rectangle boxes (see our KB article online). The only time you cannot export in map units is when you export 3D surface or wireframe maps. These map types are not suitable for export to SHP.
On the Scaling page, make sure the File Rectangle units are in map units.
b. On the Spatial References page, you most likely want the ESRI .PRJ file option checked so that Surfer can export the coordinate system for the map to a PRJ file, and then ArcMap knows the coordinate system information for the file when you import it. If you did not set a coordinate system for the map in Surfer, then no PRJ file is created.
On the Spatial References page, make sure ESRI .PRJ file is checked.
c. The SHP Options page is where you tell Surfer how to export the information to the SHP. You may or may not be aware that SHP files can only have one object type per file. You can have points, polylines or polygons. You cannot have more than one type of object (e.g. a point and a polyline) in a single SHP, and no other object types (e.g. text, images) are supported. When exporting multiple object types to SHP, Surfer can either convert all objects to polylines and save all objects to a single polyline file, or it can write points and polygons out to their own files.
Select the desired options on the SHP Options page.
i. Under Areas, select whether Surfer should convert the polygons to polylines, or if it should keep the polygons as polygons and write them out to a new polygon file. It is really up to you, but most users create a separate file for polygon objects.
ii. Under Points, select whether Surfer should convert any point objects to polylines, or if it should keep the point objects and write them out to a new point file. Again, this is up to you but must users create a separate SHP file for point objects.
iii. Since text is not supported in a SHP file, if you want to include the text objects (e.g. axis labels, contour labels, etc), you can check Render text. That will convert the text characters to individual polygons and write them out as polygons using the option selected under Areas. Most users don’t require text in their SHP files and don’t want extra polygons, so I will leave this unchecked. That means that no text (axis labels or contour labels) are exported to the SHP.
iv. Marker symbols are also not supported in SHP files. Marker symbols are the actual symbol shape you use to define your points. For example, say you used circles, triangles and squares for a post map. If you exported that post map to a SHP file, you would get just plain point objects in ArcMap (no circles, triangles and squares) and it would use whatever symbol was the default in ArcMap. If you wish to render the shape of the point marker symbols, you can check the Render marker symbols box and Surfer will convert the marker symbols into polygons and write them out as polygons using the option selected under Areas.
v. The Attribute translation [codepage] option allows you to specify a different codepage for the text in the DBF file (the attribute file) associated with the SHP. In most cases, you will want to leave this set to the default.
d. Click OK and the SHP file(s) are created. In this case, Surfer created two SHP files: one for my polyline objects (the contour lines and axes) and one for the polygon objects (the contour fill and marker symbols, since I chose to render the marker symbols as polygons). Each SHP file created will have a number of associated files with it, such as CPG, DBF, PRJ and SHX.
When exporting to a SHP, the associated files (CPG, DBF, PRJ, and SHX) are also created.
Now the SHP file is exported, we can import it into ArcMap (I’m using version 10.3).
- In ArcMap, click File | Add Data | Add Data.
- Select one of the SHP files (e.g. ContourMap.shp) and click Add. The contour lines are displayed.
- If I enter into edit mode and select one of the polylines, I can see the Z value is the attribute in the Attributes window.
Select one of the contour polylines and you can see the original Z value is stored as the ZLEVEL attribute.
If I add in the ContourMapPoly.shp layer, the polygons are added to the map. The shape of the original posted points is displayed since the markers are now polygons. You could add attributes or color the polygons as you desire.
Import the polygon file and you can see the contour fill and marker symbol polygons.
As a comparison, if you did not check the option to have the marker symbols rendered in the Export Options dialog, then Surfer would have generated three SHP files (one for the polylines, one for the polygons and one for the points). If you imported all three into ArcMap, you could see the same polylines, but the polygon file would not contain the marker symbols. The points would be saved in a point SHP file and when that file is imported into ArcMap, the points are displayed using the default symbol.
Do not render marker symbols during export, and points in a post map are exported as points instead of rendered as polygons.
There are a couple other scenarios that might interest you. You can also export contours to a shapefile by clicking the Map | Export Contours command. What is the difference between File | Export and Map | Export Contours? The Export Contours command only exports the contour lines themselves. The fill polygons, points, and any other map objects are not exported to the file. In addition, you have the option to export 2D SHP files (where the Z value of the contour lines is saved in the DBF file, equivalent to File | Export) or as 3D SHP files. The 3D SHP file option stores the Z values for each vertex in each polyline. Some rules of thumb:
- If you need a true 3D SHP file, then you must use Map | Export Contours and choose to save the contour lines as a 3D SHP.
- If you just want the Z values of the contour lines stored in the DBF file as an attribute for the polyline object, you could use either of the commands.
- If you want to export contour fill polygons, points, other layer objects, text or marker symbols in addition to the contour lines, then you must use File | Export.
One other option for using Surfer in conjunction with ArcMap is to generate the grid in Surfer, save it from Surfer as an ESRI Arc grid file, import it as a raster into ArcMap, and recreate the contours directly in ArcMap. ArcMap does accept Surfer grid files (*.GRD), but for some reason it does not recognize PRJ files associated with the GRD, so you lose the coordinate system information. To keep the coordinate system information, it is best to convert to one of ESRI’s grid formats directly before use in ArcMap. For example:
- Click Grid | Convert.
- Select the Surfer grid file and click Open.
- Choose to save the grid as an ADF Arc/Info Binary Grid (*.adf) and click Save.
- When prompted to save the spatial reference information, make sure ESRI .PRJ file is selected and click OK.
- Now you can use this raster in ArcMap. Simply click File | Add Data | Add Data, select the ADF file and click Add. The raster is imported and a color fill map is automatically created, similar to Surfer's image map type.
- Depending on the tools you have available, you could generate contours directly in ArcMap (Spatial Analyst | Surface | Contour).
Create ESRI grid files in Surfer and load them directly into ArcMap as rasters.
Golden Software makes every effort to ensure Surfer is compatible with other popular software packages like ArcMap. If for any reason, the export isn’t working the way you expect it to, please email the Surfer *.SRF file to firstname.lastname@example.org, report what version of Surfer you are using, and describe what is wrong when you export it to a SHP file (or whatever file format you select).