Comments (6)
First tracking use only detection file, it doesn't care of grid format
General information
area_tracker
associate observations only if there is an overlap greater than 20 % between contour of observations (use effective/outter contour)
Code for area tracker here
Match function
overlap function
default tracker
is based on distance between observations center, and check if amplitude and radius are close (maximal factor of 2.5 between the two observations)
Now, i use only AreaTracker which are more able to follow eddies during merging/spliting events.
General questions:
- Which tracker did you use it for those figures?
- How many days are display? 5 or more ?
Case
I guess yaml was set like that
PATHS:
# Files produces with EddyIdentification
FILES_PATTERN: MY_IDENTIFICATION_PATH/Anticyclonic*.nc #(5 files)
SAVE_DIR: MY_OUTPUT_PATH
# Number of timestep for missing detection
VIRTUAL_LENGTH_MAX: 0
# Minimal time to consider as a full track
TRACK_DURATION_MIN: 3
- Case 3 : i didn't see your identification file, but i think there are days between the untracked observation and the short track, maybe if you use VIRTUAL_LENGTH_MAX option you will join those observations, this options allow missing detection between few days
- Case 1 : How did you do display? Currently i wonder why i saw only one contour on track subplot(top right)
- Case 2 : Like case 1 i need more informations to understand, maybe you could share identification files and tracking configuration and tracking atlas?
You have some general informations about tracking here.
from py-eddy-tracker.
I used 'default tracker' with display of only 5 days for the figures I have attached before.
Yes, the yaml file is set like the way you've mentioned above.
How did I do the display?:--- By using effective contours in lat and lon
I also have made few tests using different regions and in some cases I see results like Case01 and Case02.
I have attached the identification and tracking files, and the tracking atlas.
from py-eddy-tracker.
Before to look at tracking, i do a quick look on identifcation files:
from matplotlib import pyplot as plt
from py_eddy_tracker.observations.observation import EddiesObservations
from glob import glob
from os import path
import pylook
fig = plt.figure(figsize=(10,11))
ax = fig.add_axes([.05,.05,.9,.9], projection='plat_carre')
ax.set_xlim(-100,30), ax.set_ylim(-60,75), ax.grid()
anticyclones = glob('files/identification_files/A*.nc')
cyclones = glob('files/identification_files/C*.nc')
for f in anticyclones:
EddiesObservations.load_file(f).display(ax, color='r', ref=-100, label=path.basename(f))
for f in cyclones:
EddiesObservations.load_file(f).display(ax, color='b', ref=-100, label=path.basename(f))
ax.legend()
fig.savefig('display.png')
I am surprised to see so few eddies in atlantic ocean. I will look at tracking step
from py-eddy-tracker.
I forgot to inform, that the eddies what we see here are at 1500 m depth.
from py-eddy-tracker.
- Case 1 :
There is a jump between two structure (due to weakness of default tracker) which are a mix of distance, radius similarity and amplitude similarity, default cost fuction code
There are two missing detection (9/7/2007 and 11/7/2007)
But only one observation was used in a path and the other go in untracked: My advice change tracker and use AreaTracker
from matplotlib import pyplot as plt
from py_eddy_tracker.observations.tracking import TrackEddiesObservations
import pylook
fig = plt.figure(figsize=(10,10))
ax = fig.add_axes([.075,.075,.85,.85], projection='plat_carre')
ax.set_xlim(-12,-9), ax.set_ylim(37,40), ax.grid()
d = TrackEddiesObservations.load_file('files/tracking_files/Cyclonic.nc')
d.plot(ax, ref=-100, label='Cyclonic path')
d.display(ax, ref=-100, label='Cyclonic contour', extern_only=True)
m = d.scatter(ax, d.time - 21000, ref=-100)
c=plt.colorbar(m, cax=fig.add_axes([0.94, 0.05, 0.01, 0.9]))
ax.legend()
fig.savefig('display_case1.png')
- Case 2 :
Similar to case 1 but with more complexity, again change tracker to areaTracker will avoid this type of problem
from matplotlib import pyplot as plt
from py_eddy_tracker.observations.tracking import TrackEddiesObservations
import pylook
fig = plt.figure(figsize=(10,10))
ax = fig.add_axes([.075,.075,.85,.85], projection='plat_carre')
ax.set_xlim(-12.5,-9.5), ax.set_ylim(34,37), ax.grid()
d = TrackEddiesObservations.load_file('files/tracking_files/Anticyclonic.nc')
d.plot(ax, ref=-100, label='Cyclonic path')
d.display(ax, ref=-100, label='Cyclonic contour', extern_only=True)
m = d.scatter(ax, d.time - 21000, ref=-100)
c=plt.colorbar(m, cax=fig.add_axes([0.94, 0.05, 0.01, 0.9]))
ax.legend()
fig.savefig('display_case2.png')
- Case 3 :
there are a missing detection on 9/7/2007, use virtual will allow to link all the observations together
from py-eddy-tracker.
In summary maybe use AreaTracker and virtual (set maybe between 1 to 5 days, to avoid missing detection)
from py-eddy-tracker.
Related Issues (20)
- Request for help HOT 3
- Bug with matplotlib 3.8
- py_eddy_tracker.dataset.grid issue HOT 6
- pixel position of grid HOT 4
- Lifetime average HOT 3
- The function in the library tried to use Numba to speed up the computation, but received an array of type numpy.ma.MaskedArray that is not supported by Numba. HOT 2
- error about eddy_identification function HOT 2
- Eddies detected on land HOT 6
- Eddy kinetic energy of different types of eddies and its calculation HOT 1
- about from py_eddy_tracker.dataset.grid import RegularGridDataset HOT 1
- Eddy detection issue HOT 3
- batch identification of eddies over multiple days from a single netCDF file HOT 14
- Request for help: No extrema found in contour of xxx pixels in level xxx HOT 6
- Issue reading NEMO UnRegularGrid HOT 2
- grid_count and grid_stat error HOT 2
- The boundary cannot be closed normally, and the longitude and latitude of some points are wrongγ HOT 6
- How to store the eddy tracking results HOT 4
- Data is Empty
- Data is Empty HOT 1
- Cartopy projection HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from py-eddy-tracker.