Skip to content

Commit 38b91f6

Browse files
author
Rajeev Jain
committed
o paper: add JOSS draft (HTML .doc) with outline, authors (Rajeev first), and placeholder figures
1 parent 4d90463 commit 38b91f6

3 files changed

Lines changed: 184 additions & 0 deletions

File tree

paper/images/fig1.svg

Lines changed: 19 additions & 0 deletions
Loading

paper/images/fig2.svg

Lines changed: 11 additions & 0 deletions
Loading

paper/uxarray_joss_paper.doc

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8" />
5+
<title>UXarray: Xarray extensions for unstructured grids</title>
6+
<style>
7+
body { font-family: Georgia, serif; line-height: 1.45; margin: 2rem; }
8+
h1, h2, h3 { font-family: Helvetica, Arial, sans-serif; }
9+
code, pre { font-family: Menlo, Consolas, monospace; background: #f6f8fa; padding: 2px 4px; }
10+
figure { margin: 1rem 0; }
11+
figcaption { font-size: 0.9rem; color: #666; }
12+
</style>
13+
</head>
14+
<body>
15+
<h1>UXarray: Xarray extensions for unstructured grids</h1>
16+
17+
<h2>(1) Overview</h2>
18+
19+
<h3>Title</h3>
20+
<p>UXarray: Xarray extensions for unstructured climate and weather data</p>
21+
22+
<h3>Paper Authors</h3>
23+
<ul>
24+
<li><strong>Rajeev Jain</strong> (Lead Author), University/Institution TBD, ORCID: TBD</li>
25+
<li>Aaron Zedwick, Affiliation TBD</li>
26+
<li>David Ahijevych, NCAR (TBD)</li>
27+
<li>Anissa Zacharias, UCAR (TBD)</li>
28+
<li>David Galicia, Affiliation TBD</li>
29+
<li>Orhan Eroglu, Affiliation TBD</li>
30+
<li>Paul Ullrich, UC Davis (TBD)</li>
31+
<li>Philip Chmielowiec, Affiliation TBD</li>
32+
<li>Hongyu Chen, UC Davis (TBD)</li>
33+
<li>Kristen Thyng, Affiliation TBD</li>
34+
<li>Mario A. Rodriguez, NCAR (TBD)</li>
35+
<li>Maxime Liquet, Affiliation TBD</li>
36+
<li>Michaela Sizemore, Affiliation TBD</li>
37+
<li>Katelyn FitzGerald, Affiliation TBD</li>
38+
<li>Filipe Fernandes, Affiliation TBD</li>
39+
<li>... (additional contributors from git history)</li>
40+
</ul>
41+
42+
<h3>Abstract</h3>
43+
<p>
44+
UXarray provides an Xarray-compatible interface for loading, analyzing, and
45+
visualizing data on unstructured grids. It standardizes access to common grid
46+
representations (UGRID, MPAS, Exodus, ICON, SCRIP, ESMF, FESOM, HEALPix) and
47+
exposes familiar DataArray/Dataset accessors for grid-aware operations, such as
48+
subset, remap, cross-section extraction, and zonal statistics.
49+
</p>
50+
51+
<h3>Keywords</h3>
52+
<p>unstructured grids; xarray; UGRID; MPAS; Exodus; ICON; climate; geoscience; visualization</p>
53+
54+
<h3>Introduction</h3>
55+
<p>
56+
Many next-generation climate and weather models produce data on unstructured
57+
meshes. While Xarray provides a robust interface for labeled N-dimensional
58+
arrays, it does not natively understand unstructured grid topology. UXarray
59+
bridges this gap by pairing Xarray objects with a Grid, enforcing UGRID-style
60+
conventions, and providing operations that respect mesh geometry and
61+
connectivity.
62+
</p>
63+
64+
<h3>Implementation and Architecture</h3>
65+
<p>
66+
UXarray adds grid-aware accessors to UxDataArray and Grid, with core modules for
67+
I/O, subsetting, remapping, plotting, and cross-sections. Figure 1 outlines the
68+
major components.
69+
</p>
70+
<figure>
71+
<img src="images/fig1.svg" alt="Overview diagram" width="640" />
72+
<figcaption>Figure 1: UXarray components and data flow.</figcaption>
73+
</figure>
74+
<pre><code>
75+
import uxarray as ux
76+
uxgrid = ux.open_grid("grid.ug")
77+
uxds = ux.open_dataset("grid.ug", "psi.nc")
78+
79+
# Cross-section along a geodesic
80+
cs = uxds["psi"].cross_section(start=(-45, -45), end=(45, 45), steps=200)
81+
</code></pre>
82+
83+
<h3>Case Studies / Example Applications</h3>
84+
<p>
85+
We demonstrate: (1) cross-section sampling along geodesics and constant
86+
parallels/meridians; (2) zonal means; (3) remapping workflows. Figure 2 shows a
87+
schematic cross-section sampling trajectory.
88+
</p>
89+
<figure>
90+
<img src="images/fig2.svg" alt="Cross-section sampling" width="640" />
91+
<figcaption>Figure 2: Sampling a field along a geodesic arc (steps shown along the path).</figcaption>
92+
</figure>
93+
94+
<h3>Conclusions</h3>
95+
<p>
96+
UXarray brings consistent, grid-aware operations to Xarray, enabling reusable
97+
analysis patterns across diverse unstructured formats. It unifies I/O and
98+
computation through a minimal, UGRID-consistent contract, supporting common
99+
geoscience analyses.
100+
</p>
101+
102+
<h3>Quality Control</h3>
103+
<p>
104+
UXarray includes unit tests, continuous integration, pre-commit hooks and style
105+
checks. It runs on Linux (and macOS/Windows via CI) and targets Python 3.10+.
106+
</p>
107+
108+
<h2>(2) Availability</h2>
109+
110+
<h3>Operating System(s)</h3>
111+
<p>Linux, macOS, Windows (CI tested)</p>
112+
113+
<h3>Programming Language</h3>
114+
<p>Python 3.10+</p>
115+
116+
<h3>Dependencies</h3>
117+
<p>Key runtime dependencies include: antimeridian, cartopy, dask, datashader,
118+
geoviews, holoviews, matplotlib, netcdf4, numba, numpy (&lt;2.3), pandas,
119+
pyarrow, requests, scikit-learn, scipy, shapely, spatialpandas, geopandas,
120+
xarray, hvplot, healpix, polars, pyproj.</p>
121+
122+
<h3>List of Contributors</h3>
123+
<p>See the Git commit history for a full list of contributors. We acknowledge
124+
all listed authors above as core contributors.</p>
125+
126+
<h3>Software Location</h3>
127+
<ul>
128+
<li><strong>Archive</strong>: TBD (e.g., Zenodo DOI)</li>
129+
<li><strong>Code Repository</strong>: <a href="https://github.com/UXARRAY/uxarray">https://github.com/UXARRAY/uxarray</a></li>
130+
</ul>
131+
132+
<h2>(3) Reuse Potential</h2>
133+
134+
<h3>General Applicability</h3>
135+
<p>
136+
UXarray is broadly applicable to global geoscience, oceanography, and weather
137+
model output on unstructured meshes. It is licensed under the BSD-3 license,
138+
with active issue tracking, contribution guidelines, and documentation.
139+
</p>
140+
141+
<h3>Acknowledgements</h3>
142+
<ul>
143+
<li><strong>Funding Statement</strong>: TBD</li>
144+
<li><strong>Competing Interests</strong>: The authors declare no competing interests.</li>
145+
</ul>
146+
147+
<h3>References</h3>
148+
<ol>
149+
<li>UGRID conventions and related resources.</li>
150+
<li>Xarray documentation and APIs.</li>
151+
<li>Model and format references (MPAS, Exodus, ICON, ESMF, FESOM, HEALPix).</li>
152+
</ol>
153+
</body>
154+
</html>

0 commit comments

Comments
 (0)