{"id":41435640,"url":"https://github.com/ecmwf-projects/makaniino","last_synced_at":"2026-01-23T14:37:28.858Z","repository":{"id":103041701,"uuid":"438222705","full_name":"ecmwf-projects/makaniino","owner":"ecmwf-projects","description":null,"archived":false,"fork":false,"pushed_at":"2023-05-09T19:59:50.000Z","size":234,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"develop","last_synced_at":"2024-12-29T00:59:14.884Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ecmwf-projects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-12-14T11:12:04.000Z","updated_at":"2022-02-18T11:05:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"61e3f309-68b8-4cef-9d69-c71c4145e84d","html_url":"https://github.com/ecmwf-projects/makaniino","commit_stats":{"total_commits":12,"total_committers":2,"mean_commits":6.0,"dds":"0.33333333333333337","last_synced_commit":"041869aa214ae7e3bfa0ade7655c985674ccb50b"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ecmwf-projects/makaniino","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf-projects%2Fmakaniino","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf-projects%2Fmakaniino/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf-projects%2Fmakaniino/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf-projects%2Fmakaniino/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ecmwf-projects","download_url":"https://codeload.github.com/ecmwf-projects/makaniino/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf-projects%2Fmakaniino/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28694445,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T14:15:13.573Z","status":"ssl_error","status_checked_at":"2026-01-23T14:09:05.534Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-23T14:37:28.152Z","updated_at":"2026-01-23T14:37:28.851Z","avatar_url":"https://github.com/ecmwf-projects.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Makaniino\n\n## Description\n*Makaniino* builds and trains a Machine-Learning Tropical Cyclone detection model.\n\n### Disclaimer\nThis software is still under heavy development and not yet ready for operational use\n\n### Installation\n\nPlease refer to the INSTALL file.\n\n### User Guide\nMakaniino features several functionalities, broadly grouped into 4 categories:\n\n1. Data downloading\n2. Data pre-processing\n3. Model training\n4. Model evaluation and analysis\n\n#### 1. Data downloading\nData can be downloaded using the following command (--help for more details)\n\u003e mk-download \u003cdownload-config-file.json\u003e\n\nThe schema of the data-download config file can be shown as follows\n\u003e mk-format-download-config --show\n\n#### 2. Data pre-processing\n\nSimilarly to data-download, the main data-download command is invoked as follows:\n\u003e mk-preprocess \u003cpreprocess-config-file.json\u003e\n \nThe pre-processing configuration file schema can be shown as follows:\n\u003e mk-format-preprocess-config --show\n\n#### 3. Model Training\n\nTo train a model the following components need to be selected and configured:\n\n - *model*: the actual machine-learning model to be trained\n - *data-handler*: component that handles the training data \n - *trainer*: component that handles the training process\n\nTo list all the available concrete components, the following \ncommand can be used:\n\u003e mk-format-training-config --show\n\nThen, to inspect the configuration parameters for a specific component:  \n\u003e mk-format-training-config --show-component=\u003ccomponent-name\u003e\n \nAt this point, a complete training configuration can be assembled:\n```\n    \"model\": {\n        \"name\": \u003cmodel-name\u003e,\n        \"params\": {\n         ...\n         },\n    \"data_handler\": {\n        \"name\": \u003cdata-handler-name\u003e,\n        \"params\": {\n            ...\n        }\n    },         \n    \"trainer\": {\n        \"name\": \u003ctrainer-name\u003e,\n        \"params\": {\n        ...\n        }\n```\nFinally, to train the model, simply run:\n\u003e mk-train \u003cconfiguration-file.json\u003e\n \nAlternatively, the user can write a file \"makaniino-components.json\" in the working\ndirectory, where the desired components are listed, e.g.:\n```\n{\n \"model\": \u003cmodel-name\u003e,\n \"data_handler\": \u003cdata-handler-name\u003e,\n \"trainer\": \u003ctrainer-name\u003e\n}\n```\nBy invoking the tool *mk-train-from-args*, any available option (from each\ncomponent selected) can be overridden by CL arguments:\n\u003e mk-train-from-args\n\u003e --tag=\u0026lt;simulation-tag\u0026gt;\n\u003e --\u0026lt;option-1\u0026gt;=\u0026lt;user-choice-1\u0026gt; ...\n\n\n#### 5. Workflow Examples\nThe folder \"examples\" contains several scripts that illustrate how \nto use the tools described in the sections above. Before running the \nscripts, make sure the conda env is invoked\n\u003e conda activate makaniino_env\n\n - 1_download.sh: Download data using *Climetlab*\n - 2_preprocess.sh: Run the default TC pre-processing\n - 3_augment.sh: Augment data by extracting crops of global fields\n - 4_train.sh: Training a TC model on augmented data\n - 5_predict.sh: Configures a TC model that reads full-fields data \n                 but uses the weights of the trained TC model\n\nIn the \"examples\" folder there are also scripts showing some \nfunctionalities for evaluating and analysing the ML model.\n \n - 6_check_dataset.sh: check dataset\n - 7_check_model.sh: check model\n - 8_evaluate_model.sh: evaluate model\n - 9_keras_model.sh: Save the model in Keras format\n\nFinally, the following script cleans the \"examples\" folder itself\n - clean_examples.sh: Clean examples folder\n\nNOTE: by default all the examples output will be placed into \nthe current working directory.\n \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecmwf-projects%2Fmakaniino","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fecmwf-projects%2Fmakaniino","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecmwf-projects%2Fmakaniino/lists"}