19. GIS: shapefiles, GeoJSON, GeoPackage, QGIS, coordinate systems and DEMs

The SWMM editor reads and writes the everyday GIS formats itself: ESRI shapefiles, GeoJSON, OGC GeoPackage, .prj coordinate systems, GeoTIFF and ESRI ASCII elevation grids. It also hands a model to QGIS and takes the edits back (§19.8). There is no GDAL, PROJ or other GIS library underneath; every reader and writer is written from the public specification named at the top of its source file under swmm/src/gis/, and every formula in the projection code is cited to Snyder (1987) or Karney (2011). That makes the reach deliberately narrower than a desktop GIS, and this chapter says exactly where the edges are.

What the GIS tools do:

All but the basemap are on the File menu while a model is open, and a shapefile, GeoJSON file, GeoTIFF or ASCII grid dropped on the window (or opened from the command line) with the SWMM workspace active opens the matching dialog.

19.1 Coordinate systems: what is supported

A coordinate reference system (CRS) is read from a .prj beside a shapefile or ASCII grid (OGC WKT1 or the ESRI dialect ArcGIS writes), from a GeoJSON crs member, from a GeoTIFF's GeoKeys, or typed as an EPSG code.

Projections. Transverse Mercator (Krüger series, after Karney 2011 — accurate to well under a millimetre across a UTM zone), Lambert Conformal Conic (one and two standard parallels), Albers Equal Area, Mercator, Web Mercator (EPSG:3857), Polar Stereographic (variant B) and Hotine Oblique Mercator (State Plane Alaska zone 1), plus plain geographic longitude/latitude. The formulas are from Snyder, Map Projections — A Working Manual, USGS Professional Paper 1395 (1987).

EPSG codes built in. 4326 (WGS 84), 4269 (NAD83), 4267 (NAD27, recognised only), 3857, every UTM zone on WGS 84 (326xx north, 327xx south) and NAD83 (269xx), 5070 (CONUS Albers), 3031/3413/3995 (polar), and every State Plane 1983 zone in metres (26929–26998, 32100–32161, and 2205 for Kentucky North) and, where the registry has one, in US survey or international feet (2222–2289, 2965, 2966). A .prj with no authority code (the ESRI form) is matched to a UTM or State Plane zone by its parameters, so it still gets its code.

The State Plane table. Zone constants (projection, origin, standard parallels, scale, false easting and northing) are the defining values in NOAA Manual NOS NGS 5, State Plane Coordinate System of 1983 (James E. Stem, 1990), Appendix A. On 2026-09-18 every one of the 122 zones, and every foot-unit code, was checked against PROJ 9.5.1: each projects a test point to within 1 cm of the EPSG definition, and each foot code carries the right foot. The one disagreement was the registry's own: EPSG 26979 (Kentucky North) is deprecated because it put both standard parallels at 37°58′, which misplaces points by metres. AquaSWMM uses the current code 2205, with Stem's parallels 37°58′ and 38°58′, and reads 26979 as 2205.

Units. Metres, US survey feet (1200/3937 m) and international feet (0.3048 m) are told apart. A US-survey-foot system on a model in feet is not quite 1:1 — lengths computed from it are multiplied by 1.000002 — which is correct and far below anything a drainage model notices.

Datums — read this.

Not supported. WKT2 (PROJCRS[…]), compound and vertical systems, datum grid shifts, and any projection not in the list above; each is refused with a message naming what it found.

19.2 The model CRS

The model's coordinate system is kept in a sidecar file beside the model, <model>.crs (for site.inp, site.crs) — never inside the .inp, because the EPA engine refuses a section it does not know and the .inp must stay a file every SWMM tool reads. The sidecar is plain text: comment lines start with #, an EPSG:nnnn line gives the code when there is one, and the rest is the WKT. Either half is enough to read it back. It is re-read whenever the model's path changes; setting a CRS on a model that has never been saved holds it until the first save, then writes the sidecar.

File → Model CRS… (also the Model CRS… button in the GIS section of the Layers tab) opens the Model CRS dialog:

With a CRS set, the Layers tab's GIS section shows Cursor lat/lon: the map cursor's latitude and longitude, updated as you move the mouse (WGS 84/NAD83, five decimals, about a metre). A model with no CRS works exactly as before; only the tools that need to know the unit or to reproject ask for one.

19.3 Import GIS Layer

File → Import GIS Layer… asks for a .shp, .geojson, .json or .gpkg file and opens the Import GIS Layer dialog. For a GeoPackage holding more than one feature table, a GeoPackage layer list picks the table. For the model's own nodes, links, subcatchments and gages tables, it also picks the matching target. The header shows the file, the feature count, the geometry type, the field count, the layer's CRS (or "not declared", or "not recognised" with the start of the text) and the model's.

What is read. Shapefiles per the ESRI Shapefile Technical Description (1998): Point, MultiPoint, PolyLine and Polygon, with their Z and M variants (the Z and M values are dropped); MultiPatch is refused. Attributes come from the .dbf (dBASE III/IV: character, numeric, float, logical and date fields), decoded as UTF-8 when the .cpg or the language driver says so, Windows-1252 for the ANSI drivers, else Latin-1. The .shx is optional on read. GeoJSON per RFC 7946: FeatureCollection, Feature or a bare geometry; a GeometryCollection contributes its first member. A GeoJSON file with a crs member naming an EPSG code (the pre-2016 convention many tools still write) is in that system; without one, coordinates inside ±180/±90 are taken as WGS 84 and anything else as having no CRS.

Import as. The targets the layer's geometry can become: points → Junction, Outfall, Storage Unit, Divider or Rain Gage; lines → Conduit; polygons → Subcatchment. The first is chosen for you. Changing it rebuilds the mapping table.

Name from / Name prefix. The field that names each object. A field called name, id, label, objectid or fid (any case) is picked automatically. "(numbered)" names them from the prefix (J1, J2, … for junctions, C conduits, S subcatchments, R gages, O outfalls, ST storage, D dividers). Names are made legal and unique: spaces become underscores (Basin A → Basin_A), a blank or null name is numbered, and a name already in the model or used earlier in the same import counts up to the next free one (MH-1 → MH-3 when MH-1 and MH-2 are taken).

Update objects that already exist (matched by name). A feature whose name is already an object of the same kind updates that object instead of adding a renamed copy. The update:

A node or link keeps its type: a feature naming an outfall updates the outfall, with the columns an outfall has, even when importing as junctions. Unchanged values and positions produce no edit, so re-importing an untouched export changes nothing. Features with new names are added as usual. This option starts on for a GeoPackage and off otherwise.

CRS options.

Conduit options.

Subcatchment options.

Keep as a reference layer keeps the layer on the map after the import (see §19.4).

Field mapping. One row per SWMM column the target has — for example JUNCTIONS Elevation, MaxDepth, InitDepth, SurDepth, Aponded; for conduits CONDUITS Length, Roughness, InOffset, OutOffset, InitFlow, MaxFlow and XSECTIONS Shape, Geom1–Geom4, Barrels; for subcatchments SUBCATCHMENTS RainGage, Outlet, Area, PctImperv, Width, PctSlope, CurbLen and SUBAREAS NImperv, NPerv, SImperv, SPerv, PctZero. Each row's source is:

Rules:

Utility storm-drain GIS. Storm-drain inventories rarely use SWMM's column names. The automatic mapping also recognises these (from the schemas of published utility geodatabases and their common variants; case and punctuation ignored):

SWMM column Field names recognised
node Elevation INVERT, INVERTELEV, INVERT_ELEVATION, ELEVINVERT, INV, INV_ELEV, IE
node MaxDepth DEPTH, STRUCTURE_DEPTH, MH_DEPTH; otherwise a rim field (RIM, RIMELEV, RIM_ELEVATION, ELEVRIM, RIM_EL) minus an invert field, computed
conduit Length PIPELENGTH, RECORDEDLENGTH, CULVERTLENGTH, LEN
conduit Roughness MANNINGROUGHNESS, MANNINGS_N, MANNING_N, MANNINGS, N_VALUE
XSECTIONS Geom1 DIAMETER, DIAM, PIPE_DIAMETER, PIPEDIAM, PIPE_DIA, DIA
conduit InOffset UPELEV, UP_INVERT, UPSTREAM_INVERT, US_INVERT, US_IE, FROM_INVERT, UPSELEV, INVERT_UP, INLET_ELEV and similar, computed as a height above the node invert
conduit OutOffset DOWNELEV, DN_ELEV, DWNELEV, DOWNSTREAM_INVERT, DS_INVERT, DS_IE, TO_INVERT, INVERT_DOWN, OUTLET_ELEV and similar, likewise
object name NAME, ID, LABEL, FACILITYID, ASSETID, STRUCTUREID, GIS_LINK, OBJECTID, FID

A recognised diameter is scaled when its values say what they are: in a model with US flow units, a median above 5 is taken as inches (x 1/12); in an SI model, a median above 10 as millimetres (x 0.001). Otherwise it is copied. The preview names the factor ("Geom1 = DIAMETER x 0.0833333"), and the table row shows it so it can be changed.

Pipe inverts. GIS records each pipe end's invert elevation; SWMM wants a conduit offset. Import the structures first (so each node has its invert), then the pipes: with (above node invert) the offset is the pipe-end elevation minus the invert of the node that end snapped to. A pipe end below its node's invert gets 0 and is counted in the notes (the node invert is usually what needs checking); an end that snapped to a junction this import creates has no invert yet and keeps the default, also counted. In a model with LINK_OFFSETS ELEVATION, the elevation is written as it is.

For an installation's or utility's inventory held in an Esri File Geodatabase, ask for (or export) the storm structures and pipes as a GeoPackage — ArcGIS Pro's Export Features or QGIS both do it in one step — with the attribute domains' descriptions rather than their codes.

Area and length units. With nothing mapped to them, a subcatchment's Area and a conduit's Length come from the geometry:

Preview builds the import without touching the model and shows what it will create ("3 junction(s)", "2 conduit(s) + 1 junction(s) at conduit ends, 1 skipped"), any notes, and the first skipped features with the reason (no geometry, wrong geometry type, a coordinate that is not a number, a line with fewer than two points, no node within the tolerance, both ends on one node). Import applies it as one undo step labelled "import GIS layer" — conduits, the junctions created at their ends and every mapped field together — selects everything it created, and reports the counts in the status bar and the Layers tab. Cancel closes without a change.

19.4 Reference layers

A layer kept with Keep as a reference layer is drawn under the network in the model's coordinates (reprojected when the import reprojected). The GIS section of the Layers tab lists each one with a visibility checkbox, a colour, a label field (a field's values drawn beside each feature, or "no labels"), a Remove button, and its feature count and source file. The list is the drawing order: the layer at the top is drawn over the ones beneath it, and a newly imported layer goes on top. Up and Down move a layer one place. Every reference layer is drawn above the backdrop image and below the model's own objects. Reference layers are a view setting: they are not written to the .inp and are not kept between sessions. The exception is a downloaded soils layer saved beside the model, which is loaded again with it (§19.13).

19.5 DEMs: Import DEM

File → Import DEM… reads a digital elevation model and draws it under the map; the status bar reports how it was stored, its CRS and its elevation range. One DEM is loaded at a time; loading another replaces it.

GeoTIFF (TIFF 6.0 with the GeoTIFF 1.1 keys, OGC 19-008r4):

Not supported, each with its own message: BigTIFF (rewrite as classic TIFF, e.g. gdal_translate -co BIGTIFF=NO), JPEG and CCITT compression, separate-plane multi-band images, rotated or sheared transformations, non-square cells and sub-byte samples.

ESRI ASCII grid (.asc): the ncols/nrows/xllcorner/yllcorner (or xllcenter/yllcenter)/cellsize/NODATA_value header, square cells only, and its CRS from a .prj of the same name when there is one.

Drawing. A DEM in a different CRS from the model's is drawn at its reprojected corners (fine for the extents a drainage model covers); a DEM with no CRS, or with a datum that cannot be transformed, is drawn as if its coordinates were the model's. Grids larger than 2048 cells a side are thinned for display only; sampling always reads the full grid. In the GIS section of the Layers tab:

No-data cells are transparent.

19.6 Set Ground From DEM

File → Set Ground From DEM… (enabled once a DEM is loaded) sets each node's MaxDepth so that its rim is on the ground: MaxDepth = DEM ground − invert Elevation. The DEM is sampled at the node by bilinear interpolation between cell centres (the nearest cell at the grid's edge and beside no-data), after transforming the node's position into the DEM's CRS when the two differ.

The Set Ground From DEM dialog:

The DEM is not written into the model; only the depths are.

19.7 Export GIS Layers

File → Export GIS Layers… opens the Export GIS Layers dialog. The model becomes up to four layers — nodes (points), links (lines through their vertices), subcatchments (polygons from their outlines) and rain gages (points) — each object with its defining columns as attributes plus Name, Kind and Section; links also carry their cross-section (Shape, Geom1–Geom4, Barrels) and subcatchments their subareas. A column that is numeric in every row is written as a number, otherwise as text. Objects without a position (a subcatchment with no outline, a gage with no symbol) are written with no geometry.

Export… writes and reports the files; Close closes the dialog. The older File → Export → GeoJSON (map units, no CRS)… of §13.4 is still there and unchanged.

19.8 QGIS: Open in QGIS and Update From QGIS

File → Open in QGIS writes two files into a folder beside the model, <model>_qgis\:

It then starts QGIS on the project. QGIS is found in this order:

  1. the AQUASWMM_QGIS environment variable (the path of qgis-bin.exe);
  2. the newest Program Files\QGIS * install;
  3. C:\OSGeo4W;
  4. qgis on the PATH elsewhere.

If QGIS is not found, the files are still written and the status line says where. The project names the GeoPackage by a relative path, so the folder can be moved or sent as a whole. A model never saved uses a temporary folder. Opening again rewrites both files. Close the project in QGIS first, since it holds the GeoPackage open. While QGIS has it open, Open in QGIS stops with "in use (close it in QGIS first)" and leaves the file as it was.

In QGIS, edit the layers as usual:

Then save the layer edits (Toggle Editing, then Save).

File → Update From QGIS reads that GeoPackage back as one undo step. It is enabled once the file exists. Each table is imported with Update objects that already exist on:

The status line counts what changed and what was added per table. Deleting a feature in QGIS does not delete the object: delete it in the editor.

Update From QGIS takes seconds even for large models. With 20,000 each of junctions, conduits and subcatchments, every node moved, every roughness changed and every outline shifted comes back in about 2 seconds.

The files are read and written by the editor itself (GeoPackage 1.3 per OGC 12-128r18 on SQLite; QGIS 3 project XML). Neither QGIS nor GDAL needs to be installed to write or read them. Column names are unique ignoring case, as SQLite compares them. A clash, or a column named fid or geom, takes _2, _3 and so on. A number SQLite cannot hold (not a number, infinite) is written empty.

Automated tests run this against QGIS 3.44 LTR and QGIS 3.24:

19.9 Tutorial: a network from GIS layers, grounded on a DEM

The files are in the source tree under swmm/tests/fixtures/gis/: three manholes and two pipes as shapefiles in NC State Plane feet (EPSG:2264), two catchments as GeoJSON, and small GeoTIFF DEMs.

  1. New model. File → New. Save it once (File → Save As…) so the CRS has somewhere to live.
  2. Manholes. File → Import GIS Layer… → manholes.shp. The dialog picks Junction, names from NAME, maps INVERT to JUNCTIONS Elevation, and — because the layer has a .prj and the model has no CRS — ticks Use the layer's CRS as the model CRS. Click Preview ("3 junction(s)"), then Import. The model CRS is now EPSG:2264 and a .crs file sits beside your .inp.
  3. Pipes. File → Import GIS Layer… → pipes.shp. Conduit is picked; map DIAM to XSECTIONS Geom1 and N to CONDUITS Roughness. Both ends of each pipe land on a manhole, so no junctions are created; pipe P2 is multipart and its longer part becomes the route. Tick Keep as a reference layer and Import. Lengths are the drawn lengths in feet.
  4. Catchments. File → Import GIS Layer… → basins.geojson. Subcatchment is picked; map imperv to PctImperv. Import: B1's area is 660 × 660 ft less its 100 × 100 ft hole = 9.77 acres, and its outlet is the manhole nearest its centroid. One Edit → Undo removes the whole import.
  5. Check the position. In the Layers tab's GIS section, turn on Cursor lat/lon and hover over MH-1: about 35.2271° N, 80.8431° W (Charlotte).
  6. DEM. File → Import DEM… → dem_deflate_pred3_f32.tif (a Deflate-compressed float grid in the same CRS). Switch between Hillshade and Elevation tint in the Layers tab. The fixture DEM is tiny and lies south of the manholes; with your own DEM covering the network, File → Set Ground From DEM…, check the table, and Write MaxDepth.
  7. Export. File → Export GIS Layers… → GeoJSON, Reproject to WGS 84 (RFC 7946), Export…. Open the file in any web map: it lands on Charlotte.

19.10 Known limits

19.11 Basemaps: aerial imagery and topographic maps

View → Basemap draws a map from USGS The National Map under the model. The data are public domain and cover the United States.

Basemap What it shows
Aerial imagery USDA NAIP orthoimagery. Zoomed in past the tile cache's finest level, a full-resolution NAIP image (0.3–0.6 m) of the view is fetched instead.
Aerial imagery with labels The same imagery with roads, place names and contours.
Topographic map The USGS topographic map: contours, streams, roads, names.

19.12 Download DEM (USGS 3DEP)

File → Download DEM (USGS 3DEP)… fetches elevations from the USGS 3D Elevation Program, which resamples its best data (lidar-based 1 m where it exists, coarser elsewhere) to the grid asked for. The request is made in the model's coordinate system, so the DEM needs no reprojection and lines up with the model exactly.

Units. The service answers in metres whatever the coordinate system. AquaSWMM writes the elevations in the coordinate system's unit (US survey feet for a State Plane foot zone), because that is how every DEM is read here: a DEM's elevations are taken to be in its horizontal unit. Heights are NAVD 88 in the conterminous United States.

Requirements. A model CRS that is projected and has an EPSG code (State Plane or UTM), a licence or trial (it writes a file), and the internet. Outside the United States the service has no data, and the download says so.

19.13 Download Soils (SSURGO)

File → Download Soils (SSURGO)… fetches soil map units with their hydrologic soil groups (HSG) from the USDA NRCS Soil Data Access services, for the map view or the model plus 5 %, and keeps them as a reference layer (§19.4) coloured by group. It is one of the two inputs of Project → Compute Curve Numbers… (§8.10).

How the layer is made:

  1. The map-unit polygons come from the SDA spatial service (a WFS, SDMWGS84GEOGRAPHIC.wfs, layer mapunitpoly, GML 2, WGS 84). The extent's longitude/latitude box is fetched in tiles of 0.02° (about 2 km); a polygon comes back whole from every tile it touches and is kept once, by its mupolygonkey. Holes and multipart polygons are kept.
  2. Each map unit's group comes from the SDA tabular service: its major components (majcompflag = 'Yes'), largest comppct_r first. The largest component's hydgrp is the map unit's group (the dominant-component rule).
  3. The polygons are reprojected into the model's CRS and written as GeoJSON (with the CRS named in it), by default beside the model as <model>_ssurgo.geojson. That file is what is loaded.

The layer's fields are mukey, musym, compname (the dominant component) and hsg. Colours: A green, B yellow, C orange, D red, the dual groups A/D, B/D and C/D in blues and purples, unknown grey. The Layers tab shows the legend under the layer, and labels each polygon with its group. Only one soils layer is kept: a new download replaces it.

Unknown groups. A map unit whose dominant component has no group is kept and marked unknown (hsg null), and nothing is estimated for it: Urban land, pits, dumps and water usually have none, and in built-up areas they can cover most of a site. The group of a minor component is not borrowed. Where SSURGO has no survey, no polygons come back; the generalised STATSGO2 map is not used as a fill-in. Compute Curve Numbers reports such areas as without data.

Reloading. <model>_ssurgo.geojson beside the model is loaded again whenever the model is opened, and reprojected if the model CRS has changed since.

Limits. At most 100 km² (about 25,000 acres) per download; a larger area is refused with a message (zoom in, or use the model's extent). The spatial answer is capped at 64 MB per tile.

Source and terms. Soil Survey Staff, Natural Resources Conservation Service, United States Department of Agriculture, Soil Survey Geographic (SSURGO) Database, through Soil Data Access (sdmdataaccess.sc.egov.usda.gov). SSURGO is a work of the US federal government and in the public domain; NRCS asks to be credited as the source in products made from it. Soil Data Access serves the current official data, which NRCS refreshes once a year, so a download reflects the survey on the day it is made; note the date in a report.

Requirements. As for Download DEM: a projected model CRS with an EPSG code, a licence or trial, and the internet.

19.14 Download Land Cover (NLCD 2021)

File → Download Land Cover (NLCD 2021)… fetches the National Land Cover Database 2021 land cover for the map view or the model plus 5 %, at its 30 m cell, and draws it under the map in the standard NLCD legend colours. It is the other input of Compute Curve Numbers…. The Layers pane's Land cover (NLCD 2021) checkbox shows or hides it.

Code Class
11 Open Water
12 Perennial Ice/Snow
21 Developed, Open Space (impervious < 20 %)
22 Developed, Low Intensity (impervious 20–49 %)
23 Developed, Medium Intensity (impervious 50–79 %)
24 Developed, High Intensity (impervious 80–100 %)
31 Barren Land (Rock/Sand/Clay)
41, 42, 43 Deciduous, Evergreen, Mixed Forest
52 Shrub/Scrub
71 Grassland/Herbaceous
81 Pasture/Hay
82 Cultivated Crops
90 Woody Wetlands
95 Emergent Herbaceous Wetlands

Any other value (0 outside the data) is no data.

Limits. The 2021 layer covers the conterminous United States only: not Alaska, Hawaii or the territories; elsewhere the download reports that there is no land cover. The land cover is as of 2021, at 30 m: a development built since, or a lot smaller than a few cells, is not in it. At most 20 million cells (about 18,000 km²) per download.

Source and terms. Dewitz, J., 2023, National Land Cover Database (NLCD) 2021 Products: U.S. Geological Survey data release, https://doi.org/10.5066/P9JZ7AO3, served by the Multi-Resolution Land Characteristics Consortium (MRLC). NLCD is public domain US federal data; the USGS asks that it be cited. The class definitions and impervious ranges above are MRLC's.

Requirements. As for Download DEM.

19.15 Delineate Watershed

File → Delineate Watershed… (enabled once a DEM is loaded), or Delineate Watershed to Here… on a node's right-click menu, finds the part of the DEM that drains over the ground to a pour point and offers it as a subcatchment.

Terrain only. The DEM sees the ground surface. It does not see pipes, inlets, curbs, culverts, walls or diversions, so in a piped network the outline is the surface area that drains toward the structure, not the area the structure actually collects. Check it against the network, the inlets and the site before using it.

The dialog:

Method. Depressions are filled by Priority-Flood (Barnes, Lehman and Mulla 2014); each cell drains to its steepest D8 neighbour on the filled surface (diagonals by distance), and a cell on a flat or in a filled pit drains toward the neighbour the flood reached it from, which leads to the spill point; flow accumulation counts cells in topological order; the watershed is every cell whose flow path reaches the snapped pour point. The area is the cell count times the cell area in the DEM's own linear unit (its CRS's, else the model map's), so it does not depend on the outline. The outline is the basin's outer cell boundary, thinned to half a cell.

The first delineation on a DEM works out flow directions for the whole grid in the background, with a progress bar and Cancel; the map and the rest of the app stay usable. They are kept, so later pour points on the same DEM are instant. Loading or removing a DEM, or closing the dialog, stops the work. A 60-million-cell DEM (the largest Download DEM writes) takes about 25 s and some 350 MB beyond the DEM itself; grids over 100 million cells are refused: clip the DEM or use a coarser cell. A DEM in geographic coordinates (degrees) is refused: use a projected DEM, which Download DEM provides.

Check against a gauge. On a 30 m 3DEP DEM in EPSG:5070, Little Hope Creek at Seneca Place, Charlotte (USGS 02146470, published drainage area 2.63 mi²) delineates to 2.636 mi² (+0.2%).

19.16 Download Landscape (NOAA) and the 3D view

File → Download Landscape (NOAA)… fetches one picture of the ground and the sea floor for the model's area and draws it under the map. It is for looking at a site, above all a coastal one, and it is the source of the 3D view. It is not a design surface: Set Ground From DEM and the 2D model never read it.

The window, Download Landscape (NOAA):

The elevations come from NOAA NCEI's mosaic of its DEMs: the 1/9 arc-second coastal models along the US coast, the Coastal Relief Model, and ETOPO 2022 elsewhere. The files are saved beside the model as <model>_topobathy.tif, <model>_chart.png with its .pgw world file, and <model>_topobathy.json (a note of the source), and come back when the model is opened.

Why it is a picture only. The mosaic mixes vertical datums: NAVD 88 on the coastal tiles, EGM 2008 on the Coastal Relief Model, "sea level" on ETOPO. That is fine for a picture and wrong for design. The source and datum under the middle of the area are shown with the layer.

In the Layers tab the Landscape row shows or hides it and sets its opacity. Use the loaded DEM on land draws the map's DEM wherever it has elevations (it is usually finer lidar) and the NOAA mosaic everywhere else. The 3D button beside the row opens the 3D view.

File → Landscape 3D View (enabled once a landscape is downloaded) opens the Landscape 3D window: the same surface as a lit 3D scene. Drag to orbit, right-drag to pan, scroll to zoom.

Requirements. A model CRS that is projected and has an EPSG code, a licence or trial (it writes files), and the internet.