-
Notifications
You must be signed in to change notification settings - Fork 52
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 risk index outcome for navigation in ice-covered waters #968
base: develop
Are you sure you want to change the base?
Add risk index outcome for navigation in ice-covered waters #968
Conversation
Plots need to be refined (mostly labels and titles). Probably some commits will need to be squashed before merging. |
From Milena: @xylar, I helped Gennaro with this one. Hopefully, everything should be almost ready to go, but please let us know if you see anything amiss. Thanks. We'll post an example plot as soon as I can find it (we are in Italy right now, so same time zone as you). |
Here is an example output for this task: @proteanplanet: it would also be great if you could take a look and comment here. It would be nice if we could get rid of the rio>30 noisy results (darkest blue), but the things the we tried didn't work. |
@xylar, @proteanplanet, @stephenprice: in case you missed this since it came from a different username, I am pinging you again. No rush, just making sure you see it. |
I would like to suggest that rather than putting this into MPAS-Analysis, or perhaps in addition to putting this into MPAS-Analysis, we create an analysis member directly in MPAS-SeaIce that outputs the risk index. |
@milenaveneziani, I'll be back from vacation on Tuesday and will take a look as soon as I can after that. |
sounds good. Thanks @xylar. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@torotorotaxi and @milenaveneziani, this looks promising!
I have a few suggested changes, most minor. The only more significant one would be to move the hard-coded arrays to a data file.
It would be nice if we could get rid of the rio>30 noisy results (darkest blue), but the things the we tried didn't work.
I think the problem is that things are either fractionally above or fractionally below 30.0, depending on machine roundoff. I would move the upper bound to either 30.01 or 29.99 so 30.0 is consistently on one side or the other.
# this are labels that should appear in the plot, to indicate the Polar Class of the vessel (included here for the moment) | ||
# pic = ["PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "IA Super",\ | ||
# "IA", "IB", "IC", "Not Ice Strengthened"] | ||
|
||
# reference floe thicknesses for calculation of Risk Index Values | ||
# (this values were agreed upon by Elizabeth Hunke, Andrew Roberts, | ||
# and Gennaro D'Angelo based on literature and IMO description) | ||
h_riv = np.array([0.5, 10, 15, 30, 50, 70, 100, 120, 170, 200, 250]) * 0.01 | ||
# table of Risk Index Values (defined by IMO) | ||
riv = np.array([[ 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 1, 1 ],\ | ||
[ 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 0 ],\ | ||
[ 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 0,-1 ],\ | ||
[ 3, 3, 3, 3, 2, 2, 2, 2, 1, 0,-1,-2 ],\ | ||
[ 3, 3, 3, 3, 2, 2, 1, 1, 0,-1,-2,-2 ],\ | ||
[ 3, 2, 2, 2, 2, 1, 1, 0,-1,-2,-3,-3 ],\ | ||
[ 3, 2, 2, 2, 1, 1, 0,-1,-2,-3,-3,-3 ],\ | ||
[ 3, 2, 2, 2, 2, 1, 0,-1,-2,-3,-4,-4 ],\ | ||
[ 3, 2, 2, 2, 1, 0,-1,-2,-3,-4,-5,-5 ],\ | ||
[ 3, 2, 2, 1, 0,-1,-2,-3,-4,-5,-6,-6 ],\ | ||
[ 3, 2, 1, 0,-1,-2,-3,-4,-5,-6,-7,-8 ],\ | ||
[ 3, 1, 0,-1,-2,-3,-4,-5,-6,-7,-8,-8 ]]) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm pretty opposed to having arrays like this in the code, so it would be better to have all of this in a NetCDF or csv data file (with a date stamp). The file would also ideally be on the LCRC server and not part of the code. This would also allow us to update the data file with a new date stamp as needed.
# sea-ice concentration conversion from range [0,1] to range [0,10] | ||
scale_factor = 10 | ||
# polar class array index should be in the range [0,11], but not checked! | ||
pc = self.config.getint(self.taskName, 'polarClass') - 1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It there a reason not to produce plots for all 12 classes? If yes, could there be a desire to produce plots for more than one class, in which case polarClass
should become a list of polarClasses
?
# Polar Class of vessel according to IMO. Range is 1 to 12 (increments of 1). | ||
polarClass = 6 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be documented a bit more to list the 12 polar classes, as is done in the code.
# reference lat/lon for sea ice plots in the northern hemisphere | ||
minimumLatitude = -50 | ||
referenceLongitude = 180 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems like the comment need to be updated, since you have a minimum, rather than a reference, latitude.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, this is for the southern hemisphere.
# Polar Class of vessel according to IMO. Range is 1 to 12 (increments of 1). | ||
polarClass = 6 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be documented a bit more to list the 12 polar classes, as is done in the code.
# reference lat/lon for sea ice plots in the northern hemisphere | ||
minimumLatitude = 50 | ||
referenceLongitude = 0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems like the comment need to be updated, since you have a minimum, rather than a reference, latitude.
This adds a new analysis task to compute the risk index outcome (rio) from sea-ice concentration and (floe) thickness, as outlined in the International Maritime Organization (IMO) document (https://www.imorules.com/GUID-2C1D86CB-5D58-490F-B4D4-46C057E1D102.html).