{"id":348424,"name":"PyFLEXTRKR","description":"A Flexible Feature Tracking Python Software for Convective Cloud Analysis.","url":"https://github.com/flextrkr/pyflextrkr","last_synced_at":"2026-04-30T20:30:16.352Z","repository":{"id":65469458,"uuid":"392851423","full_name":"FlexTRKR/PyFLEXTRKR","owner":"FlexTRKR","description":"PyFlexTRKR","archived":false,"fork":false,"pushed_at":"2026-04-03T08:10:53.000Z","size":36734,"stargazers_count":105,"open_issues_count":12,"forks_count":36,"subscribers_count":16,"default_branch":"main","last_synced_at":"2026-04-17T14:03:22.652Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FlexTRKR.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-08-04T23:46:08.000Z","updated_at":"2026-04-16T01:56:14.000Z","dependencies_parsed_at":"2023-02-14T02:16:32.475Z","dependency_job_id":"9c57c672-1ff0-4e77-b917-3366e510ddd2","html_url":"https://github.com/FlexTRKR/PyFLEXTRKR","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/FlexTRKR/PyFLEXTRKR","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlexTRKR%2FPyFLEXTRKR","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlexTRKR%2FPyFLEXTRKR/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlexTRKR%2FPyFLEXTRKR/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlexTRKR%2FPyFLEXTRKR/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FlexTRKR","download_url":"https://codeload.github.com/FlexTRKR/PyFLEXTRKR/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlexTRKR%2FPyFLEXTRKR/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32010957,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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"}},"owner":{"login":"FlexTRKR","name":"FlexTRKR","uuid":"88464559","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/88464559?v=4","repositories_count":2,"last_synced_at":"2023-05-09T20:30:09.981Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/FlexTRKR","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-05-09T20:30:09.990Z","updated_at":"2023-05-09T20:30:09.990Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FlexTRKR","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FlexTRKR/repositories"},"packages":[],"commits":{"id":10919008,"full_name":"flextrkr/pyflextrkr","default_branch":"master","total_commits":373,"total_committers":15,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":24.866666666666667,"dds":0.49865951742627346,"past_year_total_commits":12,"past_year_total_committers":2,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":6.0,"past_year_dds":0.08333333333333337,"last_synced_at":"2026-04-27T19:02:27.309Z","last_synced_commit":"5b7cf6e097ce0efa1257269f560bc78ae2d48d1f","created_at":"2025-09-05T01:11:01.228Z","updated_at":"2026-04-27T19:02:10.805Z","committers":[{"name":"Zhe Feng","email":"zhe.feng@pnnl.gov","login":"feng045","count":187},{"name":"Hannah C Barnes","email":"hannah.barnes@pnnl.gov","login":"hcbarnes","count":76},{"name":"Joseph C. Hardin","email":"josephhardinee@gmail.com","login":"josephhardinee","count":57},{"name":"Feng Z","email":"zhe1feng1@or-condo-login01.ornl.gov","login":null,"count":16},{"name":"Katelyn A Barber","email":"katelyn.barber@pnnl.gov","login":null,"count":11},{"name":"Jingyi Chen","email":"jingyi.chen@pnnl.gov","login":null,"count":8},{"name":"Zhixiao Zhang","email":"zhixiao.zhang@utah.edu","login":"zhixiaozhang","count":5},{"name":"Zhe Feng","email":"zhe1feng1@cirrus-login1.ccs.ornl.gov","login":null,"count":4},{"name":"Barnes","email":"barn327@we32441.pnl.gov","login":null,"count":3},{"name":"Stella Heflin","email":"smheflin@uw.edu","login":"smheflin","count":1},{"name":"Laura Paccini","email":"laurapaccini@gmail.com","login":"laurapaccini","count":1},{"name":"Katelyn Barber","email":"barb672@cori13.nersc.gov","login":null,"count":1},{"name":"Katelyn A Barber","email":"barb672@constance03.pnl.gov","login":null,"count":1},{"name":"Jianfeng Li","email":"jli628@cori04.nersc.gov","login":null,"count":1},{"name":"Feng Z","email":"zhe1feng1@or-condo-c224.ornl.gov","login":null,"count":1}],"past_year_committers":[{"name":"Zhe Feng","email":"zhe.feng@pnnl.gov","login":"feng045","count":11},{"name":"Stella Heflin","email":"smheflin@uw.edu","login":"smheflin","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/flextrkr%2Fpyflextrkr/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-29T00:00:10.453Z","repositories_count":6223003,"commits_count":899915120,"contributors_count":34898902,"owners_count":1147513,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"FlexTRKR/PyFLEXTRKR","html_url":"https://github.com/FlexTRKR/PyFLEXTRKR","last_synced_at":"2026-04-17T14:01:37.883Z","status":"active","issues_count":31,"pull_requests_count":103,"avg_time_to_close_issue":3517953.9,"avg_time_to_close_pull_request":208039.35,"issues_closed_count":20,"pull_requests_closed_count":100,"pull_request_authors_count":8,"issue_authors_count":20,"avg_comments_per_issue":1.7741935483870968,"avg_comments_per_pull_request":0.1262135922330097,"merged_pull_requests_count":91,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":9,"past_year_pull_requests_count":9,"past_year_avg_time_to_close_issue":2245499.0,"past_year_avg_time_to_close_pull_request":83244.77777777778,"past_year_issues_closed_count":3,"past_year_pull_requests_closed_count":9,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":7,"past_year_avg_comments_per_issue":1.1111111111111112,"past_year_avg_comments_per_pull_request":0.1111111111111111,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":8,"created_at":"2024-07-02T15:53:43.700Z","updated_at":"2026-04-17T14:01:37.883Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlexTRKR%2FPyFLEXTRKR","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlexTRKR%2FPyFLEXTRKR/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":31},"pull_request_author_associations_count":{"COLLABORATOR":94,"NONE":8,"CONTRIBUTOR":1},"issue_authors":{"DebjitP1997":4,"jiligulu-cqs":4,"Jaymaest":2,"lyuhm":2,"met-sree":2,"feiduduyyc":2,"gewitterblitz":2,"lisnayantisiregartapteng-dev":1,"feliperiosg":1,"weiming9115":1,"oluwafemiomitusa":1,"DebjitPaul7":1,"llccl":1,"LluisFB":1,"IshwaryaKV":1,"lbdieng":1,"Invin-Invin":1,"VISION0310":1,"ealucy":1,"rijul01":1},"pull_request_authors":{"feng045":93,"laurapaccini":2,"feliperiosg":2,"AdrienBq":2,"mbaidu":1,"candiceT233":1,"DrOrange123":1,"jli628":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-23T00:00:09.119Z","repositories_count":14373006,"issues_count":34467041,"pull_requests_count":112857614,"authors_count":11243453,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":9},"past_year_pull_request_author_associations_count":{"COLLABORATOR":7,"NONE":1},"past_year_issue_authors":{"Jaymaest":2,"lyuhm":2,"DebjitPaul7":1,"IshwaryaKV":1,"lisnayantisiregartapteng-dev":1,"LluisFB":1,"met-sree":1},"past_year_pull_request_authors":{"feng045":7,"mbaidu":1},"maintainers":[{"login":"feng045","count":93,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/feng045"},{"login":"jli628","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jli628"}],"active_maintainers":[{"login":"feng045","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/feng045"}]},"events":{"total":{"ReleaseEvent":6,"PullRequestEvent":40,"ForkEvent":8,"IssuesEvent":17,"WatchEvent":26,"IssueCommentEvent":14,"PushEvent":20,"PullRequestReviewEvent":3,"CreateEvent":6},"last_year":{"ReleaseEvent":1,"PullRequestEvent":12,"ForkEvent":4,"IssuesEvent":10,"WatchEvent":8,"IssueCommentEvent":9,"PushEvent":10,"PullRequestReviewEvent":3,"CreateEvent":1}},"keywords":[],"dependencies":[{"ecosystem":"conda","filepath":"environment.yml","sha":null,"kind":"manifest","created_at":"2023-02-14T02:16:32.228Z","updated_at":"2023-02-14T02:16:32.228Z","repository_link":"https://github.com/FlexTRKR/PyFLEXTRKR/blob/main/environment.yml","dependencies":[{"id":7641176261,"package_name":"astropy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":7641176262,"package_name":"basemap","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":7641176263,"package_name":"cartopy","ecosystem":"conda","requirements":"\u003e=0.17","direct":true,"kind":"runtime","optional":false},{"id":7641176264,"package_name":"colorcet","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":7641176265,"package_name":"dask","ecosystem":"conda","requirements":"\u003e=2.9","direct":true,"kind":"runtime","optional":false},{"id":7641176266,"package_name":"ffmpeg","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":7641176267,"package_name":"ipython","ecosystem":"conda","requirements":"\u003e7.0","direct":true,"kind":"runtime","optional":false},{"id":7641176268,"package_name":"joblib","ecosystem":"conda","requirements":"\u003e=0.14","direct":true,"kind":"runtime","optional":false},{"id":7641176269,"package_name":"matplotlib","ecosystem":"conda","requirements":"\u003e=3","direct":true,"kind":"runtime","optional":false},{"id":7641176270,"package_name":"netcdf4","ecosystem":"conda","requirements":"\u003e=1.5","direct":true,"kind":"runtime","optional":false},{"id":7641176271,"package_name":"numpy","ecosystem":"conda","requirements":"\u003e=1.17","direct":true,"kind":"runtime","optional":false},{"id":7641176272,"package_name":"pandas","ecosystem":"conda","requirements":"\u003e=0.25","direct":true,"kind":"runtime","optional":false},{"id":7641176273,"package_name":"pip","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":7641176274,"package_name":"python","ecosystem":"conda","requirements":"\u003e=3.8","direct":true,"kind":"runtime","optional":false},{"id":7641176275,"package_name":"pytz","ecosystem":"conda","requirements":"\u003e=2019","direct":true,"kind":"runtime","optional":false},{"id":7641176276,"package_name":"scikit-image","ecosystem":"conda","requirements":"\u003e=0.16","direct":true,"kind":"runtime","optional":false},{"id":7641176277,"package_name":"scikit-learn","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":7641176278,"package_name":"scipy","ecosystem":"conda","requirements":"\u003e=1.4","direct":true,"kind":"runtime","optional":false},{"id":7641176279,"package_name":"seaborn","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":7641176280,"package_name":"wrf-python","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":7641176281,"package_name":"xarray","ecosystem":"conda","requirements":"\u003e=0.14","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2023-02-14T02:16:32.295Z","updated_at":"2023-02-14T02:16:32.295Z","repository_link":"https://github.com/FlexTRKR/PyFLEXTRKR/blob/main/requirements.txt","dependencies":[{"id":7641176329,"package_name":"numpy","ecosystem":"pypi","requirements":"\u003e=1.17","direct":true,"kind":"runtime","optional":false},{"id":7641176330,"package_name":"matplotlib","ecosystem":"pypi","requirements":"\u003e=3","direct":true,"kind":"runtime","optional":false},{"id":7641176331,"package_name":"xarray","ecosystem":"pypi","requirements":"\u003e=0.14","direct":true,"kind":"runtime","optional":false},{"id":7641176332,"package_name":"pandas","ecosystem":"pypi","requirements":"\u003e=0.25","direct":true,"kind":"runtime","optional":false},{"id":7641176333,"package_name":"scipy","ecosystem":"pypi","requirements":"\u003e=1.4","direct":true,"kind":"runtime","optional":false},{"id":7641176334,"package_name":"netcdf4","ecosystem":"pypi","requirements":"\u003e=1.5","direct":true,"kind":"runtime","optional":false},{"id":7641176335,"package_name":"pytz","ecosystem":"pypi","requirements":"\u003e=2019","direct":true,"kind":"runtime","optional":false},{"id":7641176336,"package_name":"cartopy","ecosystem":"pypi","requirements":"\u003e=0.17","direct":true,"kind":"runtime","optional":false},{"id":7641176337,"package_name":"dask","ecosystem":"pypi","requirements":"\u003e=2.9","direct":true,"kind":"runtime","optional":false},{"id":7641176338,"package_name":"scikit-image","ecosystem":"pypi","requirements":"\u003e=0.16","direct":true,"kind":"runtime","optional":false},{"id":7641176339,"package_name":"joblib","ecosystem":"pypi","requirements":"\u003e=0.14","direct":true,"kind":"runtime","optional":false},{"id":7641176340,"package_name":"ipython","ecosystem":"pypi","requirements":"\u003e=7.0","direct":true,"kind":"runtime","optional":false},{"id":7641176341,"package_name":"setuptools","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7641176342,"package_name":"pyyaml","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]}],"score":7.470224135899967,"created_at":"2026-03-14T12:37:09.182Z","updated_at":"2026-04-30T20:30:16.359Z","avatar_url":"https://github.com/FlexTRKR.png","language":"Jupyter Notebook","category":"Atmosphere","sub_category":"Atmospheric Chemistry and Aerosol","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# **PyFLEXTRKR: a Flexible Feature Tracking Python Software for Convective Cloud Analysis**\n\n![](https://portal.nersc.gov/project/m1867/PyFLEXTRKR/figures/cover_image.png)\n\n# **1. Introduction**\n\n---\nThe Python FLEXible object TRacKeR (PyFLEXTRKR) is a flexible atmospheric feature tracking software package. The software can track **any 2D objects** and handle merging and splitting explicitly. PyFLEXTRKR has specific capabilities to track convective clouds from a variety of observations and model simulations, including: 1) individual convective cells, and 2) mesoscale convective systems (MCSs) using radar, satellite, and model data. The package has scalable parallelization options and has been optimized to work on large datasets including global kilometer-scale data.\n\n## For a more detailed user guide, click [this link](https://github.com/FlexTRKR/PyFLEXTRKR/blob/main/UserGuide.md).\n\n\n# **2. Input Data Requirements**\n\n---\nPyFLEXTRKR works with netCDF files using Xarray's capability to handle N-dimension arrays of gridded data. Currently, PyFLEXTRKR supports tracking: \n\n1. Individual convective cells using radar reflectivity data [[Feng et al. (2022), MWR](https://doi.org/10.1175/MWR-D-21-0237.1)]; \n2. MCSs using infrared brightness temperature (Tb) data from geostationary satellites, or outgoing longwave radiation (OLR) data from model simulations, with optional collocated precipitation data [[Feng et al. (2021), JGR](https://doi.org/10.1029/2020JD034202)] or 3D radar reflectivity data [[Feng et al. (2018) JAMES](https://doi.org/10.1029/2018MS001305); [Feng et al. (2019), JCLI](https://doi.org/10.1175/JCLI-D-19-0137.1)] to identify robust MCSs;\n3. Generic 2D objects defined by customizable feature identification functions.\n\nThe input data must contain at least 3 dimensions: *time, y, x*, with corresponding coordinates of *time, latitude, longitude*. The *latitude* and *longitude* coordinates can  be either 1D or 2D. But the data must be on a fixed 2D grid (any projection is fine) since PyFLEXTRKR only supports tracking data on 2D arrays. Irregular grids such as those in E3SM or MPAS model must first be regridded to a regular grid before tracking. Additional variable names and coordinate names are specified in the config file. See [user guide](https://github.com/FlexTRKR/PyFLEXTRKR/blob/main/UserGuide.md) for more details in preparing the input dataset.\n\n# **3. Installing PyFLEXTRKR**\n\n---\nPyFLEXTRKR requires Python 3.6 and above. Support for Python 3.8 and lower has reached end-of-life so it is recommended to use Python 3.9 or higher.\n\n## **Install via Conda**\n\nThe easiest way to install the most recent version of PyFLEXTRKR is via conda through the conda-forge channel:\n\n```\nconda install pyflextrkr -c conda-forge\n```\n\nThis will also install all dependencies and should be sufficient for most users. You can update the installation by:\n\n```\nconda update pyflextrkr -c conda-forge\n```\n\n## **Install from source via Github**\n\nClone PyFLEXTRKR to your local computer (e.g., /PyFLEXTRKR):\n\n```bash\ngit clone https://github.com/FlexTRKR/PyFLEXTRKR.git\n```\n\nGo to that directory:\n\n```bash\ncd /PyFLEXTRKR\n```\n\nUse the included environment.yml file to create a Conda virtual environment, make sure you change `conda_env_dir` to where your conda environments are installed:\n\n```bash\nconda env create -f environment.yml --prefix /conda_env_dir/flextrkr\n```\n\nor ...\n\n```bash\nconda create -n flextrkr -c conda-forge --file requirements.txt\n```\n\n**Pro Tips:** using [mamba](https://anaconda.org/conda-forge/mamba) to create the virtual environment is much faster:\n\n```bash\nmamba env create -f environment.yml --prefix /conda_env_dir/flextrkr\n```\n\nAfter setting up the Conda virtual environment, activate it with:\n\n```bash\nconda activate flextrkr\n```\n\nThen install the package with:\n\n```bash\npip install -e .\n```\n\nAny changes to the source code will be reflected in the running version.  \n\n# **4. Example Data and Runscripts**\n\n---\nSeveral scripts are provided to download example input data, run tracking, and produce visualizations of the tracking results below:\n\n1. [Convective cell tracking from 500 m gridded NEXRAD radar data](https://github.com/FlexTRKR/PyFLEXTRKR/blob/main/config/demo_cell_nexrad.sh)\n\n2. [Convective cell tracking from 500 m gridded ARM CSAPR radar data](https://github.com/FlexTRKR/PyFLEXTRKR/blob/main/config/demo_cell_csapr.sh)\n\n![](https://portal.nersc.gov/project/m1867/PyFLEXTRKR/figures/nexrad_celltracking_animation_small.gif)\n\n3. [MCS tracking from 10 km GPM IMERG Tb + precipitation data](https://github.com/FlexTRKR/PyFLEXTRKR/blob/main/config/demo_mcs_imerg.sh)\n\n4. [MCS tracking from 4 km WRF Tb + precipitation data](https://github.com/FlexTRKR/PyFLEXTRKR/blob/main/config/demo_mcs_wrf_tbpf.sh)\n\n5. [MCS tracking from 4 km WRF Tb + 3D reflectivity data](https://github.com/FlexTRKR/PyFLEXTRKR/blob/main/config/demo_mcs_wrf_tbradar.sh)\n\n6. [MCS tracking from 25 km model OLR + precipitation data](https://github.com/FlexTRKR/PyFLEXTRKR/blob/main/config/demo_mcs_model25km.sh)\n\n![](https://portal.nersc.gov/project/m1867/PyFLEXTRKR/figures/imerg_mcstracking_animation_small.gif)\n\n7. [Generic feature tracking (e.g., 500 hPa geopotential height anomaly)](https://github.com/FlexTRKR/PyFLEXTRKR/blob/main/config/demo_generic_tracking.sh)\n\n![](https://portal.nersc.gov/project/m1867/PyFLEXTRKR/figures/z500_tracking_animation_small.gif)\n\n\nTo run these demo scripts, download the script, modify the `dir_demo` in the script to a directory on your computer to store the sample data, and run the following command:\n\n\n```bash\nbash demo_cell_nexrad.sh\n```\n\nThe demo script downloads and untar the sample data, runs the tracking code, and generates visualizations. Once the demo script finishes running, a sub-directory within the `dir_demo` named `quicklooks_trackpaths` will be created that contains quicklook visualization of the tracking results, as shown in the example animations above.\n\n\n# **5. Running PyFLEXTRKR**\n\n---\n\nTo run the code, type the following in the command line:\n\nActivate PyFLEXTRKR virtual environment:\n\n```bash\nconda activate flextrkr\n```\n\nRun PyFLEXTRKR:\n\n```bash\npython ../runscripts/run_celltracking.py ./config/config_nexrad500m_example.yml\n```\n\n```bash\npython ./runscripts/run_mcs_tbpf.py ./config/config_wrf4km_mcs_tbpf_example.yml\n```\n\n### **Example run scripts and config files are in the highlighted directories:**\n![](https://portal.nersc.gov/project/m1867/PyFLEXTRKR/figures/run_command_explanation.png)\n\n\n# **6. Statistical Analysis**\n\n---\n### A [**Gallery of Statistical Analysis**](https://github.com/FlexTRKR/PyFLEXTRKR/blob/main/AnalysisGallery.md) that can be applied to the tracking outputs is provided. Below are some examples.\n\n![](https://portal.nersc.gov/project/m1867/PyFLEXTRKR/sample_data/saag/figures/imerg_wrf_mcs_irnumber_map_annual_2018-2019.gif)\n\n![](https://portal.nersc.gov/project/m1867/PyFLEXTRKR/sample_data/saag/figures/imerg_wrf_mcs_rainmap_annual_2018-2019.gif)\n\n![](https://portal.nersc.gov/project/m1867/PyFLEXTRKR/sample_data/saag/figures/imerg_wrf_mcs_rainfrac_annual_2018-2019.gif)\n\n![](https://portal.nersc.gov/project/m1867/PyFLEXTRKR/sample_data/saag/figures/kde1d_mcs_land_2x4_Amazon.gif)\n\n![](https://portal.nersc.gov/project/m1867/PyFLEXTRKR/sample_data/saag/figures/mcs_composite_evolution_Amazon_land_crop.png)\n\n\n\n# **7. References**\n\n---\n\nFeng, Z., Hardin, J., Barnes, H. C., Li, J., Leung, L. R., Varble, A., \u0026 Zhang, Z. (2023). PyFLEXTRKR: a flexible feature tracking Python software for convective cloud analysis. *Geosci. Model Dev.*, 16(10), 2753-2776. [https://doi.org/10.5194/gmd-16-2753-2023](https://doi.org/10.5194/gmd-16-2753-2023)\n\nFeng, Z., Varble, A., Hardin, J., Marquis, J., Hunzinger, A., Zhang, Z., \u0026 Thieman, M. (2022). Deep Convection Initiation, Growth, and Environments in the Complex Terrain of Central Argentina during CACTI. *Monthly Weather Review*, 150(5), 1135-1155. [https://doi.org/10.1175/MWR-D-21-0237.1](https://doi.org/10.1175/MWR-D-21-0237.1)\n\nFeng, Z., Leung, L. R., Liu, N., Wang, J., Houze, R. A., Li, J., et al. (2021). A Global High‐Resolution Mesoscale Convective System Database Using Satellite‐Derived Cloud Tops, Surface Precipitation, and Tracking. *Journal of Geophysical Research: Atmospheres*, 126(8). [https://doi.org/10.1029/2020JD034202](https://doi.org/10.1029/2020JD034202)\n\nFeng, Z., Leung, L. R., Houze, R. A., Hagos, S., Hardin, J., Yang, Q., et al. (2018). Structure and Evolution of Mesoscale Convective Systems: Sensitivity to Cloud Microphysics in Convection-Permitting Simulations Over the United States. *Journal of Advances in Modeling Earth Systems*, 10(7), 1470-1494. [https://doi.org/10.1029/2018MS001305](https://doi.org/10.1029/2018MS001305)\n\nFeng, Z., Houze, R. A., Leung, L. R., Song, F., Hardin, J. C., Wang, J., et al. (2019). Spatiotemporal Characteristics and Large-scale Environments of Mesoscale Convective Systems East of the Rocky Mountains. *Journal of Climate*, 32(21), 7303-7328. [https://doi.org/10.1175/JCLI-D-19-0137.1](https://doi.org/10.1175/JCLI-D-19-0137.1)\n\n---\n\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.1175/MWR-D-21-0237.1","https://doi.org/10.1029/2020JD034202","https://doi.org/10.1029/2018MS001305);","https://doi.org/10.1175/JCLI-D-19-0137.1","https://doi.org/10.5194/gmd-16-2753-2023","https://doi.org/10.1029/2018MS001305"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/348424","html_url":"https://ost.ecosyste.ms/projects/348424"}