Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
142 commits
Select commit Hold shift + click to select a range
519fa86
delete print stetement
patrickscholz Feb 19, 2025
883b4f1
add routines for initialising notebook header and for the shortcute f…
patrickscholz Feb 19, 2025
fffc692
improving fixing hovmöller diagramms, chunk data loading for hovmölle…
patrickscholz Feb 19, 2025
b2a6826
improve notebook to compute horizontal slices, create dask paralleliz…
patrickscholz Feb 19, 2025
6b9d837
fix quiver computation for larger grid like dart mesh, nevertheless t…
patrickscholz Feb 19, 2025
5f9783b
improve transect computation. make transect analyser much faster, imp…
patrickscholz Feb 19, 2025
00f6ef4
change input from data loading routine from data_vecrot to data_rot w…
patrickscholz Feb 19, 2025
f21bd65
improve notebook headers in 2dmesh and 3d sphere routine
patrickscholz Feb 19, 2025
840e938
add subroutine to centralize and unify the notebook header, which fig…
patrickscholz Feb 19, 2025
0452b93
define several shortcut routines: to load the dask client, to add the…
patrickscholz Feb 19, 2025
ae1a864
Merge branch 'workbench' of https://github.com/FESOM/tripyview into w…
patrickscholz Feb 19, 2025
c817693
update notebook without error message
patrickscholz Feb 19, 2025
3fccab7
update notebook without error message
patrickscholz Feb 19, 2025
6fbe473
improve zonal mean routine, add meridional mean routine, fix clabel i…
patrickscholz Feb 21, 2025
3bdd0c4
also adapt tripyrun drivers for the new meridionally averaged transects
patrickscholz Feb 22, 2025
f79fefb
update README file
patrickscholz Feb 22, 2025
0b799ed
update zmoc zmean mmean ... computation,
patrickscholz Feb 25, 2025
e0c91ff
further update the entire code, towards parallelisation with dask, c…
patrickscholz Mar 2, 2025
7e0e631
further improve trripyview towrds dask
patrickscholz Mar 4, 2025
5d0820d
fix scalar transect routine with respect to dask usage
patrickscholz Mar 6, 2025
0ccb9af
finish the actualization of all the transect routiens with respect to…
patrickscholz Mar 6, 2025
ecc6ed0
attempt to fix/improve ,eridional heatflux computation routine
patrickscholz Mar 8, 2025
bf6cf73
fix meridional heatflux notebooks for small grids
patrickscholz Mar 9, 2025
95f43e6
fix small bug
patrickscholz Mar 10, 2025
15b064e
fix a couple of small problems that emerged with AO04 mesh, especiall…
patrickscholz Mar 12, 2025
34f786f
some changes made to ensure functionallity on juwels
patrickscholz Mar 16, 2025
1883b74
small changes due juwels
patrickscholz Mar 16, 2025
069a962
small change in hflx routien
patrickscholz Mar 16, 2025
e25bb22
try to improve heatflux computation
patrickscholz Mar 18, 2025
9c9171c
update and improve heatflux computations
patrickscholz Mar 18, 2025
59ae160
start new hbarstreamf routine
patrickscholz Mar 23, 2025
6ed31f8
improve streamfunction computation with dask
patrickscholz Mar 24, 2025
c28b21e
update
patrickscholz Mar 24, 2025
72bd779
Merge branch 'main' into workbench
patrickscholz Mar 24, 2025
7acf7e4
make mhflx computation work for dart mesh, there number of dask worke…
patrickscholz Mar 25, 2025
e153c33
Merge branch 'workbench' of https://github.com/FESOM/tripyview into w…
patrickscholz Mar 25, 2025
e7227b0
try to fix a couple of issues when computing dmoc for very large grid…
patrickscholz Mar 28, 2025
0fe858d
improved dmoc computations
patrickscholz Mar 28, 2025
995d670
improved dmoc computations
patrickscholz Mar 28, 2025
ac8b653
imrove dmoc computation for large grids
patrickscholz Mar 28, 2025
e6ea390
add gradient computation capabilities
patrickscholz Apr 22, 2025
eb9486c
further improvments
patrickscholz Apr 22, 2025
24c6a94
Merge branch 'workbench' of https://github.com/FESOM/tripyview into w…
patrickscholz Apr 22, 2025
36fd82a
small improvments to gradient computation, and matplotlib streamline …
patrickscholz Apr 23, 2025
5dc684d
apply minor major improvements, especially kickout compat option from…
patrickscholz May 30, 2025
1af30ec
kickout another option from netcdf engine_dict
patrickscholz May 30, 2025
d45a4d0
fix small issue in streamline plotting when working with chunked data
patrickscholz Jun 10, 2025
ce7ceee
fix a couple of minor issues
patrickscholz Jun 10, 2025
a45142a
fix new error messsage
patrickscholz Jun 10, 2025
8a06a48
be able to switch off the usage of .sub_3dsphere with an environment …
patrickscholz Jun 30, 2025
a42bed6
be able to use monthly and seasonal PHC climatology
patrickscholz Jun 30, 2025
8830736
make some minor adjustments to the plotting routine, make show there…
patrickscholz Jun 30, 2025
bca20e1
make sure that transect position figures can be saved
patrickscholz Jun 30, 2025
e941c55
add changes from paul to tripyrun, notebook and figures paths can be …
patrickscholz Jun 30, 2025
fb6cd99
fix problem when lsmask polygons become a GeometryCollection after m…
patrickscholz Jun 30, 2025
d62d31e
add functionality to add climatoligical reference line in tline plot …
patrickscholz Aug 22, 2025
3ba2a1f
fix small bug when plotting horizontal colorbar, and small problem f…
patrickscholz Aug 26, 2025
2273d79
change from record=-1 to record=None
patrickscholz Aug 26, 2025
57ed03e
fix back template_hslice.ipynb
patrickscholz Aug 26, 2025
dc41244
check if tri has attribute mask_n_box or mask_e_box
patrickscholz Aug 27, 2025
b8b7efa
Merge branch 'workbench' of https://github.com/FESOM/tripyview into w…
patrickscholz Aug 27, 2025
d6dca64
add script to do vector rotation and interpolation from e2n offline
patrickscholz Aug 27, 2025
27d3a97
add some comments to tools/do_rot_ie2n.ipynb
patrickscholz Aug 27, 2025
20ba1a6
Merge branch 'workbench' of https://github.com/FESOM/tripyview into w…
patrickscholz Aug 27, 2025
d9bdaea
fix the issue, so that e2n interpolation can be done on vertically se…
patrickscholz Aug 29, 2025
ab4afb3
change output string
patrickscholz Aug 29, 2025
e6ea269
update ../../tools/do_rot_ie2n.ipynb
patrickscholz Aug 29, 2025
746a5dd
make ure there is a grid_rotmat_dask(abg) and grid_rotmat(abg) routine
patrickscholz Sep 1, 2025
98058a1
small change in the print output
patrickscholz Sep 1, 2025
f9fad86
make sure there is a grid_rotmat_dask(abg) amd grid_rotmat_(abg) routine
patrickscholz Sep 1, 2025
785fe6e
Update template_transp_dmoc.ipynb
patrickscholz Sep 2, 2025
0f295bf
Update template_transp_dmoc.ipynb
patrickscholz Sep 2, 2025
3bdec4d
fix small bug in computing the weight for nz
patrickscholz Sep 8, 2025
8d88b51
make sure that None in the data_list work as an empty placeholder
patrickscholz Sep 8, 2025
f30d221
Merge branch 'workbench' of https://github.com/FESOM/tripyview into w…
patrickscholz Sep 8, 2025
4e8828f
switch off default anomaly plots
patrickscholz Sep 10, 2025
50668a2
update templates_notebooks/template_hslice.ipynb for depth=bottom, bo…
patrickscholz Sep 12, 2025
2410a08
update templates_notebooks/template_hslice.ipynb for depth=bottom, bo…
patrickscholz Sep 12, 2025
d6fb788
small issue in parallel computation of transport
patrickscholz Sep 18, 2025
ba2f332
improve categorical cmap
patrickscholz Sep 18, 2025
8fa52c3
add template for absolute and relative temperature/salinity heatmap
patrickscholz Oct 27, 2025
d977050
Update sub_transect.py
patrickscholz Oct 27, 2025
ecc2093
change default to flat shading better accurate representation of the…
patrickscholz Oct 28, 2025
26b6d78
Merge branch 'workbench' of https://github.com/FESOM/tripyview into w…
patrickscholz Oct 28, 2025
da8e801
switch seawater package to gsw package to compute potential temperat…
patrickscholz Nov 2, 2025
c9e165e
Merge branch 'workbench' of https://github.com/FESOM/tripyview into w…
patrickscholz Nov 2, 2025
955c460
change comment
patrickscholz Nov 12, 2025
4a2f2bb
fix and improve gradient computation based on the meshdiag file
patrickscholz Nov 21, 2025
b69a89b
small bugfix in grid_interp_e2n
patrickscholz Nov 21, 2025
a84bfa2
small improvements
patrickscholz Nov 21, 2025
54c0695
improve gradient operation and ie2n operation
patrickscholz Nov 22, 2025
6b40222
strongly speedup ie2n operation for 1d, 2d, and 3d up to a factor of…
patrickscholz Nov 22, 2025
748c9b6
extend numba for computing boundary edges, nINe, eINe and nINn arrays
patrickscholz Nov 23, 2025
8f5b75e
improve vector rotation routines to jit numba, brings some speed up
patrickscholz Nov 24, 2025
18f252c
change some filenames, reactivate pickle but made joblib the default
patrickscholz Nov 24, 2025
7c91d9e
roll back pickle library use
patrickscholz Nov 24, 2025
dce6b37
further optimize mesh operations make things generally faster
patrickscholz Nov 24, 2025
b73bed6
fix some stuff when loading e_resol, n_resol ...
patrickscholz Nov 24, 2025
6bbae30
Fix typo
alxthor Nov 25, 2025
0b00913
push further the numba-fication of the mesh loading routine, numba-fi…
patrickscholz Nov 25, 2025
e38bc51
Merge pull request #214 from alxthor/workbench
patrickscholz Nov 25, 2025
5d1641e
add numba kernels for vertice and element smoothing, add these kernel…
patrickscholz Nov 26, 2025
ef154db
Merge branch 'workbench' of https://github.com/FESOM/tripyview into w…
patrickscholz Nov 26, 2025
95c9053
add improved routine to compute periodic boudnary augmented Land Sea…
patrickscholz Dec 1, 2025
2b9ba1e
fix small issue when choosen depth is smaller than the first layer d…
patrickscholz Dec 1, 2025
6011996
add neverworld2 functionality
patrickscholz Dec 1, 2025
3c9788c
improve some comments
patrickscholz Dec 2, 2025
bad8a6b
add Neverworld plotting to tripyview
patrickscholz Dec 3, 2025
d29d232
change README
patrickscholz Dec 3, 2025
16c8e88
add neverworld example plot
patrickscholz Dec 3, 2025
b40ff8b
update REadme
patrickscholz Dec 3, 2025
e55345b
update image
patrickscholz Dec 3, 2025
ad16513
update image
patrickscholz Dec 3, 2025
d6f4307
add new faster routine to compute which edges are cutted by the tran…
patrickscholz Dec 4, 2025
5290871
update all notebooks
patrickscholz Dec 5, 2025
cd4359e
fix small bug in template_hmesh
patrickscholz Dec 5, 2025
23ab81e
some minor updates
patrickscholz Dec 5, 2025
bfc77f6
overhaul part 1 of all notebooks with optimized chunking strategy
patrickscholz Dec 8, 2025
ed6bd22
overhaul part 2 of all notebooks with optimized chunking strategy
patrickscholz Dec 9, 2025
3c8b1d1
make dmitry sein format usable
patrickscholz Dec 9, 2025
bfb18ed
fix small dimension bug in vertical interpolation
patrickscholz Dec 12, 2025
cfdd0dd
Merge branch 'workbench' of https://github.com/FESOM/tripyview into w…
patrickscholz Dec 12, 2025
74d0f95
expand file patterns, make dmitry seins data usable
patrickscholz Dec 12, 2025
fd82618
fix problem when CFTime index
patrickscholz Dec 12, 2025
adc476b
fix wrong vector routine, fix transect when transect segment does not…
patrickscholz Dec 12, 2025
e055c45
fix horbarstreamf
patrickscholz Dec 12, 2025
90ce7a5
fix horbarstreamf
patrickscholz Dec 12, 2025
f34c61c
overhaul part3
patrickscholz Dec 13, 2025
bb908f1
overhaul part 4
patrickscholz Dec 14, 2025
0e7f75f
...
patrickscholz Dec 16, 2025
4a47664
exclude lev_bounds
patrickscholz Dec 16, 2025
618cdf0
fix contour algorithm for special case when a boundary node has 4 nei…
patrickscholz Dec 17, 2025
5e4a7cd
improve reg quiver plot a bit
patrickscholz Dec 19, 2025
b9ff07b
improve reg quiver plot a bit
patrickscholz Dec 19, 2025
57b2184
make rolling/running mean workable
patrickscholz Dec 23, 2025
2724205
add commit from paul gierz about putting the relative path instead of…
patrickscholz Jan 15, 2026
c8571c1
improve quiver plot, martin losch found issue in cartopy transform_v…
patrickscholz Jan 15, 2026
c3a4caf
improve quiver plot
patrickscholz Jan 15, 2026
be55ebe
add option for not finishing the figure with plt.show, allows to add …
patrickscholz Feb 12, 2026
9a25572
add glorys uv climatology to quiver notebook template
patrickscholz Feb 13, 2026
4738a8f
add some error message
patrickscholz Feb 13, 2026
efc1fe3
improve computation of mesh resolution for elements and nodes
patrickscholz Feb 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,10 @@ vertice/element- resolution and area)
<img width=40% src="docs/images/tripyview_mov_channel.gif">
</p>

* `hslice_neverworld2`- plot horizontal slices of variables in the neverworld2 configuration (provide routine to make neverworld2 movie)
<p align="center" width="100%">
<img width=40% src="docs/images/tripyview_neverworld_curl.png">
</p>

* `hquiver` - plot horizontal arrow vector field in various projections
<p align="center" width="100%">
Expand All @@ -97,6 +101,8 @@ vertice/element- resolution and area)
* `transect_hflx_t` - plot time-series of heat transport through arbitrary transects
* `transect_zmean` - plot zonally averaged transects of 3d ocean variables
* `transect_zmean_clim`- plot zonally averaged transects of 3d temperature, salinity and density climatology
* `transect_mmean` - plot meridionally averaged transects of 3d ocean variables
* `transect_mmean_clim`- plot meridionally averaged transects of 3d temperature, salinity and density climatology
<p align="center" width="100%">
<img height=150px src="docs/images/tripyview_transect_pos.png">
<img height=150px src="docs/images/tripyview_transect.png">
Expand Down Expand Up @@ -208,5 +214,5 @@ driver section.
</p>

## Credits:
If you use the package please give the package or the author some credit.
If you use the package, please cite the package or the author as the source.

Binary file added docs/images/tripyview_neverworld_curl.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
49 changes: 33 additions & 16 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,43 +12,60 @@
history = history_file.read()

requirements = [
'cartopy',
'bokeh!=3.0.*,>=2.4.2',
'cmocean',
#___________________________________________________________________________
# numerical libraries
'numpy',
'xarray',
'dask',
'distributed',
'pandas',
'geopandas',
'scipy',
'numba',
#___________________________________________________________________________
# jupyter stuff
'ipython',
'joblib',
'jupyter',
'jupyterlab<4.0',
'jupyter_lsp',
#___________________________________________________________________________
# plotting
'matplotlib',
"pickle5; python_version<'3.9'",
'cartopy',
'cmocean',
'bokeh!=3.0.*,>=2.4.2',
'shapely',
#___________________________________________________________________________
# file reading
'netCDF4',
'libnetcdf',
'h5netcdf',
'hdf5plugin',
'netCDF4',
'numba',
'numpy',
'pandas',
'geopandas',
'scipy',
"pickle5; python_version<'3.9'",
'joblib',
#___________________________________________________________________________
# ocean properties
'seawater',
'gsw',
'shapely',
'xarray',
'pyfesom2',
'pyresample',
'pytest',
#___________________________________________________________________________
# tripyrun functionaallity
'papermill',
'black',
'jinja2',
'pyyaml',
#___________________________________________________________________________
# 3d stuff
'pyvista[all]', #,jupyter,trame]',
'vtk',
'ipyvtklink',
'imageio[ffmpeg]',
'ipympl',
'ffmpeg-python',
#___________________________________________________________________________
#'pyfesom2',
#'pyresample',
'pytest',

]

setup_requirements = ['pytest-runner']
Expand Down
44 changes: 24 additions & 20 deletions templates_notebooks/template_2dmesh.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
],
"source": [
"%matplotlib inline\n",
"# %matplotlib notebook--> use this when doing jupyter notebook\n",
"# %matplotlib widget --> use this when doing jupyterlab\n",
"%load_ext autoreload\n",
"%autoreload 2\n",
"\n",
Expand All @@ -27,7 +29,7 @@
"import time as clock\n",
"import warnings\n",
"xr.set_options(keep_attrs=True)\n",
"client_runs = False"
"use_existing_client = \"tcp://0.0.0.0:0000\" # e.g. 'tcp://127.0.0.1:42465', tcp://0.0.0.0:0000--> dummy client"
]
},
{
Expand Down Expand Up @@ -158,14 +160,26 @@
"metadata": {},
"outputs": [],
"source": [
"# start parallel dask client\n",
"if do_parallel:\n",
" from dask.distributed import Client\n",
" # from dask.diagnostics import ProgressBar\n",
" import dask\n",
" print(' --> memory_limit: {:3.3f} GB'.format(parallel_tmem/(parallel_nprc)))\n",
" ## dask.config.config.get('distributed').get('dashboard').update({'link':'{JUPYTERHUB_SERVICE_PREFIX}/proxy/{port}/status'})\n",
" client = Client(n_workers=parallel_nprc, threads_per_worker=1, memory_limit='{:3.3f} GB'.format(parallel_tmem/parallel_nprc))\n",
" client"
" dask.config.config.get('distributed').get('dashboard').update({'link':'{JUPYTERHUB_SERVICE_PREFIX}/proxy/{port}/status'})\n",
" # check for existing client via adress\n",
" try:\n",
" client = Client(use_existing_client)\n",
" print(\"Connected to existing Dask cluster:\", use_existing_client)\n",
" except OSError:\n",
" print(\"No existing Dask cluster found at\", use_existing_client)\n",
" try:\n",
" # Check if an existing client is connected\n",
" client = Client.current()\n",
" print(\"Dask client already running:\", client)\n",
" except ValueError:\n",
" # No active client, start a new one\n",
" client = Client(n_workers=parallel_nprc, threads_per_worker=1, memory_limit='{:3.3f} GB'.format(parallel_tmem/parallel_nprc))\n",
" print(\"Started a new Dask client\")\n",
" display(client)"
]
},
{
Expand Down Expand Up @@ -211,9 +225,7 @@
"cell_type": "code",
"execution_count": 6,
"id": "46501115",
"metadata": {
"scrolled": false
},
"metadata": {},
"outputs": [
{
"name": "stdout",
Expand Down Expand Up @@ -264,22 +276,14 @@
" do_save=sfpath, save_dpi=save_dpi, \n",
" )"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "34c315b4",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"celltoolbar": "Tags",
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"display_name": "py39_new",
"language": "python",
"name": "python3"
"name": "py39_new"
},
"language_info": {
"codemirror_mode": {
Expand All @@ -291,7 +295,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.19"
"version": "3.9.21"
}
},
"nbformat": 4,
Expand Down
29 changes: 13 additions & 16 deletions templates_notebooks/template_3dflat.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,13 @@
}
],
"source": [
"%matplotlib inline\n",
"# %matplotlib notebook--> use this when doing jupyter notebook\n",
"# %matplotlib widget --> use this when doing jupyterlab\n",
"%load_ext autoreload\n",
"%autoreload 2\n",
"\n",
"#___________________________________________________________________________________________________________________\n",
"get_ipython().magic('matplotlib notebook')\n",
"get_ipython().magic('load_ext autoreload')\n",
"get_ipython().magic('autoreload 2')\n",
"import os\n",
"import numpy as np\n",
"import time\n",
Expand Down Expand Up @@ -236,9 +239,7 @@
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"scrolled": false
},
"metadata": {},
"outputs": [
{
"name": "stdout",
Expand Down Expand Up @@ -499,9 +500,7 @@
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"scrolled": false
},
"metadata": {},
"outputs": [
{
"name": "stdout",
Expand Down Expand Up @@ -809,19 +808,17 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": false
},
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"celltoolbar": "Tags",
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"display_name": "1 Python 3 (based on the module python3/2023.01)",
"language": "python",
"name": "python3"
"name": "python3_2023_01"
},
"language_info": {
"codemirror_mode": {
Expand All @@ -833,7 +830,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.11"
"version": "3.10.10"
},
"latex_envs": {
"LaTeX_envs_menu_present": true,
Expand All @@ -855,5 +852,5 @@
}
},
"nbformat": 4,
"nbformat_minor": 2
"nbformat_minor": 4
}
32 changes: 13 additions & 19 deletions templates_notebooks/template_3dflat_multiwall.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,12 @@
}
],
"source": [
"%matplotlib inline\n",
"# %matplotlib notebook--> use this when doing jupyter notebook\n",
"# %matplotlib widget --> use this when doing jupyterlab\n",
"%load_ext autoreload\n",
"%autoreload 2\n",
"#___________________________________________________________________________________________________________________\n",
"get_ipython().magic('matplotlib notebook')\n",
"get_ipython().magic('load_ext autoreload')\n",
"get_ipython().magic('autoreload 2')\n",
"import os\n",
"import numpy as np\n",
"import time\n",
Expand Down Expand Up @@ -236,9 +238,7 @@
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"scrolled": false
},
"metadata": {},
"outputs": [
{
"name": "stdout",
Expand Down Expand Up @@ -374,9 +374,7 @@
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"scrolled": false
},
"metadata": {},
"outputs": [
{
"name": "stdout",
Expand Down Expand Up @@ -599,9 +597,7 @@
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"scrolled": false
},
"metadata": {},
"outputs": [
{
"name": "stdout",
Expand Down Expand Up @@ -972,9 +968,7 @@
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"scrolled": false
},
"metadata": {},
"outputs": [
{
"name": "stdout",
Expand Down Expand Up @@ -1012,9 +1006,9 @@
"metadata": {
"celltoolbar": "Tags",
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"display_name": "1 Python 3 (based on the module python3/2023.01)",
"language": "python",
"name": "python3"
"name": "python3_2023_01"
},
"language_info": {
"codemirror_mode": {
Expand All @@ -1026,7 +1020,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.11"
"version": "3.10.10"
},
"latex_envs": {
"LaTeX_envs_menu_present": true,
Expand All @@ -1048,5 +1042,5 @@
}
},
"nbformat": 4,
"nbformat_minor": 2
"nbformat_minor": 4
}
Loading