Overview#

emsarray is an extension of xarray that understands many geometry conventions used to represent data. emsarray presents a unified interface to extract data at a point, clip a dataset to a region, or plot data to a figure. It does this through the Convention interface.

Most emsarray functionality is available through the dataset.ems attribute on any xarray dataset. More utilities are provided in the emsarray.operations modules.

Opening datasets#

The simplest way to open a dataset is using emsarray.open_dataset():

import emsarray
dataset = emsarray.open_dataset(...)

A number of example datasets can be opened using emsarray.tutorial.open_dataset():

import emsarray
dataset = emsarray.tutorial.open_dataset('gbr4')

As long as emsarray has been imported, every xarray dataset will have the dataset.ems attribute. This includes datasets opened using xarray.open_mfdataset(). See Registering the accessor for further information.

Extracting data from a point#

To get data at a single point use dataset.ems.select_point:

from shapely.geometry import Point

capricorn_group = Point(151.869, -23.386)
point_data = dataset.ems.select_point(capricorn_group)

Plotting data#

Plots of a variable can be easily generated using dataset.ems.plot. Pass the variable to plot to this method. If the variable has time, depth, or other ‘extra’ dimensions use DataArray.sel() or DataArray.isel() to select just one index:

# temp has both time and depth (k) dimensions.
# Select just one index from these
surface_temp = dataset['temp'].isel(time=0, k=-1)
dataset.ems.plot(surface_temp)
Plot of sea surface temperature from the GBR4 example file

Exporting geometry#

emsarray.operations.geometry can export dataset geometry to a number of formats. This is useful if you want to examine the geometry QGIS or ArcGIS, or use the geometry in another process.

from emsarray.operations import geometry

geometry.write_shapefile(dataset, 'geometry.shp')