{"id":26056350,"url":"https://github.com/ncar/mtp","last_synced_at":"2026-03-10T15:03:43.378Z","repository":{"id":75612413,"uuid":"176815203","full_name":"NCAR/MTP","owner":"NCAR","description":"EOL/RAF Microwave Temperature Profiler realtime, processing, and visualization code - replaces MTP-VB6","archived":false,"fork":false,"pushed_at":"2025-10-07T19:33:41.000Z","size":59070,"stargazers_count":0,"open_issues_count":46,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-10-07T20:40:59.934Z","etag":null,"topics":["aircraft","hais","instrument","raf"],"latest_commit_sha":null,"homepage":"","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/NCAR.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"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":"2019-03-20T20:53:06.000Z","updated_at":"2025-10-07T19:33:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"9a46d062-0b19-4552-aef9-54e686c8c8ef","html_url":"https://github.com/NCAR/MTP","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/NCAR/MTP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NCAR%2FMTP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NCAR%2FMTP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NCAR%2FMTP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NCAR%2FMTP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NCAR","download_url":"https://codeload.github.com/NCAR/MTP/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NCAR%2FMTP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30338599,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T15:02:55.010Z","status":"ssl_error","status_checked_at":"2026-03-10T15:02:36.911Z","response_time":106,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["aircraft","hais","instrument","raf"],"created_at":"2025-03-08T11:00:17.930Z","updated_at":"2026-03-10T15:03:43.353Z","avatar_url":"https://github.com/NCAR.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n[![DOI](https://img.shields.io/badge/DOI-10.26023/tydq-2669)](https://doi.org/10.26023/tydq-2669)\n\n\u003cimg align=\"left\" width=\"175\" height=\"175\" src=\"./doc/images/tropo.png\"\u003e\n\n```\nCAUTION: When running the MTP instrument, if Tsynth\nunder the Engineering tab gets to 50 degreesC, the\nprobe needs to be shutdown to avoid overheating.\n```\n# Microwave Temperature Profiler Instrument Control, Real-Time Display and Processing Software\n\nThe Microwave Temperature Profiler (MTP) is a HAIS instrument which was developed by JPL for the NSF/NCAR GV.\n\nThe [original VB6 code base](https://github.com/NCAR/MTP-VB6) from JPL that supports data processing and display was written in Microsoft Visual Basic 6. Since Microsoft has chosen to depracate Visual Basic, RAF has embarked on a re-write of some components of the original code. This repository contains those rewrites.\n\nPackages needed to run the MTP software are documented in mtpenv.yml\n\n## To install (on MAC/LINUX/Windows10)\n\nMake sure you have installed at least python 3.7\nUse miniconda to install all needed packages:\n * Download conda from https://conda.io/miniconda.html and install\n   * Update conda if warned following instructions\n * Install Git (if not already there) and download MTP:\n   * https://git-scm.com/ -\u003e Download latest per automatic OS detection. Run .exe file to install. I used default settings as suggested by installer, except that I asked to install a desktop icon for “Git Bash”\n * If installing on eol-ale or eol-atom, set up the EOL Jenkins user to download software from github\n   * Create C:\\Users\\lroot\\.gitconfig containing\n```\n[user]\n        name = eolJenkins\n```\n   * Create C:\\Users\\lroot\\.git-credentials containing the eoljenkins git credential - either login to github as user jenkins to get it, or copy it from the other MTP laptop.\n```\nhttps://eoljenkins:\u003clong credential string here\u003e@github.com\n```\n * Launch “Git Bash”\n * From /c/Users/lroot in git bash\n```\n    git clone http://github.com/NCAR/MTP\n```\n   The first time you may need to cancel out of a window asking for credentials before the download will start.\n * Create the MTP conda environment from the YAML env file\n```\n   \u003e conda env create -f mtpenv.yml\n```\n * If the yaml file doesn't work because it can't resolve conflicts, you can install by hand:\n```\n   \u003e conda create --name mtp\n```\n   then activate and conda install each package individually. Note that metpy is only available from the conda-force channel.\n * Activate the mtp conda environment - see - https://conda.io/activation\n```\n   \u003e conda init bash\n   \u003e conda activate mtp\n```\n * Install the EOL-Python packages per instructions in https://github.com/NCAR/EOL-Python\n \n## Optional on Windows10\n\n * Add Miniconda3 and Miniconda3\\condabin to your path\n   * Windows search -\u003e type \"env\" -\u003e click \"Edit the system environment variables\"\n   * In lower \"System variables\" window, click the \"Path\" row and click edit\n   * Click \"New\" and add the new paths, e.g.\n     * C:\\Users\\lroot\\Miniconda3\n     * C:\\Users\\lroot\\Miniconda3\\condabin\n     * C:\\Users\\lroot\\Miniconda3\\Scripts\n     * C:\\Users\\lroot\\Miniconda3\\Library\\bin\n\nIf the packages are not available via the conda-forge channel, you can search for alternative channels at https://anaconda.org\n\nChange you environment variable and add a PYTHONPATH that points to the netCDF installation (You will also add the path to EOL-Python to this env var below.)\n\n### Configure the MTPviewer software\n * Create shortcuts to the bat files in the windows10 dir and put them on the Desktop\n * Edit the bat file and correct the python path if needed\n * Add --config=path\\to\\config\\file for project you are going to run.\n * If you want to run the IWGemulator, install aircraft_nc_utils\n```\n    \u003e git clone http://github.com/NCAR/aircraft_nc_utils\n```\n\nInstall the EOL-Python packages per instructions in https://github.com/NCAR/EOL-Python\n\nCheck your PYTHONPATH\n```\n    \u003e echo %PYTHONPATH%\n```\nIt should contain a path to EOL-Python and a path to the anaconda site-packages.\nIf it doesn't follow the instructions on the EOL-Python page.\n\n## To operate the MTP from Windows10\n\nYou only need to do this if you will be connecting your computer directly to the MTP instrument in the lab or on the aircraft. If you are only running MTPviewer to monitor collected data, you don't need to install the driver.\n\n * Install the driver for the USOPTL4 USB to serial converter\n * Download the driver from https://support.advantech.com/support/DownloadSRDetail_New.aspx?SR_ID=1-HIPU-30\u0026Doc_Source=Download \n\n * Extract the zip file to the desktop\n * Run C:\\Documents and Settings\\mtp\\Desktop\\USB_Drivers_PKG_v2-08-28\\BBSmartWorx\\Windows\\dpinst64\n * Plug in the USB cable from the MTP to the laptop\n * Go to the device manager and change the port to comm 6\n   * This PC -\u003e right click -\u003e manage -\u003e device manager -\u003e Other Devices or COM \u0026 PORT (I think) -\u003e USOPTL4\n * Comfirm port settings as 9600|8|None|1|None\n\nInformation on operating the MTP, and other documentation, can be found on the (UCAR SEW MTP wiki)[https://wiki.ucar.edu/display/SEW/MicrowaveTemperatureProfiler]\n\n## To run this code:\n * Set up a project directory. See: https://github.com/NCAR/MTP/blob/master/config/README.md\n * cd src\n * On Windows10:\n ```\n * click on MTPviewer icon on the desktop. If this is not available:\n     \u003e conda activate (to get the base environment where libraries have been installed)\n     \u003e C:\\Users\\lroot\\Miniconda3\\python.exe MTPviewer.py --config=path\\to\\config\\fie\n\n ```\n * On a MAC:\n ```\n \u003e python3 MTPviewer.py --config=\\path\\to\\config\\file\n ```\n** NOTE that on a MAC you will use python3, but on Windows it's python.exe (no 3) **\n\n## To run in test mode, generate fake \"real-time\" data by running\n\n * On Windows10:\n ```\n * Click on MTPemulator icon on the desktop. If this is not available:\n    \u003e conda activate\n    \u003e cd C:\\Users\\lroot\\MTP\\src\\emulator\n    \u003e C:\\Users\\lroot\\Miniconda3\\python.exe snd_MTP_udp.py\n\n * Click on IWGemulator icon on the desktop. If this is not available:\n    \u003e git clone http://github.com/NCAR/aircraft_nc2iwg1\n    \u003e conda activate\n    \u003e cd C:\\Users\\lroot\\MTP\\Data\\NGV\\DEEPWAVE\\NG\n    \u003e C:\\Users\\lroot\\Miniconda3\\python.exe C:\\Users\\lroot\\aircraft_nc2iwg1\\nc2iwg1.py -s 1 -u True -er True DEEPWAVERF01.nc\n\n ```\n * On a MAC:\n ```\n\u003e cd MTP/src/emulator\n\u003e python3 snd_MTP_udp.py\n\u003e ./snd_IWG.sh  (need to install http://github.com/NCAR/aircraft_nc2iwg1)\n```\n* Then run the GUI in real-time mode, using the platform-specific python call, e.g. on Windows:\n```\n\u003epython MTPviewer.py --config=\\path\\to\\config\\file\n```\n\n## Developer Notes\n\n### Documentation\n\nFor complete documentation on each class/method, useful if you need to modify the code, use pydoc to extract embedded documentation from each file:\n\n* On a MAC: (Change python3 to python for Windows)\n```\n\u003e cd src\n\u003e python3 -m pydoc \u003cfilename\u003e\ne.g. python3 -m pydoc lib/rwget.py\n```\n\n### Unit tests\n\nIf the unittests are all run sequentially from the same command (python3 -m unittest discover -s ../tests -v), earlier tests seem to leave the unittest code in a state that causes subsequent tests to fail. An attempt was made to get each test to clean up after itself by adding setUp and tearDown functions. But Python's unittest holds on to all sorts of memory until the entire test suite has been run. For a good explanation see: https://stackoverflow.com/questions/26915115/unittest-teardown-del-all-attributes/35001389\n\nTo get around this, a shell script has been written that breaks up the test suite into smaller chunks. To manually run all unittests, use this script:\n\n* On a MAC: (Change python3 to python for Windows) \n```\n\u003e cd src\nOR\n\u003e cd tests\n\u003e ../tests/run_tests.sh\n```\n\n* On a WINDOWS10:\n```\n\u003e cd src\nOR\n\u003e cd tests\n\u003e powershell -noexit \"\u0026 \"\"..\\tests\\run_tests_Windows.ps1\"\"\"\n```\n\n## Citation\nWhen referencing this software in publications and proposals, please use the identifier 10.26023/tydq-2669 -- for example as a citation:\n\nAquino, J., Dewerd, C., \u0026 Webster, C. (2022). MTP [Software]. UCAR/NCAR - Earth Observing Laboratory. https://doi.org/10.26023/tydq-2669\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fncar%2Fmtp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fncar%2Fmtp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fncar%2Fmtp/lists"}