Giter Site home page Giter Site logo

tcm's Introduction

Tropical Cyclone Modeling (TCM)

Various scenarios of tropical cyclones modelling

Installation instructions

Dependencies

amuse https://github.com/amusecode/amuse
omuse https://github.com/omuse-geoscience/omuse.

Installation

  • Install amuse framework with pip install amuse-framework
  • Install omuse:
    go to omuse directory and run pip install -e .

Usage

In general the scenarios can be run by calling the relevant python script from a scenario directory:

python path/to/script.py

To use MPI to run OMUSE in parallel and take advantage of OMUSE capabilities:

mpirun --report-bindings -v -np 1 python path/to/script.py

On snellius one should submit a batch job, an example can be found in job.sh

OMUSE model configurations

The following model configurations, which use OMUSE to model specific combinations of model/data coupling and benchmarking/optimization efforts can be found in this repository in the corresponding directories.

gtsm-era5

Model configuration that uses OMUSE to couple ERA5 forcing data (wind and pressure) downloaded through OMUSE with the GTSM model (Delft3D).

gtsm-era5ext

Model configuration that uses OMUSE to couple ERA5 forcing data (or any other netcdf data) with GTSM. Forcing files are downloaded and preprocessed beforehand by the user and are specified in the external forcings file (.ext) of GTSM.

gtsm-holland

Model configuration uses OMUSE to run the Holland model and couple it with the GTSM model (Delft3D).

gtsm-holland_era5ext

GTSM configuration files to execute GTSM with Holland model output (spiderweb file) and ERA5 forcing in the background. Holland model output and ERA5 forcing files are prepared beforehand and are specified in the external forcings file (.ext) of GTSM. - OMUSE is not used. GTSM is ran directly from Delft3d. The spiderweb file includes a spw_merge_frac parameter to specify the fraction of the spiderweb radius where the merging with ERA5 starts.

delftfm_benchmark

Benchmarking the Delft3DFM implementation. For more information about this scenario see delftfm_benchmark/README.md

TC_optimization

Spatio-temporal optimization algorithm can be run with a command python script.py $Name_of_input_database $Starting_line_number_in_input

tcm's People

Contributors

jarocamphuijsen avatar mchertova avatar ireneben73 avatar

Watchers

 avatar

tcm's Issues

Coupling ERA5 and Holland model

OMUSE should be able to combine the Holland model with ERA5 data on the background, and interpolate this data based on a predefined parameter. Delft3d FM can already do this by defining the spw_merge_frac = 0.33333 parameter in the spiderweb file output of the Holland model and by adding in the external forcing file the following:

QUANTITY =windx
FILENAME =ERA5_4GTSM_u10_Irma.nc
FILETYPE =11
METHOD =3
OPERAND =O

QUANTITY =windy
FILENAME =ERA5_4GTSM_v10_Irma.nc
FILETYPE =11
METHOD =3
OPERAND =O

QUANTITY =atmosphericpressure
FILENAME =ERA5_4GTSM_sp_Irma.nc
FILETYPE =11
METHOD =3
OPERAND =O

QUANTITY=windxy
FILENAME=2017_irma.spw
FILETYPE=5
METHOD=1
OPERAND=+

QUANTITY=atmosphericpressure
FILENAME=2017_irma.spw
FILETYPE=5
METHOD=1
OPERAND=+

Improve general documentation

The root directory README.md holds the basic information for running the scenarios. it is not complete and up to date at the moment.

  • It should contain information on how to install omuse or point to up to date installation instructions
  • it should contian information on how to run the script locally
  • It should contain information on how to run the script on snellius

Implement nested, partitioned, fine gridded GTSM model into OMUSE

Currently the models in the nested GTSM example are run using a course grid. They should be run on a fine grid and using partitioning (both the local and global models with 32 workers).

  • The first step is to apply partitioning to the course gridded nested models in the above example. See issue #9
  • Next step is to implement the fine gridded model into OMUSE, from the (non-OMUSE) GTSM model example: /projects/0/einf2224/tests/haiyan_nested/. In this file there is the non-OMUSE GTSM model. Therefore, the boundary conditions of the Global GTSM are added in the .mdu file by defining ExtForceFileNew = waterlevel_bnd.ext. If you want to test it with OMUSE, this line should be commented out. Then there will not be a water level boundary condition implemented externally.

Nesting global and local model

nested.py script gives error in function evolve_gtsm_nested(gtsm, nested, tend,dt) --> channel.copy_attributes(["water_level"])
Error:
File "/gpfs/work2/0/einf2224/code/amuse/src/amuse/datamodel/incode_storage.py", line 1118, in
return [x[index] for x in indices]
IndexError: arrays used as indices must be of integer (or boolean) type

Add documentation on each scenario

It would be good to have information on each of the scenarios.

  • There should be a dedicated README.md in each of the scenario folders
  • There should be a short description of what this scenario does / is meant for
  • There should be dedicated setup information (next to the general setup information in the root folder README.md) about the required input files and additional scripts or steps that should be executed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.