Skip to content

Commit d73d876

Browse files
committed
Resolvendo problemas com a renderização do layout; incluindo funcionalidade para habilitar/dasabilitar as abas do dashboard através de true/false no script monitor.py; adicionando função para verificar se os arquivos de catálogo existem antes de tentar abrí-los com o intake; ajustando todas as urls para usar o dataserver do CPTEC
1 parent 8dcfb3c commit d73d876

11 files changed

Lines changed: 2479 additions & 2291 deletions

monitor.py

Lines changed: 96 additions & 120 deletions
Large diffs are not rendered by default.

monitor_anl.py

Lines changed: 235 additions & 188 deletions
Large diffs are not rendered by default.

monitor_armobs.py

Lines changed: 429 additions & 387 deletions
Large diffs are not rendered by default.

monitor_berror.py

Lines changed: 466 additions & 423 deletions
Large diffs are not rendered by default.

monitor_cstatus.py

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
1-
#! /usr/bin/env python3
2-
3-
import io
4-
import panel as pn
1+
import requests
52
import pandas as pd
6-
7-
#from bokeh.models import HTMLTemplateFormatter
8-
from bokeh.models import ColumnDataSource, HTMLTemplateFormatter
3+
import panel as pn
4+
import io
5+
from bokeh.models import HTMLTemplateFormatter
96

107
from monitor_texts import MonitoringAppTexts
118

@@ -23,7 +20,7 @@ def LogoINPE(self):
2320
logo_inpe = pn.Column(
2421
pn.Row(
2522
pn.layout.HSpacer(),
26-
inpe_logo,
23+
inpe_logo,
2724
pn.layout.HSpacer(),
2825
))
2926
return logo_inpe
@@ -54,7 +51,7 @@ def LayoutSidebar(self):
5451
logos = pn.Column(
5552
pn.Row(
5653
pn.layout.HSpacer(),
57-
inpe_logo,
54+
inpe_logo,
5855
pn.layout.HSpacer(),
5956
),
6057
pn.Row(
@@ -66,10 +63,22 @@ def LayoutSidebar(self):
6663
return pn.Column(logos)
6764

6865
def LayoutMain(self):
69-
70-
self.logs = "http://ftp1.cptec.inpe.br/pesquisa/das/carlos.bastarz/SMNAMonitoringApp/logs/logs.csv"
71-
df = pd.read_csv(self.logs)
72-
66+
self.logs = "https://dataserver.cptec.inpe.br/dataserver_dimnt/das/carlos.bastarz/SMNAMonitoringApp/logs/logs.csv"
67+
68+
# --- Verifica se a URL existe antes de ler ---
69+
try:
70+
response = requests.head(self.logs, allow_redirects=True, timeout=5)
71+
if response.status_code >= 400:
72+
print(f"❌ [CURRENT STATUS] Logs não encontrados: {self.logs} (status {response.status_code})")
73+
df = pd.DataFrame() # cria um DataFrame vazio
74+
else:
75+
print(f"✅ [CURRENT STATUS] Logs acessíveis: {self.logs}")
76+
df = pd.read_csv(self.logs)
77+
except requests.RequestException as e:
78+
print(f"⚠️ [CURRENT STATUS] Erro ao acessar {self.logs}: {e}")
79+
df = pd.DataFrame() # cria um DataFrame vazio
80+
81+
# --- Configuração do Tabulator ---
7382
link_formatters = {
7483
"Action GSI": HTMLTemplateFormatter(template="<code><%= value %></code>"),
7584
"Action PRE": HTMLTemplateFormatter(template="<code><%= value %></code>"),
@@ -83,46 +92,39 @@ def LayoutMain(self):
8392
}
8493
"""
8594

86-
cs_table = pn.widgets.Tabulator(df,
87-
#selectable=False,
95+
cs_table = pn.widgets.Tabulator(df,
8896
show_index=False,
8997
disabled=True,
90-
#layout='fit_data_table',
9198
theme="bootstrap4",
92-
#frozen_rows=[-2, -1],
9399
text_align='center',
94100
selectable='toggle',
95101
stylesheets=[stylesheet],
96102
formatters=link_formatters)
97103

98104
def get_csv():
99-
io_buffer = io.BytesIO()
100-
df.to_csv(io_buffer, index=False)
101-
io_buffer.seek(0) # Retorna ao início do buffer
102-
return io_buffer
105+
io_buffer = io.BytesIO()
106+
df.to_csv(io_buffer, index=False)
107+
io_buffer.seek(0)
108+
return io_buffer
103109

104110
file_download = pn.widgets.FileDownload(
105111
icon='download',
106-
callback=get_csv,
112+
callback=get_csv,
107113
filename='current_status.csv',
108114
button_type='success',
109115
width=310
110116
)
111117

112118
welcomeText1 = pn.pane.Markdown("""
113119
# Current Status
114-
115120
Check the current status from the operational system in the table below.
116121
""")
117122

118123
welcomeText2 = pn.pane.Markdown("""
119124
**Legend:**
120-
121125
* **A** = Awaiting
122126
* **C** = Completed
123127
* **P** = Processing
124128
""")
125129

126-
#placeholder = pn.Column('####################', height=1300)
127-
128130
return pn.Column(welcomeText1, cs_table, file_download, welcomeText2, monitor_warning_bottom_main, sizing_mode='stretch_width')

monitor_dates.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ def openFile(self, log):
1515
return decoded_line
1616

1717
def getDates(self):
18-
sdate = "http://ftp1.cptec.inpe.br/pesquisa/das/carlos.bastarz/SMNAMonitoringApp/aweekbefore.txt"
19-
edate = "http://ftp1.cptec.inpe.br/pesquisa/das/carlos.bastarz/SMNAMonitoringApp/todaym1H.txt"
18+
sdate = "https://dataserver.cptec.inpe.br/dataserver_dimnt/das/carlos.bastarz/SMNAMonitoringApp/aweekbefore.txt"
19+
edate = "https://dataserver.cptec.inpe.br/dataserver_dimnt/das/carlos.bastarz/SMNAMonitoringApp/todaym1H.txt"
2020

2121
start_date = self.openFile(sdate)
2222
end_date = self.openFile(edate)

monitor_jo.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@
4141
pn.extension('floatpanel')
4242
pn.extension(sizing_mode='stretch_width', notifications=True)
4343

44-
#dfs = pd.read_csv('http://ftp1.cptec.inpe.br/pesquisa/das/carlos.bastarz/SMNAMonitoringApp/jo/jo_table_series.csv', header=[0, 1], parse_dates=[('df_preOper', 'Date'), ('df_preOper_new', 'Date'), ('df_JGerd', 'Date')])
45-
#dfs = pd.read_csv('http://ftp1.cptec.inpe.br/pesquisa/das/carlos.bastarz/SMNAMonitoringApp/jo/jo_table_series.csv', header=[0, 1], parse_dates=[('df_preOper', 'Date'), ('df_JGerd', 'Date')])
46-
dfs = pd.read_csv('http://ftp1.cptec.inpe.br/pesquisa/das/carlos.bastarz/SMNAMonitoringApp/jo/jo_table_series.csv', header=[0, 1], parse_dates=[('df_preOper', 'Date')])
44+
#dfs = pd.read_csv('https://dataserver.cptec.inpe.br/dataserver_dimnt/das/carlos.bastarz/SMNAMonitoringApp/jo/jo_table_series.csv', header=[0, 1], parse_dates=[('df_preOper', 'Date'), ('df_preOper_new', 'Date'), ('df_JGerd', 'Date')])
45+
#dfs = pd.read_csv('https://dataserver.cptec.inpe.br/dataserver_dimnt/das/carlos.bastarz/SMNAMonitoringApp/jo/jo_table_series.csv', header=[0, 1], parse_dates=[('df_preOper', 'Date'), ('df_JGerd', 'Date')])
46+
dfs = pd.read_csv('https://dataserver.cptec.inpe.br/dataserver_dimnt/das/carlos.bastarz/SMNAMonitoringApp/jo/jo_table_series.csv', header=[0, 1], parse_dates=[('df_preOper', 'Date')])
4747

4848
# Separa os dataframes de interesse
4949
df_preOper = dfs.df_preOper

monitor_logs.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,10 @@ def showLogs(date):
7676
datepfct = calcDate(date, int(264))
7777

7878
logs = {
79-
"GSI": f"http://ftp1.cptec.inpe.br/pesquisa/das/carlos.bastarz/SMNAMonitoringApp/logs/gsi/gsi_{date}.log",
80-
"MODEL": f"http://ftp1.cptec.inpe.br/pesquisa/das/carlos.bastarz/SMNAMonitoringApp/logs/model/model_{date}.{datemfct}.log",
81-
"POS": f"http://ftp1.cptec.inpe.br/pesquisa/das/carlos.bastarz/SMNAMonitoringApp/logs/pos/pos_{date}.{datepfct}.log",
82-
"PRE": f"http://ftp1.cptec.inpe.br/pesquisa/das/carlos.bastarz/SMNAMonitoringApp/logs/pre/pre_{date}.log"
79+
"GSI": f"https://dataserver.cptec.inpe.br/dataserver_dimnt/das/carlos.bastarz/SMNAMonitoringApp/logs/gsi/gsi_{date}.log",
80+
"MODEL": f"https://dataserver.cptec.inpe.br/dataserver_dimnt/das/carlos.bastarz/SMNAMonitoringApp/logs/model/model_{date}.{datemfct}.log",
81+
"POS": f"https://dataserver.cptec.inpe.br/dataserver_dimnt/das/carlos.bastarz/SMNAMonitoringApp/logs/pos/pos_{date}.{datepfct}.log",
82+
"PRE": f"https://dataserver.cptec.inpe.br/dataserver_dimnt/das/carlos.bastarz/SMNAMonitoringApp/logs/pre/pre_{date}.log"
8383
}
8484

8585
tabs = []
@@ -118,4 +118,4 @@ def showLogs(date):
118118

119119
def LayoutSidebar():
120120
card_parameters = pn.Card(pn.Row(date, pn.widgets.TooltipIcon(value='Choose a date', align='start')), title='Parameters', collapsed=False)
121-
return pn.Column(card_parameters)
121+
return pn.Column(card_parameters)

0 commit comments

Comments
 (0)