quinta-feira, 13 de outubro de 2016

Operações aritméticas com vetores em R

// Comment
#OPERAÇÕES COM VETORES
v1 <- 1:10="" 2="" de="" do="" multiplicando="" os="" por="" quadrada="" raiz="" sqrt="" todas="" um="" v1="" valores="" vetor="">= 3 #checando quais valores são maiores ou igual a 3

c(1,2,3,4) %in% v1 #verificando se determinados valores existem dentro de um vetor

c(1,2,3,4) * tail(v1,4) #pegando alguns elementos de um vetor e multiplicando dois vetores

c(1,2,3,4) * c(3,5) #multiplicando dois vetores

seq(from=10, to=100, by=0.5) #criando uma sequencia de números

vector(mode = "numeric", length = 2) #criando vetores em branco

vector(mode = "character", length = 10) #criando vetores de texto em branco

vector(mode = "logical", length = 3) #criando vetores de boleano em branco

rep(x = 22, times = 10) #criando vetor com valores repetidos
x = c(18, 0, 9)

rep(x, 3) #criando um vetor a partir da repetição de outro

v1[1:2] #recuperando elementos específicos de um array

v1[c(1,2,3)] 
v1[v1>1 & v1 < 4] #recuperando um intervalo de valores
v1[v1>4 | v1 < 10]

#Manipulando Vetores em R
a <- c(1:5)
b <- c(6,NA,7,NA,8,NA,9)
c <- c("1","2","5","6")

clean <- complete.cases(b) #filtra apenas os itens completos de uma array
is.na(b) #filtra apenas os objetos vazios de um array

b[clean] #filtrando os itens do array completos

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'