{"id":33141234,"url":"https://github.com/birgander2/PyRAT","last_synced_at":"2025-11-16T05:00:46.721Z","repository":{"id":29994779,"uuid":"33542234","full_name":"birgander2/PyRAT","owner":"birgander2","description":"General purpose Synthetic Aperture Radar (SAR) postprocessing software package","archived":false,"fork":false,"pushed_at":"2025-01-16T15:20:10.000Z","size":5093,"stargazers_count":194,"open_issues_count":8,"forks_count":48,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-01-16T16:49:25.223Z","etag":null,"topics":["python","radar","sar"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/birgander2.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-04-07T12:38:05.000Z","updated_at":"2025-01-16T15:20:12.000Z","dependencies_parsed_at":"2025-01-16T16:41:37.468Z","dependency_job_id":"37b24c79-9223-42f1-bd78-c66ec371f260","html_url":"https://github.com/birgander2/PyRAT","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/birgander2/PyRAT","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/birgander2%2FPyRAT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/birgander2%2FPyRAT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/birgander2%2FPyRAT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/birgander2%2FPyRAT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/birgander2","download_url":"https://codeload.github.com/birgander2/PyRAT/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/birgander2%2FPyRAT/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284662610,"owners_count":27043071,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-16T02:00:05.974Z","response_time":65,"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"}},"keywords":["python","radar","sar"],"created_at":"2025-11-15T12:00:43.109Z","updated_at":"2025-11-16T05:00:46.704Z","avatar_url":"https://github.com/birgander2.png","language":"Python","funding_links":[],"categories":["SAR","Radar Related GitHub Repos"],"sub_categories":["EUMETlab","Software and Utilities"],"readme":"# PyRAT (Python Radar Analysis Tools)\n\nPyRat is a flexible framework for postprocessing synthetic aperture radar (SAR) data. It\nis made for both airborne and spaceborne data and especially focused on providing an\neasy plugin-based programming interface. \n\nTechnically, PyRat is implemented in Python (supported by some Cython) and uses HDF5 based \ndisc containers for temporary storage. It features automatic multithreaded block \nprocessing for speed and memory efficiency, a powerful batch system and a Qt-based GUI. \nIt is expandable by plugins without deep knowledge of framework itself.\n\n## Screenshots\n\n\u003cdiv align=\"left\"\u003e\n\u003ca href=\"doc/screenshot01.jpg\"\u003e\u003cimg width=\"200\" height=\"200\" hspace=\"20\" src=\"doc/screenshot01.jpg\" alt=\"Screenshot 1\"\u003c/img\u003e\u003c/a\u003e\n\u003ca href=\"doc/screenshot02.jpg\"\u003e\u003cimg width=\"200\" height=\"200\" hspace=\"20\" src=\"doc/screenshot02.jpg\" alt=\"Screenshot 2\"\u003c/img\u003e\u003c/a\u003e\n\u003ca href=\"doc/screenshot03.jpg\"\u003e\u003cimg width=\"200\" height=\"200\" hspace=\"20\" src=\"doc/screenshot03.jpg\" alt=\"Screenshot 3\"\u003c/img\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n## Download\n\n    git clone https://github.com/birgander2/PyRAT\n\n## Requirements\n\nPyrat is developed in Python 3. It does _not_ run under Python 2. Required python packages are specified in the\nfile _requirements.txt_. We recommend using the free [Anaconda Python\ndistribution](https://docs.continuum.io/anaconda). There are 3 ways to get a nice python environment for running PyRAT:\n\n* **Dedicated Miniconda environment (recommended, Linux only!)**\n\nMiniconda is a minimal Anaconda installation. It is not directly sufficient to run PyRAT, but can easily be extended\nwith all required modules. This avoids potential conflicts between the installed packages, as it might happen with\nthe other 2 solutions. These steps are needed:\n\n    wget -q https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh    # Download Miniconda\n    bash Miniconda3-latest-Linux-x86_64.sh -b -p /my/path/Python_PyRAT               # Install it (adapt path!)\n    source activate /my/path/Python_PyRAT                                            # Activate it\n    conda env update -n base -f requirements.txt                                     # Add all required packages\n\nNow you Miniconda installation is ready to be used. To later reactivate it (for example in another terminal,\nyou have to repeat once the 'export' command (again, adapt path to correct place):\n\n    source activate /my/path/Python_PyRAT\n\n* **Dedicated Anaconda environment**\n\nWith Anaconda, you can create and activate a pyrat-compatible virtual environment with the commands  (pyrat in the box below is\nthe user-chosen name for the virtual environment, you can freely change it):\n\n    conda env create -f requirements.txt -n pyrat\n    source activate pyrat   [on Linux]\n    activate pyrat          [on Windows]\n\n* **Update of the base Anaconda distribution**\n\nAlternatively, one can also directly install all the required packages with the command (depending on your anaconda version\nreplace 'base' by 'root'):\n\n    conda env update -n base -f requirements.txt\n\nBasically all development is done on Linux systems. As a pure python / cython project, pyrat should run also on\nWindows and OSX, but this is genuinely untested - feedback appreciated!\n\n**Sometimes there are some small differences between the requirements on different platforms. Currently, on Windows,\nplease use the requirements_win.txt file instead.**\n\n## Installation\n\n**You can run PyRAT directly from its source / download directory without further installation.** Most functionality will be \nthere without compiling. However, compiling will add accelerated versions of some modules (by using cython) and \nsome additional fuctionality. We did not succeed yet to compile correctly on Windows (help needed!). If pyrat keeps\non crashing at startup on Windows after compiling, please move back to a pure source version.\n\n**Compile / build:** This is only needed if you want to benefit from some fast cython and C modules. \n    \n    python setup.py build_ext --inplace\n\n**Install (with root rights):** This is only needed if you want to install pyrat in the system's python site-packages. This command will also\ncompile the cython and C modules.\n\n    python setup.py install\n\n**Install (as user):** This is only needed if you want to install pyrat in the users's python site-packages. This command will also\ncompile the cython and C modules.\n\n    python setup.py install --user\n\n\n**Configuration:** At startup, pyrat searches for a file _$HOME/.pyratrc_ (pyrat.ini on Windows)\nand generates a new one if not there.\nIt should contain the name of a directory used for storing temporary files. As default _/tmp_ (something else\non Windows) is used, which is often not a good choice. Choose a tempdir on a large, fast, local harddrive and\ncheck it from time to time for lost tempfiles.\n\nThe value for 'NThreads' influences the number of parallel jobs used. Set this to your number of CPU cores. The\nautodetection might be too high if your CPU suppors hyperthreading. In such a case, set the correct (lower) number.\nNote that too many threads are causing only overhead and will slow down processing.\n\n\n## Documentation\n\nThe folder _doc_ contains a powerpoint file, explaing the basic usage of pyrat (it might happen\nthat it is a bit outdated...). Apart from that, the pyrat CLI interface contains an internal help system:\n    \n    \u003e\u003e\u003e help()      \t\t        [Liste of available commands and modules]       \n    \u003e\u003e\u003e help(function)              [Help for a particular function]       \n    \u003e\u003e\u003e help(modul.function)    \t[Help for a particular function out of a modul]       \n\nThe content of the internal help system is based on the docstrings in the source code. Their\nquality might vary ;-)\n\nAdditionally, some documentation can be found on the\n[project's wiki page](https://github.com/birgander2/PyRAT/wiki) on GitHub. \n\nIf you need further assistance, please contact the authors or open an issue on GitHub.\n\n## Usage\n\nCLI Interface:\n\n    ./pyrat.run -b [rat filename]\n    ./pyrat.run --batch [rat filename]\n\n    In case of problems, use the --debug flag to get more debugging output. This is also useful when\n    implementing own modules, as it disables multiprocessing which simplifies debugging.\n\n    \nGUI Interface:\n\n    ./pyrat.run [rat filename]\n\nCurrent modules:\n* load:      Importing of data\n* save:      Exporting of data\n* filter:    Various image manipulations\n* transform: Geometrical transformations\n* insar:     Interferometric processing\n* polar:     Polarimetric processing\n\nMore information about modules and contents (replace 'module' by correct name, e.g. 'filter):\n    \n    \u003e\u003e\u003e help(module)\n\n## Example batch usage\n\n    ./pyrat.py -b\n    \u003e\u003e\u003e x1 = load.rat('abc.rat')\n    \u003e\u003e\u003e x2 = filter.lee(looks=3)\n    \u003e\u003e\u003e x3 = filter.boxcar(layer=x1)\n    \u003e\u003e\u003e save.pixmap('abc.jpg', layer=x2)\n    \u003e\u003e\u003e var = getdata(layer=x1)\n    \u003e\u003e\u003e show()\n\n## Important comment on using PyRAT\n\nPyRAT expects a bit that you know what you're doing. In particular, it might be required to perform certain\noperations before doing others; PyRAT will not necessarily check or care if input data for certain modules\nare the ones needed. In some cases, an entire chain of steps are required to get the desired results.\n\nSome examples: Multi-looking before decompositions, conversion into covariances prior to speckle filtering,\nconversion into covariances, multi-looking, eigendecomposition before calculating entropy / alpha. There are\nmany more examples like that, so please remember that PyRAT offers 'only' a collection of singular tools, not\n(yet) entire tool-chains. This is planned, though.\n\n## Implementing your own modules\n\nPyRat has a very simple programming interface. Have a look at the file 'pyrat/filter/Template.py',\nthis should explain at least the basics of programming own modules. Put your own code\nin the 'plugins' directory, it is automatically scanned at startup. PyRat will automatically\nattach your code to the GUI and run it using parallel processing.\n\nFor more detailed questions, please contact us directly (anderl@nought.de)\n\n## Getting involved\n\nPyRAT is an open project - we happily welcome external contributions. So if you are interested in joining the team\nor if you have own modules you would like to see in the official PyRAT distribution,  please get in touch with \nus (Email: anderl@nought.de). If needed, we can provide you with more information on how to contribute and how to program PyRAT.\n\nIn particular, we are currently looking for help in the following areas:\n* Processing modules of any kind (of course)\n* GUI programming (we are not good in this)\n* Windows integration / testing / packaging \n* Better documentation\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbirgander2%2FPyRAT","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbirgander2%2FPyRAT","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbirgander2%2FPyRAT/lists"}