Welcome to Planet OSGeo

July 07, 2020

TWINGEO magazine asked us for an article that answered the question “Where is open source GIS software going?

At a technical level, the software applied to geographic information management will follow similar dynamics, regardless of its license. It must be remembered that the “open” concept applies to the conditions of use of a software, the rights that are granted to the user, regardless of their capabilities or technological focus. Therefore, from our perspective, “Where is open source GIS software going to” question must have different answers depending on the approach we have to it. We will focus on two main points of view: technology and industry.

Read the full article here:

by Alvaro at July 07, 2020 08:00 AM

La Escuela de Geografía de la Universidad de Costa Rica organiza las II Jornadas de SIG y Teledetección libres de Costa Rica, que se realizarán en modalidad online/virtual. Un conjunto de interesantes talleres y conferencias magistrales que tendrán lugar entre los días 6 y 10 de julio de 2020 en los que gvSIG tiene una participación destacada.

  • Miércoles 8 de julio, conferencia: “La importancia de la dimensión geográfica, la relevancia de la soberanía tecnológica. Suite gvSIG: software libre para gestión territorial” (Álvaro Anguix)
  • Jueves 9 de julio, taller “Un análisis vale más que 1.000 imágenes: SIG básico con gvSIG 2.5” (Sergio Acosta y Lara).
  • Jueves 9 de julio, taller “Teledetección térmica con gvSIG para mapeo de islas de calor” (Rubén Martínez)

Desde la organización nos indican que el límite de inscritos se ha completado, pero posteriormente se dará acceso a la grabación de cada una de las sesiones.

by Alvaro at July 07, 2020 07:45 AM

July 06, 2020

Another release already? Yes indeed!

There were 2 reasons for this new release.

Firstly, the previous 1.4 release had a major oversight where the windows installer did not bundle a required dll needed for the new FdoCmd tool to work, so it was totally broken out of the box in both the 1.4 and 1.4.1 releases. This release now properly bundles the missing dll, making this tool finally operational for the first time for you all.

Secondly, this release include a new major feature that was originally slated to be part of the 1.4 release, but got shelved due to stability issues around the FDO .net wrapper that was resolved with the 1.4.1 release. And for this announcement post, I'll be talking about this feature in great detail.

That feature, is the long overdue integration of MgCoordinateSystem from the MapGuide API for coordinate system support. Here's how we use the MgCoordinateSystem integration in FDO Toolbox.

Transforming Features in Bulk Copy

Let''s start with the obvious place, bulk copying now supports optional transformation of geometry features. This is expressed in several different ways.

In the main bulk copy editor, when specifying a spatial context override with a different coordinate system WKT like so.

There is now a new flag that you can toggle to indicate that this override should be interpreted as an instruction to transform geometries for the source coordinate system WKT to the coordinate system indicated by the override WKT.

This method of enabling transformation may look a bit un-intuitive if you're accustomed to using tools like ogr2ogr where you state upfront what the source CS is and what target CS you want to transform to. The reason for this is due to the concept of spatial contexts in FDO. In FDO, coordinate systems are not set explicitly, they are inferred through its spatial context. Thus the UI to enable transformation stems from the constraint imposed by FDO's spatial contexts. We can't set a source or target CS, we have to override what is inferred by FDO.

When using the SDF/SQLite dump context menu command, the UI has an option to allow transforming the dumped features to the specified coordinate system.

When you click the Pick CS button, a dialog appears that you should be familiar with. It's the same coordinate system picker dialog from MapGuide Maestro and fulfills the same purpose here in FDO Toolbox as it does in Maestro.

Streamlining Various UI

Any UI that deals with spatial contexts now take advantage of the newly integrated coordinate system picker to help auto-fill most, if not, all of the fields in question.

For example, creating a spatial context now can use the coordinate system picker to auto-fill in most of the fields in the UI

Similarly, when creating a new RDBMS data store, you can use the coordinate system picker to pre-fill the sections about the coordinate system and extents

And from the previous bulk copy example, you can easily override a source spatial context by picking an existing coordinate system.

FdoCmd enhancements

Not only will you finally get a functional FdoCmd tool in this release, it has also been enhanced with various integrations with the new coordinate system functionality.
  • Any command that outputs geometry data will have new options to allow transforming it to a target coordinate system
  • Creating spatial contexts can use an existing coordinate system to fill in most of the required spatial context information.
  • The bulk copy commands has support for transformation and can use an existing coordinate system as the basis for specifying the WKT of any override spatial context
  • When listing spatial contexts, we'll now use the new coordinate system facilities to resolve/display the corresponding mentor/EPSG code for any coordinate system displayed
Also FdoCmd receives a whole series of new commands for interacting with the coordinate system facilities:
  • enumerate-cs-categories for listing all categories from the coordinate system catalog
  • enumerate-cs for listing all coordinate systems for a given category
  • find-cs-by-code for fetching and displaying details of a coordinate system from an input mentor CS code
  • find-cs-by-epsg for fetching and displaying details of a coordinate system from an input EPSG code
  • wkt-to-cs-code for obtaining a mentor CS code from an input coordinate system WKT
  • wkt-to-epsg for obtaining an EPSG code from an input coordinate system WKT
  • cs-code-to-wkt for the inverse of wkt-to-cs-code
  • epsg-to-wkt for the inverse of wkt-to-epsg
  • is-valid-wkt for validating coordinate system WKT strings
A small caveat

If you've used CS-MAP (or its MgCoordinateSytem wrapper in MapGuide), you'll know about its legendary support for nearly every coordinate system in existence on Planet Earth.

But that support comes at a price: The size of our installers/installation suffers as a result.

To support so many coordinate systems requires country-specific grid data files that are:
  • Huge
  • Difficult to compress due to their binary nature
So to avoid making this installer a 300MB file, and making it a 30MB file instead, this release of FDO Toolbox only bundles the core CS-MAP dictionary data files and omits all of the country-specific grid files. Such files are available for download as a separate zip file on the 1.5 release page.

If you need these grid files for your coordinate system transformation (most likely, you are transforming from one CS to another and it is failing because it is looking for a certain grid file), just download the zip file (from the releases page) and extract the contents into the Dictionaries directory of your FDO Toolbox installation.

Other changes

  • FDO Toolbox now ships with libpq.dll and libmysql.dll (dlls courtesy of the VS2015 build of GDAL/OGR from gisinternals) allowing for the MySQL and PostgreSQL providers to work out of the box without having to source these dlls yourself. King Oracle provider still requires you to source the Oracle 11g Instant Client binaries yourself.
  • When bulk copying, we no longer try to create spatial contexts for names that already exist on the target connection
  • More cases are handled when trying to convert an incompatible feature class when applying a schema to a target connection

In Closing

Barring bug fix releases to address any critical issues that show up after this release, I believe that FDO Toolbox 1.5 will be the last major release of FDO Toolbox I will be putting out for a while and the project will most likely return back to hibernation. I had restarted this journey a few months ago to address some long standing pain points that had built up and with the completion of this coordinate system integration in this release, I feel this journey is now complete ...

... Until another series of annoyances and pain points builds up to critical mass in 5/10 years time perhaps :)

by Jackie Ng (noreply@blogger.com) at July 06, 2020 03:44 PM

Marzano è la frazione del comune di Torriglia (GE) dove sono cresciuto. Un paesino piccolo, luogo di origine dei miei antenati Costa. In questo periodo di isolamento ho avuto la fortuna di passare qui molti mesi e ho raccolto vecchi e nuovi appunti sulla sua storia, per quanto minore e frammentaria.

La chiesa di San Bartolomeo è l’unica chiesa di Marzano. Non è molto grande e viene variamente definita come cappella, oratorio o chiesa sussidiaria. La sua posizione centrale sulla piazza del paese (che è intitolata a Felice Cavallotti ma è chiamata da tutti “piazza della chiesa”) la rende facilmente riconoscibile. Non credo sia l’edificio più antico esistente in paese, ma è sicuramente quello su cui le notizie storiche sono più numerose, per quanto scarne. E con la storia della chiesa inevitabilmente si racconta anche la storia della comunità.

I maggiori dettagli storici si ricavano da un articolo del profilico don Giovanni Carraro, pubblicato sul notiziario parrocchiale nel 1938. Una descrizione architettonica più dettagliata che riprende in parte alcune notizie storiche si ricava dalla scheda di catalogo CEI. Riporto il contenuto dell’articolo quasi integralmente con alcuni commenti e soprattutto in ordine cronologico.

L’articoletto di don Carraro

La “grande cappella” dedicata a San Bartolomeo Apostolo fu edificata nella prima metà del XVII secolo. Tuttavia, nelle carte dell’archivio parrocchiale viene spesso indicata come cappella dedicata a San Terenziano, vescovo tudertinus (e non terdonensis). In effetti questo dualismo permane ancora oggi: il giorno di San Bartolomeo (24 agosto) viene celebrata la messa, ma è nel giorno dedicato a San Terenziano (San Ransiàn in dialetto, il 3 settembre) che si svolge la festa popolare più laica, quella con i frisceu per capirci. La grande tela che si trova all’interno della chiesa ritrae comunque entrambi i santi insieme a San Rocco, Santa Lucia e Santa Apollonia. La presenza di San Terenziano a Marzano è interessante ed è solo una tra le molte località dell’Appennino dove San Terenziano persiste, talvolta da un millennio. Significativo che le date siano così ravvicinate e a pochi giorni di distanza dal 29 agosto in cui ricorre la Madonna della Provvidenza / Madonna della Guardia.

La facciata della chiesa oggi

L’atto di fondazione della cappella fu rogato nel 1648 assegnando una dote di 15 lire annue su terreni vincolati: 10 lire per 8 messe l’anno e 5 lire per riparazioni.

Nel 1677 fu costituito un censo di 44 soldi su terra l. d. Canivella e un altro censo di 24 soldi.

Nel 1694 fu rinnovato lo strumento di dotazione della chiesa, autorizzando i massari a riscuotere la somma dalle 27 famiglie, tra cui 5 Guano, 6 Fascia, 2 Pregola, 12 Costa. Vediamo che almeno tre di questi cognomi rimangono tuttora tra quelli caratteristici di Marzano, pur con una differenza di grafia.

Nella visita pastorale del 28 agosto 1707 si parla di un oratorio campestre intitolato a San Terenziano martire e si descrive lo stato lacunoso delle suppellettili. Nello stesso anno, G. Casazza lasciava una terra detta Fasolai del valore di mezza Genovina.

Nel 1775 fu concesso di benedire il nuovo altare (che molto probabilmente è quello attuale), purché avesse le misure prescritte.

Nel 1850 fu dato in locazione per 6 anni un terreno con due castagni e un cerro, detta fascia della chiesa, e un altro terreno detto dell’orto, per 50 lire.

Il pavimento in graniglia alla veneziana porta la data del 1862 e il nome di Giacomo Costa.

Nel 1887 viene consentita la costruzione di una nuova casa addossata al coro (esistente ancora oggi), che quindi rende impossibili successivi ampliamenti dell’edificio.

Nel 1896 viene restaurata dentro e fuori, e provveduta di volta a botte. Nel 1897 viene rinfrescata la facciata e nuovamente nel 1927.

I lavori di restauro più recenti sono di circa 20 anni fa.

by Stefano Costa at July 06, 2020 03:25 PM

We are pleased to announce the release of GeoServer 2.16.4 with downloads (war|zip), HTML documentation and extensions.

This is a stable release recommended for production systems.

Improvements and Fixes

This release includes a number of improvements, including:

For more information and the small assorted bug fixes, check the 2.16.4 release notes.

About GeoServer 2.16

Features, presentations and reference material on the 2.16 series:

by Andrea Aime at July 06, 2020 10:15 AM

Cualquier persona relacionada con la geomática conoce la revista MAPPING. Un referente en el mundillo que lleva años acompañándonos (al que esto escribe desde que estaba en la Universidad y de eso hace ya un tiempo).

Para celebrar su número 200, Miguel Ángel y Marta, los responsables a los que debemos la larga vida de MAPPING decidieron lanzar un número muy especial con la siguiente premisa que enviaron a los diferentes autores participantes en su redacción: “la idea común para todos los participantes, es que ya que nuestra revista va a cumplir 30 años desde su creación, nos gustaría que nos hicieran una redacción, desde su punto de vista y campo profesional, de donde estábamos hace 30 años, donde estamos ahora y donde estaremos posiblemente , los próximos 30 años.“.

Así que además de otras muchas historias y puntos de vista que es conveniente leer, en MAPPING 200 podréis encontrar un artículo que desde gvSIG hemos escrito sobre el tema. Nuestra ya no tan breve historia, enmarcada en los acontecimientos de los últimos años, y una visión de qué podemos esperar del futuro…¿o al futuro no se le espera?

Aquí podéis descargar el PDF de la revista completa: Número 200

Y aquí del artículo de gvSIG: gvSIG. Una mirada al ayer y un pronóstico del futuro desde el presente 

by Alvaro at July 06, 2020 07:22 AM

July 03, 2020

(with apologies to Gabriel García Márquez)

It’s weird posting to a mostly tech blog at the moment. The world is on fire, but life goes on, yet I’ve felt utterly paralysed and unable to write anything here. It feels strange and somehow wrong to write about tech stuff, which lets face it, is not that important in the grand scheme of things, when so much other stuff is going on. Yet here we are, blogging.

So what did I want to blog about? Something that I read recently that I have taken to heart, and that has proved strangely apposite during #lockdown. I’m interested in hacking myself so that good/productive behaviour becomes easier and requires less “processing power” to achieve. Things like “Getting Things Done” by David Allen, and the Bullet Journal Technique are important parts of my life, though before you ask my “Bullet Journal” technique is a bit stripped down and doesn’t require the purchase of expensive custom journals…

Consequently I love finding out new ways of fooling my brain into good behavioural patterns, but I have struggled to find the key that works for both “work stuff” and my other great love, climbing. However I recently read “Atomic Habits” by James Clear, and he set out an idea that has stuck with me, and shown benefits in both work and climbing throughout the last few months. It’s really very obvious, but the idea is that training or hard work should be viewed as deposits into a long-term savings account that you’ve set up to save for something really important. Every bit of hardf work or physical training that you undertake will probably not show any benefits in the short-term, but it all adds up. Every time you (or really I) slack off, it’s the equivalent of making a withdrawal. You lose more than just the cash-value, you lose the long-term interest too.

I’ve applied this mainly to climbing training during #lockdown, following a rather gruelling program from lattice training, which involves a minimum of an hour’s training for five out of seven days a week (after work). For two weeks in every four, this goes up to 1.5 hours a day. Whenever I’m bored or tired, which happens a lot, I remember the idea of the savings account, and manage to keep going. So what is the savings account for in this case? Mainly just being the best climber I can be (given the limitations of being a mid-40s female with a full-time job and a bad back). And yes, now #lockdown has eased somewhat, and climbing locally is OK, I can see obvious improvements in my performance, which make it all worthwhile.

How does this relate to open source gis though, I possibly hear you ask? Well, it’s more a work ethos than anything specific, particularly when I’m wading through stuff that’s new to me, or difficult. Cutting corners, or doing a half-arsed job, are all withdrawals from the savings account. Taking the time to really understand something? That’s a deposit.

The flipside of this is that sometimes you just can’t make that deposit. Maybe you’re literally too tired to train, or to think straight. Maybe you’ve over-committed by agreeing to give five different presentations over three conferences, one of which you’re also helping to organise, in the space of two weeks (ahem). It’s not the end of the world though. Missing one deposit is not going to stop you from meeting your target. The key thing is to give yourself the space you need, and then pick it right back up again. Remember also that it’s counter-productive to save for too many things at once- it’s better to limit yourself!

I won’t labour the point any longer, suffice to say that “this one simple hack” has helped me have a surprisingly productive #lockdown, and that having these “long-term savings goals” has kept me focused and sane. I am well aware though, that I’ve been in a position of immense privilege, being able to continue life relatively normally over this period. Not everyone has been as lucky.

by Jo at July 03, 2020 02:34 PM

July 02, 2020

July 01, 2020


Dear Reader,

GeoSolutions, along with the GeoServer community, is participating in a two days long “GeoServer Bug Fix Code Sprint”, on July the 2nd and the 3rd. The sprint also happens to overlap with the Bolsena Online Code Sprint 2020, so we’ll end up sharing some of the infrastructure and enjoying the good company of other sprinters! This sprint revives and seeks to improve the old monthly bug fix code sprint, that we used to do before. From those sprints, we learned that bugs that can be assigned to less experienced developers, because they seem like a one day fix, are hard to find. That was often coupled with lower participation of experienced developers, who need to review the pull requests for the fixes, and sit on the side (now virtually) of other developers to provide guidance.

So this time the sprint is two days long. We hope to get more tickets looked at, while allowing participant developers to tackle harder to fix problems.

Please join us on the GeoServer gitter channel, and don’t forget to go say hi to the other Bolsena sprinters on the OSGeo/Sprint channel!


Luis 320x100_eng

by Luis Bermudez at July 01, 2020 06:56 PM

June 30, 2020

The 16th International gvSIG Conference will be held from November 4th to 6th, and they will be an online event this year due to the current health emergency situation. The conference is organized by the gvSIG Association and the School of Engineering in Geodesy, Cartography and Surveying (Universitat Politècnica de València, Spain) under the slogan “New realities, new solutions“.

Being a virtual event, any person or organization will be able to present their project about gvSIG from anywhere in the world, just needing internet connection. Communication proposals submission is now open, and they can be sent to the email address: conference-contact@gvsig.com, following the information indicated at Communications section of the event website.

Registrations will be free of cost and they will be able to be done once the program is published.

All the information related to the conference, including workshops information, will be published at gvSIG Blog.

We expect your participation!

by Mario at June 30, 2020 08:00 AM

Del 4 al 6 de noviembre de 2020 se celebrarán las 16as Jornadas Internacionales gvSIG, un evento que este año será online debido a la actual situación de emergencia sanitaria mundial. Las jornadas están organizadas por la Asociación gvSIG y la Escuela Técnica Superior de Ingeniería Geodésica, Cartográfica y Topográfica (Universitat Politècnica de València, España), y el lema de este año es “Nuevas realidades, nuevas soluciones”.

Al ser unas jornadas virtuales cualquier persona u organización podrá presentar su proyecto sobre gvSIG desde cualquier parte del mundo, necesitando únicamente una conexión a internet. A partir de ahora se abre el periodo de envío de propuestas de comunicación, que pueden enviarse a la dirección de correo electrónico conference-contact@gvsig.com, siguiendo la información indicada en el apartado ‘Comunicaciones’ de la web de las jornadas.

La inscripción a las jornadas será gratuita, y podrá realizarse una vez publicado el programa de las mismas.

Toda la información sobre las jornadas, incluyendo los talleres que se impartirán, se irá publicando en el blog de gvSIG.

¡Esperamos vuestra participación!

by Mario at June 30, 2020 07:56 AM

June 29, 2020

Due to the current world health emergency situation, many municipalities are looking for solutions to reinforce security measures on their beaches and prevent COVID-19 infections. One of the main measures is to reduce the capacity of the beaches, so that the minimum safety distance can be observed. In this sense, one of the actions carried out by Cullera City Council, in Valencia (Spain), to inform citizens about the situation of the beaches, has been to generate a geoportal on its gvSIG Online platform, where the percentage of people in relation to the total capacity allowed in each sector or beach is shown at any time. The portal includes a legend that indicates whether or not it is advisable to go to that part of the beach or if it has an optimal situation.

Thanks to the new custom legends functionality in gvSIG Online, when updating number of attendees at the beach in the layer at any time, the percentage of capacity of each sector or beach is calculated based on its maximum permitted capacity, previously calculated, and based on its surface. It is shown in the set colour.

Cullera municipality has recently implemented gvSIG Online as a Spatial Data Infrastructure, which has allowed to have a web platform where different geoportals/viewers for any need can be generated in just a few minutes.

In recent weeks, the municipality technicians had generated several projects for the internal management of the cartography, with the intention of making some geoportals publicly available shortly, with useful information for citizens, such as for tourism, mobility and transportation, queries in the Urban Planning Department, etc., thus expanding its Electronic Office. But the urgent need to manage access to the beaches to reinforce security in the new normal phase after the end of the state of alarm, and with arrival of good weather, has led to the City Council to make public this first project.

The viewer is accessible from any web platform, so that citizens can consult the capacity of the beaches in a simple way, both from their smartphones and tablets and from their personal computers. In addition, a QR code has been provided with direct access to the geoportal.

On the other hand, the development of INFO Cullera is being carried out in parallel, an application based on gvSIG MApps for Android and iOS, in which citizens can see the geoportal directly on it, and which will be available in the coming days.

by Mario at June 29, 2020 06:20 AM

Con motivo de la situación actual de emergencia sanitaria mundial muchos ayuntamientos están buscando soluciones para reforzar las medidas de seguridad en sus playas y prevenir contagios de COVID-19. Entre las medidas principales está la de reducir el aforo de las playas, de forma que pueda respetarse la distancia mínima de seguridad. En este sentido, una de las actuaciones llevadas a cabo por el Ayuntamiento de Cullera, en Valencia (España), para informar a los ciudadanos sobre la situación de las playas, ha sido la de generar un geoportal en su plataforma de gvSIG Online, donde muestra en cada momento el porcentaje de personas respecto al total de aforo permitido en cada sector o playa, mediante una leyenda que indica si es recomendable o no acudir a esa parte de la playa o si tiene una situación óptima.

Gracias a la nueva funcionalidad de leyendas personalizadas de gvSIG Online, al actualizar el dato de asistentes en la capa en cada momento, se realiza el cálculo del porcentaje de aforo de cada sector o playa en función de su aforo máximo permitido, calculado previamente en función de su superficie, y se muestra en el color designado.

El Ayuntamiento de Cullera ha implementado recientemente gvSIG Online como Infraestructura de Datos Espaciales, lo que le ha permitido disponer de una plataforma web en la que puede generar diferentes geoportales/visores para cualquier necesidad en apenas unos minutos.

En las últimas semanas los técnicos del Ayuntamiento habían generado varios proyectos para la gestión interna de toda la cartografía, teniendo previsto hacer públicos en breve algunos geoportales con información útil para el ciudadano, como por ejemplo para turismo, movilidad y transportes, consultas en el Departamento de Urbanismo, etc., ampliando así su Sede Electrónica, pero la necesidad urgente de gestionar el acceso a las playas para reforzar la seguridad en la nueva normalidad tras el final del estado de alarma, y con la llegada del buen tiempo, ha llevado al Ayuntamiento a hacer público este primer proyecto.

El visor es accesible desde cualquier plataforma web, por lo que los ciudadanos pueden consultar el aforo de las playas de forma sencilla, tanto desde sus smartphone y tablets como de sus ordenadores personales. Además se ha facilitado un código QR con el acceso directo al geoportal.

Por otro lado, se está abordando en paralelo el desarrollo de INFO Cullera, una aplicación basada en gvSIG MApps para Android e iOS, en la que el ciudadano podrá ver el geoportal directamente sobre ella, y que estará disponible en los próximos días.

by Mario at June 29, 2020 05:59 AM

Neste podcast: O TecnoloGEO 14 reúne toda a equipe, Murilo Cardoso (@niilistativo) , Narcélio de Sá (@narceliodesa) e Luiz Sadeck (@sadeckgeo), para bater um papo estilo Arquivo Confidencial. A ideia é conhecer um pouco mais de cada um dos nossos hosts, falar um pouco mais sobre suas histórias, criações, inspirações, backgrounds, etc. Quer saber mais sobre o nosso time?

Aperte o ► para começar o TecnoloGEO #14

O tecnoloGEO é encabeçado por Murilo Cardoso (@niilistativo) , Narcélio de Sá (@narceliodesa) e Luiz Sadeck (@sadeckgeo), o projeto tem a pretensão de ser semanal e contar sempre com convidados, que sejam relevantes ao assunto em pauta da vez, pra bater aquele bate papo descontraído e informativo sobre as Geotecnologias.

Referências e Indicações do TecnoloGEO 14:

Live Geocast:

5 coisas que precisamos saber sobre PostgreSQL

Link para o canal: http://www.youtube.com/c/geocastbrasil

Kyle Felipe e Fábio Telles Rodriguez



Citados no episódio

Deixe seu comentário e participe!

Entre em contato com o TecnoloGEO:

Equipe do TecnoloGEO:

Luiz Sadeck

Luiz Sadeck

Murilo Cardoso

Narcélio de Sá

The post TecnoloGEO 14 – Arquivo Confidencial. appeared first on Narcélio de Sá.

by Narcélio de Sá at June 29, 2020 03:00 AM

June 26, 2020

El pasado 11 de junio, en la Comisión Plenaria de la Red e Destinos Turísticos Inteligentes, se aprobó la incorporación de la Asociación gvSIG como miembro institucional de la Red DTI (Destino Turístico Inteligente). La Comisión Plenaria de la Red de Destinos Turísticos Inteligentes que aprobó la incorporación de la Asociación gvSIG, estuvo presidida por S.M. el Rey, acompañado por la ministra de Industria, Comercio y Turismo, Reyes Maroto; la secretaria de Estado de Turismo, Isabel Oliver y el presidente de SEGITTUR, Enrique Martínez. Los participantes de la Comisión permiten vislumbrar la relevancia de esta Red.

La Asociación gvSIG pone a disposición de la Red DTI su catálogo de tecnologías libres para gestión de información con dimensión geográfica, aportando soluciones y conocimiento que ayuden a modernizar el sector turístico. De hecho, en la actualidad, desde la Asociación gvSIG ya se están realizando diversos proyectos (de los que en breve daremos más información) en esta línea tanto para administraciones locales como autonómicas.

¿Qué es la Red DTI?

La Secretaría de Estado de Turismo de España lidera el proyecto DTI, pionero a nivel internacional, impulsado y gestionado por SEGITTUR, cuyo objetivo es implantar un nuevo modelo de mejora de la competitividad y desarrollo turístico basado en la gobernanza y la corresponsabilidad turística. Esta iniciativa, surgida del Plan Nacional e Integral de Turismo 2012-2015, genera los mecanismos adecuados para facilitar la rápida incorporación de innovaciones en los destinos.

Destino Turístico Inteligente es un destino turístico innovador, consolidado sobre una infraestructura tecnológica de vanguardia, que garantiza el desarrollo sostenible del territorio turístico, accesible para todos, que facilita la interacción e integración del visitante con el entorno e incrementa la calidad de su experiencia en el destino y mejora la calidad de vida del residente.

La transformación en un Destino Turístico Inteligente supone la revalorización del destino a través de la innovación y la tecnología.

Y si una tecnología es fundamental en este ámbito son los Sistemas de Información Geográfica; la Suite gvSIG – un completo catálogo de soluciones SIG en software libre – tiene múltiples aplicaciones, tanto a nivel interno y de gestión, como externo y de divulgación/promoción. Es momento de apostar por la innovación y nuevos modelos productivos que permitan encarar el futuro con garantías.

by Alvaro at June 26, 2020 08:05 AM


After nearly 20 years, a major update of the Shuttle Radar Topography Mission (SRTM) data was released in February this year. The product is called NASADEM, and consists of a combination of reprocessed SRTM data and auxiliary data from a variety of sources, including ASTER GDEM and Advanced Land Observing Satellite (ALOS) (Crippen et al. 2016). The dataset consists of three different layers: hgt, num and swb. The hgt layer is the void-filled DEM. The category values of the num layer indicate the number of DEM tiles used and the source of the data. And the swb layer is the updates SRTM water body data, with two classes; 0 for land and 255 for water. See for more information the NASADEM website or this comparison guide.

Importing in GRASS

GRASS GIS is one of the better tools to work with large high resolution raster data. And it has always been relatively easy to import raster data like the SRTM DEM into GRASS GIS (Neteler 2005). This applies to the NASADEM data as well. But with the r.in.nasadem add-on, developed by Markus Neteler, it is just downright easy. The add-on imports all NASADEM tiles covering the current region, or region extents given with the region option into GRASS, and automatically patches the tiles together.

For the readers less familiar with GRASS GIS, the computational region is a cornerstone concept in GRASS GIS. The region defines the extent and resolution at which raster operations are carried out. Read the Wiki page for more information.

To import the NASADEM data for your area, you first need to install the r.in.nasadem addon. You can use the g.extension for this. Furthermore, to get access to the data, you’ll need to register at the Earthdata website. After registration, go to your user profile on the earthdata site and make sure the LP DAAC Data Pool and Earthdata Search applications are approved.

Now we can start with importing the data. The data comes in WGS 84 (EPSG 4326). Therefore, you need to import the data in a location with that reference coordinate system. If you don’t know what a location means in this context, read here about how a grass gis database is structured.

In your mapset, make sure to set the extent to match the region for which you want to download the data. Furthermore, set the resolution to 1 arc-second, which is the resolution of the NASADEM data. In this example, I’ll set the region to match a region in the central Oder valley in Poland.

You can run this directly from the command line, you can use the GUI, or using Python code. For the latter, you’ll need to import the PyGRASS module.


g.region n=52:38:40N s=51:08:02N w=15:36:05E e=18:30:02E res=0:00:01

GUI Go the Settings menu and select computational region > set region. Or you type g.region on the command line. Either way, you’ll get the g.region screen . Under the Bounds tab, fill in the upper, lower, left and right edges. In addition, select the Align region to resolution box to ensure the resolution will be exactly 1 arc-seconds.

g.region screen

Under the Resolution tab > 2D grid resolution fill in the target resolution (1 arc seconds).

g.region screen

And of course, don’t forget to push the Run button.


from grass.pygrass.modules import Module
Module("g.region", n="52:38:40N", s="51:08:02N", w="15:36:05E", e="18:30:02E",

After installing the r.in.nasadem addon, you can find it under the Modules tab, in the Addons section. Alternatively, run r.in.nasadem on the command line or in the Console. Below, I’ll import the data for the region I defined above. To state the obvious, replace ‘your_username’ and ‘your_password’ with your own username and password of your account on EarthData.


r.in.nasadem output=NASAdem username=your_username password=your_password


Module("r.in.nasadem", output="NASAdem", username="your_username",


r.in.nasadem screen

I already filled in the name of the output raster, NASAdem. Under the tab Optional you can probably leave the default NASADEM version as it is. Likewise, keep the NASADEM layer to hgt, unless you want to import one of the other two available layers. The user name and password are for the Earth data website mentioned above. You can leave the base URL as it is, unless you already have downloaded the data, in which case you have to point the addon to the right folder.

r.in.nasadem screen

As mentioned above, the r.in.nasadem imports all tiles required to cover this region, and patched them together. The resulting map likely covers a larger area than your study region. If you only want to keep the data for your study area, you can use r.mapcalc, like in the example below.


r.mapcalc "NASAdem = NASAdem" --overwrite


Module("r.mapcalc", expression="NASAdem = NASAdem", overwrite=True)

So what did I do just there? Remember that the region defines the extent and resolution at which raster operations are carried out. So the output of any raster calculation is limited to the region extent. Furthermore, note that I use the -overwrite flag as GRASS GIS by default does not overwrite existing layers. There are other ways to do this, but this method is easy and results in raster layers with exactly the required extent and resolution. Did I already mention how much I like this concept of the computational region?

OK, and a mandatory image below created using the wxGUI 3D View Mode in GRASS. If you hover over the image, the colors representing the elevation are replaced by colors representing the different Corina Land Cover (CLC) categories (Copernicus 2019).

One thing about the SRTM is that in areas with a moderate to thick vegetation canopy, the elevation as provided by the SRTM is close to that of the canopy top rather than ground level (JPL n.d.; Weydahl et al. 2007; Orlandi et al. 2019). You can see this in the image above, with green colors representing various forest types on the CLC map.


Copernicus. 2019. “Corine Land Cover (CLC) 2000, Version 20.” Dataset (raster, vector). European Environment Agency (EEA). https://land.copernicus.eu/pan-european/corine-land-cover/clc-2000.

Crippen, R., S. Buckley, P. Agram, E. Belz, E. Gurrola, S. Hensley, M. Kobrick, et al. 2016. “Nasadem Global Elevation Model: Methods and Progress.” ISPRS - International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences XLI-B4 (June): 125–28. https://doi.org/10.5194/isprsarchives-XLI-B4-125-2016.

JPL, NASA. n.d. “Shuttle Radar Topography Mission. Frequently Asked Quetions.” Shuttle Radar Topography Mission. Accessed June 27, 2020. https://www2.jpl.nasa.gov/srtm/faq.html.

Neteler, M. 2005. “SRTM and VMAP0 Data in OGR and GRASS.” GRASS Newsletter 3: 2–6.

Orlandi, Alex Gois, Osmar Abílio de Carvalho Júnior, Renato Fontes Guimarães, Edilson de Souza Bias, Douglas Corbari Corrêa, Roberto Arnaldo Trancoso Gomes, Alex Gois Orlandi, et al. 2019. “Vertical Accuracy Assessment of the Processed Srtm Data for the Brazilian Territory.” Boletim de Ciências Geodésicas 25 (4). https://doi.org/10.1590/s1982-21702019000400021.

Weydahl, D. J., J. Sagstuen, Ø B. Dick, and H. Rønning. 2007. “SRTM DEM Accuracy Assessment over Vegetated Areas in Norway.” International Journal of Remote Sensing 28 (16): 3513–27. https://doi.org/10.1080/01431160600993447.

June 26, 2020 12:00 AM

June 25, 2020

Hoy os traemos un excelente trabajo desarrollo por Antonio Iván Rodríguez Guerrero en el marco de los trabajos de prevención y extinción de incendios forestales.

El documento podéis descargarlo aquí.

¿En qué ha consistido el trabajo desarrollado?

En el ámbito de las emergencias por incendios forestales el conocimiento de territorio es fundamental para establecer estrategias y operaciones seguras. Conocer el estado de las pistas forestales, determinar qué punto de agua está más cerca o conocer cuántos habitantes residen en un bien que está amenazado, agiliza la toma de decisiones y aporta certidumbre a las acciones que se puedan desarrollar para hacer frente a la emergencia. Para esto disponer de cartografía adecuada es muy importante.

El trabajo desarrollado por Antonio Iván Rodríguez Guerrero parte de la necesidad de disponer de cartografía adecuada para utilizarla en las intervenciones y tecnología para poder trabajar de forma eficiente con ella. Utilizando la Suite gvSIG, un catálogo de soluciones SIG en software libre, desarrolla una metodología sencilla para inventariar pistas forestales, puntos de agua, accesos y bienes amenazados.

El entorno de trabajo se ha desarrollado en el municipio de Yeste, Albacete, concretamente en una zona de trabajo, Hueco de Tus, que presenta unas características especiales de dispersión de núcleos habitados, gran densidad de establecimientos turísticos y unas condiciones de acceso limitadas a una sola entrada.

Este inventario muestra unos resultados que se implementan en un proyecto denominado PREVIFOR YESTE dentro de un geoportal generado con gvSIG Online, a modo de una Infraestructura de datos espaciales IDE , al que además se le han incluido otra serie de capas cartográficas. El proyecto es un buen ejemplo de como estas tecnologías pueden ayuar a dispositivos contra incendios, administraciones o corporaciones privadas, para el desarrollo de proyectos de inventariado vinculados a la prevención de incendios forestales y al análisis y caracterización de bienes amenazados.

Como complemento final enlazamos un articulo que ha publicado recientemente Iván.

Post relacionados:

by Alvaro at June 25, 2020 07:37 PM

We are pleased to announce the release of QGIS 3.14 ‘Pi’!

Installers for all supported operating systems are already out. QGIS 3.14 comes with tons of new features, as you can see in our visual changelog.

We would like to thank the developers, documenters, testers and all the many folks out there who volunteer their time and effort (or fund people to do so). From the QGIS community we hope you enjoy this release! If you wish to donate time, money or otherwise get involved in making QGIS more awesome, please wander along to qgis.org and lend a hand!

QGIS is supported by donors and sustaining members. A current list of donors who have made financial contributions large and small to the project can be seen on our donors list. If you would like to become a sustaining member, please visit our page for sustaining members for details. Your support helps us fund our six monthly developer meetings, maintain project infrastructure and fund bug fixing efforts.

QGIS is Free software and you are under no obligation to pay anything to use it – in fact we want to encourage people far and wide to use it regardless of what your financial or social status is – we believe empowering people with spatial decision making tools will result in a better society for all of humanity.

by underdark at June 25, 2020 06:47 PM

June 24, 2020

The uDig community is pleased to announce Release Candidate 2.2.0.RC1  

Release Details

Release Notes, Tag, and Downloads for Mac, Linux, and Windows : uDig 2.2.0.RC1 Release Canditate

Features, Bugfixes and Improvements

#314 Allows to configure display delay for edit tools
#379 Improved copy behavior for feature attributes
#367 Fixed Display access for Message Bubble
#363 Fixed Layer Memory Leak on Feature Events

Java 11 Support

From now on uDig can be run in Java 11 Runtime Environments.

#354 Removed joda-time dependency
#378 Update Eclipse Platform to Release 2019-03
#361 Update GeoTools to 22.1 (with dependencies)

This implies that uDig cannot support 32bit Operation Systems anymore, for details see Eclipse Platform Issue 536766.


Mailing Lists for both, Developers and Users changed:

For Users: udig-users@eclipse.org (was udig-users@locationtech.org)
For Developers : udig-dev@eclipse.org (was udig-dev@locationtech.org)

OpenSource is a team effort and we would like to thank everyone who helped to develop and test the release candidate: Emily Gouge, Nikolaos Pringouris, Silvia Franceschi, Andrea Antonello!

by Frank Gasdorf (noreply@blogger.com) at June 24, 2020 06:29 AM

June 23, 2020

GeoNode pic

Dear Reader,

One of the core technologies in a Spatial Data Infrastructure (SDI) is a catalog. It’s like a town center where food providers and food consumers meet. Shoppers walk around and visually or by smelling they discover the food they want. They engage in a small chat and if they agree with the price they buy it. In the case of an SDI, a catalog is the virtual place where data providers and data consumers meet.  Data consumers discover resources and via rich descriptions (metadata) and previews,  they make a decision about using or not a particular data or service. However, not all organizations have implemented a catalog  and in the case of a disaster, discovery of data is still a big issue as highlighted in the recently published OGC Development of Disaster Spatial Data Infrastructures for Disaster Resilience Engineering Report.

Discovery of data is only part of the challenge. Once you find the service or dataset, you want to access it and use it. If the resource is not available via open standards, like the ones promoted by OGC and ISO, then it's like buying a piece of bread that you can only cut with one knife. It becomes frustrating and expensive to buy this kind of bread!

What if you are a data provider and in minutes you can register your data or service on the web, add metadata to it, and immediately have it available via open standards? This is what GeoNode does pretty well. It’s a content management system for geospatial, build on open standards and open source. It powers lots of Spatial Data Infrastructures in the world. For example GeoSolutions has helped install GeoNode in various countries (Malaway, Afghanistan, Mozambique, Ghana, Uganda, Nepal, and Madagascar).

The World Bank, in particular, has greatly supported its development and even published a report about the return over investment they encountered when investing in the development of GeoNode. A great blog about it is available at the World Bank web site. So, with all these said, GeoNode 3.0 was released about a month ago.  See GeoNode blog for complete details. There is usually a presentation GeoSolutions does at  the FOSS4G meeting and at  the GeoNode summit about the latest release, but unfortunately the two meetings were cancelled, so we are doing  a free webinar on July 7th at  11:00 Eastern Time. Some highlights of what’s new:

- GeoNode components have been updated to new versions: Python upgrade 3.7, Django upgrade 2.2.12, GeoServer upgrade 2.16.2.

MapStore is now the default client greatly enriching the experience for viewing the data.

- Greatly improved analytics and getting information about who is visiting the website and their actions. For example, you can see unique visitors who trigger a specific type of event.

- Improved full GeoNode backup & restore.

- Extended GeoNode shared permission via GeoLimits to restrict users or groups to a specific geographical area (see below).

[caption id="attachment_5335" align="aligncenter" width="799"]geolimits GeoLimits at work for GeoNode 3[/caption]  

I just highlighted my favorite enhancements. To learn more about GeoNode 3,0 and enjoy a 20 minutes of Q&A time with our lead GeoNode Lead Developer Alessio Fabiani, Francesco Bartoli, as well as, Giovanni Allegri and Florian Hoedt also part of the GeoNode Project Steering Committee. I cordially invite you to a free webinar on July 7 at 11:00 Eastern Time by registering at the link below!

Hope to see you virtually on July 7th, meanwhile stay safe and keep strong! Cordially, Luis 320x100_eng

by Luis Bermudez at June 23, 2020 01:16 PM

There is always this buzz that comes with new releases of QGIS. I guess this is because the development goes so quick, and each and every release brings something new and exciting. In fact, I haven’t even had the change to try out all the new functionalities in version 3.12 (see here).

But OK, what will QGIS 3.14 Pi brings us? Again, a lot. The changelog isn’t officially online yet, but check out the link to the sneakpreview on that page. Highlights are further improvements to vector tile support, new cartographic functionality, and of course, the new temporal support. For the Dutch readers, Anita Graser talked about it on the Grote Geo Show. I also like the new functions in the processing toolbox, like the random raster generating algorithms and the new modeler algorithms for creating conditional branches, to name just two.

Creating a random raster layer

But this is just the top of the iceberg. Check out yourself the long list of new functions and changes. Or even better, go over to qgis.org and install the latest and greatest yourself. I for one just did. And to prove it, below a screenshot of the use of the new renderer for drawing contour lines that are calculated on the fly from the source raster band.

creating contour lines on the fly

June 23, 2020 12:00 AM

June 22, 2020

Neste podcast: O TecnoloGEO 13 vem até você em clima de São João nas ondas da Rádio TecnoloGEO ZYC-42 para comentar a compra da Mapillary pelo Facebook. Compra essa que pode ser considerada como mais um passo na tentativa do Facebook de quebrar o monopólio do Google em relação aos mapas digitais.

Mais sobre a notícia:

O Facebook adquiriu na quinta-feira, 18/06/2020, a empresa sueca de tecnologia de mapeamento Mapillary. A empresa usa imagens capturadas por qualquer usuário para montar mapas com vista da rua, como o Google Street View. 

O Facebook confirmou a transação, mas se recusou a divulgar os termos. Mapillary não respondeu imediatamente a um pedido de comentário.Com isso o Facebook tenta ter sucesso onde Apple (com o Apple Maps) e Microsoft (Bing Maps) já falharam: quebrar o monopólio do Google no mercado de mapas digitais interativos.

Aperte o ► para começar o TecnoloGEO #13

O tecnoloGEO é encabeçado por Murilo Cardoso (@niilistativo) , Narcélio de Sá (@narceliodesa) e Luiz Sadeck (@sadeckgeo), o projeto tem a pretensão de ser semanal e contar sempre com convidados, que sejam relevantes ao assunto em pauta da vez, pra bater aquele bate papo descontraído e informativo sobre as Geotecnologias.

Referências e Indicações do TecnoloGEO 13:

Pesquisa Mercado de Trabalho para Geotecnologias:

Você já participou da pesquisa organizada pela Women in GIS Brasil sobre Mercado de Trabalho para Geotecnologias?? Então participe!!

A pesquisa Mercado de Trabalho para Geotecnologias lançada pela Women in GIS propõe avaliar a realidade brasileira de quem trabalha no setor das Geotecnologias.

A Women in GIS Brasil promove ações para o desenvolvimento de profissionais de Geotecnologias, principalmente em favor das mulheres, e trabalha para superar a discriminação no trabalho, as diferenças salariais e o isolamento profissional.

Segue o link da pesquisa: https://arcg.is/GKH1T
Saiba mais sobre a Women in GIS Brasil em: https://bit.ly/3dryKVJ

Lives Geocast:

We R Live 08: Introdução à estatística Espacial - Processos Pontuais II

We R Live 08: Introdução à estatística Espacial – Processos Pontuais II

Dando seguimento à série de lives sobre estatística espacial, vamos apresentar um pouco sobre análises de dependência espacial para processos pontuais.

Link para a live: https://youtu.be/BCl_V-SpQec

★Repositório no GitLab: https://gitlab.com/geocastbrasil/liver

Maurício Vancine
Felipe Sodre M. Barros

Citados no episódio:








Deixe seu comentário e participe!

Entre em contato com o TecnoloGEO:

Equipe do TecnoloGEO:

Luiz Sadeck

Luiz Sadeck

Murilo Cardoso

Narcélio de Sá

The post TecnoloGEO 13 – Por que o Facebook adquiriu a Mapillary? appeared first on Narcélio de Sá.

by Narcélio de Sá at June 22, 2020 03:19 AM

June 21, 2020

The better the software, the more demanding you may get as an user. But is it really too much to ask to be able to include a continuous legend for floating point raster maps in the print layout? It certainly isn’t new on the wishlist, as you can see on this Q&A. I have resorted to various solutions, including writing the GRASS GIS add-on r.out.legend to create and export raster legend as an image in GRASS GIS, which I would than add to the map layout.

Another solution I resorted to was creating a legend in Inkscape. But then I realized that I could probably do all of this in QGIS directly. And indeed, no third-party tools required. Let me explain the steps below. Seven steps, it may seem a lot, but it really isn’t much work, you’ll see.

Step 1

Create a legend with a limited number of steps. In the image below, I have opted for 5 equal interval classes. You can use any interval, but using equal intervals makes things easier, as you will see later.

Step 1

Step 2

Next, open the layout manager, create a new layout and add the raster layer (and any other layer you want) and the legend.

Step 2

Step 3

The numbers in the text refer to the numbers in the figure below. Select the legend, and open the Item properties window. Under the Symbol options, change the symbol height to 0.5 mm (1) and deselect the ‘draw stroke for raster symbol’ (2). Under the Spacing options, increase the space between symbols (3).

Step 3

Step 4

Zoom in on the legend, and place horizontal guides just above the upper and below the lower symbol (1). Next, draw a rectangle next the legend (2). Make the rectangle snaps to the upper and lower guides. Now, under the * Item properties* tab, click on the Style (3). This opens the Symbol settings window.

Step 4

Step 5

Select as Symbol layer type the ‘gradient fill’ (1). Below, you select the radio button next to ‘Color ramp’ (2). Next, you click on the color ramp (3) to edit the color ramp. This will open the *Select Color Ramp’ window (4).

Step 5

Step 6

We have a legend with five colors at equal distances. So we have stops at 0, 25, 50, 75 and 100%. We already have the first and last stop, so we need to add three stops. You can simply add a stop by double clicking on the color ramp (1). You can precisely position the stops by setting the *relative position (2).

Now select the first stop, and the sample tab (3). Click on the sample color button (4) and sample the color of the upper color of your legend (5). Likewise, select the second, third, fourth and fifth stops and sample the colors from the corresponding legend boxes.

Step 6

Step 7

Now the finishing touch. Remove the guides, move the rectangle to the right to cover the legend boxes. Or if you like, keep part of the original legend symbols uncovered, so they serve as ticks. Optionally, you can group the legend and rectangle so you can move them easily around.

Step 7

All in all, not the ideal solution, but not too complicated either.

June 21, 2020 12:00 AM

June 20, 2020

This is another in a series of posts about the new OverlayNG algorithm being developed for the JTS Topology Suite. (Previous ones are here and here).  Overlay is a core spatial function which allows computing the set-theoretic boolean operations of intersection, union, difference, and symmetric difference over all geometry types. OverlayNG introduces significant improvements in performance, robustness and code design.

JTS has always provided the ability to specify a fixed-precision model for computing geometry constructions (including overlay).  This ensures that output coordinates have a defined, limited precision.  This can reduce the size of data transfers and storage, and generally leads to cleaner, simpler geometric output.  The original overlay implementation had some issues with robustness, which were exacerbated by using fixed-precision.  One of the biggest improvements in OverlayNG is that fixed-precision overlay is now guaranteed to be fully robust.  This is achieved by using an implementation of the well-known snap-rounding noding paradigm. 

Geometric algorithms which operate in a fixed-precision model can encounter situations called topology collapse.  This happens when line segments and points become coincident due to vertices or intersection points being rounded.  The OverlayNG algorithm detects occurrences of topology collapse and transforms them into valid topology in the overlay result.

Topology collapse during overlay with a fixed precision model

As a bonus, handling topology collapse during the overlay process also allows it to be tolerated when present in the original input geometries.  This means that some kinds of "mildly" invalid geometry (according to the OGC model) are acceptable as input.  Invalid geometry is transformed to valid geometry during the overlay process.

Specifically,  input geometry may contain the following situations, which are invalid in the OGC geometry model:
  • A ring which self-touches at discrete points (the so-called "inverted polygon" or "exverted hole")
  • A ring which self-touches in one or more line segments
  • Rings which touch other ones along one or more line segments 
Note that this does not extend to handling polygons that overlap, rather than simply touch.  These are "strongly invalid", and will trigger a TopologyException during overlay.

An interesting use for this capability is to process individual geometries.  By simply computing the union of a single geometry the geometry is transformed into an OGC-valid geometry.  In this way OverlayNG functions as a (partial) "MakeValid" operation.  
A polygon which self-touches in a line transforms to a valid polygon with a hole

A polygon which self-touches in a point transforms to a valid polygon with a hole

A collection of polygons which touch in lines transforms to a valid polygon with a hole

Moreover, some spatial systems use geometry models which do not conform to the OGC semantics.  Some systems (such as ArcGIS) actually specify the use of inverted polygons and exverted holes in their topology model.  And in days of yore there were systems which were unable to model holes explicitly, and so used a "connected hole" topology hack (AKA "lollipop holes".) This represented  holes as an inversion connected by a zero-width corridor to the polygon shell. Both of these models are accepted by OverlayNG. Thus it provides a convenient way to convert from these non-standard models into OGC-valid topology. 

This is one more reason why overlay is the real workhorse of spatial data processing!

by Dr JTS (noreply@blogger.com) at June 20, 2020 07:49 PM

Plotting maps with tmap

A map of the distances to the nearest Natura2000 areas in a region in the central Oder basin.

Figure 1: A map of the distances to the nearest Natura2000 areas in a region in the central Oder basin.

The tmap R package greatly simplifies creating good looking maps. Like in ggplot, but also similar to most GIS tools, it allows you to build up a map layer by layer. If tmap is new to you, good starting points are the Geocomputation with R online book and the tmap get started page. And you can of course google for examples.

One of the features I like, is the ability to include inset maps, like in Figure 1. To be able to do this, you need the viewport function of the grid package. This is not a function I use a lot, so every time I want to make a map with an inset map, I have to look up the details. One of those details is how to properly align the legend and the inset map. As a note to self, but perhaps also useful to others, below the code I used to create this figure.

Get the libraries

First step is to load the required libraries. Besides the aforementioned tmap and grid libraries, the following packages are used: the tmaptools, sf, sp and rgrass7 libraries. The rgrass7 library is required because I want to use two layers I keep in a GRASS GIS database. If you want to import for example a geotif or vector layer in a geopackage, you can use the raster package and sf packages instead.

# libraries

Main map

The readRAST and readVECT functions are used to read in the raster and vector data from a GRASS GIS database. To import raster data, rgrass7 needs to be instructed to use the older sp package, while for the vector layer, the sf package can be use. This is done by the functions use_sp and use_sf respectively.

# import raster data
rd <- readRAST("natura2000dist")

# import natura2000 vector layer
n2 <- read_sf("natura2000.gpkg")

Next, create a vector layer of the study area based on the bounding box of the raster layer, using the bb_poly function from the tmaptools package. This is later used to show the location of the study area in the inset map.

sg <- bb_poly(rd, projection = 3035)

To be able to properly align the different map elements, you need to know the aspect ratio of the input layers. To calculate this, extract the lower and upper x- and y-coordinates using the st_bbox function from the sf package. With those values, calculate the width and height, and subsequently the aspect ratio.

xy <- st_bbox(sg)
asp <- (xy$ymax - xy$ymin)/(xy$xmax - xy$xmin)

Now you have all the data, you can create the main map. I won’t go into all the details, the functions and parameters are clearly explained in the help pages. Just make sure to define the inner and outer margins (here both set to 0), the position of the legend, and the legend height and width. Important, you’ll notice that I used negative numbers for the legend width and height. The minus sign is used to tell tmap to use the exact width and length as provide. If you give a positive number, tmap will decrease the actual legend width and height automatically based on the legend content and font sizes.

mainmap <- tm_shape(rd) +
  tm_raster(style="cont", title="Distance (m)") +
  tm_shape(n2) +
  tm_fill(col="white", alpha=0.5, lwd=0.5) +
  tm_borders(col="lightgrey", lwd=0.01) +
  tm_layout(legend.outside=F, legend.text.size = 0.8,
            legend.frame=TRUE, legend.position=c(0.985, 0.985),
            legend.just = c("right", "top"), legend.width=-0.25,
            legend.height=-0.4, outer.margins = c(0,0,0,0),
            inner.margins = c(0,0,0,0))

Inset map

The raster layer covers a region in the central Oder river basin in Poland. The idea is for you to add an inset map of Poland, including the region covered by the raster layer. You can get the boundary data from the GADM database of Global Administrative Areas. The data can be downloaded in various formats, including the rds data format. The rds file contains a sf vector object. By combining the readRDS and url functions, you can download and import the required files in one go (you’ll need to get the download urls first of course).

### Get boundary data
link1 <- "https://biogeo.ucdavis.edu/data/gadm3.6/Rsf/gadm36_POL_0_sf.rds"
link2 <- "https://biogeo.ucdavis.edu/data/gadm3.6/Rsf/gadm36_POL_1_sf.rds"
PolCntr <- readRDS(file = url(link1, "rb"))
PolProv <- readRDS(file = url(link2, "rb"))

### Project to EPSG:3035 (the same crs as the raster data)
PolCntr <- st_transform(PolCntr, crs=3035)
PolProv <- st_transform(PolProv, crs=3035)

The two layers will be used as input for the inset map. To properly align this inset map with the legend, we need to know the aspect ratio of the vector data. Again, use the st_bbox function to get the minimum and maximum x- and y-values, and use these to calculate the aspect ratio.

xy <- st_bbox(PolCntr)
asp2 <- (xy$xmax - xy$xmin)/(xy$ymax - xy$ymin)

Now you’re set to create the inset map. Set the outer.margins to 0. If you want to set the inner margins to a certain value (as I have done here), make sure they are the same on all sites. Otherwise, you’ll need to adapt the aspect ratio.

insetmap = tm_shape(PolCntr) + tm_fill(col="lightgrey") +
  tm_shape(PolProv) + tm_borders(lwd = 1, col="grey") +
  tm_shape(sg) + tm_borders(lw=2, col="red") +
  tm_layout(inner.margins = c(0.04,0.04,0.04,0.04), outer.margins=c(0,0,0,0))

Create the final map

For the final map, use the viewport function to determine where the inset map will be printed, and at what size. For the latter, define the width and height. The ratio of these two need to correspond to the aspect ratio of the inset map. So first set the width to match the width of the legend of the main map. Next, compute the corresponding height by multiplying the width by the aspect ration you calculated earlier.

Now you just need to ensure the inset map aligns neatly with the legend by setting the x and y and the justification of the viewport relative to the x and y location.

w <- 0.25
h <- asp2 * w
vp <- viewport(x=0.985, y=0.585, width = w, height=h, just=c("right", "top"))

And, as the very last step, save the final map as a png image. To avoid white spaces on the top and bottom, or left and right, make sure the aspect ratio of the output image is the same as that of the map.

          dpi=100, insets_tm=insetmap, insets_vp=vp,
          height=asp*91, width=91, units="mm")

All the code

Quite a bit of code for such a simple map. But on the other hand, once you have created the map, it is very easy to update or adapt it if for example new data comes available.

# libraries


# Main map

# import raster data
rd <- readRAST("natura2000dist")
sg <- bb_poly(rd, projection = 3035)

# import natura2000 data
n2 <- read_sf("natura2000.gpkg")

# Aspect ratio raster data
xy <- st_bbox(sg)
asp <- (xy$ymax - xy$ymin)/(xy$xmax - xy$xmin)

# Create map
mainmap <- tm_shape(rd) +
  tm_raster(style="cont", title="Distance (m)") +
  tm_shape(n2) +
  tm_fill(col="white", alpha=0.5, lwd=0.5) +
  tm_borders(col="lightgrey", lwd=0.01) +
  tm_layout(legend.outside=F, legend.text.size = 0.8,
            legend.frame=TRUE, legend.position=c(0.985, 0.985),
            legend.just = c("right", "top"), legend.width=-0.25,
            legend.height=-0.4, outer.margins = c(0,0,0,0),
            inner.margins = c(0,0,0,0))

# Inset map

# Get boundary data and project to EPSG:3035
link1 <- "https://biogeo.ucdavis.edu/data/gadm3.6/Rsf/gadm36_POL_0_sf.rds"
link2 <- "https://biogeo.ucdavis.edu/data/gadm3.6/Rsf/gadm36_POL_1_sf.rds"
PolCntr <- readRDS(file = url(link1, "rb"))
PolProv <- readRDS(file = url(link2, "rb"))
PolCntr <- st_transform(PolCntr, crs=3035)
PolProv <- st_transform(PolProv, crs=3035)

# Get bounding box and aspect ratio of Poland map
xy <- st_bbox(PolCntr)
asp2 <- (xy$xmax - xy$xmin)/(xy$ymax - xy$ymin)

# Create inset map
insetmap = tm_shape(PolCntr) + tm_fill(col="lightgrey") +
  tm_shape(PolProv) + tm_borders(lwd = 1, col="grey") +
  tm_shape(sg) + tm_borders(lw=2, col="red") +
  tm_layout(inner.margins = c(0.04,0.04,0.04,0.04), outer.margins=c(0,0,0,0))

# Create viewport
w <- 0.25
h <- asp2 * w
vp <- viewport(x=0.985, y=0.585, width = w, height=h, just=c("right", "top"))

# Final map
          dpi=100, insets_tm=insetmap, insets_vp=vp,
          height=asp*91, width=91, units="mm")

June 20, 2020 12:00 AM

June 19, 2020


The new QGIS 3.14 version adds support for the native loading of vector tiles. The easiest way to load them is via the recently released plugin.

New plugin with vector tiles maps

One of the most important new features in QGIS 3.14 is the built-in support for vector tiles. The MapTiler plugin allows anybody to easily load map data of the entire planet, with details down to the street level.

QGIS plugin

The plugin automatically loads maps from MapTiler Cloud in vector or raster tiles, but can also open maps from any other URL.

For the very first time, high-quality maps of the entire world can be printed in QGIS so easily. You don’t need to care about DPI settings, because vector tiles behave as any other vector-based technology and scale infinitely with the same resolution.

If you don’t have a large format printer at hand, export your map into PDF and zoom in deeply to inspect the level of sharpness.

Styling the vector data

A ready-to-use list of beautiful map styles is available to QGIS users. Those who prefer customized maps can make their own map design in a few clicks using the Customize tool. Users can set their own colors, fonts, or choose the language of map labels.

For power users, there is the Edit tool, with advanced functionality to allow the addition of one’s own data and the manipulation of layers.

QGIS plugin

All map styles from the MapTiler Cloud, including user-customized ones, are translated to QGIS styling. This allows you to use the styling editor in QGIS and give your maps a final touch-up.

QGIS plugin

Anywhere on Earth, in high detail

The MapTiler plugin for QGIS allows users to load maps of the entire world (from the OpenStreetMap project), maps from official government data in the Netherlands (Kadaster maps via Cartiqo), the United Kingdom (Ordnance Survey Open Zoomstack) and Japan (GSI data), high-resolution aerial imagery, hillshading, contour line, and much more.

Geospatial data of any size can be uploaded to MapTiler Cloud and served to QGIS via MapTiler plugin.

QGIS plugin

Maps appear quickly, thanks to the tiles technology for both raster and vector data. The high speed of delivery is also reached because maps are cached on more than 150 CDN servers on five continents.

The coordinate system of your choice 

A huge advantage of vector tiles compared to raster tiles is flexibility. Reprojecting to any coordinate system inside QGIS doesn’t impact the visual appeal of the map tiles. All labels rotate accordingly, warped objects stay sharp, and much more!

You can reproject maps into any coordinate system: the default Mercator, French Lambert, Dutch RD-new, or global WGS84 to name a few.

QGIS plugin

Export rasters, vector images, or CAD files

All maps can be exported as images in GeoTIFF, PNG, or compressed JPEG, for use on the web or in raster graphics editors like Adobe Photoshop or GIMP.

For vector graphics editors like Adobe Illustrator or Inkscape, exports in SVG and PDF formats are available.

Exporting to CAD software like AutoCAD and others is possible via DWG and DXF formats.

QGIS plugin

Before making exports, print, or republishing, please contact us.

Download the plugin for free

Learn more about the plugin or get it by searching maptiler in the plugin service in QGIS. 

Installing the plugin is straightforward:

  1. Open QGIS 
  2. Click on the menu Plugins → Manage and Install Plugins…
  3. Search for maptiler
  4. Click on the Install Plugin
  5. Restart QGIS
  6. Right-click on the MapTiler plugin → Account…
  7. Follow the link after Get a FREE key

Now, just add the key and start loading maps. Enjoy :-)

Big thanks to the open-source community!

The development is happening on GitHub. Feel free to report any issue or send a pull request, community feedback is welcomed!

We want to acknowledge people who made all this possible, namely Martin Dobias from Lutra Consulting, and Kanahiro Iguchi from MIERUNE. Thank you!

by MapTiler (Adam Laza) at June 19, 2020 11:00 AM

June 18, 2020

In a previous post I unveiled the exciting new improvement in the JTS Topology Suite called OverlayNG.  This new implementation provides significant improvements to the core function of spatial overlay.  Overlay supports computing the set-theoretic boolean operations of intersection, union, difference, and symmetric difference over all geometric types.

One of the design goals of JTS is to create modular, reusable data structures and processes to implement spatial algorithms.  This increases development velocity and testability, and makes algorithms easier to understand.  In spatial algorithms it is not always obvious how to identify appropriate abstractions for reuse, so this is an on-going effort of design and refactoring.

After the implementation of spatial overlay in the very first release of JTS, it became clear that overlay can be split into the following phases:

  1. Noding, in which an set of possibly-intersecting linestrings is converted to an arrangement in which linestrings touch only at endpoints
  2. Topology Analysis, during which the topology graph of the noded arrangement is determined
  3. Result Extraction, in which the geometric components of the desired result are extracted from the topology graph

It also became clear that the Noding phase is critical, since it determines the overall performance and robustness of the overlay computation.  Moreover, tradeoffs between these two qualities can be made by using different noding strategies.  For instance, the "classic" JTS noding approach is fast, but susceptible to robustness issues.  Alternatively, noding using the well-known snap-rounding paradigm is slower, but can be made fully robust. 

To encapsulate this concept, JTS introduced the Noder API.  Since it post-dated the original overlay code, using it in overlay had to await a reworking of that codebase.  The OverlayNG project provided this opportunity.  OverlayNG allows supplying a specific Noder class to be used during overlay. 

One of the main goals of the OverlayNG project was to develop a noder to provide fully robust noding.  This would eliminate the notorious TopologyException errors which bedevil the use of overlay.  The effort has paid off with the development of not one, but two new noders.  The Snapping Noder has very good performance and (with the addition of some heuristics, and so far as is known) provides robust full-precision evaluation.  And the Snap-Rounding noder provides guaranteed robustness as well the ability to enforce a fixed-precision model for output.

So now OverlayNG can be run with the following suite of noders, depending on use case.  The images show the result of intersection and union on the following geometries:

Fast Full-Precision Noder

The MCIndexNoder noding strategy has been available since the early days of JTS. It has very good performance due to the use of monotone chains and the STRtree spatial index.  However, it is a relatively simple algorithm which due to numerical robustness issues does not always produce a valid noding.  In overlay it is always used in conjunction with a noding validator, so that noding failure can be detected and an alternative strategy used to perform the operation successfully.

Intersection and Union with full-precision floating noding

Snapping Noder

The SnappingNoder is a refinement of the MCIndexNoder which snaps existing input and computed intersection vertices together, if they are closer than a snap distance tolerance.  This dramatically improves the robustness of the noding, with only minor impact on performance. 

Noding robustness issues are generally caused by nearly coincident line segments, or by very short line segments.  Snapping mitigates both of these situations.  The choice of snap tolerance is a heuristic one.  Generally, a smaller snap distance has less chance of distorting the topology, but it need to be large enough to resolve intersection computation imprecision.  In practice, excellent robustness is provided by using a very small snap distance (e.g. a factor of 10^12 smaller than the geometry magnitude).

Snapping of course risks creating topology collapses, but OverlayNG  is designed to handle these correctly.  However, there are occasional situations where the snapped arrangement is too invalid to  be handled.  This can be detected, and with some simple heuristic adjustments (e.g. a more aggressive  snap distance) the overlay can be rerun.  This strategy has proven to be fully robust in all cases tried so far.

Intersection and Union with Snapping Noding (snap tolerance = 0.5)

Snap-Rounding Noder

The SnapRoundingNoder implements the well-known snap-rounding paradigm.  It provides fully robust noding by rounding and snapping linework to a fixed-precision grid.  This has the unavoidable effect of rounding every output vertex to the precision grid. This may or may not be desirable depending on the situation.  A useful side effect is that it provides an effective means of reducing the precision of geometries in a topologically valid way. 

In the early stages of OverlayNG design and development I expected that snap-rounding would be required to ensure fully-robust overlay, in spite of the downside of fixed-precision output.  But the development of the SnappingNoder and accompanying heuristics means that this noder need only be used when control over overlay output precision is desired. 

Using an appropriate precision model is a highly worthwhile goal in spatial data management, since it reduces the amount of memory needed to represent data, and improves robustness and portability.  This is unfortunately often neglected, mostly due to lack of tools available to enforce it.  Hopefully this capability will encourage users to maintain a precision model which is better matched to the true precision of their data.

Intersection and Union with Snap-Rounding noding (precision scale = 1)

Segment Extracting Noder

This is a special-purpose noder which is really more of a "non-noder". It simply extracts every line segment in the input.  It is used on geometry collections which form valid, fully-noded, non-overlapping polygonal coverages.  When used with OverlyNG, this has the effect of dissolving the duplicate line segments and producing the union of the input coverage. By taking advantage of the structure inherent in the coverage model the SegmentExtractingNoder offers very fast performance.  It can also operate on fully-noded linear networks. 

Union of a Polygonal Coverage with SegmentExtractingNoder

The support for pluggable noding and the development of a suite of fast and/or robust noders constitutes the biggest advance of the OverlayNG code.  It finally allows JTS to provide fully robust noding and true support for a fixed-precision model!  This has been a dream of mine for more than a decade.  It's good to think that the end of the era of TopologyException issues is in sight!

by Dr JTS (noreply@blogger.com) at June 18, 2020 11:14 PM

Yesterday’s FOSS4G UK Online was the first fully virtual geospatial event I ever attended. Over the previous years I’ve joined remotely some FOSS4G and SoTM events, like last year excellent Bucharest 2019 FOSS4G. Having everyone joining remotely makes things quite different, since you don’t feel like a second class attendant. The OSGeo UK Local Chapter organized this fantastic conference in just a few weeks, gathering speakers around three different tracks of talks. There was even a fourth track simulating a coffee corner where you could join and have a chat maybe in the frequent breaks in between talks, what a brilliant idea!

I attended along with Jennifer Allen, the Kibana Maps team lead. We were the whole day grabbing notes around the same document, capturing links, resources, screenshots, and what not. This was way easier from the comfort of my workplace at home compared to the quick notes you can take when running from one session to the next. Surprisingly, I felt also I could get more focused during talks compared with being in a real conference venue; maybe because I didn’t had to worry about going from one room to another to find a good spot to see and listen well, or because I could simply disconnect and get a cup of tea anytime.

No doubt I missed the practical workshops, the hallway conversations, and the after event beers; but as for the way to consume the content, my awkward reflection, at least at this moment, is that I think I prefer a remote conference over in person one. Is it worth to make folks to travel all around the world for a quite exclusive exchange of knowledge? Aren’t we already used to collaborate and learn together at a global scale without the need to make such a big expense? What about of those that don’t feel welcomed at this kind of event for many different, and all legit, reasons? What about those that can’t afford them? I still find value on real gatherings, but maybe I find more bearable to do this once per year or even less, and by the way, totally separated from any holidays plan.

Regarding the content itself, as always there were quite a few great talks. National FOSS4G events tend to attract more use cases and consultancy projects than “core” product development. In this conference I liked the opportunity to learn about the last updates from Geoserver, and all the great work behind the Input App for data collection on the field that can be synchronized with QGIS projects using a Software as a Service called Mergin. Thinking strategically was a good talk with some reflections about the geo industry, and how small it is in the ocean of the data analytics world; the Q&A session afterwards was also quite interesting. The Women in Geospatial+ talk showed all the good work this global community is doing to promote diversity in our industry. Finally I wanted to mention the talk that showcased the OSM regions project, since it shares quite a lot of objectives, tools, and workflows with the stuff we are doing for the Elastic Maps Service. I’d love to put some time to go through the project details and eventually try to find collaboration opportunities.

And that’s it, I think I could have tried to have a talk on this event, and I feel a bit bad for not stepping forward back when the request for talks was launched but I’m sure I will have plenty of opportunities to present Elastic Geo features to the FOSS4G community in the future. As a closing call for action, take a look to the Twitter #FOSS4GUKOnline hashtag to find more opinions and resources, and more importantly, check the recordings when they get up in a couple weeks, you won’t regret it.

Happy Summer!!

by Jorge at June 18, 2020 08:45 PM