Today, I’m revisiting work from 2017. In Brezina, Graser & Leth (2017), we looked at different ways to determine the width of sidewalks in Vienna based on the city’s street surface database.
Inscribed and circumscribed circles were a natural starting point. Circumscribed or bounding circle tools (the smallest circle to enclose an input polygon) have been commonly available in desktop GIS and spatial databases. Inscribed circle tools (the largest circle that fits into an input polygon) used to be less readily available. Lately, support has improved since ST_MaximumInscribedCircle has been added in PostGIS 3.1.0 (requires GEOS >= 3.9.0).
The tricky thing is that ST_MaximumInscribedCircle does not behave like ST_MinimumBoundingCircle. While the bounding circle function returns the circle geometry, the inscribed circle function returns a record containing information on the circle center and radius. Handling the resulting records involves some not so intuitive SQL.
Here is what I’ve come up with to get both the circle geometries as well as the radius values:
WITH foo AS
(
SELECT id,
ST_MaximumInscribedCircle(geom) AS inscribed_circle,
ST_MinimumBoundingRadius(geom) AS bounding_circle
FROM demo.sidewalks
)
SELECT
id,
(bounding_circle).radius AS bounding_circle_radius,
ST_MinimumBoundingCircle(geom) AS bounding_circle_geom,
(inscribed_circle).radius AS inscribed_circle_radius,
ST_Buffer((inscribed_circle).center, (inscribed_circle).radius) AS inscribed_circle_geom
FROM foo
And here is how the results look like in QGIS, with purple shapeburst fills for bounding circles and green shapeburst fills for inscribed circles:
After a long hiatus, we are happy to announce that there will be a another international QGIS Contributor Meeting in conjunction with this year’s FOSS4G in Firenze, Italy from 18 to 22 August 2022.
QGIS Contributors 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. The event is normally three days in duration and we hold two such events each year. 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. We do this to allow attendees the freedom to meet dynamically with those they encounter at the event. Those sessions that are planned are advertised on the event web page and we try to enable remote participation through video conferencing software. Although our hosts are not funded and donate the working space to us, we show our appreciation by making one of our software release’s splash screens in honour of that host, which is a great way to gain exposure of your institution and country to the hundreds of thousands of users that make use of QGIS.
For more details and to sign up, please visit the corresponding wiki page.
The MovingPoint example seems to describe a storm, including its path (temporalGeometry), pressure, wind strength, and class values (temporalProperties):
You can give the current implementation a spin using this MyBinder notebook
An exciting future step would be to experiment with extending MovingPandas to support the MovingPolygon MF-JSON examples. MovingPolygons can change their size and orientation as they move. I’m not yet sure, however, if the number of polygon nodes can change between time steps and how this would be reflected by the prism concept presented in the draft specification:
As an update of the tutorial from previous years, I created a tutorial showing how to make a simple and dynamic color map with charts in QGIS.
In this tutorial you can see some of interesting features of QGIS and its community plugins. Here you’ll see variables, expressions, filters, QuickOSM and DataPlotly plugins and much more. You just need to use QGIS 3.24 Tisler version.
This point release focuses on improving storage handling. Make sure to read the newly-published documentation page covering storage access/handling on Android (https://docs.qfield.org/get-started/storage/)
🚀 Features
New export {project folder, datasets} to folder action
First time, we talked about the OGC Moving Features standard in a post from 2017. Back then, we looked at the proposed standard way to encode trajectories in CSV and discussed its issues. Since then, the Moving Features working group at OGC has not been idle. Besides the CSV and XML encodings, they have designed a new JSON encoding that addresses many of the downsides of the previous two. You can read more about this in our 2020 preprint “From Simple Features to Moving Features and Beyond”.
Basically Moving Features JSON (MF-JSON) is heavily inspired by GeoJSON and it comes with a bunch of mandatory and optional key/value pairs. There is support for static properties as well as dynamic temporal properties and, of course, temporal geometries (yes geometries, not just points).
I think this format may have an actual chance of gaining more widespread adoption.
Inspired by Pandas.read_csv() and GeoPandas.read_file(), I’ve started implementing a read_mf_json() function in MovingPandas. So far, it supports basic MovingFeature JSONs with MovingPoint geometry:
Next steps will be MovingFeatureCollection JSONs and support for static as well as temporal properties. We’ll have to see if MovingPandas can be extended to go beyond moving point geometries. Storing moving linestrings and polygons in the GeoDataFrame will be the simple part but analytics and visualization will certainly be more tricky.
Many of you certainly have already heard of and/or even used Leafmap by Qiusheng Wu.
Leafmap is a Python package for interactive spatial analysis with minimal coding in Jupyter environments. It provides interactive maps based on folium and ipyleaflet, spatial analysis functions using WhiteboxTools and whiteboxgui, and additional GUI elements based on ipywidgets.
This way, Leafmap achieves a look and feel that is reminiscent of a desktop GIS:
Recently, Qiusheng has started an additional project: the geospatial meta package which brings together a variety of different Python packages for geospatial analysis. As such, the main goals of geospatial are to make it easier to discover and use the diverse packages that make up the spatial Python ecosystem.
Besides the usual suspects, such as GeoPandas and of course Leafmap, one of the packages included in geospatial is MovingPandas. Thanks, Qiusheng!
I’ve tested the mamba install today and am very happy with how this worked out. There is just one small hiccup currently, which is related to an upstream jinja2 issue. After installing geospatial, I therefore downgraded jinja:
Of course, I had to try Leafmap and MovingPandas in action together. Therefore, I fired up one of the MovingPandas example notebook (here the example on clipping trajectories using polygons). As you can see, the integration is pretty smooth since Leafmap already support drawing GeoPandas GeoDataFrames and MovingPandas can convert trajectories to GeoDataFrames (both lines and points):
Geospatial also includes the new dask-geopandas library which I’m very much looking forward to trying out next.
Let’s not paraphrase it, QField 2.0 is here and it is taking professional GIS fieldwork to a completely new level.
Obviously, the big news in QField 2.0 is the integration with QFieldCloud BETA, but besides that, we've added a lot of new features and fixed plenty of bugs. If you are interested in all the details, you can scroll through the 2.0.x releases changelogs.
If you just want the major additions, here you go:
Changes
🚀 Features in 2.0
Support QFieldCloud ☁️
Support for the opening of projects and datasets directly from your favourite messenger app, browser, etc. on Android.
Support for opening ZIP compressed projects on Android.
Support for remote datasets via GDAL’s /vsicurl/ URIs
Greatly improved scale bar overlay
Incremental improvements to the user interface all across QField
🐛 Bug Fixes
For a detailed list of bug fixes, see all the 2.0.x release notes
With this feature, you can filter the point cloud data based on the classes or any other attributes. This is very similar to filtering available for vector layers.
Filtering data allows you superimpose for example building on top of the raster representation of your point cloud data:
Examples of filtering you can use:
Classification = 2 - only show ground points
ReturnNumber = 1 - only show the first return or ReturnNumber = NumberOfReturns for the last return
Z >= 10 AND Z <= 50 - only show a slice from the range of elevations
The filtering window also displays statistics of some of the parameters.
2D/3D Camera sync
When you navigate in the 2D map, you often want to see the 3D map view also updated and vice versa. This feature also allows you to view the extent and camera angle of your 3D map view on 2D map.
New point clouds styling method
There is a new 3D styling mode for point cloud which follows the 2D styling. This means you do not need to apply the same styling, e.g. Classification twice: once for the 2D map view and another for the 3D map view. Once you set the 3D style to follow 2D map, any changes in 2D map style will be automatically displayed in 3D map.
Camera and navigation improvements
This feature was funded by QGIS.org to improve 3D map navigation. Users can now better move, rotate both the map and camera. The 3D map navigation is now more inline with other applications like Google Earth.
Let’s not paraphrase it, QField 2.0 is here and it is taking professional GIS fieldwork to a completely new level.
TL;DR
After an intense development and testing period, we are ready, QField 2.0 is out.
QField 2.0 is packed with new features that will make your professional fieldwork even more efficient. You can get a taste of all you will be getting with this major update on QField’s changelog. Be aware, it will blow your mind…
Survey and digitise data in no time. QField is the professional mobile app for QGIS, allowing users to deploy their existing QGIS projects to the field.
Edit your data on the go. The seamless integration with QFieldCloud allows your team to work on your projects anywhere anytime.
Open a wide range of spatial data formats, connect to industry-leading spatial databases and consume standardised geowebservices.
The looks out of the and sees lots of
For Android, iOS and Windows tablets and mobiles. But also for Linux, macOS and Windows laptops and desktops.
QField can be installed basically anywhere and can help thanks to its simplicity even on desktop work. If you do not have it yet, get it now!
What mountain is Arctic Fox?
If you have been following QFields development, you might remember that we named each release after a mountain. We are very outdoorsy and this was a sort of tribute to the places we love. With each release, we had great fun looking for places that would be meaningful for us and our community. From beautiful mountains outside our window to the remotest island mountain on Earth and even further.
After Elbrus (0.5), Finsteraarhorn (0.6), Gonnus Mons (0.7), Hiendertelltihoren (0.8), Jungfraujoch (0.9), Kesch (0.10), Lucendro (0.11), Matterhorn (1.0 – 1.2), Ben Nevis (1.3), Olavtoppen (1.4), Piz Palü (1.5), Qinling (1.6), Rockies (1.7), Selma (1.8), Taivaskero (1.9) and Uluru (1.10), we decided to change the subject and for the 2.X series we’ll name the releases after cool animals that reflect different characteristics of QField.
The arctic fox is an incredibly hardy animal that can survive frigid Arctic temperatures as low as –50°C in the treeless lands where it makes its home. It has furry soles, short ears, and a short muzzle—all-important adaptations to the chilly clime. Arctic foxes live in burrows, and in a blizzard, they may tunnel into the snow to create shelter.
Like an Arctic Fox, QField is perfectly adapted to the outdoors and helps you get your data in the most efficient way possible.
Obviously, the big news in QField 2.0 is the integration with QFieldCloud BETA, but besides that, we’ve added a lot of new features and fixed plenty of bugs. If you are interested in all the details, you should go to the changelog page and check out all the new goodies. If you just want the major additions, here you go:
– Support for the opening of projects and datasets directly from your favourite messenger app, browser, etc. on Android.
– Support for opening ZIP compressed projects on Android.
– Support for remote datasets via GDAL’s /vsicurl/ URIs
– Greatly improved scale bar overlay
– Incremental improvements to the user interface all across QField
Cloudy with a chance of meatballs
QFieldCloud’s unique technology allows your team to focus on what’s important, making sure you efficiently get the best field data possible. Thanks to the tight integration with QField, you will be able to start surveying and digitising data in no time.
You can register directly from QField 2.0 or simply head to qfield.cloud and create your free account now.
What is QFieldCloud?
Seamless synchronisation
QFieldCloud is a synchronisation platform, that we offer as a service, which takes the pain out of syncing data from multiple data collectors. Thanks to seamless synchronization, your surveyors will be able to push their work anytime they want. Working in the wild? Your team can continue working with no limitations and sync back their changes once back in town.
Team management
QFieldCloud’s fine-grained permissions system allows you to efficiently define who can collaborate with you on your projects and what operations they are allowed to perform. You can for example add a junior surveyor as a reporter, a senior one as a project manager and you can even add users with read-only permissions.
Hosted or in your own cloud – open source
QFieldCloud perfectly integrates and extends your QGIS based geodata infrastructure, you can either subscribe for a worry-free Swiss-made solution hosted on Swiss data centres or contact us for your private cloud instance.
QFieldCloud code is open source so you can see what is actually happening to your data.
Known issues
Please note that on older AMRv7 architectures, some devices are suffering from a crash at launch. As such, we have not yet updated QField to 2.0 for these devices. If you own one such device and want to manually download and install QField, please visit the release page on GitHub.
Also, since November 2021, Google has enforced new storage access limitations for apps published on its Play store which prohibits direct storage access on Android 11 and above forcing QField to adapt and rely on importing projects and datasets to access those. As part of the enforcement of these new policies, Google came up with an arbitrary mechanism to whitelist some apps which allows those to retain full storage access given the user explicitly allowed for it. We here at OPENGIS.ch believe QField had ample justifications to be whitelisted, however, Google’s appeal process judged otherwise after a series of email exchanges detailing our reasoning. While we have so far lost this argument with Google, we will continue fighting for our users and for their freedom to choose. If you are interested in more details, read our blog post about it.
Join the effort
QField is an open-source project. It is free to share, use and modify and it will stay like that. We are very happy if this app helps you in whatever creative way you may use it. If you found it useful, we will be even happier if you could give something back. You can easily sponsor QField, contribute some help or ask us to develop a new feature.
In addition to the list above, we thank several anonymous donors who chose not to be listed.
If you have made a donation towards this work and your name or your organisation name does not appear here, please contact us ([email protected]).
3D view manager
Previously, if you closed a project with a 3D map view, the 3D map view and all its settings were lost when you reopen that project. So in QGIS 3.24 we’ve added a “3D map view manager” that takes care of listing, removing, renaming and duplicating 3D map views in your projects! We’ve also added a new “3D Map Views” menu, which contains all your created 3D map views for easy access.
To summarise, these are the advantages of this new feature:
Saving 3D map views within QGIS project (similar to other settings) and being able to retrieve the 3D view after closing (either the view or the project)
3D map view manager: which allows you to duplicate, rename and delete 3D map views
Dock/undock 3D views
3D map canvas panel was difficult to move, resize and often resulting in unwanted docking. With QGIS 3.24 we added the ability to switch 3D maps from a dockable widget to a top-level window (and back to a dock widget), so that these map views can now be managed, resized and moved just like a standard application window. In addition, you can now use 3D map view in full screen mode.
Respect Z ordering of point clouds in 2D
We’ve added an option to render point clouds according to their Z-order in 2D map views. With the new bottom-to-top ordering option enabled, points with larger Z values will cover lower points – resulting in the appearance of a true orthographic photo. There’s also an option for reverse sorting (top-to-bottom), where the scene appears as if viewed from below. This feature is available in QGIS 3.24
The image below displays the default Z ordering of a LAS file when loaded in QGIS:
The same layer with the ordering of Z switched to bottom-to-top:
Visualisation of point cloud as solid surfaces
With this feature you can render point cloud layer in the 3D view as solid surfaces generated by triangulation. The triangulation is available for all the 3D point cloud renderers: unique color, ramp color, classification and RGB. This feature will be available in QGIS 3.26 and you can try it in the current QGIS nightly/master.
We are extremely pleased to announce the four funded proposals for our 2022 QGIS.ORG grant programme. Funding for the programme was sourced by you, our project donors and sponsors! Note: For more context surrounding our grant programme, please see: QGIS Grants #7: Call for Grant Proposals 2022
MovingPandas 0.9rc3 has just been released, including important fixes for local coordinate support. Sports analytics is just one example of movement data analysis that uses local rather than geographic coordinates.
Many movement data sources – such as soccer players’ movements extracted from video footage – use local reference systems. This means that x and y represent positions within an arbitrary frame, such as a soccer field.
Since Geopandas and GeoViews support handling and plotting local coordinates just fine, there is nothing stopping us from applying all MovingPandas functionality to this data. For example, to visualize the movement speed of players:
Of course, we can also plot other trajectory attributes, such as the team affiliation.
But one particularly useful feature is the ability to use custom background images, for example, to show the soccer field layout: