﻿{"id":3223,"date":"2016-05-20T15:03:29","date_gmt":"2016-05-20T14:03:29","guid":{"rendered":"http:\/\/www.sigterritoires.fr\/?page_id=3223"},"modified":"2023-04-21T11:24:58","modified_gmt":"2023-04-21T09:24:58","slug":"blog-danita-graser","status":"publish","type":"page","link":"https:\/\/www.sigterritoires.fr\/index.php\/autres-blogs-sig\/blog-danita-graser\/","title":{"rendered":"Blog d&rsquo;Anita Graser"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/anitagraser.com\" target=\"_blank\" rel=\"noopener nofollow\" title=\"\">https:\/\/anitagraser.com<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><ul><!--via SimplePie with RSSImport--><li> <small>26 juillet 2026<\/small><a target=\"__blank\" href=\"https:\/\/anitagraser.com\/2026\/07\/26\/new-open-basemaps-for-austria\/\" title=\"New Open Basemaps for Austria\">New Open Basemaps for Austria<\/a><br \/>For many years now, we have been enjoying the basemap.at service with it\u2019s various basemap options (color, gray, with\/without labels, \u2026) in WMTS and vector tiles. Basemap.at Standard WMTS in QGIS (instructions here) For a few weeks now, there is an additional service by BEV: Their cartographic models \u201cKartographischen Modelle (KM)\u201d are now available as raster (KM-R) in COG-TIFF\u00a0format. Adding the COG-TIFF URI The downloads come with proper instructions: KM_QGIS_Anleitung_202603 including tips to switch to bilinear resampling for better rendering: BEV KM-R in QGIS Some vector (KM-V) in GeoPackages with QGIS projects providing the layer style and label settings are already available for the Stichtag 30.01.2026 downloads. And they look awesome: BEV KM-V project defaults And without labels KM-V downloads are provided in tiles, so it\u2019s not quite as simple as grabbing the COG URI: It\u2019s worth noting though, that the KM-V GeoPackages are still a work in progress and not all tiles are available for download yet. I\u2019ll keep an eye on the downloads to see when the rest of the tiles become available. Until then, I leave you with a couple of examples of the Gro\u00dfglockner (highest mountain in Aust &#8230; <\/li><li> <small>11 juillet 2026<\/small><a target=\"__blank\" href=\"https:\/\/anitagraser.com\/2026\/07\/11\/belem-salzburg-and-onwards\/\" title=\"Bel\u00e9m, Salzburg, and onwards\">Bel\u00e9m, Salzburg, and onwards<\/a><br \/>It\u2019s been a couple of busy weeks, with the QGIS 4.2 release and meetings and conferences all over the place before a few, hopefully quieter, weeks of summer break. QGIS The Austrian QGIS user group met online on 25 June to exchange experiences with different webmapping solutions, ranging from QGIS+Lizmap to QGIS Cloud. A few days later, QGIS 4.2 was released on 3 July 2026. This release is named Bel\u00e9m do Par\u00e1, after the Brazilian city that hosted both FOSS4G and a QGIS user meeting back in 2024. MundoGEO has the details on the naming, if you\u2019re curious about the backstory. Worth noting: 4.2 \u201cBel\u00e9m do Par\u00e1\u201d will be the next LTR, so if you\u2019re using the long-term release, this is the one to watch for. What I found interesting while designing the Bel\u00e9m splash screen was that historic maps of Bel\u00e9m don\u2019t have north at the top. Instead, they\u2019re rotated with north pointing either left or right. A nice little reminder that \u201cnorth-up\u201d is just a convention and not a law of cartography. Historic map of Bel\u00e9m used in the QGIS 4.2 splash screen. Source: https:\/\/commons.wikimedia.org\/w\/index.php?title=File:Planta_da_Cidade_de_Belem_do_Gram_Par%C3%A1_(ca._1773).jpg AGIT 2026 This week, I made my &#8230; <\/li><li> <small>10 janvier 2026<\/small><a target=\"__blank\" href=\"https:\/\/anitagraser.com\/2026\/01\/10\/notebooks-in-qgis\/\" title=\"Notebooks in QGIS\">Notebooks in QGIS<\/a><br \/>Finally it\u2019s here: Jupyter notebooks inside QGIS. I don\u2019t know about you but I\u2019ve been hoping for someone to get around to doing this for quite a while. Qiusheng Wu published the first version of the Notebook plugin on 26 Dec 2025. Late Christmas present?! For the setup, there\u2019s a handy tutorial by Hans van der Kwast and, additionally, Qiusheng published an intro video: Development is going fast (version 0.3.0 at the time of writing) so there will be new features when you install \/ update the plugin compared to both the tutorial and the video. The user interface is pretty stripped down with just a few buttons to add new code or markdown cells and to run them. And there is a neat drop-down menu with all kinds of ready-made code snippets to get you started: For other functionalities, for example, to delete cells, you need to right-click on the cell to access the function through the context menu. And, as far as I can tell, there is currently no way to rearrange cells (moving them up or down). I also haven\u2019t quite understood yet what kinds of outputs are displayed and which are not because \u2013 quite often \u2013 the cell output just stays empty, even though the same code generates output on &#8230; <\/li><li> <small>3 d\u00e9cembre 2025<\/small><a target=\"__blank\" href=\"https:\/\/anitagraser.com\/2025\/12\/03\/qgis-to-geopandas-part-3\/\" title=\"QGIS to (Geo)Pandas \u2013 part 3\">QGIS to (Geo)Pandas \u2013 part 3<\/a><br \/>The journey continues: QgsArrowIterator is now merged! This makes it possible to iterate over\u00a0QgsFeatures as Arrow batches. This is where we are now, quoting Dewey Dunnington: import geopandas from nanoarrow.c_array import allocate_c_array import qgis from qgis.core import QgsVectorLayer # Create a vector layer layer = QgsVectorLayer(\u00ab\u00a0tests\/testdata\/zonalstatistics\/polys.shp\u00a0\u00bb, \u00ab\u00a0layer_name\u00a0\u00bb, \u00ab\u00a0ogr\u00a0\u00bb) schema = qgis.core.QgsArrowIterator.inferSchema(layer) it = qgis.core.QgsArrowIterator(layer.getFeatures()) it.setSchema(schema, 1) c_array = allocate_c_array() schema.exportToAddress(c_array.schema._addr()) it.nextFeatures(5, c_array._addr()) print(geopandas.GeoDataFrame.from_arrow(c_array)) #> lev3_name geometry #> 0 poly_1 MULTIPOLYGON (((100.37934 -0.96049, 100.37934 &#8230; #> 1 poly_2 MULTIPOLYGON (((100.37944 -0.96044, 100.37955 &#8230; #> 2 poly_3 MULTIPOLYGON (((100.37938 -0.96049, 100.37949 &#8230; print(geopandas.read_file(\u00ab\u00a0tests\/testdata\/zonalstatistics\/polys.shp\u00a0\u00bb)) #> lev3_name geometry #> 0 poly_1 POLYGON ((100.37934 -0.96049, 100.37934 -0.960&#8230; #> 1 poly_2 POLYGON ((100.37944 -0.96044, 100.37955 -0.960&#8230; #> 2 poly_3 POLYGON ((100.37938 -0.96049, 100.37949 -0.960&#8230; Further improvemen &#8230; <\/li><li> <small>31 octobre 2025<\/small><a target=\"__blank\" href=\"https:\/\/anitagraser.com\/2025\/10\/31\/qgis-to-geopandas-follow-up\/\" title=\"QGIS to (Geo)Pandas follow-up\">QGIS to (Geo)Pandas follow-up<\/a><br \/>The conversation around Looking for better ways to convert between QGIS VectorLayer and (Geo)DataFrame is continuing over at https:\/\/fosstodon.org\/@underdarkGIS\/115442614331293320 What I\u2019ve learned so far: QgsVectorLayer.as_geopandas() has landed in QGIS master on 13 Oct 2025. There\u2019s also QgsVectorLayer.field_to_numpy() which will be useful for many applications and has landed on 29 Oct 2025. QgsArrowIterator is in the works right now. Exciting times for spatial data science tooling &#8230; <\/li><li> <small>26 octobre 2025<\/small><a target=\"__blank\" href=\"https:\/\/anitagraser.com\/2025\/10\/26\/looking-for-better-ways-to-convert-between-qgis-vectorlayer-and-geodataframe\/\" title=\"Looking for better ways to convert between QGIS VectorLayer and (Geo)DataFrame\">Looking for better ways to convert between QGIS VectorLayer and (Geo)DataFrame<\/a><br \/>Plugin developers who want to use (Geo)Pandas-based functionality in their plugins regularly face the challenge of converting QGIS vector layers to (Geo)DataFrames. There is currently no built-in convenience function. In Trajectools, so far, I have been performing the conversion manually, looping through all features and taking care of tricky column types, such as datetimes and geometries: def df_from_layer_trajectools(layer,time_field_name=\u00a0\u00bbt\u00a0\u00bb): # Original Trajectools 2.7 version names = [field.name() for field in layer.fields()] data = [] for feature in layer.getFeatures(): my_dict = {} for i, a in enumerate(feature.attributes()): if names[i] == time_field_name and isinstance(a, QDateTime): a = a.toPyDateTime() my_dict[names[i]] = a pt = feature.geometry().asPoint() my_dict[\u00ab\u00a0geom_x\u00a0\u00bb] = pt.x() my_dict[\u00ab\u00a0geom_y\u00a0\u00bb] = pt.y() data.append(my_dict) df = pd.DataFrame(data) return df It works (mostly), but it\u2019s far from fast. For the 25 million Geolife points, it takes 4 minutes: In an attempt to speed-up (and make the conversion more robust, e.g. regarding datetime\/timezone conversion and null values), I\u2019ve spent some time at SDSL2025 with Joris Van den Bossche trying a workaround that wri &#8230; <\/li><li> <small>12 octobre 2025<\/small><a target=\"__blank\" href=\"https:\/\/anitagraser.com\/2025\/10\/12\/geolife-gps-track-collection-processing-with-duckdb-qgis-trajectools\/\" title=\"Wrangling hundreds of GPS files with DuckDB, QGIS &amp; Trajectools\">Wrangling hundreds of GPS files with DuckDB, QGIS &amp; Trajectools<\/a><br \/>The last time I preprocessed the whole GeoLife dataset, I loaded it into <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/debuter-avec-postgrespostgis\/\">PostGIS<\/a>. Today, I want to share a new workflow that creates a (Geo)Parquet file and that is much faster. The dataset (GeoLife) \u201cThis GPS trajectory dataset was collected in (Microsoft Research Asia) Geolife project by 182 users in a period of over three years (from April 2007 to August 2012). A GPS trajectory of this dataset is represented by a sequence of time-stamped points, each of which contains the information of latitude, longitude and altitude. This dataset contains 17,621 trajectories with a total distance of about 1.2 million kilometers and a total duration of 48,000+ hours. These trajectories were recorded by different GPS loggers and GPS-phones, and have a variety of sampling rates. 91 percent of the trajectories are logged in a dense representation, e.g. every 1~5 seconds or every 5~10 meters per point.\u201d The GeoLife GPS Trajectories download contains 182 directories full of .plt files: Basically, CSV files with a custom header: Creating the (Geo)Parquet using DuckDB DuckDB installation Following the official instructions, installation is straightforward: curl https:\/\/install.duckdb.org | sh From th &#8230; <\/li><li> <small>25 juin 2025<\/small><a target=\"__blank\" href=\"https:\/\/anitagraser.com\/2025\/06\/25\/qgis-user-conf-2025-videos-have-landed\/\" title=\"QGIS User Conf 2025 videos have landed!\">QGIS User Conf 2025 videos have landed!<\/a><br \/>The QGISUC2025 team has done an awesome job recording and editing the conference presentations. All \u201cpresentation\u201d type talks where the presenter has accepted to be published are now available in a dedicated list on the QGIS Youtube channel. I also had the pleasure of presenting our Trajectools plugin and you can see this talk here: Thank you to all the organizers, speakers, and participants for the great time! &#8230; <\/li><li> <small>17 mai 2025<\/small><a target=\"__blank\" href=\"https:\/\/anitagraser.com\/2025\/05\/17\/speed-up-your-analytics-with-the-new-movingpandas-0-22-and-trajectools-2-6\/\" title=\"Speed up your analytics with the new MovingPandas 0.22 and Trajectools 2.6\">Speed up your analytics with the new MovingPandas 0.22 and Trajectools 2.6<\/a><br \/>The latest releases of MovingPandas and Trajectools come with many \u201cunder the hood\u201d changes that aim to make your movement analytics faster: Instead of immediately creating a GeoPandas GeoDataFrame and populating the geometry column with Point objects, MovingPandas now has \u201clazy geometry column creation\u201d that holds off on this operation until \/ if the geometries are actually needed. This way, for many operations, no geometry objects have to be generated at all. MovingPandas TrajectorySplitters now support parallel processing and Trajectools uses parallel processing whenever available (e.g. for adding speed &#038; direction metrics, detecting stops, splitting trajectories). When a minimum length is specified for trajectories, MovingPandas now avoids computing the total trajectory length and, instead, immediately stops once the threshold value has been reached (\u201cearly skip\u201d). Trajectools now offers the option to skip computation of movement metrics (speed &#038; direction). This way, we can skip unnecessary computations and leverage the lazy geometry column creation, wherever applicable. Let\u2019s have a look at some example performance measurements! Example 1: MovingPandas ValueChangeSplitter The &#8230; <\/li><li> <small>29 mars 2025<\/small><a target=\"__blank\" href=\"https:\/\/anitagraser.com\/2025\/03\/29\/the-quest-for-a-fair-timegpt-benchmark\/\" title=\"The quest for a fair TimeGPT benchmark\">The quest for a fair TimeGPT benchmark<\/a><br \/>At the end of yesterday\u2019s TimeGPT for mobility post, we concluded that TimeGPT\u2019s trainingset probably included a copy of the popular BikeNYC timeseries dataset and that, therefore, we were not looking at a fair comparison. Naturally, it\u2019s hard to find mobility timeseries datasets online that haven\u2019t been widely disseminated and therefore may have slipped past the scrapers of foundation model builders. So I scoured the Austrian open government data portal and came up with a bike-share dataset from Vienna. Dataset SharedMobility.ai dataset published by Philipp Naderer-Puiu, covering 2019-05-05 to 2019-12-31. Here are eight of the 120 stations in the dataset. I\u2019ve resampled the number of available bicycles to the maximum hourly value and made a cutoff mid August (before a larger data collection cap and the less busy autumn and winter seasons): Models To benchmark TimeGPT, I computed different baseline predictions. I used statsforecast\u2019s HistoricAverage, SeasonalNaive, and AutoARIMA models and computed predictions for horizons of 1 hour, 12 hours, and 24 hours. Here are examples of the 12-hour predictions: We can see how Historic Average is pretty much a straight line of the average pa &#8230; <\/li><\/ul><\/p>\n","protected":false},"excerpt":{"rendered":"<p>https:\/\/anitagraser.com<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":3191,"menu_order":50,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"sfsi_plus_gutenberg_text_before_share":"","sfsi_plus_gutenberg_show_text_before_share":"","sfsi_plus_gutenberg_icon_type":"","sfsi_plus_gutenberg_icon_alignemt":"","sfsi_plus_gutenburg_max_per_row":"","_monsterinsights_skip_tracking":false,"footnotes":""},"class_list":["post-3223","page","type-page","status-publish","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"https:\/\/anitagraser.com\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"google-site-verification\" content=\"ByXHZUbGNn7RNv-Xk5A-ysTZrM65VLIO2RxfSJ2nIEQ\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/autres-blogs-sig\/blog-danita-graser\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Blog SIG &amp; Territoires | le portail des professionnels du SIG\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Blog d\u2019Anita Graser | Blog SIG &amp; Territoires\" \/>\n\t\t<meta property=\"og:description\" content=\"https:\/\/anitagraser.com\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.sigterritoires.fr\/index.php\/autres-blogs-sig\/blog-danita-graser\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2016-05-20T14:03:29+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2023-04-21T09:24:58+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/atilio.francois\/\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@SigTerritoires\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Blog d\u2019Anita Graser | Blog SIG &amp; Territoires\" \/>\n\t\t<meta name=\"twitter:description\" content=\"https:\/\/anitagraser.com\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@SigTerritoires\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/autres-blogs-sig\\\/blog-danita-graser\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.sigterritoires.fr\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/autres-blogs-sig\\\/#listItem\",\"name\":\"Autres blogs SIG\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/autres-blogs-sig\\\/#listItem\",\"position\":2,\"name\":\"Autres blogs SIG\",\"item\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/autres-blogs-sig\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/autres-blogs-sig\\\/blog-danita-graser\\\/#listItem\",\"name\":\"Blog d&rsquo;Anita Graser\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/autres-blogs-sig\\\/blog-danita-graser\\\/#listItem\",\"position\":3,\"name\":\"Blog d&rsquo;Anita Graser\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/autres-blogs-sig\\\/#listItem\",\"name\":\"Autres blogs SIG\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/#person\",\"name\":\"Atilio Francois\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/autres-blogs-sig\\\/blog-danita-graser\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f76dc2a720162999bce81d6c99b6d7b9517d6600ad7ceb5ed5268f02cefaa0ee?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Atilio Francois\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/autres-blogs-sig\\\/blog-danita-graser\\\/#webpage\",\"url\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/autres-blogs-sig\\\/blog-danita-graser\\\/\",\"name\":\"Blog d\\u2019Anita Graser | Blog SIG & Territoires\",\"description\":\"https:\\\/\\\/anitagraser.com\",\"inLanguage\":\"fr-FR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/autres-blogs-sig\\\/blog-danita-graser\\\/#breadcrumblist\"},\"datePublished\":\"2016-05-20T15:03:29+02:00\",\"dateModified\":\"2023-04-21T11:24:58+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/#website\",\"url\":\"https:\\\/\\\/www.sigterritoires.fr\\\/\",\"name\":\"Blog SIG & Territoires\",\"description\":\"le portail des professionnels du SIG\",\"inLanguage\":\"fr-FR\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Blog d\u2019Anita Graser | Blog SIG & Territoires","description":"https:\/\/anitagraser.com","canonical_url":"https:\/\/www.sigterritoires.fr\/index.php\/autres-blogs-sig\/blog-danita-graser\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"ByXHZUbGNn7RNv-Xk5A-ysTZrM65VLIO2RxfSJ2nIEQ","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/www.sigterritoires.fr\/index.php\/autres-blogs-sig\/blog-danita-graser\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr#listItem","position":1,"name":"Home","item":"https:\/\/www.sigterritoires.fr","nextItem":{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr\/index.php\/autres-blogs-sig\/#listItem","name":"Autres blogs SIG"}},{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr\/index.php\/autres-blogs-sig\/#listItem","position":2,"name":"Autres blogs SIG","item":"https:\/\/www.sigterritoires.fr\/index.php\/autres-blogs-sig\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr\/index.php\/autres-blogs-sig\/blog-danita-graser\/#listItem","name":"Blog d&rsquo;Anita Graser"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr\/index.php\/autres-blogs-sig\/blog-danita-graser\/#listItem","position":3,"name":"Blog d&rsquo;Anita Graser","previousItem":{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr\/index.php\/autres-blogs-sig\/#listItem","name":"Autres blogs SIG"}}]},{"@type":"Person","@id":"https:\/\/www.sigterritoires.fr\/#person","name":"Atilio Francois","image":{"@type":"ImageObject","@id":"https:\/\/www.sigterritoires.fr\/index.php\/autres-blogs-sig\/blog-danita-graser\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/f76dc2a720162999bce81d6c99b6d7b9517d6600ad7ceb5ed5268f02cefaa0ee?s=96&d=mm&r=g","width":96,"height":96,"caption":"Atilio Francois"}},{"@type":"WebPage","@id":"https:\/\/www.sigterritoires.fr\/index.php\/autres-blogs-sig\/blog-danita-graser\/#webpage","url":"https:\/\/www.sigterritoires.fr\/index.php\/autres-blogs-sig\/blog-danita-graser\/","name":"Blog d\u2019Anita Graser | Blog SIG & Territoires","description":"https:\/\/anitagraser.com","inLanguage":"fr-FR","isPartOf":{"@id":"https:\/\/www.sigterritoires.fr\/#website"},"breadcrumb":{"@id":"https:\/\/www.sigterritoires.fr\/index.php\/autres-blogs-sig\/blog-danita-graser\/#breadcrumblist"},"datePublished":"2016-05-20T15:03:29+02:00","dateModified":"2023-04-21T11:24:58+02:00"},{"@type":"WebSite","@id":"https:\/\/www.sigterritoires.fr\/#website","url":"https:\/\/www.sigterritoires.fr\/","name":"Blog SIG & Territoires","description":"le portail des professionnels du SIG","inLanguage":"fr-FR","publisher":{"@id":"https:\/\/www.sigterritoires.fr\/#person"}}]},"og:locale":"fr_FR","og:site_name":"Blog SIG &amp; Territoires | le portail des professionnels du SIG","og:type":"article","og:title":"Blog d\u2019Anita Graser | Blog SIG &amp; Territoires","og:description":"https:\/\/anitagraser.com","og:url":"https:\/\/www.sigterritoires.fr\/index.php\/autres-blogs-sig\/blog-danita-graser\/","article:published_time":"2016-05-20T14:03:29+00:00","article:modified_time":"2023-04-21T09:24:58+00:00","article:publisher":"https:\/\/www.facebook.com\/atilio.francois\/","twitter:card":"summary","twitter:site":"@SigTerritoires","twitter:title":"Blog d\u2019Anita Graser | Blog SIG &amp; Territoires","twitter:description":"https:\/\/anitagraser.com","twitter:creator":"@SigTerritoires"},"aioseo_meta_data":{"post_id":"3223","title":null,"description":null,"keywords":[],"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":[],"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2020-12-21 13:56:48","updated":"2025-06-04 15:59:36","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.sigterritoires.fr\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.sigterritoires.fr\/index.php\/autres-blogs-sig\/\" title=\"Autres blogs SIG\">Autres blogs SIG<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tBlog d\u2019Anita Graser\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.sigterritoires.fr"},{"label":"Autres blogs SIG","link":"https:\/\/www.sigterritoires.fr\/index.php\/autres-blogs-sig\/"},{"label":"Blog d&rsquo;Anita Graser","link":"https:\/\/www.sigterritoires.fr\/index.php\/autres-blogs-sig\/blog-danita-graser\/"}],"jetpack_shortlink":"https:\/\/wp.me\/P6XU0A-PZ","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/pages\/3223","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/comments?post=3223"}],"version-history":[{"count":0,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/pages\/3223\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/pages\/3191"}],"wp:attachment":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media?parent=3223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}