Repetidoras no MMAR - Radioamador
Foi introduzido no MMAR - Radioamador a possibilidade de consultar repetidoras a partir da localização geográfica, bastando a gente digitar uma coordenada e o raio de busca. O único ponto de atenção é que apesar de muito funcional e rápido, algumas repetidoras devem estar com o cadastro errado, até porque tem coordenadas no meio do Atlântico Norte.
Para consultar basta clicar em Consultar Repetidora na aba Opções e inserir a coordenada geografica. Dica: você pode copiar diretamente do Google Maps e ao colar ele quebrará automaticamente entre latitude e longitude:

Plotando em um mapa as localizações
Ver a localização geográfica já é muito útil, mas é muito mais interessante visualizar os pontos em um mapa. Para isso é possível utilizar um script para renderizar no mapa a localização e o resultado você pode ver abaixo:
Abrir mapa de repetidoras em tela cheia
O script de geração deste mapa, baseado no arquivo CSV que pode ser recuperado na consulta do MMAR - Radioamador, é este e para executa-lo basta rodar o comando uv run plot.py no mesmo diretório onde estiver o CSV com o nome repetidoras.csv:
# /// script
# dependencies = [
# "pandas",
# "folium",
# "datetime"
# ]
# ///
import pandas as pd
import folium
from folium.plugins import MarkerCluster, Search
from datetime import datetime
import branca
# 1. Carregar dados
df = pd.read_csv('repetidoras.csv', sep=';')
# 2. Criar mapa
mapa = folium.Map(
location=[-15.7801, -47.9292],
zoom_start=4,
tiles='CartoDB positron'
)
# 3. Adicionar a data de referência (Texto flutuante)
data_hoje = datetime.now().strftime("%d/%m/%Y")
texto_data = f"""
<div style="position: fixed;
bottom: 50px; left: 50px; width: 200px; height: 30px;
background-color: white; border:2px solid grey; z-index:9999; font-size:14px;
padding: 5px; text-align: center;"> Gerado em: {data_hoje}
</div>
"""
mapa.get_root().html.add_child(folium.Element(texto_data))
# 4. Estrutura de Clusters e Busca (Mantida da versão anterior)
marker_cluster = MarkerCluster(name="Repetidoras").add_to(mapa)
search_group = folium.FeatureGroup(name="Busca").add_to(mapa)
for _, linha in df.iterrows():
info = f"<b>{linha['Indicativo']}</b><br>Freq: {linha['Frequência de Operação']}"
# Marcador visual
marker = folium.Marker(
location=[linha['Latitude'], linha['Longitude']],
popup=folium.Popup(info, max_width=300),
icon=folium.Icon(color='blue', icon='tower', prefix='fa')
).add_to(marker_cluster)
# Marcador invisível para busca
search_marker = folium.CircleMarker(
location=[linha['Latitude'], linha['Longitude']],
radius=0, fill=False, stroke=False
)
search_marker.search_label = str(linha['Indicativo'])
search_marker.add_to(search_group)
# 5. Adicionar a busca
Search(
layer=search_group,
search_label='search_label',
placeholder="Buscar Indicativo...",
collapsed=False,
search_zoom=14
).add_to(mapa)
mapa.save('mapa_repetidoras.html')
print(f"Mapa gerado com sucesso! Data de referência: {data_hoje}")