OSGeo Planet

gvSIG Team: gvSIG Black: New icon (and information) set to customize gvSIG Desktop

OSGeo Planet - Thu, 2018-08-02 08:57

Do you want to change the appearance of gvSIG Desktop? Then keep reading …

One of the novelties included in gvSIG 2.4 version was a plugin that allows you to generate your own icon sets and apply them on the gvSIG Desktop interface. It allows to change the gvSIG style as well as to have icons in different sizes. Apart from the ‘classic’ icons theme (16×16 pixels) in gvSIG Desktop 2.4, from the Add-ons Manager we were able to install an icon set made by TreCC, available in 16×16 and 22×22 pixels.

Currently the gvSIG Association team is working on the next 2.4.1 version (already in stabilization phase) and in parallel in 3.0 version, a version that will bring important changes, including some improvements related to usability and aesthetics of the application. Related to this issues we have been reviewing aspects such as the icons distribution, icons used by several tools, etc. and the best way to do it has been to apply a new icon set, which will allow us to review the current status of this section in gvSIG Desktop as a proof of concept. And although the motivation has been to perform this test, the results is a new icon theme ready to be used in the application, that you can already find in the add-ons manager. The name of this plugin is ‘gvSIG Black‘ and the icon resolution is 24×24 pixels.

How to install it:

  • Go to the ‘Add-ons Manager’ and mark the ‘Installation from URL’ option. Then search and install the ‘gvSIG Black 24×24 Icon Theme’ plugin. Once installed, we must restart gvSIG.
  • From ‘Preferences’, ‘General’ section, ‘Game of icons’ subsection, we select ‘gvSIG Black’. We restart gvSIG and we will see that it has already been applied.
    If you want to return to the ‘classic’ icon set you just have to repeat the process, installing the ‘Classic Icon Theme’ plugin.

In addition we share a document that will help those who want to generate their own icon set to give their own appearance to gvSIG Desktop. The document contains the main icons that are used in your favourite GIS, with images of the 3 icons set currently available, and the path in which each icon is saved.

And if you want to see all the gvSIG Desktop icons, you just have to launch the tool that generates the corresponding report from ‘Tools / Development / Show icon theme information’.

Categories: OSGeo Planet

gvSIG Team: gvSIG Black: Nuevo juego de iconos (e información) para personalizar gvSIG Desktop

OSGeo Planet - Thu, 2018-08-02 07:35

¿Te apetece cambiar el aspecto de gvSIG Desktop? Entonces sigue leyendo…

Una de las novedades que presentó la versión 2.4 de gvSIG Desktop fue un plugin que permite generar tus propios juegos de iconos y aplicarlos a la interfaz de gvSIG Desktop. Esto permite cambiar tanto el estilo de gvSIG como disponer de iconos a distintos tamaños. Además del tema de iconos ‘clásico’ (16×16 píxeles) en gvSIG Desktop 2.4, mediante el Administrador de Complementos, ya podíamos instalar un juego de iconos realizado por la empresa TreCC y disponible a 16×16 y a 22×22 píxeles.

Actualmente el equipo de la Asociación gvSIG está trabajando en la próxima versión 2.4.1 (ya en fase de estabilización) y en paralelo en la versión 3.0, una versión que traerá importantes cambios y entre ellos algunos relacionados con usabilidad y estética de la aplicación. Relacionado con esto último hemos estado revisando aspectos como la distribución de iconos, iconos utilizados por diversas herramientas, etc. y la mejor forma de hacerlo ha sido aplicando un nuevo juego de iconos, que a modo de prueba de concepto, nos permitiera revisar el estado actual de este apartado de gvSIG Desktop. Y aunque la motivación ha sido realizar ese testeo, el resultado es un nuevo tema de iconos listo para utilizarse en la aplicación y que desde ya podéis encontrar en el administrador de complementos. Su nombre ‘gvSIG Black’ y su resolución 24×24 píxeles.

Pasos para instalarlo:

  • Ir al ‘Administrador de complementos’ y marcando la opción ‘Instalación por URL’ buscar e instalar el plugin ‘gvSIG Black 24×24 Icon Theme’. Una vez instalado, debemos reiniciar gvSIG.
  • Desde ‘Preferencias’, apartado ‘General’, subapartado ‘Juego de iconos’ seleccionamos el de ‘gvSIG Black’. Reiniciamos gvSIG y veremos que ya se ha aplicado.
  • Si queréis volver al ‘clásico’ no tenéis más que repetir el proceso, instalando el plugin ‘Classic Icon Theme’.

Por otro lado compartimos un documento que ayudará a aquellos que quieran generarse su propio juego de iconos para dar un aspecto propio a gvSIG Desktop. El documento contiene los principales iconos que se utilizan en vuestro SIG favorito, con imágenes de los 3 temas de iconos actualmente disponibles, y la ruta en la que se guarda cada icono.

Y si queréis ver todos los iconos de gvSIG Desktop, no tenéis más que lanzar la herramienta que genera el informe correspondiente desde ‘Herramientas/Desarrollo/Mostrar información sobre temas de iconos’.

Categories: OSGeo Planet

Jody Garnett: JTS 1.15.1 and XYZM development

OSGeo Planet - Thu, 2018-08-02 05:29
One of the things I have been working on with the LocationTech crew is the JTS Topology Suite project.

JTS logo

We have had an exciting couple of months with James Hughes and myself taking a code-sprint to:

The other bit of RnD I have been working has been Explicit support for XYZM coordinates. Previously this has been left as an exercise for the reader, designed for in the API but something for downstream applications to figure out. The motivation to address this in JTS is to support a WKTReader / WKT Writer enhancements Felix Obermaier has been working on, but now that it has started a wide range of projects have expressed interest.

The design trade off is between treating JTS Coordinate as a data object, managed in arrays and created and deleted as required. JTS itself only makes use of coordinate.x and coordinate.y fields (which are public as befitting a data structure).

Here is what adding XYZM support looks like for Coordinate:

Methods have beed added for getX(), getY(), getZ() and getM() - and the methods return NaN for anything they do not support.

The cloud projects at LocationTech, such as GeoMesa, run into a bit of trouble with this approach as creating and deleting Coordinate constantly during processing causes a lot of memory pressure. The alternative is to manage information as a CoordinateSequence, such as Packed CoordinateSequence which is backed by an array of doubles. There is lots of room for JTS to improve in this area and we have watched downstream projects come up with all kinds of fascinating CoordinateSequence implementations we can learn from.

Here is what adding XYZM support looks like for CoordinateSequence:

The key addition here is clarifying the definition of dimension (the number of ordinates in each coordinate) and adding measures (the number of measures included in dimension for each coordinate). For for XY data dimension is 2 and measures is 0. For XYZM data dimension is 4 and measures is 1.

FOSS4G 2018If you are interested in hearing more about JTS Topology Suite join Rob Emanuele and myself at FOSS4G 2018 later this month for State of JTS 2018

Categories: OSGeo Planet

gvSIG Team: 14th International gvSIG Conference: Registrations are now open

OSGeo Planet - Wed, 2018-08-01 11:12

The registration period for the 14th International gvSIG Conference is now open. The conference will be held from October 24th to 26th at School of Engineering in Geodesy, Cartography and Surveying (Universitat Politècnica de València, Spain).

Registrations are free of cost (limited capacity) and must be done through the application form on the Conference web page.

The conference program and all the information about registration for workshops, and about the conference rooms will be available at the event website soon.

We also remind you that we have extended the deadline for submitting communication proposals. The extended deadline is September 11th. You can find all the information about communication sending in the conference website.

We expect your participation!

Categories: OSGeo Planet

gvSIG Team: 14as Jornadas Internacionales gvSIG: Inscripciones abiertas

OSGeo Planet - Wed, 2018-08-01 11:10

Ya está abierto el periodo de inscripción de las 14as Jornadas Internacionales gvSIG, que se celebrarán del 24 al 26 de octubre, en la Escuela Técnica Superior de Ingeniería Geodésica, Cartográfica y Topográfica (Universitat Politècnica de València, España).

La inscripción es totalmente gratuita (con aforo limitado) y se ha de realizar a través del formulario existente en la página web de las Jornadas.

En unas semanas se publicará el programa con todas las ponencias y talleres previstos, tanto para usuarios como para desarrolladores, con toda la información sobre cómo inscribirse en ellos.

Por otro lado, os recordamos que se ha ampliado el plazo de envío de resúmenes, siendo la nueva fecha límite el 11 de septiembre. Las normas para el envío de comunicaciones podéis encontrarlas en la web del evento.

¡Esperamos vuestra participación!

Categories: OSGeo Planet

GIS for Thought: Anaconda install with OSGeo4W

OSGeo Planet - Wed, 2018-08-01 08:00

I was coming across some errors when installing Anaconda, Miniconda specifically.


I think part of the reason is I have quite a few installs of Python due to OSGeo4W.

My error:

Fatal Python error: Py_Initialize: unable to load the file system codec ModuleNotFoundError: No module named 'encodings' Current thread 0x00002554 (most recent call first):

The solution:

Update the activate.bat file that is called when launching from the start menu. For me located in:


We need to add in the following to clear out and reset the python environment before launching anaconda:

@SET PYTHONPATH= @SET PYTHONHOME=C:\ProgramData\Anaconda @PATH C:\ProgramData\Anaconda;C:\ProgramData\Anaconda\Scripts;%PATH%

So, editing the file from:

@REM Test first character and last character of %1 to see if first character is a " @REM but the last character isn't. @REM This was a bug as described in https://github.com/ContinuumIO/menuinst/issues/60 @REM When Anaconda Prompt has the form @REM %windir%\system32\cmd.exe "/K" "C:\Users\builder\Miniconda3\Scripts\activate.bat" "C:\Users\builder\Miniconda3" @REM Rather than the correct @REM %windir%\system32\cmd.exe /K ""C:\Users\builder\Miniconda3\Scripts\activate.bat" "C:\Users\builder\Miniconda3"" @REM this solution taken from https://stackoverflow.com/a/31359867 @set "_args1=%1" @set _args1_first=%_args1:~0,1% @set _args1_last=%_args1:~-1% @set _args1_first=%_args1_first:"=+% @set _args1_last=%_args1_last:"=+% @set _args1= @if "%_args1_first%"=="+" if NOT "%_args1_last%"=="+" ( @CALL "%~dp0..\Library\bin\conda.bat" activate @GOTO :End ) @CALL "%~dp0..\Library\bin\conda.bat" activate %* :End @set _args1_first= @set _args1_last=


@REM Test first character and last character of %1 to see if first character is a " @REM but the last character isn't. @REM This was a bug as described in https://github.com/ContinuumIO/menuinst/issues/60 @REM When Anaconda Prompt has the form @REM %windir%\system32\cmd.exe "/K" "C:\Users\builder\Miniconda3\Scripts\activate.bat" "C:\Users\builder\Miniconda3" @REM Rather than the correct @REM %windir%\system32\cmd.exe /K ""C:\Users\builder\Miniconda3\Scripts\activate.bat" "C:\Users\builder\Miniconda3"" @REM this solution taken from https://stackoverflow.com/a/31359867 @set "_args1=%1" @set _args1_first=%_args1:~0,1% @set _args1_last=%_args1:~-1% @set _args1_first=%_args1_first:"=+% @set _args1_last=%_args1_last:"=+% @set _args1= @SET PYTHONPATH= @SET PYTHONHOME=C:\ProgramData\Anaconda @PATH C:\ProgramData\Anaconda;C:\ProgramData\Anaconda\Scripts;%PATH% @if "%_args1_first%"=="+" if NOT "%_args1_last%"=="+" ( @CALL "%~dp0..\Library\bin\conda.bat" activate @GOTO :End ) @CALL "%~dp0..\Library\bin\conda.bat" activate %* :End @set _args1_first= @set _args1_last=

Updating the paths as required.

This just clears out the python and windows environmental variables before launching, similar to what OSGeo4W does.

Categories: OSGeo Planet

Blog 2 Engenheiros: Como criar seu primeiro plugin para QGIS usando Python e Qt Designer? Parte III

OSGeo Planet - Tue, 2018-07-31 06:07

E chegamos à última parte do nosso tutorial de criação de plugins para o QGIS utilizando Python e o Qt Designer. Na primeira postagem, ensinamos como criar os arquivos base do plugin e como solicitar ao usuário pontos temporários para serem inseridos no mapa.

Na segunda postagem, vimos como salvar o shapefile do ponto inserido, como avaliar em qual região de um determinado zoneamento o ponto esta localizado e como corrigir erros no Python.

Caso você não tenha lido a primeira e segunda parte, você pode ler elas clicando nos links abaixo.

Nesta terceira parte do tutorial, iremos mostrar como criar um mapa no compositor de impressão, de forma que possamos exportar o ponto inserido e o zoneamento avaliado para outros usuários no formato PDF e PNG.

Preparando o Compositor de Impressão com PyQGIS

Antes de começarmos a inserirmos as funções relacionadas ao compositor de impressão, precisamos importar elas. Você deve inserir nas linhas iniciais do arquivo python (.py) as seguintes linhas:

from PyQt4.QtGui import QAction, QIcon, QFileDialog, QPrinter, QPainter, QImage, QColor # Nesta linha, foram adicionados os itens QPrinter, QPainter, QImage e QColor from qgis.utils import iface # Adicione esta linha para importar o item iface

Agora que já importamos as funções necessárias, vamos incorporar, passo a passo, os itens do nosso mapa.

As próximas linhas de código serão inseridas no final do nosso arquivo python, logo após a verificação se os checkbox da área de estudo estão selecionados ou não.

Primeiro, iremos criar uma composição do tipo QgsComposition a qual irá receber a informação visual do nosso mapa. Confira o código abaixo.

# Criação de uma composição QgsComposition mapRenderer = iface.mapCanvas().mapRenderer() c = QgsComposition(mapRenderer) c.setPlotStyle(QgsComposition.Print)

O próximo passo é definir onde será impresso nosso mapa em uma folha A4 (o QGIS define como padrão de saída folha A4 com resolução de 300 dpi). Note que após criar as variáveis, elas são inseridas dentro do nosso mapa usando a função addItem().

# Adicionando e definindo onde o mapa será inserido na folha x, y = 0, 0 w, h = c.paperWidth(), c.paperHeight() composerMap = QgsComposerMap(c, x, y, w, h) c.addItem(composerMap)

Agora, vamos criar um item que receberá nossos textos e irá colocar eles em uma determinada parte da impressão.

Veja que dentro da função setText() devemos inserir o texto que será apresentado e na função setItemPosition() recebe a posição do nosso texto.

# Adiciona texto (label) ao mapa gerado composerLabel = QgsComposerLabel(c) composerLabel.setText("Blog 2 Engenheiros") composerLabel.adjustSizeToText() composerLabel.setItemPosition(100, 0) c.addItem(composerLabel)

Por fim, vamos adicionar agora a legenda do nosso mapa.

# Adiciona legenda ao mapa legend = QgsComposerLegend(c) legend.model().setLayerSet(mapRenderer.layerSet()) legend.setItemPosition(10,10) c.addItem(legend)

Já temos os elementos do nosso mapa no formato de código Python. Podemos também incluir outros itens, tais como escala (QgsComposerScaleBar) e polígonos baseados em pontos (QgsComposerPolygon), mas deixaremos eles de fora, neste tutorial.

Itens como figuras, flechas e tabelas ainda não suportados, ou seja, não podem ser inseridos por meio de python no QGIS (Documentation QGIS 2.18).

Com os itens inseridos, precisamos agora exportar o resultado para PDF ou para PNG.

Exportando mapa no formato PDF

Para exportar o mapa criado, utilize o código abaixo, lembrando de substituir (na função setOutputFileName) o caminho onde será gerado o arquivo pdf.

Neste exemplo, utilizei o mesmo caminho onde foi salvo o arquivo shapefile.

# Exportando o resultado para PDF printer = QPrinter() printer.setOutputFormat(QPrinter.PdfFormat) printer.setOutputFileName(localSalvo+"_mapa.pdf") printer.setPaperSize(QSizeF(c.paperWidth(), c.paperHeight()), QPrinter.Millimeter) printer.setFullPage(True) printer.setColorMode(QPrinter.Color) printer.setResolution(c.printResolution()) pdfPainter = QPainter(printer) paperRectMM = printer.pageRect(QPrinter.Millimeter) paperRectPixel = printer.pageRect(QPrinter.DevicePixel) c.render(pdfPainter, paperRectPixel, paperRectMM) pdfPainter.end()

Veja que podemos modificar várias opções, tais como tamanho do papel (setPaperSize), se a impressão é na folha toda (setFullPage) e resolução (setResolution).

Exportando o mapa no formato PNG

Agora, se você quer ter o mapa no formato png, você deverá utilizar o código abaixo, ao invés do código previamente apresentado.

# Exportando o mapa para PNG dpi = c.printResolution() dpmm = dpi / 25.4 width = int(dpmm * c.paperWidth()) height = int(dpmm * c.paperHeight()) # Cria uma imagem de saída e inicializa ela image = QImage(QSize(width, height), QImage.Format_ARGB32) image.setDotsPerMeterX(dpmm * 1000) image.setDotsPerMeterY(dpmm * 1000) image.fill(0) # Cria a composição imagePainter = QPainter(image) c.renderPage( imagePainter, 0 ) imagePainter.end() image.save(localSalvo+"_mapa.png", "png")

Caso você tenha seguido os passos corretamente e nenhum erro tenha acontecido, você obterá o seguinte mapa.

Mapa gerado após seguir os procedimentos que apresentamos.Mapa gerado após seguir os procedimentos que apresentamos.

A aparência do nosso mapa não é a melhor de todas, por isso, vamos modificar um pouco os códigos que apresentamos para que ele fique mais apresentável, acrescentando também, em qual região de planejamento e bacia hidrográfica o ponto se encontra.

Melhorando a aparência do nosso mapa

A legenda será o primeiro item que iremos melhorar. Confira o código abaixo (as linhas com comentários são aquelas que foram inseridas).

# Adiciona legenda ao mapa legend = QgsComposerLegend(c) legend.model().setLayerSet(mapRenderer.layerSet()) legend.setItemPosition(10,10) legend.setTitle("Legenda: ") # Acrescenta ou modifica o título da legenda legend.setFrameOutlineWidth(0.5) # Modifica tamanho da linha no entorno da legenda legend.setFrameEnabled(1) # Acrescenta linha no entorno da legenda c.addItem(legend)

Com a legenda corrigida, vamos modificar o texto que foi inserido.

Além de aparecer “Blog 2 Engenheiros”, vamos fazer ele mostrar o local onde o ponto inserido pelo usuário caiu (conforme bacia hidrográfica e região de planejamento).

# Adiciona texto (label) ao mapa gerado composerLabel = QgsComposerLabel(c) composerLabel.setText("Blog 2 Engenheiros: ") composerLabel.adjustSizeToText() composerLabel.setItemPosition(c.paperWidth() - 100, c.paperHeight() - 24) c.addItem(composerLabel) # Adiciona texto referente à localização do ponto adicionado regiaoLabel = QgsComposerLabel(c) if self.dlg.checkBoxRP.isChecked(): try: regiaoLabel.setText(pnt_selection[0] + u" esta localizado em " + rp_selection[0]) except: regiaoLabel.setText(u"O ponto fornecido esta fora da área de interesse!!") else: regiaoLabel.setText(u"O item Região de Planejamento não foi selecionado.") regiaoLabel.adjustSizeToText() regiaoLabel.setItemPosition(c.paperWidth() - 100, c.paperHeight() - 19) c.addItem(regiaoLabel) baciaLabel = QgsComposerLabel(c) if self.dlg.checkBoxBH.isChecked(): try: baciaLabel.setText(pnt_selection[0] + " esta na " + bh_selection[0]) except: baciaLabel.setText(u"O ponto fornecido esta fora da área de interesse!!") else: baciaLabel.setText(u"O item Bacias Hidrográficas não foi selecionado.") baciaLabel.adjustSizeToText() baciaLabel.setItemPosition(c.paperWidth() - 100, c.paperHeight() - 14) c.addItem(baciaLabel)

Agora vamos adicionar uma grade de coordenadas e uma borda ao nosso mapa, lembrando que devemos modificar, para isso, a posição que o nosso mapa foi inserido.

# Adicionando e definindo onde o mapa será inserido na folha x, y = 25, 25 # Variáveis que mostram a origem do nosso mapa na folha de impressão w, h = c.paperWidth() - 50, c.paperHeight() - 50 # Variáveis mostrando o tamanho do nosso mapa composerMap = QgsComposerMap(c, x, y, w, h) composerMap.setFrameEnabled(1) # Liga a borda do nosso mapa composerMap.setGridEnabled(True) # Liga a grade de coordenadas composerMap.setGridIntervalX(20000) # Determina o intervalo da grade no eixo X composerMap.setGridIntervalY(20000) # Determina o intervalo da grade no eixo X composerMap.setShowGridAnnotation(True) # Mostra os valores das coordenadas #composerMap.setGridAnnotationPrecision(0) # Precisão das coordenadas (Zero = não há casas decimais) (Por alguma razão, essa função não funciona). composerMap.setGridStyle(QgsComposerMap.Cross) # Estilo da Grade # Determina a posição e direção das coordenadas no topo do mapa composerMap.setGridAnnotationPosition(QgsComposerMap.OutsideMapFrame, QgsComposerMap.Top) composerMap.setGridAnnotationDirection(QgsComposerMap.Horizontal, QgsComposerMap.Top) # Desabilita coordenadas na parte inferior do mapa composerMap.setGridAnnotationPosition(QgsComposerMap.Disabled, QgsComposerMap.Bottom) # Desabilita coordenadas na esquerda do mapa composerMap.setGridAnnotationPosition(QgsComposerMap.Disabled, QgsComposerMap.Left) # Determina a posição e direção das coordenadas na direita do mapa composerMap.setGridAnnotationPosition(QgsComposerMap.OutsideMapFrame, QgsComposerMap.Right) composerMap.setGridAnnotationDirection(QgsComposerMap.Vertical, QgsComposerMap.Right) #composerMap.setAnnotationFrameDistance(1) # Distância da coordenada do mapa (Por alguma razão, essa função não funciona). composerMap.setAnnotationFontColor(QColor(0, 0, 0)) # Cor da coordenada c.addItem(composerMap)

O resultado das nossas modificação é apresentado na figura abaixo.

Após abrir o shapefile com os municípios do RJ, rodamos nosso plugin e este é o resultado.Após abrir o shapefile com os municípios do RJ, rodamos nosso plugin e este é o resultado.

Lembre-se de, antes de utilizar o plugin, determinar corretamente o sistema de coordenadas, ajustar a legenda e as cores do seu mapa, para que, ao utilizar o plugin, o mapa final sai corretamente.

Você pode baixar o arquivo python clicando em ponto_exato_final.

Confira o vídeo (aqui) que realizamos mostrando como o plugin funciona (aproveite e se inscreva no nosso canal do Youtube) e se você quer conferir as postagens anteriores deste plugin, confira os links abaixo:

Ficou com alguma dúvida? Deixa ela nos comentários que iremos responder assim que possível.

Referências Consultadas: Documentation QGIS 2.18: https://docs.qgis.org/2.18/en/docs/pyqgis_developer_cookbook/composer.html GIS StackExchange “Setting an item position (variable) from LowerRight?”: https://gis.stackexchange.com/questions/206150/setting-an-item-position-variable-from-lowerright GIS StackExchange “How can I add grid lines to a print composition using pyqgis?”: https://gis.stackexchange.com/questions/85724/how-can-i-add-grid-lines-to-a-print-composition-using-pyqgis
Categories: OSGeo Planet

Markus Neteler: Celebrating 35 years of GRASS GIS!

OSGeo Planet - Sun, 2018-07-29 17:16

Today marks 35 years of GRASS GIS development – with frequent releases the project keeps pushing the limits in terms of geospatial data processing quality and performance.

GRASS (Geographic Resources Analysis Support System) is a free and open source Geographic Information System (GIS) software suite used for geospatial data management and analysis, image processing, graphics and map production, spatial modeling, and 3D visualization. Since the major GRASS GIS 7 version, it also comes with a feature rich engine for space-time cubes useful for time series processing of Landsat and Copernicus Sentinel satellite data and more. GRASS GIS can be either used as a desktop application or as a backend for other software packages such as QGIS and R. Furthermore, it is frequently used on HPC and cloud infrastructures for massive parallelized data processing.

Brief history
In 1982, under the direction of Bill Goran at the U.S. Army Corps of Engineers Construction Engineering Research Laboratory (CERL), two GIS development efforts were undertaken. First, Lloyd Van Warren, a University of Illinois engineering student, began development on a new computer program that allowed analysis of mapped data.  Second, Jim Westervelt (CERL) developed a GIS package called “LAGRID – the Landscape Architecture Gridcell analysis system” as his master’s thesis. Thirty five years ago, on 29 July 1983, the user manual for this new system titled “GIS Version 1 Reference Manual” was first published by J. Westervelt and M. O’Shea. With the technical guidance of Michael Shapiro (CERL), the software continued its development at the U.S. Army Corps of Engineers Construction Engineering Research Laboratory (USA/CERL) in Champaign, Illinois; and after further expansion version 1.0 was released in 1985 under the name Geographic Resources Analysis Support System (GRASS). The GRASS GIS community was established the same year with the first annual user meeting and the launch of GRASSnet, one of the internet’s early mailing lists. The user community expanded to a larger audience in 1991 with the “Grasshopper” mailing list and the introduction of the World Wide Web. The users’ and programmers’ mailing lists archives for these early years are still available online.
In the mid 1990s the development transferred from USA/CERL to The Open GRASS Consortium (a group who would later generalize to become today’s Open Geospatial Consortium — the OGC). The project coordination eventually shifted to the international development team made up of governmental and academic researchers and university scientists. Reflecting this shift to a project run by the users, for the users, in 1999 GRASS GIS was released under the terms of the GNU General Public License (GPL). A detailed history of GRASS GIS can be found at https://grass.osgeo.org/history/.

Where to next?
The development on GRASS GIS continues with more energy and interest than ever. Parallel to the long-term maintenance of the GRASS 7.4 stable series, effort is well underway on the new upcoming cutting-edge 7.6 release, which will bring many new features, enhancements, and cleanups. As in the past, the GRASS GIS community is open to any contribution, be it in the form of programming, documentation, testing, and financial sponsorship. Please contact us!


The Geographic Resources Analysis Support System (https://grass.osgeo.org/), commonly referred to as GRASS GIS, is an Open Source Geographic Information System providing powerful raster, vector and geospatial processing capabilities in a single integrated software suite. GRASS GIS includes tools for spatial modeling, visualization of raster and vector data, management and analysis of geospatial data, and the processing of satellite and aerial imagery. It also provides the capability to produce sophisticated presentation graphics and hardcopy maps. GRASS GIS has been translated into about twenty languages and supports a huge array of data formats. It can be used either as a stand-alone application or as backend for other software packages such as QGIS and R geostatistics. It is distributed freely under the terms of the GNU General Public License (GPL). GRASS GIS is a founding member of the Open Source Geospatial Foundation (OSGeo).

The GRASS Development Team, July 2018

The post Celebrating 35 years of GRASS GIS! appeared first on GFOSS Blog | GRASS GIS and OSGeo News.

Categories: OSGeo Planet

GRASS GIS: 35 years of GRASS GIS development

OSGeo Planet - Sun, 2018-07-29 10:46
Celebrating 35 years of GRASS GIS!
Categories: OSGeo Planet

GIScussions: FOSS4G is going to be an amazing event

OSGeo Planet - Fri, 2018-07-27 16:21

Msasani Peninsula, Dar es Salaam

I attended my first FOSS4G 5 years ago, I really had no idea what to expect even though I’d agreed to chair the organising committee! I’d been to lots of Geo conferences before and never experienced the passion, friendship and technical depth that a FOSS4G has. Since Nottingham, I’ve been to 2 more global FOSS4Gs, 2 UK FOSS4Gs and this year’s European FOSS4G and I can’t wait to go to Dar in August.

The IT landscape is being transformed at a staggering pace as we shift to consuming services, nowhere is this more evident than in Geo. Open Source is powering these services – there are probably over a billion people accessing Geo services powered by the technologies that you will find at FOSS4G, there are over a million users of an open source desktop GIS. If you are already using OSGeo projects, FOSS4G presents an opportunity to learn from the developers of the software and other users. If you are new to open source, FOSS4G will welcome you and help you to evaluate whether the software projects and supportive community will be the best solution for your future needs.

In 2016 the Bill and Melinda Gates Foundation said:

Lack of capacity can cause countries to be slow to adopt methodologies to produce, maintain, and more importantly, benefit from robust geospatial data and analysis systems. Lack of new tools or approaches to geospatial data can inhibit many opportunities for growth and innovation. Given the rapid recent advances in data and geospatial technology, now is a critical time to invest in ensuring that Sub-Saharan Africa is mapped and has the tools to use geospatial data effectively and sustainably. Building better data systems in the long-term can contribute to more informed policy making or improved decision making to reduced inequity while in the short-term provide rapid information to prevent disasters such as large-scale epidemics.https://www.gatesfoundation.org/How-We-Work/General-Information/Grant-Opportunities/Geospatial-Data-in-Africa

Open Source and Open Data are key to enabling this vision for African Geospatial.

What better time could there be to bring FOSS4G to Africa? This year FOSS4G is in Dar es Salaam (The Bay of Peace), Tanzania, it’s the first time a major geospatial global tech conference has been hosted in East Africa. We will be joined by the Humanitarian OpenStreetMap Team, the Consultative Group for International Agricultural Research, Understanding Risk Tanzania, Sahara Sparks to make this the most exciting FOSS4G program yet!

Thanks to the generous support of our many sponsors we are expecting close to 1,000 people from across Africa and much further afield to join together in Dar to share, learn and make new friends.

I really do believe that this could be the most important FOSS4G ever, if you haven’t booked yet there is still time.

Tutaonane Dar es Salaam

Categories: OSGeo Planet

QGIS Polska: blog:polska_grupa_uzytkownikow_qgis_na_facebooku

OSGeo Planet - Fri, 2018-07-27 13:06
Na Facebooku uruchomiliśmy grupę o nazwie Polska Grupa Użytkowników QGIS, która jest odpowiedzią na rosnące zapotrzebowanie na takie miejsce w sieciach społecznościowych. Celem grupy jest promowanie QGIS jako wolnego i otwartego oprogramowania oraz wymiana wiedzy, umiejętności i doświadczeń. Zapraszamy do grupy wszystkich posiadających konto na FB i korzystających z QGIS. Zachęcamy też do aktywnego w niej uczestnictwa.
Categories: OSGeo Planet

QGIS Polska: blog:polska_grupa_uzytkownikow_qgis_na_facebooku

OSGeo Planet - Fri, 2018-07-27 13:06
Na Facebooku uruchomiliśmy grupę o nazwie Polska Grupa Użytkowników QGIS, która jest odpowiedzią na rosnące zapotrzebowanie na takie miejsce w sieciach społecznościowych. Celem grupy jest promowanie QGIS jako wolnego i otwartego oprogramowania oraz wymiana wiedzy, umiejętności i doświadczeń. Zapraszamy do grupy wszystkich posiadających konto na FB i korzystających z QGIS. Zachęcamy też do aktywnego w niej uczestnictwa.
Categories: OSGeo Planet

SourcePole: Serving Non-mercator data in a Web Mercator grid

OSGeo Planet - Thu, 2018-07-26 15:29

The Web Mercator grid as used by OSM, Google, etc. is the de-facto standard for serving web maps. But not many people maintain data in a Web Mercator reference system. People usually use either a locally optimized SRS or store their data in WGS84.

For publishing, data has to be transformed to Web Mercator. If the result is good enough for your purpose, you can take this route. You loose the possibility to use base maps served in your local tile grid, but you can use OSM or other base maps.

If you don’t want to retransform your data to Web Mercator, but still use tools like Mapbox GL JS, which are only supporting Mercator, there is a way to do that. I call this method “Fake Mercator”. You handle the coordinates in your local reference system as if they were Web Mercator coordinates. At a first glance, this looks like a terrible hack, but after using this method in some projects, I think there are legitimate uses of this approach. We’re just using a display grid in an other projection, but as long as we stay in our area of interest, why should we care?

Assuming your data is stored in a PostGIS database, there is simple way to convert them to Web Mercator:

SELECT UpdateGeometrySRID('public', 'mytable', 'wkb_geometry', 3857);

What happens with my country doing that?


Everything is shifted to the same coordinates but now in the Web Mercator grid. We still have the original projection, only placed on an other part on the Web Mercator world. From then on you can use all tools specialized on Web Mercator with loosing only one thing: you can’t use other base maps served as tiles. What you can do, is using WMS services or raster images with the same shift applied. And you have to take care when displaying WGS84 coordinates that you calculate them from the original projection of the data.

If you don’t want to change the SRS of your data permanently, you can also apply ST_SetSRID on-the-fly. In case of MVT vector tiles, t-rex does that for you by passing the option no-transform=true. It then handles the correct (non-)projection of request BBOX coordinates and calculated extends.

t_rex serve --datasource ch_epsg_2056.gpkg --no-transform true


You’ll see your data in their original projection on a Web Mercator grid. You’ll only notice that t-rex adds the original coordinates when generating a configuration file:

[[tileset]] name = "mytable" # Real extent: [5.96438, 45.81937, 10.55886, 47.77210] extent = [22.32683, 9.61388, 25.45680, 11.56229]

If you don’t pass no-transform, t-rex will automatically transform your data to Web Mercator. Alternatively you can define a user grid with your data’s reference system, but then you have to use this grid in your map viewer (e.g. OpenLayers) as well.

To sum this post up, there are many possibilities to serve your data in a tile grid and sometimes it makes sense to serve your data without reprojection in a Web Mercator grid.

Pirmin Kalberer (@implgeo)

Categories: OSGeo Planet

Even Rouault: SRS barn raising: 2nd report

OSGeo Planet - Thu, 2018-07-26 14:56
This is the second progress report of the GDAL SRS barn effort.

Since the previous report, a number of topics have been addressed:
- extension of the class hierarchy to implement BoundCRS (the generalization of the WKT1 TOWGS84 concept. This concept only exists in WKT 2 and has not been modeled in ISO-19111, so I went on my own modelling), TimeCRS, DerivedGeodeticCRS- implementation of the exportToPROJ() method for CRS and related objects, and CoordinateOperation- addition of all documentation needed at class and method level so that Doxygen passes without warnings- implementation of CoordinateOperation::createOperation() method that can instanciate a transformation between two CRSs. For now, it does not use yet the operations of the EPSG database, but it can already take into account the hints of BoundCRS.- implementation of a number of Transformations: geocentric translation, position vector transformation, coordinate frame rotation, NTv2,  GravityRelatedHeightToGeographic3D, VERTCON.- start of mapping all GDAL currently supported projection methods. For now: UTM, Transverse Mercator, Transerve Mercator South Oriented, Two Point Equidistant, Tunisia Mapping Grid, Albers Conic Equal Area, Lambert Conic Conformal 1SP, New Zealand Map Grid. Several tens are obviously still missing.- addition of a isEquivalentTo() method to compare the various objects. - and of course, extensive unit testing of all the above work.
The result of this continued work can be followed in this pull request.
As a related effort, I've coordinated with the OGC CRS Working Group to provide my comments on the upcoming ISO:19168 / WKTv2 2018 revision.
Categories: OSGeo Planet

GIS for Thought: Ireland and Dublin Street Orientations

OSGeo Planet - Thu, 2018-07-26 08:00

Based on the work by:

Geoff Boeing: Comparing City Street Orientations

Rixx: Street Orientations

The graphs show the percentage of streets that run in a certain orientation. So for a grid based city like Chicago, there will be a heavy bias in north/south and east/west streets. Bearing in mind north and south will be the same (unless there are one-way streets, which only count in the direction they run in).

But for older cities that formed naturally, without modern city planning, the streets should be more varied.


Largest populated places by population. Based on the Ordnance Survey Ireland urban areas. As it is OSI data, Northern Ireland is not included.

Dublin Postcodes:

Some areas are clearly impacted by large motorways running through them.

And for non-Dubliners, a map of the postal district boundaries:

I updated the script by Rixx, so that it would take a ShapeFile as an input with a few caveats (it must be WGS84, it must have an attribute that has the are name and it must be called settl_name).

Check out the script at: GitHub

Categories: OSGeo Planet

GeoServer Team: GeoServer 2.13.2 released

OSGeo Planet - Wed, 2018-07-25 13:23

We are happy to announce the release of GeoServer 2.13.2. Downloads are available (zipwar, and exe) along with docs and extensions.

This is a stable release recommended for production use. This release is made in conjunction with GeoTools 19.2 and GeoWebCache 1.13.2.

Highlights of this release are featured below, for more information please see the release notes (2.13.2 | 2.13.1 | | 2.13-beta).

Improvements and Fixes
  • style editor map legend always includes legend
  • performance improvement for multi-band coverage time series
  • WMS 1.3.0 performance improvement for north/east axis order
  • Fix support of external graphics over http
Security updates

Please update your production instances of GeoServer to receive the latest security updates and fixes.

If you encounter a security vulnerability in GeoServer, or any other open source software, please take care to report the issue in a responsible fashion.

About GeoServer 2.13 Series

Additional information on the 2.13 series:


Categories: OSGeo Planet

gvSIG Team: 1100 participantes gvSIG aplicado a Medio Ambiente

OSGeo Planet - Wed, 2018-07-25 10:05

Cartel gvSIG aplicado a Medioambiente_1000.png

El curso de gvSIG aplicado a Medio Ambiente ha alcanzado ya la cifra de 1100 participantes. Muchas gracias a todas las personas que han confiado en gvSIG para aprender o reforzar sus conocimientos de SIG.

Recordamos que este curso es gratuito y completamente en línea. Además podeís optar a la certificiación oficial de gvSIG Usuario.

Para poder obtener dicha certificación se deberán completar todos los ejercicios de cada tema. Los ejercicios validarán los conocimientos adquiridos durante el curso y serán evaluados por un tutor.

La plataforma y la opción de matrícula abierta la podéis encontrar en www.geoalternativa.com/gvsig-training. Es necesario elegir el curso de gvSIG aplicado a Medio Ambiente. Después debéis elegir la opción “Registrarse como usuario” y, por último, matricularos en él.

Aparte de la entrega y aprobación de los ejercicios, la certificación llevará un coste mínimo, necesario para cubrir los gastos relativos a la evaluación y certificación. Este coste será de 30 €. El pago es posible hacerlo a través de Paypal en el siguiente enlace: http://www.gvsig.com/es/curso-gvsig-aplicado-medio-ambiente

La certificación será emitida por la Asociación gvSIG, y estará compuesta por dos certificados:

– Certificado de aprovechamiento del curso, que incluirá toda la información relativa a los contenidos formativos adquiridos.

– Certificado oficial gvSIG Usuario, al haber completado los 90 créditos necesarios para ello, y que da derecho a poder obtener el certificado de gvSIG Usuario, realizando y aprobando los créditos necesarios para su convalidación, a través de los cursos ofrecidos por la Asociación gvSIG.

El tiempo de dedicación del curso se ha estimado en 90 horas.

Categories: OSGeo Planet

gvSIG Team: Ejemplo de dependencia tecnológica. Cuando un servicio se encarece más de un 1.000%

OSGeo Planet - Wed, 2018-07-25 07:51

Leyendo el post del blog de la IDEE sobre los cambios en la API de Google Maps, he considerado que no está de más darle también difusión por el blog de gvSIG a este claro ejemplo de dependencia tecnológica. Las diferencias entre ser dueños de la tecnología o, al contrario, ser totalmente dependientes de los dueños de la tecnología se explican perfectamente con ejemplos como este.

Nuestras administraciones públicas, las que gestionan nuestro dinero, deberían tenerlo claro. Inversión frente a gasto. Reutilización frente a derroche. Soberanía tecnológica frente a dependencia.

Y aunque la dinámica hacia soluciones de software libre es clara, es todavía demasiado frecuente encontrarnos con tomadores de decisiones que no dan importancia a este tema. Los errores cometidos, además, pueden acabar por hipotecar el futuro tecnológico (y económico!!) de sus organizaciones. No es baladí.

Volviendo al caso del API de Google Maps, otro más que se suma a la lista. Desde el pasado 11 de junio, las condiciones de uso de la API de Google Maps (que recuerda, no decides tú) han cambiado, con un encarecimiento notable de su uso. Tal y como apuntan desde la IDEE el servicio se ha encarecido en un 1400 % y el límite de peticiones gratuitas ha pasado de 25.000 por día a 28.000 por mes (unas 933 al día de media). El riesgo para los desarrolladores es muy grande, se pueden arruinar muy fácilmente si su aplicación tiene un buen pico de peticiones, por ejemplo durante un ataque.

Puede ser que éste sea un buen momento para que los organismos públicos que están utilizando la API de Google Maps consideren otras opciones como gvSIG Online, software libre implantado en todo tipo de organizaciones. Con todos los derechos, con todas las libertades, y con toda la capacidad tecnológica que necesitas.

Categories: OSGeo Planet

gvSIG Team: 10as Jornada Latino Americana e do Caribe de gvSIG: “Plataformas e usuários para resolução de problemas”

OSGeo Planet - Tue, 2018-07-24 08:58

No dia 23 de agosto de 2018 será realizada 10as Jornada Latino Americana e do Caribe de gvSIG em Santa Maria (Rio Grande do Sul – Brasil) sobre o tema “Plataformas e usuários para resolução de problemas”, um novo encontro para a troca de experiências sobre o uso e desenvolvimento do gvSIG em conjunto com a Semana da Geomática da UFSM.

Já está aberto o período para envio de propostas para apresentação nas Jornadas. Desde hoje as propostas poderão ser enviadas para o E-mail  artigojornadagvsig2018@gmail.com Toda informação sobre as normas para a apresentação pode ser consultada pela seção de Comunicação pela web. O período para recebimento dos resumos se encerra no próximo dia 10 de agosto.

O período de inscrição das Jornadas abrirá no próximo dia 25 de julho. A inscrição será gratuita.

Categories: OSGeo Planet
Syndicate content