@@ -10,132 +10,134 @@ For in depth details about the MOM6 ocean model, please visit provided
10
10
details about this repository can be found below. For usage of
11
11
the GridUtils library, please visit the [ user manual] ( docs/manual/GridUtils.md ) .
12
12
13
- Required items:
14
- * spherical.py
15
- * gridutils.py
16
- * app.py
17
-
18
- Optional items:
19
- * sysinfo.py
20
-
21
- Various tools are available to manipulation of new and existing grids in
22
- an iterative or interactive form.
13
+ Various examples are available to demonstrate manipulation of new and existing
14
+ grids in an iterative or interactive (application) form.
23
15
24
16
Python notebooks:
25
- * mkGridIterative.ipynb
26
- * mkGridInteractive.ipynb
17
+ * [ mkGridIterative.ipynb] ( examples/mkGridIterative.ipynb )
18
+ * [ mkGridInteractive.ipynb] ( examples/mkGridInteractive.ipynb )
19
+ * The [ gridtools application tutorial] ( docs/manual/gridtoolAppTutorial.ipynb )
27
20
28
- With this software, you should be able to operate in any mode you prefer.
21
+ Python scripts:
22
+ * [ examples] ( examples )
29
23
30
24
# Operational Modes
31
25
32
26
## Command Line
33
27
34
- Using the command line or writing your own python scripts possible utilizing this library.
35
- To look at a few examples, please look at the mkGridsExample1.py, mkGridsExample2.py and
36
- mkGridsExample3.py programs .
28
+ Using the command line or writing your own python scripts is also
29
+ possible utilizing this library. Please see the python scripts
30
+ in the [ examples ] ( examples ) folder .
37
31
38
32
## Command Line Widget Mode
39
33
40
34
* ipython --pylab
41
35
42
- The interpreter, ipython, can run python scripts and notebook scripts. To run a notebook
43
- script, you can use ` ipython -c "%run your_script.ipynb" ` . Or start ipython, and then
36
+ The interpreter, ipython, can run python scripts and notebook scripts.
37
+ To run a notebook script, you can use
38
+ ` ipython -c "%run your_script.ipynb" ` . Or start ipython, and then
44
39
` %run your_script.ipynb ` .
45
40
46
- Again, the mkGridsExample.py programs can be run with ipython.
41
+ The [ example ] ( examples ) python scripts can also be run with ipython.
47
42
48
43
## Jupyter notebook
49
44
50
45
* jupyter notebook
51
46
52
- These prefer notebook files (ipynb). Please see the mkGridIterative.ipynb program for a hands
53
- on way to access the grid generation library.
47
+ These prefer notebook files (ipynb). Please see the
48
+ mkGridIterative.ipynb notebook for a hands on way to access the grid
49
+ generation library.
54
50
55
- A simple graphical user interface (GUI) was built and is available when you run the
51
+ A simple graphical user interface (GUI) was built and is available using the
56
52
mkGridInteractive.ipynb notebook.
57
53
58
54
## Jupyter lab
59
55
60
56
* jupyter lab
61
57
62
- These prefer notebook files (ipynb). Please see the mkGridIterative.ipynb program for a hands
63
- on way to access the grid generation library.
58
+ These prefer notebook files (ipynb). Please see the
59
+ mkGridIterative.ipynb notebook for a hands on way to access the grid
60
+ generation library. Jupyter lab also provides a command console
61
+ for running python scripts.
64
62
65
- A simple graphical user interface (GUI) was built and is available when you run the
66
- mkGridInteractive.ipynb notebook.
63
+ ## Application
67
64
68
- ## mybinder
65
+ The grid generation application, mkGridInteractive.ipynb, can be run
66
+ using jupyter on a cloud hosting system.
67
+
68
+ ### mybinder.org
69
69
70
70
* Main: [ ![ Binder] ( https://mybinder.org/badge_logo.svg )] ( https://mybinder.org/v2/gh/ESMG/gridtools/main )
71
71
* Dev: [ ![ Binder] ( https://mybinder.org/badge_logo.svg )] ( https://mybinder.org/v2/gh/ESMG/gridtools/dev )
72
72
73
- Instead of loading software on your computer, the library and application is hosted on a cloud system . You do not
74
- have to install anything on your system to use the cloud system's copy of the grid generation library.
75
-
76
- # Application
73
+ NOTE: This is provided as a point of demonstration . These cloud
74
+ system instances do not persist for a long period of time and should
75
+ not be used in production. Any information created on these systems
76
+ should be backed up as soon as possible.
77
77
78
- The grid generation application, mkGridInteractive.ipynb, can be run on a cloud hosting system. The application has been adapted to work on mybinder.org.
79
- NOTICE: The mybinder application can take upwards to 30 minutes to build.
80
-
81
- Use the following options:
78
+ The form at mybinder.org can be manually filled out instead of useing the links
79
+ above:
82
80
* GitHub=https://github.com/ESMG/gridtools
83
81
* Git ref=main
84
82
* Launch
85
83
* Once the server loads, navigate to gridTools/mkMapInteractive.ipynb
86
84
* Re-run all the cells
87
85
* Have fun with the grid editor.
88
86
89
- # Code contributions
90
-
91
- ## Lambert Conformal Conic Grid Generation
92
- Author: Niki Zadeh [ REPO] ( https://github.com/nikizadehgfdl/grid_generation )
93
- * [ regional_grid_spheical.ipynb] ( https://github.com/nikizadehgfdl/grid_generation/blob/dev/jupynotebooks/regional_grid_spherical.ipynb )
94
-
95
- ## Numpy bitwise-the-same floating-point values
96
- Author: Alistair Adcroft [ REPO] ( https://github.com/adcroft/numpypi )
97
- * To obtain bitwise-the-same floating-point values in certain non-time-critical calculations.
98
-
99
- ## ROMS to MOM6 Grid Converter
100
- Authors: Mehmet Ilicak; Alistair Adcroft [ REPO] ( https://github.com/ESMG/pyroms )
101
- * [ convert_ROMS_grid_to_MOM6.py] ( https://raw.githubusercontent.com/ESMG/pyroms/python3/examples/grid_MOM6/convert_ROMS_grid_to_MOM6.py )
102
-
103
87
# Installation
104
88
105
- If you plan to use the grid generation software on your system, you need to peform the following steps.
89
+ If you plan to use the grid generation software on your system, you
90
+ need to peform the following steps or follow the
91
+ [ local installation tutorial] ( docs/manual/local_installation_tutorial.ipynb ) .
106
92
107
93
## Step 1
108
94
109
- [ Download ] ( https://github.com/ESMG/gridtools/archive/refs/heads/main.zip ) or [ clone ] ( https://github.com/ESMG/gridtools.git ) the
110
- [ ESMG/gridtools ] ( https://github.com/ESMG/gridtools ) repository .
95
+ Install conda or manually install the python libraries and software
96
+ dependencies that would allow you to run the python scripts or notebooks .
111
97
112
- Discover the full directory path to gridtools/gridTools/lib . Place the full path in the environment variable ` LIBROOT ` if you are planning to run
113
- the python notebooks. If you are going to use the library in your scripts, simply append the full path to ` PYTHONPATH ` . In the future, we will enable
114
- installation using ptyhon pip .
98
+ We have pulled together some pre-defined environments . You may also
99
+ install an environment yourself . Please review the
100
+ [ conda ] ( docs/conda/README.md ) page for more information about conda .
115
101
116
- ## Step 2
102
+ We currently recommend the * gridTools* environment for use with this
103
+ library.
117
104
118
- Install conda or manually install the python libraries and software dependencies that would allow you to run the python scripts or notebooks.
105
+ NOTE: If ** conda** cannot be used,
106
+ a list of [ required software] ( docs/development/Requirements.md ) is
107
+ provided. Once software and libraries are installed, the remaining
108
+ software should be installable via pip and/or python's virtual
109
+ environment (venv).
119
110
120
- We have pulled together some pre-defined environments. You may also install an environment yourself. Please look at the [ conda] ( docs/conda/README.md )
121
- page for more information about conda.
111
+ ## Step 2
122
112
123
- We currently recommend the * xesmfTools* environment for use with this libaray.
113
+ [ Download] ( https://github.com/ESMG/gridtools/archive/refs/heads/main.zip )
114
+ or [ clone] ( https://github.com/ESMG/gridtools.git ) the
115
+ [ ESMG/gridtools] ( https://github.com/ESMG/gridtools ) repository.
124
116
125
- ## Step 3
117
+ The ` python setup.py install ` method is now considered a legacy installation
118
+ method. Please use the ` python -m pip install ` method.
126
119
127
- Follow any steps in the "Workarounds" section.
120
+ ### pip
121
+
122
+ ```
123
+ $ cd gridtools
124
+ $ python -m pip install .
125
+ ```
128
126
129
127
# Workarounds
130
128
131
- These are the current workarounds that are required for the grid toolset
132
- package. You will need to perform these steps once if you plan to install a
133
- copy of the grid generation software.
129
+ These are the current workarounds that are required for the grid
130
+ toolset package. You may need to perform these steps once if you
131
+ plan to install a copy of the grid generation software.
132
+
133
+ NOTE: These workarounds should be automatically installed with
134
+ an installation of gridtools.
134
135
135
136
## datashader
136
137
137
- The lastest version from github is required for proper operation of bokeh, holoviews and panel which
138
- are used by the interactive portions of the grid generation library.
138
+ The lastest version from github is required for proper operation of
139
+ bokeh, holoviews and panel which are used by the interactive portions
140
+ of the grid generation library.
139
141
140
142
[ REPO] ( https://github.com/holoviz/datashader )
141
143
@@ -145,13 +147,29 @@ Installation:
145
147
* Make sure your conda enviroment is active.
146
148
* ` pip install -e . `
147
149
148
- ## numpypi
150
+ NOTE: The datashader library should be automatically installed as a
151
+ dependency of gridtools.
149
152
150
- NOTE: This has not been fully implemented yet. Do not worry about this just yet.
153
+ ## numpypi
151
154
155
+ Portable intrinsics for numpy ([ REPO] ( https://github.com/adcroft/numpypi ) ).
152
156
For bitwise-the-same reproducable results, a numpy subset of computational functions are
153
- provided. These routines are slower than the numpy native routines.
154
- [ REPO] ( https://github.com/adcroft/numpypi )
157
+ provided. These routines are slower than the numpy native routines.
158
+ A repackaged installable [ REPO] ( https://github.com/jr3cermak/numpypi/tree/dev ) of the library.
159
+
160
+ # Code contributions
161
+
162
+ ## Lambert Conformal Conic Grid Generation
163
+ Author: Niki Zadeh [ REPO] ( https://github.com/nikizadehgfdl/grid_generation )
164
+ * [ regional_grid_spheical.ipynb] ( https://github.com/nikizadehgfdl/grid_generation/blob/dev/jupynotebooks/regional_grid_spherical.ipynb )
165
+
166
+ ## Portable intrinsics for numpy
167
+ Author: Alistair Adcroft [ REPO] ( https://github.com/adcroft/numpypi )
168
+ * To obtain bitwise-the-same floating-point values in certain non-time-critical calculations.
169
+
170
+ ## ROMS to MOM6 Grid Converter
171
+ Authors: Mehmet Ilicak; Alistair Adcroft [ REPO] ( https://github.com/ESMG/pyroms )
172
+ * [ convert_ROMS_grid_to_MOM6.py] ( https://raw.githubusercontent.com/ESMG/pyroms/python3/examples/grid_MOM6/convert_ROMS_grid_to_MOM6.py )
155
173
156
174
# More
157
175
@@ -163,6 +181,7 @@ to upkeep of a manual index.
163
181
* [ development] ( docs/development )
164
182
* [ CHANGELOG] ( docs/development/CHANGELOG.md ) : Development log of changes
165
183
* [ CREDITS] ( docs/development/CREDITS.md )
184
+ * [ DEPLOY] ( docs/development/DEPLOY.md )
166
185
* [ Design] ( docs/development/Design.md ) : Design elements for the grid generation library
167
186
* [ Important References] ( docs/development/ImportantReferences.md ) : Things that helped this project work
168
187
* [ Jupyter] ( docs/development/Jupyter.md ) : Notes on embeddeding applications within a notebook
@@ -178,10 +197,14 @@ to upkeep of a manual index.
178
197
* [ MOM6ROMS] ( docs/grids/MOM6ROMS.md ) : Important things between MOM6 and ROMS grids
179
198
* [ ROMS] ( docs/grids/ROMS.md ) : ROMS grids
180
199
* [ manual] ( docs/manual/GridUtils.md ) : User manual for the GridUtils library
200
+ * [ Installation tutorial] ( docs/manual/local_installation_tutorial.ipynb )
201
+ * [ Gridtools application tutorial] ( docs/manual/gridtoolAppTutorial.ipynb )
181
202
* [ resources] ( docs/resources )
182
203
* [ Bathymetry] ( docs/resources/Bathymetry )
183
204
184
205
# Development
185
206
186
- This project is soliciting help in development. Please contribute ideas or bug requests using the issues tab.
187
- Code contributions can be sent via github's pull request process.
207
+ This project is soliciting help in development. Please contribute
208
+ ideas or bug requests using the issues tab. Code contributions can
209
+ be sent via github's pull request process. Code adoption will follow
210
+ the [ contribution] ( CONTRIBUTING.md ) process.
0 commit comments