Creating Data Structures#
import numpy as np
import pandas as pd
import xarray as xr
xr.set_options(display_expand_data=False)
rng = np.random.default_rng(seed=0) # we'll use this later
In the last lecture, we looked at the following example Dataset. In most cases Xarray Datasets are created by reading a file. We’ll address this in the next lecture. Here we’ll learn how to create Xarray objects from scratch
ds = xr.tutorial.load_dataset("air_temperature")
ds
<xarray.Dataset> Size: 31MB
Dimensions: (lat: 25, time: 2920, lon: 53)
Coordinates:
* lat (lat) float32 100B 75.0 72.5 70.0 67.5 65.0 ... 22.5 20.0 17.5 15.0
* lon (lon) float32 212B 200.0 202.5 205.0 207.5 ... 325.0 327.5 330.0
* time (time) datetime64[ns] 23kB 2013-01-01 ... 2014-12-31T18:00:00
Data variables:
air (time, lat, lon) float64 31MB 241.2 242.5 243.5 ... 296.2 295.7
Attributes:
Conventions: COARDS
title: 4x daily NMC reanalysis (1948)
description: Data is from NMC initialized reanalysis\n(4x/day). These a...
platform: Model
references: http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanaly...- lat: 25
- time: 2920
- lon: 53
- lat(lat)float3275.0 72.5 70.0 ... 20.0 17.5 15.0
- standard_name :
- latitude
- long_name :
- Latitude
- units :
- degrees_north
- axis :
- Y
array([75. , 72.5, 70. , 67.5, 65. , 62.5, 60. , 57.5, 55. , 52.5, 50. , 47.5, 45. , 42.5, 40. , 37.5, 35. , 32.5, 30. , 27.5, 25. , 22.5, 20. , 17.5, 15. ], dtype=float32) - lon(lon)float32200.0 202.5 205.0 ... 327.5 330.0
- standard_name :
- longitude
- long_name :
- Longitude
- units :
- degrees_east
- axis :
- X
array([200. , 202.5, 205. , 207.5, 210. , 212.5, 215. , 217.5, 220. , 222.5, 225. , 227.5, 230. , 232.5, 235. , 237.5, 240. , 242.5, 245. , 247.5, 250. , 252.5, 255. , 257.5, 260. , 262.5, 265. , 267.5, 270. , 272.5, 275. , 277.5, 280. , 282.5, 285. , 287.5, 290. , 292.5, 295. , 297.5, 300. , 302.5, 305. , 307.5, 310. , 312.5, 315. , 317.5, 320. , 322.5, 325. , 327.5, 330. ], dtype=float32) - time(time)datetime64[ns]2013-01-01 ... 2014-12-31T18:00:00
- standard_name :
- time
- long_name :
- Time
array(['2013-01-01T00:00:00.000000000', '2013-01-01T06:00:00.000000000', '2013-01-01T12:00:00.000000000', ..., '2014-12-31T06:00:00.000000000', '2014-12-31T12:00:00.000000000', '2014-12-31T18:00:00.000000000'], shape=(2920,), dtype='datetime64[ns]')
- air(time, lat, lon)float64241.2 242.5 243.5 ... 296.2 295.7
- long_name :
- 4xDaily Air temperature at sigma level 995
- units :
- degK
- precision :
- 2
- GRIB_id :
- 11
- GRIB_name :
- TMP
- var_desc :
- Air temperature
- dataset :
- NMC Reanalysis
- level_desc :
- Surface
- statistic :
- Individual Obs
- parent_stat :
- Other
- actual_range :
- [185.16 322.1 ]
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53))
- latPandasIndex
PandasIndex(Index([75.0, 72.5, 70.0, 67.5, 65.0, 62.5, 60.0, 57.5, 55.0, 52.5, 50.0, 47.5, 45.0, 42.5, 40.0, 37.5, 35.0, 32.5, 30.0, 27.5, 25.0, 22.5, 20.0, 17.5, 15.0], dtype='float32', name='lat')) - lonPandasIndex
PandasIndex(Index([200.0, 202.5, 205.0, 207.5, 210.0, 212.5, 215.0, 217.5, 220.0, 222.5, 225.0, 227.5, 230.0, 232.5, 235.0, 237.5, 240.0, 242.5, 245.0, 247.5, 250.0, 252.5, 255.0, 257.5, 260.0, 262.5, 265.0, 267.5, 270.0, 272.5, 275.0, 277.5, 280.0, 282.5, 285.0, 287.5, 290.0, 292.5, 295.0, 297.5, 300.0, 302.5, 305.0, 307.5, 310.0, 312.5, 315.0, 317.5, 320.0, 322.5, 325.0, 327.5, 330.0], dtype='float32', name='lon')) - timePandasIndex
PandasIndex(DatetimeIndex(['2013-01-01 00:00:00', '2013-01-01 06:00:00', '2013-01-01 12:00:00', '2013-01-01 18:00:00', '2013-01-02 00:00:00', '2013-01-02 06:00:00', '2013-01-02 12:00:00', '2013-01-02 18:00:00', '2013-01-03 00:00:00', '2013-01-03 06:00:00', ... '2014-12-29 12:00:00', '2014-12-29 18:00:00', '2014-12-30 00:00:00', '2014-12-30 06:00:00', '2014-12-30 12:00:00', '2014-12-30 18:00:00', '2014-12-31 00:00:00', '2014-12-31 06:00:00', '2014-12-31 12:00:00', '2014-12-31 18:00:00'], dtype='datetime64[ns]', name='time', length=2920, freq=None))
- Conventions :
- COARDS
- title :
- 4x daily NMC reanalysis (1948)
- description :
- Data is from NMC initialized reanalysis (4x/day). These are the 0.9950 sigma level values.
- platform :
- Model
- references :
- http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanalysis.html
DataArray#
The DataArray class is used to attach a name, dimension names, labels, and
attributes to an array.
Our goal will be to recreate the ds.air DataArray starting with the underlying numpy data
ds.air
<xarray.DataArray 'air' (time: 2920, lat: 25, lon: 53)> Size: 31MB
241.2 242.5 243.5 244.0 244.1 243.9 ... 297.9 297.4 297.2 296.5 296.2 295.7
Coordinates:
* lat (lat) float32 100B 75.0 72.5 70.0 67.5 65.0 ... 22.5 20.0 17.5 15.0
* lon (lon) float32 212B 200.0 202.5 205.0 207.5 ... 325.0 327.5 330.0
* time (time) datetime64[ns] 23kB 2013-01-01 ... 2014-12-31T18:00:00
Attributes:
long_name: 4xDaily Air temperature at sigma level 995
units: degK
precision: 2
GRIB_id: 11
GRIB_name: TMP
var_desc: Air temperature
dataset: NMC Reanalysis
level_desc: Surface
statistic: Individual Obs
parent_stat: Other
actual_range: [185.16 322.1 ]- time: 2920
- lat: 25
- lon: 53
- 241.2 242.5 243.5 244.0 244.1 243.9 ... 297.4 297.2 296.5 296.2 295.7
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53)) - lat(lat)float3275.0 72.5 70.0 ... 20.0 17.5 15.0
- standard_name :
- latitude
- long_name :
- Latitude
- units :
- degrees_north
- axis :
- Y
array([75. , 72.5, 70. , 67.5, 65. , 62.5, 60. , 57.5, 55. , 52.5, 50. , 47.5, 45. , 42.5, 40. , 37.5, 35. , 32.5, 30. , 27.5, 25. , 22.5, 20. , 17.5, 15. ], dtype=float32) - lon(lon)float32200.0 202.5 205.0 ... 327.5 330.0
- standard_name :
- longitude
- long_name :
- Longitude
- units :
- degrees_east
- axis :
- X
array([200. , 202.5, 205. , 207.5, 210. , 212.5, 215. , 217.5, 220. , 222.5, 225. , 227.5, 230. , 232.5, 235. , 237.5, 240. , 242.5, 245. , 247.5, 250. , 252.5, 255. , 257.5, 260. , 262.5, 265. , 267.5, 270. , 272.5, 275. , 277.5, 280. , 282.5, 285. , 287.5, 290. , 292.5, 295. , 297.5, 300. , 302.5, 305. , 307.5, 310. , 312.5, 315. , 317.5, 320. , 322.5, 325. , 327.5, 330. ], dtype=float32) - time(time)datetime64[ns]2013-01-01 ... 2014-12-31T18:00:00
- standard_name :
- time
- long_name :
- Time
array(['2013-01-01T00:00:00.000000000', '2013-01-01T06:00:00.000000000', '2013-01-01T12:00:00.000000000', ..., '2014-12-31T06:00:00.000000000', '2014-12-31T12:00:00.000000000', '2014-12-31T18:00:00.000000000'], shape=(2920,), dtype='datetime64[ns]')
- latPandasIndex
PandasIndex(Index([75.0, 72.5, 70.0, 67.5, 65.0, 62.5, 60.0, 57.5, 55.0, 52.5, 50.0, 47.5, 45.0, 42.5, 40.0, 37.5, 35.0, 32.5, 30.0, 27.5, 25.0, 22.5, 20.0, 17.5, 15.0], dtype='float32', name='lat')) - lonPandasIndex
PandasIndex(Index([200.0, 202.5, 205.0, 207.5, 210.0, 212.5, 215.0, 217.5, 220.0, 222.5, 225.0, 227.5, 230.0, 232.5, 235.0, 237.5, 240.0, 242.5, 245.0, 247.5, 250.0, 252.5, 255.0, 257.5, 260.0, 262.5, 265.0, 267.5, 270.0, 272.5, 275.0, 277.5, 280.0, 282.5, 285.0, 287.5, 290.0, 292.5, 295.0, 297.5, 300.0, 302.5, 305.0, 307.5, 310.0, 312.5, 315.0, 317.5, 320.0, 322.5, 325.0, 327.5, 330.0], dtype='float32', name='lon')) - timePandasIndex
PandasIndex(DatetimeIndex(['2013-01-01 00:00:00', '2013-01-01 06:00:00', '2013-01-01 12:00:00', '2013-01-01 18:00:00', '2013-01-02 00:00:00', '2013-01-02 06:00:00', '2013-01-02 12:00:00', '2013-01-02 18:00:00', '2013-01-03 00:00:00', '2013-01-03 06:00:00', ... '2014-12-29 12:00:00', '2014-12-29 18:00:00', '2014-12-30 00:00:00', '2014-12-30 06:00:00', '2014-12-30 12:00:00', '2014-12-30 18:00:00', '2014-12-31 00:00:00', '2014-12-31 06:00:00', '2014-12-31 12:00:00', '2014-12-31 18:00:00'], dtype='datetime64[ns]', name='time', length=2920, freq=None))
- long_name :
- 4xDaily Air temperature at sigma level 995
- units :
- degK
- precision :
- 2
- GRIB_id :
- 11
- GRIB_name :
- TMP
- var_desc :
- Air temperature
- dataset :
- NMC Reanalysis
- level_desc :
- Surface
- statistic :
- Individual Obs
- parent_stat :
- Other
- actual_range :
- [185.16 322.1 ]
array = ds.air.data
We do this using the DataArray constructor.
xr.DataArray(array)
<xarray.DataArray (dim_0: 2920, dim_1: 25, dim_2: 53)> Size: 31MB 241.2 242.5 243.5 244.0 244.1 243.9 ... 297.9 297.4 297.2 296.5 296.2 295.7 Dimensions without coordinates: dim_0, dim_1, dim_2
- dim_0: 2920
- dim_1: 25
- dim_2: 53
- 241.2 242.5 243.5 244.0 244.1 243.9 ... 297.4 297.2 296.5 296.2 295.7
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53))
This works. Notice that the default dimension names are not so useful: dim_0, dim_1, dim_2
Dimension Names#
We can change this by specifying dimension names in the appropriate order using the dims kwarg
xr.DataArray(array, dims=("time", "lat", "lon"))
<xarray.DataArray (time: 2920, lat: 25, lon: 53)> Size: 31MB 241.2 242.5 243.5 244.0 244.1 243.9 ... 297.9 297.4 297.2 296.5 296.2 295.7 Dimensions without coordinates: time, lat, lon
- time: 2920
- lat: 25
- lon: 53
- 241.2 242.5 243.5 244.0 244.1 243.9 ... 297.4 297.2 296.5 296.2 295.7
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53))
Much better! But notice we have no entries under “Coordinates”.
Coordinates#
While associating names with dimensions (or axes) of an array is quite useful, attaching coordinate labels to DataArrays makes a lot of analysis quite convenient.
First we’ll simply add values for lon using the coords kwarg. For this datasets, longitudes are regularly spaced at 2.5° intervals between 200°E and 330°E.
coords takes a dictionary that maps the name of a dimension to one of
another
DataArrayobjecta tuple of the form
(dims, data, attrs)whereattrsis optional. This is roughly equivalent to creating a newDataArrayobject withDataArray(dims=dims, data=data, attrs=attrs)a
numpyarray (or anything that can be coerced to one usingnumpy.array).
We’ll start with the last one
lon_values = np.arange(200, 331, 2.5)
xr.DataArray(array, dims=("time", "lat", "lon"), coords={"lon": lon_values})
<xarray.DataArray (time: 2920, lat: 25, lon: 53)> Size: 31MB 241.2 242.5 243.5 244.0 244.1 243.9 ... 297.9 297.4 297.2 296.5 296.2 295.7 Coordinates: * lon (lon) float64 424B 200.0 202.5 205.0 207.5 ... 325.0 327.5 330.0 Dimensions without coordinates: time, lat
- time: 2920
- lat: 25
- lon: 53
- 241.2 242.5 243.5 244.0 244.1 243.9 ... 297.4 297.2 296.5 296.2 295.7
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53)) - lon(lon)float64200.0 202.5 205.0 ... 327.5 330.0
array([200. , 202.5, 205. , 207.5, 210. , 212.5, 215. , 217.5, 220. , 222.5, 225. , 227.5, 230. , 232.5, 235. , 237.5, 240. , 242.5, 245. , 247.5, 250. , 252.5, 255. , 257.5, 260. , 262.5, 265. , 267.5, 270. , 272.5, 275. , 277.5, 280. , 282.5, 285. , 287.5, 290. , 292.5, 295. , 297.5, 300. , 302.5, 305. , 307.5, 310. , 312.5, 315. , 317.5, 320. , 322.5, 325. , 327.5, 330. ])
- lonPandasIndex
PandasIndex(Index([200.0, 202.5, 205.0, 207.5, 210.0, 212.5, 215.0, 217.5, 220.0, 222.5, 225.0, 227.5, 230.0, 232.5, 235.0, 237.5, 240.0, 242.5, 245.0, 247.5, 250.0, 252.5, 255.0, 257.5, 260.0, 262.5, 265.0, 267.5, 270.0, 272.5, 275.0, 277.5, 280.0, 282.5, 285.0, 287.5, 290.0, 292.5, 295.0, 297.5, 300.0, 302.5, 305.0, 307.5, 310.0, 312.5, 315.0, 317.5, 320.0, 322.5, 325.0, 327.5, 330.0], dtype='float64', name='lon'))
Assigning a plain numpy array is equivalent to creating a DataArray with those values and the same dimension name
lon_da = xr.DataArray(lon_values, dims="lon")
da = xr.DataArray(array, dims=("time", "lat", "lon"), coords={"lon": lon_da})
da
<xarray.DataArray (time: 2920, lat: 25, lon: 53)> Size: 31MB 241.2 242.5 243.5 244.0 244.1 243.9 ... 297.9 297.4 297.2 296.5 296.2 295.7 Coordinates: * lon (lon) float64 424B 200.0 202.5 205.0 207.5 ... 325.0 327.5 330.0 Dimensions without coordinates: time, lat
- time: 2920
- lat: 25
- lon: 53
- 241.2 242.5 243.5 244.0 244.1 243.9 ... 297.4 297.2 296.5 296.2 295.7
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53)) - lon(lon)float64200.0 202.5 205.0 ... 327.5 330.0
array([200. , 202.5, 205. , 207.5, 210. , 212.5, 215. , 217.5, 220. , 222.5, 225. , 227.5, 230. , 232.5, 235. , 237.5, 240. , 242.5, 245. , 247.5, 250. , 252.5, 255. , 257.5, 260. , 262.5, 265. , 267.5, 270. , 272.5, 275. , 277.5, 280. , 282.5, 285. , 287.5, 290. , 292.5, 295. , 297.5, 300. , 302.5, 305. , 307.5, 310. , 312.5, 315. , 317.5, 320. , 322.5, 325. , 327.5, 330. ])
- lonPandasIndex
PandasIndex(Index([200.0, 202.5, 205.0, 207.5, 210.0, 212.5, 215.0, 217.5, 220.0, 222.5, 225.0, 227.5, 230.0, 232.5, 235.0, 237.5, 240.0, 242.5, 245.0, 247.5, 250.0, 252.5, 255.0, 257.5, 260.0, 262.5, 265.0, 267.5, 270.0, 272.5, 275.0, 277.5, 280.0, 282.5, 285.0, 287.5, 290.0, 292.5, 295.0, 297.5, 300.0, 302.5, 305.0, 307.5, 310.0, 312.5, 315.0, 317.5, 320.0, 322.5, 325.0, 327.5, 330.0], dtype='float64', name='lon'))
We can also assign coordinates after a DataArray has been created.
<xarray.DataArray (time: 2920, lat: 25, lon: 53)> Size: 31MB 241.2 242.5 243.5 244.0 244.1 243.9 ... 297.9 297.4 297.2 296.5 296.2 295.7 Coordinates: * lon (lon) float64 424B 200.0 202.5 205.0 207.5 ... 325.0 327.5 330.0 * lat (lat) float64 200B 75.0 72.5 70.0 67.5 65.0 ... 22.5 20.0 17.5 15.0 Dimensions without coordinates: time
- time: 2920
- lat: 25
- lon: 53
- 241.2 242.5 243.5 244.0 244.1 243.9 ... 297.4 297.2 296.5 296.2 295.7
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53)) - lon(lon)float64200.0 202.5 205.0 ... 327.5 330.0
array([200. , 202.5, 205. , 207.5, 210. , 212.5, 215. , 217.5, 220. , 222.5, 225. , 227.5, 230. , 232.5, 235. , 237.5, 240. , 242.5, 245. , 247.5, 250. , 252.5, 255. , 257.5, 260. , 262.5, 265. , 267.5, 270. , 272.5, 275. , 277.5, 280. , 282.5, 285. , 287.5, 290. , 292.5, 295. , 297.5, 300. , 302.5, 305. , 307.5, 310. , 312.5, 315. , 317.5, 320. , 322.5, 325. , 327.5, 330. ]) - lat(lat)float6475.0 72.5 70.0 ... 20.0 17.5 15.0
array([75. , 72.5, 70. , 67.5, 65. , 62.5, 60. , 57.5, 55. , 52.5, 50. , 47.5, 45. , 42.5, 40. , 37.5, 35. , 32.5, 30. , 27.5, 25. , 22.5, 20. , 17.5, 15. ])
- lonPandasIndex
PandasIndex(Index([200.0, 202.5, 205.0, 207.5, 210.0, 212.5, 215.0, 217.5, 220.0, 222.5, 225.0, 227.5, 230.0, 232.5, 235.0, 237.5, 240.0, 242.5, 245.0, 247.5, 250.0, 252.5, 255.0, 257.5, 260.0, 262.5, 265.0, 267.5, 270.0, 272.5, 275.0, 277.5, 280.0, 282.5, 285.0, 287.5, 290.0, 292.5, 295.0, 297.5, 300.0, 302.5, 305.0, 307.5, 310.0, 312.5, 315.0, 317.5, 320.0, 322.5, 325.0, 327.5, 330.0], dtype='float64', name='lon')) - latPandasIndex
PandasIndex(Index([75.0, 72.5, 70.0, 67.5, 65.0, 62.5, 60.0, 57.5, 55.0, 52.5, 50.0, 47.5, 45.0, 42.5, 40.0, 37.5, 35.0, 32.5, 30.0, 27.5, 25.0, 22.5, 20.0, 17.5, 15.0], dtype='float64', name='lat'))
Attributes#
Arbitrary attributes can be assigned using the .attrs property
da.attrs["attribute"] = "hello"
da
<xarray.DataArray (time: 2920, lat: 25, lon: 53)> Size: 31MB
241.2 242.5 243.5 244.0 244.1 243.9 ... 297.9 297.4 297.2 296.5 296.2 295.7
Coordinates:
* lon (lon) float64 424B 200.0 202.5 205.0 207.5 ... 325.0 327.5 330.0
* lat (lat) float64 200B 75.0 72.5 70.0 67.5 65.0 ... 22.5 20.0 17.5 15.0
Dimensions without coordinates: time
Attributes:
attribute: hello- time: 2920
- lat: 25
- lon: 53
- 241.2 242.5 243.5 244.0 244.1 243.9 ... 297.4 297.2 296.5 296.2 295.7
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53)) - lon(lon)float64200.0 202.5 205.0 ... 327.5 330.0
array([200. , 202.5, 205. , 207.5, 210. , 212.5, 215. , 217.5, 220. , 222.5, 225. , 227.5, 230. , 232.5, 235. , 237.5, 240. , 242.5, 245. , 247.5, 250. , 252.5, 255. , 257.5, 260. , 262.5, 265. , 267.5, 270. , 272.5, 275. , 277.5, 280. , 282.5, 285. , 287.5, 290. , 292.5, 295. , 297.5, 300. , 302.5, 305. , 307.5, 310. , 312.5, 315. , 317.5, 320. , 322.5, 325. , 327.5, 330. ]) - lat(lat)float6475.0 72.5 70.0 ... 20.0 17.5 15.0
array([75. , 72.5, 70. , 67.5, 65. , 62.5, 60. , 57.5, 55. , 52.5, 50. , 47.5, 45. , 42.5, 40. , 37.5, 35. , 32.5, 30. , 27.5, 25. , 22.5, 20. , 17.5, 15. ])
- lonPandasIndex
PandasIndex(Index([200.0, 202.5, 205.0, 207.5, 210.0, 212.5, 215.0, 217.5, 220.0, 222.5, 225.0, 227.5, 230.0, 232.5, 235.0, 237.5, 240.0, 242.5, 245.0, 247.5, 250.0, 252.5, 255.0, 257.5, 260.0, 262.5, 265.0, 267.5, 270.0, 272.5, 275.0, 277.5, 280.0, 282.5, 285.0, 287.5, 290.0, 292.5, 295.0, 297.5, 300.0, 302.5, 305.0, 307.5, 310.0, 312.5, 315.0, 317.5, 320.0, 322.5, 325.0, 327.5, 330.0], dtype='float64', name='lon')) - latPandasIndex
PandasIndex(Index([75.0, 72.5, 70.0, 67.5, 65.0, 62.5, 60.0, 57.5, 55.0, 52.5, 50.0, 47.5, 45.0, 42.5, 40.0, 37.5, 35.0, 32.5, 30.0, 27.5, 25.0, 22.5, 20.0, 17.5, 15.0], dtype='float64', name='lat'))
- attribute :
- hello
or specified in the constructor
da2 = xr.DataArray(
array, dims=("time", "lat", "lon"), coords={"lon": lon_da}, attrs={"attribute": "hello"}
)
da2
<xarray.DataArray (time: 2920, lat: 25, lon: 53)> Size: 31MB
241.2 242.5 243.5 244.0 244.1 243.9 ... 297.9 297.4 297.2 296.5 296.2 295.7
Coordinates:
* lon (lon) float64 424B 200.0 202.5 205.0 207.5 ... 325.0 327.5 330.0
Dimensions without coordinates: time, lat
Attributes:
attribute: hello- time: 2920
- lat: 25
- lon: 53
- 241.2 242.5 243.5 244.0 244.1 243.9 ... 297.4 297.2 296.5 296.2 295.7
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53)) - lon(lon)float64200.0 202.5 205.0 ... 327.5 330.0
array([200. , 202.5, 205. , 207.5, 210. , 212.5, 215. , 217.5, 220. , 222.5, 225. , 227.5, 230. , 232.5, 235. , 237.5, 240. , 242.5, 245. , 247.5, 250. , 252.5, 255. , 257.5, 260. , 262.5, 265. , 267.5, 270. , 272.5, 275. , 277.5, 280. , 282.5, 285. , 287.5, 290. , 292.5, 295. , 297.5, 300. , 302.5, 305. , 307.5, 310. , 312.5, 315. , 317.5, 320. , 322.5, 325. , 327.5, 330. ])
- lonPandasIndex
PandasIndex(Index([200.0, 202.5, 205.0, 207.5, 210.0, 212.5, 215.0, 217.5, 220.0, 222.5, 225.0, 227.5, 230.0, 232.5, 235.0, 237.5, 240.0, 242.5, 245.0, 247.5, 250.0, 252.5, 255.0, 257.5, 260.0, 262.5, 265.0, 267.5, 270.0, 272.5, 275.0, 277.5, 280.0, 282.5, 285.0, 287.5, 290.0, 292.5, 295.0, 297.5, 300.0, 302.5, 305.0, 307.5, 310.0, 312.5, 315.0, 317.5, 320.0, 322.5, 325.0, 327.5, 330.0], dtype='float64', name='lon'))
- attribute :
- hello
Non-dimension coordinates#
Sometimes we want to attach coordinate variables along an existing dimension. Notice that
itimeis not bolded andhas a name “itime” that is different from the dimension name “time”
itime is an example of a non-dimension coordinate variable i.e. it is a coordinate variable that does not match a dimension name. Here we demonstrate the “tuple” form of assigninment: (dims, data, attrs)
<xarray.DataArray (time: 2920, lat: 25, lon: 53)> Size: 31MB
241.2 242.5 243.5 244.0 244.1 243.9 ... 297.9 297.4 297.2 296.5 296.2 295.7
Coordinates:
* lon (lon) float64 424B 200.0 202.5 205.0 207.5 ... 325.0 327.5 330.0
* lat (lat) float64 200B 75.0 72.5 70.0 67.5 65.0 ... 22.5 20.0 17.5 15.0
itime (time) int64 23kB 0 1 2 3 4 5 6 ... 2914 2915 2916 2917 2918 2919
Dimensions without coordinates: time
Attributes:
attribute: hello- time: 2920
- lat: 25
- lon: 53
- 241.2 242.5 243.5 244.0 244.1 243.9 ... 297.4 297.2 296.5 296.2 295.7
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53)) - lon(lon)float64200.0 202.5 205.0 ... 327.5 330.0
array([200. , 202.5, 205. , 207.5, 210. , 212.5, 215. , 217.5, 220. , 222.5, 225. , 227.5, 230. , 232.5, 235. , 237.5, 240. , 242.5, 245. , 247.5, 250. , 252.5, 255. , 257.5, 260. , 262.5, 265. , 267.5, 270. , 272.5, 275. , 277.5, 280. , 282.5, 285. , 287.5, 290. , 292.5, 295. , 297.5, 300. , 302.5, 305. , 307.5, 310. , 312.5, 315. , 317.5, 320. , 322.5, 325. , 327.5, 330. ]) - lat(lat)float6475.0 72.5 70.0 ... 20.0 17.5 15.0
array([75. , 72.5, 70. , 67.5, 65. , 62.5, 60. , 57.5, 55. , 52.5, 50. , 47.5, 45. , 42.5, 40. , 37.5, 35. , 32.5, 30. , 27.5, 25. , 22.5, 20. , 17.5, 15. ]) - itime(time)int640 1 2 3 4 ... 2916 2917 2918 2919
- name :
- value
array([ 0, 1, 2, ..., 2917, 2918, 2919], shape=(2920,))
- lonPandasIndex
PandasIndex(Index([200.0, 202.5, 205.0, 207.5, 210.0, 212.5, 215.0, 217.5, 220.0, 222.5, 225.0, 227.5, 230.0, 232.5, 235.0, 237.5, 240.0, 242.5, 245.0, 247.5, 250.0, 252.5, 255.0, 257.5, 260.0, 262.5, 265.0, 267.5, 270.0, 272.5, 275.0, 277.5, 280.0, 282.5, 285.0, 287.5, 290.0, 292.5, 295.0, 297.5, 300.0, 302.5, 305.0, 307.5, 310.0, 312.5, 315.0, 317.5, 320.0, 322.5, 325.0, 327.5, 330.0], dtype='float64', name='lon')) - latPandasIndex
PandasIndex(Index([75.0, 72.5, 70.0, 67.5, 65.0, 62.5, 60.0, 57.5, 55.0, 52.5, 50.0, 47.5, 45.0, 42.5, 40.0, 37.5, 35.0, 32.5, 30.0, 27.5, 25.0, 22.5, 20.0, 17.5, 15.0], dtype='float64', name='lat'))
- attribute :
- hello
Exercises#
create a DataArray named “height” from random data rng.random((180, 360)) * 400
with dimensions named “latitude” and “longitude”
Show code cell source
Hide code cell source
xr.DataArray(rng.random((180, 360)) * 400, dims=("latitude", "longitude"), name="height")
Show code cell output
Hide code cell output
<xarray.DataArray 'height' (latitude: 180, longitude: 360)> Size: 518kB 254.8 107.9 16.39 6.611 325.3 365.1 ... 77.56 224.5 325.4 130.9 101.7 159.5 Dimensions without coordinates: latitude, longitude
- latitude: 180
- longitude: 360
- 254.8 107.9 16.39 6.611 325.3 365.1 ... 224.5 325.4 130.9 101.7 159.5
array([[254.78467493, 107.91468551, 16.38940957, ..., 360.44323737, 136.69706008, 95.57748468], [328.71680109, 233.99307209, 190.63536868, ..., 376.94421292, 320.89846253, 48.94701864], [ 49.77143929, 246.49670012, 108.4826731 , ..., 107.27040832, 86.18459353, 339.32512596], ..., [191.29475178, 64.01085709, 285.03118114, ..., 90.39013016, 397.52540689, 309.36475129], [145.41534826, 16.18463217, 236.01756475, ..., 388.09452038, 96.19908112, 183.22058129], [393.64705664, 2.99353683, 129.50138154, ..., 130.89893988, 101.70591237, 159.53358201]], shape=(180, 360))
with dimension coordinates:
“latitude”: -90 to 89 with step size 1
“longitude”: -180 to 179 with step size 1
Show code cell source
Hide code cell source
xr.DataArray(
rng.random((180, 360)) * 400,
dims=("latitude", "longitude"),
coords={"latitude": np.arange(-90, 90, 1), "longitude": np.arange(-180, 180, 1)},
)
Show code cell output
Hide code cell output
<xarray.DataArray (latitude: 180, longitude: 360)> Size: 518kB 192.4 101.9 45.38 76.42 56.98 3.814 ... 16.73 47.68 199.2 47.88 303.5 121.3 Coordinates: * latitude (latitude) int64 1kB -90 -89 -88 -87 -86 -85 ... 85 86 87 88 89 * longitude (longitude) int64 3kB -180 -179 -178 -177 ... 176 177 178 179
- latitude: 180
- longitude: 360
- 192.4 101.9 45.38 76.42 56.98 3.814 ... 47.68 199.2 47.88 303.5 121.3
array([[192.38461717, 101.94504527, 45.37535659, ..., 111.38234931, 370.70916505, 1.80825302], [225.29060084, 4.84789243, 94.62683468, ..., 80.62425906, 185.74823084, 355.20629981], [243.85104723, 116.0293123 , 192.74512647, ..., 285.01937688, 114.69707658, 398.55894607], ..., [241.95675689, 289.65062354, 361.20186436, ..., 326.70613238, 102.83858173, 232.58069871], [269.50343289, 60.07507526, 166.78187762, ..., 147.63810345, 2.0815061 , 185.67065187], [368.6121118 , 56.77162384, 132.49547701, ..., 47.87980237, 303.46883671, 121.31770668]], shape=(180, 360)) - latitude(latitude)int64-90 -89 -88 -87 -86 ... 86 87 88 89
array([-90, -89, -88, -87, -86, -85, -84, -83, -82, -81, -80, -79, -78, -77, -76, -75, -74, -73, -72, -71, -70, -69, -68, -67, -66, -65, -64, -63, -62, -61, -60, -59, -58, -57, -56, -55, -54, -53, -52, -51, -50, -49, -48, -47, -46, -45, -44, -43, -42, -41, -40, -39, -38, -37, -36, -35, -34, -33, -32, -31, -30, -29, -28, -27, -26, -25, -24, -23, -22, -21, -20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89]) - longitude(longitude)int64-180 -179 -178 -177 ... 177 178 179
array([-180, -179, -178, ..., 177, 178, 179], shape=(360,))
- latitudePandasIndex
PandasIndex(Index([-90, -89, -88, -87, -86, -85, -84, -83, -82, -81, ... 80, 81, 82, 83, 84, 85, 86, 87, 88, 89], dtype='int64', name='latitude', length=180)) - longitudePandasIndex
PandasIndex(Index([-180, -179, -178, -177, -176, -175, -174, -173, -172, -171, ... 170, 171, 172, 173, 174, 175, 176, 177, 178, 179], dtype='int64', name='longitude', length=360))
with metadata for both data and coordinates:
height: “type”: “ellipsoid”
latitude: “type”: “geodetic”
longitude: “prime_meridian”: “greenwich”
xr.DataArray(
rng.random((180, 360)) * 400,
dims=("latitude", "longitude"),
coords={
"latitude": ("latitude", np.arange(-90, 90, 1), {"type": "geodetic"}),
"longitude": (
"longitude",
np.arange(-180, 180, 1),
{"prime_meridian": "greenwich"},
),
},
attrs={"type": "ellipsoid"},
name="height",
)
<xarray.DataArray 'height' (latitude: 180, longitude: 360)> Size: 518kB
386.1 179.0 228.3 220.4 128.0 69.01 ... 11.52 5.998 313.2 272.4 333.2 24.13
Coordinates:
* latitude (latitude) int64 1kB -90 -89 -88 -87 -86 -85 ... 85 86 87 88 89
* longitude (longitude) int64 3kB -180 -179 -178 -177 ... 176 177 178 179
Attributes:
type: ellipsoid- latitude: 180
- longitude: 360
- 386.1 179.0 228.3 220.4 128.0 69.01 ... 5.998 313.2 272.4 333.2 24.13
array([[386.07529837, 179.02970377, 228.25957506, ..., 379.99256392, 281.57477967, 310.84352388], [353.4034526 , 192.65838344, 93.49341533, ..., 225.87821852, 391.18615172, 65.58503322], [204.2967594 , 121.54915116, 374.26835767, ..., 394.50376586, 390.41370402, 180.95328545], ..., [133.31364126, 308.42485343, 114.27836112, ..., 370.56212016, 398.95614822, 49.78601545], [187.25374319, 259.83962302, 169.4764494 , ..., 314.26182972, 119.98483324, 332.83021087], [181.1893609 , 8.17463794, 13.33950606, ..., 272.39776632, 333.18204102, 24.12761496]], shape=(180, 360)) - latitude(latitude)int64-90 -89 -88 -87 -86 ... 86 87 88 89
- type :
- geodetic
array([-90, -89, -88, -87, -86, -85, -84, -83, -82, -81, -80, -79, -78, -77, -76, -75, -74, -73, -72, -71, -70, -69, -68, -67, -66, -65, -64, -63, -62, -61, -60, -59, -58, -57, -56, -55, -54, -53, -52, -51, -50, -49, -48, -47, -46, -45, -44, -43, -42, -41, -40, -39, -38, -37, -36, -35, -34, -33, -32, -31, -30, -29, -28, -27, -26, -25, -24, -23, -22, -21, -20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89]) - longitude(longitude)int64-180 -179 -178 -177 ... 177 178 179
- prime_meridian :
- greenwich
array([-180, -179, -178, ..., 177, 178, 179], shape=(360,))
- latitudePandasIndex
PandasIndex(Index([-90, -89, -88, -87, -86, -85, -84, -83, -82, -81, ... 80, 81, 82, 83, 84, 85, 86, 87, 88, 89], dtype='int64', name='latitude', length=180)) - longitudePandasIndex
PandasIndex(Index([-180, -179, -178, -177, -176, -175, -174, -173, -172, -171, ... 170, 171, 172, 173, 174, 175, 176, 177, 178, 179], dtype='int64', name='longitude', length=360))
- type :
- ellipsoid
Dataset#
Dataset objects collect multiple data variables, each with possibly different
dimensions.
The constructor of Dataset takes three parameters:
data_vars: dict-like mapping names to values. Values are eitherDataArrayobjects or defined with tuples consisting of of dimension names and arrays.coords: same as forDataArrayattrs: same as forDataset
Creating an empty Dataset is easy!
<xarray.Dataset> Size: 0B
Dimensions: ()
Data variables:
*empty*Data Variables#
Let’s create a Dataset with two data variables: da and da2
ds = xr.Dataset({"air": da, "air2": da2})
ds
<xarray.Dataset> Size: 62MB
Dimensions: (lon: 53, lat: 25, time: 2920)
Coordinates:
* lon (lon) float64 424B 200.0 202.5 205.0 207.5 ... 325.0 327.5 330.0
* lat (lat) float64 200B 75.0 72.5 70.0 67.5 65.0 ... 22.5 20.0 17.5 15.0
itime (time) int64 23kB 0 1 2 3 4 5 6 ... 2914 2915 2916 2917 2918 2919
Dimensions without coordinates: time
Data variables:
air (time, lat, lon) float64 31MB 241.2 242.5 243.5 ... 296.2 295.7
air2 (time, lat, lon) float64 31MB 241.2 242.5 243.5 ... 296.2 295.7- lon: 53
- lat: 25
- time: 2920
- lon(lon)float64200.0 202.5 205.0 ... 327.5 330.0
array([200. , 202.5, 205. , 207.5, 210. , 212.5, 215. , 217.5, 220. , 222.5, 225. , 227.5, 230. , 232.5, 235. , 237.5, 240. , 242.5, 245. , 247.5, 250. , 252.5, 255. , 257.5, 260. , 262.5, 265. , 267.5, 270. , 272.5, 275. , 277.5, 280. , 282.5, 285. , 287.5, 290. , 292.5, 295. , 297.5, 300. , 302.5, 305. , 307.5, 310. , 312.5, 315. , 317.5, 320. , 322.5, 325. , 327.5, 330. ]) - lat(lat)float6475.0 72.5 70.0 ... 20.0 17.5 15.0
array([75. , 72.5, 70. , 67.5, 65. , 62.5, 60. , 57.5, 55. , 52.5, 50. , 47.5, 45. , 42.5, 40. , 37.5, 35. , 32.5, 30. , 27.5, 25. , 22.5, 20. , 17.5, 15. ]) - itime(time)int640 1 2 3 4 ... 2916 2917 2918 2919
- name :
- value
array([ 0, 1, 2, ..., 2917, 2918, 2919], shape=(2920,))
- air(time, lat, lon)float64241.2 242.5 243.5 ... 296.2 295.7
- attribute :
- hello
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53)) - air2(time, lat, lon)float64241.2 242.5 243.5 ... 296.2 295.7
- attribute :
- hello
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53))
- lonPandasIndex
PandasIndex(Index([200.0, 202.5, 205.0, 207.5, 210.0, 212.5, 215.0, 217.5, 220.0, 222.5, 225.0, 227.5, 230.0, 232.5, 235.0, 237.5, 240.0, 242.5, 245.0, 247.5, 250.0, 252.5, 255.0, 257.5, 260.0, 262.5, 265.0, 267.5, 270.0, 272.5, 275.0, 277.5, 280.0, 282.5, 285.0, 287.5, 290.0, 292.5, 295.0, 297.5, 300.0, 302.5, 305.0, 307.5, 310.0, 312.5, 315.0, 317.5, 320.0, 322.5, 325.0, 327.5, 330.0], dtype='float64', name='lon')) - latPandasIndex
PandasIndex(Index([75.0, 72.5, 70.0, 67.5, 65.0, 62.5, 60.0, 57.5, 55.0, 52.5, 50.0, 47.5, 45.0, 42.5, 40.0, 37.5, 35.0, 32.5, 30.0, 27.5, 25.0, 22.5, 20.0, 17.5, 15.0], dtype='float64', name='lat'))
You can directly assign a new data variables
<xarray.Dataset> Size: 93MB
Dimensions: (lon: 53, lat: 25, time: 2920)
Coordinates:
* lon (lon) float64 424B 200.0 202.5 205.0 207.5 ... 325.0 327.5 330.0
* lat (lat) float64 200B 75.0 72.5 70.0 67.5 65.0 ... 22.5 20.0 17.5 15.0
itime (time) int64 23kB 0 1 2 3 4 5 6 ... 2914 2915 2916 2917 2918 2919
Dimensions without coordinates: time
Data variables:
air (time, lat, lon) float64 31MB 241.2 242.5 243.5 ... 296.2 295.7
air2 (time, lat, lon) float64 31MB 241.2 242.5 243.5 ... 296.2 295.7
air3 (time, lat, lon) float64 31MB 241.2 242.5 243.5 ... 296.2 295.7- lon: 53
- lat: 25
- time: 2920
- lon(lon)float64200.0 202.5 205.0 ... 327.5 330.0
array([200. , 202.5, 205. , 207.5, 210. , 212.5, 215. , 217.5, 220. , 222.5, 225. , 227.5, 230. , 232.5, 235. , 237.5, 240. , 242.5, 245. , 247.5, 250. , 252.5, 255. , 257.5, 260. , 262.5, 265. , 267.5, 270. , 272.5, 275. , 277.5, 280. , 282.5, 285. , 287.5, 290. , 292.5, 295. , 297.5, 300. , 302.5, 305. , 307.5, 310. , 312.5, 315. , 317.5, 320. , 322.5, 325. , 327.5, 330. ]) - lat(lat)float6475.0 72.5 70.0 ... 20.0 17.5 15.0
array([75. , 72.5, 70. , 67.5, 65. , 62.5, 60. , 57.5, 55. , 52.5, 50. , 47.5, 45. , 42.5, 40. , 37.5, 35. , 32.5, 30. , 27.5, 25. , 22.5, 20. , 17.5, 15. ]) - itime(time)int640 1 2 3 4 ... 2916 2917 2918 2919
- name :
- value
array([ 0, 1, 2, ..., 2917, 2918, 2919], shape=(2920,))
- air(time, lat, lon)float64241.2 242.5 243.5 ... 296.2 295.7
- attribute :
- hello
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53)) - air2(time, lat, lon)float64241.2 242.5 243.5 ... 296.2 295.7
- attribute :
- hello
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53)) - air3(time, lat, lon)float64241.2 242.5 243.5 ... 296.2 295.7
- attribute :
- hello
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53))
- lonPandasIndex
PandasIndex(Index([200.0, 202.5, 205.0, 207.5, 210.0, 212.5, 215.0, 217.5, 220.0, 222.5, 225.0, 227.5, 230.0, 232.5, 235.0, 237.5, 240.0, 242.5, 245.0, 247.5, 250.0, 252.5, 255.0, 257.5, 260.0, 262.5, 265.0, 267.5, 270.0, 272.5, 275.0, 277.5, 280.0, 282.5, 285.0, 287.5, 290.0, 292.5, 295.0, 297.5, 300.0, 302.5, 305.0, 307.5, 310.0, 312.5, 315.0, 317.5, 320.0, 322.5, 325.0, 327.5, 330.0], dtype='float64', name='lon')) - latPandasIndex
PandasIndex(Index([75.0, 72.5, 70.0, 67.5, 65.0, 62.5, 60.0, 57.5, 55.0, 52.5, 50.0, 47.5, 45.0, 42.5, 40.0, 37.5, 35.0, 32.5, 30.0, 27.5, 25.0, 22.5, 20.0, 17.5, 15.0], dtype='float64', name='lat'))
Coordinates#
Coordinate variables can be assigned using the coords kwarg to xr.Dataset. Here we use date_range from pandas to create a time vector
xr.Dataset(
{"air": da, "air2": da2},
coords={"time": pd.date_range("2013-01-01", "2014-12-31 18:00", freq="6H")},
)
/tmp/ipykernel_2899/2620785341.py:3: FutureWarning: 'H' is deprecated and will be removed in a future version, please use 'h' instead.
coords={"time": pd.date_range("2013-01-01", "2014-12-31 18:00", freq="6H")},
<xarray.Dataset> Size: 62MB
Dimensions: (lon: 53, lat: 25, time: 2920)
Coordinates:
* lon (lon) float64 424B 200.0 202.5 205.0 207.5 ... 325.0 327.5 330.0
* lat (lat) float64 200B 75.0 72.5 70.0 67.5 65.0 ... 22.5 20.0 17.5 15.0
itime (time) int64 23kB 0 1 2 3 4 5 6 ... 2914 2915 2916 2917 2918 2919
* time (time) datetime64[ns] 23kB 2013-01-01 ... 2014-12-31T18:00:00
Data variables:
air (time, lat, lon) float64 31MB 241.2 242.5 243.5 ... 296.2 295.7
air2 (time, lat, lon) float64 31MB 241.2 242.5 243.5 ... 296.2 295.7- lon: 53
- lat: 25
- time: 2920
- lon(lon)float64200.0 202.5 205.0 ... 327.5 330.0
array([200. , 202.5, 205. , 207.5, 210. , 212.5, 215. , 217.5, 220. , 222.5, 225. , 227.5, 230. , 232.5, 235. , 237.5, 240. , 242.5, 245. , 247.5, 250. , 252.5, 255. , 257.5, 260. , 262.5, 265. , 267.5, 270. , 272.5, 275. , 277.5, 280. , 282.5, 285. , 287.5, 290. , 292.5, 295. , 297.5, 300. , 302.5, 305. , 307.5, 310. , 312.5, 315. , 317.5, 320. , 322.5, 325. , 327.5, 330. ]) - lat(lat)float6475.0 72.5 70.0 ... 20.0 17.5 15.0
array([75. , 72.5, 70. , 67.5, 65. , 62.5, 60. , 57.5, 55. , 52.5, 50. , 47.5, 45. , 42.5, 40. , 37.5, 35. , 32.5, 30. , 27.5, 25. , 22.5, 20. , 17.5, 15. ]) - itime(time)int640 1 2 3 4 ... 2916 2917 2918 2919
- name :
- value
array([ 0, 1, 2, ..., 2917, 2918, 2919], shape=(2920,))
- time(time)datetime64[ns]2013-01-01 ... 2014-12-31T18:00:00
array(['2013-01-01T00:00:00.000000000', '2013-01-01T06:00:00.000000000', '2013-01-01T12:00:00.000000000', ..., '2014-12-31T06:00:00.000000000', '2014-12-31T12:00:00.000000000', '2014-12-31T18:00:00.000000000'], shape=(2920,), dtype='datetime64[ns]')
- air(time, lat, lon)float64241.2 242.5 243.5 ... 296.2 295.7
- attribute :
- hello
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53)) - air2(time, lat, lon)float64241.2 242.5 243.5 ... 296.2 295.7
- attribute :
- hello
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53))
- lonPandasIndex
PandasIndex(Index([200.0, 202.5, 205.0, 207.5, 210.0, 212.5, 215.0, 217.5, 220.0, 222.5, 225.0, 227.5, 230.0, 232.5, 235.0, 237.5, 240.0, 242.5, 245.0, 247.5, 250.0, 252.5, 255.0, 257.5, 260.0, 262.5, 265.0, 267.5, 270.0, 272.5, 275.0, 277.5, 280.0, 282.5, 285.0, 287.5, 290.0, 292.5, 295.0, 297.5, 300.0, 302.5, 305.0, 307.5, 310.0, 312.5, 315.0, 317.5, 320.0, 322.5, 325.0, 327.5, 330.0], dtype='float64', name='lon')) - latPandasIndex
PandasIndex(Index([75.0, 72.5, 70.0, 67.5, 65.0, 62.5, 60.0, 57.5, 55.0, 52.5, 50.0, 47.5, 45.0, 42.5, 40.0, 37.5, 35.0, 32.5, 30.0, 27.5, 25.0, 22.5, 20.0, 17.5, 15.0], dtype='float64', name='lat')) - timePandasIndex
PandasIndex(DatetimeIndex(['2013-01-01 00:00:00', '2013-01-01 06:00:00', '2013-01-01 12:00:00', '2013-01-01 18:00:00', '2013-01-02 00:00:00', '2013-01-02 06:00:00', '2013-01-02 12:00:00', '2013-01-02 18:00:00', '2013-01-03 00:00:00', '2013-01-03 06:00:00', ... '2014-12-29 12:00:00', '2014-12-29 18:00:00', '2014-12-30 00:00:00', '2014-12-30 06:00:00', '2014-12-30 12:00:00', '2014-12-30 18:00:00', '2014-12-31 00:00:00', '2014-12-31 06:00:00', '2014-12-31 12:00:00', '2014-12-31 18:00:00'], dtype='datetime64[ns]', name='time', length=2920, freq='6h'))
Again we can assign coordinate variables after a Dataset has been created.
<xarray.Dataset> Size: 93MB
Dimensions: (lon: 53, lat: 25, time: 2920)
Coordinates:
* lon (lon) float64 424B 200.0 202.5 205.0 207.5 ... 325.0 327.5 330.0
* lat (lat) float64 200B 75.0 72.5 70.0 67.5 65.0 ... 22.5 20.0 17.5 15.0
itime (time) int64 23kB 0 1 2 3 4 5 6 ... 2914 2915 2916 2917 2918 2919
Dimensions without coordinates: time
Data variables:
air (time, lat, lon) float64 31MB 241.2 242.5 243.5 ... 296.2 295.7
air2 (time, lat, lon) float64 31MB 241.2 242.5 243.5 ... 296.2 295.7
air3 (time, lat, lon) float64 31MB 241.2 242.5 243.5 ... 296.2 295.7- lon: 53
- lat: 25
- time: 2920
- lon(lon)float64200.0 202.5 205.0 ... 327.5 330.0
array([200. , 202.5, 205. , 207.5, 210. , 212.5, 215. , 217.5, 220. , 222.5, 225. , 227.5, 230. , 232.5, 235. , 237.5, 240. , 242.5, 245. , 247.5, 250. , 252.5, 255. , 257.5, 260. , 262.5, 265. , 267.5, 270. , 272.5, 275. , 277.5, 280. , 282.5, 285. , 287.5, 290. , 292.5, 295. , 297.5, 300. , 302.5, 305. , 307.5, 310. , 312.5, 315. , 317.5, 320. , 322.5, 325. , 327.5, 330. ]) - lat(lat)float6475.0 72.5 70.0 ... 20.0 17.5 15.0
array([75. , 72.5, 70. , 67.5, 65. , 62.5, 60. , 57.5, 55. , 52.5, 50. , 47.5, 45. , 42.5, 40. , 37.5, 35. , 32.5, 30. , 27.5, 25. , 22.5, 20. , 17.5, 15. ]) - itime(time)int640 1 2 3 4 ... 2916 2917 2918 2919
- name :
- value
array([ 0, 1, 2, ..., 2917, 2918, 2919], shape=(2920,))
- air(time, lat, lon)float64241.2 242.5 243.5 ... 296.2 295.7
- attribute :
- hello
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53)) - air2(time, lat, lon)float64241.2 242.5 243.5 ... 296.2 295.7
- attribute :
- hello
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53)) - air3(time, lat, lon)float64241.2 242.5 243.5 ... 296.2 295.7
- attribute :
- hello
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53))
- lonPandasIndex
PandasIndex(Index([200.0, 202.5, 205.0, 207.5, 210.0, 212.5, 215.0, 217.5, 220.0, 222.5, 225.0, 227.5, 230.0, 232.5, 235.0, 237.5, 240.0, 242.5, 245.0, 247.5, 250.0, 252.5, 255.0, 257.5, 260.0, 262.5, 265.0, 267.5, 270.0, 272.5, 275.0, 277.5, 280.0, 282.5, 285.0, 287.5, 290.0, 292.5, 295.0, 297.5, 300.0, 302.5, 305.0, 307.5, 310.0, 312.5, 315.0, 317.5, 320.0, 322.5, 325.0, 327.5, 330.0], dtype='float64', name='lon')) - latPandasIndex
PandasIndex(Index([75.0, 72.5, 70.0, 67.5, 65.0, 62.5, 60.0, 57.5, 55.0, 52.5, 50.0, 47.5, 45.0, 42.5, 40.0, 37.5, 35.0, 32.5, 30.0, 27.5, 25.0, 22.5, 20.0, 17.5, 15.0], dtype='float64', name='lat'))
ds.coords["time"] = pd.date_range("2013-01-01", "2014-12-31 18:00", freq="6H")
ds
/tmp/ipykernel_2899/664840668.py:1: FutureWarning: 'H' is deprecated and will be removed in a future version, please use 'h' instead.
ds.coords["time"] = pd.date_range("2013-01-01", "2014-12-31 18:00", freq="6H")
<xarray.Dataset> Size: 93MB
Dimensions: (lon: 53, lat: 25, time: 2920)
Coordinates:
* lon (lon) float64 424B 200.0 202.5 205.0 207.5 ... 325.0 327.5 330.0
* lat (lat) float64 200B 75.0 72.5 70.0 67.5 65.0 ... 22.5 20.0 17.5 15.0
itime (time) int64 23kB 0 1 2 3 4 5 6 ... 2914 2915 2916 2917 2918 2919
* time (time) datetime64[ns] 23kB 2013-01-01 ... 2014-12-31T18:00:00
Data variables:
air (time, lat, lon) float64 31MB 241.2 242.5 243.5 ... 296.2 295.7
air2 (time, lat, lon) float64 31MB 241.2 242.5 243.5 ... 296.2 295.7
air3 (time, lat, lon) float64 31MB 241.2 242.5 243.5 ... 296.2 295.7- lon: 53
- lat: 25
- time: 2920
- lon(lon)float64200.0 202.5 205.0 ... 327.5 330.0
array([200. , 202.5, 205. , 207.5, 210. , 212.5, 215. , 217.5, 220. , 222.5, 225. , 227.5, 230. , 232.5, 235. , 237.5, 240. , 242.5, 245. , 247.5, 250. , 252.5, 255. , 257.5, 260. , 262.5, 265. , 267.5, 270. , 272.5, 275. , 277.5, 280. , 282.5, 285. , 287.5, 290. , 292.5, 295. , 297.5, 300. , 302.5, 305. , 307.5, 310. , 312.5, 315. , 317.5, 320. , 322.5, 325. , 327.5, 330. ]) - lat(lat)float6475.0 72.5 70.0 ... 20.0 17.5 15.0
array([75. , 72.5, 70. , 67.5, 65. , 62.5, 60. , 57.5, 55. , 52.5, 50. , 47.5, 45. , 42.5, 40. , 37.5, 35. , 32.5, 30. , 27.5, 25. , 22.5, 20. , 17.5, 15. ]) - itime(time)int640 1 2 3 4 ... 2916 2917 2918 2919
- name :
- value
array([ 0, 1, 2, ..., 2917, 2918, 2919], shape=(2920,))
- time(time)datetime64[ns]2013-01-01 ... 2014-12-31T18:00:00
array(['2013-01-01T00:00:00.000000000', '2013-01-01T06:00:00.000000000', '2013-01-01T12:00:00.000000000', ..., '2014-12-31T06:00:00.000000000', '2014-12-31T12:00:00.000000000', '2014-12-31T18:00:00.000000000'], shape=(2920,), dtype='datetime64[ns]')
- air(time, lat, lon)float64241.2 242.5 243.5 ... 296.2 295.7
- attribute :
- hello
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53)) - air2(time, lat, lon)float64241.2 242.5 243.5 ... 296.2 295.7
- attribute :
- hello
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53)) - air3(time, lat, lon)float64241.2 242.5 243.5 ... 296.2 295.7
- attribute :
- hello
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53))
- lonPandasIndex
PandasIndex(Index([200.0, 202.5, 205.0, 207.5, 210.0, 212.5, 215.0, 217.5, 220.0, 222.5, 225.0, 227.5, 230.0, 232.5, 235.0, 237.5, 240.0, 242.5, 245.0, 247.5, 250.0, 252.5, 255.0, 257.5, 260.0, 262.5, 265.0, 267.5, 270.0, 272.5, 275.0, 277.5, 280.0, 282.5, 285.0, 287.5, 290.0, 292.5, 295.0, 297.5, 300.0, 302.5, 305.0, 307.5, 310.0, 312.5, 315.0, 317.5, 320.0, 322.5, 325.0, 327.5, 330.0], dtype='float64', name='lon')) - latPandasIndex
PandasIndex(Index([75.0, 72.5, 70.0, 67.5, 65.0, 62.5, 60.0, 57.5, 55.0, 52.5, 50.0, 47.5, 45.0, 42.5, 40.0, 37.5, 35.0, 32.5, 30.0, 27.5, 25.0, 22.5, 20.0, 17.5, 15.0], dtype='float64', name='lat')) - timePandasIndex
PandasIndex(DatetimeIndex(['2013-01-01 00:00:00', '2013-01-01 06:00:00', '2013-01-01 12:00:00', '2013-01-01 18:00:00', '2013-01-02 00:00:00', '2013-01-02 06:00:00', '2013-01-02 12:00:00', '2013-01-02 18:00:00', '2013-01-03 00:00:00', '2013-01-03 06:00:00', ... '2014-12-29 12:00:00', '2014-12-29 18:00:00', '2014-12-30 00:00:00', '2014-12-30 06:00:00', '2014-12-30 12:00:00', '2014-12-30 18:00:00', '2014-12-31 00:00:00', '2014-12-31 06:00:00', '2014-12-31 12:00:00', '2014-12-31 18:00:00'], dtype='datetime64[ns]', name='time', length=2920, freq='6h'))
Attributes#
xr.Dataset(
{"air": da, "air2": da2},
coords={"time": pd.date_range("2013-01-01", "2014-12-31 18:00", freq="6H")},
attrs={"key0": "value0"},
)
/tmp/ipykernel_2899/3710195814.py:3: FutureWarning: 'H' is deprecated and will be removed in a future version, please use 'h' instead.
coords={"time": pd.date_range("2013-01-01", "2014-12-31 18:00", freq="6H")},
<xarray.Dataset> Size: 62MB
Dimensions: (lon: 53, lat: 25, time: 2920)
Coordinates:
* lon (lon) float64 424B 200.0 202.5 205.0 207.5 ... 325.0 327.5 330.0
* lat (lat) float64 200B 75.0 72.5 70.0 67.5 65.0 ... 22.5 20.0 17.5 15.0
itime (time) int64 23kB 0 1 2 3 4 5 6 ... 2914 2915 2916 2917 2918 2919
* time (time) datetime64[ns] 23kB 2013-01-01 ... 2014-12-31T18:00:00
Data variables:
air (time, lat, lon) float64 31MB 241.2 242.5 243.5 ... 296.2 295.7
air2 (time, lat, lon) float64 31MB 241.2 242.5 243.5 ... 296.2 295.7
Attributes:
key0: value0- lon: 53
- lat: 25
- time: 2920
- lon(lon)float64200.0 202.5 205.0 ... 327.5 330.0
array([200. , 202.5, 205. , 207.5, 210. , 212.5, 215. , 217.5, 220. , 222.5, 225. , 227.5, 230. , 232.5, 235. , 237.5, 240. , 242.5, 245. , 247.5, 250. , 252.5, 255. , 257.5, 260. , 262.5, 265. , 267.5, 270. , 272.5, 275. , 277.5, 280. , 282.5, 285. , 287.5, 290. , 292.5, 295. , 297.5, 300. , 302.5, 305. , 307.5, 310. , 312.5, 315. , 317.5, 320. , 322.5, 325. , 327.5, 330. ]) - lat(lat)float6475.0 72.5 70.0 ... 20.0 17.5 15.0
array([75. , 72.5, 70. , 67.5, 65. , 62.5, 60. , 57.5, 55. , 52.5, 50. , 47.5, 45. , 42.5, 40. , 37.5, 35. , 32.5, 30. , 27.5, 25. , 22.5, 20. , 17.5, 15. ]) - itime(time)int640 1 2 3 4 ... 2916 2917 2918 2919
- name :
- value
array([ 0, 1, 2, ..., 2917, 2918, 2919], shape=(2920,))
- time(time)datetime64[ns]2013-01-01 ... 2014-12-31T18:00:00
array(['2013-01-01T00:00:00.000000000', '2013-01-01T06:00:00.000000000', '2013-01-01T12:00:00.000000000', ..., '2014-12-31T06:00:00.000000000', '2014-12-31T12:00:00.000000000', '2014-12-31T18:00:00.000000000'], shape=(2920,), dtype='datetime64[ns]')
- air(time, lat, lon)float64241.2 242.5 243.5 ... 296.2 295.7
- attribute :
- hello
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53)) - air2(time, lat, lon)float64241.2 242.5 243.5 ... 296.2 295.7
- attribute :
- hello
array([[[241.2 , 242.5 , 243.5 , ..., 232.8 , 235.5 , 238.6 ], [243.8 , 244.5 , 244.7 , ..., 232.8 , 235.3 , 239.3 ], [250. , 249.8 , 248.89, ..., 233.2 , 236.39, 241.7 ], ..., [296.6 , 296.2 , 296.4 , ..., 295.4 , 295.1 , 294.7 ], [295.9 , 296.2 , 296.79, ..., 295.9 , 295.9 , 295.2 ], [296.29, 296.79, 297.1 , ..., 296.9 , 296.79, 296.6 ]], [[242.1 , 242.7 , 243.1 , ..., 232. , 233.6 , 235.8 ], [243.6 , 244.1 , 244.2 , ..., 231. , 232.5 , 235.7 ], [253.2 , 252.89, 252.1 , ..., 230.8 , 233.39, 238.5 ], ..., [296.4 , 295.9 , 296.2 , ..., 295.4 , 295.1 , 294.79], [296.2 , 296.7 , 296.79, ..., 295.6 , 295.5 , 295.1 ], [296.29, 297.2 , 297.4 , ..., 296.4 , 296.4 , 296.6 ]], [[242.3 , 242.2 , 242.3 , ..., 234.3 , 236.1 , 238.7 ], [244.6 , 244.39, 244. , ..., 230.3 , 232. , 235.7 ], [256.2 , 255.5 , 254.2 , ..., 231.2 , 233.2 , 238.2 ], ..., ... [294.79, 295.29, 297.49, ..., 295.49, 295.39, 294.69], [296.79, 297.89, 298.29, ..., 295.49, 295.49, 294.79], [298.19, 299.19, 298.79, ..., 296.09, 295.79, 295.79]], [[245.79, 244.79, 243.49, ..., 243.29, 243.99, 244.79], [249.89, 249.29, 248.49, ..., 241.29, 242.49, 244.29], [262.39, 261.79, 261.29, ..., 240.49, 243.09, 246.89], ..., [293.69, 293.89, 295.39, ..., 295.09, 294.69, 294.29], [296.29, 297.19, 297.59, ..., 295.29, 295.09, 294.39], [297.79, 298.39, 298.49, ..., 295.69, 295.49, 295.19]], [[245.09, 244.29, 243.29, ..., 241.69, 241.49, 241.79], [249.89, 249.29, 248.39, ..., 239.59, 240.29, 241.69], [262.99, 262.19, 261.39, ..., 239.89, 242.59, 246.29], ..., [293.79, 293.69, 295.09, ..., 295.29, 295.09, 294.69], [296.09, 296.89, 297.19, ..., 295.69, 295.69, 295.19], [297.69, 298.09, 298.09, ..., 296.49, 296.19, 295.69]]], shape=(2920, 25, 53))
- lonPandasIndex
PandasIndex(Index([200.0, 202.5, 205.0, 207.5, 210.0, 212.5, 215.0, 217.5, 220.0, 222.5, 225.0, 227.5, 230.0, 232.5, 235.0, 237.5, 240.0, 242.5, 245.0, 247.5, 250.0, 252.5, 255.0, 257.5, 260.0, 262.5, 265.0, 267.5, 270.0, 272.5, 275.0, 277.5, 280.0, 282.5, 285.0, 287.5, 290.0, 292.5, 295.0, 297.5, 300.0, 302.5, 305.0, 307.5, 310.0, 312.5, 315.0, 317.5, 320.0, 322.5, 325.0, 327.5, 330.0], dtype='float64', name='lon')) - latPandasIndex
PandasIndex(Index([75.0, 72.5, 70.0, 67.5, 65.0, 62.5, 60.0, 57.5, 55.0, 52.5, 50.0, 47.5, 45.0, 42.5, 40.0, 37.5, 35.0, 32.5, 30.0, 27.5, 25.0, 22.5, 20.0, 17.5, 15.0], dtype='float64', name='lat')) - timePandasIndex
PandasIndex(DatetimeIndex(['2013-01-01 00:00:00', '2013-01-01 06:00:00', '2013-01-01 12:00:00', '2013-01-01 18:00:00', '2013-01-02 00:00:00', '2013-01-02 06:00:00', '2013-01-02 12:00:00', '2013-01-02 18:00:00', '2013-01-03 00:00:00', '2013-01-03 06:00:00', ... '2014-12-29 12:00:00', '2014-12-29 18:00:00', '2014-12-30 00:00:00', '2014-12-30 06:00:00', '2014-12-30 12:00:00', '2014-12-30 18:00:00', '2014-12-31 00:00:00', '2014-12-31 06:00:00', '2014-12-31 12:00:00', '2014-12-31 18:00:00'], dtype='datetime64[ns]', name='time', length=2920, freq='6h'))
- key0 :
- value0
ds.attrs["key"] = "value"
Exercises#
create a Dataset with two variables along
latitudeandlongitude:heightandgravity_anomaly
height = rng.random((180, 360)) * 400
gravity_anomaly = rng.random((180, 360)) * 400 - 200
Show code cell source
Hide code cell source
xr.Dataset(
{
"height": (("latitude", "longitude"), height),
"gravity_anomaly": (("latitude", "longitude"), gravity_anomaly),
}
)
Show code cell output
Hide code cell output
<xarray.Dataset> Size: 1MB
Dimensions: (latitude: 180, longitude: 360)
Dimensions without coordinates: latitude, longitude
Data variables:
height (latitude, longitude) float64 518kB 13.55 87.99 ... 241.7
gravity_anomaly (latitude, longitude) float64 518kB 176.5 24.42 ... -153.0- latitude: 180
- longitude: 360
- height(latitude, longitude)float6413.55 87.99 159.5 ... 74.78 241.7
array([[ 13.54691872, 87.99273786, 159.54868488, ..., 316.35388169, 385.05054367, 79.52141227], [237.64840474, 134.66282006, 283.89118403, ..., 325.11509026, 98.6911408 , 326.69426325], [ 57.35480316, 381.10134378, 39.60799136, ..., 301.58808138, 50.56225709, 340.2747501 ], ..., [ 7.4337028 , 240.51177602, 191.18102461, ..., 5.96008593, 270.89763259, 268.92599807], [183.88007125, 268.54517733, 17.19731571, ..., 86.68732062, 256.25922254, 67.89244805], [333.9030059 , 298.54710121, 229.92920942, ..., 53.94815534, 74.78297579, 241.6784466 ]], shape=(180, 360)) - gravity_anomaly(latitude, longitude)float64176.5 24.42 ... -39.73 -153.0
array([[ 176.46655942, 24.42247378, -164.59062911, ..., -127.10433047, 135.65092712, 155.35726592], [-189.54627636, -183.30638727, -139.59606836, ..., -90.39018625, 1.40290718, 82.57029248], [ 81.18340837, 72.16177674, -9.47791941, ..., 142.3548846 , 95.07897002, -172.48761442], ..., [ -48.74237389, -193.48995089, -165.70201857, ..., 152.56238616, -21.85206935, 144.13609422], [ -77.32744202, -111.60989287, 161.84825017, ..., 158.40898055, 64.03978768, -133.18816444], [-138.90826174, -59.16624227, -76.52533648, ..., -110.57116465, -39.72632836, -153.01701111]], shape=(180, 360))
add coordinates to
latitudeandlongitude:
latitude: from -90 to 90 with step size 1longitude: from -180 to 180 with step size 1
xr.Dataset(
{
"height": (("latitude", "longitude"), height),
"gravity_anomaly": (("latitude", "longitude"), gravity_anomaly),
},
coords={
"latitude": ("latitude", np.arange(-90, 90, 1)),
"longitude": ("longitude", np.arange(-180, 180, 1)),
},
)
<xarray.Dataset> Size: 1MB
Dimensions: (latitude: 180, longitude: 360)
Coordinates:
* latitude (latitude) int64 1kB -90 -89 -88 -87 -86 ... 85 86 87 88 89
* longitude (longitude) int64 3kB -180 -179 -178 -177 ... 177 178 179
Data variables:
height (latitude, longitude) float64 518kB 13.55 87.99 ... 241.7
gravity_anomaly (latitude, longitude) float64 518kB 176.5 24.42 ... -153.0- latitude: 180
- longitude: 360
- latitude(latitude)int64-90 -89 -88 -87 -86 ... 86 87 88 89
array([-90, -89, -88, -87, -86, -85, -84, -83, -82, -81, -80, -79, -78, -77, -76, -75, -74, -73, -72, -71, -70, -69, -68, -67, -66, -65, -64, -63, -62, -61, -60, -59, -58, -57, -56, -55, -54, -53, -52, -51, -50, -49, -48, -47, -46, -45, -44, -43, -42, -41, -40, -39, -38, -37, -36, -35, -34, -33, -32, -31, -30, -29, -28, -27, -26, -25, -24, -23, -22, -21, -20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89]) - longitude(longitude)int64-180 -179 -178 -177 ... 177 178 179
array([-180, -179, -178, ..., 177, 178, 179], shape=(360,))
- height(latitude, longitude)float6413.55 87.99 159.5 ... 74.78 241.7
array([[ 13.54691872, 87.99273786, 159.54868488, ..., 316.35388169, 385.05054367, 79.52141227], [237.64840474, 134.66282006, 283.89118403, ..., 325.11509026, 98.6911408 , 326.69426325], [ 57.35480316, 381.10134378, 39.60799136, ..., 301.58808138, 50.56225709, 340.2747501 ], ..., [ 7.4337028 , 240.51177602, 191.18102461, ..., 5.96008593, 270.89763259, 268.92599807], [183.88007125, 268.54517733, 17.19731571, ..., 86.68732062, 256.25922254, 67.89244805], [333.9030059 , 298.54710121, 229.92920942, ..., 53.94815534, 74.78297579, 241.6784466 ]], shape=(180, 360)) - gravity_anomaly(latitude, longitude)float64176.5 24.42 ... -39.73 -153.0
array([[ 176.46655942, 24.42247378, -164.59062911, ..., -127.10433047, 135.65092712, 155.35726592], [-189.54627636, -183.30638727, -139.59606836, ..., -90.39018625, 1.40290718, 82.57029248], [ 81.18340837, 72.16177674, -9.47791941, ..., 142.3548846 , 95.07897002, -172.48761442], ..., [ -48.74237389, -193.48995089, -165.70201857, ..., 152.56238616, -21.85206935, 144.13609422], [ -77.32744202, -111.60989287, 161.84825017, ..., 158.40898055, 64.03978768, -133.18816444], [-138.90826174, -59.16624227, -76.52533648, ..., -110.57116465, -39.72632836, -153.01701111]], shape=(180, 360))
- latitudePandasIndex
PandasIndex(Index([-90, -89, -88, -87, -86, -85, -84, -83, -82, -81, ... 80, 81, 82, 83, 84, 85, 86, 87, 88, 89], dtype='int64', name='latitude', length=180)) - longitudePandasIndex
PandasIndex(Index([-180, -179, -178, -177, -176, -175, -174, -173, -172, -171, ... 170, 171, 172, 173, 174, 175, 176, 177, 178, 179], dtype='int64', name='longitude', length=360))
add metadata to coordinates and variables:
latitude: “type”: “geodetic”longitude: “prime_meridian”: “greenwich”height: “ellipsoid”: “wgs84”gravity_anomaly: “ellipsoid”: “grs80”
Show code cell source
Hide code cell source
xr.Dataset(
{
"height": (("latitude", "longitude"), height, {"ellipsoid": "wgs84"}),
"gravity_anomaly": (("latitude", "longitude"), gravity_anomaly, {"ellipsoid": "grs80"}),
},
coords={
"latitude": ("latitude", np.arange(-90, 90, 1), {"type": "geodetic"}),
"longitude": (
"longitude",
np.arange(-180, 180, 1),
{"prime_meridian": "greenwich"},
),
},
)
Show code cell output
Hide code cell output
<xarray.Dataset> Size: 1MB
Dimensions: (latitude: 180, longitude: 360)
Coordinates:
* latitude (latitude) int64 1kB -90 -89 -88 -87 -86 ... 85 86 87 88 89
* longitude (longitude) int64 3kB -180 -179 -178 -177 ... 177 178 179
Data variables:
height (latitude, longitude) float64 518kB 13.55 87.99 ... 241.7
gravity_anomaly (latitude, longitude) float64 518kB 176.5 24.42 ... -153.0- latitude: 180
- longitude: 360
- latitude(latitude)int64-90 -89 -88 -87 -86 ... 86 87 88 89
- type :
- geodetic
array([-90, -89, -88, -87, -86, -85, -84, -83, -82, -81, -80, -79, -78, -77, -76, -75, -74, -73, -72, -71, -70, -69, -68, -67, -66, -65, -64, -63, -62, -61, -60, -59, -58, -57, -56, -55, -54, -53, -52, -51, -50, -49, -48, -47, -46, -45, -44, -43, -42, -41, -40, -39, -38, -37, -36, -35, -34, -33, -32, -31, -30, -29, -28, -27, -26, -25, -24, -23, -22, -21, -20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89]) - longitude(longitude)int64-180 -179 -178 -177 ... 177 178 179
- prime_meridian :
- greenwich
array([-180, -179, -178, ..., 177, 178, 179], shape=(360,))
- height(latitude, longitude)float6413.55 87.99 159.5 ... 74.78 241.7
- ellipsoid :
- wgs84
array([[ 13.54691872, 87.99273786, 159.54868488, ..., 316.35388169, 385.05054367, 79.52141227], [237.64840474, 134.66282006, 283.89118403, ..., 325.11509026, 98.6911408 , 326.69426325], [ 57.35480316, 381.10134378, 39.60799136, ..., 301.58808138, 50.56225709, 340.2747501 ], ..., [ 7.4337028 , 240.51177602, 191.18102461, ..., 5.96008593, 270.89763259, 268.92599807], [183.88007125, 268.54517733, 17.19731571, ..., 86.68732062, 256.25922254, 67.89244805], [333.9030059 , 298.54710121, 229.92920942, ..., 53.94815534, 74.78297579, 241.6784466 ]], shape=(180, 360)) - gravity_anomaly(latitude, longitude)float64176.5 24.42 ... -39.73 -153.0
- ellipsoid :
- grs80
array([[ 176.46655942, 24.42247378, -164.59062911, ..., -127.10433047, 135.65092712, 155.35726592], [-189.54627636, -183.30638727, -139.59606836, ..., -90.39018625, 1.40290718, 82.57029248], [ 81.18340837, 72.16177674, -9.47791941, ..., 142.3548846 , 95.07897002, -172.48761442], ..., [ -48.74237389, -193.48995089, -165.70201857, ..., 152.56238616, -21.85206935, 144.13609422], [ -77.32744202, -111.60989287, 161.84825017, ..., 158.40898055, 64.03978768, -133.18816444], [-138.90826174, -59.16624227, -76.52533648, ..., -110.57116465, -39.72632836, -153.01701111]], shape=(180, 360))
- latitudePandasIndex
PandasIndex(Index([-90, -89, -88, -87, -86, -85, -84, -83, -82, -81, ... 80, 81, 82, 83, 84, 85, 86, 87, 88, 89], dtype='int64', name='latitude', length=180)) - longitudePandasIndex
PandasIndex(Index([-180, -179, -178, -177, -176, -175, -174, -173, -172, -171, ... 170, 171, 172, 173, 174, 175, 176, 177, 178, 179], dtype='int64', name='longitude', length=360))