메인 콘텐츠로 건너뛰기
이 데이터셋에는 지난 128년간의 기상 관측 기록이 포함되어 있습니다. 각 행은 특정 일시와 기상 관측소에서 측정된 값입니다. 이 데이터셋의 출처는 여기에서 확인할 수 있으며, 기상 관측소 번호 목록은 여기에서 확인할 수 있습니다.
기상 데이터셋의 출처에는 Central Weather Administration에서 설치한 기상 관측소(관측소 코드는 C0, C1, 4로 시작)와 Council of Agriculture 소속 농업 기상 관측소(관측소 코드는 앞서 언급한 경우에 해당하지 않음)가 포함됩니다.
  • StationId
    • MeasuredDate, 관측 시각
    • StnPres, 관측소 기압
    • SeaPres, 해면 기압
    • Td, 이슬점 온도
    • RH, 상대 습도
    • 가능한 경우 기타 요소

데이터 다운로드

  • 정리, 재구성, 보강을 거친 ClickHouse용 데이터의 전처리된 버전입니다. 이 데이터셋은 1896년부터 2023년까지를 다룹니다.
  • 원본 데이터 다운로드 후 ClickHouse에 필요한 포맷으로 변환합니다. 자체 컬럼을 추가하려는 사용자는 자신만의 접근 방식을 더 검토하거나 완성할 수 있습니다.

전처리된 데이터

데이터셋은 각 줄마다 하나의 측정값이 있던 구조에서, 각 기상 관측소 id와 측정 날짜별로 하나의 행이 되도록 다시 구성되었습니다. 즉,
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,,,,,,,,,,,,,,,,,,,,,,,
쿼리하기 쉬우며, 결과 테이블이 덜 희소하고 일부 요소는 이 기상 관측소에서 측정할 수 없는 값이므로 NULL임을 확인할 수 있습니다. 이 데이터셋은 다음 Google CloudStorage 위치에서 사용할 수 있습니다. 데이터셋을 로컬 파일 시스템에 다운로드한 다음 clickhouse client로 삽입하거나, ClickHouse에 직접 삽입할 수 있습니다(URL에서 삽입 참고). 다운로드하려면:
wget https://storage.googleapis.com/taiwan-weather-observaiton-datasets/preprocessed_weather_daily_1896_2023.tar.gz

# 옵션: 체크섬 검증
md5sum preprocessed_weather_daily_1896_2023.tar.gz
# 체크섬이 다음 값과 일치해야 합니다: 11b484f5bd9ddafec5cfb131eb2dd008

tar -xzvf preprocessed_weather_daily_1896_2023.tar.gz
daily_weather_preprocessed_1896_2023.csv

# 옵션: 체크섬 검증
md5sum daily_weather_preprocessed_1896_2023.csv
# 체크섬이 다음 값과 일치해야 합니다: 1132248c78195c43d93f843753881754

원본 원시 데이터

다음은 필요에 맞게 변환하여 사용할 수 있도록 원본 원시 데이터를 다운로드하는 단계에 대한 설명입니다.

다운로드

원본 원시 데이터를 다운로드하려면:
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

# 선택 사항: 체크섬(checksum) 검증
md5sum raw_data_weather_daily_1896_2023.tar.gz
# 체크섬은 다음 값과 일치해야 합니다: b66b9f137217454d655e3004d7d1b51a

tar -xzvf raw_data_weather_daily_1896_2023.tar.gz
466920_1928.csv
466920_1929.csv
466920_1930.csv
466920_1931.csv
...

# 선택 사항: 체크섬(checksum) 검증
cat *.csv | md5sum
# 체크섬은 다음 값과 일치해야 합니다: b26db404bf84d4063fac42e576464ce1

대만 기상 관측소 가져오기

wget -O weather_sta_list.csv https://github.com/Raingel/weather_station_list/raw/main/data/weather_sta_list.csv

# 선택 사항: UTF-8-BOM을 UTF-8 인코딩으로 변환
sed -i '1s/^\xEF\xBB\xBF//' weather_sta_list.csv

테이블 스키마 생성

ClickHouse에서 MergeTree 테이블을 생성합니다(clickhouse client에서).
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);

ClickHouse에 삽입하기

로컬 파일에서 삽입하기

다음과 같이 로컬 파일의 데이터를 삽입할 수 있습니다(ClickHouse client에서).
INSERT INTO tw_weather_data FROM INFILE '/path/to/daily_weather_preprocessed_1896_2023.csv'
여기서 /path/to는 디스크에 있는 로컬 파일의 사용자별 경로를 나타냅니다. 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.

URL을 통한 삽입

INSERT INTO tw_weather_data SELECT *
FROM url('https://storage.googleapis.com/taiwan-weather-observaiton-datasets/daily_weather_preprocessed_1896_2023.csv', 'CSVWithNames')

속도를 높이는 방법은 대용량 데이터 로드 튜닝 블로그 게시물을 참조하십시오.

데이터 행 수와 크기 확인

  1. 몇 개의 행이 삽입되었는지 확인해 보겠습니다:
SELECT formatReadableQuantity(count())
FROM tw_weather_data;
┌─formatReadableQuantity(count())─┐
│ 131.99 million                  │
└─────────────────────────────────┘
  1. 이 테이블이 얼마나 많은 디스크 공간을 사용하는지 확인해 보겠습니다:
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         │
└───────────┴───────────────────┘

예제 쿼리

Q1: 특정 연도의 각 기상 관측소별 최고 이슬점 온도 조회

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: 특정 기간 범위, 필드, 기상 관측소를 기준으로 한 원시 데이터 가져오기

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.)

제보

이 데이터셋의 준비, 정제 및 배포에 힘써 주신 Council of Agriculture 산하 Central Weather Administration과 Agricultural Meteorological Observation Network (Station)의 노고에 감사드립니다. 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. 대만의 벼 도열병 조기 경보를 위한 응용 지향 딥러닝 모델. Ecological Informatics 73, 101950. https://doi.org/10.1016/j.ecoinf.2022.101950 [13/12/2022]
마지막 수정일 2026년 6월 10일