Shapefiles
From charlesreid1
Converting Shapefiles to STL Files
Typically, GIS information comes as shapefiles, which are readable by GIS programs and libraries. However, if we want to do non-GIS-specific tasks with GIS information (like 3D Printing), we need to convert the Shapefile (GIS-specific) to an STL file (readable by CAD software).
I downloaded contour elevation data for the Seattle area, which was contained in a zip file called Elev_322166_Seattle_E_1X1.zip.
Unzipping results in a pile of files of various formats:
The one I'll use there is the shapefile.
We'll use the shp2stl utility to convert the shapefile (GIS format) into an STL file (3D printing format).
Nice writeup/utility here: http://dougmccune.com/blog/2014/12/30/using-shp2stl-to-convert-maps-to-3d-models/
Download Node, and get npm. Use npm to install shp2stl utility:
$ npm update $ npm install shp2stl
Here is the javascript file that I used to convert this shapefile to a stl file:
$ cat stlify.js
var fs = require('fs');
var shp2stl = require('shp2stl');
var file = 'Elev_Contour.shp';
shp2stl.shp2stl(file,
{
width: 100, //in STL arbitrary units, but typically 3D printers use mm
height: 10,
extraBaseHeight: 0,
extrudeBy: "Pop_psmi",
simplification: .8,
binary: true,
cutoutHoles: false,
verbose: true,
extrusionMode: 'straight'
},
function(err, stl) {
fs.writeFileSync('SeattleContours.stl', stl);
}
);
To run this, just pass it to node:
$ node stlify.js bounds: Infinity Infinity -Infinity -Infinity (spherical) pre-quantization: 111.195km (1.00°) 111.195km (1.00°) topology: 0 arcs, 0 points topojson done simplification: effective minimum area 0.00 simplification: retained 0 / 0 points (NaN%) making top planes making side planes making bottom planes done making 3D planes