Blog d’Anita Graser

https://anitagraser.com

  • 28 mars 2021Movement data in GIS #35: stop detection & analysis with MovingPandas
    In the last few days, there’s been a sharp rise in interest in vessel movements, and particularly, in understanding where and why vessels stop. Following the grounding of Ever Given in the Suez Canal, satellite images and vessel tracking data (AIS) visualizations are everywhere: The 224,000-ton shipping vessel, #EverGiven, seen here in this WorldView-2 #satellite image from March 26, 2021, blocking one of the world’s busiest waterways, the #SuezCanal, since Tuesday. pic.twitter.com/KDLoCqX1w8— Maxar Technologies (@Maxar) March 26, 2021 Animation showing how the grounded container ship brought the Suez Canal to a standstill. Huge thanks to @VesselsValue for supplying the data.Read @OilSheppard @harrydemps & @hebamks story https://t.co/9s1oQXwOlH#gistribe #dataviz pic.twitter.com/JRkwmhG0KJ— Steven Bernard (@sdbernard) March 24, 2021 Using movement data analytics tools, such as MovingPandas, we can dig deeper and explore patterns in the data. The MovingPandas.TrajectoryStopDetector is particularly useful in this situation. We can provide it with a Trajectory or TrajectoryCollection and let it detect all stops, that is, instances were the moving object stayed within a certain area (wi …
  • 17 mars 2021Movement data in GIS #34: a protocol for exploring movement data
    After writing “Towards a template for exploring movement data” last year, I spent a lot of time thinking about how to develop a solid approach for movement data exploration that would help analysts and scientists to better understand their datasets. Finally, my search led me to the excellent paper “A protocol for data exploration to avoid common statistical problems” by Zuur et al. (2010). What they had done for the analysis of common ecological datasets was very close to what I was trying to achieve for movement data. I followed Zuur et al.’s approach of a exploratory data analysis (EDA) protocol and combined it with a typology of movement data quality problems building on Andrienko et al. (2016). Finally, I brought it all together in a Jupyter notebook implementation which you can now find on Github. There are two options for running the notebook: The repo contains a Dockerfile you can use to spin up a container including all necessary datasets and a fitting Python environment. Alternatively, you can download the datasets manually and set up the Python environment using the provided environment.yml file. The dataset contains over 10 million location records. Most visualizations a …
  • 11 mars 2021Movement data in GIS #33: “Exploratory analysis of massive movement data” webinar

    Yesterday, I had the pleasure to speak at the RGS-IBG GIScience Research Group seminar. The talk presents methods for the exploration of movement patterns in massive quasi-continuous GPS tracking datasets containing billions of records using distributed computing approaches.

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

    and slides are available as well.


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

  • 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 …