Related Plugins and Tags

QGIS Planet

QGIS Server — Docker edition

Today’s post is a QGIS Server update. It’s been a while (12 years 😵) since I last posted about QGIS Server. It would be an understatement to say that things have evolved since then, not least due to the development of Docker which, Wikipedia tells me, was released 11 years ago.

There have been multiple Docker images for QGIS Server provided by QGIS Community members over the years. Recently, OPENGIS.ch’s Docker image has been adopted as official QGIS Server image https://github.com/qgis/qgis-docker which aims to be a starting point for users to develop their own customized applications.

The following steps have been tested on Ubuntu (both native and in WSL).

First, we need Docker. I installed Docker from the apt repository as described in the official docs.

Once Docker is set up, we can get the QGIS Server, e.g. for the LTR:

docker pull qgis/qgis-server:ltr

Now we only need to start it:

docker run -v $(pwd)/qgis-server-data:/io/data --name qgis-server -d -p 8010:80 qgis/qgis-server:ltr

Note how we are mapping the qgis-server-data directory in our current working directory to /io/data in the container. This is where we’ll put our QGIS project files.

We can already check out the OGC API landing page at http://localhost:8010/wfs3/

Let’s add a sample project from the Training demo data repo. (You may need to install unzip if you haven’t yet.)

mkdir qgis-server-data
cd qgis-server-data
wget https://github.com/qgis/QGIS-Training-Data/archive/release_3.22.zip
unzip release_3.22.zip
mkdir world
cp QGIS-Training-Data-release_3.22/exercise_data/qgis-server-tutorial-data/world.qgs world/
cp QGIS-Training-Data-release_3.22/exercise_data/qgis-server-tutorial-data/naturalearth.sqlite world

Giving us:

QGIS Server should now be serving this sample project. Let’s check with a WMS GetMap request:

http://localhost:8010/ogc/world?LAYERS=countries&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS=EPSG:4326&WIDTH=400&HEIGHT=200&BBOX=-90,-180,90,180

Giving us:

If you instead get the error “<ServerException>Project file error. For OWS services: please provide a SERVICE and a MAP parameter pointing to a valid QGIS project file</ServerException>”, it probably means that the world.qgs file is not found in the qgis-server-data/world directory.

Of course, we can also add http://localhost:8010/ogc/world to the WMS and WFS server connections in our QGIS Desktop:

(Fr) Contributing, not only code : Oslandia @ Journées QGIS-Fr 2024

Sorry, this entry is only available in French.

QField 3.2 “Congo”: Making your life easier

Focused on stability and usability improvements, most users will find something to celebrate in QField 3.2

Main highlights

This new release introduces project-defined tracking sessions, which are automatically activated when the project is loaded. Defined while setting up and tweaking a project on QGIS, these sessions permit the automated tracking of device positions without taking any action in QField beyond opening the project itself. This liberates field users from remembering to launch a session on app launch and lowers the knowledge required to collect such data. For more details, please read the relevant QField documentation section.

As good as the above-described functionality sounds, it really shines through in cloud projects when paired with two other new featurs.

First, cloud projects can now automatically push accumulated changes at regular intervals. The functionality can be manually toggled for any cloud project by going to the synchronization panel in QField and activating the relevant toggle (see middle screenshot above). It can also be turned on project load by enabling automatic push when setting up the project in QGIS via the project properties dialog. When activated through this project setting, the functionality will always be activated, and the need for field users to take any action will be removed.

Pushing changes regularly is great, but it could easily have gotten in the way of blocking popups. This is why QField 3.2 can now push changes and synchronize cloud projects in the background. We still kept a ‘successfully pushed changes’ toast message to let you know the magic has happened 🚀

With all of the above, cloud projects on QField can now deliver near real-time tracking of devices in the field, all configured on one desktop machine and deployed through QFieldCloud. Thanks to Groupements forestiers Québec for sponsoring these enhancements.

Other noteworthy feature additions in this release include:

  • A brand new undo/redo mechanism allows users to rollback feature addition, editing, and/or deletion at will. The redesigned QField main menu is accessible by long pressing on the top-left dashboard button.
  • Support for projects’ titles and copyright map decorations as overlays on top of the map canvas in QField allows projects to better convey attributions and additional context through informative titles.

Additional improvements

The QFieldCloud user experience continues to be improved. In this release, we have reworked the visual feedback provided when downloading and synchronizing projects through the addition of a progress bar as well as additional details, such as the overall size of the files being fetched. In addition, a visual indicator has been added to the dashboard and the cloud projects list to alert users to the presence of a newer project file on the cloud for projects locally available on the device.

With that said, if you haven’t signed onto QFieldCloud yet, try it! Psst, the community account is free 🤫

The creation of relationship children during feature digitizing is now smoother as we lifted the requirement to save a parent feature before creating children. Users can now proceed in the order that feels most natural to them.

Finally, Android users will be happy to hear that a significant rework of native camera, gallery, and file picker activities has led to increased stability and much better integration with Android itself. Activities such as the gallery are now properly overlayed on top of the QField map canvas instead of showing a black screen.

3.2.1 - Congo

What's Changed

  • Fix typo leading to erroneous geotagging of photos
  • Fix autopush timer interval value
  • Fix handling of empty string in the value relation editor widget
  • Performance boost when downloading packages from QFieldCloud servers
  • Fix last averaged position not taken into account when digitizing
  • Fix readability issue with the busy indicator message string
  • Fix positioning information panel not respecting project distance unit type for altitude and accuracy

3.2.2 - Congo

What's Changed

  • Fix a QFieldCloud synchronization issue with geometryless layers.
  • Fix a number of file attachments wrongly identified as display images (e.g. dxf).

(Fr) En direct des Journées Utilisateurs QGIS-fr !

Sorry, this entry is only available in French.

FOSSGIS 2024

Sourcepole hat an der FOSSGIS 2024 in Hamburg verschiedene Themen mit Vorträgen abgedeckt:

  • QGIS Web Client 2 (QWC2) - Neues aus dem Projekt
  • QGIS Server Plugins
  • BBOX: Kompakter OGC API Server für Features, Tiles und mehr

(Fr) [Témoignage client] Émilie Bigorne, géomaticienne EPTB Loire

Sorry, this entry is only available in French.

Getting started with pygeoapi processes

Today’s post is a quick introduction to pygeoapi, a Python server implementation of the OGC API suite of standards. OGC API provides many different standards but I’m particularly interested in OGC API – Processes which standardizes geospatial data processing functionality. pygeoapi implements this standard by providing a plugin architecture, thereby allowing developers to implement custom processing workflows in Python.

I’ll provide instructions for setting up and running pygeoapi on Windows using Powershell. The official docs show how to do this on Linux systems. The pygeoapi homepage prominently features instructions for installing the dev version. For first experiments, however, I’d recommend using a release version instead. So that’s what we’ll do here.

As a first step, lets install the latest release (0.16.1 at the time of writing) from conda-forge:

conda create -n pygeoapi python=3.10
conda activate pygeoapi
mamba install -c conda-forge pygeoapi

Next, we’ll clone the GitHub repo to get the example config and datasets:

cd C:\Users\anita\Documents\GitHub\
git clone https://github.com/geopython/pygeoapi.git
cd pygeoapi\

To finish the setup, we need some configurations:

cp pygeoapi-config.yml example-config.yml  
# There is a known issue in pygeoapi 0.16.1: https://github.com/geopython/pygeoapi/issues/1597
# To fix it, edit the example-config.yml: uncomment the TinyDB option in the server settings (lines 51-54)

$Env:PYGEOAPI_CONFIG = "F:/Documents/GitHub/pygeoapi/example-config.yml"
$Env:PYGEOAPI_OPENAPI = "F:/Documents/GitHub/pygeoapi/example-openapi.yml"
pygeoapi openapi generate $Env:PYGEOAPI_CONFIG --output-file $Env:PYGEOAPI_OPENAPI

Now we can start the server:

pygeoapi serve

And once the server is running, we can send requests, e.g. the list of processes:

curl.exe http://localhost:5000/processes

And, of course, execute the example “hello-world” process:

curl.exe --% -X POST http://localhost:5000/processes/hello-world/execution -H "Content-Type: application/json" -d "{\"inputs\":{\"name\": \"hi there\"}}"

As you can see, writing JSON content for curl is a pain. Luckily, pyopenapi comes with a nice web GUI, including Swagger UI for playing with all the functionality, including the hello-world process:

It’s not really a geospatial hello-world example, but it’s a first step.

Finally, I wan’t to leave you with a teaser since there are more interesting things going on in this space, including work on OGC API – Moving Features as shared by the pygeoapi team recently:

So, stay tuned.

[Case Study] Innovating road research and construction

Discover how BRRC revolutionized their field survey workflows with Mergin Maps, enhancing productivity and data accuracy. Learn how their partnership with Lutra Consulting enabled tailored solutions for seamless integration, transforming road research and construction projects.

Using leafmap with actinia in a Jupyter notebook

This blog post gives an overview of how to easily perform a geodata analysis of an online available dataset (here: a GeoTIFF file) with actinia and display the result in Leafmap browser-based.

The post Using leafmap with actinia in a Jupyter notebook appeared first on Markus Neteler Consulting.

Celebrating 18 Years of the Open Source Geospatial Foundation (OSGeo)

The Open Source Geospatial Foundation (OSGeo) today celebrates its 18th anniversary, underscoring its pivotal role in the development of open source geospatial software and its impact on the world. Founded in 2006, OSGeo’s mission is to support and promote the collaborative development of open geospatial technologies and data. Over the years, it has become a cornerstone of the open geospatial community, fostering innovation, education and adoption of open source geospatial software worldwide.

The post Celebrating 18 Years of the Open Source Geospatial Foundation (OSGeo) appeared first on Markus Neteler Consulting.

GRASS GIS 8.3.2 released

The GRASS GIS 8.3.2 maintenance release contains more than 30 changes compared to 8.3.1. This new patch release includes important fixes and improvements to the GRASS GIS modules and the graphical user interface (GUI), making it even more stable for daily work.

The post GRASS GIS 8.3.2 released appeared first on Markus Neteler Consulting.

3.2.0 - Congo

Changes

qfield32

🚀 Features

  • Project-defined tracking sessions activated on project load
  • Background push and synchronization for cloud projects
  • Automatically push pending changes to the cloud on a regular interval
  • New undo/redo functionality allowing you to reverse undesired digitizing and feature editing
  • Title and copyright decoration overlay on top of the map canvas

✨ Improvements

  • Better progress feedback when downloading and synchronizing cloud projects
  • Visual indicators of ‘newer’ cloud project available on the server in QField
  • Relationship’s children can now be created prior to saving their parent feature
  • Insure positioning precise view (i.e. stake-out) works on compass-less devices
  • User interface polishing, including a brand new main menu layout
  • Support for gpsd-served NMEA streams over TCP/UDP
  • Updated several underlying libraries, including QGIS (v3.36) and Qt (v6.6.2)

🤖 Android improvements

  • Massive re-work of native camera, gallery, and file opening activities unlocking proper OS activity overlay

[Case Study] Designing surveys for fibre optics rollout

Jacops was starting a new project for the fiber rollout and needed the tools to organise a national survey. Previously they had used tools provided by a partner and needed to find a solution that allowed them to manage the full scope of the project.

Trajectools 2.0 released 🎉

It’s my pleasure to share with you that Trajectools 2.0 just landed in the official QGIS Plugin Repository.

This is the first version without the “experimental” flag. If you look at the plugin release history, you will see that the previous release was from 2020. That’s quite a while ago and a lot has happened since, including the development of MovingPandas.

Let’s have a look what’s new!

The old “Trajectories from point layer”, “Add heading to points”, and “Add speed (m/s) to points” algorithms have been superseded by the new “Create trajectories” algorithm which automatically computes speeds and headings when creating the trajectory outputs.

“Day trajectories from point layer” is covered by the new “Split trajectories at time intervals” which supports splitting by hour, day, month, and year.

“Clip trajectories by extent” still exists but, additionally, we can now also “Clip trajectories by polygon layer”

There are two new event extraction algorithms to “Extract OD points” and “Extract OD points”, as well as the related “Split trajectories at stops”. Additionally, we can also “Split trajectories at observation gaps”.

Trajectory outputs, by default, come as a pair of a point layer and a line layer. Depending on your use case, you can use both or pick just one of them. By default, the line layer is styled with a gradient line that makes it easy to see the movement direction:

while the default point layer style shows the movement speed:

How to use Trajectools

Trajectools 2.0 is powered by MovingPandas. You will need to install MovingPandas in your QGIS Python environment. I recommend installing both QGIS and MovingPandas from conda-forge:

(base) conda create -n qgis -c conda-forge python=3.9 
(base) conda activate qgis
(qgis) mamba install -c conda-forge qgis movingpandas

The plugin download includes small trajectory sample datasets so you can get started immediately.

Outlook

There is still some work to do to reach feature parity with MovingPandas. Stay tuned for more trajectory algorithms, including but not limited to down-sampling, smoothing, and outlier cleaning.

I’m also reviewing other existing QGIS plugins to see how they can complement each other. If you know a plugin I should look into, please leave a note in the comments.

Save the date & call for contributions: QGIS user conference and contributor meeting in Bratislava

We are happy to announce that QGIS User Conference will take place on 9-10 September 2024 in Bratislava, Slovakia.


The traditional Contributor Meeting will be held right after the conference on 11-13 September 2024 at the same venue.

Learn more about the user conference and the contributor meeting at the event’s web site: https://uc2024.qgis.sk/

The call for papers for the user conference is now open – you can submit proposals for talks and workshops by 31 March 2024:
https://uc2024.qgis.sk/call-for-papers/

We have also started call for sponsors, with sponsorship opportunities at various levels. More details here:
https://uc2024.qgis.sk/sponsors/

User Conference

The QGIS User Conference is an annual event that brings together users and developers of QGIS. The conference provides an opportunity for attendees to learn about the latest developments in QGIS, share their experiences with others, and network with other QGIS users and
developers.

Contributor Meeting

QGIS Contributor Meetings are volunteer-driven events where contributors to the QGIS project from around the world get together in a common space – usually a university campus. During these events, contributors to the QGIS project take the opportunity to plan their work, hold face-to-face discussions and present new improvements to the QGIS project that they have been working on. Everybody attending the event donates their time to the project for the days of the event.
As a project that is built primarily through online collaboration, these meetings provide a crucial ingredient to the future development of the QGIS project. The event is planned largely as an ‘unconference’ with minimal structured programme planning.

For more details and to sign up, please visit the corresponding wiki page https://github.com/qgis/QGIS/wiki/27th%E2%80%90Contributor%E2%80%90Meeting%E2%80%90in%E2%80%90Bratislava

QGIS Grants #9: Call for Grant Proposals 2024

Dear QGIS Community,

We are very pleased to announce that this year’s round of grants is now available. The call is open to anybody who wants to make a contribution to QGIS funded by our grant fund, subject to the call conditions outlined in the application form.

The deadline for this round is in four weeks, on 14 March 2024.

There are no new procedures in 2024. Please note the following guidelines established in previous years: 

  • The proposal must be submitted as a ‘QEP’ (QGIS Enhancement Proposal) issue in the repo: https://github.com/qgis/QGIS-Enhancement-Proposals (tagged as Grant-2024). Following this approach will allow people to ask questions and provide public feedback on individual proposals.
  • Proposals must clearly define the expected final result so that we can properly assess if the goal of the proposal has been reached.
  • The project budgets should account for PR reviewing expenses to ensure timely handling of the project-related PRs and avoid delays caused by relying on reviewer volunteer time. 
  • In the week after the QEP discussion period, the proposal authors are expected to write a short summary of the discussion that is suitable for use as a basis on which voting members make their decisions. 

The PSC of QGIS.ORG will examine the proposals and has veto power in case a proposal does not follow guidelines or is not in line with project priorities.

For more details, please read the introduction provided in the application form.

We look forward to seeing all your great ideas for improving QGIS!

[Blog] Hello from Mergin Maps!

Mergin Maps is a QGIS-powered field survey tool designed to collect data from the field. It is developed by Lutra Consulting, a longstanding contributor, developer, supporter and trainer within the QGIS community.

Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

  • Page 1 of 136 ( 2716 posts )
  • >>

Back to Top

Sustaining Members