Great Lakes Bathymetry

From TSAS Library
Jump to: navigation, search
Partial Erie bathymetry cut with MPCNC, map from NOAA, processed with QGIS and Aspire 8.5



Create STL for CNC Router or 3D Printer

Proprietary Workflow (Aspire)

Video walkthrough here

  1. Data pulled from NOAA's ETOPO1 images, available directly here which offers a 1-minute resolution of worldwide bedrock
  2. Add raster image to QGIS
  3. Select extent desired (Raster -> Extraction -> Clipper)
  4. Open in Aspire, follow directions from video

Tool speeds used in above image:

Print Pass Tool Size Feed Rate Plunge Rate Print Time
Rough Pass .25" square bit 15.0 mm/sec 3.0 mm/sec 1:30
Finish Pass .125" ball nose 25.0 mm/sec 6.0 mm/sec 4:30

Open Source Workflow

  1. Download ArcGrid DEM from USGS National Map or Earth Explorer (3DEP, 1/3 arc-second DEM)
  2. Unzip file
  3. Open QGIS, add Vector, add layer file (.adf)
  4. Select extent (Raster -> Extraction -> Clipper)
  5. Save as GeoTIFF
  6. Add GeoTIFF to model
  7. Analyze to DEM (Raster -> Analysis -> DEM [Terrain Models])
  8. If necessary, merge the DEMs
  • A balance must be made between extent and resolution. 1:50,000 creates excellent models, but cannot contain an entire lake. Above that and the file crashes my system. A further note on resolution.
  • Solution to bathymetric (negative) altitude values[2]: using Raster Calculator, add bottom value to all height values
  1. Create STL (Raster -> DEMto3D)[3]

Very Long, Detailed Workflow

  1. Download QGIS
  2. Download Great Lakes Bathymetry from NOAA's Grid Extract Tool
  3. Download lakes shapefiles from Science Base
  4. Open shapefiles in QGIS and merge each at border
    1. Open first file, e.g. hydro_p_LakeErie.shp
    2. Right click in Layers Panel and save as LakeEriebound
    3. Remove original shapefile
    4. Repeat for all needed
    5. Select LakeEriebound in Layers Panel, click Select Features by area or single click
    6. Hold shift, select both features in LakeEriebound on map
    7. Click Toggle Editing (pencil icon)
    8. Go to Edit -> Merge Selected Features
    9. Check that LakeEriebound is now one polygon, Toggle Editing, save changes, then repeat for all shapefiles
  5. Go to Vector -> Geoprocessing Tools -> Fixed distance buffer
  6. Run as batch process by inputting each shapefile (LakeEriebound, etc.) into Input Layer, and buffer name (e.g. eriemask) in Buffer column. Used .2 Distance
  7. Remove LakeEriebound, etc. from Layers Panel
  8. Add bathymetry rasters from NOAA's Grid Extract Tool, ensuring all area under buffers is included
  9. Rename Buffer to eriemask, etc.
  10. Go to Raster -> Extraction -> Clipper
  11. Choose first lake input file and name output file (e.g. eriebath)
  12. Choose mask layer and select relevant mask (e.g. eriemask)
    1. If error Output driver `GMT' not recognised . . ., select pencil button next to output algorithm and change -of GMT to -of GTIFF
    2. If black 0-level box appears after masking, delete the files and re-run with large (-99999) number and No Data Value box selected
  13. Go to Raster -> Miscellaneous -> Merge and select two adjacent masked files

[Running into issues with shared color values]

Laser Cut, Low Resolution


  1. Download shapefiles from NOAA. Superior bathymetry contours with unclear provenance is available here, with login
  2. Download and install QGIS and Inkscape[4]
  3. No need to extract files, open each in QGIS Desktop
  4. Add OpenStreetMap information if desired (the native support is not working at this time[5], but the plugin does)
  5. Right-click shapefile in left layers panel, select Properties
  6. Choose Filter, then create expression, e.g. "DEPTH" IN ('0', '1', '25', '50', '60')[6]
    • It is helpful to use the Values box (make sure "Use unfiltered layer" is checked if changing an applied filter) to see the extent of the map's values

Other Sources


  1. Geographic Information Systems Stack Exchange. "Load .osm.pbf file in Qgis." here.
  2. Geographic Information Systems Stack Exchange. "Mars DTM has all negative elevations in QGIS. Can't build STL file for 3D print." here.
  3. Modified from Laguna Tools. "Max CNC Tutorial 3D Landscape." YouTube. here.
  4. Stack Exchange answer here
  5. "OpenStreetMap in QGIS." OpenStreetMap Wiki. here.
  6. Geographic Information Systems Stack Exchange. "QGIS choose contour line labels." Here