ナビゲーションをスキップする

Daymet

Weather Daymet AIforEarth

北米の毎日の気象パラメーターの推定値 (1 キロ グリッド)。

Daymet は地上気象状態の測定を提供します。Daymet の主な目的は、インストルメンテーションが存在しない場合のデータ推定の提供です。 このデータセットは北米用の Daymet Version 3 データを提供します。ハワイ諸島およびプエルトリコは、大陸塊とは別のファイルとして提供されます。 Daymet の出力変数には、最低気温、最高気温、降水量、短波放射、蒸気圧、積雪水当量、日照時間が含まれます。 データセットは、1980 年 1 月 1 日から現在までの期間をカバーします。 各年は、暦年の終わりに個別に処理されます。 Daymet の変数は、1 km の空間分解能と毎日の時間分解能で、変数および年ごとに個別のファイルとして提供される連続平面です。 データは北米用のランベルト正角円錐図法であり、気候・予報 (CF) メタデータ規約 (バージョン 1.6) に準拠した netCDF 形式で配布されます。

Storage のリソース

データは、米国東部データ センターにある次の BLOB コンテナーの BLOB に格納されています。

https://daymet.blob.core.windows.net/daymetv3-raw

そのコンテナー内では、データは次のように名前が付けられています。

davymet_v3_[variable]_[year]_[region].nc4

  • 変数は次のいずれかです:
    • tmin (最低気温)
    • tmax (最高気温)
    • prcp (降水量)
    • srad (短波放射)
    • vp (蒸気圧)
    • sne (積雪水量)
    • dayl (日の長さ)
  • year は 4 桁の年です
  • region はリージョン コードで、“na” (北米大陸塊)、“hawaii”、“puertorico” のいずれかになります

たとえば、大陸塊の 1982 年からの最高気温データは、次の場所から入手できます。

https://daymet.blob.core.windows.net/daymetv3-raw/daymet_v3_tmax_1982_na.nc4

Daymet BLOB へのアクセスやプロットに関する完全な Python の例は、“データ アクセス”で提供されるノートブックでご確認いただけます。

また、BlobFuse などを介して Daymet データにアクセスできるように、読み取り専用の SAS (Shared Access Signature) トークンも提供されます。これにより、BLOB コンテナーをドライブとしてマウントできます。

st=2020-01-03T00%3A12%3A06Z&se=2031-01-04T00%3A12%3A00Z&sp=rl&sv=2018-03-28&sr=c&sig=ca0OY7h4J6j0JxQiiTcM9PeZ%2FCWmX5wC5sjKUPqq0mk%3D

Linux でのマウントの手順については、こちらをご覧ください。

このデータセットを使用した大規模な処理は、米国東部 Azure データセンター (データの保存場所) でパフォーマンスが最適になります。 Daymet データを環境科学の用途に使用する場合は、コンピューティング要件をサポートするために、AI for Earth 助成金の申請を検討してください。

引用

このデータを出版物で使用する場合は、次の引用を含めてください。

Thornton、P.E.、M.M. Thornton、B.W. Mayer、Y. Wei、R. Devarakonda、R.S. Vose、R.B. Cook。 2016. Daymet: 北米の 1 km グリッドの日次地上気象データ、バージョン 3。 ORNL DAAC, Oak Ridge, Tennessee, USA.

詳細については、オークリッジ国立研究所分散型アクティブ アーカイブ センター (ORNL DAAC) のデータの使用および引用ポリシーをご覧ください。

リソース

Daymet データセットを使用する場合、次のリソースとリファレンスが役に立ちます。

かわいい写真


2017 年のハワイでの毎日の最高気温の平均。

Contact

このデータセットに関するご質問がある場合は、aiforearthdatasets@microsoft.com にお問い合わせください。

通知

Microsoft は、Azure オープン データセットを “現状有姿” で提供します。 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.

Select your preferred service:

Azure Notebooks

Azure Notebooks

Package: Language: Python

Accessing zarr-formatted Daymet data on Azure

The Daymet dataset contains daily minimum temperature, maximum temperature, precipitation, shortwave radiation, vapor pressure, snow water equivalent, and day length at 1km resolution for North America. The dataset covers the period from January 1, 1980 to December 31, 2019.

The Daymet dataset is maintained at daac.ornl.gov/cgi-bin/dsviewer.pl?ds_id=1328 and mirrored on Azure Open Datasets at aka.ms/ai4edata-daymet. Azure also provides a cloud-optimized version of the data in Zarr format, which can be read into an xarray Dataset. If you just need a subset of the data, we recommend using xarray and Zarr to avoid downloading the full dataset unnecessarily.

The datasets are available in the daymeteuwest storage account, in the daymet-zarr container. Files are named according to daymet-zarr/{frequency}/{region}.zarr, where frequency is one of {daily, monthly, annual} and region is one of {hi, na, pr} (for Hawaii, CONUS, and Puerto Rico, respectively). For example, daymet-zarr/daily/hi.zarr.

In [1]:
# Standard or standard-ish imports
import warnings
import matplotlib.pyplot as plt

# Less standard, but still pip- or conda-installable
import xarray as xr
import fsspec

# Neither of these are accessed directly, but both need to be installed; they're used
# via fsspec
import adlfs
import zarr

account_name = 'daymeteuwest'
container_name = 'daymet-zarr'

Load data into an xarray Dataset

We can lazily load the data into an xarray.Dataset by creating a zarr store with fsspec and then reading it in with xarray. This only reads the metadata, so it's safe to call on a dataset that's larger than memory.

In [2]:
store = fsspec.get_mapper('az://' + container_name + '/daily/hi.zarr', account_name=account_name)
# consolidated=True speeds of reading the metadata
ds = xr.open_zarr(store, consolidated=True)
ds
Out[2]:

Working with the data

Using xarray, we can quickly select subsets of the data, perform an aggregation, and plot the result. For example, we'll plot the average of the maximum temperature for the year 2009.

In [3]:
warnings.simplefilter("ignore", RuntimeWarning)
fig, ax = plt.subplots(figsize=(12, 12))
ds.sel(time="2009")["tmax"].mean(dim="time").plot.imshow(ax=ax, cmap="inferno");

Or we can visualize the timeseries of the minimum temperature over the past decade.

In [4]:
fig, ax = plt.subplots(figsize=(12, 6))
ds.sel(time=slice("2010", "2019"))['tmin'].mean(dim=["x", "y"]).plot(ax=ax);

Chunking

Each of the datasets is chunked to allow for parallel and out-of-core or distributed processing with Dask. The different frequencies (daily, monthly, annual) are chunked so that each year is in a single chunk. The different regions in the x and y coordinates so that no single chunk is larger than about 250 MB, which is primarily important for the na region.

In [5]:
ds['prcp']
Out[5]:

So our prcp array has a shape (14600, 584, 284) where each chunk is (365, 584, 284). Examining the store for monthly North America, we see the chunk each of a size of (12, 1250, 1250).

In [6]:
na_store = fsspec.get_mapper("az://" + container_name + "/monthly/na.zarr",
                             account_name=account_name)
na = xr.open_zarr(na_store, consolidated=True)
na['prcp']
Out[6]:

See http://xarray.pydata.org/en/stable/dask.html for more on how xarray uses Dask for parallel computing.