Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add python script for ensemble vortex generation #21

Merged
29 commits merged into from
Jun 14, 2021

Conversation

ghost
Copy link

@ghost ghost commented Jun 8, 2021

draft pull request; put discussion about besttrack perturbation here

@ghost ghost added the enhancement New feature or request label Jun 8, 2021
@ghost ghost self-assigned this Jun 8, 2021
@WPringle
Copy link
Contributor

WPringle commented Jun 8, 2021

Great, I am happy with this here. Maybe it will be easy enough just to have this as part of this repository for good.

Do you want to keep working on this to develop different options and modularize this in a single PR?

@WPringle
Copy link
Contributor

WPringle commented Jun 8, 2021

For starters I think I would like to extract "best_track_forcing" class from adcircy and make into some kind of "ATCF" or "vortex" class here.

@ghost
Copy link
Author

ghost commented Jun 9, 2021

Do you want to keep working on this to develop different options and modularize this in a single PR?

For starters I think I would like to extract "best_track_forcing" class from adcircy and make into some kind of "ATCF" or "vortex" class here.

yes, that's a good idea. Lets continue working on this branch and make it a full-fledged perturber

Comment on lines +750 to +755
variables = [
MaximumSustainedWindSpeed,
RadiusOfMaximumWinds,
AlongTrack,
CrossTrack,
]
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use class-based variable system to store all the per-variable data (for instance, AlongTrack contains the column name, lower and upper bounds, perturbation randomness type, and historical errors)

Comment on lines 76 to 82
class BestTrackPerturbedVariable(ABC):
name: str
random_type: RandomType = None
lower_bound: float = None
upper_bound: float = None
historical_forecast_errors: {str: float} = None
default: float = None # [mbar]
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

implement new variables by extending this abstract class (see CentralPressure, below, for example)

Comment on lines 85 to 91
class CentralPressure(BestTrackPerturbedVariable):
name = 'central_pressure'


class BackgroundPressure(BestTrackPerturbedVariable):
name = 'background_pressure'
default = 1013.0
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

examples of variable implementations

zacharyburnett and others added 2 commits June 10, 2021 11:51
* use `pint` for unit conversion and storage

* move perturbations into class implementations
@ghost ghost marked this pull request as ready for review June 10, 2021 15:52
@ghost
Copy link
Author

ghost commented Jun 10, 2021

@WPringle I've also started using pint to handle unit conversions and multiplications between different units.

@WPringle
Copy link
Contributor

@WPringle I've also started using pint to handle unit conversions and multiplications between different units.

Yeah that's pretty cool, thanks!

@WPringle
Copy link
Contributor

WPringle commented Jun 10, 2021

@zacharyburnettNOAA I have a commit where I copied over besttrackforcing from adcircpy into own module in this repository and removed some adcirc related things. The test seemed to go through ok (amazingly).
I was denied when try to push to this branch. What's best to do this? Make PR from a fork of mine to this branch?

@ghost
Copy link
Author

ghost commented Jun 10, 2021

@zacharyburnettNOAA I have a commit where I copied over besttrackforcing from adcircpy into own module in this repository and removed some adcirc related things. The test seemed to go through ok (amazingly).
I was denied when try to push to this branch. What's best to do this? Make PR from a fork of mine to this branch?

Yes, for now make a fork + PR, until we can add you to the organization

zacharyburnett and others added 4 commits June 11, 2021 11:07
* Removing dependence on adcircpy
- [for now] copying over besttrackforcing from adcircpy into tropicalcyclone.atcf module
- removed NWS, BLAdh, geo, and time interval properties as they are related to adcirc inputs
- add test/output folders to .gitignore

* adding some help info for atcf tracks and adding __init__.py to subdirectories to find them
@ghost ghost merged commit 06c30ea into main Jun 14, 2021
@ghost ghost deleted the feature/besttrack_perturbation branch June 14, 2021 15:47
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants