Skip to content

Commit 058b86a

Browse files
committed
Merge changes
2 parents 5b8f9c7 + 8ff1fc1 commit 058b86a

16 files changed

+1035
-148
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/Makefile

Lines changed: 216 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,216 @@
1+
# Makefile for Sphinx documentation
2+
#
3+
4+
# You can set these variables from the command line.
5+
SPHINXOPTS =
6+
SPHINXBUILD = sphinx-build
7+
PAPER =
8+
BUILDDIR = .build
9+
10+
# User-friendly check for sphinx-build
11+
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
12+
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
13+
endif
14+
15+
# Internal variables.
16+
PAPEROPT_a4 = -D latex_paper_size=a4
17+
PAPEROPT_letter = -D latex_paper_size=letter
18+
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
19+
# the i18n builder cannot share the environment and doctrees with the others
20+
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
21+
22+
.PHONY: help
23+
help:
24+
@echo "Please use \`make <target>' where <target> is one of"
25+
@echo " html to make standalone HTML files"
26+
@echo " dirhtml to make HTML files named index.html in directories"
27+
@echo " singlehtml to make a single large HTML file"
28+
@echo " pickle to make pickle files"
29+
@echo " json to make JSON files"
30+
@echo " htmlhelp to make HTML files and a HTML help project"
31+
@echo " qthelp to make HTML files and a qthelp project"
32+
@echo " applehelp to make an Apple Help Book"
33+
@echo " devhelp to make HTML files and a Devhelp project"
34+
@echo " epub to make an epub"
35+
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
36+
@echo " latexpdf to make LaTeX files and run them through pdflatex"
37+
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
38+
@echo " text to make text files"
39+
@echo " man to make manual pages"
40+
@echo " texinfo to make Texinfo files"
41+
@echo " info to make Texinfo files and run them through makeinfo"
42+
@echo " gettext to make PO message catalogs"
43+
@echo " changes to make an overview of all changed/added/deprecated items"
44+
@echo " xml to make Docutils-native XML files"
45+
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
46+
@echo " linkcheck to check all external links for integrity"
47+
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
48+
@echo " coverage to run coverage check of the documentation (if enabled)"
49+
50+
.PHONY: clean
51+
clean:
52+
rm -rf $(BUILDDIR)/*
53+
54+
.PHONY: html
55+
html:
56+
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
57+
@echo
58+
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
59+
60+
.PHONY: dirhtml
61+
dirhtml:
62+
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
63+
@echo
64+
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
65+
66+
.PHONY: singlehtml
67+
singlehtml:
68+
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
69+
@echo
70+
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
71+
72+
.PHONY: pickle
73+
pickle:
74+
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
75+
@echo
76+
@echo "Build finished; now you can process the pickle files."
77+
78+
.PHONY: json
79+
json:
80+
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
81+
@echo
82+
@echo "Build finished; now you can process the JSON files."
83+
84+
.PHONY: htmlhelp
85+
htmlhelp:
86+
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
87+
@echo
88+
@echo "Build finished; now you can run HTML Help Workshop with the" \
89+
".hhp project file in $(BUILDDIR)/htmlhelp."
90+
91+
.PHONY: qthelp
92+
qthelp:
93+
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
94+
@echo
95+
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
96+
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
97+
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/py-eddy-tracker.qhcp"
98+
@echo "To view the help file:"
99+
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/py-eddy-tracker.qhc"
100+
101+
.PHONY: applehelp
102+
applehelp:
103+
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
104+
@echo
105+
@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
106+
@echo "N.B. You won't be able to view it unless you put it in" \
107+
"~/Library/Documentation/Help or install it in your application" \
108+
"bundle."
109+
110+
.PHONY: devhelp
111+
devhelp:
112+
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
113+
@echo
114+
@echo "Build finished."
115+
@echo "To view the help file:"
116+
@echo "# mkdir -p $$HOME/.local/share/devhelp/py-eddy-tracker"
117+
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/py-eddy-tracker"
118+
@echo "# devhelp"
119+
120+
.PHONY: epub
121+
epub:
122+
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
123+
@echo
124+
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
125+
126+
.PHONY: latex
127+
latex:
128+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
129+
@echo
130+
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
131+
@echo "Run \`make' in that directory to run these through (pdf)latex" \
132+
"(use \`make latexpdf' here to do that automatically)."
133+
134+
.PHONY: latexpdf
135+
latexpdf:
136+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
137+
@echo "Running LaTeX files through pdflatex..."
138+
$(MAKE) -C $(BUILDDIR)/latex all-pdf
139+
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
140+
141+
.PHONY: latexpdfja
142+
latexpdfja:
143+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
144+
@echo "Running LaTeX files through platex and dvipdfmx..."
145+
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
146+
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
147+
148+
.PHONY: text
149+
text:
150+
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
151+
@echo
152+
@echo "Build finished. The text files are in $(BUILDDIR)/text."
153+
154+
.PHONY: man
155+
man:
156+
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
157+
@echo
158+
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
159+
160+
.PHONY: texinfo
161+
texinfo:
162+
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
163+
@echo
164+
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
165+
@echo "Run \`make' in that directory to run these through makeinfo" \
166+
"(use \`make info' here to do that automatically)."
167+
168+
.PHONY: info
169+
info:
170+
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
171+
@echo "Running Texinfo files through makeinfo..."
172+
make -C $(BUILDDIR)/texinfo info
173+
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
174+
175+
.PHONY: gettext
176+
gettext:
177+
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
178+
@echo
179+
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
180+
181+
.PHONY: changes
182+
changes:
183+
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
184+
@echo
185+
@echo "The overview file is in $(BUILDDIR)/changes."
186+
187+
.PHONY: linkcheck
188+
linkcheck:
189+
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
190+
@echo
191+
@echo "Link check complete; look for any errors in the above output " \
192+
"or in $(BUILDDIR)/linkcheck/output.txt."
193+
194+
.PHONY: doctest
195+
doctest:
196+
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
197+
@echo "Testing of doctests in the sources finished, look at the " \
198+
"results in $(BUILDDIR)/doctest/output.txt."
199+
200+
.PHONY: coverage
201+
coverage:
202+
$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
203+
@echo "Testing of coverage in the sources finished, look at the " \
204+
"results in $(BUILDDIR)/coverage/python.txt."
205+
206+
.PHONY: xml
207+
xml:
208+
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
209+
@echo
210+
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
211+
212+
.PHONY: pseudoxml
213+
pseudoxml:
214+
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
215+
@echo
216+
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."

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:

0 commit comments

Comments
 (0)