Anatel - Consulta e Processamento do Banco de Dados

Este repositório concentra um conjunto de scripts para navegar e baixar informações dos principais bancos de dados da Anatel e as bases públicas da Aeronáutica como o AISWEB, GEOAISWEB e ICAO cruzadas com documentações técnicas internas. Cujo dados serão utilizados em tarefas fiscalizatórias. O público alvo são os servidores do órgão, uma vez que a maioria dos sistemas utilizados aqui necessitam de autenticação cujo acesso é restrito aos servidores da ANATEL.

Gitmoji

scraper: gazpacho

Instalação

pip install anateldb

Como utilizar

Consulta à base de dados formatada para o AppAnalise de Anatel

A motivação original para a presente biblioteca foi disponibilizar os dados de diferentes fontes da Anatel - e posteriormente da Aeronáutica - programaticamente, para serem utilizadas pelo AppAnalise na identificação de emissões captadas pelos planos de monitoração e também em fiscalização de campo.

Os dados no formato atual em excel são disponibilizados na pasta dados no repositório https://github.com/ronaldokun/anateldb.

Os dados em formato otimizado .parquet.gzip são disponibilizados junto ao repositório na pasta dados juntamente com as versões das bases individuais. Futuramente o objetivo é descontinuar a liberação de arquivos em formato excel e disponibilizar apenas os dados em formato otimizado.


get_db

 get_db (path:Union[str,pathlib.Path], up_base:bool=False,
         up_icao:bool=False, up_pmec:bool=False, up_geo:bool=False,
         dist:float=10)

Lê e opcionalmente atualiza as bases da Anatel, mescla as bases da Aeronáutica, salva e retorna o arquivo

Type Default Details
path Union Pasta onde salvar os arquivos”,
up_base bool False Atualizar as bases da Anatel?
up_icao bool False Atualizar a base do ICAO?
up_pmec bool False Atualizar a base do AISWEB?
up_geo bool False Atualizar a base do GeoAISWEB?
dist float 10 Distância máxima entre as coordenadas consideradas iguais
Returns DataFrame Retorna o DataFrame com as bases da Anatel e da Aeronáutica

Métodos para baixar ou atualizar os arquivos das bases de dados

from anateldb.updates import update_mosaico, update_radcom, update_stel, update_base

A função seguinte baixa os dados diretamente da interface pública online do Spectrum E

%%time
update_mosaico(pasta='D:\OneDrive - ANATEL\GR01FI3\BaseDados')
Baixando as Estações do Mosaico...
Baixando o Plano Básico das Estações...
Baixando o Histórico de Atualizações...
Kbô
Wall time: 8.12 s
%%time
update_radcom('D:\OneDrive - ANATEL\GR01FI3\BaseDados')
Lendo o Banco de Dados de Radcom
Wall time: 1 s

A função update_stel é bem mais lenta que as demais, dado que o banco de dados do STEL é antigo e abarca todos os registros de outorga de serviços de telecomunicações da ANATEL, com mais de 400.000 registros ativos. Esse banco de dados é atualizado 1 vez ao dia à meia-noite e remete ao estado do dia anterior, portanto não faz sentido atualizá-lo mais de 1 vez por dia.

%%time
update_stel('D:\OneDrive - ANATEL\GR01FI3\BaseDados')

A função update_base combina as 3 bases anteriores e uniformiza os campos:

update_base('D:\OneDrive - ANATEL\GR01FI3\BaseDados')

Métodos para ler as Bases de Dados

from anateldb.reading import read_radcom, read_stel, read_mosaico, read_base
radcom = read_radcom(pasta='D:\OneDrive - ANATEL\GR01FI3\BaseDados') ; radcom.head()
Frequência Unidade Latitude Longitude Fase Situação Numero da Estação CNPJ Fistel Entidade Município UF
0 104.9 MHz -24.861389 -54.334722 3 A 641168764 00104477000117 50011685115 ACADEMIA CULTURAL DE SANTA HELENA - ACULT - ST… Santa Helena PR
1 87.9 MHz -7.074444 -36.731111 3 M 682699349 00284576000128 50012524409 ASSOCIACAO DOS MORADORES E PRODUT. RURAIS DE A… Assunção PB
2 87.9 MHz -20.323611 -44.246944 3 H 659028590 00575697000129 50011824689 ASSOCIACAO BONFIM ESPERANCA- ABESPE Bonfim MG
3 104.9 MHz -18.843611 -46.792778 3 B 631410937 00792795000118 50011398132 ASSOCIACAO DOS TRABALHADORES DE GUIMARANIA (ATG) Guimarânia MG
4 87.9 MHz -19.466667 -45.600000 3 M 631412301 00794510000188 50011398990 FUNDACAO ASSISTENCIAL LAR DA PAZ - FALP Dores do Indaiá MG

Se o argumento update=True for fornecido ou arquivo local não existir, a base de dados é atualizada por meio da função update_radcom.

A função update_radcom somente irá funcionar caso o PC estiver plugado na rede interna cabeada da Anatel.

radcom = read_radcom(pasta='D:\OneDrive - ANATEL\GR01FI3\BaseDados', update=True) ; radcom.tail()
Lendo o Banco de Dados de Radcom
Frequência Unidade Latitude Longitude Fase Situação Numero da Estação CNPJ Fistel Entidade Município UF
4639 87.9 MHz -10.311667 -48.162222 1 K 1011036964 08931976000190 50411347829 ASSOCIACAO AMIGOS DA CULTURA E DO MEIO AMBIENT… Palmas TO
4640 104.9 MHz -10.005000 -48.988889 1 A 1011037472 19001721000144 50416345301 ASSOCIACAO RADIO COMUNITARIA MONTE SANTO FM Monte Santo do Tocantins TO
4641 104.9 MHz -5.586389 -48.061111 P M 1011044797 19332116000156 50416480004 ASSOCIACAO RADIO COMUNITARIA TOP FM Araguatins TO
4642 98.3 MHz -28.682222 -53.610278 2 K 1011044940 97538346000180 50416390609 ASSOCIACAO DE RADIODIFUSAO CIDADE DE CRUZ ALTA Cruz Alta RS
4643 104.9 MHz -6.594722 -35.055278 1 K 1011110250 10877144000184 50411382063 ASSOCIAÇÃO DE DESENVOLVIMENTO CULTURAL DA RÁDI… Mataraca PB
stel = read_stel(pasta='D:\OneDrive - ANATEL\GR01FI3\BaseDados', update=True)

Os dados do Stel não serão ilustrados aqui por se tratar de dados de telecomunicação privados, os demais dados de radiodifusão são públicos e disponíveis para qualquer interessado consultar

Se o argumento update=True for fornecido ou arquivo local não existir, a base de dados é atualizada por meio da função update_stel.

A função update_stel somente irá funcionar caso o PC estiver plugado na rede interna cabeada da Anatel.

mosaico = read_mosaico(pasta='D:\OneDrive - ANATEL\GR01FI3\BaseDados') ; mosaico.tail()
Baixando as Estações do Mosaico...
Baixando o Plano Básico das Estações...
Baixando o Histórico de Atualizações...
Kbô
Serviço Situação Entidade Fistel CNPJ Município UF Id Número da Estação Classe Frequência Latitude Longitude Num_Ato Órgao Data_Ato
21146 RTVD TV-C2 M. V. L - COMMUNICARE TELECOMUNICACOES LTDA 50419656170 12071310000186 Parauapebas PA 5f2068e65ace5 C 503 -6,0678 -49,9037 7588 ORLE 2020-12-10 18:21:09
21147 RTVD TV-C1 MERCES COMUNICACOES LTDA 50419663118 11322505000199 Delmiro Gouveia AL 5f218fcfb0d84 C 545 -9,3853 -37,9987 9430 ORLE 2017-06-09 00:00:00
21148 RTVD TV-C1 FUNDACAO EDUCACIONAL E CULTURAL DE IPANEMA 50433856696 04608796000110 Sabará MG 5f32c1c918e6b C 207 -19,89667 -43,80722 3301 ORLE 2020-06-23 00:00:00
21149 FM FM-C2 RADIO ITAPIRANGA LTDA 50433860456 84375872000124 Itapiranga SC 5f68d432841a5 B1 105,1 -27,15778 -53,69583 567 ORLE 2021-01-26 17:20:30
21150 FM FM-C1 EMISSORAS SUL BRASILEIRAS LTDA 50433937009 95818506000119 Horizontina RS 5f8dcc96f23f9 B1 100,3 -27,62833 -54,30528 3166 ORLE 2020-06-13 00:00:00

Se o argumento update=True for fornecido ou o arquivo local não existir, a base de dados é atualizada por meio da função update_mosaico.

A função update_mosaico usa a base de dados Pública do Spectrum E, portanto basta somente estar conectado na internet 😎.

A função update_base combina as 3 atualizações de base anteriormente descritas.