OSGeo Planet

Fernando Quadro: Acessando o pycsw com o QGIS

OSGeo Planet - Tue, 2018-11-20 10:30

Hoje vamos acessar e consultar o catálogo pycsw do GeoNode a partir de um cliente desktop, neste caso será o QGIS. Os printscreens foram gerados usando o QGIS 2.14 LTR, mas as versões seguintes devem ser semelhantes.

Em primeiro lugar, clique no menu Web e, em seguida, em MetaSearch > MetaSearch

Agora clique no botão Novo e preencha o formulário da seguinte forma:

Nome: GeoNode CSW
URL: http://localhost:8000/catalog/csw?

Clique no botão Informações do serviço e a identificação do serviço CSW deve aparecer na janela principal do MetaSearch:

Agora, clique na guia Pesquisar e tente uma pesquisa básica clicando no botão Pesquisar. Todos os registros são apresentados:

Se você clicar duas vezes em uma das camadas, verá ver as informações do registro:

Você também pode ver o pedido GetRecords realizado pelo pycsw clicando no botão “Ver pesquisa como XML”

Experimente refazer inserindo parâmetros diferentes para realizar consultas mais avançadas:

Hoje ficamos por aqui! Bons estudos!

Fonte: Paolo Corti

Categories: OSGeo Planet

Blog 2 Engenheiros: Como selecionar e exportar Polígonos Sobrepostos no ArcGIS e QGIS (com e sem Python)?

OSGeo Planet - Tue, 2018-11-20 06:07

Quando temos nossa área de estudo, muitas vezes realizamos procedimentos de recorte para que todos elementos fiquem dentro desse limite.

Entretanto, em alguns momentos, é interessante que esse recorte não seja realizado exatamente nos limites da área de estudo. Queremos manter a forma do polígono ou linha que cruza nossa área de estudo.

Como podemos realizar essa cruzamento entre polígonos ou linhas com a nossa área de estudo?

Neste tutorial, iremos utilizar os shapefiles dos títulos minerários do estado de Santa Catarina (disponível no site da Agência Nacional de Mineração) e o shapefile das rodovias federais (disponível no site do Departamento Nacional de Infraestrutura e Transporte) para realizar esse procedimento.

Ambos podem ser baixados nos links abaixo:

  • Títulos Minerais: Para baixar, vá no mapa no fim da página e selecione Santa Catarina, em seguida, clique em SHP;
  • Rodovias Estaduais: Procure pelo shapefile do mapa rodiviário.

As rodovias federais podem ser baixadas no site do DNIT.

E vamos verificar quais títulos e rodovias cruzam a nossa área de estudo fictícia: Uma área circular com ponto central nas coordenadas SIRGAS UTM  700.731 / 7.058.005 e raio de 500 metros.

Leia também: Como gerar buffers no ArcGIS.

Lembre-se que para gerar buffers no QGIS, vá em Vetor (Vector) > Ferramentas de Geoprocessamento (Geoprocessing Tools) > Buffer.

Extraindo Shapefiles Sobrepostos no QGIS

Após baixar os shapefiles e criar a área de estudo fictícia no QGIS 3.2, iremos utilizar a ferramenta Seleção por Localização (Select by Location), a qual esta disponível em Vetor (Vector) > Ferramentas de Pesquisa (Research Tools).

Ao clicar nela, a janela abaixo será aberta.

Janela da Ferramenta Select by Location e Área de Estudo ao Lado.Janela da Ferramenta Select by Location e Área de Estudo ao Lado.

Note que a nossa área de estudo (preenchida em vermelho) cruza com vários polígonos dos títulos minerários (linhas em preto) e com essa ferramenta, iremos separar esses polígonos (sem cortá-los, deixando-os inteiros).

Na ferramenta Select by Location, o primeiro item a ser inserido é o shapefile contendo os polígonos a serem selecionados (neste caso, os títulos minerários), em seguida, selecionamos qual tipo de operação (interseção) e baseada em quem essa operação irá ocorrer (área de estudo).

O ultimo item indica que o resultado deverá ser uma nova seleção. Veja que o resultado, apresentado abaixo, são todos os polígonos que “tocam” nossa área de estudo.

Polígonos selecionados encontram-se em amarelo.Polígonos selecionados encontram-se em amarelo.

Cabe lembrar que o processo não termina aqui. Agora precisamos salvar o resultado como shapefile, pois o que temos é apenas uma seleção.

Para salvar a seleção, clique sobre o shapefile com os itens selecionados (i.e. títulos minerários), vá em exportar (export), e clique em salvar feição como (save feature as).

Na nova janela, preencha os dados relacionados à localização do arquivo final, sistema de coordenadas e não se esqueça de marcar o item Salvar Apenas as Feições Selecionadas (Save only selected features), conforme figura abaixo.

Exportando polígonos selecionados como shapefile no QGIS.Exportando polígonos selecionados como shapefile no QGIS.

Pronto! Você agora tem um novo shapefile com todos os títulos minerários “completos” que cruzam com a nossa área de estudo.

Extraindo Shapefiles Sobrepostos no ArcGIS

Após baixar e abrir os arquivos dos títulos minerários e da área de estudo, no ArcToolbox, vá em Data Management Tools > Layers and Table Views e dê dois cliques em Select Layer by Location.

Na janela que abrir, no campo “Input Feature Layer”, selecione o item que terá os polígonos extraídos (neste caso, os títulos minerários), em “Relationship (optional)”, você escolherá qual o processo a ser adotado (aqui, usaremos a interseção), “Selecting Features (optional)” será nossa área de estudo e por fim, em “Selection type (optional)” indica qual é o tipo de seleção que irá ocorrer (manteremos como nova seleção – New_Selection).

Ferramenta para Selecionar Feições pela localização no ArcGIS.Ferramenta para Selecionar Feições pela localização no ArcGIS (e polígonos utilizados).

O resultado desta operação será a seleção dos títulos minerários que cruzam com a nossa área de estudo. A figura abaixo mostra os polígonos selecionados.

Polígonos que tocam nossa área de estudo foram selecionados (em azul claro).Polígonos que tocam nossa área de estudo foram selecionados (em azul claro).

Lembre-se que isto é apenas uma seleção. Precisamos agora exportar o resultado para termos um shapefile novo.

Para realizar esse processo, clique sobre o shapefile com os polígonos selecionados (i.e. Títulos Minerários) e vá em Data > Export Data. Na nova janela, você manterá o primeiro item (“Export:”) como “Selected features” e irá definir o local onde o novo shapefile será salvo.

O menu “Export:” define quem irá ser salvo, neste caso, ao marcar “Selected Features”, iremos exportar somente os arquivos selecionados.

Janela onde marcamos quais itens exportar e onde o shapefile será salvo.Janela onde marcamos quais itens exportar e onde o shapefile será salvo.

E dessa forma, você terá os títulos minerários que cruzam a sua área de estudo.

Usando PyQGIS para Selecionar e Exportar Shapefiles

Antes de começar a escrever, abra o console Python no QGIS 3.x clicando em Plugins > Python Console. Após abrir o console, clique em “Show Editor” para abrir o editor.

Neste exemplo, vamos  utilizar um shapefile diferente, utilizaremos as rodovias estaduais ao invés dos títulos minerários.

O código abaixo representa todo o procedimento que fizemos antes manualmente e após o código, explicamos os comandos utilizados.

# -*- coding: utf-8 -*- # Carregando pacotes no Python import processing import sys import osgeo.ogr as ogr import osgeo.osr as osr # Carregando nossos arquivos shapefile e criando saída rod_est = "C:/Users/ferna/Desktop/B2E/Rodovias_SC.shp" area_estudo = "C:/Users/ferna/Desktop/B2E/area_estudo.shp" saida = "C:/Users/ferna/Desktop/B2E/rod_areaEst.shp" # Abringo arquivos no QGIS iface.addVectorLayer(rod_est, "Rodovia Estadual", "ogr") iface.addVectorLayer(area_estudo, "Area de Estudo", "ogr") # Selecionando rodovias que cruzam a área de estudo # Documentação: processing.algorithmHelp('qgis:selectbylocation') param_Sel = {'INPUT': rod_est, 'PREDICATE': 0,'INTERSECT': area_estudo, 'METHOD': 0} processing.run('qgis:selectbylocation', param_Sel) param_Save = {'INPUT': rod_est, 'OUTPUT': saida} processing.run('qgis:saveselectedfeatures', param_Save) # Carregando resultado no QGIS iface.addVectorLayer(saida, "Rodovia", "ogr")

Na lista abaixo, explicamos as principais funções que utilizamos, de modo que você possa aplicar o código aos seus arquivos.

  • iface.addVectorLayer( [Local do Shapefile] , [Nome] , “ogr”): Adiciona e abre o shapefile ao QGIS;
  • processing.run( [Algoritmo para ser Rodado] , [Dicionário com os Parâmetros]).

Cabe lembrar que o comando processing.run() é diferente no QGIS 2.18, sendo definido como processing.runalg() e recebe argumentos diferentes.

Após rodar o nosso código, você obterá quais rodovias estaduais cruzam a nossa área de estudo.

Usando ArcPy para Selecionar e Exportar Shapefiles

No ArcGIS 10.x, clique em “Geoprocessing” > “Python”, isso irá abrir o terminal Python do ArcGIS.

O ArcGIS tem pequeno editor de python integrado ao software, nossa sugestão é que você trabalhe inicialmente em um editor de texto externo (e.g. NotePad++) e depois cole o código no terminal.

Nesta parte, iremos utilizar as rodovias estaduais que mostramos lá no começo, ao invés dos títulos minerários.

O código para executar a extração das rodovias que cruzam nossa área de estudo é apresentado abaixo.

# -*- coding: utf-8 -*- # Carregando pacotes no Python import arcpy # Nossas variáveis rod_est = "C:\\Users\\ferna\\Desktop\\B2E\\Rodovias_SC.shp" area_estudo = "C:\\Users\\ferna\\Desktop\\B2E\\area_estudo.shp" saida = "C:\\Users\\ferna\\Desktop\\B2E\\rod_areaEstArc.shp" # Abringo arquivos no QGIS mxd = arcpy.mapping.MapDocument("CURRENT") # Define qual projeto estamos trabalhando dataFrame = mxd.activeDataFrame # Define o dataframe que estamos trabalhando camada_ae = arcpy.mapping.Layer(area_estudo) arcpy.mapping.AddLayer(dataFrame, camada_ae, "AUTO_ARRANGE") # Adiciona Camada # Selecionando rodovias que cruzam a área de estudo arcpy.MakeFeatureLayer_management(rod_est, "Rodovias1") arcpy.SelectLayerByLocation_management("Rodovias1", "intersect", area_estudo) arcpy.CopyFeatures_management("Rodovias1", saida)

As funções que utilizamos são explicados na lista abaixo:

  • arcpy.mapping.MapDocument(“CURRENT”): Define como projeto padrão o projeto aberto;
  • mxd.activeDataFrame: Define como data frame a ser utilizado o data frame aberto;
  • arcpy.mapping.Layer(): Transforma o caminho com o shapefile em uma camada;
  • arcpy.mapping.AddLayer( [Data Frame] , [Camada] , “AUTO_ARRANGE”): Adiciona camada à tabela de conteúdo (abre o arquivo);
  • arcpy.MakeFeatureLayer_management( [Shapefile], [Arquivo Temporário]): Torna a camada selecionada como principal;
  • arcpy.SelectLayerByLocation_management( [Arquivo Temporário], [Método], [Shapefile para Cruzamento]): Realiza procedimento para selecionar arquivos que se cruzam;
  • arcpy.CopyFeatures_management([Arquivo Temporário], [Saída]): Salva os itens selecionados no caminho especificado.

E com isso, você terá as rodovias que cruzam nossa área de estudo.

Ficou com alguma dúvida? Utilize a seção de comentários e caso esse tutorial tenha te ajudado, compartilhe ele na sua rede social.

Categories: OSGeo Planet

QGIS Blog: Results of the MacOS bug fixing initiative

OSGeo Planet - Mon, 2018-11-19 20:24

Thanks to your donations, we were able to hire core developers to focus on solving Mac OS specific issues for QGIS. More than 30 MacOS QGIS users donated a little more than 3000 € for this bug fixing round.

After an effort of triage and testing, here is what has been achieved:

Unfortunately, some issues remain. Mainly, the text being rendered as outlines in PDF export (https://issues.qgis.org/issues/3975) remains for now. It might be fixed in a following effort.

Thanks to all donors who helped in this effort and to Denis Rouzaud as a core developer who spent a lot of time investigating and fixing these issues!

Categories: OSGeo Planet

gvSIG Team: La Suite gvSIG en Gestión Municipal: grabaciones de las ponencias de las Jornadas gvSIG disponibles

OSGeo Planet - Mon, 2018-11-19 11:10

En los últimos años la integración de las tecnologías de la información y la comunicación (TIC) en la gestión urbana han llevado a popularizar términos como el de ‘Smart City’ o ‘Ciudad Inteligente’. Un término en muchas ocasiones utilizado meramente como marketing y vacío de contenido. Desde la Asociación gvSIG siempre hemos defendido e impulsado la idea de que las ciudades sólo puede ser ‘inteligentes’ si se tienen políticas definidas en relación a la soberanía tecnológica y la sostenibilidad, sólo alcanzables con la adopción de tecnologías libres.

Hoy os traemos unos ejemplos de cómo las soluciones en software libre de la Asociación gvSIG mejoran la gestión municipal y pueden llegar a convertirse en herramientas imprescindibles en el día a día de un Ayuntamiento, independientemente de su tamaño.

En primer lugar el arquitecto Nacho Muñoz-Motilla nos cuenta la experiencia del Ayuntamiento de La Pobla de Vallbona, en ‘Creación de una IDE de gestión municipal con gvSIG Online en tiempo récord

¿Pueden los pequeños ayuntamiento sumarse a la modernización que proponen las Smart Cities o han de quedar fuera? Pepe casado nos habla de la experiencia del Ayuntamiento de Villarcayo de Merindad de Castilla la Vieja en ‘gvSIG Online, como crear una IDE en un pequeño ayuntamiento

Por último Antonio García Benlloch nos cuenta como el Ayuntamiento de Bétera está combinando el uso de distintos productos de la Suite gvSIG en ‘Captura de datos de campo con gvSIG Mobile, edición con gvSIG Desktop y publicación web en el Geoportal del Ayuntamiento de Bétera

Categories: OSGeo Planet

Fernando Quadro: A sua cidade é uma Smart City?

OSGeo Planet - Mon, 2018-11-19 10:30

Não há como negar que cidades inteligentes (Smart Cities) é um assunto da moda, e que muito tem se falado nisso no Brasil! Mas a pergunta que eu gostaria de lhe fazer é: Sua cidade pode ser considerada uma Smart City?

Segundo uma publicação da Juniper Research em 2017 “Uma cidade inteligente é caracterizada pela integração da tecnologia em uma abordagem estratégica para a sustentabilidade, o bem-estar dos cidadãos e o desenvolvimento econômico.”

Neste post, explorarei preceitos e visões comuns sobre o que é uma cidade inteligente, e no decorrer do post, você terá condições de responder minha pergunta inicial.

Uma cidade muitas vezes ganha seu status de “inteligente” quando processos específicos, como gerenciamento de informações e comunicações, se interconectam e usam tecnologias avançadas, como IoT (Internet of Things: dispositivos físicos conectados uns com os outros e com a internet) para melhorar suas operações e serviços. Esses serviços geralmente são baseados em automação e tecnologias inteligentes para gerenciar serviços públicos, como energia, abastecimento de água e coleta de lixo.

1. Como medimos se uma cidade é inteligente?

O tópico de como identificar ou medir como uma cidade inteligente é amplamente debatido, com muitas organizações fornecendo uma lista definitiva de critérios ou métricas “inteligentes” para as cidades. Aqui estão alguns exemplos de CITYkeys, European Smart Cities e Lendlease.

Neste blog, usaremos os critérios de um paper publicado pela Juniper Research em 2017 para medir o quão inteligente é uma cidade. No paper, a Juniper Research estabeleceu um sistema único de pontuação para analisar e avaliar a “inteligência” das cidades. A equipe mede a atividade de cada cidade observando os seguintes pontos de dados:

  • Transportes: Quão conectados e eficientes são os serviços? A cidade coleta dados do monitoramento de tráfego em tempo real e usa esses dados para informar os ajustes de fluxo de tráfego e sinal, com base nos requisitos de resposta a emergências?
  • Saúde: Quão inovadora e impactante é a abordagem dos serviços? A cidade tem regulamentos de emissão de ar e soluções de transporte saudáveis?
  • Segurança pública: Como a tecnologia impacta a cidade para a segurança pública? A iluminação pública inteligente foi implantada? A análise inteligente de vigilância por vídeo ou software de crime preditivo e de risco de incêndio estão sendo usados?
  • Produtividade: Quão colaborativo e co-criativo é a estratégia inteligente da cidade? Eles estão organizando conferências e hackathons para reunir diferentes partes interessadas da cidade? A cidade incentiva talentos que contribuam para a economia?
  • Setores de energia: Quão avançado é o setor de serviços urbanos? A cidade está aplicando tecnologias, como sistemas de semáforo inteligente controlados por Inteligência Artificial (AI), soluções de armazenamento de energia em casa, painéis solares e infraestrutura para carregamento de EV?

A partir da avaliação acima, uma cidade é inteligente com base no fato de implementarem tecnologias avançadas para otimizar seus processos, custos e ofertas de serviços. Eu não preciso saber onde você mora aqui no Brasil, e nem ser vidente pra saber que sua cidade hoje (em 2018) provavelmente não é uma cidade inteligente.

2. Por que nossas cidades não são inteligentes?

Para responder essa pergunta, irei fazer algumas outras perguntas (e respostas) para você poder entender melhor os motivos.

a. A inovação é sempre visível?
A inovação pode assumir muitas formas diferentes. Muitas vezes ouvimos falar das tecnologias empolgantes e chamativas que estão em destaque nas manchetes do meios de comunicação, mas menos empolgantes, mas igualmente impactantes, são inovações como uma nova maneira de organizar uma equipe ou um novo sistema de gerenciamento.

b. As nossas expectativas sobre o que uma cidade inteligente é alta demais?
Todos os dias, ouvimos falar de uma nova tecnologia que melhorará drasticamente nossas vidas – da realidade virtual à tecnologia de reconhecimento facial e serviços robóticos. Essas tecnologias podem estar se tornando mais comuns no setor privado, mas temos expectativas reais de quão rapidamente essas tecnologias podem ser integradas em nossos serviços públicos e infraestrutura?

c. Temos observado alguma melhoria em nossos serviços de coleta de resíduos?
Por exemplo, canais de comunicação mais inovadores, como aplicativos e chatbots? Podemos considerar estes avanços em tecnologia no setor público, com a mesma velocidade com que novas tecnologias vem sendo aplicadas no setor privado?

d. As medições de uma cidade inteligente consideram a experiência do cidadão?
Os cidadãos têm diferentes prioridades para as autoridades municipais e a agenda da cidade inteligente – eles se preocupam em viver suas vidas – sobre suas famílias, suas carreiras e seu bem-estar. Talvez tudo o que eles esperam é que os serviços pelos quais pagam (através de impostos) atendam às suas necessidades e trabalhem perfeitamente ao lado de suas vidas ocupadas. Talvez esses serviços pudessem:

  • Incorporar a IA (Inteligencia Artificial) nos smartphones para fornecer orientação se eles se perderem ou sofrerem atrasos durante seus deslocamentos?
  • Usar VR (realidade virtual) para adicionar um valor experiencial ao sistema de transporte da cidade?
  • Identificar um médico adequado para fornecer uma consulta, sem longos períodos de espera ou vários encaminhamentos?
  • Serviços interconectados, para que eles não precisem fornecer repetidamente as mesmas informações em todos os lugares (ou seja, um sistema “único” em vez de um sistema desconectado)?
  • Fornecer interfaces e dispositivos digitais acessíveis e intuitivos para pessoas de todas as idades para gerenciar suas utilidades e obter insights sobre seu uso de energia?

3. Como as nossas cidades podem ser inteligentes para os cidadãos?

As cidades existem para atender às necessidades das pessoas – sejam elas de trabalho, educação, sistema de saúde ou cultura. As necessidades das pessoas devem estar no centro dos nossos serviços públicos e privados. Apesar de uma tendência crescente para o design centrado no usuário, as empresas ainda tendem a ditar a agenda da cidade. Como podemos reorientar sua abordagem para garantir que as necessidades dos cidadãos sustentem o design e a execução dos serviços da cidade?

E se as autoridades e empresas da cidade utilizassem uma abordagem de baixo para cima para a inovação – garantindo que as ideias, os processos e as tecnologias se baseassem na contribuição dos cidadãos? Isso pode não apenas resultar em serviços mais inteligentes, mas também produzir uma melhor experiência do usuário para os cidadãos, que se sentiriam mais capacitados em como as cidades são definidas – em vez dos grandes provedores de serviços que atualmente dominam o mercado. Um passo para isso é uma estratégia de implementação de longo prazo que instrui as pessoas que executam esses serviços e estão em contato direto com o usuário. Ao incorporar sua opinião e experiência, poderíamos oferecer uma abordagem mais focada no ser humano, refinada e fundamentada em pesquisa?

4. A solução pode ser encontrada no design de serviços?

O que as “cidades inteligentes” podem fazer para implementar e melhorar sua experiência de serviço? E se os seguintes princípios sustentassem nossas cidades?

  • Foco no Usuário: O cidadão deve estar no centro de todo serviço.
  • Co-Criatividade: Cidadãos, setores público e privado devem estar envolvidos no processo.
  • Sequenciamento: Os serviços devem ser visualizados por seqüências ou momentos-chave do cliente, é importante entender o que e quando as coisas acontecem. Antes, durante e depois do serviço.
  • Evidenciamento: Todos os envolvidos no fornecimento do serviço precisam estar cientes da experiência do serviço.
  • Holística: O design de um serviço deve levar em conta toda a experiência do serviço. O contexto é importante.

No Reino Unido, o Governo (Gov.uk) já implementou com sucesso uma estrutura de design de serviço, que segue uma abordagem de design focado no ser humano. Isso é demonstrado pelos Serviços Digitais do Governo (GDS) que estão liderando a transformação dos serviços do governo do Reino Unido de físicos para digitais. A GDS tem seu próprio conjunto de princípios de design, mas, em geral, sua estratégia de processo e serviço reflete os 5 princípios acima mencionados por Marc Stickdorn. É geralmente aceito na indústria do design que você deve “sempre começar com o usuário”.

Uma solução é que as cidades inteligentes aspirantes considerem seu próprio conjunto de princípios. Isso permitiria aos provedores de serviços do setor público introduzir uma abordagem focado no usuário, mas também ofereceria um conjunto de princípios a serem seguidos por empresas privadas. Uma questão a considerar é como poderíamos aplicar essa abordagem a todos os serviços da cidade?

Embora o governo seja um grande exemplo para o setor público e privado, a maioria dos serviços municipais não é apenas pública e, portanto, não há padrões para garantir a qualidade nos serviços urbanos. Isso parece especialmente importante para grandes cidades inteligentes como Londres ou Nova York, que lutam para competir com cidades inteligentes menores, como Copenhague ou Amsterdã, já que o tamanho populacional maior interfere nos serviços e nas experiências que uma cidade inteligente oferece.

Serviços como energia, educação e transporte são parcialmente substituídos por organizações privadas e muitas vezes não colocam o usuário em primeiro lugar ou pensam em uma experiência de serviço holística antes de criar seus serviços. Organizações privadas e públicas têm uma agenda diferente; a questão é como eles podem se tornar mais alinhados?

5. Conclusões

Como podemos ver no artigo, se tornar uma cidade realmente inteligente não é algo fácil, e não acontece da noite pro dia. É um trabalho que precisa de tempo e muito esforço para se materializar. Eu não conheço todas as cidades do Brasil, mas as que conheço não consigo ver nenhuma como um cidade inteligente.

Meu objetivo neste post, foi mostrar pra você que pra ser uma cidade inteligente é muito mais complexo do que apenas liberar acesso “Wi-fi” para a população, é um caminho duro e tortuoso até poder chegar ao nível de se intitular uma cidade de “inteligente”.

Fonte: Organicity

Categories: OSGeo Planet

Free and Open Source GIS Ramblings: Movement data in GIS #16: towards pure Python trajectories using GeoPandas

OSGeo Planet - Sun, 2018-11-18 15:48

Many of my previous posts in this series [1][2][3] have relied on PostGIS for trajectory data handling. While I love PostGIS, it feels like overkill to require a database to analyze smaller movement datasets. Wouldn’t it be great to have a pure Python solution?

If we look into moving object data literature, beyond the “trajectories are points with timestamps” perspective, which is common in GIS, we also encounter the “trajectories are time series with coordinates” perspective. I don’t know about you, but if I hear “time series” and Python, I think Pandas! In the Python Data Science Handbook, Jake VanderPlas writes:

Pandas was developed in the context of financial modeling, so as you might expect, it contains a fairly extensive set of tools for working with dates, times, and time-indexed data.

Of course, time series are one thing, but spatial data handling is another. Lucky for us, this is where GeoPandas comes in. GeoPandas has been around for a while and version 0.4 has been released in June 2018. So far, I haven’t found examples that use GeoPandas to manage movement data, so I’ve set out to give it a shot. My trajectory class uses a GeoDataFrame df for data storage. For visualization purposes, it can be converted to a LineString:

import pandas as pd from geopandas import GeoDataFrame from shapely.geometry import Point, LineString class Trajectory(): def __init__(self, id, df, id_col): self.id = id self.df = df self.id_col = id_col def __str__(self): return "Trajectory {1} ({2} to {3}) | Size: {0}".format( self.df.geometry.count(), self.id, self.get_start_time(), self.get_end_time()) def get_start_time(self): return self.df.index.min() def get_end_time(self): return self.df.index.max() def to_linestring(self): return self.make_line(self.df) def make_line(self, df): if df.size > 1: return df.groupby(self.id_col)['geometry'].apply( lambda x: LineString(x.tolist())).values[0] else: raise RuntimeError('Dataframe needs at least two points to make line!') def get_position_at(self, t): try: return self.df.loc[t]['geometry'][0] except: return self.df.iloc[self.df.index.drop_duplicates().get_loc( t, method='nearest')]['geometry']

Of course, this class can be used in stand-alone Python scripts, but it can also be used in QGIS. The following script takes data from a QGIS point layer, creates a GeoDataFrame, and finally generates trajectories. These trajectories can then be added to the map as a line layer.

All we need to do to ensure that our data is ordered by time is to set the GeoDataFrame’s index to the time field. From then on, Pandas takes care of the time series aspects and we can access the index as shown in the Trajectory.get_position_at() function above.

# Get data from a point layer l = iface.activeLayer() time_field_name = 't' trajectory_id_field = 'trajectory_id' names = [field.name() for field in l.fields()] data = [] for feature in l.getFeatures(): my_dict = {} for i, a in enumerate(feature.attributes()): my_dict[names[i]] = a x = feature.geometry().asPoint().x() y = feature.geometry().asPoint().y() my_dict['geometry']=Point((x,y)) data.append(my_dict) # Create a GeoDataFrame df = pd.DataFrame(data).set_index(time_field_name) crs = {'init': l.crs().geographicCrsAuthId()} geo_df = GeoDataFrame(df, crs=crs) print(geo_df) # Test if spatial functions work print(geo_df.dissolve([True]*len(geo_df)).centroid) # Create a QGIS layer for trajectory lines vl = QgsVectorLayer("LineString", "trajectories", "memory") vl.setCrs(l.crs()) # doesn't stop popup :( pr = vl.dataProvider() pr.addAttributes([QgsField("id", QVariant.String)]) vl.updateFields() df_by_id = dict(tuple(geo_df.groupby(trajectory_id_field))) trajectories = {} for key, value in df_by_id.items(): traj = Trajectory(key, value, trajectory_id_field) trajectories[key] = traj line = QgsGeometry.fromWkt(traj.to_linestring().wkt) f = QgsFeature() f.setGeometry(line) f.setAttributes([key]) pr.addFeature(f) print(trajectories[1]) vl.updateExtents() QgsProject.instance().addMapLayer(vl)

The following screenshot shows this script applied to a sample of the Geolife datasets containing 100 trajectories with a total of 236,776 points. On my notebook, the runtime is approx. 20 seconds.

So far, GeoPandas has proven to be a convenient way to handle time series with coordinates. Trying to implement some trajectory analysis tools will show if it is indeed a promising data structure for trajectories.

Categories: OSGeo Planet

PostGIS Development: PostGIS 2.5.1

OSGeo Planet - Sun, 2018-11-18 00:00

The PostGIS development team is pleased to provide bug fix 2.5.1 for the 2.5 stable branch.

Although this release will work for PostgreSQL 9.4 thru PostgreSQL 11, to take full advantage of what PostGIS 2.5 offers, you should be running PostgreSQL 11 and GEOS 3.7.0.

Best served with PostgreSQL 11.1 and pgRouting 2.6.1.

WARNING: If compiling with PostgreSQL+JIT, LLVM >= 6 is required Supported PostgreSQL versions for this release are: PostgreSQL 9.4 - PostgreSQL 11 GEOS >= 3.5

2.5.1

Continue Reading by clicking title hyperlink ..
Categories: OSGeo Planet

gvSIG Team: Disponible el material del taller de ‘Generación de informes con gvSIG Desktop’ de las 14as Jornadas gvSIG

OSGeo Planet - Fri, 2018-11-16 13:41

Ya está disponible la grabación del taller sobre ‘Generación de informes con gvSIG Desktop’ impartido durante las 14as Jornadas Internacionales gvSIG.

El taller, enfocado a preparar capas y mapas en gvSIG para ser integrados en el diseñador de informes JasperSoft Studio y a crear documentos de tipo ‘Informe’ en gvSIG que incluyesen los informes creados con JasperSoft Studio, se realizó sobre la última versión de gvSIG (gvSIG 2.5), que aún está en desarrollo, para el cual se ha desarrollado este nuevo plugin. No obstante, ya hay una distribución para descargar y probar, incluyendo el creador de informes.

Para iniciar el taller es necesario disponer de:
gvSIG Desktop 2.5.
– JasperSoft Studio: Versión oficial.
Plugin para JasperSoft Studio de Web Service Data Source (descarga mediante registro),  o enlace alternativo.

Se deberán de buscar los tres ficheros .jar del plugin que se encuentran en la carpeta “jss” y copiarlos en la carpeta de JasperSoft/plugins.

Los datos para seguir el taller pueden descargarse de la web oficial (o descarga alternativa).

El vídeo con la grabación del taller es el siguiente:

Categories: OSGeo Planet

gvSIG Team: Material of the workshop about environmental modelling using gvSIG and the HortonMachine available

OSGeo Planet - Fri, 2018-11-16 08:39

The material of the workshop about environmental modelling using gvSIG and the HortonMachine, given at 14th International gvSIG Conference some days ago, is now available.

Although the screen image is not very clear it can be followed with the teacher instructions, and using the cartography and tutorial available to download at this link.

The HortonMachine library is an open geospatial library integrated in gvSIG containing tools for the management of environmental data and hydro-geomorphological analyses. The algorithms contained in the library are the result of more than 10 years of research, development and real application by different researchers and professionals working in the field of natural hazards.

Recording of this workshop is available here:

Categories: OSGeo Planet

gvSIG Team: Vídeos de sesión SIG aplicado a Agricultura de las 14as Jornadas gvSIG

OSGeo Planet - Thu, 2018-11-15 14:13

Uno de los sectores en los que estamos realizando cada vez más proyectos desde la Asociación gvSIG es el de la Agricultura. Un área donde la aplicación de la geomática es amplia y que engloba proyectos tanto de gestión como de explotación o investigación.

Durante las pasadas 14as Jornadas Internacionales de gvSIG hubo una sesión dedicada a este tipo de proyectos, de la que ahora os compartimos los vídeos de las presentaciones realizadas.

En primer lugar queremos destacar la ponencia ‘Soluciones gvSIG para Agricultura en la Generalitat Valenciana.’. Muestra como el software libre se está aplicando para poner en marcha aplicaciones tan importantes como las que conllevan la gestión de las ayudas de la PAC (la Política Agraria Común) y la gestión del Registro general de la producción agrícola (REGEPA). Aplicaciones con un alto nivel de complejidad técnica ya que deben implementar todo tipo de reglas topológicas.

En segundo lugar un proyecto de investigación muy interesante llevado a cabo por Ángel Marqués-Mateu con título ‘Cartografía de precisión de la salinidad del suelo en cultivos de arroz.

Para finalizar la presentación de GODAN, ‘The role of open data and innovation in ensuring global food security’ que nos remarca la importancia que pueden tener los datos abiertos y el software libre.

¡Qué los disfrutéis!

Categories: OSGeo Planet

gvSIG Team: El Circuit de Cheste estrenará un sistema pionero para dar respuesta a emergencias durante el Gran Premio de Motociclismo

OSGeo Planet - Wed, 2018-11-14 15:28

Bajo este titular ha sido referenciado hoy en la práctica totalidad de la prensa el sistema impulsado por Diputació de València, a través del área de Información Territorial de Divalterra y el Consorcio Provincial de Bomberos y desarrollado en colaboración con la Asociación gvSIG. La plataforma, basada en gvSIG Online, fue presentada en las pasadas 14as Jornadas Internacionales de gvSIG. Ver como la Suite gvSIG está formando parte de importantes proyectos, por dimensión y por su influencia en mejorar la vida de los ciudadanos, es algo que nos produce una enorme satisfacción.

Os dejamos con la información extraída de la nota de prensa oficial y con un vídeo de presentación de la solución:

El Circuit Ricardo Tormo de Cheste estrenará el fin de semana del 16 al 18 de noviembre, durante la celebración del Gran Premio de Motociclismo, un sistema pionero de gestión de emergencias para prevenir y dar la respuesta más ágil a los incidentes que puedan registrarse tanto en el recinto como en el entorno del Circuit, incluidas las carreteras de acceso y los núcleos de población cercanos.

Se trata de un servidor cartográfico que utiliza tecnología GIS e incluye los datos procedentes del Plan de Autoprotección del Circuito, y se presenta de manera digital a través de cualquier equipo informático. De esta manera, se agilizan las consultas y se dispone al momento de todo tipo de información de utilidad para dar respuesta a las emergencias. El servidor cartográfico permitirá agilizar la gestión de cualquier incidente de seguridad. De esta manera, se agilizan las consultas y se dispone al momento de todo tipo de información de utilidad para dar respuesta a las emergencias.

Además, desde el Consorcio Provincial de Bomberos se dará acceso a esta herramienta informática a todos los organismos implicados en garantizar la seguridad en la concentración deportiva, como Delegación de Gobierno, Guardia Civil, Generalitat Valenciana y la propia seguridad del Circuit, con el fin de asegurar una máxima coordinación entre todas las partes.

El oficial jefe de Prevención del Consorcio Provincial de Bomberos de Valencia, Jorge Sánchez, explica que “la cantidad de información que nos aporta, agiliza de manera muy importante la toma de decisiones en momentos en los que cada segundo que se gane puede ser vital”.

Sánchez indica que “en España no hay ningún organismo con una herramienta GIS tan potente como esta para la gestión de emergencias” y avanza que “ya se está trabajando para aplicarla a otras infraestructuras como los edificios de la Universidad, Metrovalencia, las Fallas, etc”.

El director del Proyecto, Antonio Mas, explica que “el proceso se ha desarrollado en completa coordinación con el Consorcio de Bomberos, para asegurar que las funcionalidades que se iban desarrollando desde Divalterra eran las que realmente resultaban de utilidad para ellos”.

Para ello, se recopiló toda la documentación existente, que estaba en formato papel, y tras la definición de los términos y cartografía a implementar, se procedió a elaborar todos los mapas en formato digital. Una vez implementada la parte gráfica, se procedió al volcado de toda la documentación recopilada.

Así, recoge imágenes y datos detallados sobre los accesos y salidas del recinto, elementos de protección, recorrido hasta los accesos, rutas de evacuación, gradas, locales, recintos y edificios, y también todas las actividades de riesgo de empresas próximas, así como el posible transporte de mercancías peligrosas.

De esta manera, este servidor cartográfico permite, ante una emergencia, saber en qué punto exacto se ha producido el incidente y a qué distancia se encuentran los accesos y salidas más cercanas, cuál es el recorrido, los hidrantes más próximos, las características de la infraestructura donde se ha producido, si existen elementos colindantes o las zonas industriales próximas y sus planes de evacuación, entre otra información de utilidad.

Categories: OSGeo Planet

Fernando Quadro: Usando pycsw com o GeoNode

OSGeo Planet - Wed, 2018-11-14 10:30

O CSW é um padrão para expor um catálogo de entidades geoespaciais através do procotolo HTTP. Em um portal GeoNode, os pontos de extremidade (endpoints) do CSW são fornecidos pelo pycsw, que é um componente subjacente do GeoNode. Alternativamente, se necessário, é possível substituir o pycsw pelo GeoNetwork.

No GeoNode, você pode acessar facilmente o registro CSW de uma camada, clicando no botão Baixar Metadados na página da camada. Um formulário aparecerá e você poderá acessar os metadados fornecidos pelo pycsw em uma série de diferentes formatos (Atom, Dublin, FGDC, Text, HTML e muitos outros).

Por exemplo, ao clicar no link ISO, você acessará os metadados da camada no formato ISO, que corresponde a essa solicitação GetRecordById no pycsw:

http://localhost:8000/catalogue/csw?outputschema=http%3A%2F%2Fwww.isotc211.org%2F2005%2Fgmd&service=CSW&request=GetRecordById&version=2.0.2&elementsetname=full&id=8bcf5bfc-5cfc-11e7-8103-02d8e4477a33

Você também pode notar outras informações que foram geradas pelo GeoNode nos bastidores quando a camada foi carregada:

  • Identificador da camada, que identifica exclusivamente a camada no catálogo (observe que a solicitação GetRecordById usa esse identificador para acessar o registro)
  • Data de criação
  • Sistema de referência espacial e caixa delimitadora (BBOX)
  • URL da miniatura
  • Formato do recurso
  • Vários endpoints do OGC

Se você quiser adicionar metadados ausentes, visite a página de metadados da camada e pressione em Editar Camada > Editar Metadados.

1. Operações pycsw

O pycsw implementa todas as operações do padrão CSW, incluindo as opcionais:

  • GetCapabilities: recupera metadados de serviço do servidor
  • DescribeRecord: permite que um cliente descubra elementos do modelo de informações suportado pelo serviço de catálogo de destino
  • GetRecords: procura registros usando uma série de critérios
  • GetRecordById: recupera metadados para um registro (camada) do catálogo por seu id
  • GetDomain (opcional): recupera informações de tempo de execução sobre o intervalo de valores de um elemento de registro de metadados ou um parâmetro de solicitação
  • Harvest (opcional): cria / atualiza metadados pedindo ao servidor para “puxar” metadados de algum lugar
  • Transaction (opcional): criar / editar metadados “empurrando” os metadados para o servidor

O pycsw é uma implementação do serviço OGC CSW escrita em Python. Iniciado em 2010 (mais formalmente anunciado em 2011), o pycsw permite a publicação e descoberta de metadados geoespaciais por meio de várias APIs (CSW 2 / CSW 3, OpenSearch, OAI-PMH, SRU), fornecendo um componente de metadados e catálogo baseado em padrões para infraestruturas de dados espaciais. O pycsw é Open Source, lançado sob uma licença MIT e executado em todas as principais plataformas (Windows, Linux e Mac OS X).

Fonte: Paolo Corti

Categories: OSGeo Planet

Fernando Quadro: Mover o PostGIS de esquema

OSGeo Planet - Tue, 2018-11-13 10:30

A partir do PostGIS 2.3, a extensão do postgis foi alterada para não permitir mais a realocação. Todas as chamadas de função agora são qualificadas pelo esquema.

Embora essa alteração tenha corrigido alguns problemas com a restauração do banco de dados, ela criou o problema, pois se você instalou o PostGIS em um esquema diferente daquele que você desejava, não é intuitivo como movê-lo para um esquema diferente. Felizmente há uma maneira de fazer isso.

Para este exemplo, o PostGIS foi instalado no esquema padrão para demonstrar como movê-lo para outro esquema. Você pode executar estas etapas usando o psql, pgAdmin ou qualquer outra ferramenta desejada.

A maioria das pessoas tem seu esquema padrão configurado como public, caso você não especifique explicitamente um esquema na instalação, geralmente o PostGIS será instalado no esquema public.

CREATE EXTENSION postgis;

Agora vou criar um novo esquema para movê-lo e adicionar este esquema ao search_path:

CREATE SCHEMA postgis; ALTER DATABASE mydb SET search_path = public, postgis;

Se você estiver executando o PostGIS 2.3 ou superior, tente mudar para um esquema diferente usando o comando abaixo:

ALTER EXTENSION postgis SET SCHEMA postgis;

Isso irá falhar e o banco irá plhe apresentar o seguinte erro “ERRO: a extensão “postgis” não suporta SET SCHEMA”.

Para permitir o movimento, siga estes passos:

UPDATE pg_extension SET extrelocatable = TRUE WHERE extname = 'postgis'; ALTER EXTENSION postgis SET SCHEMA postgis; ALTER EXTENSION postgis UPDATE TO "2.4.1next"; ALTER EXTENSION postgis UPDATE TO "2.4.1";

Observe o uso da expressão next. É necessário utilizar a expressão next nesta etapa para atualizar todas as referências das funções do esquema atual para o novo do esquema. Next é projetado para permitir a atualização de uma extensão do postgis para uma versão já existente. Tentar executar UPDATE TO “2.4.1” quando você já está no 2.4.1 acionaria um erro, pois você já está nessa versão.

Fonte: PostGIS

Categories: OSGeo Planet

Marco Bernasocchi: Visualize Postgres JSON data in QML widgets

OSGeo Planet - Tue, 2018-11-13 08:00

As promised some time ago in “The new QML widgets in QGIS – When widgets get unbridled” we still owe you some fancy unicorns, but first let’s have a look at another nice feature that has been introduced in QGIS 3.4 LTR,  the reading of PostgreSQL JSON and JSONB types.
With JSON you have a lot of possibilities for storing unstructured data. In our case, it’s mainly interesting when the data are stored as an array or a JSON object. Let’s have a look at two examples.

Visualize Postgres JSON data with common widgets

With the usual QGIS widgets “List” and “Key/Value” you are able to display JSON arrays and simple JSON objects.

JSON array as List [ "European dark bee", "Carniolan honey bee", "Buckfast bee" ]

Simple JSON object as Key/Value { "nomenclatura":"Apis mellifera mellifera", "name":"European dark bee", "link":"https://en.wikipedia.org/wiki/European_dark_bee" }

Or of course both as plain text in the “Text Edit” widget:

Say hi to Postgres JSON in QML widget

Probably, your JSON data does not look really nice with the aforementioned widgets, luckily since QGIS 3.4, you are free to create your own QML widget. Since QGIS already loads the JSON data into structures that are supported by QML, we can use all the JSON data within the QML code.
Let’s assume you have the JSON array from above and you like the elegance of the blue of Jacques Majorelle. You create your personal list widget by adding the JSON field as an expression:

import QtQuick 2.0 Rectangle { width: 310; height: 250; color: "grey" Column { anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter spacing: 5 Repeater { model:expression.evaluate("\"jvalue\"") Rectangle { color: "#6050dc" width: 300; height: 50; radius: 10.0 Text { anchors.centerIn: parent font.pointSize: 24 text: modelData } } } } }

You will have your very personal list:

JSON also allows storing more complex data, like for example a list of objects. In that case, you will reach the limits of the common QGIS widgets.
Let’s assume you have a table looking like this:

nomenclatura name link Apis mellifera mellifera European dark bee https://en.wikipedia.org/wiki/European_dark_bee Apis mellifera carnica Carniolan honey bee https://en.wikipedia.org/wiki/Carniolan_honey_bee Apis mellifera Buckfast bee https://en.wikipedia.org/wiki/Buckfast_bee

In JSON it would be stored like this:

[ {"nomenclatura":"Apis mellifera mellifera","name":"European dark bee","link":"https://en.wikipedia.org/wiki/European_dark_bee"}, {"nomenclatura":"Apis mellifera carnica","name":"Carniolan honey bee","link":"https://en.wikipedia.org/wiki/Carniolan_honey_bee"}, {"nomenclatura":"Apis mellifera","name":"Buckfast bee","link":"https://en.wikipedia.org/wiki/Buckfast_bee"} ]

With the QML Widget you can use the QML TableView to visualize:

import QtQuick 2.0 import QtQuick.Controls 1.4 TableView { width: 600 model: expression.evaluate("\"jvalue\"") TableViewColumn { role: "nomenclatura" title: "Nomenclature" width: 200 } TableViewColumn { role: "name" title: "Name" width: 200 } TableViewColumn { role: "link" title: "Wikipedia" width: 200 } }


Or, even more powerful, you can create your super individual table using the model and create each row by using a QML Repeater.
Additionally, you can use a lot of fancy stuff like:

  • mouse interaction
  • animation
  • opening an external link
  • … and so on


The QML code for that looks like this.

import QtQuick 2.0 Rectangle { width: 610; height: 500 Column { anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter Repeater { model: expression.evaluate("\"jvalue\"") Row { id: theRow height: mouseArea1.containsMouse || mouseArea2.containsMouse || mouseArea3.containsMouse ? 70 : 50; Rectangle { color: "lightblue"; border.width: 1 width: 150; height: parent.height Text { anchors.centerIn: parent font.pointSize: 10; text: modelData.nomenclatura } MouseArea { id: mouseArea1 anchors.fill: parent hoverEnabled: true } } Rectangle { color: "lightgreen"; border.width: 1 width: 150; height: parent.height Text { anchors.centerIn: parent font.pointSize: 10; text: modelData.name } MouseArea { id: mouseArea2 anchors.fill: parent hoverEnabled: true } } Rectangle { id: linkField color: "lightyellow"; border.width: 1 width: 300; height: parent.height Text { anchors.centerIn: parent font.pointSize: 10; text: modelData.link } MouseArea { id: mouseArea3 anchors.fill: parent hoverEnabled: true onPressed: linkField.state = "PRESSED" onReleased: linkField.state = "RELEASED" onClicked: Qt.openUrlExternally(modelData.link) } states: [ State { name: "PRESSED" PropertyChanges { target: linkField; color: "green"} }, State { name: "RELEASED" PropertyChanges { target: linkField; color: "lightyellow"} } ] transitions: [ Transition { from: "PRESSED" to: "RELEASED" ColorAnimation { target: linkField; duration: 1000} }, Transition { from: "RELEASED" to: "PRESSED" ColorAnimation { target: linkField; duration: 1000} } ] } } } } } And that’s it

I hope you liked reading and you will enjoy using it to make beautiful widgets and forms. If you have questions or inputs, feel free to add a comment.
… and in case you still asking where the promised unicorns are. Here’s is a super-fancy implementation

Categories: OSGeo Planet

Fernando Quadro: Tradução do GeoServer para o Português

OSGeo Planet - Mon, 2018-11-12 10:30

Prezado leitor,

Se você usa o GeoServer, já teve ter percebido que desde a versão 2.8.x existe um problema na tradução para o português brasileiro (pt-BR).

O que parece ter ocorrido, é que quando se foi criar os arquivos properties usaram como base os arquivos do idioma espanhol que ainda não estavam finalizados, por isso o GeoServer hoje tem termos em inglês, português e espanhol.

Eu gostaria então de convidar você, que utiliza o GeoServer e tem uma certa fluência em inglês, para que nos ajude a finalizar essa tradução para a próxima versão do GeoServer, que será a 2.15.x.

Quem se interessar, peço que se cadastre no Site Oficial da tradução:

Página Oficial de tradução do GeoServer
Página Oficial de tradução do GeoServer (Equipe pr-BR)

Quem se registrar já pode iniciar iniciar a tradução!

Categories: OSGeo Planet

QGIS Blog: User question of the Month – Nov 18

OSGeo Planet - Sun, 2018-11-11 19:11

QGIS 2.18 is the third LTR since we started this effort back in 2015 and next year will see the first LTR of QGIS 3. On this occasion, we want to learn more about our users and which versions of QGIS they use. Therefore, we invite you to our QGIS user question of the month.

Categories: OSGeo Planet

Free and Open Source GIS Ramblings: My favorite new recipe in QGIS Map Design 2nd ed

OSGeo Planet - Sat, 2018-11-10 14:58

If you follow me on Twitter, you have probably already heard that the ebook of “QGIS Map Design 2nd Edition” has now been published and we are expecting the print version to be up for sale later this month. Gretchen Peterson and I – together with our editor Gary Sherman (yes, that Gary Sherman!) – have been working hard to provide you with tons of new and improved map design workflows and many many completely new maps. By Gretchen’s count, this edition contains 23 new maps, so it’s very hard to pick a favorite!

Like the 1st edition, we provide increasingly advanced recipes in three chapters, each focusing on either layer styling, labeling, or creating print layouts. If I had to pick a favorite, I’d have to go with “Mastering Rotated Maps”, one of the advanced recipes in the print layouts chapter. It looks deceptively simple but it combines a variety of great QGIS features and clever ideas to design a map that provides information on multiple levels of detail. Besides the name inspiring rotated map items, this design combines

  • map overviews
  • map themes
  • graduated lines and polygons
  • a rotated north arrow
  • fancy leader lines

all in one:

“QGIS Map Design 2nd Edition” provides how-to instructions, as well as data and project files for each recipe. So you can jump right into it and work with the provided materials or apply the techniques to your own data.

The ebook is available at LocatePress.

Categories: OSGeo Planet

gvSIG Team: Exprime tu gvSIG mediante Scripting: Disponible el material del taller de las 5as Jornadas gvSIG Uruguay

OSGeo Planet - Sat, 2018-11-10 09:45

Con motivo de las 5as Jornadas gvSIG Uruguay (Montevideo, 18-19 octubre 2018) se impartió un taller de “Scripting: Exprimiendo / Extendiendo gvSIG ” por parte de Carlos Colombana.

Ahora se ha publicado el material de dicho taller, en el que se muestran las principales funcionalidades del módulo de Scripting, con el fin de obtener el máximo rendimiento y de expandir las capacidades de gvSIG. En él se ven las principales etapas del proceso de desarrollo de add-ons, para el caso particular de un geo-codificador de direcciones geográficas.

Podéis descargar el material para poder seguir el taller desde el siguiente enlace.

Categories: OSGeo Planet

gvSIG Team: Material del Taller de gvSIG aplicado a Geología de las 14as Jornadas gvSIG disponible

OSGeo Planet - Thu, 2018-11-08 22:34

Ya está disponible la grabación del Taller de gvSIG aplicado a Geología impartido durante las 14as Jornadas Internacionales gvSIG.

En este taller se aborda un análisis integrado que permite la toma de decisiones relacionadas con cuestiones tan dispares como la investigación de recursos minerales, la protección del patrimonio paleontológico, la rentabilidad económica de una explotación minera o su viabilidad ambiental. Todo ello a través de distintas herramientas de edición y geoprocesos de gvSIG desde una perspectiva geológica, realizando una cartografía a partir de datos tomados en campo y la planificación de una investigación geológica. Además se utilizan fuentes de información pública procedentes de diferentes administraciones.

Para realizar este taller podéis descargar la cartografía desde el siguiente enlace.

Si tenéis alguna duda sobre el manejo de gvSIG en la realización de este taller podéis utilizar la lista de usuarios del proyecto.

Y aunque los últimos minutos no estén disponibles aquí tenéis el vídeo con más de dos horas de taller para practicar:

 

Categories: OSGeo Planet

Fernando Quadro: PostGIS na Neurociência

OSGeo Planet - Thu, 2018-11-08 10:30

Tom Kazimiers trabalha como engenheiro de software no Howard Hughes Medical Institute, em um software colaborativo de reconstrução e análise de neurônios chamado CATMAID, que é usado para pesquisa em neurociência.

O PostGIS é utilizado nesse projeto para representar os neurônios em um espaço 3D. Eles consistem em pontos 3D que fazem referência a seus nós pai ou a raiz, quando eles não têm pai. Juntamente com sinapses, nuvens de pontos e malhas para modelar compartimentos em um conjunto de dados, eles modelam os aspectos espaciais do mundo da neurociência. Os usuários criam essas reconstruções neuronais manualmente de forma colaborativa, e os programas de segmentação podem ser usados ​​como fonte de dados adicional.

Usando seus índices espaciais, o PostGIS ajuda a consultar rapidamente os neurônios em um determinado campo de visão. O espaço de um único projeto contém, por vezes, centenas de milhões de pontos individuais interconectados. Também é possível fazer consultas de interseção (BBOX) entre os neurônios e as malhas dos compartimentos, que depois se refinam no front-end fazendo testes de interseção mais precisos.

Este software é usado por alguns laboratórios de pesquisa e, todos eles fazem sua própria hospedagem com um servidor dedicado. A razão principal para isso é que com conjuntos de dados maiores, eles se beneficiam de máquinas com muita RAM (> 256G), unidades SSD e muitas CPUs, além de acesso rápido a dados locais para, por exemplo, dados de imagem.

Muito interessante saber que o PostGIS funciona tão bem em contextos não-GIS também.

Fonte: PostGIS Blog

Categories: OSGeo Planet
Syndicate content