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)

View File

@@ -25,7 +25,8 @@ def processar_Classificao_Veranicos():
for file in files:
print(f"Encontrada pasta: {file}")
qtd_veranicos,estacao = carregar_estacao_com_veranico(file)
# print(estacao)
print(estacao)
rodar_decendio(decendio,qtd_veranicos, estacao, file)

View File

@@ -22,6 +22,8 @@ def filtro_setembro_abril_estacao(dados, output_csv):
# Ler os dados do CSV
dados_df = pd.read_csv(dados, sep=';', decimal=',', parse_dates=['DATA'], dayfirst=True)
#dados_df['CODIGO'] = dados_df['CODIGO'].astype(int)
@@ -37,6 +39,8 @@ def filtro_setembro_abril_estacao(dados, output_csv):
dados_selecionados = pd.concat([dados_selecionados, dados_df[selecao]])
# Salvar os dados selecionados em um novo arquivo CSV
dados_selecionados['CODIGO'] = dados_selecionados['CODIGO'].astype(int)
dados_selecionados.to_csv(output_csv, sep=';', encoding='utf-8', index=False, decimal=',')
@@ -72,6 +76,7 @@ def estacaochuvosa(dados, output_csv):
# Tratar valores NaN substituindo por 0
dados_df['VALOR'] = dados_df['VALOR'].fillna(0)
dados_df['CODIGO'] = dados_df['CODIGO'].astype(int)
except Exception as e:
print(f"Erro geral ao converter a coluna 'VALOR': {e}")

Binary file not shown.

View File

@@ -0,0 +1,12 @@
2044037
2143055
2144032
2144036
2145034
2145039
2145044
2244095
2245107
2245112
2245118
2246056

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,8 @@
1541010
1541013
1541025
1542014
1542015
1542026
1542027
1542028

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More