Skip to content

Commit 8ff1fc1

Browse files
committed
set up ad doc
1 parent acb1b54 commit 8ff1fc1

File tree

13 files changed

+235
-152
lines changed

13 files changed

+235
-152
lines changed

.hgignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ syntax: glob
66
*.eclipse.*
77
*.idea*
88
*.project*
9+
doc/.*
910
syntax: regexp
1011
^build$
1112
syntax: regexp

README.md

Lines changed: 0 additions & 148 deletions
Original file line numberDiff line numberDiff line change
@@ -37,151 +37,3 @@ for tracking.
3737

3838
### Grid manipulation ###
3939

40-
Loading grid
41-
```python
42-
from py_eddy_tracker.dataset.grid import RegularGridDataset
43-
grid_name, lon_name, lat_name = 'share/nrt_global_allsat_phy_l4_20190223_20190226.nc', 'longitude', 'latitude'
44-
h = RegularGridDataset(grid_name, lon_name, lat_name)
45-
```
46-
47-
Plotting grid
48-
```python
49-
from matplotlib import pyplot as plt
50-
fig = plt.figure(figsize=(14, 12))
51-
ax = fig.add_axes([.02, .51, .9, .45])
52-
ax.set_title('ADT (m)')
53-
ax.set_ylim(-75, 75)
54-
ax.set_aspect('equal')
55-
m = h.display(ax, name='adt', vmin=-1, vmax=1)
56-
ax.grid(True)
57-
plt.colorbar(m, cax=fig.add_axes([.94, .51, .01, .45]))
58-
```
59-
60-
Filtering
61-
```python
62-
h = RegularGridDataset(grid_name, lon_name, lat_name)
63-
h.bessel_high_filter('adt', 500, order=3)
64-
```
65-
66-
Save grid
67-
```python
68-
h.write('/tmp/grid.nc')
69-
```
70-
71-
Add second plot
72-
```python
73-
ax = fig.add_axes([.02, .02, .9, .45])
74-
ax.set_title('ADT Filtered (m)')
75-
ax.set_aspect('equal')
76-
ax.set_ylim(-75, 75)
77-
m = h.display(ax, name='adt', vmin=-.1, vmax=.1)
78-
ax.grid(True)
79-
plt.colorbar(m, cax=fig.add_axes([.94, .02, .01, .45]))
80-
fig.savefig('share/png/filter.png')
81-
```
82-
83-
![signal filtering](share/png/filter.png)
84-
85-
#### Compute spectrum and spectrum ratio on some area ####
86-
Load data
87-
```python
88-
raw = RegularGridDataset(grid_name, lon_name, lat_name)
89-
filtered = RegularGridDataset(grid_name, lon_name, lat_name)
90-
filtered.bessel_low_filter('adt', 150, order=3)
91-
92-
areas = dict(
93-
sud_pacific=dict(llcrnrlon=188, urcrnrlon=280, llcrnrlat=-64, urcrnrlat=-7),
94-
atlantic_nord=dict(llcrnrlon=290, urcrnrlon=340, llcrnrlat=19.5, urcrnrlat=43),
95-
indien_sud=dict(llcrnrlon=35, urcrnrlon=110, llcrnrlat=-49, urcrnrlat=-26),
96-
)
97-
```
98-
99-
Compute and display spectrum
100-
```python
101-
fig = plt.figure(figsize=(10,6))
102-
ax = fig.add_subplot(111)
103-
ax.set_title('Spectrum')
104-
ax.set_xlabel('km')
105-
for name_area, area in areas.items():
106-
107-
lon_spec, lat_spec = raw.spectrum_lonlat('adt', area=area)
108-
mappable = ax.loglog(*lat_spec, label='lat %s raw' % name_area)[0]
109-
ax.loglog(*lon_spec, label='lon %s raw' % name_area, color=mappable.get_color(), linestyle='--')
110-
111-
lon_spec, lat_spec = filtered.spectrum_lonlat('adt', area=area)
112-
mappable = ax.loglog(*lat_spec, label='lat %s high' % name_area)[0]
113-
ax.loglog(*lon_spec, label='lon %s high' % name_area, color=mappable.get_color(), linestyle='--')
114-
115-
ax.set_xscale('log')
116-
ax.legend()
117-
ax.grid()
118-
fig.savefig('share/png/spectrum.png')
119-
```
120-
121-
![spectrum](share/png/spectrum.png)
122-
123-
Compute and display spectrum ratio
124-
```python
125-
fig = plt.figure(figsize=(10,6))
126-
ax = fig.add_subplot(111)
127-
ax.set_title('Spectrum ratio')
128-
ax.set_xlabel('km')
129-
for name_area, area in areas.items():
130-
lon_spec, lat_spec = filtered.spectrum_lonlat('adt', area=area, ref=raw)
131-
mappable = ax.plot(*lat_spec, label='lat %s high' % name_area)[0]
132-
ax.plot(*lon_spec, label='lon %s high' % name_area, color=mappable.get_color(), linestyle='--')
133-
134-
ax.set_xscale('log')
135-
ax.legend()
136-
ax.grid()
137-
fig.savefig('share/png/spectrum_ratio.png')
138-
```
139-
![spectrum ratio](share/png/spectrum_ratio.png)
140-
141-
#### Run an identification on a grid ####
142-
143-
Activate verbose
144-
```python
145-
import logging
146-
logging.getLogger().setLevel('DEBUG') # Values: ERROR, WARNING, INFO, DEBUG
147-
```
148-
149-
Run identification
150-
```python
151-
from datetime import datetime
152-
h = RegularGridDataset(grid_name, lon_name, lat_name)
153-
h.bessel_high_filter('adt', 500, order=3)
154-
date = datetime(2019, 2, 23)
155-
a, c = h.eddy_identification(
156-
'adt', 'ugos', 'vgos', # Variable to use for identification
157-
date, # Date of identification
158-
0.002, # step between two isolines of detection (m)
159-
pixel_limit=(5, 2000), # Min and max of pixel can be include in contour
160-
shape_error=55, # Error maximal of circle fitting over contour to be accepted
161-
bbox_surface_min_degree=.125 ** 2, # degrees surface minimal to take in account contour
162-
)
163-
```
164-
165-
Plot identification
166-
```python
167-
fig = plt.figure(figsize=(15,7))
168-
ax = fig.add_axes([.03,.03,.94,.94])
169-
ax.set_title('Eddies detected -- Cyclonic(red) and Anticyclonic(blue)')
170-
ax.set_ylim(-75,75)
171-
ax.set_xlim(0,360)
172-
ax.set_aspect('equal')
173-
a.display(ax, color='b', linewidth=.5)
174-
c.display(ax, color='r', linewidth=.5)
175-
ax.grid()
176-
fig.savefig('share/png/eddies.png')
177-
```
178-
179-
![eddies detected](share/png/eddies.png)
180-
181-
Save identification datas
182-
```python
183-
with Dataset(date.strftime('share/Anticyclonic_%Y%m%d.nc'), 'w') as h:
184-
a.to_netcdf(h)
185-
with Dataset(date.strftime('share/Cyclonic_%Y%m%d.nc'), 'w') as h:
186-
c.to_netcdf(h)
187-
```

doc/autodoc/eddy_feature.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Eddy Features
2+
=============
3+
4+
.. automodule:: py_eddy_tracker.eddy_feature
5+
:members:
6+
:undoc-members:
7+
:show-inheritance:
8+

doc/autodoc/featured_tracking.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Featured tracking
2+
=================
3+
4+
.. automodule:: py_eddy_tracker.featured_tracking.old_tracker_reference
5+
:members:
6+
:undoc-members:
7+
:show-inheritance:

doc/autodoc/grid.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Grid
2+
====
3+
4+
.. automodule:: py_eddy_tracker.dataset.grid
5+
:members:
6+
:undoc-members:
7+
:show-inheritance:
8+

doc/autodoc/observations.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Observations
2+
============
3+
4+
.. automodule:: py_eddy_tracker.observations
5+
:members:
6+
:undoc-members:
7+
:show-inheritance:
8+

doc/autodoc/poly.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Polygon function
2+
================
3+
4+
.. automodule:: py_eddy_tracker.poly
5+
:members:
6+
:undoc-members:
7+
:show-inheritance:
8+

doc/conf.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,15 +112,16 @@
112112

113113
# The theme to use for HTML and HTML Help pages. See the documentation for
114114
# a list of builtin themes.
115-
html_theme = 'sphinx-rtd-theme'
115+
import sphinx_rtd_theme
116+
html_theme = "sphinx_rtd_theme"
116117

117118
# Theme options are theme-specific and customize the look and feel of a theme
118119
# further. For a list of options available for each theme, see the
119120
# documentation.
120121
#html_theme_options = {}
121122

122123
# Add any paths that contain custom themes here, relative to this directory.
123-
#html_theme_path = []
124+
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
124125

125126
# The name for this set of Sphinx documents. If None, it defaults to
126127
# "<project> v<release> documentation".
@@ -131,7 +132,7 @@
131132

132133
# The name of an image file (relative to this directory) to place at the top
133134
# of the sidebar.
134-
#html_logo = None
135+
html_logo = '../share/png/logo.png'
135136

136137
# The name of an image file (relative to this directory) to use as a favicon of
137138
# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32

doc/grid_identification.rst

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
=====================
2+
Eddies identification
3+
=====================
4+
5+
Run an identification on a grid
6+
*******************************
7+
8+
Activate verbose
9+
10+
.. code-block:: python
11+
12+
import logging
13+
logging.getLogger().setLevel('DEBUG') # Values: ERROR, WARNING, INFO, DEBUG
14+
15+
Run identification
16+
17+
.. code-block:: python
18+
19+
from datetime import datetime
20+
h = RegularGridDataset(grid_name, lon_name, lat_name)
21+
h.bessel_high_filter('adt', 500, order=3)
22+
date = datetime(2019, 2, 23)
23+
a, c = h.eddy_identification(
24+
'adt', 'ugos', 'vgos', # Variable to use for identification
25+
date, # Date of identification
26+
0.002, # step between two isolines of detection (m)
27+
pixel_limit=(5, 2000), # Min and max of pixel can be include in contour
28+
shape_error=55, # Error maximal of circle fitting over contour to be accepted
29+
bbox_surface_min_degree=.125 ** 2, # degrees surface minimal to take in account contour
30+
)
31+
32+
Plot identification
33+
34+
.. code-block:: python
35+
36+
fig = plt.figure(figsize=(15,7))
37+
ax = fig.add_axes([.03,.03,.94,.94])
38+
ax.set_title('Eddies detected -- Cyclonic(red) and Anticyclonic(blue)')
39+
ax.set_ylim(-75,75)
40+
ax.set_xlim(0,360)
41+
ax.set_aspect('equal')
42+
a.display(ax, color='b', linewidth=.5)
43+
c.display(ax, color='r', linewidth=.5)
44+
ax.grid()
45+
fig.savefig('share/png/eddies.png')
46+
47+
.. image:: ../share/png/eddies.png
48+
49+
Save identification datas
50+
51+
.. code-block:: python
52+
53+
with Dataset(date.strftime('share/Anticyclonic_%Y%m%d.nc'), 'w') as h:
54+
a.to_netcdf(h)
55+
with Dataset(date.strftime('share/Cyclonic_%Y%m%d.nc'), 'w') as h:
56+
c.to_netcdf(h)

doc/grid_load_display.rst

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
===========================
2+
Load, Display and Filtering
3+
===========================
4+
5+
Loading grid
6+
7+
.. code-block:: python
8+
9+
from py_eddy_tracker.dataset.grid import RegularGridDataset
10+
grid_name, lon_name, lat_name = 'share/nrt_global_allsat_phy_l4_20190223_20190226.nc', 'longitude', 'latitude'
11+
h = RegularGridDataset(grid_name, lon_name, lat_name)
12+
13+
Plotting grid
14+
15+
.. code-block:: python
16+
17+
from matplotlib import pyplot as plt
18+
fig = plt.figure(figsize=(14, 12))
19+
ax = fig.add_axes([.02, .51, .9, .45])
20+
ax.set_title('ADT (m)')
21+
ax.set_ylim(-75, 75)
22+
ax.set_aspect('equal')
23+
m = h.display(ax, name='adt', vmin=-1, vmax=1)
24+
ax.grid(True)
25+
plt.colorbar(m, cax=fig.add_axes([.94, .51, .01, .45]))
26+
27+
28+
Filtering
29+
30+
.. code-block:: python
31+
32+
h = RegularGridDataset(grid_name, lon_name, lat_name)
33+
h.bessel_high_filter('adt', 500, order=3)
34+
35+
36+
Save grid
37+
38+
.. code-block:: python
39+
40+
h.write('/tmp/grid.nc')
41+
42+
43+
Add second plot
44+
45+
.. code-block:: python
46+
47+
ax = fig.add_axes([.02, .02, .9, .45])
48+
ax.set_title('ADT Filtered (m)')
49+
ax.set_aspect('equal')
50+
ax.set_ylim(-75, 75)
51+
m = h.display(ax, name='adt', vmin=-.1, vmax=.1)
52+
ax.grid(True)
53+
plt.colorbar(m, cax=fig.add_axes([.94, .02, .01, .45]))
54+
fig.savefig('share/png/filter.png')
55+
56+
.. image:: ../share/png/filter.png

0 commit comments

Comments
 (0)