Este dataset contém medições históricas de observações meteorológicas dos últimos 128 anos. Cada linha é uma medição correspondente a uma data e hora em uma estação meteorológica.
A origem deste dataset está disponível aqui, e a lista de números das estações meteorológicas pode ser encontrada aqui.
As fontes dos datasets meteorológicos incluem as estações meteorológicas mantidas pela Central Weather Administration (o código da estação começa com C0, C1 e 4) e as estações meteorológicas agrícolas pertencentes ao Council of Agriculture (códigos de estação diferentes dos mencionados acima):
- StationId
- MeasuredDate, o horário da observação
- StnPres, a pressão atmosférica na estação
- SeaPres, a pressão ao nível do mar
- Td, a temperatura do ponto de orvalho
- RH, a umidade relativa
- Outros elementos, quando disponíveis
Baixando os dados
- Uma versão pré-processada dos dados para uso no ClickHouse, que foi limpa, reestruturada e enriquecida. Este conjunto de dados abrange os anos de 1896 a 2023.
- Baixe os dados brutos originais e converta-os para o formato necessário para o ClickHouse. Usuários que desejam adicionar suas próprias colunas podem querer explorar ou complementar suas próprias abordagens.
Dados pré-processados
O conjunto de dados também foi reestruturado, passando de uma medição por linha para uma linha por ID da estação meteorológica e data da medição, ou seja.
StationId,MeasuredDate,StnPres,Tx,RH,WS,WD,WSGust,WDGust,Precp,GloblRad,TxSoil0cm,TxSoil5cm,TxSoil20cm,TxSoil50cm,TxSoil100cm,SeaPres,Td,PrecpHour,SunShine,TxSoil10cm,EvapA,Visb,UVI,Cloud Amount,TxSoil30cm,TxSoil200cm,TxSoil300cm,TxSoil500cm,VaporPressure
C0X100,2016-01-01 01:00:00,1022.1,16.1,72,1.1,8.0,,,,,,,,,,,,,,,,,,,,,,,
C0X100,2016-01-01 02:00:00,1021.6,16.0,73,1.2,358.0,,,,,,,,,,,,,,,,,,,,,,,
C0X100,2016-01-01 03:00:00,1021.3,15.8,74,1.5,353.0,,,,,,,,,,,,,,,,,,,,,,,
C0X100,2016-01-01 04:00:00,1021.2,15.8,74,1.7,8.0,,,,,,,,,,,,,,,,,,,,,,,É fácil consultar e verificar que a tabela resultante é menos esparsa e que alguns elementos são NULL, pois não podem ser medidos nesta estação meteorológica.
Este conjunto de dados está disponível no seguinte local do Google CloudStorage. Baixe o conjunto de dados para o seu sistema de arquivos local (e insira-o com o cliente do ClickHouse) ou insira-o diretamente no ClickHouse (consulte Inserindo a partir de URL).
Para baixar:
wget https://storage.googleapis.com/taiwan-weather-observaiton-datasets/preprocessed_weather_daily_1896_2023.tar.gz
# Opção: Validar o checksum
md5sum preprocessed_weather_daily_1896_2023.tar.gz
# O checksum deve ser igual a: 11b484f5bd9ddafec5cfb131eb2dd008
tar -xzvf preprocessed_weather_daily_1896_2023.tar.gz
daily_weather_preprocessed_1896_2023.csv
# Opção: Validar o checksum
md5sum daily_weather_preprocessed_1896_2023.csv
# O checksum deve ser igual a: 1132248c78195c43d93f843753881754Dados brutos originais
Os detalhes a seguir descrevem as etapas para baixar os dados brutos originais e transformá-los e convertê-los como quiser.
Baixar
Para fazer o download dos dados brutos originais:
mkdir tw_raw_weather_data && cd tw_raw_weather_data
wget https://storage.googleapis.com/taiwan-weather-observaiton-datasets/raw_data_weather_daily_1896_2023.tar.gz
# Opção: Validar o checksum
md5sum raw_data_weather_daily_1896_2023.tar.gz
# O checksum deve ser igual a: b66b9f137217454d655e3004d7d1b51a
tar -xzvf raw_data_weather_daily_1896_2023.tar.gz
466920_1928.csv
466920_1929.csv
466920_1930.csv
466920_1931.csv
...
# Opção: Validar o checksum
cat *.csv | md5sum
# O checksum deve ser igual a: b26db404bf84d4063fac42e576464ce1Obtenha as estações meteorológicas de Taiwan
wget -O weather_sta_list.csv https://github.com/Raingel/weather_station_list/raw/main/data/weather_sta_list.csv
# Opcional: Converter a codificação UTF-8-BOM para UTF-8
sed -i '1s/^\xEF\xBB\xBF//' weather_sta_list.csvCriar o esquema da tabela
Crie a tabela MergeTree no ClickHouse (usando o cliente do ClickHouse).
CREATE TABLE tw_weather_data (
StationId String null,
MeasuredDate DateTime64,
StnPres Float64 null,
SeaPres Float64 null,
Tx Float64 null,
Td Float64 null,
RH Float64 null,
WS Float64 null,
WD Float64 null,
WSGust Float64 null,
WDGust Float64 null,
Precp Float64 null,
PrecpHour Float64 null,
SunShine Float64 null,
GloblRad Float64 null,
TxSoil0cm Float64 null,
TxSoil5cm Float64 null,
TxSoil10cm Float64 null,
TxSoil20cm Float64 null,
TxSoil50cm Float64 null,
TxSoil100cm Float64 null,
TxSoil30cm Float64 null,
TxSoil200cm Float64 null,
TxSoil300cm Float64 null,
TxSoil500cm Float64 null,
VaporPressure Float64 null,
UVI Float64 null,
"Cloud Amount" Float64 null,
EvapA Float64 null,
Visb Float64 null
)
ENGINE = MergeTree
ORDER BY (MeasuredDate);Inserindo dados no ClickHouse
Inserindo de um arquivo local
Os dados podem ser inseridos de um arquivo local da seguinte forma (no cliente do ClickHouse):
INSERT INTO tw_weather_data FROM INFILE '/path/to/daily_weather_preprocessed_1896_2023.csv'onde /path/to representa o caminho específico do usuário para o arquivo local no disco.
E a saída de exemplo da resposta é a seguinte após inserir dados no ClickHouse:
Query id: 90e4b524-6e14-4855-817c-7e6f98fbeabb
Ok.
131985329 rows in set. Elapsed: 71.770 sec. Processed 131.99 million rows, 10.06 GB (1.84 million rows/s., 140.14 MB/s.)
Peak memory usage: 583.23 MiB.Inserindo a partir de URL
INSERT INTO tw_weather_data SELECT *
FROM url('https://storage.googleapis.com/taiwan-weather-observaiton-datasets/daily_weather_preprocessed_1896_2023.csv', 'CSVWithNames')Para saber como acelerar esse processo, consulte nosso artigo no blog sobre como otimizar grandes cargas de dados.
Verifique a quantidade de linhas e os tamanhos dos dados
- Vamos ver quantas linhas foram inseridas:
SELECT formatReadableQuantity(count())
FROM tw_weather_data;┌─formatReadableQuantity(count())─┐
│ 131.99 million │
└─────────────────────────────────┘- Vamos ver quanto espaço em disco esta tabela usa:
SELECT
formatReadableSize(sum(bytes)) AS disk_size,
formatReadableSize(sum(data_uncompressed_bytes)) AS uncompressed_size
FROM system.parts
WHERE (`table` = 'tw_weather_data') AND active┌─disk_size─┬─uncompressed_size─┐
│ 2.13 GiB │ 32.94 GiB │
└───────────┴───────────────────┘Consultas de exemplo
Q1: Recupere a maior temperatura de ponto de orvalho de cada estação meteorológica em um determinado ano
SELECT
StationId,
max(Td) AS max_td
FROM tw_weather_data
WHERE (year(MeasuredDate) = 2023) AND (Td IS NOT NULL)
GROUP BY StationId┌─StationId─┬─max_td─┐
│ 466940 │ 1 │
│ 467300 │ 1 │
│ 467540 │ 1 │
│ 467490 │ 1 │
│ 467080 │ 1 │
│ 466910 │ 1 │
│ 467660 │ 1 │
│ 467270 │ 1 │
│ 467350 │ 1 │
│ 467571 │ 1 │
│ 466920 │ 1 │
│ 467650 │ 1 │
│ 467550 │ 1 │
│ 467480 │ 1 │
│ 467610 │ 1 │
│ 467050 │ 1 │
│ 467590 │ 1 │
│ 466990 │ 1 │
│ 467060 │ 1 │
│ 466950 │ 1 │
│ 467620 │ 1 │
│ 467990 │ 1 │
│ 466930 │ 1 │
│ 467110 │ 1 │
│ 466881 │ 1 │
│ 467410 │ 1 │
│ 467441 │ 1 │
│ 467420 │ 1 │
│ 467530 │ 1 │
│ 466900 │ 1 │
└───────────┴────────┘
30 rows in set. Elapsed: 0.045 sec. Processed 6.41 million rows, 187.33 MB (143.92 million rows/s., 4.21 GB/s.)Q2: Busca de dados brutos com intervalo de tempo de duração específica, campos e estação meteorológica
SELECT
StnPres,
SeaPres,
Tx,
Td,
RH,
WS,
WD,
WSGust,
WDGust,
Precp,
PrecpHour
FROM tw_weather_data
WHERE (StationId = 'C0UB10') AND (MeasuredDate >= '2023-12-23') AND (MeasuredDate < '2023-12-24')
ORDER BY MeasuredDate ASC
LIMIT 10┌─StnPres─┬─SeaPres─┬───Tx─┬───Td─┬─RH─┬──WS─┬──WD─┬─WSGust─┬─WDGust─┬─Precp─┬─PrecpHour─┐
│ 1029.5 │ ᴺᵁᴸᴸ │ 11.8 │ ᴺᵁᴸᴸ │ 78 │ 2.7 │ 271 │ 5.5 │ 275 │ -99.8 │ -99.8 │
│ 1029.8 │ ᴺᵁᴸᴸ │ 12.3 │ ᴺᵁᴸᴸ │ 78 │ 2.7 │ 289 │ 5.5 │ 308 │ -99.8 │ -99.8 │
│ 1028.6 │ ᴺᵁᴸᴸ │ 12.3 │ ᴺᵁᴸᴸ │ 79 │ 2.3 │ 251 │ 6.1 │ 289 │ -99.8 │ -99.8 │
│ 1028.2 │ ᴺᵁᴸᴸ │ 13 │ ᴺᵁᴸᴸ │ 75 │ 4.3 │ 312 │ 7.5 │ 316 │ -99.8 │ -99.8 │
│ 1027.8 │ ᴺᵁᴸᴸ │ 11.1 │ ᴺᵁᴸᴸ │ 89 │ 7.1 │ 310 │ 11.6 │ 322 │ -99.8 │ -99.8 │
│ 1027.8 │ ᴺᵁᴸᴸ │ 11.6 │ ᴺᵁᴸᴸ │ 90 │ 3.1 │ 269 │ 10.7 │ 295 │ -99.8 │ -99.8 │
│ 1027.9 │ ᴺᵁᴸᴸ │ 12.3 │ ᴺᵁᴸᴸ │ 89 │ 4.7 │ 296 │ 8.1 │ 310 │ -99.8 │ -99.8 │
│ 1028.2 │ ᴺᵁᴸᴸ │ 12.2 │ ᴺᵁᴸᴸ │ 94 │ 2.5 │ 246 │ 7.1 │ 283 │ -99.8 │ -99.8 │
│ 1028.4 │ ᴺᵁᴸᴸ │ 12.5 │ ᴺᵁᴸᴸ │ 94 │ 3.1 │ 265 │ 4.8 │ 297 │ -99.8 │ -99.8 │
│ 1028.3 │ ᴺᵁᴸᴸ │ 13.6 │ ᴺᵁᴸᴸ │ 91 │ 1.2 │ 273 │ 4.4 │ 256 │ -99.8 │ -99.8 │
└─────────┴─────────┴──────┴──────┴────┴─────┴─────┴────────┴────────┴───────┴───────────┘
10 rows in set. Elapsed: 0.009 sec. Processed 91.70 thousand rows, 2.33 MB (9.67 million rows/s., 245.31 MB/s.)Créditos
Gostaríamos de reconhecer os esforços da Central Weather Administration e da Agricultural Meteorological Observation Network (Estação) do Conselho de Agricultura na preparação, limpeza e distribuição deste conjunto de dados. Agradecemos seus esforços.
Ou, J.-H., Kuo, C.-H., Wu, Y.-F., Lin, G.-C., Lee, M.-H., Chen, R.-K., Chou, H.-P., Wu, H.-Y., Chu, S.-C., Lai, Q.-J., Tsai, Y.-C., Lin, C.-C., Kuo, C.-C., Liao, C.-T., Chen, Y.-N., Chu, Y.-W., Chen, C.-Y., 2023. Modelo de aprendizado profundo orientado a aplicações para alerta precoce da brusone do arroz em Taiwan. Ecological Informatics 73, 101950. https://doi.org/10.1016/j.ecoinf.2022.101950 [13/12/2022]