{"id":34681512,"url":"https://github.com/isce-framework/nisarqa","last_synced_at":"2026-03-14T09:31:49.701Z","repository":{"id":266766740,"uuid":"898125080","full_name":"isce-framework/nisarqa","owner":"isce-framework","description":"Quality Assurance software for NISAR","archived":false,"fork":false,"pushed_at":"2025-09-25T00:20:07.000Z","size":2067,"stargazers_count":6,"open_issues_count":70,"forks_count":4,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-09-25T02:34:10.314Z","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":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/isce-framework.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-Apache-2.0.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","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":"2024-12-03T20:43:48.000Z","updated_at":"2025-09-25T00:19:31.000Z","dependencies_parsed_at":"2025-01-18T01:18:37.951Z","dependency_job_id":"7810dff0-0834-4cff-b999-3721dfe1e1d2","html_url":"https://github.com/isce-framework/nisarqa","commit_stats":null,"previous_names":["isce-framework/nisarqa"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/isce-framework/nisarqa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isce-framework%2Fnisarqa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isce-framework%2Fnisarqa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isce-framework%2Fnisarqa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isce-framework%2Fnisarqa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/isce-framework","download_url":"https://codeload.github.com/isce-framework/nisarqa/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isce-framework%2Fnisarqa/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28008541,"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-12-24T02:00:07.193Z","response_time":83,"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":[],"created_at":"2025-12-24T21:11:56.535Z","updated_at":"2025-12-24T21:11:58.108Z","avatar_url":"https://github.com/isce-framework.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QualityAssurance\nQuality Assurance software for NISAR\n\nFor the upcoming [NISAR mission](https://nisar.jpl.nasa.gov/),\neight types of L1/L2 data products will be generated.\nThis Quality Assurance (QA) software is designed to look at the data products\nproduced one at a time. For each product, the QA code can:\n- Verify the metadata matches the product spec\n- Generate metrics, a PDF report, and a summary CSV describing the quality\nof the product\n- Run CalTools processes on RSLC products\n- Produce a browse image PNG with sidecar KML file for that product\n\n# Minimum PreRequisites:\nSee `environment.yaml` for required packages.\n\n# Operating Instructions:\n\n## Installation\n\nStep 1) Install the conda package manager.\n\nStep 2) Clone the `nisarqa` repo and `cd` into the top level directory.\n```\ngit clone https://github.com/isce-framework/nisarqa.git\ncd nisarqa\n```\n\nStep 3) Create a conda environment with the correct packages for QA.\n\nBy creating a new environment using the `environment.yaml` file, the required \npackages and their versions will all be resolved by conda from the conda-forge \nchannel, and thus remain consistent with each other. (Mixing package managers \nhas led to import errors during testing.) The `environment.yaml` defaults to \nnaming the new conda environment `nisarqa`.\n```\nconda env create -f environment.yaml\nconda activate nisarqa  # activate the new environment\n```\n\nStep 4) Install\n\nFor standard installation, run:\n```\npip install --no-deps .\n```\n\nFor develop mode, run:\n```\npip install --no-deps -e .\n```\n\nTo test installation, try:\n```\nnisarqa --version\nnisarqa -h\nnisarqa dumpconfig -h\n```\n\n\u003e [!CAUTION]\n\u003e `--no-deps` is necessary for installation due to the `isce3` dependency.\n\u003e Otherwise, `isce3` would need to be removed from `pyproject.toml`, causing\n\u003e that dependency list to fall out of sync with `environment.yaml`'s list.\n\n## Running the QA Code\n\nRun the QA code from the command line using a runconfig.yaml file.\n\nBecause the QA code is uniquely written for each product type, each product\ntype has a unique subcommand.\n\nSee `nisarqa -h` and e.g. `nisarqa rslc_qa -h` for usage.\n\nExample commands to process QA:\n```\nnisarqa rslc_qa \u003crslc_runconfig.yaml\u003e\nnisarqa gslc_qa \u003cgslc_runconfig.yaml\u003e\n```\n\nBy default, QA outputs the majority of log messages to the log file only.\nTo additionally stream the log messages to the console, use the verbose flag.\nExample:\n```\nnisarqa gslc_qa \u003cgslc_runconfig.yaml\u003e -v\nnisarqa rslc_qa \u003crslc_runconfig.yaml\u003e --verbose\n```\n\nStep 5) Set up `pre-commit` (Optional for users) (Required for contributors)\n\nQA repo uses a `pre-commit` workflow to ensure consistent code style for\ndevelopers. Configuration options are found in the `pyproject.toml` and\n`.pre-commit-config.yaml` files.\n\nInstall pre-commit and check if it was correctly installed:\n```\nconda install -c conda-forge pre-commit\npre-commit help\n```\n\nInstall and set up the git hook scripts:\n```\npre-commit install  # stdout: pre-commit installed at .git/hooks/pre-commit\n```\n\nNow `pre-commit` will run automatically on `git commit`.\n\nSome useful commands:\n```\npre-commit run --all-files  # run on all files (not just files in commit)\ngit commit --no-verify -m \"message\"  # skip pre-commit entirely\nSKIP=flake8,black git commit -m \"foo\"  # temporarily disable flake8 and black\n```\n\n## Runconfig Template w/ default parameters\nBecause the QA code is uniquely written for each product type, each product\nalso has a unique runconfig yaml file template and default settings.\n\nThe runconfig is where a user specifies the filepath to the input NISAR product,\nwhich workflows to run, what units to use for a given metric, and so forth.\n\nTo get a product's example runconfig file that has been populated with\nthe default parameters, use the `dumpconfig` subcommand.\n\nSee `nisarqa dumpconfig -h` for usage.\n\nExample commands:\n```\nnisarqa dumpconfig rslc\nnisarqa dumpconfig rslc --indent 2                # change the indent spacing\nnisarqa dumpconfig rslc \u003e my_rslc_runconfig.yaml  # save runconfig to a file\nnisarqa dumpconfig gcov\n```\n\n\n## Expected Outputs\n\nFor each NISAR product, if all workflows are requested via the `workflows`\nparameter in the runconfig, the QA code will generate six output files\nand store them in the directory specified by `qa_output_dir` in the runconfig:\n\n1) `BROWSE.png` - RGB browse image for the input NISAR product\n2) `BROWSE.kml` - geolocation information for `BROWSE.png`\n3) `REPORT.pdf` - graphical summary PDF containing histograms,\n                  low-res images of the input datasets, etc.\n4) `STATS.h5` - statistical summary HDF5 file containing computed quality\n                metrics, the datasets used to generate the plots in \n                `REPORT.pdf`, the QA processing parameters, etc.\n5) `SUMMARY.csv` - a high-level PASS/FAIL check summary\n6) `LOG.txt` - textual listing of errors encountered during QA processing\n\nThese file names are hardcoded; they are not configurable via the\nrunconfig.\n\n\n## Copyright\nCopyright 2024, by the California Institute of Technology. ALL RIGHTS RESERVED.\nUnited States Government Sponsorship acknowledged.\n\n## Export Classification\nThis software may be subject to U.S. export control laws. By accepting\nthis software, the user agrees to comply with all applicable U.S. export\nlaws and regulations. User has the responsibility to obtain export licenses,\nor other export authority as may be required before exporting such\ninformation to foreign countries or providing access to foreign persons.\n\n## License\n\nThis software is licensed under your choice of BSD-3-Clause or Apache-2.0\nlicenses. The exact terms of each license can be found in the accompanying\n[LICENSE-BSD-3-Clause.txt] and [LICENSE-Apache-2.0.txt] files, respectively.\n\n[LICENSE-BSD-3-Clause.txt]: LICENSE-BSD-3-Clause.txt\n[LICENSE-Apache-2.0.txt]: LICENSE-Apache-2.0.txt\n\nSPDX-License-Identifier: BSD-3-Clause OR Apache-2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisce-framework%2Fnisarqa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fisce-framework%2Fnisarqa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisce-framework%2Fnisarqa/lists"}