salvando
This commit is contained in:
+17
-46
@@ -76,7 +76,7 @@ def carregar_arquivoxls_mais_proxima():
|
|||||||
processar_arquivos_xls(diretorio, output_csv)
|
processar_arquivos_xls(diretorio, output_csv)
|
||||||
print(output_csv)
|
print(output_csv)
|
||||||
sleep(3)
|
sleep(3)
|
||||||
processar_arquivos_xls2(output_csv)
|
processar_arquivos_xls10(output_csv)
|
||||||
|
|
||||||
# Função para calcular a distância euclidiana
|
# Função para calcular a distância euclidiana
|
||||||
def calcular_distancia(lat1, lon1, lat2, lon2):
|
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)
|
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 = pd.read_csv(output_csv, encoding='utf-8', sep=';', decimal='.')
|
||||||
df['1p'] = ''
|
# Criar dinamicamente as colunas de nomes e códigos
|
||||||
df['2p'] = ''
|
# Verificar quantas estações únicas existem
|
||||||
df['3p'] = ''
|
codigos_unicos = df['CODIGO'].dropna().unique()
|
||||||
df['4p'] = ''
|
qtd_estacoes = len(codigos_unicos)
|
||||||
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'] = ''
|
|
||||||
|
|
||||||
|
|
||||||
|
# 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['LATITUDE'] = pd.to_numeric(df['LATITUDE'], errors='coerce')
|
||||||
df['LONGITUDE'] = pd.to_numeric(df['LONGITUDE'], 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']
|
lat1, lon1 = row['LATITUDE'], row['LONGITUDE']
|
||||||
distancias = df.apply(lambda x: calcular_distancia(lat1, lon1, x['LATITUDE'], x['LONGITUDE']), axis=1)
|
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
|
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']
|
for j in range(QTD):
|
||||||
df.at[i, '2p'] = df.at[proximas[1], 'NOME']
|
df.at[i, f'{j+1}p'] = str(df.at[proximas[j], 'NOME'])
|
||||||
df.at[i, '3p'] = df.at[proximas[2], 'NOME']
|
df.at[i, f'{j+1}c'] = str(int(df.at[proximas[j], 'CODIGO']))
|
||||||
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']
|
|
||||||
|
|
||||||
df.to_csv(output_csv, sep=";", encoding='utf-8', decimal=',', index=False)
|
df.to_csv(output_csv, sep=";", encoding='utf-8', decimal=',', index=False)
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,8 @@ def processar_Classificao_Veranicos():
|
|||||||
for file in files:
|
for file in files:
|
||||||
print(f"Encontrada pasta: {file}")
|
print(f"Encontrada pasta: {file}")
|
||||||
qtd_veranicos,estacao = carregar_estacao_com_veranico(file)
|
qtd_veranicos,estacao = carregar_estacao_com_veranico(file)
|
||||||
# print(estacao)
|
print(estacao)
|
||||||
|
|
||||||
rodar_decendio(decendio,qtd_veranicos, estacao, file)
|
rodar_decendio(decendio,qtd_veranicos, estacao, file)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ def filtro_setembro_abril_estacao(dados, output_csv):
|
|||||||
# Ler os dados do CSV
|
# Ler os dados do CSV
|
||||||
dados_df = pd.read_csv(dados, sep=';', decimal=',', parse_dates=['DATA'], dayfirst=True)
|
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]])
|
dados_selecionados = pd.concat([dados_selecionados, dados_df[selecao]])
|
||||||
|
|
||||||
# Salvar os dados selecionados em um novo arquivo CSV
|
# 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=',')
|
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
|
# Tratar valores NaN substituindo por 0
|
||||||
dados_df['VALOR'] = dados_df['VALOR'].fillna(0)
|
dados_df['VALOR'] = dados_df['VALOR'].fillna(0)
|
||||||
|
dados_df['CODIGO'] = dados_df['CODIGO'].astype(int)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Erro geral ao converter a coluna 'VALOR': {e}")
|
print(f"Erro geral ao converter a coluna 'VALOR': {e}")
|
||||||
|
|||||||
Binary file not shown.
@@ -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.
@@ -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
Reference in New Issue
Block a user