Xarray#
What do you need to do if you want to work with Xarray and Numpy?
# your code here
Data Structures: Data Array#
Create an Xarray DataArray
containing 100 equally spaced numbers between 0 adn \(2\pi\). The name
of the data array should be "x"
and the dimension along which these numbers are enumerated should also be called "x"
.
# your code here
Calculate the cosine of this array and assign it to a new variable. The result will be a new Xarray data array. Make sure the name
of the new array is "cosx"
.
# your code here
Create an Xarray DataArray
containing 100 equally spaced numbers between 0 adn \(2\pi\). The name
of the data array should be "y"
and the dimension along which these numbers are enumerated should also be called "y"
.
# your code here
Now, create an array called "siny"
out of the data array "y"
.
# your code here
Multiply cosx
with siny
and inspect the different parts of the resulting data array. Do we have everything we need to fully understand the data?
# your code here
We’re missing coordinates. Let’s add the data array x
as coordinate "x"
to the cosine and the data array y
as coordinate "y"
to the sine. Then calculate the product of the cosine and the sine again.
# your code here
Now, visualize the resulting data array.
# your code here
Data Structures: Dataset#
Now, create an Xarray Dataset
containing three data variables: cosx
, siny
, and the product of the two. What happened to the coordinates of the underlying data arrays?
# your code here
Finally, create the Dataset
above from code alone: Define all data variables as data arrays and also explicitly add coordinates.
# your code here
Slicing / Selection#
From the above dataset select the part representing every second y value (based on the indes) and x values with \(x\in[0.5, 4.5]\).
# your code here
Now calculate the standard deviation in the x-direction and the mean in the y-direction of this subset dataset and of the complete one. Discuss the following observations:
What data structure results from calculating the means and standard deviations?
Do the values what reflect what you expected?
# your code here
Input-Output#
Now, write the dataset from above into a netCDF file. (Hint, you can use the .to_netcdf()
method for this.) Let’s call the file "cos_sin_xy.nc"
.
# your code here
Inspect the netCDF file with the Unix command-line tool ncdump
. You can create a cell with the following command in it:
!ncdump -h cos_sin_xy.nc
This will start a Unix sub shell and run the command ncdump -h <filename>
where the -h
flag indicates you only want to see the header of the file.
Interpret the output.
# your code here
Finally, read the file again into an Xarray dataset using the xr.open_dataset()
function.
# your code here