{"id":50467469,"url":"https://github.com/podaac/forge-tig-configuration","last_synced_at":"2026-06-01T08:02:47.978Z","repository":{"id":103454360,"uuid":"595832504","full_name":"podaac/forge-tig-configuration","owner":"podaac","description":"Configuration files for collections processed by FORGE and TIG","archived":false,"fork":false,"pushed_at":"2026-05-04T23:27:48.000Z","size":750,"stargazers_count":2,"open_issues_count":5,"forks_count":2,"subscribers_count":8,"default_branch":"main","last_synced_at":"2026-05-05T01:26:13.758Z","etag":null,"topics":["development","hitide","tva"],"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/podaac.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":"2023-01-31T22:35:58.000Z","updated_at":"2026-05-04T23:27:51.000Z","dependencies_parsed_at":"2026-04-21T23:02:14.723Z","dependency_job_id":null,"html_url":"https://github.com/podaac/forge-tig-configuration","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/podaac/forge-tig-configuration","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podaac%2Fforge-tig-configuration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podaac%2Fforge-tig-configuration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podaac%2Fforge-tig-configuration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podaac%2Fforge-tig-configuration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/podaac","download_url":"https://codeload.github.com/podaac/forge-tig-configuration/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podaac%2Fforge-tig-configuration/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33765379,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-01T02:00:06.963Z","response_time":115,"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":["development","hitide","tva"],"created_at":"2026-06-01T08:02:43.414Z","updated_at":"2026-06-01T08:02:47.953Z","avatar_url":"https://github.com/podaac.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HitideConfigGenerator\n\n## Overview\nThis package is used to create configuration JSON files which specify input parameters for the [forge](https://github.com/podaac/forge), [forge-py](https://github.com/podaac/forge-py) and [tig](https://github.com/podaac/tig) software - these software generate geographic coverage footprints and variable thumbnails for granules, which are utilized by user-facing services such as HiTIDE and Earthdata Search. The same config file is used as input to all 3 of these tools, with one file per collection.  The config generator's intention is to simplify the process of making these config files, as well as validate the config file format against a predefined schema.\n\n## Features\n- Generate structured configuration objects for forge, forge-py, tig, and HiTIDE processing.\n- Supports optional parameters for customization.\n- Validates configuration against a predefined JSON schema.\n- Saves the configuration to a JSON file.\n\n## Installation\n```sh\npip install forge-tig-config-generator\n```\n\n## Usage\n\n### Creating a Configuration Generator Instance\n```python\nfrom podaac.forge_tig_config_generator.generate_config import HitideConfigGenerator\nimport json\n\nconfig_generator = HitideConfigGenerator(\n    short_name=\"example_dataset\",\n    lat_var=\"latitude\",\n    lon_var=\"longitude\",\n    is360=False,\n    time_var=\"time\",\n    footprinter=\"forge-py\",\n    strategy=\"open_cv\",\n    opencv_params={\n       \"pixel_height\": 1000,\n       \"simplify\":0.3,\n       \"min_area\": 30,\n       \"fill_value\": -99999.0,\n       \"fill_kernel\": [30,30]\n    },\n    alpha_shape_params={\n       \"alpha\":0.2,\n       \"thinning\": {\"method\": \"bin_avg\", \"value\": [0.5, 0.5]},\n       \"cutoff_lat\": 80,\n       \"smooth_poles\": [78,80],\n       \"simplify\" : 0.3,\n       \"min_area\": 30,\n       \"fill_value\": -99999.0\n    },\n    img_variables=[\n        {\n            \"id\": \"sses_bias\",\n            \"min\": \"-18.85\",\n            \"max\": \"19.25\",\n            \"palette\": \"paletteMedspirationIndexed\"\n        },\n        {\n            \"id\": \"sses_standard_deviation\",\n            \"min\": \"-18.85\",\n            \"max\": \"19.25\",\n            \"palette\": \"paletteMedspirationIndexed\"\n        }\n    ],\n    image={\"ppd\": 8, \"res\": 16}\n)\nconfig = config_generator.generate()\nprint(json.dumps(config, indent=4))\n```\n\n### Generating and Saving the Configuration\n```python\nconfig = config_generator.generate()\nprint(config)  # Outputs the generated configuration\n```\nThis method:\n1. Generates a configuration dictionary.\n2. Validates the configuration against a predefined schema.\n3. Saves the configuration as a JSON file named `\u003cshort_name\u003e.cfg`.\n\n## Methods\n\n### `generate() -\u003e dict`\nGenerates a configuration object adhering to the specified schema.\n\n- **Returns**: `dict` - The generated configuration.\n- **Raises**: `Exception` if validation fails.\n\n## Configuration Schema\nThe arg names / values passed to `HitideConfigGenerator` become the keys / values in the dictionary and JSON. Because the main purpose of the JSON is to be used with forge-py and tig, the args relevant to each are split below. Detailed descriptions of these args are on the respective read-me pages (where the args are alternately referred to as \"config parameters\" or \"fields\"). Config files can be generated for use with either forge-py or tig separately, or both. It is only necessary to pass the args relevant to the software intended for use with the config file. \n\n### args relevant to forge-py footprinter\n\n`shortName` (str, required), `latVar` (str, required), `lonVar` (str, required), `is360` (bool, required), `timeVar` (str, optional), `strategy` (str, optional), `open_cv` (dict, optional), `alpha_shape` (dict, optional), `shapely_linestring` (dict, optional).\n\nDetailed descriptions of the args can be found on the [forge-py readme](https://github.com/podaac/forge-py?tab=readme-ov-file#description-of-fields).\n\n### args relevant to tig image generation\n\n`shortName` (str, required), `latVar` (str, required), `lonVar` (str, required), `is360` (bool, required), `imgVariables` (list of dicts, required), `image` (dict, optional).\n\nDetailed descriptions of the args can be found on the [tig readme](https://github.com/podaac/tig?tab=readme-ov-file#description-of-fields).\n\n## Example Output\n```json\n{\n    \"shortName\": \"example_dataset\",\n    \"latVar\": \"latitude\",\n    \"lonVar\": \"longitude\",\n    \"is360\": false,\n    \"timeVar\": \"time\",\n    \"footprinter\": \"forge-py\",\n    \"footprint\": {\n        \"strategy\": \"open_cv\",\n        \"open_cv\": {\n            \"pixel_height\": 1000,\n            \"simplify\": 0.3,\n            \"min_area\": 30,\n            \"fill_value\": -99999.0,\n            \"fill_kernel\": [\n                30,\n                30\n            ]\n        },\n        \"alpha_shape\": {\n            \"alpha\": 0.2,\n            \"thinning\": {\n                \"method\": \"bin_avg\",\n                \"value\": [\n                    0.5,\n                    0.5\n                ]\n            },\n            \"cutoff_lat\": 80,\n            \"smooth_poles\": [\n                78,\n                80\n            ],\n            \"simplify\": 0.3,\n            \"min_area\": 30,\n            \"fill_value\": -99999.0\n        }\n    },\n    \"imgVariables\": [\n        {\n            \"id\": \"sses_bias\",\n            \"min\": \"-18.85\",\n            \"max\": \"19.25\",\n            \"palette\": \"paletteMedspirationIndexed\"\n        },\n        {\n            \"id\": \"sses_standard_deviation\",\n            \"min\": \"-18.85\",\n            \"max\": \"19.25\",\n            \"palette\": \"paletteMedspirationIndexed\"\n        }\n    ],\n    \"image\": {\n        \"ppd\": 8,\n        \"res\": 16\n    }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpodaac%2Fforge-tig-configuration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpodaac%2Fforge-tig-configuration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpodaac%2Fforge-tig-configuration/lists"}