QNEAT 4.0

Changes from QNEAT3

What changed since QNEAT3

After nearly 8 years, I decided to overhaul QNEAT3. Firstly the old codebase was exactly that — old. Secondly, QGIS development moved on from QGIS3 to QGIS4. In the course of a whole year, I rewrote the QNEAT plugin from scratch, adding new features but also dropping many old/unpractical or buggy logic. Due to this redesign, old QNEAT3 models and projects are not compatible with QNEAT version 4. The new version number of QNEAT is 4.0 — in line with the new QGIS version number. I also decided to decouple the algorithm name from the QGIS version in order to have easier ports between future QGIS versions. QNEAT4 is now simply called QNEAT.

Following changes have been made to the plugin and have to be kept in mind when porting old QNEAT3 models, projects or processing scripts:

  • No more matplotlib. Every Iso-Area algorithm that previously required a manual matplotlib install (Iso-Area as Contours/Polygons) has been rewritten on top of GDAL. All algorithms are now available out-of-the-box — see the updated Installation and Setup page.
  • Entry/exit cost calculation is always ellipsoidal, and always uses the network layer's own CRS ellipsoid. Every algorithm used to expose an advanced “Entry Cost calculation method” parameter (Ellipsoidal / Planar), and ellipsoidal calculations were hardcoded to WGS84 regardless of the network's actual CRS. Both the parameter and the hardcoding are gone: costs are now always ellipsoidal and always computed against the network source's own ellipsoid, which is more accurate for networks in other CRSs.
  • Iso-Area algorithms consolidated. 8 iso-area algorithms become 6 (see the mapping table below). The Polygon/Contour matplotlib algorithms were merged into two new algorithms (Iso-area from point / Iso-area from layer) that let you pick the output type and interpolation method as parameters instead of picking a different algorithm for each combination.
  • OD-Matrix from Points as CSV (n:n) was removed. It has been redundant: the OD matrix from points as table (n:n) algorithm's output can be saved directly to a .csv file via the QGIS processing algorithm output options.
  • OD-Matrix terminology renamed. “From-Point Layer” / “To-Point Layer” are now “Origin point layer” / “Destination point layer”, with distinct ID field labels for each side.
  • Under the hood: the plugin's internals were substantially rewritten for maintainability (Qneat3Network/Qneat3AnalysisPointQneatCore, algorithms now inherit directly from QgsProcessingAlgorithm), progress reporting was reworked to actually reflect algorithm progress, and a number of longstanding bugs were fixed along the way (see the full changelog below).

Algorithm-by-algorithm

QNEAT3 (legacy) QNEAT 4.0 Status Notes
Shortest path (point to point) Shortest path (point to point) renamed params Start/End point → Origin/Destination point. Entry cost method removed.
Iso-Area as pointcloud (from point) Iso-Area as pointcloud (from point) unchanged Entry cost method parameter removed only.
Iso-Area as pointcloud (from layer) Iso-Area as pointcloud (from layer) unchanged Entry cost method parameter removed only.
Iso-Area as Interpolation (from point) Iso-area as cost surface (from point) renamed & extended New "Iso-area method" (Euclidean Distance Transform / TIN Interpolation) and "Maximum off-graph travel cost" parameters.
Iso-Area as Interpolation (from layer) Iso-area as cost surface (from layer) renamed & extended Same additions as the point variant.
Iso-Area as Contours (from point) (matplotlib) Iso-area from point merged Both merged into one algorithm with "Iso-area type" (Polygons/Contours) and "Iso-area method" parameters. No matplotlib required.
Iso-Area as Polygons (from point) (matplotlib)
Iso-Area as Contours (from layer) (matplotlib) Iso-area from layer merged Same merge as above, for the layer-based variants.
Iso-Area as Polygons (from layer) (matplotlib)
OD Matrix from Layers as Lines (m:n) OD matrix from layers as lines (m:n) renamed params From/To-Point → Origin/Destination point. Entry cost method removed.
OD Matrix from Layers as Table (m:n) OD matrix from layers as table (m:n) renamed params Same renames as the lines variant.
OD-Matrix from Points as CSV (n:n) removed Use "OD matrix from points as table (n:n)" and save the output as .csv.
OD-Matrix from Points as Lines (n:n) OD matrix from points as lines (n:n) renamed params Entry cost method removed; matrix output type labels simplified to "Line"/"Route".
OD-Matrix from Points as Table (n:n) OD matrix from points as table (n:n) renamed params Entry cost method removed.