AntSimi / py-eddy-tracker

Eddy identification and tracking
https://py-eddy-tracker.readthedocs.io/en/latest/
GNU General Public License v3.0
120 stars 48 forks source link

Eddies detected on land #223

Closed Fanny-Chenillat closed 7 months ago

Fanny-Chenillat commented 7 months ago

Hello, It seems that I have an issue on detection of eddies over the Mediterranean Sea using CROCO outputs. On the attached screenshot, I put the occurrence of anticyclonic eddies for observations from AVISO on top (no problem…islands are white on the figure) and for the CROCO model bellow: for example, over the Baleares Islands, there is some eddies detected (red islands), i.e., values are not null. I double check the model mask, which is high resolution, and islands as Baleares are well represented. This is pretty much the case for all small islands. I have absolutely no idea where this comes from. Did you already meet such issue? Is there is any option I forgot to mention? Maybe for the detection step? Maybe I should mention that I actually launch the eddy detection from CROCO outputs using UnRegularGrid. Best regards. Fanny Chenillat
Capture d'écran 2023-12-01 171932

AntSimi commented 7 months ago

Island are masked by nan or by a mask?

Fanny-Chenillat commented 7 months ago

Island are masked by nan or by a mask?

For the model, there is a gridfile where island are masked by a mask, but values are typically 0 on island for the dataset of surface sea level. There is also a mask on the datafile and it seems that it is not correct (it is nan everywhere). Does pyeddytracker used the mask on the datafile? Or should I directly mask the data on the ncfile?

I double-checked for the AVISO data where values are masked by NaN.

Best regards

Fanny

AntSimi commented 7 months ago

could share one croco file which produce detection over land, and how you run this detection?

Fanny-Chenillat commented 7 months ago

Would you mind if I send you documents by email?

Fanny-Chenillat commented 7 months ago

Thanks Antoine for your question that gave me a clue: it was actually necessary to mask the data (zeta in this case).

So I replaced the 0's with nan's at the land point from sea surface level (zeta=np.where(mask_rho==0,np.nan,zeta in the locally modified eddy_identification function), and that was it: no more eddies on the Balearic islands!

Cheers!

AntSimi commented 7 months ago

You're welcome, I didn't do anything