Inspection of 200 Underground Chambers – Feasibility Question

Dear QField Community,

An opportunity has arisen for a field project. I spoke with some friends who work in different fields but use QField intensively for field surveys. They said that the idea outlined below should be possible in principle.
Before diving into it, I would like to gather some feedback from the community.
Important upfront: I’m new to QField.
While reading up on it, however, I came across several open points that I list transparently below.


1. Project Overview

We need to inspect 200 underground chambers (vaults) equipped with similar electrotechnical hardware. Some of the equipment is being replaced due to age; the remaining equipment must be assessed (refurbishment needed yes/no).

The chambers fall into four types, with slight variations within each type. Examples:

  • Type A: leak monitoring only

  • Type B: leak monitoring + pump(s) + ventilator (variant: 1 or 2 pumps)

  • etc.

So the project has a strongly serial character – ideal for one standardized form covering all variants.

Chamber locations come from the utility cadastre as shapefiles.


2. Step 1 – QGIS (Desktop Preparation)

  • Import shapefile and generate the list of sites to inspect

  • Merge several chamber floor plans into one combined layout and export as PDF – to be used as the base for virtual tours
    (providers like PlanRadar SiteView, OpenSpace or Dalux Field act as a backup if we hit a blocker in QField or have genric error, noted after inspection)


3. Step 2 – QField (Field Capture)

We want a single form that dynamically shows the relevant tabs based on chamber type + variant.

3.1 Metadata (chamber header)

  • From cadastre: location, GPS coordinates, ID

  • Added in the field: timestamp entered, timestamp left, traffic situation (radio buttons: easy / difficult / risky), chamber type, variant

3.2 Dynamic tabs per equipment category

Depending on chamber type, tabs such as:

  • Current switchgear assembly (the one being replaced)

  • House service connection box

  • Fiber optic connection

  • Pumps

  • Ventilator

  • Access / climbing aids and traffic routes

3.3 Structure within each tab

Each tab contains a list of inspection points. Per point:

  • Rating via radio buttons following a traffic-light scheme (red / yellow / green)

  • 2 mandatory photos

  • Option to add an arbitrary number of additional photos

  • Comment field, ideally fillable via speech-to-text

3.4 Per-chamber wrap-up

  • General comment field

  • One 360° image of the chamber

3.5 Data flow

  • Synchronization via QFieldCloud

  • After the survey, results should be accessible via a web portal for sharing with third parties → Is QWC a suitable tool for this? Recommendations welcome.


4. Hurdles I’ve already identified

I’ve done some reading – I’d appreciate feedback on whether my workarounds make sense or if there are better ways:

a) Arbitrary number of photos per inspection point
Doesn’t seem directly possible. Workaround presumably via a separate image table as described here: :backhand_index_pointing_right: Attachment widget - QField Ecosystem Documentation Does this work cleanly in practice when needed per inspection point × ~10 points × multiple tabs?

b) Speech-to-text
Not natively supported: :backhand_index_pointing_right: Integration of speech-driven data entry | Voters | QField Ideas Platform My plan: capture voice notes as described here :backhand_index_pointing_right:How to use voice notes? - Ask the Community - QField community transcribe them externally, and feed the result back in later. Has anyone used this productively?

c) Large but repetitive form Since many fields are structurally identical, I don’t want to click the form together manually
I’d like to generate it via PyQGIS, with one code snippet per content type that I instantiate in a loop as often as needed. Is this a common approach? Any examples or pitfalls?

d) 360° captures Doesn’t appear to be natively supported in QField.
The QgisGLViewer :backhand_index_pointing_right: Equirectangular 360° Viewer — QGIS Python Plugins Repository doesn’t look like a fit to me.
We use an Insta360 X4. Idea: upload captures to the Insta360 cloud and reference/retrieve them in QField via timestamp. Has anyone built something like this? Is there a better way to attach 360° images to a feature and display them in QField (or at least later in the web portal)?


5. Concrete questions to the community

  1. Is the described project realistically achievable with QField + QFieldCloud overall?

  2. Are dynamic tabs driven by a selection field (chamber type) cleanly doable – e.g. via constraints / expression-based visibility, or via related tables?

  3. Recommendation for the web portal component: is QWC the right path, or are there established alternatives for reusing QFieldCloud data?

  4. Are there reference projects with a similar serial character you can recommend?

Many thanks for thinking along – every bit of feedback helps us decide whether to go all-in on QField or solve individual components differently.

(I’ll update the links as soon as I reach a higher member level on this forum.)

Hello @PackElend , very interesting project!

I’d say, in my limited and by no means definitive experience, that you should be able to achieve most of the requirements with mostly “built-in” functionality of both QField and QGIS combined, but most likely not exactly as it is and would need to change the schema a little bit and maybe add a couple of plugins to help you out. Of course take the following only as suggestions and starting points, I hope the information is useful for implementing your solution.

2. Step 1 - QGIS (desktop preparation)

Maybe you can forfeit the PDF and directly add the floor plans on the QGIS/QField project? They can be included as separated layers, inside a folder (for example, named “floor plans”) that you can bring with you on your field works, and hide or show them individually or all at once from the virtual tour/QField/QGIS themselves.

Also, using as much as possible the native structures provided by QGIS should facilitate the use of the data on the whole ecosystem, in comparison with having a single monolithic source of data that you have to then later parse with python or some other program. For example, these layers will automatically show up as selectable options, typically on a left-side panel, even when directly exporting the project as a webmap to show online.

3.2 Dynamic tabs per equipment category

By tab, I assume you mean the “form” that allows you to input data onto the project. If that’s the case, on QField the form dynamically changes depending on the attributes of the layer, mosty by what on QGIS is defined on the Attributes Form tab of the Layer Properties. So what I would try to do first, is try to separate the information of the project on different layers, each one (generally speaking) containing all the info on each of these “tabs” of yours. For example, having a separate Point Vector layer for the “House service connection boxes”, another for the “Pumps”, another for the “Ventilators”, a LineString or MultiLine Vector layer for the traffic routes, etc.

You should be able to even take attributes from those layers and display them into another (or use their data to modify the values on another layer), since you can effectively think of the layers as tables in a relational database; the trick with the image table for the multiple photos per point you’ve already seen is just an example of what I mean. For example, I’d imagine you can have a Polygon layer for representing the inspection chambers, and this can be a good candidate for aggregating all (or most) of the info of all the individual hardware and other components associated with this chamber by “dynamically” populating attributes on this layer with the values of the others (that is, using “virtual fields”, as QGIS calls them, driven by expressions).

A) arbitrary number of photos

Indeed I think you are on the right track with setting up a separate table to store the paths to the images. I’ve used this video tutorial (which shows a pretty similar idea) a couple of times, always with great success and the last time was on some number of the current major version of QField (4.x.x something). Although the video is a bit old by now, most likely it will not look the same on your phone now, but it would give you an idea of how it would work.

B) Speech-to-text

I haven’t tried this myself, but shouldn’t the text-to-speech from your phone’s keyboard work on the text field? I don’t think this should even be a QField feature, since you already have the flexibility of changing keyboards, and some of them even let you choose from different local models of speech recognition (FUTO keyboard for example).

Alternatively, if you setup that attribute as an Attachment, you can even directly record the audio from QField. Maybe you can have a second text attribute on your layer to later write (automatically or not) the transcription.

c) Large but repetitive form

There already are some plugins from the community to help speed up repetitive work, like QuickE or Quick Capture, maybe that’s useful for your case?

In addition to that, if you aggregate the data from different layers into a single “master” layer (like the inspection chamber polygons example), maybe you can access and modify the attributes in a single edit, reducing the number of clicks and repetitive steps.

d) 360° captures

I don’t know of any way to directly get images from an insta360 into qfield. In the past, I’ve just manually added them on QGIS, since it was just easier and faster to use the camera completely disconnected from the phone. Adding some distinguishing feature on the image itself, such as a QR code, might be useful if there are a lot of images. Sometimes I’ve just generated a QR code on my phone and pointed it to the camera, but QField has the capability of searching things internally by reading a QR code, so it might be handy to have some permanent tag/s on the site anyway (if you plan to do regular inspections).

You could also operate the camera from the phone app and later open QField and use an Attachment widget to associate that local file to your project; but at least for me, using the insta360 app is ridiculously slow for field work. I think this should copy the file inside of your project structure, but I’m not 100% sure; but if not, you can always resort to adding them on the desktop.

Other questions

I’m not sure what you mean by QWC?

Some ideas that come to mind are the qgis2webplugin for QGIS, which is a really fast and easy way of creating interactive webmaps that try to replicate as much as possible how your QGIS project looks using standard HTML/CSS/JS (+ some very popular JS libraries). It generates all the files to upload to an static server, ready to display on the web without server side processing (as long as you can just serve the static files, it should work). It allows you to create interactive tooltips that display extended information, hide/show layers, take measurements, etc.

If you need additional functionality, and since you mention python, you might be able to create some automation tools that take this output and modify it to, for example, add the capability to view the 360° panoramas like a google streetview (for example, using the Marzipano JS library).

If you just need to have the information available online so other people can view and use it, I’d recommend something more akin to a “geoservice”, such as WFS or WMS layers made available via a Geoserver. That is some really complex setup, but is a pretty standard practice for infrastructure information managing (which your project pretty much sounds like).

Hello @cuprico,
I’m pleasantly surprised by the quick and detailed response. I didn’t expect that at all.
I feel a bit bad for being silent for a week. I hope the following can be accepted as an apology: our newborn’s sleeping rhythm is very incompatible with our daily routine. Our first child was just the opposite, but fingers crossed this one will decide to sleep all night soon! :slight_smile:
In addition, the days at work have been quite long this week. :crying_cat:

Anyway, let’s get into the discussion.
I noted that some of my initial questions weren’t as clear as they should have been.
I cannot turn the post into a wiki otherwise I would improve the description and noted what I changed.

I meant QWC - QGIS Webclient (or Lizmap / OpenLayers / MapLibre)
A dedicated discussion is started here: Web portal for sharing survey results with third parties - Ask the Community - QField community


Here is some feedback based on what you wrote.
As soon as the first post is converted into a wiki, I will merge it with the others.

  1. I detailed what I meant by ‘script templates’, see:
    PyQGIS-driven form generation — modular script approach - Advanced Use & Customization - QField community
  2. I took a deep dive into the layer principle of QGIS. That was a bit of a mind blocker. I created a new topic to work through this with a commonly understandable project example, to avoid blowing this discussion with the basics of QGIS.
    An attempt at a ‘principle description’ of how to structure a multi-user, callable, collaborative site inspection survey - Ask the Community - QField community
  3. Thers is wish to introduce a multi-user workflow (creation, editing, extension, approval and handling by different roles).
    Multi-user workflow for collaborative site surveys with live feedback from the office - Advanced Use & Customization - QField community

If an admin is reading this, could you convert into a wiki to allow me to edit the post (see Allow user to edit post that is older than the allowed edit time - Beitragen / Merkmal - Discourse Meta)

No worries @PackElend , congratulations on your newborn! I just so happen to be on vacation and I’m really pleased with QField and QGIS and happy to be of help (although sadly the only thing I can offer is time). Your project seems to be pretty complex, if at any point you feel like you need some faster or more concrete support, don’t hesitate to consult with the creators of QField, Opengis.ch, as they offer professional consulting on all the aspects you are currently inquiring (for a price, of course).

Thanks for mentioning QWC! I did not know about it, I will make sure to check it out later. Regarding this, I’ll only mention that the qgis2web plugin is capable of generating a webmap based on OpenLayers (and also Leaflet), but from the fast skimming I did on your other questions, it seems that you might need something more “permanent” and recreating the maps each time might not be the best approach.

I see now! I’m not so sure about going straight ahead with an automatisation of the form creation process if you are just beginning with QGIS and QField, unless you feel really comfortable with the automatisation tools. Again, from the fast reading on your other topics, I feel like you are already getting a pretty solid general idea of all the parts needed, so maybe I’m just being way over-cautious, but I’ll address those points in detail on the other topics. And since you seem to be in knowledge-sponge mode :wink: , I’ll suggest some other slightly unrelated topics that maybe points you to some changes to your current design.

I’ll follow this on that other topic!

Same as this! Although yeah, I think that for multi-user (with different clearances, permissions and objectives), PostGIS might be the best solution.