pyTMD icon indicating copy to clipboard operation
pyTMD copied to clipboard

Enhancement idea: documentation around advanced `pyTMD.compute` params

Open robbibt opened this issue 1 year ago • 1 comments

I've been seeing some great new functionality added to pyTMD recently, particularly around the following pyTMD.compute.* params:

        CORRECTIONS: str | None = None,
        INFER_MINOR: bool = True,
        MINOR_CONSTITUENTS: list | None = None,
        APPEND_NODE: bool = False,
        APPLY_FLEXURE: bool = False,

However, as someone without a tide science backgorund, I don't have a great understanding of what these features do, and so am unsure of whether I should be simply using the defaults or turn on any of these features to improve the accuracy of my tide modelling.

It would be fantastic to have a page in the docs that describes these features, and provides some guidance on the advantages/limitations/reasons for using each of them for different applications. For example, important things to consider or keep in mind so that users can make an informed decision based on their use case. 🙂 I could imagine this perhaps living somethere like this:

https://pytmd.readthedocs.io/en/latest/getting_started/Getting-Started.html#programs https://pytmd.readthedocs.io/en/latest/getting_started/Background.html

robbibt avatar Oct 29 '24 23:10 robbibt

Great great point. Definitely need to expand the documentation particularly after exposing more of these parameters. On the to-do list! Thanks @robbibt!

tsutterley avatar Oct 30 '24 17:10 tsutterley

@tsutterley The new documentation is looking really fantastic - lots of super useful new content in there, thankyou!

I had a quick question: this constituent table is great, and is actually something I was trying to generate myself using some of the content inside arguments.py.

Some of the constituents like s1 are of particular interest to me, as they have an exact integer frequency (e.g. 1.00000000) that lines up with the sun-synchronous cycle of our satellite data. s1 is included in EOT20 and FES2014, but I can't see it in arguments.py list here: https://github.com/tsutterley/pyTMD/blob/main/pyTMD/arguments.py#L1352-L1356

Does that mean this is a constituent that isn't modelled by pyTMD, even if a model has it available as a file? No problem either way, just curious more than anything. 🙂

robbibt avatar Feb 06 '25 01:02 robbibt

Hey @robbibt! Thanks! Yep I've been trying to put in some time, but it's definitely a work in progress.

I did build that table using the frequency and doodson_number functions within arguments, but had some custom stuff (like translating the Greek letters and adding the descriptions). The csv parsed in the documentation is in the _assets folder of the docs.

Ah great question. The software definitely can and does work with the solar constituents (e.g. s1). When using FES or GOT models the necessary parameters for each constituent are computed by grabbing the Doodson numbers from the JSON file. _constituent_parameters is only used to directly match the OTPS and TMD prediction software (that don't use s1).

tsutterley avatar Feb 06 '25 02:02 tsutterley

Hey @robbibt! Thanks! Yep I've been trying to put in some time, but it's definitely a work in progress.

I did build that table using the frequency and doodson_number functions within arguments, but had some custom stuff (like translating the Greek letters and adding the descriptions). The csv parsed in the documentation is in the _assets folder of the docs.

Ah great question. The software definitely can and does work with the solar constituents (e.g. s1). When using FES or GOT models the necessary parameters for each constituent are computed by grabbing the Doodson numbers from the JSON file. _constituent_parameters is only used to directly match the OTPS and TMD prediction software (that don't use s1).

Neat, that makes sense. In the long run, some kind of API to generate this table automatically (perhaps also including some extras like equilibrium tide amplitude, period etc) would be pretty neat - my specific application was going to be to create a similar table containing both period and aliasing periods (using the aliasing_period function you added recently) based on the overpass time for some of the main EO satellites, so having the table of all available constituents is great!

Image

robbibt avatar Feb 06 '25 03:02 robbibt