Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
Un Planet est un site Web dynamique qui agrège le plus souvent sur une seule page, le contenu de notes, d'articles ou de billets publiés sur des blogs ou sites Web afin d'accentuer leur visibilité et de faire ressortir des contenus pertinents aux multiples formats (texte, audio, vidéo, Podcast). C'est un agrégateur de flux RSS. Il s'apparente à un portail web.
Vous pouvez lire le billet sur le blog La Minute pour plus d'informations sur les RSS !
  • Canaux
  • Categories
  • Tags
  • Canaux

    4013 éléments (11 non lus) dans 54 canaux

    Dans la presse Dans la presse

    blog (2 non lus)

     
    • sur Les requêtes d’élévation dans Giro3D

      Publié: 4 October 2024, 6:27am CEST par Sébastien Guimmara
      Pièce jointe: [télécharger]

      Cet article concerne des fonctionnalités publiées avec la version 0.36 de Giro3D.

      Giro3D 0.36 introduit un système de requêtes d’élévation sur les Maps. Nous allons explorer cette API ainsi que quelques cas d’usages typiques.

      Pré-requis: les couches d’élévation

      Pour bénéficier de l’API de requêtes d’élévation, une Map doit être dotée d’une couche d’élévation. Les couches d’élévation peuvent lire des données de sources diverses, comme des GeoTIFF ou des couches tuilées (comme celles fournies par l’IGN ou Mapbox).

      Requêter une élévation sur une coordonnée

      Une fois notre Map et notre couche d’élévation prêtes, nous pouvons commencer à requêter les élévations. Cela passe par la méthode getElevation().

      // Mont-Blanc
      const coordinates = new Coordinates('EPSG:4326', 6.864594, 45.833641);
      
      const elevationResult = map.getElevation({ coordinates });

      getElevation() ne renvoie pas directement une valeur unique, mais un objet contenant une série d’échantillons (samples). Nous pouvons ordonner ces échantillons par résolution, puis récupérer celui ayant la meilleure résolution.

      if (result.samples.length > 0) {
          result.samples.sort((a, b) => a.resolution - b.resolution);
      
          const best = result.samples[0];
          const elevation = best.elevation;
      
          console.log(`Elevation for coordinate: ${elevation} m`);
      }

      Il est ainsi possible de requêter plusieurs Maps simultanément, d’agréger leurs échantillons, puis de récupérer le meilleur.

      Requêter plusieurs maps ?

      Dans un contexte typique, une scène ne contient qu’une seule map. Mais il existe des scénarios ou plusieurs map dotées de données d’élévation sont présentes simultanément dans une scène, voire se chevauchent.

      C’est le cas par exemple d’une scène contenant une mosaïque hétérogène de rasters d’élévation (chacun étant réprésenté par une Map). Dans ce cas nous devrons créer un objet pour stocker les résultats plutôt que de laisser getElevation() le faire pour nous, puis requêter toutes les map en leur passant cet objet:

      const coordinates = new Coordinates('EPSG:4326', 6.864594, 45.833641);
      
      const result = { samples: [], coordinates: options.coordinates };
      
      for (const map of allMaps) {
          map.getElevation({ coordinates }, result);
      }
      
      if (result.samples.length > 0) {
          result.samples.sort((a, b) => a.resolution - b.resolution);
      
          const best = result.samples[0];
          const elevation = best.elevation;
      
          console.log(`Best sample for coordinate: ${elevation} m`);
      }
      Positionner des labels sur un terrain

      Pour en savoir plus, voir l’exemple complet sur le site de Giro3D.

      Un cas d’usage typique des requêtes d’élévation est le positionnement de labels sur le terrain. Supposons que nous voulions mettre une label au sommet du Mont-Blanc, mais que nous ne disposions que de sa latitude et longitude et pas son élévation:

      const labelObject = new CSS2DObject(/** options */);
      
      // Mont-Blanc
      const coordinates = new Coordinates('EPSG:4326', 6.864594, 45.833641).as('EPSG:3857');
      
      labelObject.position.setX(coordinates.x);
      labelObject.position.setY(coordinates.y);
      
      // ... After elevation query on the coordinates
      
      labelObject.position.setZ(elevation);

      Il est ainsi possible de positionner rapidement un grand nombre d’objets à la surface du terrain.

      Positionnement de labels sur le terrain

      Positionnement de labels sur le terrain

      Limites

      La requête d’élévation ne lit que les données actuellement présentes en mémoire, et ne fait aucune requête [HTTP.] Les données chargées dépendent du point de vue actuel : si la caméra est très éloignée du terrain, des données de faible résolution seront chargées. Cela peut avoir un impact sur la qualité du positionnement, notamment lorsque l’on se rapproche.

      Pour pallier à ce problème, il suffit de procéder à une nouvelle requête d’élévation lorsque les données actuellement chargées changent. Nous pouvons pour cela ajouter un listener sur l’événement de changement d’élévation de la map, et mettre à jour les labels situées dans la zone de mise à jour (extent).

      function updateLabels(extent) {
          // Code
      }
      
      map.addEventListener('elevation-changed', ({ extent }) => updateLabels(extent));
      Créer un profil d’élévation

      Pour en savoir plus, voir l’exemple complet sur le site de Giro3D.

      Un autre scénario typique faisant usage des requêtes d’élévation est bien sûr le profil d’élévation. Il est relativement simple de créer un profil d’élévation en utilisant 3 composants:

      • les requêtes d’élévation
      • les outils de dessins Giro3D que nous avons présentés dans un article précédent.
      • la librairie chart.js
      Dessin d'un profil d'élévation

      Dessin d’un profil d’élévation

      Le profil est créé en requ?tant des dizaines, voire centaines d’élévations en un temps très court (moins d’une seconde généralement).

      Bien sûr, les mêmes limites s’appliquent: il s’agit de requêter uniquement les données chargées, et aucune requête HTTP supplémentaire n’est effectuée par Giro3D. Il s’agit donc d’un cas idéal pour fournir aux utilisateurs un aperçu très rapide sans surcharger les serveurs.

      Les performances

      Les requêtes d’élévation sont généralement très rapides: de l’ordre de la dizaine de millisecondes.

      Dans l’exemple Giro3D des profils">[https:] d’élévation, les 200 échantillons sont obtenus en moins de 200 millisecondes. Un profil de 10 000 échantillons est réalisé en moins de 400 millisecondes.

      Conclusion

      Les requêtes d’élévation sont un moyen souple et performant de combler le fossé entre la géomatique 2D et 3D, sans nécessiter de service additionnel de type OGC WPS.

    • sur Nouveau dans QGIS 3.40 : Le support CMJN

      Publié: 2 October 2024, 6:41am CEST par Julien Cabieces

      Crédits : Bru-nO (Pixabay Content License)

      Grâce au financement de la Métropole de Bordeaux, j’ai eu la chance de travailler sur le support du CMJN (Cyan Magenta Jaune Noir, CMYK en anglais) dans QGIS. L’objectif de la métropole est de faire tomber la dernière barrière empêchant leur migration complète depuis ArcGIS vers QGIS.

      Les développements sont maintenant terminés et seront disponibles dans la version 3.40 de QGIS, prévue pour être publiée en octobre 2024, avant de devenir la prochaine LTR en février 2025. Il est cependant à noter que le support du CMJN ne sera complet que dans les versions de QGIS construites avec Qt 6 (version encore non officielle) pour des raisons expliquées dans l’article. Sur Windows, cette version n’est actuellement installable qu’en utilisant OSGeo4W (version qgis-qt6-dev).

      C’est quoi le CMJN ?

      Vous connaissez certainement le RVB qui permet de coder une couleur sur écran en choisissant la quanté de rouge, vert et bleu de cette couleur. Il est aussi possible que vous utilisiez le TSL ou TSV.

      RVB – Crédits : Daniel Roberts (Pixabay Content License)

      Ces 3 référentiels de couleurs permettent de coder une couleur pour un écran, le CMJN cible quant à lui les imprimantes en permettant de saisir la quantité exacte d’encre qui sera libérée lors de l’impression (d’où les 4 composantes CMJN, une par cartouche d’encre).

       

      CMJN ( ici de gauche à droite, NCMJ ) – Crédits : Magnascan (Pixabay Content License)

      Les caractéristiques du CMJN diffèrent fortement du RVB, on parle notamment de mode colorimétrique soustractif, car l’encre absorbe la lumière au contraire du RVB qui est dit additif, plus vous avez de rouge, vert, bleu plus vous vous rapprochez de la pleine lumière, le blanc.

      La nature intrinsèquement différente de ces 2 espaces colorimétriques font qu’il est fortement déconseillé de convertir l’un vers l’autre. Le mieux est de choisir une couleur dans un espace (CMJN pour l’impression, RGB pour le rendu sur écran) et de s’y tenir.

      Pire, l’impression d’une même couleur est différente selon l’imprimante, l’encre, le papier… Le choix d’une couleur CMJN se fait dans un espace de couleur, représenté par un fichier de profil ICC, fourni par votre imprimeur. C’est un peu l’équivalent d’un nuancier utilisé lors d’un choix de peinture.

       

      Vous pouvez maintenant vous écharper sur la VRAIE bonne couleur d’une ligne de route – Crédits : Yanis Ladjouzi (Pixabay Content License)

      Implémentation dans QGIS… et Qt

      Suite aux développements, il est maintenant possible dans QGIS de :

      • Saisir des couleurs au format CMJN, et en précision flottante ;
      • Définir son mode de couleur préférentiel (RVB ou CMJN) et son espace de couleur ;
      • Générer un fichier au format PDF/X-4 (prêt pour l’impression) embarquant un espace de couleur et utilisant des couleurs CMJN ;
      • Permettre au moteur d’expression de manipuler des couleurs CMJN sans les convertir en RVB ;
      • Gérer les rampes de couleurs CMJN ;
      • Plein d’autres petites améliorations et corrections autour de la thématique des couleurs.

       

      Selection des couleurs dans QGIS en CMJN

      La belle histoire de l’Open source

      J’ai pris un grand plaisir à participer à ce développement car il est le fruit de la collaboration de nombreux acteurs du logiciel libre.

      Lors d’une première phase d’étude concernant le support du CMJN dans QGIS, on identifie rapidement que Qt, le cadriciel (framework) utilisé par QGIS pour le rendu des cartes, présente des limitations. Il convertit toutes les couleurs en RVB lors du rendu des cartes au format PDF et son support des espaces de couleurs CMJN est incomplet.

      Il est donc nécessaire de le faire évoluer. Nous nous adressons donc à notre partenaire privilégié lorsqu’il s’agit de Qt, KDAB, et plus précisément Giuseppe D’Angelo qui réalise alors les développements nécessaires.

      S’agissant de nouvelles fonctionnalités, ces dernières sont disponibles uniquement dans Qt 6 (Qt 5 est en fin de vie). C’est pour cette raison que le support du CMJN est incomplet dans les versions officielles de QGIS reposant encore sur Qt 5.

      QGIS.org, l’association qui chapeaute le projet QGIS, a décidé de financer les développements sur Qt, charge ensuite à Oslandia de piloter ces développements puis de réaliser l’intégration dans QGIS. Cette intégration ainsi que les évolutions fonctionnelles afférentes été financé par la métropole de Bordeaux.

      Mes développements ont ensuite été relus par d’autres contributeurs QGIS. (Si vous voulez en savoir plus sur le processus de contribution QGIS, vous pouvez lire un précédent billet de blog sur la qualité logicielle dans QGIS)

      Enfin, je tenais à remercier spécialement Jehan, développeur sur le projet GIMP. Sa disponibilité et son exhaustivité dans nos correspondances électroniques m’ont grandement aidé à comprendre les enjeux à la fois techniques et fonctionnels du CMJN, et ont très certainement contribué à la qualité du résultat obtenu.

      La suite

      QGIS 3.40 sera donc capable de générer un fichier PDF/X-4 utilisant des couleurs CMJN. Qt, de son côté, améliore le support du CMJN, l’écriture PDF, et la gestion des espaces de couleurs.

      Encore merci à la métropole de Bordeaux et QGIS.org pour avoir financé ces développements, et toutes les personnes impliqués dans la réalisation de ceux ci.

      Nous serions ravis d’avoir des retours d’utilisateurs sur vos cas d’utilisation liés à la gestion des couleurs dans QGIS. N’hésitez pas à nous écrire ou à commenter nos posts pour nous dire comment vous utilisez ces fonctionnalités.

      Ces fondations dans la gestion des espaces colorimétriques dans QGIS ouvrent la porte à de futurs perfectionnements. Si le sujet vous intéresse et que vous souhaitez contribuer, n’hésitez pas à nous contacter à infos+qgis@oslandia.com et consulter notre offre de support à QGIS.

    • sur Mappery: A Wild Map in a Nuclear Bunker

      Publié: 1 October 2024, 11:00am CEST
      Pièce jointe: [télécharger]

      Rollo spotted this Mapsinthewild in a late 1940’s nuclear bunker operations room in York with the ‘most advanced map of the time’ laid out. This facility was designed to monitor impact and fall out. It would support a team of 60 for 30 days underground…. apparently design was out dated almost immediately (1950) but was still manned for 30 years!!!!

      And here is the 1980’s tech update …

    • sur Mappery: Battersea Park Playground

      Publié: 30 September 2024, 11:00am CEST
      Pièce jointe: [télécharger]

      The Geomob speaker, known as the Geospatial Index, shared this picture from a Battersea Park playground in London.

    • sur Paul Ramsey: Cancer 12

      Publié: 30 September 2024, 2:00am CEST

      Back to entry 1

      I was glancing at the New York Times and saw that Catherine, the Princess of Wales, had released an update on her treatment. And I thought, “wow, I hope she’s doing well”. And then I thought, “wow, I bet she gets a lot of positive affirmation and support from all kinds of people”.

      I mean, she’s a princess.

      Priness Katherine

      Even us non-princesses, we need support too, and I have to say that I have been blown away by how kind the people around me in my life have been. And also how kind the other folks who I have never really talked with before have been.

      I try to thank my wife as often as I can. It is hard not to feel like a burden when I am, objectively, a burden, no matter how much she avers I am not. I am still not fully well (for reasons), and I really want to be the person she married, a helpful full partner. It is frustrating to still be taking more than I’m giving.

      From writing about my experience here, I have heard from other cancer survivors, and other folks who have travelled the particular path of colorectal cancer treatment. Some of them I knew from meetings and events, some from their own footprint on the internet, some of them were new to me. But they were all kind and supportive and it really helped, in the dark and down times.

      From my work on the University of Victoria Board of Governors, I have come to know a lot of people in the community there, and they were so kind to me when I shared my diagnosis. My fellow board members stepped in and took on the tasks I have not been able to do the past few months, and the members of the executive and their teams were so generous in sending their well-wishes.

      And finally, my employers at Crunchy Data were the best. Like above and beyond. When I told them the news they just said “take as much time as you need and get better”. And they held to that. My family doctor asked “do you need me to write you a letter for your employer” and I said “no, they’re good”, and he said, “wow! don’t see that very often”. You don’t. I’m so glad Crunchy Data is still small enough that it can be run ethically by ethical people. Not having to worry about employment on top of all the other worries that a cancer diagnosis brings, that was a huge gift, and not one I will soon forget.

      I think people (and Canadians to a fault, but probably people in general) worry about imposing, that communicating their good thoughts and prayers could be just another thing for the cancer patient to deal with, and my personal experience was: no, it wasn’t. Saying “thanks, I appreciate it” takes almost no energy, and the boost of hearing from someone is real. I think as long as the patient doesn’t sweat it, as long as they recognize that “ackknowledged! thanks!” is a sufficient response, it’s all great.

      Fortunately, I am not a princess, so the volume was not insuperable. Anyways, thank you to everyone who reached out over the past 6 months, and also to all those who just read and nodded, and maybe shared with a friend, maybe got someone to take a trip to the gastroenterologist for a colonoscopy.

      Talk to you all again soon, inshala.

      Mountain

    • sur Mappery: Sanssouci Park

      Publié: 29 September 2024, 11:00am CEST
      Pièce jointe: [télécharger]

      Reinder said “These images show a 3D plan in bronze or something, from the park ‘Sanssouci’ in Potsdam. A beautiful place with an unrivaled amount of quite impressive palaces.  [https:]]

    • sur Mappery: Globe 1639 at Magic Mushroom

      Publié: 29 September 2024, 11:00am CEST
      Pièce jointe: [télécharger]
      Screenshot

      Reinder spotted this on Spuistraat, Amsterdam.

      “Now it is a branch of Magic Mushroom – but in 1639 a globe was bricked into the facade.”

      I had to check that Magic Mushroom was what I thought it was, and it was! No endorsement but I guess your maps get super wild afgter a trip to this place.

    • sur QGIS Blog: Catching up with the QGIS User Conference 2024 & Save the Date for 2025

      Publié: 28 September 2024, 7:26pm CEST

      This year’s user conference took place in Bratislava, organized by the Slovak QGIS User Group and hosted at the Slovak University of Technology Faculty of Civil Engineering. The event was sold out early and the venue was full of energy and excitement.

      If you missed the conference or couldn’t make it to a talk due to too many great overlapping sessions, you now have the opportunity to catch up with everything on the UC 2024 playing list:

      Thanks to the organizers, speakers, sponsors, and all participants for the wonderful event.

      If you want to read some personal reports from community members, here’s Ujaval Gandhi’s report: [https:]] ; and here’s Hans van der Kwast’s: [https:]]

      Last but not least, we want you to save the date for next year’s user conference:

      The QGIS User Conference will be in Norrköping, Sweden from 2-3 June 2025, and contributor meeting there after 4-7.

    • sur Markus Neteler: GRASS GIS PSC Elections 2024: nomination period ongoing

      Publié: 28 September 2024, 3:41pm CEST
    • sur Mappery: Tire-Lire bookshop

      Publié: 28 September 2024, 11:00am CEST
      Pièce jointe: [télécharger]

      A bookshop in Toulouse, France, displaying a vintage school map

    • sur OTB Team: OTB Release 9.1.0

      Publié: 27 September 2024, 8:52pm CEST
      Dear OTB community, We are happy to announce that OTB version 9.1.0 has been released! Ready to use binary packages are available on the package page of the website: The Docker image is available :docker pull orfeotoolbox/otb:9.1.0 For those who want to use docker with python 3.10 or 3.12, you can respectively pull images 9.1.0_ubuntu22 […]
    • sur Mappery: Place Mat

      Publié: 27 September 2024, 11:00am CEST
      Pièce jointe: [télécharger]

      This is clever. Reinder shared this place mat from the restaurant ‘Oortjeshekken’, in the Ooijpolder, near Nijmegen. Yes it is a place mat for your plate and cutlery in the restaurant and it is also a place map for the surrounding area.

    • sur DuckDB pour QGIS : nouveautés de QDuckDB version 1.0.0

      Publié: 27 September 2024, 6:51am CEST par Florent Fougères
      Le plugin

      Il y a près d’un an, en novembre 2023, dans cet article, nous vous avions présenté le Plugin QDuckDB. Celui-ci a été financé par l’IFREMER et développé par Oslandia. Dans ce précédent article, nous présentions DuckDB et les caractéristiques fonctionnelle du plugin.

      Depuis, en plus du financement de l’IFREMER, Oslandia a auto-investi du temps de maintenance pour corriger les bugs remontés par les utilisateurs, et stabiliser les performances du provider que contient le plugin.

      Pour rappel, un provider (dans le contexte QGIS) est une interface ou une couche logicielle qui permet à QGIS d’accéder à différentes sources de données géospatiales. Autrement dit, c’est un composant qui gère la connexion entre QGIS et les données géospatiales, qu’elles soient locales ou distantes, dans différents formats.

      Quoi de neuf Duck ?

      Depuis l’année passée, les deux grands axes de développement ont été les performances du plugin et la stabilité.

      Par performance, on entend augmenter la vitesse de chargement des entités dans QGIS. Nous avions par exemple des coins d’ombre sur la latence, voire des crash lorsqu’une table provenant de DuckDB possédait beaucoup d’entités.

      Le provider initial avait été implémenté avec le strict minimum pour fonctionner. Depuis nous avons ajouté tous les composants nécessaires à QGIS pour permettre d’être plus performant.

      Enfin, le second axe de développement a été la stabilité. Ce travail a été permis par les utilisateurs qui ont remonté des bugs, que nous avons corrigés. Nous avons aussi renforcé la partie test unitaire. Parmi les choses que nous avons améliorées, on peut citer par exemple, le support des tables non géographiques, le support des vues ou encore la prise en charge des types de colonnes DATE et TIME.

      Si vous souhaitez plus de détail sur ces deux points, vous pouvez consulter le changelog du projet.

      Nous répercutons également chaque nouvelle release de DuckDB dans le plugin dans les jours qui suivent celle-ci, comme par exemple la sortie de DuckDB 1.1.0.

      Release 1.0.0

      Après avoir amélioré les performances et la stabilité, nous sommes donc arrivés à un premier jalon important du provider. Nous avons implémenté tous les composants que propose QGIS pour la construction d’un provider custom.

      Cet article est donc accompagné d’une release en version 1.0.0 du plugin QDuckDB ainsi que la disparition du flag experimental.

      Et ensuite

      Mais le travail n’est pas fini pour autant. Pour rappel le plugin ne fait actuellement que du read only (lecture seule). L’étape suivante serait donc de développer le mode écriture.

      On souhaite également améliorer l’intégration du plugin dans QGIS, par exemple en ajoutant une nouvelle entrée DuckDB dans l’explorateur des sources de données natif de QGIS.

      Pour toutes ces nouvelles fonctionnalités à développer, nous sommes à la recherche de financement. Vous pouvez retrouver une liste non exhaustive des développements à venir en regardant les tickets taggés To be funded dans le projet Gitlab. Il est également possible d’ouvrir de nouveaux ticket pour des fonctionnalités auxquelles nous n’aurions pas pensé.

      Si vous êtes intéressés, vous pouvez vous signaler dans les tickets, nous contacter sur Linkedin ou bien par email à qgis@oslandia.com. Toute contribution est la bienvenue : code, documentation, financement…

      Liens importants

    • sur Even Rouault: Those concepts in the geospatial field that have cost us millions of $$$

      Publié: 26 September 2024, 10:52pm CEST

      Every domain has its baggage of concepts, which at first sight don't appear to be that terrible, but which are in practice.

      Let's start with a non-geospatial example. A lot of programming languages have the concept of a "null" pointer. It is available in the C and C++ programming languages in particular, but in Java as well, or Python, etc.. Tony Hoare, null's creator, regrets its invention: "I call it my billion-dollar mistake." While very useful in some contexts, that feature also happens to cause a lot of bugs, with severe criticity in some cases. The Rust language has for example (almost) removed the null pointer concept and replace it with optional references, where the compiler enforces that the code explictly checks for the validity of the reference before using it. At the minute, I'm writing this, I'm debating about that very issue with a colleague.

      The geospatial field is not free of concepts that are a never-ending source of troubles, and I will come with my own list, with my perspective of software developer.

      - Geometry model. Point, lines, polygons. What could be most simple than that? Well, the commonly-used OGC Simple Features model allows those objects to be empty. How is that useful in practice? Hard to tell: NULL geometries are (somewhat paradoxically given the above paragraphy) actually a better replacement. My own perception of that "feature" is that it is mostly a huge headache that goes into your way when trying to write robust code. One evidence of that is that the same standard that invented it neglected to specify how to export an empty point in the Well Known Binary representation. Over the years, the tradition has become to use the Not-A-Number value for the X and Y value of an empty point. Which by itself may cause interesting consequences for applications that would neglect to make a special case. A Not-A-Number is ... well ... not a number, and for example it is not equal to itself ... (and in the IEEE-754 representation, there are litteraly billions of different binary potential encodings of a NotANumber). Everything you learnt at school in your math courses will break with it (this is actually quite general when crunching numbers with computers. Finite precision break a lot of the expected properties of ideal numbers). An empty line has the undesirable property of not having a start or end point: any algorithm must be ready for that. Another annoyance is that there is not just one "geometry empty" object, but a "point empty", a "line empty", a "polygon empty", etc. What is the expected intersection of an empty line with an empty polygon ? An empty line, an empty polygon, an empty point, ... ? The developers of the GEOS library or the PostGIS spatial extension have unfortunately to regularly debate at length about those topics. One can but think there would be a better use of their expertise and time than having to deal with such esoteric subjects (I didn't ask them, so they may actually be thrilled by them. You never know...)

      - Coordinate reference system (CRS) axis order.  CRS, such as WGS 84 geographic, or UTM 31N / ETRS89 have several axis. For geographic CRS, this will be the longitude, the latitude, and optionally the ellipsoidal height. When expressing coordinates in a CRS, one must decide in which order they are specified. They are lengthy debates whether this should be longitude first, latitude second, or the reverse. The ISO 19111 / OGC Abstract Topic 2 specification or geodetic registries have decided to not take a firm stance on that, and have allowed authorities responsible for CRS definition and maintenance, to submit CRS definitions with the axis order they wish. Excellent! Well no. The issue is that while non-geomaticians user may chose to express a coordinate in prose like "50 degree of latitude north, 15 degree of longitude east", or "15 degree of longitude east, 50 degree of latitude north", that doesn't mean it is a good idea that the software systems reflect that liberty of speech. Some GIS formats have no way of clearly expressing the CRS, or if they have, they might use an incomplete way of specifying it, in particular lacking the way to express the axis order. The usual practice is to generally specify the longitude as the first value (as corresponding to the X/horizontal axis of a Cartesian plan) and latitude next (Y/vertical axis), refleting the natural mapping to make a graphical representation. Other formats (GML in particular) require that the coordinates are expressed in the order of the CRS definition, which require access to a database to get the axis order, given that in GML vector files, the CRS is only referenced through a code, and not defined inline. Depending on whether the persons responsible to design the protocol/file format, the order may be the "GIS friendly one" (longitude-latitude), or the "CRS pedantic one" (latitude-longitude for example for geographic CRS defined by the EPSG geodetic registry). This is an eternal source of confusion. Sometimes with absurd situations. The OGC GeoPackage file format captures a full definition of the CRS used in the vector tables it contains, including in particular the official axis order, but to reflect the long-GIS tradition, as an amendment, specify that the encoding of coordinates in its (extension of) the WKB format mentionned in the previous paragraph should be longitude-latitude (for geographic CRS) or easting-northing (for projected CRS). I will not blame anyone particular for this. This is an "overall system error". In the ideal situation, a courageous geomatician in a standard organization or in a geodetic registry should have said "here, we are geomaticians: geographic CRS are always longitude-latitude, and projected CRS are always easting-northing.  It is your responsibility as users of our system to provide data always in that order".  Failing to have access to a time-travel machine to warn in advance my glorious predecessors about the incoming catastrophe, the only solution I see to solve the issue it is to ask all population to relocate on the line of longitude=latitude, and exclude any mapping outside of it.

      - Raster cell registration issues, a.k.a pixel-centre versus pixel-corner, or pixel-is-point versus pixel-is-area, a.k.a the half-pixel shift error. A raster cell is both an entity you reference with a (column, line) integer pair, so perceived as a discrete point, but when displayed, it actually occupies a non-zero area on your display device. When that raster cell is registered against geospatial coordinates, one debate is: "what exact place in that cell does this (longitude, latitude) or (easting, northing) refer to? Is that the center of the pixel, or maybe its top-left corner?" . Obviously, whenever there is a choice, file format and service specifications never agree together. The GDAL software has courgeously decided to "standardize" its internal model to the convention where that the georeferenced coordinate associated to a pixel qualifies the location of the top-left corner. GDAL format drivers do the necessary dance of applying and de-applying a half-pixel shift to go into that convention ... when they have access to the convention of the underlying format.

      A temptative conclusion could be that any proposed standard or specification should go to the step of having an actual real-world implementation of it, not just a "working prototype" ("toy implementation" more casually), to check whether some apparently minor details are not a major source of inconvenience.

    • sur GeoTools Team: GeoTools 32.0 released

      Publié: 26 September 2024, 10:33pm CEST
      GeoTools 32.0 released The GeoTools team is pleased to announce the release of the latest stable version of GeoTools 32.0: geotools-32.0-bin.zip geotools-32.0-doc.zip geotools-32.0-userguide.zip geotools-32.0-project.zip This release is also available from the OSGeo Maven Repository and is made in conjunction with GeoServer 2.26.0 and GeoWebCache 1.26.0
    • sur Fernando Quadro: Como ganhar dinheiro com o código aberto?

      Publié: 26 September 2024, 2:00pm CEST

      De tempos em tempos as pessoas costumam me fazer essa pergunta. A resposta curta é que ser código aberto não significa que tudo é de graça – você geralmente precisa de especialistas na área para ajudá-lo.

      Por exemplo, GeoServer, QGIS e PostGIS você pode baixá-los, instalá-los e usá-los de graça. Claro. Mas sua empresa provavelmente ainda precisará pagar por:

      ? Qualquer nova funcionalidade que você queira implementar no software principal, especialmente se for bem específica ou de nicho para apenas uma pequena parte da base de usuários
      ? Consertar um bug crítico no código que afeta seu fluxo de trabalho de forma rápida (especialmente se afetar apenas uma parte muito pequena da base de usuários)
      ? Criar uma extensão/módulo/plugin que simplificaria algumas das tarefas específicas para sua organização
      ? Obter SLA (Acordo de Nível de Serviço), para que suas dúvidas/problemas com o software possam ser discutidos/resolvidos com prioridade e não bloqueiem seu trabalho
      ? Treinar sua equipe com os principais especialistas da área
      ? Migrar de soluções proprietárias para o ecossistema de código aberto, já que é preciso muito conhecimento para unir todos os componentes de código aberto para que funcionem bem

      O bom do código aberto é que se empresas ou usuários apoiam financeiramente o projeto, todas as novas funcionalidades, correções e melhorias (como documentação) chegam a todos.

      Então, se sua empresa quer ajudar um projeto de código aberto a crescer, uma ótima ideia é patrociná-lo. E se você estiver procurando por um desenvolvimento personalizado de WebGIS, treinamento, migração ou suporte em torno disso, você pode entrar em contato com a Geocursos. É isso que fazemos desde 2012 ?

    • sur Mappery: Wine map in a Tapas bar

      Publié: 26 September 2024, 11:00am CEST
      Pièce jointe: [télécharger]

      I found this map of Spain showing the various wines per region in a tapas bar in Toulouse, France

    • sur PostGIS Development: PostGIS 3.5.0

      Publié: 26 September 2024, 2:00am CEST

      The PostGIS Team is pleased to release PostGIS 3.5.0! Best Served with PostgreSQL 17 RC1 and GEOS 3.13.0.

      This version requires PostgreSQL 12 - 17, GEOS 3.8 or higher, and Proj 6.1+. To take advantage of all features, GEOS 3.12+ is needed. SFCGAL 1.4+ is needed to enable postgis_sfcgal support. To take advantage of all SFCGAL features, SFCGAL 1.5 is needed.

      3.5.0

      This release is a feature release that includes bug fixes since PostGIS 3.4.3, new features, and a few breaking changes.

    • sur Fernando Quadro: 4 dicas para melhorar sua aplicação GIS Mobile

      Publié: 25 September 2024, 2:00pm CEST

      A demanda por soluções geoespaciais acessíveis e em movimento está maior do que nunca. Como uma empresa de desenvolvimento de software que atende ao setor de GIS, você precisa entender a importância de fornecer aplicativos amigáveis ??para dispositivos móveis que atendam às necessidades de seus clientes.

      Você precisa criar soluções inovadoras e amigáveis ??que capacitem os profissionais a acessar e utilizar dados espaciais a qualquer hora, em qualquer lugar.

      ? Alguns recursos principais de seus aplicativos GIS móveis devem incluir:

      ?Recursos offline: Projete seus aplicativos para funcionar perfeitamente, mesmo em áreas com conectividade limitada à Internet, garantindo acesso ininterrupto a dados geoespaciais críticos.

      ?Coleta de dados em tempo real: Os usuários devem ser capazes de capturar e atualizar informações espaciais em movimento, agilizando as operações de campo e melhorando a precisão dos dados.

      ?Interfaces intuitivas: Priorize interfaces de usuário intuitivas e responsivas, facilitando a navegação e a interação dos profissionais com dados geoespaciais em seus dispositivos móveis.

      ?Integração perfeita: Você deve ser capaz de integrar aplicativos GIS móveis com plataformas GIS existentes de desktop e baseadas em nuvem, garantindo um fluxo de trabalho coeso e eficiente.

      Ao aproveitar o poder da tecnologia móvel, seus clientes podem aumentar sua produtividade, tomar decisões mais bem informadas e fornecer serviços superiores aos seus usuários finais.

      Fonte: webgis.tech
      Instagram: [https:]]
      LinkedIn: [https:]]

    • sur Mappery: Atlas in Potsdam

      Publié: 25 September 2024, 11:00am CEST
      Pièce jointe: [télécharger]

      Reinder sent this pic of Atlas holding up the world from the roof of the Alte Rathaus at the Alte Markt, Potsdam, Germany (he wasn’t actually on the roof but you know what I mean)

    • sur Oslandia x sponsor FOSS4G

      Publié: 25 September 2024, 6:58am CEST par Caroline Chanlon

      Le FOSS4G BE+NL se tiendra les 25-26-27 Septembre 2024 à Baerle-Duc en Belgique. Oslandia a participé à de nombreux FOSS4G précédemment, voilà d’ailleurs quelques présentations réalisées.

      Cette année Oslandia est sponsor Bronze de l’événement.

      Organisé par l’OSGeo, les conférences FOSS4G sont les principaux événements internationaux dédié aux logiciels libres pour la géomatique et certainement les plus dynamiques du monde de l’Open-Source ! L’événement FOSS4G BE+NL regroupe cette année les communautés Belges et Néerlandaises pour un rendez-vous plus vibrant !

      Toutes les informations sont disponibles ici : [https:]]

    • sur Fernando Quadro: Como ser tornar um Desenvolvedor WebGIS?

      Publié: 24 September 2024, 2:00pm CEST

      Se você já se perguntou como se tornar um especialista em desenvolvimento WebGIS, este roteiro o guiará passo a passo pelas ferramentas e habilidades essenciais:

      ? Fundamentos do WebGIS: Aprenda a arquitetura e os termos chave.

      ? Desenvolvimento do lado do cliente (front-end): domine JavaScript, HTML/CSS e estruturas de UI (User Interface) como Bootstrap, por exemplo.

      ? Bibliotecas WebGIS: use o poderoso OpenLayers, Leaflet, Turf.js e muito mais e crie seu projeto.

      ? Domínio do lado do servidor (back-end): Aprenda Python, PostGIS, Django, GeoServer e obtenha a experiência que faz com que as empresas de GIS precisem de você.

      ? Crescimento na carreira: procure oportunidades para desenvolvedor WebGIS no mercado, mas enquanto ela não aparece, você pode começar como freelancer ou criar seu próprio WebGIS para ir adquirindo experiência!

      E ai, o que você está esperando?

      Fonte: webgis.tech
      Instagram: [https:]]
      LinkedIn: [https:]]

    • sur Mappery: Afghan Carpet

      Publié: 24 September 2024, 11:00am CEST
      Pièce jointe: [télécharger]

      Raymond pointed out that the Afghani restaurant we featured a few weeks ago also had this carpet map on the wall and this one is slightly different to this carpet map

    • sur GRASS GIS: Growing GRASS GIS with NSF Support: Progress and Next Steps

      Publié: 24 September 2024, 10:12am CEST
      In 2023, our team of researchers from four U.S. universities announced a two-year project with support from an NSF grant (award 2303651). This project aims to modernize and expand the GRASS GIS platform, strengthen its role as a key geospatial processing engine, and build a diverse, vibrant global community of users and developers. We are excited to share the progress we have made so far toward these goals in the first half of the project.
    • sur From GIS to Remote Sensing: Random Forest Classification of Sentinel-2 image in Python using Remotior Sensus

      Publié: 24 September 2024, 8:00am CEST
      This video tutorial illustrates how to perform Random Forest classification of a Copernicus Sentinel-2 image using Remotior Sensus, a Python package that allows for the processing of remote sensing images and GIS data.The tutorial is available as Jupyter notebook in Google Colab, a free service by Google that allows for executing a Jupyter notebook in the cloud. Following the video of this tutorial.
      Read more »
    • sur Le nouveau système de dessin de Giro3D

      Publié: 24 September 2024, 6:33am CEST par Sébastien Guimmara
      Pièce jointe: [télécharger]

      Cet article concerne des fonctionnalités publiées avec la version 0.38. de Giro3D.

      Giro3D 0.38 a introduit un nouveau système de dessin basé sur la classe DrawTool. et l’entité Shape.. Ce système souple permet de créer des formes manuellement ou programmatiquement.

      Nous allons voir comment intégrer ces outils de dessin dans une application Giro3D.

      DrawTool et Shapes

      L’entité Shape permet de représenter une forme arbitraire, composée de points, d’une ligne et/ou d’une surface, ainsi que de labels. Son style est configurable (couleur, épaisseur, transparence…).

      L’outil DrawTool permet de créer des shapes de façon interactive en les structurant et leur donnant des contraintes (nombre de points par exemple).

      Note: Il est tout à fait possible de créer et modifier des shapes sans passer par le DrawTool.

      Les formes standard (points, lignes, polygones)

      Le DrawTool permet de dessiner des formes standard grâce à son API simple. Les méthodes create*() renvoient une Promise qui se conclut lorsque la création de la shape est terminée, où lorsque l’utilisateur annule la création avec un clic-droit. Dans ce cas l’objet renvoyé est null.

      import DrawTool from "@giro3d/giro3d/interactions/DrawTool";
      
      const drawTool = new DrawTool({ instance });
      
      drawTool.createPoint().then((point) => {
        if (point != null) {
          console.log("success!");
        } else {
          console.log("cancelled!");
        }
      });
      Création d'un point. Quelques formes standard.

      Quelques formes standard.

      Les formes avancées (secteurs angulaires, denivelés)

      L’objet Shape étant particulièrement configurable, il est possible de créer des formes plus complexes telles que les secteurs angulaires:

      drawTool.createSector();
      Création d'un secteur angulaire. Un secteur angulaire.

      Un secteur angulaire.

      La méthode createVerticalMeasure() permet de créer une shape mesurant à la fois le dénivelé et la pente entre un point de départ et d’arrivée:

      drawTool.createVerticalMeasure();
      Création d'une mesure verticale. Une mesure de dénivelé.

      Une mesure de dénivelé.

      Les Styles

      Le style des shapes est également configurable, avant la création et après, et ce, de façon dynamique. Il est possible de changer la couleur, l’épaisseur des traits et des bordures, la taille des points, la transparence…

      Changement de couleur.

      Changement de couleur.

      Changement de taille de points.

      Changement de taille de points.

      Changement d'épaisseur de ligne.

      Changement d’épaisseur de ligne.

      Les labels

      Tous les composants d’une shape peuvent recevoir un label:

      • les points
      • les segments de la ligne
      • la ligne entière
      • la surface
      • les lignes verticales

      Ces labels sont entièrement configurables dans leur contenu. Il est par exemple possible d’afficher la coordonnée géographique des points, l’indice de chaque point dans une ligne ou un polygone, ou tout autre information.

      Un label affichant la coordonnée d'un point.

      Un label affichant la coordonnée d’un point.

      Des labels affichant l'indice de chaque point d'un polygone ainsi que l'aire du polygone.

      Des labels affichant l’indice de chaque point d’un polygone ainsi que l’aire du polygone.

      Pour spécifier un contenu personnalisé, il suffit de passer une fonction de formatage durant la création de la shape:

      import { type SegmentLabelFormatter } from "@giro3d/giro3d/entities/Shape";
      
      const helloWorldFormatter: SegmentLabelFormatter = () => {
        return "hello, world!";
      };
      
      drawTool.drawLineString({
        segmentLabelFormatter: helloWorldFormatter,
        showSegmentLabels: true,
      });
      Une fonction de formatage renvoyant toujours le même texte. Des labels affichant l'indice de chaque point d'un polygone ainsi que l'aire du polygone.

      Des labels affichant l’indice de chaque point d’un polygone ainsi que l’aire du polygone.

      Pour afficher les longueurs en pieds, nous pouvons utiliser la fonction suivante:

      const feetFormatter: SegmentLabelFormatter = (values) => {
        return (values.length * 3.28084).toFixed(0) + " ft";
      });
      Une fonction de formatage convertissant les longueurs en pieds. Des longueurs exprimées en pieds.

      Des longueurs exprimées en pieds.

      Editer une shape

      Il est également possible de modifier une shape après sa création, grâce à la méthode enterEditMode() du DrawTool. En mode édition, il est possible d’insérer et supprimer des points, et les déplacer.

      drawTool.enterEditMode();
      Editer toutes les formes de la scène.

      Il également possible de restreindre les shapes éditable en passant une liste:

      drawTool.enterEditMode({ shapesToEdit: [shape1, shape3] });
      Editer uniquement les formes shape1 et shape3 et ignore les autres.

      Le DrawTool respecte les contraintes associées à chaque shape, et peut interdire certaines opérations invalides, comme l’insertion d’un point dans un secteur angulaire (qui ne peut contenir que 3 points), ou la réduction du nombre de points d’un polygone à moins de 3 points.

      L'édition d'une shape. Déplacement, insertion et suppression de points.

      L’édition d’une shape. Déplacement, insertion et suppression de points.

      L’export GeoJSON et OpenLayers

      Si une shape correspond à un type de géométrie connu de GeoJSON (point, ligne ou polygone), il est alors possible de l’exporter dans ce format.

      const geojson = shape.toGeoJSON();
      Exporter une shape en GeoJSON.

      A noter que le ré-import d’un GeoJSON sous forme de shape n’est pas actuellement supporté directement dans Giro3D, mais il est présent dans l’exemple drawtool..

      Il est également possible de l’exporter sous forme de feature OpenLayers.:

      const feature = shape.toOpenLayersFeature();
      Exporter une shape en feature OpenLayers.

      Cette feature peut ensuite être ajoutée à une couche vectorielle affichée sur une map. C’est ce qui est fait dans l’exemple digitization..

      Une shape numérisée.

      Une shape numérisée.

      Conclusion

      Le nouveau système de dessin permet de nombreuses applications :

      • création d’annotations
      • prise de mesures de distance, surface et angles
      • tracé de profils d’élévation
      • numérisation de features
    • sur Paul Ramsey: Cancer 11

      Publié: 24 September 2024, 2:00am CEST

      Back to entry 1

      What happened there, I didn’t write for three months! Two words: “complications”, and “recovery”.

      In a terrifying medical specialty like cancer treatment, one of the painful ironies is that patients spend a lot of time recovering from complications and side effects of the treatments, rather than the cancer. In my case and many others, the existence of the cancer isn’t even noticable without fancy diagnostic machines. The treatments on the other hand… those are very noticable!

      cdiff

      A lot of this comes with the territory of major surgery and dangerous chemicals. My surgery included specific possible complications including, but not limited to: incontinence, sexual disfunction, urinary disfunction, and sepsis.

      Fortunately, I avoided all the complications specific to my surgery. What I did not avoid was a surprisingly common complication of spending some time in a hospital while taking broad spectrum antibiotics–I contracted the “superbug” clostridioides difficile, aka c.diff.

      Let me tell you, finding you have a “superbug” is a real bummer, and c.diff lives up to its reputation. Like cancer, it is hard to kill, it does quite a bit of damage while it’s in you, and the things that kill it also do a lot of damage to your body.

      cdiff

      Killing my c.diff required a couple of courses of specialized antibiotics (vancomycin), that in addition to killing the c.diff also killed all the other beneficial bacteria in my lower intestine.

      So, two months after surgery, I was recovering from:

      • having my lower intestine handled and sliced in a major surgery
      • having that same intestine populated with c.diff and covered in c.diff toxins
      • having the microbiotic population living in my intestine nuked with a modern antibiotic developed to kill resistant superbugs

      Not surprisingly, having all those things at once makes for a much longer recovery, and a pretty up-and-down one. My slowly recovering microbiota is in constant flux, which results in some really surprising symptoms.

      • highly variable stomach discomfort (ok)
      • highly variable appetite (makes sense)
      • random days of fatigue (really?)
      • random days of anxiety (what?!?)

      I had not really understood the implications of gut/brain connection, until this journey showed me just how tightly bound my mental state was to the current condition of my guts. The anxiety I have experienced as a result of my c.diff exposure has been worse, amazingly, than what I felt after my initial cancer diagnosis. One was in my head, but the other was in my gut.

      cdiff

      I have also developed a much more acute sympathy for people suffering from long Covid and other chronic diseases. The actual symptoms are bad enough, but the psychological effect of the symptom variability is really hard to deal with. Bad days follow good days, with no warning. I have mostly stopped voicing any optimism about my condition, because who knows what tomorrow will bring.

      When people ask me how I’m doing, I shrug.

      One thing I have got going for me, that chronic disease sufferers do not, is a sense that I am in fact improving. I started journaling my symptoms early in the recovery process, and I can look back and see definitively that while things are unpredictable day to day, or even week to week, the long term trajectory is one of improvement.

      Without that, I think I’d go loopy.

      Anyways, I am now rougly three months out from my last course of antibiotics, and I expect it will be at least another three months before I’m firing on all cylinders again, thanks mostly to the surgical complication of acquiring c.diff. If I was just recovering from the surgery, I imagine I would be much closer to full recovery.

      Harvesting apples

    • sur GeoServer Team: Using Spatial Operators in GeoServer Filters

      Publié: 24 September 2024, 2:00am CEST

      GeoSpatial Techno is a startup focused on geospatial information that is providing e-learning courses to enhance the knowledge of geospatial information users, students, and other startups. The main approach of this startup is providing quality, valid specialized training in the field of geospatial information.

      ( YouTube | LinkedIn | Facebook | X )

      Spatial Operators in GeoServer Filters

      In this session, we want to talk about the Spatial operators in GeoServer in detail. If you want to access the complete tutorial, click on the link.

      Introduction

      GeoServer supports various spatial operators that filter geospatial data based on their location or spatial relationships with other features. These operators are commonly used with other filter expressions to create complex queries. These queries are useful for extracting specific subsets of data from a larger dataset.

      The spatial operators are Topological, Distance, and Bounding Box operators. We’ll explain them in more detail below.

      Note. This video was recorded on GeoServer 2.22.4, which is not the most up-to-date version. Currently, versions 2.24.x and 2.25.x are supported. To ensure you have the latest release, please visit this link and avoid using older versions of GeoServer.

      Topological operators

      In GeoServer, topological operators are used for spatial analysis and processing of geographic data. These operators perform geometric operations that preserve the spatial relationship or topology between geometric features. Some common topological operators in GeoServer include: Intersects, Within, Contains, etc.

      Intersects

      The Intersects filter in GeoServer is used to query spatial data based on the intersection of two geometry objects. For example, you can use this operator to extract all features that intersect with a specified Point, Line, or Polygon.

      Here are some examples of how you can use this filter in an XML request to filter the States layer by the State_Name attribute:

      • Navigate to the Demos page, then select Demo requests.
      • From the Request section, select the WFS_getFeatureIntersects1.0.xml request.
      • The address will be filled in automatically, in the URL section.
      • Now, we will explain some elements:
        • The first thirteen lines include explanations in the form of comments.
        • Line 14 describes the XML version and the getFeatureIntersects operation of the WFS service being used.
        • Line 15 specifies the default output format for the WFS service as GML2. Additionally, GeoServer supports several other commonly used formats such as “gml3, shapefile, geojson, and csv.”
        • Lines 16 to 22 define the start of the XML request and declare the namespaces used in the request.
        • Line 23 specifies the type name of the feature to be queried. In this case, it requests features of the topp:states.
        • Lines 25 to 30 define the filter criteria for the query. On these lines, we use the Intersects filter, to retrieve all states that intersects with a Point defined by latitude and longitude.
      • Press the Submit button.

      Note. For GeoServer 2.25.2 the Demo Request page has been improved to show response Headers, and provide the option to pretty print XML output.

      Within

      This operator is used to retrieve features that are completely within the specified geometry. For example, you can use this operator to extract all features that are within a polygon.

      Here’s an example of how you can define a Within filter in XML. As an example of using this filter in a WFS getFeature request, use the following block codes to replace lines 24 to 31:

      <Filter>
        <Within>
          <PropertyName>the_geom</PropertyName>
          <gml:Polygon xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
      	  <gml:outerBoundaryIs>
      	    <gml:LinearRing>
      		  <gml:coordinates>-90.73,29.85 -90.73,35.92 -80.76,35.92 -80.76,29.85 -90.73,29.85</gml:coordinates>
      		</gml:LinearRing>
      	  </gml:outerBoundaryIs>
          </gml:Polygon>
        </Within>
      </Filter>
      

      Press the Submit button. As you can see, the result includes two states named Alabama and Georgia.

      Contains

      This operator is used to filter data that is completely contained within a given geometry. For example, you can use this operator to extract all features that are completely contained within a polygon that represents a state boundary.

      Here’s an example of how you can define a Contains operator in XML:

      <Filter>
        <Contains>
          <PropertyName>the_geom</PropertyName>
          <gml:LineString srsName="EPSG:4326">
             <gml:coordinates>-89.35,31.46 -89.35,32.11 -89.49,32.23 -90.21,32.23</gml:coordinates>
          </gml:LineString>
        </Contains>
      </Filter>
      

      Press the Submit button. As you can see, the state that contains the given geometry is Mississippi.

      You will need to adjust the filter and shape to match your data and SRS. Assuming you have a data source with a geometry column named the_geom that uses the EPSG:4326 coordinate system.

      Distance operators

      In GeoServer, Distance operators like “DWithin” and “Beyond” filters, are used to filter and retrieve features based on their spatial relationship and proximity to a given geometry or location. These operators can be used in WFS requests and are useful for performing spatial analysis and finding nearby features.

      DWithin

      The ‘DWithin’ or ‘Distance Within’ filter, will return records that are located within a specific distance of a defined point, much like a buffer. As well as the point geometry, you must specify the value of the distance from this point and the unit of measure. The units for the DWithin are: Feet, meters, kilometers and miles.

      Here’s an example of how to use the DWithin filter in a GeoServer XML configuration file. To find all the features that are within 10000 meters of a given point in a layer called “sf:archsites”, the following WFS request can be used.

      <wfs:GetFeature service="WFS" version="1.0.0"
                  outputFormat="application/json" xmlns:wfs="http://www.opengis.net/wfs"
                  xmlns:ogc="http://www.opengis.net/ogc"
                  xmlns:gml="http://www.opengis.net/gml"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://www.opengis.net/wfs [schemas.opengis.net]   <wfs:Query typeName="sf:archsites">
          <ogc:Filter>
      	  <ogc:DWithin>
      		<ogc:PropertyName>the_geom</ogc:PropertyName>
      		  <gml:Point srsName="http://www.opengis.net/gml/srs/epsg.xml#26713">
      			<gml:coordinates>593250,4923867</gml:coordinates>
      		  </gml:Point>
      		<ogc:Distance units="meter">10000</ogc:Distance>
      	  </ogc:DWithin>
      	</ogc:Filter>
        </wfs:Query>
      </wfs:GetFeature>
      

      This will return all the features in “sf:archsites” layer, that are within 10000 meters of the given point. Remember that, the EPSG code mentioned in line 11 is very important because it serves as a reference point for importing coordinates and distance values.

      Press the Submit button.

      Bounding Box operators

      The Bounding Box operator is used to filter data based on a specified bounding box. A bounding box is a rectangular region defined by its lower left and upper right coordinates: minx, miny, maxx, and maxy. For example, you can use this operator to extract all features that are located or partially located inside a box of coordinates.

      As an example of using this operator, select the WFS_getFeatureBBOX1.0.xml from the Request section. Now the filters block code is as follows:

      <Filter>
        <BBOX>
          <PropertyName>the_geom</PropertyName>
          <gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">
             <gml:coordinates>-75.102613,40.212597 -72.361859,41.512517</gml:coordinates>
          </gml:Box>
        </BBOX>
      </Filter>
      

      In this case, we just get the STATE_NAME and PERSONS attribute. Using the range specified in the code specifies the features that are completely or partially located in this area. The result includes four states named New York, Pennsylvania, Connecticut, and New Jersey as you see on the screen.

      In this session, we took a brief journey through the “Spatial operators in GeoServer”. If you want to access the complete tutorial, click on the link.

    • sur Mappery: Jo Spier

      Publié: 23 September 2024, 11:00am CEST
      Pièce jointe: [télécharger]

      A cartographic book cover by Jo Spier (1900-1978) spotted by Reinder – exquisite.

    • sur Mappery: Oh, Toulouse!

      Publié: 22 September 2024, 11:00am CEST
      Pièce jointe: [télécharger]

      Exploring the heart of Toulouse, France, a city steeped in history and culture. This tiny map highlights some of the must-see spots in the city center:

      • Capitole: The grand city hall and opera house.
      • Place du Capitole: A bustling square with cafes, shops, and street performers.
      • Saint-Sernin Basilica: A UNESCO World Heritage Site known for its Romanesque architecture and impressive cloister.
    • sur Free and Open Source GIS Ramblings: Trajectools tutorial: trajectory preprocessing

      Publié: 21 September 2024, 4:34pm CEST

      Today marks the release of Trajectools 2.3 which brings a new set of algorithms, including trajectory generalizing, cleaning, and smoothing.

      To give you a quick impression of what some of these algorithms would be useful for, this post introduces a trajectory preprocessing workflow that is quite general-purpose and can be adapted to many different datasets.

      We start out with the Geolife sample dataset which you can find in the Trajectools plugin directory’s sample_data subdirectory. This small dataset includes 5908 points forming 5 trajectories, based on the trajectory_id field:

      We first split our trajectories by observation gaps to ensure that there are no large gaps in our trajectories. Let’s make at cut at 15 minutes:

      This splits the original 5 trajectories into 11 trajectories:

      When we zoom, for example, to the two trajectories in the north western corner, we can see that the trajectories are pretty noisy and there’s even a spike / outlier at the western end:

      If we label the points with the corresponding speeds, we can see how unrealistic they are: over 300 km/h!

      Let’s remove outliers over 50 km/h:

      Better but not perfect:

      Let’s smooth the trajectories to get rid of more of the jittering.

      (You’ll need to pip/mamba install the optional stonesoup library to get access to this algorithm.)

      Depending on the noise values we chose, we get more or less smoothing:

      Let’s zoom out to see the whole trajectory again:

      Feel free to pan around and check how our preprocessing affected the other trajectories, for example:

    • sur Mappery: Eugeniusz Romer

      Publié: 21 September 2024, 11:00am CEST
      Pièce jointe: [télécharger]

      This came from Reinder

      Portrait of Eugeniusz Romer
      It hangs above the desk of the director of the Institute of Geography and Regional Development at the University of Wroclaw. It shows the eminent geographer and cartographer depicted against the background of a planiglobium map.

      Romer, (1871-1954) was the founder of modern Polish cartography and co-founder of the Ksiaznica-Atlas publishing house in Lwow, one of the most important Polish publishing houses in the interwar period. It was a house publishing textbooks and teaching aids for teachers and students, cartographic publications, children’s and young adult literature, and encyclopaedias. After the Second World War, the publishing house resumed its activities in Wroctaw, where many atlases of Poland and the world were published under Romer’s editorship.

    • sur Mappery: Seated on the Helsinki Tram Network

      Publié: 20 September 2024, 11:00am CEST
      Pièce jointe: [télécharger]

      Maarten Pullen sent me this. “Helsinki has a fair number of tram lines in its city center. A great way of doing sightseeing when you’re tired of walking. The seats in the tram also have a network map.”

    • sur Nick Bearman: New Website - Quarto

      Publié: 20 September 2024, 1:00am CEST

      I’ve been thinking for a bit of time that I need to redo my website as some of the pages had evolved a bit, and were getting a bit too long. What you see now is what I have come up with:

      I also took the opportunity to ‘rebrand’ myself. Previously I’d used the name Geospatial Training Solutions to market my freelance work. I was never completely happy with the name - it was a bit long and a bit generic - and after some thought I decided I would be better trading under my own name - Nick Bearman - as that is a name already known in the GIS community and it is me that I am selling. I am freelance and have no current plans to expand or to hire other people - I am just me!

      Anyway, once I’d made that decision, the question was how to make my new website. I’ve been using WordPress which worked reasonably well, but it has a relatively complex infrastructure under the hood (database, etc.) which:

      1. opens it up to more vulnerabilities and

      2. upgrading WordPress was always something that needed to be done every so often, and then I had to make sure everything worked as I wanted.

      I looked around and found various examples that were similar to what I wanted to achieve:

      I mostly used these to think about content, but it was also helpful to consider the different technologies as well. More people were using WordPress that I thought, and often they were not ‘obviously’ WordPress sites. I wanted something simple, and certainly something I could update easily. Easy of updating was a common theme! To quote Pokateo / Kate:

      From [https:]]

      At this point, Quarto had been released and they had some interesting possibilities for websites. I’d dabbled a bit with Quarto for PDF documents and websites (including A geographer’s introduction to QGIS & R) after using RMarkdown for several years. Quarto looked ideal, so I started experimenting with it. It is plain text, and can work with GitHub, which I am using fairly regularly.

      Quarto also has a very good website, with lots of examples including creating a website [https:]] and you can also choose from a variety of different themes [https:]] .

      After various rounds of development, I came up with this site, [https:] It is (I hope) a simple site which has what I need on it. It also supports blogs, which I do contribute to semi-regularly. It is also all static pages, so once it is updated it can just sit there and doesn’t need any database provision or anything else to run. The new site also incorporated a search, which is handy.

      You can host it through GitHub Pages, and there are various options to automatically compile it using continuous integration, but I decided to keep things simple, to compile the site locally and the push to GitHub. Sometimes the potential to automate things isn’t worth the time to set it up!

      from [https:]] CC license

      Transferring my blog posts from WordPress (geospatialtrainingsolutions.co.uk and nickbearman.me.uk) was a bit of a faff but it is getting there. It is a work in progress. I have found a semi-automated">[https%3A%2F%2Fgithub,folder%20in%20your%20quarto%20blog">semi-automated] way of doing this, but it will still take some time. I’m also trying to extract a static copy of the WordPress sites for archiving, with the Simpy Static WordPress plugin looking useful.

      I also used to have a contact form, which I received some useful contacts through so I wanted to include this. Quarto as such doesn’t include such a form, as there is no interaction, but I had a brainwave and decided to use a Google Forms instead. We’ve used these a lot at OSGeo:UK and they work really well.

      I hope you found this useful - do let me know what you think!

      And if you want to learn more about GIS, checkout my new Training Courses page and if you want a bespoke course, make use of my new Contact Form!

    • sur Mappery: Archimedes

      Publié: 19 September 2024, 11:00am CEST
      Pièce jointe: [télécharger]

      Reinder sent this from his visit to Warsaw

      “… in the beautifully 18th C. baroque decorated main hall, Aula Leopoldina, in the University Museum in Wroc?aw, Poland. “

    • sur [Équipe Oslandia] Florent, développeur SIG

      Publié: 19 September 2024, 7:10am CEST par Caroline Chanlon

      Son Bac Scientifique ne prédestinait pas forcément Florent vers des études de Géographie, pourtant, il s’oriente vers une Licence de géographie. Son choix s’explique car il a un intérêt certain pour la géographie et la cartographie. Lors de cette licence il découvre les SIG qui sont au programme du cursus.

      « J’aimais la géographie et j’avais une appétence pour l’informatique. J’ai fait des stages d’été pendant ma licence qui ont confirmé mon choix, j’ai continué en master SIGAT (Géomatique) à Rennes (dans la même promo que Vincent Bré ? »

      Parcours professionnel

      Pendant le master, Florent participe à des ateliers professionnels avec des entreprises dont Suez Consulting. Bilan de la rencontre : un stage puis une embauche au sein de la filiale bureau d’étude et conseil de Suez.

      Pendant 4 ans, il est géomaticien et a pour missions de traiter, produire, stocker et administrer la donnée géographique relative au déploiement du réseau de fibre optique. Mais également de développer des outils pour automatiser ces tâches.

      « Je ne suis pas développeur de base, j’ai commencé à toucher un peu au développement et j’ai eu envie d’aller sur ce métier. J’avais en tête une liste des entreprises qui me plaisaient et Oslandia en faisait partie ! »

      Florent a été embauché chez Oslandia en janvier 2023 au poste de développeur SIG. Au quotidien, il réalise des développements autour de l’écosystème QGIS et développe des plugins. Il travaille également sur tout ce qui tourne autour des bases de données PostgreSQL / PostGIS.

      Projet emblématique

      Le développement du plugin DuckDB pour QGIS ! DuckDB est un format de base de données initialement non supporté par QGIS et le plugin apporte un provider de données qui permet à QGIS de pouvoir lire les données. Ce plugin a été financé l’Ifremer : [https:]]

      Technologies de prédilection

      #QGIS #PostgreSQL #PostGIS #Python #DuckDB

      Philosophie

      Toujours faire simple et efficace !

      Oslandia en 1 mot

      Expertise

    • sur pycsw Team: Using keywords from a thesaurus as queryables

      Publié: 18 September 2024, 8:59pm CEST
      Using keywords from a thesaurus as queryables

      A common convention in catalogues is the use of keywords from a dedicated thesaurus. The assignment of these keywords can then later be used to filter or query the catalogue by these terms. To achieve this use case in pycsw, some configuration needs to be tailored. This blog post indicates the changes needed for this scenario.

      For this example we’ll use a keyword from the INSPIRE Themes thesaurus. We will define a new queryable inspiretheme, which will be populated with the relevant keyword (if present).

      You can repeat these steps for any other thesaurus.

      Extra database column

      Extend the records table in the database with an extra field for the selected thesaurus. This is usually a manual operation on the database.

      ALTER TABLE records
      ADD inspiretheme VARCHAR(255);
      
      Add parameter to pycsw

      In pycsw/core/config.py the newly created database column can be registered to pycsw.

      'pycsw:InspireTheme': 'inspiretheme',
      
      Add column to mapping

      etc/mappings.py links the pycsw parameter to the columnname in the table.

      'pycsw:InspireTheme': 'inspiretheme',
      
      Define parameter as queryable

      Which of the parameters are queryable is defined in pycsw/core/repository.py.

      'inspiretheme': self.dataset.inspiretheme,
      
      Add parameter to record results?

      Keywords are already published in records, so there is generally no need to extend the record with the new parameter. If needed you can do so in pycsw/ogc/api/records.py (Line 1150).

      Populate the parameter from record imports

      We have 2 options here, either manage the population of the column within the database as part of an insert trigger on the record.themes field. Alternatively update pycsw/core/metadata.py so the column is populated when records are imported.

      For the second option consider the following code. For each of the keyword blocks, it tries to match the thesaurus title or uri and, if matched, adds the keywords to the new parameter.

      _set(context, recobj, 'pycsw:InspireTheme', ", ".join(
          [", ".join(k.name for k in t.keywords if k.name not in [None,'']) for t in md_identification.keywords if ( hasattr(t,'thesaurus') and 
              t.thesaurus not in [None,''] and ((
                  'title' in t.thesaurus and t.thesaurus['title'] not in [None,''] and
                  t.thesaurus['title'] in ['GEMET - INSPIRE themes, version 1.0','GEMET Themes, version 2.3']
              ) or (
                  'uri' in t.thesaurus and t.thesaurus['uri'] not in [None,''] and
                  t.thesaurus['uri'] == 'http://inspire.ec.europa.eu/theme')))]))
      
      Add parameter to OGC API - Records facets

      Facets enable to further limit search results. Keywords from thesauri are very useful to add as facet. Add the paremeter to default.yml.

      facets:
          - type
          - inspiretheme
      
    • sur Mappery: North Quabbin Lager

      Publié: 18 September 2024, 11:00am CEST
      Pièce jointe: [télécharger]

      Doug shared this can of North Quabbin Lager from the Honest Weight Brewing co. Nice spot.

      In case you have never heard of North Quabbin, it is not a place in a Harry Potter novel, it’s halfway between Albany and Boston

    • sur GeoServer Team: GeoServer 2.26.0 Release

      Publié: 18 September 2024, 2:00am CEST

      GeoServer 2.26.0 release is now available with downloads (bin, war, windows), along with docs and extensions.

      This is a stable release of GeoServer recommended for production use. GeoServer 2.26.0 is made in conjunction with GeoTools 32.0, GeoWebCache 1.26.0, ImageIO-EXT 1.4.13, and JAI-EXT 1.1.27.

      Thanks to Peter Smythe (AfriGIS) and Jody Garnett (GeoCat) for making this release and everyone who has helped out during this release cycle. Special thanks Andrea for helping with release announcement, and Torben for troubleshooting the build server and docker environment for this release.

      DOI

      Nightly build testing

      This release cycle we asked our new user forum to test a nightly build, as we did not have capacity to make a release candidate.

      Thanks to Daniel Calliess for responding during our public testing cycle. Daniel noted that he had to add /geoserver/webresources to his proxy for the OpenLayers preview to function. This change is due to an ongoing effort to move all CSS and JS to external resources allowing Content Security Policy headers to be introduced.

      Security Considerations

      This release addresses security vulnerabilities and is a recommended upgrade for production systems.

      • CVE-2024-34711 Improper ENTITY_RESOLUTION_ALLOWLIST URI validation in XML Processing (SSRF) (High 7.3)
      • CVE-2024-35230: Welcome and About GeoServer pages communicate version and revision information (Moderate 5.3)

      See project security policy for more information on how security vulnerabilities are managed.

      • GEOS-11400 About Page Layout and display of build information
      Java 17 Support

      The binary distribution and the Windows installer now work with Java 17.

      When using the war distribution with Tomcat and Java 17 double check the Server status page. If the Java Rendering Engine is listed as “Unknown”, double check the Running in Java 17 production considerations.

      Thanks to Andrea Aime and everyone who worked on testing this in different environments.

      • GEOS-11467 Update Marlin, make the bin package compatible with Java 17
      Docker Updates

      The base image tomcat:9.0.95-jdk17-temurin-jammy is now used - providing the latest Tomcat 9 and Java 17. The docker crew changed from using ubuntu:22.04 with our own Tomcat install script earlier in the year.

      To try out GeoServer 2.26.0 with docker:

      docker pull docker.osgeo.org/geoserver:2.26.0 
      docker run -it -p8080:8080 docker.osgeo.org/geoserver:2.26.0 
      

      Thanks to Nils Bühner (terrestris) and everyone who has contributed to the Docker build.

      Search improvement

      A small but fun change for the layer preview - it is now easier to find just the layer you are looking for using quotes to isolate an individual word.

      Thanks to Alessandro Ricchiuti for this work.

      • GEOS-11351 Exact term search in the pages’ filters
      Extensive MapML Improvements

      Thanks to Natural Resources Canada for sponsoring an extensive set improvements for the MapML extension.

      This update was carried out by a group of GeoSolutions devs, Andrea Aime, Daniele Romagnoli and Joseph Miller.

      • GEOS-11322 MapML WMS Vector Representation include query filter
      • GEOS-11324 MapML WMS Vector Representation Style Classes
      • GEOS-11337 Support feature tiles in MapML
      • GEOS-11349 MapML Use WMS Resource Consumption Limit to specify max image size
      • GEOS-11461 Enable MapML Viewer output for WFS getFeature.
      • GEOS-11486 Adding custom dimensions to MapML
      • GEOS-11528 Update MapML viewer to latest release 0.14.0
      • GEOS-11471 Remove Sharding configuration support from MapML
      Demo Requests page rewritten

      The Demo Request page has been rewritten to use JavaScript to issue POST examples. This provides a much better user experience:

      • Show Result lists the response headers to be viewed along side the returned result (with an option for XML pretty printing).
      • Show Result in a New Page is available to allow your browser to display the result.

      The WCS Request Builder and WPS Request Builder demos now have the option to show their results in Demo Requests page. Combined these changes replace the previous practice of using an iframe popup, and have allowed the TestWfsPost servlet to be removed.

      For more information please see the Demo requests in the User Guide.

      Thanks to David Blasby (GeoCat) for these improvements, made on behalf of the GeoCat Live project.

      • GEOS-11390 Replace TestWfsPost with Javascript Demo Page
      JTS 1.20.0 Update

      We are overjoyed to update to the latest JTS 1.20.0 release which includes a new implementation of spatial relationships.

      Use -Djts.relate=ng to try out the new implementation (replacing RelateOp with theReleateNG next generation implementation). Let us know how it goes, a future update will make this setting the default and expand the approach to “prepaired geometry” bulk operations used for WFS Queries.

      Thanks to Martin Davis (CrunchyDB) for the JTS improvements, and Jody Garnett (GeoCat) for the release and GeoServer update.

      Raster Attribute Table Extension

      A new extension is available that takes advantage of the GDAL Raster Attribute Table (RAT). This data structure provides a way to associate attribute information for individual pixel values within the raster. This provides a table that links each cell value in the raster to one or more attributes on the fly.

      Thanks to Andrea Aime (GeoSolutions) for the development and NOAA for sponsoring this new capability. Please see the user guide Raster Attribute Table support for more information.

      • GEOS-11376 Graduate Raster Attribute Table to extension
      GeoCSS improvements

      GeoCSS can now perform scale dependent rendering by the zoom level, assuming web mercator by default, but allowing the configuration of a different gridset as well. It’s also possible to create multi-layer styles and use them as style groups.

      @mode 'Flat';
      @TileMatrixSet 'WorldCRS84Quad'
      
      tiger:poly_landmarks {
      
        /* @title parks and green spaces */
        [CFCC in ('D82', 'D32', 'D84', 'D85')] {
          fill: #B4DFB4;
          stroke: #88B588;
        }; 
        …
      }
      
      tiger:tiger_roads [@z > 12] {
        stroke: #666666, #FFFFFF;
        stroke-width: 6, 4;
        z-index: 1, 2;
        …
      }
      
      …
      

      Thanks to Andrea Aime (GeoSolutions) for this work, performed in preparation for the FOSS4G-NA 2024 vector tiles workshop.

      Geostationary satellite AUTO code

      AUTO:97004 has been introduced as a new vendor extension to WMS AUTO codes. It implements the geostastionary satellite project and allows to change the central meridian as part of the GetMap request.

      Thanks to Andrea Aime (GeoSolutions) for this work, and Eumetsat for sponsoring it.

      labelPoint function improved

      The labelPoint function has been improved with more precise calculation of the polygon label points, and not requiring to specify a tolerance any longer. This helps get better maps, especially with tiling enabled (fixed labelling point no matter which tile is requested):

        <sld:TextSymbolizer>
          <sld:Geometry>
            <ogc:Function name="labelPoint">
              <ogc:PropertyName>the_geom</ogc:PropertyName>
            </ogc:Function>
          </sld:Geometry>
        </sld:TextSymbolizer>  
      

      Thanks to Andrea Aime (GeoSolutions) for this work, performed in preparation for the FOSS4G-NA 2024 vector tiles workshop.

      Improved vector tiles generation

      A few new vendor options have been added in GeoServer, that control how vector tiles are built, with the objective of producing smaller, faster, more useful vector tiles.

      • vt-attributes: comma separated list of attributes included in the vector tile
      • vt-labels: when true, generates a sidecar -label layer for polygons, with the label point of the polygon (vector tile clients generally cannot produce a good label placement otherewise)
      • vt-label-attributes:: attributes included in the label point layer
      • vt-coalesce: if true, takes all features in the tile sharing the same attribute values, and coalesces their geometries into a single multi-geometry.

      Here is an example style using the above vendor options, in GeoCSS:

      @mode "Flat";
      
      tiger:poly_landmarks {
        fill: gray;
        vt-attributes: 'CFCC,LANAME';
        vt-labels: true;
      }
      
      tiger:tiger_roads [@z > 11] {
        stroke: black;
        vt-attributes: 'NAME';
        vt-coalesce: true;
      }
      
      tiger:poi [@z > 12] {
        mark: symbol(square);
      }
      

      The GWC layer preview has also been improved to show the vector tile feature attributes on hover:

      Thanks to Andrea Aime (GeoSolutions) for this work, performed in preparation for the FOSS4G-NA 2024 vector tiles workshop.

      GeoPackage QGIS Compatibility Improvements

      A number of issues affecting interoperability with QGIS have been addressed:

      GeoPackage extension output could contain field types that are not supported by GDAL. It turns out the GeoPackage export was picking up some of the file type information intended for PostGIS resulting output that could not be read by other programs such as QGIS.

      We were also able to fix up the TIMESTAMP information representation as DATETIME, making the file format timezone agnostic as intended.

      Thanks to David Blasby (GeoCat) for these fixes made on behalf of Zeeland and South Holland.

      • GEOS-11416 GeoPackage output contains invalid field types when exporting content from PostGIS
      New image mosaic merge behaviors, MIN and MAX

      These two new image mosaic merge modes activate when multiple images overlap with each other, choosing respectively the minimum and maximum value amongst the super-imposed pixels.

      Thanks to Andrea Aime for the work, and the US National Research Laboratory for sponsoring it.

      Release notes

      New Feature:

      • GEOS-11322 MapML WMS Vector Representation include query filter
      • GEOS-11324 MapML WMS Vector Representation Style Classes
      • GEOS-11352 REST service for URL checks
      • GEOS-11376 Graduate Raster Attribute Table to extension
      • GEOS-11390 Replace TestWfsPost with Javascript Demo Page
      • GEOS-11414 Adding css-uniqueRoleName

      Improvement:

      • GEOS-11271 Upgrade spring-security to 5.8
      • GEOS-11325 Add properties to set additional security headers
      • GEOS-11337 Support feature tiles in MapML
      • GEOS-11338 CapabilityUtil SearchMinMaxScaleDenominator should include support for multiple NamedLayers
      • GEOS-11349 MapML Use WMS Resource Consumption Limit to specify max image size
      • GEOS-11351 Exact term search in the pages’ filters
      • GEOS-11369 Additional authentication options for cascaded WMS WMTS data stores
      • GEOS-11370 Refactor inline JavaScript in the TestWfsPost Page
      • GEOS-11371 Refactor inline JavaScript in the GetMap OpenLayers format
      • GEOS-11379 Refactor inline JavaScript in the OGC API modules
      • GEOS-11400 About Page Layout and display of build information
      • GEOS-11401 Introduce environmental variables for Module Status page
      • GEOS-11427 metadata: “fix all” to support changing config repeatable field
      • GEOS-11443 REST API does not take effect immediately due to 10 minute authentication cache
      • GEOS-11461 Enable MapML Viewer output for WFS getFeature.
      • GEOS-11467 Update Marlin, make the bin package compatible with Java 17
      • GEOS-11477 Add a max and a min merge mode for image mosaics
      • GEOS-11486 Adding custom dimensions to MapML
      • GEOS-11488 Double-Click-to-Copy featurecaption variable reference
      • GEOS-11495 Support multi-layer output in CSS
      • GEOS-11502 Permit resize on user/group/role palette textbox to allow for extra long role names
      • GEOS-11503 Update mongo schemaless DWITHIN to support non-point geometry
      • GEOS-11515 Add support for zoom level rule filtering in CSS
      • GEOS-11526 GeoFence: slow GeoServer response when there are many roles and layergroups
      • GEOS-11527 Add new vector tiles generation options in style body: vt-attributes, vt-coalesce, vt-labels, vt-label-attributes
      • GEOS-11528 Update MapML viewer to latest release 0.14.0
      • GEOS-11531 When coalescing linestrings in vector tiles output, fuse them to create a single long line

      Bug:

      • GEOS-7183 Demo request/wcs/wps pages incompatible with [HTTPS]
      • GEOS-11202 CAS extension doesn’t use global “proxy base URL” setting for service ticket
      • GEOS-11266 csw-iso: missing fields in summary response
      • GEOS-11314 Error in IconService when style has multiple FeatureTypeStyle
      • GEOS-11385 Demo Requests functionality does not honour ENV variable PROXY_BASE_URL
      • GEOS-11416 GeoPackage output contains invalid field types when exporting content from PostGIS
      • GEOS-11422 MapML License Metadata Stored With Incorrect Keys
      • GEOS-11430 CiteComplianceHack not correctly parsing the context
      • GEOS-11446 [INSPIRE] Incorrect behavior for unsupported languages
      • GEOS-11462 500 error thrown when double adding a user to a group via REST with JDBC user/group services
      • GEOS-11484 DirectRasterRenderer is not respecting advancedProjectionHandling and continuosMapWrapping format_options
      • GEOS-11530 Adding or removing a grid subset in the layer caching tab, causes the grid dropdown to get duplicated

      Task:

      • GEOS-11341 Upgrade NetCDF to 5.3.3
      • GEOS-11360 Upgrade Apache POI from 4.1.1 to 5.2.5
      • GEOS-11362 Upgrade Spring libs from 5.3.32 to 5.3.33
      • GEOS-11374 Upgrade Spring version from 5.3.33 to 5.3.34
      • GEOS-11375 GSIP 224 - Individual contributor clarification
      • GEOS-11393 Upgrade commons-io from 2.12.0 to 2.16.1
      • GEOS-11395 Upgrade guava from 32.0.0 to 33.2.0
      • GEOS-11397 App-Schema Includes fix Integration Tests
      • GEOS-11402 Upgrade PostgreSQL driver from 42.7.2 to 42.7.3
      • GEOS-11403 Upgrade commons-text from 1.10.0 to 1.12.0
      • GEOS-11404 Upgrade commons-codec from 1.15 to 1.17.0
      • GEOS-11407 Upgrade jackson from 2.15.2 to 2.17.1
      • GEOS-11464 Update Jackson 2 libs from 2.17.1 to 2.17.2
      • GEOS-11470 Upgrade the version of Mongo driver for schemaless plugin from 4.0.6 to 4.11.2
      • GEOS-11471 Remove Sharding configuration support from MapML
      • GEOS-11472 Upgrade freemarker from 2.3.31 to 2.3.33
      • GEOS-11473 Upgrade guava from 33.2.0 to 33.2.1
      • GEOS-11475 Upgrade commons-codec from 1.17.0 to 1.17.1
      • GEOS-11478 Upgrade commons-lang3 from 3.14.0 to 3.15.0
      • GEOS-11479 Upgrade junit from 4.13.1 to 4.13.2
      • GEOS-11480 Update map fish-print-lib 2.3.1
      • GEOS-11506 Upgrade Spring version from 5.3.37 to 5.3.39 and Spring security from 5.8.13 to 5.8.14
      • GEOS-11508 Update OSHI from 6.4.10 to 6.6.3
      • GEOS-11512 Upgrade jasypt from 1.9.2 to 1.9.3
      • GEOS-11532 Update to JTS 1.20.0
      • GEOS-11533 Update org.apache.commons.vfs2 to 2.9.0
      • GEOS-11544 Upgrade to ImageIO-EXT 1.4.13
      • GEOS-11545 Update to JAI-EXT 1.1.27

      For the complete list see 2.26.0 release notes.

      Community Updates

      Community modules are shared as source code to encourage collaboration. If a topic being explored is of interest to you, please contact the module developer to offer assistance.

      Community module development:

      • GEOS-10690 Task manager plugin is missing dependencies
      • GEOS-10824 gs-flatgeobuf extension can clash with “directory of shapefiles” datastores
      • GEOS-11331 OAuth2 can throw a “ java.lang.RuntimeException: Never should reach this point”
      • GEOS-11358 Feature-Autopopulate Update operation does not apply the Update Element filter
      • GEOS-11381 Error in OIDC plugin in combination with RoleService
      • GEOS-11412 Remove reference to JDOM from JMS Cluster (as JDOM is no longer in use)
      • GEOS-11466 move reusable elements of the graticule plugin to GeoTools
      • GEOS-11469 Datadir catalog loader does not decrypt [HTTPStoreInfo] passwords
      • GEOS-11518 DGGS JDBC store SQL encoder should not force the timezone to CET
      • GEOS-11519 Make DGGS rHealPix tests run again
      • GEOS-11521 Expose a JNDI variant of the DGGS Clickhouse datastore
      • GEOS-11541 STAC search endpoint sortby query not working with POST
      OGC APIs feeling “at home”

      OGC API modules now nicely slot into the home page in the corresponding functional section, e.g., since both provide raw vector data, both OGC API Features and WFS show up in the same area:

      Thanks to David Blasby (GeoCat) for this work.

      Data directory loader

      The “Data Directory loader”, by Gabriel Roldan (Camptocamp), is a replacement data directory loader, reading the XML configuration files at startup. It has been optimized to achieve better parallelism and be more efficient over network file systems.

      It can be found amongst the nightly builds, it’s a simple drop in replacement, just unzip the plugin in WEB-INF/lib and restart. Let us know how it works for you.

      WFS HTML Freemarker output

      The WFS HTML Freemaker output format is a community module generating HTML in response to GetFeature, using the GetFeatureInfo Freemarker templates.

      Thanks to Alessio Fabiani (GeoSolutions) for starting this activity.

      Graticule module

      The graticules module is the combination of a data store and a rendering transformation allowing to generate graticules at multiple resolutions, and optionally placing the graticule labels at the map borders.

      Thanks to Ian Turton for working on this activity. Ian needs a few more people to try this out before it can be included in our GeoServer roadmap.

      Developer Updates

      GeoServer team has identified quite the challenges for GeoServer 2024 Roadmap Plannings.

      Wicket Progress

      After initial testing of 2.26-M0 milestone release we held off including Wicket 9 until after the 2.26.0 release. Thanks to Peter Smythe and Jody Garnett for testing.

      Thanks to Brad Hards who started this work in November 2023, and David Blasby who helped bring this up to a state it could be tested ahead of the 2.26.0 release.

      Spring Security 5.8

      Thanks to Andreas Watermeyer (ITS Digital Solutions) completed this important update.

      This is the last stopping place before Spring Security 6, and the last chance to work with the OAuth2 community modules.

      About GeoServer 2.26 Series

      Additional information on GeoServer 2.26 series:

      Release notes: ( 2.26.0 | 2.26-M0 )

    • sur Mappery: Watervliet Shaker Village

      Publié: 17 September 2024, 11:00am CEST
      Pièce jointe: [télécharger]

      Patrick Curley shared this – A map of the Watervliet Shaker Village at the Shaker Heritage Society in Albany, NY.

    • sur Le nouveau mode Globe de Giro3D

      Publié: 17 September 2024, 7:00am CEST par Sébastien Guimmara

      Dans cet article, nous approfondissons la nouveauté majeure de Giro3D : le mode globe.

      Note: Cet article concerne une fonctionnalité à venir, et certains détails peuvent être amenés à changer d’ici la version finale.

      Les systèmes de coordonnées projetés

      Jusqu’ici, il n’était possible d’afficher dans Giro3D que des cartes (Map) basées sur des systèmes de coordonnées projetés, tels que Web Mercator, utilisé sur la majorité des services de webmapping tel que Google Maps ou Lambert 93 bien connu des géomaticiens français.

      Dans une scène 3D

      Dans une scène Giro3D, tout est 3D. Cela signifie qu’un repère projeté à 2 axes sera tout de même représenté dans un espace à 3 dimensions (le troisième axe restant « virtuel »).

      Une carte OpenStreetMap affichée dans Giro3D via l’entité Map. Même si la carte elle-même est en 2D, elle peut être affichée sous différents angles par la scène 3D.

      Les systèmes de coordonnées non-projetés

      Le mode Globe de Giro3D se base sur un système de coordonnée géocentrique, dans lequel le repère a pour origine le « centre » de la Terre (ou de tout autre objet sphérique). Cet objet sphérique est modélisé par un ellipsoïde.

      By Chuckage – Own work, CC BY-SA 4.0, [https:]

      Dans ce type de repère, les coordonnées géodésiques (exprimées en angles, comme la latitude et la longitude, et en mètres pour l’élévation) doivent être converties en coordonnées cartésiennes (exprimées en unités linéaires, comme les mètres), pour pouvoir être affichées dans le navigateur. Cette conversion géodésique / cartésien est effectuée par l’objet Ellipsoid, qui est à la base de la représentation des globes.

      Le mode Globe

      Giro3D permet d’afficher un globe d’après un ellipsoïde arbitraire ou (ou bien d’utiliser l’ellipsoïde par défaut WGS84). Pour ce faire, il faut instancier une entité de type Globe plutôt que Map:

      const defaultGlobe = new Globe();
      Un globe avec les paramètres par défaut.
      const moon = new Globe({
        ellipsoid: new Ellipsoid({
          semiMajorAxis: 1_738_100,
          semiMinorAxis: 1_736_000,
        }),
      });
      Création d'un globe aux paramètres de la Lune

      Les fonctionnalités du Globe sont quasiment identiques à celles d’une Map. On peut y afficher une couche d’élévation (ElevationLayer), un nombre illimité de couches de couleur (ColorLayer), et bénéficier de toutes les autres fonctionnalités comme les graticules, les courbes de niveau, l’éclairage dynamique…

      La principale différence se situe sur le fait que le Globe utilise simultanément deux systèmes de coordonnées: géodésique et cartésien, selon la fonctionnalité considérée.

      Par exemple, le graticule utilisera le système géodésique pour exprimer le pas de la grille (en degrés). Les emprises des différentes couches seront également exprimées en coordonnées géodésiques (largeur et longueur en degrés).

      Les repères relatifs

      Nous avons dit que par défaut, le point d’origine de la scène 3D est le même que le point d’origine du repère géocentrique. Cependant, il est possible de déplacer le globe dans la scène, afin de représenter des systèmes orbitaux ou un système solaire complet:

      moon.object3d.translateX(384_000_000);
      Déplacement du Globe de la lune à 384 000 km de la terre Anatomie d’un globe

      De façon très similaire à l’entité Map, l’entité Globe se découpe en plusieurs composants optionnels.

      Le globe nu se compose d’une surface ellipsoïdale, et d’une couleur de fond.

      Le globe seul, accompagné d’un graticule permettant de visualiser la courbure terrestre.

      Nous pouvons y ajouter une couche d’élévation (ElevationLayer) colorisée par une rampe de couleurs (ColorMap):

      Une couche d’élévation colorisée par une ColorMap.

      Nous pouvons également y ajouter des couches de couleur (ColorLayer), en nombre illimité. Ajoutons la couche Mapbox satellite:

      La couche Mapbox satellite

      Ajoutons également une couche de nuages (issue de la NASA):

      Une couche de nuages

      Puis un éclairage dynamique, grâce à une lumière directionnelle three.js (DirectionalLight):

      L’éclairage dynamique

      Il est possible de modifier l’éclairage pour le faire correspondre à une date précise.

      Enfin, ajoutons une atmosphère grâce à l’entité Atmosphere:

      Le globe final

      Conclusion

      Le nouveau mode Globe permettra de créer des scènes gigantesques à l’échelle d’une planète, ou même d’un système solaire entier. Doté de la même API que l’entité Map, il est simple à utiliser.

      Avantages de l’entité Globe
      • Adapté aux très grandes scènes, voire à la planète entière
      • Élimine les distorsions causées par les projections cartographiques
      • Permet de visualiser les cycles jour/nuit à l’échelle de la planète
      • Permet de visualiser des objets en orbite, comme la Lune ou des satellites artificiels
      • Permet de visualiser l’horizon
      Avantages de l’entité Map
      • Adapté aux scènes locales (quelques kilomètres carrés), ou bien aux cartes 2D (OpenStreetMap, etc)
      • Plus simple à manipuler pour les utilisateurs habitués aux outils cartographiques 2D
      • Les axes de la scène sont identiques aux axes du système de coordonnées, ce qui simplifie les mesures
      • Moins gourmand en ressources matérielles, car moins de transformations à effectuer
      • Éclairage plus simple à réaliser
      Galerie

    • sur Giro3D – les dernières nouveautés

      Publié: 17 September 2024, 7:00am CEST par Sébastien Guimmara
      Introduction

      Nous avons le plaisir de vous annoncer une série de mises à jour significatives pour Giro3D, la bibliothèque 3D Web de visualisation géospatiale. Ces nouvelles fonctionnalités viennent renforcer les capacités de notre bibliothèque et sont conçues pour améliorer à la fois la précision et l’efficacité de vos projets de visualisation 3D Web.

      Mode Globe Prévu pour Giro3D 0.40

      Les prochaines versions de Giro3D verront l’arrivée du tant attendu mode globe, permettant d’afficher des globes variés (planètes, lunes, étoiles). Le mode Globe supportera les mêmes fonctionnalités que les cartes planes (Map): nombre illimité de couches de couleurs, terrain, et bien d’autres. Plus d’informations …

      Modes de fusion des couches images Depuis Giro3D 0.39

      Inspiré par QGIS, il est désormais possible de spécifier un mode de fusion pour les couches d’une Map. Les modes de fusion disponibles sont: aucun, normal (la valeur par défaut), additif et multiplicatif. Ces modes de fusion permettent d’obtenir des effets visuels spécifiques, ou contourner l’absence de canal de transparence dans la couche image. Il est par exemple possible d’afficher une couche nuageuse grâce au mode additif, et ce même si la couche est entièrement opaque.

      Outils de dessin et de mesures Depuis Giro3D 0.38

      Tracer des lignes, points, polygones, secteurs angulaires… Le nouveau système de dessin de Giro3D permet de mesurer précisément des distances, angles, pentes, hauteurs et surfaces. Les objets créés peuvent être aisément exportés en GeoJSON. Plus d’informations …

      API de styles des features 3D Depuis Giro3D 0.38

      Giro3D permet d’afficher des features au standard Simple Feature (fichiers GeoJSON, flux WFS…), drapées ou non sur une Map. Jusqu’ici, les APIs de styles étaient très différentes entre la version drapée et non drapée. Les différences ont été considérablement réduites afin de fournir aux utilisateurs une API similaire (à quelques exceptions près).

      Gestion des pertes de contexte WebGL Depuis Giro3D 0.38

      Nous vous avions parlé précédemment dans la 1′ tech de WebGL, la bibliothèque graphique permettant l’affichage de scènes 3D dans le navigateur. Cette bibliothèque est utilisée intensivement par Giro3D, et il peut arriver que la connexion au contexte graphique soit perdue, empêchant la scène de s’afficher correctement.

      Giro3D gère désormais intelligemment la perte et la restauration du contexte graphique afin de restaurer l’affichage de la scène tel qu’elle se présentait avant l’interruption.

      Support des classifications de nuages de points Depuis Giro3D 0.37

      Les classifications de nuages de points apportent une nouvelle dimension à l’analyse de données géospatiales. En permettant une catégorisation précise des points, cette fonctionnalité simplifie la gestion des informations complexes et contribue à une meilleure interprétation des données géographiques.

      Giro3D supporte désormais l’affichage des points classifiés et permet de modifier la couleur et la visibilité de chaque classification.

      Requêtes d’élévation Depuis Giro3D 0.38

      Giro3D supporte désormais les requêtes d’élévation sur les données de terrain. Il est ainsi possible de calculer très rapidement un profil d’élévation (y compris sur un grand nombre de points), ainsi que de positionner précisément des objets à la surface d’un terrain (véhicules, symboles…).

      Eclairage dynamique et ombres portées Prévu pour Giro3D 0.40

      Il sera également possible d’éclairer les terrains avec les lumières dynamiques du moteur three.js, afin, par exemple, de simuler l’ensoleillement et les ombres portées des montagnes.

      Images panoramiques 360° Prévu pour Giro3D 0.40

      Giro3D permettra d’afficher des images panoramiques massives (plusieurs centaines de megapixels) de façon optimisée.

    • sur Piloter son entreprise grâce à l’open source : c’est possible ?

      Publié: 17 September 2024, 6:38am CEST par Caroline Chanlon

      Chez Oslandia, l’open source fait partie intégrante de la culture d’entreprise. « OS » dans « Oslandia » c’est « Open Source » ? Le choix s’est donc naturellement tourné vers des outils de pilotage libres.

      GitLab est l’outil utilisé pour le suivi de la production, des tâches d’administration, du plan de formation, ainsi que l’organisation de la communication ou du recrutement.

      Côté ERP, c’est l’ERP open source Dolibarr qui est utilisé pour gérer la comptabilité depuis le 1er janvier 2023 et Superset pour la réalisation de Dashboards avec des graphiques pour le suivi des indicateurs de pilotage de la société.

      L’utilisation de ces outils apporte des possibilités de personnalisation avancés car on peut développer des modules sur mesure, mais permet également d’appliquer le principe de transparence auprès de l’ensemble des collaborateurs qui peuvent proposer des idées, participer aux décisions et à la vie de l’entreprise.

      Adapter les outils au fonctionnement de l’entreprise et pas l’inverse, c’est une force que permet l’opensource !

      Vincent, co-fondateur et CEO d’Oslandia :

      « Quand on accueille de nouveaux collaborateurs, ils sont parfois décontenancés par l’utilisation massive des outils de suivi sur GitLab, mais après un temps d’adaptation, tous reconnaissent l’efficience et le confort d’utilisation, avec un travail asynchrone, fluide, l’historisation et la capitalisation de l’information, et une transparence quasi complète ! »

      Catherine, directrice administrative, financière et RH d’Oslandia

      « J’ai longtemps travaillé sur des outils propriétaires. En arrivant chez Oslandia, j’ai par la force des choses dû composer et m’adapter avec ces outils dans mon travail. Certains outils comme Gitlab m’ont complètement séduite tant sur la praticité de l’utilisation que dans l’aide quotidienne pour l’organisation administrative. Une vraie découverte !
      Côté gestion financière et RH, l’utilisation de Dolibarr combinée avec Superset a été un peu plus complexe dans la mise en place, mais c’est souvent le cas pour tout déploiement d’un ERP… Superset est assez technique et moins intuitif pour une personne « non dév ».
      Mais passé cette phase d’adaptation et de paramétrage, ces outils OpenSource ont l’avantage de permettre de suivre le pilotage financier efficacement et sur des budgets maîtrisés, et d’avoir une grande liberté dans l’utilisation et la transparence des données. »

    • sur [Story] Oslandia x QWC : épisode 3 / 8

      Publié: 13 September 2024, 6:06am CEST par Caroline Chanlon

      Nous avons vu précédemment des améliorations réalisées par Oslandia sur l’interface web de QWC, côté utilisateur.

      Concernant l’interface d’administration, nous nous sommes concentrés sur le plugin themes qui permet facilement d’ajouter des projets QGIS dans l’application. Certains problèmes ont été corrigés, et de petites fonctionnalités ont été ajoutées, notamment la possibilité d’ajouter des fonds de plan de type XYZ, et la prise en compte de certaines options pour les fonds de plan WMS/WMTS.

      Il y a également possibilité de modifier directement ces fonds de plan dans l’interface d’administration plutôt que de supprimer et recréer un fond en cas d’erreur.

      La création de ressources et de permissions pour administrer un projet a été rendue moins fastidieuse : on peut désormais importer toutes les ressources d’un projet en renseignant le type de ressource que l’on veut créer, ainsi que le rôle qui aura la permission sur ces ressources. La fonctionnalité permet par exemple d’importer directement les 15 couches d’un projet en tant que ressource de type data au rôle sig_edit pour permettre l’édition de données de ce projet à certains utilisateurs.

      La suppression de ressources a également été facilitée en ajoutant des cases à cocher permettant de supprimer plusieurs ressources à la fois.

      Pour continuer sur l’interface d’administration, un gros travail a été réalisé par Gwendoline pour permettre la traduction de toutes les pages d’administration. Il est désormais possible d’afficher cette interface en français (ou dans une autre langue !) comme cela est possible également dans l’application.

      Ces améliorations ne sont pas visibles directement pour l’utilisateur final, mais elles sont très importantes pour faciliter l’administration d’une plateforme QWC.

      Vous aussi vous pouvez contribuer à QWC, directement ou en finançant les évolutions ! N’hésitez pas à nous contacter à infos@oslandia.com

    • sur Fernando Quadro: 5 maneiras de usar IA generativa em seus aplicativos geoespaciais

      Publié: 12 September 2024, 2:00pm CEST

      A IA generativa claramente faz jus ao hype. Onde a localização importa, os LLMs trazem muitas oportunidades para melhorar seus aplicativos GIS e facilitar as interações com os usuários ao introduzir solicitações de linguagem natural.

      Aqui estão 5 maneiras de usar IA generativa em seus aplicativos geoespaciais:

      ? Melhore a busca por dados com pesquisa semântica
      A pesquisa semântica melhora drasticamente os resultados de uma pesquisa lexica simples porque a IA entende o significado das solicitações, sem prestar atenção às palavras escolhidas.
      A pergunta “Quando as lixeiras são recolhidas” encontrará resultados sobre “Política de coleta de lixo”, enquanto a pesquisa lexica não pode corresponder a nenhuma palavra.
      Você pode ir além e usar uma abordagem híbrida (mesclando léxico e semântico) para ajustar sua pesquisa.

      ? Enriqueça seu conjunto de dados extraindo dados estruturados de texto não estruturado
      Os LLMs podem extrair valores estruturados de dados não estruturados, como texto. Quando você tem apenas um título e/ou uma descrição sobre seu conjunto de dados, a IA pode extrair palavras-chave, temas ou qualquer outra informação contextual contida na descrição. Essas informações extraídas podem então ser indexadas para ajustar a pesquisa. Este método pode ser usado para enriquecer registros de metadados e conjuntos de dados.
      Por exemplo, extrair pontos de vista de uma descrição de trilha

      ? Conduza seu aplicativo geoespacial com ferramentas e chamadas de função
      Com a chamada de função, os modelos de IA fornecem uma maneira de especificar diferentes ações que o LLM deve entender de sua solicitação e chamar os métodos apropriados com os argumentos correspondentes diretamente do seu código. Você pode então conduzir seu aplicativo por solicitações naturais (texto ou voz).
      Por exemplo: Adicione ciclovias ao mapa, ative o modo escuro etc.

      ? Desenvolva habilidades de inteligência de localização com modelos text2sql específicos
      Modelos de IA específicos realmente brilham ao transformar uma solicitação do usuário em uma consulta SQL. Isso permite que o usuário solicite qualquer informação complexa oculta em seu banco de dados. O modelo definitivo para aplicações geoespaciais pode ser um modelo text2postgis que permite qualquer consulta espacial para sua aplicação, como junções espaciais, buffers, agrupamento, distribuições h3 e muito mais possibilidades.
      Por exemplo: encontre todos os restaurantes a 1 km de qualquer hotel em Paris.

      ? Crie seu chatbot personalizado com agentes
      Com agentes, você pode usar LLMs para escolher uma sequência de ações a serem tomadas. Isso significa que a IA escolherá por conta própria quais métodos chamar, sequencialmente, para responder à sua solicitação. Uma dessas ações pode ser pedir esclarecimentos ao usuário sobre sua solicitação, criando uma conversa com o usuário. Além disso, ajuda a entender como a IA constrói os resultados, pois o agente está lhe dizendo o que ele está realmente fazendo para atender à sua demanda.

      Por exemplo: encontre todos os restaurantes a 1 km de qualquer hotel em Paris.
      ? Extraindo a geometria de Paris
      ? Colocando todos os hotéis contidos nessa geometria
      ? Construindo um buffer de 1 km ao redor das geometrias de pontos de hotéis
      ? Colocando todos os restaurantes contidos nesses buffers

      Como você vê, a IA Generativa oferece habilidades inestimáveis ??para impulsionar seus aplicativos geoespaciais para o próximo nível e realmente ajudar seus aplicativos a serem realmente consumidos pelos usuários. Ao combinar todas essas técnicas, você pode acabar construindo um chatbot de inteligência de localização para resolver quaisquer preocupações territoriais e ajudar no processo de tomada de decisão em qualquer escala.

      Fonte: webgis.tech
      Instagram: [https:]]
      LinkedIn: [https:]]

    • sur Mappery: Salt Lake City Woodcarving

      Publié: 12 September 2024, 11:00am CEST
      Pièce jointe: [télécharger]

      Matt Malone shared this, he said “Stumbled upon this excellent woodcarved street map of Salt Lake City recently. Airports should have their own #MapsInTheWild category.” We don’t really do categories on Mappery because I would forget to tag things and Arnaud or Dan would probaly tag them differently and there chaos lies.

      Cracking piece of woodwork though!

    • sur GeoServer Team: CVE-2024-36401 Remote Code Execution (RCE) vulnerability in evaluating property name expressions

      Publié: 12 September 2024, 2:00am CEST

      The GeoServer community has been under considerable strain responding to CVE-2024-36401. This vulnerability stems from GeoTools library CVE-2024-36404.

      This vulnerability, in the handling of XPath expressions, affords a “remote code execution” attack that is under active exploit. A remote code execution (RCE) attack allows an attacker to run malicious code on your computer or network.

      For more information:

      Q: Why have I been directed to this post?

      You are responsible for running a GeoServer instance that has not been updated.

      1. CVE-2024-36401 provides mitigation instructions which you should perform immediately.

        Please stop reading and do this now.

      2. Update your instance: Upgrading existing versions (User Guide)

        The instructions include notes on upgrading specific versions. Please read carefully to see if any manual changes are required.

      Q: Do I have to update or is a patch available?

      With such a serious issue several service providers have stepped forward to make fixes available for prior releases.

      Full release:

      Patch provided with CVE-2024-36401 report:

      • GeoServer 2.25.1 (GeoSolutions)
      • GeoServer 2.24.3 (GeoSolutions)
      • GeoServer 2.24.2 (GeoSolutions)
      • GeoServer 2.23.2 (GeoSolutions)
      • GeoServer 2.22.2 (GeoSolutions)
      • GeoServer 2.21.5 (GeoSolutions)
      • GeoServer 2.21.4 (GeoSolutions)
      • GeoServer 2.20.7 (GeoSolutions)
      • GeoServer 2.20.4 (GeoSolutions)
      • GeoServer 2.19.2 (GeoSolutions)
      • GeoServer 2.18.0 (GeoSolutions)

      Free software is a participation sport - to create a patch for a prior release volunteer with community development.

      Q: How often should I upgrade GeoServer?

      GeoServer operates with a time boxed release cycle, maintaining “stable” and “maintenance” releases, over the course of a year.

      • Upgrade GeoServer twice a year as new stable releases are made.

      • Once the release you are using has entered “maintenance” it is a good idea to upgrade (before the release is no longer supported).

      • GeoServer security policy provides one year of support. You may also contact our service providers for extended support beyond this timeframe.

      Q: Notification of security vulnerabilities?

      Stay up to date:

      1. Please monitor release announcements for the heading “Security Considerations”.

        Security Considerations

        This release addresses security vulnerabilities and is considered an essential upgrade for production systems.

        • CVE-2024-36401 Critical

        You can review the release announcement, and in this case with a “Critical” vulnerability decide to update.

      2. When everyone has had an opportunity to update the details of the vulnerability are announced.

        Security Considerations

        This release addresses security vulnerabilities and is considered an essential upgrade for production systems.

        • CVE-2024-36401 Remote Code Execution (RCE) vulnerability in evaluating property name expression (Critical)
      3. As GeoServer has now adopted use CVEs for publication you may also have success with vulnerability scanning tools.

        CVE Scan Results

        These tools function when the vulnerability is published, and do not provide any advance notice.

      Q: Notification of security reports?

      As security reports contain sensitive information they are only shared with representatives of the geoserver-security email list.

      Participation in geoserver-security, like commit access, is volunteer based and reflects trust.

      Please review GeoServer Security Policy if you are in a position to help out.

    • sur Mappery: La Tharee

      Publié: 11 September 2024, 11:00am CEST
      Pièce jointe: [télécharger]

      Julien Minet shared this spectacular mappy beer bottle. “Here again an association of cartography and beers, a hand-drawn map of some part of the Ardenne printed on a special edition of the Belgian beer La Tharée”

    • sur Sean Gillies: Fiona 1.10.0

      Publié: 11 September 2024, 3:16am CEST

      I made a software release last Tuesday. One with new features, deprecations, major refactoring, and packaging and dependency changes, not just bug fixes. Fiona 1.10.0 has three main changes: Python openers, CLI filter commands, and new data classes.

      Python openers can connect filesystems implemented in Python, like fsspec or tiledb.vfs, to GDAL's own virtual filesystem machinery. In most cases, you should reply on GDAL's built-in virtual filesystem handlers. On the other hand, if you have unique or proprietary data access protocols, then Fiona's new openers may be useful. As far as I know, Fiona (and Rasterio) have the only open source implementations of GDAL's virtual filesystem plugin system. David Hoese had the initial idea, Even Rouault helped a lot, and I got it over the finish line. I think this is right up there with MemoryFile for my favorite feature that didn't exist in Python-GIS software before.

      Fiona's CLI has three new commands, filter (strictly speaking, a new mode of this command), map, and reduce. These provide some great features for Unix-style data processing pipelines and are designed to work well with jq and programs of that nature. Think of them as the data processing part of ogr2ogr, split into 3 simpler commands, reading and writing to stdin/stdout by default, with no SQL and no need to know about different SQL dialects. The documentation contains a new tutorial about using filter, map, and reduce. This work began in planetlabs/fio-planet and now lives in the Fiona CLI core. Thank you, Tim Schaub, for stewarding the transition.

      Lastly, Fiona now longer represents GIS features (and their geometries and properties) as Python dicts, but as Python classes: fiona.model.Feature, fiona.model.Geometry, and fiona.model.Properties. These classes provide dict-like access for backwards compatibility, but raise warnings when mutated. These data classes will be immutable in version 2.0.

      A lot of GIS-Python attention has moved on to columnar data and massive amounts of time series, trajectories, telemetry, etc, using Parquet and Arrow. But, there's still a need to reason about persistent spatial things in our world and their relationships to each other. Classic GIS features, in other words. Watersheds, counties, neighborhoods. That's what Fiona remains concerned about.

    • sur Camptocamp: GeoServer 3 Call for Crowdfunding

      Publié: 11 September 2024, 2:00am CEST
      Pièce jointe: [télécharger]
      GeoServer is at a critical turning point and it needs your help to continue its journey as the leading free and Open Source platform for geospatial data. With GeoServer 3 we are transforming the way you interact with geospatial data—making it faster, more intuitive, and more secure.
    • sur Fernando Quadro: GeoServer 3 – Campanha de Crowdfunding

      Publié: 10 September 2024, 9:49pm CEST

      O GeoServer precisa da sua ajuda para continuar sua jornada como a principal plataforma gratuita e de código aberto para dados geoespaciais. Com o GeoServer 3, estamos transformando a maneira como você interage com dados geoespaciais, tornando-os mais rápidos, intuitivos e seguros.

      Esta grande atualização, liderada pela Camptocamp, GeoSolutions e GeoCat, fornecerá:

      • Desempenho futuro: um núcleo modernizado para compatibilidade com as mais recentes tecnologias de gerenciamento e implantação de dados.
      • Processamento de imagem aprimorado: manuseio mais rápido e suave de imagens espaciais e conjuntos de dados maiores.
      • Segurança e conformidade aprimoradas: atenda aos padrões regulatórios e proteja seus dados com os mais recentes aprimoramentos de segurança.
      • Experiência do usuário simplificada: navegação mais fácil, integração de novos serviços e capacitação de usuários em todos os níveis.

      O escopo deste trabalho está além de atualizações de rotina ou manutenção, já que a transição para o GeoServer 3 requer um amplo redesenvolvimento dos sistemas principais, bem como a implementação de práticas de segurança modernas e também testes e validação completos em todas as extensões do GeoServer.

      Os membros do consórcio – Camptocamp, GeoSolutions e GeoCat – têm uma longa história de suporte e contribuição ao GeoServer e estão totalmente comprometidos com o sucesso desta migração. No entanto, este é um grande esforço que não pode ser concluído sem o suporte da comunidade.

      Ao apoiar esta campanha de crowdfunding, você está investindo no futuro do GeoServer e ajudando a sustentar a comunidade geoespacial inovadora e de código aberto.

      1. Por que GeoServer 3?

      À medida que o cenário digital evolui, manter-se atualizado com as últimas tecnologias não é mais opcional — é essencial. O GeoServer 3 está sendo desenvolvido para enfrentar desafios cruciais e garantir que o GeoServer continue sendo uma plataforma confiável e segura para o futuro. Vários fatores-chave tornam esta atualização crítica agora:

      • Conformidade regulatória: Novas regulamentações, incluindo a lista de vulnerabilidades exploradas conhecidas da CISA, exigem que os sistemas sejam totalmente corrigidos para garantir a prontidão operacional. Sem as últimas atualizações, o GeoServer corre o risco de ficar aquém desses padrões, e é por isso que migrar para o Spring 6 é essencial.
      • Fim do suporte para o Spring 5: Em janeiro de 2025, o Spring 5 não receberá mais atualizações de segurança, deixando os sistemas vulneráveis. Como o GeoServer opera como middleware entre serviços da web e camadas de dados essenciais, esta atualização para o Spring 6 é crucial para manter conexões seguras e proteger dados de possíveis violações.
      • Melhorias de segurança: A atualização para o Spring 6 habilita protocolos OAuth2 para autenticação segura, especialmente crítica para uso em larga escala ou em nível empresarial. Esses avanços ajudarão as organizações a atender aos requisitos de segurança em evolução e proteger dados geoespaciais confidenciais.
      • Mudança para o JDK 17: Esta atualização também marca a transição do GeoServer para o JDK 17, que traz melhorias em desempenho, segurança e suporte de longo prazo. Manter o GeoServer alinhado com as versões mais recentes do Java garante compatibilidade com as modernas tecnologias de implantação Tomcat 10 e Jakarta e prepara a plataforma para o futuro.
      • Processamento de imagem aprimorado: O GeoServer 3 substituirá a biblioteca Java Advanced Imaging (JAI) desatualizada pelo kit de ferramentas ImageN mais moderno e flexível. Esta mudança aumentará significativamente os recursos de processamento de imagem, permitindo um manuseio mais rápido de grandes conjuntos de dados espaciais e melhorando a compatibilidade com Java.
      • Conjunto de tecnologia à prova do futuro: Com a migração para o Spring 6 e a mudança para o JDK 17, o GeoServer 3 garante viabilidade de longo prazo. Abordar toda a pilha do GeoServer, incluindo os componentes corporativos GeoFence e Cloud Native GeoServer, permite que as organizações adotem perfeitamente a infraestrutura moderna e os modelos de implantação sem comprometer o desempenho ou a segurança.

      Com este trabalho, o GeoServer está caminhando para um futuro mais seguro e de alto desempenho, pronto para atender às necessidades em evolução da comunidade geoespacial.

      2. Sobre a Campanha de Crowdfunding

      Embora o consórcio esteja totalmente comprometido com esse esforço, o tamanho da tarefa significa que precisamos de suporte financeiro adicional para que isso aconteça. É aqui que você entra. Ao contribuir para esta campanha de financiamento coletivo, você está apoiando diretamente os desenvolvedores e engenheiros que realizarão a atualização, garantindo o sucesso contínuo do GeoServer.

      Seu suporte, seja como indivíduo, instituição pública ou provedor de serviços, é vital. Ao contribuir para esta campanha de financiamento coletivo, você está investindo no futuro da tecnologia geoespacial de código aberto. O financiamento coletivo será estruturado em duas fases para garantir o sucesso:

      • Fase de compromisso: patrocinadores e membros da comunidade prometerão seu suporte financeiro durante esta fase, mas nenhum fundo será coletado. O objetivo é atingir uma meta predefinida que cubra todo o escopo de trabalho necessário para a migração.
      • Ativação do financiamento: assim que a meta for atingida, o financiamento coletivo será ativado e os patrocinadores serão faturados pelos valores prometidos. Isso garante que haja suporte financeiro suficiente para concluir a migração sem correr o risco de subfinanciamento.

      Essa abordagem estruturada garante que o GeoServer 3 seja totalmente financiado antes de qualquer trabalho começar, evitando o risco de uma migração incompleta. Isso garante que o projeto terá os recursos necessários para ser concluído em sua totalidade.

      3. Como participar

      O GeoServer tem a confiança de milhares de organizações no mundo todo. Agora é a hora de dar um passo à frente e se juntar a essa comunidade de apoiadores.

      Ao doar, você ajudará a garantir o futuro do GeoServer como uma plataforma de alto desempenho e código aberto. Cada contribuição conta.

      Pronto para dar suporte ao GeoServer 3? Entre em contato pelo e-mail gs3-funding@googlegroups.com para expressar seu interesse ou prometer seu apoio.

      Juntos, podemos garantir o futuro do GeoServer nos próximos anos.

    • sur GeoCat: GeoServer 3 Call for Crowdfunding

      Publié: 10 September 2024, 5:35pm CEST

      GeoServer is at a critical turning point and it needs your help to continue its journey as the leading free and open-source platform for geospatial data. With GeoServer 3 we are transforming the way you interact with geospatial data—making it faster, more intuitive, and more secure.

      This major upgrade, led by Camptocamp, GeoSolutions, and GeoCat, will deliver:

      • Future-Proof Performance: A modernized core for compatibility with the latest data management and deployment technologies.
      • Enhanced Image Processing: Faster, smoother handling of spatial imagery and larger datasets.
      • Improved Security and Compliance: Meet regulatory standards and protect your data with the latest security enhancements.
      • Streamlined User Experience: Easier navigation, integrating new services, and empowering users at all levels.

      The scope of this work is beyond routine updates or maintenance since the transition to GeoServer 3 requires extensive redevelopment of core systems as well as implementing modern security practices and also thorough testing and validation across all GeoServer extensions

      The consortium members – Camptocamp, GeoSolutions, and GeoCat – have a long-standing history of supporting and contributing to GeoServer and are fully committed to the success of this migration. However, this is a major effort that cannot be completed without community support. 

      By supporting this crowdfunding campaign, you are investing in the future of GeoServer and helping to sustain the innovative, open-source geospatial community. 

      Why GeoServer 3

      As the digital landscape evolves, staying up-to-date with the latest technology is no longer optional—it’s essential. GeoServer 3 is being developed to address crucial challenges and ensure that GeoServer remains a reliable and secure platform for the future. Several key factors make this upgrade critical right now:

      • Regulatory Compliance: New regulations, including the CISA known exploited vulnerabilities list, demand that systems be fully patched to ensure operational readiness. Without the latest updates, GeoServer risks falling short of these standards, which is why migrating to Spring 6 is essential.
      • End of Support for Spring 5: By January 2025, Spring 5 will no longer receive security updates, leaving systems vulnerable. As GeoServer operates as middleware between web services and essential data layers, this upgrade to Spring 6 is crucial to maintaining secure connections and protecting data from potential breaches.
      • Security Enhancements: Upgrading to Spring 6 enables OAuth2 protocols for secure authentication, especially critical for large-scale or enterprise-level use. These advancements will help organizations meet evolving security requirements and protect sensitive geospatial data.
      • Switching to JDK 17: This upgrade also marks GeoServer’s transition to JDK 17, which brings improvements in performance, security, and long-term support. Keeping GeoServer aligned with the latest Java versions ensures compatibility with modern deployment technologies Tomcat 10 and Jakarta and future-proofs the platform.
      • Improved Image Processing: GeoServer 3 will replace the outdated Java Advanced Imaging (JAI) library with the more modern and flexible ImageN toolkit. This switch will significantly enhance image processing capabilities, enabling faster handling of large spatial datasets and improving Java compatibility.
      • Future-Proof Technology Stack: With the migration to Spring 6 and the shift to JDK 17, GeoServer 3 ensures long-term viability. Addressing the entire GeoServer stack, including enterprise components GeoFence and Cloud Native GeoServer, allows organizations to seamlessly adopt modern infrastructure and deployment models without compromising performance or security.

      With this work, GeoServer is moving into a more secure, high-performing future—ready to tackle the evolving needs of the geospatial community.

      About the Crowdfunding campaign

      While our consortium is fully committed to this effort, the size of the task means that we need additional financial support to make it happen. This is where you come in. By contributing to this crowdfunding campaign, you are directly supporting the developers and engineers who will carry out the upgrade, ensuring the continued success of GeoServer.

      Your support, whether as an individual, a public institution, or a service provider, is vital. By contributing to this crowdfunding campaign, you’re investing in the future of open-source geospatial technology. The crowdfunding will be structured in two phases to ensure success:

      1. Commitment Phase: Sponsors and community members will pledge their financial support during this phase, but no funds will be collected. The goal is to reach a predefined target that covers the full scope of work necessary for the migration.
      2. Funding Activation: Once the target is reached, the crowdfunding will be activated, and sponsors will be invoiced for their pledged amounts. This ensures there is enough financial backing to complete the migration without risking underfunding.

      This structured approach ensures that GeoServer 3 is fully funded before any work begins, preventing the risk of an incomplete migration. This guarantees that the project will have the necessary resources to be completed in its entirety.

      How to participate 

      GeoServer is trusted by thousands of organizations worldwide. Now is the time to step forward and join this community of supporters.

      By donating, you’ll help secure GeoServer’s future as a high-performance, open-source platform. Every contribution counts.

      Ready to support GeoServer 3? Contact us at gs3-funding@googlegroups.com to express your interest or pledge your support.

      Together, we can secure the future of GeoServer for years to come.

      The post GeoServer 3 Call for Crowdfunding appeared first on GeoCat bv.

    • sur GeoSolutions: GeoServer 3 Call for Crowdfunding

      Publié: 10 September 2024, 5:04pm CEST

      You must be logged into the site to view this content.

    • sur Fernando Quadro: Geotecnologias e o Combate à Violência

      Publié: 10 September 2024, 2:00pm CEST

      A violência, principalmente os Crimes Violentos Letais Intencionais (CVLIs), são um problema grave no Brasil. Essa categoria engloba homicídios dolosos, latrocínios (roubos seguidos de mortes) e lesões corporais seguidas de morte. Analisar a evolução desses índices nas maiores cidades do país e em âmbito nacional e fundamental para compreender as dinâmicas da violência urbana e para o desenvolvimento de políticas púbicas eficazes que propõem um enfoque multifacetado que combine ações repressivas e preventivas, com base em dados e análises geoespaciais.

      ? Quais ferramentas podem nos auxiliar na gestão da segurança pública?

      ? Visualização de padrões espaciais da criminalidade: Mapas de calor e outras ferramentas identificam áreas com alta concentração de CVLIs, auxiliando na alocação de recursos policiais e na definição de zonas prioritárias para ações preventivas.
      ? Análise de tendências e identificação de focos de violência: Dados históricos e em tempo real permitem identificar tendências da criminalidade, prever picos de violência e direcionar ações de forma proativa.
      ? Monitoramento de operações policiais em tempo real: O rastreamento de viaturas e equipes facilita a coordenação de operações e otimiza a resposta a crimes em andamento.
      ? Investigação de crimes com mais precisão: A análise espacial de cenas de crime, incluindo sobreposição de dados de diferentes fontes, pode auxiliar na investigação e na identificação de suspeitos.
      ? Engajamento da comunidade na prevenção da violência: O compartilhamento de informações geoespaciais com a comunidade pode aumentar a percepção de segurança e fomentar a colaboração na prevenção da criminalidade.

      A integração da Geotecnologia com as estratégias de combate à violência pode fortalecer significativamente as ações de segurança pública:

      ? Fortalecimento das forças policiais: Pode auxiliar no treinamento de policiais na análise espacial, permitindo uma melhor compreensão da dinâmica da criminalidade em suas áreas de atuação.
      ? Prevenção através da educação e inclusão social: Pode ser utilizada para mapear e direcionar programas sociais e educativos para áreas com maior vulnerabilidade à violência, promovendo a inclusão social e prevenindo a criminalidade.
      ? Melhoria do sistema de justiça criminal: A análise geoespacial pode auxiliar na investigação de crimes, na identificação de reincidentes e na definição de medidas socioeducativas mais eficazes.

      Através da inteligência geográfica, é possível ter uma visão mais completa e precisa da criminalidade, permitindo ações mais eficazes na prevenção e no combate à violência.

      Fonte: webgis.tech
      Instagram: [https:]]
      LinkedIn: [https:]]

    • sur Mappery: Noel Gallagher Goes European

      Publié: 10 September 2024, 11:00am CEST
      Pièce jointe: [télécharger]

      Berndasn shared this pic from a Noeel Gallagher concert in Amsterdam

    • sur [Story] Oslandia x QWC : épisode 2 / 8

      Publié: 9 September 2024, 6:03am CEST par Caroline Chanlon

      Nous détaillons dans cet article les améliorations que nous avons apportées à QWC récemment, principalement sur l’interface utilisateur.

      Dans l’application web, nous avons ajouté la possibilité d’avoir des couches de type MVT (Map Box Vector Tiles). Cet ajout permet par exemple d’utiliser les fonds de plan vectoriels de l’IGN avec différents styles.

      L’outil d’identification de l’application permettait déjà d’interroger des données pour en extraire ses attributs. L’identification se fait par un simple clic sur l’objet, ou en dessinant un polygone sur la carte en englobant plusieurs objets. Grâce à nos développements récents, il est désormais possible d’identifier des objets dans un rayon d’une certaine distance. Cette fonctionnalité permet par exemple d’identifier les bornes incendie à moins de 300 mètres d’un carrefour.

      Toujours dans l’application web, il est désormais possible de choisir le format de sortie de l’impression des mises en page. Cette fonctionnalité a été financée par la Métropole du Grand Lyon dont la migration de son application SIG Geonet est en cours de réalisation avec la mise en place de QWC.

      La Métropole du Grand Lyon a également financé d’autres fonctionnalités que nous avons pu reverser dans les dépôts officiels de QWC, notamment la possibilité de zoomer sur la carte en “dessinant” des rectangles au lieu d’utiliser les traditionnels boutons “+” et “-” disponibles en bas à droite de l’application.

      Pour rappel, QWC permet l’édition de données directement dans la base de données qui les contient. Nous avons eu l’occasion de renforcer le comportement de cette fonctionnalité en adaptant l’affichage des boutons d’ajout, de modification et de suppression des objets en fonction des droits paramétrés sur la couche en cours d’édition. Par exemple, si la couche est uniquement éditable par un utilisateur, alors les boutons d’ajout et de suppression d’objets ne sont plus visibles.

      En modifiant le service permettant de générer des permaliens, la base de données de configuration et l’application web, nous avons ajouté la possibilité pour les utilisateurs connectés sur une instance QWC de créer des marque-pages. Cela permet de rapidement sauvegarder une emprise sur laquelle des éléments ont été remarqués par l’utilisateur. Un marque-page permettra de revenir sur ces éléments plus tard, ou de les partager à d’autres utilisateurs. Le marque-page permet de sauvegarder la configuration actuelle de l’application avec les couches affichées, le fond de plan choisi, ainsi que les annotations (dessin) ajoutées par l’utilisateur. On peut choisir d’ouvrir le marque-page sauvegardé dans la fenêtre courante du navigateur, dans un nouvel onglet, ou seulement de zoomer sur l’emprise du marque-page enregistré (sans modifier l’affichage des couches).

      Vous aussi vous pouvez contribuer à QWC, directement ou en finançant les évolutions ! N’hésitez pas à nous contacter à infos@oslandia.com

    • sur Mappery: Argentina on Cow Hide

      Publié: 7 September 2024, 11:00am CEST

      Jachym Cepicky spotted this leatgher map of Argentina in Cafe Dlask in Varnsdorf

      MapsintheWild Argentina on Cow Hide

    • sur Sean Gillies: Black Squirrel volunteering

      Publié: 7 September 2024, 1:18am CEST

      Black Squirrel is the local trail half-marathon that I've finished five times since 2016. I registered to run it again this year, but had to scratch because of my Achilles tendonitis.

      Instead, I'm going to volunteer at the event. I'll be among the first at Lory State Park, helping arriving runners park their cars and find the starting line. After that, I'm going to a trail intersection to keep first-time runners on course as they pour down the Howard Trail. It's going to be a beautiful late summer morning and I'm looking forward to being part of the event.

    • sur GeoSolutions: FREE Webinar: MapStore Major Release 2024.01 and Beyond

      Publié: 6 September 2024, 2:46pm CEST

      You must be logged into the site to view this content.

    • sur Mappery: River Thames coffee table

      Publié: 6 September 2024, 2:00pm CEST

      This rather fine coffee table, which used to belong to my father, depicts the River Thames all the way from source to mouth. The river has been carved into the table and then painted silver, with both ends then wrapping around the side of the table. I’m not sure who the original crafts-person was but its quite fun!

      Happy birthday Mappery!

      MapsintheWild River Thames coffee table

    • sur Mappery: Beer for our Birthday, Mr Wainwright?

      Publié: 6 September 2024, 12:00pm CEST

      Regulars will know that we get a lot of maps in the wild which feature, wine, spirits or beer. I couldn’t resist this Wainwright beer glass (suitably filled) for the last of my birthday sequence.

      Nick Hill sent this pic.

      “Not sure if you’ve had this one before? I saw this map of the Lake District on my glass while enjoying a pint of Wainwright Gold in the Queen of Hearts pub in Daventry.

      Cheers, Nick”

      Well cheers to you Nick and to all of our MapsintheWild community, drink a toast to all of our contributors today if you can.

      MapsintheWild Beer for our Birthday, Mr Wainwright?

    • sur Mappery: Mappy Birthday!

      Publié: 6 September 2024, 11:00am CEST

      Happy Birthday to the incredible @mapsinthewild! ? Mappery has been a constant source of inspiration for my wanderlust adventures. I’m sharing a photo of a motorbike I spotted in Toulouse, France to celebrate this special day. The licence plate from Germany stands for a long journey. The vibrant city always brings back fond memories of my years there as a student: a nice combo to share.

      MapsintheWild Mappy Birthday!

    • sur Mappery: Mappy Birthday! – Meridian 17

      Publié: 6 September 2024, 10:00am CEST

      Today is Mappery’s 6th birthday.

      Remarkable really that we have kept this up for 6 years, that’s just over 1600 posts with almost 2,500 images, 300 weekly email newsletters, thousands of social media follows (no longer X’ing) and a lot of support from our readers and contributors who have made #MapsintheWild into a community.

      So thanks to Ken who helped me to start Mappery when we were on safari together, thanks to Arnaud and Dan who help to share the load and keep the site running and thanks to everyone who has contributed a MapintheWild.

      Today’s birthday post is the 17th Meridian line. Why? Well unsurprisingly, for regular readers/followers, this pic came from Reinder Storm, in our six years Reinder has contributed over 180 of the posts that we have featured which is pretty remarkable. I know this isn’t an actual map but it testifies to the map geekiness and passion of our contributors and followers -THANK YOU REINDER

      Reinder commented “… passes right through Wroc?aw, Poland. The meridian 17° east of Greenwich is a line of longitude that extends from the North Pole across the Arctic Ocean, Europe, Africa, the Atlantic Ocean, the Southern Ocean, and Antarctica to the South Pole”

      We’ll be pushing the boat out with a few more birthday posts today.

      MapsintheWild Mappy Birthday! – Meridian 17

    • sur Mappery: The City of New York has fallen over

      Publié: 6 September 2024, 1:00am CEST

      A bonus pic from Ken for our birthday.

      Ken was in New York recently and he sent this map in the wild from a diner that he stopped at. To fit the map into the available space they rotated it to west up.

      MapsintheWild The City of New York has fallen over

    • sur Fernando Quadro: Geotecnologia aplicada na Silvicultura

      Publié: 5 September 2024, 2:00pm CEST

      As conhecidas geotecnologias extrapolam os limites de sua ciência de desenvolvimento e aplicação. Dentre os vários setores produtivos nos quais ela é utilizada, a silvicultura é uma atividade que aproveita ao máximo o universo de soluções para diversos setores da gestão florestal. Tudo o que ela tem para oferecer pode ser aproveitado em benefício da gestão florestal. A geotecnologia se apresenta como uma ferramenta poderosa, oferecendo novas maneiras de se coletar dados, monitorar ecossistemas florestais e tomar decisões informadas. Atualmente é impossível imaginar que a gestão de uma floresta plantada possa ser realizada sem o uso desta potente ferramenta.

      O drone, por exemplo, como ferramenta é um grande marco na geotecnologia. A possibilidade de municiar cada equipe de campo com um drone com uma câmera fotográfica embarcada elevou o nível da geotecnologia aplicada na silvicultura a um patamar nunca vivenciado. Claro que este avanço teve que superar questões como a dificuldade no processamento de tantas imagens capturadas, na identificação de indivíduos e na separação entre espécies através de técnicas de sensoriamento remoto. Dificuldades essas que se ampliaram com o surgimento de sensores LiDAR embarcados, que detalha o espaço com precisão milimétrica, sendo certo que a resolução dessas demandas abriu muitas possibilidades para o manejo silvicultural, especialmente para o inventário florestal.

      Atualmente o estado da arte da geotecnologia aplicada na silvicultura está representada nos seguintes usos:

      ? Big Data Geoespacial: A explosão de dados geoespaciais gerados por uma variedade de fontes, incluindo sensores remotos, dispositivos móveis e estações de monitoramento, está impulsionando o desenvolvimento de técnicas de análise de big data geoespacial. Isso inclui algoritmos de machine learning e inteligência artificial para análise de padrões espaciais, previsão e tomada de decisões.

      ? Internet das Coisas (IoT) Geoespacial: A integração de sensores geoespaciais em equipamentos de monitoramento cria um ambiente de IoT geoespacial. Isso permite a coleta contínua de dados em tempo real sobre o ambiente e árvores individuais aumentando a compreensão das interações floresta-ambiente.

      ? Geotecnologia para Inteligência Artificial: A geotecnologia está sendo integrada a algoritmos de inteligência artificial para uma variedade de aplicações, incluindo detecção de mudanças no uso da terra, identificação de espécies individuais e doenças a partir de imagens aéreas, previsão de eventos climáticos extremos, otimização de recursos operacionais, entre outras.

      Não há dúvidas que a geotecnologia tem enorme participação no aumento da produtividade florestal experimentada nos dias de hoje, seja na melhoria do manejo, na conservação hídrica e do solo, seja no aproveitamento de regiões antes consideradas inaptas para a silvicultura.

      Fonte: webgis.tech
      Instagram: [https:]]
      LinkedIn: [https:]]

    • sur Mappery: Global Delivery Bike (except New Zealand)

      Publié: 5 September 2024, 11:00am CEST

      Erik spotted this delivery bike in Delft. It looks as if half of New Zealand is missing.

      MapsintheWild Global Delivery Bike (except New Zealand)

    • sur PostGIS Development: PostGIS 3.3.7

      Publié: 5 September 2024, 2:00am CEST

      The PostGIS Team is pleased to release PostGIS 3.4.7! This is a bug fix release.

      3.3.7
    • sur W3C Maps for HTML Community Group: MapML.js release v0.14.0: CSS and Pmtiles

      Publié: 4 September 2024, 11:38pm CEST
      Scripting, Styling and Web Maps: Who’s On First? The Big Three

      Part of the job of being a Web standard means that you have to follow the architecture of the web, which allocates specific jobs across the Big Three languages: HTML, CSS and JavaScript.  For JavaScript, this ideally means supplying and enhancing site-specific semantics and user experience, and leaving accessibility and rendering up to the browser’s HTML infrastructure; for Cascading Style Sheets, it means supporting the HTML rendering engine through accessibility-enhancing styling instructions declared by the page according to the CSS language.  For HTML, it means parsing the page and rendering HTML elements as accessible content, and providing a DOM API to allow access to the content by JavaScript manipulation to provide and enhance effective user experiences.

      In the Maps for HTML universe, our goal is an update to Web standards that sees maps and location decomposed with accessibility as a precondition, into rendering, style and behaviour, and fit into the appropriate architectural domain, be that in HTML, CSS or JavaScript.  There is no support today for maps or location in any of the Big Three languages. The consequence of this lack of platform support for web maps is their exclusive and massive allocation to the JavaScript domain.  The societal implications of this misallocation are a subject for another post.

      To date, we have articulated a mechanism to embed accessible and semantic web maps and locations into an HTML viewer widget, the <mapml-viewer> element.  So far, the fit of this widget to the HTML media widget paradigm seems appropriate.  For a refresher on how the viewer works, check out our Quick Start video.

      The question that bears additional scrutiny and community involvement, and that which is the question of this post is: How can we better leverage CSS for styles of maps and location, while enhancing accessibility?  Opaque (binary) media types HTML media like video and audio don’t have much relationship with CSS, whereas map rendering has a natural connection to text and graphics styling.  It’s the natural connection of maps to web architecture that makes maps and location a good candidate for a web standard.

      What You Can Do With CSS in MapML Today – Support by GeoServer

      The main use of CSS in MapML is to style the tree of elements rooted at the <map-feature>.  The <map-feature> element is a custom element that can be obtained in a fetched MapML-format XHTML document, or found inline in HTML proper, between the <layer-> … </layer-> layer tags.  <map-feature> elements are parsed and their <map-geometry> elements rendered as a shadow-DOM embedded SVG <g> tag (group element), with different geometry values rendered within that group as <path>s within the parent <g>.  Any class attributes on the <map-feature> are copied to the root <path> element, and class attributes on descendent geometry elements are copied to the <path> that they are rendered as. This allows us to apply CSS rules to <map-feature> as though its parts were actual SVG tags, so long as the rendered feature parts can be selected via their class, which is copied from the source <map-whatever> element.  This can even be useful for making accessible interactive maps

      This technique  is used by GeoServer for example, which transforms Style Layer Descriptor server styles into CSS stylesheets with selectors for generated class values from the server layers’ contents.  In addition to allowing basic styling of points, lines and polygons, this facility enables GeoServer to dynamically generate and style MapML-encoded vector tiles.  The perceived performance of tiled vector maps can be acceptable, especially when such tiles are created and cached for later access, and improvements can be expected with additional specification and software development effort.  This is all pretty interesting because it is starting to show us a path to (better) integration between the native web platform languages like HTML and CSS on the one hand, and maps on the other.

      Mapbox Vector Tiles and the pmtiles Archive Format

      “pmtiles” is the name of a modern, cloud-friendly map tile archive format that is gaining popularity among web mapping applications, because it allows websites to readily serve their own map vector tile data without necessarily hosting the whole world, which is cost- and time-prohibitive.  The motivation behind pmtiles (a product of the Protomaps project) would seem to be compatible with our community’s goal of standardising maps for the web. In the words of its creator Brandon Liu, :

      Maps are everywhere on the Internet. Think of any popular retail site, travel search or local government portal. The infrastructure of the web, from languages like JavaScript, front-end frameworks, and databases, is overwhelmingly free software. Maps are one of the few remaining choke points* of an otherwise open web.

      * choke points aka control points

      pmtiles efficiently manages potentially massive amounts of tiled vector data in a single archive file.  The archive can be hosted in a variety of server environments, but the main criteria for success is that the host server is capable of http range requests. When a client needs a particular tile, it makes the request not using the zoom, row and column coordinates as URL parameters or path steps, but by transforming the tile’s coordinates to a pmtiles archive byte range, using the tile’s byte offset and length, calculated from the archive’s metadata which contains, among other information, the formula to perform the transformation.

      Under the hood, a .pmtiles archive file is a clever application of Hilbert space filling curves to efficiently compress tiles in the Web Mercator projection, encoded in the Mapbox Vector Tiles or other format (mvt).  Mvt is a kind of de facto standard among vector tile formats, of which there are many, too numerous to mention.  The protomaps-leaflet library integrates support for both .pmtiles archives as well as raw .mvt tile responses served through a web server API, following the {z}/{x}/{y} URL (template) convention.  Protomaps-leaflet styling of tiles is accomplished via “themes”, or “rules”.  Rules encode canvas 2D API call parameters on a per-tile, per-layer basis, such that map feature styles are encoded as JavaScript objects and methods that are called back by the protomaps-leaflet tile rendering engine. A theme is a named collection of rules, e.g. “light” or “dark”.

      The newly-renamed MapML.js release 0.14.0 supports pmtiles archives and .mvt format API services, including custom map styling, via a protomaps-leaflet integration, mainly through the templated <map-link> element.  Projection support is currently limited to OSMTILE maps, because of the (hopefully short-term) restriction of protomaps-leaflet to the Web Mercator projection and powers of 2 tile pyramids. Custom styles can be created and included as a “stylesheet” module by means of an exported symbol named “pmtilesStyles”, containing a defined and required JavaScript object structure.

      If you’re using GeoServer, or pmtiles / mvt support in MapML.js, or any open source component from our community in your maps, please get in touch, we’d love to hear from you about your experience.

      Call For Community

      A large measure of the payoff for the effort of building maps into HTML will be simple and decentralised access (i.e. no “choke points”) to the incredible rendering performance afforded by native code styling through CSS.  What wouldn’t be possible in such a world?  Accessible location navigation, animations, moving features, real time location updates, oh my!  Worth mentioning: the CSS development community often sets an example of dynamic, open collaboration definitely worthy of emulating, if not wholly joining forces with.

      In summary, let’s take the “special” out of spatial, and collectively imagine, design and implement a HTML+CSS engine capable of fully expressing and executing cartographic rules, for the future.

    • sur Fernando Quadro: Porque usar o Geography no PostGIS?

      Publié: 4 September 2024, 2:00pm CEST

      Você sabia que ao trabalhar com grandes volumes de dados no PostGIS pode te levar a medições imprecisas?

      É verdade. Quando você armazena seus dados geoespaciais como Geometry, o PostGIS trata esses dados como um plano 2D, como se a Terra fosse uma “panqueca”.

      Mas não se preocupe, existe solução para isso. Você pode armazenar seus dados com o tipo Geography no PostGIS ao invés de Geometry.

      Isso irá dizer ao PostGIS para usar um sistema de coordenadas “arredondas”, proporcionando medições muito mais precisas.

      Nesses casos o tipo Geography é a melhor opção, e traz como benefícios:

      ? Dados armazenados em WGS84 (latitude/longitude) com medidas em metros
      ? Funções nativas especiais feitas apenas para este tipo de dados
      ? Perfeito para lidar com grandes regiões

      Se você tem já sua base de dados armazenada em Geometry, não se preocupe, você pode transformar seus dados em tempo de execução para Geography e obter resultados mais precisos em suas medições.

      Fonte: webgis.tech
      Instagram: [https:]]
      LinkedIn: [https:]]

    • sur WhereGroup: Plugins – praktische Helfer in QGIS

      Publié: 4 September 2024, 11:07am CEST
      Dieses Mal stellen wir Ihnen eine Auswahl von fünf nützlichen Plugins aus den über 2.000 Plugins für QGIS, die Ihnen bei Ihrer täglichen Arbeit weiterhelfen.
    • sur Mappery: Surficial geology of Maine

      Publié: 4 September 2024, 11:00am CEST

      Doug shared this – Surficial geology of Maine #MapsintheWild @ Watershed Art Center Newcastle, Maine

      If like me you thought Surficial Geology was a typo, read and learn

      MapsintheWild Surficial geology of Maine

    • sur [Story] Oslandia x QWC : épisode 1 / 8

      Publié: 4 September 2024, 6:52am CEST par Caroline Chanlon

      Depuis plusieurs années maintenant, et notamment grâce aux stages de fin d’études de Flavie et Benoît (qui avaient donné lieu à une série d’articles), Oslandia investit dans la solution logicielle QWC (pour QGIS Web Client) afin de proposer à ses clients de publier leurs projets QGIS sur le web.

      QWC est un framework applicatif et une application clefs en main, permettant de publier des projets QGIS sur le web, en partageant les mêmes données, la même configuration et le même rendu. Il comporte les éléments classiques d’un SIG web, et peut être totalement personnalisé.

      QWC est un projet OpenSource développé par plusieurs acteurs de la communauté. On peut notamment citer Sourcepole ( Suisse ), qui a réalisé le développement initial de QWC et continue de contribuer.

      Nous réalisons notamment des projets pour nos clients, par exemple l’EuroMétropole de Strasbourg, le groupement de recherche Silex, WKN, Amarenco, le Syndicat des Eaux de la Manche, les agences de l’eau, la Métropole du Grand Lyon et d’autres.

      Au passage, on notera que Clément Zitouni de l’EuroMétropole de Strasbourg contribue régulièrement aux différents dépôts du projet pour ajouter des fonctionnalités ou corriger certains problèmes directement. Bravo à lui !

      Au delà des projets client, Oslandia investit également en fonds propres sur QWC. Chaque année, environ 10% du temps de l’équipe de production est dédiée à l’auto-investissement sur les projets OpenSource que nous développons ou maintenons.

      Avec ces différents projets, Oslandia a pu intégrer plusieurs collaborateurs dans le développement et la maintenance de QWC. C’est toujours le cas de Benoît Blanc, rejoint par Gwendoline Andres notamment.

      Plusieurs améliorations ont été intégrées dans la solution logicielle, que ce soit de nouvelles fonctionnalités ou bien des corrections de bugs.

      L’environnement QWC est composé d’une application web écrite en Javascript (avec le framework React) ainsi que de micro-services en Python. Nous sommes intervenus sur tous ces composants, avec des contributions dans le cœur de l’application.

      QWC est en perpétuelle évolution avec de nombreuses fonctionnalités développées en continu.

      Dans les prochains articles, nous ferons un tour – non exhaustif – de ce qui a été réalisé récemment par Oslandia.

    • sur Variabilisez vos profils QGIS avec QDT

      Publié: 3 September 2024, 4:39pm CEST par Julien Moura
      Pièce jointe: [télécharger]
      Variables d’environnement ?

      Les variables d’environnement sont, comme leur nom l’indique, des paires clé/valeur permettant de décrire et paramétrer des applicatifs selon un environnement. Une variable peut intervenir à différents niveaux ou périmètres : système d’exploitation, session avec droits d’administration, annuaire/domaine, session utilisateur, applicatif, processus.

      Capture d'écran du gestionnaire de variables d'environnement de Windows 11 avec le dialogue permettant d'en modifier une qui est ouvert

      Gestion des variables d’environnement sur Windows 11

      Si vous êtes familier/ère avec l’utilisation de QGIS, c’est le même principe que pour les variables prédéfinies, liées à un projet, à des couches, etc. et utilisables à différents endroits (expressions, mode atlas/rapport…). D’ailleurs QGIS gère également des variables d’environnement à l’échelle de son installation et par profil (voir la documentation).

      Remplacement dynamique par QDT

      Dans QDT, vous pouvez définir des variables dans vos fichiers de configuration `QGIS3.ini` et `QGISCUSTOMIZATION3.ini`, qui seront ensuite interpolées avec les valeurs des variables d’environnement au moment du déploiement. Cette approche permet de paramétrer de manière flexible divers aspects de la configuration de QGIS sans modifier manuellement les fichiers sur chaque machine.

      3 avantages :

      – Flexibilité : adapter facilement la configuration à différentes machines sans modifications manuelles des fichiers.
      – Maintenance réduite : gérez une seule version des fichiers QGIS*3.ini qui s’adapte dynamiquement aux conditions locales.
      – Sécurité : séparer les données sensibles de la configuration en les conservant dans les variables d’environnement.

      Cet usage des variables est particulièrement utile dans des environnements où les chemins d’accès ou les configurations peuvent varier significativement entre les déploiements, permettant une personnalisation sans effort et à la volée de l’installation QGIS.

      En bonus, nous avons intégré un mécanisme primaire de sauvegarde des paramètres en cas de conflit entre les valeurs poussées par QDT et celles changées par l’utilisateur. Concrètement, cela se traduit par des sections préfixées directement dans le fichier INI :

       

    • sur Fernando Quadro: Inteligência Artificial, GIS e Smart Cities

      Publié: 3 September 2024, 2:00pm CEST

      As cidades inteligentes representam o futuro da vida urbana, integrando tecnologia e soluções baseadas em dados para aumentar a eficiência, a sustentabilidade e a qualidade de vida dos residentes. No centro do desenvolvimento das cidades inteligentes está o papel da inteligência artificial (IA) nos Sistemas de Informação Geográfica (GIS), revolucionando a forma como as cidades planejam, otimizam e gerem infraestruturas críticas, como redes de transporte, serviços públicos e serviços públicos.

      Nesta postagem falaremos um pouco sobre o papel multifacetado da IA ??no GIS para o planejamento de infraestrutura de cidades inteligentes, com foco em suas implicações e benefícios para o desenvolvimento urbano.

      O planeamento de infraestruturas de cidades inteligentes abrange uma vasta gama de elementos, desde sistemas de transporte inteligentes e serviços públicos energeticamente eficientes até serviços públicos responsivos e desenvolvimento urbano sustentável. O GIS alimentado por IA desempenha um papel fundamental neste processo, aproveitando dados espaciais, análises preditivas e monitoramento em tempo real para otimizar o projeto, operação e manutenção de infraestrutura para cidades inteligentes e resilientes.

      ? Aplicações de IA no planejamento de infraestrutura de cidades inteligentes:

      ? Otimização de Transporte
      ? Gestão de Utilidades e Eficiência Energética
      ? Prestação de serviço público
      ? Monitoramento Ambiental e Sustentabilidade

      ? Benefícios da IA ??no planejamento de infraestrutura de cidades inteligentes:

      ? Maior eficiência e otimização de recursos
      ? Tomada de decisão baseada em dados
      ? Melhor experiência do cidadão e qualidade de vida
      ? Desenvolvimento Sustentável e Resiliência

      Embora a IA traga benefícios significativos para o planeamento de infraestruturas de cidades inteligentes, desafios como a privacidade de dados, a segurança cibernética, a parcialidade dos algoritmos, a conformidade regulamentar e a equidade digital precisam de ser abordados. Isto requer quadros de governação robustos, envolvimento das partes interessadas, práticas éticas de IA e estratégias de planeamento urbano inclusivas para o desenvolvimento equitativo e sustentável de cidades inteligentes.

      Concluindo, o SIG alimentado por IA está a transformar o cenário do planeamento de infraestruturas de cidades inteligentes, oferecendo oportunidades sem precedentes de eficiência, sustentabilidade e inovação no desenvolvimento urbano. Ao aproveitar as capacidades da IA, as cidades podem otimizar a infraestrutura, melhorar a prestação de serviços e criar ambientes urbanos mais habitáveis ??e resilientes para as gerações vindouras. Adotar a IA no planejamento de cidades inteligentes não se trata apenas de avanço tecnológico – trata-se de construir cidades mais inteligentes, mais conectadas e sustentáveis ??que beneficiem a todos.

      Fonte: webgis.tech
      Instagram: [https:]]
      LinkedIn: [https:]]

    • sur Mappery: Pijnacker-Nootdorp

      Publié: 3 September 2024, 11:00am CEST

      Eric said “Today I visited the municipality of Pijnacker-Nootdorp. There’s a beautiful #mapsinthewild carpet in the Council Chamber (with even half of Delft on it)”

      MapsintheWild Pijnacker-Nootdorp

    • sur Sean Gillies: August 22, 2018: Paris in a Day

      Publié: 3 September 2024, 1:16am CEST

      Six years ago my family and I spent some time in France, passing through Lyon and Paris on the way back to Colorado. While Ruth stayed behind at a conference in Montpellier, Arabelle, Bea, and I did Paris in a day. We saw many bones, ate much gelato, hiked many stairs, rode many trains and buses, and enjoyed being together, seeing new places, and using our second language in one of the world's capitals. I cherish my memories of this day. I felt like I was killing the fun Francophile dad role and thoroughly enjoyed the company of my kids. I had a memorable time. We confirmed in June that Arabelle and Bea have strong, positive memories, as well.

      I went to Instagram for the first time in years to dig up a photo taken on that day that I haven't published on my blog before.

      https://live.staticflickr.com/65535/53967403684_ff82372d41_b.jpg

      A child in a blue top making a peace sign in front of the Eiffel Tower and waxing moon.

      We didn't go back to the Trocadero in June, assuming that it was closed for Olympics construction, but we did go back to Montmartre and Sacre Coeur. Both Arabelle and Bea have been cultivating Spanish as a third language since 2018 and had a chance to use it on our recent visit. We encountered a Spanish kid of Bea's age who had been separated from her parents and kept her company until we could reach her mom on the phone. She had no phone of her own, but had memorized key numbers.

    • sur Fernando Quadro: PostGIS e a Inteligência Artificial

      Publié: 2 September 2024, 10:13pm CEST

      No atual cenário empresarial acelerado, aproveitar os dados de localização pode proporcionar uma vantagem competitiva significativa. Desde a otimização da logística e das rotas de entrega até à melhoria das experiências dos clientes através de serviços baseados em localização, a capacidade de extrair informações valiosas de dados geográficos é fundamental.

      Como você já deve saber o PostGIS é uma extensão de código aberto amplamente utilizada que adiciona suporte para objetos geográficos, permitindo que consultas SQL espaciais sejam executadas dentro do sistema de gerenciamento de banco de dados PostgreSQL. O Postgres-AI, por outro lado, é uma extensão introduzida recentemente que traz recursos de aprendizado de máquina (ML) diretamente para o PostgreSQL, permitindo treinamento e inferência de modelos no banco de dados.

      A integração do PostGIS e do Postgres-AI abre inúmeras possibilidades para inteligência de localização e análise de dados espaciais, incluindo:

      ?Seleção de sites de varejo e análise de mercado
      ?Logística e otimização da cadeia de suprimentos
      ?Modelagem preditiva para serviços baseados em localização
      ?Planejamento urbano e desenvolvimento de infraestrutura
      ?Monitoramento ambiental e esforços de conservação
      ?Marketing direcionado e segmentação de clientes

      Ao aproveitar essas ferramentas poderosas, as organizações podem tomar decisões baseadas em dados, otimizar operações e aprimorar sua compreensão de padrões e relacionamentos geográficos, ao mesmo tempo em que aproveitam o poder do aprendizado de máquina.

      Fonte: webgis.tech
      Instagram: [https:]]
      LinkedIn: [https:]]

    • sur Mappery: Around the Globe

      Publié: 2 September 2024, 11:00am CEST

      From Reinder “… the title means something like ‘Around the globe’. Needs no further explanation I presume” – nope!

      MapsintheWild Around the Globe

    • sur TorchGeo: v0.6.0

      Publié: 1 September 2024, 12:12pm CEST
      TorchGeo 0.6.0 Release Notes

      TorchGeo 0.6 adds 18 new datasets, 15 new datamodules, and 27 new pre-trained models, encompassing 11 months of hard work by 23 contributors from around the world.

      Highlights of this release Multimodal foundation models

      Diagram of a unified multimodal Earth foundation model

      There are thousands of Earth observation satellites orbiting the Earth at any given time. Historically, in order to use one of these satellites in a deep learning pipeline, you would first need to collect millions of manually-labeled images from this sensor in order to train a model. Self-supervised learning enabled label-free pre-training, but still required millions of diverse sensor-specific images, making it difficult to use newly launched or expensive commercial satellites.

      TorchGeo 0.6 adds multiple new multimodal foundation models capable of being used with imagery from any satellite/sensor, even ones the model was not explicitly trained on. While GASSL and Scale-MAE only support RGB images, DOFA supports RGB, SAR, MSI, and HSI with any number of spectral bands. It uses a novel wavelength-based encoder to map the spectral wavelength of each band to a known range of wavelengths seen during training.

      The following table describes the dynamic spatial (resolution), temporal (time span), and/or spectral (wavelength) support, either via their training data (implicit) or via their model architecture (explicit), offered by each of these models:

      Model Spatial Temporal Spectral
      DOFA implicit - explicit
      GASSL implicit - -
      Scale-MAE explicit - -

      TorchGeo 0.6 also adds multiple new unimodal foundation models, including DeCUR and SatlasPretrain.

      Source Cooperative migration

      Migration from Radiant MLHub to Source Cooperative

      TorchGeo contains a number of datasets from the recently defunct Radiant MLHub:

      These datasets were recently migrated to Source Cooperative (and AWS in the case of SpaceNet), but with a completely different file format and directory structure. It took a lot of effort, but we have finally ported all of these datasets to the new download location and file hierarchy. As an added bonus, the new data loader code is significantly simpler, allowing us to remove 2.5K lines of code in the process!

      OSGeo community project

      OSGeo Community logo

      TorchGeo is now officially a member of the OSGeo community! OSGeo is a not-for-profit foundation for open source geospatial software, providing financial, organizational, and legal support. We are in good company, with other OSGeo projects including GDAL, PROJ, GEOS, QGIS, and PostGIS. Membership in OSGeo promotes advertising of TorchGeo to the community, and also ensures that we follow best practices for the stability, health, and interoperability of the open source geospatial ecosystem.

      All TorchGeo users are encouraged to join us on Slack, join our Hugging Face organization, and join us in OSGeo using any of the following badges in our README:

      slack
      huggingface
      osgeo

      Lightning Studios support

      Lightning AI logo

      TorchGeo has always had a close collaboration with Lightning AI, including active contributions to PyTorch Lightning and TorchMetrics. In this release, we added buttons allowing users to launch our tutorial notebooks in the new Lightning Studios platform. Lightning Studios is a more powerful version of Google Colab, with reproducible software and data environments allowing you to pick up where you left off, VS Code and terminal support, and the ability to quickly scale up to a large number of GPUs. All TorchGeo tutorials have been confirmed to work in both Lightning Studios and Google Colab, allowing users to get started with TorchGeo without having to invest in their own hardware.

      Backwards-incompatible changes
      • All Radiant MLHub datasets have been ported to the Source Cooperative file hierarchy (#1830)
      • GeoDataset: the bbox sample key was renamed to bounds in order to support Kornia (#2199)
      • Chesapeake7 and Chesapeake13: datasets were removed when updating to the 2022 edition (#2214)
      • Benin Cashews and Rwanda Field Boundary: remove os.path.expanduser for consistency (#1705)
      • LEVIR-CD and OSCD: images key was split into image1 and image2 for change detection (#1684, #1696)
      • EuroSAT: B08A was renamed to B8A to match Sentinel-2 (#1646)
      Dependencies New (optional) dependencies
      • aws-cli: to download datasets from AWS (#2203)
      • azcopy: to download datasets from Azure (#2064)
      • prettier: for YAML file formatting (#2018)
      • ruff: for code style and documentation testing (#1994)
      Removed (optional) dependencies
      • radiant-mlhub: website no longer exists (#1830)
      • rarfile: datasets rehosted as zip files (#2210)
      • zipfile-deflate: no longer needed for newer Chesapeake data (#2214)
      • black: replaced by ruff (#1994)
      • flake8: replaced by ruff (#1994)
      • isort: replaced by ruff (#1994)
      • pydocstyle: replaced by ruff (#1994)
      • pyupgrade: replaced by ruff (#1994)
      Changes to existing dependencies
      • python: 3.10+ required following SPEC 0 (#1966)
      • fiona: 1.8.21+ required (#1966)
      • kornia: 0.7.3+ required (#1979, #2144)
      • lightly: 1.4.5+ required (#2196)
      • lightning: 2.3 not supported due to bug (#2155, #2211)
      • matplotlib: 3.5+ required (#1966)
      • numpy: 1.21.2+ required (#1966), numpy 2 support added (#2151)
      • pandas: 1.3.3+ required (#1966)
      • pillow: 3.3+ required (#1966), jpeg2000 support required (#2209)
      • pyproj: 3.3+ required (#1966)
      • rasterio: 1.3+ required (#1966)
      • shapely: 1.8+ required (#1966)
      • torch: 1.13+ required (#1358)
      • torchvision: 0.14+ required (#1358)
      • h5py: 3.6+ required (#1966)
      • opencv: 4.5.4+ required (#1966)
      • pycocotools: 2.0.7+ required (#1966)
      • scikit-image: 0.19+ required (#1966)
      • scipy: 1.7.2+ required (#1966)
      Datamodules New datamodules Changes to existing datamodules
      • Remove torchgeo.datamodules.utils.dataset_split (#2005)
      • EuroSAT: make sure normalization is actually applied (#2176)
      Changes to existing base classes
      • Fix plotting in datamodules when dataset is a subset (#2003)
      Datasets New datasets Changes to existing datasets
      • Benin Cashews: migrate to Source Cooperative (#2116)
      • Benin Cashews: remove os.path.expanduser for consistency (#1705)
      • BigEarthNet: fix broken download link (#2174)
      • CDL: add 2023 checksum (#1844)
      • Chesapeake: update to 2022 edition (#2214)
      • ChesapeakeCVPR: reuse NLCD colormap (#1690)
      • Cloud Cover: migrate to Source Cooperative (#2117)
      • CV4A Kenya Crop Type: migrate to Source Cooperative (#2090)
      • EuroSAT: rename B08A to B8A to match Sentinel-2 (#1646)
      • FireRisk: redistribute on Hugging Face (#2000)
      • GlobBiomass: add min/max timestamp (#2086)
      • GlobBiomass: use float32 for pixelwise regression mask (#2086)
      • GlobBiomass: fix length of dataset (#2086)
      • L7 Irish: convert to IntersectionDataset (#2034)
      • L8 Biome: convert to IntersectionDataset (#2058)
      • LEVIR-CD+: split image into image1 and image2 for change detection (#1696)
      • NASA Marine Debris: migrate to Source Cooperative (#2206)
      • OSCD: support fine-grained band selection (#1684)
      • OSCD: split image into image1 and image2 for change detection (#1696)
      • PatternNet: redistribute on Hugging Face (#2100)
      • RESISC45: redistribute on Hugging Face (#2210)
      • Rwanda Field Boundary: don't plot empty masks during testing (#2254)
      • Rwanda Field Boundary: migrate to Source Cooperative (#2118)
      • Rwanda Field Boundary: remove os.path.expanduser for consistency (#1705)
      • SpaceNet 1–7: migrate to Source Cooperative (#2203)
      • Tropical Cyclone: migrate to Source Cooperative (#2068)
      • VHR-10: redistribute on Hugging Face (#2210)
      • VHR-10: improved plotting (#2092)
      • Wester USA Live Fuel Moisture: migrate to Source Cooperative (#2206)
      Changes to existing base classes
      • Add support for pathlib.Path to all datasets (#2173)
      • Datasets can now use command-line utilities to download (#2064)
      • GeoDataset: bbox key was renamed to bounds (#2199)
      • GeoDataset: ignore other bands for separate files (#2222)
      • GeoDataset: don't warn about missing files for downloadable datasets (#2033)
      • RasterDataset: allow subclasses to specify which resampling algorithm to use (#2015)
      • RasterDataset: use nearest neighbors for int and bilinear for float by default (#2015)
      • RasterDataset: calculate resolution after changing CRS (#2193)
      • RasterDataset: support date_str containing % character (#2233)
      • RasterDataset: users can now specify the min/max time of a dataset (#2086)
      • VectorDataset: add dtype attribute to match RasterDataset (#1869)
      • VectorDataset: extract timestamp from filename to match RasterDataset (#1814)
      • IntersectionDataset: ignore 0 area overlap (#1985)
      New error classes
      • DatasetNotFoundError: when a dataset has not yet been downloaded (#1714, #2053)
      • DependencyNotFoundError: when an optional dependency is not installed (#2054)
      • RGBBandsMIssingError: when you try to plot a dataset but don't use RGB bands (#1737, #2053)
      Models New model architectures New model weights Samplers Changes to existing samplers
      • RandomGeoSampler: fix performance regression, 60% speedup with preprocessed data (#1968)
      Trainers New trainers Changes to existing trainers
      • Explicitly specify batch size (#1928, #1933)
      • MoCo: explicitly specify memory bank size (#1931)
      • Semantic Segmentation: support ingore_index when using Jaccard loss (#1898)
      • SimCLR: switch from Adam to LARS optimizer (#2196)
      • SimCLR: explicitly specify memory bank size (#1931)
      Transforms
      • Use Kornia's AugmentationSequential for all model weights (#1979)
      • Update TorchGeo's AugmentationSequential to support object detection (#1082)
      Documentation Changes to API docs
      • Datasets: add license information about every dataset (#1732)
      • Datasets: update link to cite SSL4EO-L dataset (#1942)
      • Models: emphasize new multimodal foundation models (#2236)
      • Trainers: update num_classes parameter description (#2101)
      Changes to user docs
      • Alternatives: update metrics (#2259)
      • Contributing: explain how to use new I/O Bench dataset (#1972)
      Changes to tutorials
      • Add button for the new Lightning Studios (#2146)
      • Remove button for the recently defunct Planetary Computer Hub (#2107)
      • Custom Raster Datasets: download the dataset before calling super (#2177)
      • Custom Raster Datasets: fix typo (#1987)
      • Transforms: update EuroSAT band names to match Sentinel-2 (#1646)
      Other documentation changes
      • README: fix CLI example (#2142)
      • README: add Hugging Face badge (#1957)
      • README: fix example of creating fake raster data (#2162)
      • Read the Docs: use latest Ubuntu version to build (#1954)
      • Allow horizontal scrolling of wide tables (#1958)
      • Fix broken links and redirects (#2267)
      Testing Style
      • Use prettier for configuration files (#2018)
      • Use ruff for code files (#1994, #2001)
      Type hints
      • Ensure all functions have type hints (#2217)
      • Make all class variables immutable (#2218)
      • Check for unreachable code (#2241)
      Unit testing
      • Datasets: test dataset length (#2084, #2089)
      • Datamodules: don't download during testing (#2215, #2231)
      • download_url: add shared fixture to avoid code duplication (#2232)
      • load_state_dict: add shared fixture to avoid code duplication (#1932)
      • load_state_dict_from_url: add shared fixture to avoid code duplication (#2223)
      • torch_hub: add fixture to avoid downloading checkpoints to home directory (#2265)
      • Pytest: silence warnings (#1929, #1930, #2224)
      • PyVista: headless plotting (#1667)
      Other CI changes
      • Check numpy 2 compliance (#2151)
      • Coverage: use newer flag to override ignores (#2260)
      • Dependabot: update devcontainer (#2025)
      • Dependabot: group torch and torchvision (#2025)
      • Labeler: update to v5 (#1759)
      • macOS: disable pip caching (#2024)
      • Windows: fail fast mode (#2225)
      Contributors

      This release is thanks to the following contributors:

      @adamjstewart
      @alhridoy
      @ashnair1
      @burakekim
      @calebrob6
      @cookie-kyu
      @DarthReca
      @Domejko
      @favyen2
      @GeorgeHuber
      @isaaccorley
      @kcrans
      @nilsleh
      @oddeirikigland
      @pioneerHitesh
      @piperwolters
      @robmarkcole
      @sfalkena
      @ShadowXZT
      @shreyakannan1205
      @TropicolX
      @wangyi111
      @yichiac

    • sur Mappery: Lambeth Palace

      Publié: 1 September 2024, 11:00am CEST

      Simon Wrigley found this beautiful window near the entrance to Lambeth Palace.

      Rounding the corner, He found it was not one window but two – one with each hemisphere of the globe. It looks like a Nicolosi Globular Projection, which is a Double hemispheric polyconic map projection

      MapsintheWild Lambeth Palace

    • sur Mappery: It’s a Squishy World

      Publié: 31 August 2024, 11:00am CEST

      Barry shared this pic of a globe style stress ball, I think it may originate from a proprietary software vendor

      MapsintheWild It’s a Squishy World

    • sur Mappery: Collette

      Publié: 30 August 2024, 11:00am CEST

      Reinder shared this pic of a shop window display “Cartographically inspired shop window of the 2nd hand bookshop Colette in The Hague”

      MapsintheWild Collette

    • sur Free and Open Source GIS Ramblings: Building spatial analysis assistants using OpenAI’s Assistant API

      Publié: 29 August 2024, 8:15pm CEST

      Earlier this year, I shared my experience using ChatGPT’s Data Analyst web interface for analyzing spatiotemporal data in the post “ChatGPT Data Analyst vs. Movement Data”. The Data Analyst web interface, while user-friendly, is not equipped to handle all types of spatial data tasks, particularly those involving more complex or large-scale datasets. Additionally, because the code is executed on a remote server, we’re limited to the libraries and tools available in that environment. I’ve often encountered situations where the Data Analyst simply doesn’t have access to the necessary libraries in its Python environment, which can be frustrating if you need specific GIS functionality.

      Today, we’ll therefore start to explore alternatives to ChatGPT’s Data Analyst Web Interface, specifically, the OpenAI Assistant API. Later, I plan to dive deeper into even more flexible approaches, like Langchain’s Pandas DataFrame Agents. We’ll explore these options using spatial analysis workflow, such as:

      1. Loading a zipped shapefile and investigate its content
      2. Finding the three largest cities in the dataset
      3. Selecting all cities in a region, e.g. in Scandinavia from the dataset
      4. Creating static and interactive maps

      To try the code below, you’ll need an OpenAI account with a few dollars on it. While gpt-3.5-turbo is quite cheap, using gpt-4o with the Assistant API can get costly fast.

      OpenAI Assistant API

      The OpenAI Assistant API allows us to create a custom data analysis environment where we can interact with our spatial datasets programmatically. To write the following code, I used the assistant quickstart and related docs (yes, shockingly, ChatGPT wasn’t very helpful for writing this code).

      Like with Data Analyst, we need to upload the zipped shapefile to the server to make it available to the assistant. Then we can proceed to ask it questions and task it to perform analytics and create maps.

      from openai import OpenAI
      
      client = OpenAI()
      
      file = client.files.create(
        file=open("H:/ne_110m_populated_places_simple.zip", "rb"),
        purpose='assistants'
      )
      

      Then we can hand the file over to the assistant:

      assistant = client.beta.assistants.create(
        name="GIS Analyst",
        instructions="You are a personal GIS data analyst. Write and rund code to answer geospatial analysis questions",
        tools=[{"type": "code_interpreter"}],
        model="gpt-3.5-turbo",  # or "gpt-4o"
        tool_resources={
          "code_interpreter": {
            "file_ids": [file.id]
          }
        }  
      )
      

      Then we can start asking questions and giving our assistant tasks:

      thread = client.beta.threads.create()
      
      message = client.beta.threads.messages.create(
        thread_id=thread.id,
        role="user",
        content="Please load the zipped shapefile and describe the content"
      )
      
      assistant > The shapefile has been successfully loaded as a GeoDataFrame with the following details:
      
      - The GeoDataFrame has 243 entries.
      - It contains a total of 38 columns with various data types including integer, float, and object types.
      - One of the columns is a geometry column representing the spatial information.
      
      If you have any specific analysis or visualizations you would like to perform on this data, feel free to let me know!

      The docs have a nice example for how to stream the answers back, e.g. into a Jupyter notebook. I’ve used it to create a small convenience function:

      def ask_another_question(question):
          message = client.beta.threads.messages.create(
              thread_id=thread.id,
              role="user",
              content=question
          )
          with client.beta.threads.runs.stream(
              thread_id=thread.id,
              assistant_id=assistant.id,
              event_handler=EventHandler(),
          ) as stream:
              stream.until_done()
      
      ask_another_question("Please list the three largest cities")
      
      assistant > code_interpreter
      
      # Sort the GeoDataFrame by the population in descending order
      largest_cities = gdf.sort_values(by='pop_max', ascending=False).head(3)[['name', 'pop_max']]
      largest_cities
      assistant > The three largest cities in the dataset, along with their maximum population numbers, are as follows:
      
      1. Tokyo: 35,676,000
      2. New York: 19,040,000
      3. Mexico City: 19,028,000
      
      These cities have the highest recorded maximum population numbers in the dataset. Let me know if you need any further information or analysis!
      ask_another_question("extract all scandinavian cities ")
      
      assistant > To extract all the Scandinavian cities from the dataset, we can filter the GeoDataFrame based on the countries typically considered part of Scandinavia. These countries include Norway, Sweden, Denmark, Finland, and sometimes Iceland. Let's filter the GeoDataFrame to extract the Scandinavian cities.
      assistant > code_interpreter
      
      # List of countries typically considered part of Scandinavia
      scandinavian_countries = ['Norway', 'Sweden', 'Denmark', 'Finland', 'Iceland']
      
      # Filter the GeoDataFrame for Scandinavian cities
      scandinavian_cities = gdf[gdf['adm0name'].isin(scandinavian_countries)][['name', 'adm0name']]
      
      scandinavian_cities.head()  # Displaying the first few Scandinavian cities
      assistant > Here are some of the Scandinavian cities extracted from the dataset:
      
      1. Reykjavík, Iceland
      2. Oslo, Norway
      3. Helsinki, Finland
      4. København (Copenhagen), Denmark
      5. Stockholm, Sweden
      
      These are just a few examples of Scandinavian cities present in the dataset. If you would like the complete list or perform any specific analysis on these cities, feel free to let me know!
      ask_another_question(
          "please create a world map with all cities (use gray circles) "
          "with scandinavian cities highlighted as red circles. "
      )
      
      assistant > To create a world map with all cities represented as gray circles and Scandinavian cities highlighted as red circles, we will use the GeoPandas library for mapping. Let's go ahead and create the map.
      assistant > code_interpreter
      
      import matplotlib.pyplot as plt
      
      # Plot all cities with gray circles and Scandinavian cities with red circles
      fig, ax = plt.subplots(figsize=(12, 8))
      
      # Plot all cities in gray circles
      gdf.plot(ax=ax, color='lightgrey', markersize=5)
      
      # Plot Scandinavian cities in red circles
      scandinavian_cities.plot(ax=ax, color='red', markersize=50, edgecolor='black', label='Scandinavian Cities')
      
      # Set the title
      ax.set_title('World Map with Scandinavian Cities Highlighted', fontsize=16)
      
      # Add legend
      ax.legend()
      
      # Display the map
      plt.show()
      assistant > It seems that there was an error while plotting the map because the GeoDataFrame `scandinavian_cities` does not have the necessary numeric data to plot the map directly.
      ...
      plt.show()
      
      output >
      
      assistant > Here is the world map with all cities represented as gray circles and Scandinavian cities highlighted as red circles. The map provides a visual representation of the locations of the Scandinavian cities in relation to the rest of the cities around the world. If you need any further assistance or modifications, feel free to let me know!

      To load and show the image, we can use:

      import matplotlib.pyplot as plt
      import matplotlib.image as mpimg
      
      def show_image():
          messages = client.beta.threads.messages.list(thread_id=thread.id)
      
          for m in messages.data:
              if m.role == "user":
                  continue
              if m.content[0].type == 'image_file':
                  m.content[0].image_file.file_id
                  image_data = client.files.content(messages.data[0].content[0].image_file.file_id)
                  image_data_bytes = image_data.read()
                  with open("./out/my-image.png", "wb") as file:
                      file.write(image_data_bytes)
                  image = mpimg.imread("./out/my-image.png")
                  plt.imshow(image)
                  plt.box(False)
                  plt.xticks([])
                  plt.yticks([])
                  plt.show() 
                  break
      

      Asking for an interactive map in an html file works in a similar fashion.

      You can see the whole analysis workflow it in action here:

      This way, we can use ChatGPT to perform data analysis from the comfort of our Jupyter notebooks. However, it’s important to note that, like the Data Analyst, the code we execute with the Assistant API runs on a remote server. So, again, we are restricted to the libraries available in that server environment. This is an issue we will address next time, when we look into Langchain.

      Conclusion

      ChatGPT’s Data Analyst Web Interface and the OpenAI Assistant API both come with their own advantages and disadvantages.

      The results can be quite random. In the Scandinavia example, every run can produce slightly different results. Sometimes the results just use different assumptions such as, e.g. Finland and Iceland being part of Scandinavia or not, other times, they can be outright wrong.

      As always, I’m interested to hear your experiences and thoughts. Have you been testing the LLM plugins for QGIS when they originally came out?

    • sur Mappery: Topo Map Chocolate

      Publié: 29 August 2024, 11:00am CEST

      Ben shared this delicious looking topo chocolate

      MapsintheWild Topo Map Chocolate

    • sur EOX' blog: Sentinel-2 Cloudless 2023

      Publié: 29 August 2024, 2:00am CEST
      We are thrilled to announce the latest release of EOxCloudless 2023 imagery. Whether you are an existing customer or new to EOxCloudless, this latest update offers clarity with beautiful sceneries and is designed to meet the needs of our users in a convenient way. With the everchanging and more cha ...
    • sur Oslandia: (Fr) [Story] Oslandia x QWC : épisode 1 / 8

      Publié: 28 August 2024, 4:51pm CEST

      Sorry, this entry is only available in French.

    • sur Mappery: Deventer

      Publié: 28 August 2024, 11:00am CEST

      Reinder sent these pics from the second hand book market in Deventer “… at the largest 2nd hand book market of Europe (August 4, 2024) of course there was also some cartographical material for sale.”

      MapsintheWild Deventer