quarta-feira, 31 de agosto de 2016

Comparando geometrias dentro de uma área específica com PostGIS

Uma tarefa muito útil nos bancos de dados geográficos é a possibilidade de se comparar geometrias mesmo que seja virtualmente, no exemplo abaixo pode se comparar um ponto no exemplo com uma geometria que é gerada pelo operador st_envelope do PostGIS. No segundo exemplo tem executamos a mesma tarefa do primeiro porém comparando os valores min e max de X e Y.

1- SELECT x  FROM table where geom && ST_MakeEnvelope(-85.994,-55.994, -32.994,10.005)

2- SELECT x FROM table 
where (ST_X(geom) >= -85.994 and ST_X(geom) <= -32.994)
and (ST_Y(geom) >= -55.994 and ST_Y(geom) <= 10.005)

Exportando GEOJson do Postgis

Um recurso muito bom do Postgis é a facilidade de exportar um geojson diretamente pela consulta de sql,  eliminando aquela tarefa um tanto quanto chata de utilizar o ogr2. Segue script abaixo, exportando um polígono para geojson.

SELECT ST_AsGeoJSON(ST_MakeEnvelope(-89.296875,-58.539595,-31.992188,13.068777),4326)

O exemplo da saída pode ser visualizado aqui.

Referência: http://postgis.net/docs/ST_AsGeoJSON.html


quinta-feira, 25 de agosto de 2016

Criando rotinas python com crontab

Uma maneira de operacionalizar tarefas diárias com python é utilizando o recurso crontab do linux que executa tarefas de acordo com seus parâmetros.

O primeiro passo é adicionar na primeira linha do seu arquivo python o cabeçalho que o torna executável. obs(não fica mais necessário utlizar python script.py).

#!/usr/bin/env python2

O segundo passo é dar permissão do arquivo de ser executável, para isso utilizamos o chmod +x script.py

o próximo passo é abrir a ferramenta crontab utilizando o comando crontab -e, abrirá um editor de texto com as configurações das tarefas que você pode ter já configuradas. Para adicionar a sua basta ir até o final do arquivo e configurar seu script.

A sequência de execução do crontab é primeiramente o tempo de MM HH DM M DS  caminho do script / script.py >> caminho do log de execução /log.txt 2>&1 REF: http://www.infowester.com/linuxcron.php

Voilá!, após estas configurações seu script será executado de acordo com a data configurada.


quarta-feira, 3 de agosto de 2016

Filtrando um dicionário em python

Um recurso muito útil é filtrar um ou vários objetos dentro de um dicionário, segue abaixo os exemplos de filtragem de objetos de um dicionário pela key (índice) e valor.

Primeiramente nosso dicionário de exemplo:

dict = {'conc_co':'monoxido_carbono','conc_pm':'material_particulado','umid_ar':'umidade_relativa', 'tmp_ar':'temperatura', 'vento_dir':'vento_direcao', 'vento_vel':'vento_velocidade'}

Agora o filtro pelo valor do objeto:

dict2 = {k: v for k, v in prefixos.items() if v == 'vento_velocidade'}

O resultado de dict2 será:

{'vento_vel': 'vento_velocidade'}

Agora filtrando pela chave do objeto:

dict2 = {k: v for k, v in prefixos.items() if k == 'umid_ar'}

O resultado será:

{'umid_ar': 'umidade_relativa'}


Removendo espaços em branco de uma string com python

Uma função para remover espaços em branco de uma string à esquerda, direita ou totalmente em python.

Removendo todos os espaços em branco de uma string
s = "  \t a string example\t  "
s = s.strip()

Removendo os espaços à esquerda
s = s.lstrip()

Removendo os espaços à direita
s = s.rstrip()

terça-feira, 2 de agosto de 2016

Substring em Python

O python trabalha com a manipulação de strings de uma maneira muito fácil, segue alguns exemplos de como fazer isso de uma maneira muito simples.

>>> x = "Hello World!"
>>> x[2:]
'llo World!'
>>> x[:2]
'He'
>>> x[:-2]
'Hello Worl'
>>> x[-2:]
'd!'
>>> x[2:-2]
'llo Worl'