Spaces:
Running
Running
drguilhermeapolinario
commited on
Upload 9 files
Browse files- views/cad_cid.py +350 -0
- views/exame.py +83 -0
- views/flamengo_ibge2022.geojson +1934 -0
- views/maps.py +187 -0
- views/mesames.py +269 -0
- views/newchatgroq.py +175 -0
- views/pdf_chat.py +7 -0
- views/rag_med.py +7 -0
- views/rci.py +632 -0
views/cad_cid.py
ADDED
@@ -0,0 +1,350 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import pandas as pd
|
2 |
+
import plotly.express as px
|
3 |
+
import streamlit as st
|
4 |
+
from pathlib import Path
|
5 |
+
from streamlit_extras.add_vertical_space import add_vertical_space
|
6 |
+
from streamlit_extras.stylable_container import stylable_container
|
7 |
+
|
8 |
+
|
9 |
+
st.title("Atualização de cadastro - UBS Flamengo")
|
10 |
+
|
11 |
+
add_vertical_space(10)
|
12 |
+
|
13 |
+
# Load the Excel file
|
14 |
+
@st.cache_data
|
15 |
+
def load_data():
|
16 |
+
file_path = Path("src/atual.xlsx")
|
17 |
+
df = pd.read_excel(file_path, sheet_name="ANALISE", engine='openpyxl')
|
18 |
+
df["ATUALIZADO"] = pd.to_datetime(df["ATUALIZADO"], errors="coerce", dayfirst=True)
|
19 |
+
df["Trimestre"] = df["ATUALIZADO"].dt.to_period("Q")
|
20 |
+
df["Mês"] = df["ATUALIZADO"].dt.to_period("M")
|
21 |
+
df["Semestre"] = df["ATUALIZADO"].dt.to_period("6M")
|
22 |
+
|
23 |
+
# Convert RUA column to string to ensure consistent sorting
|
24 |
+
df["RUA"] = df["RUA"].astype(str)
|
25 |
+
|
26 |
+
return df
|
27 |
+
|
28 |
+
#df = load_data()
|
29 |
+
uploaded_file = st.sidebar.file_uploader("Adicione o arquivo Excel", type= ".xlsx")
|
30 |
+
if uploaded_file is not None:
|
31 |
+
df = load_data()
|
32 |
+
|
33 |
+
|
34 |
+
# Custom CSS for dark theme
|
35 |
+
st.markdown(
|
36 |
+
"""
|
37 |
+
<style>
|
38 |
+
.reportview-container {
|
39 |
+
background: #0e1117;
|
40 |
+
color: #fafafa;
|
41 |
+
}
|
42 |
+
.big-font {
|
43 |
+
font-size:30px !important;
|
44 |
+
font-weight: bold;
|
45 |
+
color: #fafafa;
|
46 |
+
}
|
47 |
+
.stSelectbox [data-baseweb="select"] {
|
48 |
+
background-color: #262730;
|
49 |
+
}
|
50 |
+
.stSelectbox [data-baseweb="select"] > div {
|
51 |
+
background-color: #262730;
|
52 |
+
color: #fafafa;
|
53 |
+
}
|
54 |
+
</style>
|
55 |
+
""",
|
56 |
+
unsafe_allow_html=True,
|
57 |
+
)
|
58 |
+
|
59 |
+
if uploaded_file is not None:
|
60 |
+
col1, col2, col3, col4 = st.columns([1, 1, 1, 3])
|
61 |
+
with col1:
|
62 |
+
rua_selecionada = st.selectbox("Selecione a Rua", sorted(df["RUA"].unique()))
|
63 |
+
with col2:
|
64 |
+
anos_disponiveis = sorted(df["ATUALIZADO"].dt.year.dropna().unique(), reverse=True)
|
65 |
+
anos_disponiveis.insert(0, "Total")
|
66 |
+
ano_selecionado = st.selectbox("Selecione o Ano", anos_disponiveis)
|
67 |
+
with col3:
|
68 |
+
granularidade = st.selectbox(
|
69 |
+
"Selecione a Granularidade", ["Mensal", "Trimestral", "Semestral"]
|
70 |
+
)
|
71 |
+
with col4:
|
72 |
+
st.write('')
|
73 |
+
# Filter data
|
74 |
+
if ano_selecionado == "Total":
|
75 |
+
dados_filtrados = df[df["RUA"] == rua_selecionada]
|
76 |
+
else:
|
77 |
+
dados_filtrados = df[
|
78 |
+
(df["RUA"] == rua_selecionada) & (df["ATUALIZADO"].dt.year == ano_selecionado)
|
79 |
+
]
|
80 |
+
|
81 |
+
# Add period column based on granularity
|
82 |
+
if granularidade == "Mensal":
|
83 |
+
dados_filtrados["Período"] = dados_filtrados["ATUALIZADO"].dt.strftime("%m-%Y")
|
84 |
+
elif granularidade == "Trimestral":
|
85 |
+
dados_filtrados["Período"] = (
|
86 |
+
dados_filtrados["ATUALIZADO"].dt.to_period("Q").astype(str)
|
87 |
+
)
|
88 |
+
else: # Semestral
|
89 |
+
dados_filtrados["Período"] = (
|
90 |
+
dados_filtrados["ATUALIZADO"].dt.to_period("6M").astype(str)
|
91 |
+
)
|
92 |
+
|
93 |
+
# Function to create scatter plot
|
94 |
+
def create_scatter_plot(data, title):
|
95 |
+
fig = px.scatter(
|
96 |
+
data,
|
97 |
+
x="ATUALIZADO",
|
98 |
+
y="IDADE",
|
99 |
+
color="Período",
|
100 |
+
hover_data=["NOME", "ATUALIZADO", "Período"],
|
101 |
+
title=title,
|
102 |
+
color_discrete_sequence=px.colors.qualitative.Set3,
|
103 |
+
)
|
104 |
+
fig.update_layout(
|
105 |
+
xaxis_title="Período",
|
106 |
+
yaxis_title="Idade",
|
107 |
+
legend_title="Período",
|
108 |
+
plot_bgcolor="#0e1117",
|
109 |
+
paper_bgcolor="#0e1117",
|
110 |
+
font=dict(color="#fafafa"),
|
111 |
+
)
|
112 |
+
fig.update_xaxes(showgrid=True, gridwidth=1, gridcolor='#31333F', tickangle=45)
|
113 |
+
fig.update_yaxes(showgrid=True, gridwidth=1, gridcolor='#31333F')
|
114 |
+
return fig
|
115 |
+
|
116 |
+
# Main scatter plot
|
117 |
+
st.subheader(
|
118 |
+
f"Última Atualização na Rua {rua_selecionada} ({granularidade} - {ano_selecionado})"
|
119 |
+
)
|
120 |
+
|
121 |
+
c1, c2= st.columns([0.8, 0.2])
|
122 |
+
|
123 |
+
with c1:
|
124 |
+
fig = create_scatter_plot(dados_filtrados, f"Pacientes Pendentes de Atualização - {rua_selecionada}")
|
125 |
+
st.plotly_chart(fig, use_container_width=True)
|
126 |
+
|
127 |
+
with c2:
|
128 |
+
total_usuarios = len(dados_filtrados)
|
129 |
+
|
130 |
+
st.dataframe(dados_filtrados[["NOME", "IDADE", "RUA", "NUM", "Período"]].sort_values(by="Período", ascending=True), hide_index=True)
|
131 |
+
|
132 |
+
st.write(f"Total de usuários: {total_usuarios}")
|
133 |
+
add_vertical_space()
|
134 |
+
|
135 |
+
st.write('-----')
|
136 |
+
|
137 |
+
add_vertical_space()
|
138 |
+
|
139 |
+
c3, c4, c5 = st.columns([2, 2, 1])
|
140 |
+
|
141 |
+
with c3:
|
142 |
+
st.markdown('')
|
143 |
+
|
144 |
+
|
145 |
+
with c4:
|
146 |
+
st.subheader("Análise por Faixa Etária")
|
147 |
+
|
148 |
+
with c5:
|
149 |
+
st.markdown('')
|
150 |
+
|
151 |
+
|
152 |
+
co1, co2, co3 = st.columns([2, 2, 2],)
|
153 |
+
with co1:
|
154 |
+
with stylable_container(
|
155 |
+
key="pueri",
|
156 |
+
css_styles="""
|
157 |
+
img {
|
158 |
+
width: 460px;
|
159 |
+
height: 180px;
|
160 |
+
overflow: hidden;
|
161 |
+
position: relative;
|
162 |
+
object-fit: cover;
|
163 |
+
border-radius: 14px; /* Adiciona bordas arredondadas */
|
164 |
+
mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));
|
165 |
+
-webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)); /* For Safari */
|
166 |
+
}
|
167 |
+
""",
|
168 |
+
):
|
169 |
+
st.image("src/images/pueri.jpg")
|
170 |
+
|
171 |
+
with co2:
|
172 |
+
with stylable_container(
|
173 |
+
key="prev",
|
174 |
+
css_styles="""
|
175 |
+
img {
|
176 |
+
width: 460px;
|
177 |
+
height: 180px;
|
178 |
+
overflow: hidden;
|
179 |
+
position: relative;
|
180 |
+
object-fit: cover;
|
181 |
+
border-radius: 14px; /* Adiciona bordas arredondadas */
|
182 |
+
mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));
|
183 |
+
-webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)); /* For Safari */
|
184 |
+
}
|
185 |
+
""",
|
186 |
+
):
|
187 |
+
st.image("src/images/prev.jpg")
|
188 |
+
|
189 |
+
with co3:
|
190 |
+
with stylable_container(
|
191 |
+
key="mamo",
|
192 |
+
css_styles="""
|
193 |
+
img {
|
194 |
+
width: 460px;
|
195 |
+
height: 180px;
|
196 |
+
overflow: hidden;
|
197 |
+
position: relative;
|
198 |
+
object-fit: cover;
|
199 |
+
border-radius: 14px; /* Adiciona bordas arredondadas */
|
200 |
+
mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));
|
201 |
+
-webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)); /* For Safari */
|
202 |
+
}
|
203 |
+
""",
|
204 |
+
):
|
205 |
+
st.image("src/images/mamo.jpg")
|
206 |
+
|
207 |
+
|
208 |
+
# Preventivo (25-64 anos)
|
209 |
+
preventivo = dados_filtrados[
|
210 |
+
(dados_filtrados["IDADE"].between(25, 64)) & (dados_filtrados["SEXO"] == "F")
|
211 |
+
]
|
212 |
+
st.markdown("### Preventivo (25-64 anos)")
|
213 |
+
fig_preventivo = create_scatter_plot(preventivo, f"Preventivo - {rua_selecionada}")
|
214 |
+
st.plotly_chart(fig_preventivo, use_container_width=True)
|
215 |
+
|
216 |
+
|
217 |
+
col1, col2 = st.columns([0.4, 0.6])
|
218 |
+
with col1:
|
219 |
+
st.dataframe(
|
220 |
+
preventivo[["NOME", "RUA", "NUM", "ATUALIZADO", "IDADE", "Período"]].sort_values(
|
221 |
+
by="ATUALIZADO", ascending=False
|
222 |
+
),
|
223 |
+
hide_index=True,
|
224 |
+
)
|
225 |
+
with col2:
|
226 |
+
st.markdown(f"#### Total de usuários: {len(preventivo)}")
|
227 |
+
|
228 |
+
|
229 |
+
|
230 |
+
add_vertical_space()
|
231 |
+
|
232 |
+
st.write('-----')
|
233 |
+
|
234 |
+
add_vertical_space()
|
235 |
+
|
236 |
+
|
237 |
+
# Mamografia (50-69 anos)
|
238 |
+
mamografia = dados_filtrados[
|
239 |
+
(dados_filtrados["IDADE"].between(50, 69)) & (dados_filtrados["SEXO"] == "F")
|
240 |
+
]
|
241 |
+
st.markdown("### Mamografia (50-69 anos)")
|
242 |
+
fig_mamografia = create_scatter_plot(mamografia, f"Mamografia - {rua_selecionada}")
|
243 |
+
st.plotly_chart(fig_mamografia, use_container_width=True)
|
244 |
+
|
245 |
+
|
246 |
+
col1, col2 = st.columns([0.4, 0.6])
|
247 |
+
with col1:
|
248 |
+
st.dataframe(
|
249 |
+
mamografia[["NOME", "RUA", "NUM", "ATUALIZADO", "IDADE", "Período"]].sort_values(
|
250 |
+
by="ATUALIZADO", ascending=False
|
251 |
+
),
|
252 |
+
hide_index=True,
|
253 |
+
)
|
254 |
+
with col2:
|
255 |
+
st.markdown(f"#### Total de usuários: {len(mamografia)}")
|
256 |
+
|
257 |
+
|
258 |
+
|
259 |
+
add_vertical_space()
|
260 |
+
|
261 |
+
st.write('-----')
|
262 |
+
|
263 |
+
add_vertical_space()
|
264 |
+
|
265 |
+
|
266 |
+
st.markdown("### Crianças 0 - 2 anos e 0 - 4 anos.")
|
267 |
+
|
268 |
+
# Crianças até 4 anos
|
269 |
+
criancasdois = dados_filtrados[dados_filtrados["IDADE"] <= 2]
|
270 |
+
# Crianças até 4 anos
|
271 |
+
criancasquatro = dados_filtrados[dados_filtrados["IDADE"] <= 4]
|
272 |
+
|
273 |
+
on = st.toggle("Alterne para ver as crianças até dois anos ou até 4 anos.")
|
274 |
+
if on:
|
275 |
+
st.markdown("### Crianças até 2 anos")
|
276 |
+
fig_criancasdois = create_scatter_plot(criancasdois, f"Crianças até 2 anos - {rua_selecionada}")
|
277 |
+
st.plotly_chart(fig_criancasdois, use_container_width=True)
|
278 |
+
|
279 |
+
col1, col2 = st.columns([0.4, 0.6])
|
280 |
+
with col1:
|
281 |
+
st.dataframe(
|
282 |
+
criancasdois[["NOME", "RUA", "NUM", "ATUALIZADO", "IDADE", "Período"]].sort_values(
|
283 |
+
by="ATUALIZADO", ascending=False
|
284 |
+
),
|
285 |
+
hide_index=True,
|
286 |
+
)
|
287 |
+
with col2:
|
288 |
+
st.markdown(f"#### Total de usuários: {len(criancasdois)}")
|
289 |
+
else:
|
290 |
+
st.markdown("### Crianças até 4 anos")
|
291 |
+
fig_criancasquatro = create_scatter_plot(criancasquatro, f"Crianças até 2 anos - {rua_selecionada}")
|
292 |
+
st.plotly_chart(fig_criancasquatro, use_container_width=True)
|
293 |
+
|
294 |
+
col1, col2 = st.columns([0.4, 0.6])
|
295 |
+
with col1:
|
296 |
+
st.dataframe(
|
297 |
+
criancasquatro[["NOME", "RUA", "NUM", "ATUALIZADO", "IDADE", "Período"]].sort_values(
|
298 |
+
by="ATUALIZADO", ascending=False
|
299 |
+
),
|
300 |
+
hide_index=True,
|
301 |
+
)
|
302 |
+
with col2:
|
303 |
+
st.markdown(f"#### Total de usuários: {len(criancasquatro)}")
|
304 |
+
|
305 |
+
st.write('-----------')
|
306 |
+
# Percentage of updates by period
|
307 |
+
st.subheader(
|
308 |
+
f"Porcentagem de Atualizações por {granularidade} na Rua {rua_selecionada}"
|
309 |
+
)
|
310 |
+
|
311 |
+
period_count = dados_filtrados["Período"].value_counts().sort_index()
|
312 |
+
period_percent = (period_count / len(dados_filtrados)) * 100
|
313 |
+
|
314 |
+
period_data = pd.DataFrame(
|
315 |
+
{
|
316 |
+
"Período": period_count.index,
|
317 |
+
"Porcentagem": period_percent.values.round(2),
|
318 |
+
"Atualizações": period_count.values,
|
319 |
+
}
|
320 |
+
)
|
321 |
+
|
322 |
+
st.dataframe(period_data, hide_index=True)
|
323 |
+
|
324 |
+
fig_period = px.bar(
|
325 |
+
period_data,
|
326 |
+
x="Período",
|
327 |
+
y="Porcentagem",
|
328 |
+
text="Atualizações",
|
329 |
+
title=f"Porcentagem de Atualizações por {granularidade}",
|
330 |
+
color="Porcentagem",
|
331 |
+
color_continuous_scale="Viridis",
|
332 |
+
)
|
333 |
+
|
334 |
+
fig_period.update_traces(
|
335 |
+
texttemplate="%{text}",
|
336 |
+
textposition="outside",
|
337 |
+
hovertemplate="%{x}: %{y:.2f}%<br>Atualizações: %{text}<extra></extra>",
|
338 |
+
)
|
339 |
+
fig_period.update_layout(
|
340 |
+
xaxis_title=granularidade,
|
341 |
+
yaxis_title="Porcentagem",
|
342 |
+
yaxis_tickformat=".2f",
|
343 |
+
plot_bgcolor="white",
|
344 |
+
)
|
345 |
+
fig_period.update_xaxes(showgrid=True, gridwidth=1, gridcolor="lightgray")
|
346 |
+
fig_period.update_yaxes(showgrid=True, gridwidth=1, gridcolor="lightgray")
|
347 |
+
|
348 |
+
st.plotly_chart(fig_period, use_container_width=True)
|
349 |
+
else:
|
350 |
+
st.markdown('# Insira o arquivo com os dados')
|
views/exame.py
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
from openai import OpenAI
|
3 |
+
from langchain.document_loaders import UnstructuredFileLoader
|
4 |
+
|
5 |
+
st.title("Extração de resultados")
|
6 |
+
|
7 |
+
|
8 |
+
def load_document(file_path, mode="single"):
|
9 |
+
loader = UnstructuredFileLoader(file_path, mode=mode)
|
10 |
+
docs = loader.load()
|
11 |
+
|
12 |
+
if mode == "single":
|
13 |
+
return docs[0].page_content, []
|
14 |
+
elif mode == "elements":
|
15 |
+
return " ".join([str(doc.page_content) for doc in docs]), docs
|
16 |
+
|
17 |
+
|
18 |
+
# Sidebar para entrada de chave API e seleção de modelo
|
19 |
+
with st.sidebar:
|
20 |
+
openai_api_key = st.text_input(
|
21 |
+
"OpenAI API Key", key="chatbot_api_key", type="password"
|
22 |
+
)
|
23 |
+
st.markdown(
|
24 |
+
"[Pegue aqui sua chave OpenAI API](https://platform.openai.com/account/api-keys)"
|
25 |
+
)
|
26 |
+
|
27 |
+
uploaded_file = st.file_uploader(
|
28 |
+
"Escolha um arquivo PDF ou imagem", type=["pdf", "png", "jpg", "jpeg", "docx"]
|
29 |
+
)
|
30 |
+
|
31 |
+
if st.button("Limpar Conversa"):
|
32 |
+
st.session_state["messages"] = [
|
33 |
+
{"role": "assistant", "content": "How can I help you?"}
|
34 |
+
]
|
35 |
+
st.experimental_rerun()
|
36 |
+
|
37 |
+
st.title("💬 Chatbot")
|
38 |
+
st.caption("🚀 A Streamlit chatbot powered by OpenAI")
|
39 |
+
|
40 |
+
models = "asst_wXmB8syPqCxPWGtNqiuOXQtn"
|
41 |
+
|
42 |
+
if "messages" not in st.session_state:
|
43 |
+
st.session_state["messages"] = [
|
44 |
+
{"role": "assistant", "content": "How can I help you?"}
|
45 |
+
]
|
46 |
+
|
47 |
+
for msg in st.session_state.messages:
|
48 |
+
st.chat_message(msg["role"]).write(msg["content"])
|
49 |
+
|
50 |
+
|
51 |
+
if prompt := st.chat_input():
|
52 |
+
if not openai_api_key:
|
53 |
+
st.info("Insira sua chave API OpenAI para continuar.")
|
54 |
+
st.stop()
|
55 |
+
|
56 |
+
client = OpenAI(api_key=openai_api_key)
|
57 |
+
st.session_state.messages.append({"role": "user", "content": prompt})
|
58 |
+
st.chat_message("user").write(prompt)
|
59 |
+
response = client.chat.completions.create(
|
60 |
+
model=models, messages=st.session_state.messages
|
61 |
+
)
|
62 |
+
msg = response.choices[0].message.content
|
63 |
+
st.session_state.messages.append({"role": "assistant", "content": msg})
|
64 |
+
st.chat_message("assistant").write(msg)
|
65 |
+
|
66 |
+
|
67 |
+
if uploaded_file is not None:
|
68 |
+
data = load_document(st.file_uploader)
|
69 |
+
if data := st.session_state.get("uploaded_file", None) is not None and st.button(
|
70 |
+
"Enviar", type="primary"
|
71 |
+
):
|
72 |
+
if data is not None:
|
73 |
+
st.session_state.exames({"role": "uploaded_file", "content": data})
|
74 |
+
resposta = client.chat.completions.create(
|
75 |
+
model=models, messages=st.session_state.exames
|
76 |
+
)
|
77 |
+
msg = resposta.choices[0].message.content
|
78 |
+
st.session_state.exames.append({"role": "assistant", "content": msg})
|
79 |
+
st.chat_message("assistant").write(msg)
|
80 |
+
else:
|
81 |
+
st.error("Não foi possível extrair texto do arquivo carregado.")
|
82 |
+
else:
|
83 |
+
st.warning("Por favor, carregue um arquivo antes de enviar.")
|
views/flamengo_ibge2022.geojson
ADDED
@@ -0,0 +1,1934 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"type" : "FeatureCollection",
|
3 |
+
"name" : "MG_Malha_Preliminar_2022",
|
4 |
+
"features" : [
|
5 |
+
{
|
6 |
+
"type" : "Feature",
|
7 |
+
"geometry" : {
|
8 |
+
"type" : "Polygon",
|
9 |
+
"coordinates" : [
|
10 |
+
[
|
11 |
+
[ -44.057807363, -19.958971486 ],
|
12 |
+
[ -44.057817653, -19.95869331 ],
|
13 |
+
[ -44.057816878, -19.958630952 ],
|
14 |
+
[ -44.057810522, -19.958564853 ],
|
15 |
+
[ -44.057798041, -19.958503341 ],
|
16 |
+
[ -44.057775551, -19.958445171 ],
|
17 |
+
[ -44.057733076, -19.958381173 ],
|
18 |
+
[ -44.057679612, -19.95832119 ],
|
19 |
+
[ -44.057621304, -19.958273659 ],
|
20 |
+
[ -44.057558024, -19.958237186 ],
|
21 |
+
[ -44.057473676, -19.958202946 ],
|
22 |
+
[ -44.05726076, -19.95815061 ],
|
23 |
+
[ -44.057081949, -19.958093525 ],
|
24 |
+
[ -44.057300509, -19.958096102 ],
|
25 |
+
[ -44.057503075, -19.958103675 ],
|
26 |
+
[ -44.057732051, -19.958125072 ],
|
27 |
+
[ -44.058038712, -19.958161148 ],
|
28 |
+
[ -44.058881586, -19.958274578 ],
|
29 |
+
[ -44.060115313, -19.958446344 ],
|
30 |
+
[ -44.061832902, -19.958686464 ],
|
31 |
+
[ -44.062742678, -19.958816062 ],
|
32 |
+
[ -44.063521235, -19.958923085 ],
|
33 |
+
[ -44.063696963, -19.958944355 ],
|
34 |
+
[ -44.063861483, -19.958956495 ],
|
35 |
+
[ -44.064034127, -19.958966735 ],
|
36 |
+
[ -44.064168411, -19.958969312 ],
|
37 |
+
[ -44.064999547, -19.958970364 ],
|
38 |
+
[ -44.065096404, -19.958968825 ],
|
39 |
+
[ -44.064796274, -19.959259605 ],
|
40 |
+
[ -44.064756665, -19.959305964 ],
|
41 |
+
[ -44.064660924, -19.959385923 ],
|
42 |
+
[ -44.06447872, -19.959538092 ],
|
43 |
+
[ -44.064467767, -19.959675528 ],
|
44 |
+
[ -44.064464407, -19.959717689 ],
|
45 |
+
[ -44.064462748, -19.959738508 ],
|
46 |
+
[ -44.064436321, -19.959839294 ],
|
47 |
+
[ -44.064406246, -19.95992623 ],
|
48 |
+
[ -44.064367533, -19.960003693 ],
|
49 |
+
[ -44.064281919, -19.960132939 ],
|
50 |
+
[ -44.064230695, -19.960206137 ],
|
51 |
+
[ -44.064191215, -19.960265713 ],
|
52 |
+
[ -44.064151998, -19.960335247 ],
|
53 |
+
[ -44.064113991, -19.960410626 ],
|
54 |
+
[ -44.0640674, -19.960517229 ],
|
55 |
+
[ -44.06405903, -19.96053638 ],
|
56 |
+
[ -44.06402989, -19.960631812 ],
|
57 |
+
[ -44.06400939, -19.960712237 ],
|
58 |
+
[ -44.063993953, -19.960782293 ],
|
59 |
+
[ -44.063986302, -19.960817016 ],
|
60 |
+
[ -44.063813773, -19.961921552 ],
|
61 |
+
[ -44.063808429, -19.961955763 ],
|
62 |
+
[ -44.063676402, -19.961940365 ],
|
63 |
+
[ -44.063403376, -19.961910942 ],
|
64 |
+
[ -44.063297847, -19.96189957 ],
|
65 |
+
[ -44.06042196, -19.96158965 ],
|
66 |
+
[ -44.060401203, -19.961587101 ],
|
67 |
+
[ -44.060336065, -19.961579105 ],
|
68 |
+
[ -44.060320746, -19.961577225 ],
|
69 |
+
[ -44.060206463, -19.961566323 ],
|
70 |
+
[ -44.060196199, -19.961565363 ],
|
71 |
+
[ -44.060120785, -19.961558307 ],
|
72 |
+
[ -44.060105792, -19.961556904 ],
|
73 |
+
[ -44.059454167, -19.96149176 ],
|
74 |
+
[ -44.0594186, -19.961488205 ],
|
75 |
+
[ -44.059402124, -19.961388253 ],
|
76 |
+
[ -44.059149845, -19.960230881 ],
|
77 |
+
[ -44.059133207, -19.960121414 ],
|
78 |
+
[ -44.059120135, -19.959991282 ],
|
79 |
+
[ -44.059116471, -19.959864036 ],
|
80 |
+
[ -44.059120192, -19.959764911 ],
|
81 |
+
[ -44.059132861, -19.95966042 ],
|
82 |
+
[ -44.059165294, -19.959429425 ],
|
83 |
+
[ -44.059188585, -19.959324228 ],
|
84 |
+
[ -44.059194707, -19.959258521 ],
|
85 |
+
[ -44.059199461, -19.959211607 ],
|
86 |
+
[ -44.059207185, -19.959167484 ],
|
87 |
+
[ -44.059211939, -19.959132857 ],
|
88 |
+
[ -44.059216692, -19.959094878 ],
|
89 |
+
[ -44.059219069, -19.959060251 ],
|
90 |
+
[ -44.059220091, -19.959024881 ],
|
91 |
+
[ -44.059217773, -19.958986505 ],
|
92 |
+
[ -44.059213348, -19.958947002 ],
|
93 |
+
[ -44.059204098, -19.958901213 ],
|
94 |
+
[ -44.059195598, -19.958859746 ],
|
95 |
+
[ -44.059181932, -19.958815624 ],
|
96 |
+
[ -44.059159352, -19.958765916 ],
|
97 |
+
[ -44.059130062, -19.958716752 ],
|
98 |
+
[ -44.059085614, -19.9586796 ],
|
99 |
+
[ -44.059021818, -19.958637152 ],
|
100 |
+
[ -44.058978716, -19.958611768 ],
|
101 |
+
[ -44.058933924, -19.958588196 ],
|
102 |
+
[ -44.058881425, -19.95856691 ],
|
103 |
+
[ -44.058828978, -19.958551449 ],
|
104 |
+
[ -44.058755297, -19.958534693 ],
|
105 |
+
[ -44.058611773, -19.958515975 ],
|
106 |
+
[ -44.058445308, -19.958497952 ],
|
107 |
+
[ -44.058374483, -19.958495677 ],
|
108 |
+
[ -44.05831086, -19.958501887 ],
|
109 |
+
[ -44.058248446, -19.958511794 ],
|
110 |
+
[ -44.05818246, -19.958529537 ],
|
111 |
+
[ -44.05811594, -19.958558709 ],
|
112 |
+
[ -44.05806882, -19.95858939 ],
|
113 |
+
[ -44.05802539, -19.958621132 ],
|
114 |
+
[ -44.057993535, -19.958651422 ],
|
115 |
+
[ -44.057948693, -19.958701481 ],
|
116 |
+
[ -44.057902278, -19.958772289 ],
|
117 |
+
[ -44.057870731, -19.958833833 ],
|
118 |
+
[ -44.057807363, -19.958971486 ]
|
119 |
+
]
|
120 |
+
]
|
121 |
+
},
|
122 |
+
"properties" : {
|
123 |
+
"CD_SETOR" : "311860110080005P",
|
124 |
+
"AREA_KM2" : 0.184352,
|
125 |
+
"POP" : 911 }
|
126 |
+
},
|
127 |
+
{
|
128 |
+
"type" : "Feature",
|
129 |
+
"geometry" : {
|
130 |
+
"type" : "Polygon",
|
131 |
+
"coordinates" : [
|
132 |
+
[
|
133 |
+
[ -44.059997268, -19.964183207 ],
|
134 |
+
[ -44.059432058, -19.961572772 ],
|
135 |
+
[ -44.0594186, -19.961488205 ],
|
136 |
+
[ -44.059454167, -19.96149176 ],
|
137 |
+
[ -44.060105792, -19.961556904 ],
|
138 |
+
[ -44.060120785, -19.961558307 ],
|
139 |
+
[ -44.060196199, -19.961565363 ],
|
140 |
+
[ -44.060206463, -19.961566323 ],
|
141 |
+
[ -44.060320746, -19.961577225 ],
|
142 |
+
[ -44.060336065, -19.961579105 ],
|
143 |
+
[ -44.060401203, -19.961587101 ],
|
144 |
+
[ -44.06042196, -19.96158965 ],
|
145 |
+
[ -44.063297847, -19.96189957 ],
|
146 |
+
[ -44.063403376, -19.961910942 ],
|
147 |
+
[ -44.063676402, -19.961940365 ],
|
148 |
+
[ -44.063808429, -19.961955763 ],
|
149 |
+
[ -44.063793407, -19.962050613 ],
|
150 |
+
[ -44.063613664, -19.963185545 ],
|
151 |
+
[ -44.06360457, -19.963327056 ],
|
152 |
+
[ -44.063604311, -19.96347573 ],
|
153 |
+
[ -44.063615346, -19.963604575 ],
|
154 |
+
[ -44.06364295, -19.963747643 ],
|
155 |
+
[ -44.063689398, -19.963877005 ],
|
156 |
+
[ -44.063742743, -19.963997701 ],
|
157 |
+
[ -44.063816182, -19.964121911 ],
|
158 |
+
[ -44.063895386, -19.964232065 ],
|
159 |
+
[ -44.063976523, -19.964339972 ],
|
160 |
+
[ -44.064092359, -19.964449525 ],
|
161 |
+
[ -44.064236617, -19.964553161 ],
|
162 |
+
[ -44.064280305, -19.964578256 ],
|
163 |
+
[ -44.064353445, -19.964620267 ],
|
164 |
+
[ -44.064399984, -19.964647 ],
|
165 |
+
[ -44.064598619, -19.964731983 ],
|
166 |
+
[ -44.064834181, -19.96482397 ],
|
167 |
+
[ -44.065598062, -19.965110517 ],
|
168 |
+
[ -44.065678769, -19.965140792 ],
|
169 |
+
[ -44.066216277, -19.965342422 ],
|
170 |
+
[ -44.066532613, -19.965459301 ],
|
171 |
+
[ -44.066612162, -19.965488693 ],
|
172 |
+
[ -44.066640107, -19.965499018 ],
|
173 |
+
[ -44.070077787, -19.966781649 ],
|
174 |
+
[ -44.070158204, -19.966815505 ],
|
175 |
+
[ -44.070217721, -19.966852018 ],
|
176 |
+
[ -44.070269745, -19.966890762 ],
|
177 |
+
[ -44.070336263, -19.966949194 ],
|
178 |
+
[ -44.070393, -19.967013707 ],
|
179 |
+
[ -44.070430803, -19.967071859 ],
|
180 |
+
[ -44.070467284, -19.967136843 ],
|
181 |
+
[ -44.070543949, -19.96733573 ],
|
182 |
+
[ -44.070561081, -19.967463723 ],
|
183 |
+
[ -44.070552205, -19.967600691 ],
|
184 |
+
[ -44.070515309, -19.967709993 ],
|
185 |
+
[ -44.07050419, -19.967742933 ],
|
186 |
+
[ -44.070453635, -19.967862269 ],
|
187 |
+
[ -44.070440811, -19.96789254 ],
|
188 |
+
[ -44.070379629, -19.967973102 ],
|
189 |
+
[ -44.070285277, -19.968036725 ],
|
190 |
+
[ -44.070125761, -19.968098797 ],
|
191 |
+
[ -44.06825241, -19.968589443 ],
|
192 |
+
[ -44.068102672, -19.968612899 ],
|
193 |
+
[ -44.067992152, -19.968629653 ],
|
194 |
+
[ -44.067870935, -19.968643057 ],
|
195 |
+
[ -44.067649894, -19.968649758 ],
|
196 |
+
[ -44.067580962, -19.968646264 ],
|
197 |
+
[ -44.067540735, -19.968644224 ],
|
198 |
+
[ -44.067504485, -19.968639775 ],
|
199 |
+
[ -44.06743014, -19.968630652 ],
|
200 |
+
[ -44.067300505, -19.96861625 ],
|
201 |
+
[ -44.067179289, -19.968596145 ],
|
202 |
+
[ -44.067096101, -19.968578274 ],
|
203 |
+
[ -44.066990334, -19.968549233 ],
|
204 |
+
[ -44.066812074, -19.968495619 ],
|
205 |
+
[ -44.064961741, -19.967882412 ],
|
206 |
+
[ -44.064911721, -19.967867043 ],
|
207 |
+
[ -44.064829862, -19.96784189 ],
|
208 |
+
[ -44.064776351, -19.967825448 ],
|
209 |
+
[ -44.062569499, -19.967091606 ],
|
210 |
+
[ -44.062437566, -19.967068421 ],
|
211 |
+
[ -44.06240308, -19.96706236 ],
|
212 |
+
[ -44.062394761, -19.967107038 ],
|
213 |
+
[ -44.062382384, -19.967144933 ],
|
214 |
+
[ -44.062362674, -19.967181875 ],
|
215 |
+
[ -44.062333635, -19.967218339 ],
|
216 |
+
[ -44.062305037, -19.967247217 ],
|
217 |
+
[ -44.062268003, -19.967273411 ],
|
218 |
+
[ -44.062224226, -19.967304182 ],
|
219 |
+
[ -44.062178167, -19.96732981 ],
|
220 |
+
[ -44.062136308, -19.967347256 ],
|
221 |
+
[ -44.062092163, -19.967357807 ],
|
222 |
+
[ -44.062027884, -19.96735962 ],
|
223 |
+
[ -44.06198724, -19.967354033 ],
|
224 |
+
[ -44.061946736, -19.9673416 ],
|
225 |
+
[ -44.06190511, -19.967325252 ],
|
226 |
+
[ -44.06186145, -19.967295448 ],
|
227 |
+
[ -44.06182633, -19.967263658 ],
|
228 |
+
[ -44.061799048, -19.967223105 ],
|
229 |
+
[ -44.061783478, -19.96717882 ],
|
230 |
+
[ -44.061776795, -19.967143898 ],
|
231 |
+
[ -44.061773186, -19.967104421 ],
|
232 |
+
[ -44.061774385, -19.967066049 ],
|
233 |
+
[ -44.061780628, -19.967019823 ],
|
234 |
+
[ -44.061794932, -19.966971002 ],
|
235 |
+
[ -44.061823475, -19.966914759 ],
|
236 |
+
[ -44.061865685, -19.966856839 ],
|
237 |
+
[ -44.061842182, -19.96683579 ],
|
238 |
+
[ -44.061744708, -19.966748494 ],
|
239 |
+
[ -44.061546666, -19.966576473 ],
|
240 |
+
[ -44.061461101, -19.966490217 ],
|
241 |
+
[ -44.061396023, -19.966408282 ],
|
242 |
+
[ -44.061334658, -19.96631613 ],
|
243 |
+
[ -44.061294512, -19.966234407 ],
|
244 |
+
[ -44.061253992, -19.966122055 ],
|
245 |
+
[ -44.061187592, -19.965881127 ],
|
246 |
+
[ -44.060780904, -19.964029312 ],
|
247 |
+
[ -44.060715775, -19.964042111 ],
|
248 |
+
[ -44.06067767, -19.9640496 ],
|
249 |
+
[ -44.059997268, -19.964183207 ]
|
250 |
+
]
|
251 |
+
]
|
252 |
+
},
|
253 |
+
"properties" : {
|
254 |
+
"CD_SETOR" : "311860110080006P",
|
255 |
+
"AREA_KM2" : 0.401953,
|
256 |
+
"POP" : 653 }
|
257 |
+
},
|
258 |
+
{
|
259 |
+
"type" : "Feature",
|
260 |
+
"geometry" : {
|
261 |
+
"type" : "Polygon",
|
262 |
+
"coordinates" : [
|
263 |
+
[
|
264 |
+
[ -44.057807363, -19.958971486 ],
|
265 |
+
[ -44.057870731, -19.958833833 ],
|
266 |
+
[ -44.057902278, -19.958772289 ],
|
267 |
+
[ -44.057948693, -19.958701481 ],
|
268 |
+
[ -44.057993535, -19.958651422 ],
|
269 |
+
[ -44.05802539, -19.958621132 ],
|
270 |
+
[ -44.05806882, -19.95858939 ],
|
271 |
+
[ -44.05811594, -19.958558709 ],
|
272 |
+
[ -44.05818246, -19.958529537 ],
|
273 |
+
[ -44.058248446, -19.958511794 ],
|
274 |
+
[ -44.05831086, -19.958501887 ],
|
275 |
+
[ -44.058374483, -19.958495677 ],
|
276 |
+
[ -44.058445308, -19.958497952 ],
|
277 |
+
[ -44.058611773, -19.958515975 ],
|
278 |
+
[ -44.058755297, -19.958534693 ],
|
279 |
+
[ -44.058828978, -19.958551449 ],
|
280 |
+
[ -44.058881425, -19.95856691 ],
|
281 |
+
[ -44.058933924, -19.958588196 ],
|
282 |
+
[ -44.058978716, -19.958611768 ],
|
283 |
+
[ -44.059021818, -19.958637152 ],
|
284 |
+
[ -44.059085614, -19.9586796 ],
|
285 |
+
[ -44.059130062, -19.958716752 ],
|
286 |
+
[ -44.059159352, -19.958765916 ],
|
287 |
+
[ -44.059181932, -19.958815624 ],
|
288 |
+
[ -44.059195598, -19.958859746 ],
|
289 |
+
[ -44.059204098, -19.958901213 ],
|
290 |
+
[ -44.059213348, -19.958947002 ],
|
291 |
+
[ -44.059217773, -19.958986505 ],
|
292 |
+
[ -44.059220091, -19.959024881 ],
|
293 |
+
[ -44.059219069, -19.959060251 ],
|
294 |
+
[ -44.059216692, -19.959094878 ],
|
295 |
+
[ -44.059211939, -19.959132857 ],
|
296 |
+
[ -44.059207185, -19.959167484 ],
|
297 |
+
[ -44.059199461, -19.959211607 ],
|
298 |
+
[ -44.059194707, -19.959258521 ],
|
299 |
+
[ -44.059188585, -19.959324228 ],
|
300 |
+
[ -44.059165294, -19.959429425 ],
|
301 |
+
[ -44.059132861, -19.95966042 ],
|
302 |
+
[ -44.059120192, -19.959764911 ],
|
303 |
+
[ -44.059116471, -19.959864036 ],
|
304 |
+
[ -44.059120135, -19.959991282 ],
|
305 |
+
[ -44.059133207, -19.960121414 ],
|
306 |
+
[ -44.059149845, -19.960230881 ],
|
307 |
+
[ -44.059402124, -19.961388253 ],
|
308 |
+
[ -44.0594186, -19.961488205 ],
|
309 |
+
[ -44.059432058, -19.961572772 ],
|
310 |
+
[ -44.059997268, -19.964183207 ],
|
311 |
+
[ -44.059326749, -19.964313338 ],
|
312 |
+
[ -44.058617765, -19.964444722 ],
|
313 |
+
[ -44.057963341, -19.961416833 ],
|
314 |
+
[ -44.057943937, -19.961332431 ],
|
315 |
+
[ -44.05792906, -19.961254967 ],
|
316 |
+
[ -44.057826629, -19.960782237 ],
|
317 |
+
[ -44.057763584, -19.960492856 ],
|
318 |
+
[ -44.057743761, -19.960377515 ],
|
319 |
+
[ -44.057713981, -19.960168802 ],
|
320 |
+
[ -44.057725552, -19.960015856 ],
|
321 |
+
[ -44.057729117, -19.9598874 ],
|
322 |
+
[ -44.057731494, -19.959774582 ],
|
323 |
+
[ -44.057737436, -19.959706723 ],
|
324 |
+
[ -44.057745161, -19.959610102 ],
|
325 |
+
[ -44.057770424, -19.959365347 ],
|
326 |
+
[ -44.057763236, -19.959285507 ],
|
327 |
+
[ -44.057795837, -19.959059292 ],
|
328 |
+
[ -44.057807363, -19.958971486 ]
|
329 |
+
]
|
330 |
+
]
|
331 |
+
},
|
332 |
+
"properties" : {
|
333 |
+
"CD_SETOR" : "311860110080007P",
|
334 |
+
"AREA_KM2" : 0.094629,
|
335 |
+
"POP" : 416 }
|
336 |
+
},
|
337 |
+
{
|
338 |
+
"type" : "Feature",
|
339 |
+
"geometry" : {
|
340 |
+
"type" : "Polygon",
|
341 |
+
"coordinates" : [
|
342 |
+
[
|
343 |
+
[ -44.055039901, -19.958660268 ],
|
344 |
+
[ -44.055183257, -19.958579051 ],
|
345 |
+
[ -44.056591497, -19.958127394 ],
|
346 |
+
[ -44.05675757, -19.958106793 ],
|
347 |
+
[ -44.057081949, -19.958093525 ],
|
348 |
+
[ -44.05726076, -19.95815061 ],
|
349 |
+
[ -44.057473676, -19.958202946 ],
|
350 |
+
[ -44.057558024, -19.958237186 ],
|
351 |
+
[ -44.057621304, -19.958273659 ],
|
352 |
+
[ -44.057679612, -19.95832119 ],
|
353 |
+
[ -44.057733076, -19.958381173 ],
|
354 |
+
[ -44.057775551, -19.958445171 ],
|
355 |
+
[ -44.057798041, -19.958503341 ],
|
356 |
+
[ -44.057810522, -19.958564853 ],
|
357 |
+
[ -44.057816878, -19.958630952 ],
|
358 |
+
[ -44.057817653, -19.95869331 ],
|
359 |
+
[ -44.057807363, -19.958971486 ],
|
360 |
+
[ -44.057795837, -19.959059292 ],
|
361 |
+
[ -44.057763236, -19.959285507 ],
|
362 |
+
[ -44.057770424, -19.959365347 ],
|
363 |
+
[ -44.057745161, -19.959610102 ],
|
364 |
+
[ -44.057737436, -19.959706723 ],
|
365 |
+
[ -44.057731494, -19.959774582 ],
|
366 |
+
[ -44.057729117, -19.9598874 ],
|
367 |
+
[ -44.057725552, -19.960015856 ],
|
368 |
+
[ -44.057713981, -19.960168802 ],
|
369 |
+
[ -44.057743761, -19.960377515 ],
|
370 |
+
[ -44.057763584, -19.960492856 ],
|
371 |
+
[ -44.057826629, -19.960782237 ],
|
372 |
+
[ -44.05792906, -19.961254967 ],
|
373 |
+
[ -44.057943937, -19.961332431 ],
|
374 |
+
[ -44.057836823, -19.961321437 ],
|
375 |
+
[ -44.056973339, -19.961232809 ],
|
376 |
+
[ -44.056946687, -19.961229327 ],
|
377 |
+
[ -44.05691153, -19.961224732 ],
|
378 |
+
[ -44.056909234, -19.96117511 ],
|
379 |
+
[ -44.056854487, -19.960896892 ],
|
380 |
+
[ -44.056837743, -19.96079882 ],
|
381 |
+
[ -44.056821074, -19.960707337 ],
|
382 |
+
[ -44.056810709, -19.96062611 ],
|
383 |
+
[ -44.056804051, -19.960554931 ],
|
384 |
+
[ -44.056795966, -19.960476474 ],
|
385 |
+
[ -44.056793083, -19.96041182 ],
|
386 |
+
[ -44.056793837, -19.959837948 ],
|
387 |
+
[ -44.056793457, -19.959781013 ],
|
388 |
+
[ -44.05678969, -19.95973436 ],
|
389 |
+
[ -44.056783196, -19.95969729 ],
|
390 |
+
[ -44.056770728, -19.959655736 ],
|
391 |
+
[ -44.056750506, -19.959615494 ],
|
392 |
+
[ -44.056727354, -19.959582539 ],
|
393 |
+
[ -44.056693162, -19.959543914 ],
|
394 |
+
[ -44.056650185, -19.959501523 ],
|
395 |
+
[ -44.056309442, -19.959199375 ],
|
396 |
+
[ -44.056281651, -19.95918424 ],
|
397 |
+
[ -44.05624894, -19.959172816 ],
|
398 |
+
[ -44.055426419, -19.959086547 ],
|
399 |
+
[ -44.055397977, -19.959082214 ],
|
400 |
+
[ -44.055372235, -19.959076364 ],
|
401 |
+
[ -44.055346323, -19.959066546 ],
|
402 |
+
[ -44.0553201, -19.959047197 ],
|
403 |
+
[ -44.05513739, -19.958796152 ],
|
404 |
+
[ -44.055088591, -19.958729102 ],
|
405 |
+
[ -44.055039901, -19.958660268 ]
|
406 |
+
]
|
407 |
+
]
|
408 |
+
},
|
409 |
+
"properties" : {
|
410 |
+
"CD_SETOR" : "311860110080008P",
|
411 |
+
"AREA_KM2" : 0.051722,
|
412 |
+
"POP" : 420 }
|
413 |
+
},
|
414 |
+
{
|
415 |
+
"type" : "Feature",
|
416 |
+
"geometry" : {
|
417 |
+
"type" : "Polygon",
|
418 |
+
"coordinates" : [
|
419 |
+
[
|
420 |
+
[ -44.055772391, -19.963736818 ],
|
421 |
+
[ -44.057759706, -19.963963625 ],
|
422 |
+
[ -44.057538962, -19.963275718 ],
|
423 |
+
[ -44.057323208, -19.962614469 ],
|
424 |
+
[ -44.057103527, -19.961917679 ],
|
425 |
+
[ -44.056941664, -19.96140555 ],
|
426 |
+
[ -44.056923647, -19.961325485 ],
|
427 |
+
[ -44.05691153, -19.961224732 ],
|
428 |
+
[ -44.056946687, -19.961229327 ],
|
429 |
+
[ -44.056973339, -19.961232809 ],
|
430 |
+
[ -44.057836823, -19.961321437 ],
|
431 |
+
[ -44.057943937, -19.961332431 ],
|
432 |
+
[ -44.057963341, -19.961416833 ],
|
433 |
+
[ -44.058617765, -19.964444722 ],
|
434 |
+
[ -44.058797568, -19.965304444 ],
|
435 |
+
[ -44.05869868, -19.965264208 ],
|
436 |
+
[ -44.058544568, -19.965195789 ],
|
437 |
+
[ -44.058489885, -19.965176105 ],
|
438 |
+
[ -44.058391313, -19.965151637 ],
|
439 |
+
[ -44.058334308, -19.965146133 ],
|
440 |
+
[ -44.058118239, -19.965144543 ],
|
441 |
+
[ -44.058092469, -19.965233256 ],
|
442 |
+
[ -44.058052439, -19.965302279 ],
|
443 |
+
[ -44.055722856, -19.96505309 ],
|
444 |
+
[ -44.05567605, -19.965000153 ],
|
445 |
+
[ -44.055655994, -19.964971007 ],
|
446 |
+
[ -44.055644554, -19.964943716 ],
|
447 |
+
[ -44.055642888, -19.964916105 ],
|
448 |
+
[ -44.055643604, -19.964882793 ],
|
449 |
+
[ -44.055702836, -19.964396451 ],
|
450 |
+
[ -44.055772391, -19.963736818 ]
|
451 |
+
]
|
452 |
+
]
|
453 |
+
},
|
454 |
+
"properties" : {
|
455 |
+
"CD_SETOR" : "311860110080010P",
|
456 |
+
"AREA_KM2" : 0.072069,
|
457 |
+
"POP" : 551 }
|
458 |
+
},
|
459 |
+
{
|
460 |
+
"type" : "Feature",
|
461 |
+
"geometry" : {
|
462 |
+
"type" : "Polygon",
|
463 |
+
"coordinates" : [
|
464 |
+
[
|
465 |
+
[ -44.055916664, -19.96573819 ],
|
466 |
+
[ -44.055958661, -19.965640595 ],
|
467 |
+
[ -44.055974708, -19.96557825 ],
|
468 |
+
[ -44.0559832, -19.965528242 ],
|
469 |
+
[ -44.055984611, -19.96548434 ],
|
470 |
+
[ -44.055981081, -19.965438215 ],
|
471 |
+
[ -44.055970805, -19.96539996 ],
|
472 |
+
[ -44.05595492, -19.965363347 ],
|
473 |
+
[ -44.055933849, -19.96532402 ],
|
474 |
+
[ -44.05590908, -19.96528307 ],
|
475 |
+
[ -44.055872044, -19.965232201 ],
|
476 |
+
[ -44.055825566, -19.965174033 ],
|
477 |
+
[ -44.055722856, -19.96505309 ],
|
478 |
+
[ -44.058052439, -19.965302279 ],
|
479 |
+
[ -44.058092469, -19.965233256 ],
|
480 |
+
[ -44.058118239, -19.965144543 ],
|
481 |
+
[ -44.058334308, -19.965146133 ],
|
482 |
+
[ -44.058391313, -19.965151637 ],
|
483 |
+
[ -44.058489885, -19.965176105 ],
|
484 |
+
[ -44.058544568, -19.965195789 ],
|
485 |
+
[ -44.05869868, -19.965264208 ],
|
486 |
+
[ -44.058797568, -19.965304444 ],
|
487 |
+
[ -44.058872422, -19.965660238 ],
|
488 |
+
[ -44.05902952, -19.966356928 ],
|
489 |
+
[ -44.058534381, -19.966454472 ],
|
490 |
+
[ -44.058479292, -19.966467508 ],
|
491 |
+
[ -44.058432945, -19.966483145 ],
|
492 |
+
[ -44.058391351, -19.966501016 ],
|
493 |
+
[ -44.058345558, -19.966525594 ],
|
494 |
+
[ -44.058299845, -19.966568593 ],
|
495 |
+
[ -44.058250118, -19.966620117 ],
|
496 |
+
[ -44.058197674, -19.966689919 ],
|
497 |
+
[ -44.058151918, -19.966754541 ],
|
498 |
+
[ -44.058016581, -19.966982967 ],
|
499 |
+
[ -44.057958181, -19.967119255 ],
|
500 |
+
[ -44.057939461, -19.967199241 ],
|
501 |
+
[ -44.057935047, -19.967258578 ],
|
502 |
+
[ -44.05793571, -19.967326718 ],
|
503 |
+
[ -44.05794708, -19.967405362 ],
|
504 |
+
[ -44.057964374, -19.967491939 ],
|
505 |
+
[ -44.057982211, -19.967559179 ],
|
506 |
+
[ -44.058135999, -19.967512068 ],
|
507 |
+
[ -44.058922511, -19.967286569 ],
|
508 |
+
[ -44.058999351, -19.967257715 ],
|
509 |
+
[ -44.059076284, -19.96722255 ],
|
510 |
+
[ -44.059138258, -19.967182363 ],
|
511 |
+
[ -44.059198866, -19.967134334 ],
|
512 |
+
[ -44.059258667, -19.967079626 ],
|
513 |
+
[ -44.059328071, -19.967211396 ],
|
514 |
+
[ -44.059405155, -19.967343925 ],
|
515 |
+
[ -44.059512639, -19.967517954 ],
|
516 |
+
[ -44.059619769, -19.967672456 ],
|
517 |
+
[ -44.059722411, -19.967802956 ],
|
518 |
+
[ -44.059889314, -19.967992147 ],
|
519 |
+
[ -44.06006935, -19.968175699 ],
|
520 |
+
[ -44.06059521, -19.96861482 ],
|
521 |
+
[ -44.06063317, -19.968636905 ],
|
522 |
+
[ -44.06064663, -19.968644736 ],
|
523 |
+
[ -44.060538068, -19.968730199 ],
|
524 |
+
[ -44.060291214, -19.968900363 ],
|
525 |
+
[ -44.060201599, -19.968956767 ],
|
526 |
+
[ -44.060077453, -19.969026097 ],
|
527 |
+
[ -44.05992459, -19.969094932 ],
|
528 |
+
[ -44.059742575, -19.969172924 ],
|
529 |
+
[ -44.059601932, -19.969219264 ],
|
530 |
+
[ -44.059471536, -19.969258 ],
|
531 |
+
[ -44.05927632, -19.969311619 ],
|
532 |
+
[ -44.059063597, -19.969370817 ],
|
533 |
+
[ -44.058832041, -19.969440194 ],
|
534 |
+
[ -44.058673122, -19.969492764 ],
|
535 |
+
[ -44.058510993, -19.969550645 ],
|
536 |
+
[ -44.058295187, -19.969638048 ],
|
537 |
+
[ -44.058262873, -19.969653452 ],
|
538 |
+
[ -44.058233372, -19.969667514 ],
|
539 |
+
[ -44.05820029, -19.96962002 ],
|
540 |
+
[ -44.05788518, -19.969040025 ],
|
541 |
+
[ -44.05756754, -19.968451606 ],
|
542 |
+
[ -44.057245545, -19.967867449 ],
|
543 |
+
[ -44.057567098, -19.967719735 ],
|
544 |
+
[ -44.057248735, -19.967398468 ],
|
545 |
+
[ -44.057197356, -19.967359526 ],
|
546 |
+
[ -44.056927113, -19.967145166 ],
|
547 |
+
[ -44.056983684, -19.967083361 ],
|
548 |
+
[ -44.057303715, -19.96653908 ],
|
549 |
+
[ -44.057678408, -19.965914443 ],
|
550 |
+
[ -44.055916664, -19.96573819 ]
|
551 |
+
]
|
552 |
+
]
|
553 |
+
},
|
554 |
+
"properties" : {
|
555 |
+
"CD_SETOR" : "311860110080011P",
|
556 |
+
"AREA_KM2" : 0.099217,
|
557 |
+
"POP" : 823 }
|
558 |
+
},
|
559 |
+
{
|
560 |
+
"type" : "Feature",
|
561 |
+
"geometry" : {
|
562 |
+
"type" : "Polygon",
|
563 |
+
"coordinates" : [
|
564 |
+
[
|
565 |
+
[ -44.059997268, -19.964183207 ],
|
566 |
+
[ -44.06067767, -19.9640496 ],
|
567 |
+
[ -44.060715775, -19.964042111 ],
|
568 |
+
[ -44.060780904, -19.964029312 ],
|
569 |
+
[ -44.061187592, -19.965881127 ],
|
570 |
+
[ -44.061253992, -19.966122055 ],
|
571 |
+
[ -44.061294512, -19.966234407 ],
|
572 |
+
[ -44.061334658, -19.96631613 ],
|
573 |
+
[ -44.061396023, -19.966408282 ],
|
574 |
+
[ -44.061461101, -19.966490217 ],
|
575 |
+
[ -44.061546666, -19.966576473 ],
|
576 |
+
[ -44.061744708, -19.966748494 ],
|
577 |
+
[ -44.061842182, -19.96683579 ],
|
578 |
+
[ -44.061865685, -19.966856839 ],
|
579 |
+
[ -44.061823475, -19.966914759 ],
|
580 |
+
[ -44.061794932, -19.966971002 ],
|
581 |
+
[ -44.061780628, -19.967019823 ],
|
582 |
+
[ -44.061774385, -19.967066049 ],
|
583 |
+
[ -44.061773186, -19.967104421 ],
|
584 |
+
[ -44.061776795, -19.967143898 ],
|
585 |
+
[ -44.061783478, -19.96717882 ],
|
586 |
+
[ -44.061799048, -19.967223105 ],
|
587 |
+
[ -44.06182633, -19.967263658 ],
|
588 |
+
[ -44.06186145, -19.967295448 ],
|
589 |
+
[ -44.06190511, -19.967325252 ],
|
590 |
+
[ -44.061946736, -19.9673416 ],
|
591 |
+
[ -44.06198724, -19.967354033 ],
|
592 |
+
[ -44.062027884, -19.96735962 ],
|
593 |
+
[ -44.062092163, -19.967357807 ],
|
594 |
+
[ -44.062136308, -19.967347256 ],
|
595 |
+
[ -44.062178167, -19.96732981 ],
|
596 |
+
[ -44.062224226, -19.967304182 ],
|
597 |
+
[ -44.062268003, -19.967273411 ],
|
598 |
+
[ -44.062305037, -19.967247217 ],
|
599 |
+
[ -44.062333635, -19.967218339 ],
|
600 |
+
[ -44.062362674, -19.967181875 ],
|
601 |
+
[ -44.062382384, -19.967144933 ],
|
602 |
+
[ -44.062394761, -19.967107038 ],
|
603 |
+
[ -44.06240308, -19.96706236 ],
|
604 |
+
[ -44.062437566, -19.967068421 ],
|
605 |
+
[ -44.062569499, -19.967091606 ],
|
606 |
+
[ -44.064776351, -19.967825448 ],
|
607 |
+
[ -44.064829862, -19.96784189 ],
|
608 |
+
[ -44.064911721, -19.967867043 ],
|
609 |
+
[ -44.064961741, -19.967882412 ],
|
610 |
+
[ -44.066812074, -19.968495619 ],
|
611 |
+
[ -44.066990334, -19.968549233 ],
|
612 |
+
[ -44.067096101, -19.968578274 ],
|
613 |
+
[ -44.067179289, -19.968596145 ],
|
614 |
+
[ -44.067300505, -19.96861625 ],
|
615 |
+
[ -44.06743014, -19.968630652 ],
|
616 |
+
[ -44.067504485, -19.968639775 ],
|
617 |
+
[ -44.067540735, -19.968644224 ],
|
618 |
+
[ -44.06753071, -19.96872734 ],
|
619 |
+
[ -44.067403129, -19.970041187 ],
|
620 |
+
[ -44.067302712, -19.971217488 ],
|
621 |
+
[ -44.067152339, -19.972761035 ],
|
622 |
+
[ -44.067144895, -19.972785351 ],
|
623 |
+
[ -44.067134085, -19.972796453 ],
|
624 |
+
[ -44.067112694, -19.972807622 ],
|
625 |
+
[ -44.067082213, -19.972810978 ],
|
626 |
+
[ -44.065842752, -19.972709502 ],
|
627 |
+
[ -44.06576888, -19.972700612 ],
|
628 |
+
[ -44.065691603, -19.97268627 ],
|
629 |
+
[ -44.065628288, -19.972667457 ],
|
630 |
+
[ -44.065560054, -19.972642876 ],
|
631 |
+
[ -44.06550053, -19.972612633 ],
|
632 |
+
[ -44.06545412, -19.972586845 ],
|
633 |
+
[ -44.065413483, -19.972560285 ],
|
634 |
+
[ -44.065375853, -19.972530067 ],
|
635 |
+
[ -44.065340201, -19.972498235 ],
|
636 |
+
[ -44.065305143, -19.972465285 ],
|
637 |
+
[ -44.065268897, -19.972429544 ],
|
638 |
+
[ -44.065239782, -19.972396036 ],
|
639 |
+
[ -44.065209478, -19.972358061 ],
|
640 |
+
[ -44.065177217, -19.972305339 ],
|
641 |
+
[ -44.065143673, -19.972245869 ],
|
642 |
+
[ -44.065123459, -19.972178831 ],
|
643 |
+
[ -44.065096417, -19.972090594 ],
|
644 |
+
[ -44.064419425, -19.9699366 ],
|
645 |
+
[ -44.064385361, -19.969816803 ],
|
646 |
+
[ -44.064370973, -19.969763389 ],
|
647 |
+
[ -44.064357695, -19.969699203 ],
|
648 |
+
[ -44.064347107, -19.969629241 ],
|
649 |
+
[ -44.064341179, -19.969560987 ],
|
650 |
+
[ -44.06433972, -19.969491591 ],
|
651 |
+
[ -44.064342975, -19.969395147 ],
|
652 |
+
[ -44.06436549, -19.969265267 ],
|
653 |
+
[ -44.064384511, -19.969165958 ],
|
654 |
+
[ -44.063744036, -19.968953865 ],
|
655 |
+
[ -44.063690207, -19.968939415 ],
|
656 |
+
[ -44.063637718, -19.968928779 ],
|
657 |
+
[ -44.063564737, -19.968916504 ],
|
658 |
+
[ -44.063508288, -19.968909802 ],
|
659 |
+
[ -44.063433442, -19.968906185 ],
|
660 |
+
[ -44.063358143, -19.968909774 ],
|
661 |
+
[ -44.063298536, -19.968918179 ],
|
662 |
+
[ -44.06323258, -19.968931024 ],
|
663 |
+
[ -44.06263978, -19.969094439 ],
|
664 |
+
[ -44.061965477, -19.969276633 ],
|
665 |
+
[ -44.061158037, -19.969490391 ],
|
666 |
+
[ -44.06112224, -19.969499319 ],
|
667 |
+
[ -44.061111505, -19.969501996 ],
|
668 |
+
[ -44.061068772, -19.969367013 ],
|
669 |
+
[ -44.061035963, -19.969268268 ],
|
670 |
+
[ -44.060962699, -19.969071869 ],
|
671 |
+
[ -44.060920087, -19.96898778 ],
|
672 |
+
[ -44.06086628, -19.968898534 ],
|
673 |
+
[ -44.060811042, -19.968817545 ],
|
674 |
+
[ -44.060703673, -19.968686063 ],
|
675 |
+
[ -44.06064663, -19.968644736 ],
|
676 |
+
[ -44.06063317, -19.968636905 ],
|
677 |
+
[ -44.06059521, -19.96861482 ],
|
678 |
+
[ -44.06006935, -19.968175699 ],
|
679 |
+
[ -44.059889314, -19.967992147 ],
|
680 |
+
[ -44.059722411, -19.967802956 ],
|
681 |
+
[ -44.059619769, -19.967672456 ],
|
682 |
+
[ -44.059512639, -19.967517954 ],
|
683 |
+
[ -44.059405155, -19.967343925 ],
|
684 |
+
[ -44.059328071, -19.967211396 ],
|
685 |
+
[ -44.059258667, -19.967079626 ],
|
686 |
+
[ -44.059201645, -19.966944017 ],
|
687 |
+
[ -44.059134559, -19.966765211 ],
|
688 |
+
[ -44.059082161, -19.966600729 ],
|
689 |
+
[ -44.05902952, -19.966356928 ],
|
690 |
+
[ -44.058872422, -19.965660238 ],
|
691 |
+
[ -44.058797568, -19.965304444 ],
|
692 |
+
[ -44.058617765, -19.964444722 ],
|
693 |
+
[ -44.059326749, -19.964313338 ],
|
694 |
+
[ -44.059997268, -19.964183207 ]
|
695 |
+
]
|
696 |
+
]
|
697 |
+
},
|
698 |
+
"properties" : {
|
699 |
+
"CD_SETOR" : "311860110080012P",
|
700 |
+
"AREA_KM2" : 0.312423,
|
701 |
+
"POP" : 686 }
|
702 |
+
},
|
703 |
+
{
|
704 |
+
"type" : "Feature",
|
705 |
+
"geometry" : {
|
706 |
+
"type" : "Polygon",
|
707 |
+
"coordinates" : [
|
708 |
+
[
|
709 |
+
[ -44.060201599, -19.968956767 ],
|
710 |
+
[ -44.060291214, -19.968900363 ],
|
711 |
+
[ -44.060538068, -19.968730199 ],
|
712 |
+
[ -44.06064663, -19.968644736 ],
|
713 |
+
[ -44.060703673, -19.968686063 ],
|
714 |
+
[ -44.060811042, -19.968817545 ],
|
715 |
+
[ -44.06086628, -19.968898534 ],
|
716 |
+
[ -44.060920087, -19.96898778 ],
|
717 |
+
[ -44.060962699, -19.969071869 ],
|
718 |
+
[ -44.061035963, -19.969268268 ],
|
719 |
+
[ -44.061068772, -19.969367013 ],
|
720 |
+
[ -44.061111505, -19.969501996 ],
|
721 |
+
[ -44.061209759, -19.969823215 ],
|
722 |
+
[ -44.061317092, -19.970174113 ],
|
723 |
+
[ -44.060549437, -19.970379507 ],
|
724 |
+
[ -44.060447568, -19.969697778 ],
|
725 |
+
[ -44.060389046, -19.969491704 ],
|
726 |
+
[ -44.060311848, -19.969212042 ],
|
727 |
+
[ -44.060201599, -19.968956767 ]
|
728 |
+
]
|
729 |
+
]
|
730 |
+
},
|
731 |
+
"properties" : {
|
732 |
+
"CD_SETOR" : "311860110080015P",
|
733 |
+
"AREA_KM2" : 0.012569,
|
734 |
+
"POP" : 510 }
|
735 |
+
},
|
736 |
+
{
|
737 |
+
"type" : "Feature",
|
738 |
+
"geometry" : {
|
739 |
+
"type" : "Polygon",
|
740 |
+
"coordinates" : [
|
741 |
+
[
|
742 |
+
[ -44.057587205, -19.971273003 ],
|
743 |
+
[ -44.057454577, -19.971126414 ],
|
744 |
+
[ -44.058068463, -19.970618777 ],
|
745 |
+
[ -44.058512926, -19.970261862 ],
|
746 |
+
[ -44.058531789, -19.970244495 ],
|
747 |
+
[ -44.058534317, -19.970244829 ],
|
748 |
+
[ -44.058565971, -19.970224374 ],
|
749 |
+
[ -44.059019605, -19.970996228 ],
|
750 |
+
[ -44.058984031, -19.971014401 ],
|
751 |
+
[ -44.057912815, -19.971591804 ],
|
752 |
+
[ -44.057591312, -19.971273003 ],
|
753 |
+
[ -44.057587205, -19.971273003 ]
|
754 |
+
]
|
755 |
+
]
|
756 |
+
},
|
757 |
+
"properties" : {
|
758 |
+
"CD_SETOR" : "311860110080019P",
|
759 |
+
"AREA_KM2" : 0.011998,
|
760 |
+
"POP" : 564 }
|
761 |
+
},
|
762 |
+
{
|
763 |
+
"type" : "Feature",
|
764 |
+
"geometry" : {
|
765 |
+
"type" : "Polygon",
|
766 |
+
"coordinates" : [
|
767 |
+
[
|
768 |
+
[ -44.056614572, -19.970833163 ],
|
769 |
+
[ -44.056810503, -19.970670445 ],
|
770 |
+
[ -44.05730448, -19.970257532 ],
|
771 |
+
[ -44.057561922, -19.970054964 ],
|
772 |
+
[ -44.057716107, -19.969948715 ],
|
773 |
+
[ -44.057900751, -19.969829113 ],
|
774 |
+
[ -44.058087293, -19.969732581 ],
|
775 |
+
[ -44.058162072, -19.969698475 ],
|
776 |
+
[ -44.058201246, -19.969681464 ],
|
777 |
+
[ -44.058233372, -19.969667514 ],
|
778 |
+
[ -44.058266259, -19.969715997 ],
|
779 |
+
[ -44.058561643, -19.970217009 ],
|
780 |
+
[ -44.058565971, -19.970224374 ],
|
781 |
+
[ -44.058534317, -19.970244829 ],
|
782 |
+
[ -44.058531789, -19.970244495 ],
|
783 |
+
[ -44.058512926, -19.970261862 ],
|
784 |
+
[ -44.058068463, -19.970618777 ],
|
785 |
+
[ -44.057454577, -19.971126414 ],
|
786 |
+
[ -44.057587205, -19.971273003 ],
|
787 |
+
[ -44.057590297, -19.97127642 ],
|
788 |
+
[ -44.057243578, -19.97158776 ],
|
789 |
+
[ -44.056674862, -19.970911118 ],
|
790 |
+
[ -44.056614572, -19.970833163 ]
|
791 |
+
]
|
792 |
+
]
|
793 |
+
},
|
794 |
+
"properties" : {
|
795 |
+
"CD_SETOR" : "311860110080020P",
|
796 |
+
"AREA_KM2" : 0.017939,
|
797 |
+
"POP" : 624 }
|
798 |
+
},
|
799 |
+
{
|
800 |
+
"type" : "Feature",
|
801 |
+
"geometry" : {
|
802 |
+
"type" : "Polygon",
|
803 |
+
"coordinates" : [
|
804 |
+
[
|
805 |
+
[ -44.055442293, -19.973611307 ],
|
806 |
+
[ -44.055204644, -19.973258511 ],
|
807 |
+
[ -44.0550877, -19.973116453 ],
|
808 |
+
[ -44.0548917, -19.97291421 ],
|
809 |
+
[ -44.055001841, -19.972828204 ],
|
810 |
+
[ -44.05502119, -19.972809411 ],
|
811 |
+
[ -44.055039375, -19.972822408 ],
|
812 |
+
[ -44.055062986, -19.972829882 ],
|
813 |
+
[ -44.055091142, -19.972832729 ],
|
814 |
+
[ -44.05511827, -19.972825124 ],
|
815 |
+
[ -44.055138345, -19.972812318 ],
|
816 |
+
[ -44.055159121, -19.972795254 ],
|
817 |
+
[ -44.055171666, -19.972770065 ],
|
818 |
+
[ -44.055174959, -19.972743538 ],
|
819 |
+
[ -44.055169561, -19.972715368 ],
|
820 |
+
[ -44.055155991, -19.972692457 ],
|
821 |
+
[ -44.056270762, -19.971766324 ],
|
822 |
+
[ -44.056294725, -19.971745884 ],
|
823 |
+
[ -44.056616226, -19.972088543 ],
|
824 |
+
[ -44.056607912, -19.972096372 ],
|
825 |
+
[ -44.056591629, -19.972109443 ],
|
826 |
+
[ -44.056522033, -19.972166909 ],
|
827 |
+
[ -44.056192576, -19.972438946 ],
|
828 |
+
[ -44.056154388, -19.972503047 ],
|
829 |
+
[ -44.056128347, -19.972577302 ],
|
830 |
+
[ -44.056118987, -19.972659891 ],
|
831 |
+
[ -44.056122974, -19.973171344 ],
|
832 |
+
[ -44.056093545, -19.973180123 ],
|
833 |
+
[ -44.05593217, -19.973247894 ],
|
834 |
+
[ -44.055449809, -19.973622465 ],
|
835 |
+
[ -44.055442293, -19.973611307 ]
|
836 |
+
]
|
837 |
+
]
|
838 |
+
},
|
839 |
+
"properties" : {
|
840 |
+
"CD_SETOR" : "311860110080022P",
|
841 |
+
"AREA_KM2" : 0.015209,
|
842 |
+
"POP" : 508 }
|
843 |
+
},
|
844 |
+
{
|
845 |
+
"type" : "Feature",
|
846 |
+
"geometry" : {
|
847 |
+
"type" : "Polygon",
|
848 |
+
"coordinates" : [
|
849 |
+
[
|
850 |
+
[ -44.056616226, -19.972088543 ],
|
851 |
+
[ -44.056649162, -19.972058446 ],
|
852 |
+
[ -44.056707397, -19.972122775 ],
|
853 |
+
[ -44.056718178, -19.972134684 ],
|
854 |
+
[ -44.056806597, -19.97223109 ],
|
855 |
+
[ -44.056814726, -19.972239682 ],
|
856 |
+
[ -44.056813421, -19.972250616 ],
|
857 |
+
[ -44.056803322, -19.97233523 ],
|
858 |
+
[ -44.056784413, -19.972537343 ],
|
859 |
+
[ -44.056768346, -19.972737177 ],
|
860 |
+
[ -44.056760218, -19.973115024 ],
|
861 |
+
[ -44.057093383, -19.973407273 ],
|
862 |
+
[ -44.056962474, -19.973685076 ],
|
863 |
+
[ -44.055484792, -19.973676284 ],
|
864 |
+
[ -44.055449809, -19.973622465 ],
|
865 |
+
[ -44.05593217, -19.973247894 ],
|
866 |
+
[ -44.056093545, -19.973180123 ],
|
867 |
+
[ -44.056122974, -19.973171344 ],
|
868 |
+
[ -44.056118987, -19.972659891 ],
|
869 |
+
[ -44.056128347, -19.972577302 ],
|
870 |
+
[ -44.056154388, -19.972503047 ],
|
871 |
+
[ -44.056192576, -19.972438946 ],
|
872 |
+
[ -44.056522033, -19.972166909 ],
|
873 |
+
[ -44.056591629, -19.972109443 ],
|
874 |
+
[ -44.056607912, -19.972096372 ],
|
875 |
+
[ -44.056616226, -19.972088543 ]
|
876 |
+
]
|
877 |
+
]
|
878 |
+
},
|
879 |
+
"properties" : {
|
880 |
+
"CD_SETOR" : "311860110080023P",
|
881 |
+
"AREA_KM2" : 0.014562,
|
882 |
+
"POP" : 529 }
|
883 |
+
},
|
884 |
+
{
|
885 |
+
"type" : "Feature",
|
886 |
+
"geometry" : {
|
887 |
+
"type" : "Polygon",
|
888 |
+
"coordinates" : [
|
889 |
+
[
|
890 |
+
[ -44.056962474, -19.973685076 ],
|
891 |
+
[ -44.057093383, -19.973407273 ],
|
892 |
+
[ -44.056760218, -19.973115024 ],
|
893 |
+
[ -44.056768346, -19.972737177 ],
|
894 |
+
[ -44.056784413, -19.972537343 ],
|
895 |
+
[ -44.056803322, -19.97233523 ],
|
896 |
+
[ -44.056813421, -19.972250616 ],
|
897 |
+
[ -44.056814726, -19.972239682 ],
|
898 |
+
[ -44.056870273, -19.972298393 ],
|
899 |
+
[ -44.056936478, -19.972361438 ],
|
900 |
+
[ -44.056989652, -19.97240621 ],
|
901 |
+
[ -44.057059438, -19.972456265 ],
|
902 |
+
[ -44.057118516, -19.972491604 ],
|
903 |
+
[ -44.057181816, -19.972525051 ],
|
904 |
+
[ -44.057245039, -19.972557106 ],
|
905 |
+
[ -44.057322271, -19.97258932 ],
|
906 |
+
[ -44.057386917, -19.972610133 ],
|
907 |
+
[ -44.057457583, -19.972627472 ],
|
908 |
+
[ -44.057522625, -19.972643847 ],
|
909 |
+
[ -44.057601498, -19.972656791 ],
|
910 |
+
[ -44.057681551, -19.972663154 ],
|
911 |
+
[ -44.057759971, -19.972664219 ],
|
912 |
+
[ -44.057853973, -19.972663309 ],
|
913 |
+
[ -44.057919113, -19.972662678 ],
|
914 |
+
[ -44.057920778, -19.972662664 ],
|
915 |
+
[ -44.057919378, -19.972738725 ],
|
916 |
+
[ -44.057919732, -19.972840785 ],
|
917 |
+
[ -44.057920761, -19.973136843 ],
|
918 |
+
[ -44.05791332, -19.973245424 ],
|
919 |
+
[ -44.057894366, -19.973299583 ],
|
920 |
+
[ -44.0578737, -19.973347941 ],
|
921 |
+
[ -44.057838916, -19.973401548 ],
|
922 |
+
[ -44.058355975, -19.973401548 ],
|
923 |
+
[ -44.058353523, -19.974105581 ],
|
924 |
+
[ -44.058163908, -19.974154884 ],
|
925 |
+
[ -44.056965815, -19.974234669 ],
|
926 |
+
[ -44.056962474, -19.973685076 ]
|
927 |
+
]
|
928 |
+
]
|
929 |
+
},
|
930 |
+
"properties" : {
|
931 |
+
"CD_SETOR" : "311860110080024P",
|
932 |
+
"AREA_KM2" : 0.023212,
|
933 |
+
"POP" : 477 }
|
934 |
+
},
|
935 |
+
{
|
936 |
+
"type" : "Feature",
|
937 |
+
"geometry" : {
|
938 |
+
"type" : "Polygon",
|
939 |
+
"coordinates" : [
|
940 |
+
[
|
941 |
+
[ -44.057920778, -19.972662664 ],
|
942 |
+
[ -44.057972911, -19.972662214 ],
|
943 |
+
[ -44.057983815, -19.97266212 ],
|
944 |
+
[ -44.059116431, -19.972665268 ],
|
945 |
+
[ -44.059116174, -19.972674185 ],
|
946 |
+
[ -44.059116503, -19.972736415 ],
|
947 |
+
[ -44.059110274, -19.973892438 ],
|
948 |
+
[ -44.058353523, -19.974105581 ],
|
949 |
+
[ -44.058355975, -19.973401548 ],
|
950 |
+
[ -44.057838916, -19.973401548 ],
|
951 |
+
[ -44.0578737, -19.973347941 ],
|
952 |
+
[ -44.057894366, -19.973299583 ],
|
953 |
+
[ -44.05791332, -19.973245424 ],
|
954 |
+
[ -44.057920761, -19.973136843 ],
|
955 |
+
[ -44.057919732, -19.972840785 ],
|
956 |
+
[ -44.057919378, -19.972738725 ],
|
957 |
+
[ -44.057920778, -19.972662664 ]
|
958 |
+
]
|
959 |
+
]
|
960 |
+
},
|
961 |
+
"properties" : {
|
962 |
+
"CD_SETOR" : "311860110080025P",
|
963 |
+
"AREA_KM2" : 0.015526,
|
964 |
+
"POP" : 541 }
|
965 |
+
},
|
966 |
+
{
|
967 |
+
"type" : "Feature",
|
968 |
+
"geometry" : {
|
969 |
+
"type" : "Polygon",
|
970 |
+
"coordinates" : [
|
971 |
+
[
|
972 |
+
[ -44.053718577, -19.973042901 ],
|
973 |
+
[ -44.054033833, -19.972783151 ],
|
974 |
+
[ -44.054066234, -19.972747586 ],
|
975 |
+
[ -44.054087787, -19.972699192 ],
|
976 |
+
[ -44.054142273, -19.972723569 ],
|
977 |
+
[ -44.054198943, -19.972772155 ],
|
978 |
+
[ -44.054341015, -19.972942414 ],
|
979 |
+
[ -44.054457691, -19.973067754 ],
|
980 |
+
[ -44.054580602, -19.973182332 ],
|
981 |
+
[ -44.05484385, -19.973412438 ],
|
982 |
+
[ -44.054874982, -19.973442778 ],
|
983 |
+
[ -44.054902224, -19.973479239 ],
|
984 |
+
[ -44.054921028, -19.973518506 ],
|
985 |
+
[ -44.054932845, -19.973562475 ],
|
986 |
+
[ -44.054934835, -19.973604339 ],
|
987 |
+
[ -44.05492985, -19.973644983 ],
|
988 |
+
[ -44.05491628, -19.97368816 ],
|
989 |
+
[ -44.054896463, -19.973729262 ],
|
990 |
+
[ -44.054875425, -19.973767475 ],
|
991 |
+
[ -44.054709558, -19.974008185 ],
|
992 |
+
[ -44.054686795, -19.973992576 ],
|
993 |
+
[ -44.054148345, -19.973616913 ],
|
994 |
+
[ -44.054117146, -19.973581163 ],
|
995 |
+
[ -44.05401609, -19.973465371 ],
|
996 |
+
[ -44.053947992, -19.973387341 ],
|
997 |
+
[ -44.053710019, -19.973048689 ],
|
998 |
+
[ -44.053718577, -19.973042901 ]
|
999 |
+
]
|
1000 |
+
]
|
1001 |
+
},
|
1002 |
+
"properties" : {
|
1003 |
+
"CD_SETOR" : "311860110080026P",
|
1004 |
+
"AREA_KM2" : 0.008709,
|
1005 |
+
"POP" : 64 }
|
1006 |
+
},
|
1007 |
+
{
|
1008 |
+
"type" : "Feature",
|
1009 |
+
"geometry" : {
|
1010 |
+
"type" : "Polygon",
|
1011 |
+
"coordinates" : [
|
1012 |
+
[
|
1013 |
+
[ -44.055666133, -19.967003556 ],
|
1014 |
+
[ -44.055691315, -19.966902006 ],
|
1015 |
+
[ -44.055706114, -19.966824866 ],
|
1016 |
+
[ -44.055717715, -19.966755542 ],
|
1017 |
+
[ -44.055727407, -19.966441486 ],
|
1018 |
+
[ -44.055729412, -19.966365797 ],
|
1019 |
+
[ -44.055735639, -19.966214085 ],
|
1020 |
+
[ -44.05574206, -19.966169671 ],
|
1021 |
+
[ -44.055749335, -19.966130234 ],
|
1022 |
+
[ -44.055762178, -19.966088674 ],
|
1023 |
+
[ -44.055776375, -19.966050732 ],
|
1024 |
+
[ -44.055796025, -19.966007066 ],
|
1025 |
+
[ -44.055899975, -19.965779099 ],
|
1026 |
+
[ -44.055916664, -19.96573819 ],
|
1027 |
+
[ -44.057678408, -19.965914443 ],
|
1028 |
+
[ -44.057303715, -19.96653908 ],
|
1029 |
+
[ -44.056983684, -19.967083361 ],
|
1030 |
+
[ -44.056927113, -19.967145166 ],
|
1031 |
+
[ -44.057197356, -19.967359526 ],
|
1032 |
+
[ -44.057248735, -19.967398468 ],
|
1033 |
+
[ -44.057567098, -19.967719735 ],
|
1034 |
+
[ -44.057245545, -19.967867449 ],
|
1035 |
+
[ -44.057060807, -19.967957779 ],
|
1036 |
+
[ -44.057006459, -19.967982244 ],
|
1037 |
+
[ -44.05694173, -19.968016754 ],
|
1038 |
+
[ -44.056704118, -19.968158926 ],
|
1039 |
+
[ -44.056600898, -19.968221156 ],
|
1040 |
+
[ -44.056433863, -19.968331585 ],
|
1041 |
+
[ -44.056163702, -19.968521593 ],
|
1042 |
+
[ -44.056061428, -19.968598643 ],
|
1043 |
+
[ -44.055775935, -19.968827952 ],
|
1044 |
+
[ -44.055705671, -19.968884789 ],
|
1045 |
+
[ -44.055677823, -19.968913593 ],
|
1046 |
+
[ -44.055655613, -19.968945822 ],
|
1047 |
+
[ -44.055637061, -19.968993454 ],
|
1048 |
+
[ -44.055595801, -19.969128775 ],
|
1049 |
+
[ -44.055582175, -19.969167905 ],
|
1050 |
+
[ -44.055567622, -19.969197468 ],
|
1051 |
+
[ -44.055542151, -19.969239158 ],
|
1052 |
+
[ -44.055520141, -19.969217795 ],
|
1053 |
+
[ -44.05546945, -19.969168052 ],
|
1054 |
+
[ -44.055425703, -19.969138935 ],
|
1055 |
+
[ -44.055376912, -19.969123249 ],
|
1056 |
+
[ -44.055315148, -19.96911098 ],
|
1057 |
+
[ -44.055061792, -19.969065864 ],
|
1058 |
+
[ -44.055047634, -19.969042802 ],
|
1059 |
+
[ -44.055037353, -19.969001772 ],
|
1060 |
+
[ -44.055032651, -19.968963794 ],
|
1061 |
+
[ -44.055033095, -19.968930461 ],
|
1062 |
+
[ -44.055037208, -19.968889937 ],
|
1063 |
+
[ -44.055045193, -19.968851813 ],
|
1064 |
+
[ -44.05506482, -19.968803309 ],
|
1065 |
+
[ -44.055085572, -19.968758728 ],
|
1066 |
+
[ -44.055120799, -19.968677607 ],
|
1067 |
+
[ -44.055162901, -19.9685825 ],
|
1068 |
+
[ -44.055221984, -19.968450181 ],
|
1069 |
+
[ -44.055255088, -19.968375226 ],
|
1070 |
+
[ -44.055282977, -19.968290416 ],
|
1071 |
+
[ -44.055307573, -19.968215237 ],
|
1072 |
+
[ -44.05546964, -19.967639836 ],
|
1073 |
+
[ -44.055666133, -19.967003556 ]
|
1074 |
+
]
|
1075 |
+
]
|
1076 |
+
},
|
1077 |
+
"properties" : {
|
1078 |
+
"CD_SETOR" : "311860110080027P",
|
1079 |
+
"AREA_KM2" : 0.054848,
|
1080 |
+
"POP" : 438 }
|
1081 |
+
},
|
1082 |
+
{
|
1083 |
+
"type" : "Feature",
|
1084 |
+
"geometry" : {
|
1085 |
+
"type" : "Polygon",
|
1086 |
+
"coordinates" : [
|
1087 |
+
[
|
1088 |
+
[ -44.055992286, -19.971419998 ],
|
1089 |
+
[ -44.055936911, -19.971378861 ],
|
1090 |
+
[ -44.055886167, -19.97134055 ],
|
1091 |
+
[ -44.055685998, -19.97114633 ],
|
1092 |
+
[ -44.055614169, -19.971067714 ],
|
1093 |
+
[ -44.055494338, -19.970931674 ],
|
1094 |
+
[ -44.05544805, -19.97086458 ],
|
1095 |
+
[ -44.055387977, -19.970792615 ],
|
1096 |
+
[ -44.055344823, -19.970731329 ],
|
1097 |
+
[ -44.055317267, -19.970678688 ],
|
1098 |
+
[ -44.055301855, -19.970643787 ],
|
1099 |
+
[ -44.055289275, -19.970606334 ],
|
1100 |
+
[ -44.055280647, -19.970574679 ],
|
1101 |
+
[ -44.055272897, -19.970514419 ],
|
1102 |
+
[ -44.055267484, -19.970420679 ],
|
1103 |
+
[ -44.055272509, -19.970348266 ],
|
1104 |
+
[ -44.055284096, -19.970290227 ],
|
1105 |
+
[ -44.05529917, -19.970232287 ],
|
1106 |
+
[ -44.055327725, -19.970165902 ],
|
1107 |
+
[ -44.055359499, -19.970109018 ],
|
1108 |
+
[ -44.055395071, -19.970052277 ],
|
1109 |
+
[ -44.055442925, -19.96999442 ],
|
1110 |
+
[ -44.055490262, -19.96994531 ],
|
1111 |
+
[ -44.055542384, -19.969902683 ],
|
1112 |
+
[ -44.056517614, -19.969100658 ],
|
1113 |
+
[ -44.056731532, -19.968944723 ],
|
1114 |
+
[ -44.056912225, -19.968822277 ],
|
1115 |
+
[ -44.057076688, -19.968715663 ],
|
1116 |
+
[ -44.057195437, -19.968647626 ],
|
1117 |
+
[ -44.057374373, -19.968550351 ],
|
1118 |
+
[ -44.05756754, -19.968451606 ],
|
1119 |
+
[ -44.05788518, -19.969040025 ],
|
1120 |
+
[ -44.05820029, -19.96962002 ],
|
1121 |
+
[ -44.058233372, -19.969667514 ],
|
1122 |
+
[ -44.058201246, -19.969681464 ],
|
1123 |
+
[ -44.058162072, -19.969698475 ],
|
1124 |
+
[ -44.058087293, -19.969732581 ],
|
1125 |
+
[ -44.057900751, -19.969829113 ],
|
1126 |
+
[ -44.057716107, -19.969948715 ],
|
1127 |
+
[ -44.057561922, -19.970054964 ],
|
1128 |
+
[ -44.05730448, -19.970257532 ],
|
1129 |
+
[ -44.056810503, -19.970670445 ],
|
1130 |
+
[ -44.056614572, -19.970833163 ],
|
1131 |
+
[ -44.0565693, -19.970870761 ],
|
1132 |
+
[ -44.05644372, -19.970989699 ],
|
1133 |
+
[ -44.056355168, -19.971070048 ],
|
1134 |
+
[ -44.056314736, -19.971099511 ],
|
1135 |
+
[ -44.056290588, -19.971117107 ],
|
1136 |
+
[ -44.056258477, -19.971098655 ],
|
1137 |
+
[ -44.056214506, -19.971084135 ],
|
1138 |
+
[ -44.056168753, -19.97107855 ],
|
1139 |
+
[ -44.05613218, -19.971078197 ],
|
1140 |
+
[ -44.056103554, -19.971081655 ],
|
1141 |
+
[ -44.056071553, -19.971092678 ],
|
1142 |
+
[ -44.056042091, -19.971106755 ],
|
1143 |
+
[ -44.056014898, -19.971126962 ],
|
1144 |
+
[ -44.055991985, -19.971149276 ],
|
1145 |
+
[ -44.055975299, -19.971173153 ],
|
1146 |
+
[ -44.055961175, -19.971199275 ],
|
1147 |
+
[ -44.055950969, -19.971228982 ],
|
1148 |
+
[ -44.055946586, -19.971259081 ],
|
1149 |
+
[ -44.055945354, -19.971295661 ],
|
1150 |
+
[ -44.055950225, -19.971325425 ],
|
1151 |
+
[ -44.055959032, -19.971358489 ],
|
1152 |
+
[ -44.055974662, -19.971389513 ],
|
1153 |
+
[ -44.055992286, -19.971419998 ]
|
1154 |
+
]
|
1155 |
+
]
|
1156 |
+
},
|
1157 |
+
"properties" : {
|
1158 |
+
"CD_SETOR" : "311860110080028P",
|
1159 |
+
"AREA_KM2" : 0.047675,
|
1160 |
+
"POP" : 379 }
|
1161 |
+
},
|
1162 |
+
{
|
1163 |
+
"type" : "Feature",
|
1164 |
+
"geometry" : {
|
1165 |
+
"type" : "Polygon",
|
1166 |
+
"coordinates" : [
|
1167 |
+
[
|
1168 |
+
[ -44.059258667, -19.967079626 ],
|
1169 |
+
[ -44.059198866, -19.967134334 ],
|
1170 |
+
[ -44.059138258, -19.967182363 ],
|
1171 |
+
[ -44.059076284, -19.96722255 ],
|
1172 |
+
[ -44.058999351, -19.967257715 ],
|
1173 |
+
[ -44.058922511, -19.967286569 ],
|
1174 |
+
[ -44.058135999, -19.967512068 ],
|
1175 |
+
[ -44.057982211, -19.967559179 ],
|
1176 |
+
[ -44.057964374, -19.967491939 ],
|
1177 |
+
[ -44.05794708, -19.967405362 ],
|
1178 |
+
[ -44.05793571, -19.967326718 ],
|
1179 |
+
[ -44.057935047, -19.967258578 ],
|
1180 |
+
[ -44.057939461, -19.967199241 ],
|
1181 |
+
[ -44.057958181, -19.967119255 ],
|
1182 |
+
[ -44.058016581, -19.966982967 ],
|
1183 |
+
[ -44.058151918, -19.966754541 ],
|
1184 |
+
[ -44.058197674, -19.966689919 ],
|
1185 |
+
[ -44.058250118, -19.966620117 ],
|
1186 |
+
[ -44.058299845, -19.966568593 ],
|
1187 |
+
[ -44.058345558, -19.966525594 ],
|
1188 |
+
[ -44.058391351, -19.966501016 ],
|
1189 |
+
[ -44.058432945, -19.966483145 ],
|
1190 |
+
[ -44.058479292, -19.966467508 ],
|
1191 |
+
[ -44.058534381, -19.966454472 ],
|
1192 |
+
[ -44.05902952, -19.966356928 ],
|
1193 |
+
[ -44.059082161, -19.966600729 ],
|
1194 |
+
[ -44.059134559, -19.966765211 ],
|
1195 |
+
[ -44.059201645, -19.966944017 ],
|
1196 |
+
[ -44.059258667, -19.967079626 ]
|
1197 |
+
]
|
1198 |
+
]
|
1199 |
+
},
|
1200 |
+
"properties" : {
|
1201 |
+
"CD_SETOR" : "311860110080031P",
|
1202 |
+
"AREA_KM2" : 0.011739,
|
1203 |
+
"POP" : 327 }
|
1204 |
+
},
|
1205 |
+
{
|
1206 |
+
"type" : "Feature",
|
1207 |
+
"geometry" : {
|
1208 |
+
"type" : "Polygon",
|
1209 |
+
"coordinates" : [
|
1210 |
+
[
|
1211 |
+
[ -44.055013203, -19.963684168 ],
|
1212 |
+
[ -44.05505376, -19.963611993 ],
|
1213 |
+
[ -44.055090981, -19.963571618 ],
|
1214 |
+
[ -44.055263688, -19.96337691 ],
|
1215 |
+
[ -44.055333643, -19.963287723 ],
|
1216 |
+
[ -44.055376093, -19.963222202 ],
|
1217 |
+
[ -44.055414832, -19.963157493 ],
|
1218 |
+
[ -44.055450271, -19.963081816 ],
|
1219 |
+
[ -44.055474504, -19.963002814 ],
|
1220 |
+
[ -44.05549315, -19.962921174 ],
|
1221 |
+
[ -44.055503086, -19.962854918 ],
|
1222 |
+
[ -44.055504024, -19.962787704 ],
|
1223 |
+
[ -44.05550099, -19.962713469 ],
|
1224 |
+
[ -44.055493442, -19.962632844 ],
|
1225 |
+
[ -44.055481163, -19.962554991 ],
|
1226 |
+
[ -44.055266552, -19.961737111 ],
|
1227 |
+
[ -44.055081661, -19.961028113 ],
|
1228 |
+
[ -44.056076054, -19.961121817 ],
|
1229 |
+
[ -44.056909234, -19.96117511 ],
|
1230 |
+
[ -44.05691153, -19.961224732 ],
|
1231 |
+
[ -44.056923647, -19.961325485 ],
|
1232 |
+
[ -44.056941664, -19.96140555 ],
|
1233 |
+
[ -44.057103527, -19.961917679 ],
|
1234 |
+
[ -44.057323208, -19.962614469 ],
|
1235 |
+
[ -44.057538962, -19.963275718 ],
|
1236 |
+
[ -44.057759706, -19.963963625 ],
|
1237 |
+
[ -44.055772391, -19.963736818 ],
|
1238 |
+
[ -44.055347324, -19.963680841 ],
|
1239 |
+
[ -44.055206406, -19.963670313 ],
|
1240 |
+
[ -44.05513612, -19.96366982 ],
|
1241 |
+
[ -44.055073795, -19.963675041 ],
|
1242 |
+
[ -44.055013203, -19.963684168 ]
|
1243 |
+
]
|
1244 |
+
]
|
1245 |
+
},
|
1246 |
+
"properties" : {
|
1247 |
+
"CD_SETOR" : "311860110080032P",
|
1248 |
+
"AREA_KM2" : 0.06159,
|
1249 |
+
"POP" : 568 }
|
1250 |
+
},
|
1251 |
+
{
|
1252 |
+
"type" : "Feature",
|
1253 |
+
"geometry" : {
|
1254 |
+
"type" : "Polygon",
|
1255 |
+
"coordinates" : [
|
1256 |
+
[
|
1257 |
+
[ -44.054305555, -19.959135019 ],
|
1258 |
+
[ -44.054860731, -19.958766595 ],
|
1259 |
+
[ -44.055039901, -19.958660268 ],
|
1260 |
+
[ -44.055088591, -19.958729102 ],
|
1261 |
+
[ -44.05513739, -19.958796152 ],
|
1262 |
+
[ -44.0553201, -19.959047197 ],
|
1263 |
+
[ -44.055346323, -19.959066546 ],
|
1264 |
+
[ -44.055372235, -19.959076364 ],
|
1265 |
+
[ -44.055397977, -19.959082214 ],
|
1266 |
+
[ -44.055426419, -19.959086547 ],
|
1267 |
+
[ -44.05624894, -19.959172816 ],
|
1268 |
+
[ -44.056281651, -19.95918424 ],
|
1269 |
+
[ -44.056309442, -19.959199375 ],
|
1270 |
+
[ -44.056650185, -19.959501523 ],
|
1271 |
+
[ -44.056693162, -19.959543914 ],
|
1272 |
+
[ -44.056727354, -19.959582539 ],
|
1273 |
+
[ -44.056750506, -19.959615494 ],
|
1274 |
+
[ -44.056770728, -19.959655736 ],
|
1275 |
+
[ -44.056783196, -19.95969729 ],
|
1276 |
+
[ -44.05678969, -19.95973436 ],
|
1277 |
+
[ -44.056793457, -19.959781013 ],
|
1278 |
+
[ -44.056793837, -19.959837948 ],
|
1279 |
+
[ -44.056793083, -19.96041182 ],
|
1280 |
+
[ -44.056795966, -19.960476474 ],
|
1281 |
+
[ -44.056804051, -19.960554931 ],
|
1282 |
+
[ -44.056810709, -19.96062611 ],
|
1283 |
+
[ -44.056821074, -19.960707337 ],
|
1284 |
+
[ -44.056837743, -19.96079882 ],
|
1285 |
+
[ -44.056854487, -19.960896892 ],
|
1286 |
+
[ -44.056909234, -19.96117511 ],
|
1287 |
+
[ -44.056076054, -19.961121817 ],
|
1288 |
+
[ -44.055081661, -19.961028113 ],
|
1289 |
+
[ -44.054910564, -19.960350818 ],
|
1290 |
+
[ -44.054848445, -19.960113315 ],
|
1291 |
+
[ -44.054821389, -19.960020142 ],
|
1292 |
+
[ -44.054790684, -19.959927407 ],
|
1293 |
+
[ -44.054750627, -19.959827536 ],
|
1294 |
+
[ -44.05467117, -19.95964255 ],
|
1295 |
+
[ -44.054611036, -19.959548662 ],
|
1296 |
+
[ -44.054439872, -19.959271151 ],
|
1297 |
+
[ -44.054399492, -19.959251339 ],
|
1298 |
+
[ -44.054373215, -19.959218801 ],
|
1299 |
+
[ -44.054305555, -19.959135019 ]
|
1300 |
+
]
|
1301 |
+
]
|
1302 |
+
},
|
1303 |
+
"properties" : {
|
1304 |
+
"CD_SETOR" : "311860110080033P",
|
1305 |
+
"AREA_KM2" : 0.047285,
|
1306 |
+
"POP" : 326 }
|
1307 |
+
},
|
1308 |
+
{
|
1309 |
+
"type" : "Feature",
|
1310 |
+
"geometry" : {
|
1311 |
+
"type" : "Polygon",
|
1312 |
+
"coordinates" : [
|
1313 |
+
[
|
1314 |
+
[ -44.06263978, -19.969094439 ],
|
1315 |
+
[ -44.06323258, -19.968931024 ],
|
1316 |
+
[ -44.063298536, -19.968918179 ],
|
1317 |
+
[ -44.063358143, -19.968909774 ],
|
1318 |
+
[ -44.063433442, -19.968906185 ],
|
1319 |
+
[ -44.063508288, -19.968909802 ],
|
1320 |
+
[ -44.063564737, -19.968916504 ],
|
1321 |
+
[ -44.063637718, -19.968928779 ],
|
1322 |
+
[ -44.063690207, -19.968939415 ],
|
1323 |
+
[ -44.063744036, -19.968953865 ],
|
1324 |
+
[ -44.064384511, -19.969165958 ],
|
1325 |
+
[ -44.06436549, -19.969265267 ],
|
1326 |
+
[ -44.064342975, -19.969395147 ],
|
1327 |
+
[ -44.06433972, -19.969491591 ],
|
1328 |
+
[ -44.064341179, -19.969560987 ],
|
1329 |
+
[ -44.064347107, -19.969629241 ],
|
1330 |
+
[ -44.064357695, -19.969699203 ],
|
1331 |
+
[ -44.064370973, -19.969763389 ],
|
1332 |
+
[ -44.064385361, -19.969816803 ],
|
1333 |
+
[ -44.064419425, -19.9699366 ],
|
1334 |
+
[ -44.065096417, -19.972090594 ],
|
1335 |
+
[ -44.065123459, -19.972178831 ],
|
1336 |
+
[ -44.065143673, -19.972245869 ],
|
1337 |
+
[ -44.065079453, -19.972254751 ],
|
1338 |
+
[ -44.064974857, -19.972280843 ],
|
1339 |
+
[ -44.064428095, -19.972426094 ],
|
1340 |
+
[ -44.063717046, -19.972620896 ],
|
1341 |
+
[ -44.063180776, -19.970857543 ],
|
1342 |
+
[ -44.06263978, -19.969094439 ]
|
1343 |
+
]
|
1344 |
+
]
|
1345 |
+
},
|
1346 |
+
"properties" : {
|
1347 |
+
"CD_SETOR" : "311860110080034P",
|
1348 |
+
"AREA_KM2" : 0.061633,
|
1349 |
+
"POP" : 339 }
|
1350 |
+
},
|
1351 |
+
{
|
1352 |
+
"type" : "Feature",
|
1353 |
+
"geometry" : {
|
1354 |
+
"type" : "Polygon",
|
1355 |
+
"coordinates" : [
|
1356 |
+
[
|
1357 |
+
[ -44.061111505, -19.969501996 ],
|
1358 |
+
[ -44.06112224, -19.969499319 ],
|
1359 |
+
[ -44.061158037, -19.969490391 ],
|
1360 |
+
[ -44.061965477, -19.969276633 ],
|
1361 |
+
[ -44.06263978, -19.969094439 ],
|
1362 |
+
[ -44.063180776, -19.970857543 ],
|
1363 |
+
[ -44.063717046, -19.972620896 ],
|
1364 |
+
[ -44.063038271, -19.972800966 ],
|
1365 |
+
[ -44.062932894, -19.97245384 ],
|
1366 |
+
[ -44.06254278, -19.972555464 ],
|
1367 |
+
[ -44.06251881, -19.972561894 ],
|
1368 |
+
[ -44.062496712, -19.972563585 ],
|
1369 |
+
[ -44.062484782, -19.972555477 ],
|
1370 |
+
[ -44.062471119, -19.972537215 ],
|
1371 |
+
[ -44.062414798, -19.972478516 ],
|
1372 |
+
[ -44.062395357, -19.972496265 ],
|
1373 |
+
[ -44.062371884, -19.972506891 ],
|
1374 |
+
[ -44.062343034, -19.972511811 ],
|
1375 |
+
[ -44.062317638, -19.972508063 ],
|
1376 |
+
[ -44.062298815, -19.972499013 ],
|
1377 |
+
[ -44.06228083, -19.972485374 ],
|
1378 |
+
[ -44.062266778, -19.972465411 ],
|
1379 |
+
[ -44.062257426, -19.972444437 ],
|
1380 |
+
[ -44.062253639, -19.972421446 ],
|
1381 |
+
[ -44.062255798, -19.972404472 ],
|
1382 |
+
[ -44.062259542, -19.972389981 ],
|
1383 |
+
[ -44.062207291, -19.972363366 ],
|
1384 |
+
[ -44.061637394, -19.972096067 ],
|
1385 |
+
[ -44.061598151, -19.972078311 ],
|
1386 |
+
[ -44.06161593, -19.972040627 ],
|
1387 |
+
[ -44.061661268, -19.971924127 ],
|
1388 |
+
[ -44.06169187, -19.971801549 ],
|
1389 |
+
[ -44.061707888, -19.971703047 ],
|
1390 |
+
[ -44.061710626, -19.971620676 ],
|
1391 |
+
[ -44.061707031, -19.971513106 ],
|
1392 |
+
[ -44.06168817, -19.971425982 ],
|
1393 |
+
[ -44.061677582, -19.971378202 ],
|
1394 |
+
[ -44.061643011, -19.971247273 ],
|
1395 |
+
[ -44.061487499, -19.970735215 ],
|
1396 |
+
[ -44.061317092, -19.970174113 ],
|
1397 |
+
[ -44.061209759, -19.969823215 ],
|
1398 |
+
[ -44.061111505, -19.969501996 ]
|
1399 |
+
]
|
1400 |
+
]
|
1401 |
+
},
|
1402 |
+
"properties" : {
|
1403 |
+
"CD_SETOR" : "311860110080035P",
|
1404 |
+
"AREA_KM2" : 0.063842,
|
1405 |
+
"POP" : 770 }
|
1406 |
+
},
|
1407 |
+
{
|
1408 |
+
"type" : "Feature",
|
1409 |
+
"geometry" : {
|
1410 |
+
"type" : "Polygon",
|
1411 |
+
"coordinates" : [
|
1412 |
+
[
|
1413 |
+
[ -44.059431429, -19.971705073 ],
|
1414 |
+
[ -44.059436015, -19.97161081 ],
|
1415 |
+
[ -44.060586454, -19.971613564 ],
|
1416 |
+
[ -44.060581781, -19.971786447 ],
|
1417 |
+
[ -44.060992621, -19.971779812 ],
|
1418 |
+
[ -44.061446766, -19.971981092 ],
|
1419 |
+
[ -44.06152734, -19.972009449 ],
|
1420 |
+
[ -44.06161593, -19.972040627 ],
|
1421 |
+
[ -44.061598151, -19.972078311 ],
|
1422 |
+
[ -44.061586275, -19.972098847 ],
|
1423 |
+
[ -44.061561457, -19.972141762 ],
|
1424 |
+
[ -44.061524462, -19.972194058 ],
|
1425 |
+
[ -44.061486175, -19.972243685 ],
|
1426 |
+
[ -44.061448075, -19.972288253 ],
|
1427 |
+
[ -44.061396135, -19.972343514 ],
|
1428 |
+
[ -44.061335063, -19.972409083 ],
|
1429 |
+
[ -44.061292221, -19.972450763 ],
|
1430 |
+
[ -44.061282467, -19.972460252 ],
|
1431 |
+
[ -44.06123147, -19.972496915 ],
|
1432 |
+
[ -44.06117936, -19.972521978 ],
|
1433 |
+
[ -44.061138749, -19.972536826 ],
|
1434 |
+
[ -44.061120067, -19.972543657 ],
|
1435 |
+
[ -44.061046287, -19.972571179 ],
|
1436 |
+
[ -44.060948973, -19.97260353 ],
|
1437 |
+
[ -44.060861686, -19.972629147 ],
|
1438 |
+
[ -44.060789148, -19.972646153 ],
|
1439 |
+
[ -44.06071243, -19.9726559 ],
|
1440 |
+
[ -44.060609755, -19.972663016 ],
|
1441 |
+
[ -44.059505387, -19.972662456 ],
|
1442 |
+
[ -44.05944601, -19.972662426 ],
|
1443 |
+
[ -44.059442054, -19.97262633 ],
|
1444 |
+
[ -44.059444543, -19.971966016 ],
|
1445 |
+
[ -44.059444277, -19.971869018 ],
|
1446 |
+
[ -44.059439435, -19.971782414 ],
|
1447 |
+
[ -44.059431429, -19.971705073 ]
|
1448 |
+
]
|
1449 |
+
]
|
1450 |
+
},
|
1451 |
+
"properties" : {
|
1452 |
+
"CD_SETOR" : "311860110080036P",
|
1453 |
+
"AREA_KM2" : 0.02142,
|
1454 |
+
"POP" : 517 }
|
1455 |
+
},
|
1456 |
+
{
|
1457 |
+
"type" : "Feature",
|
1458 |
+
"geometry" : {
|
1459 |
+
"type" : "Polygon",
|
1460 |
+
"coordinates" : [
|
1461 |
+
[
|
1462 |
+
[ -44.058233372, -19.969667514 ],
|
1463 |
+
[ -44.058262873, -19.969653452 ],
|
1464 |
+
[ -44.058295187, -19.969638048 ],
|
1465 |
+
[ -44.058510993, -19.969550645 ],
|
1466 |
+
[ -44.058673122, -19.969492764 ],
|
1467 |
+
[ -44.058832041, -19.969440194 ],
|
1468 |
+
[ -44.059063597, -19.969370817 ],
|
1469 |
+
[ -44.05927632, -19.969311619 ],
|
1470 |
+
[ -44.059471536, -19.969258 ],
|
1471 |
+
[ -44.059601932, -19.969219264 ],
|
1472 |
+
[ -44.059742575, -19.969172924 ],
|
1473 |
+
[ -44.05992459, -19.969094932 ],
|
1474 |
+
[ -44.060077453, -19.969026097 ],
|
1475 |
+
[ -44.060201599, -19.968956767 ],
|
1476 |
+
[ -44.060311848, -19.969212042 ],
|
1477 |
+
[ -44.060389046, -19.969491704 ],
|
1478 |
+
[ -44.059744604, -19.969491335 ],
|
1479 |
+
[ -44.059746759, -19.97052001 ],
|
1480 |
+
[ -44.059744026, -19.97110922 ],
|
1481 |
+
[ -44.059722776, -19.971159234 ],
|
1482 |
+
[ -44.059671212, -19.97122803 ],
|
1483 |
+
[ -44.059556927, -19.971336285 ],
|
1484 |
+
[ -44.059515182, -19.971381814 ],
|
1485 |
+
[ -44.059444608, -19.97148861 ],
|
1486 |
+
[ -44.059436015, -19.97161081 ],
|
1487 |
+
[ -44.059431429, -19.971705073 ],
|
1488 |
+
[ -44.059317409, -19.971501658 ],
|
1489 |
+
[ -44.059019605, -19.970996228 ],
|
1490 |
+
[ -44.058565971, -19.970224374 ],
|
1491 |
+
[ -44.058561643, -19.970217009 ],
|
1492 |
+
[ -44.058266259, -19.969715997 ],
|
1493 |
+
[ -44.058233372, -19.969667514 ]
|
1494 |
+
]
|
1495 |
+
]
|
1496 |
+
},
|
1497 |
+
"properties" : {
|
1498 |
+
"CD_SETOR" : "311860110080037P",
|
1499 |
+
"AREA_KM2" : 0.027539,
|
1500 |
+
"POP" : 130 }
|
1501 |
+
},
|
1502 |
+
{
|
1503 |
+
"type" : "Feature",
|
1504 |
+
"geometry" : {
|
1505 |
+
"type" : "Polygon",
|
1506 |
+
"coordinates" : [
|
1507 |
+
[
|
1508 |
+
[ -44.060549437, -19.970379507 ],
|
1509 |
+
[ -44.061317092, -19.970174113 ],
|
1510 |
+
[ -44.061487499, -19.970735215 ],
|
1511 |
+
[ -44.061643011, -19.971247273 ],
|
1512 |
+
[ -44.061677582, -19.971378202 ],
|
1513 |
+
[ -44.061571316, -19.971383838 ],
|
1514 |
+
[ -44.060580999, -19.971357975 ],
|
1515 |
+
[ -44.060552176, -19.970521848 ],
|
1516 |
+
[ -44.060549437, -19.970379507 ]
|
1517 |
+
]
|
1518 |
+
]
|
1519 |
+
},
|
1520 |
+
"properties" : {
|
1521 |
+
"CD_SETOR" : "311860110080038P",
|
1522 |
+
"AREA_KM2" : 0.012088,
|
1523 |
+
"POP" : 466 }
|
1524 |
+
},
|
1525 |
+
{
|
1526 |
+
"type" : "Feature",
|
1527 |
+
"geometry" : {
|
1528 |
+
"type" : "Polygon",
|
1529 |
+
"coordinates" : [
|
1530 |
+
[
|
1531 |
+
[ -44.060586454, -19.971613564 ],
|
1532 |
+
[ -44.060580999, -19.971357975 ],
|
1533 |
+
[ -44.061571316, -19.971383838 ],
|
1534 |
+
[ -44.061677582, -19.971378202 ],
|
1535 |
+
[ -44.06168817, -19.971425982 ],
|
1536 |
+
[ -44.061707031, -19.971513106 ],
|
1537 |
+
[ -44.061710626, -19.971620676 ],
|
1538 |
+
[ -44.061707888, -19.971703047 ],
|
1539 |
+
[ -44.06169187, -19.971801549 ],
|
1540 |
+
[ -44.061661268, -19.971924127 ],
|
1541 |
+
[ -44.06161593, -19.972040627 ],
|
1542 |
+
[ -44.06152734, -19.972009449 ],
|
1543 |
+
[ -44.061446766, -19.971981092 ],
|
1544 |
+
[ -44.060992621, -19.971779812 ],
|
1545 |
+
[ -44.060581781, -19.971786447 ],
|
1546 |
+
[ -44.060586454, -19.971613564 ]
|
1547 |
+
]
|
1548 |
+
]
|
1549 |
+
},
|
1550 |
+
"properties" : {
|
1551 |
+
"CD_SETOR" : "311860110080039P",
|
1552 |
+
"AREA_KM2" : 0.006417,
|
1553 |
+
"POP" : 276 }
|
1554 |
+
},
|
1555 |
+
{
|
1556 |
+
"type" : "Feature",
|
1557 |
+
"geometry" : {
|
1558 |
+
"type" : "Polygon",
|
1559 |
+
"coordinates" : [
|
1560 |
+
[
|
1561 |
+
[ -44.059746759, -19.97052001 ],
|
1562 |
+
[ -44.059744604, -19.969491335 ],
|
1563 |
+
[ -44.060389046, -19.969491704 ],
|
1564 |
+
[ -44.060447568, -19.969697778 ],
|
1565 |
+
[ -44.060549437, -19.970379507 ],
|
1566 |
+
[ -44.060552176, -19.970521848 ],
|
1567 |
+
[ -44.060522612, -19.970522943 ],
|
1568 |
+
[ -44.060217429, -19.970521622 ],
|
1569 |
+
[ -44.059958486, -19.970517658 ],
|
1570 |
+
[ -44.059746759, -19.97052001 ]
|
1571 |
+
]
|
1572 |
+
]
|
1573 |
+
},
|
1574 |
+
"properties" : {
|
1575 |
+
"CD_SETOR" : "311860110080040P",
|
1576 |
+
"AREA_KM2" : 0.00887,
|
1577 |
+
"POP" : 244 }
|
1578 |
+
},
|
1579 |
+
{
|
1580 |
+
"type" : "Feature",
|
1581 |
+
"geometry" : {
|
1582 |
+
"type" : "Polygon",
|
1583 |
+
"coordinates" : [
|
1584 |
+
[
|
1585 |
+
[ -44.059746759, -19.97052001 ],
|
1586 |
+
[ -44.059958486, -19.970517658 ],
|
1587 |
+
[ -44.060217429, -19.970521622 ],
|
1588 |
+
[ -44.060522612, -19.970522943 ],
|
1589 |
+
[ -44.060552176, -19.970521848 ],
|
1590 |
+
[ -44.060580999, -19.971357975 ],
|
1591 |
+
[ -44.060586454, -19.971613564 ],
|
1592 |
+
[ -44.059436015, -19.97161081 ],
|
1593 |
+
[ -44.059444608, -19.97148861 ],
|
1594 |
+
[ -44.059515182, -19.971381814 ],
|
1595 |
+
[ -44.059556927, -19.971336285 ],
|
1596 |
+
[ -44.059671212, -19.97122803 ],
|
1597 |
+
[ -44.059722776, -19.971159234 ],
|
1598 |
+
[ -44.059744026, -19.97110922 ],
|
1599 |
+
[ -44.059746759, -19.97052001 ]
|
1600 |
+
]
|
1601 |
+
]
|
1602 |
+
},
|
1603 |
+
"properties" : {
|
1604 |
+
"CD_SETOR" : "311860110080041P",
|
1605 |
+
"AREA_KM2" : 0.011524,
|
1606 |
+
"POP" : 407 }
|
1607 |
+
},
|
1608 |
+
{
|
1609 |
+
"type" : "Feature",
|
1610 |
+
"geometry" : {
|
1611 |
+
"type" : "Polygon",
|
1612 |
+
"coordinates" : [
|
1613 |
+
[
|
1614 |
+
[ -44.05944601, -19.972662426 ],
|
1615 |
+
[ -44.059505387, -19.972662456 ],
|
1616 |
+
[ -44.060609755, -19.972663016 ],
|
1617 |
+
[ -44.06071243, -19.9726559 ],
|
1618 |
+
[ -44.060789148, -19.972646153 ],
|
1619 |
+
[ -44.060861686, -19.972629147 ],
|
1620 |
+
[ -44.060948973, -19.97260353 ],
|
1621 |
+
[ -44.061046287, -19.972571179 ],
|
1622 |
+
[ -44.061120067, -19.972543657 ],
|
1623 |
+
[ -44.061138749, -19.972536826 ],
|
1624 |
+
[ -44.06117936, -19.972521978 ],
|
1625 |
+
[ -44.06123147, -19.972496915 ],
|
1626 |
+
[ -44.06128296, -19.972559749 ],
|
1627 |
+
[ -44.06129146, -19.972570122 ],
|
1628 |
+
[ -44.061350324, -19.972658844 ],
|
1629 |
+
[ -44.061404879, -19.972737792 ],
|
1630 |
+
[ -44.061434373, -19.972785349 ],
|
1631 |
+
[ -44.061463523, -19.972840139 ],
|
1632 |
+
[ -44.061483416, -19.972885413 ],
|
1633 |
+
[ -44.061511351, -19.97295762 ],
|
1634 |
+
[ -44.061516833, -19.972980326 ],
|
1635 |
+
[ -44.061528449, -19.973028448 ],
|
1636 |
+
[ -44.061560618, -19.973172021 ],
|
1637 |
+
[ -44.061575081, -19.973236876 ],
|
1638 |
+
[ -44.06158557, -19.973310504 ],
|
1639 |
+
[ -44.061589811, -19.973377262 ],
|
1640 |
+
[ -44.061594498, -19.9734397 ],
|
1641 |
+
[ -44.061614266, -19.973703047 ],
|
1642 |
+
[ -44.061620272, -19.973768968 ],
|
1643 |
+
[ -44.061574987, -19.973774483 ],
|
1644 |
+
[ -44.061303591, -19.973796488 ],
|
1645 |
+
[ -44.061266108, -19.973799527 ],
|
1646 |
+
[ -44.061213002, -19.973808445 ],
|
1647 |
+
[ -44.061063221, -19.973833598 ],
|
1648 |
+
[ -44.060679594, -19.973898021 ],
|
1649 |
+
[ -44.060621452, -19.973907785 ],
|
1650 |
+
[ -44.060311979, -19.973978312 ],
|
1651 |
+
[ -44.059749617, -19.974106471 ],
|
1652 |
+
[ -44.059529121, -19.974162377 ],
|
1653 |
+
[ -44.059512242, -19.974166656 ],
|
1654 |
+
[ -44.059205938, -19.9742312 ],
|
1655 |
+
[ -44.058435222, -19.974393603 ],
|
1656 |
+
[ -44.056832246, -19.974731379 ],
|
1657 |
+
[ -44.056331363, -19.974568592 ],
|
1658 |
+
[ -44.055939132, -19.974499474 ],
|
1659 |
+
[ -44.055910311, -19.974494289 ],
|
1660 |
+
[ -44.055868762, -19.974486814 ],
|
1661 |
+
[ -44.05587546, -19.974334444 ],
|
1662 |
+
[ -44.055428755, -19.97362912 ],
|
1663 |
+
[ -44.055442293, -19.973611307 ],
|
1664 |
+
[ -44.055449809, -19.973622465 ],
|
1665 |
+
[ -44.055484792, -19.973676284 ],
|
1666 |
+
[ -44.056962474, -19.973685076 ],
|
1667 |
+
[ -44.056965815, -19.974234669 ],
|
1668 |
+
[ -44.058163908, -19.974154884 ],
|
1669 |
+
[ -44.058353523, -19.974105581 ],
|
1670 |
+
[ -44.059110274, -19.973892438 ],
|
1671 |
+
[ -44.059116503, -19.972736415 ],
|
1672 |
+
[ -44.059116174, -19.972674185 ],
|
1673 |
+
[ -44.059116431, -19.972665268 ],
|
1674 |
+
[ -44.059400624, -19.972662818 ],
|
1675 |
+
[ -44.05944601, -19.972662426 ]
|
1676 |
+
]
|
1677 |
+
]
|
1678 |
+
},
|
1679 |
+
"properties" : {
|
1680 |
+
"CD_SETOR" : "311860110080042P",
|
1681 |
+
"AREA_KM2" : 0.060028,
|
1682 |
+
"POP" : 265 }
|
1683 |
+
},
|
1684 |
+
{
|
1685 |
+
"type" : "Feature",
|
1686 |
+
"geometry" : {
|
1687 |
+
"type" : "Polygon",
|
1688 |
+
"coordinates" : [
|
1689 |
+
[
|
1690 |
+
[ -44.055542151, -19.969239158 ],
|
1691 |
+
[ -44.055567622, -19.969197468 ],
|
1692 |
+
[ -44.055582175, -19.969167905 ],
|
1693 |
+
[ -44.055595801, -19.969128775 ],
|
1694 |
+
[ -44.055637061, -19.968993454 ],
|
1695 |
+
[ -44.055655613, -19.968945822 ],
|
1696 |
+
[ -44.055677823, -19.968913593 ],
|
1697 |
+
[ -44.055705671, -19.968884789 ],
|
1698 |
+
[ -44.055775935, -19.968827952 ],
|
1699 |
+
[ -44.056061428, -19.968598643 ],
|
1700 |
+
[ -44.056163702, -19.968521593 ],
|
1701 |
+
[ -44.056433863, -19.968331585 ],
|
1702 |
+
[ -44.056600898, -19.968221156 ],
|
1703 |
+
[ -44.056704118, -19.968158926 ],
|
1704 |
+
[ -44.05694173, -19.968016754 ],
|
1705 |
+
[ -44.057006459, -19.967982244 ],
|
1706 |
+
[ -44.057060807, -19.967957779 ],
|
1707 |
+
[ -44.057245545, -19.967867449 ],
|
1708 |
+
[ -44.05756754, -19.968451606 ],
|
1709 |
+
[ -44.057374373, -19.968550351 ],
|
1710 |
+
[ -44.057195437, -19.968647626 ],
|
1711 |
+
[ -44.057076688, -19.968715663 ],
|
1712 |
+
[ -44.056912225, -19.968822277 ],
|
1713 |
+
[ -44.056731532, -19.968944723 ],
|
1714 |
+
[ -44.056517614, -19.969100658 ],
|
1715 |
+
[ -44.055542384, -19.969902683 ],
|
1716 |
+
[ -44.055490262, -19.96994531 ],
|
1717 |
+
[ -44.055442925, -19.96999442 ],
|
1718 |
+
[ -44.055395071, -19.970052277 ],
|
1719 |
+
[ -44.055359499, -19.970109018 ],
|
1720 |
+
[ -44.055327725, -19.970165902 ],
|
1721 |
+
[ -44.05529917, -19.970232287 ],
|
1722 |
+
[ -44.055284096, -19.970290227 ],
|
1723 |
+
[ -44.055272509, -19.970348266 ],
|
1724 |
+
[ -44.055267484, -19.970420679 ],
|
1725 |
+
[ -44.055272897, -19.970514419 ],
|
1726 |
+
[ -44.055280647, -19.970574679 ],
|
1727 |
+
[ -44.055289275, -19.970606334 ],
|
1728 |
+
[ -44.055301855, -19.970643787 ],
|
1729 |
+
[ -44.055317267, -19.970678688 ],
|
1730 |
+
[ -44.055344823, -19.970731329 ],
|
1731 |
+
[ -44.055387977, -19.970792615 ],
|
1732 |
+
[ -44.05544805, -19.97086458 ],
|
1733 |
+
[ -44.055494338, -19.970931674 ],
|
1734 |
+
[ -44.055614169, -19.971067714 ],
|
1735 |
+
[ -44.055685998, -19.97114633 ],
|
1736 |
+
[ -44.055886167, -19.97134055 ],
|
1737 |
+
[ -44.055936911, -19.971378861 ],
|
1738 |
+
[ -44.055992286, -19.971419998 ],
|
1739 |
+
[ -44.056009807, -19.971433837 ],
|
1740 |
+
[ -44.056037931, -19.97148333 ],
|
1741 |
+
[ -44.056072923, -19.971524676 ],
|
1742 |
+
[ -44.05611403, -19.971564595 ],
|
1743 |
+
[ -44.056294725, -19.971745884 ],
|
1744 |
+
[ -44.056270762, -19.971766324 ],
|
1745 |
+
[ -44.055155991, -19.972692457 ],
|
1746 |
+
[ -44.055169561, -19.972715368 ],
|
1747 |
+
[ -44.055174959, -19.972743538 ],
|
1748 |
+
[ -44.055171666, -19.972770065 ],
|
1749 |
+
[ -44.055159121, -19.972795254 ],
|
1750 |
+
[ -44.055138345, -19.972812318 ],
|
1751 |
+
[ -44.05511827, -19.972825124 ],
|
1752 |
+
[ -44.055091142, -19.972832729 ],
|
1753 |
+
[ -44.055062986, -19.972829882 ],
|
1754 |
+
[ -44.055039375, -19.972822408 ],
|
1755 |
+
[ -44.05502119, -19.972809411 ],
|
1756 |
+
[ -44.055001841, -19.972828204 ],
|
1757 |
+
[ -44.0548917, -19.97291421 ],
|
1758 |
+
[ -44.0550877, -19.973116453 ],
|
1759 |
+
[ -44.055204644, -19.973258511 ],
|
1760 |
+
[ -44.055442293, -19.973611307 ],
|
1761 |
+
[ -44.055428755, -19.97362912 ],
|
1762 |
+
[ -44.05587546, -19.974334444 ],
|
1763 |
+
[ -44.055868762, -19.974486814 ],
|
1764 |
+
[ -44.055845586, -19.974482645 ],
|
1765 |
+
[ -44.055780861, -19.974471001 ],
|
1766 |
+
[ -44.055743785, -19.974464331 ],
|
1767 |
+
[ -44.055395258, -19.974378958 ],
|
1768 |
+
[ -44.055363236, -19.974367338 ],
|
1769 |
+
[ -44.055246001, -19.974324799 ],
|
1770 |
+
[ -44.055126518, -19.974277006 ],
|
1771 |
+
[ -44.055115943, -19.974271356 ],
|
1772 |
+
[ -44.055053833, -19.974238174 ],
|
1773 |
+
[ -44.054838764, -19.974096786 ],
|
1774 |
+
[ -44.054709558, -19.974008185 ],
|
1775 |
+
[ -44.054875425, -19.973767475 ],
|
1776 |
+
[ -44.054896463, -19.973729262 ],
|
1777 |
+
[ -44.05491628, -19.97368816 ],
|
1778 |
+
[ -44.05492985, -19.973644983 ],
|
1779 |
+
[ -44.054934835, -19.973604339 ],
|
1780 |
+
[ -44.054932845, -19.973562475 ],
|
1781 |
+
[ -44.054921028, -19.973518506 ],
|
1782 |
+
[ -44.054902224, -19.973479239 ],
|
1783 |
+
[ -44.054874982, -19.973442778 ],
|
1784 |
+
[ -44.05484385, -19.973412438 ],
|
1785 |
+
[ -44.054580602, -19.973182332 ],
|
1786 |
+
[ -44.054457691, -19.973067754 ],
|
1787 |
+
[ -44.054341015, -19.972942414 ],
|
1788 |
+
[ -44.054198943, -19.972772155 ],
|
1789 |
+
[ -44.054142273, -19.972723569 ],
|
1790 |
+
[ -44.054087787, -19.972699192 ],
|
1791 |
+
[ -44.054090568, -19.972652559 ],
|
1792 |
+
[ -44.054087907, -19.972596119 ],
|
1793 |
+
[ -44.054083367, -19.972524294 ],
|
1794 |
+
[ -44.054056113, -19.971868469 ],
|
1795 |
+
[ -44.054041989, -19.971548964 ],
|
1796 |
+
[ -44.054044399, -19.971480314 ],
|
1797 |
+
[ -44.054053078, -19.971401383 ],
|
1798 |
+
[ -44.054068964, -19.971327537 ],
|
1799 |
+
[ -44.054087083, -19.971264894 ],
|
1800 |
+
[ -44.054106267, -19.971206754 ],
|
1801 |
+
[ -44.054181787, -19.971013322 ],
|
1802 |
+
[ -44.054200001, -19.970967179 ],
|
1803 |
+
[ -44.054220074, -19.970920061 ],
|
1804 |
+
[ -44.05424674, -19.970879691 ],
|
1805 |
+
[ -44.054279895, -19.970836305 ],
|
1806 |
+
[ -44.05432125, -19.970791385 ],
|
1807 |
+
[ -44.054359049, -19.970750936 ],
|
1808 |
+
[ -44.054830916, -19.970259558 ],
|
1809 |
+
[ -44.05489075, -19.970189583 ],
|
1810 |
+
[ -44.054944579, -19.970124107 ],
|
1811 |
+
[ -44.055018839, -19.970016287 ],
|
1812 |
+
[ -44.055348733, -19.969496976 ],
|
1813 |
+
[ -44.055460479, -19.969340265 ],
|
1814 |
+
[ -44.055542151, -19.969239158 ]
|
1815 |
+
]
|
1816 |
+
]
|
1817 |
+
},
|
1818 |
+
"properties" : {
|
1819 |
+
"CD_SETOR" : "311860110080043P",
|
1820 |
+
"AREA_KM2" : 0.076047,
|
1821 |
+
"POP" : 804 }
|
1822 |
+
},
|
1823 |
+
{
|
1824 |
+
"type" : "Feature",
|
1825 |
+
"geometry" : {
|
1826 |
+
"type" : "Polygon",
|
1827 |
+
"coordinates" : [
|
1828 |
+
[
|
1829 |
+
[ -44.057912815, -19.971591804 ],
|
1830 |
+
[ -44.058984031, -19.971014401 ],
|
1831 |
+
[ -44.059019605, -19.970996228 ],
|
1832 |
+
[ -44.059317409, -19.971501658 ],
|
1833 |
+
[ -44.059431429, -19.971705073 ],
|
1834 |
+
[ -44.059439435, -19.971782414 ],
|
1835 |
+
[ -44.059444277, -19.971869018 ],
|
1836 |
+
[ -44.059444543, -19.971966016 ],
|
1837 |
+
[ -44.059442054, -19.97262633 ],
|
1838 |
+
[ -44.05944601, -19.972662426 ],
|
1839 |
+
[ -44.059400624, -19.972662818 ],
|
1840 |
+
[ -44.059116431, -19.972665268 ],
|
1841 |
+
[ -44.057983815, -19.97266212 ],
|
1842 |
+
[ -44.057972911, -19.972662214 ],
|
1843 |
+
[ -44.057920778, -19.972662664 ],
|
1844 |
+
[ -44.057919113, -19.972662678 ],
|
1845 |
+
[ -44.057853973, -19.972663309 ],
|
1846 |
+
[ -44.057759971, -19.972664219 ],
|
1847 |
+
[ -44.057681551, -19.972663154 ],
|
1848 |
+
[ -44.057601498, -19.972656791 ],
|
1849 |
+
[ -44.057602802, -19.972652233 ],
|
1850 |
+
[ -44.057642941, -19.972573122 ],
|
1851 |
+
[ -44.057958452, -19.97165646 ],
|
1852 |
+
[ -44.057912815, -19.971591804 ]
|
1853 |
+
]
|
1854 |
+
]
|
1855 |
+
},
|
1856 |
+
"properties" : {
|
1857 |
+
"CD_SETOR" : "311860110080044P",
|
1858 |
+
"AREA_KM2" : 0.025455,
|
1859 |
+
"POP" : 493 }
|
1860 |
+
},
|
1861 |
+
{
|
1862 |
+
"type" : "Feature",
|
1863 |
+
"geometry" : {
|
1864 |
+
"type" : "Polygon",
|
1865 |
+
"coordinates" : [
|
1866 |
+
[
|
1867 |
+
[ -44.055992286, -19.971419998 ],
|
1868 |
+
[ -44.055974662, -19.971389513 ],
|
1869 |
+
[ -44.055959032, -19.971358489 ],
|
1870 |
+
[ -44.055950225, -19.971325425 ],
|
1871 |
+
[ -44.055945354, -19.971295661 ],
|
1872 |
+
[ -44.055946586, -19.971259081 ],
|
1873 |
+
[ -44.055950969, -19.971228982 ],
|
1874 |
+
[ -44.055961175, -19.971199275 ],
|
1875 |
+
[ -44.055975299, -19.971173153 ],
|
1876 |
+
[ -44.055991985, -19.971149276 ],
|
1877 |
+
[ -44.056014898, -19.971126962 ],
|
1878 |
+
[ -44.056042091, -19.971106755 ],
|
1879 |
+
[ -44.056071553, -19.971092678 ],
|
1880 |
+
[ -44.056103554, -19.971081655 ],
|
1881 |
+
[ -44.05613218, -19.971078197 ],
|
1882 |
+
[ -44.056168753, -19.97107855 ],
|
1883 |
+
[ -44.056214506, -19.971084135 ],
|
1884 |
+
[ -44.056258477, -19.971098655 ],
|
1885 |
+
[ -44.056290588, -19.971117107 ],
|
1886 |
+
[ -44.056314736, -19.971099511 ],
|
1887 |
+
[ -44.056355168, -19.971070048 ],
|
1888 |
+
[ -44.05644372, -19.970989699 ],
|
1889 |
+
[ -44.0565693, -19.970870761 ],
|
1890 |
+
[ -44.056614572, -19.970833163 ],
|
1891 |
+
[ -44.056674862, -19.970911118 ],
|
1892 |
+
[ -44.057243578, -19.97158776 ],
|
1893 |
+
[ -44.057590297, -19.97127642 ],
|
1894 |
+
[ -44.057587205, -19.971273003 ],
|
1895 |
+
[ -44.057591312, -19.971273003 ],
|
1896 |
+
[ -44.057912815, -19.971591804 ],
|
1897 |
+
[ -44.057958452, -19.97165646 ],
|
1898 |
+
[ -44.057642941, -19.972573122 ],
|
1899 |
+
[ -44.057602802, -19.972652233 ],
|
1900 |
+
[ -44.057601498, -19.972656791 ],
|
1901 |
+
[ -44.057522625, -19.972643847 ],
|
1902 |
+
[ -44.057457583, -19.972627472 ],
|
1903 |
+
[ -44.057386917, -19.972610133 ],
|
1904 |
+
[ -44.057322271, -19.97258932 ],
|
1905 |
+
[ -44.057245039, -19.972557106 ],
|
1906 |
+
[ -44.057181816, -19.972525051 ],
|
1907 |
+
[ -44.057118516, -19.972491604 ],
|
1908 |
+
[ -44.057059438, -19.972456265 ],
|
1909 |
+
[ -44.056989652, -19.97240621 ],
|
1910 |
+
[ -44.056936478, -19.972361438 ],
|
1911 |
+
[ -44.056870273, -19.972298393 ],
|
1912 |
+
[ -44.056814726, -19.972239682 ],
|
1913 |
+
[ -44.056806597, -19.97223109 ],
|
1914 |
+
[ -44.056718178, -19.972134684 ],
|
1915 |
+
[ -44.056707397, -19.972122775 ],
|
1916 |
+
[ -44.056649162, -19.972058446 ],
|
1917 |
+
[ -44.056616226, -19.972088543 ],
|
1918 |
+
[ -44.056294725, -19.971745884 ],
|
1919 |
+
[ -44.05611403, -19.971564595 ],
|
1920 |
+
[ -44.056072923, -19.971524676 ],
|
1921 |
+
[ -44.056037931, -19.97148333 ],
|
1922 |
+
[ -44.056009807, -19.971433837 ],
|
1923 |
+
[ -44.055992286, -19.971419998 ]
|
1924 |
+
]
|
1925 |
+
]
|
1926 |
+
},
|
1927 |
+
"properties" : {
|
1928 |
+
"CD_SETOR" : "311860110080045P",
|
1929 |
+
"AREA_KM2" : 0.021332,
|
1930 |
+
"POP" : 402 }
|
1931 |
+
}
|
1932 |
+
]
|
1933 |
+
}
|
1934 |
+
|
views/maps.py
ADDED
@@ -0,0 +1,187 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import folium
|
2 |
+
import geopandas as gpd
|
3 |
+
import plotly.express as px
|
4 |
+
from branca.colormap import LinearColormap
|
5 |
+
from folium.plugins import HeatMap
|
6 |
+
from streamlit_folium import folium_static
|
7 |
+
|
8 |
+
import streamlit as st
|
9 |
+
from streamlit_extras.stylable_container import stylable_container
|
10 |
+
from streamlit_extras.add_vertical_space import add_vertical_space
|
11 |
+
import streamlit_shadcn_ui as ui
|
12 |
+
|
13 |
+
with stylable_container(
|
14 |
+
key="banner",
|
15 |
+
css_styles="""
|
16 |
+
img {
|
17 |
+
width: 1800px;
|
18 |
+
height: 400px;
|
19 |
+
overflow: hidden;
|
20 |
+
position: relative;
|
21 |
+
object-fit: cover;
|
22 |
+
border-radius: 20px; /* Adiciona bordas arredondadas */
|
23 |
+
mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));
|
24 |
+
-webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)); /* For Safari */
|
25 |
+
}
|
26 |
+
""",
|
27 |
+
):
|
28 |
+
st.image("src/images/mp.jpg")
|
29 |
+
|
30 |
+
st.title("Mapas da área")
|
31 |
+
add_vertical_space(5)
|
32 |
+
st.markdown(""" ### :world_map: **UBS Flamengo: (IBGE 2022)** """)
|
33 |
+
add_vertical_space(5)
|
34 |
+
|
35 |
+
|
36 |
+
@st.cache_data
|
37 |
+
def load_data():
|
38 |
+
"""
|
39 |
+
A function that loads and reads geojson data for UBS Flamengo and converts it to the specified coordinate reference system.
|
40 |
+
"""
|
41 |
+
return gpd.read_file("views\\flamengo_ibge2022.geojson").to_crs(epsg=4326)
|
42 |
+
|
43 |
+
gdf = load_data()
|
44 |
+
LATITUDE = -19.971591804
|
45 |
+
LONGITUDE = -44.057912815
|
46 |
+
lat = -19.96214
|
47 |
+
long = -44.05603
|
48 |
+
|
49 |
+
|
50 |
+
|
51 |
+
total_pop = gdf["POP"].sum()
|
52 |
+
col1, col2, col3 = st.columns([1, 1, 5])
|
53 |
+
|
54 |
+
with col1:
|
55 |
+
# st.write(f"###### População Total: {total_pop:,}")
|
56 |
+
map_type = st.selectbox("Tipo de mapa", ["População", "Densidade", "Heatmap"])
|
57 |
+
|
58 |
+
with col2:
|
59 |
+
# st.write(f"###### Número de Setores Censitários: {len(gdf)}")
|
60 |
+
base_map = st.selectbox("Mapa base", ["Cartodb Positron", "OpenStreetMap"])
|
61 |
+
|
62 |
+
with col3:
|
63 |
+
total_pop = gdf["POP"].sum()
|
64 |
+
st.write(
|
65 |
+
f"### 👪 População Total: {total_pop:,} habitantes, dados do Censo 2022 IBGE"
|
66 |
+
)
|
67 |
+
st.write(f"### 🗺️ Número de Setores Censitários: {len(gdf)}")
|
68 |
+
|
69 |
+
add_vertical_space(5)
|
70 |
+
add_vertical_space(5)
|
71 |
+
|
72 |
+
col1, col2 = st.columns(2)
|
73 |
+
with col1:
|
74 |
+
m = folium.Map(
|
75 |
+
location=[LATITUDE, LONGITUDE], tiles=base_map, zoom_start=15
|
76 |
+
)
|
77 |
+
dns_p = "Densidade pop. (hab/km²) UBS Flamengo - IBGE 2022"
|
78 |
+
if map_type in ["População", "Densidade"]:
|
79 |
+
if map_type == "População":
|
80 |
+
column = "POP"
|
81 |
+
caption = "Pop. residente UBS Flamengo IBGE 2022"
|
82 |
+
else:
|
83 |
+
gdf["DENSIDADE"] = gdf["POP"] / gdf["AREA_KM2"]
|
84 |
+
column = "DENSIDADE"
|
85 |
+
caption = dns_p
|
86 |
+
colorscale = px.colors.sequential.Viridis
|
87 |
+
colormap = LinearColormap(
|
88 |
+
colors=colorscale,
|
89 |
+
vmin=gdf[column].min(),
|
90 |
+
vmax=gdf[column].max(),
|
91 |
+
caption=caption,
|
92 |
+
)
|
93 |
+
folium.GeoJson(
|
94 |
+
gdf,
|
95 |
+
style_function=lambda feature: {
|
96 |
+
"fillColor": colormap(feature["properties"][column]),
|
97 |
+
"color": "black",
|
98 |
+
"weight": 1,
|
99 |
+
"fillOpacity": 0.7,
|
100 |
+
},
|
101 |
+
highlight_function=lambda feature: {
|
102 |
+
"fillColor": "#ffaf00",
|
103 |
+
"color": "green",
|
104 |
+
"weight": 3,
|
105 |
+
"fillOpacity": 0.9,
|
106 |
+
},
|
107 |
+
tooltip=folium.features.GeoJsonTooltip(
|
108 |
+
fields=["CD_SETOR", column, "AREA_KM2"],
|
109 |
+
aliases=[
|
110 |
+
"Setor Censitário:",
|
111 |
+
f"{caption}:",
|
112 |
+
"Área (km²):",
|
113 |
+
],
|
114 |
+
style=(
|
115 |
+
"background-color: white; color: #333333;"
|
116 |
+
"font-family: calibri; font-size: 12px;"
|
117 |
+
"padding: 10px;"
|
118 |
+
),
|
119 |
+
),
|
120 |
+
).add_to(m)
|
121 |
+
colormap.add_to(m)
|
122 |
+
|
123 |
+
elif map_type == "Heatmap":
|
124 |
+
heat_data = [
|
125 |
+
[
|
126 |
+
row["geometry"].centroid.y,
|
127 |
+
row["geometry"].centroid.x,
|
128 |
+
row["POP"],
|
129 |
+
]
|
130 |
+
for idx, row in gdf.iterrows()
|
131 |
+
]
|
132 |
+
HeatMap(heat_data).add_to(m)
|
133 |
+
folium.Marker(
|
134 |
+
[lat, long],
|
135 |
+
popup="UBS Flamengo",
|
136 |
+
tooltip="UBS Flamengo",
|
137 |
+
icon=folium.Icon(color="red", icon="info-sign"),
|
138 |
+
).add_to(m)
|
139 |
+
|
140 |
+
STYLE_STATEMENT = (
|
141 |
+
"<style>.leaflet-control-layers"
|
142 |
+
"{ position: fixed; top: 10px; left: 50px; } </style>"
|
143 |
+
)
|
144 |
+
m.get_root().html.add_child(folium.Element(STYLE_STATEMENT))
|
145 |
+
folium_static(m)
|
146 |
+
|
147 |
+
with col2:
|
148 |
+
fig = px.bar(
|
149 |
+
gdf,
|
150 |
+
x="CD_SETOR",
|
151 |
+
y="POP",
|
152 |
+
title="Distribuição da População por Setor Censitário",
|
153 |
+
color="POP",
|
154 |
+
color_continuous_scale=px.colors.sequential.Viridis,
|
155 |
+
)
|
156 |
+
st.plotly_chart(fig)
|
157 |
+
|
158 |
+
age_columns = [
|
159 |
+
"POP_0A4",
|
160 |
+
"POP_5A9",
|
161 |
+
"POP_10A14",
|
162 |
+
"POP_15A19",
|
163 |
+
"POP_20A24",
|
164 |
+
"POP_25A29",
|
165 |
+
"POP_30A34",
|
166 |
+
"POP_35A39",
|
167 |
+
"POP_40A44",
|
168 |
+
"POP_45A49",
|
169 |
+
"POP_50A54",
|
170 |
+
"POP_55A59",
|
171 |
+
"POP_60A64",
|
172 |
+
"POP_65A69",
|
173 |
+
"POP_70A74",
|
174 |
+
"POP_75A79",
|
175 |
+
"POP_80A84",
|
176 |
+
"POP_85A89",
|
177 |
+
"POP_90A94",
|
178 |
+
"POP_95A99",
|
179 |
+
"POP_100OUMAIS",
|
180 |
+
]
|
181 |
+
|
182 |
+
|
183 |
+
|
184 |
+
add_vertical_space(10)
|
185 |
+
|
186 |
+
|
187 |
+
st.write('----')
|
views/mesames.py
ADDED
@@ -0,0 +1,269 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import pandas as pd
|
2 |
+
import plotly.graph_objects as go
|
3 |
+
from streamlit_option_menu import option_menu
|
4 |
+
import streamlit as st
|
5 |
+
from streamlit_extras.stylable_container import stylable_container
|
6 |
+
|
7 |
+
|
8 |
+
st.title("Crescimento populacional - UBS Flamengo")
|
9 |
+
|
10 |
+
with stylable_container(
|
11 |
+
key="banner",
|
12 |
+
css_styles="""
|
13 |
+
img {
|
14 |
+
width: 1800px;
|
15 |
+
height: 340px;
|
16 |
+
overflow: hidden;
|
17 |
+
position: relative;
|
18 |
+
object-fit: cover;
|
19 |
+
border-radius: 20px; /* Adiciona bordas arredondadas */
|
20 |
+
mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));
|
21 |
+
-webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)); /* For Safari */
|
22 |
+
}
|
23 |
+
""",
|
24 |
+
):
|
25 |
+
st.image("src/images/pop.jpg")
|
26 |
+
st.title("Crescimento populacional - UBS Flamengo")
|
27 |
+
|
28 |
+
raw_data = [
|
29 |
+
{"Mês": "mai-21", "Usuários": 3402, "Domicílios": 1440, "Famílias": 1269},
|
30 |
+
{"Mês": "jun-21", "Usuários": 3503, "Domicílios": 1462, "Famílias": 1304},
|
31 |
+
{"Mês": "jul-21", "Usuários": 3559, "Domicílios": 1478, "Famílias": 1323},
|
32 |
+
{"Mês": "ago-21", "Usuários": 3592, "Domicílios": 1490, "Famílias": 1338},
|
33 |
+
{"Mês": "set-21", "Usuários": 3755, "Domicílios": 1573, "Famílias": 1380},
|
34 |
+
{"Mês": "out-21", "Usuários": 3776, "Domicílios": 1533, "Famílias": 1384},
|
35 |
+
{"Mês": "nov-21", "Usuários": 3839, "Domicílios": 1553, "Famílias": 1397},
|
36 |
+
{"Mês": "dez-21", "Usuários": 3926, "Domicílios": 1581, "Famílias": 1423},
|
37 |
+
{"Mês": "jan-22", "Usuários": 3951, "Domicílios": 1596, "Famílias": 1437},
|
38 |
+
{"Mês": "fev-22", "Usuários": 4035, "Domicílios": 1638, "Famílias": 1465},
|
39 |
+
{"Mês": "mar-22", "Usuários": 4131, "Domicílios": 1672, "Famílias": 1500},
|
40 |
+
{"Mês": "abr-22", "Usuários": 4306, "Domicílios": 1723, "Famílias": 1555},
|
41 |
+
{"Mês": "mai-22", "Usuários": 4553, "Domicílios": 1795, "Famílias": 1625},
|
42 |
+
{"Mês": "jun-22", "Usuários": 4639, "Domicílios": 1817, "Famílias": 1653},
|
43 |
+
{"Mês": "jul-22", "Usuários": 4719, "Domicílios": 1848, "Famílias": 1676},
|
44 |
+
{"Mês": "ago-22", "Usuários": 4776, "Domicílios": 1869, "Famílias": 1687},
|
45 |
+
{"Mês": "set-22", "Usuários": 4831, "Domicílios": 1883, "Famílias": 1699},
|
46 |
+
{"Mês": "out-22", "Usuários": 4871, "Domicílios": 1900, "Famílias": 1709},
|
47 |
+
{"Mês": "nov-22", "Usuários": 4874, "Domicílios": 1906, "Famílias": 1708},
|
48 |
+
{"Mês": "dez-22", "Usuários": 4920, "Domicílios": 1914, "Famílias": 1720},
|
49 |
+
{"Mês": "jan-23", "Usuários": 5135, "Domicílios": 2006, "Famílias": 1776},
|
50 |
+
{"Mês": "fev-23", "Usuários": 5396, "Domicílios": 2084, "Famílias": 1848},
|
51 |
+
{"Mês": "mar-23", "Usuários": 5544, "Domicílios": 2127, "Famílias": 1893},
|
52 |
+
{"Mês": "abr-23", "Usuários": 5546, "Domicílios": 2140, "Famílias": 1910},
|
53 |
+
{"Mês": "mai-23", "Usuários": 5579, "Domicílios": 2164, "Famílias": 1920},
|
54 |
+
{"Mês": "jun-23", "Usuários": 5642, "Domicílios": 2181, "Famílias": 1946},
|
55 |
+
{"Mês": "jul-23", "Usuários": 5681, "Domicílios": 2200, "Famílias": 1961},
|
56 |
+
{"Mês": "ago-23", "Usuários": 5728, "Domicílios": 2208, "Famílias": 1972},
|
57 |
+
{"Mês": "set-23", "Usuários": 5774, "Domicílios": 2228, "Famílias": 1983},
|
58 |
+
{"Mês": "out-23", "Usuários": 5841, "Domicílios": 2245, "Famílias": 2007},
|
59 |
+
{"Mês": "nov-23", "Usuários": 5891, "Domicílios": 2297, "Famílias": 2027},
|
60 |
+
{"Mês": "dez-23", "Usuários": 5933, "Domicílios": 2281, "Famílias": 2036},
|
61 |
+
{"Mês": "jan-24", "Usuários": 5982, "Domicílios": 2307, "Famílias": 2050},
|
62 |
+
{"Mês": "fev-24", "Usuários": 6005, "Domicílios": 2333, "Famílias": 2057},
|
63 |
+
{"Mês": "mar-24", "Usuários": 6020, "Domicílios": 2327, "Famílias": 2070},
|
64 |
+
{"Mês": "abr-24", "Usuários": 6074, "Domicílios": 2370, "Famílias": 2095},
|
65 |
+
]
|
66 |
+
|
67 |
+
df = pd.DataFrame(raw_data)
|
68 |
+
|
69 |
+
@st.cache_data
|
70 |
+
def processar_dados(dados, intervalo):
|
71 |
+
"""
|
72 |
+
Process data based on the specified interval and return the aggregated data.
|
73 |
+
|
74 |
+
Parameters:
|
75 |
+
- dados: List of dictionaries containing data for each month.
|
76 |
+
- intervalo: String indicating the interval for data aggregation.
|
77 |
+
|
78 |
+
Returns:
|
79 |
+
- List of dictionaries with aggregated data based on the specified interval.
|
80 |
+
"""
|
81 |
+
if intervalo == "Mensal":
|
82 |
+
return dados
|
83 |
+
agrupamentos = {"Trimestral": 3, "Semestral": 6, "Anual": 12}
|
84 |
+
dados_agrupados = []
|
85 |
+
for i in range(0, len(dados), agrupamentos[intervalo]):
|
86 |
+
grupo = dados[i : i + agrupamentos[intervalo]]
|
87 |
+
ultimo_Mês = grupo[-1]["Mês"]
|
88 |
+
dados_agrupados.append(
|
89 |
+
{
|
90 |
+
"Mês": ultimo_Mês,
|
91 |
+
"Usuários": max(d["Usuários"] for d in grupo),
|
92 |
+
"Domicílios": max(d["Domicílios"] for d in grupo),
|
93 |
+
"Famílias": max(d["Famílias"] for d in grupo),
|
94 |
+
}
|
95 |
+
)
|
96 |
+
return dados_agrupados
|
97 |
+
|
98 |
+
@st.cache_data
|
99 |
+
def formatar_data(Mês):
|
100 |
+
"""
|
101 |
+
A function that formats the data based on the input Mês parameter.
|
102 |
+
|
103 |
+
Parameters:
|
104 |
+
- Mês (str): A string containing the month and year separated by a hyphen.
|
105 |
+
|
106 |
+
Returns:
|
107 |
+
- str: A formatted string in the format "month/year".
|
108 |
+
"""
|
109 |
+
m, a = Mês.split("-")
|
110 |
+
return f"{m}/{a}"
|
111 |
+
|
112 |
+
|
113 |
+
# Adicionando estilo personalizado
|
114 |
+
st.markdown(
|
115 |
+
"""
|
116 |
+
<style>
|
117 |
+
.stSelectbox [data-baseweb="select"] {
|
118 |
+
max-width: 300px;
|
119 |
+
}
|
120 |
+
.st-emotion-cache-16idsys p {
|
121 |
+
font-size: 20px;
|
122 |
+
font-weight: bold;
|
123 |
+
color: #4FCBFC;
|
124 |
+
}
|
125 |
+
</style>
|
126 |
+
""",
|
127 |
+
unsafe_allow_html=True,
|
128 |
+
)
|
129 |
+
|
130 |
+
# Criando duas colunas para os menus de opções
|
131 |
+
col1, col2, col3 = st.columns([3, 2, 2])
|
132 |
+
|
133 |
+
with col1:
|
134 |
+
st.dataframe(df, use_container_width=True, height= 250, hide_index=True)
|
135 |
+
|
136 |
+
with col2:
|
137 |
+
intervalo = option_menu(
|
138 |
+
"Intervalo de Tempo",
|
139 |
+
["Mensal", "Trimestral", "Semestral", "Anual"],
|
140 |
+
icons=["calendar-month", "calendar-quarter", "calendar-half", "calendar-year"],
|
141 |
+
menu_icon="cast",
|
142 |
+
default_index=0,
|
143 |
+
styles={
|
144 |
+
"container": {"padding": "0!important", "background-color": "#262730"},
|
145 |
+
"icon": {"color": "#4FCBFC", "font-size": "18px"},
|
146 |
+
"nav-link": {
|
147 |
+
"font-size": "14px",
|
148 |
+
"text-align": "center",
|
149 |
+
"margin": "0px",
|
150 |
+
"padding": "10px",
|
151 |
+
"--hover-color": "#363940",
|
152 |
+
"color": "#FFFFFF",
|
153 |
+
},
|
154 |
+
"nav-link-selected": {"background-color": "#0083B8"},
|
155 |
+
"separator": {"border-color": "#4B4B4B"},
|
156 |
+
},
|
157 |
+
)
|
158 |
+
|
159 |
+
with col3:
|
160 |
+
metrica = option_menu(
|
161 |
+
"Métrica",
|
162 |
+
["Todos", "Usuários", "Domicílios", "Famílias"],
|
163 |
+
icons=["list", "person", "house", "people"],
|
164 |
+
menu_icon="cast",
|
165 |
+
default_index=0,
|
166 |
+
styles={
|
167 |
+
"container": {"padding": "0!important", "background-color": "#262730"},
|
168 |
+
"icon": {"color": "#4FCBFC", "font-size": "18px"},
|
169 |
+
"nav-link": {
|
170 |
+
"font-size": "14px",
|
171 |
+
"text-align": "center",
|
172 |
+
"margin": "0px",
|
173 |
+
"padding": "10px",
|
174 |
+
"--hover-color": "#363940",
|
175 |
+
"color": "#FFFFFF",
|
176 |
+
},
|
177 |
+
"nav-link-selected": {"background-color": "#0083B8"},
|
178 |
+
"separator": {"border-color": "#4B4B4B"},
|
179 |
+
},
|
180 |
+
)
|
181 |
+
|
182 |
+
dados_processados = processar_dados(raw_data, intervalo)
|
183 |
+
|
184 |
+
# Switch para mostrar valores nos pontos
|
185 |
+
mostrar_valores = st.checkbox("Mostrar valores nos pontos", value=True)
|
186 |
+
|
187 |
+
# Criação do gráfico
|
188 |
+
fig = go.Figure()
|
189 |
+
|
190 |
+
metricas = ["Usuários", "Domicílios", "Famílias"] if metrica == "Todos" else [metrica]
|
191 |
+
cores = {"Usuários": "#1f77b4", "Domicílios": "#ff7f0e", "Famílias": "#2ca02c"}
|
192 |
+
|
193 |
+
|
194 |
+
# Slider Component
|
195 |
+
st.sidebar.header("Ajustes dos Balões")
|
196 |
+
balloon_positions = {}
|
197 |
+
for m in metricas:
|
198 |
+
balloon_positions[m] = st.sidebar.slider(
|
199 |
+
f"Posição do balão para {m}", min_value=-100, max_value=0, value=-40, step=5
|
200 |
+
)
|
201 |
+
|
202 |
+
annotations = []
|
203 |
+
|
204 |
+
for m in metricas:
|
205 |
+
x_data = [formatar_data(d["Mês"]) for d in dados_processados]
|
206 |
+
y_data = [d[m] for d in dados_processados]
|
207 |
+
|
208 |
+
fig.add_trace(
|
209 |
+
go.Scatter(
|
210 |
+
x=x_data,
|
211 |
+
y=y_data,
|
212 |
+
mode="lines+markers",
|
213 |
+
name=m,
|
214 |
+
line=dict(color=cores[m], width=3),
|
215 |
+
marker=dict(size=8, symbol="circle", line=dict(width=2, color="white")),
|
216 |
+
)
|
217 |
+
)
|
218 |
+
|
219 |
+
if mostrar_valores:
|
220 |
+
for i, (x, y) in enumerate(zip(x_data, y_data)):
|
221 |
+
annotations.append(
|
222 |
+
dict(
|
223 |
+
x=x,
|
224 |
+
y=y,
|
225 |
+
xref="x",
|
226 |
+
yref="y",
|
227 |
+
text=f"{y:,.0f}",
|
228 |
+
showarrow=True,
|
229 |
+
arrowhead=7,
|
230 |
+
ax=0,
|
231 |
+
ay=balloon_positions[m], # Usa a posição ajustada para cada métrica
|
232 |
+
bgcolor=cores[m],
|
233 |
+
opacity=0.8,
|
234 |
+
bordercolor="white",
|
235 |
+
borderwidth=2,
|
236 |
+
borderpad=4,
|
237 |
+
font=dict(color="white", size=10),
|
238 |
+
)
|
239 |
+
)
|
240 |
+
|
241 |
+
fig.update_layout(
|
242 |
+
title={
|
243 |
+
"text": "Crescimento na Área de Saúde",
|
244 |
+
"y": 0.95,
|
245 |
+
"x": 0.5,
|
246 |
+
"xanchor": "center",
|
247 |
+
"yanchor": "top",
|
248 |
+
"font": dict(size=24, color="#4FCBFC"),
|
249 |
+
},
|
250 |
+
xaxis_title="Mês",
|
251 |
+
yaxis_title="Quantidade",
|
252 |
+
legend_title="Métricas",
|
253 |
+
template="plotly_dark",
|
254 |
+
plot_bgcolor="#262730",
|
255 |
+
paper_bgcolor="#262730",
|
256 |
+
font=dict(color="white"),
|
257 |
+
xaxis=dict(showgrid=True, gridcolor="#4B4B4B", tickangle=45),
|
258 |
+
yaxis=dict(showgrid=True, gridcolor="#4B4B4B"),
|
259 |
+
legend=dict(
|
260 |
+
bgcolor="rgba(0,0,0,0)",
|
261 |
+
bordercolor="rgba(0,0,0,0)",
|
262 |
+
font=dict(size=12, color="white"),
|
263 |
+
),
|
264 |
+
margin=dict(l=50, r=50, t=80, b=50),
|
265 |
+
annotations=annotations,
|
266 |
+
)
|
267 |
+
|
268 |
+
st.plotly_chart(fig, use_container_width=True)
|
269 |
+
|
views/newchatgroq.py
ADDED
@@ -0,0 +1,175 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from typing import Generator
|
2 |
+
|
3 |
+
import streamlit as st
|
4 |
+
from groq import Groq
|
5 |
+
|
6 |
+
|
7 |
+
|
8 |
+
st.title("ChatBot UBS Flamengo")
|
9 |
+
|
10 |
+
def clear_all_session_state():
|
11 |
+
"""
|
12 |
+
Clears all keys from the `st.session_state` dictionary.
|
13 |
+
This function iterates over all the keys in the `st.session_state` dictionary and deletes each key from the dictionary.
|
14 |
+
This is useful when you want to reset the session state and start fresh.
|
15 |
+
Parameters:
|
16 |
+
None
|
17 |
+
Returns:
|
18 |
+
None
|
19 |
+
"""
|
20 |
+
for key in list(st.session_state.keys()):
|
21 |
+
del st.session_state[key]
|
22 |
+
|
23 |
+
|
24 |
+
if st.sidebar.button('Limpar Estado da Sessão', type = "primary"):
|
25 |
+
clear_all_session_state()
|
26 |
+
st.experimental_rerun()
|
27 |
+
|
28 |
+
col1, col2 =st.columns(2)
|
29 |
+
with col1:
|
30 |
+
st.write('')
|
31 |
+
with col2:
|
32 |
+
st.markdown("### 📚 - Documentos, pesquisas e temas gerais!")
|
33 |
+
|
34 |
+
# Configuração do cliente Groq
|
35 |
+
client = Groq(
|
36 |
+
api_key=st.secrets["GROQ_API_KEY"],
|
37 |
+
)
|
38 |
+
|
39 |
+
# Inicialização do histórico de chat e modelo selecionado
|
40 |
+
if "messages" not in st.session_state:
|
41 |
+
st.session_state.messages = []
|
42 |
+
|
43 |
+
if "selected_model" not in st.session_state:
|
44 |
+
st.session_state.selected_model = None
|
45 |
+
|
46 |
+
# Definição dos modelos disponíveis
|
47 |
+
modelos = {
|
48 |
+
"gemma-7b-it": {"name": "Gemma-7b-it", "tokens": 8192, "developer": "Google"},
|
49 |
+
"llama2-70b-4096": {"name": "llamA2-70b-chat", "tokens": 4096, "developer": "Meta"},
|
50 |
+
"llama3-70b-8192": {"name": "LLaMA3-70b-8192", "tokens": 8192, "developer": "Meta"},
|
51 |
+
"llama3-8b-8192": {"name": "LLaMA3-8b-8192", "tokens": 8192, "developer": "Meta"},
|
52 |
+
"mixtral-8x7b-32768": {"name": "Mixtral-8x7b-Instruct-v0.1", "tokens": 32768, "developer": "Mistral"},
|
53 |
+
}
|
54 |
+
|
55 |
+
|
56 |
+
|
57 |
+
# Layout para seleção do modelo e controle deslizante de max_tokens
|
58 |
+
col1, col2 = st.columns(2)
|
59 |
+
|
60 |
+
with col1:
|
61 |
+
opcao_modelo = st.selectbox(
|
62 |
+
"Escolha um modelo:",
|
63 |
+
options=list(modelos.keys()),
|
64 |
+
format_func=lambda x: modelos[x]["name"],
|
65 |
+
index=2 # Padrão para llama 70b
|
66 |
+
)
|
67 |
+
|
68 |
+
prompt_model = """
|
69 |
+
Você é um assistente virtual especializado, atuando em uma Unidade Básica de Saúde (UBS) que se
|
70 |
+
chama UBS Flamengo em Contagem - Minas Gerais - Brasil.
|
71 |
+
Sua função principal é auxiliar profissionais de saúde e administrativos em diversas tarefas,
|
72 |
+
sempre se comunicando em português brasileiro formal.
|
73 |
+
|
74 |
+
Comportamento e Comunicação
|
75 |
+
|
76 |
+
Inicie cada interação perguntando o nome do usuário e use-o respeitosamente durante toda a conversa.
|
77 |
+
Mantenha um tom profissional, cortês e empático em todas as interações.
|
78 |
+
Adapte seu nível de linguagem ao do usuário, mantendo-se sempre claro e compreensível.
|
79 |
+
Evite usar termos técnicos excessivos, a menos que solicitado ou apropriado ao contexto.
|
80 |
+
|
81 |
+
Principais Responsabilidades
|
82 |
+
|
83 |
+
Auxiliar na elaboração de relatórios médicos e administrativos.
|
84 |
+
Interpretar e explicar notas técnicas e diretrizes de saúde.
|
85 |
+
Sumarizar textos complexos relacionados à saúde pública.
|
86 |
+
Oferecer insights e análises quando solicitado, baseando-se em informações atualizadas e confiáveis.
|
87 |
+
Responder a perguntas sobre procedimentos padrão na UBS.
|
88 |
+
|
89 |
+
Limitações e Ética
|
90 |
+
|
91 |
+
Nunca forneça diagnósticos médicos ou substitua o aconselhamento de profissionais de saúde.
|
92 |
+
Mantenha estrita confidencialidade e não solicite ou discuta informações pessoais de pacientes.
|
93 |
+
Se não tiver conhecimento sobre um tópico específico, admita honestamente e sugira que o usuário
|
94 |
+
consulte um profissional qualificado.
|
95 |
+
Em situações de emergência, oriente o usuário a buscar ajuda médica imediata.
|
96 |
+
|
97 |
+
Formato de Respostas
|
98 |
+
|
99 |
+
Forneça respostas completas e estruturadas, usando marcadores ou numeração quando apropriado.
|
100 |
+
Para tópicos complexos, ofereça uma visão geral concisa seguida por detalhes, se necessário.
|
101 |
+
Use analogias ou exemplos práticos para explicar conceitos difíceis, quando relevante.
|
102 |
+
|
103 |
+
Conhecimento e Atualizações
|
104 |
+
|
105 |
+
Mantenha-se atualizado sobre as políticas de saúde pública brasileiras e procedimentos padrão em UBS.
|
106 |
+
Esteja preparado para discutir tópicos atuais relacionados à saúde pública no Brasil.
|
107 |
+
Quando citar informações, mencione a necessidade de verificar fontes oficiais para obter os dados
|
108 |
+
mais recentes.
|
109 |
+
|
110 |
+
"""
|
111 |
+
|
112 |
+
# Detectar mudança de modelo e limpar histórico de chat se o modelo mudou
|
113 |
+
if st.session_state.selected_model != opcao_modelo:
|
114 |
+
st.session_state.messages = [{"role": "system", "content": prompt_model}]
|
115 |
+
st.session_state.selected_model = opcao_modelo
|
116 |
+
|
117 |
+
|
118 |
+
|
119 |
+
|
120 |
+
intervalo_max_tokens = modelos[opcao_modelo]["tokens"]
|
121 |
+
|
122 |
+
with col2:
|
123 |
+
max_tokens = st.slider(
|
124 |
+
"Máximo de Tokens:",
|
125 |
+
min_value=512,
|
126 |
+
max_value=intervalo_max_tokens,
|
127 |
+
value=min(32768, intervalo_max_tokens),
|
128 |
+
step=512,
|
129 |
+
help=f"Ajuste o número máximo de tokens (palavras) para a resposta do modelo. Máximo para o modelo selecionado: {intervalo_max_tokens}"
|
130 |
+
)
|
131 |
+
|
132 |
+
|
133 |
+
# Exibir mensagens do chat do histórico
|
134 |
+
for message in st.session_state.messages:
|
135 |
+
if message["role"] != "system":
|
136 |
+
avatar = '🤖' if message["role"] == "assistant" else '👤'
|
137 |
+
with st.chat_message(message["role"], avatar=avatar):
|
138 |
+
st.markdown(message["content"])
|
139 |
+
|
140 |
+
def generate_chat_responses(chat_complete) -> Generator[str, None, None]:
|
141 |
+
"""Gera conteúdo de resposta do chat a partir da resposta da API Groq."""
|
142 |
+
for chunk in chat_complete:
|
143 |
+
if chunk.choices[0].delta.content:
|
144 |
+
yield chunk.choices[0].delta.content
|
145 |
+
|
146 |
+
if prompt := st.chat_input("Digite seu prompt aqui..."):
|
147 |
+
st.session_state.messages.append({"role": "user", "content": prompt})
|
148 |
+
|
149 |
+
with st.chat_message("user", avatar='👤'):
|
150 |
+
st.markdown(prompt)
|
151 |
+
|
152 |
+
# Buscar resposta da API Groq
|
153 |
+
try:
|
154 |
+
chat_complete = client.chat.completions.create(
|
155 |
+
model=opcao_modelo,
|
156 |
+
messages=st.session_state.messages,
|
157 |
+
max_tokens=max_tokens,
|
158 |
+
stream=True
|
159 |
+
)
|
160 |
+
|
161 |
+
# Usar a função geradora com st.write_stream
|
162 |
+
with st.chat_message("assistant", avatar="🤖"):
|
163 |
+
response_placeholder = st.empty()
|
164 |
+
full_response = ""
|
165 |
+
for chunk in generate_chat_responses(chat_complete):
|
166 |
+
full_response += chunk
|
167 |
+
response_placeholder.markdown(full_response + "▌")
|
168 |
+
response_placeholder.markdown(full_response)
|
169 |
+
# Adicionar a resposta completa ao st.session_state.messages
|
170 |
+
st.session_state.messages.append({"role": "assistant", "content": full_response})
|
171 |
+
|
172 |
+
|
173 |
+
except Exception as e:
|
174 |
+
st.error(f"Ocorreu um erro: {e}", icon="🚨")
|
175 |
+
|
views/pdf_chat.py
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
|
3 |
+
|
4 |
+
st.title("Converse com seu PDF")
|
5 |
+
|
6 |
+
|
7 |
+
st.write('## Em breve!')
|
views/rag_med.py
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
|
3 |
+
|
4 |
+
st.title("Enciclopédia médica")
|
5 |
+
|
6 |
+
|
7 |
+
st.write('## Em breve!')
|
views/rci.py
ADDED
@@ -0,0 +1,632 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"""
|
2 |
+
This module contains the code for the 'rci' view of the application.
|
3 |
+
"""
|
4 |
+
|
5 |
+
import plotly.express as px
|
6 |
+
import streamlit as st
|
7 |
+
from groq import Groq
|
8 |
+
from streamlit_extras.add_vertical_space import add_vertical_space
|
9 |
+
from streamlit_extras.stylable_container import stylable_container
|
10 |
+
from streamlit_option_menu import option_menu
|
11 |
+
|
12 |
+
from data_cleaning import processar_arquivo
|
13 |
+
|
14 |
+
|
15 |
+
|
16 |
+
#################################
|
17 |
+
############ BANNER #############
|
18 |
+
#################################
|
19 |
+
|
20 |
+
with stylable_container(
|
21 |
+
key="banner",
|
22 |
+
css_styles="""
|
23 |
+
img {
|
24 |
+
width: 1800px;
|
25 |
+
height: 400px;
|
26 |
+
overflow: hidden;
|
27 |
+
position: relative;
|
28 |
+
object-fit: cover;
|
29 |
+
border-radius: 14px; /* Adiciona bordas arredondadas */
|
30 |
+
mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));
|
31 |
+
-webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)); /* For Safari */
|
32 |
+
}
|
33 |
+
""",
|
34 |
+
):
|
35 |
+
st.image("src/images/banner.png")
|
36 |
+
|
37 |
+
st.title("Análise de microárea")
|
38 |
+
|
39 |
+
|
40 |
+
#################################
|
41 |
+
############ BANNER #############
|
42 |
+
#################################
|
43 |
+
|
44 |
+
|
45 |
+
def clear_chat_history():
|
46 |
+
"""
|
47 |
+
Clears the chat history and resets the initial analysis in the session state.
|
48 |
+
This function clears the chat history and resets the initial analysis in the session state.
|
49 |
+
It sets the value of "groq_chat_history" in the session state to an empty list and the value of "initial_analysis" to an empty string.
|
50 |
+
"""
|
51 |
+
st.session_state["groq_chat_history"] = []
|
52 |
+
st.session_state["initial_analysis"] = ""
|
53 |
+
|
54 |
+
|
55 |
+
#################################
|
56 |
+
############ DATA ###############
|
57 |
+
#################################
|
58 |
+
|
59 |
+
uploaded_file = st.sidebar.file_uploader("Escolha um arquivo CSV", type="csv")
|
60 |
+
if uploaded_file is not None:
|
61 |
+
dataframes = processar_arquivo(uploaded_file)
|
62 |
+
DF_DATA = dataframes.get("Data")
|
63 |
+
DF_HEAD = dataframes.get("Head")
|
64 |
+
DF_IDADE = dataframes.get("Idade")
|
65 |
+
DF_GENERO = dataframes.get("genero")
|
66 |
+
DF_COR = dataframes.get("cor")
|
67 |
+
DF_DEFICIENCIA = dataframes.get("deficiencia")
|
68 |
+
DF_DOENCAS = dataframes.get("doencas")
|
69 |
+
DF_ESCOLA = dataframes.get("Escola")
|
70 |
+
DF_TRANSGEN = dataframes.get("transgen")
|
71 |
+
for df in [
|
72 |
+
DF_IDADE,
|
73 |
+
DF_GENERO,
|
74 |
+
DF_COR,
|
75 |
+
DF_DEFICIENCIA,
|
76 |
+
DF_DOENCAS,
|
77 |
+
DF_ESCOLA,
|
78 |
+
DF_TRANSGEN,
|
79 |
+
]:
|
80 |
+
if df is not None:
|
81 |
+
df["Descrição"] = df["Descrição"].str.capitalize()
|
82 |
+
else:
|
83 |
+
st.sidebar.info("Adicione um arquivo .csv.")
|
84 |
+
|
85 |
+
if st.sidebar.button("Limpar", type="primary"):
|
86 |
+
clear_chat_history()
|
87 |
+
|
88 |
+
|
89 |
+
def gerar_resumo_df():
|
90 |
+
"""
|
91 |
+
Generates a summary of the dataframes.
|
92 |
+
This function creates a summary of the dataframes by concatenating the
|
93 |
+
string representation of each dataframe.
|
94 |
+
The summary includes the name of the dataframe and its content.
|
95 |
+
Returns:
|
96 |
+
str: The summary of the dataframes.
|
97 |
+
"""
|
98 |
+
resumo = ""
|
99 |
+
if DF_DATA is not None:
|
100 |
+
resumo += "Resumo DF_DATA:\n"
|
101 |
+
resumo += DF_DATA.to_string(index=False) + "\n\n"
|
102 |
+
if DF_HEAD is not None:
|
103 |
+
resumo += "Resumo DF_HEAD:\n"
|
104 |
+
resumo += DF_HEAD.to_string(index=False) + "\n\n"
|
105 |
+
if DF_IDADE is not None:
|
106 |
+
resumo += "Resumo DF_IDADE:\n"
|
107 |
+
resumo += DF_IDADE.to_string(index=False) + "\n\n"
|
108 |
+
if DF_GENERO is not None:
|
109 |
+
resumo += f"Resumo DF_GENERO:\n{DF_GENERO.to_string(index=False)}\n\n"
|
110 |
+
if DF_COR is not None:
|
111 |
+
resumo += f"Resumo DF_COR:\n{DF_COR.to_string(index=False)}\n\n"
|
112 |
+
if DF_DEFICIENCIA is not None:
|
113 |
+
resumo += f"Resumo DF_DEFICIENCIA:\n{DF_DEFICIENCIA.to_string(index=False)}\n\n"
|
114 |
+
if DF_DOENCAS is not None:
|
115 |
+
resumo += f"Resumo DF_DOENCAS:\n{DF_DOENCAS.to_string(index=False)}\n\n"
|
116 |
+
if DF_ESCOLA is not None:
|
117 |
+
resumo += f"Resumo DF_ESCOLA:\n{DF_ESCOLA.to_string(index=False)}\n\n"
|
118 |
+
if DF_TRANSGEN is not None:
|
119 |
+
resumo += f"Resumo DF_TRANSGEN:\n{DF_TRANSGEN.to_string(index=False)}\n\n"
|
120 |
+
return resumo
|
121 |
+
|
122 |
+
|
123 |
+
#################################
|
124 |
+
############ DATA ###############
|
125 |
+
#################################
|
126 |
+
|
127 |
+
|
128 |
+
###########################################
|
129 |
+
############### LATERAL ##################
|
130 |
+
###########################################
|
131 |
+
|
132 |
+
st.sidebar.markdown(
|
133 |
+
"""
|
134 |
+
### Informações:
|
135 |
+
- Análise - Relatório de cadastro individual.
|
136 |
+
- Iniciativa - Ubs Flamengo
|
137 |
+
- Acesso livre
|
138 |
+
### Links:
|
139 |
+
##
|
140 |
+
##### - [PEC SUS](https://sape.pecsus.com.br/) 📝
|
141 |
+
###
|
142 |
+
##### - [Obsidian - Dr Guilherme](http://dr-guilhermeapolinario.com) 🌎
|
143 |
+
##### - [GitHub - Dr Guilherme](http://dr-guilhermeapolinario.com) 🌎
|
144 |
+
"""
|
145 |
+
)
|
146 |
+
st.markdown(
|
147 |
+
"""
|
148 |
+
#### Instruções:
|
149 |
+
##### - Acesse o site :orange[PEC SUS], na aba esquerda selecione consolidado, :blue[*RELATÓRIO DE CADASTRO INDIVIDUAL*]
|
150 |
+
##### - Selecione a opção :orange[baixar arquivo .csv]. Após baixar o arquivo, selecione o arquivo .csv na aba ao lado, e pronto.
|
151 |
+
##### - Clique no botão de expansão abaixo para iniciar o processo.
|
152 |
+
##### - Utilize o chatbot com a inteligência artificial 🤖 Zé Flamengo para tirar suas dúvidas.
|
153 |
+
"""
|
154 |
+
)
|
155 |
+
st.write("-----")
|
156 |
+
|
157 |
+
st.markdown(
|
158 |
+
"""
|
159 |
+
#### Dados de saúde Relatório de cadastro individual.
|
160 |
+
"""
|
161 |
+
)
|
162 |
+
|
163 |
+
###########################################
|
164 |
+
############### LATERAL ##################
|
165 |
+
###########################################
|
166 |
+
|
167 |
+
|
168 |
+
###########################################
|
169 |
+
############### EXPANDERCOM GRÁFICOS ######
|
170 |
+
###########################################
|
171 |
+
|
172 |
+
|
173 |
+
def criar_grafico_personalizado(df, x_col, y_col, titulo):
|
174 |
+
"""
|
175 |
+
A function to create a customized bar chart based on the input data, x
|
176 |
+
and y columns, and title.
|
177 |
+
Parameters:
|
178 |
+
df (DataFrame): The input DataFrame containing the data.
|
179 |
+
x_col (str): The column name for the x-axis data.
|
180 |
+
y_col (str): The column name for the y-axis data.
|
181 |
+
titulo (str): The title of the chart.
|
182 |
+
Returns:
|
183 |
+
fig: The customized bar chart figure.
|
184 |
+
"""
|
185 |
+
fig = px.bar(
|
186 |
+
df,
|
187 |
+
x=x_col,
|
188 |
+
y=y_col,
|
189 |
+
title=titulo,
|
190 |
+
text=y_col,
|
191 |
+
color=x_col,
|
192 |
+
color_discrete_sequence=px.colors.qualitative.Bold,
|
193 |
+
)
|
194 |
+
fig.update_traces(texttemplate="%{text:.2s}", textposition="outside")
|
195 |
+
fig.update_layout(
|
196 |
+
uniformtext_minsize=8,
|
197 |
+
uniformtext_mode="hide",
|
198 |
+
xaxis_title=x_col,
|
199 |
+
yaxis_title=y_col,
|
200 |
+
title_font_size=24,
|
201 |
+
title_font_family="Arial",
|
202 |
+
title_font_color="white",
|
203 |
+
title_x=0.2,
|
204 |
+
paper_bgcolor="rgba(0,0,0,0)",
|
205 |
+
plot_bgcolor="rgba(0,0,0,0)",
|
206 |
+
xaxis_tickangle=-45,
|
207 |
+
)
|
208 |
+
return fig
|
209 |
+
|
210 |
+
|
211 |
+
if uploaded_file is not None:
|
212 |
+
c1, c2 = st.columns(2)
|
213 |
+
with c1:
|
214 |
+
if DF_DATA is not None:
|
215 |
+
st.dataframe(DF_DATA, hide_index=True)
|
216 |
+
else:
|
217 |
+
st.write("Data não disponível")
|
218 |
+
with c2:
|
219 |
+
if DF_HEAD is not None:
|
220 |
+
st.dataframe(DF_HEAD, hide_index=True)
|
221 |
+
else:
|
222 |
+
st.write("Informações não disponíveis")
|
223 |
+
|
224 |
+
if uploaded_file is not None:
|
225 |
+
with st.expander("Visualização", expanded=True):
|
226 |
+
selected_tab = option_menu(
|
227 |
+
menu_title=None,
|
228 |
+
options=[
|
229 |
+
"Faixa Etária",
|
230 |
+
"Gênero",
|
231 |
+
"Cor",
|
232 |
+
"Deficiência",
|
233 |
+
"Doenças",
|
234 |
+
"Escolaridade",
|
235 |
+
"Identidade de Gênero",
|
236 |
+
],
|
237 |
+
icons=[
|
238 |
+
"person",
|
239 |
+
"gender-female",
|
240 |
+
"person-plus",
|
241 |
+
"person-wheelchair",
|
242 |
+
"capsule-pill",
|
243 |
+
"stars",
|
244 |
+
"gender-trans",
|
245 |
+
],
|
246 |
+
menu_icon="cast",
|
247 |
+
default_index=0,
|
248 |
+
orientation="horizontal",
|
249 |
+
styles={
|
250 |
+
"container": {
|
251 |
+
"padding": "0!important",
|
252 |
+
"background-color": "#262730",
|
253 |
+
},
|
254 |
+
"icon": {"color": "#4FCBFC", "font-size": "18px"},
|
255 |
+
"nav-link": {
|
256 |
+
"font-size": "14px",
|
257 |
+
"text-align": "center",
|
258 |
+
"margin": "0px",
|
259 |
+
"padding": "10px",
|
260 |
+
"--hover-color": "#363940",
|
261 |
+
"color": "#FFFFFF",
|
262 |
+
},
|
263 |
+
"nav-link-selected": {"background-color": "#0083B8"},
|
264 |
+
"separator": {"border-color": "#4B4B4B"},
|
265 |
+
},
|
266 |
+
)
|
267 |
+
if selected_tab == "Faixa Etária" and DF_IDADE is not None:
|
268 |
+
st.subheader("Distribuição por Faixa Etária")
|
269 |
+
col1, col2 = st.columns(2)
|
270 |
+
with col1:
|
271 |
+
st.dataframe(DF_IDADE, hide_index=True)
|
272 |
+
with col2:
|
273 |
+
DF_IDADE["Masculino"] = DF_IDADE["Masculino"].astype(int) * -1
|
274 |
+
DF_IDADE["Feminino"] = DF_IDADE["Feminino"].astype(int)
|
275 |
+
fig_idade = px.bar(
|
276 |
+
DF_IDADE,
|
277 |
+
x=["Masculino", "Feminino"],
|
278 |
+
y="Descrição",
|
279 |
+
orientation="h",
|
280 |
+
title="Pirâmide Etária",
|
281 |
+
labels={"value": "População", "Descrição": "Faixa Etária"},
|
282 |
+
color="Descrição",
|
283 |
+
color_discrete_sequence=px.colors.qualitative.Set3,
|
284 |
+
)
|
285 |
+
fig_idade.update_layout(
|
286 |
+
barmode="relative",
|
287 |
+
xaxis_title="População",
|
288 |
+
yaxis_title="Faixa Etária",
|
289 |
+
)
|
290 |
+
st.plotly_chart(fig_idade)
|
291 |
+
DF_IDADE["Masculino"] = DF_IDADE["Masculino"].abs()
|
292 |
+
|
293 |
+
elif selected_tab == "Gênero" and DF_GENERO is not None:
|
294 |
+
st.subheader("Distribuição por Gênero")
|
295 |
+
col1, col2 = st.columns(2)
|
296 |
+
with col1:
|
297 |
+
st.dataframe(DF_GENERO, hide_index=True)
|
298 |
+
with col2:
|
299 |
+
fig_genero = px.pie(
|
300 |
+
DF_GENERO,
|
301 |
+
names="Descrição",
|
302 |
+
values="Valor",
|
303 |
+
title="Distribuição por Gênero",
|
304 |
+
color_discrete_sequence=px.colors.qualitative.Pastel,
|
305 |
+
)
|
306 |
+
st.plotly_chart(fig_genero)
|
307 |
+
|
308 |
+
elif selected_tab == "Cor" and DF_COR is not None:
|
309 |
+
st.subheader("Distribuição por Cor")
|
310 |
+
col1, col2 = st.columns(2)
|
311 |
+
with col1:
|
312 |
+
st.dataframe(DF_COR, hide_index=True)
|
313 |
+
with col2:
|
314 |
+
fig_cor = px.pie(
|
315 |
+
DF_COR,
|
316 |
+
names="Descrição",
|
317 |
+
values="Valor",
|
318 |
+
title="Distribuição por Cor",
|
319 |
+
color_discrete_sequence=px.colors.qualitative.Vivid,
|
320 |
+
)
|
321 |
+
st.plotly_chart(fig_cor)
|
322 |
+
|
323 |
+
elif selected_tab == "Deficiência" and DF_DEFICIENCIA is not None:
|
324 |
+
st.subheader("Distribuição por Deficiência")
|
325 |
+
col1, col2 = st.columns(2)
|
326 |
+
with col1:
|
327 |
+
st.dataframe(DF_DEFICIENCIA, hide_index=True)
|
328 |
+
with col2:
|
329 |
+
fig_deficiencia = criar_grafico_personalizado(
|
330 |
+
DF_DEFICIENCIA,
|
331 |
+
x_col="Descrição",
|
332 |
+
y_col="Valor",
|
333 |
+
titulo="Distribuição por Deficiência",
|
334 |
+
)
|
335 |
+
st.plotly_chart(fig_deficiencia)
|
336 |
+
|
337 |
+
elif selected_tab == "Doenças" and DF_DOENCAS is not None:
|
338 |
+
st.subheader("Distribuição por Doenças")
|
339 |
+
col1, col2 = st.columns(2)
|
340 |
+
with col1:
|
341 |
+
st.dataframe(DF_DOENCAS, hide_index=True)
|
342 |
+
with col2:
|
343 |
+
fig_doencas = criar_grafico_personalizado(
|
344 |
+
DF_DOENCAS,
|
345 |
+
x_col="Descrição",
|
346 |
+
y_col="Valor",
|
347 |
+
titulo="Distribuição por Doenças",
|
348 |
+
)
|
349 |
+
st.plotly_chart(fig_doencas)
|
350 |
+
|
351 |
+
elif selected_tab == "Escolaridade" and DF_ESCOLA is not None:
|
352 |
+
st.subheader("Distribuição por Escolaridade")
|
353 |
+
col1, col2 = st.columns(2)
|
354 |
+
with col1:
|
355 |
+
st.dataframe(DF_ESCOLA, hide_index=True)
|
356 |
+
with col2:
|
357 |
+
fig_escola = criar_grafico_personalizado(
|
358 |
+
DF_ESCOLA,
|
359 |
+
x_col="Descrição",
|
360 |
+
y_col="Valor",
|
361 |
+
titulo="Distribuição por Escolaridade",
|
362 |
+
)
|
363 |
+
st.plotly_chart(fig_escola)
|
364 |
+
|
365 |
+
elif selected_tab == "Identidade de Gênero" and DF_TRANSGEN is not None:
|
366 |
+
st.subheader("Distribuição por Identidade de Gênero")
|
367 |
+
col1, col2 = st.columns(2)
|
368 |
+
with col1:
|
369 |
+
st.dataframe(DF_TRANSGEN, hide_index=True)
|
370 |
+
with col2:
|
371 |
+
fig_transgen = criar_grafico_personalizado(
|
372 |
+
DF_TRANSGEN,
|
373 |
+
x_col="Descrição",
|
374 |
+
y_col="Valor",
|
375 |
+
titulo="Distribuição por Identidade de Gênero",
|
376 |
+
)
|
377 |
+
st.plotly_chart(fig_transgen)
|
378 |
+
|
379 |
+
|
380 |
+
###########################################
|
381 |
+
############### EXPANDERCOM GRÁFICOS ######
|
382 |
+
###########################################
|
383 |
+
|
384 |
+
add_vertical_space(5)
|
385 |
+
|
386 |
+
###########################################
|
387 |
+
############### FOTO DO BOT ###############
|
388 |
+
###########################################
|
389 |
+
|
390 |
+
with stylable_container(
|
391 |
+
key="bot",
|
392 |
+
css_styles="""
|
393 |
+
img {
|
394 |
+
width: 120px;
|
395 |
+
height: 100px;
|
396 |
+
overflow: hidden;
|
397 |
+
position: relative;
|
398 |
+
object-fit: cover;
|
399 |
+
border-radius: 14px; /* Adiciona bordas arredondadas */
|
400 |
+
}
|
401 |
+
""",
|
402 |
+
):
|
403 |
+
st.image("src/images/b.png")
|
404 |
+
|
405 |
+
###########################################
|
406 |
+
############### FOTO DO BOT ###############
|
407 |
+
###########################################
|
408 |
+
|
409 |
+
|
410 |
+
###########################################
|
411 |
+
############### CHATBOT RCI ###############
|
412 |
+
###########################################
|
413 |
+
|
414 |
+
# Configuração inicial do Groq client
|
415 |
+
client = Groq(api_key=st.secrets["GROQ_API_KEY"])
|
416 |
+
|
417 |
+
|
418 |
+
# Função para gerar a análise inicial
|
419 |
+
def generate_initial_analysis(resumo_rci):
|
420 |
+
"""
|
421 |
+
Generates an initial analysis report based on the provided resumo_rci.
|
422 |
+
Parameters:
|
423 |
+
resumo_rci (str): The resumo_rci to be analyzed.
|
424 |
+
Returns:
|
425 |
+
str: The generated initial analysis report.
|
426 |
+
Raises:
|
427 |
+
Exception: If there is an error generating the initial analysis.
|
428 |
+
Examples:
|
429 |
+
>>> generate_initial_analysis("Resumo do RCI")
|
430 |
+
"Cabeçalho com informações gerais (data, cidadãos ativos, saída, mudança de território,
|
431 |
+
óbito)\n\nAnálise de Faixa Etária (Crianças de 0 a 2 anos, 0 a 4 anos, mulheres na faixa etária
|
432 |
+
de preventivo 25 a 64 anos, mulehres na faixa etária de mamomagrafia 50a 69 anos)\n\nComparação
|
433 |
+
de Sexo\n\nAnálise de Raça / Cor\n\nAnálise de
|
434 |
+
Escolaridade\n\nOrientação Sexual\n\nDeficiências\n\nSituações de Saúde Gerais\n\n\nFormate seu
|
435 |
+
relatório usando negrito para títulos de seções e subtítulos. Use listas com marcadores
|
436 |
+
quando apropriado para melhorar a legibilidade. Apresente seu relatório final dentro de tags
|
437 |
+
<relatorio></relatorio>."
|
438 |
+
"""
|
439 |
+
try:
|
440 |
+
initial_analysis = client.chat.completions.create(
|
441 |
+
messages=[
|
442 |
+
{
|
443 |
+
"role": "system",
|
444 |
+
"content": "Você é um assistente de análise de dados de saúde. Sua tarefa é analisar os dados fornecidos e criar um relatório detalhado seguindo o modelo especificado. O relatório deve ser escrito em português.",
|
445 |
+
},
|
446 |
+
{
|
447 |
+
"role": "user",
|
448 |
+
"content": f"""
|
449 |
+
Aqui estão os dados para análise:
|
450 |
+
<resumo_rci>
|
451 |
+
{resumo_rci}
|
452 |
+
</resumo_rci>
|
453 |
+
|
454 |
+
Analise cuidadosamente os dados fornecidos e crie um relatório
|
455 |
+
seguindo o modelo apresentado. O relatório deve incluir as seguintes
|
456 |
+
seções:
|
457 |
+
1. Cabeçalho com informações gerais (data, cidadãos ativos, saída,
|
458 |
+
mudança de território, óbito)
|
459 |
+
2. Análise de Faixa Etária (Crianças de 0 a 2 anos, 0 a 4 anos, mulheres
|
460 |
+
na faixa etária de preventivo 25 a 64 anos, mulehres na faixa etária de
|
461 |
+
mamomagrafia 50a 69 anos)
|
462 |
+
3. Comparação de Sexo
|
463 |
+
4. Análise de Raça / Cor
|
464 |
+
5. Análise de Escolaridade
|
465 |
+
6. Orientação Sexual
|
466 |
+
7. Deficiências
|
467 |
+
8. Situações de Saúde Gerais
|
468 |
+
|
469 |
+
Para cada seção:
|
470 |
+
- Calcule os totais e percentuais relevantes
|
471 |
+
- Faça comparações quando apropriado (por exemplo, entre masculino
|
472 |
+
e feminino)
|
473 |
+
- Destaque as 3 informações mais significativas
|
474 |
+
|
475 |
+
Formate seu relatório usando negrito para títulos de seções e subtítulos.
|
476 |
+
Use o título de Análise parcial, use listas com marcadores quando apropriado
|
477 |
+
para melhorar a legibilidade.
|
478 |
+
|
479 |
+
""",
|
480 |
+
},
|
481 |
+
],
|
482 |
+
model="llama3-70b-8192",
|
483 |
+
temperature=0.2,
|
484 |
+
max_tokens=1500,
|
485 |
+
)
|
486 |
+
return initial_analysis.choices[0].message.content
|
487 |
+
except Exception as e:
|
488 |
+
st.error(f"Erro ao gerar a análise inicial: {e}")
|
489 |
+
return "Não foi possível gerar a análise inicial."
|
490 |
+
|
491 |
+
|
492 |
+
# Carregar arquivo
|
493 |
+
# uploaded_file = st.file_uploader("Escolha um arquivo CSV", type="csv")
|
494 |
+
|
495 |
+
if uploaded_file is not None:
|
496 |
+
if (
|
497 |
+
"current_file" not in st.session_state
|
498 |
+
or st.session_state.current_file != uploaded_file.name
|
499 |
+
):
|
500 |
+
st.session_state.current_file = uploaded_file.name
|
501 |
+
st.session_state.initial_analysis = None # Reset da análise anterior
|
502 |
+
st.session_state.resumo_rci = None # Reset do resumo
|
503 |
+
|
504 |
+
# Botão para gerar o resumo
|
505 |
+
if st.button("Gerar Resumo"):
|
506 |
+
with st.spinner("Gerando resumo..."):
|
507 |
+
st.session_state.resumo_rci = (
|
508 |
+
gerar_resumo_df()
|
509 |
+
) # Gera o resumo do DataFrame
|
510 |
+
st.session_state.initial_analysis = generate_initial_analysis(
|
511 |
+
st.session_state.resumo_rci
|
512 |
+
)
|
513 |
+
st.success("Resumo gerado com sucesso!")
|
514 |
+
|
515 |
+
col1, col2 = st.columns(2)
|
516 |
+
|
517 |
+
with col1:
|
518 |
+
with st.expander("Resumo Inicial", expanded=True):
|
519 |
+
if "initial_analysis" in st.session_state:
|
520 |
+
st.write("**Panorama Geral dos Dados:**")
|
521 |
+
st.text_area(
|
522 |
+
"Análise Inicial",
|
523 |
+
value=st.session_state.initial_analysis,
|
524 |
+
height=300,
|
525 |
+
disabled=False,
|
526 |
+
)
|
527 |
+
else:
|
528 |
+
st.write("**Clique em 'Gerar Resumo' para analisar os dados.**")
|
529 |
+
|
530 |
+
with col2:
|
531 |
+
with st.expander("Converse com o 🤖 Zé Flamengo", expanded=True):
|
532 |
+
# Inicialização do histórico do chat
|
533 |
+
if "groq_chat_history" not in st.session_state:
|
534 |
+
st.session_state.groq_chat_history = []
|
535 |
+
|
536 |
+
# Exibição do histórico do chat
|
537 |
+
for message in st.session_state.groq_chat_history:
|
538 |
+
with st.chat_message(message["role"]):
|
539 |
+
st.markdown(message["content"])
|
540 |
+
|
541 |
+
# Input do usuário e processamento da resposta
|
542 |
+
if user_message := st.chat_input(
|
543 |
+
"Digite sua pergunta sobre saúde na microárea:"
|
544 |
+
):
|
545 |
+
# Adiciona a mensagem do usuário ao histórico
|
546 |
+
st.session_state.groq_chat_history.append(
|
547 |
+
{"role": "user", "content": user_message}
|
548 |
+
)
|
549 |
+
|
550 |
+
try:
|
551 |
+
# Usar o resumo já gerado
|
552 |
+
if "resumo_rci" not in st.session_state:
|
553 |
+
st.warning("Por favor, gere o resumo antes de fazer perguntas.")
|
554 |
+
else:
|
555 |
+
resumo_rci = st.session_state.resumo_rci
|
556 |
+
|
557 |
+
# Preparação do contexto para a API
|
558 |
+
context = f"""
|
559 |
+
Seu nome é Zé Flamengo, você é um assistente virtual especializado em análise de dados
|
560 |
+
médicos epidemiológicos. Você tem 20 anos de experiência em análise de dados de saúde de
|
561 |
+
microáreas de um PSF (Programa Saúde da Família).
|
562 |
+
Sua função é:
|
563 |
+
1. Analisar dados de uma unidade básica de saúde.
|
564 |
+
2. Os dados que irá analisar são provenientes do Relatório de Cadastro Individual, advindos do PEC SUS.
|
565 |
+
3. Suas respostas devem ser sempre em português.
|
566 |
+
4. Seja conciso e evite conversar sobre outros temas.
|
567 |
+
5. Sempre retome o tema da conversa.
|
568 |
+
6. Realize sempre os cálculos novamente para garantir que os resultados fornecidos sejam precisos e atualizados.
|
569 |
+
Os dataframes que irá analisar são do Relatório de cadastro indiviual.
|
570 |
+
ele foi transformados em texto aqui disponíveis:
|
571 |
+
{resumo_rci}
|
572 |
+
As faixas etárias recomendadas para exames preventivos são:
|
573 |
+
- **Papanicolau (Preventivo):** Mulheres entre 25 e 64 anos, com frequência anual nos primeiros dois exames
|
574 |
+
consecutivos com resultados normais, depois a cada três anos.
|
575 |
+
- **Mamografia:** Mulheres entre 50 e 69 anos, com frequência bienal.
|
576 |
+
Informações sobre o Relatório de Cadastro Individual:
|
577 |
+
- **Objetivo:** Coletar dados sociodemográficos e de saúde dos indivíduos cadastrados em uma unidade básica de saúde.
|
578 |
+
- **Principais Indicadores:** Idade, sexo, condições de saúde (doenças crônicas, gestantes, etc.), status de
|
579 |
+
vacinação, hábitos de vida (tabagismo, alcoolismo, atividade física), entre outros.
|
580 |
+
Exemplos de perguntas esperadas:
|
581 |
+
- Qual a porcentagem de mulheres na faixa etária de preventivo?
|
582 |
+
- Qual a porcentagem de mulheres na faixa etária de mamografia?
|
583 |
+
- Quantas mulheres estão nas faixas etárias de preventivo e mamografia?
|
584 |
+
- Qual a relação masculino/feminino?
|
585 |
+
- Qual a porcentagem das doenças em relação à população total?
|
586 |
+
- Use essas informações para responder às perguntas do usuário.
|
587 |
+
Regras:
|
588 |
+
1. Seja sempre cortês.
|
589 |
+
2. Responda somente assuntos referentes ao resumo.
|
590 |
+
3. Caso seja feita alguma pergunta a você diferente de resumos, responda: "Vamos voltar ao trabalho que interessa?"
|
591 |
+
4. Responda sempre em português.
|
592 |
+
5. Se não souber a resposta, responda: "Desculpe, mas não tenho esta informação."
|
593 |
+
6. Nas suas respostas, não forneça os nomes dos dataframes, apenas responda às perguntas.
|
594 |
+
7. Destaque os principais achados e tendências nos dados sempre que possível.
|
595 |
+
8. Se aplicável, sugira possíveis ações ou recomendações baseadas nos dados analisados.
|
596 |
+
"""
|
597 |
+
|
598 |
+
# Chamada à API Groq
|
599 |
+
chat_rci = client.chat.completions.create(
|
600 |
+
messages=[
|
601 |
+
{"role": "system", "content": context},
|
602 |
+
*st.session_state.groq_chat_history,
|
603 |
+
],
|
604 |
+
model="llama3-70b-8192",
|
605 |
+
temperature=0.3,
|
606 |
+
max_tokens=2500,
|
607 |
+
)
|
608 |
+
|
609 |
+
# Processamento da resposta
|
610 |
+
if chat_rci.choices and len(chat_rci.choices) > 0:
|
611 |
+
response_message = chat_rci.choices[0].message.content
|
612 |
+
else:
|
613 |
+
response_message = (
|
614 |
+
"Desculpe, não foi possível gerar uma resposta."
|
615 |
+
)
|
616 |
+
|
617 |
+
# Adição da resposta ao histórico
|
618 |
+
st.session_state.groq_chat_history.append(
|
619 |
+
{"role": "assistant", "content": response_message}
|
620 |
+
)
|
621 |
+
|
622 |
+
# Exibição da resposta
|
623 |
+
with st.chat_message("assistant"):
|
624 |
+
st.markdown(response_message)
|
625 |
+
|
626 |
+
except Exception as e:
|
627 |
+
st.error(f"Erro ao gerar a resposta: {e}")
|
628 |
+
|
629 |
+
# Botão para limpar o histórico do chat
|
630 |
+
if st.button("Limpar histórico do chat"):
|
631 |
+
st.session_state.groq_chat_history = []
|
632 |
+
st.rerun()
|