Blog d’Anita Graser

https://anitagraser.com

  • 27 juin 2021QGIS Atlas on steroids
    Today’s post is a video recommendation. In the following video, Alexandre Neto demonstrates an exciting array of tips, tricks, and hacks to create an automated Atlas map series of the Azores islands. Highlights include: 1. A legend that includes automatically updating statistics 2. A way to support different page sizes 3. A solution for small areas overshooting the map border You’ll find the video on the QGIS Youtube channel: This video was recorded as part of the QGIS Open Day June edition. QGIS Open Days are organized monthly on the last Friday of the month. Anyone can take part and present their work for and with QGIS. For more details, see https://github.com/qgis/QGIS/wiki#qgis-open-day …
  • 4 juin 2021MovingPandas v0.7 released!
    The latest v0.7 release is now available from conda-forge. New features include: Functions to convert Trajectories to GeoDataFrames (points, line segments, or whole trajectories)Clip and intersection now return TrajectoryCollection objects As always, all tutorials are available from the movingpandas-examples repository and on MyBinder: …
  • 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 …