standOff. When we have changed our mind. Some entries in the table begin with a word in capitals and the reason for it. EVIDENCE CORRECTED — the finding still stands, but we had quoted the wrong sentence from the paper, and the quotation has been replaced with the right one. RETRACTED — the entry itself was wrong; it stays on the page, marked, with the reason, rather than being deleted. WITHDRAWN AND REPLACED — the entry was wrong, and a corrected version of it appears in the entries below. Each mark carries its own reason, in brackets, because the reasons differ from one entry to the next. An entry we have WITHDRAWN is removed from this page and kept in the record, with its reason. A line reading Audit and a date is a later re-reading of the entry against its whole sentence: DOUBTFUL means it was kept, and the reason says what is loose about it. Quotation marks inside the tagger's sentence. Where a tag is the tagger's own sentence, a phrase in quotation marks inside it is borrowed from the paper — the tagger's wording around it is not. The paper's own sentence is the evidence quote shown on the same row, so the borrowing can be checked against the thing borrowed from without leaving this page. Nothing inside quotation marks anywhere on this page is ours: if it is quoted, it is the paper's. Whose words a concept carries. A concept entry records a term the paper itself uses, so the term, the sense given for it, and its evidence are the paper's own words, quoted where the paper fixes them. This is the opposite of a sense entry in the tag table, which is the tagger's sentence about how the paper uses a term. Where a concept entry could not be grounded in the paper's words, the entry says so on its own row.| relation to other work | claim_relations | how this paper stands to another: agrees, contradicts, extends, qualifies |
| claim type | claim_type | the shape of the claim: existence, mechanism, method, critique, prediction, null |
| concept edge | concept_edges | an asserted relation between two concepts, with the sentence asserting it |
| concept | concepts | an idea the paper works with, quoted where the paper uses it |
| content tag | content_tags | a finding, definition, quantity, statistic or variable named in the paper |
| contribution | contribution | what the paper claims to add |
| control | controls | an experiment run to eliminate a rival explanation |
| limitation | limitations | what the paper says its evidence cannot support |
| mechanism | mechanisms | how the reported effect is said to come about |
| method | method | how the paper produced its evidence |
| object of study | object_of_study | what the paper is about — the thing it investigates |
| phenomenon | phenomenon | the effect or regularity under study |
| research question | research_question | the question the paper sets itself |
| sense | senses | a distinct use of a term, quoted where the paper fixes it |
| unrecordable relation | unhoused_relations | a relation the paper asserts that this vocabulary cannot express, with the reason |
The reference list is not part of the text we hold for this paper. Our copy was extracted from the publisher's page and the bibliography did not survive that extraction, so the article below ends before its references. Nothing has been removed by us.
xarray: N-D labeled Arrays and Datasets in Python
Abstract
object_of_studycontributionclaim_typeconcepts↗concepts↗concepts↗concepts↗sensesconcept_edgescontent_tagscontent_tags↗xarray is an open source project and Python package that provides a toolkit and data structures for N-dimensional labeled arrays. Our approach combines an application programing interface (API) inspired by pandas with the Common Data Model for self-described scientific data. Key features of the xarray package include label-based indexing and arithmetic, interoperability with the core scientific Python packages (e.g., pandas, NumPy, Matplotlib), out-of-core computation on datasets that don’t fit into memory, a wide range of serialization and input/output (I/O) options, and advanced multi-dimensional data manipulation tools such as group-by and resampling. xarray, as a data model and analytics toolkit, has been widely adopted in the geoscience community but is also used more broadly for multi-dimensional data analysis in physics, machine learning and finance.
Python
pandas
netCDF
multidimensional
data
data handling
data analysis
Metrics
(1) Overview
Introduction
Python has emerged as a leading programing language for both the physical sciences and data sciences. At the core of modern scientific computing and analysis in Python are the NumPy [14] and SciPy [22] packages, which provide a robust N-dimensional array object and the fundamental operations required for science and engineering applications. Much of the success of Python in data science and business analytics is due to pandas [16], which introduced intuitive and fast tabular data analysis tools to Python, inspired by R’s data.frame [19]. The pandas DataFrame and Series objects provide unparalleled analysis tools for data alignment, resampling, grouping, pivoting, and aggregation in Python.
limitationsconcepts↗concepts↗claim_relationsconcept_edgescontent_tagsxarray implements data structures and an analytics toolkit for multi-dimensional labeled arrays strongly inspired by pandas. While pandas includes a data structure called the Panel for three dimensional data, its fixed rank design make it unsuitable for applications that require arbitrary rank arrays. Additionally, many of the features that make the pandas DataFrame and Series objects so useful, are not fully available on the Panel. Our approach with xarray adopts Unidata’s self-describing Common Data Model on which the network Common Data Form (netCDF) is built [20, 7]. NetCDF provides a well-defined data model for labeled N-dimensional array-oriented scientific data analysis.
concepts↗unhoused_relationsunhoused_relationsclaim_relationsxarray builds on top of, and seamlessly interoperates with, the core scientific Python packages, such as NumPy, SciPy, Matplotlib [13], and pandas. xarray provides a range of backends for serialization and input/output (IO), including the Pickle, netCDF, OPeNDAP (read-only), GRIB1/2 (read-only), and HDF file formats. Leveraging the dask parallel computing library [21], xarray can optionally perform efficient parallel, out-of-core analysis on datasets that are too large to fit into memory. Finally, xarray interfaces with existing domain-specific packages such as UV-CDAT [25], Iris [17], and Cartopy [18].
Purpose: Your data has labels; you should use them
phenomenonconcepts↗sensescontent_tags↗content_tags↗Scientific data is inherently labeled. For example, time series data includes timestamps that label individual periods or points in time, spatial data has coordinates (e.g. longitude, latitude, elevation), and model or laboratory experiments are often identified by unique identifiers. Figure 1 provides an example of a labeled dataset. In this case the data is a map of global air temperature from a numeric weather model. The labels on this particular dataset are time (e.g. “2016-05-01”), longitude (x-axis), and latitude (y-axis).
An example of a multidimensional labeled array. This figure (map) is showing the global surface air temperature for May 1, 2016 from ERA-Interim Reanalyis [11]. The map is labeled with the array's coordinates: longitude and latitude.
research_questionlimitationsconcepts↗concepts↗Unlabeled, N-dimensional arrays of numbers (e.g., NumPy’s ndarray) are the most widely used data structure in scientific computing. However, they lack a meaningful representation of the metadata associated with their data. Implementing such functionality is left to individual users and domain-specific packages. As a result, programmers frequently encounter pitfalls in the form of questions like “is the time axis of my array in the first or third index position?” or “does my array of timestamps still align with my data after resampling?”.
mechanisms↗concepts↗unhoused_relationscontent_tagsThe core motivation for developing xarray was to provide labeled data tools for N-dimensional arrays that render such questions moot. Every operation in xarray both relies on and maintains the consistency of labels.
NetCDF
concepts↗concepts↗concept_edgescontent_tags↗The network Common Data Form is a collection of self-describing, machine-independent binary data formats and software tools. These data formats and tools facilitate the creation, access, and sharing of scientific data stored in N-dimensional arrays, along with metadata describing the contents of each array [20]. NetCDF has become very popular in the geoscience community, and there are existing libraries for reading and writing netCDF in many programming languages, including C, Fortran, Python, Java, Matlab, and Julia.
concepts↗concepts↗concept_edgescontent_tags↗The principal data structure in the netCDF data model is the dataset. Each netCDF dataset contains dimensions, variables, and attributes, each of which are identified by a hierarchy of unique names. The dataset and variable objects may contain attributes that describe the contents, units, history, or other metadata of the object. Standardized conventions, such as the Climate and Forecast (CF) Conventions [12], allow for the associations of coordinate variables with dimensions.
Implementation and architecture
method↗sensesclaim_relationscontent_tagscontent_tagsNetCDF forms the basis of the xarray data model and provides a natural and portable serialization format. Building on netCDF, xarray features two main data structures: the DataArray and the Dataset. The API for these data structures is summarized in the following sections and in Figure 2.
An overview of xarray’s main data structures. Types are annotated using Python 3 style type hints [23]. “Mapping of” denotes an ordered mapping with values of the given type.
DataArray
concepts↗concepts↗unhoused_relationssensescontent_tagscontent_tags↗The DataArray is xarray’s implementation of a labeled, multi-dimensional array. It has several key properties:
data: N-dimensional array (NumPy or dask) holding the array's values,
coords: dict-like container of arrays (coordinates) that label each point (e.g., 1-dimensional arrays of numbers, datetime objects or strings),
dims: dimension names for each axis [e.g., (‘time’, ‘latitude’, ‘longitude’)],
attrs: OrderedDict holding arbitrary metadata (e.g. units or descriptions), and
name: an arbitrary name for the array.
mechanisms↗limitationsconcepts↗concepts↗concepts↗concepts↗concepts↗unhoused_relationssensesconcept_edgescontent_tags↗content_tags↗content_tags↗content_tags↗xarray uses dims and coords to enable its core metadata-aware operations. Dimensions provide names that xarray uses instead of the axis argument found in many NumPy functions. Coordinates are ancillary variables used to enable fast label based indexing and alignment, building on the functionality of the pandas Index. DataArray objects also can have a name and can hold arbitrary metadata in the form of their attrs property, which can be used to further describe data (e.g. by providing units). Names and attributes are strictly for users and user-written code; in general xarray makes no attempt to interpret them, and propagates them only in unambiguous cases. In contrast, xarray does interpret and persist coordinates in operations that transform xarray objects.
Dataset
concepts↗concepts↗concepts↗sensesconcept_edgesconcept_edgescontent_tagscontent_tags↗The Dataset is xarray’s multi-dimensional equivalent of a DataFrame. It is a dict-like container of labeled arrays (DataArrays) with aligned dimensions. It is designed as an in-memory representation of a netCDF dataset. In addition to the dict-like interface of the dataset itself, which can be used to access any DataArray in a Dataset, datasets have four key properties:
data_vars: OrderedDict of DataArray objects corresponding to data variables,
coords: OrderedDict of DataArray objects intended to label points used in data_vars (e.g., 1-dimensional arrays of numbers, datetime objects or strings),
dims: dictionary mapping from dimension names to the fixed length of each dimension (e.g., {‘x’: 6, ‘y’: 6, ‘time’: 8}), and
attrs: OrderedDict to hold arbitrary metadata pertaining to the dataset.
limitationsconcepts↗concept_edgescontent_tagscontent_tags↗DataArray objects inside a Dataset may have any number of dimensions but are presumed to share a common coordinate system. Coordinates can also have any number of dimensions but denote constant/independent quantities, unlike the varying/dependent quantities that belong in data. Figure 3 illustrates these concepts for an example Dataset containing meteorological data.
content_tags↗content_tags↗content_tags↗An example of how a dataset (netCDF or xarray) for a weather forecast might be structured. This dataset has three dimensions, time, y, and x, each of which is also a one-dimensional coordinate. Temperature and precipitation are three-dimensional data variables. Also included in the dataset are two-dimensional coordinates latitude and longitude, having dimensions y and x, and reference time, a zero-dimensional (scalar) coordinate.
Core xarray Features
xarray includes a powerful and growing feature set. The following list highlights some of the key features available in xarray. The xarray documentation [2] includes a complete description of available features and their usage.
mechanisms↗concepts↗concepts↗concept_edgescontent_tagsLabel-based indexing: Similarly to pandas objects, xarray objects support both integer- and label-based lookups along each dimension. However, xarray objects also have named dimensions, so you can optionally use dimension names instead of relying on the positional ordering of dimensions.
mechanisms↗concepts↗concepts↗unhoused_relationscontent_tagsArithmetic: arithmetic between xarray objects vectorizes based on dimension names, automatically looping (broadcasting) over each distinct dimension. This eliminates the need to insert dummy dimensions of size one to facilitate broadcasting, a common pattern with NumPy.
Aggregation: calculation of statistics (e.g. sum) along a dimension of an xarray object can be done by dimension name instead of an integer axis number.
mechanisms↗concepts↗concepts↗sensescontent_tags↗Alignment: xarray supports database-like join operations for combining xarray objects along common coordinates.
concepts↗content_tags↗Split-apply-combine: xarray includes N-dimensional grouped operations implementing the split-apply-combine strategy [24].
Resampling and rolling window operations: Utilizing the efficient resampling methods from pandas and rolling window operations from Bottleneck [15], xarray offers a robust set of resampling and rolling window operations along a single dimension.
concepts↗concepts↗concept_edgesPlotting: xarray plotting functionality is a thin wrapper around the popular Matplotlib library. xarray uses the syntax and function names from Matplotlib whenever possible, resulting in a seamless transition between the two.
concepts↗Missing Data: xarray smoothly handles missing data in all operations, including arithmetic, alignment and aggregation.
Interactivity with pandas: xarray objects seamlessly to convert to and from pandas objects to interact with the rest of the PyData ecosystem.
mechanisms↗limitationsconcepts↗concepts↗unhoused_relationsSerialization and I/O: xarray supports direct serialization and I/O to several file formats including pickle, netCDF, OPeNDAP (read-only), GRIB1/2 (read-only), and HDF by integrating with third-party libraries. Additional serialization formats for 1-dimensional data are available through pandas.
mechanisms↗concepts↗concepts↗concepts↗unhoused_relationssensescontent_tagscontent_tags↗content_tagsOut-of-core computation: xarray’s data structures can be backed by dask [21] instead of NumPy to support parallel and streaming computation on data that does not fit into memory, up to 100s of GB or TBs in size. Such large datasets (“big data”) are increasingly prevalent in science.
Quality control
mechanisms↗controlscontrolscontrolsconcepts↗concepts↗concepts↗concepts↗unhoused_relationssensescontent_tagscontent_tagsxarray is provided with a large test suite comprised of over 1,500 unit tests. These tests cover the core xarray functionality as well as features facilitated by optional dependencies. The unit tests are executed automatically on the TravisCI (Linux) [5] and Appveyor (Windows) [1] continuous integration systems. A selection of sample data is also distributed with the source code, allowing users to reproduce any examples in the xarray documentation.
(2) Availability
Operating system
Linux, Windows and Mac OS X.
Programming language
Python, versions 2.7, 3.4 and later.
Additional system requirements
None.
Dependencies
limitationsconcepts↗unhoused_relationsxarray is implemented in pure Python and relies on compiled dependencies for speed.
NumPy: 1.7 or later
pandas: 0.15.0 or later
netcdf4-python: (optional) used for reading and writing netCDF files
SciPy: (optional) used as a fallback for reading/writing netCDF3
Pydap: (optional) used as a fallback for accessing OPeNDAP
h5netcdf: (optional) an alternative library for reading and writing netCDF4 files that does not use the netCDF-C libraries
PyNIO: (optional) for reading GRIB1/2 and other geoscience specific file formats
Bottleneck: (optional) speeds up NaN-skipping and rolling window aggregations by a large factor
cyordereddict: (optional) speeds up most internal operations with xarray data structures
Dask: (optional) required for out-of-core parallel computation
Matplotlib: (optional) required for plotting
Cartopy: (optional) required for plotting maps
seaborn: (optional) additional plotting functionality
List of contributors
Alex Kleeman, The Climate Corporation
Alistair Miles, Wellcome Trust Centre for Human Genetics, University of Oxford
Andreas Hilboll, Institute of Environmental Physics, University of Bremen
Anna Kuznetsova, The Climate Corporation
Antony Lee, Department of Physics, University of California, Berkeley
Bas Hoonhout, Deltares, The Netherlands
Benjamin Root, Atmospheric and Environmental Research, Inc.
Benoit Bovy, Department of Astrophysics, Geophysics and Oceanography, University of Lige
Chun-Wei Yuan, Institute for Health Metrics and Evaluation, University of Washington
Christoph Deil, Max Planck Institute for Nuclear Physics
Clark Fitzgerald, Department of Statistics, University of California, Davis
Dean Pospisil, Institute for Learning and Brain Sciences, University of Washington
Edward Richards, Scripps Institution of Oceanography, University of California, San Diego
Erik Welch, Continuum Analytics
Eugene Brevdo, Google Research
Fabien Maussion, Institute of Atmospheric and Cryospheric Sciences, University of Innsbruck
Filipe Fernandes, Universidade de So Paulo
Guido Imperiale, Legal & General
Hauser Mathias, Institute for Atmospheric and Climate Science, ETH Zurich
Igor Babuschkin, School of Physics and Astronomy, University of Manchester
Jeffrey Gerard, The Climate Corporation
Jeremy McGibbon, Department of Atmospheric Sciences, University of Washington
Jonathan Chambers, UCL Energy Institute, London UK
Julia Signell, Department of Civil and Environmental Engineering, Princeton University
Joseph Hamman, National Center for Atmospheric Research
Johnnie Gray, University College London
Jonathan Helmus, Environmental Science Division, Argonne National Laboratory
Kelsey Jordahl, Planet Labs
Maciek Swat, University of Pennsylvania
Marco Zhlke, Brockmann Consult GmbH
Markel Garca-Dez, Catalan Institute of Climate Sciences
Markus Gonser
Maximilian Roos, Sixty Capital
Mike Graham, Edgestream Partners
Nikolay Koldunov, Climate Service Center Germany
Peter Cable, Raytheon
Phillip J. Wolfram, Fluid and Solid Mechanics (T-3), Theoretical Division, Los Alamos National Laboratory
Rafael Guedes, MetOcean Solutions Ltd
Robin Wilson, Geography & Environment, University of Southampton, UK
Ryan Abernathey, Department of Earth and Environmental Sciences, Columbia University
Scott Sinclair, Satellite Applications and Hydrology Group, Dept. Civil Engineering, University of KwaZulu-Natal
Sébastien Celles, Thermal Science and Energy Department, Poitiers Institute of Technology (IUT)
Spencer A. Hill, Program in Atmospheric and Oceanic Sciences, Princeton University
Stefan Pfenninger, Department of Environmental Systems Science, ETH Zrich
Stephan Hoyer, Google Research
Steven E. Pav, Gilgamath Consulting
Takeshi Kanmae, National Institute of Polar Research, Japan
Thomas Kluyver, Computational Modeling Group, University of Southampton
Todd Small, The Climate Corporation
Valliappa Lakshmanan, Google
Yves Delley, Department of Physics, ETH Zurich
Software location
Archive
Name: Zenodo
Persistent identifier: https://doi.org/10.5281/zenodo.264282
License: Apache, v2.0
Publisher: Zenodo
Version published: 0.9.1
Date published: January 30, 2017
Code repository
Name: GitHub
Identifier: http://github.com/pydata/xarray
License: Apache, v2.0
Date published: January 30, 2017
Language
English.
(3) Reuse potential
mechanisms↗limitationsconcepts↗concepts↗concepts↗concepts↗unhoused_relationssensesclaim_relationscontent_tagsxarray was written in a modular, objected-oriented way, to build upon and extend the core scientific Python libraries in a domain-agnostic fashion. The xarray documentation is complete with a wide range of examples and a number of tutorials that use real-world datasets that are available in the xarray repository. We have intentionally avoided including domain-specific functionality in the library, leaving that to third party libraries. It has been widely adopted in the geoscience community [e.g. 6, 10, 9], but has also been used in physics [e.g. 3], time series analytics [8], and finance. The core xarray data structures (the DataArray and the Dataset) are extensible through subclassing or the preferred approach of composition. We also provide an extensible high-level accessor interface to allow users to implement domain specific methods on xarray data objects.
limitationsconcepts↗xarray is developed and supported by a team of volunteers. The primary avenue for user support is StackOverflow [4], with the “xarray-python” tag. Additionally, we use GitHub for a bug tracker (https://github.com/pydata/xarray/issues) and maintain the “xarray” mailing list on Google Groups (https://groups.google.com/forum/#!forum/xarray).
Acknowledgements
Initial development of xarray was supported by The Climate Corporation. We thank Matthew Rocklin and Jim Crist for their assistance integrating xarray with Dask, and Todd Small, Francisco Alvarez and Fabien Maussion for their feedback on early drafts of this manuscript.
Competing Interests
The authors have no competing interests to declare.
Relations on this page carry a quotation for the claim. Where a relation was separately evidenced — and so tested against the vocabulary for its type — the row says so; 10 of 10 relations here carry that mark. The rest are the tagger’s reading of the sentence quoted beside them.
| facet | tag | field | conf. | whose words |
|---|---|---|---|---|
| object_of_study | xarray's data model, architecture, capabilities, quality controls, availability, and reuse potential | object_of_study | the paper's words | |
| research_question | how to make labeled N-dimensional scientific arrays support metadata-aware analysis, interoperability, serialization, and out-of-core computation | research_question | the paper's words | |
| contribution | the xarray Python package, combining a pandas-inspired API with the self-describing Common Data Model for arbitrary-rank labeled arrays | contribution | the paper's words | |
| claim_type | method | claim_type | the paper's words | |
| phenomenon | metadata-aware manipulation of labeled multidimensional scientific data | phenomenon | the paper's words | |
| method | system-or-tool-building also in: system-or-tool-building | method | the paper's words | |
| mechanisms | Every operation consumes and preserves labels so data and metadata stay aligned. also in: label consistency | mechanisms[0] | 0.95 | the tagger's words |
| mechanisms | Dimension names replace positional axes for indexing and aggregation. also in: named dimensions | mechanisms[1] | 0.95 | the tagger's words |
| mechanisms | Ancillary coordinate variables build on pandas Index for fast lookup and alignment. also in: coordinate indexing | mechanisms[2] | 0.95 | the tagger's words |
| mechanisms | Arithmetic loops over distinct named dimensions without dummy size-one axes. also in: dimension-name broadcasting | mechanisms[3] | 0.95 | the tagger's words |
| mechanisms | Database-like joins combine xarray objects along coordinates shared between them. also in: coordinate alignment | mechanisms[4] | 0.95 | the tagger's words |
| mechanisms | Multiple serialization formats are exposed by integrating their libraries. also in: third-party I/O integration | mechanisms[5] | 0.95 | the tagger's words |
| mechanisms | Dask-backed structures execute parallel and streaming computations outside memory. also in: dask backing | mechanisms[6] | 0.95 | the tagger's words |
| mechanisms | The unit suite is run automatically on Linux and Windows services. also in: continuous integration | mechanisms[7] | 0.95 | the tagger's words |
| mechanisms | Composition, subclassing, and accessor interfaces add domain methods without putting them in the core. also in: composition and accessors | mechanisms[8] | 0.95 | the tagger's words |
| limitations | Pandas Panel has a fixed three-dimensional rank and lacks features available to DataFrame and Series. | limitations[0] | 0.95 | the tagger's words |
| limitations | Unlabeled arrays do not meaningfully represent associated metadata, leaving alignment to users or domain packages. | limitations[1] | 0.95 | the tagger's words |
| limitations | Names and attributes are not interpreted by xarray and are propagated only in unambiguous cases. | limitations[2] | 0.95 | the tagger's words |
| limitations | DataArrays in a Dataset are presumed to share a common coordinate system. | limitations[3] | 0.95 | the tagger's words |
| limitations | OPeNDAP and GRIB serialization backends are read-only. | limitations[4] | 0.95 | the tagger's words |
| limitations | The pure-Python implementation relies on compiled dependencies for speed. | limitations[5] | 0.95 | the tagger's words |
| limitations | Domain-specific functionality is intentionally left to third-party libraries. | limitations[6] | 0.95 | the tagger's words |
| limitations | Development and support depend on a volunteer team. | limitations[7] | 0.95 | the tagger's words |
| controls | over 1,500 unit tests eliminates: regressions in core and optional-dependency functionality · outcome: held | controls[0] | 0.95 | the tagger's words |
| controls | TravisCI and Appveyor eliminates: platform-specific failures missed by a single operating system · outcome: held | controls[1] | 0.95 | the tagger's words |
| controls | sample data distributed with the source code eliminates: examples that users cannot reproduce · outcome: held | controls[2] | 0.95 | the tagger's words |
| concepts | xarray also in: xarray | concepts[0] | 0.95 | the paper's words |
| concepts | Python package also in: Python package | concepts[1] | 0.95 | the paper's words |
| concepts | N-dimensional labeled arrays also in: N-dimensional labeled arrays | concepts[2] | 0.95 | the paper's words |
| concepts | Common Data Model also in: Common Data Model | concepts[3] | 0.95 | the paper's words |
| concepts | pandas also in: pandas | concepts[4] | 0.95 | the paper's words |
| concepts | Panel also in: Panel | concepts[5] | 0.95 | the paper's words |
| concepts | Scientific data also in: Scientific data | concepts[6] | 0.95 | the paper's words |
| concepts | Unlabeled, N-dimensional arrays also in: Unlabeled, N-dimensional arrays | concepts[7] | 0.95 | the paper's words |
| concepts | metadata also in: metadata | concepts[8] | 0.95 | the paper's words |
| concepts | network Common Data Form also in: network Common Data Form | concepts[9] | 0.95 | the paper's words |
| concepts | collection of self-describing, machine-independent binary data formats and software tools | concepts[10] | 0.95 | the paper's words |
| concepts | dimensions, variables, and attributes | concepts[11] | 0.95 | the paper's words |
| concepts | netCDF dataset also in: netCDF dataset | concepts[12] | 0.95 | the paper's words |
| concepts | DataArray also in: DataArray | concepts[13] | 0.95 | the paper's words |
| concepts | Dataset also in: Dataset | concepts[14] | 0.95 | the paper's words |
| concepts | DataFrame also in: DataFrame | concepts[15] | 0.95 | the paper's words |
| concepts | dict-like container also in: dict-like container | concepts[16] | 0.95 | the paper's words |
| concepts | Dimensions also in: Dimensions | concepts[17] | 0.95 | the paper's words |
| concepts | ancillary variables also in: ancillary variables | concepts[18] | 0.95 | the paper's words |
| concepts | Names and attributes also in: Names and attributes | concepts[19] | 0.95 | the paper's words |
| concepts | coordinates also in: coordinates | concepts[20] | 0.95 | the paper's words |
| concepts | varying/dependent quantities also in: varying/dependent quantities | concepts[21] | 0.95 | the paper's words |
| concepts | named dimensions also in: named dimensions | concepts[22] | 0.95 | the paper's words |
| concepts | positional ordering of dimensions also in: positional ordering of dimensions | concepts[23] | 0.95 | the paper's words |
| concepts | dimension names also in: dimension names | concepts[24] | 0.95 | the paper's words |
| concepts | dummy dimensions of size one also in: dummy dimensions of size one | concepts[25] | 0.95 | the paper's words |
| concepts | Alignment also in: Alignment | concepts[26] | 0.95 | the paper's words |
| concepts | common coordinates also in: common coordinates | concepts[27] | 0.95 | the paper's words |
| concepts | Split-apply-combine also in: Split-apply-combine | concepts[28] | 0.95 | the paper's words |
| concepts | xarray plotting functionality also in: xarray plotting functionality | concepts[29] | 0.95 | the paper's words |
| concepts | thin wrapper also in: thin wrapper | concepts[30] | 0.95 | the paper's words |
| concepts | Missing Data also in: Missing Data | concepts[31] | 0.95 | the paper's words |
| concepts | serialization and I/O also in: serialization and I/O | concepts[32] | 0.95 | the paper's words |
| concepts | third-party libraries also in: third-party libraries | concepts[33] | 0.95 | the paper's words |
| concepts | Out-of-core computation also in: Out-of-core computation | concepts[34] | 0.95 | the paper's words |
| concepts | dask also in: dask | concepts[35] | 0.95 | the paper's words |
| concepts | parallel and streaming computation also in: parallel and streaming computation | concepts[36] | 0.95 | the paper's words |
| concepts | large test suite also in: large test suite | concepts[37] | 0.95 | the paper's words |
| concepts | TravisCI also in: TravisCI | concepts[38] | 0.95 | the paper's words |
| concepts | Appveyor also in: Appveyor | concepts[39] | 0.95 | the paper's words |
| concepts | sample data also in: sample data | concepts[40] | 0.95 | the paper's words |
| concepts | compiled dependencies also in: compiled dependencies | concepts[41] | 0.95 | the paper's words |
| concepts | core scientific Python libraries also in: core scientific Python libraries | concepts[42] | 0.95 | the paper's words |
| concepts | domain-specific packages also in: domain-specific packages | concepts[43] | 0.95 | the paper's words |
| concepts | consistency of labels also in: consistency of labels | concepts[44] | 0.95 | the paper's words |
| concepts | labeled, multi-dimensional array also in: labeled, multi-dimensional array | concepts[45] | 0.95 | the paper's words |
| concepts | core metadata-aware operations also in: core metadata-aware operations | concepts[46] | 0.95 | the paper's words |
| concepts | domain-specific functionality also in: domain-specific functionality | concepts[47] | 0.95 | the paper's words |
| concepts | composition also in: composition | concepts[48] | 0.95 | the paper's words |
| concepts | high-level accessor interface also in: high-level accessor interface | concepts[49] | 0.95 | the paper's words |
| concepts | team of volunteers also in: team of volunteers | concepts[50] | 0.95 | the paper's words |
| unhoused_relations | xarray → core scientific Python packages xarray builds on and interoperates with core scientific Python packages. | unhoused_relations[0] | 0.95 | the tagger's words |
| unhoused_relations | xarray → domain-specific packages xarray interfaces with domain-specific packages. | unhoused_relations[1] | 0.95 | the tagger's words |
| unhoused_relations | xarray → consistency of labels Every xarray operation relies on and maintains label consistency. | unhoused_relations[2] | 0.95 | the tagger's words |
| unhoused_relations | DataArray → labeled, multi-dimensional array DataArray implements a labeled multidimensional array. | unhoused_relations[3] | 0.95 | the tagger's words |
| unhoused_relations | Dimensions → core metadata-aware operations Dimensions enable xarray's metadata-aware operations. | unhoused_relations[4] | 0.95 | the tagger's words |
| unhoused_relations | dimension names → dummy dimensions of size one Dimension-name broadcasting eliminates the need for dummy size-one dimensions. | unhoused_relations[5] | 0.95 | the tagger's words |
| unhoused_relations | dask → parallel and streaming computation Dask backing supports parallel and streaming computation beyond memory. | unhoused_relations[6] | 0.95 | the tagger's words |
| unhoused_relations | serialization and I/O → third-party libraries xarray serialization and I/O integrate third-party libraries. | unhoused_relations[7] | 0.95 | the tagger's words |
| unhoused_relations | large test suite → TravisCI The unit-test suite is executed automatically on TravisCI. | unhoused_relations[8] | 0.95 | the tagger's words |
| unhoused_relations | xarray → compiled dependencies The pure-Python xarray implementation relies on compiled dependencies for speed. | unhoused_relations[9] | 0.95 | the tagger's words |
| unhoused_relations | high-level accessor interface → domain-specific functionality The accessor interface lets users implement domain-specific methods on xarray objects. | unhoused_relations[10] | 0.95 | the tagger's words |
| senses | xarray as a pandas-inspired, netCDF-grounded labeled-array toolkit | senses[0] | 0.95 | the tagger's words |
| senses | scientific labels as timestamps, coordinates, or experiment identifiers | senses[1] | 0.95 | the tagger's words |
| senses | netCDF as both a self-describing data model and portable serialization basis | senses[2] | 0.95 | the tagger's words |
| senses | DataArray as one labeled multidimensional array | senses[3] | 0.95 | the tagger's words |
| senses | Dataset as aligned DataArrays sharing a coordinate system | senses[4] | 0.95 | the tagger's words |
| senses | dimensions as named axes and coordinates as ancillary index variables | senses[5] | 0.95 | the tagger's words |
| senses | alignment as database-like joining on common coordinates | senses[6] | 0.95 | the tagger's words |
| senses | out-of-core as dask-backed parallel or streaming work beyond memory | senses[7] | 0.95 | the tagger's words |
| senses | quality control as cross-platform automated unit testing plus reproducible sample data | senses[8] | 0.95 | the tagger's words |
| senses | reuse as a domain-agnostic core extended through third-party composition and accessors | senses[9] | 0.95 | the tagger's words |
| claim_relations | builds-on → pandas note: The labeled-array structures and analytics are strongly inspired by pandas. | claim_relations[0] | 0.95 | the tagger's words |
| claim_relations | builds-on → netCDF note: NetCDF explicitly forms the basis of the xarray model. | claim_relations[1] | 0.95 | the tagger's words |
| claim_relations | extends → core scientific Python libraries note: The modular design builds upon and extends core libraries without embedding domains. | claim_relations[2] | 0.95 | the tagger's words |
| claim_relations | complements → domain-specific packages note: xarray interfaces with domain-specific packages while retaining a domain-agnostic core. | claim_relations[3] | 0.95 | the tagger's words |
| concept_edges | xarray —is-a→ Python package the relation itself is separately evidenced · strength of the relation: 1 · note: Flat categorical classification. · the relation stated: xarray is a Python package. also in: xarray · Python package | concept_edges[0] | 0.95 | the tagger's words |
| concept_edges | xarray —contrasted-with→ Panel the relation itself is separately evidenced · strength of the relation: 0.95 · note: Direct while-contrast and stated suitability difference. · the relation stated: xarray's arbitrary-rank labeled arrays contrast with pandas Panel's fixed three-dimensional rank. | concept_edges[1] | 0.95 | the tagger's words |
| concept_edges | network Common Data Form —is-a→ collection of self-describing, machine-independent binary data formats and software tools the relation itself is separately evidenced · strength of the relation: 1 · note: Explicit categorical definition. · the relation stated: The network Common Data Form is a collection of self-describing binary formats and software tools. | concept_edges[2] | 0.95 | the tagger's words |
| concept_edges | dimensions, variables, and attributes —part-of→ netCDF dataset the relation itself is separately evidenced · strength of the relation: 1 · note: Categorical containment stated by 'contains'. · the relation stated: Dimensions, variables, and attributes are contained in each netCDF dataset. | concept_edges[3] | 0.95 | the tagger's words |
| concept_edges | Dataset —same-as→ DataFrame the relation itself is separately evidenced · strength of the relation: 0.9 · note: Scoped multidimensional equivalence, so below full identity strength. · the relation stated: Dataset is xarray's multidimensional equivalent of a DataFrame.
Audit 2026-09-28: DOUBTFUL - read against its span and kept, but the Dataset is the multi-dimensional EQUIVALENT of a DataFrame; same-as overstates. | concept_edges[4] | 0.95 | the tagger's words |
| concept_edges | Dataset —is-a→ dict-like container the relation itself is separately evidenced · strength of the relation: 1 · note: Explicit categorical classification. · the relation stated: Dataset is a dict-like container of aligned DataArrays. also in: Dataset · dict-like container | concept_edges[5] | 0.95 | the tagger's words |
| concept_edges | Names and attributes —contrasted-with→ coordinates the relation itself is separately evidenced · strength of the relation: 0.95 · about this quote: DOUBTFUL, found by an audit that read the edge against its span: weak contrast. The edge is kept live; a reader should weigh it with this in mind. · note: Explicit in-contrast comparison. · the relation stated: Names and attributes are not interpreted generally, in contrast to coordinates persisted through transformations. also in: Names and attributes · coordinates | concept_edges[6] | 0.95 | the tagger's words |
| concept_edges | coordinates —distinct-from→ varying/dependent quantities the relation itself is separately evidenced · strength of the relation: 0.95 · note: Explicit unlike distinction. · the relation stated: Coordinates denote constant or independent quantities, unlike varying or dependent data quantities. also in: coordinates · varying/dependent quantities | concept_edges[7] | 0.95 | the tagger's words |
| concept_edges | named dimensions —contrasted-with→ positional ordering of dimensions the relation itself is separately evidenced · strength of the relation: 0.95 · note: Direct instead-of contrast. · the relation stated: Named dimensions are used instead of relying on positional dimension ordering. | concept_edges[8] | 0.95 | the tagger's words |
| concept_edges | xarray plotting functionality —is-a→ thin wrapper the relation itself is separately evidenced · strength of the relation: 1 · note: Explicit categorical classification. · the relation stated: xarray plotting functionality is a thin wrapper around Matplotlib. also in: xarray plotting functionality · thin wrapper | concept_edges[9] | 0.95 | the tagger's words |
| content_tags | xarray combines a pandas-inspired API with a self-describing scientific-data model. | content_tags.findings[0] | 0.95 | the tagger's words |
| content_tags | Pandas Panel's fixed rank is unsuitable for arbitrary-rank array applications. | content_tags.findings[1] | 0.95 | the tagger's words |
| content_tags | Every xarray operation relies on and maintains label consistency. | content_tags.findings[2] | 0.95 | the tagger's words |
| content_tags | NetCDF supplies xarray's data-model basis and portable serialization format. | content_tags.findings[3] | 0.95 | the tagger's words |
| content_tags | DataArray represents a labeled multidimensional array. | content_tags.findings[4] | 0.95 | the tagger's words |
| content_tags | Dataset is a dictionary-like container of aligned DataArrays and an in-memory netCDF representation. | content_tags.findings[5] | 0.95 | the tagger's words |
| content_tags | Named dimensions replace positional axis arguments for xarray indexing. | content_tags.findings[6] | 0.95 | the tagger's words |
| content_tags | Dimension-name broadcasting removes the need to insert dummy size-one dimensions. | content_tags.findings[7] | 0.95 | the tagger's words |
| content_tags | Dask backing supports parallel and streaming computation on data too large for memory. | content_tags.findings[8] | 0.95 | the tagger's words |
| content_tags | The test suite contains more than 1,500 unit tests run on Linux and Windows continuous integration. | content_tags.findings[9] | 0.95 | the tagger's words |
| content_tags | The core data structures are extensible through composition, subclassing, and high-level accessors. | content_tags.findings[10] | 0.95 | the tagger's words |
| content_tags | an open-source Python project providing labeled N-dimensional array structures and analytics also in: xarray | content_tags.definitions[0] | 0.95 | the tagger's words |
| content_tags | self-describing, machine-independent formats and tools for array scientific data also in: network Common Data Form | content_tags.definitions[1] | 0.95 | the tagger's words |
| content_tags | the principal netCDF structure containing named dimensions, variables, and attributes also in: dataset | content_tags.definitions[2] | 0.95 | the tagger's words |
| content_tags | xarray's labeled multidimensional array implementation also in: DataArray | content_tags.definitions[3] | 0.95 | the tagger's words |
| content_tags | a dictionary-like container of aligned DataArrays and in-memory netCDF representation also in: Dataset | content_tags.definitions[4] | 0.95 | the tagger's words |
| content_tags | names used in place of positional axis arguments also in: Dimensions | content_tags.definitions[5] | 0.95 | the tagger's words |
| content_tags | ancillary variables used for label-based indexing and alignment also in: Coordinates | content_tags.definitions[6] | 0.95 | the tagger's words |
| content_tags | database-like joins along common coordinates also in: Alignment | content_tags.definitions[7] | 0.95 | the tagger's words |
| content_tags | N-dimensional grouped operations following the split-apply-combine strategy also in: Split-apply-combine | content_tags.definitions[8] | 0.95 | the tagger's words |
| content_tags | parallel or streaming work on data that does not fit into memory also in: Out-of-core computation | content_tags.definitions[9] | 0.95 | the tagger's words |
| content_tags | 100s of GB or TBs — scale of out-of-memory datasets supported through dask | content_tags.quantities[0] | 0.95 | the tagger's words |
| content_tags | over 1,500 unit tests — size of the xarray test suite | content_tags.quantities[1] | 0.95 | the tagger's words |
| content_tags | two main data structures — DataArray and Dataset in the xarray model | content_tags.quantities[2] | 0.95 | the tagger's words |
| content_tags | any number of dimensions — rank permitted for DataArrays and coordinates | content_tags.quantities[3] | 0.95 | the tagger's words |
| content_tags | timestamps also in: timestamps | content_tags.variables[0] | 0.95 | the tagger's words |
| content_tags | coordinates also in: coordinates | content_tags.variables[1] | 0.95 | the tagger's words |
| content_tags | dimension names also in: dimension names | content_tags.variables[2] | 0.95 | the tagger's words |
| content_tags | attrs also in: attrs | content_tags.variables[3] | 0.95 | the tagger's words |
| content_tags | data variables also in: data variables | content_tags.variables[4] | 0.95 | the tagger's words |
| content_tags | time, y, and x also in: time, y, and x | content_tags.variables[5] | 0.95 | the tagger's words |
| content_tags | Temperature and precipitation also in: Temperature and precipitation | content_tags.variables[6] | 0.95 | the tagger's words |
| content_tags | latitude and longitude also in: latitude and longitude | content_tags.variables[7] | 0.95 | the tagger's words |
Tags that could not be placed in the text:
What was deliberately not tagged, and why, is recorded per paper by the tagger. Where a paper has no such record, this page says so rather than implying that nothing was declined.