-
Notifications
You must be signed in to change notification settings - Fork 15
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
tc_surge_geoclaw: surge flooding from dynamic flow solver GeoClaw #109
Conversation
@emanuel-schmid Would it be possible that you add the data files mentioned in my OP to the data API so that we can see whether the tests are fine? @peanutfun Is there any chance that this will be reviewed by you or somebody else in the next two weeks? The background is that I will leave PIK afterwards and won't continue work on this. Others in my group will pick up my GeoClaw stuff, and I'm wondering whether I need to instruct them to finalize this PR. I now squashed all the commits to remove the clutter from this PR. |
c46ed2e
to
d39e510
Compare
Sure. do they belong to any particular data-type, or are "base" for the package-data and "test" for the test_data suiting? |
"base" for all of them would be fine, but having "base" for the package-data and "test" for the test_data would also make sense. I don't think that we can be much more specific than that. |
the data is available now. I'll check whether conda can help... |
Oh yes, there is a new requirement |
After merging and a day. |
It runs through now. Only problem: the unittest coverage is lower than avarage and our high quality standards forbid that! Hence it fails on Jenkins 😜 |
Another problem: geoclaw doesn't support Windows |
Hm, I think that fixing Windows support of GeoClaw/Clawpack is out of scope for this PR. Is there a rule that we cannot have code in CLIMADA that will not run on Windows? In practice, running this |
Agreed, fixing Windows is out of scope. AfaIk we don't have such a rule, but so far we have been able to avoid OS distinctions. (And honestly I feel somewhat uneasy about opening this can 😱,) But then: this is petals so I guess we have some liberty. 🤠 In any case we cannot assume the user to be not on Windows, so we would probably need
would that be in scope? |
The unit tests on Jenkins are all successful now. But the tests on GitHub CI still fail because the new requirement (meson-python) is missing. I increased the coverage by implementing some more unit tests. This part of the checks is fine now. Note that some parts of the code can only be covered by integration test because they have higher computational demands. As for the linting: There are 6 "high" priority linting issues ("no-member") where pylint fails to recognize the correct type of an object or fails to recognize generated members of pandas DatetimeIndex instances. I don't think there is much we can do about this other than ignore. Unfortunately, I wasn't able to find the right thing to put in pylintrc to ignore this kind of issue.
Great idea! I addressed all three points:
|
Looks all good to me 😃 . |
I tend to prefer installing a Fortran compiler in GitHub actions if that's not overly complicated...? |
@tovogt The GitHub Actions automatically incorporate changes to
Note that tests are currently failing during the collection process, because importing the |
The compiler packages in conda used to have OS-specific names. But luckily, this has changed in the mean time, and I can now add For the other part, the goal would be that #122 fixes the collection process. |
…/climada_petals into feature/tc_surge_geoclaw # Conflicts: # requirements/env_climada.yml # script/jenkins/branches/Jenkinsfile
# Conflicts: # requirements/env_climada.yml # requirements/env_docs.yml
# Conflicts: # requirements/env_climada.yml
🙌 Thanks @tovogt for this! |
Changes proposed in this PR:
climada.hazard.tc_surge_geoclaw
that introduces a new Hazard class calledTCSurgeGeoClaw
.This new hazard class models the storm surge impact from tropical cyclone tracks. Internally, the fluid dynamics solver GeoClaw is used to simulate the storm surge dynamics. Please refer to the tutorial notebook for more information.
It's important to note that this functionality is not for the average user of CLIMADA: It requires a Fortran compiler, a non-trivial choice of input data as well as large computing power. The example of a single (!) TC track in the tutorial notebook takes a few minutes to run on a laptop computer. But this is only possible because the resolution is set to 10 km (300 arc-seconds). In practice, a resolution of 1 km (30 arc-seconds) is reasonable, and will require 3 hours even on a HPC cluster with 16 cores. All this is mentioned in the code, docstrings and in the tutorial notebook.
Because of that, the unit tests for this subpackage do not include non-trivial model runs. However, there is a non-trivial integration test that runs on a modern laptop computer in approximately one minute.
@emanuel-schmid Note that the code requires new datasets in the CLIMADA API: data.zip
PR Author Checklist
develop
)PR Reviewer Checklist