Neste post estou apresentando o esquema comentado de uma consulta encadeada que agiliza as análises de grandes quantidade de dados.
with alias_1 as (
select colunas,
(row_number() over(partition by coluna orderby coluna)) as id -- Exemplo de "Window Function"from tabela
), -- a virgula indica que pode ter outras tabelas disponíveis
alias_2 as (
select coluna
from tabela
) -- sem a virgura indica que será feira uma consulta finalselect a1.coluna, a2.coluna
from alias_1 a1, alias_2 a2
where a1.coluna = a2.coluna;
Remover arquivos com data de acesso igual ou superior a 30 dias; o parâmetro ctime é para criação e modificação e o tempo é múltiplo de 24hs ou seja +1 representa 2 dias atráz.
find /srv/www/users -type f -atime +30 -delete
Remover diretorios com zero bytes
find /srv/www/users -type d -empty -delete
Remover arquivos com tamanho menor que 1 Kbytes
find /srv/www/users -type f -size -1k -delete
Em 28/06/2024 encontrei outra dificuldade que foi a quantidade de erros por falta de permissão que os comandos find estavam retornando. Assim aprimorei os comando adicionando no final o redirecionamento da saída de erro para o null com a seguinte instrução 2>/dev/null
Quando você está precisando saber o retângulo envolvente de um shapefile pode utilizar o comando ogrinfo para saber esta informação pois o mesmo possui o atributo Extent que mostra exatamente o ponto inferior esquerdo e o superior direito conforme pode ser visto na figura abaixo.
Note que utilizei vários parâmetros para definir o índice do DataFrame como sendo a união dos campos data e hora que originalmente estão separados. Também fiz a escolha das colunas que me interessavam e defini o tipo do dado a ser manipulado.
Uma primeira forma de filtrar é utilizando o padrão normalmente utilizado em qualquer coluna, porém considerando o índice do DataFrame:
df[df.index.month == 6]
A segunda forma é mais indicada para a situação pois ela considera o índice temporal:
A partir de uma leitura feita em https://courses.spatialthoughts.com/pyqgis-in-a-day.html eu criei uma versão do exemplo para que quando o usuário executar uma action sobre um ponto de foco o Qgis selecione todos os pontos do mesmo dia.
As ações no QGIS fornecem uma maneira rápida e fácil de acionar o comportamento personalizado em resposta à ação de um usuário - como clicar em um recurso na tela ou um valor de atributo na tabela de atributos.
As ações são definidas no nível da camada e fornecem uma maneira fácil de adicionar comportamento personalizado ao QGIS sem ter que escrever plug-ins. As ações são integradas na GUI do QGIS e permitem que você execute o código PyQGIS em camadas vetoriais.
Vamos definir uma ação para a camada de focos de modo que quando um usuário clicar em um ponto, todos do mesmo dia serão selecionados. Para isto a camada de dados deve possuir um atributo que será utilizado para seleção. Neste exemplo foi criado um campo virtual chamado data que não possui o horário da passagem do satélite que detectou o foco.
Clique com o botão direito na camada, entre em propriedades e alterne para a guia Ações.
Clique em Adicionar um novo botão de ação.
Selecione Python como o tipo.
Nomeie e defina uma descrição para a ação como "Selecionar mesma data". Esta ação deve ser usada para selecionar recursos na tela do mapa, portanto, marque Canvas como o Escopo da ação. Insira o seguinte trecho de código no Texto da Ação e clique em OK.