Blog d’Anita Graser

https://anitagraser.com

  • 25 février 2021Video recommendations from FOSDEM 2021
    The Geospatial Dev Room at FOSDEM 2021 was a great event that (virtually) brought together a very diverse group of geo people. All talk recordings are now available publicly at: fosdem.org/2021/schedule/track/geospatial In line with the main themes of this blog, I’d particularly like to highlight the following three talks: MoveTK: the movement toolkit A library for understanding movement by Aniket Mitra Telegram Bot For Navigation: A perfect map app for a neighbourhood doesn’t need a map by Ilya Zverev Spatial data exploration in Jupyter notebooks by yours truly …
  • 12 février 2021Movement data in GIS #32: “Exploring movement data” webinar

    Last October, I had the pleasure to speak at the Uni Liverpool’s Geographic Data Science Lab Brown Bag Seminar. The talk starts with examples from different movement datasets that illustrate why we need data exploration to better understand our datasets. Then we dive into different options for exploring movement data before ending on ongoing challenges for future development of the field.

    Here’s the full recording of my talk and follow-up discussion:


    This post is part of a series. Read more about movement data in GIS.

  • 11 février 2021Introducing the open data analysis OGD.AT Lab
    Data sourcing and preparation is one of the most time consuming tasks in many spatial analyses. Even though the Austrian data.gv.at platform already provides a central catalog, the individual datasets still vary considerably in their accessibility or readiness for use. OGD.AT Lab is a new repository collecting Jupyter notebooks for working with Austrian Open Government Data and other auxiliary open data sources. The notebooks illustrate different use cases, including so far: Accessing geodata from the city of Vienna WFS Downloading environmental data (heat vulnerability and air quality) Geocoding addresses and getting elevation information Exploring urban movement data Data processing and visualization are performed using Pandas, GeoPandas, and Holoviews. GeoPandas makes it straighforward to use data from WFS. Therefore, OGD.AT Lab can provide one universal gdf_from_wfs() function which takes the desired WFS layer as an argument and returns a GeoPandas.GeoDataFrame that is ready for analysis: Launch this notebook in: https://mybinder.org/v2/gh/anitagraser/ogd-at-lab/v0.1?urlpath=lab/tree/notebooks/wien-ogd.ipynb Many other datasets are provided as CSV files which need to be joined …
  • 13 décembre 2020Spatial data exploration with linked plots
    In the previous post, we explored how hvPlot and Datashader can help us to visualize large CSVs with point data in interactive map plots. Of course, the spatial distribution of points usually only shows us one part of the whole picture. Today, we’ll therefore look into how to explore other data attributes by linking other (non-spatial) plots to the map. This functionality, referred to as “linked brushing” or “crossfiltering” is under active development and the following experiment was prompted by a recent thread on Twitter launched by @plotlygraphs announcement of HoloViews 1.14: Dash HoloViews was just released as part of @HoloViews version 1.14! $ 𝘱𝘪𝘱 𝘪𝘯𝘴𝘵𝘢𝘭𝘭 𝘩𝘰𝘭𝘰𝘷𝘪𝘦𝘸𝘴==1.14 Automatically link selections across multiple plots (crossfiltering) Display #BigData using #Datashader@jonmease’s post: https://t.co/FEID3aHW2X — plotly (@plotlygraphs) December 3, 2020 https://platform.twitter.com/widgets.js Turns out these features are not limited to plotly but can also be used with Bokeh and hvPlot: It’ll even work for hvPlot output. Would definitely be interested to see how it interacts with the geometries you usually work with. — Philipp Rudiger (@PhilippJFR) December 4, 2020 https://pl …
  • 6 décembre 2020Plotting large point CSV files quickly & interactively
    Even with all their downsides, CSV files are still a common data exchange format – particularly between disciplines with different tech stacks. Indeed, “How to Specify Data Types of CSV Columns for Use in QGIS” (originally written in 2011) is still one of the most popular posts on this blog. QGIS continues to be quite handy for visualizing CSV file contents. However, there are times when it’s just not enough, particularly when the number of rows in the CSV is in the range of multiple million. The following example uses a 12 million point CSV: To give you an idea of the waiting times in QGIS, I’ve run the following script which loads and renders the CSV: from datetime import datetime def get_time(): t2 = datetime.now() print(t2) print(t2-t1) print(‘Done :)’) canvas = iface.mapCanvas() canvas.mapCanvasRefreshed.connect(get_time) print(‘Starting …’) t0 = datetime.now() print(t0) print(‘Loading CSV …’) uri = « file:///E:/Geodata/AISDK/raw_ais/aisdk_20170701.csv?type=csv&xField=Longitude&yField=Latitude&crs=EPSG:4326& » vlayer = QgsVectorLayer(uri, « layer name you like », « delimitedtext ») t1 = datetime.now() print(t1) print(t1 – t0) print(‘Rendering …’) QgsProject.ins …
  • 5 décembre 2020Dashboards in QGIS
    If you are following QGIS topics on social media, you may have already seen this but if you don’t, I recommend having a look at Tim Sutton’s most recent adventures in building dashboards with QGIS: Another dashboard update! This adds a new font attribute to the dashboard table and adds column icons. Needs the free UN-OCHA glyph font icons: https://t.co/KAZigpo90W Latest GeoPackage containing all the logic for the above image is available here:https://t.co/QgfLaDZpIs pic.twitter.com/EFxvVuLsYx — Tim Sutton (@timlinux) December 1, 2020 The dashboard is built using labeling and geometry generator functionality. This means that they work in the QGIS application map window as well as in layouts. As hinted at in the screenshot above, the dashboard can show information about whole layers as well as interactive selections. Here’s a full walk-through Tim published yesterday: You can follow the further development via Tim’s tweets or the dedicated Github issue (where you can even find an example QGIS dashboard project in a GeoPacakge for download). …
  • 17 octobre 2020More icons & symbols for QGIS – updated
    The 2016 post More icons & symbols for QGIS still regularly makes it to the top 10 list of posts by visitors. I wouldn’t attribute this popularity to the quality of this particular post, however. Instead, it’s a pretty clear sign that QGIS users are actively searching for more styling resources to add to their installations. When it comes to styling resources, the person to follow right now is clearly Klas Karlsson who’s been keeping a steady stream of styling-related posts coming to Twitter: Created a style for manually placed measurements in #QGIS.This actually works better than expected.Turn on snapping. « click-click », and it’s done. (well more or less…)https://t.co/x9JNloGPNk pic.twitter.com/w4xw0ctUio — Klas Karlsson (@klaskarlsson) September 12, 2020 https://platform.twitter.com/widgets.js Using aggregate() with ‘collect’ doesn’t really aggregate all geometries… Am I missing something or should I file a bug report.(two layers, aggregate on green layer, not collecting all geometries in aggregate layer) pic.twitter.com/dYaLzQX51i — Klas Karlsson (@klaskarlsson) August 30, 2020 https://platform.twitter.com/widgets.js Additionally, he’s the master-mind behind QGIS Hub, a – curren …
  • 26 septembre 2020MovingPandas v0.5 released!
    The latest v0.5 release is now available from conda-forge. New features include: Stop detection and trajectory splitting at stops Improved CRS handling and warnings when CRS is missing As always, all tutorials are available on MyBinder:   Detected stops (left) and trajectory split at stops (right) …
  • 12 septembre 2020Sol Katz Award – Thank you
    On Thursday, I was awarded the 2020 Sol Katz award for Free and Open Source Software for Geospatial. I feel very honored to have been selected for this award and I’d like to take this opportunity to share a few words of thanks: As people working in open source projects, we are constantly reminded that we are all standing on the shoulders of giants. However, particularly this year, we also see just how important small personal connections are. For me, my involvement with open source communities really took off when I joined the QGIS hackfest in Vienna in 2009 and I felt that my participation was really appreciated and welcome. I couldn’t imagine being without these connections anymore. Thank you to the whole QGIS community, particularly my fellow PSC members both current and former: Tim, Andreas, Jürgen, Richard, Paolo, Otto, Marco Hugentobler, Alessandro, our new chair Marco Bernasocchi, and of course QGIS founder Gary Sherman for starting this awesome project and for still being around and actively promoting geospatial open source by publishing so many great books covering multiple different OSGeo projects. I’d also like to thank my partner and my family for being incredibly under …
  • 23 août 2020Extracting trajectory-based flows between M³ prototypes
    Rendering large sets of trajectory lines gets messy fast. Different aggregation approaches have been developed to address this issue. However, most approaches, such as mobility graphs or generalized flow maps, cannot handle large input datasets. Building on M³ prototypes, the following approach can be used in distributed computing environments to extracts flows from large datasets.  This is part 3 of “Exploring massive movement datasets”. This flow extraction is based on a two-step process, conceptually similar to Andrienko flow maps: first, we extract M³ prototypes from the movement data. In the second step, we determine flows between these prototypes, including information about: distribution of travel speeds and number of observed transitions. The resulting flows can be visualized, for example, to explore the popularity of different paths of movement: After the prototypes have been computed, the flow algorithm computes transitions between pairs of prototypes. An object moving from prototype A to prototype B triggers an update of the corresponding flow. To allow for distributed processing, each node in the distributed computing environment needs a copy of the previously computed …