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

    4380 éléments (135 non lus) dans 55 canaux

    Dans la presse Dans la presse

    opensource (2 non lus)

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

      [Lire le billet]

      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.

      [Lire le billet]

      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.

      [Lire le billet]

      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…).

      [Lire le billet]

      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. For more information on the work to be performed and its phases, please visit this document.

      Crowdfunding structure

      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.

      This structure forms a multi-party agreement:

      • Consortium: Three companies are forming a consortium (Camptocamp, GeoSolutions, and GeoCat) providing expertise, a proven track record, and capacity. These companies are also taking on responsibility for project management, estimating, and importantly risk.
      • Supporters: We are seeking organisations to pledge their support via funding during the commitment phase. No funds will be collected until we reach the target established below for the full scope of work necessary.
      • Community: We ask that our community step forward to match the contributions above with both financial contributions and in-kind development and testing.
      Crowdfunding target

      The financial target is ambitious, 550,000.00 €. CamptoCamp, GeoCat and GeoSolutions have generously stepped up and will provide an initial seed fund of 50,000.00€ each, which means the current funding goal starts at 400,000.00 €. Here below you will find the live updated situation as far as committed funding is concerned.

      How to participate

      If you are ready to support GeoServer 3, please, fill this online form or contact us at gs3-funding@googlegroups.com to express your interest and 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

    • sur Mappery: Keighley & Worth Valley Railway

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

      Doug shared this old railway map, you might think this an old relic that he spotted but – no! This 150 year old railway line closed in 1962 and was reopened a few years later, you can read more here and you can still travel on the line.

      MapsintheWild Keighley & Worth Valley Railway

    • sur GeoTools Team: GeoTools 30.5 released

      Publié: 26 August 2024, 11:23am CEST
      &nbsp; &nbsp;The GeoTools team is pleased to the release of the latest stable version of&nbsp;GeoTools 30.5:geotools-30.5-bin.zip&nbsp;geotools-30.5-doc.zip&nbsp;geotools-30.5-userguide.zip&nbsp;geotools-30.5-project.zip&nbsp;This release is also available from the&nbsp;OSGeo Maven Repository&nbsp;and is made in conjunction with GeoServer 2.24.5. The release was made by Andrea Aime (Geosolutions)
    • sur Mappery: Globe Teapot

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

      Another one from Reinder Storm. “Don’t remember whether I sent this before, don’t remember where and when I saw this one – but I do know that I like it …”

      I am sure the tea will have an international flavour in this pot.

      MapsintheWild Globe Teapot

    • sur Mappery: Mount Rainier Time Map

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

      Another pic from Krista Mott’s roadtrip. “At Mount Rainier National Park there was one of the felled Douglas-fir, that began to grow in 1293, depicts a map of time”

      I am expecting a bit of “That’s not a map!” feedback but it sure looks like one to me and it definitely is wild.

      MapsintheWild Mount Rainier Time Map

    • sur Mappery: Phillipines in Ipswich, Massachusetts

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

      Judy Tymon sent us this pic “I found this map at a new local cafe here in Ipswich Massachusetts.  The cafe is called  “The M Cafe”, M for Manila, capital of the Philippines. I liked it because it shows the outline of the country along with the lat/long.  And of course the cafe is owned by a woman from the Philippines.”

      MapsintheWild Phillipines in Ipswich, Massachusetts

    • sur Free and Open Source GIS Ramblings: MovingPandas 0.19 released!

      Publié: 23 August 2024, 6:30pm CEST

      This release is the first to support GeoPandas 1.0.

      Additionally, this release adds multiple new features, including:

      For the full change log, check out the release page.

      We have also revamped the documentation at [https:]] using the PyData Sphinx Theme:

      On a related note: if you know what I need to change to get all Trajectory functions listed in the TOC on the right, please let me know.

    • sur geomatico: Ética y economia: ¿son viables los proyectos geoespaciales de software libre?

      Publié: 23 August 2024, 12:56pm CEST
      Pièce jointe: [télécharger]

      Jornadas SIG Libre 2024

      En la XVII edición de las Jornadas de SIG Libre, debate plenario sobre «viabilidad económica de los proyectos de software libre en datos geoespaciales» en el que participamos con Òscar Fonts, nuestro CTO.

      • 0:00 Introducción Gemma Boix, directora del SIGTE – UdG
      • 2:30 Angelos Tzotsos (OSGeo)
      • 29:20 Óscar Fonts (Geomatico)
      • 42:40 Josep Lluís Sala (BGeo)
      • 55:30 Iván Sánchez
    • sur Mappery: Light Pollution in the Netherlands

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

      Reinder shared these stamps “These stamps were issued in The Netherlands in 2015. They present an image of light pollution. Artist / designer Daan Roosegaarde has created these illuminated stamps for PostNL. The stamp sheet shows a modern map of the Netherlands on a clear night in spring. The stamps provide insight into the daily use of light.”

      We haven’t had that many maps in the wild stamps, surely there must be a load more out there?

      MapsintheWild Light Pollution in the Netherlands

    • sur Mappery: Where do you come from?

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

      Krista Mott sent us this pic from her roadtrip in the north west US. “On the way home, we stopped in Seattle at Pike Place Market where I found this “Show us where you came from!” map.  Quite a great representation of visitors from around the world.

      MapsintheWild Where do you come from?

    • sur Mappery: Global Architectural Salvage

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

      Reinder is on form at the moment with a string of great pics.

      “in a shop / workplace where they sell (an awful lot of) antique building materials. I’m not sure whether this is stained glass — or some other technique. I’m sure that I like it!” – we like it too, I think it is painted glass rather than stained

      Screenshot

      MapsintheWild Global Architectural Salvage

    • sur Mappery: The Places of Hawaii

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

      Scott Simmons sent us a pic of this superb sticker from Hawaii, “I found this great sticker on a recent vacation to the island of Hawai’i. The place names are all in their approximate correct location and the artist cleverly chose more important names to prioritize, while still filling the map quite evenly.”

      Let’s have some more of these

      MapsintheWild The Places of Hawaii

    • sur Mappery: The Parade

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

      Reinder shared these pics of a gig that he saw recently, the band seem to be very into globes and maps.

      “… on the Parade: a travelling theatrical festival in the Netherlands, 18th of July 2024. Cf  [https:]] .

      “Pop-music meets theater in a light-hearted and quirky concert. Looking at the mysterious word “fundamental”, these men create a bit of chaos in all order. Don’t we see the world fundamentally different than it really is: a dustball in the wind?”

      I did quite like it and hope you do as well.”

      We say what’s not to like (except possibly the music)

      MapsintheWild The Parade

    • sur Mappery: Trollhatte Kanal

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

      Marc-Tobias spotted this van “Seen in  [https:]] Includes a scale in kilometers and proper compass!”

      That’s the first time I have seen a scale bar on an a map in the wild

      MapsintheWild Trollhatte Kanal

    • sur GeoServer Team: GeoServer 2.24.5 Release

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

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

      This is a maintenance release of GeoServer providing existing installations with minor updates and bug fixes. GeoServer 2.24.5 is made in conjunction with GeoTools 30.5, and GeoWebCache 1.24.5.

      Thanks to Andrea Aime for making this release.

      Release notes

      Improvement:

      • GEOS-11336 security-keycloak: upgrade keycloak version
      • GEOS-11443 REST API does not take effect immediately due to 10 minute authentication cache
      • GEOS-11463 WMS vector dimension validation should query only one feature and only for dimension attribute
      • GEOS-11502 Permit resize on user/group/role palette textbox to allow for extra long role names

      Bug:

      • GEOS-11446 [INSPIRE] Incorrect behavior for unsupported languages
      • GEOS-11453 Failure to look-up default value of custom dimensions on vector layers
      • 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-11493 Azure blob store may not get environment parameters from property file

      Task:

      • GEOS-11464 Update Jackson 2 libs from 2.17.1 to 2.17.2

      For the complete list see 2.24.5 release notes.

      Community Updates

      Community module development:

      • GEOS-11111 Open search for EO community module: STAC search page has wrong self link

      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.

      About GeoServer 2.24 Series

      Additional information on GeoServer 2.24 series:

      Release notes: ( 2.24.5 | 2.24.4 | 2.24.3 | 2.24.2 | 2.24.1 | 2.24.0 | 2.24-RC )

    • sur Mappery: Matthijs Röling

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

      Reinder shared this pic of a book cover “Suddenly it occurred to me that the cover of this book by the Dutch writer Jean Pierre Rawie is decorated with a painting by Matthijs Röling, and that he added a globe to this still life.”

      MapsintheWild Matthijs Röling

    • sur XYCarto: Cartographic Aotearoa

      Publié: 17 August 2024, 3:38am CEST

      I try hard to keep this blog about basic open source processing in GIS. I don’t spend much time talking about my cartographic work, since I like put it up in the gallery and try to let it speak for itself. Further, 90% of my cartographic products involve processing data before it ever gets to visualization, therefore, I see more value in demonstrating the basic processing and hopefully inspire folks to do their own thing once their data is in place.

      If you might indulge me; however, I’d love to toot my own horn as they say and do a write up on my acceptance to the Atlas of Design this year and the honor to do a brief interview with Radio New Zealand (RNZ) about the map.

      I know it is a bit cheeky to put up recognition of one’s own work, but this map was the culmination of several years of iterations, heaps of footwork getting it known, and a number of rejections along the way. I’m just so excited to finally get it out there to a wider audience.

      Since this is primarily an open source blog about GIS, and that several have asked me about my tech stack I’ll share a portion of it here. If you want to get a feel of some of my blending techniques, you can see some past blogs where I wrote this up.

      As I mentioned above, that vast majority of my cartography is in data prep and making data easier to work in visualization projects. I have a fairly simple tech stack for data prep.

      • QGIS – Base map layout. My method is most often to develop the base image here, but do all the post processing for legends, supporting text, graphics, etc in specialized layout software. QGIS is amazing at handling large file types, blending, and making repeatable color palettes. Doing work at a national and world scale is often without issue.
      • GDAL – Most used in the stack for prepping large scale raster data. Used more than anything else in GDAL for my vis work is gdalwarp, gdal_translate, gdaladdo, gdalbuildvrt, and gdaldem [hillshade, slope]. These are often used in bash scripts to repeat processes allowing me to easily develop multiple resolutions, scales, and resamples.
      • GeoPandas – Used for vectors and primarily for my cleaning to get lighter GPKG files, automating redundant processes like clips, simplification, and table manipulation. It is an amazing tool I use a lot in development too.
      • Python/Bash – Used for controlling all the automation and processing. Depending on the complexity of the task at hand, I will bounce between the two. Bash is really great at multi-core processing and can save enormous amounts of time in redundant processes.
      • Colorhexa /Gpick – Palette development. Gpick is incredibly helpful in sampling imagery to find a color value you like. You can bring these values into Colorhexa and start to develop gradients and divergent values all the while keeping within your tone. There are many other sites that will help you do this, I just happen to enjoy this one.
      • Docker – An unlikely item in a cartographic stack, but Docker has proved invaluable to me by allowing me to run multiple versions of QGIS and GDAL without wrecking my machine. I have a basic QGIS/Docker example here.

      For those out there who have supported me on this journey and even those who lurk in the shadows, I cannot thank you enough for reading, liking, and sending me messages letting me know you are out there and find some of this useful. It helps more than you know and motivates me to continue to move forward. Also, tell all your friends!

    • sur QGIS Blog: Reports from the winning grant proposals 2023

      Publié: 16 August 2024, 4:18pm CEST

      With the QGIS Grant Programme 2023, we were able to support six proposals (four in the first round and two in the second round) that are aimed to improve the QGIS project, including software, infrastructure, and documentation. The following reports summarize the work performed in the first four proposals:  

      1. QGIS Bug Tracker cleanup (#266)  – Report
         We have identified and closed ~291 tickets, among them:
        • 162 bugreports and feature requests which were already fixed or implemented
        • 29 bugreports and feature requests which are invalid (data issues, wrong use of functionality, etc)
        • 57 duplicate bugreports and feature requests
        • 5 won’t fix bugreports
        • 5 bugreports were converted to feature requests
        • 33 tickets were closed (does not contain steps to reproduce, test data and no feedback was provided within several month)
        • Additionally we ensured that all tickets has correct tags assigned to to make them easier to find.
      2. Porting to C++ and harmonization of Processing algorithms (#271) – Report
        The QGIS Porting to C++ and Harmonisation of Processing Algorithms grant is now complete.
        • Existing Processing algorithms Voronoi Polygons and Delaunay Triangulation have been ported to C++ and now use GEOS instead of the unmaintained Python module.
        • Two algorithms for generating XYZ tiles (directory and MBTiles variants) have been ported to C++ using a safer and cleaner multi-threading approach.
        • The Align Rasters tool, which was not exposed to Processing, has been removed and a new Processing algorithm with the same functionality has been added.
        • The existing Raster Calculator algorithm has been ported to C++. The algorithm now has two variants: a toolbox version that works the same way as before, and a modeler version that uses the same approach to input naming as the GDAL raster calculator.
      3. Add vertical CRS handling to QGIS (#267) – Report
        • As of QGIS 3.34, QGIS can now create and handle vertical and compound CRSes.
        • In QGIS 3.34 coordinate transforms were reworked so that they function correctly with vertical transformation, if both the source and destination CRS have vertical components.
        • In QGIS 3.36 the coordinate reference selection widgets were updated to offer choices of 2d only, compound, or vertical only CRSes.
        • In version 3.38, we introduced a new setting for QGIS projects, for their vertical reference system. Users can control this through project properties, and it’s accessible via PyQGIS and via associated expression variables (eg @project_vertical_crs) for use in print layouts.
        • Similarly, in 3.38 we introduced the API support for map layers to have a vertical CRS. (This was not exposed to users in 3.38 though)
        • In QGIS 3.40 so far we have exposed the vertical CRS setting for vector layers to users (via the layer properties dialog), allowing users to specify the associated vertical CRS for these layers. The vertical CRS is respected in elevation profile plots, in Identify tool results, and in 3D Map views (assuming the 3D map is created with an associated vertical CRS).
        • There is an open pull-request for 3.40 to expose the vertical CRS for point cloud layers in a similar way, with the vertical CRS being respected in elevation profiles, identify tool results, and 3D map views
        • We have open pull requests for 3.40 to show layer vertical CRS information in the layer properties “information” pages, and add expression variables at the layer scope (eg @layer_vertical_crs).
      4. Improve test result handling on QGIS CI (#268) – Report
        Any tests which fail a rendering comparison will write a descriptive comment to the PR. The comment details which render tests failed, where they are in the code, and includes some helpful pointers to downloading the full test report and the QGIS developer documentation. We also implemented lots of improvements in running the tests locally and how the render test reports are generated and presented to developers.

      Thank you to everyone who participated and made this round of grants a great success and thank you to all our sustaining members and donors who make this initiative possible!

    • sur Mappery: yNot Festival

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

      Jeremy shared a pic of the recyclable beer glasses at the yNOT festival. Is that a semi-conical projection?

      MapsintheWild yNot Festival

    • sur Markus Neteler: GRASS GIS 8.4.0 released

      Publié: 16 August 2024, 10:20am CEST

      The GRASS GIS 8.4.0 release provides more than 520 improvements and fixes with respect to the release 8.3.2.

      The post GRASS GIS 8.4.0 released appeared first on Markus Neteler Consulting.

    • sur Mappery: Zierikzee

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

      Reinder sent us this interesting map sculpture “I spotted this specimen of street furniture — in fact: my wife did. What you see is the outline of the island Schouwen-Duiveland, part of the Dutch province Zeeland. The white ball is actually on the spot of the town Zierikzee. Very quiet and charming now, but it has quite a notorious history. “

      Well done Mrs Storm!

      MapsintheWild Zierikzee

    • sur Jackie Ng: Announcing: MapGuide Open Source 4.0 Beta 2

      Publié: 14 August 2024, 9:40pm CEST

      This took way longer than expected, but the 2nd beta release of MapGuide Open Source is now available.

      The main driver for this release is to update our various web tier components to their latest respective versions:

      • PHP 8.1.29
      • Apache [httpd] 2.4.62
      • Apache Tomcat 9.0.89
      In addition to that, the Beta 2 release includes the following changes:

      • Installer
        • Newer libpq.dll (PostgreSQL 16.3) bundled with Windows installer
      • Server Tier
        • Fix instability on Linux due to criss-crossed resolution of sqlite3 and geos symbols to our shared libraries instead of the distro-provided versions
        • Repository admin tools have been momentarily pulled from this and future beta releases until the admin scripts have been updated and/or rewritten. As a workaround, use MapGuide Package files to backup/restore repository content
        • Removed immature MVT tile rendering support. If you want to produce Mapbox Vector Tiles, use any tool from this list
      • Web Tier
        • Fix QUERYMAPFEATURES SelectionKey containing a newline char, breaking client-side reconciliation of selected features
        • More PHP8 compatibility fixes in PHP AJAX Viewer
        • Fix bad instanceof exception checks in PHP AJAX Viewer
        • More PHP8 compatibility fixes in Site Administrator
        • Buffer overflow fixes in WMS/WFS service layer
        • New optional --bind-to parameter for MgDe [HttpServer]
      • InstantSetup
        • Fix crash if no setup log path specified when configuring
      • Samples
        • Fix bad extents in SheboyganXYZ tileset
      So with this release out the door, what is next? Well unfortunately, there is still lots of work to do on the API binding and API documentation front, and so in the interests of not having you wait another year between releases, I am now adopting the policy of "however many beta/rc releases required" which implies more frequent beta/rc releases. As one of the major remaining items is completed and/or newer versions of any of our web tier components are available, that will be the trigger for a new beta/rc release.
      Download

      Note: Trac is a bit flaky right now, so the release notes page may not display. If that happens just retry with browser refreshes. Failing that, you can find all the necessary download links in my release announcement email
    • sur WhereGroup: Plugins entwickeln für PhpStorm am Beispiel von Mapbender

      Publié: 14 August 2024, 3:40pm CEST
      Integrierte Entwicklungsumgebungen (IDEs) bringen von Haus aus schon viel Funktionalität mit. Fehlt allerdings noch eine Funktionalität, lässt sich diese oft auch über ein selbst entwickeltes Plugin ergänzen.
    • sur Mappery: Canada Dry

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

      Kate shared this “Neat (and mappy!) Final Jeopardy trivia from the other night: “Early 1900s labels for this beverage brand featured a beaver sitting on a log at the top of a map.”

      I am wondering whether the “Dry” refers to the taste or Prohibiton

      MapsintheWild Canada Dry

    • sur Mappery: Maps in a Bar

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

      When Erik was in Dubrovnik for a conference he ended up in this bar with colleagues. “With the #CLGE delegates you always end up at a #MapsintheWild bar…”

      MapsintheWild Maps in a Bar

    • sur Mappery: The Neighbourhoods of Ghent, piece by piece

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

      Pieter is a true map geek.

      “I wanted to learn the names of the neighbourhoods in #Ghent, so I made me a #puzzle. I added the neighbourhoods in #OpenStreetMap , then made a custom theme in #MapComplete and use the ‘export as PNG’-functuon. The background is a modified stylesheet for @protomaps

      I did say true map geek!!

      MapsintheWild The Neighbourhoods of Ghent, piece by piece

    • sur Sean Gillies: Bear scratch

      Publié: 12 August 2024, 2:28am CEST

      I just emailed the Bear 100 race director, Cody Draper, and said that I'm injured and won't recover in time to start in 6 weeks. I'm also too injured to do Black Squirrel in 3 weeks and will be emailing Nick and Brad next.

      What's the injury? When I came home from vacation and started to ramp up my running, my right Achilles tendon became sore and very inflamed. On July 17 I went out for a 30 mile run and had to bail at mile 20. I took some time off from trail running and have been chugging on an elliptical trainer at my gym. Yesterday I tried some running on the bike path behind my house and couldn't even go a mile without excruciating pain. I'm calling it, my season is over. The last time I had serious Achilles tendonitis like this was at the end of my ultimate frisbee career 20 years ago. It took 4 months before I could run without pain. I'm going to keep going to the gym, ice and rest, see some specialists, and get ready for 2025.

    • sur Mappery: Serbo-Montenegrin Attack on Dubrovnik

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

      Erik shared this battle map from Dubrivnik.

      MapsintheWild Serbo-Montenegrin Attack on Dubrovnik