탐색 건너뛰기

NOAA Integrated Surface Data (ISD)

Weather ISD NOAA

NOAA(미국해양대기관리처)에서 제공하는 전 세계 시간별 날씨 기록 데이터(예: 온도, 강수, 바람)입니다.

ISD(Integrated Surface Dataset)는 35,000개 이상 관측소의 전 세계 지표 기상 관측으로 구성되지만, 최상의 공간 범위는 북아메리카, 유럽, 오스트레일리아 및 아시아 일부 지역에서 분명합니다. 포함된 매개 변수로는 공기 질, 기압, 기온/이슬점, 대기 바람, 구름, 강수, 파랑, 조수 등이 있습니다. ISD는 디지털 데이터베이스 내에 포함된 데이터와 시간별, 개요(3시간당) 및 일일 기상 관측이 저장된 형식을 참조합니다.

볼륨 및 보존

이 데이터 세트는 Parquet 형식으로 저장됩니다. 이 데이터 세트는 매일 업데이트되며, 2019년 기준 총 약 4억 개의 행(20GB)을 포함합니다.

이 데이터 세트는 2008년부터 현재까지 누적된 기록 레코드를 포함합니다. SDK의 매개 변수 설정을 사용하여 특정 시간 범위의 데이터를 가져올 수 있습니다.

스토리지 위치

이 데이터 세트는 미국 동부 Azure 지역에 저장됩니다. 선호도를 위해 미국 동부에 컴퓨팅 리소스를 할당하는 것이 좋습니다.

추가 정보

이 데이터 세트는 NOAA Integrated Surface Database에서 제공됩니다. 이 데이터 세트에 대한 추가 정보는 여기여기에서 확인할 수 있습니다. 데이터 원본에 대한 질문이 있는 경우 으로 문의해 주세요.

고지 사항

Microsoft는 Azure Open Datasets를 “있는 그대로” 제공합니다. Microsoft는 귀하의 데이터 세트 사용과 관련하여 어떠한 명시적이거나 묵시적인 보증, 보장 또는 조건을 제공하지 않습니다. 귀하가 거주하는 지역의 법규가 허용하는 범위 내에서 Microsoft는 귀하의 데이터 세트 사용으로 인해 발생하는 일체의 직접적, 결과적, 특별, 간접적, 부수적 또는 징벌적 손해 또는 손실을 비롯한 모든 손해 또는 손실에 대한 모든 책임을 부인합니다.

이 데이터 세트는 Microsoft가 원본 데이터를 받은 원래 사용 약관에 따라 제공됩니다. 데이터 세트에는 Microsoft가 제공한 데이터가 포함될 수 있습니다.

Access

Available inWhen to use
Azure Notebooks

Quickly explore the dataset with Jupyter notebooks hosted on Azure or your local machine.

Azure Databricks

Use this when you need the scale of an Azure managed Spark cluster to process the dataset.

Azure Synapse

Use this when you need the scale of an Azure managed Spark cluster to process the dataset.

Preview

usaf wban datetime latitude longitude elevation cloudCoverage stationName countryOrRegion p_k year day version month
A00029 63820 5/19/2020 5:59:00 AM 36.38 -88.985 104 null EVERETT-STEWART AIRPORT US A00029-63820 2020 19 1 5
726457 04825 5/19/2020 5:59:00 AM 44.267 -88.517 280 null OUTAGAMIE CO RGNL AIRPORT US 726457-04825 2020 19 1 5
722323 00362 5/19/2020 5:59:00 AM 31.417 -97.8 276 null GATESVILLE MUNICIPAL AIRPORT US 722323-00362 2020 19 1 5
726564 04967 5/19/2020 5:59:00 AM 44.589 -92.485 238 null RED WING REGIONAL AIRPORT US 726564-04967 2020 19 1 5
725453 14930 5/19/2020 5:59:00 AM 41.407 -95.047 360 null ATLANTIC MUNICIPAL AIRPORT US 725453-14930 2020 19 1 5
722091 53940 5/19/2020 5:59:00 AM 36.294 -95.479 221 null CLAREMORE REGIONAL AIRPORT US 722091-53940 2020 19 1 5
726464 54834 5/19/2020 5:59:00 AM 43.167 -88.717 254 null WATERTOWN MUNICIPAL AIRPORT US 726464-54834 2020 19 1 5
725464 04977 5/19/2020 5:59:00 AM 41.674 -93.022 290 null NEWTON MUNICIPAL AIRPORT US 725464-04977 2020 19 1 5
726424 94818 5/19/2020 5:59:00 AM 42.761 -87.814 205 null JOHN H BATTEN AIRPORT US 726424-94818 2020 19 1 5
726505 04845 5/19/2020 5:59:00 AM 42.595 -87.938 226 null KENOSHA REGIONAL AIRPORT US 726505-04845 2020 19 1 5
Name Data type Unique Values (sample) Description
cloudCoverage string 8 CLR
OVC

보이는 모든 구름으로 덮인 하늘의 일부입니다. 구름 적용 범위 값:

CLR = Clear skies FEW = Few clouds SCT = Scattered clouds BKN = Broken cloud cover OVC = Overcast OBS = Sky is obscured/can't be estimated POBS = Sky is partially obscured
countryOrRegion string 245 US
CA

국가 또는 지역 코드입니다.

datetime timestamp 6,510,252 2019-02-25 12:00:00
2019-04-05 12:00:00

GEOPHYSICAL-POINT-OBSERVATION의 UTC 날짜/시간입니다.

day int 31 1
5

열 날짜/시간의 일입니다.

elevation double 2,359 5.0
3.0

MSL(평균 해면 고도)을 기준으로 한 GEOPHYSICAL-POINT-OBSERVATION의 상승입니다.

latitude double 34,671 38.544
31.78

GEOPHYSICAL-POINT-OBSERVATION의 위도 좌표이며, 남반구는 음수입니다.

longitude double 57,959 -86.0
-96.622

GEOPHYSICAL-POINT-OBSERVATION의 경도 좌표이며 000000부터 179999까지 서쪽 값은 음수 부호로 표시됩니다.

month int 12 1
3

열 날짜/시간의 월입니다.

p_k string 17,273 999999-21514
999999-63849

usaf-wban

pastWeatherIndicator int 11 2
6

과거 시간의 날씨를 보여 주는 과거 날씨 지표 검색

0: Cloud covering 1/2 or less of the sky throughout the appropriate period 1: Cloud covering more than 1/2 of the sky during part of the appropriate period and covering 1/2 or less during part of the period 2: Cloud covering more than 1/2 of the sky throughout the appropriate period 3: Sandstorm, duststorm or blowing snow 4: Fog or ice fog or thick haze 5: Drizzle 6: Rain 7: Snow, or rain and snow mixed 8: Shower(s) 9: Thunderstorm(s) with or without precipitation
precipDepth double 5,600 9999.0
3.0

관측 시 측정된 액체 강수의 깊이입니다. 단위: 밀리미터. 최솟값: 0000, 최댓값: 9998, 9999 = 누락, 배율 인수: 10.

precipTime double 44 1.0
24.0

액체 강수가 측정된 시간의 양입니다. 단위: 시간. 최솟값: 00, 최댓값: 98, 99 = 누락.

presentWeatherIndicator int 101 10
5

현재 시간의 날씨를 보여 주는 현재 날씨 지표 검색

00: Cloud development not observed or not observable 01: Clouds generally dissolving or becoming less developed 02: State of sky on the whole unchanged 03: Clouds generally forming or developing 04: Visibility reduced by smoke, e.g. veldt or forest fires, industrial smoke or volcanic ashes 05: Haze 06: Widespread dust in suspension in the air, not raised by wind at or near the station at the time of observation 07: Dust or sand raised by wind at or near the station at the time of observation, but no well-developed dust whirl(s) sand whirl(s), and no duststorm or sandstorm seen or, in the case of ships, blowing spray at the station 08: Well developed dust whirl(s) or sand whirl(s) seen at or near the station during the preceding hour or at the time of observation, but no duststorm or sandstorm 09: Duststorm or sandstorm within sight at the time of observation, or at the station during the preceding hour For more: The section 'MW1' in ftp://ftp.ncdc.noaa.gov/pub/data/noaa/isd-format-document.pdf
seaLvlPressure double 2,214 1015.0
1015.2

MSL(평균 해면 고도)을 기준으로 한 기압입니다.

최솟값: 08600 최댓값: 10900 단위: 헥토파스칼

snowDepth double 652 1.0
3.0

지면의 눈과 얼음의 깊이입니다. 최솟값: 0000 최댓값: 1200 단위: 센티미터

stationName string 16,553 MAUNA LOA 5 NNE
BOWLING GREEN 21 NNE

기상 관측소의 이름입니다.

temperature double 1,466 15.0
13.0

공기의 온도입니다. 최솟값: -0932 최댓값: +0618 단위: 섭씨온도

usaf string 16,594 999999
062350

공군 카탈로그 기지 번호입니다.

version double 1 1.0
wban string 2,550 99999
21514

NCDC WBAN 번호입니다.

windAngle int 362 180
270

진북과 바람이 불어오는 방향 간에 시계 방향으로 측정된 각도입니다. 최솟값: 001 최댓값: 360 단위: 각도

windSpeed double 617 2.1
1.5

고정된 지점을 지난 수평으로 이동하는 공기의 속도입니다.

최솟값: 0000 최댓값: 0900 단위: 초당 미터

year int 13 2019
2018

열 날짜/시간의 연도입니다.

Select your preferred service:

Azure Notebooks

Azure Databricks

Azure Synapse

Azure Notebooks

Package: Language: Python Python
In [1]:
# This is a package in preview.
from azureml.opendatasets import NoaaIsdWeather

from datetime import datetime
from dateutil.relativedelta import relativedelta


end_date = datetime.today()
start_date = datetime.today() - relativedelta(months=1)

# Get historical weather data in the past month.
isd = NoaaIsdWeather(start_date, end_date)
# Read into Pandas data frame.
isd_df = isd.to_pandas_dataframe()
ActivityStarted, to_pandas_dataframe ActivityStarted, to_pandas_dataframe_in_worker Target paths: ['/year=2019/month=6/'] Looking for parquet files... Reading them into Pandas dataframe... Reading ISDWeather/year=2019/month=6/part-00049-tid-7654660707407597606-ec55d6c6-0d34-4a97-b2c8-d201080c9a98-89240.c000.snappy.parquet under container isdweatherdatacontainer Done. ActivityCompleted: Activity=to_pandas_dataframe_in_worker, HowEnded=Success, Duration=116905.15 [ms] ActivityCompleted: Activity=to_pandas_dataframe, HowEnded=Success, Duration=116907.63 [ms]
In [2]:
isd_df.info()
<class 'pandas.core.frame.DataFrame'> Int64Index: 7790719 entries, 2709 to 11337856 Data columns (total 22 columns): usaf object wban object datetime datetime64[ns] latitude float64 longitude float64 elevation float64 windAngle float64 windSpeed float64 temperature float64 seaLvlPressure float64 cloudCoverage object presentWeatherIndicator float64 pastWeatherIndicator float64 precipTime float64 precipDepth float64 snowDepth float64 stationName object countryOrRegion object p_k object year int32 day int32 version float64 dtypes: datetime64[ns](1), float64(13), int32(2), object(6) memory usage: 1.3+ GB
In [1]:
# Pip install packages
import os, sys

!{sys.executable} -m pip install azure-storage
!{sys.executable} -m pip install pyarrow
!{sys.executable} -m pip install pandas
In [2]:
# Azure storage access info
azure_storage_account_name = "azureopendatastorage"
azure_storage_sas_token = r""
container_name = "isdweatherdatacontainer"
folder_name = "ISDWeather/"
In [3]:
from azure.storage.blob import BlockBlobService

if azure_storage_account_name is None or azure_storage_sas_token is None:
    raise Exception("Provide your specific name and key for your Azure Storage account--see the Prerequisites section earlier.")

print('Looking for the first parquet under the folder ' + folder_name + ' in container "' + container_name + '"...')
blob_service = BlockBlobService(account_name = azure_storage_account_name, sas_token = azure_storage_sas_token,)
blobs = blob_service.list_blobs(container_name)
sorted_blobs = sorted(list(blobs), key=lambda e: e.name, reverse=True)
targetBlobName=''
for blob in sorted_blobs:
    if blob.name.startswith(folder_name) and blob.name.endswith('.parquet'):
        targetBlobName = blob.name
        break

print('Target blob to download: ' + targetBlobName)
_, filename = os.path.split(targetBlobName)
parquet_file=blob_service.get_blob_to_path(container_name, targetBlobName, filename)
In [4]:
# Read the local parquet file into Pandas data frame
import pyarrow.parquet as pq
import pandas as pd

appended_df = []
print('Reading the local parquet file into Pandas data frame')
df = pq.read_table(filename).to_pandas()
In [5]:
# you can add your filter at below
print('Loaded as a Pandas data frame: ')
df
In [6]:
 

Azure Databricks

Package: Language: Python Python
In [1]:
# This is a package in preview.
# You need to pip install azureml-opendatasets in Databricks cluster. https://docs.microsoft.com/en-us/azure/data-explorer/connect-from-databricks#install-the-python-library-on-your-azure-databricks-cluster
from azureml.opendatasets import NoaaIsdWeather

from datetime import datetime
from dateutil.relativedelta import relativedelta


end_date = datetime.today()
start_date = datetime.today() - relativedelta(months=1)
isd = NoaaIsdWeather(start_date, end_date)
isd_df = isd.to_spark_dataframe()
ActivityStarted, to_spark_dataframe ActivityStarted, to_spark_dataframe_in_worker ActivityCompleted: Activity=to_spark_dataframe_in_worker, HowEnded=Success, Duration=87171.59 [ms] ActivityCompleted: Activity=to_spark_dataframe, HowEnded=Success, Duration=87176.63 [ms]
In [2]:
display(isd_df.limit(5))
usafwbandatetimelatitudelongitudeelevationwindAnglewindSpeedtemperatureseaLvlPressurecloudCoveragepresentWeatherIndicatorpastWeatherIndicatorprecipTimeprecipDepthsnowDepthstationNamecountryOrRegionp_kyeardayversionmonth
726163547702019-06-30T21:38:00.000+000042.805-72.004317.0null2.617.2nullnull61null1.043.0nullJAFFREY MINI-SLVR RNCH APTUS726163-547702019301.06
726163547702019-06-30T21:52:00.000+000042.805-72.004317.0null1.517.21008.6nullnullnull1.043.0nullJAFFREY MINI-SLVR RNCH APTUS726163-547702019301.06
726163547702019-06-30T22:52:00.000+000042.805-72.004317.0null2.118.91008.8CLRnullnull1.00.0nullJAFFREY MINI-SLVR RNCH APTUS726163-547702019301.06
726163547702019-06-30T23:52:00.000+000042.805-72.004317.0null1.518.31009.1FEWnullnull6.094.0nullJAFFREY MINI-SLVR RNCH APTUS726163-547702019301.06
703260255032019-06-15T07:54:00.000+000058.683-156.65615.0704.110.01005.6null61null1.00.0nullKING SALMON AIRPORTUS703260-255032019151.06
In [1]:
# Azure storage access info
blob_account_name = "azureopendatastorage"
blob_container_name = "isdweatherdatacontainer"
blob_relative_path = "ISDWeather/"
blob_sas_token = r""
In [2]:
# Allow SPARK to read from Blob remotely
wasbs_path = 'wasbs://%s@%s.blob.core.windows.net/%s' % (blob_container_name, blob_account_name, blob_relative_path)
spark.conf.set(
  'fs.azure.sas.%s.%s.blob.core.windows.net' % (blob_container_name, blob_account_name),
  blob_sas_token)
print('Remote blob path: ' + wasbs_path)
In [3]:
# SPARK read parquet, note that it won't load any data yet by now
df = spark.read.parquet(wasbs_path)
print('Register the DataFrame as a SQL temporary view: source')
df.createOrReplaceTempView('source')
In [4]:
# Display top 10 rows
print('Displaying top 10 rows: ')
display(spark.sql('SELECT * FROM source LIMIT 10'))

Azure Synapse

Package: Language: Python
In [1]:
# Azure storage access info
blob_account_name = "azureopendatastorage"
blob_container_name = "isdweatherdatacontainer"
blob_relative_path = "ISDWeather/"
blob_sas_token = r""
In [2]:
# Allow SPARK to read from Blob remotely
wasbs_path = 'wasbs://%s@%s.blob.core.windows.net/%s' % (blob_container_name, blob_account_name, blob_relative_path)
spark.conf.set(
  'fs.azure.sas.%s.%s.blob.core.windows.net' % (blob_container_name, blob_account_name),
  blob_sas_token)
print('Remote blob path: ' + wasbs_path)
In [3]:
# SPARK read parquet, note that it won't load any data yet by now
df = spark.read.parquet(wasbs_path)
print('Register the DataFrame as a SQL temporary view: source')
df.createOrReplaceTempView('source')
In [4]:
# Display top 10 rows
print('Displaying top 10 rows: ')
display(spark.sql('SELECT * FROM source LIMIT 10'))

Urban Heat Islands

From the Urban Innovation Initiative at Microsoft Research, data processing and analytics scripts for hourly NOAA weather station data that produce daily urban heat island indices for hundreds of U.S. cities, January 1, 2008 - present, including automated daily updating. Urban heat island effects are then examined over time and across cities, as well as aligned with population density.