OSGeo Planet

GIScussions: Sales & Marketing 101 workshop feedback

OSGeo Planet - Wed, 2017-08-23 17:20

Sales & Marketing 101 delegates 2

Marc and I finally delivered the first Sales & Marketing workshop at FOSS4G 2017 in Boston with 14 attendees. All of the hard work and detailed planning seemed to work out, we stuck to time, the material made sense and built to the point where several of the delegates had breakthroughs in terms of their clarity and messaging.

The feedback since the workshop has been fantastically positive (note my modesty), I think we can sharpen the focus a bit (trim a couple of sections) and rework the exercises to make them even more effective.

Some people have asked if we would make the slides available so I have posted them online (in pdf with speaker notes) although I doubt they will be much use without Marc’s words of wisdom and my hyper-babble. Still if you can’t get to the next workshop in London later this year and you can’t wait until the next FOSS4G (when we will probably build on what we did this year) then the slides may be better than nothing.

  1. Introduction
  2. Marketing is strategy ..
  3. Value Propositions
  4. Marketing essentials
  5. The Pain Chain
  6. Asking the right questions
  7. Pricing for Profit
  8. 10 characteristics of a great value proposition

My takeaway from the workshop is that there is a definite need for this kind of training for startups and small tech businesses and if we can identify a few key concepts to teach in a day we can really make a difference for some of our delegates. If we had two days …

I am hoping to run one or two workshops in London later this year, it depends on finding a venue and possibly a sponsor to help reduce delegate costs. If you are interested in attending the workshop and want more info or if you are interested in hosting/sponsoring a workshop get in touch via the contact form. The work on value propositions is transformational stuff for small businesses, if you’d like me to facilitate your team to develop sharp focussed value propositions get in touch and we can discuss how that might work.

Categories: OSGeo Planet

Fernando Quadro: Configurações de segurança no GeoServer – Parte 3

OSGeo Planet - Wed, 2017-08-23 10:30

Com os usuários criados com seus devidos papéis, o próximo passo é aplicar restrições de segurança para esses papéis.

5. Definindo permissões

5.1. Permitir a visualização anônima de camadas públicas

Por padrão todas as camadas são públicas, de modo que este requisito já foi sido cumpridas.

5.2. Restringir a visualização de camadas privadas

O workspace private é criado para armazenar os dados privados. Os usuários private_viewer e private_editor devem ser as únicas contas capazes de ler o conteúdo deste workspace.

Clique em Data no menu Security do lado esquerdo da página.

Clique Adicionar nova regra.

Preencha o formulário com as seguintes informações:
• Na workspace, selecione private.
• Na Layer, selecione * (asterisco).
• No Access, selecione Read.
• Na Roles, clique ROLE_PRIVATE e ROLE_PRIVATEEDIT e, em seguida, clique para mover ambos os papéis para o campo Selecionado.

Clique em Salvar.

5.3. Restringir a edição de camadas públicas

O workspace public é criado para armazenar os dados públicos. Embora o acesso anônimo será mantido para a visualização de camadas neste espaço de trabalho, o public_editor deve ser o único usuário capaz de editar as camadas neste workspace.

1. Clique Adicionar nova regra novamente.
2. Preencha o formulário com as seguintes informações:
• No campo workspace, selecione public.
• No campo Layers, selecione * (asterisco).
• No campo Access mode, selecione Write.
• Em Roles, clique ROLE_EDIT e, em seguida, clique na seta para a direita para mover o papel para o campo Selecionado.

3. Clique em Salvar.

5.4. Restringir o download de dados de camada

Os public_editor e private_editor usuários são os únicos usuários que devem ter acesso ao download de dados de camada. Isto significa que o ROLE_EDIT e ROLE_PRIVATEEDIT devem ser os únicos papéis que têm acesso a WFS.

1. Clique em Services no menu Security do lado esquerdo da página.

2. Clique Adicionar nova regra.

3. Preencha o formulário com as seguintes informações:
• No campo Service, selecione wfs.
• No campo Method, selecione * (asterisco).
• No campo Roles, clique ROLE_EDIT e ROLE_PRIVATEEDIT e, em seguida, clique na seta para a direita para mover ambos os papéis para o campo Selecionado.

4. Clique em Salvar.

5.5. Restringir a edição das camadas particulares

Ao usuário private_editor foi dado acesso de leitura para o workspace private, mas é necessário ser dado acesso de escrita também.

1. Clique Data no menu Security menu do lado esquerdo da página.
2. Clique Adicionar nova regra .
3. Preencha o formulário com as seguintes informações:
• No campo workspace, selecione private.
• No campo Layers, selecione * (asterisco).
• No campo Access mode, selecione Write.
• No campo Roles, clique ROLE_PRIVATEEDIT e, em seguida, clique na seta para a direita para mover o papel para o campo Selecionado.

4. Clique em Salvar.

5.6. Restringir WPS

O serviço WPS pode impor uma forte penalização de desempenho, se deixado sem restrições. Como não é necessário neste cenário, será restrito a apenas a conta de administrador.

1. Clique Services no menu Security menu do lado esquerdo da página.
2. Clique Adicionar nova regra .
3. Preencha o formulário com as seguintes informações:
• No campo Services, selecione wfs.
• No campo Method, selecione * (asterisco).
• No campo Roles, clique em Admin e, em seguida, clique na seta para a direita para mover o papel para o campo Selecionado.

4. Clique em Salvar.

5.7. Restringir o acesso REST, exceto para o administrador

A interface REST é configurado para ser acessado pelo administrador por padrão, de modo que este requisito já foi atendido.

Você realizou todas as configurações de segurança, no próximo post mostrarei quais testes devem ser realizados pra verificar se as configurações estão corretas. Aguarde!

Categories: OSGeo Planet

GIScussions: #FAKEMAPS standing room only

OSGeo Planet - Tue, 2017-08-22 21:49


Sometimes a glitch can work out.

I had been worrying how I was going to get through over 60 slides in my FAKEMAPS presentation (plus builds) in 20 minutes, I cut and cut but still thought I might have to do a hard stop somewhere before the spectacular end. Stressful.

The FOSS4G team had asked presenters to use their laptops that were hooked up for recording, they suggested PowerPoint format or PDF (no Keynote). I had made copies in both formats, so when the PowerPoint version wouldn’t load I was left with no choice but to run the PDF which meant no speaker notes – aargh! all that extra detail and information consigned to the dustbin of my memory. The plus was I scorched through 60 slides in 20 minutes, well slightly over but within acceptable limits.

The room was rammed with people sitting in the aisle, standing at the back and spilling into the corridor. It might have been the hype that had built up around the badges and stickers – the audience snarfed about 120 badges and 300 stickers!

It was a heck of a lot of fun and I think the crowd enjoyed it too. I am going to try to do a repeat somewhere in London over the next couple of months, any ideas?

Standing Room Only for FAKEMAPS-1

You can view the slides here. You can read the speaker notes and the slides at bit.ly/fakemaps

It’s better with the chat, I’ll post a link to the video when it is uploaded by the FOSS4G team

The best of the banter

Relevant to the #fakemaps presentation right now @stevenfeldman #foss4g pic.twitter.com/B3OuoPUCow

— Chris Whong (@chris_whong) August 17, 2017


Noone showed up at @StevenFeldman s talk, don't trust the MSM sad! #fakenews #fakemaps #FOSS4G pic.twitter.com/zvrjYEFepG

— Steven Ottens (@stvno) August 17, 2017

Categories: OSGeo Planet

GeoSolutions: GeoSolutions Presentations at FOSS4G 2017

OSGeo Planet - Tue, 2017-08-22 15:09

foss4g 2017

Dear Reader,

we just came back from FOSS4G Boston 2017 and we are trying to recover from both the jet lag as well as the excitement of last week; the GeoServer workshops went quite smoothly and we hope they were well received (if you attended you should have received an email with a short feedback form to fill), the presentations were able to gather a good audience and so was for our booth.

Last but not least, our GeoServer technical lead Andrea Aime was awarded the Sol Katz Award for his contributions and achievements with FOSS4G software, a recognition that makes all us at GeoSolutions happy and proud.

Now that the dust is settling, it is time to gather all the presentations in case you wanted to review them; once the recording will be out we will link them as well. Therefore, please, find here below our presentations covering MapStore and GeoServer.

One last thing, if you were not able to attend our workshop you can find the preparation instructions at this link; do not forget to subscribe to our newsletter while at it.

MapStore 2, modern mashups with OL3, Leaflet and React State of GeoServer 2.12 GeoServer Feature FRENZY Mapping the world beyond web mercator - FOSS4G 2015 Creating Stunning Maps in GeoServer: mastering SLD and CSS styles If you need further information, don't hesitate to contact us.

The GeoSolutions Team,

Categories: OSGeo Planet

Fernando Quadro: Configurações de segurança no GeoServer – Parte 2

OSGeo Planet - Tue, 2017-08-22 10:30

No último post criamos os workspaces que utilizaremos neste exemplo prático que estamos fazendo sobre como trabalhar com o módulo de Segurança no GeoServer. Neste post iremos criar os usuários:

4. Criação de usuários

O próximo passo é a criação de usuários e a associação com as funções recém-criadas. Note que, neste ponto, os papéis não vão “fazer” qualquer coisa; que virá em uma etapa seguinte.

4.1. Clique novamente em Users, Groups, Roles no menu Segurança na coluna no lado esquerdo da página.
4.2. Em User / Group, clique em default.

4.3. Clique na guia Users. Isto irá mostrar a lista atual de usuários.

4.4. Clique em Add new user .

4.5. Preencha o formulário com as informações a seguir, deixando todos os outros campos em branco:
• No campo de nome de usuário, insira public_editor.
• Nos campos Senha e Confirmar senha , insira uma senha.
• No campo intitulado Roles clique ROLE_EDIT e mova-o para a caixa Selecionado.

4.6. Clique em Salvar .
4.7. Clique em Adicionar novo usuário novamente e repita o processo acima, para a criação de dois novos usuários, private_viewer e private_edit, e depois você deve associá-los com as roles ROLE_PRIVATE e ROLE_PRIVATEEDIT, respectivamente.

No próximo post iremos definir as permissões de acesso. Não Perca!

Categories: OSGeo Planet

Paolo Corti: FOSS4G 2017

OSGeo Planet - Tue, 2017-08-22 00:00

FOSS4G 2017 came to Boston last week and since I am living in Cambridge, MA since two years now, I can definitely say that I have been so lucky to have this great conference at home :)

The conference was great as usual, and it was the right time to directly meet with other members of the OSGeo community. I enjoyed listening to several talks, some of them were really interesting.

I have been involved directly in the conference, as I gave one workshop and one talk this year.

The workshop we gave, named Building SDIs and geoportals with GeoNode and a search engine, is related to the work we are doing at Harvard CGA with GeoNode and Solr within the context of the WorldMap and Hypermap Registry projects. In the workshop there is a rich introduction to this argument with plenty of tutorials to GeoNode, OGC standards, GeoServer, GeoWebCache, pycsw, PostGIS, Solr and Celery/RabbiMQ. In case you are interested to go through this material, I uploaded everything online. You can follow the documentation (tutorials) here and you can also have a look at the git repository.

The talk we gave, Maintaining spatial data infrastructures (SDIs) using distributed task queues, is about how we added a task queue, based on Celery and RabbitMQ, in the context of our SDI and which are the benefits. In case you are interested you may check out the slides of the talk

On Saturday I attended the GeoNode code sprint, and it was the right time to discuss with other developers and users like @simo_d, @francbartoli, @dufour_pj, @tzotsos, @ortelius, @ingenieroariel, @disruptivegeo, @tomgertin and @dimitris_karako about the future of this great platform.

Last but not least I am really glad that Andrea Aime (aka @geowolf) got the Sol Katz Award this year. He is an incredibly active developer in the GeoServer and GeoTools community, I have been listening to his great talks at the conferences in the last few years, and he is constantly giving great help on the mailing lists of these projects. Definitely really well deserved, congratulations again, Andrea!

Categories: OSGeo Planet

Fernando Quadro: Configurações de segurança no GeoServer – Parte 1

OSGeo Planet - Mon, 2017-08-21 13:16

O GeoServer tem a capacidade de criar várias contas de usuário. Esses usuários podem ter acesso a qualquer funcionalidade, a partir da capacidade de editar os metadados de um workspace para a visualização de um documento de Capabilities.

Por padrão, o GeoServer vem com dois usuários:

• Uma conta administrativa (admin): Esta conta tem a capacidade de ler ou escrever qualquer coisa no GeoServer.
• Uma conta root: Esta é uma conta de administrador de “último recurso” que deve apenas ser usada para fins de recuperação de desastres. Esta conta não pode ser desativada ou modificada.

Além dos usuários nomeados acima, muitas funções estão disponíveis através de acesso anônimo. Funções permitidas de forma anônima por padrão incluem a visualização de documentos GetCapabilities, execução de solicitações GetFeature e GetMap, e uso da página de demonstração Request Builder.

1. Cenário multiusuário

Este tutorial vai implementar o seguinte cenário básico de segurança:

• A maioria dos dados é informação pública, ou seja, qualquer pessoa deve ser capaz de visualizar as imagens do mapa.
• Algumas camadas contêm informações privadas, de modo que a visualização de imagens deve ser bloqueada, com exceção daqueles que devem possuir acesso a esta informação.
• Apenas algumas pessoas devem ser capazes de editar as camadas públicas
• Aqueles que podem editar as camadas públicas devem ser os únicos usuários capazes de baixar os dados.
• Algumas outras pessoas devem ser capaz de editar as camadas não-públicas
• Por motivos de segurança e de largura de banda, você quer impedir a execução de requisições WPS para todos os usuários, exceto para o administrador.
• Acesso REST deve ser habilitado somente para o administrador.

Com base neste cenário, três contas terão de ser criadas:

public_editor – Esta conta será capaz de editar a dados públicos
private_viewer – Esta conta será capaz de visualizar os dados privados
private_editor – Esta conta será capaz de editar os dados privados

2. Configurando catálogo

As camadas públicas como acima definidas estarão em um workspace chamado public, e as camadas privadas estarão em um workspace chamado private.

3. Criando papéis

Tendo identificado o cenário e determinado que as contas precisam ser criadas, o próximo passo é criar os papéis (roles). Com base nas três contas identificados, os papéis a serem criados serão chamados ROLE_EDIT, ROLE_PRIVATE, e ROLE_PRIVATEEDIT.

Esta configuração deve ser feita através da interface administração do GeoServer (web).

3.1. Abra a interface web GeoServer e efetue login com a conta de administrador (admin).

3.2. Clique em Users, Groups, Roles no menu Security na coluna no lado esquerdo da página.

3.3. Em Role Service, clique no item default.

3.4. Clique na guia Roles.

3.5. A lista atual de funções será exibida. Clique Adicionar novo papel (role).

3.6. Digite ROLE_PRIVATE no campo Nome e clique em Salvar.

3.7. Repita o processo, adicionando mais dois papéis, ROLE_EDIT e ROLE_PRIVATEEDIT.

No próximo post falaremos sobre a criação dos usuários. Não Perca!

Categories: OSGeo Planet

BostonGIS: geography type is not limited to earth

OSGeo Planet - Sun, 2017-08-20 14:50

It's a little known fact that the PostGIS geography type since PostGIS 2.2 (well was introduced in 2.1 I think but had a bug in it until 2.1.4 or so), supports any spheroidal spatial reference system that measures in degrees. When an srid is not specified, it defaults to using 4326, Earth WGS 84 long lat.

Continue reading "geography type is not limited to earth"
Categories: OSGeo Planet

Antonio Santiago: Using PM2 to manage NodeJS cluster

OSGeo Planet - Sun, 2017-08-20 10:34

The cluster module allows us to create worker processes to improve our NodeJS applications performance. This is specially important in web applications, where a master process receives all the requests and load balances them among the worker processes.

But all this power comes with the cost that must be the application who manages all the complexity associated with process managements: what happens if a worker process exists unexpectedly, how exit gracefully the worker processes, what if you need to restart all your workers, etc.

In this post we present PM2 tool. although it is a general process manager, that means it can manage any kind of process like python, ruby, … and not only NodeJS processes, the tool is specially designed to manage NodeJS applications that want to work with the cluster module.

Categories: OSGeo Planet

SourcePole: Slides FOSS4G 2017

OSGeo Planet - Sat, 2017-08-19 01:58

Reporting back from FOSS4G 2017 in Boston, which started with the usual QGIS plugin programming workshop, this time at the Harvard University campus.


QGIS Web Client 2 t-rex, a vector tile server for your own data Sharing and Migrating GIS Projects with OGC GeoPackage

Thanks to the LOC for organizing another great FOSS4G!


Categories: OSGeo Planet

Antonio Santiago: Using cluster module with HTTP servers

OSGeo Planet - Fri, 2017-08-18 19:18

The cluster module allow us improve performance of our application in multicore CPU systems. This is specially important no matter if working on an APIs or an, i.e. ExpressJS based, web servers, what we desire is to take advantage of all the CPUs on each machine our NodeJS application is running.

The cluster module allow us to load balance the incoming request among a set of worker processes and, because of this, improving the throughput of our application.

In the previous post Understanding the NodeJS cluster module I introduced the cluster module and show some basic usages of it to create worker processes and comunicate them with the master process. In this post we are going to see how to use the cluster module when creating HTTP servers, both using plain HTTP module and with ExpressJS.

Categories: OSGeo Planet

Cameron Shorter: Making GovHack (and Open Government) more impactful

OSGeo Planet - Fri, 2017-08-18 11:52
I've finally attended the GovHack weekend. As a dad, weekends used to be for taking kids to birthday parties and soccer games. But my boys have grown up, giving me the chance to see how GovHack compares to the Open Source communities I've been involved with for decades. I wanted to see what each can learn from the other and signed up as a coach.
GovHack is an annual event where volunteers band together for 48 hours to write applications with Open Government data. Participants compete for prizes for the most innovative and useful applications. It has grown every year since it started in 2009, attracting thousands of volunteers, running in 36 locations across Australia and New Zealand, and attracted numerous sponsors and an excessive list of open government datasets. Credit must go to the organisers for creating such a sustainable winning formula. But lets ask some tough questions and hopefully help GovHack become more impactful in future?
What is the point of GovHack?What is the point of GovHack? It wasn't obvious from looking at the main website, but I found an answer buried in the GovHack 2016 Year in Review:
In his opening address, Craig Laundy, the Assistant Minister for Industry, Innovation and Science highlighted that open data was one of the keys to the Australian Government’s National Innovation and Science Agenda. He read a letter from Prime Minister Malcolm Turnbull which paid the following tribute to Govhack:
“Data without ingenuity is like a lamp without power – only when the two are connected do opportunities to innovate become clear. This is why GovHack is so important.”Recommendation 1: We should be clear about the purpose and value of GovHack. We should prominently promote messages like "GovHack aims to contribute to the government's Innovation Agenda by encouraging and facilitating ingenuity with government's open data."
Is GovHack enabling Innovation?So how successful has GovHack been at enabling innovation? It's hard to say really. The 2016 Year in Review provides plenty of details about numbers of participants, datasets used, awards, VIP presenters, red carpet events, but there is barely a mention of how successful GovHack has been at enabling innovation. The best I could find was a passing mention of an "IP Nova App" which started in GovHack 2015. I’ve since been told about a couple of others. But the point is that we are measuring how busy everyone is, and how much buzz is being created, but completely failing to report the impact on innovation.

Recommendation 2: Let's measure and report on the realised innovation resulting from GovHack. Let's then assess results and work out ways to improve GovHack's impact on innovation.
Maturing ideas is hard workWhy is it hard to find reports of GovHack ideas progressing into sustained initiatives? I can't say for sure, but suspect very few GovHack ideas actually grow into something. The simple truth is that good software takes substantial effort to design, write, test, deploy and maintain. While a 48 hour GovHack is useful for brainstorming ideas, it stills requires significant follow up if it is to mature into something useful. And here we notice the difference between Open Source Code Sprints and GovHack. On completion of Code Sprints, there are established and experienced communities committed to adopting and advancing worthy ideas. Who in the GovHack community is offering to help take good ideas through to maturity? I don't see such support mentioned in GovHack web pages.

Recommendation 3: GovHack sponsors' should aim to realise true value by helping to mature innovative ideas into reality. 

The majority of people I saw in the Sydney GovHack appeared to be University students or recent graduates. For these young people, GovHack provides a great practical learning experience, some mentoring, and an opportunity to network. However I couldn't help feeling there was an level of exploitation of these young volunteers. Government agencies are gaining significant value from volunteers testing their datasets, something that would cost orders of magnitude more if implemented internally. Morally, I feel these agencies should give more than a free meal and a chance to share in a prize. A good symbiotic relationship would hopefully consider providing more value for our young community.

Recommendation 4: Sponsors should consider formally setting up cadetships or project development opportunities as awards.
How good is the data?Integrating data into innovative web or mobile applications typically should follow standard design patterns, with data published through a web service, then processed, integrated, and presented in innovative ways. Ideally government agencies should make data really easy to use, setting up data web services and providing clear documentation and examples. Instead teams were spending much of their GovHack time setting up the infrastructure to publish this data rather than spending their time being innovative.
It is worth being reminded of one of The Australian Digital Transformation Agency Design Principles:
Principle 4. Do the hard work to make it simple.
Making something look simple is easy. Making something simple to use is much harder - especially when the underlying systems are complex - but that’s what we should be doing. Don’t take “It’s always been that way” for an answer. It’s usually more and harder work to make things simple, but it’s the right thing to do.
Recommendation 5: Government should define a best practices guide for publishing data services, and then follow this guide.

How does government know if they are doing a good job? Ruthless survival of the fittest principles apply to Open Source and market economies. People don't buy substandard products. Only the best Open Source projects attract communities. Again, refer to the DTA design principles:

Principle 5. Iterate. Then iterate again.The best way to build good services is to start small and iterate wildly. Release minimum viable products early and test them with actual users; move from Alpha to Beta to Live adding features, deleting things that don’t work and making refinements based on feedback. Iteration reduces risk: it makes big failures unlikely and turns small failures into lessons. If a prototype isn’t working, don’t be afraid to scrap it and start again.
Recommendation 6: Agencies should measure the usability and usefulness of their datasets, assess and adjust accordingly. GovHack provides an opportunity to measure these metrics.
How good are we are implementing Open Government?And so I come to my most pointed point, which was recorded as a video for my GovHack contribution:

Australia has embraced great policies around Open Government. These describe how openness and collaboration enable innovation. However, the practical implementation of these open principles have proven elusively difficult, with reported success stories coming from a few charismatic champions rather than being systemic across all government.
Why is that? Well, it’s complicated. There is a wealth of established wisdom, spread across the domains of Open Source Software, Open Standards, Open Data, Open Government, and more. However, we still lack clear and definitive guides which draws all this wisdom together into practical playbooks which can be easily applied by government agencies. Instead, current government practices and guidelines regularly hinder collaboration. Let’s fix that.
Recommendation 7: Let’s build an Open Government Playbook.
Let’s document the subtle magic which makes open and collaborative communities work. This Playbook should cover technology, processes, governance, leadership, business paradigms, and ethics. It should be written in simple language, designed to support decision makers, architects, implementers and citizens to understand open principles.
Could GovHack be more impactful?Acknowledging that GovHack runs impressively efficiently and has attracted a huge ground swell of interest and momentum, could we make it more impactful? I think we can. We should remind ourselves of the Open Government and GovHack goal of promoting innovation. We should measure innovation enabled and adjust accordingly. Adjustments will likely include aligning more closely with Open Source development practices.
Categories: OSGeo Planet

GIScussions: #FOSS4G give to the 2018 Travel Grant Programme NOW

OSGeo Planet - Wed, 2017-08-16 20:04

Give Now

I am sitting at FOSS4G with a little smile on my face. We have just handed out the last of ten travel grants to people who would not have been able to have make the trip to Boston without our support. When you meet these people and hear a little more of their stories you know how important it is that we enable more people to experience FOSS4G.

This year we crowdfunded over $1,500 to enable us to get the 10th person on our list to Boston. Next year FOSS4G will be in Dar es Salaam, we want to enable 30, 50 or even more people to join the FOSS4G community. Let’s start raising that funding early

  • If everyone at FOSS4G today gave $10 it would double our TGP funds for 2018 and if you gave a bit more …
  • If all of the CEOs of our generous sponsors gave an additional 10% on top of what they have already contributed to this year’s FOSS4G the would double the funds available.

We can do this. You can make a donation right NOW, don’t say “I’ll do it when I get home”


So DONATE NOW (the money will go to The FOSS4G Travel Grant Programme and PayPal waive credit card charges as they are a NFP)

May the FOSS be with you

Categories: OSGeo Planet

Paul Ramsey: FOSS4G 2017 Keynote

OSGeo Planet - Wed, 2017-08-16 16:00

FOSS4G 2017 Keynote

I did my keynote presentation at FOSS4G 2017 today. Here’s the PDF version of the slide deck and notes.

Why we code from FOSS4G Boston 2017 on Vimeo.

And there’s the video!

Categories: OSGeo Planet

QGIS Blog: Report back on the 3rd QGIS Conference in Nødebo, Denmark

OSGeo Planet - Tue, 2017-08-15 23:38

We just wrapped up the 3rd QGIS User Conference at the University of Copenhagen’s “Skovskolen” Forestry and Landscape College, just outside of Copenhagen. The conference programme was split into three parts:

  1. A general user conference of three days
  2. The a QGIS hackfest – where many developers brought their families along
  3. A week of workshops where attendees can learn in-depth topics such as expressions or the new QGIS Web Client version 2

We are extremely grateful to the event sponsors (you can find links to our sponsors at the bottom of this page):

Click to view slideshow.


Here are some of the highlights from the conference presentations:

Search – a cool unifiedsearch tool for QGIS

Klavs Pihlkjaer (from Septima) showed off the QGIS (version 2) search plugin. The plugin provides a unified search interface for datasets loaded in QGIS. You can also search external OGC services. If you are still using QGIS 2.x releases, run, don’t walk to try the search plugin. The Search Plugin also allows you to create third party plugins (via a simple python API) that integrate with it by adding new search sources to the list. If you are using QGIS 3, check out the ability to write plugins for the new locator bar! Klavs is still looking at porting his work over to work with the upcoming QGIS 3 release.

Impact Analysis plugin

Bo Victor Thomsen showed off the plugin he has built to support searching through many layers in multiple databases and database tables in a fast an efficient way. The layers do not need to be loaded in QGIS and the system uses a centralized configuration management approach so that adding new searchable sources is done once and is then immediately available for all users (e.g. in an enterprise environment) of the plugin. The plugin is currently used when searching municipal databases to see if there is any impact assessment needed or inspection needed in a given place.

Danish National Data Search

Mie Winstrup and Tom Weber showed off the national data search plugins they have developed for Denmark that allow you to easily search for local and national data. They want to be an example for other countries to show how easy it is to make national data searchable and available.

Casper Bertelsen on registering urban green areas

Casper showed the system he has developed for managing a cadaster of green spaces. The system includes versioning so that you can see changes over time. It also implements topology rules to ensure that areas do not overlap. He also provides tools for administrations to e.g. see what the maintenance cost for a given area will be.

QGIS as a digitizing platfom

Saber Razmjooei from Lutra Consulting showed off QGIS as a digitizing platform. He also showed us new digitizing coming in QGIS 3. He showed off some of the great tools coming in QGIS 3 for node editing.

QGIS Web Client – Version 2

Andreas Neumann showed of the new generation of QGIS Web Client (QWC2). The new web client is really nice – responsive design and takes advantage of open layers 3 including rotating maps, permalink for any map view / set of layers, map tools for measure, draw, export etc.

Future plans include improved redlining tools including text, polygons, user authentication via LDAP or oauth, support QGIS ‘drag and drop’ forms, clip and ship and a QGIS plugin for the configuration so you do not need to edit JSON files. Also thinking about supporting vector tiles for the base maps.

I bet you didn’t know you could do this with QGIS

Nyall Dawson gave an awesome demo of the power and capabilities of QGIS’ labelling, symbology and expression features. His demo took us through an adventure story where each scene in the story was rendered using QGIS (based on the upcoming version 3 release). This included animated clouds floating by, lightning effects, electrical effects, smoke effects and many more cool and interesting ideas that really showed off the power and versatility of QGIS.

Screen Shot 2017-08-09 at 10.42.51 AM


Martin Dobias (Lutra Consulting) gave a presentation on the QGIS grant proposal  work he has been doing to support 3D visualizations natively in QGIS 3.  His work leverages the new Qt 3D framework provided in Qt5 (the toolkit used to develop QGIS) and allows you to use an elevation model to model a 3D terrain and use a new tab in the vector style properties dock to extrude features out from the landscape. We have had a number of 3D  tools in QGIS in the paste but none has ever been a mainstream component of QGIS, enabled and ready to use ‘out of the box’. Expect Martin’s work to change that. There were many ideas passed around about how the 3D support in QGIS could be extended but the grant proposal only supports the first-pass implementation, so please do fund Martin’s work if you would like to see him add specific features in the future.


QIGS as a cadastral management platform

Prof. Erik Stubkjaer gave two presentations – one as a call for interest in those interested in building land parcel / cadastral management tools. He also gave an overview of the state of domain models for managing and recording property rights, including LADM (Land Administration Domain Model) and STDM (Standard Tenure Domain Model). He outlined that world aid organizations are increasingly putting an emphasis on enabling better tax revenue as a path to economic and social stability, and having a cadaster is a key element to the enablement. There are already a number of cadastral management tools out there for QGIS – it would be great to heed Prof. Stubkjaer’s clarion call and build a generic toolset for cadastral management in QGIS.

The future of coordinate reference system support in QGIS

Kristian Evers from the Danish Agency for Data Supply and Efficiency spoke about the use of Coordinate Reference Systems in QGIS and the use of WGS84. He pointed out the fact that there are 6 different versions of WGS84 and they vary by up to a meter. He also highlighted the issue that e.g. ETRS89 drifts more out of sync each year. In addition the earth is dynamic with plates shifting and different regions moving with different velocities. He showed a really nice video made in Australia highlighting the issue (see here: http://www.icsm.gov.au/gda2020/ for details and the video). They use a plate fixed datum (which moves with the plates) together with a global datum (fixed to the center of the earth). This new approach is being planned / used in other places too (e.g. Iceland) and are called “dynamic datums”.  The dynamic datums will rely on a time stamp too as well as coordinates.

To address this they are introducing the concept of transformation pipelines in Proj.4 (the library used by QGIS to support projection) – there will be a new release of Project.4 which includes support for this.


Tim Sutton (your humble blog post author) gave a presentation about InaSAFE – a plugin for QGIS that helps communities prepare for disasters.

Jonas van Schrojenstein Lantern (from Nelen & Schuurmans)

Jonas’ company built really fast and efficient models for flood models including 3D visualization. They have a really nice plugin for QGIS that lets you view a pipe model and different behaviors based on changed water levels. It requires a specific data model (d3i) in the Postgres backend and then you can visualize water levels in any pipe section. The plugin also lets you do the digitizing of the pipe network etc. The software also requires the use of som 3di services that Jonas will clarify how the licensing etc. should work.

Mie Winstrup – Septima – sometimes Open Source is just plain better

Mie shared a case study about how they used Open Source to replace a tool built with ArcMap + Model Builder for flood modeling. They used malstroem  – a python command line module and also integrated with QGIS. It assumes the terrain is an impermeable surface and that water flows from one cell to another. The tool models where water will accumulate in the landscape and what the depths are at each ‘blue spot’. It also models how much water will flow from the blue spots (based on modeled precipitation amount e.g. 100mm rain). It generates an event layer which shows how many cubic meters of water will spill over to the neighboring watershed.


Saber Razmjooei – Lutra consulting – Crayfish plugin

Crayfish C++ plugin for QGIS adds a new renderer for gridded data. Works with HDF, NetCDF and GRIB.

What to watch out for in QGIS 3.

Nyall Dawson (core QGIS developer) gave a talk on what to expect in QGIS 3. The talk was not a feature round up but rather aimed at those concerned about the potential gotchas they will have to take care of when they migrate from QGIS 2 to QGIS 3 in their production environments. I record


Monica Balestrin Nunes & Ana Paula Maciel (National Secretariat for Housing in the Ministry of Cities, Brazil)

Monica and Ann Paula presented a talk on how the Ministry of Cities in Brazil are using QGIS and mapping to manage the roll out of housing projects to support  provision of housing for the poor “My House, My Life”. The project aims to help 4.5 million people get into housing.  They used QGIS to develop a site selection process too. They used a simple process to map urban areas, developed versus undeveloped urban areas, schools. They also used public transport as a parameters to further constrain the available areas. These data were used to produce a synthesis map which shows high, medium and low suitability of areas for housing development. They used a digital coding system to classify each area (which can be mapped back to the high, medium and low assessment ratings). They also used GeoServer, GeoKettle, PostgreSQL/PostGIS.

Sophie Commelinck – University of Twente

Automated cadastral mapping using UAVs. Sophie showed workflows she is building for automatic extraction of parcel boundaries from UAV imagery. She showed some interesting work in doing boundary line detection using the SLIC algorithm which creates smoothed lines along boundaries. See http://github.com/scrommelinck/boundarylinedelineation for more details.


Kimberley Briscoe, Abingdon School, UK

Kimberley has been doing interesting things with high school kids learning GIS via QGIS. This work included using the time manager plugin to visualize global earthquakes and using r.lake.coordinates to do flood modeling. They also use ‘field trip gb’ mobile app to do field data collection. Many other plugins were used like EVIS, QGIS2Threejs. They also use interesting national datasets like crime etc. and data from http://data.gov.uk for their classroom work.


Badri Basnet – The University of Southern Queensland

Badri is a lecturer and has 90% online students in many different locations worldwide and with varying levels of internet access.  Badri has made many open content QGIS training videos and worksheets that he uses for his courses (which are based on QGIS). His videos are all on YouTube.


QField – Matthias Kuhn and Marco Bernasocchi (opengis.ch)

Matthias and Marco gave presentations on QField – an Android field data collection app based on QGIS (but with a mobile centric user interface). Matthias showed us many of the cool features QField has, whilst Marco outlined strategies for integrating field work, web publishing and desktop GIS work in a seamless workflow. I made some videos with my phone – audio and video quality is not brilliant but should be enough to follow along for those interested:

Lene Fischer (Skovskolen)

Lene (who also happens to be the event organizer – hurrah for the great job she did along with her team of volunteers!) showed how they approach teaching GIS and QGIS using ‘flipped learning’ where users first need to self study content on their own, and then use the lecturer as a consultant.


Tim Sutton – Cadasta

Your trusty author again – I presented work we have been doing to support mapping land rights of people in developing nations using the Standard Tenure Domain Model style approach where tenure is treated as a continuum rather than an absolute. You can find out more about this project at Cadasta.org

tim-cadasta Workshops

The event was also filled with great workshops – two during the main conference, and then a week of post conference workshops. Most of the workshops were presented by developers or QGIS project members and represented a fantastic opportunity for attendees to learn straight from the experts!

Town hall meeting

At the end of the user conference, we held a town hall meeting where developers and active QGIS community members fielded a range of questions from the audience. It is always a please to hold these sessions – we get a direct channel of communication with our users and they get to speak directly to the people making the software they use and find out why we make the choices we make!



The “hackfest” (developer meeting – we use ‘hack’ in the positive sense of the word) was a chance for the QGIS community members to roll up their sleeves and work on new features, bug fixes, documentation and general polish of QGIS and related resources. It is always great to be able to work side by side for a few days – compared to our very geographically dispersed nature over the rest of the year. It was especially nice this event that many developers brought their families along to enjoy the beautiful scenery and great facilities at the Skovskolen. Here is a group photo taken by Mary Anne Lister:



On behalf of the whole QGIS community, I would like to extend our heartfelt thanks to Lene Fischer (event organizer), her team of volunteers, all the attendees who took the time to attend the conference – and of course all the developers and QGIS Community Members who attended and made it such a great event!


Event sponsor links:



Categories: OSGeo Planet

Free and Open Source GIS Ramblings: Movement data in GIS #7: animated trajectories with TimeManager

OSGeo Planet - Mon, 2017-08-14 10:59

In this post, we use TimeManager to visualize the position of a moving object over time along a trajectory. This is another example of what is possible thanks to QGIS’ geometry generator feature. The result can look like this:

What makes this approach interesting is that the trajectory is stored in PostGIS as a LinestringM instead of storing individual trajectory points. So there is only one line feature loaded in QGIS:

(In part 2 of this series, we already saw how a geometry generator can be used to visualize speed along a trajectory.)

The layer is added to TimeManager using t_start and t_end attributes to define the trajectory’s temporal extent.

TimeManager exposes an animation_datetime() function which returns the current animation timestamp, that is, the timestamp that is also displayed in the TimeManager dock, as well as on the map (if we don’t explicitly disable this option).

Once TimeManager is set up, we can edit the line style to add a point marker to visualize the position of the moving object at the current animation timestamp. To do that, we interpolate the position along the trajectory segments. The first geometry generator expression splits the trajectory in its segments:

The second geometry generator expression interpolates the position on the segment that contains the current TimeManager animation time:

The WHEN statement compares the trajectory segment’s start and end times to the current TimeManager animation time. Afterwards, the line_interpolate_point function is used to draw the point marker at the correct position along the segment:

CASE WHEN ( m(end_point(geometry_n($geometry,@geometry_part_num))) > second(age(animation_datetime(),to_datetime('1970-01-01 00:00'))) AND m(start_point(geometry_n($geometry,@geometry_part_num))) <= second(age(animation_datetime(),to_datetime('1970-01-01 00:00'))) ) THEN line_interpolate_point( geometry_n($geometry,@geometry_part_num), 1.0 * ( second(age(animation_datetime(),to_datetime('1970-01-01 00:00'))) - m(start_point(geometry_n($geometry,@geometry_part_num))) ) / ( m(end_point(geometry_n($geometry,@geometry_part_num))) - m(start_point(geometry_n($geometry,@geometry_part_num))) ) * length(geometry_n($geometry,@geometry_part_num)) ) END

Here is the animation result for a part of the trajectory between 08:00 and 09:00:

Categories: OSGeo Planet

Antonio Santiago: Understanding the NodeJS cluster module

OSGeo Planet - Sun, 2017-08-13 12:34

TL;DR NodeJS processes runs on a single process, which means it does not take adavantage from multi-core systems by default. If you have an 8 core CPU and run a NodeJS program via $ node app.js it will run in a single process, wasting the rest of CPUs.

Hopefully for us NodeJS offers the cluster module that contains a set of functions and properties that help us to create programs that uses all the CPUs. Not a surprise the mechanism the cluster module uses to maximize the CPU usage was via forking processes, similar to the old fork() system call Unix systems.

Categories: OSGeo Planet

Antonio Santiago: Understanding the NodeJS cluster module

OSGeo Planet - Sat, 2017-08-12 12:34

NodeJS processes runs on a single process, which means it does not take advantage from multi-core systems by default. If you have an 8 core CPU and run a NodeJS program via $ node app.js it will run in a single process, wasting the rest of CPUs.

Hopefully for us NodeJS offers the cluster module that contains a set of functions and properties that help us to create programs that uses all the CPUs. Not a surprise the mechanism the cluster module uses to maximize the CPU usage was via forking processes, similar to the old fork() system call Unix systems.

Categories: OSGeo Planet

gvSIG Team: Towards gvSIG 2.4: OpenStreetMap data direct download

OSGeo Planet - Fri, 2017-08-11 11:19

Would you like to download OpenStreetMap data directly from gvSIG Desktop? This post is interesting for you…

As we told you, the H2GIS new support will allow to increase the gvSIG Desktop potential more. Today we show you a clear example of it. One of the H2GIS functions allows to download OpenStreetMap data directly. That sentence would be able to be run from the H2GIS console, but because of its utility (and to make it easier for users) we have opted to add it as a tool.

What does it do? Something as easy (and useful!!) as download OSM cartography of the frame that we have in that moment at the View. We will able to load these data as a layer in our gvSIG Desktop later.

We also will be able to import them directly to our H2 database, but we will tell you about it in a next post.

Here you have a video about how this download tool works:

Filed under: english, gvSIG Desktop, testing Tagged: gvSIG 2.4, H2, OpenStreetMap, OSM
Categories: OSGeo Planet
Syndicate content