This commit is contained in:
2025-06-01 16:44:49 -03:00
parent 4ce87d015e
commit 1e1056ebf8
231 changed files with 447846 additions and 49 deletions

View File

@@ -76,7 +76,7 @@ def carregar_arquivoxls_mais_proxima():
processar_arquivos_xls(diretorio, output_csv)
print(output_csv)
sleep(3)
processar_arquivos_xls2(output_csv)
processar_arquivos_xls10(output_csv)
# Função para calcular a distância euclidiana
def calcular_distancia(lat1, lon1, lat2, lon2):
@@ -104,33 +104,22 @@ def processar_arquivos_xls(arquivo, output_csv):
df.to_csv(output_csv, sep=";", encoding='utf-8', decimal='.', index=False)
def processar_arquivos_xls2(output_csv):
def processar_arquivos_xls10(output_csv):
df = pd.read_csv(output_csv, encoding='utf-8', sep=';', decimal='.')
df['1p'] = ''
df['2p'] = ''
df['3p'] = ''
df['4p'] = ''
df['5p'] = ''
df['6p'] = ''
df['7p'] = ''
# df['8p'] = ''
#df['9p'] = ''
#df['10p'] = ''
df['1c'] = ''
df['2c'] = ''
df['3c'] = ''
df['4c'] = ''
df['5c'] = ''
df['6c'] = ''
df['7c'] = ''
# df['8c'] = ''
#df['9c'] = ''
#df['10c'] = ''
# Criar dinamicamente as colunas de nomes e códigos
# Verificar quantas estações únicas existem
codigos_unicos = df['CODIGO'].dropna().unique()
qtd_estacoes = len(codigos_unicos)
# Se tiver mais de 10 estações únicas, limitar a 10
QTD = min(qtd_estacoes, 10)
print(f"Estações únicas encontradas: {qtd_estacoes}")
print(f"QTD definido para análise de vizinhança: {QTD}")
for i in range(1, QTD ):
df[f'{i}p'] = ''
df[f'{i}c'] = ''
df['LATITUDE'] = pd.to_numeric(df['LATITUDE'], errors='coerce')
df['LONGITUDE'] = pd.to_numeric(df['LONGITUDE'], errors='coerce')
@@ -140,29 +129,11 @@ def processar_arquivos_xls2(output_csv):
lat1, lon1 = row['LATITUDE'], row['LONGITUDE']
distancias = df.apply(lambda x: calcular_distancia(lat1, lon1, x['LATITUDE'], x['LONGITUDE']), axis=1)
distancias[i] = np.inf # Excluir a própria estação
proximas = distancias.nsmallest(7).index # Pegar os índices das três menores distâncias************
proximas = distancias.nsmallest(QTD).index # Pegar os índices das três menores distâncias************
df.at[i, '1p'] = df.at[proximas[0], 'NOME']
df.at[i, '2p'] = df.at[proximas[1], 'NOME']
df.at[i, '3p'] = df.at[proximas[2], 'NOME']
df.at[i, '4p'] = df.at[proximas[3], 'NOME']
df.at[i, '5p'] = df.at[proximas[4], 'NOME']
df.at[i, '6p'] = df.at[proximas[5], 'NOME']
df.at[i, '7p'] = df.at[proximas[6], 'NOME']
# df.at[i, '8p'] = df.at[proximas[7], 'NOME']
#df.at[i, '9p'] = df.at[proximas[8], 'NOME']
#df.at[i, '10p'] = df.at[proximas[9], 'NOME']
df.at[i, '1c'] = df.at[proximas[0], 'CODIGO']
df.at[i, '2c'] = df.at[proximas[1], 'CODIGO']
df.at[i, '3c'] = df.at[proximas[2], 'CODIGO']
df.at[i, '4c'] = df.at[proximas[3], 'CODIGO']
df.at[i, '5c'] = df.at[proximas[4], 'CODIGO']
df.at[i, '6c'] = df.at[proximas[5], 'CODIGO']
df.at[i, '7c'] = df.at[proximas[6], 'CODIGO']
# df.at[i, '8c'] = df.at[proximas[7], 'CODIGO']
# df.at[i, '9c'] = df.at[proximas[8], 'CODIGO']
# df.at[i, '10c'] = df.at[proximas[9], 'CODIGO']
for j in range(QTD):
df.at[i, f'{j+1}p'] = str(df.at[proximas[j], 'NOME'])
df.at[i, f'{j+1}c'] = str(int(df.at[proximas[j], 'CODIGO']))
df.to_csv(output_csv, sep=";", encoding='utf-8', decimal=',', index=False)