Add New Storm Formats and Capabilities#285
Conversation
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.
New storm module
Modify the tests for the surge/storm.py file in order to accurately conduct tests using the test_storm.py.
Also embarassingly correct his last name.
Also refactor entire routine given the number of places we were touching the code.
|
@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. |
| nyt = int((yhi_patch - yupper + hymarg) / hy) | ||
| jbeg = max(ncol - nyt + 1, 1) | ||
|
|
||
| select case(mthbc(3)) |
There was a problem hiding this comment.
I think this should check mthbc(4) not 3.
There was a problem hiding this comment.
Yeah, that would probably be good wouldn't it?
| end do | ||
| end do | ||
|
|
||
| case default |
There was a problem hiding this comment.
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...
|
@mandli: I think you need to bring your changes to |
|
Done! |
|
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? |
|
I think so. Let me know if you see anything. |
|
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. |
|
Seems to be fine! |
This is a significant update to the storm surge capabilities in GeoClaw and includes:
stormmodule that reads in multiple different types of storm tracks and intensities and output them into a unified and simplified input type specific to GeoClawContributors include @hudaquresh and @sarasamuel.