There are any number of ways to convert a digital elevation model (DEM) to shapefile vector contour lines, but most of the ones I’ve come across have had limitations of one sort or another. The best solution I’ve come across is the free program dem2topo; while it only supports a limited number of DEM formats, it has more flexibility in units and simplification than other methods, and the graphical interface is easy to use (unlike some command-line programs).
The program is written in IDL, an interpreted language, and you’ll have to download and install the IDL Virtual Machine first (free, but a 100 MB download, requires registration, and you may get a sales call). DEM formats supported are Canadian Digital Elevation Data (CDED), and nominally the GeoTiff format, but I’ve had some GeoTiff DEM rejected by the program for unknown reasons. NED GeoTiffs from the USGS Seamless Server work fine, and if you can open your DEM in the program 3DEM (which supports a number of DEM formats) and export it as a GeoTiff DEM from there, those should work with dem2topo as well. Once you’ve loaded your DEM into dem2topo:
you can choose contour intervals (meters or feet, regardless of what the original units were), the simplification factor (larger simplifies more, but at the cost of detail), whether to close the outer contours, and whether to display the contours as they’re being processed (for faster processing speed, leave these unchecked. More on these options is available in the helpfile.
Once configured, you have the option of converting the DEM into either shapefile contours, DXF contours, or into the .mp format used in creating maps for Garmin GPS units. For the shapefile format, major/intermediate/minor contour intervals are defined in the DBF file by the same hex code used in the .mp format: 0x0020 for minor contours, 0x0021 for intermediate, and 0x0022 for major . Processing speed will depend on the size of the DEM and level of detail, but don’t expect instant results. Converting the above 10-meter DEM to shapefile contours took well over an hour, albeit on my fairly pokey 2.4 GHz system; more memory also speeds up the process. But the results are worth the time; here’s a blow-up of the shapefile contour map of a very small section of this DEM:
A simple process, and if you run into problems, the help file is well done.