SWOT Simulator for Ocean Science

CNES, updated 🕥 2022-11-25 11:28:41

SWOT Simulator for Ocean Science

|Latest Documentation Status| |Conda| |Downloads statistics| |Platforms| |Latest Release Date| |License| |Binder|

This software simulates SWOT observations of the sea surface height (SSH) that can be applied to an ocean general circulation model (OGCM), allowing the exploration of ideas and methods to optimize information retrieval from the SWOT Mission in the future. From OGCM SSH inputs, the software generates SWOT-like outputs on a swath along the orbit ground track and adds measurement errors and noise, which are generated according to technical characteristics published by the SWOT project team. Not designed to directly simulate the payload instrument performance, this SWOT simulator aims at providing statistically realistic outputs for the science community with a simple software package released as an open source in Python. The software is scalable and designed to support future evolution of orbital parameters, error budget estimates from the project team and suggestions from the science community.

Tutorial and reference documentation is provided at swot-simulator.readthedocs.io <https://swot-simulator.readthedocs.io>_.


This project was created by Clement Ubelmann, Lucile Gaultier and Lee-Lueng Fu.

Jet Propulsion Laboratory, California Institute of Technology, CNES


swot_simulator is provided under a BSD-style license that can be found in the LICENSE <https://github.com/CNES/swot_simulator/blob/master/LICENSE>_ file. By using, distributing, or contributing to this project, you agree to the terms and conditions of this license.

.. |Latest Documentation Status| image:: https://dev.azure.com/fbriol/swot_simulator/_apis/build/status/CNES.swot_simulator?branchName=master :target: https://dev.azure.com/fbriol/swot_simulator/_build/latest?definitionId=2&branchName=master .. |Conda| image:: https://anaconda.org/conda-forge/swot_simulator/badges/installer/conda.svg?service=github :target: https://www.anaconda.com/distribution/ .. |Downloads statistics| image:: https://anaconda.org/conda-forge/swot_simulator/badges/downloads.svg?service=github :target: https://www.anaconda.com/distribution/ .. |Platforms| image:: https://anaconda.org/conda-forge/swot_simulator/badges/platforms.svg?service=github :target: https://anaconda.org/conda-forge/swot_simulator .. |Latest Release Date| image:: https://anaconda.org/conda-forge/swot_simulator/badges/latest_release_date.svg?service=github :target: https://github.com/CNES/swot_simulator/commits/master .. |License| image:: https://anaconda.org/conda-forge/swot_simulator/badges/license.svg?service=github :target: https://opensource.org/licenses/BSD-3-Clause .. |Binder| image:: https://binder.pangeo.io/badge_logo.svg :target: https://binder.pangeo.io/v2/gh/CNES/swot_simulator/master?filepath=notebooks


21 day cycle with AVISO data

opened on 2023-01-25 10:33:01 by marinadmo


I would like to re-create 21 days of SWOT passes, I am interested to have the passes location in a certain region during the entire cycle. To do that, I plan to use the AVISO example. I would like to run: swot_simulator conf.py --first-date 20190101 --last-date 20190122

Thus I would like to extend the range definition. I get this kind of error if I try to run swot_simulator conf.py --first-date 20190102: IndexError: period [2019-01-02T00:00:00.000000000, 2019-01-03T00:51:26.254174000] is out of range: [2018-12-31T00:00:00, 2019-01-03T00:00:00]

How can I use other dates other than 20190101 for AVISO? Do I have to modify the AVISO plugin in order to do that or is there a simpler way?



How to use 'swot_simulator.plugins.ssh.hycom'?

opened on 2022-12-17 04:30:06 by Mingzhi-Sun

I would like to use HYCOM (HYCOM + NCODA Global 1/12° Reanalysis (GLBu0.08/expt_19.1)) to simulate SWOT observations, but the data format I downloaded does not meet the requirements of the swot_simulator. However, the manual has few instructions on the input data format. Can you provide an example of HYCOM for swot_simlator? Just like the example from AVISO in swot_simulator. Many thanks!

Nseed is parameters does not appear to have an effect

opened on 2022-06-29 18:14:48 by jesscag

When I run the simulator with different NSEED values, the swaths produced are identical, as well as the errors generated. image image The left swath is generated using nseed =1655997574418 , while the right swath is generated with nseed= 1655997771280. The errors are the same. How can we fix this? The errors are no longer generated truly randomly.

Orbital error generation is too high?

opened on 2022-06-13 17:53:32 by jesscag

After generating a swath based on the example and using the build in AVISO sample data I noticed that the orbital noise added to the swath is far too high. image The left hand image is the 'truth' from the product.simulated_true_ssh_karin and the right hand image is karin SSH with all errors/noise generated product.ssh_karin These swaths were generated using: configuration = swot_simulator.settings.template(python = True) parameters = swot_simulator.settings.Parameters(configuration) parameters.ssh_plugin = swot_simulator.plugins.ssh.AVISO(swot_simulator.DATA)

After removing the orbital noise error and utilizing the corrected roll the swath looks much more realistic image Where the left is truth and the right is product.ssh_karin These swaths were generated using: configuration = swot_simulator.settings.template(python = True) parameters = swot_simulator.settings.Parameters(configuration) parameters.ssh_plugin = swot_simulator.plugins.ssh.AVISO(swot_simulator.DATA) parameters.noise = ['Altimeter', 'Karin', 'BaselineDilation', 'WetTroposphere', 'Timing', 'CorrectedRollPhase'] When looked at alone, the swath with only orbital error looks like: image

Is it possible I am implementing this error wrong or is the signal from this error too strong? Thanks!

Last generated swath can possibly go past the last date

opened on 2022-04-22 07:59:19 by robin-cls

When specifying the first_date and last_date of a simulation, it is possible that the simulator generates a swath that ends after the specified last_date (see https://github.com/CNES/swot_simulator/blob/master/swot_simulator/orbit_propagator.py#L298)

In my case, I try to simulate data over the MITGCM time span but my plugin raises an error stating that I do not have sufficient interpolation data: Exception: Out of bounds, mitgcm files spans [2011-09-13T00:00:00.000000000,2012-11-15T14:00:00.000000000]which does not cover the required time period [2012-11-15T13:59:27.280938, 2012-11-15T14:03:52.230859]

How should we handle this case ? - Should the plugin be returning invalid values when out of bounds - Should the last swath be omitted from the simulation if its last date is out of bounds - Should the user tune its first and last date of simulation so that the simulated swath falls in-bounds


Bug fix 2021-11-14 10:33:44

The generation failed when writing the wet troposphere correction in Nadir products.

Handle NZ grids. 2021-11-13 09:10:23

  • ISO date doesn't always contain microseconds.
  • Use ravel instead of flatten for numpy arrays.
  • Handle NZ grids

Plugins to interpolate Schism maps 2021-09-24 05:30:43

  • Logging settings
  • Plugins to interpolate Schism maps
  • Fixes issues on Nadir products

Orbital Error 2021-09-16 07:59:54

  • DATA folder is not available after pip install.
  • Added a test set to interpolate an SSH.

Orbital Error 2021-09-13 13:12:46

  • Bug fix: swaths are stored from right to left instead of left to right.
  • Writing of Nadir products in proper format (official GDR reduced format).
  • Addition of the orbital error.
  • The simulator version is written in the generated products.

Unsmoothed products 2021-07-21 19:54:14

  • Support for unsmoothed products.
  • Retains the simulation parameters.
  • Bug fix: cross track distances are written in km.
  • Set the satellite coordinates at the equator.
  • Refactor the plugin architecture.

simulation python swot ocean-sciences