Skip to content

Add New Storm Formats and Capabilities#285

Merged
rjleveque merged 177 commits intoclawpack:masterfrom
mandli:new-storm-module
Aug 21, 2018
Merged

Add New Storm Formats and Capabilities#285
rjleveque merged 177 commits intoclawpack:masterfrom
mandli:new-storm-module

Conversation

@mandli
Copy link
Copy Markdown
Member

@mandli mandli commented Jan 22, 2018

This is a significant update to the storm surge capabilities in GeoClaw and includes:

  • Now distinguishes "model" storms from "data driven" storms. The former uses a specified wind model (which now support for other fields has increased) and the latter as of yet unimplemented capability for input from say another package to specify and interpolate wind and pressures fields directly.
  • A new storm module that reads in multiple different types of storm tracks and intensities and output them into a unified and simplified input type specific to GeoClaw
  • Adds a number of utilities for dealing with storm data
  • Example and tests now directly download storm data from the best-track database

Contributors include @hudaquresh and @sarasamuel.

mandli and others added 30 commits June 21, 2017 19:11
Based off of unit conversion in dtopotools.  Hopefully all modules can
depend on this new one to convert units.
Adds tests and also converts dtopotools to use the new module.
Also remove models from class and leave as provided functions.
Start with basic hurdat formatting in python storm module.
Additional test folder added with output of storm.py and
input files with hurdat and tcvitals test files to test storm.py
Includes some (1) reorganization of input data, (2) removal of now
redundant storm types, (3) the addition of the yet to be implemented
data storm type, and (4) other foundational changes.  In other words
this will break everything but provides some basis for the design of
the code going forward.
Update read_hurdat method using the genfromtxt package in numpy.
It gives us a cleaner version of the read method and allows us
to use arrays to quickly access specific data types. Currently
this works with the test hurdat data files in the test_files
directory.
Write_hurdat function with appropriate tests. Tests pass with check
files working. Hurdat and Geoclaw formats match up even when used
to write one another. File comparisons returned True (i.e they match)
Following were matched:
check_geoclaw.hurdat, geoclaw.hurdat
check_hurdat.geoclaw, hurdat.geoclaw
Move dummy storm files from the testing folder in the python surge
folder to the proper tests folder for geoclaw. Additionally,
modify the storm file and store the dummy storm data files in a
folder called data_storm.

Create additonal dummy storm files with hurdat2, jma, and geoclaw.
Modify the tests for the surge/storm.py file in order to
accurately conduct tests using the test_storm.py.
@mandli
Copy link
Copy Markdown
Member Author

mandli commented Jul 26, 2018

@rjleveque I added the changes to bc2amr we discussed. Given that I was changing a significant portion of the code I also refactored it to F90. I can do something similar to AMRClaw if it looks ok.

Copy link
Copy Markdown
Member

@rjleveque rjleveque left a comment

Choose a reason for hiding this comment

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

I like the new bc2amr.f90, great to get rid of all those computed goto's. It would be good to do something similar for amrclaw.

@mjberger should also review.

Comment thread src/2d/shallow/bc2amr.f90 Outdated
nyt = int((yhi_patch - yupper + hymarg) / hy)
jbeg = max(ncol - nyt + 1, 1)

select case(mthbc(3))
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think this should check mthbc(4) not 3.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Yeah, that would probably be good wouldn't it?

Comment thread src/2d/shallow/bc2amr.f90
end do
end do

case default
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We should also allow case(4) (sphere BCs) with a continue like case(2), both here and for the other three boundaries.

In principle we never get here in this case, since the module variable spheredom is checked earlier and should jump out of this routine, but might add clarity.

The spherical BCs haven't been tested in a while as far as I know, not sure if they still work properly...

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Added.

@rjleveque
Copy link
Copy Markdown
Member

@mandli: I think you need to bring your changes to valout.f into the new valout.f90 routine and delete valout.f.

@mandli
Copy link
Copy Markdown
Member Author

mandli commented Aug 13, 2018

Done!

@rjleveque
Copy link
Copy Markdown
Member

Great! I’d like to do a couple final tests on some bigger tsunami runs to make sure nothing breaks and then will merge in if you think it’s ready?

@mandli
Copy link
Copy Markdown
Member Author

mandli commented Aug 13, 2018

I think so. Let me know if you see anything.

@mandli
Copy link
Copy Markdown
Member Author

mandli commented Aug 16, 2018

I just added a note about the data source changing for the example included for Ike. It should have no impact on anything other than making it clear that the data has changed.

@rjleveque
Copy link
Copy Markdown
Member

Seems to be fine!

@rjleveque rjleveque merged commit b01ff98 into clawpack:master Aug 21, 2018
@mandli mandli deleted the new-storm-module branch July 1, 2024 17:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants