Welcome to Planet OSGeo

March 06, 2021

This post is about a new update of the Semi-Automatic Classification Plugin v. 7.8.0

Following the changelog:
-new tool for analysis of neighbor pixel with convolution matrix
-improved performance with multiprocessing calculations
-fixed conversion to vector


This new version includes a new Preprocessing tool named Neighbor pixels.
This tool allows for the calculation of several neighbor pixel statistics for every band of a band set defined in the Band set.



The statistics are calculated for every pixel of the input raster considering the values of the neighbor pixels. Neighbor pixels are defined through a distance or through a custom matrix.
For example, the following matrix represents the neighbor pixels within a distance of 1 pixel from a central pixel, resulting in a 3x3 matrix.

NeighborNeighborNeighbor
NeighborCenterNeighbor
NeighborNeighborNeighbor

Several statistics are available. The statistic Sum will result in a raster convolution. For instance, this can be useful to apply an image filter to all the bands a band set for photointerpretation.
An output band is created for every band in the band sets.

Also, the multiprocessing calculations have been optimized and calculations should generally be more rapid compared to previous version.

For any comment or question, join the Facebook group or GitHub discussions about the Semi-Automatic Classification Plugin.

by Luca Congedo (noreply@blogger.com) at March 06, 2021 10:50 PM

March 04, 2021

The GeoTools team is pleased to share the availability GeoTools 25-RC : geotools-25-RC-bin.zip geotools-25-RC-doc.zip geotools-25-RC-userguide.zip geotools-25-RC-project.zip This release candidate is also available from the OSGeo Maven Repository and is made in conjunction with GeoServer 2.19-RC and JTS 1.18.1.Please Test this Release Candidate A release candidate is your chance to both try out

by Jody Garnett (noreply@blogger.com) at March 04, 2021 08:00 PM

The GeoServer project is changing our default branch to main.

The casual use of the words “master” and “slave” in computer software is an unnecessary reference to a painful human experience that continue to impact society.

The change is part of an industry shift made possible by the git, bitbucket, github and gitlab projects. The git command line, repository implementations, now support main as default branch setting.

To update your local repository:

git branch -m master main
git fetch upstream
git branch -u upstream/main main

To configure your local git tool so that new repositories are created with a main branch:

git config --global init.defaultBranch main

by Jody Garnett at March 04, 2021 12:00 AM

We are happy to announce GeoServer 2.19-RC release candidate is available for testing. Downloads are available (zip and war) along with docs and extensions.

This is a GeoServer release candidate made in conjunction with GeoTools 25-RC and GeoWebCache 1.19-RC.

  • Release candidates are a community building exercise and are not intended for production use.
  • We ask the community (everyone: individuals, organizations, service providers) to download and thoroughly test this release candidate and report back.
  • Participating in testing release candidates is a key expectation of our open source social contract. We make an effort to thank each person who tests in our release announcement and project presentations!
  • GeoServer commercial service providers are fully expected to test on behalf of their customers.

Release Candidate Testing Priorities

This is an exciting release and a lot of great new functionality has been added. We would like to ask for your assistance testing the following:

  • The number one testing priority is to try out GeoServer with your data! Mass market open source thrives on having many people to review. Scientific open source like GeoServer thrives on exposure to many datasets.
  • Help check that new extension download bundles have contain everything needed, including appropriate readme instructions and open source license information.
  • The rest of this blog post highlights new features for GeoServer 2.19, please try out these features, read the documentation links, and ask questions.

Known Issues:

  • Layer configured with missing style throws NPE

MapML extension

In this release, MapML has graduated from community module to extension status. Map Markup Language (MapML) is a proposed extension to HTML, for maps. The objective of the project is to standardize accessible, performant Web maps with native support from Web browsers (maps in HTML). The GeoServer MapML extension will closely track the MapML specification as it evolves. Find out more at https://maps4html.org/, and if you like our goals, join the community group!

The MapML extension works with GeoServer layers and layer groups, and uses WMS, WMTS and WFS facilities built into GeoServer to provide simple map previews layers. The layer previews can be “dragged” from one browser tab onto another map preview to visualize a mashup of the layers of layer groups using the built in MapML viewer.

MapML Layer properties panel
Editing a layer’s MapML properties in the Layers panel

MapML gridsets in the Layers Tile Caching tab
Editing a layer’s MapML gridsets in the Layers panel Tile Caching tab

MapML Preview link is added to the Layer Preview page
Preview a layer in the MapML viewer by following the MapML link

MapML previews can be mashed up by dragging the URL of one preview onto another
Mash up MapML previews by drag and drop

The Maps for HTML community would like to thank Andrea Aime, Jody Garnett and the GeoServer PSC for their support and help in getting this extension published.

More information on the GeoServer MapML extension is available in the user guide

WPS JDBC extension

The WPS JDBC extension allows to share the status of asynchronous WPS requests across a GeoServer cluster. The status of all requests, past and ongoing, can be stored in a database, for later reference.

The module uses GeoTools JDBC stores to access databases, create the necessary tables, and track status. Connection parameters are provided as property files, e.g.:

user=postgres
port=5432
password=******
passwd=******
host=localhost
database=gsstore
driver=org.postgresql.Driver
dbtype=postgis

For more information, refer to the module documentation.

We’d like to thank Ian Turton for developing the module on behalf of GeoSolutions, Alessio Fabiani (GeoSolutions) for providing documentation for it, and Andrea Aime (GeoSolutions) for performing the QA and graduation steps.

WPS Download extension

The WPS download plugin provides support for the download of large amounts of data, allowing use of asynchronous requests, where using WFS, WCS or WMS for the same task would lead to HTTP timeouts. Also, download limits can be configured to avoid excessively large requests: size in MB, number of features, number of animation frames.

In particular, the following processes are available:

  • DownloadEstimator, verifying that a raster/vector download about to be attempted will fit the download limits.
  • DownloadProcess, allowing to download either raster or vector data, reproject and clip them
  • DownloadMapProcess, allows to download a large map matching what is visible on a client (which may be using tiles and display on a multi-screen), eventually dynamically fetching layers from remote WMS servers as well. It’s also possible to decorate the final map using the standard decoration layouts.
  • DownloadAnimationProcess, allows to build a MP4 movie given a set of layers and times.

GeoNode uses the module to allow download of datasets, eventually clipped and filtered to the current view. The asynchronous download allows to download large datasets, and retrieve them later, once ready.

GeoNode download
Initiating a download in GeoNode

GeoNode download
Configuring the download

GeoNode download
The download package is ready

GeoNode download
Viewing the clipped download in QGIS

For more information, refer to the module documentation.

Thanks to Alessio, Andrea, Daniele, from GeoSolutions, for developing the extension, and GeoNode/MapStore for testing it in various production environments.

WMTS Multidimensional extension

The WMTS multi-dimensional extension is an extension to the WMTS protocol developed during OGC Testbed 12. The extension allows to explore the dimensions attached to a dataset, providing ways to explore them, finding relationships between them.

Here are a couple of real world examples of this functionality:

  • GeoServer is publishing a set of satellite images. Each image is time stamped. The user is browsing the set of data on a map, and the client software wants to show the list of available times for the current area. The WMS/WMTS dimension support cannot help, but the WMTS extension has a request, GetDomainValues, which exactly answers this question.
  • GeoServer is publishing a set of NetCDFs containing weather forecasts. Each dataset has two times associated, a run time (the time the forecast was run) and a time (the predicted time for the weather data). Forecasts are run for the short term future, so the two times are strictly related. A user wants to compare forecasts for a given predicted time. The GetDomainValues request can be used to locate the run times that have a prediction for the given forecast time.
  • GeoServer is publishing a set of timestamped data. The client wants to display a timeline, providing an idea of which times are available for the current view. In addition to that, the clients wants to display how many datasets are available along the timeline. The GetHistogram request can be used to retrieve a count of datasets available over time buckets in a given interval.

The MapStore client uses the module to power its timeline extension, providing time discovery, navigation, animation, and histogram display.

MapStore timeline plugin, with animation controls
MapStore timeline plugin, with animation controls

MapStore timeline plugin, histogram view
MapStore timeline plugin, histogram view

For more information, refer to the module documentation.

Thanks to Nuno Oliveira (GeoSolutions) and Andrea Aime (GeoSolutions) for the initial development, and MapStore for adopting the module, using it in production, and ensuring its long term development

Params-extractor extension

The parameter extractor module is used to inject vendor parameters in all links that a standard OGC client uses, by either reflecting them into the Capabilities documents backlinks, or hiding them in an extra component in the URLs paths.

This can be used, for example, to provide a desktop client, such as QGIS, a different view of a given layer based on viewparams, cql_filter or env parameters, even if the client would not be able to use the parameters natively. Each combination of parameters receives a different starting GetCapabilities request.

A simple query parameter echoing can be setup for clients honoring query parameters in capabilities backlinks:

Parameter echoing
Parameter extractor echoing

For clients ignoring query parameters or even ignoring backlinks, the parameters can be added as a path component instead, and then expanded in a larger templated value:

Parameter extraction
Parameter expansion from path component

With the above setup, a URL ending with H11:

/geoserver/tiger/wms/H11?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap

is interpreted as:

/geoserver/tiger/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&CQL_FILTER=CFCC%3D%27H11%27

For more information, refer to the module documentation.

Thanks to Nuno Oliveira (GeoSolutions) for developing this module.

GeoWebCache-S3 extension

The GeoWebCache S3 blobstore allows to store GeoWebCache tiles in a S3 bucket. It has been also tested with a few other S3 compatible blob storage mechanisms, such as Minio.

This plugin is particularly useful when deploying GeoServer on AWS, but also when setting up a shared tile storage in Kubernetes.

Parameter extraction
Setting up the S3 tile storage

For more information, refer to the module documentation.

Retire ArcSDE Extensions

The ArcSDE Extension has been retired.

In this case we found that the extension is no longer actively used, and lacked sufficient feedback and resources for continued development. The last tested ArcSDE 10.2.2 version is no longer available, making the required jars required for installation unavailable.

Retire the Script community module

The Script community module has been retired.

The module provided scripting abilities for GeoServer, allowing to add WPS processes and small REST services in scripting languages, and storing them in the data directory.

Unfortunately the module fell un-maintained and would no longer build nor work.

Codebase updates and Quality Assurance

GeoServer continues to be build with the latest open source technologies:

  • GeoTools 26-RC
  • GeoWebCache 1.19-RC
  • JAI-EXT 1.1.19
  • JTS 1.18.1
  • GeoFence 3.4.7
  • Upgrade oshi-core from 5.4.0 to 5.5.0 for new Apple hardware support
  • Freemarker 2.3.31

We do not get a chance to talk about the code-base that makes up GeoServer often, but recent changes and improvements deserve some praise. The GeoServer team has really embraced automating code checks, starting with simply formatting the code in a consistent fashion, to more advanced techniques checking for common mistakes.

  • Switch most of the unit tests from JUnit 3 to JUnit 4
  • Remove usage of Vector/Hashtable, replace with ArrayList and HashMap, add PMD rule to enforce it
  • Remove un-necessary casts from code, add PMD rule to enforce it
  • Replace try/finally with try-with-resources, add a PMD rule to enforce it
  • Collapse catch statements with the same body in a multi-catch, add PMD rule to enforce it
  • Avoid assertTrue for tests that can be expressed with dedicated assertions. Add PMD rule to enforce it.
  • Replace iterator loops with enhanced for loops, add a QA rule to enforce it.
  • Run PMD checks on test sources as well.
  • Use Collection.isEmpty() when checking for item availability
  • Remove explicit types when diamond operator can be used instead. Added a PMD rule to enforce it.
  • Remove or suppress unchecked casts, enable the Java compiler lint option for it.

Although all these changes sound small in isolation, the fact that they are performed on the entire codebase, and checked each time a pull-request is proposed, really provides confidence in the technology we publish.

Thanks to Andrea for this valuable work.

And more!

There are several other new features and improvements, including:

Find out more in the release notes.

About GeoServer 2.19

Additional information on GeoServer 2.19 series:

by Andrea Amie, Jody Garnett at March 04, 2021 12:00 AM

March 02, 2021

March 01, 2021

February 28, 2021

Anche quest’anno niente classifiche e niente recensioni ‒ solo qualche commento. Lo sapete tutti, il 2020 è stato segnato dalla pandemia e come tanti ho passato molto più tempo senza poter uscire. Ho letto un po’ più dello scorso anno, per quel che conta la quantità.

Michele Ainis, Demofollia

Una raccolta di saggi, complessivamente un po’ ripetitiva ma visto che uno dei temi ricorrenti è quello della burocrazia è anche una lettura doverosa. Nel libro e anche nell’introduzione Ainis porta l’esempio paradossale del Ministero dei Beni Culturali che ha cambiato nome tre volte in pochi anni. Ebbene, dopo la pubblicazione del libro è cambiato di nuovo. E all’inizio del 2021 è cambiato di nuovo. Cinque volte.

Matteo Vinzoni, Pianta delle due riviere della serenissima Repubblica di Genova divise ne’ commissariati di sanità (a cura di Massimo Quaini)

Questa è una lettura, sì. Come molti ho consultato decine di volte la Pianta e i suoi disegni, ma non sapevo che fosse accompagnata da un testo descrittivo molto articolato. L’edizione maestra curata dal grande Massimo Quaini ha una lunga introduzione al testo che racconta la storia di Matteo Vinzoni, di come è diventato uno dei più grandi cartografi della sua epoca e della fatica interminabile che gli è costata questa Pianta. E la cosa che più mi ha sorpreso è stata la causa scatenante per l’istituzione dei commissariati di sanità: un’epidemia di peste (cosiddetta peste di Marsiglia, 1720), in cui la cartografia è uno degli strumenti di controllo capillare del territorio al servizio del governo. Quante cose ci sono da imparare.

Margaret Elphinstone, La notte del raduno

Lo scorso anno con “L’ultima dei Neandertal” avevo detto, ci vuole più narrativa ambientata nella preistoria! Eccomi servito. Siamo nel Mesolitico delle isole britanniche e questo racconto a più voci è la storia di un mondo lontanissimo, in cui uomini e donne vivono secondo regole e credenze molto legate alla natura e ai suoi cicli, ma sono anche pieni di grandezza, di spazi immensi, di legami profondi tra persone. L’ho trovato un racconto senza un genere preciso e forse per questo veramente profondo.

Telmo Pievani, La fine del mondo

Mi ha prestato questo libro mio fratello, senza commento. Conoscendo un poco l’autore, mi aspettavo una trattazione sui temi più critici del riscaldamento globale e disastri annessi. Nulla di tutto ciò, il libro di Pievani è una raccolta di sommari culturali-filosofici del mondo occidentale su vari livelli a cui è stata concepita la fine del mondo. Mi ha fastidiosamente ricordato un brutto libro di Remo Bodei letto anni fa. Nessuno spazio è dato alla storia del pensiero nel mondo indiano o cinese. Compaiono i Maya (scritti però minuscoli, diversamente dagli antichi romani maiuscoli) per “lip service” alla più nota delle teorie pseudostoriche catastrofiste. Non mi è piaciuto. Non era piaciuto nemmeno a Enrico.

Chimamanda Ngozi Adichie, Dovremmo essere tutti femministi

Molto breve e tagliente. Quest’anno non ho letto in modo esclusivo autrici, ma ho comunque continuato ad esplorare fuori dalla mia comfort zone.

Ayòbámi Adébáyò, Resta con me (Stay with me)

E questo è molto fuori. Il racconto è a due voci ma quella maschile sembra in molte parti vivere un livello umano diverso, più elementare, nella lunga tragedia che segna la vita della coppia. È stato straziante, soprattutto con un bimbo di pochi mesi in casa, e scava molto profondamente nelle assurde consuetudini che in tanti luoghi controllano la vita delle coppie che si amano.

Claire Cameron, L’orso

Claire Cameron è l’autrice de “L’ultima dei Neandertal”, facile. Ma questo orso è mi-ci-dia-le. Sarà una banalità, ma la voce narrante adorabile di questa storia inquietante rende il libro un vero concentrato di emozioni forti e fortissime. Di nuovo, c’è una quasi corrispondenza con le età dei miei figli e questo mi ha fatto leggere l’orso in maniera molto più riflessiva ‒ parafrasando Scaruffi la trama è l’ultima cosa interessante di tutto il libro.

Hisham Matar, Un punto di approdo

Questo è un delizioso regalo per il mio compleanno. Mi ha fatto tornare a Siena e capire quante cose ho perso di Siena negli anni in cui ci ho abitato.

Chinua Achebe, La freccia di Dio

Il terzo volume della trilogia, ammesso che sia davvero una trilogia. È spietato e tragico in modo grandioso.

Donna Haraway, A cyborg manifesto

Ho letto con grande fatica, in lingua originale, questo saggio, di cui non avevo capito bene né l’estensione né la dimensione politico-accademica. Ho anche ascoltato una versione “audiolibro” non molto ascoltabile, ma pur avendo colto alcuni concetti fondamentali che oggi sono diventati estremamente potenti, non sono riuscito a seguire per bene il discorso complessivo. Mi ha lasciato un po’ guardingo l’avvio iniziale sul ruolo “ironico” del cyborg, perché mi sto convincendo profondamente che l’ironia sia molto deleteria. Quindi ho comprato la traduzione italiana, che leggerò prossimamente.

Ursula K. Le Guin, I reietti dell’altro pianeta (Dispossessed: an ambiguos utopia)

Ce l’ho fatta! Sono finalmente riuscito a leggere un romanzo di Le Guin. Che meraviglia. Che incredibile viaggio questo sul pianeta Anarres. Scopro l’acqua calda, ma acqua calda rimane.

James Ellroy, Le strade dell’innocenza (Blood on the moon)

Ho questa trilogia da un paio d’anni, comprata usata da “Nostalgie di carta”, la libreria di via Daste che purtroppo ha chiuso i battenti con la morte del titolare. Il primo libro è un “classico” Ellroy, lontanissimo dalle costruzioni complesse degli anni successivi ma comunque una buona lettura.

Paolo Rumiz, La leggenda dei monti naviganti

Questo me lo ha prestato mio padre. È il libro che mi ha fatto pensare di più e sicuramente quello che più mi ha fatto innervosire, non perché sia brutto (vedi sopra la fine del mondo), ma perché mescola una ricerca approfondita di luoghi, persone e storie con una serie di mostruosità che non riesco a tollerare. I beceri stereotipi (la macchina femmina, qua e là donne bellissime che compaiono unicamente come tali). L’ingenuità di fronte ai lavori nel ventre delle montagne (pure ritrattata nel libro stesso). Le lamentele sull’abbandono che solo uno nato e cresciuto in città può concepire.

Il libro è effettivamente composto di due parti (anche qui, dichiarate in apertura), una di autobiografia lenta riguardante le Alpi, i molti personaggi quasi tutti legati all’alpinismo, all’epica della montagna con le sue gesta eroiche e le sue tragedie. Questa parte è forse abbastanza banale. La seconda parte è un diario di viaggio on the road in cui Rumiz attraversa l’intero Appennino evitando tutte le strade principali. In questa seconda parte lo spirito di ascolto è più profondo e segue solo in parte personaggi “famosi”, ma si perde innumerevoli volte di fronte a scempiaggini linguistiche e toponomastiche, è ossessionato da Annibale (su cui ha scritto un altro libro .. ora sul mio comodino) e qualunque cosa incontri lungo il proprio tragitto diventa paradigmatica di qualcosa. Un altro aspetto che trovo fastidioso è il continuo ricorso a paragoni geografici: una nuova valle in cui arriva non merita mai di essere se stessa, ma per avere valore deve per forza assomigliare a qualche altro posto già visto.

A Rumiz stanno sulle palle i gerani ai balconi e lo scrive svariate volte nel libro. È esterofilo ma solo perché il “vero” spirito della montagna in Italia è soverchiato da altri valori, altrimenti saremmo noi i migliori. Mah.

Ursula K. Le Guin, Il mago

La letteratura fantastica e quella fantascientifica non sono così diverse, sembra di capire leggendo questo primo volume della saga di Terramare. La componente psicologica è quella fondamentale nei rapporti tra personaggi e nelle gesta dei protagonisti, ben più della coerenza nel world building o nel linguaggio, che comunque ci sono e sono potenti e sistematici. Ho passato tutta la lettura a consultare la mappa dell’immenso arcipelago, questo mi ha dato grande soddisfazione. Ora voglio con la giusta calma continuare la lettura della saga.

Sto leggendo Seni e uova di Mieko Kawakami. A proposito di uscire dalla zona di confort.

by Stefano Costa at February 28, 2021 08:06 AM

February 25, 2021

The Geospatial Dev Room at FOSDEM 2021 was a great event that (virtually) brought together a very diverse group of geo people.

All talk recordings are now available publicly at: fosdem.org/2021/schedule/track/geospatial

In line with the main themes of this blog, I’d particularly like to highlight the following three talks:

MoveTK: the movement toolkit A library for understanding movement by Aniket Mitra

Telegram Bot For Navigation: A perfect map app for a neighbourhood doesn’t need a map by Ilya Zverev

Spatial data exploration in Jupyter notebooks by yours truly

by underdark at February 25, 2021 11:35 AM

February 23, 2021

Existem várias formas de descrever, fisicamente, uma bacia hidrográfica. Temos a área da bacia, perímetro, fator de forma, densidade de rios, entre outros. A obteção desses parâmetros depende de dados espaciais, sendo assim, precisamos de um software de geoprocessamento.

Dessa forma, vamos utilizar o QGIS 3.14 para obter o perfil longitudinal de alguns rios da Bacia Hidrográfica do Atlântico Sul, tais como o rio Araranguá, rio Urussanga, rio Tubarão, rio Itajaí-Açu e o rio Itapocu. A partir dos dados obtidos, vamos plotar os resultados usando Python.

É importante comentar que alguns rios citados são formados pela junção das águas de outros rios (como o rio Araranguá, formado pelos rios Itoupava e Mãe Luzia), sendo que na nossa análise escolhemos a nascente mais distante para o desenvolver o perfil longitudinal.

Confira nosso curso de Geoprocessamento para Estudos Ambientais usando QGIS.

Antes de iniciarmos, é interessante comentarmos o que é um perfil longitudinal. Ele é um recorte das elevações existentes ao longo da linha de interesse, isto é, a partir de uma determinada linha (no nosso caso, o curso d’água), vamos amostrar as altitude/cotas existentes.

E para que isso serve?

O perfil longitudinal demonstra o relevo existente ao longo do curso d’água, sendo possível observar as declividades existentes, e consequentemente, inferir informações relacionadas à velocidade de escoamento e possiblidade de erosão ou inundação.

Rãdoane e colaboradores (2002) comentam que a parte mais intrigante dos perfis longitudinais são a sua forma, sendo que usualmente tem a forma concava. Eles ainda citam, baseados no trabalho de Gilbert (1877) que a declividade do perfil longitudinal é inversamente proporcional à vazão. Trabalhos posteriores citados pelos autores colocam que a explicação para a forma do perfil longitudional esta principalmente relacionada à variação da vazão, diâmetro do material do leito e a carga de sedimentos.

Quais dados iremos utilizar?

Iremos obter a hidrografia a partir dos dados disponibilizados pela Agência Nacional de Águas (ANA), os quais podem ser baixados aqui; e os dados de elevação usaremos o MDE do SRTM (1 arc), disponível para download no Earth Explorer do serviço geológico norte americano (USGS).

Após inserir o shapefile dos rios, selecione os rios de interesse e crie um shapefile novo com eles (Clique com botão direito sobre o shape na lista de camadas, vá em ‘exportar’ e ‘salvar feições selecionadas como’).

Em seguida, você deve unir os seguimentos (várias linhas) que compõem o mesmo rio. Você deverá editar o shapefile do rio, selecionar as linhas do rio em questão e em seguida, clicar em ‘Mesclar Feições Selecionadas’.

Botão para mesclar feições no QGIS.Botão para mesclar feições no QGIS.

Agora para baixar os MDE, no site do Earth Explorer, você terá que primeiro se cadastrar e logar para baixar as imagens (1). Em seguida, busque pela área de interesse (2) e selecione o tipo de imagem que você deseja (3 e 4). Por fim, vá nos resultados (5) para baixar as imagens disponíveis.

Site do Earth Explorer para download de imagens de satélites.Site do Earth Explorer para download de imagens de satélites.

Para a nossa área de interesse, temos vários MDE. Após baixar e adicionar eles ao QGIS, precisamos unir alguns para que eles envolvam toda a extensão dos nossos rios de interesse.

Como unir MDE (Raster) no QGIS?

Antes de começar a unir arquivos matriciais, tenha em mente que eles vão ficar cada vez mais pesados, sendo necessário cada vez mais processamento. Em algumas situações, é importante utilizar arquivos com resoluções espaciais maiores para ter arquivos que possam ser manuseados.

Você pode unir os raster usando a ferramenta Construir um Raster Virtual (Build Virtual Raster), disponível em Raster > Miscelânea. Nesta ferramenta, você deverá selecionar os rasters que você quer unir e depois selecionar onde irá salvá-lo. Neste caso você não precisará alterar as outras informações.

Construindo Raster Virtuais no QGIS.Construindo Raster Virtuais no QGIS.

Após unir os MDE, vamos utilizar o plugin Profile Tool para obter as cotas ao longo do nosso rio.

Usando o plugin Profile Tool

Para ativar o plugin Profile Tool, vá em Complementos e em seguida em ‘Gerenciar e Instalar Complementos’. Procure pelo nome do plugin e clique em ‘Instalar Complemento’.

Plugin Profile Tool do QGIS.Plugin Profile Tool do QGIS.

Após instalar o complemento, ative ele clicando sobre ele na janela principal do QGIS.

Para traçar um perfil a partir de uma linha de um shapefile, você deverá seguir o seguinte procedimento:

  • Selecionar o MDE que abrange o rio e clicar em Add Layer;
  • Em ‘Options’, trocar o ‘Selection’ para ‘Selected Polyline’;
  • Selecionar o shapefile que contém os rios e clicar sobre ele.

Após realizar esse procedimento, você terá algo similar a imagem seguinte.

Seleção de um rio para obtenção das suas cotas.Seleção de um rio para obtenção das suas cotas.

Poderiamos exportar a imagem resultante do plugin e parar por aqui, mas vamos clicar na aba ‘Table’ e vamos clicar em ‘Copy to Clipboard’ para copiar os dados.

Vamos colar esses dados no bloco de notas. Lembre-se de escrever na primeira linha ‘Distancia’, dar um Tab, e em seguida ‘Cota’ (evitando acentos para não dar problema na importação no Python). Depois salve o arquivo como CSV.

Lista de cotas e distâncias obtidas no Profile Tool.Lista de cotas e distâncias obtidas no Profile Tool.

Agora, vamos trabalhar um pouco com Python.

Perfil Longitudinal usando Python

Para a criação do perfil longitudinal, utilizaremos Pandas e Matplotlib (duas bibliotecas do python).

No código abaixo, iremos carregar essas bibliotecas e em seguida, carregar o nosso arquivo com as distâncias e cotas.

import pandas as pd
import matplotlib.pyplot as plt

caminho = 'C:/Users/ferna/Desktop/'
arquivo = 'cotas_B2E.csv'

df = pd.read_table(caminho+arquivo, sep="\t")

df['Distance'] = df['Distance'].sort_values(ascending = True).values

print(df.head())

Note que nosso código ira puxar nossa tabela, que contem seus valores separados por uma tabulação (‘\t’) e depois organizará os valores de forma crescente.

Agora vamos plotar os resultados.

grafico = df.plot(x = 'Distance', y = 'Cota', legend = False, figsize=(12,4))
grafico.set_xlabel('Comprimento do rio (m)')
grafico.set_ylabel('Cota (m)')
grafico.grid()

plt.savefig(caminho+'graficoCotaRio.png', dpi = 120)

No caso, teremos um novo gráfico salvo na pasta especificada em ‘caminho’. A próxima figura mostra o nosso resultado para o rio Itapocu.

Perfil longitudinal 'bruto' do rio Itapocu.Perfil longitudinal ‘bruto’ do rio Itapocu.

Note que em função da resolução espacial do nosso MDE, ou ainda em função de ruídos que possam exister no momento da obteção dele, há imperfeições no nosso perfil longitudinal. Para remover ela, vamos passar uma média móvel e todar nosso gráfico novamente.

df['med_mov'] = df['Cota'].rolling(30).mean()

grafico = df.plot(x = 'Distance', y = 'med_mov', legend = False, figsize=(12,4))
grafico.set_xlabel('Comprimento do rio (m)')
grafico.set_ylabel('Cota (m)')
plt.title('Rio Itapocu')
grafico.grid()


plt.savefig(caminho+'graficoCotaRio2.png', dpi = 120)

Após rodar esse código, temos o seguinte resultado.

Perfil longitudinal do rio Itapocu.Perfil longitudinal do rio Itapocu.

Conforme sua necessidade, você pode alterar o valor da função ‘rolling’ para obter médias móveis diferentes.

Agora você já sabe criar perfis longitudinais, abaixo você pode conferir outros exemplos que montamos.

Caso você tenha ficado com alguma dúvida, utilize os comentários que estaremos respondendo assim que possível.

Quer aprender a usar o QGIS? Confira nosso curso online de Geoprocessamento para Estudos Ambientais.

Fontes consultadas:

Flávio Reis. HidroMundo – Declividade e Perfil Longitudinal de um Rio. Disponívem em: http://www.hidromundo.com.br/declividade-perfil-longitudinal-de-rio/. Acesso em 22 ja. 2021.

RÃDOANE. M.; RÃDOANE, N.; DUMITRIU, D. Geomorphological evolution of longitudinal river profiles in the Carpathians. Geomorphology, n. 50. Elsevier. 2002. Pg. 293-306.
The post Como criar perfis longitudinais de rios usando QGIS e Python? first appeared on Blog 2 Engenheiros.

by Fernando BS at February 23, 2021 06:39 AM

February 22, 2021

The GeoTools team is pleased to share the availability of   GeoTools 23.4 :geotools-23.4-bin.zipgeotools-23.4-doc.zipgeotools-23.4-userguide.zipgeotools-23.4-project.zipThis release is published to the osgeo maven repository, and is made in conjunction with  GeoServer 2.17.5. This is a maintenance release and is a recommended upgrade for all users of the GeoTools library. This is the final

by Jody Garnett (noreply@blogger.com) at February 22, 2021 04:41 PM

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

This release is made in conjunction with GeoTools 23.5. This is a maintenance release recommended for production systems.

The GeoServer 2.17.x has reached end-of-life and this is the last scheduled release fo the 2.17.x branch. Production systems are advised to use 2.17.5 release as a temporary measure, and schedule your upgrade to 2.18.

Thanks to everyone who contributed, and Gabriel Roldan & Jody Garnett (GeoCat) for making this release.

Improvements and Fixes

Fixes included in this release:

  • GEOS-9879 - app-schema extension fix for feature collection count
  • GEOS-9897 - JTS upgrade breaks geofence integration
  • GEOS-9880 - Monitor failure when maxSize is set to unbound
  • GEOS-9881 - SldService failure when percentages and continuous parameters both set to true
  • GEOS-9895 - Override transformation operations ignored for bounding box computation
  • GEOS-9911 - Params-extractor plugin, wrong url in getCapabilities when having context with addition “/”

For more information check the 2.17.5 release notes.

About GeoServer 2.17

Features, presentations and reference material on the 2.17 series:

by Gabriel Roldan, Jody Garnett at February 22, 2021 12:00 AM

February 20, 2021

This post is about a new update of the Semi-Automatic Classification Plugin v. 7.7.0

Following the changelog:
-added undo and redo buttons in SCP Dock to undo the last 10 changes in the ROI
list
-added alternative search for Sentinel-2 image
-the backup file of training input is created when the QGIS is closed
-fixed row height in tables
-fixed Sentinel-1 preprocessing issue

This version adds two buttons in the SCP dock for the undo and redo of ROI creation in the ROI & Signature list. It is possible to undo a maximum of 10 actions.
This can be useful for restoring a previous version of ROIs.



In the tab Download products a new alternative search service for Sentinel-2 has been added. This service doesn't require any authentication, and uses the CREODIAS Finder API  (from https://creodias.eu/eo-data-finder-api-manual the database is accessible free and anonymously, and open for anonymous access to everyone, no authorization is used). You can find information about Copernicus DIAS platforms at https://www.copernicus.eu/en/access-data/dias .

If the option is checked, it is possible to search Sentinel-2 images without authentication.




For any comment or question, join the Facebook group or GitHub discussions about the Semi-Automatic Classification Plugin.

by Luca Congedo (noreply@blogger.com) at February 20, 2021 11:24 PM

February 19, 2021

The GeoTools team is pleased to share the availability of   GeoTools 23.3 :geotools-23.3-bin.zipgeotools-23.3-doc.zipgeotools-23.3-userguide.zipgeotools-23.3-project.zipThis release is published to the osgeo maven repository, and is made in conjunction with  GeoServer 2.17.3. This is a stable release and is a recommended upgrade for all users of the GeoTools library.We would like to thank

by Andrea Aime (noreply@blogger.com) at February 19, 2021 06:19 PM

The GeoTools team is pleased to share the availability of   GeoTools 23.4 :geotools-23.4-bin.zipgeotools-23.4-doc.zipgeotools-23.4-userguide.zipgeotools-23.4-project.zipThis release is published to the osgeo maven repository, and is made in conjunction with  GeoServer 2.17.4. This is a maintenance release and is a recommended upgrade for all users of the GeoTools library. It is expected to be

by Ian Turton (noreply@blogger.com) at February 19, 2021 06:19 PM

QGIS 3.18 is finally here. This will be the first release of QGIS with native support for point cloud data. This work was made possible by generous contributions from the community.

Point cloud data in QGIS 3D (Data from UGKK SR, made by Tibor Lieskovsky)

Contributors

When we announced the campaign in August 2020, the response was overwhelming and within weeks, we managed to reach and then exceed the amount required.

Below is the list of contributors in no particular order:

Mapfly, Ujaval Gandhi from Spatial Thoughts, BNHR, Imapct GIS, Andreas Neumann, Kanton Solothurn, Switzerland, City of Vevey, Mapping Automation, Service de la géomatique du canton de Neuchâtel, Hans van der Kwast, 3DGeoCloud, Rudaz+Partner AG, Leonard Gouzin, TileDB, Inc.

We wish to also thank the many anonymous contributors who do not appear in this list.

Note: if you have contributed to the campaign but your name does not appear here, you may not have selected the option to be listed in the campaign form. Please contact us if you’d like to be listed.

In addition to financial contributions, we’d like to extend our gratitude to all those who helped spread the word, helped with the testing and provided feedback and sample data.

New features

Lutra Consulting North Road Hobu

This is a brief summary of new features from our joint work with North Road and Hobu:

  • Introduction of a new map layer type: a point cloud layer
  • Load LAS or LAZ files (either by drag’n’drop or by opening files in Data Sources Manager)
  • Load EPT datasets by pointing QGIS to their ept.json file (currently only supporting datasets on the local drive)
  • Support for rendering point cloud data in 2D and 3D map views
  • Apply various rendering styles in 2D and 3D:
    • “Attribute by Ramp” - draw data based on a single attribute and a color ramp (similar to “Graduated” styling for vector layers)
    • “RGB” - draw data using colors assigned to the points (combining red/green/blue attributes)
    • “Classification” - draw data using different colors for different classes (ground, buildings, vegetation, …), also allowing display of only desired classes
    • “Extent only” (2D only) - draw only bounding box of the point cloud
    • “Single color” (3D only) - draw all points with a single color
  • Set size and shape of points
  • Manually adjust scaling and offset of elevation (Z values) - if needed to match with elevation of other data
  • Point cloud layer properties dialog to see metadata of the point clouds
  • Identify tool supports point cloud layers and shows all attributes of picked points
  • 2D and 3D views only render a subset of the point cloud for the best performance for the given view (for geeks - this is thanks to indexing to octree data structure, using EPT format written by untwine tool packaged with QGIS)
  • Optimize the quality and performance of the 3D view using point budget configuration, which limits maximum amount of point rendered at any time (set to 1 million by default)
  • Enable eye-dome lighting in 3D views for much better depth perception of point clouds
  • New “Walk mode” camera navigation in 3D views - there is now a switch between the original “Terrain based” navigation mode and the new mode, which allow easier navigation through point cloud data

Please note that as this is the initial release (with over 10 thousand lines of new code related to point clouds), there may be still some rough edges here and there, or some data may not load or display correctly. In case you encounter any issues with the new functionality, please let us know - do not hesitate to create a new QGIS issue

Point cloud in action (Data from Helsinki City)

Future work

This has been the start of a larger effort to bring full support for point cloud data into QGIS. We, in collaboration with North Road and Hobu are developing requirements for integrating point cloud data processing and analysis, more data formats, better visualisation, profile tools etc. in future releases of QGIS.

If you’re interested in helping shape those requirements or funding such features, please contact us at info@lutraconsulting.co.uk.

You may also like…

Input, a field data collection app based on QGIS. Input makes field work easy with its simple interface and cloud-based sync. Available on Android and iOS.

Screenshots of the Input App for Field Data Collection

Get it on Google PlayGet it on Apple store

February 19, 2021 12:00 AM

February 17, 2021

Hoy en día el uso de imágenes satelitales es casi obligatorio para el proceso de toma de decisiones en muchas áreas: agricultura, medio ambiente, recursos hídricos… Analizar las capturas (actuales y pasadas) de un sitio puede ser de gran importancia para mejorar la gestión y reducir los costos de inspección. Agregando inteligencia artificial (IA) y aprendizaje automático (ML) a esta ecuación mejoramos el poder de estas tecnologías hasta el punto de que prácticamente cualquier parámetro medible puede detectarse y rastrearse desde el espacio.

Siemens Gamesa Renewable Energies contrató a Taniwa y Geomatico para construir desde cero un producto innovador para monitorear automáticamente las obras civiles de los aerogeneradores. El proyecto se desarrolló bajo el programa BIND4.0. El objetivo era rastrear el progreso de la construcción, basándonos en imágenes de satélite, detección automática de objetos e inteligencia artificial.

Geomatico estuvo a cargo del procesamiento automático de imágenes satelitales (todos los pasos, desde la adquisición hasta el análisis) y proporcionó capacitación (alrededor de 20.000 imágenes). Taniwa fue responsable de los algoritmos ML para identificar el estado, el desarrollo de la interfaz web y la implementación de alta escalabilidad a través de Azure Cloud.

Tecnologías: análisis raster, machine learning, GIS, React, Kubernetes

Photo by Master Wen on Unsplash

La entrada Monitorización de obra civil mediante satélite y machine learning se publicó primero en Geomatico.

by Geomatico at February 17, 2021 05:08 PM

February 16, 2021

In the past months, we have been busy adding support for point cloud data in QGIS (3.18). Read more on how to install and test this feature under MS Windows.

Installation

To be able to use this feature, you need extra packages and also the latest OSGeo4W installer.

Note: This is a completely revamped and different packaging system than the current OSGeo4W installer. To avoid any clash with your current installation, it is recommended to use a different path to install the new packages. The new packaging only supports 64-bit platform.

1- Download and run the NEW OSGeo4W installer

2- Select the Advanced install and pick qgis-dev from the list of packages

Special thanks to Jürgen Fischer for his hard work on preparing the new packages for Windows.

Testing

Once installation is completed, try to run QGIS from the installation path (e.g. C:\OSGeo4W64\bin\qgis-dev.bat). You should be able to load LAS\LAZ file to your map from the Browser panel or the Data Source Manager.

The point cloud data can be visualised in 2D and 3D map canvas.

Point Clouds in QGIS under Windows

Please test and let us know if you encounter any problems when loading, viewing or styling point cloud data. The best way to do that is to create a new issue on GitHub: https://github.com/qgis/QGIS/issues

QGIS 3.18 will be released later this week (February 19), so grab your copy of QGIS today and give it a try, so that we can fix any remaining issues before the release!

Troubleshooting

Problem: I am unable to add any LAS/LAZ point cloud file

Solution: Ensure you have used the correct installer linked above. Development builds of QGIS in the ordinary OSGeo4W installer DO NOT include support for point clouds.

February 16, 2021 12:00 AM

February 15, 2021

The case study presents the implementation of the QGIS FLO-2D Plugin project (5 minute read)

Introduction

FLO-2D is one of the most widely used commercially available flood models. FLO-2D is capable of simulating urban flooding in high resolution including storm drain systems.

FLO-2D

In 2016 the FLO-2D team invited us to develop a set of tools for optimising the flood model build process in QGIS. The resulting plugin allows hydraulic models to be built quickly by leveraging the wide range of tools available in the QGIS ecosystem.

The plugin can be downloaded by following the guidance in the plugin documentation

As the use of open source GIS grows within the water engineering sector, Lutra Consulting develops and maintains MDAL which makes the visualisation and post-processing of time-varying numerical model results possible in QGIS.

Contact us at info@lutraconsulting.co.uk if you’d like to discuss the benefits of integrating your flood modelling software more tightly with QGIS.

QGIS FLO-2D Plugin

Overview of Previous GUI tools: FLO-2D GDS

FLO-2D’s focus on urban modeling requires large datasets that may include several million grid cells. Each cell has between 4 and 10 attributes so datasets can often be in the range of several gigabytes.

Previously, Grid Developer System (GDS) was used to pre-process the spatial data used by FLO-2D. Being a 32-bit application, the GDS was only able to load up to 4 gigabytes of data and its programming framework was also no longer maintained by Microsoft. Modellers could only be built on Windows PCs.

All development and maintenance of the GDS was carried out by the FLO-2D team.

Behind the Implementation

Guiding principles behind the new QGIS Flo-2D plugin

We assessed the tools used at the time and in close collaboration with the FLO-2D team, optimised the workflow from the users’ point of view with emphasis on speed and simplicity.

To keep things simple for the users, we aimed to provide a level of abstraction so users would no longer need to be involved with the internal structure of FLO-2D solver input files. They could instead focus on real-world aspects affecting their models.

Together with the FLO-2D team we designed a solution that was based on 3 core ideas:

  • Modellers will use native QGIS tools and point/line/polygon layers to define real-world objects (e.g. domain, boundary conditions, levees, …)
  • These real-world objects will be converted automatically into the data structures required by the FLO-2D solver (although expert users can still modify these data structures if they so wish).
  • Additional productivity tools will be provided to allow users to speed-up time consuming tasks

Features of the plugin

Some of the key features of the solution are listed here:

  • Easy creation and handling of new models (all model data sits in a single GeoPackage file)
  • User friendly and intuitive digitizing and manipulation of model components (through simple GIS layers and dedicated tools) including:
    • 1D domain
    • Boundary and initial conditions
    • 1D channels and cross-sections
    • Levees
    • Rainfall
    • Infiltration areas
    • Storm drains
  • Various options for obtaining grid data such as elevation, roughness, reduction factors etc. from different sources (raster layers, external vector layers etc.)
  • Plotting profiles and editing time series data
  • Automated tools for schematizing input layers into the GDS format
  • Importing basic data from HEC-RAS models
  • Import / export functionality between GeoPackage and GDS format (*.DAT files)
  • Running external FLO-2D tools (FLO-2D Pro engine etc.) directly from QGIS

QGIS FLO-2D Plugin

Benefits for the FLO-2D developers:

Benefits for the developers of FLO-2D include:

  • Reduced development and maintenance costs, since much of the heavy lifting of the FLO-2D plugin is done by QGIS itself
  • By being part of the QGIS ecosystem, gaining opportunities to approach QGIS users in the flood risk industry to use FLO-2D software
  • The FLO-2D plugin is developed on GitHub, allowing the latest development technologies such as continuous integration, automatic testing and issue tracking to be used
  • Ability to solve upstream bugs in QGIS or MDAL due to the open-source nature of the projects
QGIS3

Benefits for FLO-2D users:

Some of the benefits realised by FLO-2D customers include:

  • Being able to work with their FLO-2D models using open source GIS on all major operating systems
  • A full GIS application to support their data pre-processing
  • Logical and intuitive workflows
  • FLO-2D results can now be visualised and post-processed natively in QGIS via mesh layer
  • Ability to use all native QGIS support and development channels in addition to FLO-2D support
  • Integration of internal workflows with powerful native QGIS features including projection support, GDAL/OGR integrations, background maps support (e.g. vector tiles), printed flood maps, etc.
  • Ability analyze results via QGIS’ Crayfish plugin and produce graphs and outputs

The plugin in action!

Further Reading

Do you have any questions or would like to see demo of QGIS Mesh Layer? Contact us at info@lutraconsulting.co.uk or schedule a demo call calendly.com/saber-razmjooei/15min

Key words

QGIS, plugin, python, migration, optimised, speed up, fast, hydraulic modelling, water, 2D, open-source, cost reduction, software development

February 15, 2021 06:00 AM

February 12, 2021

Last October, I had the pleasure to speak at the Uni Liverpool’s Geographic Data Science Lab Brown Bag Seminar. The talk starts with examples from different movement datasets that illustrate why we need data exploration to better understand our datasets. Then we dive into different options for exploring movement data before ending on ongoing challenges for future development of the field.

Here’s the full recording of my talk and follow-up discussion:


This post is part of a series. Read more about movement data in GIS.

by underdark at February 12, 2021 05:53 PM

This post is about a new update of the Semi-Automatic Classification Plugin v. 7.6.0

Following the changelog:
-training input vector is saved as gpkg
-export signatures as gpkg
-better compatibility with custom projections
-general use of gpkg
-fixed issue in DOS1 correction
-attempt to fix subprocess issue in Windows



This version changes the structure of training input .scp files replacing the shapefile with GeoPackage.
Previously created .scp files can be opened and the structure will be automatically changed during ROI saving or project saving

!Attention! backup old training input .scp files before opening it in this new version to prevent data loss.

Also, training input can be exported as GeoPackage.

Another improvement is compatibility with custom projections (not only EPSG standards), which can be used in input band sets.

Finally, an issue related to DOS1 algorithm has been fixed. If you previously used DOS1 for image correction I recommend to perform the preprocessing again. I apologize for the inconvenience.

For any comment or question, join the Facebook group or GitHub discussions about the Semi-Automatic Classification Plugin.

by Luca Congedo (noreply@blogger.com) at February 12, 2021 12:44 PM

February 11, 2021

Data sourcing and preparation is one of the most time consuming tasks in many spatial analyses. Even though the Austrian data.gv.at platform already provides a central catalog, the individual datasets still vary considerably in their accessibility or readiness for use.

OGD.AT Lab is a new repository collecting Jupyter notebooks for working with Austrian Open Government Data and other auxiliary open data sources. The notebooks illustrate different use cases, including so far:

  1. Accessing geodata from the city of Vienna WFS
  2. Downloading environmental data (heat vulnerability and air quality)
  3. Geocoding addresses and getting elevation information
  4. Exploring urban movement data

Data processing and visualization are performed using Pandas, GeoPandas, and Holoviews. GeoPandas makes it straighforward to use data from WFS. Therefore, OGD.AT Lab can provide one universal gdf_from_wfs() function which takes the desired WFS layer as an argument and returns a GeoPandas.GeoDataFrame that is ready for analysis:

Many other datasets are provided as CSV files which need to be joined with spatial datasets to use them in spatial analysis. For example, the “Urban heat vulnerability index” dataset which needs to be joined to statistical areas.

 

Another issue with many CSV files is that they use German number formatting, where commas are used as a decimal separater instead of dots:

Besides file access, there are also open services provided by other developers, for example, Manfred Egger developed an elevation service that provides elevation information for any point in Austria. In combination with geocoding services, such as Nominatim, this makes is possible to, for example, find the elevation for any address in Austria:

Last but not least, the first version of the mobility notebook showcases open travel time data provided by Uber Movement:

The utility functions for data access included in this repository will continue to grow as new data sources are included. Eventually, it may make sense to extract the data access function into a dedicated library, similar to geofi (Finland) or geobr (Brazil).

If you’re aware of any interesting open datasets or services that should be included in OGD.AT, feel free to reach out here or on Github through the issue tracker or by providing a pull request.

by underdark at February 11, 2021 03:49 PM

February 10, 2021

Today it’s HydroloGIS’ birthday. We count 16 years of passionate open source engagement in the fields of GIS and environmental engineering, against the odds of those that told us in the face that you can’t live on open source and share your work and your knowledge for free. 
 

Well, in our 16th birthday we have one big news to share. It is with great pleasure that we announce the start of our collaboration with the team of Artificial Intelligence for Environment and Sustainability (in short ARIES) of the Basque Center for Climate Change. 
 
With this collaboration we finally close a circle going back to our roots: integrated modelling for the environment. This is how we started over 15 years ago, developing and maintaining the open source project of the Hortonmachine. Having the possibility to join what we think is the most important open source project addressing integrated modelling, is huge for us. 
Silvia will be working on water related modelling, mostly hydrology and hydraulics. Andrea will be joining the klab core engine team as a GIS expert.

So don’t be confused if you find us on the Aries page. We are still HydroloGIS, but with a beautiful breeze of research that flows steadily through our souls. :-)
 
And so that it is clear, the Hortonmachine project will be strengthened by this collaboration (klab already uses the Hortonmachine modules) and the SMASH and Geopaparazzi projects will move on as they were doing before, in case you were worried.

Ahhh, life's goood!

by moovida (noreply@blogger.com) at February 10, 2021 08:30 AM

Preparing reports with lots of survey photos takes time - this plugin automates the process.

Nowadays, it’s really easy to take georeferenced photos on site visits. Tools like Input can capture photos, descriptions and location information and bringing it all into GIS is straight-forward. However.. I recently discovered that people still spend significant amounts of time organising their photos into reports outside of GIS. This small plugin automates the process of getting the photos and their descriptions into Microsoft Word.

Using Input to Survey My Garden

For this blog post I knocked-up a simple survey project based on the Field notes Mergin template. Points can have a photo, title and description amongst other fields. No comments on my gardening skills please!

When I sync the data back to QGIS, the attribute table looks something like this:

The Input Survey Layer's Table of Attributes

We’ll now use the HTML Table Exporter plugin to export the layer as an HTML table (this will let us get it into Word).

First install the plugin.

It’s an experimental plugin so you’ll first need to check the Show also experimental plugins option under Plugins > Manage and Install Plugins… > Settings.

When you have installed the plugin, open it using this button HTML Table Exporter Icon or via Plugins > HTML Table Exporter > Export table as HTML.

You should now see this:

HTML Table Exporter Dialog

Set Table to the layer you want to export. The image scaling option is described later, leave it at a small setting for the time being. Click OK to export and tell the plugin where to save the HTML file.

Now the data should be out of QGIS.. the next steps are in.. MS Word :o

Right click on the exported html file and open it with Microsoft Word:

Open Exported HTML With Word

Let’s see what it looks like:

First Export in Word

OK.. we’re getting somewhere! At this point you’ll want to:

  • Enable Print Layout mode in Word so you can see what the printed page will look like
  • Set the page orientation as desired (I chose landscape in the image above)
  • Experiment with image rotation if required (Right click photo > Size and position > Rotation)

If playing with rotation, just focus on rotating a single image, we’ll batch rotate later as required. For now you want to get a feel of whether you want to adjust the scale factor in QGIS (to make the images smaller or larger) to save you having to resize them individually in Word.

I’ve decided to increase the scale factor from 10% to 15% so will now re-export.

Beware that Word has an exclusive lock on the html file when it’s open so you need to close it in Word before you can export it again from QGIS.

I settled for 10% in the end so I could get multiple images on each page in portrait mode. After removing the columns I didn’t want, the table in Word now looks like this:

A Better Export to Word

To rapidly rotate images by 90 degrees, rotate the first one using Right click on photo > Size and position > Rotation then select subsequent photos and press the F4 key. This method is described in more detail here as well as other Word batch image rotation methods.

My document is almost finished. There are just a few small issues to iron out. Currently, the images are referenced by the Word document, not embedded. This means if I email the document to someone, the images will be missing. Let’s fix that by embedding the images in the word document.

First save the document as a Word document in Word’s native format (e.g. *.docx).

Next, locate the Edit Links to Files option:

Edit Links to Documents

Select all the linked images (the shift and arrow keys help here) and check the Save picture in document option and click OK:

Save Picture In Document

Save the document, your photos should now be embedded within the document.

If you find your word document gets huge, you can use the method here to quickly batch compress all images in the document.

Input is a free and open source field data collection and mobile GIS app based on QGIS.

Get it on Google PlayGet it on Apple store

If this guide saved you some time and you feel like doing something awesome for us, a review of Input on the Apple App Store or Google Play Store would be really well appreciated.

February 10, 2021 08:00 AM

February 09, 2021

February 05, 2021

New GRASS GIS Project Steering Committee By the end of last year, the GRASS GIS project called for PSC members election. A total of 13 GRASS GIS contributors were nominated by the community to cover the nine PSC positions. After the election itself, the new GRASS GIS PSC is composed of the following nine members ranked by number of votes: Markus Neteler (95) Anna Petrášová (88) Helena Mitášová (86) Martin Landa (83) Verónica Andreo (76) Moritz Lennert (74) Václav Petráš (68) Michael Barton (58) Huidae Cho (56) For completeness, all relevant candidacy communications, as well as details about the voting process, have been published at: https://trac.

February 05, 2021 09:12 PM

February 04, 2021

This tutorial is about the Random Forest classification using the Semi-Automatic Classification Plugin (SCP) for QGIS. It is assumed that one has the basic knowledge of SCP and Basic Tutorials.

Random Forest is a particular machine learning technique, based on the iterative and random creation of decision trees (i.e. a set of rules and conditions that define a class).

WARNINGESA SNAP is required. The ESA SNAP GPT executable must be defined in External programs settings.

The purpose of the classification is to identify the following land cover classes:

  1. Water;
  2. Built-up;
  3. Vegetation;
  4. Soil.

The following are the steps of the tutorial:

  1. Input Data
  2. Create the ROIs
  3. Random Forest Classification


Following the video of this tutorial.



Read more »

by Luca Congedo (noreply@blogger.com) at February 04, 2021 12:24 AM

February 03, 2021

现在提供有关如何在30分钟内学会使用gvSIG的中文视频。

在此视频中,您将看到如何加载矢量图像和光栅图像,如何对矢量图像使用相关的符号系统和标签设置。 您还将学习重新投影shapefile并管理其属性表。 完成网络研讨会后,您将能够看到如何创建shapefile,数字化多个多边形并填写其字母数字信息,然后如何创建具有图例,指南针方,比例尺的地图…

如果您想观看此视频,则可以通过相关的链接“下载地图”,这里有视频:

by Mario at February 03, 2021 08:10 AM

February 02, 2021

A recent blog post by Elephant Tamer gives a critical appraisal of the improvements to overlay processing shipped in PostGIS 3.1 with GEOS 3.9.  The author is disappointed that PostGIS still reports errors when overlay is used on invalid geometry.  However, this is based on a misunderstanding of the technology. 

GEOS 3.9 includes OverlayNG, ported from the JTS Topology Suite). It brings a major advance in overlay robustness, along with other improvements (described here and here).  Previously, robustness limitations in the overlay algorithm could sometimes cause errors even for inputs which were topologically valid.  This was doubly problematic because there was no fully effective way to process the input geometries to avoid the errors.  Now, OverlayNG solves this problem completely.  Valid inputs will always produce a valid and essentially correct(*) output.

(*) "Essentially" correct, because in order to achieve full robustness a snapping heuristic may be applied to the input geometry.  However, this is done with a very fine tolerance, so should not appreciably alter the output from the theoretically correct value.

But for invalid inputs, OverlayNG will still report errors.  The reason is that there is a wide variety of gruesome ways in which geometry can be invalid.  Automated handling of invalidity would involve expensive extra processing, and also require making assumptions about what area a corrupt geometry is intended to represent.  Rather than silently repairing invalid geometry and returning potentially incorrect results, the design decision is to report this situation as an error.

In fact, OverlayNG is able to handle "mildly" invalid polygons, as described in this post. This covers situations which are technically invalid according to the OGC SFS specification, but which still have well-defined topology.  This includes self-touching rings (sometimes called "inverted polygons" or "exverted holes"), and zero-width gores and spikes.

Taking a detailed look at the data used in the blog post, we can see these improvements at work.  The dataset is the ecology polygons obtained from the GDOS WFS server.  This contains 7662 geometries, of which 10 are invalid.  Using the old overlay algorithm, 9 of these invalid polygons cause TopologyException errors.  Using OverlayNG, only 4 of them cause errors. 

The polygons that can now be processed successfully are typical "OGC-invalid" situations, which do not materially affect the polygonal topology.  These include self-touching rings with pinch points:

and zero-width gores:


Of the cases that still cause errors, two are classic small bow-tie errors:


And two are wildly invalid self-crossing rings:



The last two are good examples of geometry which is so invalid that it is impossible to unambiguously decide what area is represented (although ST_MakeValid will happily grind them into something that is technically valid).

Ultimately it is the user's responsibility to ensure that geometries to be processed by overlay (and many other PostGIS functions) have valid topology (as reported by ST_IsValid).  Ideally this is done by correcting the data at source.  But it can also be done a posteriori in the database itself, by either the ST_MakeValid function, or the well-known buffer(0) trick. (Which to use is a topic for another blog post...)

One improvement that could be made is to check for input validity when OverlayNG throws an error.  Then PostGIS can report definitively that an overlay error is caused by invalid input.  If there is an overlay error that is not caused by invalidity, the PostGIS team wants to hear about it! 

And perhaps there is a case to be made for repairing invalid geometry automatically, even if the repair is suspect.  Possibly this could be invoked via a flag parameter on the overlay functions. More research is required - feedback is welcome!

by Dr JTS (noreply@blogger.com) at February 02, 2021 06:42 PM