O japão está localizado no “Círculo de Fogo do Pacífico”, uma zona de grande instabilidade geológica devido a convergência de 4 placas tectônicas. A compreensão dos padrões de eventos sismicos é cruscial para a engenharia civil e políticas de prevenção de desastres.
Esse projeto tem como ponto focal a análise de dados históricos de terremotos para identificar padrões de magnitude, profundidade e frequência, utilizando os dados do Serviço Geológico dos Estados Unidos (USGS). O objetivo geral é velidar estatisticamente a relação entre a profundidade do hipocentro e a magnetude do evento sísmico.
Para realizar a extração, tratamento e visualização dos dados, utilizarei os seguintes pacotes da linguagem R:
library(tidyverse) # Manipulação e Visualização
library(lubridate) # Tratamento de Datas (Time Series)
library(scales) # Formatação de Eixos Gráficos
library(DT)
library(knitr) # Formatação de Relatórios
Para garantir uma robustez e atualização dos dados utilizarei a API do Serviço Geológico dos Estados Unidos para extração da atividade sísmica.
A requisição foi configurada com os seguintes parâmetros para filtrar os dados relevantes:
# URL da API da USGS
url_usgs <- "https://earthquake.usgs.gov/fdsnws/event/1/query?format=csv&starttime=2011-01-01&minmagnitude=4.5&minlatitude=20&maxlatitude=48&minlongitude=120&maxlongitude=155"
# Leitura direta do CSV via URL
# O R vai baixar os dados mais recentes disponíveis no momento da execução
raw_data <- read_csv(url_usgs, show_col_types = FALSE)
# Verificação de integridade
print(paste("Total de registros importados:", nrow(raw_data)))
## [1] "Total de registros importados: 14861"
Para fins de transparência metodológica, apresentarei abaixo uma
amostra dos dados exatamente como foram recebidos da API. Note a
presença de diversas colunas técnicas (como gap,
dmin, rms, net), além da presença
de registros de outras regiões, que justificam a necessidade de uma
etapa de limpeza filtragem.
# Exibição dos dados brutos
datatable(head(raw_data, 200),
options = list(scrollX = TRUE, pageLength = 5),
caption = "Tabela 1: Amostra dos Dados Brutos (Raw Data da API USGS)")
O dataset contêm registros técnicos em formato de texto. Para tornar a análise cientifica, realizarei as seguintes transformações:
time
(ISO8601) foi convertida para objetos de data (datatime),
permitindo a extração do ano para análise em séries temporais.sismic_class para agrupar os registros por
níveis de impacto (Moderado, Forte, Muito Forte e Catastrófico).depth_class, Terremotos com hipocentro abaixo de 70km são
classificados como “Profundos”, geralmente relacionados as zonas de
subduccção das placas tectônicas.df_quake <- raw_data %>%
# Seleciona apenas as colunas de interesse
select(time, latitude, longitude, depth, mag, place) %>%
# Como o Bouding Box inclui algumas ilhas e locais além do japão decidi adicionar um filtro a mais
filter(str_detect(place, "Japan")) %>%
mutate(
# Converte texto para Data/Hora e extrair o Ano
data_evento = as_datetime(time),
ano = year(data_evento),
# Cria Categoria de Magnitude (Escala Richter/Moment)
classe_sismica = case_when(
mag < 5.0 ~ "Moderado (4.5-4.9)",
mag < 6.0 ~ "Forte (5.0-5.9)",
mag < 7.0 ~ "Muito Forte (6.0-6.9)",
TRUE ~ "Catastrófico (>=7.0)"
),
# Cria Categoria de Profundidade (Zonas de Subducção)
tipo_profundidade = ifelse(depth < 70, "Raso (<70km)", "Profundo (>70km)")
) %>%
# Ordena cronologicamente (mais recente primeiro)
arrange(desc(data_evento))
# Exibição tabela iterativa
datatable(df_quake,
options = list(pageLength = 10, scrollX = TRUE),
caption = "Tabela 2: Base de Dados Sismológicos Limpa e Classificada")
| Nome da Coluna | Tipo Primitivo (R) | Explicação e Significado |
|---|---|---|
| time |
Character
|
Timestamp original do evento fornecido pela API (formato ISO8601). |
| latitude |
Numeric (Double)
|
Coordenada geográfica Norte-Sul (graus decimais). |
| longitude |
Numeric (Double)
|
Coordenada geográfica Leste-Oeste (graus decimais). |
| depth |
Numeric (Double)
|
Profundidade do hipocentro em quilômetros (km). |
| mag |
Numeric (Double)
|
Magnitude do evento sísmico (Escala Richter/Moment). |
| place |
Character
|
Descrição textual da localização geográfica (ex: “Near the east coast of Honshu”). |
| data_evento |
POSIXct (Datetime)
|
Data e hora convertidas para formato temporal do R para análise de séries temporais. |
| ano |
Numeric (Int)
|
Ano da ocorrência extraído da data do evento. |
| classe_sismica |
Character (Fator)
|
Variável categórica criada para classificar o impacto (Moderado, Forte, etc.). |
| tipo_profundidade |
Character (Fator)
|
Variável categórica criada para análise tectônica (Raso vs. Profundo). |
A lei de Gutenberg-Richter postula a existência de uma relação logarítmica entre a magnetude e a frequência total de terremotos de uma determinada região. De maneira simples: para cada terremoto de magnetude 6, espera-se cerca de 10 terremotos de magnetude 5 e 100 de magnetude 4.
O histograma a seguir, com escala logaritmica no eixo Y, permite a visualização desse decaimento exponencial.
# Histograma de Frequência das Magnitudes
ggplot(df_quake, aes(x = mag)) +
geom_histogram(binwidth = 0.1, fill = "firebrick", color = "white", alpha = 0.8) +
# Aplicação de escala logarítmica no eixo Y para vizualização a Lei de Gutenberg-Richter
scale_y_log10(labels = label_number(accuracy = 1)) +
labs(
title = "Distribuição de Frequência das Magnitudes (2011-2025)",
subtitle = "Escala Logarítmica: Evidência do decaimento exponencial da frequência",
x = "Magnitude (Richter/Moment)",
y = "Contagem de Eventos (Log10)",
caption = "Fonte: USGS API"
) +
theme_minimal()
Ao plotar a latitude e longitude de cada evento é possivel recontruir as fronteiras das placas tectônicas. A cor dos pontos representa a profundidade o que permite identificar a Japan Tranch, onde a placa do Pacífico mergulha sob a placa continental.
# Mapa de dispersão geográfica
ggplot(df_quake, aes(x = longitude, y = latitude, color = depth)) +
# Pontos menores (size=0.5) para evitar poluição visual dado o alto volume de registros
geom_point(alpha = 0.6, size = 0.5) +
# Escala de cores viridis (Magma) para destacar profundidade
scale_color_viridis_c(option = "magma", direction = -1, name = "Profundidade (km)") +
labs(
title = "Mapeamento Tectônico dos Epicentros no Japão",
subtitle = "Zonas escuras indicam subducção profunda (Placas convergentes)",
x = "Longitude",
y = "Latitude"
) +
theme_dark() +
coord_quickmap() # Ajuste de proporção para não distorcer o mapa
Por fim, decidi analisar a correlação entre a profundidade e a magnetude dos terremotos usando um gráfico de dispersão, para isso diferenciei os eventos pela classificação de impacto.
# Scatter plot: Profundidade vs Magnitude
ggplot(df_quake, aes(x = depth, y = mag)) +
geom_point(aes(color = classe_sismica), alpha = 0.4, size = 1.5) +
# Adiciona linha de tendência suave para facilitar a leitura de padrões
geom_smooth(method = "gam", color = "black", se = FALSE, linetype = "dashed") +
labs(
title = "Correlação: Profundidade do Hipocentro vs. Magnitude",
subtitle = "Análise da dispersão de energia por profundidade",
x = "Profundidade (km)",
y = "Magnitude",
color = "Classe Sísmica"
) +
theme_bw() +
theme(legend.position = "bottom")
A execução deste projeto de análise sismológica permitiu processar um volume massivo de dados em tempo real, superando a marca de 5.000 registros e atendendo aos critérios de robustez estatística exigidos pela disciplina.
Através da extração automatizada via API da USGS e da aplicação de técnicas de visualização científica, chegamos a três conclusões fundamentais sobre a geofísica japonesa:
Validação da Lei de Gutenberg-Richter (Frequência): O histograma logarítmico (Seção 4.1) confirmou o decaimento exponencial da sismicidade. A análise demonstra que eventos catastróficos (Mag > 7.0) são estatisticamente raros (“outliers”), enquanto a atividade sísmica moderada é uma constante diária no arquipélago.
Geometria da Subducção (Espaço): O mapeamento geoespacial (Seção 4.2) revelou a “cicatriz” tectônica ao leste do país. A visualização evidenciou a Fossa do Japão, onde a Placa do Pacífico mergulha sob a placa continental, validando visualmente a teoria da tectônica de placas sem necessidade de mapas geológicos prévios.
Correlação Profundidade vs. Magnitude (Energia): A análise de dispersão (Seção 4.3) indicou que a maior parte da energia sísmica destrutiva concentra-se na crosta rasa (< 70km). Embora o Japão registre terremotos profundos (devido à subducção), os dados mostram que os eventos de magnitude extrema (acima de 8.0) tendem a ocorrer em profundidades menores, o que justifica o foco da engenharia civil japonesa em mitigar danos de tremores superficiais.
Relevância para o MEXT e Sociedade: A capacidade de monitorar esses padrões utilizando dados abertos e ferramentas de Data Science (R/Tidyverse) tem aplicação direta na área de Bousai (Prevenção de Desastres). Este projeto demonstra como a análise de dados pode subsidiar políticas públicas de zoneamento e construção civil.
Limitações: Uma limitação observada foi o filtro de magnitude mínima (4.5) imposto para respeitar os limites operacionais da API. Trabalhos futuros poderiam integrar dados locais da JMA para investigar micro-tremores e precursores sísmicos.